Merge r21-4-12-chise-0_21-pre11.
[chise/xemacs-chise.git] / src / doprnt.c
index d9dc8c4..a2b047b 100644 (file)
@@ -34,7 +34,7 @@ Boston, MA 02111-1307, USA.  */
 static const char * const valid_flags = "-+ #0";
 static const char * const valid_converters = "dic" "ouxX" "feEgG" "sS";
 static const char * const int_converters = "dic";
-static const char * const unsigned_int_converters = "ouxX";
+static const char * const unsigned_int_converters = "ouxXc";
 static const char * const double_converters = "feEgG";
 static const char * const string_converters = "sS";
 
@@ -569,7 +569,7 @@ emacs_doprnt_1 (Lisp_Object stream, const Bufbyte *format_nonreloc,
                    obj = Ftruncate (obj);
 
                  if (strchr (unsigned_int_converters, ch))
-                   arg.ul = (unsigned long) XINT (obj);
+                   arg.ul = (unsigned long) XUINT (obj);
                  else
                    arg.l = XINT (obj);
                }
@@ -598,7 +598,8 @@ emacs_doprnt_1 (Lisp_Object stream, const Bufbyte *format_nonreloc,
              char *text_to_print =
                alloca_array (char, 32 +
                              max (spec->minwidth,
-                                  max (sizeof (double), sizeof (long)) * 3 +
+                                  (EMACS_INT)
+                                   max (sizeof (double), sizeof (long)) * 3 +
                                   max (spec->precision, 0)));
              char constructed_spec[100];
              char *p = constructed_spec;