From: Jean-Philippe Lang Date: Sun, 18 Jan 2015 16:16:23 +0000 (+0000) Subject: Make sure that #scm_iconv returns a string with the target encoding (#14534). X-Git-Tag: 3.0.0~120 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9915962356ce4bb218ffce55a6120a5d72eb2d08;p=redmine.git Make sure that #scm_iconv returns a string with the target encoding (#14534). filechanges.find_by_revision_and_path fails with SQLite if arguments are not UTF-8 encoded. git-svn-id: http://svn.redmine.org/redmine/trunk@13902 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/lib/redmine/scm/adapters/abstract_adapter.rb b/lib/redmine/scm/adapters/abstract_adapter.rb index 1d10abb16..98683b015 100644 --- a/lib/redmine/scm/adapters/abstract_adapter.rb +++ b/lib/redmine/scm/adapters/abstract_adapter.rb @@ -283,7 +283,7 @@ module Redmine def scm_iconv(to, from, str) return nil if str.nil? - return str if to == from + return str if to == from && str.encoding.to_s == from str.force_encoding(from) begin str.encode(to) diff --git a/test/unit/repository_cvs_test.rb b/test/unit/repository_cvs_test.rb index fc5bbb8a1..04d086306 100644 --- a/test/unit/repository_cvs_test.rb +++ b/test/unit/repository_cvs_test.rb @@ -179,6 +179,7 @@ class RepositoryCvsTest < ActiveSupport::TestCase assert_kind_of Redmine::Scm::Adapters::Entries, entries assert_equal 3, entries.size assert_equal entries[2].name, "README" + assert_equal 'UTF-8', entries[2].path.encoding.to_s assert_equal entries[2].lastrev.time, Time.gm(2007, 12, 13, 16, 27, 22) assert_equal entries[2].lastrev.identifier, '3' assert_equal entries[2].lastrev.revision, '3'