diff options
| author | Max Howell | 2009-05-22 14:02:11 +0100 |
|---|---|---|
| committer | Max Howell | 2009-05-22 16:23:08 +0100 |
| commit | c4608279afc59aa6418ce7ebb3369b3e6dc631fb (patch) | |
| tree | fd980acfdd8add0ddd127633b64717b715376a86 | |
| parent | ef0f9b986e833ff9580bb434f001e9b3514bf903 (diff) | |
| download | brew-c4608279afc59aa6418ce7ebb3369b3e6dc631fb.tar.bz2 | |
More rigorous regexp escaping
| -rw-r--r-- | Cellar/homebrew/brewkit.rb | 12 |
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 |
