aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Howell2009-05-22 14:02:11 +0100
committerMax Howell2009-05-22 16:23:08 +0100
commitc4608279afc59aa6418ce7ebb3369b3e6dc631fb (patch)
treefd980acfdd8add0ddd127633b64717b715376a86
parentef0f9b986e833ff9580bb434f001e9b3514bf903 (diff)
downloadbrew-c4608279afc59aa6418ce7ebb3369b3e6dc631fb.tar.bz2
More rigorous regexp escaping
-rw-r--r--Cellar/homebrew/brewkit.rb12
1 files changed, 4 insertions, 8 deletions
diff --git a/Cellar/homebrew/brewkit.rb b/Cellar/homebrew/brewkit.rb
index 0c831f9bb..87ae0de87 100644
--- a/Cellar/homebrew/brewkit.rb
+++ b/Cellar/homebrew/brewkit.rb
@@ -149,20 +149,16 @@ private
end
end
-
def inreplace(path, before, after)
- before=before.to_s
- after=after.to_s
+ before=before.to_s.gsub('"', '\"').gsub('/', '\/')
+ after=after.to_s.gsub('"', '\"').gsub('/', '\/')
- before.gsub! '"', '\"'
- after.gsub! '"', '\"'
- before.gsub! '|', '\|"'
- after.gsub! '|', '\|"'
# we're not using Ruby because the perl script is more concise
#TODO the above escapes are worse, use a proper ruby script :P
#TODO optimise it by taking before and after as arrays
#Bah, just make the script writers do it themselves with a standard collect block
- `perl -pi -e "s|#{before}|#{after}|g" "#{path}"`
+ #TODO use ed -- less to escape
+ `perl -pi -e "s/#{before}/#{after}/g" "#{path}"`
end
def system cmd