GnuWin32 の patch.exe が異常終了してしまうときの対処方法を紹介します。
改行コードが LF になっていると異常終了します
入力するパッチファイルの改行コードが LF
(0x0A) になっていると以下のようなエラーメッセージが表示されて patch.exe が異常終了してしまいます。
patching file libpng-1.6.21/png.h Assertion failed: hunk, file ../patch-2.5.9-src/patch.c, line 354
This application has requested the Runtime to terminate it in an unusual way. Please contact the application’s support team for more information.
今回は libpng への APNG Patch 適用を例に 2 つの対処方法を紹介します。
方法1. パッチファイルの改行コードを変更する
改行コードを指定できるテキストエディターを使用して、 パッチファイルの改行コードを CR
+ LF
(0x0D, 0x0A) に変更しておくことで対応することができます。
方法2. 引数 –binary を指定する
patch.exe の実行時に --binary
引数を追加することで、 改行コードが LF
(0x0A) のみのパッチファイルでも異常終了せずに適用することができます。
コマンドプロンプトD:¥temp>patch.exe --binary -p 0 < libpng-1.6.21-apng.patch patching file libpng-1.6.21/png.h patching file libpng-1.6.21/pngget.c patching file libpng-1.6.21/pnginfo.h patching file libpng-1.6.21/pngpread.c patching file libpng-1.6.21/pngpriv.h patching file libpng-1.6.21/pngread.c patching file libpng-1.6.21/pngrutil.c patching file libpng-1.6.21/pngset.c patching file libpng-1.6.21/pngstruct.h patching file libpng-1.6.21/pngtest.c patching file libpng-1.6.21/pngwrite.c patching file libpng-1.6.21/pngwutil.c patching file libpng-1.6.21/scripts/symbols.def
無事にパッチ適用が完了しました。
ユーザーアカウント制御(UAC)対応の patch.exe はこちらからどうぞ
最終更新日
2024-12-12