Don't abort in doprnt when passed unsupported %ll modifier.
authorEli Zaretskii <eliz@gnu.org>
Fri, 29 Apr 2011 19:34:06 +0000 (22:34 +0300)
committerEli Zaretskii <eliz@gnu.org>
Fri, 29 Apr 2011 19:34:06 +0000 (22:34 +0300)
 src/doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
 aborting when %lld or %lll format is passed.
 [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
 %llo or %llx format is passed.  (Bug#8545)

src/ChangeLog
src/doprnt.c

index f029daa..14d5ac9 100644 (file)
@@ -1,5 +1,10 @@
 2011-04-29  Eli Zaretskii  <eliz@gnu.org>
 
+       * doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
+       aborting when %lld or %lll format is passed.
+       [!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
+       %llo or %llx format is passed.  (Bug#8545)
+
        * window.c (window_scroll_line_based): Use a marker instead of
        simple variables to record original value of point.  (Bug#7952)
 
index 2508ddd..7b4bd35 100644 (file)
@@ -269,7 +269,7 @@ doprnt (char *buffer, register size_t bufsize, const char *format,
                    long long ll = va_arg (ap, long long);
                    sprintf (sprintf_buffer, fmtcpy, ll);
 #else
-                   abort ();
+                   error ("Invalid format operation %%ll%c", fmt[-1]);
 #endif
                  }
                else if (long_flag)
@@ -299,7 +299,7 @@ doprnt (char *buffer, register size_t bufsize, const char *format,
                    unsigned long long ull = va_arg (ap, unsigned long long);
                    sprintf (sprintf_buffer, fmtcpy, ull);
 #else
-                   abort ();
+                   error ("Invalid format operation %%ll%c", fmt[-1]);
 #endif
                  }
                else if (long_flag)