@@ -1379,7 +1379,7 @@ bool Converter::GetFmtArg(clang::Expr *arg, std::string &fmt,
13791379 } else if (arg_str.contains (" Setw" )) {
13801380 fmt_width = Trim (ToString (arg));
13811381 } else if (!arg->getType ()->isCharType () &&
1382- Mapper::Map (arg->getType ()) != " Vec<u8 >" ) {
1382+ Mapper::Map (arg->getType ()) != " Vec<::core::ffi::c_char >" ) {
13831383 fmt += (" {:" + fmt_width + fmt_trait + " }" );
13841384 fmt_width.clear (); // Reset setw after first usage
13851385 arg_str = ToString (arg);
@@ -1395,11 +1395,12 @@ bool Converter::GetFmtArg(clang::Expr *arg, std::string &fmt,
13951395
13961396bool Converter::GetRawArg (clang::Expr *arg, std::string &raw_args) {
13971397 if (arg->getType ()->isCharType ()) {
1398- raw_args += " (&[" + ToString (arg) + ' ] ' ;
1399- } else if (Mapper::Map (arg->getType ()) == " Vec<u8 >" ) {
1398+ raw_args += " (&[" + ToString (arg) + " as u8] " ;
1399+ } else if (Mapper::Map (arg->getType ()) == " Vec<::core::ffi::c_char >" ) {
14001400 PushExprKind push (*this , ExprKind::RValue);
14011401 std::string str = ToString (arg);
1402- raw_args += " (&(" + str + " )[..(" + str + " ).len() - 1]" ;
1402+ raw_args += " (&(" + str + " ).iter().take((" + str +
1403+ " ).len() - 1).map(|&c| c as u8).collect::<Vec<u8>>()[..]" ;
14031404 } else if (Mapper::ToString (arg).contains (" std::endl" )) {
14041405 raw_args += " (&[b'\\ n']" ;
14051406 } else if (clang::isa<clang::StringLiteral>(arg->IgnoreImplicit ())) {
0 commit comments