Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Do not assume that a pointer can fit in a long inside the printf() code. Ticket #342. (CVS 1013) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
5dad7c05e9789e101d5ce75a6f3ea2ff |
User & Date: | drh 2003-06-07 11:29:50.000 |
Context
2003-06-07
| ||
11:33 | Use sqliteOsFileExists() in the debugging hook in vdbe.c, instead of access(). Ticket #341. (CVS 1014) (check-in: 7d3405b95b user: drh tags: trunk) | |
11:29 | Do not assume that a pointer can fit in a long inside the printf() code. Ticket #342. (CVS 1013) (check-in: 5dad7c05e9 user: drh tags: trunk) | |
08:57 | Major update of vdbe tutorial to 2.8.0 engine. (CVS 1012) (check-in: 787d986d0f user: jplyon tags: trunk) | |
Changes
Changes to src/printf.c.
︙ | ︙ | |||
385 386 387 388 389 390 391 | cset = infop->charset; base = infop->base; do{ /* Convert to ascii */ *(--bufpt) = cset[longvalue%base]; longvalue = longvalue/base; }while( longvalue>0 ); } | | | | 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 | cset = infop->charset; base = infop->base; do{ /* Convert to ascii */ *(--bufpt) = cset[longvalue%base]; longvalue = longvalue/base; }while( longvalue>0 ); } length = &buf[etBUFSIZE]-bufpt; for(idx=precision-length; idx>0; idx--){ *(--bufpt) = '0'; /* Zero pad */ } if( prefix ) *(--bufpt) = prefix; /* Add sign */ if( flag_alternateform && infop->prefix ){ /* Add "0" or "0x" */ char *pre, x; pre = infop->prefix; if( *bufpt!=pre[0] ){ for(pre=infop->prefix; (x=(*pre))!=0; pre++) *(--bufpt) = x; } } length = &buf[etBUFSIZE]-bufpt; break; case etFLOAT: case etEXP: case etGENERIC: realvalue = va_arg(ap,double); #ifndef etNOFLOATINGPOINT if( precision<0 ) precision = 6; /* Set default precision */ |
︙ | ︙ | |||
507 508 509 510 511 512 513 | *(bufpt++) = exp/10+'0'; /* 10's digit */ *(bufpt++) = exp%10+'0'; /* 1's digit */ } } /* The converted number is in buf[] and zero terminated. Output it. ** Note that the number is in the usual order, not reversed as with ** integer conversions. */ | | | 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 | *(bufpt++) = exp/10+'0'; /* 10's digit */ *(bufpt++) = exp%10+'0'; /* 1's digit */ } } /* The converted number is in buf[] and zero terminated. Output it. ** Note that the number is in the usual order, not reversed as with ** integer conversions. */ length = bufpt-buf; bufpt = buf; /* Special case: Add leading zeros if the flag_zeropad flag is ** set and we are not left justified */ if( flag_zeropad && !flag_leftjustify && length < width){ int i; int nPad = width - length; |
︙ | ︙ |