Annotation of embedaddon/sqlite3/test/printf.test, revision 1.1

1.1     ! misho       1: # 2001 September 15
        !             2: #
        !             3: # The author disclaims copyright to this source code.  In place of
        !             4: # a legal notice, here is a blessing:
        !             5: #
        !             6: #    May you do good and not evil.
        !             7: #    May you find forgiveness for yourself and forgive others.
        !             8: #    May you share freely, never taking more than you give.
        !             9: #
        !            10: #***********************************************************************
        !            11: # This file implements regression tests for SQLite library.  The
        !            12: # focus of this file is testing the sqlite_*_printf() interface.
        !            13: #
        !            14: # $Id: printf.test,v 1.31 2009/02/01 00:21:10 drh Exp $
        !            15: 
        !            16: set testdir [file dirname $argv0]
        !            17: source $testdir/tester.tcl
        !            18: 
        !            19: 
        !            20: do_test printf-1.1.1 {
        !            21:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !            22:        1 1 1
        !            23: } {abc: 1 1 1 :xyz}
        !            24: do_test printf-1.1.2 {
        !            25:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !            26:        1 1 1
        !            27: } {abc: (     1) (     1) (     1) :xyz}
        !            28: do_test printf-1.1.3 {
        !            29:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !            30:        1 1 1
        !            31: } {abc: (1     ) (1     ) (1     ) :xyz}
        !            32: do_test printf-1.1.4 {
        !            33:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !            34:        1 1 1
        !            35: } {abc: (    +1) (     1) (     1) :xyz}
        !            36: do_test printf-1.1.5 {
        !            37:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !            38:        1 1 1
        !            39: } {abc: (000001) (000001) (000001) :xyz}
        !            40: do_test printf-1.1.6 {
        !            41:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !            42:        1 1 1
        !            43: } {abc: (     1) (     1) (     1) :xyz}
        !            44: do_test printf-1.1.7 {
        !            45:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !            46:        1 1 1
        !            47: } {abc: (     1) (   0x1) (    01) :xyz}
        !            48: do_test printf-1.2.1 {
        !            49:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !            50:        2 2 2
        !            51: } {abc: 2 2 2 :xyz}
        !            52: do_test printf-1.2.2 {
        !            53:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !            54:        2 2 2
        !            55: } {abc: (     2) (     2) (     2) :xyz}
        !            56: do_test printf-1.2.3 {
        !            57:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !            58:        2 2 2
        !            59: } {abc: (2     ) (2     ) (2     ) :xyz}
        !            60: do_test printf-1.2.4 {
        !            61:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !            62:        2 2 2
        !            63: } {abc: (    +2) (     2) (     2) :xyz}
        !            64: do_test printf-1.2.5 {
        !            65:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !            66:        2 2 2
        !            67: } {abc: (000002) (000002) (000002) :xyz}
        !            68: do_test printf-1.2.6 {
        !            69:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !            70:        2 2 2
        !            71: } {abc: (     2) (     2) (     2) :xyz}
        !            72: do_test printf-1.2.7 {
        !            73:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !            74:        2 2 2
        !            75: } {abc: (     2) (   0x2) (    02) :xyz}
        !            76: do_test printf-1.3.1 {
        !            77:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !            78:        5 5 5
        !            79: } {abc: 5 5 5 :xyz}
        !            80: do_test printf-1.3.2 {
        !            81:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !            82:        5 5 5
        !            83: } {abc: (     5) (     5) (     5) :xyz}
        !            84: do_test printf-1.3.3 {
        !            85:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !            86:        5 5 5
        !            87: } {abc: (5     ) (5     ) (5     ) :xyz}
        !            88: do_test printf-1.3.4 {
        !            89:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !            90:        5 5 5
        !            91: } {abc: (    +5) (     5) (     5) :xyz}
        !            92: do_test printf-1.3.5 {
        !            93:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !            94:        5 5 5
        !            95: } {abc: (000005) (000005) (000005) :xyz}
        !            96: do_test printf-1.3.6 {
        !            97:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !            98:        5 5 5
        !            99: } {abc: (     5) (     5) (     5) :xyz}
        !           100: do_test printf-1.3.7 {
        !           101:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           102:        5 5 5
        !           103: } {abc: (     5) (   0x5) (    05) :xyz}
        !           104: do_test printf-1.4.1 {
        !           105:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           106:        10 10 10
        !           107: } {abc: 10 a 12 :xyz}
        !           108: do_test printf-1.4.2 {
        !           109:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           110:        10 10 10
        !           111: } {abc: (    10) (     a) (    12) :xyz}
        !           112: do_test printf-1.4.3 {
        !           113:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           114:        10 10 10
        !           115: } {abc: (10    ) (a     ) (12    ) :xyz}
        !           116: do_test printf-1.4.4 {
        !           117:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           118:        10 10 10
        !           119: } {abc: (   +10) (     a) (    12) :xyz}
        !           120: do_test printf-1.4.5 {
        !           121:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           122:        10 10 10
        !           123: } {abc: (000010) (00000a) (000012) :xyz}
        !           124: do_test printf-1.4.6 {
        !           125:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           126:        10 10 10
        !           127: } {abc: (    10) (     a) (    12) :xyz}
        !           128: do_test printf-1.4.7 {
        !           129:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           130:        10 10 10
        !           131: } {abc: (    10) (   0xa) (   012) :xyz}
        !           132: do_test printf-1.5.1 {
        !           133:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           134:        99 99 99
        !           135: } {abc: 99 63 143 :xyz}
        !           136: do_test printf-1.5.2 {
        !           137:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           138:        99 99 99
        !           139: } {abc: (    99) (    63) (   143) :xyz}
        !           140: do_test printf-1.5.3 {
        !           141:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           142:        99 99 99
        !           143: } {abc: (99    ) (63    ) (143   ) :xyz}
        !           144: do_test printf-1.5.4 {
        !           145:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           146:        99 99 99
        !           147: } {abc: (   +99) (    63) (   143) :xyz}
        !           148: do_test printf-1.5.5 {
        !           149:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           150:        99 99 99
        !           151: } {abc: (000099) (000063) (000143) :xyz}
        !           152: do_test printf-1.5.6 {
        !           153:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           154:        99 99 99
        !           155: } {abc: (    99) (    63) (   143) :xyz}
        !           156: do_test printf-1.5.7 {
        !           157:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           158:        99 99 99
        !           159: } {abc: (    99) (  0x63) (  0143) :xyz}
        !           160: do_test printf-1.6.1 {
        !           161:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           162:        100 100 100
        !           163: } {abc: 100 64 144 :xyz}
        !           164: do_test printf-1.6.2 {
        !           165:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           166:        100 100 100
        !           167: } {abc: (   100) (    64) (   144) :xyz}
        !           168: do_test printf-1.6.3 {
        !           169:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           170:        100 100 100
        !           171: } {abc: (100   ) (64    ) (144   ) :xyz}
        !           172: do_test printf-1.6.4 {
        !           173:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           174:        100 100 100
        !           175: } {abc: (  +100) (    64) (   144) :xyz}
        !           176: do_test printf-1.6.5 {
        !           177:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           178:        100 100 100
        !           179: } {abc: (000100) (000064) (000144) :xyz}
        !           180: do_test printf-1.6.6 {
        !           181:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           182:        100 100 100
        !           183: } {abc: (   100) (    64) (   144) :xyz}
        !           184: do_test printf-1.6.7 {
        !           185:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           186:        100 100 100
        !           187: } {abc: (   100) (  0x64) (  0144) :xyz}
        !           188: do_test printf-1.7.1 {
        !           189:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           190:        1000000 1000000 1000000
        !           191: } {abc: 1000000 f4240 3641100 :xyz}
        !           192: do_test printf-1.7.2 {
        !           193:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           194:        1000000 1000000 1000000
        !           195: } {abc: (1000000) ( f4240) (3641100) :xyz}
        !           196: do_test printf-1.7.3 {
        !           197:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           198:        1000000 1000000 1000000
        !           199: } {abc: (1000000) (f4240 ) (3641100) :xyz}
        !           200: do_test printf-1.7.4 {
        !           201:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           202:        1000000 1000000 1000000
        !           203: } {abc: (+1000000) ( f4240) (3641100) :xyz}
        !           204: do_test printf-1.7.5 {
        !           205:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           206:        1000000 1000000 1000000
        !           207: } {abc: (1000000) (0f4240) (3641100) :xyz}
        !           208: do_test printf-1.7.6 {
        !           209:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           210:        1000000 1000000 1000000
        !           211: } {abc: ( 1000000) ( f4240) (3641100) :xyz}
        !           212: do_test printf-1.7.7 {
        !           213:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           214:        1000000 1000000 1000000
        !           215: } {abc: (1000000) (0xf4240) (03641100) :xyz}
        !           216: do_test printf-1.8.1 {
        !           217:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           218:        999999999 999999999 999999999
        !           219: } {abc: 999999999 3b9ac9ff 7346544777 :xyz}
        !           220: do_test printf-1.8.2 {
        !           221:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           222:        999999999 999999999 999999999
        !           223: } {abc: (999999999) (3b9ac9ff) (7346544777) :xyz}
        !           224: do_test printf-1.8.3 {
        !           225:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           226:        999999999 999999999 999999999
        !           227: } {abc: (999999999) (3b9ac9ff) (7346544777) :xyz}
        !           228: do_test printf-1.8.4 {
        !           229:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           230:        999999999 999999999 999999999
        !           231: } {abc: (+999999999) (3b9ac9ff) (7346544777) :xyz}
        !           232: do_test printf-1.8.5 {
        !           233:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           234:        999999999 999999999 999999999
        !           235: } {abc: (999999999) (3b9ac9ff) (7346544777) :xyz}
        !           236: do_test printf-1.8.6 {
        !           237:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           238:        999999999 999999999 999999999
        !           239: } {abc: ( 999999999) (3b9ac9ff) (7346544777) :xyz}
        !           240: do_test printf-1.8.7 {
        !           241:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           242:        999999999 999999999 999999999
        !           243: } {abc: (999999999) (0x3b9ac9ff) (07346544777) :xyz}
        !           244: do_test printf-1.9.1 {
        !           245:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           246:        0 0 0
        !           247: } {abc: 0 0 0 :xyz}
        !           248: do_test printf-1.9.2 {
        !           249:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           250:        0 0 0
        !           251: } {abc: (     0) (     0) (     0) :xyz}
        !           252: do_test printf-1.9.3 {
        !           253:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           254:        0 0 0
        !           255: } {abc: (0     ) (0     ) (0     ) :xyz}
        !           256: do_test printf-1.9.4 {
        !           257:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           258:        0 0 0
        !           259: } {abc: (    +0) (     0) (     0) :xyz}
        !           260: do_test printf-1.9.5 {
        !           261:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           262:        0 0 0
        !           263: } {abc: (000000) (000000) (000000) :xyz}
        !           264: do_test printf-1.9.6 {
        !           265:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           266:        0 0 0
        !           267: } {abc: (     0) (     0) (     0) :xyz}
        !           268: do_test printf-1.9.7 {
        !           269:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           270:        0 0 0
        !           271: } {abc: (     0) (     0) (     0) :xyz}
        !           272: # 0xffffffff == -1
        !           273: do_test printf-1.10.1 {
        !           274:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           275:        0xffffffff 0xffffffff 0xffffffff
        !           276: } {abc: -1 ffffffff 37777777777 :xyz}
        !           277: do_test printf-1.10.2 {
        !           278:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           279:        0xffffffff 0xffffffff 0xffffffff
        !           280: } {abc: (    -1) (ffffffff) (37777777777) :xyz}
        !           281: do_test printf-1.10.3 {
        !           282:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           283:        0xffffffff 0xffffffff 0xffffffff
        !           284: } {abc: (-1    ) (ffffffff) (37777777777) :xyz}
        !           285: do_test printf-1.10.4 {
        !           286:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           287:        0xffffffff 0xffffffff 0xffffffff
        !           288: } {abc: (    -1) (ffffffff) (37777777777) :xyz}
        !           289: do_test printf-1.10.5 {
        !           290:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           291:        0xffffffff 0xffffffff 0xffffffff
        !           292: } {abc: (-00001) (ffffffff) (37777777777) :xyz}
        !           293: do_test printf-1.10.6 {
        !           294:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           295:        0xffffffff 0xffffffff 0xffffffff
        !           296: } {abc: (    -1) (ffffffff) (37777777777) :xyz}
        !           297: do_test printf-1.10.7 {
        !           298:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           299:        0xffffffff 0xffffffff 0xffffffff
        !           300: } {abc: (    -1) (0xffffffff) (037777777777) :xyz}
        !           301: # 0xfffffffe == -2
        !           302: do_test printf-1.11.1 {
        !           303:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           304:        0xfffffffe 0xfffffffe 0xfffffffe
        !           305: } {abc: -2 fffffffe 37777777776 :xyz}
        !           306: do_test printf-1.11.2 {
        !           307:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           308:        0xfffffffe 0xfffffffe 0xfffffffe
        !           309: } {abc: (    -2) (fffffffe) (37777777776) :xyz}
        !           310: do_test printf-1.11.3 {
        !           311:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           312:        0xfffffffe 0xfffffffe 0xfffffffe
        !           313: } {abc: (-2    ) (fffffffe) (37777777776) :xyz}
        !           314: do_test printf-1.11.4 {
        !           315:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           316:        0xfffffffe 0xfffffffe 0xfffffffe
        !           317: } {abc: (    -2) (fffffffe) (37777777776) :xyz}
        !           318: do_test printf-1.11.5 {
        !           319:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           320:        0xfffffffe 0xfffffffe 0xfffffffe
        !           321: } {abc: (-00002) (fffffffe) (37777777776) :xyz}
        !           322: do_test printf-1.11.6 {
        !           323:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           324:        0xfffffffe 0xfffffffe 0xfffffffe
        !           325: } {abc: (    -2) (fffffffe) (37777777776) :xyz}
        !           326: do_test printf-1.11.7 {
        !           327:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           328:        0xfffffffe 0xfffffffe 0xfffffffe
        !           329: } {abc: (    -2) (0xfffffffe) (037777777776) :xyz}
        !           330: # 0xfffffffb == -5
        !           331: do_test printf-1.12.1 {
        !           332:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           333:        0xfffffffb 0xfffffffb 0xfffffffb
        !           334: } {abc: -5 fffffffb 37777777773 :xyz}
        !           335: do_test printf-1.12.2 {
        !           336:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           337:        0xfffffffb 0xfffffffb 0xfffffffb
        !           338: } {abc: (    -5) (fffffffb) (37777777773) :xyz}
        !           339: do_test printf-1.12.3 {
        !           340:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           341:        0xfffffffb 0xfffffffb 0xfffffffb
        !           342: } {abc: (-5    ) (fffffffb) (37777777773) :xyz}
        !           343: do_test printf-1.12.4 {
        !           344:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           345:        0xfffffffb 0xfffffffb 0xfffffffb
        !           346: } {abc: (    -5) (fffffffb) (37777777773) :xyz}
        !           347: do_test printf-1.12.5 {
        !           348:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           349:        0xfffffffb 0xfffffffb 0xfffffffb
        !           350: } {abc: (-00005) (fffffffb) (37777777773) :xyz}
        !           351: do_test printf-1.12.6 {
        !           352:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           353:        0xfffffffb 0xfffffffb 0xfffffffb
        !           354: } {abc: (    -5) (fffffffb) (37777777773) :xyz}
        !           355: do_test printf-1.12.7 {
        !           356:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           357:        0xfffffffb 0xfffffffb 0xfffffffb
        !           358: } {abc: (    -5) (0xfffffffb) (037777777773) :xyz}
        !           359: # 0xfffffff6 == -10
        !           360: do_test printf-1.13.1 {
        !           361:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           362:        0xfffffff6 0xfffffff6 0xfffffff6
        !           363: } {abc: -10 fffffff6 37777777766 :xyz}
        !           364: do_test printf-1.13.2 {
        !           365:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           366:        0xfffffff6 0xfffffff6 0xfffffff6
        !           367: } {abc: (   -10) (fffffff6) (37777777766) :xyz}
        !           368: do_test printf-1.13.3 {
        !           369:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           370:        0xfffffff6 0xfffffff6 0xfffffff6
        !           371: } {abc: (-10   ) (fffffff6) (37777777766) :xyz}
        !           372: do_test printf-1.13.4 {
        !           373:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           374:        0xfffffff6 0xfffffff6 0xfffffff6
        !           375: } {abc: (   -10) (fffffff6) (37777777766) :xyz}
        !           376: do_test printf-1.13.5 {
        !           377:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           378:        0xfffffff6 0xfffffff6 0xfffffff6
        !           379: } {abc: (-00010) (fffffff6) (37777777766) :xyz}
        !           380: do_test printf-1.13.6 {
        !           381:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           382:        0xfffffff6 0xfffffff6 0xfffffff6
        !           383: } {abc: (   -10) (fffffff6) (37777777766) :xyz}
        !           384: do_test printf-1.13.7 {
        !           385:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           386:        0xfffffff6 0xfffffff6 0xfffffff6
        !           387: } {abc: (   -10) (0xfffffff6) (037777777766) :xyz}
        !           388: # 0xffffff9d == -99
        !           389: do_test printf-1.14.1 {
        !           390:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           391:        0xffffff9d 0xffffff9d 0xffffff9d
        !           392: } {abc: -99 ffffff9d 37777777635 :xyz}
        !           393: do_test printf-1.14.2 {
        !           394:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           395:        0xffffff9d 0xffffff9d 0xffffff9d
        !           396: } {abc: (   -99) (ffffff9d) (37777777635) :xyz}
        !           397: do_test printf-1.14.3 {
        !           398:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           399:        0xffffff9d 0xffffff9d 0xffffff9d
        !           400: } {abc: (-99   ) (ffffff9d) (37777777635) :xyz}
        !           401: do_test printf-1.14.4 {
        !           402:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           403:        0xffffff9d 0xffffff9d 0xffffff9d
        !           404: } {abc: (   -99) (ffffff9d) (37777777635) :xyz}
        !           405: do_test printf-1.14.5 {
        !           406:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           407:        0xffffff9d 0xffffff9d 0xffffff9d
        !           408: } {abc: (-00099) (ffffff9d) (37777777635) :xyz}
        !           409: do_test printf-1.14.6 {
        !           410:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           411:        0xffffff9d 0xffffff9d 0xffffff9d
        !           412: } {abc: (   -99) (ffffff9d) (37777777635) :xyz}
        !           413: do_test printf-1.14.7 {
        !           414:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           415:        0xffffff9d 0xffffff9d 0xffffff9d
        !           416: } {abc: (   -99) (0xffffff9d) (037777777635) :xyz}
        !           417: # 0xffffff9c == -100
        !           418: do_test printf-1.15.1 {
        !           419:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           420:        0xffffff9c 0xffffff9c 0xffffff9c
        !           421: } {abc: -100 ffffff9c 37777777634 :xyz}
        !           422: do_test printf-1.15.2 {
        !           423:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           424:        0xffffff9c 0xffffff9c 0xffffff9c
        !           425: } {abc: (  -100) (ffffff9c) (37777777634) :xyz}
        !           426: do_test printf-1.15.3 {
        !           427:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           428:        0xffffff9c 0xffffff9c 0xffffff9c
        !           429: } {abc: (-100  ) (ffffff9c) (37777777634) :xyz}
        !           430: do_test printf-1.15.4 {
        !           431:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           432:        0xffffff9c 0xffffff9c 0xffffff9c
        !           433: } {abc: (  -100) (ffffff9c) (37777777634) :xyz}
        !           434: do_test printf-1.15.5 {
        !           435:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           436:        0xffffff9c 0xffffff9c 0xffffff9c
        !           437: } {abc: (-00100) (ffffff9c) (37777777634) :xyz}
        !           438: do_test printf-1.15.6 {
        !           439:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           440:        0xffffff9c 0xffffff9c 0xffffff9c
        !           441: } {abc: (  -100) (ffffff9c) (37777777634) :xyz}
        !           442: do_test printf-1.15.7 {
        !           443:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           444:        0xffffff9c 0xffffff9c 0xffffff9c
        !           445: } {abc: (  -100) (0xffffff9c) (037777777634) :xyz}
        !           446: # 0xff676981 == -9999999
        !           447: do_test printf-1.16.1 {
        !           448:   sqlite3_mprintf_int {abc: %d %x %o :xyz}\
        !           449:        0xff676981 0xff676981 0xff676981
        !           450: } {abc: -9999999 ff676981 37731664601 :xyz}
        !           451: do_test printf-1.16.2 {
        !           452:   sqlite3_mprintf_int {abc: (%6d) (%6x) (%6o) :xyz}\
        !           453:        0xff676981 0xff676981 0xff676981
        !           454: } {abc: (-9999999) (ff676981) (37731664601) :xyz}
        !           455: do_test printf-1.16.3 {
        !           456:   sqlite3_mprintf_int {abc: (%-6d) (%-6x) (%-6o) :xyz}\
        !           457:        0xff676981 0xff676981 0xff676981
        !           458: } {abc: (-9999999) (ff676981) (37731664601) :xyz}
        !           459: do_test printf-1.16.4 {
        !           460:   sqlite3_mprintf_int {abc: (%+6d) (%+6x) (%+6o) :xyz}\
        !           461:        0xff676981 0xff676981 0xff676981
        !           462: } {abc: (-9999999) (ff676981) (37731664601) :xyz}
        !           463: do_test printf-1.16.5 {
        !           464:   sqlite3_mprintf_int {abc: (%06d) (%06x) (%06o) :xyz}\
        !           465:        0xff676981 0xff676981 0xff676981
        !           466: } {abc: (-9999999) (ff676981) (37731664601) :xyz}
        !           467: do_test printf-1.16.6 {
        !           468:   sqlite3_mprintf_int {abc: (% 6d) (% 6x) (% 6o) :xyz}\
        !           469:        0xff676981 0xff676981 0xff676981
        !           470: } {abc: (-9999999) (ff676981) (37731664601) :xyz}
        !           471: do_test printf-1.16.7 {
        !           472:   sqlite3_mprintf_int {abc: (%#6d) (%#6x) (%#6o) :xyz}\
        !           473:        0xff676981 0xff676981 0xff676981
        !           474: } {abc: (-9999999) (0xff676981) (037731664601) :xyz}
        !           475: do_test printf-2.1.1.1 {
        !           476:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 0.001
        !           477: } {abc: (0.0) :xyz}
        !           478: do_test printf-2.1.1.2 {
        !           479:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 0.001
        !           480: } {abc: (1.0e-03) :xyz}
        !           481: do_test printf-2.1.1.3 {
        !           482:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 0.001
        !           483: } {abc: (0.001) :xyz}
        !           484: do_test printf-2.1.1.4 {
        !           485:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 0.001
        !           486: } {abc: 1 1 (0.001) :xyz}
        !           487: do_test printf-2.1.1.5 {
        !           488:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 0.001
        !           489: } {abc: 1 1 (0.00100000) :xyz}
        !           490: do_test printf-2.1.1.6 {
        !           491:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 0.001
        !           492: } {abc: 1 1 (000000.001) :xyz}
        !           493: do_test printf-2.1.1.7 {
        !           494:   sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 0.001
        !           495: } {abc: 1 1 (0.0) :xyz}
        !           496: do_test printf-2.1.1.8 {
        !           497:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 0.001
        !           498: } {abc: 1 1 (1.0e-03) :xyz}
        !           499: do_test printf-2.1.1.9 {
        !           500:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 0.001
        !           501: } {abc: 1 1 (0.001) :xyz}
        !           502: do_test printf-2.1.2.1 {
        !           503:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 1.0e-20
        !           504: } {abc: (0.0) :xyz}
        !           505: do_test printf-2.1.2.2 {
        !           506:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 1.0e-20
        !           507: } {abc: (1.0e-20) :xyz}
        !           508: do_test printf-2.1.2.3 {
        !           509:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 1.0e-20
        !           510: } {abc: (1e-20) :xyz}
        !           511: do_test printf-2.1.2.4 {
        !           512:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 1.0e-20
        !           513: } {abc: 1 1 (1e-20) :xyz}
        !           514: do_test printf-2.1.2.5 {
        !           515:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 1.0e-20
        !           516: } {abc: 1 1 (1.00000e-20) :xyz}
        !           517: do_test printf-2.1.2.6 {
        !           518:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 1.0e-20
        !           519: } {abc: 1 1 (000001e-20) :xyz}
        !           520: do_test printf-2.1.2.7 {
        !           521:   sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 1.0e-20
        !           522: } {abc: 1 1 (0.0) :xyz}
        !           523: do_test printf-2.1.2.8 {
        !           524:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 1.0e-20
        !           525: } {abc: 1 1 (1.0e-20) :xyz}
        !           526: do_test printf-2.1.2.9 {
        !           527:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 1.0e-20
        !           528: } {abc: 1 1 (1e-20) :xyz}
        !           529: do_test printf-2.1.3.1 {
        !           530:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 1.0
        !           531: } {abc: (1.0) :xyz}
        !           532: do_test printf-2.1.3.2 {
        !           533:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 1.0
        !           534: } {abc: (1.0e+00) :xyz}
        !           535: do_test printf-2.1.3.3 {
        !           536:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 1.0
        !           537: } {abc: (1) :xyz}
        !           538: do_test printf-2.1.3.4 {
        !           539:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 1.0
        !           540: } {abc: 1 1 (1) :xyz}
        !           541: do_test printf-2.1.3.5 {
        !           542:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 1.0
        !           543: } {abc: 1 1 (1.00000) :xyz}
        !           544: do_test printf-2.1.3.6 {
        !           545:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 1.0
        !           546: } {abc: 1 1 (0000000001) :xyz}
        !           547: do_test printf-2.1.3.7 {
        !           548:   sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 1.0
        !           549: } {abc: 1 1 (1.0) :xyz}
        !           550: do_test printf-2.1.3.8 {
        !           551:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 1.0
        !           552: } {abc: 1 1 (1.0e+00) :xyz}
        !           553: do_test printf-2.1.3.9 {
        !           554:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 1.0
        !           555: } {abc: 1 1 (1) :xyz}
        !           556: do_test printf-2.1.4.1 {
        !           557:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 0.0
        !           558: } {abc: (0.0) :xyz}
        !           559: do_test printf-2.1.4.2 {
        !           560:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 0.0
        !           561: } {abc: (0.0e+00) :xyz}
        !           562: do_test printf-2.1.4.3 {
        !           563:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 0.0
        !           564: } {abc: (0) :xyz}
        !           565: do_test printf-2.1.4.4 {
        !           566:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 0.0
        !           567: } {abc: 1 1 (0) :xyz}
        !           568: do_test printf-2.1.4.5 {
        !           569:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 0.0
        !           570: } {abc: 1 1 (0.00000) :xyz}
        !           571: do_test printf-2.1.4.6 {
        !           572:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 0.0
        !           573: } {abc: 1 1 (0000000000) :xyz}
        !           574: do_test printf-2.1.4.7 {
        !           575:   sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 0.0
        !           576: } {abc: 1 1 (0.0) :xyz}
        !           577: do_test printf-2.1.4.8 {
        !           578:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 0.0
        !           579: } {abc: 1 1 (0.0e+00) :xyz}
        !           580: do_test printf-2.1.4.9 {
        !           581:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 0.0
        !           582: } {abc: 1 1 (0) :xyz}
        !           583: do_test printf-2.1.5.1 {
        !           584:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 100.0
        !           585: } {abc: (100.0) :xyz}
        !           586: do_test printf-2.1.5.2 {
        !           587:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 100.0
        !           588: } {abc: (1.0e+02) :xyz}
        !           589: do_test printf-2.1.5.3 {
        !           590:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 100.0
        !           591: } {abc: (1e+02) :xyz}
        !           592: do_test printf-2.1.5.4 {
        !           593:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 100.0
        !           594: } {abc: 1 1 (100) :xyz}
        !           595: do_test printf-2.1.5.5 {
        !           596:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 100.0
        !           597: } {abc: 1 1 (100.000) :xyz}
        !           598: do_test printf-2.1.5.6 {
        !           599:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 100.0
        !           600: } {abc: 1 1 (0000000100) :xyz}
        !           601: do_test printf-2.1.5.7 {
        !           602:   sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 100.0
        !           603: } {abc: 1 1 (100.0) :xyz}
        !           604: do_test printf-2.1.5.8 {
        !           605:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 100.0
        !           606: } {abc: 1 1 (1.0e+02) :xyz}
        !           607: do_test printf-2.1.5.9 {
        !           608:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 100.0
        !           609: } {abc: 1 1 (1e+02) :xyz}
        !           610: do_test printf-2.1.6.1 {
        !           611:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 9.99999
        !           612: } {abc: (10.0) :xyz}
        !           613: do_test printf-2.1.6.2 {
        !           614:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 9.99999
        !           615: } {abc: (1.0e+01) :xyz}
        !           616: do_test printf-2.1.6.3 {
        !           617:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 9.99999
        !           618: } {abc: (1e+01) :xyz}
        !           619: do_test printf-2.1.6.4 {
        !           620:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 9.99999
        !           621: } {abc: 1 1 (9.99999) :xyz}
        !           622: do_test printf-2.1.6.5 {
        !           623:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 9.99999
        !           624: } {abc: 1 1 (9.99999) :xyz}
        !           625: do_test printf-2.1.6.6 {
        !           626:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 9.99999
        !           627: } {abc: 1 1 (0009.99999) :xyz}
        !           628: do_test printf-2.1.6.7 {
        !           629:   sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 9.99999
        !           630: } {abc: 1 1 (10.0) :xyz}
        !           631: do_test printf-2.1.6.8 {
        !           632:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 9.99999
        !           633: } {abc: 1 1 (1.0e+01) :xyz}
        !           634: do_test printf-2.1.6.9 {
        !           635:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 9.99999
        !           636: } {abc: 1 1 (1e+01) :xyz}
        !           637: do_test printf-2.1.7.1 {
        !           638:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 -0.00543
        !           639: } {abc: (-0.0) :xyz}
        !           640: do_test printf-2.1.7.2 {
        !           641:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 -0.00543
        !           642: } {abc: (-5.4e-03) :xyz}
        !           643: do_test printf-2.1.7.3 {
        !           644:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 -0.00543
        !           645: } {abc: (-0.005) :xyz}
        !           646: do_test printf-2.1.7.4 {
        !           647:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 -0.00543
        !           648: } {abc: 1 1 (-0.00543) :xyz}
        !           649: do_test printf-2.1.7.5 {
        !           650:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 -0.00543
        !           651: } {abc: 1 1 (-0.00543000) :xyz}
        !           652: do_test printf-2.1.7.6 {
        !           653:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 -0.00543
        !           654: } {abc: 1 1 (-000.00543) :xyz}
        !           655: do_test printf-2.1.7.7 {
        !           656:   sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 -0.00543
        !           657: } {abc: 1 1 (-0.0) :xyz}
        !           658: do_test printf-2.1.7.8 {
        !           659:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 -0.00543
        !           660: } {abc: 1 1 (-5.4e-03) :xyz}
        !           661: do_test printf-2.1.7.9 {
        !           662:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 -0.00543
        !           663: } {abc: 1 1 (-0.005) :xyz}
        !           664: do_test printf-2.1.8.1 {
        !           665:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 -1.0
        !           666: } {abc: (-1.0) :xyz}
        !           667: do_test printf-2.1.8.2 {
        !           668:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 -1.0
        !           669: } {abc: (-1.0e+00) :xyz}
        !           670: do_test printf-2.1.8.3 {
        !           671:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 -1.0
        !           672: } {abc: (-1) :xyz}
        !           673: do_test printf-2.1.8.4 {
        !           674:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 -1.0
        !           675: } {abc: 1 1 (-1) :xyz}
        !           676: do_test printf-2.1.8.5 {
        !           677:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 -1.0
        !           678: } {abc: 1 1 (-1.00000) :xyz}
        !           679: do_test printf-2.1.8.6 {
        !           680:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 -1.0
        !           681: } {abc: 1 1 (-000000001) :xyz}
        !           682: do_test printf-2.1.8.7 {
        !           683:   sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 -1.0
        !           684: } {abc: 1 1 (-1.0) :xyz}
        !           685: do_test printf-2.1.8.8 {
        !           686:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 -1.0
        !           687: } {abc: 1 1 (-1.0e+00) :xyz}
        !           688: do_test printf-2.1.8.9 {
        !           689:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 -1.0
        !           690: } {abc: 1 1 (-1) :xyz}
        !           691: do_test printf-2.1.9.1 {
        !           692:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 -99.99999
        !           693: } {abc: (-100.0) :xyz}
        !           694: do_test printf-2.1.9.2 {
        !           695:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 -99.99999
        !           696: } {abc: (-1.0e+02) :xyz}
        !           697: do_test printf-2.1.9.3 {
        !           698:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 -99.99999
        !           699: } {abc: (-1e+02) :xyz}
        !           700: do_test printf-2.1.9.4 {
        !           701:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 -99.99999
        !           702: } {abc: 1 1 (-100) :xyz}
        !           703: do_test printf-2.1.9.5 {
        !           704:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 -99.99999
        !           705: } {abc: 1 1 (-100.000) :xyz}
        !           706: do_test printf-2.1.9.6 {
        !           707:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 -99.99999
        !           708: } {abc: 1 1 (-000000100) :xyz}
        !           709: do_test printf-2.1.9.7 {
        !           710:   sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 -99.99999
        !           711: } {abc: 1 1 (-100.0) :xyz}
        !           712: do_test printf-2.1.9.8 {
        !           713:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 -99.99999
        !           714: } {abc: 1 1 (-1.0e+02) :xyz}
        !           715: do_test printf-2.1.9.9 {
        !           716:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 -99.99999
        !           717: } {abc: 1 1 (-1e+02) :xyz}
        !           718: do_test printf-2.1.10.1 {
        !           719:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 3.14e+9
        !           720: } {abc: (3140000000.0) :xyz}
        !           721: do_test printf-2.1.10.2 {
        !           722:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 3.14e+9
        !           723: } {abc: (3.1e+09) :xyz}
        !           724: do_test printf-2.1.10.3 {
        !           725:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 3.14e+9
        !           726: } {abc: (3e+09) :xyz}
        !           727: do_test printf-2.1.10.4 {
        !           728:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 3.14e+9
        !           729: } {abc: 1 1 (3.14e+09) :xyz}
        !           730: do_test printf-2.1.10.5 {
        !           731:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 3.14e+9
        !           732: } {abc: 1 1 (3.14000e+09) :xyz}
        !           733: do_test printf-2.1.10.6 {
        !           734:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 3.14e+9
        !           735: } {abc: 1 1 (003.14e+09) :xyz}
        !           736: do_test printf-2.1.10.7 {
        !           737:   sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 3.14e+9
        !           738: } {abc: 1 1 (3140000000.0) :xyz}
        !           739: do_test printf-2.1.10.8 {
        !           740:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 3.14e+9
        !           741: } {abc: 1 1 (3.1e+09) :xyz}
        !           742: do_test printf-2.1.10.9 {
        !           743:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 3.14e+9
        !           744: } {abc: 1 1 (3e+09) :xyz}
        !           745: do_test printf-2.1.11.2 {
        !           746:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 -4.72732e+88
        !           747: } {abc: (-4.7e+88) :xyz}
        !           748: do_test printf-2.1.11.3 {
        !           749:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 -4.72732e+88
        !           750: } {abc: (-5e+88) :xyz}
        !           751: do_test printf-2.1.11.4 {
        !           752:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 -4.72732e+88
        !           753: } {abc: 1 1 (-4.72732e+88) :xyz}
        !           754: do_test printf-2.1.11.5 {
        !           755:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 -4.72732e+88
        !           756: } {abc: 1 1 (-4.72732e+88) :xyz}
        !           757: do_test printf-2.1.11.6 {
        !           758:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 -4.72732e+88
        !           759: } {abc: 1 1 (-4.72732e+88) :xyz}
        !           760: do_test printf-2.1.11.8 {
        !           761:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 -4.72732e+88
        !           762: } {abc: 1 1 (-4.7e+88) :xyz}
        !           763: do_test printf-2.1.11.9 {
        !           764:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 -4.72732e+88
        !           765: } {abc: 1 1 (-5e+88) :xyz}
        !           766: do_test printf-2.1.12.2 {
        !           767:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 9.87991e+143
        !           768: } {abc: (9.9e+143) :xyz}
        !           769: do_test printf-2.1.12.3 {
        !           770:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 9.87991e+143
        !           771: } {abc: (1e+144) :xyz}
        !           772: do_test printf-2.1.12.4 {
        !           773:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 9.87991e+143
        !           774: } {abc: 1 1 (9.87991e+143) :xyz}
        !           775: do_test printf-2.1.12.5 {
        !           776:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 9.87991e+143
        !           777: } {abc: 1 1 (9.87991e+143) :xyz}
        !           778: do_test printf-2.1.12.6 {
        !           779:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 9.87991e+143
        !           780: } {abc: 1 1 (9.87991e+143) :xyz}
        !           781: do_test printf-2.1.12.8 {
        !           782:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 9.87991e+143
        !           783: } {abc: 1 1 (9.9e+143) :xyz}
        !           784: do_test printf-2.1.12.9 {
        !           785:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 9.87991e+143
        !           786: } {abc: 1 1 (1e+144) :xyz}
        !           787: do_test printf-2.1.13.1 {
        !           788:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 -6.287291e-9
        !           789: } {abc: (-0.0) :xyz}
        !           790: do_test printf-2.1.13.2 {
        !           791:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 -6.287291e-9
        !           792: } {abc: (-6.3e-09) :xyz}
        !           793: do_test printf-2.1.13.3 {
        !           794:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 -6.287291e-9
        !           795: } {abc: (-6e-09) :xyz}
        !           796: do_test printf-2.1.13.4 {
        !           797:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 -6.287291e-9
        !           798: } {abc: 1 1 (-6.28729e-09) :xyz}
        !           799: do_test printf-2.1.13.5 {
        !           800:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 -6.287291e-9
        !           801: } {abc: 1 1 (-6.28729e-09) :xyz}
        !           802: do_test printf-2.1.13.6 {
        !           803:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 -6.287291e-9
        !           804: } {abc: 1 1 (-6.28729e-09) :xyz}
        !           805: do_test printf-2.1.13.7 {
        !           806:   sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 -6.287291e-9
        !           807: } {abc: 1 1 (-0.0) :xyz}
        !           808: do_test printf-2.1.13.8 {
        !           809:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 -6.287291e-9
        !           810: } {abc: 1 1 (-6.3e-09) :xyz}
        !           811: do_test printf-2.1.13.9 {
        !           812:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 -6.287291e-9
        !           813: } {abc: 1 1 (-6e-09) :xyz}
        !           814: do_test printf-2.1.14.1 {
        !           815:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 1 1 3.38826392e-110
        !           816: } {abc: (0.0) :xyz}
        !           817: do_test printf-2.1.14.2 {
        !           818:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 1 1 3.38826392e-110
        !           819: } {abc: (3.4e-110) :xyz}
        !           820: do_test printf-2.1.14.3 {
        !           821:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 1 1 3.38826392e-110
        !           822: } {abc: (3e-110) :xyz}
        !           823: do_test printf-2.1.14.4 {
        !           824:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 1 1 3.38826392e-110
        !           825: } {abc: 1 1 (3.38826e-110) :xyz}
        !           826: do_test printf-2.1.14.5 {
        !           827:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 1 1 3.38826392e-110
        !           828: } {abc: 1 1 (3.38826e-110) :xyz}
        !           829: do_test printf-2.1.14.6 {
        !           830:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 1 1 3.38826392e-110
        !           831: } {abc: 1 1 (3.38826e-110) :xyz}
        !           832: do_test printf-2.1.14.7 {
        !           833:   sqlite3_mprintf_double {abc: %d %d (%1.1f) :xyz} 1 1 3.38826392e-110
        !           834: } {abc: 1 1 (0.0) :xyz}
        !           835: do_test printf-2.1.14.8 {
        !           836:   sqlite3_mprintf_double {abc: %d %d (%1.1e) :xyz} 1 1 3.38826392e-110
        !           837: } {abc: 1 1 (3.4e-110) :xyz}
        !           838: do_test printf-2.1.14.9 {
        !           839:   sqlite3_mprintf_double {abc: %d %d (%1.1g) :xyz} 1 1 3.38826392e-110
        !           840: } {abc: 1 1 (3e-110) :xyz}
        !           841: do_test printf-2.2.1.1 {
        !           842:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 0.001
        !           843: } {abc: (0.00100) :xyz}
        !           844: do_test printf-2.2.1.2 {
        !           845:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 0.001
        !           846: } {abc: (1.00000e-03) :xyz}
        !           847: do_test printf-2.2.1.3 {
        !           848:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 0.001
        !           849: } {abc: (0.001) :xyz}
        !           850: do_test printf-2.2.1.4 {
        !           851:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 0.001
        !           852: } {abc: 5 5 (0.001) :xyz}
        !           853: do_test printf-2.2.1.5 {
        !           854:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 0.001
        !           855: } {abc: 5 5 (0.00100000) :xyz}
        !           856: do_test printf-2.2.1.6 {
        !           857:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 0.001
        !           858: } {abc: 5 5 (000000.001) :xyz}
        !           859: do_test printf-2.2.1.7 {
        !           860:   sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 0.001
        !           861: } {abc: 5 5 (0.00100) :xyz}
        !           862: do_test printf-2.2.1.8 {
        !           863:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 0.001
        !           864: } {abc: 5 5 (1.00000e-03) :xyz}
        !           865: do_test printf-2.2.1.9 {
        !           866:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 0.001
        !           867: } {abc: 5 5 (0.001) :xyz}
        !           868: do_test printf-2.2.2.1 {
        !           869:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 1.0e-20
        !           870: } {abc: (0.00000) :xyz}
        !           871: do_test printf-2.2.2.2 {
        !           872:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 1.0e-20
        !           873: } {abc: (1.00000e-20) :xyz}
        !           874: do_test printf-2.2.2.3 {
        !           875:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 1.0e-20
        !           876: } {abc: (1e-20) :xyz}
        !           877: do_test printf-2.2.2.4 {
        !           878:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 1.0e-20
        !           879: } {abc: 5 5 (1e-20) :xyz}
        !           880: do_test printf-2.2.2.5 {
        !           881:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 1.0e-20
        !           882: } {abc: 5 5 (1.00000e-20) :xyz}
        !           883: do_test printf-2.2.2.6 {
        !           884:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 1.0e-20
        !           885: } {abc: 5 5 (000001e-20) :xyz}
        !           886: do_test printf-2.2.2.7 {
        !           887:   sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 1.0e-20
        !           888: } {abc: 5 5 (0.00000) :xyz}
        !           889: do_test printf-2.2.2.8 {
        !           890:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 1.0e-20
        !           891: } {abc: 5 5 (1.00000e-20) :xyz}
        !           892: do_test printf-2.2.2.9 {
        !           893:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 1.0e-20
        !           894: } {abc: 5 5 (1e-20) :xyz}
        !           895: do_test printf-2.2.3.1 {
        !           896:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 1.0
        !           897: } {abc: (1.00000) :xyz}
        !           898: do_test printf-2.2.3.2 {
        !           899:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 1.0
        !           900: } {abc: (1.00000e+00) :xyz}
        !           901: do_test printf-2.2.3.3 {
        !           902:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 1.0
        !           903: } {abc: (    1) :xyz}
        !           904: do_test printf-2.2.3.4 {
        !           905:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 1.0
        !           906: } {abc: 5 5 (1) :xyz}
        !           907: do_test printf-2.2.3.5 {
        !           908:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 1.0
        !           909: } {abc: 5 5 (1.00000) :xyz}
        !           910: do_test printf-2.2.3.6 {
        !           911:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 1.0
        !           912: } {abc: 5 5 (0000000001) :xyz}
        !           913: do_test printf-2.2.3.7 {
        !           914:   sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 1.0
        !           915: } {abc: 5 5 (1.00000) :xyz}
        !           916: do_test printf-2.2.3.8 {
        !           917:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 1.0
        !           918: } {abc: 5 5 (1.00000e+00) :xyz}
        !           919: do_test printf-2.2.3.9 {
        !           920:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 1.0
        !           921: } {abc: 5 5 (    1) :xyz}
        !           922: do_test printf-2.2.4.1 {
        !           923:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 0.0
        !           924: } {abc: (0.00000) :xyz}
        !           925: do_test printf-2.2.4.2 {
        !           926:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 0.0
        !           927: } {abc: (0.00000e+00) :xyz}
        !           928: do_test printf-2.2.4.3 {
        !           929:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 0.0
        !           930: } {abc: (    0) :xyz}
        !           931: do_test printf-2.2.4.4 {
        !           932:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 0.0
        !           933: } {abc: 5 5 (0) :xyz}
        !           934: do_test printf-2.2.4.5 {
        !           935:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 0.0
        !           936: } {abc: 5 5 (0.00000) :xyz}
        !           937: do_test printf-2.2.4.6 {
        !           938:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 0.0
        !           939: } {abc: 5 5 (0000000000) :xyz}
        !           940: do_test printf-2.2.4.7 {
        !           941:   sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 0.0
        !           942: } {abc: 5 5 (0.00000) :xyz}
        !           943: do_test printf-2.2.4.8 {
        !           944:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 0.0
        !           945: } {abc: 5 5 (0.00000e+00) :xyz}
        !           946: do_test printf-2.2.4.9 {
        !           947:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 0.0
        !           948: } {abc: 5 5 (    0) :xyz}
        !           949: do_test printf-2.2.5.1 {
        !           950:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 100.0
        !           951: } {abc: (100.00000) :xyz}
        !           952: do_test printf-2.2.5.2 {
        !           953:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 100.0
        !           954: } {abc: (1.00000e+02) :xyz}
        !           955: do_test printf-2.2.5.3 {
        !           956:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 100.0
        !           957: } {abc: (  100) :xyz}
        !           958: do_test printf-2.2.5.4 {
        !           959:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 100.0
        !           960: } {abc: 5 5 (100) :xyz}
        !           961: do_test printf-2.2.5.5 {
        !           962:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 100.0
        !           963: } {abc: 5 5 (100.000) :xyz}
        !           964: do_test printf-2.2.5.6 {
        !           965:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 100.0
        !           966: } {abc: 5 5 (0000000100) :xyz}
        !           967: do_test printf-2.2.5.7 {
        !           968:   sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 100.0
        !           969: } {abc: 5 5 (100.00000) :xyz}
        !           970: do_test printf-2.2.5.8 {
        !           971:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 100.0
        !           972: } {abc: 5 5 (1.00000e+02) :xyz}
        !           973: do_test printf-2.2.5.9 {
        !           974:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 100.0
        !           975: } {abc: 5 5 (  100) :xyz}
        !           976: do_test printf-2.2.6.1 {
        !           977:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 9.99999
        !           978: } {abc: (9.99999) :xyz}
        !           979: do_test printf-2.2.6.2 {
        !           980:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 9.99999
        !           981: } {abc: (9.99999e+00) :xyz}
        !           982: do_test printf-2.2.6.3 {
        !           983:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 9.99999
        !           984: } {abc: (   10) :xyz}
        !           985: do_test printf-2.2.6.4 {
        !           986:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 9.99999
        !           987: } {abc: 5 5 (9.99999) :xyz}
        !           988: do_test printf-2.2.6.5 {
        !           989:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 9.99999
        !           990: } {abc: 5 5 (9.99999) :xyz}
        !           991: do_test printf-2.2.6.6 {
        !           992:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 9.99999
        !           993: } {abc: 5 5 (0009.99999) :xyz}
        !           994: do_test printf-2.2.6.7 {
        !           995:   sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 9.99999
        !           996: } {abc: 5 5 (9.99999) :xyz}
        !           997: do_test printf-2.2.6.8 {
        !           998:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 9.99999
        !           999: } {abc: 5 5 (9.99999e+00) :xyz}
        !          1000: do_test printf-2.2.6.9 {
        !          1001:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 9.99999
        !          1002: } {abc: 5 5 (   10) :xyz}
        !          1003: do_test printf-2.2.7.1 {
        !          1004:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 -0.00543
        !          1005: } {abc: (-0.00543) :xyz}
        !          1006: do_test printf-2.2.7.2 {
        !          1007:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 -0.00543
        !          1008: } {abc: (-5.43000e-03) :xyz}
        !          1009: do_test printf-2.2.7.3 {
        !          1010:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 -0.00543
        !          1011: } {abc: (-0.00543) :xyz}
        !          1012: do_test printf-2.2.7.4 {
        !          1013:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 -0.00543
        !          1014: } {abc: 5 5 (-0.00543) :xyz}
        !          1015: do_test printf-2.2.7.5 {
        !          1016:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 -0.00543
        !          1017: } {abc: 5 5 (-0.00543000) :xyz}
        !          1018: do_test printf-2.2.7.6 {
        !          1019:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 -0.00543
        !          1020: } {abc: 5 5 (-000.00543) :xyz}
        !          1021: do_test printf-2.2.7.7 {
        !          1022:   sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 -0.00543
        !          1023: } {abc: 5 5 (-0.00543) :xyz}
        !          1024: do_test printf-2.2.7.8 {
        !          1025:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 -0.00543
        !          1026: } {abc: 5 5 (-5.43000e-03) :xyz}
        !          1027: do_test printf-2.2.7.9 {
        !          1028:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 -0.00543
        !          1029: } {abc: 5 5 (-0.00543) :xyz}
        !          1030: do_test printf-2.2.8.1 {
        !          1031:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 -1.0
        !          1032: } {abc: (-1.00000) :xyz}
        !          1033: do_test printf-2.2.8.2 {
        !          1034:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 -1.0
        !          1035: } {abc: (-1.00000e+00) :xyz}
        !          1036: do_test printf-2.2.8.3 {
        !          1037:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 -1.0
        !          1038: } {abc: (   -1) :xyz}
        !          1039: do_test printf-2.2.8.4 {
        !          1040:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 -1.0
        !          1041: } {abc: 5 5 (-1) :xyz}
        !          1042: do_test printf-2.2.8.5 {
        !          1043:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 -1.0
        !          1044: } {abc: 5 5 (-1.00000) :xyz}
        !          1045: do_test printf-2.2.8.6 {
        !          1046:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 -1.0
        !          1047: } {abc: 5 5 (-000000001) :xyz}
        !          1048: do_test printf-2.2.8.7 {
        !          1049:   sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 -1.0
        !          1050: } {abc: 5 5 (-1.00000) :xyz}
        !          1051: do_test printf-2.2.8.8 {
        !          1052:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 -1.0
        !          1053: } {abc: 5 5 (-1.00000e+00) :xyz}
        !          1054: do_test printf-2.2.8.9 {
        !          1055:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 -1.0
        !          1056: } {abc: 5 5 (   -1) :xyz}
        !          1057: do_test printf-2.2.9.1 {
        !          1058:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 -99.99999
        !          1059: } {abc: (-99.99999) :xyz}
        !          1060: do_test printf-2.2.9.2 {
        !          1061:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 -99.99999
        !          1062: } {abc: (-1.00000e+02) :xyz}
        !          1063: do_test printf-2.2.9.3 {
        !          1064:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 -99.99999
        !          1065: } {abc: ( -100) :xyz}
        !          1066: do_test printf-2.2.9.4 {
        !          1067:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 -99.99999
        !          1068: } {abc: 5 5 (-100) :xyz}
        !          1069: do_test printf-2.2.9.5 {
        !          1070:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 -99.99999
        !          1071: } {abc: 5 5 (-100.000) :xyz}
        !          1072: do_test printf-2.2.9.6 {
        !          1073:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 -99.99999
        !          1074: } {abc: 5 5 (-000000100) :xyz}
        !          1075: do_test printf-2.2.9.7 {
        !          1076:   sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 -99.99999
        !          1077: } {abc: 5 5 (-99.99999) :xyz}
        !          1078: do_test printf-2.2.9.8 {
        !          1079:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 -99.99999
        !          1080: } {abc: 5 5 (-1.00000e+02) :xyz}
        !          1081: do_test printf-2.2.9.9 {
        !          1082:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 -99.99999
        !          1083: } {abc: 5 5 ( -100) :xyz}
        !          1084: do_test printf-2.2.10.1 {
        !          1085:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 3.14e+9
        !          1086: } {abc: (3140000000.00000) :xyz}
        !          1087: do_test printf-2.2.10.2 {
        !          1088:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 3.14e+9
        !          1089: } {abc: (3.14000e+09) :xyz}
        !          1090: do_test printf-2.2.10.3 {
        !          1091:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 3.14e+9
        !          1092: } {abc: (3.14e+09) :xyz}
        !          1093: do_test printf-2.2.10.4 {
        !          1094:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 3.14e+9
        !          1095: } {abc: 5 5 (3.14e+09) :xyz}
        !          1096: do_test printf-2.2.10.5 {
        !          1097:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 3.14e+9
        !          1098: } {abc: 5 5 (3.14000e+09) :xyz}
        !          1099: do_test printf-2.2.10.6 {
        !          1100:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 3.14e+9
        !          1101: } {abc: 5 5 (003.14e+09) :xyz}
        !          1102: do_test printf-2.2.10.7 {
        !          1103:   sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 3.14e+9
        !          1104: } {abc: 5 5 (3140000000.00000) :xyz}
        !          1105: do_test printf-2.2.10.8 {
        !          1106:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 3.14e+9
        !          1107: } {abc: 5 5 (3.14000e+09) :xyz}
        !          1108: do_test printf-2.2.10.9 {
        !          1109:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 3.14e+9
        !          1110: } {abc: 5 5 (3.14e+09) :xyz}
        !          1111: do_test printf-2.2.11.2 {
        !          1112:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 -4.72732e+88
        !          1113: } {abc: (-4.72732e+88) :xyz}
        !          1114: do_test printf-2.2.11.3 {
        !          1115:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 -4.72732e+88
        !          1116: } {abc: (-4.7273e+88) :xyz}
        !          1117: do_test printf-2.2.11.4 {
        !          1118:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 -4.72732e+88
        !          1119: } {abc: 5 5 (-4.72732e+88) :xyz}
        !          1120: do_test printf-2.2.11.5 {
        !          1121:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 -4.72732e+88
        !          1122: } {abc: 5 5 (-4.72732e+88) :xyz}
        !          1123: do_test printf-2.2.11.6 {
        !          1124:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 -4.72732e+88
        !          1125: } {abc: 5 5 (-4.72732e+88) :xyz}
        !          1126: do_test printf-2.2.11.8 {
        !          1127:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 -4.72732e+88
        !          1128: } {abc: 5 5 (-4.72732e+88) :xyz}
        !          1129: do_test printf-2.2.11.9 {
        !          1130:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 -4.72732e+88
        !          1131: } {abc: 5 5 (-4.7273e+88) :xyz}
        !          1132: do_test printf-2.2.12.2 {
        !          1133:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 9.87991e+143
        !          1134: } {abc: (9.87991e+143) :xyz}
        !          1135: do_test printf-2.2.12.3 {
        !          1136:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 9.87991e+143
        !          1137: } {abc: (9.8799e+143) :xyz}
        !          1138: do_test printf-2.2.12.4 {
        !          1139:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 9.87991e+143
        !          1140: } {abc: 5 5 (9.87991e+143) :xyz}
        !          1141: do_test printf-2.2.12.5 {
        !          1142:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 9.87991e+143
        !          1143: } {abc: 5 5 (9.87991e+143) :xyz}
        !          1144: do_test printf-2.2.12.6 {
        !          1145:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 9.87991e+143
        !          1146: } {abc: 5 5 (9.87991e+143) :xyz}
        !          1147: do_test printf-2.2.12.8 {
        !          1148:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 9.87991e+143
        !          1149: } {abc: 5 5 (9.87991e+143) :xyz}
        !          1150: do_test printf-2.2.12.9 {
        !          1151:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 9.87991e+143
        !          1152: } {abc: 5 5 (9.8799e+143) :xyz}
        !          1153: do_test printf-2.2.13.1 {
        !          1154:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 -6.287291e-9
        !          1155: } {abc: (-0.00000) :xyz}
        !          1156: do_test printf-2.2.13.2 {
        !          1157:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 -6.287291e-9
        !          1158: } {abc: (-6.28729e-09) :xyz}
        !          1159: do_test printf-2.2.13.3 {
        !          1160:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 -6.287291e-9
        !          1161: } {abc: (-6.2873e-09) :xyz}
        !          1162: do_test printf-2.2.13.4 {
        !          1163:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 -6.287291e-9
        !          1164: } {abc: 5 5 (-6.28729e-09) :xyz}
        !          1165: do_test printf-2.2.13.5 {
        !          1166:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 -6.287291e-9
        !          1167: } {abc: 5 5 (-6.28729e-09) :xyz}
        !          1168: do_test printf-2.2.13.6 {
        !          1169:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 -6.287291e-9
        !          1170: } {abc: 5 5 (-6.28729e-09) :xyz}
        !          1171: do_test printf-2.2.13.7 {
        !          1172:   sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 -6.287291e-9
        !          1173: } {abc: 5 5 (-0.00000) :xyz}
        !          1174: do_test printf-2.2.13.8 {
        !          1175:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 -6.287291e-9
        !          1176: } {abc: 5 5 (-6.28729e-09) :xyz}
        !          1177: do_test printf-2.2.13.9 {
        !          1178:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 -6.287291e-9
        !          1179: } {abc: 5 5 (-6.2873e-09) :xyz}
        !          1180: do_test printf-2.2.14.1 {
        !          1181:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 5 5 3.38826392e-110
        !          1182: } {abc: (0.00000) :xyz}
        !          1183: do_test printf-2.2.14.2 {
        !          1184:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 5 5 3.38826392e-110
        !          1185: } {abc: (3.38826e-110) :xyz}
        !          1186: do_test printf-2.2.14.3 {
        !          1187:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 5 5 3.38826392e-110
        !          1188: } {abc: (3.3883e-110) :xyz}
        !          1189: do_test printf-2.2.14.4 {
        !          1190:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 5 5 3.38826392e-110
        !          1191: } {abc: 5 5 (3.38826e-110) :xyz}
        !          1192: do_test printf-2.2.14.5 {
        !          1193:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 5 5 3.38826392e-110
        !          1194: } {abc: 5 5 (3.38826e-110) :xyz}
        !          1195: do_test printf-2.2.14.6 {
        !          1196:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 5 5 3.38826392e-110
        !          1197: } {abc: 5 5 (3.38826e-110) :xyz}
        !          1198: do_test printf-2.2.14.7 {
        !          1199:   sqlite3_mprintf_double {abc: %d %d (%5.5f) :xyz} 5 5 3.38826392e-110
        !          1200: } {abc: 5 5 (0.00000) :xyz}
        !          1201: do_test printf-2.2.14.8 {
        !          1202:   sqlite3_mprintf_double {abc: %d %d (%5.5e) :xyz} 5 5 3.38826392e-110
        !          1203: } {abc: 5 5 (3.38826e-110) :xyz}
        !          1204: do_test printf-2.2.14.9 {
        !          1205:   sqlite3_mprintf_double {abc: %d %d (%5.5g) :xyz} 5 5 3.38826392e-110
        !          1206: } {abc: 5 5 (3.3883e-110) :xyz}
        !          1207: do_test printf-2.3.1.1 {
        !          1208:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 0.001
        !          1209: } {abc: (0.0010000000) :xyz}
        !          1210: do_test printf-2.3.1.2 {
        !          1211:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 0.001
        !          1212: } {abc: (1.0000000000e-03) :xyz}
        !          1213: do_test printf-2.3.1.3 {
        !          1214:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 0.001
        !          1215: } {abc: (     0.001) :xyz}
        !          1216: do_test printf-2.3.1.4 {
        !          1217:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 0.001
        !          1218: } {abc: 10 10 (0.001) :xyz}
        !          1219: do_test printf-2.3.1.5 {
        !          1220:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 0.001
        !          1221: } {abc: 10 10 (0.00100000) :xyz}
        !          1222: do_test printf-2.3.1.6 {
        !          1223:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 0.001
        !          1224: } {abc: 10 10 (000000.001) :xyz}
        !          1225: do_test printf-2.3.1.7 {
        !          1226:   sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 0.001
        !          1227: } {abc: 10 10 (0.0010000000) :xyz}
        !          1228: do_test printf-2.3.1.8 {
        !          1229:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 0.001
        !          1230: } {abc: 10 10 (1.0000000000e-03) :xyz}
        !          1231: do_test printf-2.3.1.9 {
        !          1232:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 0.001
        !          1233: } {abc: 10 10 (     0.001) :xyz}
        !          1234: do_test printf-2.3.2.1 {
        !          1235:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 1.0e-20
        !          1236: } {abc: (0.0000000000) :xyz}
        !          1237: do_test printf-2.3.2.2 {
        !          1238:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 1.0e-20
        !          1239: } {abc: (1.0000000000e-20) :xyz}
        !          1240: do_test printf-2.3.2.3 {
        !          1241:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 1.0e-20
        !          1242: } {abc: (     1e-20) :xyz}
        !          1243: do_test printf-2.3.2.4 {
        !          1244:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 1.0e-20
        !          1245: } {abc: 10 10 (1e-20) :xyz}
        !          1246: do_test printf-2.3.2.5 {
        !          1247:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 1.0e-20
        !          1248: } {abc: 10 10 (1.00000e-20) :xyz}
        !          1249: do_test printf-2.3.2.6 {
        !          1250:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 1.0e-20
        !          1251: } {abc: 10 10 (000001e-20) :xyz}
        !          1252: do_test printf-2.3.2.7 {
        !          1253:   sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 1.0e-20
        !          1254: } {abc: 10 10 (0.0000000000) :xyz}
        !          1255: do_test printf-2.3.2.8 {
        !          1256:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 1.0e-20
        !          1257: } {abc: 10 10 (1.0000000000e-20) :xyz}
        !          1258: do_test printf-2.3.2.9 {
        !          1259:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 1.0e-20
        !          1260: } {abc: 10 10 (     1e-20) :xyz}
        !          1261: do_test printf-2.3.3.1 {
        !          1262:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 1.0
        !          1263: } {abc: (1.0000000000) :xyz}
        !          1264: do_test printf-2.3.3.2 {
        !          1265:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 1.0
        !          1266: } {abc: (1.0000000000e+00) :xyz}
        !          1267: do_test printf-2.3.3.3 {
        !          1268:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 1.0
        !          1269: } {abc: (         1) :xyz}
        !          1270: do_test printf-2.3.3.4 {
        !          1271:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 1.0
        !          1272: } {abc: 10 10 (1) :xyz}
        !          1273: do_test printf-2.3.3.5 {
        !          1274:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 1.0
        !          1275: } {abc: 10 10 (1.00000) :xyz}
        !          1276: do_test printf-2.3.3.6 {
        !          1277:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 1.0
        !          1278: } {abc: 10 10 (0000000001) :xyz}
        !          1279: do_test printf-2.3.3.7 {
        !          1280:   sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 1.0
        !          1281: } {abc: 10 10 (1.0000000000) :xyz}
        !          1282: do_test printf-2.3.3.8 {
        !          1283:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 1.0
        !          1284: } {abc: 10 10 (1.0000000000e+00) :xyz}
        !          1285: do_test printf-2.3.3.9 {
        !          1286:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 1.0
        !          1287: } {abc: 10 10 (         1) :xyz}
        !          1288: do_test printf-2.3.4.1 {
        !          1289:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 0.0
        !          1290: } {abc: (0.0000000000) :xyz}
        !          1291: do_test printf-2.3.4.2 {
        !          1292:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 0.0
        !          1293: } {abc: (0.0000000000e+00) :xyz}
        !          1294: do_test printf-2.3.4.3 {
        !          1295:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 0.0
        !          1296: } {abc: (         0) :xyz}
        !          1297: do_test printf-2.3.4.4 {
        !          1298:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 0.0
        !          1299: } {abc: 10 10 (0) :xyz}
        !          1300: do_test printf-2.3.4.5 {
        !          1301:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 0.0
        !          1302: } {abc: 10 10 (0.00000) :xyz}
        !          1303: do_test printf-2.3.4.6 {
        !          1304:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 0.0
        !          1305: } {abc: 10 10 (0000000000) :xyz}
        !          1306: do_test printf-2.3.4.7 {
        !          1307:   sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 0.0
        !          1308: } {abc: 10 10 (0.0000000000) :xyz}
        !          1309: do_test printf-2.3.4.8 {
        !          1310:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 0.0
        !          1311: } {abc: 10 10 (0.0000000000e+00) :xyz}
        !          1312: do_test printf-2.3.4.9 {
        !          1313:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 0.0
        !          1314: } {abc: 10 10 (         0) :xyz}
        !          1315: do_test printf-2.3.5.1 {
        !          1316:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 100.0
        !          1317: } {abc: (100.0000000000) :xyz}
        !          1318: do_test printf-2.3.5.2 {
        !          1319:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 100.0
        !          1320: } {abc: (1.0000000000e+02) :xyz}
        !          1321: do_test printf-2.3.5.3 {
        !          1322:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 100.0
        !          1323: } {abc: (       100) :xyz}
        !          1324: do_test printf-2.3.5.4 {
        !          1325:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 100.0
        !          1326: } {abc: 10 10 (100) :xyz}
        !          1327: do_test printf-2.3.5.5 {
        !          1328:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 100.0
        !          1329: } {abc: 10 10 (100.000) :xyz}
        !          1330: do_test printf-2.3.5.6 {
        !          1331:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 100.0
        !          1332: } {abc: 10 10 (0000000100) :xyz}
        !          1333: do_test printf-2.3.5.7 {
        !          1334:   sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 100.0
        !          1335: } {abc: 10 10 (100.0000000000) :xyz}
        !          1336: do_test printf-2.3.5.8 {
        !          1337:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 100.0
        !          1338: } {abc: 10 10 (1.0000000000e+02) :xyz}
        !          1339: do_test printf-2.3.5.9 {
        !          1340:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 100.0
        !          1341: } {abc: 10 10 (       100) :xyz}
        !          1342: do_test printf-2.3.6.1 {
        !          1343:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 9.99999
        !          1344: } {abc: (9.9999900000) :xyz}
        !          1345: do_test printf-2.3.6.2 {
        !          1346:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 9.99999
        !          1347: } {abc: (9.9999900000e+00) :xyz}
        !          1348: do_test printf-2.3.6.3 {
        !          1349:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 9.99999
        !          1350: } {abc: (   9.99999) :xyz}
        !          1351: do_test printf-2.3.6.4 {
        !          1352:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 9.99999
        !          1353: } {abc: 10 10 (9.99999) :xyz}
        !          1354: do_test printf-2.3.6.5 {
        !          1355:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 9.99999
        !          1356: } {abc: 10 10 (9.99999) :xyz}
        !          1357: do_test printf-2.3.6.6 {
        !          1358:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 9.99999
        !          1359: } {abc: 10 10 (0009.99999) :xyz}
        !          1360: do_test printf-2.3.6.7 {
        !          1361:   sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 9.99999
        !          1362: } {abc: 10 10 (9.9999900000) :xyz}
        !          1363: do_test printf-2.3.6.8 {
        !          1364:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 9.99999
        !          1365: } {abc: 10 10 (9.9999900000e+00) :xyz}
        !          1366: do_test printf-2.3.6.9 {
        !          1367:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 9.99999
        !          1368: } {abc: 10 10 (   9.99999) :xyz}
        !          1369: do_test printf-2.3.7.1 {
        !          1370:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 -0.00543
        !          1371: } {abc: (-0.0054300000) :xyz}
        !          1372: do_test printf-2.3.7.2 {
        !          1373:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 -0.00543
        !          1374: } {abc: (-5.4300000000e-03) :xyz}
        !          1375: do_test printf-2.3.7.3 {
        !          1376:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 -0.00543
        !          1377: } {abc: (  -0.00543) :xyz}
        !          1378: do_test printf-2.3.7.4 {
        !          1379:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 -0.00543
        !          1380: } {abc: 10 10 (-0.00543) :xyz}
        !          1381: do_test printf-2.3.7.5 {
        !          1382:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 -0.00543
        !          1383: } {abc: 10 10 (-0.00543000) :xyz}
        !          1384: do_test printf-2.3.7.6 {
        !          1385:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 -0.00543
        !          1386: } {abc: 10 10 (-000.00543) :xyz}
        !          1387: do_test printf-2.3.7.7 {
        !          1388:   sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 -0.00543
        !          1389: } {abc: 10 10 (-0.0054300000) :xyz}
        !          1390: do_test printf-2.3.7.8 {
        !          1391:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 -0.00543
        !          1392: } {abc: 10 10 (-5.4300000000e-03) :xyz}
        !          1393: do_test printf-2.3.7.9 {
        !          1394:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 -0.00543
        !          1395: } {abc: 10 10 (  -0.00543) :xyz}
        !          1396: do_test printf-2.3.8.1 {
        !          1397:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 -1.0
        !          1398: } {abc: (-1.0000000000) :xyz}
        !          1399: do_test printf-2.3.8.2 {
        !          1400:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 -1.0
        !          1401: } {abc: (-1.0000000000e+00) :xyz}
        !          1402: do_test printf-2.3.8.3 {
        !          1403:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 -1.0
        !          1404: } {abc: (        -1) :xyz}
        !          1405: do_test printf-2.3.8.4 {
        !          1406:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 -1.0
        !          1407: } {abc: 10 10 (-1) :xyz}
        !          1408: do_test printf-2.3.8.5 {
        !          1409:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 -1.0
        !          1410: } {abc: 10 10 (-1.00000) :xyz}
        !          1411: do_test printf-2.3.8.6 {
        !          1412:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 -1.0
        !          1413: } {abc: 10 10 (-000000001) :xyz}
        !          1414: do_test printf-2.3.8.7 {
        !          1415:   sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 -1.0
        !          1416: } {abc: 10 10 (-1.0000000000) :xyz}
        !          1417: do_test printf-2.3.8.8 {
        !          1418:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 -1.0
        !          1419: } {abc: 10 10 (-1.0000000000e+00) :xyz}
        !          1420: do_test printf-2.3.8.9 {
        !          1421:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 -1.0
        !          1422: } {abc: 10 10 (        -1) :xyz}
        !          1423: do_test printf-2.3.9.1 {
        !          1424:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 -99.99999
        !          1425: } {abc: (-99.9999900000) :xyz}
        !          1426: do_test printf-2.3.9.2 {
        !          1427:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 -99.99999
        !          1428: } {abc: (-9.9999990000e+01) :xyz}
        !          1429: do_test printf-2.3.9.3 {
        !          1430:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 -99.99999
        !          1431: } {abc: ( -99.99999) :xyz}
        !          1432: do_test printf-2.3.9.4 {
        !          1433:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 -99.99999
        !          1434: } {abc: 10 10 (-100) :xyz}
        !          1435: do_test printf-2.3.9.5 {
        !          1436:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 -99.99999
        !          1437: } {abc: 10 10 (-100.000) :xyz}
        !          1438: do_test printf-2.3.9.6 {
        !          1439:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 -99.99999
        !          1440: } {abc: 10 10 (-000000100) :xyz}
        !          1441: do_test printf-2.3.9.7 {
        !          1442:   sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 -99.99999
        !          1443: } {abc: 10 10 (-99.9999900000) :xyz}
        !          1444: do_test printf-2.3.9.8 {
        !          1445:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 -99.99999
        !          1446: } {abc: 10 10 (-9.9999990000e+01) :xyz}
        !          1447: do_test printf-2.3.9.9 {
        !          1448:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 -99.99999
        !          1449: } {abc: 10 10 ( -99.99999) :xyz}
        !          1450: do_test printf-2.3.10.1 {
        !          1451:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 3.14e+9
        !          1452: } {abc: (3140000000.0000000000) :xyz}
        !          1453: do_test printf-2.3.10.2 {
        !          1454:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 3.14e+9
        !          1455: } {abc: (3.1400000000e+09) :xyz}
        !          1456: do_test printf-2.3.10.3 {
        !          1457:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 3.14e+9
        !          1458: } {abc: (3140000000) :xyz}
        !          1459: do_test printf-2.3.10.4 {
        !          1460:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 3.14e+9
        !          1461: } {abc: 10 10 (3.14e+09) :xyz}
        !          1462: do_test printf-2.3.10.5 {
        !          1463:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 3.14e+9
        !          1464: } {abc: 10 10 (3.14000e+09) :xyz}
        !          1465: do_test printf-2.3.10.6 {
        !          1466:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 3.14e+9
        !          1467: } {abc: 10 10 (003.14e+09) :xyz}
        !          1468: do_test printf-2.3.10.7 {
        !          1469:   sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 3.14e+9
        !          1470: } {abc: 10 10 (3140000000.0000000000) :xyz}
        !          1471: do_test printf-2.3.10.8 {
        !          1472:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 3.14e+9
        !          1473: } {abc: 10 10 (3.1400000000e+09) :xyz}
        !          1474: do_test printf-2.3.10.9 {
        !          1475:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 3.14e+9
        !          1476: } {abc: 10 10 (3140000000) :xyz}
        !          1477: do_test printf-2.3.11.2 {
        !          1478:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 -4.72732e+88
        !          1479: } {abc: (-4.7273200000e+88) :xyz}
        !          1480: do_test printf-2.3.11.3 {
        !          1481:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 -4.72732e+88
        !          1482: } {abc: (-4.72732e+88) :xyz}
        !          1483: do_test printf-2.3.11.4 {
        !          1484:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 -4.72732e+88
        !          1485: } {abc: 10 10 (-4.72732e+88) :xyz}
        !          1486: do_test printf-2.3.11.5 {
        !          1487:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 -4.72732e+88
        !          1488: } {abc: 10 10 (-4.72732e+88) :xyz}
        !          1489: do_test printf-2.3.11.6 {
        !          1490:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 -4.72732e+88
        !          1491: } {abc: 10 10 (-4.72732e+88) :xyz}
        !          1492: do_test printf-2.3.11.8 {
        !          1493:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 -4.72732e+88
        !          1494: } {abc: 10 10 (-4.7273200000e+88) :xyz}
        !          1495: do_test printf-2.3.11.9 {
        !          1496:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 -4.72732e+88
        !          1497: } {abc: 10 10 (-4.72732e+88) :xyz}
        !          1498: do_test printf-2.3.12.2 {
        !          1499:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 9.87991e+143
        !          1500: } {abc: (9.8799100000e+143) :xyz}
        !          1501: do_test printf-2.3.12.3 {
        !          1502:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 9.87991e+143
        !          1503: } {abc: (9.87991e+143) :xyz}
        !          1504: do_test printf-2.3.12.4 {
        !          1505:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 9.87991e+143
        !          1506: } {abc: 10 10 (9.87991e+143) :xyz}
        !          1507: do_test printf-2.3.12.5 {
        !          1508:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 9.87991e+143
        !          1509: } {abc: 10 10 (9.87991e+143) :xyz}
        !          1510: do_test printf-2.3.12.6 {
        !          1511:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 9.87991e+143
        !          1512: } {abc: 10 10 (9.87991e+143) :xyz}
        !          1513: do_test printf-2.3.12.8 {
        !          1514:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 9.87991e+143
        !          1515: } {abc: 10 10 (9.8799100000e+143) :xyz}
        !          1516: do_test printf-2.3.12.9 {
        !          1517:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 9.87991e+143
        !          1518: } {abc: 10 10 (9.87991e+143) :xyz}
        !          1519: do_test printf-2.3.13.1 {
        !          1520:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 -6.287291e-9
        !          1521: } {abc: (-0.0000000063) :xyz}
        !          1522: do_test printf-2.3.13.2 {
        !          1523:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 -6.287291e-9
        !          1524: } {abc: (-6.2872910000e-09) :xyz}
        !          1525: do_test printf-2.3.13.3 {
        !          1526:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 -6.287291e-9
        !          1527: } {abc: (-6.287291e-09) :xyz}
        !          1528: do_test printf-2.3.13.4 {
        !          1529:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 -6.287291e-9
        !          1530: } {abc: 10 10 (-6.28729e-09) :xyz}
        !          1531: do_test printf-2.3.13.5 {
        !          1532:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 -6.287291e-9
        !          1533: } {abc: 10 10 (-6.28729e-09) :xyz}
        !          1534: do_test printf-2.3.13.6 {
        !          1535:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 -6.287291e-9
        !          1536: } {abc: 10 10 (-6.28729e-09) :xyz}
        !          1537: do_test printf-2.3.13.7 {
        !          1538:   sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 -6.287291e-9
        !          1539: } {abc: 10 10 (-0.0000000063) :xyz}
        !          1540: do_test printf-2.3.13.8 {
        !          1541:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 -6.287291e-9
        !          1542: } {abc: 10 10 (-6.2872910000e-09) :xyz}
        !          1543: do_test printf-2.3.13.9 {
        !          1544:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 -6.287291e-9
        !          1545: } {abc: 10 10 (-6.287291e-09) :xyz}
        !          1546: do_test printf-2.3.14.1 {
        !          1547:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 10 3.38826392e-110
        !          1548: } {abc: (0.0000000000) :xyz}
        !          1549: do_test printf-2.3.14.2 {
        !          1550:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 10 3.38826392e-110
        !          1551: } {abc: (3.3882639200e-110) :xyz}
        !          1552: do_test printf-2.3.14.3 {
        !          1553:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 10 3.38826392e-110
        !          1554: } {abc: (3.38826392e-110) :xyz}
        !          1555: do_test printf-2.3.14.4 {
        !          1556:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 10 3.38826392e-110
        !          1557: } {abc: 10 10 (3.38826e-110) :xyz}
        !          1558: do_test printf-2.3.14.5 {
        !          1559:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 10 3.38826392e-110
        !          1560: } {abc: 10 10 (3.38826e-110) :xyz}
        !          1561: do_test printf-2.3.14.6 {
        !          1562:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 10 3.38826392e-110
        !          1563: } {abc: 10 10 (3.38826e-110) :xyz}
        !          1564: do_test printf-2.3.14.7 {
        !          1565:   sqlite3_mprintf_double {abc: %d %d (%10.10f) :xyz} 10 10 3.38826392e-110
        !          1566: } {abc: 10 10 (0.0000000000) :xyz}
        !          1567: do_test printf-2.3.14.8 {
        !          1568:   sqlite3_mprintf_double {abc: %d %d (%10.10e) :xyz} 10 10 3.38826392e-110
        !          1569: } {abc: 10 10 (3.3882639200e-110) :xyz}
        !          1570: do_test printf-2.3.14.9 {
        !          1571:   sqlite3_mprintf_double {abc: %d %d (%10.10g) :xyz} 10 10 3.38826392e-110
        !          1572: } {abc: 10 10 (3.38826392e-110) :xyz}
        !          1573: do_test printf-2.4.1.1 {
        !          1574:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 0.001
        !          1575: } {abc: (   0.00100) :xyz}
        !          1576: do_test printf-2.4.1.2 {
        !          1577:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 0.001
        !          1578: } {abc: (1.00000e-03) :xyz}
        !          1579: do_test printf-2.4.1.3 {
        !          1580:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 0.001
        !          1581: } {abc: (     0.001) :xyz}
        !          1582: do_test printf-2.4.1.4 {
        !          1583:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 0.001
        !          1584: } {abc: 10 5 (0.001) :xyz}
        !          1585: do_test printf-2.4.1.5 {
        !          1586:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 0.001
        !          1587: } {abc: 10 5 (0.00100000) :xyz}
        !          1588: do_test printf-2.4.1.6 {
        !          1589:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 0.001
        !          1590: } {abc: 10 5 (000000.001) :xyz}
        !          1591: do_test printf-2.4.1.7 {
        !          1592:   sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 0.001
        !          1593: } {abc: 10 5 (   0.00100) :xyz}
        !          1594: do_test printf-2.4.1.8 {
        !          1595:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 0.001
        !          1596: } {abc: 10 5 (1.00000e-03) :xyz}
        !          1597: do_test printf-2.4.1.9 {
        !          1598:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 0.001
        !          1599: } {abc: 10 5 (     0.001) :xyz}
        !          1600: do_test printf-2.4.2.1 {
        !          1601:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 1.0e-20
        !          1602: } {abc: (   0.00000) :xyz}
        !          1603: do_test printf-2.4.2.2 {
        !          1604:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 1.0e-20
        !          1605: } {abc: (1.00000e-20) :xyz}
        !          1606: do_test printf-2.4.2.3 {
        !          1607:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 1.0e-20
        !          1608: } {abc: (     1e-20) :xyz}
        !          1609: do_test printf-2.4.2.4 {
        !          1610:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 1.0e-20
        !          1611: } {abc: 10 5 (1e-20) :xyz}
        !          1612: do_test printf-2.4.2.5 {
        !          1613:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 1.0e-20
        !          1614: } {abc: 10 5 (1.00000e-20) :xyz}
        !          1615: do_test printf-2.4.2.6 {
        !          1616:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 1.0e-20
        !          1617: } {abc: 10 5 (000001e-20) :xyz}
        !          1618: do_test printf-2.4.2.7 {
        !          1619:   sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 1.0e-20
        !          1620: } {abc: 10 5 (   0.00000) :xyz}
        !          1621: do_test printf-2.4.2.8 {
        !          1622:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 1.0e-20
        !          1623: } {abc: 10 5 (1.00000e-20) :xyz}
        !          1624: do_test printf-2.4.2.9 {
        !          1625:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 1.0e-20
        !          1626: } {abc: 10 5 (     1e-20) :xyz}
        !          1627: do_test printf-2.4.3.1 {
        !          1628:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 1.0
        !          1629: } {abc: (   1.00000) :xyz}
        !          1630: do_test printf-2.4.3.2 {
        !          1631:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 1.0
        !          1632: } {abc: (1.00000e+00) :xyz}
        !          1633: do_test printf-2.4.3.3 {
        !          1634:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 1.0
        !          1635: } {abc: (         1) :xyz}
        !          1636: do_test printf-2.4.3.4 {
        !          1637:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 1.0
        !          1638: } {abc: 10 5 (1) :xyz}
        !          1639: do_test printf-2.4.3.5 {
        !          1640:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 1.0
        !          1641: } {abc: 10 5 (1.00000) :xyz}
        !          1642: do_test printf-2.4.3.6 {
        !          1643:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 1.0
        !          1644: } {abc: 10 5 (0000000001) :xyz}
        !          1645: do_test printf-2.4.3.7 {
        !          1646:   sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 1.0
        !          1647: } {abc: 10 5 (   1.00000) :xyz}
        !          1648: do_test printf-2.4.3.8 {
        !          1649:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 1.0
        !          1650: } {abc: 10 5 (1.00000e+00) :xyz}
        !          1651: do_test printf-2.4.3.9 {
        !          1652:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 1.0
        !          1653: } {abc: 10 5 (         1) :xyz}
        !          1654: do_test printf-2.4.4.1 {
        !          1655:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 0.0
        !          1656: } {abc: (   0.00000) :xyz}
        !          1657: do_test printf-2.4.4.2 {
        !          1658:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 0.0
        !          1659: } {abc: (0.00000e+00) :xyz}
        !          1660: do_test printf-2.4.4.3 {
        !          1661:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 0.0
        !          1662: } {abc: (         0) :xyz}
        !          1663: do_test printf-2.4.4.4 {
        !          1664:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 0.0
        !          1665: } {abc: 10 5 (0) :xyz}
        !          1666: do_test printf-2.4.4.5 {
        !          1667:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 0.0
        !          1668: } {abc: 10 5 (0.00000) :xyz}
        !          1669: do_test printf-2.4.4.6 {
        !          1670:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 0.0
        !          1671: } {abc: 10 5 (0000000000) :xyz}
        !          1672: do_test printf-2.4.4.7 {
        !          1673:   sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 0.0
        !          1674: } {abc: 10 5 (   0.00000) :xyz}
        !          1675: do_test printf-2.4.4.8 {
        !          1676:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 0.0
        !          1677: } {abc: 10 5 (0.00000e+00) :xyz}
        !          1678: do_test printf-2.4.4.9 {
        !          1679:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 0.0
        !          1680: } {abc: 10 5 (         0) :xyz}
        !          1681: do_test printf-2.4.5.1 {
        !          1682:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 100.0
        !          1683: } {abc: ( 100.00000) :xyz}
        !          1684: do_test printf-2.4.5.2 {
        !          1685:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 100.0
        !          1686: } {abc: (1.00000e+02) :xyz}
        !          1687: do_test printf-2.4.5.3 {
        !          1688:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 100.0
        !          1689: } {abc: (       100) :xyz}
        !          1690: do_test printf-2.4.5.4 {
        !          1691:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 100.0
        !          1692: } {abc: 10 5 (100) :xyz}
        !          1693: do_test printf-2.4.5.5 {
        !          1694:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 100.0
        !          1695: } {abc: 10 5 (100.000) :xyz}
        !          1696: do_test printf-2.4.5.6 {
        !          1697:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 100.0
        !          1698: } {abc: 10 5 (0000000100) :xyz}
        !          1699: do_test printf-2.4.5.7 {
        !          1700:   sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 100.0
        !          1701: } {abc: 10 5 ( 100.00000) :xyz}
        !          1702: do_test printf-2.4.5.8 {
        !          1703:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 100.0
        !          1704: } {abc: 10 5 (1.00000e+02) :xyz}
        !          1705: do_test printf-2.4.5.9 {
        !          1706:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 100.0
        !          1707: } {abc: 10 5 (       100) :xyz}
        !          1708: do_test printf-2.4.6.1 {
        !          1709:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 9.99999
        !          1710: } {abc: (   9.99999) :xyz}
        !          1711: do_test printf-2.4.6.2 {
        !          1712:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 9.99999
        !          1713: } {abc: (9.99999e+00) :xyz}
        !          1714: do_test printf-2.4.6.3 {
        !          1715:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 9.99999
        !          1716: } {abc: (        10) :xyz}
        !          1717: do_test printf-2.4.6.4 {
        !          1718:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 9.99999
        !          1719: } {abc: 10 5 (9.99999) :xyz}
        !          1720: do_test printf-2.4.6.5 {
        !          1721:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 9.99999
        !          1722: } {abc: 10 5 (9.99999) :xyz}
        !          1723: do_test printf-2.4.6.6 {
        !          1724:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 9.99999
        !          1725: } {abc: 10 5 (0009.99999) :xyz}
        !          1726: do_test printf-2.4.6.7 {
        !          1727:   sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 9.99999
        !          1728: } {abc: 10 5 (   9.99999) :xyz}
        !          1729: do_test printf-2.4.6.8 {
        !          1730:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 9.99999
        !          1731: } {abc: 10 5 (9.99999e+00) :xyz}
        !          1732: do_test printf-2.4.6.9 {
        !          1733:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 9.99999
        !          1734: } {abc: 10 5 (        10) :xyz}
        !          1735: do_test printf-2.4.7.1 {
        !          1736:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 -0.00543
        !          1737: } {abc: (  -0.00543) :xyz}
        !          1738: do_test printf-2.4.7.2 {
        !          1739:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 -0.00543
        !          1740: } {abc: (-5.43000e-03) :xyz}
        !          1741: do_test printf-2.4.7.3 {
        !          1742:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 -0.00543
        !          1743: } {abc: (  -0.00543) :xyz}
        !          1744: do_test printf-2.4.7.4 {
        !          1745:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 -0.00543
        !          1746: } {abc: 10 5 (-0.00543) :xyz}
        !          1747: do_test printf-2.4.7.5 {
        !          1748:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 -0.00543
        !          1749: } {abc: 10 5 (-0.00543000) :xyz}
        !          1750: do_test printf-2.4.7.6 {
        !          1751:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 -0.00543
        !          1752: } {abc: 10 5 (-000.00543) :xyz}
        !          1753: do_test printf-2.4.7.7 {
        !          1754:   sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 -0.00543
        !          1755: } {abc: 10 5 (  -0.00543) :xyz}
        !          1756: do_test printf-2.4.7.8 {
        !          1757:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 -0.00543
        !          1758: } {abc: 10 5 (-5.43000e-03) :xyz}
        !          1759: do_test printf-2.4.7.9 {
        !          1760:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 -0.00543
        !          1761: } {abc: 10 5 (  -0.00543) :xyz}
        !          1762: do_test printf-2.4.8.1 {
        !          1763:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 -1.0
        !          1764: } {abc: (  -1.00000) :xyz}
        !          1765: do_test printf-2.4.8.2 {
        !          1766:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 -1.0
        !          1767: } {abc: (-1.00000e+00) :xyz}
        !          1768: do_test printf-2.4.8.3 {
        !          1769:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 -1.0
        !          1770: } {abc: (        -1) :xyz}
        !          1771: do_test printf-2.4.8.4 {
        !          1772:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 -1.0
        !          1773: } {abc: 10 5 (-1) :xyz}
        !          1774: do_test printf-2.4.8.5 {
        !          1775:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 -1.0
        !          1776: } {abc: 10 5 (-1.00000) :xyz}
        !          1777: do_test printf-2.4.8.6 {
        !          1778:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 -1.0
        !          1779: } {abc: 10 5 (-000000001) :xyz}
        !          1780: do_test printf-2.4.8.7 {
        !          1781:   sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 -1.0
        !          1782: } {abc: 10 5 (  -1.00000) :xyz}
        !          1783: do_test printf-2.4.8.8 {
        !          1784:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 -1.0
        !          1785: } {abc: 10 5 (-1.00000e+00) :xyz}
        !          1786: do_test printf-2.4.8.9 {
        !          1787:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 -1.0
        !          1788: } {abc: 10 5 (        -1) :xyz}
        !          1789: do_test printf-2.4.9.1 {
        !          1790:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 -99.99999
        !          1791: } {abc: ( -99.99999) :xyz}
        !          1792: do_test printf-2.4.9.2 {
        !          1793:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 -99.99999
        !          1794: } {abc: (-1.00000e+02) :xyz}
        !          1795: do_test printf-2.4.9.3 {
        !          1796:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 -99.99999
        !          1797: } {abc: (      -100) :xyz}
        !          1798: do_test printf-2.4.9.4 {
        !          1799:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 -99.99999
        !          1800: } {abc: 10 5 (-100) :xyz}
        !          1801: do_test printf-2.4.9.5 {
        !          1802:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 -99.99999
        !          1803: } {abc: 10 5 (-100.000) :xyz}
        !          1804: do_test printf-2.4.9.6 {
        !          1805:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 -99.99999
        !          1806: } {abc: 10 5 (-000000100) :xyz}
        !          1807: do_test printf-2.4.9.7 {
        !          1808:   sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 -99.99999
        !          1809: } {abc: 10 5 ( -99.99999) :xyz}
        !          1810: do_test printf-2.4.9.8 {
        !          1811:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 -99.99999
        !          1812: } {abc: 10 5 (-1.00000e+02) :xyz}
        !          1813: do_test printf-2.4.9.9 {
        !          1814:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 -99.99999
        !          1815: } {abc: 10 5 (      -100) :xyz}
        !          1816: do_test printf-2.4.10.1 {
        !          1817:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 3.14e+9
        !          1818: } {abc: (3140000000.00000) :xyz}
        !          1819: do_test printf-2.4.10.2 {
        !          1820:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 3.14e+9
        !          1821: } {abc: (3.14000e+09) :xyz}
        !          1822: do_test printf-2.4.10.3 {
        !          1823:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 3.14e+9
        !          1824: } {abc: (  3.14e+09) :xyz}
        !          1825: do_test printf-2.4.10.4 {
        !          1826:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 3.14e+9
        !          1827: } {abc: 10 5 (3.14e+09) :xyz}
        !          1828: do_test printf-2.4.10.5 {
        !          1829:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 3.14e+9
        !          1830: } {abc: 10 5 (3.14000e+09) :xyz}
        !          1831: do_test printf-2.4.10.6 {
        !          1832:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 3.14e+9
        !          1833: } {abc: 10 5 (003.14e+09) :xyz}
        !          1834: do_test printf-2.4.10.7 {
        !          1835:   sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 3.14e+9
        !          1836: } {abc: 10 5 (3140000000.00000) :xyz}
        !          1837: do_test printf-2.4.10.8 {
        !          1838:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 3.14e+9
        !          1839: } {abc: 10 5 (3.14000e+09) :xyz}
        !          1840: do_test printf-2.4.10.9 {
        !          1841:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 3.14e+9
        !          1842: } {abc: 10 5 (  3.14e+09) :xyz}
        !          1843: do_test printf-2.4.11.2 {
        !          1844:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 -4.72732e+88
        !          1845: } {abc: (-4.72732e+88) :xyz}
        !          1846: do_test printf-2.4.11.3 {
        !          1847:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 -4.72732e+88
        !          1848: } {abc: (-4.7273e+88) :xyz}
        !          1849: do_test printf-2.4.11.4 {
        !          1850:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 -4.72732e+88
        !          1851: } {abc: 10 5 (-4.72732e+88) :xyz}
        !          1852: do_test printf-2.4.11.5 {
        !          1853:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 -4.72732e+88
        !          1854: } {abc: 10 5 (-4.72732e+88) :xyz}
        !          1855: do_test printf-2.4.11.6 {
        !          1856:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 -4.72732e+88
        !          1857: } {abc: 10 5 (-4.72732e+88) :xyz}
        !          1858: do_test printf-2.4.11.8 {
        !          1859:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 -4.72732e+88
        !          1860: } {abc: 10 5 (-4.72732e+88) :xyz}
        !          1861: do_test printf-2.4.11.9 {
        !          1862:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 -4.72732e+88
        !          1863: } {abc: 10 5 (-4.7273e+88) :xyz}
        !          1864: do_test printf-2.4.12.2 {
        !          1865:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 9.87991e+143
        !          1866: } {abc: (9.87991e+143) :xyz}
        !          1867: do_test printf-2.4.12.3 {
        !          1868:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 9.87991e+143
        !          1869: } {abc: (9.8799e+143) :xyz}
        !          1870: do_test printf-2.4.12.4 {
        !          1871:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 9.87991e+143
        !          1872: } {abc: 10 5 (9.87991e+143) :xyz}
        !          1873: do_test printf-2.4.12.5 {
        !          1874:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 9.87991e+143
        !          1875: } {abc: 10 5 (9.87991e+143) :xyz}
        !          1876: do_test printf-2.4.12.6 {
        !          1877:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 9.87991e+143
        !          1878: } {abc: 10 5 (9.87991e+143) :xyz}
        !          1879: do_test printf-2.4.12.8 {
        !          1880:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 9.87991e+143
        !          1881: } {abc: 10 5 (9.87991e+143) :xyz}
        !          1882: do_test printf-2.4.12.9 {
        !          1883:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 9.87991e+143
        !          1884: } {abc: 10 5 (9.8799e+143) :xyz}
        !          1885: do_test printf-2.4.13.1 {
        !          1886:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 -6.287291e-9
        !          1887: } {abc: (  -0.00000) :xyz}
        !          1888: do_test printf-2.4.13.2 {
        !          1889:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 -6.287291e-9
        !          1890: } {abc: (-6.28729e-09) :xyz}
        !          1891: do_test printf-2.4.13.3 {
        !          1892:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 -6.287291e-9
        !          1893: } {abc: (-6.2873e-09) :xyz}
        !          1894: do_test printf-2.4.13.4 {
        !          1895:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 -6.287291e-9
        !          1896: } {abc: 10 5 (-6.28729e-09) :xyz}
        !          1897: do_test printf-2.4.13.5 {
        !          1898:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 -6.287291e-9
        !          1899: } {abc: 10 5 (-6.28729e-09) :xyz}
        !          1900: do_test printf-2.4.13.6 {
        !          1901:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 -6.287291e-9
        !          1902: } {abc: 10 5 (-6.28729e-09) :xyz}
        !          1903: do_test printf-2.4.13.7 {
        !          1904:   sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 -6.287291e-9
        !          1905: } {abc: 10 5 (  -0.00000) :xyz}
        !          1906: do_test printf-2.4.13.8 {
        !          1907:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 -6.287291e-9
        !          1908: } {abc: 10 5 (-6.28729e-09) :xyz}
        !          1909: do_test printf-2.4.13.9 {
        !          1910:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 -6.287291e-9
        !          1911: } {abc: 10 5 (-6.2873e-09) :xyz}
        !          1912: do_test printf-2.4.14.1 {
        !          1913:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 10 5 3.38826392e-110
        !          1914: } {abc: (   0.00000) :xyz}
        !          1915: do_test printf-2.4.14.2 {
        !          1916:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 10 5 3.38826392e-110
        !          1917: } {abc: (3.38826e-110) :xyz}
        !          1918: do_test printf-2.4.14.3 {
        !          1919:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 10 5 3.38826392e-110
        !          1920: } {abc: (3.3883e-110) :xyz}
        !          1921: do_test printf-2.4.14.4 {
        !          1922:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 10 5 3.38826392e-110
        !          1923: } {abc: 10 5 (3.38826e-110) :xyz}
        !          1924: do_test printf-2.4.14.5 {
        !          1925:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 10 5 3.38826392e-110
        !          1926: } {abc: 10 5 (3.38826e-110) :xyz}
        !          1927: do_test printf-2.4.14.6 {
        !          1928:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 10 5 3.38826392e-110
        !          1929: } {abc: 10 5 (3.38826e-110) :xyz}
        !          1930: do_test printf-2.4.14.7 {
        !          1931:   sqlite3_mprintf_double {abc: %d %d (%10.5f) :xyz} 10 5 3.38826392e-110
        !          1932: } {abc: 10 5 (   0.00000) :xyz}
        !          1933: do_test printf-2.4.14.8 {
        !          1934:   sqlite3_mprintf_double {abc: %d %d (%10.5e) :xyz} 10 5 3.38826392e-110
        !          1935: } {abc: 10 5 (3.38826e-110) :xyz}
        !          1936: do_test printf-2.4.14.9 {
        !          1937:   sqlite3_mprintf_double {abc: %d %d (%10.5g) :xyz} 10 5 3.38826392e-110
        !          1938: } {abc: 10 5 (3.3883e-110) :xyz}
        !          1939: do_test printf-2.5.1.1 {
        !          1940:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 0.001
        !          1941: } {abc: (0.00) :xyz}
        !          1942: do_test printf-2.5.1.2 {
        !          1943:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 0.001
        !          1944: } {abc: (1.00e-03) :xyz}
        !          1945: do_test printf-2.5.1.3 {
        !          1946:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 0.001
        !          1947: } {abc: (0.001) :xyz}
        !          1948: do_test printf-2.5.1.4 {
        !          1949:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 0.001
        !          1950: } {abc: 2 2 (0.001) :xyz}
        !          1951: do_test printf-2.5.1.5 {
        !          1952:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 0.001
        !          1953: } {abc: 2 2 (0.00100000) :xyz}
        !          1954: do_test printf-2.5.1.6 {
        !          1955:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 0.001
        !          1956: } {abc: 2 2 (000000.001) :xyz}
        !          1957: do_test printf-2.5.1.7 {
        !          1958:   sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 0.001
        !          1959: } {abc: 2 2 (0.00) :xyz}
        !          1960: do_test printf-2.5.1.8 {
        !          1961:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 0.001
        !          1962: } {abc: 2 2 (1.00e-03) :xyz}
        !          1963: do_test printf-2.5.1.9 {
        !          1964:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 0.001
        !          1965: } {abc: 2 2 (0.001) :xyz}
        !          1966: do_test printf-2.5.2.1 {
        !          1967:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 1.0e-20
        !          1968: } {abc: (0.00) :xyz}
        !          1969: do_test printf-2.5.2.2 {
        !          1970:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 1.0e-20
        !          1971: } {abc: (1.00e-20) :xyz}
        !          1972: do_test printf-2.5.2.3 {
        !          1973:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 1.0e-20
        !          1974: } {abc: (1e-20) :xyz}
        !          1975: do_test printf-2.5.2.4 {
        !          1976:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 1.0e-20
        !          1977: } {abc: 2 2 (1e-20) :xyz}
        !          1978: do_test printf-2.5.2.5 {
        !          1979:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 1.0e-20
        !          1980: } {abc: 2 2 (1.00000e-20) :xyz}
        !          1981: do_test printf-2.5.2.6 {
        !          1982:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 1.0e-20
        !          1983: } {abc: 2 2 (000001e-20) :xyz}
        !          1984: do_test printf-2.5.2.7 {
        !          1985:   sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 1.0e-20
        !          1986: } {abc: 2 2 (0.00) :xyz}
        !          1987: do_test printf-2.5.2.8 {
        !          1988:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 1.0e-20
        !          1989: } {abc: 2 2 (1.00e-20) :xyz}
        !          1990: do_test printf-2.5.2.9 {
        !          1991:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 1.0e-20
        !          1992: } {abc: 2 2 (1e-20) :xyz}
        !          1993: do_test printf-2.5.3.1 {
        !          1994:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 1.0
        !          1995: } {abc: (1.00) :xyz}
        !          1996: do_test printf-2.5.3.2 {
        !          1997:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 1.0
        !          1998: } {abc: (1.00e+00) :xyz}
        !          1999: do_test printf-2.5.3.3 {
        !          2000:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 1.0
        !          2001: } {abc: ( 1) :xyz}
        !          2002: do_test printf-2.5.3.4 {
        !          2003:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 1.0
        !          2004: } {abc: 2 2 (1) :xyz}
        !          2005: do_test printf-2.5.3.5 {
        !          2006:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 1.0
        !          2007: } {abc: 2 2 (1.00000) :xyz}
        !          2008: do_test printf-2.5.3.6 {
        !          2009:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 1.0
        !          2010: } {abc: 2 2 (0000000001) :xyz}
        !          2011: do_test printf-2.5.3.7 {
        !          2012:   sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 1.0
        !          2013: } {abc: 2 2 (1.00) :xyz}
        !          2014: do_test printf-2.5.3.8 {
        !          2015:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 1.0
        !          2016: } {abc: 2 2 (1.00e+00) :xyz}
        !          2017: do_test printf-2.5.3.9 {
        !          2018:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 1.0
        !          2019: } {abc: 2 2 ( 1) :xyz}
        !          2020: do_test printf-2.5.4.1 {
        !          2021:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 0.0
        !          2022: } {abc: (0.00) :xyz}
        !          2023: do_test printf-2.5.4.2 {
        !          2024:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 0.0
        !          2025: } {abc: (0.00e+00) :xyz}
        !          2026: do_test printf-2.5.4.3 {
        !          2027:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 0.0
        !          2028: } {abc: ( 0) :xyz}
        !          2029: do_test printf-2.5.4.4 {
        !          2030:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 0.0
        !          2031: } {abc: 2 2 (0) :xyz}
        !          2032: do_test printf-2.5.4.5 {
        !          2033:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 0.0
        !          2034: } {abc: 2 2 (0.00000) :xyz}
        !          2035: do_test printf-2.5.4.6 {
        !          2036:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 0.0
        !          2037: } {abc: 2 2 (0000000000) :xyz}
        !          2038: do_test printf-2.5.4.7 {
        !          2039:   sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 0.0
        !          2040: } {abc: 2 2 (0.00) :xyz}
        !          2041: do_test printf-2.5.4.8 {
        !          2042:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 0.0
        !          2043: } {abc: 2 2 (0.00e+00) :xyz}
        !          2044: do_test printf-2.5.4.9 {
        !          2045:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 0.0
        !          2046: } {abc: 2 2 ( 0) :xyz}
        !          2047: do_test printf-2.5.5.1 {
        !          2048:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 100.0
        !          2049: } {abc: (100.00) :xyz}
        !          2050: do_test printf-2.5.5.2 {
        !          2051:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 100.0
        !          2052: } {abc: (1.00e+02) :xyz}
        !          2053: do_test printf-2.5.5.3 {
        !          2054:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 100.0
        !          2055: } {abc: (1e+02) :xyz}
        !          2056: do_test printf-2.5.5.4 {
        !          2057:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 100.0
        !          2058: } {abc: 2 2 (100) :xyz}
        !          2059: do_test printf-2.5.5.5 {
        !          2060:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 100.0
        !          2061: } {abc: 2 2 (100.000) :xyz}
        !          2062: do_test printf-2.5.5.6 {
        !          2063:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 100.0
        !          2064: } {abc: 2 2 (0000000100) :xyz}
        !          2065: do_test printf-2.5.5.7 {
        !          2066:   sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 100.0
        !          2067: } {abc: 2 2 (100.00) :xyz}
        !          2068: do_test printf-2.5.5.8 {
        !          2069:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 100.0
        !          2070: } {abc: 2 2 (1.00e+02) :xyz}
        !          2071: do_test printf-2.5.5.9 {
        !          2072:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 100.0
        !          2073: } {abc: 2 2 (1e+02) :xyz}
        !          2074: do_test printf-2.5.6.1 {
        !          2075:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 9.99999
        !          2076: } {abc: (10.00) :xyz}
        !          2077: do_test printf-2.5.6.2 {
        !          2078:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 9.99999
        !          2079: } {abc: (1.00e+01) :xyz}
        !          2080: do_test printf-2.5.6.3 {
        !          2081:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 9.99999
        !          2082: } {abc: (10) :xyz}
        !          2083: do_test printf-2.5.6.4 {
        !          2084:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 9.99999
        !          2085: } {abc: 2 2 (9.99999) :xyz}
        !          2086: do_test printf-2.5.6.5 {
        !          2087:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 9.99999
        !          2088: } {abc: 2 2 (9.99999) :xyz}
        !          2089: do_test printf-2.5.6.6 {
        !          2090:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 9.99999
        !          2091: } {abc: 2 2 (0009.99999) :xyz}
        !          2092: do_test printf-2.5.6.7 {
        !          2093:   sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 9.99999
        !          2094: } {abc: 2 2 (10.00) :xyz}
        !          2095: do_test printf-2.5.6.8 {
        !          2096:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 9.99999
        !          2097: } {abc: 2 2 (1.00e+01) :xyz}
        !          2098: do_test printf-2.5.6.9 {
        !          2099:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 9.99999
        !          2100: } {abc: 2 2 (10) :xyz}
        !          2101: do_test printf-2.5.7.1 {
        !          2102:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 -0.00543
        !          2103: } {abc: (-0.01) :xyz}
        !          2104: do_test printf-2.5.7.2 {
        !          2105:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 -0.00543
        !          2106: } {abc: (-5.43e-03) :xyz}
        !          2107: do_test printf-2.5.7.3 {
        !          2108:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 -0.00543
        !          2109: } {abc: (-0.0054) :xyz}
        !          2110: do_test printf-2.5.7.4 {
        !          2111:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 -0.00543
        !          2112: } {abc: 2 2 (-0.00543) :xyz}
        !          2113: do_test printf-2.5.7.5 {
        !          2114:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 -0.00543
        !          2115: } {abc: 2 2 (-0.00543000) :xyz}
        !          2116: do_test printf-2.5.7.6 {
        !          2117:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 -0.00543
        !          2118: } {abc: 2 2 (-000.00543) :xyz}
        !          2119: do_test printf-2.5.7.7 {
        !          2120:   sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 -0.00543
        !          2121: } {abc: 2 2 (-0.01) :xyz}
        !          2122: do_test printf-2.5.7.8 {
        !          2123:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 -0.00543
        !          2124: } {abc: 2 2 (-5.43e-03) :xyz}
        !          2125: do_test printf-2.5.7.9 {
        !          2126:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 -0.00543
        !          2127: } {abc: 2 2 (-0.0054) :xyz}
        !          2128: do_test printf-2.5.8.1 {
        !          2129:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 -1.0
        !          2130: } {abc: (-1.00) :xyz}
        !          2131: do_test printf-2.5.8.2 {
        !          2132:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 -1.0
        !          2133: } {abc: (-1.00e+00) :xyz}
        !          2134: do_test printf-2.5.8.3 {
        !          2135:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 -1.0
        !          2136: } {abc: (-1) :xyz}
        !          2137: do_test printf-2.5.8.4 {
        !          2138:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 -1.0
        !          2139: } {abc: 2 2 (-1) :xyz}
        !          2140: do_test printf-2.5.8.5 {
        !          2141:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 -1.0
        !          2142: } {abc: 2 2 (-1.00000) :xyz}
        !          2143: do_test printf-2.5.8.6 {
        !          2144:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 -1.0
        !          2145: } {abc: 2 2 (-000000001) :xyz}
        !          2146: do_test printf-2.5.8.7 {
        !          2147:   sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 -1.0
        !          2148: } {abc: 2 2 (-1.00) :xyz}
        !          2149: do_test printf-2.5.8.8 {
        !          2150:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 -1.0
        !          2151: } {abc: 2 2 (-1.00e+00) :xyz}
        !          2152: do_test printf-2.5.8.9 {
        !          2153:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 -1.0
        !          2154: } {abc: 2 2 (-1) :xyz}
        !          2155: do_test printf-2.5.9.1 {
        !          2156:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 -99.99999
        !          2157: } {abc: (-100.00) :xyz}
        !          2158: do_test printf-2.5.9.2 {
        !          2159:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 -99.99999
        !          2160: } {abc: (-1.00e+02) :xyz}
        !          2161: do_test printf-2.5.9.3 {
        !          2162:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 -99.99999
        !          2163: } {abc: (-1e+02) :xyz}
        !          2164: do_test printf-2.5.9.4 {
        !          2165:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 -99.99999
        !          2166: } {abc: 2 2 (-100) :xyz}
        !          2167: do_test printf-2.5.9.5 {
        !          2168:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 -99.99999
        !          2169: } {abc: 2 2 (-100.000) :xyz}
        !          2170: do_test printf-2.5.9.6 {
        !          2171:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 -99.99999
        !          2172: } {abc: 2 2 (-000000100) :xyz}
        !          2173: do_test printf-2.5.9.7 {
        !          2174:   sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 -99.99999
        !          2175: } {abc: 2 2 (-100.00) :xyz}
        !          2176: do_test printf-2.5.9.8 {
        !          2177:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 -99.99999
        !          2178: } {abc: 2 2 (-1.00e+02) :xyz}
        !          2179: do_test printf-2.5.9.9 {
        !          2180:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 -99.99999
        !          2181: } {abc: 2 2 (-1e+02) :xyz}
        !          2182: do_test printf-2.5.10.1 {
        !          2183:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 3.14e+9
        !          2184: } {abc: (3140000000.00) :xyz}
        !          2185: do_test printf-2.5.10.2 {
        !          2186:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 3.14e+9
        !          2187: } {abc: (3.14e+09) :xyz}
        !          2188: do_test printf-2.5.10.3 {
        !          2189:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 3.14e+9
        !          2190: } {abc: (3.1e+09) :xyz}
        !          2191: do_test printf-2.5.10.4 {
        !          2192:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 3.14e+9
        !          2193: } {abc: 2 2 (3.14e+09) :xyz}
        !          2194: do_test printf-2.5.10.5 {
        !          2195:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 3.14e+9
        !          2196: } {abc: 2 2 (3.14000e+09) :xyz}
        !          2197: do_test printf-2.5.10.6 {
        !          2198:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 3.14e+9
        !          2199: } {abc: 2 2 (003.14e+09) :xyz}
        !          2200: do_test printf-2.5.10.7 {
        !          2201:   sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 3.14e+9
        !          2202: } {abc: 2 2 (3140000000.00) :xyz}
        !          2203: do_test printf-2.5.10.8 {
        !          2204:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 3.14e+9
        !          2205: } {abc: 2 2 (3.14e+09) :xyz}
        !          2206: do_test printf-2.5.10.9 {
        !          2207:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 3.14e+9
        !          2208: } {abc: 2 2 (3.1e+09) :xyz}
        !          2209: do_test printf-2.5.11.2 {
        !          2210:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 -4.72732e+88
        !          2211: } {abc: (-4.73e+88) :xyz}
        !          2212: do_test printf-2.5.11.3 {
        !          2213:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 -4.72732e+88
        !          2214: } {abc: (-4.7e+88) :xyz}
        !          2215: do_test printf-2.5.11.4 {
        !          2216:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 -4.72732e+88
        !          2217: } {abc: 2 2 (-4.72732e+88) :xyz}
        !          2218: do_test printf-2.5.11.5 {
        !          2219:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 -4.72732e+88
        !          2220: } {abc: 2 2 (-4.72732e+88) :xyz}
        !          2221: do_test printf-2.5.11.6 {
        !          2222:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 -4.72732e+88
        !          2223: } {abc: 2 2 (-4.72732e+88) :xyz}
        !          2224: do_test printf-2.5.11.8 {
        !          2225:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 -4.72732e+88
        !          2226: } {abc: 2 2 (-4.73e+88) :xyz}
        !          2227: do_test printf-2.5.11.9 {
        !          2228:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 -4.72732e+88
        !          2229: } {abc: 2 2 (-4.7e+88) :xyz}
        !          2230: do_test printf-2.5.12.2 {
        !          2231:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 9.87991e+143
        !          2232: } {abc: (9.88e+143) :xyz}
        !          2233: do_test printf-2.5.12.3 {
        !          2234:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 9.87991e+143
        !          2235: } {abc: (9.9e+143) :xyz}
        !          2236: do_test printf-2.5.12.4 {
        !          2237:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 9.87991e+143
        !          2238: } {abc: 2 2 (9.87991e+143) :xyz}
        !          2239: do_test printf-2.5.12.5 {
        !          2240:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 9.87991e+143
        !          2241: } {abc: 2 2 (9.87991e+143) :xyz}
        !          2242: do_test printf-2.5.12.6 {
        !          2243:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 9.87991e+143
        !          2244: } {abc: 2 2 (9.87991e+143) :xyz}
        !          2245: do_test printf-2.5.12.8 {
        !          2246:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 9.87991e+143
        !          2247: } {abc: 2 2 (9.88e+143) :xyz}
        !          2248: do_test printf-2.5.12.9 {
        !          2249:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 9.87991e+143
        !          2250: } {abc: 2 2 (9.9e+143) :xyz}
        !          2251: do_test printf-2.5.13.1 {
        !          2252:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 -6.287291e-9
        !          2253: } {abc: (-0.00) :xyz}
        !          2254: do_test printf-2.5.13.2 {
        !          2255:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 -6.287291e-9
        !          2256: } {abc: (-6.29e-09) :xyz}
        !          2257: do_test printf-2.5.13.3 {
        !          2258:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 -6.287291e-9
        !          2259: } {abc: (-6.3e-09) :xyz}
        !          2260: do_test printf-2.5.13.4 {
        !          2261:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 -6.287291e-9
        !          2262: } {abc: 2 2 (-6.28729e-09) :xyz}
        !          2263: do_test printf-2.5.13.5 {
        !          2264:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 -6.287291e-9
        !          2265: } {abc: 2 2 (-6.28729e-09) :xyz}
        !          2266: do_test printf-2.5.13.6 {
        !          2267:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 -6.287291e-9
        !          2268: } {abc: 2 2 (-6.28729e-09) :xyz}
        !          2269: do_test printf-2.5.13.7 {
        !          2270:   sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 -6.287291e-9
        !          2271: } {abc: 2 2 (-0.00) :xyz}
        !          2272: do_test printf-2.5.13.8 {
        !          2273:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 -6.287291e-9
        !          2274: } {abc: 2 2 (-6.29e-09) :xyz}
        !          2275: do_test printf-2.5.13.9 {
        !          2276:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 -6.287291e-9
        !          2277: } {abc: 2 2 (-6.3e-09) :xyz}
        !          2278: do_test printf-2.5.14.1 {
        !          2279:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 2 3.38826392e-110
        !          2280: } {abc: (0.00) :xyz}
        !          2281: do_test printf-2.5.14.2 {
        !          2282:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 2 3.38826392e-110
        !          2283: } {abc: (3.39e-110) :xyz}
        !          2284: do_test printf-2.5.14.3 {
        !          2285:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 2 3.38826392e-110
        !          2286: } {abc: (3.4e-110) :xyz}
        !          2287: do_test printf-2.5.14.4 {
        !          2288:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 2 3.38826392e-110
        !          2289: } {abc: 2 2 (3.38826e-110) :xyz}
        !          2290: do_test printf-2.5.14.5 {
        !          2291:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 2 3.38826392e-110
        !          2292: } {abc: 2 2 (3.38826e-110) :xyz}
        !          2293: do_test printf-2.5.14.6 {
        !          2294:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 2 3.38826392e-110
        !          2295: } {abc: 2 2 (3.38826e-110) :xyz}
        !          2296: do_test printf-2.5.14.7 {
        !          2297:   sqlite3_mprintf_double {abc: %d %d (%2.2f) :xyz} 2 2 3.38826392e-110
        !          2298: } {abc: 2 2 (0.00) :xyz}
        !          2299: do_test printf-2.5.14.8 {
        !          2300:   sqlite3_mprintf_double {abc: %d %d (%2.2e) :xyz} 2 2 3.38826392e-110
        !          2301: } {abc: 2 2 (3.39e-110) :xyz}
        !          2302: do_test printf-2.5.14.9 {
        !          2303:   sqlite3_mprintf_double {abc: %d %d (%2.2g) :xyz} 2 2 3.38826392e-110
        !          2304: } {abc: 2 2 (3.4e-110) :xyz}
        !          2305: do_test printf-2.6.1.1 {
        !          2306:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 0.001
        !          2307: } {abc: (0.001) :xyz}
        !          2308: do_test printf-2.6.1.2 {
        !          2309:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 0.001
        !          2310: } {abc: (1.000e-03) :xyz}
        !          2311: do_test printf-2.6.1.3 {
        !          2312:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 0.001
        !          2313: } {abc: (0.001) :xyz}
        !          2314: do_test printf-2.6.1.4 {
        !          2315:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 0.001
        !          2316: } {abc: 2 3 (0.001) :xyz}
        !          2317: do_test printf-2.6.1.5 {
        !          2318:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 0.001
        !          2319: } {abc: 2 3 (0.00100000) :xyz}
        !          2320: do_test printf-2.6.1.6 {
        !          2321:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 0.001
        !          2322: } {abc: 2 3 (000000.001) :xyz}
        !          2323: do_test printf-2.6.1.7 {
        !          2324:   sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 0.001
        !          2325: } {abc: 2 3 (0.001) :xyz}
        !          2326: do_test printf-2.6.1.8 {
        !          2327:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 0.001
        !          2328: } {abc: 2 3 (1.000e-03) :xyz}
        !          2329: do_test printf-2.6.1.9 {
        !          2330:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 0.001
        !          2331: } {abc: 2 3 (0.001) :xyz}
        !          2332: do_test printf-2.6.2.1 {
        !          2333:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 1.0e-20
        !          2334: } {abc: (0.000) :xyz}
        !          2335: do_test printf-2.6.2.2 {
        !          2336:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 1.0e-20
        !          2337: } {abc: (1.000e-20) :xyz}
        !          2338: do_test printf-2.6.2.3 {
        !          2339:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 1.0e-20
        !          2340: } {abc: (1e-20) :xyz}
        !          2341: do_test printf-2.6.2.4 {
        !          2342:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 1.0e-20
        !          2343: } {abc: 2 3 (1e-20) :xyz}
        !          2344: do_test printf-2.6.2.5 {
        !          2345:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 1.0e-20
        !          2346: } {abc: 2 3 (1.00000e-20) :xyz}
        !          2347: do_test printf-2.6.2.6 {
        !          2348:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 1.0e-20
        !          2349: } {abc: 2 3 (000001e-20) :xyz}
        !          2350: do_test printf-2.6.2.7 {
        !          2351:   sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 1.0e-20
        !          2352: } {abc: 2 3 (0.000) :xyz}
        !          2353: do_test printf-2.6.2.8 {
        !          2354:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 1.0e-20
        !          2355: } {abc: 2 3 (1.000e-20) :xyz}
        !          2356: do_test printf-2.6.2.9 {
        !          2357:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 1.0e-20
        !          2358: } {abc: 2 3 (1e-20) :xyz}
        !          2359: do_test printf-2.6.3.1 {
        !          2360:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 1.0
        !          2361: } {abc: (1.000) :xyz}
        !          2362: do_test printf-2.6.3.2 {
        !          2363:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 1.0
        !          2364: } {abc: (1.000e+00) :xyz}
        !          2365: do_test printf-2.6.3.3 {
        !          2366:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 1.0
        !          2367: } {abc: ( 1) :xyz}
        !          2368: do_test printf-2.6.3.4 {
        !          2369:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 1.0
        !          2370: } {abc: 2 3 (1) :xyz}
        !          2371: do_test printf-2.6.3.5 {
        !          2372:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 1.0
        !          2373: } {abc: 2 3 (1.00000) :xyz}
        !          2374: do_test printf-2.6.3.6 {
        !          2375:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 1.0
        !          2376: } {abc: 2 3 (0000000001) :xyz}
        !          2377: do_test printf-2.6.3.7 {
        !          2378:   sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 1.0
        !          2379: } {abc: 2 3 (1.000) :xyz}
        !          2380: do_test printf-2.6.3.8 {
        !          2381:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 1.0
        !          2382: } {abc: 2 3 (1.000e+00) :xyz}
        !          2383: do_test printf-2.6.3.9 {
        !          2384:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 1.0
        !          2385: } {abc: 2 3 ( 1) :xyz}
        !          2386: do_test printf-2.6.4.1 {
        !          2387:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 0.0
        !          2388: } {abc: (0.000) :xyz}
        !          2389: do_test printf-2.6.4.2 {
        !          2390:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 0.0
        !          2391: } {abc: (0.000e+00) :xyz}
        !          2392: do_test printf-2.6.4.3 {
        !          2393:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 0.0
        !          2394: } {abc: ( 0) :xyz}
        !          2395: do_test printf-2.6.4.4 {
        !          2396:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 0.0
        !          2397: } {abc: 2 3 (0) :xyz}
        !          2398: do_test printf-2.6.4.5 {
        !          2399:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 0.0
        !          2400: } {abc: 2 3 (0.00000) :xyz}
        !          2401: do_test printf-2.6.4.6 {
        !          2402:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 0.0
        !          2403: } {abc: 2 3 (0000000000) :xyz}
        !          2404: do_test printf-2.6.4.7 {
        !          2405:   sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 0.0
        !          2406: } {abc: 2 3 (0.000) :xyz}
        !          2407: do_test printf-2.6.4.8 {
        !          2408:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 0.0
        !          2409: } {abc: 2 3 (0.000e+00) :xyz}
        !          2410: do_test printf-2.6.4.9 {
        !          2411:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 0.0
        !          2412: } {abc: 2 3 ( 0) :xyz}
        !          2413: do_test printf-2.6.5.1 {
        !          2414:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 100.0
        !          2415: } {abc: (100.000) :xyz}
        !          2416: do_test printf-2.6.5.2 {
        !          2417:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 100.0
        !          2418: } {abc: (1.000e+02) :xyz}
        !          2419: do_test printf-2.6.5.3 {
        !          2420:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 100.0
        !          2421: } {abc: (100) :xyz}
        !          2422: do_test printf-2.6.5.4 {
        !          2423:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 100.0
        !          2424: } {abc: 2 3 (100) :xyz}
        !          2425: do_test printf-2.6.5.5 {
        !          2426:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 100.0
        !          2427: } {abc: 2 3 (100.000) :xyz}
        !          2428: do_test printf-2.6.5.6 {
        !          2429:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 100.0
        !          2430: } {abc: 2 3 (0000000100) :xyz}
        !          2431: do_test printf-2.6.5.7 {
        !          2432:   sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 100.0
        !          2433: } {abc: 2 3 (100.000) :xyz}
        !          2434: do_test printf-2.6.5.8 {
        !          2435:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 100.0
        !          2436: } {abc: 2 3 (1.000e+02) :xyz}
        !          2437: do_test printf-2.6.5.9 {
        !          2438:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 100.0
        !          2439: } {abc: 2 3 (100) :xyz}
        !          2440: do_test printf-2.6.6.1 {
        !          2441:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 9.99999
        !          2442: } {abc: (10.000) :xyz}
        !          2443: do_test printf-2.6.6.2 {
        !          2444:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 9.99999
        !          2445: } {abc: (1.000e+01) :xyz}
        !          2446: do_test printf-2.6.6.3 {
        !          2447:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 9.99999
        !          2448: } {abc: (10) :xyz}
        !          2449: do_test printf-2.6.6.4 {
        !          2450:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 9.99999
        !          2451: } {abc: 2 3 (9.99999) :xyz}
        !          2452: do_test printf-2.6.6.5 {
        !          2453:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 9.99999
        !          2454: } {abc: 2 3 (9.99999) :xyz}
        !          2455: do_test printf-2.6.6.6 {
        !          2456:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 9.99999
        !          2457: } {abc: 2 3 (0009.99999) :xyz}
        !          2458: do_test printf-2.6.6.7 {
        !          2459:   sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 9.99999
        !          2460: } {abc: 2 3 (10.000) :xyz}
        !          2461: do_test printf-2.6.6.8 {
        !          2462:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 9.99999
        !          2463: } {abc: 2 3 (1.000e+01) :xyz}
        !          2464: do_test printf-2.6.6.9 {
        !          2465:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 9.99999
        !          2466: } {abc: 2 3 (10) :xyz}
        !          2467: do_test printf-2.6.7.1 {
        !          2468:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 -0.00543
        !          2469: } {abc: (-0.005) :xyz}
        !          2470: do_test printf-2.6.7.2 {
        !          2471:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 -0.00543
        !          2472: } {abc: (-5.430e-03) :xyz}
        !          2473: do_test printf-2.6.7.3 {
        !          2474:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 -0.00543
        !          2475: } {abc: (-0.00543) :xyz}
        !          2476: do_test printf-2.6.7.4 {
        !          2477:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 -0.00543
        !          2478: } {abc: 2 3 (-0.00543) :xyz}
        !          2479: do_test printf-2.6.7.5 {
        !          2480:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 -0.00543
        !          2481: } {abc: 2 3 (-0.00543000) :xyz}
        !          2482: do_test printf-2.6.7.6 {
        !          2483:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 -0.00543
        !          2484: } {abc: 2 3 (-000.00543) :xyz}
        !          2485: do_test printf-2.6.7.7 {
        !          2486:   sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 -0.00543
        !          2487: } {abc: 2 3 (-0.005) :xyz}
        !          2488: do_test printf-2.6.7.8 {
        !          2489:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 -0.00543
        !          2490: } {abc: 2 3 (-5.430e-03) :xyz}
        !          2491: do_test printf-2.6.7.9 {
        !          2492:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 -0.00543
        !          2493: } {abc: 2 3 (-0.00543) :xyz}
        !          2494: do_test printf-2.6.8.1 {
        !          2495:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 -1.0
        !          2496: } {abc: (-1.000) :xyz}
        !          2497: do_test printf-2.6.8.2 {
        !          2498:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 -1.0
        !          2499: } {abc: (-1.000e+00) :xyz}
        !          2500: do_test printf-2.6.8.3 {
        !          2501:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 -1.0
        !          2502: } {abc: (-1) :xyz}
        !          2503: do_test printf-2.6.8.4 {
        !          2504:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 -1.0
        !          2505: } {abc: 2 3 (-1) :xyz}
        !          2506: do_test printf-2.6.8.5 {
        !          2507:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 -1.0
        !          2508: } {abc: 2 3 (-1.00000) :xyz}
        !          2509: do_test printf-2.6.8.6 {
        !          2510:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 -1.0
        !          2511: } {abc: 2 3 (-000000001) :xyz}
        !          2512: do_test printf-2.6.8.7 {
        !          2513:   sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 -1.0
        !          2514: } {abc: 2 3 (-1.000) :xyz}
        !          2515: do_test printf-2.6.8.8 {
        !          2516:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 -1.0
        !          2517: } {abc: 2 3 (-1.000e+00) :xyz}
        !          2518: do_test printf-2.6.8.9 {
        !          2519:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 -1.0
        !          2520: } {abc: 2 3 (-1) :xyz}
        !          2521: do_test printf-2.6.9.1 {
        !          2522:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 -99.99999
        !          2523: } {abc: (-100.000) :xyz}
        !          2524: do_test printf-2.6.9.2 {
        !          2525:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 -99.99999
        !          2526: } {abc: (-1.000e+02) :xyz}
        !          2527: do_test printf-2.6.9.3 {
        !          2528:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 -99.99999
        !          2529: } {abc: (-100) :xyz}
        !          2530: do_test printf-2.6.9.4 {
        !          2531:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 -99.99999
        !          2532: } {abc: 2 3 (-100) :xyz}
        !          2533: do_test printf-2.6.9.5 {
        !          2534:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 -99.99999
        !          2535: } {abc: 2 3 (-100.000) :xyz}
        !          2536: do_test printf-2.6.9.6 {
        !          2537:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 -99.99999
        !          2538: } {abc: 2 3 (-000000100) :xyz}
        !          2539: do_test printf-2.6.9.7 {
        !          2540:   sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 -99.99999
        !          2541: } {abc: 2 3 (-100.000) :xyz}
        !          2542: do_test printf-2.6.9.8 {
        !          2543:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 -99.99999
        !          2544: } {abc: 2 3 (-1.000e+02) :xyz}
        !          2545: do_test printf-2.6.9.9 {
        !          2546:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 -99.99999
        !          2547: } {abc: 2 3 (-100) :xyz}
        !          2548: do_test printf-2.6.10.1 {
        !          2549:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 3.14e+9
        !          2550: } {abc: (3140000000.000) :xyz}
        !          2551: do_test printf-2.6.10.2 {
        !          2552:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 3.14e+9
        !          2553: } {abc: (3.140e+09) :xyz}
        !          2554: do_test printf-2.6.10.3 {
        !          2555:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 3.14e+9
        !          2556: } {abc: (3.14e+09) :xyz}
        !          2557: do_test printf-2.6.10.4 {
        !          2558:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 3.14e+9
        !          2559: } {abc: 2 3 (3.14e+09) :xyz}
        !          2560: do_test printf-2.6.10.5 {
        !          2561:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 3.14e+9
        !          2562: } {abc: 2 3 (3.14000e+09) :xyz}
        !          2563: do_test printf-2.6.10.6 {
        !          2564:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 3.14e+9
        !          2565: } {abc: 2 3 (003.14e+09) :xyz}
        !          2566: do_test printf-2.6.10.7 {
        !          2567:   sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 3.14e+9
        !          2568: } {abc: 2 3 (3140000000.000) :xyz}
        !          2569: do_test printf-2.6.10.8 {
        !          2570:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 3.14e+9
        !          2571: } {abc: 2 3 (3.140e+09) :xyz}
        !          2572: do_test printf-2.6.10.9 {
        !          2573:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 3.14e+9
        !          2574: } {abc: 2 3 (3.14e+09) :xyz}
        !          2575: do_test printf-2.6.11.2 {
        !          2576:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 -4.72732e+88
        !          2577: } {abc: (-4.727e+88) :xyz}
        !          2578: do_test printf-2.6.11.3 {
        !          2579:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 -4.72732e+88
        !          2580: } {abc: (-4.73e+88) :xyz}
        !          2581: do_test printf-2.6.11.4 {
        !          2582:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 -4.72732e+88
        !          2583: } {abc: 2 3 (-4.72732e+88) :xyz}
        !          2584: do_test printf-2.6.11.5 {
        !          2585:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 -4.72732e+88
        !          2586: } {abc: 2 3 (-4.72732e+88) :xyz}
        !          2587: do_test printf-2.6.11.6 {
        !          2588:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 -4.72732e+88
        !          2589: } {abc: 2 3 (-4.72732e+88) :xyz}
        !          2590: do_test printf-2.6.11.8 {
        !          2591:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 -4.72732e+88
        !          2592: } {abc: 2 3 (-4.727e+88) :xyz}
        !          2593: do_test printf-2.6.11.9 {
        !          2594:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 -4.72732e+88
        !          2595: } {abc: 2 3 (-4.73e+88) :xyz}
        !          2596: do_test printf-2.6.12.2 {
        !          2597:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 9.87991e+143
        !          2598: } {abc: (9.880e+143) :xyz}
        !          2599: do_test printf-2.6.12.3 {
        !          2600:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 9.87991e+143
        !          2601: } {abc: (9.88e+143) :xyz}
        !          2602: do_test printf-2.6.12.4 {
        !          2603:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 9.87991e+143
        !          2604: } {abc: 2 3 (9.87991e+143) :xyz}
        !          2605: do_test printf-2.6.12.5 {
        !          2606:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 9.87991e+143
        !          2607: } {abc: 2 3 (9.87991e+143) :xyz}
        !          2608: do_test printf-2.6.12.6 {
        !          2609:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 9.87991e+143
        !          2610: } {abc: 2 3 (9.87991e+143) :xyz}
        !          2611: do_test printf-2.6.12.8 {
        !          2612:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 9.87991e+143
        !          2613: } {abc: 2 3 (9.880e+143) :xyz}
        !          2614: do_test printf-2.6.12.9 {
        !          2615:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 9.87991e+143
        !          2616: } {abc: 2 3 (9.88e+143) :xyz}
        !          2617: do_test printf-2.6.13.1 {
        !          2618:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 -6.287291e-9
        !          2619: } {abc: (-0.000) :xyz}
        !          2620: do_test printf-2.6.13.2 {
        !          2621:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 -6.287291e-9
        !          2622: } {abc: (-6.287e-09) :xyz}
        !          2623: do_test printf-2.6.13.3 {
        !          2624:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 -6.287291e-9
        !          2625: } {abc: (-6.29e-09) :xyz}
        !          2626: do_test printf-2.6.13.4 {
        !          2627:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 -6.287291e-9
        !          2628: } {abc: 2 3 (-6.28729e-09) :xyz}
        !          2629: do_test printf-2.6.13.5 {
        !          2630:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 -6.287291e-9
        !          2631: } {abc: 2 3 (-6.28729e-09) :xyz}
        !          2632: do_test printf-2.6.13.6 {
        !          2633:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 -6.287291e-9
        !          2634: } {abc: 2 3 (-6.28729e-09) :xyz}
        !          2635: do_test printf-2.6.13.7 {
        !          2636:   sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 -6.287291e-9
        !          2637: } {abc: 2 3 (-0.000) :xyz}
        !          2638: do_test printf-2.6.13.8 {
        !          2639:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 -6.287291e-9
        !          2640: } {abc: 2 3 (-6.287e-09) :xyz}
        !          2641: do_test printf-2.6.13.9 {
        !          2642:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 -6.287291e-9
        !          2643: } {abc: 2 3 (-6.29e-09) :xyz}
        !          2644: do_test printf-2.6.14.1 {
        !          2645:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 2 3 3.38826392e-110
        !          2646: } {abc: (0.000) :xyz}
        !          2647: do_test printf-2.6.14.2 {
        !          2648:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 2 3 3.38826392e-110
        !          2649: } {abc: (3.388e-110) :xyz}
        !          2650: do_test printf-2.6.14.3 {
        !          2651:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 2 3 3.38826392e-110
        !          2652: } {abc: (3.39e-110) :xyz}
        !          2653: do_test printf-2.6.14.4 {
        !          2654:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 2 3 3.38826392e-110
        !          2655: } {abc: 2 3 (3.38826e-110) :xyz}
        !          2656: do_test printf-2.6.14.5 {
        !          2657:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 2 3 3.38826392e-110
        !          2658: } {abc: 2 3 (3.38826e-110) :xyz}
        !          2659: do_test printf-2.6.14.6 {
        !          2660:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 2 3 3.38826392e-110
        !          2661: } {abc: 2 3 (3.38826e-110) :xyz}
        !          2662: do_test printf-2.6.14.7 {
        !          2663:   sqlite3_mprintf_double {abc: %d %d (%2.3f) :xyz} 2 3 3.38826392e-110
        !          2664: } {abc: 2 3 (0.000) :xyz}
        !          2665: do_test printf-2.6.14.8 {
        !          2666:   sqlite3_mprintf_double {abc: %d %d (%2.3e) :xyz} 2 3 3.38826392e-110
        !          2667: } {abc: 2 3 (3.388e-110) :xyz}
        !          2668: do_test printf-2.6.14.9 {
        !          2669:   sqlite3_mprintf_double {abc: %d %d (%2.3g) :xyz} 2 3 3.38826392e-110
        !          2670: } {abc: 2 3 (3.39e-110) :xyz}
        !          2671: do_test printf-2.7.1.1 {
        !          2672:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 0.001
        !          2673: } {abc: (0.001) :xyz}
        !          2674: do_test printf-2.7.1.2 {
        !          2675:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 0.001
        !          2676: } {abc: (1.000e-03) :xyz}
        !          2677: do_test printf-2.7.1.3 {
        !          2678:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 0.001
        !          2679: } {abc: (0.001) :xyz}
        !          2680: do_test printf-2.7.1.4 {
        !          2681:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 0.001
        !          2682: } {abc: 3 3 (0.001) :xyz}
        !          2683: do_test printf-2.7.1.5 {
        !          2684:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 0.001
        !          2685: } {abc: 3 3 (0.00100000) :xyz}
        !          2686: do_test printf-2.7.1.6 {
        !          2687:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 0.001
        !          2688: } {abc: 3 3 (000000.001) :xyz}
        !          2689: do_test printf-2.7.1.7 {
        !          2690:   sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 0.001
        !          2691: } {abc: 3 3 (0.001) :xyz}
        !          2692: do_test printf-2.7.1.8 {
        !          2693:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 0.001
        !          2694: } {abc: 3 3 (1.000e-03) :xyz}
        !          2695: do_test printf-2.7.1.9 {
        !          2696:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 0.001
        !          2697: } {abc: 3 3 (0.001) :xyz}
        !          2698: do_test printf-2.7.2.1 {
        !          2699:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 1.0e-20
        !          2700: } {abc: (0.000) :xyz}
        !          2701: do_test printf-2.7.2.2 {
        !          2702:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 1.0e-20
        !          2703: } {abc: (1.000e-20) :xyz}
        !          2704: do_test printf-2.7.2.3 {
        !          2705:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 1.0e-20
        !          2706: } {abc: (1e-20) :xyz}
        !          2707: do_test printf-2.7.2.4 {
        !          2708:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 1.0e-20
        !          2709: } {abc: 3 3 (1e-20) :xyz}
        !          2710: do_test printf-2.7.2.5 {
        !          2711:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 1.0e-20
        !          2712: } {abc: 3 3 (1.00000e-20) :xyz}
        !          2713: do_test printf-2.7.2.6 {
        !          2714:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 1.0e-20
        !          2715: } {abc: 3 3 (000001e-20) :xyz}
        !          2716: do_test printf-2.7.2.7 {
        !          2717:   sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 1.0e-20
        !          2718: } {abc: 3 3 (0.000) :xyz}
        !          2719: do_test printf-2.7.2.8 {
        !          2720:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 1.0e-20
        !          2721: } {abc: 3 3 (1.000e-20) :xyz}
        !          2722: do_test printf-2.7.2.9 {
        !          2723:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 1.0e-20
        !          2724: } {abc: 3 3 (1e-20) :xyz}
        !          2725: do_test printf-2.7.3.1 {
        !          2726:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 1.0
        !          2727: } {abc: (1.000) :xyz}
        !          2728: do_test printf-2.7.3.2 {
        !          2729:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 1.0
        !          2730: } {abc: (1.000e+00) :xyz}
        !          2731: do_test printf-2.7.3.3 {
        !          2732:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 1.0
        !          2733: } {abc: (  1) :xyz}
        !          2734: do_test printf-2.7.3.4 {
        !          2735:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 1.0
        !          2736: } {abc: 3 3 (1) :xyz}
        !          2737: do_test printf-2.7.3.5 {
        !          2738:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 1.0
        !          2739: } {abc: 3 3 (1.00000) :xyz}
        !          2740: do_test printf-2.7.3.6 {
        !          2741:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 1.0
        !          2742: } {abc: 3 3 (0000000001) :xyz}
        !          2743: do_test printf-2.7.3.7 {
        !          2744:   sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 1.0
        !          2745: } {abc: 3 3 (1.000) :xyz}
        !          2746: do_test printf-2.7.3.8 {
        !          2747:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 1.0
        !          2748: } {abc: 3 3 (1.000e+00) :xyz}
        !          2749: do_test printf-2.7.3.9 {
        !          2750:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 1.0
        !          2751: } {abc: 3 3 (  1) :xyz}
        !          2752: do_test printf-2.7.4.1 {
        !          2753:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 0.0
        !          2754: } {abc: (0.000) :xyz}
        !          2755: do_test printf-2.7.4.2 {
        !          2756:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 0.0
        !          2757: } {abc: (0.000e+00) :xyz}
        !          2758: do_test printf-2.7.4.3 {
        !          2759:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 0.0
        !          2760: } {abc: (  0) :xyz}
        !          2761: do_test printf-2.7.4.4 {
        !          2762:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 0.0
        !          2763: } {abc: 3 3 (0) :xyz}
        !          2764: do_test printf-2.7.4.5 {
        !          2765:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 0.0
        !          2766: } {abc: 3 3 (0.00000) :xyz}
        !          2767: do_test printf-2.7.4.6 {
        !          2768:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 0.0
        !          2769: } {abc: 3 3 (0000000000) :xyz}
        !          2770: do_test printf-2.7.4.7 {
        !          2771:   sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 0.0
        !          2772: } {abc: 3 3 (0.000) :xyz}
        !          2773: do_test printf-2.7.4.8 {
        !          2774:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 0.0
        !          2775: } {abc: 3 3 (0.000e+00) :xyz}
        !          2776: do_test printf-2.7.4.9 {
        !          2777:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 0.0
        !          2778: } {abc: 3 3 (  0) :xyz}
        !          2779: do_test printf-2.7.5.1 {
        !          2780:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 100.0
        !          2781: } {abc: (100.000) :xyz}
        !          2782: do_test printf-2.7.5.2 {
        !          2783:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 100.0
        !          2784: } {abc: (1.000e+02) :xyz}
        !          2785: do_test printf-2.7.5.3 {
        !          2786:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 100.0
        !          2787: } {abc: (100) :xyz}
        !          2788: do_test printf-2.7.5.4 {
        !          2789:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 100.0
        !          2790: } {abc: 3 3 (100) :xyz}
        !          2791: do_test printf-2.7.5.5 {
        !          2792:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 100.0
        !          2793: } {abc: 3 3 (100.000) :xyz}
        !          2794: do_test printf-2.7.5.6 {
        !          2795:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 100.0
        !          2796: } {abc: 3 3 (0000000100) :xyz}
        !          2797: do_test printf-2.7.5.7 {
        !          2798:   sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 100.0
        !          2799: } {abc: 3 3 (100.000) :xyz}
        !          2800: do_test printf-2.7.5.8 {
        !          2801:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 100.0
        !          2802: } {abc: 3 3 (1.000e+02) :xyz}
        !          2803: do_test printf-2.7.5.9 {
        !          2804:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 100.0
        !          2805: } {abc: 3 3 (100) :xyz}
        !          2806: do_test printf-2.7.6.1 {
        !          2807:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 9.99999
        !          2808: } {abc: (10.000) :xyz}
        !          2809: do_test printf-2.7.6.2 {
        !          2810:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 9.99999
        !          2811: } {abc: (1.000e+01) :xyz}
        !          2812: do_test printf-2.7.6.3 {
        !          2813:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 9.99999
        !          2814: } {abc: ( 10) :xyz}
        !          2815: do_test printf-2.7.6.4 {
        !          2816:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 9.99999
        !          2817: } {abc: 3 3 (9.99999) :xyz}
        !          2818: do_test printf-2.7.6.5 {
        !          2819:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 9.99999
        !          2820: } {abc: 3 3 (9.99999) :xyz}
        !          2821: do_test printf-2.7.6.6 {
        !          2822:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 9.99999
        !          2823: } {abc: 3 3 (0009.99999) :xyz}
        !          2824: do_test printf-2.7.6.7 {
        !          2825:   sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 9.99999
        !          2826: } {abc: 3 3 (10.000) :xyz}
        !          2827: do_test printf-2.7.6.8 {
        !          2828:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 9.99999
        !          2829: } {abc: 3 3 (1.000e+01) :xyz}
        !          2830: do_test printf-2.7.6.9 {
        !          2831:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 9.99999
        !          2832: } {abc: 3 3 ( 10) :xyz}
        !          2833: do_test printf-2.7.7.1 {
        !          2834:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 -0.00543
        !          2835: } {abc: (-0.005) :xyz}
        !          2836: do_test printf-2.7.7.2 {
        !          2837:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 -0.00543
        !          2838: } {abc: (-5.430e-03) :xyz}
        !          2839: do_test printf-2.7.7.3 {
        !          2840:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 -0.00543
        !          2841: } {abc: (-0.00543) :xyz}
        !          2842: do_test printf-2.7.7.4 {
        !          2843:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 -0.00543
        !          2844: } {abc: 3 3 (-0.00543) :xyz}
        !          2845: do_test printf-2.7.7.5 {
        !          2846:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 -0.00543
        !          2847: } {abc: 3 3 (-0.00543000) :xyz}
        !          2848: do_test printf-2.7.7.6 {
        !          2849:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 -0.00543
        !          2850: } {abc: 3 3 (-000.00543) :xyz}
        !          2851: do_test printf-2.7.7.7 {
        !          2852:   sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 -0.00543
        !          2853: } {abc: 3 3 (-0.005) :xyz}
        !          2854: do_test printf-2.7.7.8 {
        !          2855:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 -0.00543
        !          2856: } {abc: 3 3 (-5.430e-03) :xyz}
        !          2857: do_test printf-2.7.7.9 {
        !          2858:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 -0.00543
        !          2859: } {abc: 3 3 (-0.00543) :xyz}
        !          2860: do_test printf-2.7.8.1 {
        !          2861:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 -1.0
        !          2862: } {abc: (-1.000) :xyz}
        !          2863: do_test printf-2.7.8.2 {
        !          2864:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 -1.0
        !          2865: } {abc: (-1.000e+00) :xyz}
        !          2866: do_test printf-2.7.8.3 {
        !          2867:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 -1.0
        !          2868: } {abc: ( -1) :xyz}
        !          2869: do_test printf-2.7.8.4 {
        !          2870:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 -1.0
        !          2871: } {abc: 3 3 (-1) :xyz}
        !          2872: do_test printf-2.7.8.5 {
        !          2873:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 -1.0
        !          2874: } {abc: 3 3 (-1.00000) :xyz}
        !          2875: do_test printf-2.7.8.6 {
        !          2876:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 -1.0
        !          2877: } {abc: 3 3 (-000000001) :xyz}
        !          2878: do_test printf-2.7.8.7 {
        !          2879:   sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 -1.0
        !          2880: } {abc: 3 3 (-1.000) :xyz}
        !          2881: do_test printf-2.7.8.8 {
        !          2882:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 -1.0
        !          2883: } {abc: 3 3 (-1.000e+00) :xyz}
        !          2884: do_test printf-2.7.8.9 {
        !          2885:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 -1.0
        !          2886: } {abc: 3 3 ( -1) :xyz}
        !          2887: do_test printf-2.7.9.1 {
        !          2888:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 -99.99999
        !          2889: } {abc: (-100.000) :xyz}
        !          2890: do_test printf-2.7.9.2 {
        !          2891:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 -99.99999
        !          2892: } {abc: (-1.000e+02) :xyz}
        !          2893: do_test printf-2.7.9.3 {
        !          2894:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 -99.99999
        !          2895: } {abc: (-100) :xyz}
        !          2896: do_test printf-2.7.9.4 {
        !          2897:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 -99.99999
        !          2898: } {abc: 3 3 (-100) :xyz}
        !          2899: do_test printf-2.7.9.5 {
        !          2900:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 -99.99999
        !          2901: } {abc: 3 3 (-100.000) :xyz}
        !          2902: do_test printf-2.7.9.6 {
        !          2903:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 -99.99999
        !          2904: } {abc: 3 3 (-000000100) :xyz}
        !          2905: do_test printf-2.7.9.7 {
        !          2906:   sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 -99.99999
        !          2907: } {abc: 3 3 (-100.000) :xyz}
        !          2908: do_test printf-2.7.9.8 {
        !          2909:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 -99.99999
        !          2910: } {abc: 3 3 (-1.000e+02) :xyz}
        !          2911: do_test printf-2.7.9.9 {
        !          2912:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 -99.99999
        !          2913: } {abc: 3 3 (-100) :xyz}
        !          2914: do_test printf-2.7.10.1 {
        !          2915:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 3.14e+9
        !          2916: } {abc: (3140000000.000) :xyz}
        !          2917: do_test printf-2.7.10.2 {
        !          2918:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 3.14e+9
        !          2919: } {abc: (3.140e+09) :xyz}
        !          2920: do_test printf-2.7.10.3 {
        !          2921:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 3.14e+9
        !          2922: } {abc: (3.14e+09) :xyz}
        !          2923: do_test printf-2.7.10.4 {
        !          2924:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 3.14e+9
        !          2925: } {abc: 3 3 (3.14e+09) :xyz}
        !          2926: do_test printf-2.7.10.5 {
        !          2927:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 3.14e+9
        !          2928: } {abc: 3 3 (3.14000e+09) :xyz}
        !          2929: do_test printf-2.7.10.6 {
        !          2930:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 3.14e+9
        !          2931: } {abc: 3 3 (003.14e+09) :xyz}
        !          2932: do_test printf-2.7.10.7 {
        !          2933:   sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 3.14e+9
        !          2934: } {abc: 3 3 (3140000000.000) :xyz}
        !          2935: do_test printf-2.7.10.8 {
        !          2936:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 3.14e+9
        !          2937: } {abc: 3 3 (3.140e+09) :xyz}
        !          2938: do_test printf-2.7.10.9 {
        !          2939:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 3.14e+9
        !          2940: } {abc: 3 3 (3.14e+09) :xyz}
        !          2941: do_test printf-2.7.11.2 {
        !          2942:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 -4.72732e+88
        !          2943: } {abc: (-4.727e+88) :xyz}
        !          2944: do_test printf-2.7.11.3 {
        !          2945:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 -4.72732e+88
        !          2946: } {abc: (-4.73e+88) :xyz}
        !          2947: do_test printf-2.7.11.4 {
        !          2948:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 -4.72732e+88
        !          2949: } {abc: 3 3 (-4.72732e+88) :xyz}
        !          2950: do_test printf-2.7.11.5 {
        !          2951:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 -4.72732e+88
        !          2952: } {abc: 3 3 (-4.72732e+88) :xyz}
        !          2953: do_test printf-2.7.11.6 {
        !          2954:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 -4.72732e+88
        !          2955: } {abc: 3 3 (-4.72732e+88) :xyz}
        !          2956: do_test printf-2.7.11.8 {
        !          2957:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 -4.72732e+88
        !          2958: } {abc: 3 3 (-4.727e+88) :xyz}
        !          2959: do_test printf-2.7.11.9 {
        !          2960:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 -4.72732e+88
        !          2961: } {abc: 3 3 (-4.73e+88) :xyz}
        !          2962: do_test printf-2.7.12.2 {
        !          2963:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 9.87991e+143
        !          2964: } {abc: (9.880e+143) :xyz}
        !          2965: do_test printf-2.7.12.3 {
        !          2966:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 9.87991e+143
        !          2967: } {abc: (9.88e+143) :xyz}
        !          2968: do_test printf-2.7.12.4 {
        !          2969:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 9.87991e+143
        !          2970: } {abc: 3 3 (9.87991e+143) :xyz}
        !          2971: do_test printf-2.7.12.5 {
        !          2972:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 9.87991e+143
        !          2973: } {abc: 3 3 (9.87991e+143) :xyz}
        !          2974: do_test printf-2.7.12.6 {
        !          2975:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 9.87991e+143
        !          2976: } {abc: 3 3 (9.87991e+143) :xyz}
        !          2977: do_test printf-2.7.12.8 {
        !          2978:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 9.87991e+143
        !          2979: } {abc: 3 3 (9.880e+143) :xyz}
        !          2980: do_test printf-2.7.12.9 {
        !          2981:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 9.87991e+143
        !          2982: } {abc: 3 3 (9.88e+143) :xyz}
        !          2983: do_test printf-2.7.13.1 {
        !          2984:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 -6.287291e-9
        !          2985: } {abc: (-0.000) :xyz}
        !          2986: do_test printf-2.7.13.2 {
        !          2987:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 -6.287291e-9
        !          2988: } {abc: (-6.287e-09) :xyz}
        !          2989: do_test printf-2.7.13.3 {
        !          2990:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 -6.287291e-9
        !          2991: } {abc: (-6.29e-09) :xyz}
        !          2992: do_test printf-2.7.13.4 {
        !          2993:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 -6.287291e-9
        !          2994: } {abc: 3 3 (-6.28729e-09) :xyz}
        !          2995: do_test printf-2.7.13.5 {
        !          2996:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 -6.287291e-9
        !          2997: } {abc: 3 3 (-6.28729e-09) :xyz}
        !          2998: do_test printf-2.7.13.6 {
        !          2999:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 -6.287291e-9
        !          3000: } {abc: 3 3 (-6.28729e-09) :xyz}
        !          3001: do_test printf-2.7.13.7 {
        !          3002:   sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 -6.287291e-9
        !          3003: } {abc: 3 3 (-0.000) :xyz}
        !          3004: do_test printf-2.7.13.8 {
        !          3005:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 -6.287291e-9
        !          3006: } {abc: 3 3 (-6.287e-09) :xyz}
        !          3007: do_test printf-2.7.13.9 {
        !          3008:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 -6.287291e-9
        !          3009: } {abc: 3 3 (-6.29e-09) :xyz}
        !          3010: do_test printf-2.7.14.1 {
        !          3011:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 3 3.38826392e-110
        !          3012: } {abc: (0.000) :xyz}
        !          3013: do_test printf-2.7.14.2 {
        !          3014:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 3 3.38826392e-110
        !          3015: } {abc: (3.388e-110) :xyz}
        !          3016: do_test printf-2.7.14.3 {
        !          3017:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 3 3.38826392e-110
        !          3018: } {abc: (3.39e-110) :xyz}
        !          3019: do_test printf-2.7.14.4 {
        !          3020:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 3 3.38826392e-110
        !          3021: } {abc: 3 3 (3.38826e-110) :xyz}
        !          3022: do_test printf-2.7.14.5 {
        !          3023:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 3 3.38826392e-110
        !          3024: } {abc: 3 3 (3.38826e-110) :xyz}
        !          3025: do_test printf-2.7.14.6 {
        !          3026:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 3 3.38826392e-110
        !          3027: } {abc: 3 3 (3.38826e-110) :xyz}
        !          3028: do_test printf-2.7.14.7 {
        !          3029:   sqlite3_mprintf_double {abc: %d %d (%3.3f) :xyz} 3 3 3.38826392e-110
        !          3030: } {abc: 3 3 (0.000) :xyz}
        !          3031: do_test printf-2.7.14.8 {
        !          3032:   sqlite3_mprintf_double {abc: %d %d (%3.3e) :xyz} 3 3 3.38826392e-110
        !          3033: } {abc: 3 3 (3.388e-110) :xyz}
        !          3034: do_test printf-2.7.14.9 {
        !          3035:   sqlite3_mprintf_double {abc: %d %d (%3.3g) :xyz} 3 3 3.38826392e-110
        !          3036: } {abc: 3 3 (3.39e-110) :xyz}
        !          3037: do_test printf-2.8.1.1 {
        !          3038:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 0.001
        !          3039: } {abc: (0.00) :xyz}
        !          3040: do_test printf-2.8.1.2 {
        !          3041:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 0.001
        !          3042: } {abc: (1.00e-03) :xyz}
        !          3043: do_test printf-2.8.1.3 {
        !          3044:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 0.001
        !          3045: } {abc: (0.001) :xyz}
        !          3046: do_test printf-2.8.1.4 {
        !          3047:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 0.001
        !          3048: } {abc: 3 2 (0.001) :xyz}
        !          3049: do_test printf-2.8.1.5 {
        !          3050:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 0.001
        !          3051: } {abc: 3 2 (0.00100000) :xyz}
        !          3052: do_test printf-2.8.1.6 {
        !          3053:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 0.001
        !          3054: } {abc: 3 2 (000000.001) :xyz}
        !          3055: do_test printf-2.8.1.7 {
        !          3056:   sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 0.001
        !          3057: } {abc: 3 2 (0.00) :xyz}
        !          3058: do_test printf-2.8.1.8 {
        !          3059:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 0.001
        !          3060: } {abc: 3 2 (1.00e-03) :xyz}
        !          3061: do_test printf-2.8.1.9 {
        !          3062:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 0.001
        !          3063: } {abc: 3 2 (0.001) :xyz}
        !          3064: do_test printf-2.8.2.1 {
        !          3065:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 1.0e-20
        !          3066: } {abc: (0.00) :xyz}
        !          3067: do_test printf-2.8.2.2 {
        !          3068:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 1.0e-20
        !          3069: } {abc: (1.00e-20) :xyz}
        !          3070: do_test printf-2.8.2.3 {
        !          3071:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 1.0e-20
        !          3072: } {abc: (1e-20) :xyz}
        !          3073: do_test printf-2.8.2.4 {
        !          3074:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 1.0e-20
        !          3075: } {abc: 3 2 (1e-20) :xyz}
        !          3076: do_test printf-2.8.2.5 {
        !          3077:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 1.0e-20
        !          3078: } {abc: 3 2 (1.00000e-20) :xyz}
        !          3079: do_test printf-2.8.2.6 {
        !          3080:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 1.0e-20
        !          3081: } {abc: 3 2 (000001e-20) :xyz}
        !          3082: do_test printf-2.8.2.7 {
        !          3083:   sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 1.0e-20
        !          3084: } {abc: 3 2 (0.00) :xyz}
        !          3085: do_test printf-2.8.2.8 {
        !          3086:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 1.0e-20
        !          3087: } {abc: 3 2 (1.00e-20) :xyz}
        !          3088: do_test printf-2.8.2.9 {
        !          3089:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 1.0e-20
        !          3090: } {abc: 3 2 (1e-20) :xyz}
        !          3091: do_test printf-2.8.3.1 {
        !          3092:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 1.0
        !          3093: } {abc: (1.00) :xyz}
        !          3094: do_test printf-2.8.3.2 {
        !          3095:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 1.0
        !          3096: } {abc: (1.00e+00) :xyz}
        !          3097: do_test printf-2.8.3.3 {
        !          3098:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 1.0
        !          3099: } {abc: (  1) :xyz}
        !          3100: do_test printf-2.8.3.4 {
        !          3101:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 1.0
        !          3102: } {abc: 3 2 (1) :xyz}
        !          3103: do_test printf-2.8.3.5 {
        !          3104:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 1.0
        !          3105: } {abc: 3 2 (1.00000) :xyz}
        !          3106: do_test printf-2.8.3.6 {
        !          3107:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 1.0
        !          3108: } {abc: 3 2 (0000000001) :xyz}
        !          3109: do_test printf-2.8.3.7 {
        !          3110:   sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 1.0
        !          3111: } {abc: 3 2 (1.00) :xyz}
        !          3112: do_test printf-2.8.3.8 {
        !          3113:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 1.0
        !          3114: } {abc: 3 2 (1.00e+00) :xyz}
        !          3115: do_test printf-2.8.3.9 {
        !          3116:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 1.0
        !          3117: } {abc: 3 2 (  1) :xyz}
        !          3118: do_test printf-2.8.4.1 {
        !          3119:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 0.0
        !          3120: } {abc: (0.00) :xyz}
        !          3121: do_test printf-2.8.4.2 {
        !          3122:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 0.0
        !          3123: } {abc: (0.00e+00) :xyz}
        !          3124: do_test printf-2.8.4.3 {
        !          3125:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 0.0
        !          3126: } {abc: (  0) :xyz}
        !          3127: do_test printf-2.8.4.4 {
        !          3128:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 0.0
        !          3129: } {abc: 3 2 (0) :xyz}
        !          3130: do_test printf-2.8.4.5 {
        !          3131:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 0.0
        !          3132: } {abc: 3 2 (0.00000) :xyz}
        !          3133: do_test printf-2.8.4.6 {
        !          3134:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 0.0
        !          3135: } {abc: 3 2 (0000000000) :xyz}
        !          3136: do_test printf-2.8.4.7 {
        !          3137:   sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 0.0
        !          3138: } {abc: 3 2 (0.00) :xyz}
        !          3139: do_test printf-2.8.4.8 {
        !          3140:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 0.0
        !          3141: } {abc: 3 2 (0.00e+00) :xyz}
        !          3142: do_test printf-2.8.4.9 {
        !          3143:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 0.0
        !          3144: } {abc: 3 2 (  0) :xyz}
        !          3145: do_test printf-2.8.5.1 {
        !          3146:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 100.0
        !          3147: } {abc: (100.00) :xyz}
        !          3148: do_test printf-2.8.5.2 {
        !          3149:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 100.0
        !          3150: } {abc: (1.00e+02) :xyz}
        !          3151: do_test printf-2.8.5.3 {
        !          3152:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 100.0
        !          3153: } {abc: (1e+02) :xyz}
        !          3154: do_test printf-2.8.5.4 {
        !          3155:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 100.0
        !          3156: } {abc: 3 2 (100) :xyz}
        !          3157: do_test printf-2.8.5.5 {
        !          3158:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 100.0
        !          3159: } {abc: 3 2 (100.000) :xyz}
        !          3160: do_test printf-2.8.5.6 {
        !          3161:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 100.0
        !          3162: } {abc: 3 2 (0000000100) :xyz}
        !          3163: do_test printf-2.8.5.7 {
        !          3164:   sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 100.0
        !          3165: } {abc: 3 2 (100.00) :xyz}
        !          3166: do_test printf-2.8.5.8 {
        !          3167:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 100.0
        !          3168: } {abc: 3 2 (1.00e+02) :xyz}
        !          3169: do_test printf-2.8.5.9 {
        !          3170:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 100.0
        !          3171: } {abc: 3 2 (1e+02) :xyz}
        !          3172: do_test printf-2.8.6.1 {
        !          3173:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 9.99999
        !          3174: } {abc: (10.00) :xyz}
        !          3175: do_test printf-2.8.6.2 {
        !          3176:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 9.99999
        !          3177: } {abc: (1.00e+01) :xyz}
        !          3178: do_test printf-2.8.6.3 {
        !          3179:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 9.99999
        !          3180: } {abc: ( 10) :xyz}
        !          3181: do_test printf-2.8.6.4 {
        !          3182:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 9.99999
        !          3183: } {abc: 3 2 (9.99999) :xyz}
        !          3184: do_test printf-2.8.6.5 {
        !          3185:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 9.99999
        !          3186: } {abc: 3 2 (9.99999) :xyz}
        !          3187: do_test printf-2.8.6.6 {
        !          3188:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 9.99999
        !          3189: } {abc: 3 2 (0009.99999) :xyz}
        !          3190: do_test printf-2.8.6.7 {
        !          3191:   sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 9.99999
        !          3192: } {abc: 3 2 (10.00) :xyz}
        !          3193: do_test printf-2.8.6.8 {
        !          3194:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 9.99999
        !          3195: } {abc: 3 2 (1.00e+01) :xyz}
        !          3196: do_test printf-2.8.6.9 {
        !          3197:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 9.99999
        !          3198: } {abc: 3 2 ( 10) :xyz}
        !          3199: do_test printf-2.8.7.1 {
        !          3200:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 -0.00543
        !          3201: } {abc: (-0.01) :xyz}
        !          3202: do_test printf-2.8.7.2 {
        !          3203:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 -0.00543
        !          3204: } {abc: (-5.43e-03) :xyz}
        !          3205: do_test printf-2.8.7.3 {
        !          3206:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 -0.00543
        !          3207: } {abc: (-0.0054) :xyz}
        !          3208: do_test printf-2.8.7.4 {
        !          3209:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 -0.00543
        !          3210: } {abc: 3 2 (-0.00543) :xyz}
        !          3211: do_test printf-2.8.7.5 {
        !          3212:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 -0.00543
        !          3213: } {abc: 3 2 (-0.00543000) :xyz}
        !          3214: do_test printf-2.8.7.6 {
        !          3215:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 -0.00543
        !          3216: } {abc: 3 2 (-000.00543) :xyz}
        !          3217: do_test printf-2.8.7.7 {
        !          3218:   sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 -0.00543
        !          3219: } {abc: 3 2 (-0.01) :xyz}
        !          3220: do_test printf-2.8.7.8 {
        !          3221:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 -0.00543
        !          3222: } {abc: 3 2 (-5.43e-03) :xyz}
        !          3223: do_test printf-2.8.7.9 {
        !          3224:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 -0.00543
        !          3225: } {abc: 3 2 (-0.0054) :xyz}
        !          3226: do_test printf-2.8.8.1 {
        !          3227:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 -1.0
        !          3228: } {abc: (-1.00) :xyz}
        !          3229: do_test printf-2.8.8.2 {
        !          3230:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 -1.0
        !          3231: } {abc: (-1.00e+00) :xyz}
        !          3232: do_test printf-2.8.8.3 {
        !          3233:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 -1.0
        !          3234: } {abc: ( -1) :xyz}
        !          3235: do_test printf-2.8.8.4 {
        !          3236:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 -1.0
        !          3237: } {abc: 3 2 (-1) :xyz}
        !          3238: do_test printf-2.8.8.5 {
        !          3239:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 -1.0
        !          3240: } {abc: 3 2 (-1.00000) :xyz}
        !          3241: do_test printf-2.8.8.6 {
        !          3242:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 -1.0
        !          3243: } {abc: 3 2 (-000000001) :xyz}
        !          3244: do_test printf-2.8.8.7 {
        !          3245:   sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 -1.0
        !          3246: } {abc: 3 2 (-1.00) :xyz}
        !          3247: do_test printf-2.8.8.8 {
        !          3248:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 -1.0
        !          3249: } {abc: 3 2 (-1.00e+00) :xyz}
        !          3250: do_test printf-2.8.8.9 {
        !          3251:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 -1.0
        !          3252: } {abc: 3 2 ( -1) :xyz}
        !          3253: do_test printf-2.8.9.1 {
        !          3254:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 -99.99999
        !          3255: } {abc: (-100.00) :xyz}
        !          3256: do_test printf-2.8.9.2 {
        !          3257:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 -99.99999
        !          3258: } {abc: (-1.00e+02) :xyz}
        !          3259: do_test printf-2.8.9.3 {
        !          3260:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 -99.99999
        !          3261: } {abc: (-1e+02) :xyz}
        !          3262: do_test printf-2.8.9.4 {
        !          3263:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 -99.99999
        !          3264: } {abc: 3 2 (-100) :xyz}
        !          3265: do_test printf-2.8.9.5 {
        !          3266:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 -99.99999
        !          3267: } {abc: 3 2 (-100.000) :xyz}
        !          3268: do_test printf-2.8.9.6 {
        !          3269:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 -99.99999
        !          3270: } {abc: 3 2 (-000000100) :xyz}
        !          3271: do_test printf-2.8.9.7 {
        !          3272:   sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 -99.99999
        !          3273: } {abc: 3 2 (-100.00) :xyz}
        !          3274: do_test printf-2.8.9.8 {
        !          3275:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 -99.99999
        !          3276: } {abc: 3 2 (-1.00e+02) :xyz}
        !          3277: do_test printf-2.8.9.9 {
        !          3278:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 -99.99999
        !          3279: } {abc: 3 2 (-1e+02) :xyz}
        !          3280: do_test printf-2.8.10.1 {
        !          3281:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 3.14e+9
        !          3282: } {abc: (3140000000.00) :xyz}
        !          3283: do_test printf-2.8.10.2 {
        !          3284:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 3.14e+9
        !          3285: } {abc: (3.14e+09) :xyz}
        !          3286: do_test printf-2.8.10.3 {
        !          3287:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 3.14e+9
        !          3288: } {abc: (3.1e+09) :xyz}
        !          3289: do_test printf-2.8.10.4 {
        !          3290:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 3.14e+9
        !          3291: } {abc: 3 2 (3.14e+09) :xyz}
        !          3292: do_test printf-2.8.10.5 {
        !          3293:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 3.14e+9
        !          3294: } {abc: 3 2 (3.14000e+09) :xyz}
        !          3295: do_test printf-2.8.10.6 {
        !          3296:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 3.14e+9
        !          3297: } {abc: 3 2 (003.14e+09) :xyz}
        !          3298: do_test printf-2.8.10.7 {
        !          3299:   sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 3.14e+9
        !          3300: } {abc: 3 2 (3140000000.00) :xyz}
        !          3301: do_test printf-2.8.10.8 {
        !          3302:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 3.14e+9
        !          3303: } {abc: 3 2 (3.14e+09) :xyz}
        !          3304: do_test printf-2.8.10.9 {
        !          3305:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 3.14e+9
        !          3306: } {abc: 3 2 (3.1e+09) :xyz}
        !          3307: do_test printf-2.8.11.2 {
        !          3308:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 -4.72732e+88
        !          3309: } {abc: (-4.73e+88) :xyz}
        !          3310: do_test printf-2.8.11.3 {
        !          3311:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 -4.72732e+88
        !          3312: } {abc: (-4.7e+88) :xyz}
        !          3313: do_test printf-2.8.11.4 {
        !          3314:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 -4.72732e+88
        !          3315: } {abc: 3 2 (-4.72732e+88) :xyz}
        !          3316: do_test printf-2.8.11.5 {
        !          3317:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 -4.72732e+88
        !          3318: } {abc: 3 2 (-4.72732e+88) :xyz}
        !          3319: do_test printf-2.8.11.6 {
        !          3320:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 -4.72732e+88
        !          3321: } {abc: 3 2 (-4.72732e+88) :xyz}
        !          3322: do_test printf-2.8.11.8 {
        !          3323:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 -4.72732e+88
        !          3324: } {abc: 3 2 (-4.73e+88) :xyz}
        !          3325: do_test printf-2.8.11.9 {
        !          3326:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 -4.72732e+88
        !          3327: } {abc: 3 2 (-4.7e+88) :xyz}
        !          3328: do_test printf-2.8.12.2 {
        !          3329:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 9.87991e+143
        !          3330: } {abc: (9.88e+143) :xyz}
        !          3331: do_test printf-2.8.12.3 {
        !          3332:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 9.87991e+143
        !          3333: } {abc: (9.9e+143) :xyz}
        !          3334: do_test printf-2.8.12.4 {
        !          3335:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 9.87991e+143
        !          3336: } {abc: 3 2 (9.87991e+143) :xyz}
        !          3337: do_test printf-2.8.12.5 {
        !          3338:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 9.87991e+143
        !          3339: } {abc: 3 2 (9.87991e+143) :xyz}
        !          3340: do_test printf-2.8.12.6 {
        !          3341:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 9.87991e+143
        !          3342: } {abc: 3 2 (9.87991e+143) :xyz}
        !          3343: do_test printf-2.8.12.8 {
        !          3344:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 9.87991e+143
        !          3345: } {abc: 3 2 (9.88e+143) :xyz}
        !          3346: do_test printf-2.8.12.9 {
        !          3347:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 9.87991e+143
        !          3348: } {abc: 3 2 (9.9e+143) :xyz}
        !          3349: do_test printf-2.8.13.1 {
        !          3350:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 -6.287291e-9
        !          3351: } {abc: (-0.00) :xyz}
        !          3352: do_test printf-2.8.13.2 {
        !          3353:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 -6.287291e-9
        !          3354: } {abc: (-6.29e-09) :xyz}
        !          3355: do_test printf-2.8.13.3 {
        !          3356:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 -6.287291e-9
        !          3357: } {abc: (-6.3e-09) :xyz}
        !          3358: do_test printf-2.8.13.4 {
        !          3359:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 -6.287291e-9
        !          3360: } {abc: 3 2 (-6.28729e-09) :xyz}
        !          3361: do_test printf-2.8.13.5 {
        !          3362:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 -6.287291e-9
        !          3363: } {abc: 3 2 (-6.28729e-09) :xyz}
        !          3364: do_test printf-2.8.13.6 {
        !          3365:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 -6.287291e-9
        !          3366: } {abc: 3 2 (-6.28729e-09) :xyz}
        !          3367: do_test printf-2.8.13.7 {
        !          3368:   sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 -6.287291e-9
        !          3369: } {abc: 3 2 (-0.00) :xyz}
        !          3370: do_test printf-2.8.13.8 {
        !          3371:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 -6.287291e-9
        !          3372: } {abc: 3 2 (-6.29e-09) :xyz}
        !          3373: do_test printf-2.8.13.9 {
        !          3374:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 -6.287291e-9
        !          3375: } {abc: 3 2 (-6.3e-09) :xyz}
        !          3376: do_test printf-2.8.14.1 {
        !          3377:   sqlite3_mprintf_double {abc: (%*.*f) :xyz} 3 2 3.38826392e-110
        !          3378: } {abc: (0.00) :xyz}
        !          3379: do_test printf-2.8.14.2 {
        !          3380:   sqlite3_mprintf_double {abc: (%*.*e) :xyz} 3 2 3.38826392e-110
        !          3381: } {abc: (3.39e-110) :xyz}
        !          3382: do_test printf-2.8.14.3 {
        !          3383:   sqlite3_mprintf_double {abc: (%*.*g) :xyz} 3 2 3.38826392e-110
        !          3384: } {abc: (3.4e-110) :xyz}
        !          3385: do_test printf-2.8.14.4 {
        !          3386:   sqlite3_mprintf_double {abc: %d %d (%g) :xyz} 3 2 3.38826392e-110
        !          3387: } {abc: 3 2 (3.38826e-110) :xyz}
        !          3388: do_test printf-2.8.14.5 {
        !          3389:   sqlite3_mprintf_double {abc: %d %d (%#g) :xyz} 3 2 3.38826392e-110
        !          3390: } {abc: 3 2 (3.38826e-110) :xyz}
        !          3391: do_test printf-2.8.14.6 {
        !          3392:   sqlite3_mprintf_double {abc: %d %d (%010g) :xyz} 3 2 3.38826392e-110
        !          3393: } {abc: 3 2 (3.38826e-110) :xyz}
        !          3394: do_test printf-2.8.14.7 {
        !          3395:   sqlite3_mprintf_double {abc: %d %d (%3.2f) :xyz} 3 2 3.38826392e-110
        !          3396: } {abc: 3 2 (0.00) :xyz}
        !          3397: do_test printf-2.8.14.8 {
        !          3398:   sqlite3_mprintf_double {abc: %d %d (%3.2e) :xyz} 3 2 3.38826392e-110
        !          3399: } {abc: 3 2 (3.39e-110) :xyz}
        !          3400: do_test printf-2.8.14.9 {
        !          3401:   sqlite3_mprintf_double {abc: %d %d (%3.2g) :xyz} 3 2 3.38826392e-110
        !          3402: } {abc: 3 2 (3.4e-110) :xyz}
        !          3403: do_test printf-2.8.15.1 {
        !          3404:   sqlite3_mprintf_double {abc: (% *.*f) :xyz} 3 2 3.38826392e-110
        !          3405: } {abc: ( 0.00) :xyz}
        !          3406: do_test printf-2.8.15.2 {
        !          3407:   sqlite3_mprintf_double {abc: (% *.*e) :xyz} 3 2 3.38826392e-110
        !          3408: } {abc: ( 3.39e-110) :xyz}
        !          3409: do_test printf-2.8.15.3 {
        !          3410:   sqlite3_mprintf_double {abc: (% *.*g) :xyz} 3 2 3.38826392e-110
        !          3411: } {abc: ( 3.4e-110) :xyz}
        !          3412: do_test printf-2.8.15.4 {
        !          3413:   sqlite3_mprintf_double {abc: %d %d (% g) :xyz} 3 2 3.38826392e-110
        !          3414: } {abc: 3 2 ( 3.38826e-110) :xyz}
        !          3415: do_test printf-2.8.15.5 {
        !          3416:   sqlite3_mprintf_double {abc: %d %d (% #g) :xyz} 3 2 3.38826392e-110
        !          3417: } {abc: 3 2 ( 3.38826e-110) :xyz}
        !          3418: do_test printf-2.8.15.6 {
        !          3419:   sqlite3_mprintf_double {abc: %d %d (%0 10g) :xyz} 3 2 3.38826392e-110
        !          3420: } {abc: 3 2 ( 3.38826e-110) :xyz}
        !          3421: do_test printf-2.8.15.7 {
        !          3422:   sqlite3_mprintf_double {abc: %d %d (% 3.2f) :xyz} 3 2 3.38826392e-110
        !          3423: } {abc: 3 2 ( 0.00) :xyz}
        !          3424: do_test printf-2.8.15.8 {
        !          3425:   sqlite3_mprintf_double {abc: %d %d (% 3.2e) :xyz} 3 2 3.38826392e-110
        !          3426: } {abc: 3 2 ( 3.39e-110) :xyz}
        !          3427: do_test printf-2.8.15.9 {
        !          3428:   sqlite3_mprintf_double {abc: %d %d (% 3.2g) :xyz} 3 2 3.38826392e-110
        !          3429: } {abc: 3 2 ( 3.4e-110) :xyz}
        !          3430: 
        !          3431: do_test printf-2.9.1 {
        !          3432:   sqlite3_mprintf_double {abc: %d %d (%5.0g) :xyz} 0 0 1.234
        !          3433: } {abc: 0 0 (    1) :xyz}
        !          3434: do_test printf-2.9.2 {
        !          3435:   sqlite3_mprintf_double {abc: %d %d (%+5.0g) :xyz} 0 0 1.234
        !          3436: } {abc: 0 0 (   +1) :xyz}
        !          3437: do_test printf-2.9.3 {
        !          3438:   sqlite3_mprintf_double {abc: %d %d (%+-5.0g) :xyz} 0 0 1.234
        !          3439: } {abc: 0 0 (+1   ) :xyz}
        !          3440: 
        !          3441: do_test printf-2.10.1 {
        !          3442:   sqlite3_mprintf_double {abc: %d %d (%-010.5f) :xyz} 0 0 1.234
        !          3443: } {abc: 0 0 (1.23400   ) :xyz}
        !          3444: do_test printf-2.10.2 {
        !          3445:   sqlite3_mprintf_double {abc: %d %d (%010.5f) :xyz} 0 0 1.234
        !          3446: } {abc: 0 0 (0001.23400) :xyz}
        !          3447: do_test printf-2.10.3 {
        !          3448:   sqlite3_mprintf_double {abc: %d %d (%+010.5f) :xyz} 0 0 1.234
        !          3449: } {abc: 0 0 (+001.23400) :xyz}
        !          3450: 
        !          3451: do_test printf-3.1 {
        !          3452:   sqlite3_mprintf_str {A String: (%*.*s)} 10 10 {This is the string}
        !          3453: } [format {A String: (%*.*s)} 10 10 {This is the string}]
        !          3454: do_test printf-3.2 {
        !          3455:   sqlite3_mprintf_str {A String: (%*.*s)} 10 5 {This is the string}
        !          3456: } [format {A String: (%*.*s)} 10 5 {This is the string}]
        !          3457: do_test printf-3.3 {
        !          3458:   sqlite3_mprintf_str {A String: (%*.*s)} -10 5 {This is the string}
        !          3459: } [format {A String: (%*.*s)} -10 5 {This is the string}]
        !          3460: do_test printf-3.4 {
        !          3461:   sqlite3_mprintf_str {%d %d A String: (%s)} 1 2 {This is the string}
        !          3462: } [format {%d %d A String: (%s)} 1 2 {This is the string}]
        !          3463: do_test printf-3.5 {
        !          3464:   sqlite3_mprintf_str {%d %d A String: (%30s)} 1 2 {This is the string}
        !          3465: } [format {%d %d A String: (%30s)} 1 2 {This is the string}]
        !          3466: do_test printf-3.6 {
        !          3467:   sqlite3_mprintf_str {%d %d A String: (%-30s)} 1 2 {This is the string}
        !          3468: } [format {%d %d A String: (%-30s)} 1 2 {This is the string}]
        !          3469: do_test snprintf-3.11 {
        !          3470:   sqlite3_snprintf_str 2 {x%d %d %s} 10 10 {This is the string}
        !          3471: } {x}
        !          3472: do_test snprintf-3.12 {
        !          3473:   sqlite3_snprintf_str 3 {x%d %d %s} 10 10 {This is the string}
        !          3474: } {x1}
        !          3475: do_test snprintf-3.13 {
        !          3476:   sqlite3_snprintf_str 4 {x%d %d %s} 10 10 {This is the string}
        !          3477: } {x10}
        !          3478: do_test snprintf-3.14 {
        !          3479:   sqlite3_snprintf_str 5 {x%d %d %s} 10 10 {This is the string}
        !          3480: } {x10 }
        !          3481: do_test snprintf-3.15 {
        !          3482:   sqlite3_snprintf_str 6 {x%d %d %s} 10 10 {This is the string}
        !          3483: } {x10 1}
        !          3484: do_test snprintf-3.16 {
        !          3485:   sqlite3_snprintf_str 7 {x%d %d %s} 10 10 {This is the string}
        !          3486: } {x10 10}
        !          3487: do_test snprintf-3.17 {
        !          3488:   sqlite3_snprintf_str 8 {x%d %d %s} 10 10 {This is the string}
        !          3489: } {x10 10 }
        !          3490: do_test snprintf-3.18 {
        !          3491:   sqlite3_snprintf_str 9 {x%d %d %s} 10 10 {This is the string}
        !          3492: } {x10 10 T}
        !          3493: do_test snprintf-3.19 {
        !          3494:   sqlite3_snprintf_str 100 {x%d %d %s} 10 10 {This is the string}
        !          3495: } {x10 10 This is the string}
        !          3496: 
        !          3497: do_test printf-4.1 {
        !          3498:   sqlite3_mprintf_str {%d %d A quoted string: '%q'} 1 2 {Hi Y'all}
        !          3499: } {1 2 A quoted string: 'Hi Y''all'}
        !          3500: do_test printf-4.2 {
        !          3501:   sqlite3_mprintf_str {%d %d A NULL pointer in %%q: '%q'} 1 2
        !          3502: } {1 2 A NULL pointer in %q: '(NULL)'}
        !          3503: do_test printf-4.3 {
        !          3504:   sqlite3_mprintf_str {%d %d A quoted string: %Q} 1 2 {Hi Y'all}
        !          3505: } {1 2 A quoted string: 'Hi Y''all'}
        !          3506: do_test printf-4.4 {
        !          3507:   sqlite3_mprintf_str {%d %d A NULL pointer in %%Q: %Q} 1 2
        !          3508: } {1 2 A NULL pointer in %Q: NULL}
        !          3509: do_test printf-4.5 {
        !          3510:   sqlite3_mprintf_str {%d %d A quoted string: '%.10q'} 1 2 {Hi Y'all}
        !          3511: } {1 2 A quoted string: 'Hi Y''all'}
        !          3512: do_test printf-4.6 {
        !          3513:   sqlite3_mprintf_str {%d %d A quoted string: '%.9q'} 1 2 {Hi Y'all}
        !          3514: } {1 2 A quoted string: 'Hi Y''all'}
        !          3515: do_test printf-4.7 {
        !          3516:   sqlite3_mprintf_str {%d %d A quoted string: '%.8q'} 1 2 {Hi Y'all}
        !          3517: } {1 2 A quoted string: 'Hi Y''all'}
        !          3518: do_test printf-4.8 {
        !          3519:   sqlite3_mprintf_str {%d %d A quoted string: '%.7q'} 1 2 {Hi Y'all}
        !          3520: } {1 2 A quoted string: 'Hi Y''al'}
        !          3521: do_test printf-4.9 {
        !          3522:   sqlite3_mprintf_str {%d %d A quoted string: '%.6q'} 1 2 {Hi Y'all}
        !          3523: } {1 2 A quoted string: 'Hi Y''a'}
        !          3524: do_test printf-4.10 {
        !          3525:   sqlite3_mprintf_str {%d %d A quoted string: '%.5q'} 1 2 {Hi Y'all}
        !          3526: } {1 2 A quoted string: 'Hi Y'''}
        !          3527: do_test printf-4.11 {
        !          3528:   sqlite3_mprintf_str {%d %d A quoted string: '%.4q'} 1 2 {Hi Y'all}
        !          3529: } {1 2 A quoted string: 'Hi Y'}
        !          3530: do_test printf-4.12 {
        !          3531:   sqlite3_mprintf_str {%d %d A quoted string: '%.3q'} 1 2 {Hi Y'all}
        !          3532: } {1 2 A quoted string: 'Hi '}
        !          3533: do_test printf-4.13 {
        !          3534:   sqlite3_mprintf_str {%d %d A quoted string: '%.2q'} 1 2 {Hi Y'all}
        !          3535: } {1 2 A quoted string: 'Hi'}
        !          3536: do_test printf-4.14 {
        !          3537:   sqlite3_mprintf_str {%d %d A quoted string: '%.1q'} 1 2 {Hi Y'all}
        !          3538: } {1 2 A quoted string: 'H'}
        !          3539: do_test printf-4.15 {
        !          3540:   sqlite3_mprintf_str {%d %d A quoted string: '%.0q'} 1 2 {Hi Y'all}
        !          3541: } {1 2 A quoted string: ''}
        !          3542: do_test printf-4.16 {
        !          3543:   sqlite3_mprintf_str {%d A quoted string: '%.*q'} 1 6 {Hi Y'all}
        !          3544: } {1 A quoted string: 'Hi Y''a'}
        !          3545: 
        !          3546: 
        !          3547: do_test printf-5.1 {
        !          3548:   set x [sqlite3_mprintf_str {%d %d %100000s} 0 0 {Hello}]
        !          3549:   string length $x
        !          3550: } {100004}
        !          3551: do_test printf-5.2 {
        !          3552:   sqlite3_mprintf_str {%d %d (%-10.10s) %} -9 -10 {HelloHelloHello}
        !          3553: } {-9 -10 (HelloHello) %}
        !          3554: 
        !          3555: do_test printf-6.1 {
        !          3556:   sqlite3_mprintf_z_test , one two three four five six
        !          3557: } {,one,two,three,four,five,six}
        !          3558: 
        !          3559: 
        !          3560: do_test printf-7.1 {
        !          3561:   sqlite3_mprintf_scaled {A double: %g} 1.0e307 1.0
        !          3562: } {A double: 1e+307}
        !          3563: do_test printf-7.2 {
        !          3564:   sqlite3_mprintf_scaled {A double: %g} 1.0e307 10.0
        !          3565: } {A double: 1e+308}
        !          3566: do_test printf-7.3 {
        !          3567:   sqlite3_mprintf_scaled {A double: %g} 1.0e307 100.0
        !          3568: } {A double: Inf}
        !          3569: do_test printf-7.4 {
        !          3570:   sqlite3_mprintf_scaled {A double: %g} -1.0e307 100.0
        !          3571: } {A double: -Inf}
        !          3572: do_test printf-7.5 {
        !          3573:   sqlite3_mprintf_scaled {A double: %+g} 1.0e307 100.0
        !          3574: } {A double: +Inf}
        !          3575: 
        !          3576: do_test printf-8.1 {
        !          3577:   sqlite3_mprintf_int {%u %u %u} 0x7fffffff 0x80000000 0xffffffff
        !          3578: } {2147483647 2147483648 4294967295}
        !          3579: do_test printf-8.2 {
        !          3580:   sqlite3_mprintf_long {%lu %lu %lu} 0x7fffffff 0x80000000 0xffffffff
        !          3581: } {2147483647 2147483648 4294967295}
        !          3582: do_test printf-8.3 {
        !          3583:   sqlite3_mprintf_int64 {%llu %llu %llu} 2147483647 2147483648 4294967296
        !          3584: } {2147483647 2147483648 4294967296}
        !          3585: do_test printf-8.4 {
        !          3586:   sqlite3_mprintf_int64 {%lld %lld %lld} 2147483647 2147483648 4294967296
        !          3587: } {2147483647 2147483648 4294967296}
        !          3588: do_test printf-8.5 {
        !          3589:   sqlite3_mprintf_int64 {%llx %llx %llx} 2147483647 2147483648 4294967296
        !          3590: } {7fffffff 80000000 100000000}
        !          3591: do_test printf-8.6 {
        !          3592:   sqlite3_mprintf_int64 {%llx %llo %lld} -1 -1 -1
        !          3593: } {ffffffffffffffff 1777777777777777777777 -1}
        !          3594: do_test printf-8.7 {
        !          3595:   sqlite3_mprintf_int64 {%llx %llx %llx} +2147483647 +2147483648 +4294967296
        !          3596: } {7fffffff 80000000 100000000}
        !          3597: 
        !          3598: do_test printf-9.1 {
        !          3599:   sqlite3_mprintf_int {%*.*c} 4 4 65
        !          3600: } {AAAA}
        !          3601: do_test printf-9.2 {
        !          3602:   sqlite3_mprintf_int {%*.*c} -4 1 66
        !          3603: } {B   }
        !          3604: do_test printf-9.3 {
        !          3605:   sqlite3_mprintf_int {%*.*c} 4 1 67
        !          3606: } {   C}
        !          3607: do_test printf-9.4 {
        !          3608:   sqlite3_mprintf_int {%d %d %c} 4 1 67
        !          3609: } {4 1 C}
        !          3610: set ten {          }
        !          3611: set fifty $ten$ten$ten$ten$ten
        !          3612: do_test printf-9.5 {
        !          3613:   sqlite3_mprintf_int {%d %*c} 1 -201 67
        !          3614: } "1 C$fifty$fifty$fifty$fifty"
        !          3615: do_test printf-9.6 {
        !          3616:   sqlite3_mprintf_int {hi%12345.12346yhello} 0 0 0
        !          3617: } {hi}
        !          3618: 
        !          3619: # Ticket #812
        !          3620: #
        !          3621: do_test printf-10.1 {
        !          3622:   sqlite3_mprintf_stronly %s {}
        !          3623: } {}
        !          3624: 
        !          3625: # Ticket #831
        !          3626: #
        !          3627: do_test printf-10.2 {
        !          3628:   sqlite3_mprintf_stronly %q {}
        !          3629: } {}
        !          3630: 
        !          3631: # Ticket #1340:  Test for loss of precision on large positive exponents
        !          3632: #
        !          3633: do_test printf-10.3 {
        !          3634:   sqlite3_mprintf_double {%d %d %f} 1 1 1e300
        !          3635: } {1 1 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000}
        !          3636: 
        !          3637: # The non-standard '!' flag on a 'g' conversion forces a decimal point
        !          3638: # and at least one digit on either side of the decimal point.
        !          3639: #
        !          3640: do_test printf-11.1 {
        !          3641:   sqlite3_mprintf_double {%d %d %!g} 1 1 1
        !          3642: } {1 1 1.0}
        !          3643: do_test printf-11.2 {
        !          3644:   sqlite3_mprintf_double {%d %d %!g} 1 1 123
        !          3645: } {1 1 123.0}
        !          3646: do_test printf-11.3 {
        !          3647:   sqlite3_mprintf_double {%d %d %!g} 1 1 12.3
        !          3648: } {1 1 12.3}
        !          3649: do_test printf-11.4 {
        !          3650:   sqlite3_mprintf_double {%d %d %!g} 1 1 0.123
        !          3651: } {1 1 0.123}
        !          3652: do_test printf-11.5 {
        !          3653:   sqlite3_mprintf_double {%d %d %!.15g} 1 1 1
        !          3654: } {1 1 1.0}
        !          3655: do_test printf-11.6 {
        !          3656:   sqlite3_mprintf_double {%d %d %!.15g} 1 1 1e10
        !          3657: } {1 1 10000000000.0}
        !          3658: do_test printf-11.7 {
        !          3659:   sqlite3_mprintf_double {%d %d %!.15g} 1 1 1e300
        !          3660: } {1 1 1.0e+300}
        !          3661: 
        !          3662: # Additional tests for coverage
        !          3663: #
        !          3664: do_test printf-12.1 {
        !          3665:   sqlite3_mprintf_double {%d %d %.2000g} 1 1 1.0
        !          3666: } {1 1 1}
        !          3667: 
        !          3668: # Floating point boundary cases
        !          3669: #
        !          3670: do_test printf-13.1 {
        !          3671:   sqlite3_mprintf_hexdouble %.20f 4024000000000000
        !          3672: } {10.00000000000000000000}
        !          3673: do_test printf-13.2 {
        !          3674:   sqlite3_mprintf_hexdouble %.20f 4197d78400000000
        !          3675: } {100000000.00000000000000000000}
        !          3676: do_test printf-13.3 {
        !          3677:   sqlite3_mprintf_hexdouble %.20f 4693b8b5b5056e17
        !          3678: } {100000000000000000000000000000000.00000000000000000000}
        !          3679: do_test printf-13.4 {
        !          3680:   sqlite3_mprintf_hexdouble %.20f 7ff0000000000000
        !          3681: } {Inf}
        !          3682: do_test printf-13.5 {
        !          3683:   sqlite3_mprintf_hexdouble %.20f fff0000000000000
        !          3684: } {-Inf}
        !          3685: do_test printf-13.6 {
        !          3686:   sqlite3_mprintf_hexdouble %.20f fff8000000000000
        !          3687: } {NaN}
        !          3688: 
        !          3689: do_test printf-14.1 {
        !          3690:   sqlite3_mprintf_str {abc-%y-123} 0 0 {not used}
        !          3691: } {abc-}
        !          3692: do_test printf-14.2 {
        !          3693:   sqlite3_mprintf_n_test {xyzzy}
        !          3694: } 5
        !          3695: do_test printf-14.3 {
        !          3696:   sqlite3_mprintf_str {abc-%T-123} 0 0 {not used}
        !          3697: } {abc-}
        !          3698: do_test printf-14.4 {
        !          3699:   sqlite3_mprintf_str {abc-%#} 0 0 {not used}
        !          3700: } {abc-}
        !          3701: do_test printf-14.5 {
        !          3702:   sqlite3_mprintf_str {abc-%*.*s-xyz} 10 -10 {a_very_long_string}
        !          3703: } {abc-a_very_lon-xyz}
        !          3704: do_test printf-14.6 {
        !          3705:   sqlite3_mprintf_str {abc-%5.10/} 0 0 {not used}
        !          3706: } {abc-}
        !          3707: do_test printf-14.7 {
        !          3708:   sqlite3_mprintf_str {abc-%05.5d} 123 0 {not used}
        !          3709: } {abc-00123}
        !          3710: do_test printf-14.8 {
        !          3711:   sqlite3_mprintf_str {abc-%05.5d} 1234567 0 {not used}
        !          3712: } {abc-1234567}
        !          3713: 
        !          3714: for {set i 2} {$i<200} {incr i} {
        !          3715:   set res [string repeat { } [expr {$i-1}]]x
        !          3716:   do_test printf-14.90.$i "
        !          3717:     sqlite3_mprintf_str {%*.*s} $i 500 x
        !          3718:   " $res
        !          3719: }
        !          3720: 
        !          3721: do_test printf-15.1 {
        !          3722:   sqlite3_snprintf_int 5 {12345} 0
        !          3723: } {1234}
        !          3724: do_test printf-15.2 {
        !          3725:   sqlite3_snprintf_int 5 {} 0
        !          3726: } {}
        !          3727: do_test printf-15.3 {
        !          3728:   sqlite3_snprintf_int 0 {} 0
        !          3729: } {abcdefghijklmnopqrstuvwxyz}
        !          3730: 
        !          3731: # Now test malloc() failure within a sqlite3_mprintf():
        !          3732: #
        !          3733: ifcapable memdebug {
        !          3734:   foreach var {a b c d} {
        !          3735:     set $var [string repeat $var 400]
        !          3736:   }
        !          3737:   set str1 "[string repeat A 360]%d%d%s"
        !          3738:   set str2 [string repeat B 5000]
        !          3739:   set zSuccess "[string repeat A 360]11[string repeat B 5000]"
        !          3740:   foreach ::iRepeat {0 1} {
        !          3741:     set nTestNum 1
        !          3742:     while {1} {
        !          3743:       sqlite3_memdebug_fail $nTestNum -repeat $::iRepeat
        !          3744:       set z [sqlite3_mprintf_str $str1 1 1 $str2]
        !          3745:       set nFail [sqlite3_memdebug_fail -1 -benign nBenign]
        !          3746:       do_test printf-malloc-$::iRepeat.$nTestNum {
        !          3747:         expr {($nFail>0 && $z eq "") || ($nFail==$nBenign && $z eq $zSuccess)}
        !          3748:       } {1}
        !          3749:       if {$nFail == 0} break
        !          3750:       incr nTestNum
        !          3751:     }
        !          3752:   }
        !          3753: }
        !          3754: 
        !          3755: finish_test

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>