94 lines
4.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

////////////////////////////////////////////////////////////////////////////////
//
// ****************************************************************************
// * Project : FWZip
// * Unit Name : fwzip.inc
// * Purpose : Набор классов для распаковки ZIP архива
// * Author : Александр (Rouse_) Багель
// * Copyright : © Fangorn Wizards Lab 1998 - 2023.
// * Version : 2.0.0
// * Home Page : http://rouse.drkb.ru
// * Home Blog : http://alexander-bagel.blogspot.ru
// ****************************************************************************
// * Stable Release : http://rouse.drkb.ru/components.php#fwzip
// * Latest Source : https://github.com/AlexanderBagel/FWZip
// ****************************************************************************
//
// Используемые источники:
// ftp://ftp.info-zip.org/pub/infozip/doc/appnote-iz-latest.zip
// http://zlib.net/zlib-1.2.5.tar.gz
// http://www.base2ti.com/
//
// Данный модуль предназначен для глобального включения
// директив настройки пакета FWZip
// Если необходимо использовать ZLibEx раскоментируйте директиву ниже
// {$DEFINE USE_ZLIB_EX}
// Если необходимо использовать внешнюю библиотеку раскоментируйте директиву ниже
// {$DEFINE USE_ZLIB_DLL}
// Если необходима поддержка сжатия/распаковки по старому варианту
// c генерацией ZLib заголовка раскоментируйте директиву ниже
// Но есть нюанс - распаковка с автогенерируемым заголовком в очень редких случаях
// не сможет открыть архивы созданные при помощи 7Zip
// {$DEFINE USE_AUTOGENERATED_ZLIB_HEADER}
// Настройки только под FPC!!!
// Если необходимо использовать штатный модуль ZLib идущий в составе Lazarus
// раскоментируйте директиву ниже
// {$DEFINE USE_DEFAULT_FPC_ZLIB}
// ВНИМАНИЕ!!!
// =============================================================================
// КОД СЛЕДУЮЩИЙ НИЖЕ НЕ ПРЕДНАЗНАЧЕН ДЛЯ ИЗМЕНЕНИЯ ПРОГРАММИСТОМ И
// СОДЕРЖИТ КРИТИЧЕСКИЕ НАСТРОЙКИ ДЛЯ БИБЛИОТЕКИ FWZip
// Lazarus предлагает использовать внешнюю библиотеку
// отключаем такое поведение и включаем использование скомпиленых обьектников
{$IFDEF FPC}
{$IFNDEF USE_DEFAULT_FPC_ZLIB}
{$DEFINE USE_ZLIB_FPC}
{$ENDIF}
{$UNDEF USE_ZLIB_EX}
{$UNDEF USE_ZLIB_DLL}
{$UNDEF OLDEST_ZLIB}
{$ELSE}
// deflateInit2_ и inflateInit2_ отсутствуют в Delphi вплоть до 2009-ой
// поэтому при использовании старых версий дельфи и стандартного модуля ZLib
// необходимо отключать использование данных функций
{$IF COMPILERVERSION < 20.0 }
{$DEFINE OLDEST_ZLIB}
{$ELSE}
{$UNDEF OLDEST_ZLIB}
{$IFEND}
{$ENDIF}
// Если подключена библиотека ZLibEx, то использовать deflateInit2_ и inflateInit2_ можно
// при этом, отключаем использование внешней библиотеки
{$IFDEF USE_ZLIB_EX}
{$UNDEF OLDEST_ZLIB}
{$UNDEF USE_ZLIB_DLL}
{$ENDIF}
// Разрешаем использовать два устаревших метода компресии буферов
{$DEFINE USE_OLDEST_METHODS}
// Если подключена внешняя библиотека, то использовать deflateInit2_ и inflateInit2_ можно
{$IFDEF USE_ZLIB_DLL}
{$UNDEF OLDEST_ZLIB}
{$UNDEF USE_OLDEST_METHODS}
{$ENDIF}
// Если использовать deflateInit2_ и inflateInit2_ нельзя,
// принудительно переключаемся на старый режим работы с автогенерируемыми заголовками
{$IFDEF OLDEST_ZLIB}
{$DEFINE USE_AUTOGENERATED_ZLIB_HEADER}
{$UNDEF USE_OLDEST_METHODS}
{$ELSE}
{$UNDEF USE_AUTOGENERATED_ZLIB_HEADER}
{$ENDIF}