1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

DtHelp: Fix a multibyte character parsing issue.

This commit is contained in:
Liang Chang 2021-05-17 01:07:55 +08:00
parent 5cdaa6ec31
commit 6a26b02606

View file

@ -7272,25 +7272,22 @@ Cdata(
/*
* must finish up the character
*/
int len = i + 1;
int len = 0;
myLen = strlen(string);
while (curLen < 0 && len - i < multiLen)
{
if (myLen <= len)
{
string = (char *) realloc(string, myLen + multiLen + 1);
if (string == NULL)
return -1;
myLen += multiLen;
}
string = (char *) realloc(string, myLen + multiLen + 1);
if (string == NULL) return -1;
string[len] = BufFileGet(my_struct->my_file);
if (string[len++] == BUFFILEEOF)
return -1;
while (curLen < 0 && len < multiLen) {
string[myLen] = BufFileGet(my_struct->my_file);
string[len] = '\0';
curLen = mblen (&string[i], multiLen);
}
if (string[myLen] == BUFFILEEOF) return -1;
string[myLen + 1] = '\0';
curLen = mblen(&string[i], multiLen);
++len;
++myLen;
}
if (curLen < 0)
return -1;