lib/getopt.rb in gnn-rblibs-0.0.3 vs lib/getopt.rb in gnn-rblibs-0.0.4

- old
+ new

@@ -1,12 +1,24 @@ class GetOpt - def self.escape(str, quote=true) + def self.escape(str, quote=false) str = str.to_s - return "''" if str.empty? - str = str.dup + regex = /[^A-Za-z0-9_\-.,:\/@\n]/n - str.gsub!(/([^A-Za-z0-9_\-.,:\/@\n])/n, "\\\\\\1") - str.gsub!(/\n/, "'\n'") + if quote # use quote + return str unless str.match(regex) + str = str.dup + quote + + str.gsub!(/\\/, '\\\\') + str.gsub!(/\"/, '\\\"') + str = '"'+str+'"' + else # use backslash + return "''" if str.empty? + str = str.dup + + str.gsub!(regex, '\\\\\\&') + str.gsub!(/\n/, "'\n'") + end return str end attr_accessor :args, :parsed, :rest, :parser