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