summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-07-01 02:05:16 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-07-01 02:05:16 +0000
commitba87ab3a7e05e157ef7d29c9f6dc1e40e1f087d2 (patch)
tree6bbd8022b03b21e9c48b2176e44fe4f39f3ad1de /lib
parenta1a68a5810f8c8fc42f908074b5bbb1fcee62c83 (diff)
merges r28431 and r28432 from trunk into ruby_1_9_2.
-- * lib/csv.rb: Fixing a bug that prevented CSV from parsing all multi-line fields correctly. Patch by Rob Biedenham. -- Fixing a spelling error. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_2@28501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/csv.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/csv.rb b/lib/csv.rb
index d3a295b3a8..8685e3d658 100644
--- a/lib/csv.rb
+++ b/lib/csv.rb
@@ -198,7 +198,7 @@ require "stringio"
#
class CSV
# The version of the installed library.
- VERSION = "2.4.6".freeze
+ VERSION = "2.4.7".freeze
#
# A CSV::Row is part Array and part Hash. It retains an order for the fields
@@ -1843,7 +1843,13 @@ class CSV
end
parts = parse.split(@col_sep, -1)
- csv << nil if parts.empty?
+ if parts.empty?
+ if in_extended_col
+ csv[-1] << @col_sep # will be replaced with a @row_sep after the parts.each loop
+ else
+ csv << nil
+ end
+ end
# This loop is the hot path of csv parsing. Some things may be non-dry
# for a reason. Make sure to benchmark when refactoring.