diff options
-rwxr-xr-x | tool/file2lastrev.rb | 3 | ||||
-rw-r--r-- | tool/vcs.rb | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/tool/file2lastrev.rb b/tool/file2lastrev.rb index 8a72bd3786..e22aa88b45 100755 --- a/tool/file2lastrev.rb +++ b/tool/file2lastrev.rb @@ -59,6 +59,9 @@ vcs = nil when :revision_h Proc.new {|last, changed, modified, branch, title| short = vcs.short_revision(last) + if /[^\x00-\x7f]/ =~ title and title.respond_to?(:force_encoding) + title = title.dup.force_encoding("US-ASCII") + end [ "#define RUBY_REVISION #{short.inspect}", ("#define RUBY_FULL_REVISION #{last.inspect}" unless short == last), diff --git a/tool/vcs.rb b/tool/vcs.rb index 56924ff8bc..6c67b9b318 100644 --- a/tool/vcs.rb +++ b/tool/vcs.rb @@ -32,6 +32,7 @@ if RUBY_VERSION < "2.0" if opts.kind_of?(Hash) dir = opts.delete(:chdir) rest.pop if opts.empty? + opts.delete(:external_encoding) end if block @@ -66,6 +67,7 @@ if RUBY_VERSION < "2.0" if opts.kind_of?(Hash) dir = opts.delete(:chdir) rest.pop if opts.empty? + opts.delete(:external_encoding) end command = command.shelljoin if Array === command @@ -384,8 +386,9 @@ class VCS COMMAND = ENV["GIT"] || 'git' def self.cmd_args(cmds, srcdir = nil) + (opts = cmds.last).kind_of?(Hash) or cmds << (opts = {}) + opts[:external_encoding] ||= "UTF-8" if srcdir and local_path?(srcdir) - (opts = cmds.last).kind_of?(Hash) or cmds << (opts = {}) opts[:chdir] ||= srcdir end cmds |