Avoid non-portable long long constants.

This commit is contained in:
Alexandre Julliard 2003-08-06 22:09:11 +00:00
parent f93256a56c
commit d7fca891e9
4 changed files with 147 additions and 139 deletions

View File

@ -51,6 +51,7 @@ static void InitFunctionPtrs()
} /* if */
}
#define ULL(a,b) (((ULONGLONG)(a) << 32) | (b))
typedef struct {
LONGLONG a;
@ -60,48 +61,48 @@ typedef struct {
} magic_divide_t;
static const magic_divide_t magic_divide[] = {
{ 3, 0x5555555555555555U, 0, 0}, /* 1 */
{ 333333333, 0x5555555555555555U, 0, 111111110}, /* 111111111 */
{ 0x7fffffffffffffff, 0x5555555555555555U, 0, 0x2aaaaaaaaaaaaaaa},
{ 3, 0xaaaaaaaaaaaaaaaaU, 1, 0}, /* 1 */
{ 333333333, 0xaaaaaaaaaaaaaaaaU, 1, 111111110}, /* 111111111 */
{ 0x7fffffffffffffff, 0xaaaaaaaaaaaaaaaaU, 1, 0x2aaaaaaaaaaaaaaa},
{ -3, 0x5555555555555555U, 0, 0}, /* -1 */
{ -333333333, 0x5555555555555555U, 0, -111111110}, /* -111111111 */
{-0x7fffffffffffffff, 0x5555555555555555U, 0, -0x2aaaaaaaaaaaaaaa},
{ -3, 0xaaaaaaaaaaaaaaaaU, 1, 0}, /* -1 */
{ -333333333, 0xaaaaaaaaaaaaaaaaU, 1, -111111110}, /* -111111111 */
{-0x7fffffffffffffff, 0xaaaaaaaaaaaaaaaaU, 1, -0x2aaaaaaaaaaaaaaa},
{ -3, -0x5555555555555555U, 0, -2}, /* -1 */
{ -333333333, -0x5555555555555555U, 0, -222222222}, /* -111111111 */
{-0x7fffffffffffffff, -0x5555555555555555U, 0, -0x5555555555555554},
{ -3, -0xaaaaaaaaaaaaaaaaU, 1, 0}, /* -1 */
{ -333333333, -0xaaaaaaaaaaaaaaaaU, 1, -55555555}, /* -111111111 */
{-0x7fffffffffffffff, -0xaaaaaaaaaaaaaaaaU, 1, -0x1555555555555555},
{ 3, -0x5555555555555555U, 0, 2}, /* -1 */
{ 333333333, -0x5555555555555555U, 0, 222222222}, /* -111111111 */
{ 0x7fffffffffffffff, -0x5555555555555555U, 0, 0x5555555555555554},
{ 3, -0xaaaaaaaaaaaaaaaaU, 1, 0}, /* -1 */
{ 333333333, -0xaaaaaaaaaaaaaaaaU, 1, 55555555}, /* -111111111 */
{ 0x7fffffffffffffff, -0xaaaaaaaaaaaaaaaaU, 1, 0x1555555555555555},
{ 3, 12297829382473033728U, 1, 0}, /* 1 */
{ 333333333, 12297829382473033728U, 1, 111111110}, /* 111111111 */
{ 0x7fffffffffffffff, 12297829382473033728U, 1, 0x2aaaaaaaaaaaa9ff}, /* 0x2aaaaaaaaaaaaaaa */
{ 5, 3689348814741910527U, 0, 1},
{ 555555555, 3689348814741910527U, 0, 111111111},
{ 0x7fffffffffffffff, 3689348814741910527U, 0, 0x19999999999999ff}, /* 0x199999999999999a */
{ 5, 7378697629483821054U, 1, 1},
{ 555555555, 7378697629483821054U, 1, 111111111},
{ 0x7fffffffffffffff, 7378697629483821054U, 1, 0x19999999999999ff}, /* 0x199999999999999a */
{ 5, 14757395258967642109U, 2, 1},
{ 555555555, 14757395258967642109U, 2, 111111111},
{ 0x7fffffffffffffff, 14757395258967642109U, 2, 0x19999999999999ff}, /* 0x199999999999999a */
{ 0xaddcafeface, 0x2f1e28fd1b5ccaU, 33, 1},
{ 0x81ac1b9c2310a80, 0x2f1e28fd1b5ccaU, 33, 0xbeef},
{ 0x74ae3b5f1558c800, 0x2f1e28fd1b5ccaU, 33, 0xabcde},
{ 0xaddcafeface, 0x2f1e28fd1b5cca00U, 41, 1},
{ 0x81ac1b9c2310a80, 0x2f1e28fd1b5cca00U, 41, 0xbeef},
{ 0x74ae3b5f1558c800, 0x2f1e28fd1b5cca00U, 41, 0xabcde},
{ 3, ULL(0x55555555,0x55555555), 0, 0}, /* 1 */
{ 333333333, ULL(0x55555555,0x55555555), 0, 111111110}, /* 111111111 */
{ ULL(0x7fffffff,0xffffffff), ULL(0x55555555,0x55555555), 0, ULL(0x2aaaaaaa,0xaaaaaaaa)},
{ 3, ULL(0xaaaaaaaa,0xaaaaaaaa), 1, 0}, /* 1 */
{ 333333333, ULL(0xaaaaaaaa,0xaaaaaaaa), 1, 111111110}, /* 111111111 */
{ ULL(0x7fffffff,0xffffffff), ULL(0xaaaaaaaa,0xaaaaaaaa), 1, ULL(0x2aaaaaaa,0xaaaaaaaa)},
{ -3, ULL(0x55555555,0x55555555), 0, 0}, /* -1 */
{ -333333333, ULL(0x55555555,0x55555555), 0, -111111110}, /* -111111111 */
{-ULL(0x7fffffff,0xffffffff), ULL(0x55555555,0x55555555), 0, -ULL(0x2aaaaaaa,0xaaaaaaaa)},
{ -3, ULL(0xaaaaaaaa,0xaaaaaaaa), 1, 0}, /* -1 */
{ -333333333, ULL(0xaaaaaaaa,0xaaaaaaaa), 1, -111111110}, /* -111111111 */
{-ULL(0x7fffffff,0xffffffff), ULL(0xaaaaaaaa,0xaaaaaaaa), 1, -ULL(0x2aaaaaaa,0xaaaaaaaa)},
{ -3, -ULL(0x55555555,0x55555555), 0, -2}, /* -1 */
{ -333333333, -ULL(0x55555555,0x55555555), 0, -222222222}, /* -111111111 */
{-ULL(0x7fffffff,0xffffffff), -ULL(0x55555555,0x55555555), 0, -ULL(0x55555555,0x55555554)},
{ -3, -ULL(0xaaaaaaaa,0xaaaaaaaa), 1, 0}, /* -1 */
{ -333333333, -ULL(0xaaaaaaaa,0xaaaaaaaa), 1, -55555555}, /* -111111111 */
{-ULL(0x7fffffff,0xffffffff), -ULL(0xaaaaaaaa,0xaaaaaaaa), 1, -ULL(0x15555555,0x55555555)},
{ 3, -ULL(0x55555555,0x55555555), 0, 2}, /* -1 */
{ 333333333, -ULL(0x55555555,0x55555555), 0, 222222222}, /* -111111111 */
{ ULL(0x7fffffff,0xffffffff), -ULL(0x55555555,0x55555555), 0, ULL(0x55555555,0x55555554)},
{ 3, -ULL(0xaaaaaaaa,0xaaaaaaaa), 1, 0}, /* -1 */
{ 333333333, -ULL(0xaaaaaaaa,0xaaaaaaaa), 1, 55555555}, /* -111111111 */
{ ULL(0x7fffffff,0xffffffff), -ULL(0xaaaaaaaa,0xaaaaaaaa), 1, ULL(0x15555555,0x55555555)},
{ 3, ULL(0xaaaaaaaa,0xaaaaa800), 1, 0}, /* 1 */
{ 333333333, ULL(0xaaaaaaaa,0xaaaaa800), 1, 111111110}, /* 111111111 */
{ ULL(0x7fffffff,0xffffffff), ULL(0xaaaaaaaa,0xaaaaa800), 1, ULL(0x2aaaaaaa,0xaaaaa9ff)}, /* 0x2aaaaaaaaaaaaaaa */
{ 5, ULL(0x33333333,0x333333ff), 0, 1},
{ 555555555, ULL(0x33333333,0x333333ff), 0, 111111111},
{ ULL(0x7fffffff,0xffffffff), ULL(0x33333333,0x333333ff), 0, ULL(0x19999999,0x999999ff)}, /* 0x199999999999999a */
{ 5, ULL(0x66666666,0x666667fe), 1, 1},
{ 555555555, ULL(0x66666666,0x666667fe), 1, 111111111},
{ ULL(0x7fffffff,0xffffffff), ULL(0x66666666,0x666667fe), 1, ULL(0x19999999,0x999999ff)}, /* 0x199999999999999a */
{ 5, ULL(0xcccccccc,0xcccccffd), 2, 1},
{ 555555555, ULL(0xcccccccc,0xcccccffd), 2, 111111111},
{ ULL(0x7fffffff,0xffffffff), ULL(0xcccccccc,0xcccccffd), 2, ULL(0x19999999,0x999999ff)}, /* 0x199999999999999a */
{ ULL(0x00000add,0xcafeface), ULL(0x002f1e28,0xfd1b5cca), 33, 1},
{ ULL(0x081ac1b9,0xc2310a80), ULL(0x002f1e28,0xfd1b5cca), 33, 0xbeef},
{ ULL(0x74ae3b5f,0x1558c800), ULL(0x002f1e28,0xfd1b5cca), 33, 0xabcde},
{ ULL(0x00000add,0xcafeface), ULL(0x2f1e28fd,0x1b5cca00), 41, 1},
{ ULL(0x081ac1b9,0xc2310a80), ULL(0x2f1e28fd,0x1b5cca00), 41, 0xbeef},
{ ULL(0x74ae3b5f,0x1558c800), ULL(0x2f1e28fd,0x1b5cca00), 41, 0xabcde},
};
#define NB_MAGIC_DIVIDE (sizeof(magic_divide)/sizeof(*magic_divide))
@ -161,17 +162,17 @@ static const largeint2str_t largeint2str[] = {
{ 0, 2147483649U, 10, 11, "2147483649\0--------------------------------------------------------", STATUS_SUCCESS},
{ 0, 4294967294U, 10, 11, "4294967294\0--------------------------------------------------------", STATUS_SUCCESS},
{ 0, 4294967295U, 10, 11, "4294967295\0--------------------------------------------------------", STATUS_SUCCESS},
{ 0, 12345678901U, 11, 12, "12345678901\0-------------------------------------------------------", STATUS_SUCCESS},
{ 0, 987654321012U, 12, 13, "987654321012\0------------------------------------------------------", STATUS_SUCCESS},
{ 0, 1928374656574U, 13, 14, "1928374656574\0-----------------------------------------------------", STATUS_SUCCESS},
{ 0, 0xBADCAFEFACE, 14, 15, "12841062955726\0----------------------------------------------------", STATUS_SUCCESS},
{ 0, 0x5BADCAFEFACE, 15, 16, "100801993177806\0---------------------------------------------------", STATUS_SUCCESS},
{ 0, 0xAFACEBEEFCAFE, 16, 20, "3090515640699646\0--------------------------------------------------", STATUS_SUCCESS},
{ 0, 0xA5BEEFABCDCAFE, 17, 20, "46653307746110206\0-------------------------------------------------", STATUS_SUCCESS},
{ 0, 0x1F8CF9BF2DF3AF1, 18, 20, "142091656963767025\0------------------------------------------------", STATUS_SUCCESS},
{ 0, 0xFFFFFFFFFFFFFFF, 19, 20, "1152921504606846975\0-----------------------------------------------", STATUS_SUCCESS},
{ 0, 0xFFFFFFFFFFFFFFFE, 20, 21, "18446744073709551614\0----------------------------------------------", STATUS_SUCCESS},
{ 0, 0xFFFFFFFFFFFFFFFF, 20, 21, "18446744073709551615\0----------------------------------------------", STATUS_SUCCESS},
{ 0, ULL(0x2,0xdfdc1c35), 11, 12, "12345678901\0-------------------------------------------------------", STATUS_SUCCESS},
{ 0, ULL(0xe5,0xf4c8f374), 12, 13, "987654321012\0------------------------------------------------------", STATUS_SUCCESS},
{ 0, ULL(0x1c0,0xfc161e3e), 13, 14, "1928374656574\0-----------------------------------------------------", STATUS_SUCCESS},
{ 0, ULL(0xbad,0xcafeface), 14, 15, "12841062955726\0----------------------------------------------------", STATUS_SUCCESS},
{ 0, ULL(0x5bad,0xcafeface), 15, 16, "100801993177806\0---------------------------------------------------", STATUS_SUCCESS},
{ 0, ULL(0xaface,0xbeefcafe), 16, 20, "3090515640699646\0--------------------------------------------------", STATUS_SUCCESS},
{ 0, ULL(0xa5beef,0xabcdcafe), 17, 20, "46653307746110206\0-------------------------------------------------", STATUS_SUCCESS},
{ 0, ULL(0x1f8cf9b,0xf2df3af1), 18, 20, "142091656963767025\0------------------------------------------------", STATUS_SUCCESS},
{ 0, ULL(0x0fffffff,0xffffffff), 19, 20, "1152921504606846975\0-----------------------------------------------", STATUS_SUCCESS},
{ 0, ULL(0xffffffff,0xfffffffe), 20, 21, "18446744073709551614\0----------------------------------------------", STATUS_SUCCESS},
{ 0, ULL(0xffffffff,0xffffffff), 20, 21, "18446744073709551615\0----------------------------------------------", STATUS_SUCCESS},
{ 2, 0x80000000U, 32, 33, "10000000000000000000000000000000\0----------------------------------", STATUS_SUCCESS},
/*

View File

@ -235,8 +235,8 @@ static void test_RtlUlonglongByteSwap(void)
{
ULONGLONG result;
result = pRtlUlonglongByteSwap(0x7654321087654321);
ok(0x2143658710325476 == result,
result = pRtlUlonglongByteSwap( ((ULONGLONG)0x76543210 << 32) | 0x87654321 );
ok( (((ULONGLONG)0x21436587 << 32) | 0x10325476) == result,
"RtlUlonglongByteSwap(0x7654321087654321) returns 0x%llx, expected 0x2143658710325476",
result);
}

View File

@ -433,6 +433,7 @@ static void test_ulongtow(void)
ulong2str[0].value, result);
}
#define ULL(a,b) (((ULONGLONG)(a) << 32) | (b))
typedef struct {
int base;
@ -479,16 +480,16 @@ static const ulonglong2str_t ulonglong2str[] = {
{ 2, 2147483649U, "10000000000000000000000000000001\0----------------------------------", 0x33},
{ 2, 4294967294U, "11111111111111111111111111111110\0----------------------------------", 0x33},
{ 2, 0xFFFFFFFF, "11111111111111111111111111111111\0----------------------------------", 0x33},
{ 2, 0x1FFFFFFFF, "111111111111111111111111111111111\0---------------------------------", 0x33},
{ 2, 10000000000, "1001010100000010111110010000000000\0--------------------------------", 0x33},
{ 2, 0x3FFFFFFFF, "1111111111111111111111111111111111\0--------------------------------", 0x33},
{ 2, 0x7FFFFFFFF, "11111111111111111111111111111111111\0-------------------------------", 0x33},
{ 2, 0xFFFFFFFFF, "111111111111111111111111111111111111\0------------------------------", 0x33},
{ 2, 100000000000, "1011101001000011101101110100000000000\0-----------------------------", 0x33},
{ 2, 0x1FFFFFFFFF, "1111111111111111111111111111111111111\0-----------------------------", 0x33},
{ 2, 0x3FFFFFFFFF, "11111111111111111111111111111111111111\0----------------------------", 0x33},
{ 2, 0x7FFFFFFFFF, "111111111111111111111111111111111111111\0---------------------------", 0x33},
{ 2, 0xFFFFFFFFFF, "1111111111111111111111111111111111111111\0--------------------------", 0x33},
{ 2, ULL(0x1,0xffffffff), "111111111111111111111111111111111\0---------------------------------", 0x33},
{ 2, ((ULONGLONG)100000)*100000, "1001010100000010111110010000000000\0--------------------------------", 0x33},
{ 2, ULL(0x3,0xffffffff), "1111111111111111111111111111111111\0--------------------------------", 0x33},
{ 2, ULL(0x7,0xffffffff), "11111111111111111111111111111111111\0-------------------------------", 0x33},
{ 2, ULL(0xf,0xffffffff), "111111111111111111111111111111111111\0------------------------------", 0x33},
{ 2, ((ULONGLONG)100000)*1000000, "1011101001000011101101110100000000000\0-----------------------------", 0x33},
{ 2, ULL(0x1f,0xffffffff), "1111111111111111111111111111111111111\0-----------------------------", 0x33},
{ 2, ULL(0x3f,0xffffffff), "11111111111111111111111111111111111111\0----------------------------", 0x33},
{ 2, ULL(0x7f,0xffffffff), "111111111111111111111111111111111111111\0---------------------------", 0x33},
{ 2, ULL(0xff,0xffffffff), "1111111111111111111111111111111111111111\0--------------------------", 0x33},
{ 8, 0x80000000U, "20000000000\0-------------------------------------------------------", 0x33},
{ 8, -2147483647, "1777777777760000000001\0--------------------------------------------", 0x33},
@ -529,30 +530,30 @@ static const ulonglong2str_t ulonglong2str[] = {
{10, 2147483649U, "2147483649\0--------------------------------------------------------", 0x33},
{10, 4294967294U, "4294967294\0--------------------------------------------------------", 0x33},
{10, 4294967295U, "4294967295\0--------------------------------------------------------", 0x33},
{10, 12345678901U, "12345678901\0-------------------------------------------------------", 0x33},
{10, 987654321012U, "987654321012\0------------------------------------------------------", 0x33},
{10, 1928374656574U, "1928374656574\0-----------------------------------------------------", 0x33},
{10, 0xBADCAFEFACE, "12841062955726\0----------------------------------------------------", 0x33},
{10, 0x5BADCAFEFACE, "100801993177806\0---------------------------------------------------", 0x33},
{10, 0xAFACEBEEFCAFE, "3090515640699646\0--------------------------------------------------", 0x33},
{10, 0xA5BEEFABCDCAFE, "46653307746110206\0-------------------------------------------------", 0x33},
{10, 0x1F8CF9BF2DF3AF1, "142091656963767025\0------------------------------------------------", 0x33},
{10, 0xFFFFFFFFFFFFFFF, "1152921504606846975\0-----------------------------------------------", 0x33},
{10, 0x7FFFFFFFFFFFFFFF, "9223372036854775807\0-----------------------------------------------", 0x33},
{10, 0x8000000000000000, "-9223372036854775808\0----------------------------------------------", 0x11},
{10, 0x8000000000000000, "9223372036854775808\0-----------------------------------------------", 0x22},
{10, 0x8000000000000001, "-9223372036854775807\0----------------------------------------------", 0x55},
{10, 0x8000000000000001, "-9223372036854775809\0----------------------------------------------", 0x00},
{10, 0x8000000000000001, "9223372036854775809\0-----------------------------------------------", 0x22},
{10, 0x8000000000000002, "-9223372036854775806\0----------------------------------------------", 0x55},
{10, 0x8000000000000002, "-9223372036854775810\0----------------------------------------------", 0x00},
{10, 0x8000000000000002, "9223372036854775810\0-----------------------------------------------", 0x22},
{10, 0xFFFFFFFFFFFFFFFE, "-2\0----------------------------------------------------------------", 0x55},
{10, 0xFFFFFFFFFFFFFFFE, "-18446744073709551614\0---------------------------------------------", 0x00},
{10, 0xFFFFFFFFFFFFFFFE, "18446744073709551614\0----------------------------------------------", 0x22},
{10, 0xFFFFFFFFFFFFFFFF, "-1\0----------------------------------------------------------------", 0x55},
{10, 0xFFFFFFFFFFFFFFFF, "-18446744073709551615\0---------------------------------------------", 0x00},
{10, 0xFFFFFFFFFFFFFFFF, "18446744073709551615\0----------------------------------------------", 0x22},
{10, ULL(0x2,0xdfdc1c35), "12345678901\0-------------------------------------------------------", 0x33},
{10, ULL(0xe5,0xf4c8f374), "987654321012\0------------------------------------------------------", 0x33},
{10, ULL(0x1c0,0xfc161e3e), "1928374656574\0-----------------------------------------------------", 0x33},
{10, ULL(0xbad,0xcafeface), "12841062955726\0----------------------------------------------------", 0x33},
{10, ULL(0x5bad,0xcafeface), "100801993177806\0---------------------------------------------------", 0x33},
{10, ULL(0xaface,0xbeefcafe), "3090515640699646\0--------------------------------------------------", 0x33},
{10, ULL(0xa5beef,0xabcdcafe), "46653307746110206\0-------------------------------------------------", 0x33},
{10, ULL(0x1f8cf9b,0xf2df3af1), "142091656963767025\0------------------------------------------------", 0x33},
{10, ULL(0x0fffffff,0xffffffff), "1152921504606846975\0-----------------------------------------------", 0x33},
{10, ULL(0x7fffffff,0xffffffff), "9223372036854775807\0-----------------------------------------------", 0x33},
{10, ULL(0x80000000,0x00000000), "-9223372036854775808\0----------------------------------------------", 0x11},
{10, ULL(0x80000000,0x00000000), "9223372036854775808\0-----------------------------------------------", 0x22},
{10, ULL(0x80000000,0x00000001), "-9223372036854775807\0----------------------------------------------", 0x55},
{10, ULL(0x80000000,0x00000001), "-9223372036854775809\0----------------------------------------------", 0x00},
{10, ULL(0x80000000,0x00000001), "9223372036854775809\0-----------------------------------------------", 0x22},
{10, ULL(0x80000000,0x00000002), "-9223372036854775806\0----------------------------------------------", 0x55},
{10, ULL(0x80000000,0x00000002), "-9223372036854775810\0----------------------------------------------", 0x00},
{10, ULL(0x80000000,0x00000002), "9223372036854775810\0-----------------------------------------------", 0x22},
{10, ULL(0xffffffff,0xfffffffe), "-2\0----------------------------------------------------------------", 0x55},
{10, ULL(0xffffffff,0xfffffffe), "-18446744073709551614\0---------------------------------------------", 0x00},
{10, ULL(0xffffffff,0xfffffffe), "18446744073709551614\0----------------------------------------------", 0x22},
{10, ULL(0xffffffff,0xffffffff), "-1\0----------------------------------------------------------------", 0x55},
{10, ULL(0xffffffff,0xffffffff), "-18446744073709551615\0---------------------------------------------", 0x00},
{10, ULL(0xffffffff,0xffffffff), "18446744073709551615\0----------------------------------------------", 0x22},
{16, 0, "0\0-----------------------------------------------------------------", 0x33},
{16, 1, "1\0-----------------------------------------------------------------", 0x33},
@ -562,13 +563,13 @@ static const ulonglong2str_t ulonglong2str[] = {
{16, 0x80000001, "80000001\0----------------------------------------------------------", 0x33},
{16, 0xFFFFFFFE, "fffffffe\0----------------------------------------------------------", 0x33},
{16, 0xFFFFFFFF, "ffffffff\0----------------------------------------------------------", 0x33},
{16, 0x100000000, "100000000\0---------------------------------------------------------", 0x33},
{16, 0xBADDEADBEEF, "baddeadbeef\0-------------------------------------------------------", 0x33},
{16, 0x8000000000000000, "8000000000000000\0--------------------------------------------------", 0x33},
{16, 0xFEDCBA9876543210, "fedcba9876543210\0--------------------------------------------------", 0x33},
{16, 0xFFFFFFFF80000001, "ffffffff80000001\0--------------------------------------------------", 0x33},
{16, 0xFFFFFFFFFFFFFFFE, "fffffffffffffffe\0--------------------------------------------------", 0x33},
{16, 0xFFFFFFFFFFFFFFFF, "ffffffffffffffff\0--------------------------------------------------", 0x33},
{16, ULL(0x1,0x00000000), "100000000\0---------------------------------------------------------", 0x33},
{16, ULL(0xbad,0xdeadbeef), "baddeadbeef\0-------------------------------------------------------", 0x33},
{16, ULL(0x80000000,0x00000000), "8000000000000000\0--------------------------------------------------", 0x33},
{16, ULL(0xfedcba98,0x76543210), "fedcba9876543210\0--------------------------------------------------", 0x33},
{16, ULL(0xffffffff,0x80000001), "ffffffff80000001\0--------------------------------------------------", 0x33},
{16, ULL(0xffffffff,0xfffffffe), "fffffffffffffffe\0--------------------------------------------------", 0x33},
{16, ULL(0xffffffff,0xffffffff), "ffffffffffffffff\0--------------------------------------------------", 0x33},
{ 2, 32768, "1000000000000000\0--------------------------------------------------", 0x33},
{ 2, 65536, "10000000000000000\0-------------------------------------------------", 0x33},
@ -579,7 +580,7 @@ static const ulonglong2str_t ulonglong2str[] = {
{20, 3368421, "111111\0------------------------------------------------------------", 0x33},
{36, 62193781, "111111\0------------------------------------------------------------", 0x33},
{37, 71270178, "111111\0------------------------------------------------------------", 0x33},
{99, 9606940300, "111111\0------------------------------------------------------------", 0x33},
{99, ULL(0x2,0x3c9e468c), "111111\0------------------------------------------------------------", 0x33},
};
#define NB_ULONGLONG2STR (sizeof(ulonglong2str)/sizeof(*ulonglong2str))
@ -969,33 +970,33 @@ static const str2longlong_t str2longlong[] = {
{ "00x12345", 0 },
{ "0xx12345", 0 },
{ "1x34", 1 },
{ "-99999999999999999999", -7766279631452241919 }, /* Big negative integer */
{ "-9223372036854775809", 9223372036854775807 }, /* Too small to fit in 64 bits */
{ "-9223372036854775808", 0x8000000000000000 }, /* Smallest negativ 64 bit integer */
{ "-9223372036854775807", -9223372036854775807 },
{ "-9999999999", -9999999999 },
{ "-2147483649", -2147483649LL }, /* Too small to fit in 32 bits */
{ "-2147483648", -2147483648LL }, /* Smallest 32 bits negative integer */
{ "-2147483647", -2147483647 },
{ "-1", -1 },
{ "0", 0 },
{ "1", 1 },
{ "2147483646", 2147483646 },
{ "2147483647", 2147483647 }, /* Largest signed positive 32 bit integer */
{ "2147483648", 2147483648LL }, /* Pos int equal to smallest neg 32 bit int */
{ "2147483649", 2147483649LL },
{ "4294967294", 4294967294LL },
{ "4294967295", 4294967295LL }, /* Largest unsigned 32 bit integer */
{ "4294967296", 4294967296 }, /* Too big to fit in 32 Bits */
{ "9999999999", 9999999999 },
{ "9223372036854775806", 9223372036854775806 },
{ "9223372036854775807", 9223372036854775807 }, /* Largest signed positive 64 bit integer */
{ "9223372036854775808", 9223372036854775808ULL}, /* Pos int equal to smallest neg 64 bit int */
{ "9223372036854775809", 9223372036854775809ULL},
{ "18446744073709551614", 18446744073709551614ULL},
{ "18446744073709551615", 18446744073709551615ULL}, /* Largest unsigned 64 bit integer */
{ "18446744073709551616", 0 }, /* Too big to fit in 64 bits */
{ "99999999999999999999", 7766279631452241919 }, /* Big positive integer */
{ "-99999999999999999999", -ULL(0x6bc75e2d,0x630fffff) }, /* Big negative integer */
{ "-9223372036854775809", ULL(0x7fffffff,0xffffffff) }, /* Too small to fit in 64 bits */
{ "-9223372036854775808", ULL(0x80000000,0x00000000) }, /* Smallest negative 64 bit integer */
{ "-9223372036854775807", -ULL(0x7fffffff,0xffffffff) },
{ "-9999999999", -ULL(0x00000002,0x540be3ff) },
{ "-2147483649", -ULL(0x00000000,0x80000001) }, /* Too small to fit in 32 bits */
{ "-2147483648", -ULL(0x00000000,0x80000000) }, /* Smallest 32 bits negative integer */
{ "-2147483647", -2147483647 },
{ "-1", -1 },
{ "0", 0 },
{ "1", 1 },
{ "2147483646", 2147483646 },
{ "2147483647", 2147483647 }, /* Largest signed positive 32 bit integer */
{ "2147483648", ULL(0x00000000,0x80000000) }, /* Pos int equal to smallest neg 32 bit int */
{ "2147483649", ULL(0x00000000,0x80000001) },
{ "4294967294", ULL(0x00000000,0xfffffffe) },
{ "4294967295", ULL(0x00000000,0xffffffff) }, /* Largest unsigned 32 bit integer */
{ "4294967296", ULL(0x00000001,0x00000000) }, /* Too big to fit in 32 Bits */
{ "9999999999", ULL(0x00000002,0x540be3ff) },
{ "9223372036854775806", ULL(0x7fffffff,0xfffffffe) },
{ "9223372036854775807", ULL(0x7fffffff,0xffffffff) }, /* Largest signed positive 64 bit integer */
{ "9223372036854775808", ULL(0x80000000,0x00000000) }, /* Pos int equal to smallest neg 64 bit int */
{ "9223372036854775809", ULL(0x80000000,0x00000001) },
{ "18446744073709551614", ULL(0xffffffff,0xfffffffe) },
{ "18446744073709551615", ULL(0xffffffff,0xffffffff) }, /* Largest unsigned 64 bit integer */
{ "18446744073709551616", 0 }, /* Too big to fit in 64 bits */
{ "99999999999999999999", ULL(0x6bc75e2d,0x630fffff) }, /* Big positive integer */
{ "056789", 56789 }, /* Leading zero and still decimal */
{ "b1011101100", 0 }, /* Binary (b-notation) */
{ "-b1011101100", 0 }, /* Negative Binary (b-notation) */

View File

@ -2206,23 +2206,29 @@ LPSTR WINAPI StrFormatByteSize64A(LONGLONG llBytes, LPSTR lpszDest, UINT cchMax)
static const char sz3_1[] = "%3.1f";
static const char sz3_2[] = "%3.2f";
#define KB ((ULONGLONG)1024)
#define MB (KB*KB)
#define GB (KB*KB*KB)
#define TB (KB*KB*KB*KB)
#define PB (KB*KB*KB*KB*KB)
static const SHLWAPI_BYTEFORMATS bfFormats[] =
{
{ 10240, 10.24, 100.0, sz3_2, 'K' }, /* 10 KB */
{ 102400, 102.4, 10.0, sz3_1, 'K' }, /* 100 KB */
{ 1024000, 1024.0, 1.0, sz3_0, 'K' }, /* 1000 KB */
{ 10485760, 10485.76, 100.0, sz3_2, 'M' }, /* 10 MB */
{ 104857600, 104857.6, 10.0, sz3_1, 'M' }, /* 100 MB */
{ 1048576000, 1048576.0, 1.0, sz3_0, 'M' }, /* 1000 MB */
{ 10737418240, 10737418.24, 100.0, sz3_2, 'G' }, /* 10 GB */
{ 107374182400, 107374182.4, 10.0, sz3_1, 'G' }, /* 100 GB */
{ 1073741824000, 1073741824.0, 1.0, sz3_0, 'G' }, /* 1000 GB */
{ 10995116277760, 10485.76, 100.0, sz3_2, 'T' }, /* 10 TB */
{ 109951162777600, 104857.6, 10.0, sz3_1, 'T' }, /* 100 TB */
{ 1099511627776000, 1048576.0, 1.0, sz3_0, 'T' }, /* 1000 TB */
{ 11258999068426240, 10737418.24, 100.00, sz3_2, 'P' }, /* 10 PB */
{ 112589990684262400, 107374182.4, 10.00, sz3_1, 'P' }, /* 100 PB */
{ 1125899906842624000, 1073741824.0, 1.00, sz3_0, 'P' }, /* 1000 PB */
{ 10*KB, 10.24, 100.0, sz3_2, 'K' }, /* 10 KB */
{ 100*KB, 102.4, 10.0, sz3_1, 'K' }, /* 100 KB */
{ 1000*KB, 1024.0, 1.0, sz3_0, 'K' }, /* 1000 KB */
{ 10*MB, 10485.76, 100.0, sz3_2, 'M' }, /* 10 MB */
{ 100*MB, 104857.6, 10.0, sz3_1, 'M' }, /* 100 MB */
{ 1000*MB, 1048576.0, 1.0, sz3_0, 'M' }, /* 1000 MB */
{ 10*GB, 10737418.24, 100.0, sz3_2, 'G' }, /* 10 GB */
{ 100*GB, 107374182.4, 10.0, sz3_1, 'G' }, /* 100 GB */
{ 1000*GB, 1073741824.0, 1.0, sz3_0, 'G' }, /* 1000 GB */
{ 10*TB, 10485.76, 100.0, sz3_2, 'T' }, /* 10 TB */
{ 100*TB, 104857.6, 10.0, sz3_1, 'T' }, /* 100 TB */
{ 1000*TB, 1048576.0, 1.0, sz3_0, 'T' }, /* 1000 TB */
{ 10*PB, 10737418.24, 100.00, sz3_2, 'P' }, /* 10 PB */
{ 100*PB, 107374182.4, 10.00, sz3_1, 'P' }, /* 100 PB */
{ 1000*PB, 1073741824.0, 1.00, sz3_0, 'P' }, /* 1000 PB */
{ 0, 10995116277.76, 100.00, sz3_2, 'E' } /* EB's, catch all */
};
char szBuff[32];