summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--lib/rubygems/source_index.rb6
2 files changed, 5 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 7cf5e77a10..13124bee36 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -24,12 +24,6 @@ Tue Jan 18 07:53:52 2011 Tanaka Akira <akr@fsij.org>
* eval_intern.h: parenthesize macro arguments.
-Tue Jan 18 06:49:38 2011 Nobuyoshi Nakada <nobu@ruby-lang.org>
-
- * lib/rubygems/source_index.rb (Gem#load_specification): read in
- binary mode to get rid of failures caused by mismatch between
- default internal encoding and encoding comments.
-
Tue Jan 18 04:42:44 2011 Aaron Patterson <aaron@tenderlovemaking.com>
* ext/psych/lib/psych/parser.rb (Mark): Adding a class to wrap
diff --git a/lib/rubygems/source_index.rb b/lib/rubygems/source_index.rb
index 20b27733fc..4700fbbb89 100644
--- a/lib/rubygems/source_index.rb
+++ b/lib/rubygems/source_index.rb
@@ -85,7 +85,11 @@ class Gem::SourceIndex
def load_specification(file_name)
return nil unless file_name and File.exist? file_name
- spec_code = File.binread(file_name).untaint
+ spec_code = if defined? Encoding then
+ File.read file_name, :encoding => 'UTF-8'
+ else
+ File.read file_name
+ end.untaint
begin
gemspec = eval spec_code, binding, file_name