From 1c4c3194e65440808e015ecea281539efb17e1b5 Mon Sep 17 00:00:00 2001 From: Cthulhux Date: Wed, 29 Nov 2023 21:40:51 +0100 Subject: [PATCH] got rid of rc_quote The only "special" case about `rc` quoting is that strings that contain apostrophes need to contain double apostrophes instead. It seems unlikely that this will happen in Homebrew. --- Library/Homebrew/utils/shell.rb | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/Library/Homebrew/utils/shell.rb b/Library/Homebrew/utils/shell.rb index bc7257c993..1f5e3844f9 100644 --- a/Library/Homebrew/utils/shell.rb +++ b/Library/Homebrew/utils/shell.rb @@ -43,7 +43,7 @@ module Utils # and a literal \ can be included via \\ "set -gx #{key} \"#{sh_quote(value)}\"" when :rc - "#{key}=(#{rc_quote(value)})" + "#{key}=(#{sh_quote(value)})" when :csh, :tcsh "setenv #{key} #{csh_quote(value)};" end @@ -86,7 +86,7 @@ module Utils when :bash, :ksh, :mksh, :sh, :zsh, nil "echo 'export PATH=\"#{sh_quote(path)}:$PATH\"' >> #{profile}" when :rc - "echo 'path=(#{rc_quote(path)} $path)' >> #{profile}" + "echo 'path=(#{sh_quote(path)} $path)' >> #{profile}" when :csh, :tcsh "echo 'setenv PATH #{csh_quote(path)}:$PATH' >> #{profile}" when :fish @@ -134,19 +134,5 @@ module Utils str.gsub!(/\n/, "'\n'") str end - - sig { params(str: String).returns(String) } - def rc_quote(str) - # ruby's implementation of shell_escape - str = str.to_s - return "''" if str.empty? - - str = str.dup - # anything that isn't a known safe character is padded - str.gsub!(UNSAFE_SHELL_CHAR, "\\\\" + "\\1") # rubocop:disable Style/StringConcatenation - str.gsub!(/'/, "''") - str.gsub!(/\n/, "'\n'") - str - end end end