 |
binary GNU patch for FreeBSD 4.9
patch_bin.patch.v2.rar/tgz (9.3 Kb/9.6 Kb)
патчик для GNU patch (того, который в /usr/src/gnu/usr.bin/patch). Позволяет
применять patch-files для бинарных файлов. В этом деле есть 2 основных проблемы:
- ограниченая длина строки (4096)
- использование функций, ориентирующихся на различные
символы конца строки. Для чтения из файла используется fgets(), ориентирующийся на
'\n', а при дальнейшей обработке - strxxx(), использующие '\0'.
Win32 версии GNU patch'а и diff'а нормально это обходят при совместном использовании
ключей --text --binary. Патч добавляет добавляет ключ --binary, а так же
возможность задать максимальную длину
строки ключем --buffersize. Как правило, --buffersize 65536 достаточно.
При использовании --buffersize 0 включается ф-ция автоопределения длины строки.
Патч делался на основе исходников от FBSD 4.9
(patch.c - 1.4.6.3 2003/08/23 16:19:36)
Сборка и работоспособность проверялись под FBSD 4.9 и WinNT4.
patch_bin_v2.rar/tgz (42.1 Kb/44.9 Kb) -
Полные исходники поправленного patch'а.
И вот еще perl-script w2u_patch.pl.rar/tgz (512 bytes/602 bytes) для замены виндовых слэшей
в patch-файлах на unix'овые.
2004.04.12
alterX@alter.org.ua (remove X)
|
 |
|