.blank_delimited = whitespace_delimited
};
+ /* Shortcut the case were there is no delimiter in input,
+ as directly outputting without parsing is 20x faster. */
+ if (field_idx == 1
+ && !suppress_non_delimited && !whitespace_delimited
+ && !field_delim_is_line_delim ()
+ && !have_pending_line
+ && field_1_n_bytes == 0
+ && !skip_line_remainder
+ && !find_bytesearch_field_delim (chunk, safe))
+ {
+ char *last_line_delim = feof (mbbuf.fp) ? chunk + safe - 1
+ : memrchr ((void *) chunk, line_delim, safe);
+ if (last_line_delim)
+ {
+ idx_t n = last_line_delim - chunk + 1;
+ write_bytes (chunk, n);
+ if (feof (mbbuf.fp) && chunk[n - 1] != line_delim)
+ write_line_delim ();
+ mbbuf_advance (&mbbuf, n);
+ if (feof (mbbuf.fp))
+ return;
+ continue;
+ }
+ }
+
while (processed < safe)
{
char *terminator = NULL;
['newline-4', '-d:', '-f1', {IN=>"a:1\nb:2"}, {OUT=>"a\nb\n"}],
['newline-5', '-d:', '-f2', {IN=>"a:1\nb:2\n"}, {OUT=>"1\n2\n"}],
['newline-6', '-d:', '-f2', {IN=>"a:1\nb:2"}, {OUT=>"1\n2\n"}],
+ ['newline-6a', '-d:', '-f2', {IN=>"a\nb"}, {OUT=>"a\nb\n"}],
['newline-7', '-s', '-d:', '-f1', {IN=>"a:1\nb:2"}, {OUT=>"a\nb\n"}],
['newline-8', '-s', '-d:', '-f1', {IN=>"a:1\nb:2\n"}, {OUT=>"a\nb\n"}],
['newline-9', '-s', '-d:', '-f1', {IN=>"a1\nb2"}, {OUT=>""}],