From d4e9d48b18c23f45fea64065845c735bc50e3896 Mon Sep 17 00:00:00 2001 From: Moriyoshi Koizumi Date: Tue, 18 Feb 2003 15:15:22 +0000 Subject: [PATCH] Fixed bug #21689 (fgetcsv suppresses some characters before a separator) The fix is suggested by Masahiro Nakayama # is* functions expect their argument to be an integer in range of 0-255 --- ext/standard/file.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ext/standard/file.c b/ext/standard/file.c index 65bd7b8e3d..fa7649b45c 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -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 */ } -- 2.50.1