雑文発散

«前の日記(2016-09-23) 最新 次の日記(2016-09-25)» 編集
過去の日記

2016-09-24 [長年日記]

[Emacs] Emacs の Git HEAD が 25.2 になっていたのと国際化ドメインの処理が新しくなっていた

Homebrew で Emacs をインストールするための自分用 Fomula を最新の状態にしておこうと思って、ちょっと修正していた。

最新の Homebrew 純正(?)の emacs.rb ファイルを元に inline-patch を当てるように追記した。

もう Homebrew では、ファイルのハッシュ値チェックに sha1 を使うのは NG になっていて、sha256 でのハッシュ値に変更した。そして、Emacs HEAD のコンパイルをしてみたところ、バージョン番号が 25.2.x に書き換わっていた。こないだ 25.1 の正式リリースがあったので、変えたのだと思う。

(emacs-version)
"GNU Emacs 25.2.50.1 (x86_64-apple-darwin16.0.0, NS appkit-1504.00 Version 10.12 (Build 16A323))
 of 2016-09-24"

既に、GNU Emacs NEWS (M-x help n) には 25.2 どころか、25.3 で何が変わるかの記述も入っている。さらっとしか見てないけど、例えば、国際化ドメインへの対応とかある様子。

** International domain names (IDNA) are now encoded via the new
puny.el library, so that one can visit web sites with non-ASCII URLs.

「http://総務省.jp/」みたいな Punycode を使った URL も eww(Emacs 内蔵ブラウザ)でもアクセスできるようになるのかな?と思って試してみたけど、まだうまくいかなかった。

ちょっと調べてみたら、 http://punycode.jp/ で「総務省.jp」を変換した結果と、 (puny-encode-domain "総務省.jp") で変換した結果が違っているのが分かった。

punycode.jp で変換した結果

正規化後: 総務省.jp
Punycode: xn--lhr645fjve.jp

puny-encode-domain で変換した結果

(puny-encode-domain "総務省.jp")
"xn--lhr648ejre.jp"

puny-encode-domain の結果を punycode.jp で戻してみる

正規化後: 務??.jp
Punycode: xn--lhr648ejre.jp

「務」が入っているので、もうちょっとな気もするんだけど、何かの処理を間違えているのではなかろうか。