X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fdoprnt.c;h=7df3f9cf7c10c25d777b383867a6b5233962bd0b;hb=f8b0dcc32dce11bef09e2fbcde040aecd1f86fd1;hp=8259c5ad919f1c2ed1a39ca364615413e36e0fe0;hpb=77dcef404dc78635f6ffa8f71a803d2bc7cc8921;p=chise%2Fxemacs-chise.git- diff --git a/src/doprnt.c b/src/doprnt.c index 8259c5a..7df3f9c 100644 --- a/src/doprnt.c +++ b/src/doprnt.c @@ -657,16 +657,24 @@ emacs_doprnt_1 (Lisp_Object stream, CONST Bufbyte *format_nonreloc, long_to_string (constructed_spec + strlen (constructed_spec), spec->precision); } +#if 0 sprintf (constructed_spec + strlen (constructed_spec), "%c", ch); +#endif /* sprintf the mofo */ /* we have to use separate calls to sprintf(), rather than a single big conditional, because of the different types of the arguments */ if (strchr (double_converters, ch)) - sprintf (text_to_print, constructed_spec, arg.d); + { + sprintf (constructed_spec + strlen (constructed_spec), + "%c", ch); + sprintf (text_to_print, constructed_spec, arg.d); + } else if (strchr (unsigned_int_converters, ch)) { + sprintf (constructed_spec + strlen (constructed_spec), + "%c", ch); if (spec->l_flag) sprintf (text_to_print, constructed_spec, arg.ul); else @@ -674,6 +682,12 @@ emacs_doprnt_1 (Lisp_Object stream, CONST Bufbyte *format_nonreloc, } else { + if (spec->zero_flag && spec->minwidth) + sprintf (constructed_spec + strlen (constructed_spec), + "0%d%c", spec->minwidth, ch); + else + sprintf (constructed_spec + strlen (constructed_spec), + "%c", ch); if (spec->l_flag) sprintf (text_to_print, constructed_spec, arg.l); else