diff options
author | drh <drh@noemail.net> | 2004-05-07 13:30:42 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2004-05-07 13:30:42 +0000 |
commit | a34b6764835d79447ce865489d2304596c590a2d (patch) | |
tree | 1cc1a2728c66f5f23ec3f00f8bda9b6ea721ac04 /src/printf.c | |
parent | 4fc0fb4358111c29e3c8a0827583caed11fea513 (diff) | |
download | sqlite-a34b6764835d79447ce865489d2304596c590a2d.tar.gz sqlite-a34b6764835d79447ce865489d2304596c590a2d.zip |
New btree.c module compiles and links. (CVS 1320)
FossilOrigin-Name: dcd6b55f932a7ade4ad058534651e198b56370ad
Diffstat (limited to 'src/printf.c')
-rw-r--r-- | src/printf.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/printf.c b/src/printf.c index 620578d76..fa9209707 100644 --- a/src/printf.c +++ b/src/printf.c @@ -208,7 +208,8 @@ static int vxprintf( etByte flag_alternateform; /* True if "#" flag is present */ etByte flag_zeropad; /* True if field width constant starts with zero */ etByte flag_long; /* True if "l" flag is present */ - unsigned long longvalue; /* Value for integer types */ + etByte flag_longlong; /* True if the "ll" flag is present */ + UINT64_TYPE longvalue; /* Value for integer types */ LONGDOUBLE_TYPE realvalue; /* Value for real types */ et_info *infop; /* Pointer to the appropriate info structure */ char buf[etBUFSIZE]; /* Conversion buffer */ @@ -299,8 +300,14 @@ static int vxprintf( if( c=='l' ){ flag_long = 1; c = *++fmt; + if( c=='l' ){ + flag_longlong = 1; + c = *++fmt; + }else{ + flag_longlong = 0; + } }else{ - flag_long = 0; + flag_long = flag_longlong = 0; } /* Fetch the info entry for the field */ infop = 0; @@ -326,6 +333,8 @@ static int vxprintf( ** flag_zeropad TRUE if the width began with 0. ** flag_long TRUE if the letter 'l' (ell) prefixed ** the conversion character. + ** flag_longlong TRUE if the letter 'll' (ell ell) prefixed + ** the conversion character. ** flag_blanksign TRUE if a ' ' is present. ** width The specified field width. This is ** always non-negative. Zero is the default. @@ -336,8 +345,9 @@ static int vxprintf( */ switch( xtype ){ case etRADIX: - if( flag_long ) longvalue = va_arg(ap,long); - else longvalue = va_arg(ap,int); + if( flag_longlong ) longvalue = va_arg(ap,INT64_TYPE); + else if( flag_long ) longvalue = va_arg(ap,long ing); + else longvalue = va_arg(ap,int); #if 1 /* For the format %#x, the value zero is printed "0" not "0x0". ** I think this is stupid. */ |