Skip to content

Commit dbb5972

Browse files
committed
commit-email.rb: Use base64 instead of nkf
which makes it more obvious what it's doing.
1 parent afb21f3 commit dbb5972

2 files changed

Lines changed: 5 additions & 4 deletions

File tree

tool/commit-email.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env ruby
22

33
require "optparse"
4-
require "nkf"
4+
require "base64"
55
require "shellwords"
66

77
CommitEmailInfo = Struct.new(
@@ -207,7 +207,8 @@ def sendmail(to, from, mail)
207207
private
208208

209209
def b_encode(str)
210-
NKF.nkf('-WwM', str)
210+
base64_str = Base64.encode64(str.force_encoding('UTF-8')).strip # NKF.nkf('-WwMB', str)
211+
"=?UTF-8?B?#{base64_str}?="
211212
end
212213

213214
def make_body(info, viewer_uri:)
@@ -351,7 +352,7 @@ def make_from(name:, email:)
351352
escaped_name = name.gsub(/["\\\n]/) { |c| "\\#{c}" }
352353
%Q["#{escaped_name}" <#{email}>]
353354
else
354-
escaped_name = "=?UTF-8?B?#{NKF.nkf('-WwMB', name)}?="
355+
escaped_name = b_encode(name)
355356
%Q[#{escaped_name} <#{email}>]
356357
end
357358
end

tool/test/test_commit_email.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def setup
3030
# Just testing an exit status :p
3131
# TODO: prepare something in test/fixtures/xxx and test output
3232
def test_successful_run
33-
_, err, status = EnvUtil.invoke_ruby([gem_env, '-e', 'require "nkf"'], '', false, true)
33+
_, err, status = EnvUtil.invoke_ruby([gem_env, '-e', 'require "base64"'], '', false, true)
3434
unless status.success?
3535
omit "bundled gems are not available: #{err}"
3636
end

0 commit comments

Comments
 (0)