Fossil SCM
Fix TH1 conversion of integer 0x80000000 into a string value.
Commit
7d2e4ed653a53696ac4be41ffd696bb329fda17b4585808f10c7435d3ac2a13b
Parent
8c64fa26f3f51ee…
1 file changed
+3
M
src/th.c
+3
| --- src/th.c | ||
| +++ src/th.c | ||
| @@ -2878,10 +2878,13 @@ | ||
| 2878 | 2878 | unsigned int uVal = iVal; |
| 2879 | 2879 | char zBuf[32]; |
| 2880 | 2880 | char *z = &zBuf[32]; |
| 2881 | 2881 | |
| 2882 | 2882 | if( iVal<0 ){ |
| 2883 | + if( iVal==(-2147483648) ){ | |
| 2884 | + return Th_SetResult(interp, "-2147483648", -1); | |
| 2885 | + } | |
| 2883 | 2886 | isNegative = 1; |
| 2884 | 2887 | uVal = iVal * -1; |
| 2885 | 2888 | } |
| 2886 | 2889 | *(--z) = '\0'; |
| 2887 | 2890 | *(--z) = (char)(48+(uVal%10)); |
| 2888 | 2891 |
| --- src/th.c | |
| +++ src/th.c | |
| @@ -2878,10 +2878,13 @@ | |
| 2878 | unsigned int uVal = iVal; |
| 2879 | char zBuf[32]; |
| 2880 | char *z = &zBuf[32]; |
| 2881 | |
| 2882 | if( iVal<0 ){ |
| 2883 | isNegative = 1; |
| 2884 | uVal = iVal * -1; |
| 2885 | } |
| 2886 | *(--z) = '\0'; |
| 2887 | *(--z) = (char)(48+(uVal%10)); |
| 2888 |
| --- src/th.c | |
| +++ src/th.c | |
| @@ -2878,10 +2878,13 @@ | |
| 2878 | unsigned int uVal = iVal; |
| 2879 | char zBuf[32]; |
| 2880 | char *z = &zBuf[32]; |
| 2881 | |
| 2882 | if( iVal<0 ){ |
| 2883 | if( iVal==(-2147483648) ){ |
| 2884 | return Th_SetResult(interp, "-2147483648", -1); |
| 2885 | } |
| 2886 | isNegative = 1; |
| 2887 | uVal = iVal * -1; |
| 2888 | } |
| 2889 | *(--z) = '\0'; |
| 2890 | *(--z) = (char)(48+(uVal%10)); |
| 2891 |