cvs: php-src /ext/standard file.c
| From: | Felipe Pena | Date: | Sun, 10 Feb 2008 02:13:37 +0000 |
| Subject: | cvs: php-src /ext/standard file.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-48424@lists.php.net to get a copy of this message | ||
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;