summaryrefslogtreecommitdiff
path: root/ext/standard/file.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/file.c')
-rw-r--r--ext/standard/file.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ext/standard/file.c b/ext/standard/file.c
index f2982c388c..8853168182 100644
--- a/ext/standard/file.c
+++ b/ext/standard/file.c
@@ -1904,6 +1904,7 @@ PHP_FUNCTION(fgetcsv)
/* real enclosure */
memcpy(tptr, hunk_begin, bptr - hunk_begin - 1);
tptr += (bptr - hunk_begin - 1);
+ hunk_begin = bptr;
goto quit_loop_2;
}
memcpy(tptr, hunk_begin, bptr - hunk_begin);
@@ -1929,6 +1930,7 @@ PHP_FUNCTION(fgetcsv)
/* real enclosure */
memcpy(tptr, hunk_begin, bptr - hunk_begin - 1);
tptr += (bptr - hunk_begin - 1);
+ hunk_begin = bptr;
goto quit_loop_2;
case 1:
bptr += inc_len;
@@ -1959,7 +1961,6 @@ PHP_FUNCTION(fgetcsv)
/* break is omitted intentionally */
case 1:
if (*bptr == delimiter) {
- bptr += inc_len;
goto quit_loop_3;
}
break;
@@ -1971,6 +1972,9 @@ PHP_FUNCTION(fgetcsv)
}
quit_loop_3:
+ memcpy(tptr, hunk_begin, bptr - hunk_begin);
+ tptr += (bptr - hunk_begin);
+ bptr += inc_len;
comp_end = tptr;
} else {
/* 2B. Handle non-enclosure field */