diff options
Diffstat (limited to 'lib/rubygems/installer.rb')
-rw-r--r-- | lib/rubygems/installer.rb | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/rubygems/installer.rb b/lib/rubygems/installer.rb index 74d803d7fa..31fb1209c9 100644 --- a/lib/rubygems/installer.rb +++ b/lib/rubygems/installer.rb @@ -366,7 +366,7 @@ class Gem::Installer if /\A#!/ =~ first_line then # Preserve extra words on shebang line, like "-w". Thanks RPA. - shebang = first_line.sub(/\A\#!.*?ruby\S*(?=(\s+\S+))/, "#!#{Gem.ruby}") + shebang = first_line.sub(/\A\#!.*?ruby\S*((\s+\S+)+)/, "#!#{Gem.ruby}") opts = $1 shebang.strip! # Avoid nasty ^M issues. end @@ -466,9 +466,13 @@ require 'rubygems' version = "#{Gem::Requirement.default}" -if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then - version = $1 - ARGV.shift +if ARGV.first + str = ARGV.first + str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding + if str =~ /\\A_(.*)_\\z/ + version = $1 + ARGV.shift + end end gem '#{spec.name}', version |