diff --git a/lib/redmine/wiki_formatting/macros.rb b/lib/redmine/wiki_formatting/macros.rb index 0f1a4b62d3..4dc4384569 100644 --- a/lib/redmine/wiki_formatting/macros.rb +++ b/lib/redmine/wiki_formatting/macros.rb @@ -38,7 +38,7 @@ module Redmine method_name = "macro_#{name}" unless macro_options[:parse_args] == false - args = args.split(',').map(&:strip) + args = args.split(/\s*,\s*(?=(?:[^"]*"[^"]*")*[^"]*$)/).map{|i| i.gsub(/^"(.*)"$/, '\1').gsub('""', '"')} end begin @@ -57,7 +57,7 @@ module Redmine def extract_macro_options(args, *keys) options = {} while args.last.to_s.strip =~ %r{^(.+?)\=(.+)$} && keys.include?($1.downcase.to_sym) - options[$1.downcase.to_sym] = $2 + options[$1.downcase.to_sym] = $2.gsub(/^"(.*)"$/, '\1') args.pop end return [args, options]