diff --git a/lib/csv.rb b/lib/csv.rb index 9bb1830..dc431ed 100644 --- a/lib/csv.rb +++ b/lib/csv.rb @@ -1861,7 +1861,7 @@ def shift raise MalformedCSVError, "Missing or stray quote in line #{lineno + 1}" end - csv.last.gsub!(@quote_char * 2, @quote_char) + csv.last.gsub!(@double_quote_char, @quote_char) in_extended_col = false else csv.last << part @@ -1881,7 +1881,7 @@ def shift raise MalformedCSVError, "Missing or stray quote in line #{lineno + 1}" end - csv.last.gsub!(@quote_char * 2, @quote_char) + csv.last.gsub!(@double_quote_char, @quote_char) elsif @liberal_parsing csv << part else @@ -1999,6 +1999,7 @@ def init_separators(options) @col_sep = options.delete(:col_sep).to_s.encode(@encoding) @row_sep = options.delete(:row_sep) # encode after resolving :auto @quote_char = options.delete(:quote_char).to_s.encode(@encoding) + @double_quote_char = @quote_char * 2 if @quote_char.length != 1 raise ArgumentError, ":quote_char has to be a single character String"