From 175c2e9303fe14e40a7d33c4f736ce270add6511 Mon Sep 17 00:00:00 2001 From: Shaun Jackman Date: Wed, 17 May 2017 23:55:29 -0700 Subject: [PATCH] replace_text_in_files: Regex match is greedy The regex matches the longest possible string. Order does not matter. --- Library/Homebrew/keg_relocate.rb | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/Library/Homebrew/keg_relocate.rb b/Library/Homebrew/keg_relocate.rb index 6044426ee4..a04bae7b63 100644 --- a/Library/Homebrew/keg_relocate.rb +++ b/Library/Homebrew/keg_relocate.rb @@ -68,17 +68,7 @@ class Keg relocation.old_cellar => relocation.new_cellar, relocation.old_repository => relocation.new_repository, } - - # Order matters here since `HOMEBREW_CELLAR` and `HOMEBREW_REPOSITORY` are - # children of `HOMEBREW_PREFIX` by default. - regexp = Regexp.union( - relocation.old_cellar, - relocation.old_repository, - relocation.old_prefix, - ) - - changed = s.gsub!(regexp, replacements) - + changed = s.gsub!(Regexp.union(replacements.keys), replacements) next unless changed changed_files += [first, *rest].map { |file| file.relative_path_from(path) }