diff options
-rw-r--r-- | src/microhttpd/mhd_str.c | 47 | ||||
-rw-r--r-- | src/microhttpd/mhd_str.h | 22 | ||||
-rw-r--r-- | src/microhttpd/test_str.c | 907 |
3 files changed, 975 insertions, 1 deletions
diff --git a/src/microhttpd/mhd_str.c b/src/microhttpd/mhd_str.c index b106859d..1c77a46d 100644 --- a/src/microhttpd/mhd_str.c +++ b/src/microhttpd/mhd_str.c | |||
@@ -1294,3 +1294,50 @@ MHD_uint64_to_str (uint64_t val, | |||
1294 | } | 1294 | } |
1295 | return 0; /* The buffer is too small */ | 1295 | return 0; /* The buffer is too small */ |
1296 | } | 1296 | } |
1297 | |||
1298 | |||
1299 | size_t | ||
1300 | MHD_uint8_to_str_pad (uint8_t val, | ||
1301 | uint8_t min_digits, | ||
1302 | char *buf, | ||
1303 | size_t buf_size) | ||
1304 | { | ||
1305 | size_t pos; /**< the position of the current printed digit */ | ||
1306 | int digit; | ||
1307 | mhd_assert (3 >= min_digits); | ||
1308 | if (0 == buf_size) | ||
1309 | return 0; | ||
1310 | |||
1311 | pos = 0; | ||
1312 | digit = val / 100; | ||
1313 | if (0 == digit) | ||
1314 | { | ||
1315 | if (3 <= min_digits) | ||
1316 | buf[pos++] = '0'; | ||
1317 | } | ||
1318 | else | ||
1319 | { | ||
1320 | buf[pos++] = '0' + digit; | ||
1321 | val %= 100; | ||
1322 | min_digits = 2; | ||
1323 | } | ||
1324 | |||
1325 | if (buf_size <= pos) | ||
1326 | return 0; | ||
1327 | digit = val / 10; | ||
1328 | if (0 == digit) | ||
1329 | { | ||
1330 | if (2 <= min_digits) | ||
1331 | buf[pos++] = '0'; | ||
1332 | } | ||
1333 | else | ||
1334 | { | ||
1335 | buf[pos++] = '0' + digit; | ||
1336 | val %= 10; | ||
1337 | } | ||
1338 | |||
1339 | if (buf_size <= pos) | ||
1340 | return 0; | ||
1341 | buf[pos++] = '0' + val; | ||
1342 | return pos; | ||
1343 | } | ||
diff --git a/src/microhttpd/mhd_str.h b/src/microhttpd/mhd_str.h index 9cc4bb19..b21ae256 100644 --- a/src/microhttpd/mhd_str.h +++ b/src/microhttpd/mhd_str.h | |||
@@ -424,4 +424,26 @@ MHD_uint64_to_str (uint64_t val, | |||
424 | size_t buf_size); | 424 | size_t buf_size); |
425 | 425 | ||
426 | 426 | ||
427 | /** | ||
428 | * Convert uint16_t value to decimal US-ASCII string padded with | ||
429 | * zeros on the left side. | ||
430 | * | ||
431 | * @note: result is NOT zero-terminated. | ||
432 | * @param val the value to convert | ||
433 | * @param min_digits the minimal number of digits to print, | ||
434 | * output padded with zeros on the left side, | ||
435 | * 'zero' value is interpreted as 'one', | ||
436 | * valid values are 3, 2, 1, 0 | ||
437 | * @param buf the buffer to result to | ||
438 | * @param buf_size size of the @a buffer | ||
439 | * @return number of charters has been put to the @a buf, | ||
440 | * zero if buffer is too small (buffer may be modified). | ||
441 | */ | ||
442 | size_t | ||
443 | MHD_uint8_to_str_pad (uint8_t val, | ||
444 | uint8_t min_digits, | ||
445 | char *buf, | ||
446 | size_t buf_size); | ||
447 | |||
448 | |||
427 | #endif /* MHD_STR_H */ | 449 | #endif /* MHD_STR_H */ |
diff --git a/src/microhttpd/test_str.c b/src/microhttpd/test_str.c index a65cb61d..941f8406 100644 --- a/src/microhttpd/test_str.c +++ b/src/microhttpd/test_str.c | |||
@@ -3685,12 +3685,901 @@ check_strx_from_uint32 (void) | |||
3685 | } | 3685 | } |
3686 | 3686 | ||
3687 | 3687 | ||
3688 | static const struct str_with_value duint8_w_values_p1[] = { | ||
3689 | {D_STR_W_LEN ("0"), 1, 0}, | ||
3690 | {D_STR_W_LEN ("1"), 1, 1}, | ||
3691 | {D_STR_W_LEN ("2"), 1, 2}, | ||
3692 | {D_STR_W_LEN ("3"), 1, 3}, | ||
3693 | {D_STR_W_LEN ("4"), 1, 4}, | ||
3694 | {D_STR_W_LEN ("5"), 1, 5}, | ||
3695 | {D_STR_W_LEN ("6"), 1, 6}, | ||
3696 | {D_STR_W_LEN ("7"), 1, 7}, | ||
3697 | {D_STR_W_LEN ("8"), 1, 8}, | ||
3698 | {D_STR_W_LEN ("9"), 1, 9}, | ||
3699 | {D_STR_W_LEN ("10"), 2, 10}, | ||
3700 | {D_STR_W_LEN ("11"), 2, 11}, | ||
3701 | {D_STR_W_LEN ("12"), 2, 12}, | ||
3702 | {D_STR_W_LEN ("13"), 2, 13}, | ||
3703 | {D_STR_W_LEN ("14"), 2, 14}, | ||
3704 | {D_STR_W_LEN ("15"), 2, 15}, | ||
3705 | {D_STR_W_LEN ("16"), 2, 16}, | ||
3706 | {D_STR_W_LEN ("17"), 2, 17}, | ||
3707 | {D_STR_W_LEN ("18"), 2, 18}, | ||
3708 | {D_STR_W_LEN ("19"), 2, 19}, | ||
3709 | {D_STR_W_LEN ("20"), 2, 20}, | ||
3710 | {D_STR_W_LEN ("21"), 2, 21}, | ||
3711 | {D_STR_W_LEN ("22"), 2, 22}, | ||
3712 | {D_STR_W_LEN ("23"), 2, 23}, | ||
3713 | {D_STR_W_LEN ("24"), 2, 24}, | ||
3714 | {D_STR_W_LEN ("25"), 2, 25}, | ||
3715 | {D_STR_W_LEN ("26"), 2, 26}, | ||
3716 | {D_STR_W_LEN ("27"), 2, 27}, | ||
3717 | {D_STR_W_LEN ("28"), 2, 28}, | ||
3718 | {D_STR_W_LEN ("29"), 2, 29}, | ||
3719 | {D_STR_W_LEN ("30"), 2, 30}, | ||
3720 | {D_STR_W_LEN ("31"), 2, 31}, | ||
3721 | {D_STR_W_LEN ("32"), 2, 32}, | ||
3722 | {D_STR_W_LEN ("33"), 2, 33}, | ||
3723 | {D_STR_W_LEN ("34"), 2, 34}, | ||
3724 | {D_STR_W_LEN ("35"), 2, 35}, | ||
3725 | {D_STR_W_LEN ("36"), 2, 36}, | ||
3726 | {D_STR_W_LEN ("37"), 2, 37}, | ||
3727 | {D_STR_W_LEN ("38"), 2, 38}, | ||
3728 | {D_STR_W_LEN ("39"), 2, 39}, | ||
3729 | {D_STR_W_LEN ("40"), 2, 40}, | ||
3730 | {D_STR_W_LEN ("41"), 2, 41}, | ||
3731 | {D_STR_W_LEN ("42"), 2, 42}, | ||
3732 | {D_STR_W_LEN ("43"), 2, 43}, | ||
3733 | {D_STR_W_LEN ("44"), 2, 44}, | ||
3734 | {D_STR_W_LEN ("45"), 2, 45}, | ||
3735 | {D_STR_W_LEN ("46"), 2, 46}, | ||
3736 | {D_STR_W_LEN ("47"), 2, 47}, | ||
3737 | {D_STR_W_LEN ("48"), 2, 48}, | ||
3738 | {D_STR_W_LEN ("49"), 2, 49}, | ||
3739 | {D_STR_W_LEN ("50"), 2, 50}, | ||
3740 | {D_STR_W_LEN ("51"), 2, 51}, | ||
3741 | {D_STR_W_LEN ("52"), 2, 52}, | ||
3742 | {D_STR_W_LEN ("53"), 2, 53}, | ||
3743 | {D_STR_W_LEN ("54"), 2, 54}, | ||
3744 | {D_STR_W_LEN ("55"), 2, 55}, | ||
3745 | {D_STR_W_LEN ("56"), 2, 56}, | ||
3746 | {D_STR_W_LEN ("57"), 2, 57}, | ||
3747 | {D_STR_W_LEN ("58"), 2, 58}, | ||
3748 | {D_STR_W_LEN ("59"), 2, 59}, | ||
3749 | {D_STR_W_LEN ("60"), 2, 60}, | ||
3750 | {D_STR_W_LEN ("61"), 2, 61}, | ||
3751 | {D_STR_W_LEN ("62"), 2, 62}, | ||
3752 | {D_STR_W_LEN ("63"), 2, 63}, | ||
3753 | {D_STR_W_LEN ("64"), 2, 64}, | ||
3754 | {D_STR_W_LEN ("65"), 2, 65}, | ||
3755 | {D_STR_W_LEN ("66"), 2, 66}, | ||
3756 | {D_STR_W_LEN ("67"), 2, 67}, | ||
3757 | {D_STR_W_LEN ("68"), 2, 68}, | ||
3758 | {D_STR_W_LEN ("69"), 2, 69}, | ||
3759 | {D_STR_W_LEN ("70"), 2, 70}, | ||
3760 | {D_STR_W_LEN ("71"), 2, 71}, | ||
3761 | {D_STR_W_LEN ("72"), 2, 72}, | ||
3762 | {D_STR_W_LEN ("73"), 2, 73}, | ||
3763 | {D_STR_W_LEN ("74"), 2, 74}, | ||
3764 | {D_STR_W_LEN ("75"), 2, 75}, | ||
3765 | {D_STR_W_LEN ("76"), 2, 76}, | ||
3766 | {D_STR_W_LEN ("77"), 2, 77}, | ||
3767 | {D_STR_W_LEN ("78"), 2, 78}, | ||
3768 | {D_STR_W_LEN ("79"), 2, 79}, | ||
3769 | {D_STR_W_LEN ("80"), 2, 80}, | ||
3770 | {D_STR_W_LEN ("81"), 2, 81}, | ||
3771 | {D_STR_W_LEN ("82"), 2, 82}, | ||
3772 | {D_STR_W_LEN ("83"), 2, 83}, | ||
3773 | {D_STR_W_LEN ("84"), 2, 84}, | ||
3774 | {D_STR_W_LEN ("85"), 2, 85}, | ||
3775 | {D_STR_W_LEN ("86"), 2, 86}, | ||
3776 | {D_STR_W_LEN ("87"), 2, 87}, | ||
3777 | {D_STR_W_LEN ("88"), 2, 88}, | ||
3778 | {D_STR_W_LEN ("89"), 2, 89}, | ||
3779 | {D_STR_W_LEN ("90"), 2, 90}, | ||
3780 | {D_STR_W_LEN ("91"), 2, 91}, | ||
3781 | {D_STR_W_LEN ("92"), 2, 92}, | ||
3782 | {D_STR_W_LEN ("93"), 2, 93}, | ||
3783 | {D_STR_W_LEN ("94"), 2, 94}, | ||
3784 | {D_STR_W_LEN ("95"), 2, 95}, | ||
3785 | {D_STR_W_LEN ("96"), 2, 96}, | ||
3786 | {D_STR_W_LEN ("97"), 2, 97}, | ||
3787 | {D_STR_W_LEN ("98"), 2, 98}, | ||
3788 | {D_STR_W_LEN ("99"), 2, 99}, | ||
3789 | {D_STR_W_LEN ("100"), 3, 100}, | ||
3790 | {D_STR_W_LEN ("101"), 3, 101}, | ||
3791 | {D_STR_W_LEN ("102"), 3, 102}, | ||
3792 | {D_STR_W_LEN ("103"), 3, 103}, | ||
3793 | {D_STR_W_LEN ("104"), 3, 104}, | ||
3794 | {D_STR_W_LEN ("105"), 3, 105}, | ||
3795 | {D_STR_W_LEN ("106"), 3, 106}, | ||
3796 | {D_STR_W_LEN ("107"), 3, 107}, | ||
3797 | {D_STR_W_LEN ("108"), 3, 108}, | ||
3798 | {D_STR_W_LEN ("109"), 3, 109}, | ||
3799 | {D_STR_W_LEN ("110"), 3, 110}, | ||
3800 | {D_STR_W_LEN ("111"), 3, 111}, | ||
3801 | {D_STR_W_LEN ("112"), 3, 112}, | ||
3802 | {D_STR_W_LEN ("113"), 3, 113}, | ||
3803 | {D_STR_W_LEN ("114"), 3, 114}, | ||
3804 | {D_STR_W_LEN ("115"), 3, 115}, | ||
3805 | {D_STR_W_LEN ("116"), 3, 116}, | ||
3806 | {D_STR_W_LEN ("117"), 3, 117}, | ||
3807 | {D_STR_W_LEN ("118"), 3, 118}, | ||
3808 | {D_STR_W_LEN ("119"), 3, 119}, | ||
3809 | {D_STR_W_LEN ("120"), 3, 120}, | ||
3810 | {D_STR_W_LEN ("121"), 3, 121}, | ||
3811 | {D_STR_W_LEN ("122"), 3, 122}, | ||
3812 | {D_STR_W_LEN ("123"), 3, 123}, | ||
3813 | {D_STR_W_LEN ("124"), 3, 124}, | ||
3814 | {D_STR_W_LEN ("125"), 3, 125}, | ||
3815 | {D_STR_W_LEN ("126"), 3, 126}, | ||
3816 | {D_STR_W_LEN ("127"), 3, 127}, | ||
3817 | {D_STR_W_LEN ("128"), 3, 128}, | ||
3818 | {D_STR_W_LEN ("129"), 3, 129}, | ||
3819 | {D_STR_W_LEN ("130"), 3, 130}, | ||
3820 | {D_STR_W_LEN ("131"), 3, 131}, | ||
3821 | {D_STR_W_LEN ("132"), 3, 132}, | ||
3822 | {D_STR_W_LEN ("133"), 3, 133}, | ||
3823 | {D_STR_W_LEN ("134"), 3, 134}, | ||
3824 | {D_STR_W_LEN ("135"), 3, 135}, | ||
3825 | {D_STR_W_LEN ("136"), 3, 136}, | ||
3826 | {D_STR_W_LEN ("137"), 3, 137}, | ||
3827 | {D_STR_W_LEN ("138"), 3, 138}, | ||
3828 | {D_STR_W_LEN ("139"), 3, 139}, | ||
3829 | {D_STR_W_LEN ("140"), 3, 140}, | ||
3830 | {D_STR_W_LEN ("141"), 3, 141}, | ||
3831 | {D_STR_W_LEN ("142"), 3, 142}, | ||
3832 | {D_STR_W_LEN ("143"), 3, 143}, | ||
3833 | {D_STR_W_LEN ("144"), 3, 144}, | ||
3834 | {D_STR_W_LEN ("145"), 3, 145}, | ||
3835 | {D_STR_W_LEN ("146"), 3, 146}, | ||
3836 | {D_STR_W_LEN ("147"), 3, 147}, | ||
3837 | {D_STR_W_LEN ("148"), 3, 148}, | ||
3838 | {D_STR_W_LEN ("149"), 3, 149}, | ||
3839 | {D_STR_W_LEN ("150"), 3, 150}, | ||
3840 | {D_STR_W_LEN ("151"), 3, 151}, | ||
3841 | {D_STR_W_LEN ("152"), 3, 152}, | ||
3842 | {D_STR_W_LEN ("153"), 3, 153}, | ||
3843 | {D_STR_W_LEN ("154"), 3, 154}, | ||
3844 | {D_STR_W_LEN ("155"), 3, 155}, | ||
3845 | {D_STR_W_LEN ("156"), 3, 156}, | ||
3846 | {D_STR_W_LEN ("157"), 3, 157}, | ||
3847 | {D_STR_W_LEN ("158"), 3, 158}, | ||
3848 | {D_STR_W_LEN ("159"), 3, 159}, | ||
3849 | {D_STR_W_LEN ("160"), 3, 160}, | ||
3850 | {D_STR_W_LEN ("161"), 3, 161}, | ||
3851 | {D_STR_W_LEN ("162"), 3, 162}, | ||
3852 | {D_STR_W_LEN ("163"), 3, 163}, | ||
3853 | {D_STR_W_LEN ("164"), 3, 164}, | ||
3854 | {D_STR_W_LEN ("165"), 3, 165}, | ||
3855 | {D_STR_W_LEN ("166"), 3, 166}, | ||
3856 | {D_STR_W_LEN ("167"), 3, 167}, | ||
3857 | {D_STR_W_LEN ("168"), 3, 168}, | ||
3858 | {D_STR_W_LEN ("169"), 3, 169}, | ||
3859 | {D_STR_W_LEN ("170"), 3, 170}, | ||
3860 | {D_STR_W_LEN ("171"), 3, 171}, | ||
3861 | {D_STR_W_LEN ("172"), 3, 172}, | ||
3862 | {D_STR_W_LEN ("173"), 3, 173}, | ||
3863 | {D_STR_W_LEN ("174"), 3, 174}, | ||
3864 | {D_STR_W_LEN ("175"), 3, 175}, | ||
3865 | {D_STR_W_LEN ("176"), 3, 176}, | ||
3866 | {D_STR_W_LEN ("177"), 3, 177}, | ||
3867 | {D_STR_W_LEN ("178"), 3, 178}, | ||
3868 | {D_STR_W_LEN ("179"), 3, 179}, | ||
3869 | {D_STR_W_LEN ("180"), 3, 180}, | ||
3870 | {D_STR_W_LEN ("181"), 3, 181}, | ||
3871 | {D_STR_W_LEN ("182"), 3, 182}, | ||
3872 | {D_STR_W_LEN ("183"), 3, 183}, | ||
3873 | {D_STR_W_LEN ("184"), 3, 184}, | ||
3874 | {D_STR_W_LEN ("185"), 3, 185}, | ||
3875 | {D_STR_W_LEN ("186"), 3, 186}, | ||
3876 | {D_STR_W_LEN ("187"), 3, 187}, | ||
3877 | {D_STR_W_LEN ("188"), 3, 188}, | ||
3878 | {D_STR_W_LEN ("189"), 3, 189}, | ||
3879 | {D_STR_W_LEN ("190"), 3, 190}, | ||
3880 | {D_STR_W_LEN ("191"), 3, 191}, | ||
3881 | {D_STR_W_LEN ("192"), 3, 192}, | ||
3882 | {D_STR_W_LEN ("193"), 3, 193}, | ||
3883 | {D_STR_W_LEN ("194"), 3, 194}, | ||
3884 | {D_STR_W_LEN ("195"), 3, 195}, | ||
3885 | {D_STR_W_LEN ("196"), 3, 196}, | ||
3886 | {D_STR_W_LEN ("197"), 3, 197}, | ||
3887 | {D_STR_W_LEN ("198"), 3, 198}, | ||
3888 | {D_STR_W_LEN ("199"), 3, 199}, | ||
3889 | {D_STR_W_LEN ("200"), 3, 200}, | ||
3890 | {D_STR_W_LEN ("201"), 3, 201}, | ||
3891 | {D_STR_W_LEN ("202"), 3, 202}, | ||
3892 | {D_STR_W_LEN ("203"), 3, 203}, | ||
3893 | {D_STR_W_LEN ("204"), 3, 204}, | ||
3894 | {D_STR_W_LEN ("205"), 3, 205}, | ||
3895 | {D_STR_W_LEN ("206"), 3, 206}, | ||
3896 | {D_STR_W_LEN ("207"), 3, 207}, | ||
3897 | {D_STR_W_LEN ("208"), 3, 208}, | ||
3898 | {D_STR_W_LEN ("209"), 3, 209}, | ||
3899 | {D_STR_W_LEN ("210"), 3, 210}, | ||
3900 | {D_STR_W_LEN ("211"), 3, 211}, | ||
3901 | {D_STR_W_LEN ("212"), 3, 212}, | ||
3902 | {D_STR_W_LEN ("213"), 3, 213}, | ||
3903 | {D_STR_W_LEN ("214"), 3, 214}, | ||
3904 | {D_STR_W_LEN ("215"), 3, 215}, | ||
3905 | {D_STR_W_LEN ("216"), 3, 216}, | ||
3906 | {D_STR_W_LEN ("217"), 3, 217}, | ||
3907 | {D_STR_W_LEN ("218"), 3, 218}, | ||
3908 | {D_STR_W_LEN ("219"), 3, 219}, | ||
3909 | {D_STR_W_LEN ("220"), 3, 220}, | ||
3910 | {D_STR_W_LEN ("221"), 3, 221}, | ||
3911 | {D_STR_W_LEN ("222"), 3, 222}, | ||
3912 | {D_STR_W_LEN ("223"), 3, 223}, | ||
3913 | {D_STR_W_LEN ("224"), 3, 224}, | ||
3914 | {D_STR_W_LEN ("225"), 3, 225}, | ||
3915 | {D_STR_W_LEN ("226"), 3, 226}, | ||
3916 | {D_STR_W_LEN ("227"), 3, 227}, | ||
3917 | {D_STR_W_LEN ("228"), 3, 228}, | ||
3918 | {D_STR_W_LEN ("229"), 3, 229}, | ||
3919 | {D_STR_W_LEN ("230"), 3, 230}, | ||
3920 | {D_STR_W_LEN ("231"), 3, 231}, | ||
3921 | {D_STR_W_LEN ("232"), 3, 232}, | ||
3922 | {D_STR_W_LEN ("233"), 3, 233}, | ||
3923 | {D_STR_W_LEN ("234"), 3, 234}, | ||
3924 | {D_STR_W_LEN ("235"), 3, 235}, | ||
3925 | {D_STR_W_LEN ("236"), 3, 236}, | ||
3926 | {D_STR_W_LEN ("237"), 3, 237}, | ||
3927 | {D_STR_W_LEN ("238"), 3, 238}, | ||
3928 | {D_STR_W_LEN ("239"), 3, 239}, | ||
3929 | {D_STR_W_LEN ("240"), 3, 240}, | ||
3930 | {D_STR_W_LEN ("241"), 3, 241}, | ||
3931 | {D_STR_W_LEN ("242"), 3, 242}, | ||
3932 | {D_STR_W_LEN ("243"), 3, 243}, | ||
3933 | {D_STR_W_LEN ("244"), 3, 244}, | ||
3934 | {D_STR_W_LEN ("245"), 3, 245}, | ||
3935 | {D_STR_W_LEN ("246"), 3, 246}, | ||
3936 | {D_STR_W_LEN ("247"), 3, 247}, | ||
3937 | {D_STR_W_LEN ("248"), 3, 248}, | ||
3938 | {D_STR_W_LEN ("249"), 3, 249}, | ||
3939 | {D_STR_W_LEN ("250"), 3, 250}, | ||
3940 | {D_STR_W_LEN ("251"), 3, 251}, | ||
3941 | {D_STR_W_LEN ("252"), 3, 252}, | ||
3942 | {D_STR_W_LEN ("253"), 3, 253}, | ||
3943 | {D_STR_W_LEN ("254"), 3, 254}, | ||
3944 | {D_STR_W_LEN ("255"), 3, 255}, | ||
3945 | }; | ||
3946 | |||
3947 | static const struct str_with_value duint8_w_values_p2[] = { | ||
3948 | {D_STR_W_LEN ("00"), 2, 0}, | ||
3949 | {D_STR_W_LEN ("01"), 2, 1}, | ||
3950 | {D_STR_W_LEN ("02"), 2, 2}, | ||
3951 | {D_STR_W_LEN ("03"), 2, 3}, | ||
3952 | {D_STR_W_LEN ("04"), 2, 4}, | ||
3953 | {D_STR_W_LEN ("05"), 2, 5}, | ||
3954 | {D_STR_W_LEN ("06"), 2, 6}, | ||
3955 | {D_STR_W_LEN ("07"), 2, 7}, | ||
3956 | {D_STR_W_LEN ("08"), 2, 8}, | ||
3957 | {D_STR_W_LEN ("09"), 2, 9}, | ||
3958 | {D_STR_W_LEN ("10"), 2, 10}, | ||
3959 | {D_STR_W_LEN ("11"), 2, 11}, | ||
3960 | {D_STR_W_LEN ("12"), 2, 12}, | ||
3961 | {D_STR_W_LEN ("13"), 2, 13}, | ||
3962 | {D_STR_W_LEN ("14"), 2, 14}, | ||
3963 | {D_STR_W_LEN ("15"), 2, 15}, | ||
3964 | {D_STR_W_LEN ("16"), 2, 16}, | ||
3965 | {D_STR_W_LEN ("17"), 2, 17}, | ||
3966 | {D_STR_W_LEN ("18"), 2, 18}, | ||
3967 | {D_STR_W_LEN ("19"), 2, 19}, | ||
3968 | {D_STR_W_LEN ("20"), 2, 20}, | ||
3969 | {D_STR_W_LEN ("21"), 2, 21}, | ||
3970 | {D_STR_W_LEN ("22"), 2, 22}, | ||
3971 | {D_STR_W_LEN ("23"), 2, 23}, | ||
3972 | {D_STR_W_LEN ("24"), 2, 24}, | ||
3973 | {D_STR_W_LEN ("25"), 2, 25}, | ||
3974 | {D_STR_W_LEN ("26"), 2, 26}, | ||
3975 | {D_STR_W_LEN ("27"), 2, 27}, | ||
3976 | {D_STR_W_LEN ("28"), 2, 28}, | ||
3977 | {D_STR_W_LEN ("29"), 2, 29}, | ||
3978 | {D_STR_W_LEN ("30"), 2, 30}, | ||
3979 | {D_STR_W_LEN ("31"), 2, 31}, | ||
3980 | {D_STR_W_LEN ("32"), 2, 32}, | ||
3981 | {D_STR_W_LEN ("33"), 2, 33}, | ||
3982 | {D_STR_W_LEN ("34"), 2, 34}, | ||
3983 | {D_STR_W_LEN ("35"), 2, 35}, | ||
3984 | {D_STR_W_LEN ("36"), 2, 36}, | ||
3985 | {D_STR_W_LEN ("37"), 2, 37}, | ||
3986 | {D_STR_W_LEN ("38"), 2, 38}, | ||
3987 | {D_STR_W_LEN ("39"), 2, 39}, | ||
3988 | {D_STR_W_LEN ("40"), 2, 40}, | ||
3989 | {D_STR_W_LEN ("41"), 2, 41}, | ||
3990 | {D_STR_W_LEN ("42"), 2, 42}, | ||
3991 | {D_STR_W_LEN ("43"), 2, 43}, | ||
3992 | {D_STR_W_LEN ("44"), 2, 44}, | ||
3993 | {D_STR_W_LEN ("45"), 2, 45}, | ||
3994 | {D_STR_W_LEN ("46"), 2, 46}, | ||
3995 | {D_STR_W_LEN ("47"), 2, 47}, | ||
3996 | {D_STR_W_LEN ("48"), 2, 48}, | ||
3997 | {D_STR_W_LEN ("49"), 2, 49}, | ||
3998 | {D_STR_W_LEN ("50"), 2, 50}, | ||
3999 | {D_STR_W_LEN ("51"), 2, 51}, | ||
4000 | {D_STR_W_LEN ("52"), 2, 52}, | ||
4001 | {D_STR_W_LEN ("53"), 2, 53}, | ||
4002 | {D_STR_W_LEN ("54"), 2, 54}, | ||
4003 | {D_STR_W_LEN ("55"), 2, 55}, | ||
4004 | {D_STR_W_LEN ("56"), 2, 56}, | ||
4005 | {D_STR_W_LEN ("57"), 2, 57}, | ||
4006 | {D_STR_W_LEN ("58"), 2, 58}, | ||
4007 | {D_STR_W_LEN ("59"), 2, 59}, | ||
4008 | {D_STR_W_LEN ("60"), 2, 60}, | ||
4009 | {D_STR_W_LEN ("61"), 2, 61}, | ||
4010 | {D_STR_W_LEN ("62"), 2, 62}, | ||
4011 | {D_STR_W_LEN ("63"), 2, 63}, | ||
4012 | {D_STR_W_LEN ("64"), 2, 64}, | ||
4013 | {D_STR_W_LEN ("65"), 2, 65}, | ||
4014 | {D_STR_W_LEN ("66"), 2, 66}, | ||
4015 | {D_STR_W_LEN ("67"), 2, 67}, | ||
4016 | {D_STR_W_LEN ("68"), 2, 68}, | ||
4017 | {D_STR_W_LEN ("69"), 2, 69}, | ||
4018 | {D_STR_W_LEN ("70"), 2, 70}, | ||
4019 | {D_STR_W_LEN ("71"), 2, 71}, | ||
4020 | {D_STR_W_LEN ("72"), 2, 72}, | ||
4021 | {D_STR_W_LEN ("73"), 2, 73}, | ||
4022 | {D_STR_W_LEN ("74"), 2, 74}, | ||
4023 | {D_STR_W_LEN ("75"), 2, 75}, | ||
4024 | {D_STR_W_LEN ("76"), 2, 76}, | ||
4025 | {D_STR_W_LEN ("77"), 2, 77}, | ||
4026 | {D_STR_W_LEN ("78"), 2, 78}, | ||
4027 | {D_STR_W_LEN ("79"), 2, 79}, | ||
4028 | {D_STR_W_LEN ("80"), 2, 80}, | ||
4029 | {D_STR_W_LEN ("81"), 2, 81}, | ||
4030 | {D_STR_W_LEN ("82"), 2, 82}, | ||
4031 | {D_STR_W_LEN ("83"), 2, 83}, | ||
4032 | {D_STR_W_LEN ("84"), 2, 84}, | ||
4033 | {D_STR_W_LEN ("85"), 2, 85}, | ||
4034 | {D_STR_W_LEN ("86"), 2, 86}, | ||
4035 | {D_STR_W_LEN ("87"), 2, 87}, | ||
4036 | {D_STR_W_LEN ("88"), 2, 88}, | ||
4037 | {D_STR_W_LEN ("89"), 2, 89}, | ||
4038 | {D_STR_W_LEN ("90"), 2, 90}, | ||
4039 | {D_STR_W_LEN ("91"), 2, 91}, | ||
4040 | {D_STR_W_LEN ("92"), 2, 92}, | ||
4041 | {D_STR_W_LEN ("93"), 2, 93}, | ||
4042 | {D_STR_W_LEN ("94"), 2, 94}, | ||
4043 | {D_STR_W_LEN ("95"), 2, 95}, | ||
4044 | {D_STR_W_LEN ("96"), 2, 96}, | ||
4045 | {D_STR_W_LEN ("97"), 2, 97}, | ||
4046 | {D_STR_W_LEN ("98"), 2, 98}, | ||
4047 | {D_STR_W_LEN ("99"), 2, 99}, | ||
4048 | {D_STR_W_LEN ("100"), 3, 100}, | ||
4049 | {D_STR_W_LEN ("101"), 3, 101}, | ||
4050 | {D_STR_W_LEN ("102"), 3, 102}, | ||
4051 | {D_STR_W_LEN ("103"), 3, 103}, | ||
4052 | {D_STR_W_LEN ("104"), 3, 104}, | ||
4053 | {D_STR_W_LEN ("105"), 3, 105}, | ||
4054 | {D_STR_W_LEN ("106"), 3, 106}, | ||
4055 | {D_STR_W_LEN ("107"), 3, 107}, | ||
4056 | {D_STR_W_LEN ("108"), 3, 108}, | ||
4057 | {D_STR_W_LEN ("109"), 3, 109}, | ||
4058 | {D_STR_W_LEN ("110"), 3, 110}, | ||
4059 | {D_STR_W_LEN ("111"), 3, 111}, | ||
4060 | {D_STR_W_LEN ("112"), 3, 112}, | ||
4061 | {D_STR_W_LEN ("113"), 3, 113}, | ||
4062 | {D_STR_W_LEN ("114"), 3, 114}, | ||
4063 | {D_STR_W_LEN ("115"), 3, 115}, | ||
4064 | {D_STR_W_LEN ("116"), 3, 116}, | ||
4065 | {D_STR_W_LEN ("117"), 3, 117}, | ||
4066 | {D_STR_W_LEN ("118"), 3, 118}, | ||
4067 | {D_STR_W_LEN ("119"), 3, 119}, | ||
4068 | {D_STR_W_LEN ("120"), 3, 120}, | ||
4069 | {D_STR_W_LEN ("121"), 3, 121}, | ||
4070 | {D_STR_W_LEN ("122"), 3, 122}, | ||
4071 | {D_STR_W_LEN ("123"), 3, 123}, | ||
4072 | {D_STR_W_LEN ("124"), 3, 124}, | ||
4073 | {D_STR_W_LEN ("125"), 3, 125}, | ||
4074 | {D_STR_W_LEN ("126"), 3, 126}, | ||
4075 | {D_STR_W_LEN ("127"), 3, 127}, | ||
4076 | {D_STR_W_LEN ("128"), 3, 128}, | ||
4077 | {D_STR_W_LEN ("129"), 3, 129}, | ||
4078 | {D_STR_W_LEN ("130"), 3, 130}, | ||
4079 | {D_STR_W_LEN ("131"), 3, 131}, | ||
4080 | {D_STR_W_LEN ("132"), 3, 132}, | ||
4081 | {D_STR_W_LEN ("133"), 3, 133}, | ||
4082 | {D_STR_W_LEN ("134"), 3, 134}, | ||
4083 | {D_STR_W_LEN ("135"), 3, 135}, | ||
4084 | {D_STR_W_LEN ("136"), 3, 136}, | ||
4085 | {D_STR_W_LEN ("137"), 3, 137}, | ||
4086 | {D_STR_W_LEN ("138"), 3, 138}, | ||
4087 | {D_STR_W_LEN ("139"), 3, 139}, | ||
4088 | {D_STR_W_LEN ("140"), 3, 140}, | ||
4089 | {D_STR_W_LEN ("141"), 3, 141}, | ||
4090 | {D_STR_W_LEN ("142"), 3, 142}, | ||
4091 | {D_STR_W_LEN ("143"), 3, 143}, | ||
4092 | {D_STR_W_LEN ("144"), 3, 144}, | ||
4093 | {D_STR_W_LEN ("145"), 3, 145}, | ||
4094 | {D_STR_W_LEN ("146"), 3, 146}, | ||
4095 | {D_STR_W_LEN ("147"), 3, 147}, | ||
4096 | {D_STR_W_LEN ("148"), 3, 148}, | ||
4097 | {D_STR_W_LEN ("149"), 3, 149}, | ||
4098 | {D_STR_W_LEN ("150"), 3, 150}, | ||
4099 | {D_STR_W_LEN ("151"), 3, 151}, | ||
4100 | {D_STR_W_LEN ("152"), 3, 152}, | ||
4101 | {D_STR_W_LEN ("153"), 3, 153}, | ||
4102 | {D_STR_W_LEN ("154"), 3, 154}, | ||
4103 | {D_STR_W_LEN ("155"), 3, 155}, | ||
4104 | {D_STR_W_LEN ("156"), 3, 156}, | ||
4105 | {D_STR_W_LEN ("157"), 3, 157}, | ||
4106 | {D_STR_W_LEN ("158"), 3, 158}, | ||
4107 | {D_STR_W_LEN ("159"), 3, 159}, | ||
4108 | {D_STR_W_LEN ("160"), 3, 160}, | ||
4109 | {D_STR_W_LEN ("161"), 3, 161}, | ||
4110 | {D_STR_W_LEN ("162"), 3, 162}, | ||
4111 | {D_STR_W_LEN ("163"), 3, 163}, | ||
4112 | {D_STR_W_LEN ("164"), 3, 164}, | ||
4113 | {D_STR_W_LEN ("165"), 3, 165}, | ||
4114 | {D_STR_W_LEN ("166"), 3, 166}, | ||
4115 | {D_STR_W_LEN ("167"), 3, 167}, | ||
4116 | {D_STR_W_LEN ("168"), 3, 168}, | ||
4117 | {D_STR_W_LEN ("169"), 3, 169}, | ||
4118 | {D_STR_W_LEN ("170"), 3, 170}, | ||
4119 | {D_STR_W_LEN ("171"), 3, 171}, | ||
4120 | {D_STR_W_LEN ("172"), 3, 172}, | ||
4121 | {D_STR_W_LEN ("173"), 3, 173}, | ||
4122 | {D_STR_W_LEN ("174"), 3, 174}, | ||
4123 | {D_STR_W_LEN ("175"), 3, 175}, | ||
4124 | {D_STR_W_LEN ("176"), 3, 176}, | ||
4125 | {D_STR_W_LEN ("177"), 3, 177}, | ||
4126 | {D_STR_W_LEN ("178"), 3, 178}, | ||
4127 | {D_STR_W_LEN ("179"), 3, 179}, | ||
4128 | {D_STR_W_LEN ("180"), 3, 180}, | ||
4129 | {D_STR_W_LEN ("181"), 3, 181}, | ||
4130 | {D_STR_W_LEN ("182"), 3, 182}, | ||
4131 | {D_STR_W_LEN ("183"), 3, 183}, | ||
4132 | {D_STR_W_LEN ("184"), 3, 184}, | ||
4133 | {D_STR_W_LEN ("185"), 3, 185}, | ||
4134 | {D_STR_W_LEN ("186"), 3, 186}, | ||
4135 | {D_STR_W_LEN ("187"), 3, 187}, | ||
4136 | {D_STR_W_LEN ("188"), 3, 188}, | ||
4137 | {D_STR_W_LEN ("189"), 3, 189}, | ||
4138 | {D_STR_W_LEN ("190"), 3, 190}, | ||
4139 | {D_STR_W_LEN ("191"), 3, 191}, | ||
4140 | {D_STR_W_LEN ("192"), 3, 192}, | ||
4141 | {D_STR_W_LEN ("193"), 3, 193}, | ||
4142 | {D_STR_W_LEN ("194"), 3, 194}, | ||
4143 | {D_STR_W_LEN ("195"), 3, 195}, | ||
4144 | {D_STR_W_LEN ("196"), 3, 196}, | ||
4145 | {D_STR_W_LEN ("197"), 3, 197}, | ||
4146 | {D_STR_W_LEN ("198"), 3, 198}, | ||
4147 | {D_STR_W_LEN ("199"), 3, 199}, | ||
4148 | {D_STR_W_LEN ("200"), 3, 200}, | ||
4149 | {D_STR_W_LEN ("201"), 3, 201}, | ||
4150 | {D_STR_W_LEN ("202"), 3, 202}, | ||
4151 | {D_STR_W_LEN ("203"), 3, 203}, | ||
4152 | {D_STR_W_LEN ("204"), 3, 204}, | ||
4153 | {D_STR_W_LEN ("205"), 3, 205}, | ||
4154 | {D_STR_W_LEN ("206"), 3, 206}, | ||
4155 | {D_STR_W_LEN ("207"), 3, 207}, | ||
4156 | {D_STR_W_LEN ("208"), 3, 208}, | ||
4157 | {D_STR_W_LEN ("209"), 3, 209}, | ||
4158 | {D_STR_W_LEN ("210"), 3, 210}, | ||
4159 | {D_STR_W_LEN ("211"), 3, 211}, | ||
4160 | {D_STR_W_LEN ("212"), 3, 212}, | ||
4161 | {D_STR_W_LEN ("213"), 3, 213}, | ||
4162 | {D_STR_W_LEN ("214"), 3, 214}, | ||
4163 | {D_STR_W_LEN ("215"), 3, 215}, | ||
4164 | {D_STR_W_LEN ("216"), 3, 216}, | ||
4165 | {D_STR_W_LEN ("217"), 3, 217}, | ||
4166 | {D_STR_W_LEN ("218"), 3, 218}, | ||
4167 | {D_STR_W_LEN ("219"), 3, 219}, | ||
4168 | {D_STR_W_LEN ("220"), 3, 220}, | ||
4169 | {D_STR_W_LEN ("221"), 3, 221}, | ||
4170 | {D_STR_W_LEN ("222"), 3, 222}, | ||
4171 | {D_STR_W_LEN ("223"), 3, 223}, | ||
4172 | {D_STR_W_LEN ("224"), 3, 224}, | ||
4173 | {D_STR_W_LEN ("225"), 3, 225}, | ||
4174 | {D_STR_W_LEN ("226"), 3, 226}, | ||
4175 | {D_STR_W_LEN ("227"), 3, 227}, | ||
4176 | {D_STR_W_LEN ("228"), 3, 228}, | ||
4177 | {D_STR_W_LEN ("229"), 3, 229}, | ||
4178 | {D_STR_W_LEN ("230"), 3, 230}, | ||
4179 | {D_STR_W_LEN ("231"), 3, 231}, | ||
4180 | {D_STR_W_LEN ("232"), 3, 232}, | ||
4181 | {D_STR_W_LEN ("233"), 3, 233}, | ||
4182 | {D_STR_W_LEN ("234"), 3, 234}, | ||
4183 | {D_STR_W_LEN ("235"), 3, 235}, | ||
4184 | {D_STR_W_LEN ("236"), 3, 236}, | ||
4185 | {D_STR_W_LEN ("237"), 3, 237}, | ||
4186 | {D_STR_W_LEN ("238"), 3, 238}, | ||
4187 | {D_STR_W_LEN ("239"), 3, 239}, | ||
4188 | {D_STR_W_LEN ("240"), 3, 240}, | ||
4189 | {D_STR_W_LEN ("241"), 3, 241}, | ||
4190 | {D_STR_W_LEN ("242"), 3, 242}, | ||
4191 | {D_STR_W_LEN ("243"), 3, 243}, | ||
4192 | {D_STR_W_LEN ("244"), 3, 244}, | ||
4193 | {D_STR_W_LEN ("245"), 3, 245}, | ||
4194 | {D_STR_W_LEN ("246"), 3, 246}, | ||
4195 | {D_STR_W_LEN ("247"), 3, 247}, | ||
4196 | {D_STR_W_LEN ("248"), 3, 248}, | ||
4197 | {D_STR_W_LEN ("249"), 3, 249}, | ||
4198 | {D_STR_W_LEN ("250"), 3, 250}, | ||
4199 | {D_STR_W_LEN ("251"), 3, 251}, | ||
4200 | {D_STR_W_LEN ("252"), 3, 252}, | ||
4201 | {D_STR_W_LEN ("253"), 3, 253}, | ||
4202 | {D_STR_W_LEN ("254"), 3, 254}, | ||
4203 | {D_STR_W_LEN ("255"), 3, 255} | ||
4204 | }; | ||
4205 | |||
4206 | static const struct str_with_value duint8_w_values_p3[] = { | ||
4207 | {D_STR_W_LEN ("000"), 3, 0}, | ||
4208 | {D_STR_W_LEN ("001"), 3, 1}, | ||
4209 | {D_STR_W_LEN ("002"), 3, 2}, | ||
4210 | {D_STR_W_LEN ("003"), 3, 3}, | ||
4211 | {D_STR_W_LEN ("004"), 3, 4}, | ||
4212 | {D_STR_W_LEN ("005"), 3, 5}, | ||
4213 | {D_STR_W_LEN ("006"), 3, 6}, | ||
4214 | {D_STR_W_LEN ("007"), 3, 7}, | ||
4215 | {D_STR_W_LEN ("008"), 3, 8}, | ||
4216 | {D_STR_W_LEN ("009"), 3, 9}, | ||
4217 | {D_STR_W_LEN ("010"), 3, 10}, | ||
4218 | {D_STR_W_LEN ("011"), 3, 11}, | ||
4219 | {D_STR_W_LEN ("012"), 3, 12}, | ||
4220 | {D_STR_W_LEN ("013"), 3, 13}, | ||
4221 | {D_STR_W_LEN ("014"), 3, 14}, | ||
4222 | {D_STR_W_LEN ("015"), 3, 15}, | ||
4223 | {D_STR_W_LEN ("016"), 3, 16}, | ||
4224 | {D_STR_W_LEN ("017"), 3, 17}, | ||
4225 | {D_STR_W_LEN ("018"), 3, 18}, | ||
4226 | {D_STR_W_LEN ("019"), 3, 19}, | ||
4227 | {D_STR_W_LEN ("020"), 3, 20}, | ||
4228 | {D_STR_W_LEN ("021"), 3, 21}, | ||
4229 | {D_STR_W_LEN ("022"), 3, 22}, | ||
4230 | {D_STR_W_LEN ("023"), 3, 23}, | ||
4231 | {D_STR_W_LEN ("024"), 3, 24}, | ||
4232 | {D_STR_W_LEN ("025"), 3, 25}, | ||
4233 | {D_STR_W_LEN ("026"), 3, 26}, | ||
4234 | {D_STR_W_LEN ("027"), 3, 27}, | ||
4235 | {D_STR_W_LEN ("028"), 3, 28}, | ||
4236 | {D_STR_W_LEN ("029"), 3, 29}, | ||
4237 | {D_STR_W_LEN ("030"), 3, 30}, | ||
4238 | {D_STR_W_LEN ("031"), 3, 31}, | ||
4239 | {D_STR_W_LEN ("032"), 3, 32}, | ||
4240 | {D_STR_W_LEN ("033"), 3, 33}, | ||
4241 | {D_STR_W_LEN ("034"), 3, 34}, | ||
4242 | {D_STR_W_LEN ("035"), 3, 35}, | ||
4243 | {D_STR_W_LEN ("036"), 3, 36}, | ||
4244 | {D_STR_W_LEN ("037"), 3, 37}, | ||
4245 | {D_STR_W_LEN ("038"), 3, 38}, | ||
4246 | {D_STR_W_LEN ("039"), 3, 39}, | ||
4247 | {D_STR_W_LEN ("040"), 3, 40}, | ||
4248 | {D_STR_W_LEN ("041"), 3, 41}, | ||
4249 | {D_STR_W_LEN ("042"), 3, 42}, | ||
4250 | {D_STR_W_LEN ("043"), 3, 43}, | ||
4251 | {D_STR_W_LEN ("044"), 3, 44}, | ||
4252 | {D_STR_W_LEN ("045"), 3, 45}, | ||
4253 | {D_STR_W_LEN ("046"), 3, 46}, | ||
4254 | {D_STR_W_LEN ("047"), 3, 47}, | ||
4255 | {D_STR_W_LEN ("048"), 3, 48}, | ||
4256 | {D_STR_W_LEN ("049"), 3, 49}, | ||
4257 | {D_STR_W_LEN ("050"), 3, 50}, | ||
4258 | {D_STR_W_LEN ("051"), 3, 51}, | ||
4259 | {D_STR_W_LEN ("052"), 3, 52}, | ||
4260 | {D_STR_W_LEN ("053"), 3, 53}, | ||
4261 | {D_STR_W_LEN ("054"), 3, 54}, | ||
4262 | {D_STR_W_LEN ("055"), 3, 55}, | ||
4263 | {D_STR_W_LEN ("056"), 3, 56}, | ||
4264 | {D_STR_W_LEN ("057"), 3, 57}, | ||
4265 | {D_STR_W_LEN ("058"), 3, 58}, | ||
4266 | {D_STR_W_LEN ("059"), 3, 59}, | ||
4267 | {D_STR_W_LEN ("060"), 3, 60}, | ||
4268 | {D_STR_W_LEN ("061"), 3, 61}, | ||
4269 | {D_STR_W_LEN ("062"), 3, 62}, | ||
4270 | {D_STR_W_LEN ("063"), 3, 63}, | ||
4271 | {D_STR_W_LEN ("064"), 3, 64}, | ||
4272 | {D_STR_W_LEN ("065"), 3, 65}, | ||
4273 | {D_STR_W_LEN ("066"), 3, 66}, | ||
4274 | {D_STR_W_LEN ("067"), 3, 67}, | ||
4275 | {D_STR_W_LEN ("068"), 3, 68}, | ||
4276 | {D_STR_W_LEN ("069"), 3, 69}, | ||
4277 | {D_STR_W_LEN ("070"), 3, 70}, | ||
4278 | {D_STR_W_LEN ("071"), 3, 71}, | ||
4279 | {D_STR_W_LEN ("072"), 3, 72}, | ||
4280 | {D_STR_W_LEN ("073"), 3, 73}, | ||
4281 | {D_STR_W_LEN ("074"), 3, 74}, | ||
4282 | {D_STR_W_LEN ("075"), 3, 75}, | ||
4283 | {D_STR_W_LEN ("076"), 3, 76}, | ||
4284 | {D_STR_W_LEN ("077"), 3, 77}, | ||
4285 | {D_STR_W_LEN ("078"), 3, 78}, | ||
4286 | {D_STR_W_LEN ("079"), 3, 79}, | ||
4287 | {D_STR_W_LEN ("080"), 3, 80}, | ||
4288 | {D_STR_W_LEN ("081"), 3, 81}, | ||
4289 | {D_STR_W_LEN ("082"), 3, 82}, | ||
4290 | {D_STR_W_LEN ("083"), 3, 83}, | ||
4291 | {D_STR_W_LEN ("084"), 3, 84}, | ||
4292 | {D_STR_W_LEN ("085"), 3, 85}, | ||
4293 | {D_STR_W_LEN ("086"), 3, 86}, | ||
4294 | {D_STR_W_LEN ("087"), 3, 87}, | ||
4295 | {D_STR_W_LEN ("088"), 3, 88}, | ||
4296 | {D_STR_W_LEN ("089"), 3, 89}, | ||
4297 | {D_STR_W_LEN ("090"), 3, 90}, | ||
4298 | {D_STR_W_LEN ("091"), 3, 91}, | ||
4299 | {D_STR_W_LEN ("092"), 3, 92}, | ||
4300 | {D_STR_W_LEN ("093"), 3, 93}, | ||
4301 | {D_STR_W_LEN ("094"), 3, 94}, | ||
4302 | {D_STR_W_LEN ("095"), 3, 95}, | ||
4303 | {D_STR_W_LEN ("096"), 3, 96}, | ||
4304 | {D_STR_W_LEN ("097"), 3, 97}, | ||
4305 | {D_STR_W_LEN ("098"), 3, 98}, | ||
4306 | {D_STR_W_LEN ("099"), 3, 99}, | ||
4307 | {D_STR_W_LEN ("100"), 3, 100}, | ||
4308 | {D_STR_W_LEN ("101"), 3, 101}, | ||
4309 | {D_STR_W_LEN ("102"), 3, 102}, | ||
4310 | {D_STR_W_LEN ("103"), 3, 103}, | ||
4311 | {D_STR_W_LEN ("104"), 3, 104}, | ||
4312 | {D_STR_W_LEN ("105"), 3, 105}, | ||
4313 | {D_STR_W_LEN ("106"), 3, 106}, | ||
4314 | {D_STR_W_LEN ("107"), 3, 107}, | ||
4315 | {D_STR_W_LEN ("108"), 3, 108}, | ||
4316 | {D_STR_W_LEN ("109"), 3, 109}, | ||
4317 | {D_STR_W_LEN ("110"), 3, 110}, | ||
4318 | {D_STR_W_LEN ("111"), 3, 111}, | ||
4319 | {D_STR_W_LEN ("112"), 3, 112}, | ||
4320 | {D_STR_W_LEN ("113"), 3, 113}, | ||
4321 | {D_STR_W_LEN ("114"), 3, 114}, | ||
4322 | {D_STR_W_LEN ("115"), 3, 115}, | ||
4323 | {D_STR_W_LEN ("116"), 3, 116}, | ||
4324 | {D_STR_W_LEN ("117"), 3, 117}, | ||
4325 | {D_STR_W_LEN ("118"), 3, 118}, | ||
4326 | {D_STR_W_LEN ("119"), 3, 119}, | ||
4327 | {D_STR_W_LEN ("120"), 3, 120}, | ||
4328 | {D_STR_W_LEN ("121"), 3, 121}, | ||
4329 | {D_STR_W_LEN ("122"), 3, 122}, | ||
4330 | {D_STR_W_LEN ("123"), 3, 123}, | ||
4331 | {D_STR_W_LEN ("124"), 3, 124}, | ||
4332 | {D_STR_W_LEN ("125"), 3, 125}, | ||
4333 | {D_STR_W_LEN ("126"), 3, 126}, | ||
4334 | {D_STR_W_LEN ("127"), 3, 127}, | ||
4335 | {D_STR_W_LEN ("128"), 3, 128}, | ||
4336 | {D_STR_W_LEN ("129"), 3, 129}, | ||
4337 | {D_STR_W_LEN ("130"), 3, 130}, | ||
4338 | {D_STR_W_LEN ("131"), 3, 131}, | ||
4339 | {D_STR_W_LEN ("132"), 3, 132}, | ||
4340 | {D_STR_W_LEN ("133"), 3, 133}, | ||
4341 | {D_STR_W_LEN ("134"), 3, 134}, | ||
4342 | {D_STR_W_LEN ("135"), 3, 135}, | ||
4343 | {D_STR_W_LEN ("136"), 3, 136}, | ||
4344 | {D_STR_W_LEN ("137"), 3, 137}, | ||
4345 | {D_STR_W_LEN ("138"), 3, 138}, | ||
4346 | {D_STR_W_LEN ("139"), 3, 139}, | ||
4347 | {D_STR_W_LEN ("140"), 3, 140}, | ||
4348 | {D_STR_W_LEN ("141"), 3, 141}, | ||
4349 | {D_STR_W_LEN ("142"), 3, 142}, | ||
4350 | {D_STR_W_LEN ("143"), 3, 143}, | ||
4351 | {D_STR_W_LEN ("144"), 3, 144}, | ||
4352 | {D_STR_W_LEN ("145"), 3, 145}, | ||
4353 | {D_STR_W_LEN ("146"), 3, 146}, | ||
4354 | {D_STR_W_LEN ("147"), 3, 147}, | ||
4355 | {D_STR_W_LEN ("148"), 3, 148}, | ||
4356 | {D_STR_W_LEN ("149"), 3, 149}, | ||
4357 | {D_STR_W_LEN ("150"), 3, 150}, | ||
4358 | {D_STR_W_LEN ("151"), 3, 151}, | ||
4359 | {D_STR_W_LEN ("152"), 3, 152}, | ||
4360 | {D_STR_W_LEN ("153"), 3, 153}, | ||
4361 | {D_STR_W_LEN ("154"), 3, 154}, | ||
4362 | {D_STR_W_LEN ("155"), 3, 155}, | ||
4363 | {D_STR_W_LEN ("156"), 3, 156}, | ||
4364 | {D_STR_W_LEN ("157"), 3, 157}, | ||
4365 | {D_STR_W_LEN ("158"), 3, 158}, | ||
4366 | {D_STR_W_LEN ("159"), 3, 159}, | ||
4367 | {D_STR_W_LEN ("160"), 3, 160}, | ||
4368 | {D_STR_W_LEN ("161"), 3, 161}, | ||
4369 | {D_STR_W_LEN ("162"), 3, 162}, | ||
4370 | {D_STR_W_LEN ("163"), 3, 163}, | ||
4371 | {D_STR_W_LEN ("164"), 3, 164}, | ||
4372 | {D_STR_W_LEN ("165"), 3, 165}, | ||
4373 | {D_STR_W_LEN ("166"), 3, 166}, | ||
4374 | {D_STR_W_LEN ("167"), 3, 167}, | ||
4375 | {D_STR_W_LEN ("168"), 3, 168}, | ||
4376 | {D_STR_W_LEN ("169"), 3, 169}, | ||
4377 | {D_STR_W_LEN ("170"), 3, 170}, | ||
4378 | {D_STR_W_LEN ("171"), 3, 171}, | ||
4379 | {D_STR_W_LEN ("172"), 3, 172}, | ||
4380 | {D_STR_W_LEN ("173"), 3, 173}, | ||
4381 | {D_STR_W_LEN ("174"), 3, 174}, | ||
4382 | {D_STR_W_LEN ("175"), 3, 175}, | ||
4383 | {D_STR_W_LEN ("176"), 3, 176}, | ||
4384 | {D_STR_W_LEN ("177"), 3, 177}, | ||
4385 | {D_STR_W_LEN ("178"), 3, 178}, | ||
4386 | {D_STR_W_LEN ("179"), 3, 179}, | ||
4387 | {D_STR_W_LEN ("180"), 3, 180}, | ||
4388 | {D_STR_W_LEN ("181"), 3, 181}, | ||
4389 | {D_STR_W_LEN ("182"), 3, 182}, | ||
4390 | {D_STR_W_LEN ("183"), 3, 183}, | ||
4391 | {D_STR_W_LEN ("184"), 3, 184}, | ||
4392 | {D_STR_W_LEN ("185"), 3, 185}, | ||
4393 | {D_STR_W_LEN ("186"), 3, 186}, | ||
4394 | {D_STR_W_LEN ("187"), 3, 187}, | ||
4395 | {D_STR_W_LEN ("188"), 3, 188}, | ||
4396 | {D_STR_W_LEN ("189"), 3, 189}, | ||
4397 | {D_STR_W_LEN ("190"), 3, 190}, | ||
4398 | {D_STR_W_LEN ("191"), 3, 191}, | ||
4399 | {D_STR_W_LEN ("192"), 3, 192}, | ||
4400 | {D_STR_W_LEN ("193"), 3, 193}, | ||
4401 | {D_STR_W_LEN ("194"), 3, 194}, | ||
4402 | {D_STR_W_LEN ("195"), 3, 195}, | ||
4403 | {D_STR_W_LEN ("196"), 3, 196}, | ||
4404 | {D_STR_W_LEN ("197"), 3, 197}, | ||
4405 | {D_STR_W_LEN ("198"), 3, 198}, | ||
4406 | {D_STR_W_LEN ("199"), 3, 199}, | ||
4407 | {D_STR_W_LEN ("200"), 3, 200}, | ||
4408 | {D_STR_W_LEN ("201"), 3, 201}, | ||
4409 | {D_STR_W_LEN ("202"), 3, 202}, | ||
4410 | {D_STR_W_LEN ("203"), 3, 203}, | ||
4411 | {D_STR_W_LEN ("204"), 3, 204}, | ||
4412 | {D_STR_W_LEN ("205"), 3, 205}, | ||
4413 | {D_STR_W_LEN ("206"), 3, 206}, | ||
4414 | {D_STR_W_LEN ("207"), 3, 207}, | ||
4415 | {D_STR_W_LEN ("208"), 3, 208}, | ||
4416 | {D_STR_W_LEN ("209"), 3, 209}, | ||
4417 | {D_STR_W_LEN ("210"), 3, 210}, | ||
4418 | {D_STR_W_LEN ("211"), 3, 211}, | ||
4419 | {D_STR_W_LEN ("212"), 3, 212}, | ||
4420 | {D_STR_W_LEN ("213"), 3, 213}, | ||
4421 | {D_STR_W_LEN ("214"), 3, 214}, | ||
4422 | {D_STR_W_LEN ("215"), 3, 215}, | ||
4423 | {D_STR_W_LEN ("216"), 3, 216}, | ||
4424 | {D_STR_W_LEN ("217"), 3, 217}, | ||
4425 | {D_STR_W_LEN ("218"), 3, 218}, | ||
4426 | {D_STR_W_LEN ("219"), 3, 219}, | ||
4427 | {D_STR_W_LEN ("220"), 3, 220}, | ||
4428 | {D_STR_W_LEN ("221"), 3, 221}, | ||
4429 | {D_STR_W_LEN ("222"), 3, 222}, | ||
4430 | {D_STR_W_LEN ("223"), 3, 223}, | ||
4431 | {D_STR_W_LEN ("224"), 3, 224}, | ||
4432 | {D_STR_W_LEN ("225"), 3, 225}, | ||
4433 | {D_STR_W_LEN ("226"), 3, 226}, | ||
4434 | {D_STR_W_LEN ("227"), 3, 227}, | ||
4435 | {D_STR_W_LEN ("228"), 3, 228}, | ||
4436 | {D_STR_W_LEN ("229"), 3, 229}, | ||
4437 | {D_STR_W_LEN ("230"), 3, 230}, | ||
4438 | {D_STR_W_LEN ("231"), 3, 231}, | ||
4439 | {D_STR_W_LEN ("232"), 3, 232}, | ||
4440 | {D_STR_W_LEN ("233"), 3, 233}, | ||
4441 | {D_STR_W_LEN ("234"), 3, 234}, | ||
4442 | {D_STR_W_LEN ("235"), 3, 235}, | ||
4443 | {D_STR_W_LEN ("236"), 3, 236}, | ||
4444 | {D_STR_W_LEN ("237"), 3, 237}, | ||
4445 | {D_STR_W_LEN ("238"), 3, 238}, | ||
4446 | {D_STR_W_LEN ("239"), 3, 239}, | ||
4447 | {D_STR_W_LEN ("240"), 3, 240}, | ||
4448 | {D_STR_W_LEN ("241"), 3, 241}, | ||
4449 | {D_STR_W_LEN ("242"), 3, 242}, | ||
4450 | {D_STR_W_LEN ("243"), 3, 243}, | ||
4451 | {D_STR_W_LEN ("244"), 3, 244}, | ||
4452 | {D_STR_W_LEN ("245"), 3, 245}, | ||
4453 | {D_STR_W_LEN ("246"), 3, 246}, | ||
4454 | {D_STR_W_LEN ("247"), 3, 247}, | ||
4455 | {D_STR_W_LEN ("248"), 3, 248}, | ||
4456 | {D_STR_W_LEN ("249"), 3, 249}, | ||
4457 | {D_STR_W_LEN ("250"), 3, 250}, | ||
4458 | {D_STR_W_LEN ("251"), 3, 251}, | ||
4459 | {D_STR_W_LEN ("252"), 3, 252}, | ||
4460 | {D_STR_W_LEN ("253"), 3, 253}, | ||
4461 | {D_STR_W_LEN ("254"), 3, 254}, | ||
4462 | {D_STR_W_LEN ("255"), 3, 255} | ||
4463 | }; | ||
4464 | |||
4465 | |||
4466 | static const struct str_with_value *duint8_w_values_p[3] = | ||
4467 | {duint8_w_values_p1, duint8_w_values_p2, duint8_w_values_p3}; | ||
4468 | |||
4469 | int | ||
4470 | check_str_from_uint8_pad (void) | ||
4471 | { | ||
4472 | int i; | ||
4473 | int pad; | ||
4474 | int t_failed = 0; | ||
4475 | |||
4476 | if ((256 != sizeof(duint8_w_values_p1) / sizeof(duint8_w_values_p1[0])) || | ||
4477 | (256 != sizeof(duint8_w_values_p2) / sizeof(duint8_w_values_p2[0])) || | ||
4478 | (256 != sizeof(duint8_w_values_p3) / sizeof(duint8_w_values_p3[0]))) | ||
4479 | { | ||
4480 | fprintf (stderr, | ||
4481 | "ERROR: wrong number of items in duint8_w_values_p*.\n"); | ||
4482 | return -1; | ||
4483 | } | ||
4484 | for (pad = 0; pad <= 3; pad++) | ||
4485 | { | ||
4486 | int table_num = pad - 1; | ||
4487 | if (0 == pad) | ||
4488 | table_num = 0; | ||
4489 | |||
4490 | for (i = 0; i <= 255; i++) | ||
4491 | { | ||
4492 | const struct str_with_value *const t = duint8_w_values_p[table_num] + i; | ||
4493 | size_t b_size; | ||
4494 | size_t rs; | ||
4495 | char buf[8]; | ||
4496 | |||
4497 | if (t->str.len < t->num_of_digt) | ||
4498 | { | ||
4499 | fprintf (stderr, | ||
4500 | "ERROR: dstrs_w_values[%u] has wrong num_of_digt (%u): num_of_digt is expected" | ||
4501 | " to be less or equal to str.len (%u).\n", | ||
4502 | (unsigned int) i, (unsigned int) t->num_of_digt, (unsigned | ||
4503 | int) t->str. | ||
4504 | len); | ||
4505 | return -1; | ||
4506 | } | ||
4507 | if (sizeof(buf) < t->str.len + 1) | ||
4508 | { | ||
4509 | fprintf (stderr, | ||
4510 | "ERROR: dstrs_w_values[%u] has too long (%u) string, " | ||
4511 | "size of 'buf' should be increased.\n", | ||
4512 | (unsigned int) i, (unsigned int) t->str.len); | ||
4513 | return -1; | ||
4514 | } | ||
4515 | for (b_size = 0; b_size <= t->str.len + 1; ++b_size) | ||
4516 | { | ||
4517 | /* fill buffer with pseudo-random values */ | ||
4518 | memset (buf, '#', sizeof(buf)); | ||
4519 | |||
4520 | rs = MHD_uint8_to_str_pad (t->val, pad, buf, b_size); | ||
4521 | |||
4522 | if (t->num_of_digt > b_size) | ||
4523 | { | ||
4524 | /* Must fail, buffer is too small for result */ | ||
4525 | if (0 != rs) | ||
4526 | { | ||
4527 | t_failed++; | ||
4528 | fprintf (stderr, | ||
4529 | "FAILED: MHD_uint8_to_str_pad(%" PRIu64 ", %d, -> buf," | ||
4530 | " %d) returned %" PRIuPTR | ||
4531 | ", while expecting 0.\n", t->val, (int) pad, (int) b_size, | ||
4532 | (intptr_t) rs); | ||
4533 | } | ||
4534 | } | ||
4535 | else | ||
4536 | { | ||
4537 | if (t->num_of_digt != rs) | ||
4538 | { | ||
4539 | t_failed++; | ||
4540 | fprintf (stderr, | ||
4541 | "FAILED: MHD_uint8_to_str_pad(%" PRIu64 ", %d, -> buf," | ||
4542 | " %d) returned %" PRIuPTR | ||
4543 | ", while expecting %d.\n", t->val, (int) pad, | ||
4544 | (int) b_size, (intptr_t) rs, (int) t->num_of_digt); | ||
4545 | } | ||
4546 | else if (0 != memcmp (buf, t->str.str, t->num_of_digt)) | ||
4547 | { | ||
4548 | t_failed++; | ||
4549 | fprintf (stderr, | ||
4550 | "FAILED: MHD_uint8_to_str_pad(%" PRIu64 ", %d, " | ||
4551 | "-> \"%.*s\", %d) returned %" PRIuPTR ".\n", | ||
4552 | t->val, (int) pad, (int) rs, buf, | ||
4553 | (int) b_size, (intptr_t) rs); | ||
4554 | } | ||
4555 | else if (0 != memcmp (buf + rs, "########", sizeof(buf) - rs)) | ||
4556 | { | ||
4557 | t_failed++; | ||
4558 | fprintf (stderr, | ||
4559 | "FAILED: MHD_uint8_to_str_pad(%" PRIu64 ", %d," | ||
4560 | " -> \"%.*s\", %d) returned %" PRIuPTR | ||
4561 | " and touched data after the resulting string.\n", | ||
4562 | t->val, (int) pad, (int) rs, buf, (int) b_size, | ||
4563 | (intptr_t) rs); | ||
4564 | } | ||
4565 | } | ||
4566 | } | ||
4567 | } | ||
4568 | } | ||
4569 | if ((verbose > 1) && (0 == t_failed)) | ||
4570 | printf ("PASSED: MHD_uint8_to_str_pad.\n"); | ||
4571 | |||
4572 | return t_failed; | ||
4573 | } | ||
4574 | |||
4575 | |||
3688 | int | 4576 | int |
3689 | run_str_from_X_tests (void) | 4577 | run_str_from_X_tests (void) |
3690 | { | 4578 | { |
3691 | int str_from_uint16; | 4579 | int str_from_uint16; |
3692 | int str_from_uint64; | 4580 | int str_from_uint64; |
3693 | int strx_from_uint32; | 4581 | int strx_from_uint32; |
4582 | int str_from_uint8_pad; | ||
3694 | int failures; | 4583 | int failures; |
3695 | 4584 | ||
3696 | failures = 0; | 4585 | failures = 0; |
@@ -3728,7 +4617,6 @@ run_str_from_X_tests (void) | |||
3728 | else if (verbose > 1) | 4617 | else if (verbose > 1) |
3729 | printf ( | 4618 | printf ( |
3730 | "PASSED: testcase check_str_from_uint16() successfully passed.\n\n"); | 4619 | "PASSED: testcase check_str_from_uint16() successfully passed.\n\n"); |
3731 | |||
3732 | strx_from_uint32 = check_strx_from_uint32 (); | 4620 | strx_from_uint32 = check_strx_from_uint32 (); |
3733 | if (strx_from_uint32 != 0) | 4621 | if (strx_from_uint32 != 0) |
3734 | { | 4622 | { |
@@ -3746,6 +4634,23 @@ run_str_from_X_tests (void) | |||
3746 | printf ( | 4634 | printf ( |
3747 | "PASSED: testcase check_strx_from_uint32() successfully passed.\n\n"); | 4635 | "PASSED: testcase check_strx_from_uint32() successfully passed.\n\n"); |
3748 | 4636 | ||
4637 | str_from_uint8_pad = check_str_from_uint8_pad (); | ||
4638 | if (str_from_uint8_pad != 0) | ||
4639 | { | ||
4640 | if (str_from_uint8_pad < 0) | ||
4641 | { | ||
4642 | fprintf (stderr, | ||
4643 | "ERROR: test internal error in check_str_from_uint8_pad().\n"); | ||
4644 | return 99; | ||
4645 | } | ||
4646 | fprintf (stderr, | ||
4647 | "FAILED: testcase check_str_from_uint8_pad() failed.\n\n"); | ||
4648 | failures += str_from_uint8_pad; | ||
4649 | } | ||
4650 | else if (verbose > 1) | ||
4651 | printf ( | ||
4652 | "PASSED: testcase check_str_from_uint8_pad() successfully passed.\n\n"); | ||
4653 | |||
3749 | if (failures) | 4654 | if (failures) |
3750 | { | 4655 | { |
3751 | if (verbose > 0) | 4656 | if (verbose > 0) |