projects
/
chise
/
xemacs-chise.git-
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update.
[chise/xemacs-chise.git-]
/
src
/
doprnt.c
diff --git
a/src/doprnt.c
b/src/doprnt.c
index
5dac446
..
7df3f9c
100644
(file)
--- a/
src/doprnt.c
+++ b/
src/doprnt.c
@@
-576,7
+576,7
@@
emacs_doprnt_1 (Lisp_Object stream, CONST Bufbyte *format_nonreloc,
{
Lisp_Object obj = largs[spec->argnum - 1];
if (CHARP (obj))
{
Lisp_Object obj = largs[spec->argnum - 1];
if (CHARP (obj))
- CHECK_INT_COERCE_CHAR (obj);
+ obj = make_int (XCHAR (obj));
if (!INT_OR_FLOATP (obj))
{
error ("format specifier %%%c doesn't match argument type",
if (!INT_OR_FLOATP (obj))
{
error ("format specifier %%%c doesn't match argument type",
@@
-657,16
+657,24
@@
emacs_doprnt_1 (Lisp_Object stream, CONST Bufbyte *format_nonreloc,
long_to_string (constructed_spec + strlen (constructed_spec),
spec->precision);
}
long_to_string (constructed_spec + strlen (constructed_spec),
spec->precision);
}
+#if 0
sprintf (constructed_spec + strlen (constructed_spec), "%c", ch);
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 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))
{
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
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
{
}
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
if (spec->l_flag)
sprintf (text_to_print, constructed_spec, arg.l);
else