class Net::SCP

def shellescape(path)

Imported from ruby 1.9.2 shellwords.rb
def shellescape(path)
  # Convert path to a string if it isn't already one.
  str = path.to_s
  # ruby 1.8.7+ implements String#shellescape
  return str.shellescape if str.respond_to? :shellescape
  # An empty argument will be skipped, so return empty quotes.
  return "''" if str.empty?
  str = str.dup
  # Process as a single byte sequence because not all shell
  # implementations are multibyte aware.
  str.gsub!(/([^A-Za-z0-9_\-.,:\/@\n])/n, "\\\\\\1")
  # A LF cannot be escaped with a backslash because a backslash + LF
  # combo is regarded as line continuation and simply ignored.
  str.gsub!(/\n/, "'\n'")
  return str
end