Windowsでemacsを自前コンパイルするためのパッチです。ビルド方法はBUILD.orgを参照してください。UCRT64環境でビルドします。 レジストリ登録処理削除パッチと、cmigemoパッチはお好みにより適用してください。その他のパッチは必須です。
自前でビルドしたくない場合は、msys2のパッケージリポジトリにUCRT版が準備されていますので、それをインストールするとよいでしょう。https://packages.msys2.org/package/mingw-w64-ucrt-x86_64-emacs
過去にはIME関係のパッチも置いていましたが、emacsが異常終了してしまう現象が起きるようになったため除きました。日本語入力に関しては、mozc.elからgoogle日本語入力を利用する方法に切り替えました。
addpm.exeの処理において各種パスのレジストリ登録処理を省きます。addpm.exeにはスタートメニューにemacsのショートカットを作成するといった機能があります。
emacs-26.1-rc1-cmigemo.diffと意味的に同じものです。
以下、abount patches and how to build emacs on Windows. (Japanese)からの引用です。
GNU emacs(x64)でダイナミックロード機能が独自に実装される前のcmigemo組み込み部分です。
cmigemoに関するパッチは、以下の情報由来のものです。
- about patches and how to build emacs on Windows. (Japanese)
- 日本語Windows向けのIMEパッチやcmigemoを組み込むためのパッチ情報と、Windows上でemacsをコンパイルして使うための情報が丁寧に記されています。
私はこのcmigemo組み込みパッチを好んで使っていますが、他に同rzl24ozi氏によるdynamic module版を使う方法もあります。
オリジナルのcmigemo組み込みパッチは、 cmigemoコマンドの --nonewline オプション相当の機能が実現できません。このパッチでは cmigemo-open の2つ目の引数で指定できるようにしました。 cmigemo.el についても cmigemo-open を呼び出している箇所を修正しました。 migemo-options 変数に --nonewline か -n が含まれている場合に、 cmigemo-open の2つ目の引数が t となります。ちなみにオリジナルパッチでは migemo-options 変数は参照されませんでしたが、この修正によりこの目的でのみ参照します。
--nonewline 機能は、migemoの出力結果を利用してripgrepを呼び出す場合に使います。 --nonewline を指定しない場合、migemoが出力する正規表現にripgrep非互換の表現が含まれてしまいます。この修正をすることで consult-ripgrep をmigemoと組み合わせて利用することができます。
cmigemo.el migemo-isearch-auto-enable.el はこのリポジトリのものを利用してください。
configureスクリプトで行われる、imagemagickとlibgccjitに対するチェック処理がWindowsでは正常に行われないため、それらチェック処理を省きます。
UCRT版のソースに付属するパッチです。
emacsからプロセスを起動すると、UTF-8からCP932に変換されてしまう現象を回避するパッチです。manifestファイルにUTF-8を指定することで解決します。 M-! に続けて echo '日本語' を実行した結果が文字化けする場合には、この対処をすることで回避可能です。msys2で配布されているemacsバイナリでは文字化けしてしまいます。
この辺りの事情は以下のサイトが詳しいです。
- https://ujimushisradjp.hatenablog.jp/entry/2023/12/14/003216
- https://gist.github.com/trueroad/d309d1931100634c2cd1058a0620c663
ビルド方法はBUILD.orgを参照してください。
BUILD-tree-sitter-dll.orgを参照してください。
MISC.orgにまとめました。