3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Homebrewは手で直せる ファイラーRangerの濁点問題の修正

Last updated at Posted at 2022-03-17

この記事の環境はMacOS Montereyです。

HomebrewにあるRangerというファイラーのソフトを使っていた時、
濁点が正しく表示されない、修正できないという問題がありました。

ranger_01.png
名称未設定フォル「タ」になってる…

調べた所、MacではUTF-8にはNFD(Normalization Form Canonical Decompression)
というのが一部で使われていて、それを使用するプログラム(この場合だとpython3)を留意無く使用すると
このように濁点、半濁点が抜けたり、別で(コンヒ゜ュータみいたいに)表示されたりするそうです。

(そのすぐ上の「できる韓国語…」がちゃんと表示されているのは、どうも作成された環境によって濁点の処理がされる時とされない時があるらしい)

さらに、rangerのGithubを調べた所、この問題は既知の問題だったらしく、
すでに修正パッチがありました。

ただし、この問題は大変悲しいことにマージされなかったようです。

image.png

描いてある感じ、「python2.7とかでも動くのかい」「他でもエラーが出ないのかい」
「それらを確認しないとマージできないよ」という感じで、多分それらを検証できなかったようです。
おそらくこのレビュアーは日本の環境を用意できなかったため、自分では検証できなかったのでしょう。
そりゃそうですよね。日本でも「A」とウムラウトつきの「Ä」に違いがどうあるかはよくわかりません。
まあ直したほうがいいかもしれないが、この修正で他の言語全てで問題が起きるかわからない。
じゃあもうマージしないでおくか、と思ったか放置されたかされたようです。

さて困った。方法は2つ。
①このブランチをプルしてこれをmake?する
②手で修正してこれをmake?する

①はできれば避けたかった。この修正は2年前のものだし、それから先にやってある新しい修正を潰すことになる。

②ですが、果たしてmakeできるかどうかもわからない。そもそもHomebrewがどうやって動いているのかわかっていませんでした。

困ってhomebrewの説明を見ていたら、このような記述が。
https://brew.sh/index_ja

image.png

Homebrewは、ただ/usr/localのCellarというところに置いてあるだけだから、
それを改変すればのかな?ということがわかりました。
RangerはPython3で書いているということがわかりました。
Python3なら普通コンパイルしませんね。

この修正の変更を見ても、pythonで書いてあることがわかりました。
https://github.com/ranger/ranger/pull/2030/files

では手作業で直してみるか…
/usr/local/Cellar/ranger を開くと、たしかにそのままファイル群があります。

書かれているとおりに手で直してみます。
image.png

これで直るのだろうか…
おっかなびっくりrangerを立ち上げてみます。

ranger_05.png

直ってる〜!!!

すべてのHomebrewが手で直せるかどうかはわかりませんが、
意外と手で直せるって事を知りました。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?