mirror of
https://github.com/php/php-src.git
synced 2024-09-22 10:27:25 +00:00
Fixed Bug #42163 (fgetcsv() gives different output with and without Unicode)
This commit is contained in:
parent
d5a6647d4b
commit
c1bdb769a0
@ -2216,7 +2216,7 @@ PHP_FUNCTION(fgetcsv)
|
||||
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 @@ ready_state:
|
||||
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 @@ with_enc:
|
||||
/* 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 @@ post_enc:
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user