@@ -345,128 +345,226 @@ static int test_mp_printf_extension(void)
345345 "Right aligned AAA +404289102523688521157725445716877277 BBB\n" ,
346346 "Left aligned AAA +404289102523688521157725445716877277 BBB\n" ,
347347 "Right aligned AAA 404289102523688521157725445716877277 BBB\n" ,
348- "Left aligned AAA 404289102523688521157725445716877277 BBB\n" ,
348+ "Left aligned AAA 404289102523688521157725445716877277 BBB\n" , /* 5 */
349349 "hex with right align AAA 4DDCFDE0D20EF8663B34D19F829FDD BBB\n" ,
350350 "hex with left align AAA 4DDCFDE0D20EF8663B34D19F829FDD BBB\n" ,
351351 "hex with right align AAA +4DDCFDE0D20EF8663B34D19F829FDD BBB\n" ,
352352 "hex with left align AAA +4DDCFDE0D20EF8663B34D19F829FDD BBB\n" ,
353- "hex with right align AAA 4DDCFDE0D20EF8663B34D19F829FDD BBB\n" ,
353+ "hex with right align AAA 4DDCFDE0D20EF8663B34D19F829FDD BBB\n" , /* 10 */
354354 "hex with left align AAA 4DDCFDE0D20EF8663B34D19F829FDD BBB\n" ,
355355 "hex with right align AAA 0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n" ,
356356 "hex with left align AAA 0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n" ,
357357 "hex with right align AAA +0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n" ,
358- "hex with left align AAA +0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n" ,
358+ "hex with left align AAA +0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n" , /* 15 */
359359 "hex with right align AAA 0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n" ,
360360 "hex with left align AAA 0x4DDCFDE0D20EF8663B34D19F829FDD BBB\n" ,
361361 "Right aligned AAA -424986725583297217766029037085924959 BBB\n" ,
362362 "Left aligned AAA -424986725583297217766029037085924959 BBB\n" ,
363- "Right aligned AAA -424986725583297217766029037085924959 BBB\n" ,
363+ "Right aligned AAA -424986725583297217766029037085924959 BBB\n" , /* 20 */
364364 "Left aligned AAA -424986725583297217766029037085924959 BBB\n" ,
365365 "Right aligned AAA -424986725583297217766029037085924959 BBB\n" ,
366366 "Left aligned AAA -424986725583297217766029037085924959 BBB\n" ,
367367 "hex with right align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n" ,
368- "hex with left align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n" ,
368+ "hex with left align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n" , /* 25 */
369369 "hex with right align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n" ,
370370 "hex with left align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n" ,
371371 "hex with right align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n" ,
372372 "hex with left align AAA -51D9769BDAE5B38121F2A31D881E5F BBB\n" ,
373- "hex with right align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n" ,
373+ "hex with right align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n" , /* 30 */
374374 "hex with left align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n" ,
375375 "hex with right align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n" ,
376376 "hex with left align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n" ,
377377 "hex with right align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n" ,
378- "hex with left align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n" ,
378+ "hex with left align AAA -0x51D9769BDAE5B38121F2A31D881E5F BBB\n" , /* 35 */
379379 "Right aligned AAA 0 BBB\n" ,
380380 "Left aligned AAA 0 BBB\n" ,
381381 "hex with right align AAA 0x0 BBB\n" ,
382382 "hex with left align AAA 0x0 BBB\n" ,
383- "Right aligned AAA 10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n" ,
383+ "Right aligned AAA 10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n" , /* 40 */
384384 "Left aligned AAA 10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n" ,
385385 "Right aligned AAA +10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n" ,
386386 "Left aligned AAA +10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n" ,
387387 "Right aligned AAA 10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n" ,
388- "Left aligned AAA 10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n" ,
388+ "Left aligned AAA 10011011101110011111101111000001101001000001110111110000110011000111011001101001101000110011111100000101001111111011101 BBB\n" , /* 45 */
389389 "Right aligned AAA JTpzuD8E+6OxDD6VWf/T BBB\n" ,
390390 "Left aligned AAA JTpzuD8E+6OxDD6VWf/T BBB\n" ,
391391 "Right aligned AAA +JTpzuD8E+6OxDD6VWf/T BBB\n" ,
392392 "Left aligned AAA +JTpzuD8E+6OxDD6VWf/T BBB\n" ,
393- "Right aligned AAA JTpzuD8E+6OxDD6VWf/T BBB\n" ,
393+ "Right aligned AAA JTpzuD8E+6OxDD6VWf/T BBB\n" , /* 50 */
394394 "Left aligned AAA JTpzuD8E+6OxDD6VWf/T BBB\n" ,
395395 "Right aligned AAA 0@JTpzuD8E+6OxDD6VWf/T BBB\n" ,
396396 "Left aligned AAA 0@JTpzuD8E+6OxDD6VWf/T BBB\n" ,
397397 "Right aligned AAA +0@JTpzuD8E+6OxDD6VWf/T BBB\n" ,
398- "Left aligned AAA +0@JTpzuD8E+6OxDD6VWf/T BBB\n" ,
398+ "Left aligned AAA +0@JTpzuD8E+6OxDD6VWf/T BBB\n" , /* 55 */
399399 "Right aligned AAA 0@JTpzuD8E+6OxDD6VWf/T BBB\n" ,
400- "Left aligned AAA 0@JTpzuD8E+6OxDD6VWf/T BBB\n"
400+ "Left aligned AAA 0@JTpzuD8E+6OxDD6VWf/T BBB\n" ,
401+
402+ "Right aligned AAA 449010662782443485 BBB\n" ,
403+ "Left aligned AAA 449010662782443485 BBB\n" ,
404+ "Right aligned AAA +449010662782443485 BBB\n" , /* 60 */
405+ "Left aligned AAA +449010662782443485 BBB\n" ,
406+ "Right aligned AAA 449010662782443485 BBB\n" ,
407+ "Left aligned AAA 449010662782443485 BBB\n" ,
408+ "Right aligned AAA 63B34D19F829FDD BBB\n" ,
409+ "Left aligned AAA 63B34D19F829FDD BBB\n" , /* 65 */
410+ "Right aligned AAA +63B34D19F829FDD BBB\n" ,
411+ "Left aligned AAA +63B34D19F829FDD BBB\n" ,
412+ "Right aligned AAA 63B34D19F829FDD BBB\n" ,
413+ "Left aligned AAA 63B34D19F829FDD BBB\n" ,
414+ "Right aligned AAA 0x63B34D19F829FDD BBB\n" , /* 70 */
415+ "Left aligned AAA 0x63B34D19F829FDD BBB\n" ,
416+ "Right aligned AAA +0x63B34D19F829FDD BBB\n" ,
417+ "Left aligned AAA +0x63B34D19F829FDD BBB\n" ,
418+ "Right aligned AAA 0x63B34D19F829FDD BBB\n" ,
419+ "Left aligned AAA 0x63B34D19F829FDD BBB\n" , /* 75 */
420+ "Right aligned AAA 11000111011001101001101000110011111100000101001111111011101 BBB\n" ,
421+ "Left aligned AAA 11000111011001101001101000110011111100000101001111111011101 BBB\n" ,
422+ "Right aligned AAA +11000111011001101001101000110011111100000101001111111011101 BBB\n" ,
423+ "Left aligned AAA +11000111011001101001101000110011111100000101001111111011101 BBB\n" ,
424+ "Right aligned AAA 11000111011001101001101000110011111100000101001111111011101 BBB\n" , /* 80 */
425+ "Left aligned AAA 11000111011001101001101000110011111100000101001111111011101 BBB\n" ,
426+ "Right aligned AAA OxDD6VWf/T BBB\n" ,
427+ "Left aligned AAA OxDD6VWf/T BBB\n" ,
428+ "Right aligned AAA +OxDD6VWf/T BBB\n" ,
429+ "Left aligned AAA +OxDD6VWf/T BBB\n" , /* 85 */
430+ "Right aligned AAA OxDD6VWf/T BBB\n" ,
431+ "Left aligned AAA OxDD6VWf/T BBB\n" ,
432+ "Right aligned AAA 0@OxDD6VWf/T BBB\n" ,
433+ "Left aligned AAA 0@OxDD6VWf/T BBB\n" ,
434+ "Right aligned AAA +0@OxDD6VWf/T BBB\n" , /* 90 */
435+ "Left aligned AAA +0@OxDD6VWf/T BBB\n" ,
436+ "Right aligned AAA 0@OxDD6VWf/T BBB\n" ,
437+ "Left aligned AAA 0@OxDD6VWf/T BBB\n" ,
438+ "Right aligned AAA 63B34D19F829FDD,4DDCFDE0D20EF86, BBB\n" ,
439+ "Left aligned AAA 63B34D19F829FDD,4DDCFDE0D20EF86, BBB\n" , /* 95 */
440+ "Right aligned AAA 63B34D19F829FDD,4DDCFDE0D20EF86, BBB\n" ,
441+ "Left aligned AAA 63B34D19F829FDD,4DDCFDE0D20EF86, BBB\n" ,
442+ "Right aligned AAA 63B34D19F829FDD,4DDCFDE0D20EF86, BBB\n" ,
443+ "Left aligned AAA 63B34D19F829FDD,4DDCFDE0D20EF86, BBB\n" ,
444+ "Right aligned AAA 000011000111011001101001101000110011111100000101001111111011101,000010011011101110011111101111000001101001000001110111110000110, BBB\n" , /* 100 */
445+ "Left aligned AAA 000011000111011001101001101000110011111100000101001111111011101,000010011011101110011111101111000001101001000001110111110000110, BBB\n" ,
446+ "Right aligned AAA 000011000111011001101001101000110011111100000101001111111011101,000010011011101110011111101111000001101001000001110111110000110, BBB\n" ,
447+ "Left aligned AAA 000011000111011001101001101000110011111100000101001111111011101,000010011011101110011111101111000001101001000001110111110000110, BBB\n" ,
448+ "Right aligned AAA 000011000111011001101001101000110011111100000101001111111011101,000010011011101110011111101111000001101001000001110111110000110, BBB\n" ,
449+ "Left aligned AAA 000011000111011001101001101000110011111100000101001111111011101,000010011011101110011111101111000001101001000001110111110000110, BBB\n" , /* 105 */
401450 };
402451
403- const char * print_strings [58 ] = {
452+ const char * print_strings [106 ] = {
404453 "Right aligned AAA %50Zd BBB\n" ,
405454 "Left aligned AAA %-50Zd BBB\n" ,
406455 "Right aligned AAA %+50Zd BBB\n" ,
407456 "Left aligned AAA %+-50Zd BBB\n" ,
408457 "Right aligned AAA %' '50Zd BBB\n" ,
409- "Left aligned AAA %' '-50Zd BBB\n" ,
458+ "Left aligned AAA %' '-50Zd BBB\n" , /* 5 */
410459
411460 "hex with right align AAA %50Zx BBB\n" ,
412461 "hex with left align AAA %-50Zx BBB\n" ,
413462 "hex with right align AAA %+50Zx BBB\n" ,
414463 "hex with left align AAA %+-50Zx BBB\n" ,
415- "hex with right align AAA %' '50Zx BBB\n" ,
464+ "hex with right align AAA %' '50Zx BBB\n" , /* 10 */
416465 "hex with left align AAA %' '-50Zx BBB\n" ,
417466
418467 "hex with right align AAA %#50Zx BBB\n" ,
419468 "hex with left align AAA %#-50Zx BBB\n" ,
420469 "hex with right align AAA %#+50Zx BBB\n" ,
421- "hex with left align AAA %#+-50Zx BBB\n" ,
470+ "hex with left align AAA %#+-50Zx BBB\n" , /* 15 */
422471 "hex with right align AAA %#' '50Zx BBB\n" ,
423472 "hex with left align AAA %#' '-50Zx BBB\n" ,
424473 /* at idx == 18 mp_exch(&p,&q); */
425474 "Right aligned AAA %50Zd BBB\n" ,
426475 "Left aligned AAA %-50Zd BBB\n" ,
427- "Right aligned AAA %+50Zd BBB\n" ,
476+ "Right aligned AAA %+50Zd BBB\n" , /* 20 */
428477 "Left aligned AAA %+-50Zd BBB\n" ,
429478 "Right aligned AAA %' '50Zd BBB\n" ,
430479 "Left aligned AAA %' '-50Zd BBB\n" ,
431480
432481 "hex with right align AAA %50Zx BBB\n" ,
433- "hex with left align AAA %-50Zx BBB\n" ,
482+ "hex with left align AAA %-50Zx BBB\n" , /* 25 */
434483 "hex with right align AAA %+50Zx BBB\n" ,
435484 "hex with left align AAA %+-50Zx BBB\n" ,
436485 "hex with right align AAA %' '50Zx BBB\n" ,
437486 "hex with left align AAA %' '-50Zx BBB\n" ,
438487
439- "hex with right align AAA %#50Zx BBB\n" ,
488+ "hex with right align AAA %#50Zx BBB\n" , /* 30 */
440489 "hex with left align AAA %#-50Zx BBB\n" ,
441490 "hex with right align AAA %#+50Zx BBB\n" ,
442491 "hex with left align AAA %#+-50Zx BBB\n" ,
443492 "hex with right align AAA %#' '50Zx BBB\n" ,
444- "hex with left align AAA %#' '-50Zx BBB\n" ,
445-
493+ "hex with left align AAA %#' '-50Zx BBB\n" , /* 35 */
446494 /* at idx == 36 mp_zero(&p); */
447495 "Right aligned AAA %50Zd BBB\n" ,
448496 "Left aligned AAA %-50Zd BBB\n" ,
449497 "hex with right align AAA %#50Zx BBB\n" ,
450498 "hex with left align AAA %#-50Zx BBB\n" ,
451499 /* at idx == 40 mp_exch(&p,&q); */
452- "Right aligned AAA %50Zb BBB\n" ,
500+ "Right aligned AAA %50Zb BBB\n" , /* 40 */
453501 "Left aligned AAA %-50Zb BBB\n" ,
454502 "Right aligned AAA %+50Zb BBB\n" ,
455503 "Left aligned AAA %+-50Zb BBB\n" ,
456504 "Right aligned AAA %' '50Zb BBB\n" ,
457- "Left aligned AAA %' '-50Zb BBB\n" ,
505+ "Left aligned AAA %' '-50Zb BBB\n" , /* 45 */
458506 "Right aligned AAA %50Z@ BBB\n" ,
459507 "Left aligned AAA %-50Z@ BBB\n" ,
460508 "Right aligned AAA %+50Z@ BBB\n" ,
461509 "Left aligned AAA %+-50Z@ BBB\n" ,
462- "Right aligned AAA %' '50Z@ BBB\n" ,
510+ "Right aligned AAA %' '50Z@ BBB\n" , /* 50 */
463511 "Left aligned AAA %' '-50Z@ BBB\n" ,
464512 "Right aligned AAA %#50Z@ BBB\n" ,
465513 "Left aligned AAA %#-50Z@ BBB\n" ,
466514 "Right aligned AAA %#+50Z@ BBB\n" ,
467- "Left aligned AAA %#+-50Z@ BBB\n" ,
515+ "Left aligned AAA %#+-50Z@ BBB\n" , /* 55 */
468516 "Right aligned AAA %#' '50Z@ BBB\n" ,
469- "Left aligned AAA %#' '-50Z@ BBB\n"
517+ "Left aligned AAA %#' '-50Z@ BBB\n" ,
518+ /* Starting mp_digit tests at pos. 58 */
519+ "Right aligned AAA %50Md BBB\n" ,
520+ "Left aligned AAA %-50Md BBB\n" ,
521+ "Right aligned AAA %+50Md BBB\n" , /* 60 */
522+ "Left aligned AAA %+-50Md BBB\n" ,
523+ "Right aligned AAA %' '50Md BBB\n" ,
524+ "Left aligned AAA %' '-50Md BBB\n" ,
525+ "Right aligned AAA %50Mx BBB\n" ,
526+ "Left aligned AAA %-50Mx BBB\n" , /* 65 */
527+ "Right aligned AAA %+50Mx BBB\n" ,
528+ "Left aligned AAA %+-50Mx BBB\n" ,
529+ "Right aligned AAA %' '50Mx BBB\n" ,
530+ "Left aligned AAA %' '-50Mx BBB\n" ,
531+ "Right aligned AAA %#50Mx BBB\n" , /* 70 */
532+ "Left aligned AAA %#-50Mx BBB\n" ,
533+ "Right aligned AAA %#+50Mx BBB\n" ,
534+ "Left aligned AAA %#+-50Mx BBB\n" ,
535+ "Right aligned AAA %#' '50Mx BBB\n" ,
536+ "Left aligned AAA %#' '-50Mx BBB\n" , /* 75 */
537+ "Right aligned AAA %50Mb BBB\n" ,
538+ "Left aligned AAA %-50Mb BBB\n" ,
539+ "Right aligned AAA %+50Mb BBB\n" ,
540+ "Left aligned AAA %+-50Mb BBB\n" ,
541+ "Right aligned AAA %' '50Mb BBB\n" , /* 80 */
542+ "Left aligned AAA %' '-50Mb BBB\n" ,
543+ "Right aligned AAA %50M@ BBB\n" ,
544+ "Left aligned AAA %-50M@ BBB\n" ,
545+ "Right aligned AAA %+50M@ BBB\n" ,
546+ "Left aligned AAA %+-50M@ BBB\n" , /* 85 */
547+ "Right aligned AAA %' '50M@ BBB\n" ,
548+ "Left aligned AAA %' '-50M@ BBB\n" ,
549+ "Right aligned AAA %#50M@ BBB\n" ,
550+ "Left aligned AAA %#-50M@ BBB\n" ,
551+ "Right aligned AAA %#+50M@ BBB\n" , /* 90 */
552+ "Left aligned AAA %#+-50M@ BBB\n" ,
553+ "Right aligned AAA %#' '50M@ BBB\n" ,
554+ "Left aligned AAA %#' '-50M@ BBB\n" ,
555+ /* Array printing starts at pos. 94 */
556+ "Right aligned AAA %#50Nx BBB\n" ,
557+ "Left aligned AAA %#-50Nx BBB\n" , /* 95 */
558+ "Right aligned AAA %#+50Nx BBB\n" ,
559+ "Left aligned AAA %#+-50Nx BBB\n" ,
560+ "Right aligned AAA %#' '50Nx BBB\n" ,
561+ "Left aligned AAA %#' '-50Nx BBB\n" ,
562+ "Right aligned AAA %#50Nb BBB\n" , /* 100 */
563+ "Left aligned AAA %#-50Nb BBB\n" ,
564+ "Right aligned AAA %#+50Nb BBB\n" ,
565+ "Left aligned AAA %#+-50Nb BBB\n" ,
566+ "Right aligned AAA %#' '50Nb BBB\n" ,
567+ "Left aligned AAA %#' '-50Nb BBB\n" /* 105 */
470568 };
471569
472570 mp_int p , q ;
@@ -485,7 +583,7 @@ static int test_mp_printf_extension(void)
485583
486584 DO (mp_printf_extension_init ());
487585
488- for (idx = 0 ; idx < 52 ; idx ++ ) {
586+ for (idx = 0 ; idx < 106 ; idx ++ ) {
489587 if (idx == 18 ) {
490588 mp_exch (& p ,& q );
491589 }
@@ -495,7 +593,11 @@ static int test_mp_printf_extension(void)
495593 if (idx == 40 ) {
496594 mp_exch (& p ,& q );
497595 }
498- characters_printed = fprintf (test_file , print_strings [idx ], & p );
596+ if ((idx > 57 ) && (idx < 94 )) {
597+ characters_printed = fprintf (test_file , print_strings [idx ], p .dp [0 ]);
598+ } else {
599+ characters_printed = fprintf (test_file , print_strings [idx ], & p );
600+ }
499601 slen = strlen (test_strings [idx ]);
500602 if ((characters_printed - (int )slen ) != 0 ) {
501603 mp_printf_extension_clear ();
@@ -516,6 +618,8 @@ static int test_mp_printf_extension(void)
516618 if (strcmp (line_buffer , test_strings [idx ]) != 0 ) {
517619 mp_printf_extension_clear ();
518620 fprintf (stderr , "test_mp_fprintf: file content is not equal to test string #%d\n" ,idx );
621+ fprintf (stderr , "%s" ,line_buffer );
622+ fprintf (stderr , "%s" ,test_strings [idx ]);
519623 goto LBL_ERR ;
520624 }
521625 }
0 commit comments