Browse Source

Fix Trac importer breaking on exotic characters with ruby 1.9+ (#13990).


git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11796 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/2.4.0
Jean-Baptiste Barth 11 years ago
parent
commit
b4c3bb0558
1 changed files with 5 additions and 1 deletions
  1. 5
    1
      lib/tasks/migrate_from_trac.rake

+ 5
- 1
lib/tasks/migrate_from_trac.rake View File

@@ -153,7 +153,11 @@ namespace :redmine do
private
def trac_fullpath
attachment_type = read_attribute(:type)
trac_file = filename.gsub( /[^a-zA-Z0-9\-_\.!~*']/n ) {|x| sprintf('%%%02x', x[0]) }
#replace exotic characters with their hex representation to avoid invalid filenames
trac_file = filename.gsub( /[^a-zA-Z0-9\-_\.!~*']/n ) do |x|
codepoint = RUBY_VERSION < '1.9' ? x[0] : x.codepoints.to_a[0]
sprintf('%%%02x', codepoint)
end
"#{TracMigrate.trac_attachments_directory}/#{attachment_type}/#{id}/#{trac_file}"
end
end

Loading…
Cancel
Save