diff options
author | Petr Mrázek <peterix@gmail.com> | 2013-09-26 02:58:09 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2013-09-26 02:59:56 +0200 |
commit | 2c8dc0b855c38c5204d398ad306fa9cf43be1ada (patch) | |
tree | 59429d658012a3df0e548e1a5f08100fb2930fc0 /depends/pack200/src/defines.h | |
parent | af234f35029de8c46aefecd8b9345b30ae1c51b0 (diff) | |
download | MultiMC-2c8dc0b855c38c5204d398ad306fa9cf43be1ada.tar MultiMC-2c8dc0b855c38c5204d398ad306fa9cf43be1ada.tar.gz MultiMC-2c8dc0b855c38c5204d398ad306fa9cf43be1ada.tar.lz MultiMC-2c8dc0b855c38c5204d398ad306fa9cf43be1ada.tar.xz MultiMC-2c8dc0b855c38c5204d398ad306fa9cf43be1ada.zip |
Compression algo dependencies, still need hackery...
Diffstat (limited to 'depends/pack200/src/defines.h')
-rw-r--r-- | depends/pack200/src/defines.h | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/depends/pack200/src/defines.h b/depends/pack200/src/defines.h new file mode 100644 index 00000000..63abae0a --- /dev/null +++ b/depends/pack200/src/defines.h @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +// random definitions + +#ifdef _MSC_VER +#include <windows.h> +#include <winuser.h> +#else +#include <unistd.h> +#endif + +#ifndef FULL +#define FULL 1 /* Adds <500 bytes to the zipped final product. */ +#endif + +#if FULL // define this if you want debugging and/or compile-time attributes +#define IF_FULL(x) x +#else +#define IF_FULL(x) /*x*/ +#endif + +// Error messages that we have +#define ERROR_ENOMEM "Native allocation failed" +#define ERROR_FORMAT "Corrupted pack file" +#define ERROR_RESOURCE "Cannot extract resource file" +#define ERROR_OVERFLOW "Internal buffer overflow" +#define ERROR_INTERNAL "Internal error" + +#define LOGFILE_STDOUT "-" +#define LOGFILE_STDERR "" + +#define lengthof(array) (sizeof(array) / sizeof(array[0])) + +#define NEW(T, n) (T *) must_malloc((int)(scale_size(n, sizeof(T)))) +#define U_NEW(T, n) (T *) u->alloc(scale_size(n, sizeof(T))) +#define T_NEW(T, n) (T *) u->temp_alloc(scale_size(n, sizeof(T))) + +// bytes and byte arrays + +typedef unsigned int uint; + +#ifdef _MSC_VER +typedef LONGLONG jlong; +typedef DWORDLONG julong; +#define MKDIR(dir) mkdir(dir) +#define getpid() _getpid() +#define PATH_MAX MAX_PATH +#define dup2(a, b) _dup2(a, b) +#define strcasecmp(s1, s2) _stricmp(s1, s2) +#define tempname _tempname +#define sleep Sleep +#else +typedef signed char byte; +#ifdef _LP64 +typedef long jlong; +typedef long unsigned julong; +#else +typedef long long jlong; +typedef long long unsigned julong; +#endif +#define MKDIR(dir) mkdir(dir, 0777); +#endif + +/* Must cast to void *, then size_t, then int. */ +#define ptrlowbits(x) ((int)(size_t)(void *)(x)) + +/* Back and forth from jlong to pointer */ +#define ptr2jlong(x) ((jlong)(size_t)(void *)(x)) +#define jlong2ptr(x) ((void *)(size_t)(x)) + +// Keys used by Java: +#define UNPACK_DEFLATE_HINT "unpack.deflate.hint" + +#define COM_PREFIX "com.sun.java.util.jar.pack." +#define UNPACK_MODIFICATION_TIME COM_PREFIX "unpack.modification.time" +#define DEBUG_VERBOSE COM_PREFIX "verbose" + +#define ZIP_ARCHIVE_MARKER_COMMENT "PACK200" + +// The following are not known to the Java classes: +#define UNPACK_REMOVE_PACKFILE COM_PREFIX "unpack.remove.packfile" + +// Called from unpacker layers +#define _CHECK_DO(t, x) \ + { \ + if (t) \ + { \ + x; \ + } \ + } + +#define CHECK _CHECK_DO(aborting(), return) +#define CHECK_(y) _CHECK_DO(aborting(), return y) +#define CHECK_0 _CHECK_DO(aborting(), return 0) + +#define CHECK_NULL(p) _CHECK_DO((p) == nullptr, return) +#define CHECK_NULL_(y, p) _CHECK_DO((p) == nullptr, return y) +#define CHECK_NULL_0(p) _CHECK_DO((p) == nullptr, return 0) + +#define CHECK_COUNT(t) \ + if (t < 0) \ + { \ + abort("bad value count"); \ + } \ + CHECK + +#define STR_TRUE "true" +#define STR_FALSE "false" + +#define STR_TF(x) ((x) ? STR_TRUE : STR_FALSE) +#define BOOL_TF(x) (((x) != nullptr &&strcmp((x), STR_TRUE) == 0) ? true : false) + +#define DEFAULT_ARCHIVE_MODTIME 1060000000 // Aug 04, 2003 5:26 PM PDT |