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