]> granicus.if.org Git - mutt/commitdiff
Add support for %ll to the bundled snprintf replacement.
authorTAKAHASHI Tamotsu <ttakah@lapis.plala.or.jp>
Mon, 17 Nov 2008 05:01:41 +0000 (21:01 -0800)
committerTAKAHASHI Tamotsu <ttakah@lapis.plala.or.jp>
Mon, 17 Nov 2008 05:01:41 +0000 (21:01 -0800)
ChangeLog
snprintf.c

index a989684ae96ceb043a6884b6b9d1b3df11841963..dc7c2fb1c18b0109b462b2f6b9927613d7cc20ee 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-11-16 20:34 -0800  TAKAHASHI Tamotsu  <ttakah@lapis.plala.or.jp>  (a2b55a15d6f0)
+
+       * configure.ac, doc/makedoc-defs.h: Add --disable-full-doc flag to
+       only build documentation for enabled features
+
+2008-11-15 20:24 -0800  Brendan Cully  <brendan@kublai.com>  (8087be7178cd)
+
+       * configure.ac: Use with_tokyocabinet exclusively (with_tc is
+       undefined). Closes #3131.
+
 2008-11-15 19:51 -0800  Alexey I. Froloff  <raorn@altlinux.org>  (af87aa1846be)
 
        * md5.c, md5.h: md5.h, md5.c: updated to latest version from gnulib.
index 549a7a7e8cea39c3d34379556cd1aa572258f3ea..cd84b74b328bc7155679a17606f595028fec128d 100644 (file)
@@ -120,9 +120,10 @@ static void dopr_outch (char *buffer, size_t *currlen, size_t maxlen, char c );
 #define DP_F_UNSIGNED  (1 << 6)
 
 /* Conversion Flags */
-#define DP_C_SHORT   1
-#define DP_C_LONG    2
-#define DP_C_LDOUBLE 3
+#define DP_C_SHORT    1
+#define DP_C_LONG     2
+#define DP_C_LONGLONG 3
+#define DP_C_LDOUBLE  4
 
 #define char_to_int(p) (p - '0')
 #undef MAX
@@ -230,7 +231,6 @@ static int dopr (char *buffer, size_t maxlen, const char *format, va_list args)
        state = DP_S_MOD;
       break;
     case DP_S_MOD:
-      /* Currently, we don't support Long Long, bummer */
       switch (ch) 
       {
       case 'h':
@@ -240,6 +240,11 @@ static int dopr (char *buffer, size_t maxlen, const char *format, va_list args)
       case 'l':
        cflags = DP_C_LONG;
        ch = *format++;
+       if (ch == 'l')
+       {
+         cflags = DP_C_LONGLONG;
+         ch = *format++;
+       }
        break;
       case 'L':
        cflags = DP_C_LDOUBLE;
@@ -259,6 +264,8 @@ static int dopr (char *buffer, size_t maxlen, const char *format, va_list args)
          value = va_arg (args, short int);
        else if (cflags == DP_C_LONG)
          value = va_arg (args, long int);
+       else if (cflags == DP_C_LONGLONG)
+         value = va_arg (args, long long int);
        else
          value = va_arg (args, int);
        fmtint (buffer, &currlen, maxlen, value, 10, min, max, flags);
@@ -269,6 +276,8 @@ static int dopr (char *buffer, size_t maxlen, const char *format, va_list args)
          value = va_arg (args, unsigned short int);
        else if (cflags == DP_C_LONG)
          value = va_arg (args, unsigned long int);
+       else if (cflags == DP_C_LONGLONG)
+         value = va_arg (args, unsigned long long int);
        else
          value = va_arg (args, unsigned int);
        fmtint (buffer, &currlen, maxlen, value, 8, min, max, flags);
@@ -279,6 +288,8 @@ static int dopr (char *buffer, size_t maxlen, const char *format, va_list args)
          value = va_arg (args, unsigned short int);
        else if (cflags == DP_C_LONG)
          value = va_arg (args, unsigned long int);
+       else if (cflags == DP_C_LONGLONG)
+         value = va_arg (args, unsigned long long int);
        else
          value = va_arg (args, unsigned int);
        fmtint (buffer, &currlen, maxlen, value, 10, min, max, flags);
@@ -291,6 +302,8 @@ static int dopr (char *buffer, size_t maxlen, const char *format, va_list args)
          value = va_arg (args, unsigned short int);
        else if (cflags == DP_C_LONG)
          value = va_arg (args, unsigned long int);
+       else if (cflags == DP_C_LONGLONG)
+         value = va_arg (args, unsigned long long int);
        else
          value = va_arg (args, unsigned int);
        fmtint (buffer, &currlen, maxlen, value, 16, min, max, flags);
@@ -343,6 +356,12 @@ static int dopr (char *buffer, size_t maxlen, const char *format, va_list args)
          num = va_arg (args, long int *);
          *num = currlen;
         } 
+       else if (cflags == DP_C_LONGLONG) 
+       {
+         long long int *num;
+         num = va_arg (args, long long int *);
+         *num = currlen;
+        } 
        else 
        {
          int *num;