lib/mini_magick/utilities.rb in mini_magick-3.7.0 vs lib/mini_magick/utilities.rb in mini_magick-3.8.0

- old
+ new

@@ -7,25 +7,30 @@ # # which('ruby') #=> /usr/bin/ruby def which(cmd) exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : [''] ENV['PATH'].split(File::PATH_SEPARATOR).each do |path| - exts.each { |ext| + exts.each do |ext| exe = File.join(path, "#{cmd}#{ext}") return exe if File.executable? exe - } + end end - return nil + nil end # Finds out if the host OS is windows def windows? RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/ end - def windows_escape(cmdline) - '"' + cmdline.gsub(/\\(?=\\*\")/, "\\\\\\").gsub(/\"/, "\\\"").gsub(/\\$/, "\\\\\\").gsub("%", "%%") + '"' + def windows_escape(value) + # For Windows, ^ is the escape char, equivalent to \ in Unix. + escaped = value.gsub(/\^/, '^^').gsub(/>/, '^>') + if escaped !~ /^".+"$/ && escaped.include?("'") + escaped.inspect + else + escaped + end end end end end -