Folks, 

I was seeing test failures on Darwin in both the APR testsuite and httpd 
perl-framework.  The %lld sprintf format character was incorrectly parsed, and 
"%ld" written instead of the substituted value.  

This small patch against APR trunk fixes that: 

Index: strings/apr_snprintf.c
===================================================================
--- strings/apr_snprintf.c      (revision 1031121)
+++ strings/apr_snprintf.c      (working copy)
@@ -832,6 +832,11 @@
             else if (*fmt == 'l') {
                 var_type = IS_LONG;
                 fmt++;
+                /* Catch the %lld type modifier for long long and its ilk */
+                if (*fmt == 'l') {
+                    var_type = IS_QUAD;
+                    fmt++;
+                }
             }
             else if (*fmt == 'h') {
                 var_type = IS_SHORT;

Thanks, 

S.

-- 
san...@temme.net              http://www.temme.net/sander/
PGP FP: FC5A 6FC6 2E25 2DFD 8007  EE23 9BB8 63B0 F51B B88A

View my availability: http://tungle.me/sctemme

Attachment: apr-snprintf.patch
Description: Binary data

Reply via email to