@@ -128,6 +128,22 @@ addPrintHex(AST *seq, AST *handle, AST *func, AST *expr, AST *fmtAst)
128
128
return ast ;
129
129
}
130
130
131
+ // create a hex print integer call
132
+ static AST *
133
+ addPrintBinary (AST * seq , AST * handle , AST * func , AST * expr , AST * fmtAst )
134
+ {
135
+ AST * ast ;
136
+ AST * params ;
137
+
138
+ params = NewAST (AST_EXPRLIST , handle ,
139
+ NewAST (AST_EXPRLIST , expr ,
140
+ NewAST (AST_EXPRLIST , fmtAst ,
141
+ NewAST (AST_EXPRLIST , AstInteger (2 ), NULL ))));
142
+ ast = NewAST (AST_FUNCCALL , func , params );
143
+ ast = addToPrintSeq (seq , ast );
144
+ return ast ;
145
+ }
146
+
131
147
// create a decimal print integer call
132
148
static AST *
133
149
addPrintDec (AST * seq , AST * handle , AST * func , AST * expr , AST * fmtAst )
@@ -518,6 +534,13 @@ genPrintf(AST *ast)
518
534
seq = addPrintHex (seq , Handle , basic_print_unsigned , thisarg , AstInteger (fmt ));
519
535
}
520
536
break ;
537
+ case 'b' :
538
+ if (longflag > 1 ) {
539
+ seq = addPrintBinary (seq , Handle , basic_print_longunsigned , thisarg , AstInteger (fmt ));
540
+ } else {
541
+ seq = addPrintBinary (seq , Handle , basic_print_unsigned , thisarg , AstInteger (fmt ));
542
+ }
543
+ break ;
521
544
case 's' :
522
545
seq = addPrintCall (seq , Handle , basic_print_string , thisarg , AstInteger (fmt ));
523
546
break ;
0 commit comments