summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rwxr-xr-xtool/mkconfig.rb7
2 files changed, 12 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 79f26fd65b..31ae0ffa5a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Feb 26 15:12:11 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * tool/mkconfig.rb: reconstruct comma separated list values. a
+ command line to Windows batch file is splitted not only by spaces
+ and equals sign but also by commas and semicolons.
+
Tue Feb 26 15:04:19 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* configure.in (unexpand_shvar): get rid of non-portable shell
diff --git a/tool/mkconfig.rb b/tool/mkconfig.rb
index a37aaa8330..79ba0454e3 100755
--- a/tool/mkconfig.rb
+++ b/tool/mkconfig.rb
@@ -117,7 +117,12 @@ File.foreach "config.status" do |line|
eq = win32 && vars[name] ? '<< "\n"' : '='
vars[name] = val
if name == "configure_args"
- val.gsub!(/ +(?!-)/, "=") if win32
+ if win32
+ val.gsub!(/\G(--[-a-z0-9]+)((=\S+)|(?:\s+(?!-)\S+)+)?(\s*)/) {
+ _, opt, list, arg, sep = *$~
+ "#{opt}#{arg || list && list.sub(/^\s+/, '=').tr_s(' ', ',')}#{sep}"
+ }
+ end
val.gsub!(/--with-out-ext/, "--without-ext")
end
val = val.gsub(/\$(?:\$|\{?(\w+)\}?)/) {$1 ? "$(#{$1})" : $&}.dump