View Single Post
Bara
AlliedModders Donor
Join Date: Apr 2012
Location: Germany
Old 06-27-2019 , 14:18   Re: [EXTENSION] bzip2 Compression v0.0.2 (2011-12-29)
Reply With Quote #24

Code:
#if defined _bzip2_included
 #endinput
#endif
#define _bzip2_included

enum BZ_Error {
    BZ_OK                = 0,
    BZ_RUN_OK            = 1,
    BZ_FLUSH_OK          = 2,
    BZ_FINISH_OK         = 3,
    BZ_STREAM_END        = 4,
    BZ_SEQUENCE_ERROR    = -1,
    BZ_PARAM_ERROR       = -2,
    BZ_MEM_ERROR         = -3,
    BZ_DATA_ERROR        = -4,
    BZ_DATA_ERROR_MAGIC  = -5,
    BZ_IO_ERROR          = -6,
    BZ_UNEXPECTED_EOF    = -7,
    BZ_OUTBUFF_FULL      = -8,
    BZ_CONFIG_ERROR      = -9,
    BZ_IO_ERROR_INPUT    = -101,
    BZ_IO_ERROR_OUTPUT   = -102,
}

typeset BZ2Callback {
  function int (BZ_Error iError, char[] inFile, char[] outFile, any data);
};

native void BZ2_DecompressFile(char[] inFile, char[] outFile, BZ2Callback cb, any data = 0);
native void BZ2_CompressFile(char[] inFile, char[] outFile, int iCompressionLevel, BZ2Callback cb, any data = 0);

stock void BZ2_Error(BZ_Error iError, char[] sError, int iErrorStringLength) {
    switch(iError) {
        case BZ_OK: strcopy(sError, iErrorStringLength, "BZ_OK");
        case BZ_RUN_OK: strcopy(sError, iErrorStringLength, "BZ_RUN_OK");
        case BZ_FLUSH_OK: strcopy(sError, iErrorStringLength, "BZ_FLUSH_OK");
        case BZ_FINISH_OK: strcopy(sError, iErrorStringLength, "BZ_FINISH_OK");
        case BZ_STREAM_END: strcopy(sError, iErrorStringLength, "BZ_STREAM_END");
        case BZ_SEQUENCE_ERROR: strcopy(sError, iErrorStringLength, "BZ_SEQUENCE_ERROR");
        case BZ_PARAM_ERROR: strcopy(sError, iErrorStringLength, "BZ_PARAM_ERROR");
        case BZ_MEM_ERROR: strcopy(sError, iErrorStringLength, "BZ_MEM_ERROR");
        case BZ_DATA_ERROR: strcopy(sError, iErrorStringLength, "BZ_DATA_ERROR");
        case BZ_DATA_ERROR_MAGIC: strcopy(sError, iErrorStringLength, "BZ_DATA_ERROR_MAGIC");
        case BZ_IO_ERROR: strcopy(sError, iErrorStringLength, "BZ_IO_ERROR");
        case BZ_UNEXPECTED_EOF: strcopy(sError, iErrorStringLength, "BZ_UNEXPECTED_EOF");
        case BZ_OUTBUFF_FULL: strcopy(sError, iErrorStringLength, "BZ_OUTBUFF_FULL");
        case BZ_CONFIG_ERROR: strcopy(sError, iErrorStringLength, "BZ_CONFIG_ERROR");
        case BZ_IO_ERROR_INPUT: strcopy(sError, iErrorStringLength, "BZ_IO_ERROR_INPUT");
        case BZ_IO_ERROR_OUTPUT: strcopy(sError, iErrorStringLength, "BZ_IO_ERROR_OUTPUT");
    }
}

stock void LogBZ2Error(BZ_Error iError, const char[] sSuffix = "") {
    char sError[255];
    BZ2_Error(iError, sError, sizeof(sError));
    LogError("bzip2 Error: %s %s", sError, sSuffix);
}

/**
 * Do not edit below this line!
 */
public Extension __ext_bzip2 =
{
    name = "SMbz2",
    file = "smbz2.ext",
#if defined AUTOLOAD_EXTENSIONS
    autoload = 1,
#else
    autoload = 0,
#endif
#if defined REQUIRE_EXTENSIONS
    required = 1,
#else
    required = 0,
#endif
};

#if !defined REQUIRE_EXTENSIONS
public __ext_bzip2_SetNTVOptional()
{
    MarkNativeAsOptional("BZ2_DecompressFile");
    MarkNativeAsOptional("BZ2_CompressFile");
}
#endif
__________________
Discord (Bara#5006) | My Plugins (GitHub)
You like my work? Support is not a crime.

Last edited by Bara; 06-27-2019 at 14:19.
Bara is offline