summaryrefslogtreecommitdiff
path: root/tool
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-06-03 12:26:23 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-06-03 12:54:33 +0900
commit3102ca4c6e0b8fa50f56a6a25d8a28c48251d1c6 (patch)
tree0a08b0353490ef8883ee12bac78ba24535c4abd7 /tool
parent17af8bfce6508951edca8650155be5525a894f65 (diff)
Default GIT external encoding to UTF-8 🤷‍♂️
And dump the title as US-ASCII.
Diffstat (limited to 'tool')
-rwxr-xr-xtool/file2lastrev.rb3
-rw-r--r--tool/vcs.rb5
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