diff options
author | Joakim Antman <[email protected]> | 2021-10-03 22:10:48 +0300 |
---|---|---|
committer | Sutou Kouhei <[email protected]> | 2021-10-24 05:57:33 +0900 |
commit | 7f3dd601c895354c041988251a0be05a8a423664 (patch) | |
tree | bfe09f2aa1818fc07aeeb54c24aa55078865d47c /lib/csv | |
parent | 39ecdabe67d1bc7c864ada6f282590dbc9d3a14e (diff) |
[ruby/csv] Changed line ending handling to consider the combination \r\n as a single entry when row is faulty (https://github.com/ruby/csv/pull/220)
https://github.com/ruby/csv/commit/29cef9ea9d
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/5010
Diffstat (limited to 'lib/csv')
-rw-r--r-- | lib/csv/parser.rb | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/csv/parser.rb b/lib/csv/parser.rb index 2fb3b0a46e..d0b02a6423 100644 --- a/lib/csv/parser.rb +++ b/lib/csv/parser.rb @@ -526,7 +526,7 @@ class CSV @cr = "\r".encode(@encoding) @lf = "\n".encode(@encoding) - @cr_or_lf = Regexp.new("[\r\n]".encode(@encoding)) + @line_end = Regexp.new("\r\n|\n|\r".encode(@encoding)) @not_line_end = Regexp.new("[^\r\n]+".encode(@encoding)) end @@ -914,7 +914,7 @@ class CSV message = "Any value after quoted field isn't allowed" raise MalformedCSVError.new(message, @lineno) elsif @unquoted_column_value and - (new_line = @scanner.scan(@cr_or_lf)) + (new_line = @scanner.scan(@line_end)) ignore_broken_line message = "Unquoted fields do not allow new line " + "<#{new_line.inspect}>" @@ -923,7 +923,7 @@ class CSV ignore_broken_line message = "Illegal quoting" raise MalformedCSVError.new(message, @lineno) - elsif (new_line = @scanner.scan(@cr_or_lf)) + elsif (new_line = @scanner.scan(@line_end)) ignore_broken_line message = "New line must be <#{@row_separator.inspect}> " + "not <#{new_line.inspect}>" @@ -1089,7 +1089,7 @@ class CSV def ignore_broken_line @scanner.scan_all(@not_line_end) - @scanner.scan_all(@cr_or_lf) + @scanner.scan_all(@line_end) @lineno += 1 end |