felipe Sun Feb 10 02:13:37 2008 UTC Modified files: /php-src/ext/standard file.c Log: Fixed Bug #42163 (fgetcsv() gives different output with and without Unicode) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/file.c?r1=1.508&r2=1.509&diff_format=u Index: php-src/ext/standard/file.c diff -u php-src/ext/standard/file.c:1.508 php-src/ext/standard/file.c:1.509 --- php-src/ext/standard/file.c:1.508 Sat Feb 9 19:46:49 2008 +++ php-src/ext/standard/file.c Sun Feb 10 02:13:37 2008 @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: file.c,v 1.508 2008/02/09 19:46:49 felipe Exp $ */ +/* $Id: file.c,v 1.509 2008/02/10 02:13:37 felipe Exp $ */ /* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */ @@ -2216,7 +2216,7 @@ if (len < 0) { buf.v = php_stream_get_line_ex(stream, stream->readbuf_type, NULL_ZSTR, 0, 0, &buf_len); } else { - buf.v = stream->readbuf_type == IS_UNICODE ? emalloc(UBYTES(len + 1)) : emalloc(len + 1); + buf.v = stream->readbuf_type == IS_UNICODE ? eumalloc(len + 1) : emalloc(len + 1); if (php_stream_get_line_ex(stream, stream->readbuf_type, buf, len + 1, len + 1, &buf_len) == NULL) { efree(buf.v); RETVAL_FALSE; @@ -2541,7 +2541,7 @@ if (*p == '\r' || *p == '\n') { /* Terminal delimiter, treat as empty field */ p++; - add_next_index_stringl(return_value, "", 0, 1); + add_next_index_unicodel(return_value, (UChar*)"", 0, 1); break; } @@ -2595,7 +2595,7 @@ /* Enclosure encountered, is it paired? */ if (PHP_FGETCSV_UNI_CHECK(p + enclosure_len, e, enclosure, enclosure_len)) { /* Double enclosure gets translated to single enclosure */ - memmove(p, p + enclosure_len, (e - p) - enclosure_len); + memmove(p, p + enclosure_len, UBYTES((e - p) - enclosure_len)); e -= enclosure_len; p += enclosure_len; if (p >= e) break; @@ -2672,7 +2672,7 @@ int cruft_len = p - (field_end + enclosure_len); field = eumalloc(field_len + cruft_len + 1); - memcpy(field, field_start, field_len); + memcpy(field, field_start, UBYTES(field_len)); memcpy(field + field_len, field_end + enclosure_len, UBYTES(cruft_len)); field_len += cruft_len; field[field_len] = 0;
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php