scm: Ruby 1.9 compatibility for browsing repository tree (#2664, #2274).

If repository path is not UTF-8, Ruby 1.9 shows trace.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4921 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Toshi MARUYAMA committed 2011-02-22 08:16:05 +00:00
1 parent 11e4c5c1ea
commit 1d6fbe5602
2 files changed
+18 -9

No files matched your search

+10 -3
View File
@@ -132,14 +132,21 @@ module RepositoriesHelper
# do nothing here and try the next encoding
end
end
str = replace_invalid_utf8(str)
end
def replace_invalid_utf8(str)
if str.respond_to?(:force_encoding)
str = str.encode("ASCII-8BIT", :invalid => :replace,
str.force_encoding('UTF-8')
if ! str.valid_encoding?
str = str.encode("US-ASCII", :invalid => :replace,
:undef => :replace, :replace => '?').encode("UTF-8")
end
end
str
end
def repository_field_tags(form, repository)
def repository_field_tags(form, repository)
method = repository.class.name.demodulize.underscore + "_field_tags"
send(method, form, repository) if repository.is_a?(Repository) && respond_to?(method) && method != 'repository_field_tags'
end