aboutsummaryrefslogtreecommitdiff
path: root/src/printf.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2004-05-07 13:30:42 +0000
committerdrh <drh@noemail.net>2004-05-07 13:30:42 +0000
commita34b6764835d79447ce865489d2304596c590a2d (patch)
tree1cc1a2728c66f5f23ec3f00f8bda9b6ea721ac04 /src/printf.c
parent4fc0fb4358111c29e3c8a0827583caed11fea513 (diff)
downloadsqlite-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.c18
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. */