]> Pileus Git - ~andy/fetchmail/blob - trio/example.c
Import Trio 1.10 into fetchmail's trunk.
[~andy/fetchmail] / trio / example.c
1 /*************************************************************************
2  * For testing purposes
3  */
4
5 #include <stdarg.h>
6 #include <limits.h>
7 #include <math.h>
8 #include <unistd.h>
9 #include <wchar.h>
10 #include "triodef.h"
11 #include "trionan.h"
12 #include "strio.h"
13 #include "trio.h"
14 #undef printf
15
16 #if !defined(USE_LONGLONG)
17 # if defined(__GNUC__) && !defined(__STRICT_ANSI__)
18 #  define USE_LONGLONG
19 # elif defined(__SUNPRO_C)
20 #  define USE_LONGLONG
21 # endif
22 #endif
23
24 #if defined(USE_LONGLONG)
25 # define LONGLONG long long
26 #else
27 # define LONGLONG long
28 #endif
29
30 #if defined(TRIO_C99)
31 # define LONGEST intmax_t
32 #else
33 # define LONGEST LONGLONG
34 #endif
35
36 static TRIO_CONST char rcsid[] = "@(#)$Id: example.c,v 1.9 2001/11/25 13:47:38 breese Exp $";
37
38 /*************************************************************************
39  *
40  */
41 void Dump
42 TRIO_ARGS2((buffer, rc),
43            char *buffer,
44            int rc)
45 {
46   if (rc < 0)
47     {
48       printf("Err = %d (%s), Pos = %d\n",
49              TRIO_ERROR_CODE(rc),
50              TRIO_ERROR_NAME(rc),
51              TRIO_ERROR_POSITION(rc));
52     }
53   else
54     printf("buffer[% 3d] = \"%s\"\n", rc, buffer);
55 }
56
57 /*************************************************************************
58  *
59  */
60 int main(TRIO_NOARGS)
61 {
62   char buffer[512];
63   int rc;
64   LONGLONG int dummy;
65   char *fool;
66   int num;
67   int num2;
68   int count;
69   double dnum, dnum2;
70   float fnum, fnum2;
71   trio_long_double_t ldnum;
72   char *end;
73   char text[256];
74   char ch;
75   int nerrors = 0;
76   void *p1;
77   char *p2;
78
79   printf("%s\n", rcsid);
80
81 /*    printf("%d %u %d %u\n", */
82 /*       INT_MAX, INT_MAX, UINT_MAX, UINT_MAX); */
83 /*    trio_printf("%d %u %d %u\n", */
84 /*            INT_MAX, INT_MAX, UINT_MAX, UINT_MAX); */
85 /*    printf("%d %u\n", INT_MIN, INT_MIN); */
86 /*    trio_printf("%d %u\n", INT_MIN, INT_MIN); */
87   
88 /*    printf("%ld %lu %ld %lu\n", */
89 /*       INT_MAX, INT_MAX, UINT_MAX, UINT_MAX); */
90 /*    trio_printf("%ld %lu %ld %lu\n", */
91 /*            INT_MAX, INT_MAX, UINT_MAX, UINT_MAX); */
92 /*    printf("%ld %lu\n", INT_MIN, INT_MIN); */
93 /*    trio_printf("%ld %lu\n", INT_MIN, INT_MIN); */
94
95 /*    printf("%lld %llu %lld %llu\n", */
96 /*       INT_MAX, INT_MAX, UINT_MAX, UINT_MAX); */
97 /*    trio_printf("%lld %llu %lld %llu\n", */
98 /*            INT_MAX, INT_MAX, UINT_MAX, UINT_MAX); */
99 /*    printf("%lld %llu\n", INT_MIN, INT_MIN); */
100 /*    trio_printf("%lld %llu\n", INT_MIN, INT_MIN); */
101
102 /*    return 0; */
103
104   
105 /*    dnum = StrToDouble("3.14e+44", (const char **)&end); */
106 /*    printf("double = %e (%s)\n", dnum, end); */
107 /*    dnum = StrToDouble("0xA3.14p44", (const char **)&end); */
108 /*    printf("double = %e (%s)\n", dnum, end); */
109
110   /*    trio_printf("%.*stext\n", 0, "-----"); */ /* fails */
111   
112 /*    trio_printf("%Zd\n", (size_t)sizeof(char)); */
113   
114 /*   rc = StrFormat(buffer, "%a", 3.14e+44); */
115 /*   Dump(buffer, rc); */
116   
117   /*  rc = StrFormat(buffer, "Filled string: %-16<fill=_>s", "test"); */
118
119 /*   errno = EINTR; */
120 /*   rc = StrFormat(buffer, "Error: %m"); */
121
122 /*   rc = StrFormat(buffer, "Count %lln", &dummy); */
123 /*   printf("dummy = %lld\n", dummy); */
124
125 /*   rc = StrFormat(buffer, "Char %<quote='>c", 'X'); */
126
127 /*   rc = StrFormatMax(buffer, 20, "Here goes %-20<adjust=_>s", "test"); */
128
129 /*    rc = StrFormat(buffer, "Hex-float %a", 3.1415); */
130 /*    Dump(buffer, rc); */
131 /*    rc = StrFormat(buffer, "Hex-float %A", 3.1415e20); */
132 /*    Dump(buffer, rc); */
133 /*    rc = StrFormat(buffer, "Double %#g", 3.1415e20); */
134 /*    Dump(buffer, rc); */
135 /*    rc = StrFormat(buffer, "Double %.3f", 3.1415); */
136 /*    Dump(buffer, rc); */
137 /*    rc = StrFormat(buffer, "Double %+e", 3.1415); */
138 /*    Dump(buffer, rc); */
139
140 /*    printf("'%.2f'\n", 99.99999); */
141 /*    trio_printf("'%.2f'\n", 99.99999); */
142 /*    printf("'%f'\n", 0.0); */
143 /*    trio_printf("'%f'\n", 0.0); */
144 /*    printf("'%f'\n", 3141.0); */
145 /*    trio_printf("'%f'\n", 3141.0); */
146 /*    printf("'%#f'\n", 3141.0); */
147 /*    trio_printf("'%#f'\n", 3141.0); */
148 /*    printf("'%'f'\n", 31415.2); */
149 /*    trio_printf("'%'f'\n", 31415.2); */
150 /*    printf("'%-16e'\n", 3141.5); */
151 /*    trio_printf("'%-16e'\n", 3141.5); */
152 /*    printf("'%#f'\n", 3141.0); */
153 /*    trio_printf("'%#f'\n", 3141.0); */
154 /*    printf("'%f'\n", 3141.5); */
155 /*    trio_printf("'%f'\n", 3141.5); */
156 /*    printf("'%#.6g'\n", 3141.5); */
157 /*    trio_printf("'%#.6g'\n", 3141.5); */
158   
159 /*    printf("'%20e'\n", 314.5); */
160 /*    trio_printf("'%20e'\n", 314.5); */
161   
162 /*    printf("'%-16e'\n", 3141.5); */
163 /*    trio_printf("'%-16e'\n", 3141.5); */
164   
165 /*    printf("'%#.4g'\n", 314151.5); */
166 /*    trio_printf("'%#.4g'\n", 314151.5); */
167   
168 /*    printf("'%#.4g'\n", 0.0); */
169 /*    trio_printf("'%#.4g'\n", 0.0); */
170   
171 /*    printf("'%#.4g'\n", 11.0); */
172 /*    trio_printf("'%#.4g'\n", 11.0); */
173
174 /*    printf("%f\n", HUGE_VAL); */
175 /*    trio_printf("%f\n", HUGE_VAL); */
176 /*    printf("%f\n", -HUGE_VAL); */
177 /*    trio_printf("%f\n", -HUGE_VAL); */
178 /*  #define NAN (cos(HUGE_VAL)) */
179 /*    printf("%f\n", NAN); */
180 /*    trio_printf("%f\n", NAN); */
181   
182 /*    printf("'%+06d'\n", 1234); */
183 /*    trio_printf("'%+06d'\n", 1234); */
184 /*    printf("'%-#6.3x'\n", 12); */
185 /*    trio_printf("'%-#06.3x'\n", 12); */
186 /*    printf("'%+6d'\n", 1234); */
187 /*    trio_printf("'%+6d'\n", 1234); */
188 /*    printf("'%-08d'\n", 12); */
189 /*    trio_printf("'%-08d'\n", 12); */
190 /*    printf("'%08.6d'\n", 12); */
191 /*    trio_printf("'%08.6d'\n", 12); */
192 /*    printf("'%4d'\n", 123456); */
193 /*    trio_printf("'%4d'\n", 123456); */
194 /*    printf("'%.4d'\n", 12); */
195 /*    trio_printf("'%.4d'\n", 12); */
196
197 /*    trio_printf("%!#08x %04x %..10x\n", 42, 42, 42); */
198 /*    trio_printf("%*.*.*i\n", 8, 4, 2, 23); */
199 /*    trio_printf("%8.4.2i %<base=2>08i %.8.2i %..2i\n", 23, 23, 23, 23); */
200
201 /*    trio_printf("%8i\n", 42); */
202 /*    trio_printf("%.7i\n", 42); */
203 /*    trio_printf("%..2i\n", 42); */
204 /*    trio_printf("%8.7i\n", 42); */
205 /*    trio_printf("%8..2i\n", 42); */
206 /*    trio_printf("%8.7.2i\n", 42); */
207 /*    trio_printf("%*.*.*i\n", 8, 7, 2, 42); */
208
209 /*    { */
210 /*      LONGLONG ll = 1234567890; */
211 /*      rc = trio_printf("%&i %d\n", sizeof(ll), ll, 42); */
212 /*      Dump(buffer, rc); */
213 /*    } */
214 /*    { */
215 /*      char ch = 12; */
216 /*      rc = trio_printf("%&i %d\n", sizeof(ch), ch, 42); */
217 /*      Dump(buffer, rc); */
218 /*    } */
219 /*    { */
220 /*      pid_t pid = 99; */
221 /*      rc = trio_printf("%&i %d\n", sizeof(pid), pid, 42); */
222 /*      Dump(buffer, rc); */
223 /*    } */
224   
225 /*    rc = trio_printf("%*.*.*i\n", 6, 4, 10, 12); */
226 /*    Dump(buffer, rc); */
227 /*    rc = trio_printf("%1$0*3$.*2$d\n", 3141, 6, 10); */
228 /*    Dump(buffer, rc); */
229
230 /*    rc = trio_asprintf(&end, "%s%n", "0123456789", &num); */
231 /*    printf("%d %d '%s'\n", rc, num, end); */
232 /*    if (end) */
233 /*      free(end); */
234   
235 /*    trio_printf("%016e\n", 3141.5); */
236 /*    trio_printf("%'f\n", 424242.42); */
237 /*    trio_printf("%#.4f\n", 0.0); */
238 /*    trio_printf("%'d\n", 424242); */
239
240 /*    rc = trio_sprintf(buffer, "%4$d %3$*8$d %2$.*7$d %1$*6$.*5$d\n", */
241 /*                  123, */
242 /*                  1234, */
243 /*                  12345, */
244 /*                  123456, */
245 /*                  5, 6, 7, 8 */
246 /*                  ); */
247 /*    Dump(buffer, rc); */
248 /*    rc = trio_sprintf(buffer, "%2$s %1$#s", "111", "222"); */
249 /*    Dump(buffer, rc); */
250   
251 /*    trio_printf("  %x %!#x %g %09x %x\n", 123456, 123456, 123456.0, 123456, 123456); */
252 /*    trio_printf("%!'i %f %i\n", 12345, 12345.0, 12345); */
253 /*    trio_printf("%!<base=2>i %i\n", 23, 23); */
254
255 /*    rc = trio_sprintf(buffer, "%I32d", 12345); */
256 /*    Dump(buffer, rc); */
257 /*    rc = trio_sprintf(buffer, "%I32I8d", 12345); */
258 /*    Dump(buffer, rc); */
259
260 /*    rc = trio_sprintf(buffer, "*%5f*", 3.3); */
261 /*    Dump(buffer, rc); */
262   
263 /*    { */
264 /*      wchar_t *wstring = L"some data"; */
265 /*      wchar_t wbuffer[512]; */
266     
267 /*      rc = trio_sprintf(buffer, "%ls", wstring); */
268 /*      Dump(buffer, rc); */
269
270 /*      rc = trio_sscanf(buffer, "%ls", wbuffer); */
271 /*      Dump(buffer, rc); */
272 /*      rc = trio_sprintf(buffer, "%ls", wbuffer); */
273 /*      Dump(buffer, rc); */
274 /*    } */
275   
276   /* rc = StrFormat(buffer, "\040-\040\040-\n"); */
277
278 /*   rc = StrFormat(buffer, "%.*s@%s", 3, "Daniel", "Fool"); */
279 /*   rc = StrFormatAppendMax(buffer, 512, " %s is a doh", "Simpson"); */
280
281 /*   rc = StrFormat(buffer, "hello %1$d %1$d", 31, 32); */
282 /*   Dump(buffer, rc); */
283 /*   rc = StrFormat(buffer, "%2$d %3$d", 31, 32, 33); */
284 /*   Dump(buffer, rc); */
285   
286 /*    rc = trio_sprintf(buffer, "%d say %g hey %s", 42, 3.14, "text"); */
287 /*    Dump(buffer, rc); */
288 /*    trio_sscanf(buffer, "%d %*s %e hey %s", &num, &dnum, text); */
289 /*    printf("num = %d, dnum = %e, text = \"%s\"\n", num, dnum, text); */
290
291 /*    rc = trio_sprintf(buffer, "%g", HUGE_VAL); */
292 /*    Dump(buffer, rc); */
293 /*    trio_sscanf(buffer, "%f", &dnum); */
294 /*    printf("dnum = %e\n", dnum); */
295
296 /*    rc = trio_sprintf(buffer, "%g", -HUGE_VAL); */
297 /*    Dump(buffer, rc); */
298 /*    trio_sscanf(buffer, "%f", &dnum); */
299 /*    printf("dnum = %e\n", dnum); */
300
301 /*  #if defined(NAN) */
302 /*    rc = trio_sprintf(buffer, "%g", NAN); */
303 /*    Dump(buffer, rc); */
304 /*    if ((rc = trio_sscanf(buffer, "%f", &dnum)) < 0) */
305 /*      Dump(buffer, rc); */
306 /*    else */
307 /*      printf("dnum = %e\n", dnum); */
308 /*  #endif */
309
310 /*    rc = trio_sprintf(buffer, "%*d", 6, 1234); */
311 /*    Dump(buffer, rc); */
312
313 /*    rc = trio_sprintf(buffer, "'%!08.6d' '%!d' '%d'", 4, 6, 8); */
314 /*    Dump(buffer, rc); */
315
316 /*    rc = trio_sprintf(buffer, "%0g", 0.123); */
317 /*    Dump(buffer, rc); */
318   
319 /*    { */
320 /*      void *argarray[4]; */
321 /*      int value = 42; */
322 /*      double number = 123.456; */
323 /*      float small_number = 123.456; */
324     
325 /*      argarray[0] = &value; */
326 /*      argarray[1] = "my string"; */
327 /*      rc = trio_sprintfv(buffer, "%d %s", argarray); */
328 /*      Dump(buffer, rc); */
329 /*      rc = trio_snprintfv(buffer, 8, "%d %s", argarray); */
330 /*      Dump(buffer, rc); */
331
332 /*      argarray[0] = &num; */
333 /*      argarray[1] = text; */
334 /*      rc = trio_sscanfv(buffer, "%d %s", argarray); */
335 /*      Dump(buffer, rc); */
336 /*      printf("num = %d  text = \"%s\"\n", num, text); */
337     
338 /*      argarray[0] = &number; */
339 /*      argarray[1] = &small_number; */
340 /*      rc = trio_sprintfv(buffer, "%f %hf", argarray); */
341 /*      Dump(buffer, rc); */
342 /*      printf("number = %f  small_number = \"%f\"\n", number, small_number); */
343 /*    } */
344   
345 /*    rc = trio_sprintf(buffer, "abcba"); */
346 /*    Dump(buffer, rc); */
347 /*    trio_sscanf(buffer, "%[ab]", text); */
348 /*    printf("text = \"%s\"\n", text); */
349 /*    trio_sscanf(buffer, "%*[ab]c%[^\n]", text); */
350 /*    printf("text = \"%s\"\n", text); */
351
352 /*    trio_sprintf(buffer, "aabcdba aaa"); */
353 /*    rc = trio_sscanf(buffer, "%s", text); */
354 /*    Dump(buffer, rc); */
355 /*    printf("text = \"%s\"\n", text); */
356 /*    rc = trio_sscanf(buffer, "%*1[aA]%[a-c]", text); */
357 /*    Dump(buffer, rc); */
358 /*    printf("text = \"%s\"\n", text); */
359
360 /*    rc = trio_sprintf(buffer, "10021"); */
361 /*    rc = trio_sscanf(buffer, "%b%n%d", &num, &count, &num2); */
362 /*    Dump(buffer, rc); */
363 /*    printf("num = %d %d %d\n", num, num2, count); */
364
365 /*    rc = trio_sprintf(buffer, "%'d", 10000); */
366 /*    rc = trio_sscanf(buffer, "%'d", &num); */
367 /*    Dump(buffer, rc); */
368 /*    printf("num = %d\n", num); */
369
370 /*    rc = trio_dprintf(STDOUT_FILENO, "%s\n", "hello there"); */
371 /*    Dump(buffer, rc); */
372 /*    rc = trio_dscanf(STDIN_FILENO, "%s", buffer); */
373 /*    Dump(buffer, rc); */
374
375 /*    rc = trio_scanf("%s", buffer); */
376 /*    Dump(buffer, rc); */
377   
378 /*    rc = trio_sprintf(buffer, "Ttext"); */
379 /*    Dump(buffer, rc); */
380 /*    trio_sscanf(buffer, "%*[Tt]e%c", &ch); */
381 /*    printf("ch = %c\n", ch); */
382
383 /*    printf("%p\n", &main); */
384 /*    rc = trio_sprintf(buffer, "%p %p", &main, NULL); */
385 /*    Dump(buffer, rc); */
386 /*    trio_sscanf(buffer, "%p %p", &p1, &p2); */
387 /*    printf("pointer = %p %p\n", p1, p2); */
388
389 /*    rc = trio_sprintf(buffer, "%@.@.@i", 8, 7, 2, 42); */
390 /*    Dump(buffer, rc); */
391 /*    trio_sprintf(buffer, "abcdefghijklmnopqrstuvwxyz"); */
392 /*    rc = trio_sscanf(buffer, "%100s", text); */
393 /*    Dump(text, rc); */
394 /*    rc = trio_sscanf(buffer, "%@s", 100, text); */
395 /*    Dump(text, rc); */
396   
397 /*    rc = trio_sprintf(buffer, "%..2i", 42); */
398 /*    Dump(buffer, rc); */
399 /*    rc = trio_sscanf(buffer, "%..2i", &num); */
400 /*    printf("%d\n", num); */
401 /*    rc = trio_sscanf(buffer, "%..@i", 2, &num); */
402 /*    printf("%d\n", num); */
403
404 /*    { */
405 /*      int num1, num2, num3, num4; */
406     
407 /*      rc = trio_sprintf(buffer, "123_456 [12%%-34%%]"); */
408 /*      Dump(buffer, rc); */
409 /*      rc = trio_sscanf(buffer, "%5i%*1s%5i%*1s%5i%*2s%5i", */
410 /*                   &num1, &num2, &num3, &num4); */
411 /*      Dump(buffer, rc); */
412 /*      printf("%d %d %d %d %d\n", rc, num1, num2, num3, num4); */
413 /*      rc = trio_sscanf(buffer, "%d_%d [%d%%-%d%%]", */
414 /*                   &num1, &num2, &num3, &num4); */
415 /*      Dump(buffer, rc); */
416 /*      printf("%d %d %d %d %d\n", rc, num1, num2, num3, num4); */
417 /*    } */
418
419 /*    rc = trio_sprintf(buffer, "01 3456789"); */
420 /*    Dump(buffer, rc); */
421 /*    memset(&text, 0, sizeof(text)); */
422 /*    rc = trio_sscanf(buffer, "%4c", &text); */
423 /*    Dump(text, rc); */
424 /*    memset(&text, 0, sizeof(text)); */
425 /*    rc = sscanf(buffer, "%4c", &text); */
426 /*    Dump(text, rc); */
427   
428 /*    rc = trio_sprintf(buffer, "12345 6"); */
429 /*    Dump(buffer, rc); */
430 /*    rc = trio_sscanf(buffer, "%2d", &num); */
431 /*    Dump(buffer, rc); */
432 /*    printf("%d\n", num); */
433 /*    rc = sscanf(buffer, "%2d", &num); */
434 /*    Dump(buffer, rc); */
435 /*    printf("%d\n", num); */
436   
437 /*    rc = trio_sprintf(buffer, "aa\\x0abb"); */
438 /*    Dump(buffer, rc); */
439 /*    rc = trio_sscanf(buffer, "aa%#sbb", &text); */
440 /*    Dump(text, rc); */
441
442 /*    rc = trio_sscanf("0 ", "%f", &dnum, text); */
443 /*    printf("%d %f\n", rc, dnum); */
444 /*    rc = sscanf("0 ", "%f %s", &dnum, text); */
445 /*    printf("%d %f\n", rc, dnum); */
446   
447 /*    rc = trio_sscanf("lære", "%[:alpha:]", text); */
448 /*    Dump(text, rc); */
449   
450 /*    rc = trio_sscanf("-0.123e3", "%8e", &dnum); */
451 /*    printf("%d %f\n", rc, dnum); */
452
453 /*    rc = trio_sscanf("123,456.78", "%'f", &dnum); */
454 /*    printf("%d %f\n", rc, dnum); */
455
456 /*    trio_printf("%.24f\n%.24f\n%.24f\n", 39413.80, 1.4, (2.0/3.0)); */
457 /*    printf("%.24f\n%.24f\n%.24f\n", 39413.80, 1.4, (2.0/3.0)); */
458   
459 /*    trio_printf("%f\n%f\n", (7.0/5.0), (2.0/3.0)); */
460 /*    printf("%f\n%f\n", (7.0/5.0), (2.0/3.0)); */
461
462 /*    trio_printf("%a\n", 42.0); */
463 /*    trio_printf("%.2e\n", 0.9999); */
464 /*    trio_printf("%e\n", 3.14e+123); */
465 /*    trio_printf("%010.3e\n", 3141.5); */
466 /*    trio_printf("%.32Rf\n", 1.4); */
467 /*    trio_printf("%Rf\n", 1.234567890123456789e20); */
468 /*    printf("%.2g\n", 0.9999); */
469 /*    trio_printf("%.2g\n", 0.9999); */
470 /*    printf("%.2g\n", 99.9999); */
471 /*    trio_printf("%.2g\n", 99.9999); */
472 /*    printf("%g\n", 0.0); */
473 /*    trio_printf("%g\n", 0.0); */
474 /*    printf("%f\n", 3141.0); */
475 /*    trio_printf("%f\n", 3141.0); */
476 /*    printf("%.0f\n", 3141.0); */
477 /*    trio_printf("%.0f\n", 3141.0); */
478 /*    trio_printf("%f\n", 2.0/3.0); */
479 /*    trio_printf("%f\n", 16.25); */
480   
481 /*    trio_printf("A: %f\nB: %.20f\nC: %Rf\n", 0.1, 0.1, 0.1); */
482 /*    trio_printf("A: %f\nB: %.20f\nC: %Rf\n", 2.0/3.0, 2.0/3.0, 2.0/3.0); */
483   
484 /*    trio_printf("R %.*Rhf\n", FLT_DIG + 4, (double)((float)1.4)); */
485 /*    trio_printf("T %.*hf\n", FLT_DIG + 4, (double)((float)(2.0/3.0))); */
486 /*    trio_printf("R %.*Rhf\n", FLT_DIG + 4, (double)((float)(2.0/3.0))); */
487   
488 /*    trio_printf("T %.*f\n", DBL_DIG + 4, (2.0/3.0)); */
489 /*    trio_printf("R %.*Rf\n", DBL_DIG + 4, (2.0/3.0)); */
490 /*    printf("C %.*f\n", DBL_DIG + 4, (2.0/3.0)); */
491
492 /*    trio_printf("T %.*f\n", DBL_DIG + 4, 1.4); */
493 /*    trio_printf("R %.*Rf\n", DBL_DIG + 4, 1.4); */
494 /*    printf("C %.*f\n", DBL_DIG + 4, 1.4); */
495     
496 /*    trio_printf("T %.*f\n", DBL_DIG + 6, 0.1); */
497 /*    trio_printf("R %.*Rf\n", DBL_DIG + 6, 0.1); */
498 /*    printf("C %.*f\n", DBL_DIG + 6, 0.1); */
499
500 /*    ldnum = 2.0L / 3.0L; */
501 /*    trio_printf("R %.*Lf\n", LDBL_DIG + 4, ldnum); */
502 /*    trio_printf("R %RLf\n", ldnum); */
503   
504 /*    trio_printf("T %.*.2f\n", DBL_MANT_DIG, 1.4); */
505 /*    trio_printf("R %.*.2Rf\n", DBL_MANT_DIG, 1.4); */
506   
507 /*    trio_printf("R %Rf\n", 1.234567890123456789e20); */
508 /*    trio_printf("T %10.3e\n", 3141.5); */
509 /*    trio_printf("T %f\n", 1.0/3.0); */
510
511   /* 2^-1 + 2^-15 */
512 /*    trio_printf("T %.*g\n", DBL_DIG + 200, 0.500030517578125); */
513 /*    printf("C %.*g\n", DBL_DIG + 200, 0.500030517578125); */
514 /*    trio_printf("T %.*g\n", DBL_DIG + 200, 2.0/3.0); */
515 /*    printf("C %.*g\n", DBL_DIG + 200, 2.0/3.0); */
516   
517 /*    trio_printf("T  %.*f\n", DBL_DIG + 2, 1.4); */
518 /*    trio_printf("TR %.*Rf\n", DBL_DIG + 2, 1.4); */
519   
520 /*    rc = trio_sscanf("0.141882295971771490", "%Lf", &ldnum); */
521 /*    rc = trio_sprintf(buffer, "%.30Lf", ldnum); */
522 /*    Dump(buffer, rc); */
523
524 /*    ldnum = 1.0L; */
525 /*    ldnum /= 3.0L; */
526 /*    rc = trio_sprintf(buffer, "%.30Lf", ldnum); */
527 /*    Dump(buffer, rc); */
528
529 /*    { */
530 /*      float a = 5.9, b = 10.0, c = a * b; */
531 /*      double d = a * b; */
532 /*      trio_printf("%.15a %.15a\n", c, d); */
533 /*      trio_printf("%.15g %.15g\n", c, (float)(a * b)); */
534 /*      trio_printf("%.15a %.15a\n", c, (float)(a * b)); */
535 /*      trio_printf("%.30.2f %.30.2f\n", c, (float)(a * b)); */
536 /*    } */
537   
538 /*    trio_locale_set_decimal_point(","); */
539 /*    trio_locale_set_thousand_separator("'"); */
540 /*    trio_locale_set_grouping("\1\3\2\177"); */
541 /*    trio_printf("%'d\n", 123456789); */
542 /*    trio_printf("%'f\n", 123456789.0); */
543 /*    trio_locale_set_grouping("\3\2\0"); */
544 /*    trio_printf("%'d\n", 123456789); */
545 /*    trio_printf("%'f\n", 123456789.0); */
546   
547 /*    trio_printf("%.30Rf\n", 39413.80); */
548
549 /*    printf("% 10.5f\n", 5163723399.00000); */
550 /*    trio_printf("% 10.5f\n", 5163723399.00000); */
551   
552 /*    printf("% 020.5f\n", 5163723399.00000); */
553 /*    trio_printf("% 020.5f\n", 5163723399.00000); */
554
555 /*    rc = trio_vsnprintf(buffer, 8, "printing\n", NULL); */
556 /*    Dump(buffer, rc); */
557
558 /*    rc = trio_sprintf(buffer, "%.o %#.o", 0, 0); */
559 /*    Dump(buffer, rc); */
560 /*    rc = trio_sprintf(buffer, "%8.o %08.4o", 0, 0); */
561 /*    Dump(buffer, rc); */
562 /*    rc = trio_sprintf(buffer, "%8o %08o", 0, 0); */
563 /*    Dump(buffer, rc); */
564   
565 /*    rc = trio_sprintf(buffer, "%a %a", 0.0, 1.0); */
566 /*    Dump(buffer, rc); */
567
568 /*    printf("%*s%*s%*s\n", */
569 /*       -1, "one", */
570 /*       -20, "two", */
571 /*       -30,"three"); */
572 /*    trio_printf("%*s%*s%*s\n", */
573 /*            -1, "one", */
574 /*            -20, "two", */
575 /*            -30,"three"); */
576
577 /*    dnum = pow (2.0, -1024.1); */
578 /*    dnum = pow (2.0, -1024); */
579 /*    dnum = pow(2.0, 16.0); */
580 /*    rc = trio_snprintf(buffer, sizeof(buffer), "%.200g %a %.200.2g", */
581 /*                   dnum, dnum, dnum); */
582 /*    Dump(buffer, rc); */
583   
584 /*    dnum = 3.141e-44; */
585 /*    rc = trio_snprintf(buffer, sizeof(buffer), "%.200g %a %.200.2g", */
586 /*                   dnum, dnum, dnum); */
587 /*    Dump(buffer, rc); */
588
589   rc = trio_sscanf("0x2.ap+4", "%a", &dnum);
590   trio_snprintf(buffer, sizeof(buffer), "%f %a", dnum, dnum);
591   Dump(buffer, rc);
592   
593   return 0;
594 }