number of backslashes (David Soria Parra, Pierre)
memcpy(tptr, hunk_begin, bptr - hunk_begin);
tptr += (bptr - hunk_begin);
hunk_begin = bptr;
+ if (hunk_begin != line_end) {
+ memcpy(tptr, hunk_begin, bptr - hunk_begin);
+ tptr += (bptr - hunk_begin);
+ hunk_begin = bptr;
+ }
/* add the embedded line end to the field */
memcpy(tptr, line_end, line_end_len);
--- /dev/null
+--TEST--
+bug 39538
+--FILE--
+<?php
+$content = array("\"\nthis is an test\", \"next data\", \"p\narsed\"","\"\r\nthis is an test\", \"next data\", \"p\r\narsed\"","\"\n\rthis is an test\", \"next data\", \"p\n\rarsed\"");
+
+$file = dirname(__FILE__) . "/bug39538.csv";
+@unlink($file);
+foreach ($content as $v) {
+ file_put_contents($file, $v);
+ print_r (fgetcsv(fopen($file, "r"), filesize($file)));
+}
+@unlink($file);
+--EXPECT--
+Array
+(
+ [0] =>
+this is an test
+ [1] => next data
+ [2] => p
+arsed
+)
+Array
+(
+ [0] =>
+this is an test
+ [1] => next data
+ [2] => p
+arsed
+)
+Array
+(
+ [0] =>
+
+this is an test
+ [1] => next data
+ [2] => p
+
+arsed
+)