| | @@ -1875,24 +1875,28 @@ |
| 1875 | 1875 | int *pnStr, /* IN/OUT: Current length of *pzStr */ |
| 1876 | 1876 | const char *zElem, /* Data to append */ |
| 1877 | 1877 | int nElem /* Length of nElem */ |
| 1878 | 1878 | ){ |
| 1879 | 1879 | char *zNew; |
| 1880 | | - int nNew; |
| 1880 | + long long int nNew; |
| 1881 | + int nn; |
| 1881 | 1882 | |
| 1882 | 1883 | if( nElem<0 ){ |
| 1883 | | - nElem = th_strlen(zElem); |
| 1884 | + nn = th_strlen(zElem); |
| 1885 | + }else{ |
| 1886 | + nn = TH1_LEN(nElem); |
| 1884 | 1887 | } |
| 1885 | 1888 | |
| 1886 | | - nNew = *pnStr + nElem; |
| 1889 | + nNew = TH1_LEN(*pnStr) + nn; |
| 1890 | + TH1_SIZECHECK(nNew); |
| 1887 | 1891 | zNew = Th_Malloc(interp, nNew); |
| 1888 | 1892 | th_memcpy(zNew, *pzStr, *pnStr); |
| 1889 | | - th_memcpy(&zNew[*pnStr], zElem, nElem); |
| 1893 | + th_memcpy(&zNew[TH1_LEN(*pnStr)], zElem, nn); |
| 1890 | 1894 | |
| 1891 | 1895 | Th_Free(interp, *pzStr); |
| 1892 | 1896 | *pzStr = zNew; |
| 1893 | | - *pnStr = nNew; |
| 1897 | + *pnStr = (int)nNew; |
| 1894 | 1898 | |
| 1895 | 1899 | return TH_OK; |
| 1896 | 1900 | } |
| 1897 | 1901 | |
| 1898 | 1902 | /* |
| 1899 | 1903 | |