HEX
Server: Apache
System: Linux iad1-shared-b8-33 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User: samfetchero1 (10301780)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/lib/ruby/vendor_ruby/phusion_passenger/utils/shellwords.rb
# Polyfill for the shellwords library on Ruby 1.8.5.

require 'shellwords'

if !Shellwords.respond_to?(:escape)
  Shellwords.class_eval do
    def self.escape(str)
      # An empty argument will be skipped, so return empty quotes.
      return "''" if str.empty?
      str = str.dup
      # Treat multibyte characters as is.  It is caller's responsibility
      # to encode the string in the right encoding for the shell
      # environment.
      str.gsub!(/([^A-Za-z0-9_\-.,:\/@\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
  end
end

if !Shellwords.respond_to?(:join)
  Shellwords.class_eval do
    def self.join(array)
      array.map { |arg| escape(arg) }.join(' ')
    end
  end
end