Alter.Org.UA  
 << Back Home EN en   Donate Donate www/www1/www2

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 основных проблемы:
  1. ограниченая длина строки (4096)
  2. использование функций, ориентирующихся на различные символы конца строки. Для чтения из файла используется 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

Mail to alterX@alter.org.ua (remove X)  
Автор: Alter (Александр А. Телятников) Сервер: Apache+PHP под FBSD © 2002-2017