diff --git a/Library/Homebrew/extend/string.rb b/Library/Homebrew/extend/string.rb index 3238f97df7..a0cd4d635c 100644 --- a/Library/Homebrew/extend/string.rb +++ b/Library/Homebrew/extend/string.rb @@ -17,7 +17,8 @@ module StringInreplaceExtension # value with "new_value", or removes the definition entirely. def change_make_var! flag, new_value new_value = "#{flag}=#{new_value}" - gsub! Regexp.new("^#{flag}[ \\t]*=[ \\t]*(.*)$"), new_value + sub = gsub! Regexp.new("^#{flag}[ \\t]*=[ \\t]*(.*)$"), new_value + opoo "inreplace: changing '#{flag}' to '#{new_value}' failed" if sub.nil? end # Removes variable assignments completely. @@ -26,7 +27,8 @@ module StringInreplaceExtension flags = [flags] unless flags.kind_of? Array flags.each do |flag| # Also remove trailing \n, if present. - gsub! Regexp.new("^#{flag}[ \\t]*=(.*)$\n?"), "" + sub = gsub! Regexp.new("^#{flag}[ \\t]*=(.*)$\n?"), "" + opoo "inreplace: removing '#{flag}' failed" if sub.nil? end end diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index bb2e7dd838..6c29ba1056 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -216,7 +216,11 @@ def inreplace path, before=nil, after=nil s.extend(StringInreplaceExtension) yield s else - s.gsub!(before, after) + sub = s.gsub!(before, after) + if sub.nil? + opoo "inreplace in '#{path}' failed" + puts "Expected replacement of '#{before}' with '#{after}'" + end end f.reopen(path, 'w').write(s)