Fixed bug #21689 (fgetcsv suppresses some characters before a separator)

The fix is suggested by Masahiro Nakayama <masa@sfc.wide.ad.jp>

# is* functions expect their argument to be an integer in range of 0-255
This commit is contained in:
Moriyoshi Koizumi 2003-02-18 15:15:22 +00:00
parent 7240050243
commit d4e9d48b18

View file

@ -2529,7 +2529,7 @@ PHP_FUNCTION(fgetcsv)
lineEnd = emalloc(len + 1);
bptr = buf;
tptr = buf + strlen(buf) -1;
while ( isspace((int) *tptr) && (*tptr!=delimiter) && (tptr > bptr) ) tptr--;
while ( isspace((int)*(unsigned char *)tptr) && (*tptr!=delimiter) && (tptr > bptr) ) tptr--;
tptr++;
strcpy(lineEnd, tptr);
@ -2551,7 +2551,7 @@ PHP_FUNCTION(fgetcsv)
do {
/* 1. Strip any leading space */
while(isspace((int) *bptr) && (*bptr!=delimiter)) bptr++;
while(isspace((int)*(unsigned char *)bptr) && (*bptr!=delimiter)) bptr++;
/* 2. Read field, leaving bptr pointing at start of next field */
if (enclosure && *bptr == enclosure) {
bptr++; /* move on to first character in field */
@ -2600,7 +2600,7 @@ PHP_FUNCTION(fgetcsv)
temp = erealloc(temp, temp_len+1);
bptr = buf;
tptr = buf + strlen(buf) -1;
while (isspace((int) *tptr) && (*tptr!=delimiter) && (tptr > bptr))
while (isspace((int)*(unsigned char *)tptr) && (*tptr!=delimiter) && (tptr > bptr))
tptr--;
tptr++;
strcpy(lineEnd, tptr);
@ -2621,7 +2621,7 @@ PHP_FUNCTION(fgetcsv)
if (strlen(temp)) {
tptr--;
while (isspace((int)*tptr) && (*tptr!=delimiter))
while (isspace((int)*(unsigned char *)tptr) && (*tptr!=delimiter))
*tptr-- = 0; /* strip any trailing spaces */
}