summaryrefslogtreecommitdiff
path: root/games-util/dfhack/files/dfhack-0.43.05_pre20160726/02-respect-dfhack_lua_destination.patch
diff options
context:
space:
mode:
Diffstat (limited to 'games-util/dfhack/files/dfhack-0.43.05_pre20160726/02-respect-dfhack_lua_destination.patch')
-rw-r--r--games-util/dfhack/files/dfhack-0.43.05_pre20160726/02-respect-dfhack_lua_destination.patch1176
1 files changed, 1176 insertions, 0 deletions
diff --git a/games-util/dfhack/files/dfhack-0.43.05_pre20160726/02-respect-dfhack_lua_destination.patch b/games-util/dfhack/files/dfhack-0.43.05_pre20160726/02-respect-dfhack_lua_destination.patch
new file mode 100644
index 00000000..1c7c6546
--- /dev/null
+++ b/games-util/dfhack/files/dfhack-0.43.05_pre20160726/02-respect-dfhack_lua_destination.patch
@@ -0,0 +1,1176 @@
+respect DFHACK_LUA_DESTINATION
+
+From: eroen <eroen@occam.eroen.eu>
+
+
+---
+ CMakeLists.txt | 3
+ depends/lua/CMakeLists.txt | 5
+ depends/lua/include/luaconf.h | 553 --------------------------------------
+ depends/lua/include/luaconf.h.in | 553 ++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 559 insertions(+), 555 deletions(-)
+ delete mode 100644 depends/lua/include/luaconf.h
+ create mode 100644 depends/lua/include/luaconf.h.in
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9d49af4..f8b65ba 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -131,7 +131,7 @@ SET(DFHACK_PLUGIN_DESTINATION hack/plugins)
+ # dfhack header files go here:
+ SET(DFHACK_INCLUDES_DESTINATION hack/include)
+ # dfhack lua files go here:
+-SET(DFHACK_LUA_DESTINATION hack/lua)
++SET(DFHACK_LUA_DESTINATION hack/lua CACHE INTERNAL "")
+ # the windows .lib file goes here:
+ SET(DFHACK_DEVLIB_DESTINATION hack)
+
+@@ -183,6 +183,7 @@ else()
+ endif()
+ find_package(ZLIB REQUIRED)
+ include_directories(depends/protobuf)
++include_directories("${CMAKE_CURRENT_BINARY_DIR}/depends/lua/include")
+ include_directories(depends/lua/include)
+ include_directories(depends/md5)
+ include_directories(depends/jsoncpp)
+diff --git a/depends/lua/CMakeLists.txt b/depends/lua/CMakeLists.txt
+index b77bce6..3fa0859 100644
+--- a/depends/lua/CMakeLists.txt
++++ b/depends/lua/CMakeLists.txt
+@@ -15,6 +15,10 @@ IF(UNIX)
+ SET(CMAKE_C_FLAGS "-m32")
+ ENDIF()
+
++configure_file("include/luaconf.h.in" "include/luaconf.h" @ONLY)
++SET_SOURCE_FILES_PROPERTIES("${CMAKE_CURRENT_BINARY_DIR}/include" PROPERTIES HEADER_FILE_ONLY TRUE)
++include_directories("${CMAKE_CURRENT_BINARY_DIR}/include")
++
+ SET (HDR_LIBLUA
+ include/lapi.h
+ include/lauxlib.h
+@@ -35,7 +39,6 @@ include/lstring.h
+ include/ltable.h
+ include/ltm.h
+ include/lua.h
+-include/luaconf.h
+ include/lualib.h
+ include/lundump.h
+ include/lvm.h
+diff --git a/depends/lua/include/luaconf.h b/depends/lua/include/luaconf.h
+deleted file mode 100644
+index af09ffb..0000000
+--- a/depends/lua/include/luaconf.h
++++ /dev/null
+@@ -1,553 +0,0 @@
+-/*
+-** $Id: luaconf.h,v 1.176.1.1 2013/04/12 18:48:47 roberto Exp $
+-** Configuration file for Lua
+-** See Copyright Notice in lua.h
+-*/
+-
+-
+-#ifndef lconfig_h
+-#define lconfig_h
+-
+-#include <limits.h>
+-#include <stddef.h>
+-
+-
+-/*
+-** ==================================================================
+-** Search for "@@" to find all configurable definitions.
+-** ===================================================================
+-*/
+-
+-
+-/*
+-@@ LUA_ANSI controls the use of non-ansi features.
+-** CHANGE it (define it) if you want Lua to avoid the use of any
+-** non-ansi feature or library.
+-*/
+-#if !defined(LUA_ANSI) && defined(__STRICT_ANSI__)
+-#define LUA_ANSI
+-#endif
+-
+-
+-#if !defined(LUA_ANSI) && defined(_WIN32) && !defined(_WIN32_WCE)
+-#define LUA_WIN /* enable goodies for regular Windows platforms */
+-#endif
+-
+-#if defined(LUA_WIN)
+-#define LUA_DL_DLL
+-#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */
+-#endif
+-
+-
+-
+-#if defined(LUA_USE_LINUX)
+-#define LUA_USE_POSIX
+-#define LUA_USE_DLOPEN /* needs an extra library: -ldl */
+-#define LUA_USE_READLINE /* needs some extra libraries */
+-#define LUA_USE_STRTODHEX /* assume 'strtod' handles hex formats */
+-#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */
+-#define LUA_USE_LONGLONG /* assume support for long long */
+-#endif
+-
+-#if defined(LUA_USE_MACOSX)
+-#define LUA_USE_POSIX
+-#define LUA_USE_DLOPEN /* does not need -ldl */
+-#define LUA_USE_READLINE /* needs an extra library: -lreadline */
+-#define LUA_USE_STRTODHEX /* assume 'strtod' handles hex formats */
+-#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */
+-#define LUA_USE_LONGLONG /* assume support for long long */
+-#endif
+-
+-
+-
+-/*
+-@@ LUA_USE_POSIX includes all functionality listed as X/Open System
+-@* Interfaces Extension (XSI).
+-** CHANGE it (define it) if your system is XSI compatible.
+-*/
+-#if defined(LUA_USE_POSIX)
+-#define LUA_USE_MKSTEMP
+-#define LUA_USE_ISATTY
+-#define LUA_USE_POPEN
+-#define LUA_USE_ULONGJMP
+-#define LUA_USE_GMTIME_R
+-#endif
+-
+-
+-
+-/*
+-@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for
+-@* Lua libraries.
+-@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for
+-@* C libraries.
+-** CHANGE them if your machine has a non-conventional directory
+-** hierarchy or if you want to install your libraries in
+-** non-conventional directories.
+-*/
+-#if defined(_WIN32) /* { */
+-/*
+-** In Windows, any exclamation mark ('!') in the path is replaced by the
+-** path of the directory of the executable file of the current process.
+-*/
+-#define LUA_LDIR "!\\hack\\lua\\"
+-#define LUA_CDIR "!\\"
+-#define LUA_PATH_DEFAULT \
+- LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" ".\\?.lua"
+-#define LUA_CPATH_DEFAULT \
+- LUA_CDIR"?.dll;" ".\\?.dll"
+-
+-#else /* }{ */
+-
+-#define LUA_LDIR "./hack/lua/"
+-#define LUA_CDIR "./hack/"
+-#define LUA_PATH_DEFAULT \
+- LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" "./?.lua"
+-#define LUA_CPATH_DEFAULT \
+- LUA_CDIR"?.so;" "./?.so"
+-#endif /* } */
+-
+-#define LUA_PATH "DFHACK_LUA_PATH"
+-#define LUA_CPATH "DFHACK_LUA_CPATH"
+-
+-/*
+-@@ LUA_DIRSEP is the directory separator (for submodules).
+-** CHANGE it if your machine does not use "/" as the directory separator
+-** and is not Windows. (On Windows Lua automatically uses "\".)
+-*/
+-#if defined(_WIN32)
+-#define LUA_DIRSEP "\\"
+-#else
+-#define LUA_DIRSEP "/"
+-#endif
+-
+-
+-/*
+-@@ LUA_ENV is the name of the variable that holds the current
+-@@ environment, used to access global names.
+-** CHANGE it if you do not like this name.
+-*/
+-#define LUA_ENV "_ENV"
+-
+-
+-/*
+-@@ LUA_API is a mark for all core API functions.
+-@@ LUALIB_API is a mark for all auxiliary library functions.
+-@@ LUAMOD_API is a mark for all standard library opening functions.
+-** CHANGE them if you need to define those functions in some special way.
+-** For instance, if you want to create one Windows DLL with the core and
+-** the libraries, you may want to use the following definition (define
+-** LUA_BUILD_AS_DLL to get it).
+-*/
+-#if defined(LUA_BUILD_AS_DLL) /* { */
+-
+-#if defined(_MSC_VER)
+-#if defined(LUA_CORE) || defined(LUA_LIB) /* { */
+-#define LUA_API __declspec(dllexport)
+-#else /* }{ */
+-#define LUA_API __declspec(dllimport)
+-#endif /* } */
+-#else
+-#define LUA_API __attribute__ ((visibility("default")))
+-#endif
+-
+-#else /* }{ */
+-
+-#define LUA_API extern
+-
+-#endif /* } */
+-
+-
+-/* more often than not the libs go together with the core */
+-#define LUALIB_API LUA_API
+-#define LUAMOD_API LUALIB_API
+-
+-
+-/*
+-@@ LUAI_FUNC is a mark for all extern functions that are not to be
+-@* exported to outside modules.
+-@@ LUAI_DDEF and LUAI_DDEC are marks for all extern (const) variables
+-@* that are not to be exported to outside modules (LUAI_DDEF for
+-@* definitions and LUAI_DDEC for declarations).
+-** CHANGE them if you need to mark them in some special way. Elf/gcc
+-** (versions 3.2 and later) mark them as "hidden" to optimize access
+-** when Lua is compiled as a shared library. Not all elf targets support
+-** this attribute. Unfortunately, gcc does not offer a way to check
+-** whether the target offers that support, and those without support
+-** give a warning about it. To avoid these warnings, change to the
+-** default definition.
+-*/
+-#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
+- defined(__ELF__) /* { */
+-#define LUAI_FUNC __attribute__((visibility("hidden"))) extern
+-#define LUAI_DDEC LUAI_FUNC
+-#define LUAI_DDEF /* empty */
+-
+-#else /* }{ */
+-#define LUAI_FUNC extern
+-#define LUAI_DDEC extern
+-#define LUAI_DDEF /* empty */
+-#endif /* } */
+-
+-
+-
+-/*
+-@@ LUA_QL describes how error messages quote program elements.
+-** CHANGE it if you want a different appearance.
+-*/
+-#define LUA_QL(x) "'" x "'"
+-#define LUA_QS LUA_QL("%s")
+-
+-
+-/*
+-@@ LUA_IDSIZE gives the maximum size for the description of the source
+-@* of a function in debug information.
+-** CHANGE it if you want a different size.
+-*/
+-#define LUA_IDSIZE 60
+-
+-
+-/*
+-@@ luai_writestring/luai_writeline define how 'print' prints its results.
+-** They are only used in libraries and the stand-alone program. (The #if
+-** avoids including 'stdio.h' everywhere.)
+-*/
+-#if defined(LUA_LIB) || defined(lua_c)
+-#include <stdio.h>
+-#define luai_writestring(s,l) fwrite((s), sizeof(char), (l), stdout)
+-#define luai_writeline() (luai_writestring("\n", 1), fflush(stdout))
+-#endif
+-
+-/*
+-@@ luai_writestringerror defines how to print error messages.
+-** (A format string with one argument is enough for Lua...)
+-*/
+-#define luai_writestringerror(s,p) \
+- (fprintf(stderr, (s), (p)), fflush(stderr))
+-
+-
+-/*
+-@@ LUAI_MAXSHORTLEN is the maximum length for short strings, that is,
+-** strings that are internalized. (Cannot be smaller than reserved words
+-** or tags for metamethods, as these strings must be internalized;
+-** #("function") = 8, #("__newindex") = 10.)
+-*/
+-#define LUAI_MAXSHORTLEN 40
+-
+-
+-
+-/*
+-** {==================================================================
+-** Compatibility with previous versions
+-** ===================================================================
+-*/
+-
+-/*
+-@@ LUA_COMPAT_ALL controls all compatibility options.
+-** You can define it to get all options, or change specific options
+-** to fit your specific needs.
+-*/
+-#if defined(LUA_COMPAT_ALL) /* { */
+-
+-/*
+-@@ LUA_COMPAT_UNPACK controls the presence of global 'unpack'.
+-** You can replace it with 'table.unpack'.
+-*/
+-#define LUA_COMPAT_UNPACK
+-
+-/*
+-@@ LUA_COMPAT_LOADERS controls the presence of table 'package.loaders'.
+-** You can replace it with 'package.searchers'.
+-*/
+-#define LUA_COMPAT_LOADERS
+-
+-/*
+-@@ macro 'lua_cpcall' emulates deprecated function lua_cpcall.
+-** You can call your C function directly (with light C functions).
+-*/
+-#define lua_cpcall(L,f,u) \
+- (lua_pushcfunction(L, (f)), \
+- lua_pushlightuserdata(L,(u)), \
+- lua_pcall(L,1,0,0))
+-
+-
+-/*
+-@@ LUA_COMPAT_LOG10 defines the function 'log10' in the math library.
+-** You can rewrite 'log10(x)' as 'log(x, 10)'.
+-*/
+-#define LUA_COMPAT_LOG10
+-
+-/*
+-@@ LUA_COMPAT_LOADSTRING defines the function 'loadstring' in the base
+-** library. You can rewrite 'loadstring(s)' as 'load(s)'.
+-*/
+-#define LUA_COMPAT_LOADSTRING
+-
+-/*
+-@@ LUA_COMPAT_MAXN defines the function 'maxn' in the table library.
+-*/
+-#define LUA_COMPAT_MAXN
+-
+-/*
+-@@ The following macros supply trivial compatibility for some
+-** changes in the API. The macros themselves document how to
+-** change your code to avoid using them.
+-*/
+-#define lua_strlen(L,i) lua_rawlen(L, (i))
+-
+-#define lua_objlen(L,i) lua_rawlen(L, (i))
+-
+-#define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ)
+-#define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT)
+-
+-/*
+-@@ LUA_COMPAT_MODULE controls compatibility with previous
+-** module functions 'module' (Lua) and 'luaL_register' (C).
+-*/
+-#define LUA_COMPAT_MODULE
+-
+-#endif /* } */
+-
+-/* }================================================================== */
+-
+-
+-
+-/*
+-@@ LUAI_BITSINT defines the number of bits in an int.
+-** CHANGE here if Lua cannot automatically detect the number of bits of
+-** your machine. Probably you do not need to change this.
+-*/
+-/* avoid overflows in comparison */
+-#if INT_MAX-20 < 32760 /* { */
+-#define LUAI_BITSINT 16
+-#elif INT_MAX > 2147483640L /* }{ */
+-/* int has at least 32 bits */
+-#define LUAI_BITSINT 32
+-#else /* }{ */
+-#error "you must define LUA_BITSINT with number of bits in an integer"
+-#endif /* } */
+-
+-
+-/*
+-@@ LUA_INT32 is an signed integer with exactly 32 bits.
+-@@ LUAI_UMEM is an unsigned integer big enough to count the total
+-@* memory used by Lua.
+-@@ LUAI_MEM is a signed integer big enough to count the total memory
+-@* used by Lua.
+-** CHANGE here if for some weird reason the default definitions are not
+-** good enough for your machine. Probably you do not need to change
+-** this.
+-*/
+-#if LUAI_BITSINT >= 32 /* { */
+-#define LUA_INT32 int
+-#define LUAI_UMEM size_t
+-#define LUAI_MEM ptrdiff_t
+-#else /* }{ */
+-/* 16-bit ints */
+-#define LUA_INT32 long
+-#define LUAI_UMEM unsigned long
+-#define LUAI_MEM long
+-#endif /* } */
+-
+-
+-/*
+-@@ LUAI_MAXSTACK limits the size of the Lua stack.
+-** CHANGE it if you need a different limit. This limit is arbitrary;
+-** its only purpose is to stop Lua to consume unlimited stack
+-** space (and to reserve some numbers for pseudo-indices).
+-*/
+-#if LUAI_BITSINT >= 32
+-#define LUAI_MAXSTACK 1000000
+-#else
+-#define LUAI_MAXSTACK 15000
+-#endif
+-
+-/* reserve some space for error handling */
+-#define LUAI_FIRSTPSEUDOIDX (-LUAI_MAXSTACK - 1000)
+-
+-
+-
+-
+-/*
+-@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
+-** CHANGE it if it uses too much C-stack space.
+-*/
+-#define LUAL_BUFFERSIZE BUFSIZ
+-
+-
+-
+-
+-/*
+-** {==================================================================
+-@@ LUA_NUMBER is the type of numbers in Lua.
+-** CHANGE the following definitions only if you want to build Lua
+-** with a number type different from double. You may also need to
+-** change lua_number2int & lua_number2integer.
+-** ===================================================================
+-*/
+-
+-#define LUA_NUMBER_DOUBLE
+-#define LUA_NUMBER double
+-
+-/*
+-@@ LUAI_UACNUMBER is the result of an 'usual argument conversion'
+-@* over a number.
+-*/
+-#define LUAI_UACNUMBER double
+-
+-
+-/*
+-@@ LUA_NUMBER_SCAN is the format for reading numbers.
+-@@ LUA_NUMBER_FMT is the format for writing numbers.
+-@@ lua_number2str converts a number to a string.
+-@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion.
+-*/
+-#define LUA_NUMBER_SCAN "%lf"
+-#define LUA_NUMBER_FMT "%.14g"
+-#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n))
+-#define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */
+-
+-
+-/*
+-@@ l_mathop allows the addition of an 'l' or 'f' to all math operations
+-*/
+-#define l_mathop(x) (x)
+-
+-
+-/*
+-@@ lua_str2number converts a decimal numeric string to a number.
+-@@ lua_strx2number converts an hexadecimal numeric string to a number.
+-** In C99, 'strtod' does both conversions. C89, however, has no function
+-** to convert floating hexadecimal strings to numbers. For these
+-** systems, you can leave 'lua_strx2number' undefined and Lua will
+-** provide its own implementation.
+-*/
+-#define lua_str2number(s,p) strtod((s), (p))
+-
+-#if defined(LUA_USE_STRTODHEX)
+-#define lua_strx2number(s,p) strtod((s), (p))
+-#endif
+-
+-
+-/*
+-@@ The luai_num* macros define the primitive operations over numbers.
+-*/
+-
+-/* the following operations need the math library */
+-#if defined(lobject_c) || defined(lvm_c)
+-#include <math.h>
+-#define luai_nummod(L,a,b) ((a) - l_mathop(floor)((a)/(b))*(b))
+-#define luai_numpow(L,a,b) (l_mathop(pow)(a,b))
+-#endif
+-
+-/* these are quite standard operations */
+-#if defined(LUA_CORE)
+-#define luai_numadd(L,a,b) ((a)+(b))
+-#define luai_numsub(L,a,b) ((a)-(b))
+-#define luai_nummul(L,a,b) ((a)*(b))
+-#define luai_numdiv(L,a,b) ((a)/(b))
+-#define luai_numunm(L,a) (-(a))
+-#define luai_numeq(a,b) ((a)==(b))
+-#define luai_numlt(L,a,b) ((a)<(b))
+-#define luai_numle(L,a,b) ((a)<=(b))
+-#define luai_numisnan(L,a) (!luai_numeq((a), (a)))
+-#endif
+-
+-
+-
+-/*
+-@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger.
+-** CHANGE that if ptrdiff_t is not adequate on your machine. (On most
+-** machines, ptrdiff_t gives a good choice between int or long.)
+-*/
+-#define LUA_INTEGER ptrdiff_t
+-
+-/*
+-@@ LUA_UNSIGNED is the integral type used by lua_pushunsigned/lua_tounsigned.
+-** It must have at least 32 bits.
+-*/
+-#define LUA_UNSIGNED unsigned LUA_INT32
+-
+-
+-
+-/*
+-** Some tricks with doubles
+-*/
+-
+-#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) /* { */
+-/*
+-** The next definitions activate some tricks to speed up the
+-** conversion from doubles to integer types, mainly to LUA_UNSIGNED.
+-**
+-@@ LUA_MSASMTRICK uses Microsoft assembler to avoid clashes with a
+-** DirectX idiosyncrasy.
+-**
+-@@ LUA_IEEE754TRICK uses a trick that should work on any machine
+-** using IEEE754 with a 32-bit integer type.
+-**
+-@@ LUA_IEEELL extends the trick to LUA_INTEGER; should only be
+-** defined when LUA_INTEGER is a 32-bit integer.
+-**
+-@@ LUA_IEEEENDIAN is the endianness of doubles in your machine
+-** (0 for little endian, 1 for big endian); if not defined, Lua will
+-** check it dynamically for LUA_IEEE754TRICK (but not for LUA_NANTRICK).
+-**
+-@@ LUA_NANTRICK controls the use of a trick to pack all types into
+-** a single double value, using NaN values to represent non-number
+-** values. The trick only works on 32-bit machines (ints and pointers
+-** are 32-bit values) with numbers represented as IEEE 754-2008 doubles
+-** with conventional endianess (12345678 or 87654321), in CPUs that do
+-** not produce signaling NaN values (all NaNs are quiet).
+-*/
+-
+-/* Microsoft compiler on a Pentium (32 bit) ? */
+-#if defined(LUA_WIN) && defined(_MSC_VER) && defined(_M_IX86) /* { */
+-
+-#define LUA_MSASMTRICK
+-#define LUA_IEEEENDIAN 0
+-#define LUA_NANTRICK
+-
+-
+-/* pentium 32 bits? */
+-#elif defined(__i386__) || defined(__i386) || defined(__X86__) /* }{ */
+-
+-#define LUA_IEEE754TRICK
+-#define LUA_IEEELL
+-#define LUA_IEEEENDIAN 0
+-#define LUA_NANTRICK
+-
+-/* pentium 64 bits? */
+-#elif defined(__x86_64) /* }{ */
+-
+-#define LUA_IEEE754TRICK
+-#define LUA_IEEEENDIAN 0
+-
+-#elif defined(__POWERPC__) || defined(__ppc__) /* }{ */
+-
+-#define LUA_IEEE754TRICK
+-#define LUA_IEEEENDIAN 1
+-
+-#else /* }{ */
+-
+-/* assume IEEE754 and a 32-bit integer type */
+-#define LUA_IEEE754TRICK
+-
+-#endif /* } */
+-
+-#endif /* } */
+-
+-/* }================================================================== */
+-
+-
+-
+-
+-/* =================================================================== */
+-
+-/*
+-** Local configuration. You can use this space to add your redefinitions
+-** without modifying the main part of the file.
+-*/
+-
+-
+-
+-#endif
+-
+diff --git a/depends/lua/include/luaconf.h.in b/depends/lua/include/luaconf.h.in
+new file mode 100644
+index 0000000..e6d08b4
+--- /dev/null
++++ b/depends/lua/include/luaconf.h.in
+@@ -0,0 +1,553 @@
++/*
++** $Id: luaconf.h,v 1.176.1.1 2013/04/12 18:48:47 roberto Exp $
++** Configuration file for Lua
++** See Copyright Notice in lua.h
++*/
++
++
++#ifndef lconfig_h
++#define lconfig_h
++
++#include <limits.h>
++#include <stddef.h>
++
++
++/*
++** ==================================================================
++** Search for "@@" to find all configurable definitions.
++** ===================================================================
++*/
++
++
++/*
++@@ LUA_ANSI controls the use of non-ansi features.
++** CHANGE it (define it) if you want Lua to avoid the use of any
++** non-ansi feature or library.
++*/
++#if !defined(LUA_ANSI) && defined(__STRICT_ANSI__)
++#define LUA_ANSI
++#endif
++
++
++#if !defined(LUA_ANSI) && defined(_WIN32) && !defined(_WIN32_WCE)
++#define LUA_WIN /* enable goodies for regular Windows platforms */
++#endif
++
++#if defined(LUA_WIN)
++#define LUA_DL_DLL
++#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */
++#endif
++
++
++
++#if defined(LUA_USE_LINUX)
++#define LUA_USE_POSIX
++#define LUA_USE_DLOPEN /* needs an extra library: -ldl */
++#define LUA_USE_READLINE /* needs some extra libraries */
++#define LUA_USE_STRTODHEX /* assume 'strtod' handles hex formats */
++#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */
++#define LUA_USE_LONGLONG /* assume support for long long */
++#endif
++
++#if defined(LUA_USE_MACOSX)
++#define LUA_USE_POSIX
++#define LUA_USE_DLOPEN /* does not need -ldl */
++#define LUA_USE_READLINE /* needs an extra library: -lreadline */
++#define LUA_USE_STRTODHEX /* assume 'strtod' handles hex formats */
++#define LUA_USE_AFORMAT /* assume 'printf' handles 'aA' specifiers */
++#define LUA_USE_LONGLONG /* assume support for long long */
++#endif
++
++
++
++/*
++@@ LUA_USE_POSIX includes all functionality listed as X/Open System
++@* Interfaces Extension (XSI).
++** CHANGE it (define it) if your system is XSI compatible.
++*/
++#if defined(LUA_USE_POSIX)
++#define LUA_USE_MKSTEMP
++#define LUA_USE_ISATTY
++#define LUA_USE_POPEN
++#define LUA_USE_ULONGJMP
++#define LUA_USE_GMTIME_R
++#endif
++
++
++
++/*
++@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for
++@* Lua libraries.
++@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for
++@* C libraries.
++** CHANGE them if your machine has a non-conventional directory
++** hierarchy or if you want to install your libraries in
++** non-conventional directories.
++*/
++#if defined(_WIN32) /* { */
++/*
++** In Windows, any exclamation mark ('!') in the path is replaced by the
++** path of the directory of the executable file of the current process.
++*/
++#define LUA_LDIR "!\\hack\\lua\\"
++#define LUA_CDIR "!\\"
++#define LUA_PATH_DEFAULT \
++ LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" ".\\?.lua"
++#define LUA_CPATH_DEFAULT \
++ LUA_CDIR"?.dll;" ".\\?.dll"
++
++#else /* }{ */
++
++#define LUA_LDIR "@DFHACK_LUA_DESTINATION@" "/"
++#define LUA_CDIR "./hack/"
++#define LUA_PATH_DEFAULT \
++ LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" "./?.lua"
++#define LUA_CPATH_DEFAULT \
++ LUA_CDIR"?.so;" "./?.so"
++#endif /* } */
++
++#define LUA_PATH "DFHACK_LUA_PATH"
++#define LUA_CPATH "DFHACK_LUA_CPATH"
++
++/*
++@@ LUA_DIRSEP is the directory separator (for submodules).
++** CHANGE it if your machine does not use "/" as the directory separator
++** and is not Windows. (On Windows Lua automatically uses "\".)
++*/
++#if defined(_WIN32)
++#define LUA_DIRSEP "\\"
++#else
++#define LUA_DIRSEP "/"
++#endif
++
++
++/*
++@@ LUA_ENV is the name of the variable that holds the current
++@@ environment, used to access global names.
++** CHANGE it if you do not like this name.
++*/
++#define LUA_ENV "_ENV"
++
++
++/*
++@@ LUA_API is a mark for all core API functions.
++@@ LUALIB_API is a mark for all auxiliary library functions.
++@@ LUAMOD_API is a mark for all standard library opening functions.
++** CHANGE them if you need to define those functions in some special way.
++** For instance, if you want to create one Windows DLL with the core and
++** the libraries, you may want to use the following definition (define
++** LUA_BUILD_AS_DLL to get it).
++*/
++#if defined(LUA_BUILD_AS_DLL) /* { */
++
++#if defined(_MSC_VER)
++#if defined(LUA_CORE) || defined(LUA_LIB) /* { */
++#define LUA_API __declspec(dllexport)
++#else /* }{ */
++#define LUA_API __declspec(dllimport)
++#endif /* } */
++#else
++#define LUA_API __attribute__ ((visibility("default")))
++#endif
++
++#else /* }{ */
++
++#define LUA_API extern
++
++#endif /* } */
++
++
++/* more often than not the libs go together with the core */
++#define LUALIB_API LUA_API
++#define LUAMOD_API LUALIB_API
++
++
++/*
++@@ LUAI_FUNC is a mark for all extern functions that are not to be
++@* exported to outside modules.
++@@ LUAI_DDEF and LUAI_DDEC are marks for all extern (const) variables
++@* that are not to be exported to outside modules (LUAI_DDEF for
++@* definitions and LUAI_DDEC for declarations).
++** CHANGE them if you need to mark them in some special way. Elf/gcc
++** (versions 3.2 and later) mark them as "hidden" to optimize access
++** when Lua is compiled as a shared library. Not all elf targets support
++** this attribute. Unfortunately, gcc does not offer a way to check
++** whether the target offers that support, and those without support
++** give a warning about it. To avoid these warnings, change to the
++** default definition.
++*/
++#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
++ defined(__ELF__) /* { */
++#define LUAI_FUNC __attribute__((visibility("hidden"))) extern
++#define LUAI_DDEC LUAI_FUNC
++#define LUAI_DDEF /* empty */
++
++#else /* }{ */
++#define LUAI_FUNC extern
++#define LUAI_DDEC extern
++#define LUAI_DDEF /* empty */
++#endif /* } */
++
++
++
++/*
++@@ LUA_QL describes how error messages quote program elements.
++** CHANGE it if you want a different appearance.
++*/
++#define LUA_QL(x) "'" x "'"
++#define LUA_QS LUA_QL("%s")
++
++
++/*
++@@ LUA_IDSIZE gives the maximum size for the description of the source
++@* of a function in debug information.
++** CHANGE it if you want a different size.
++*/
++#define LUA_IDSIZE 60
++
++
++/*
++@@ luai_writestring/luai_writeline define how 'print' prints its results.
++** They are only used in libraries and the stand-alone program. (The #if
++** avoids including 'stdio.h' everywhere.)
++*/
++#if defined(LUA_LIB) || defined(lua_c)
++#include <stdio.h>
++#define luai_writestring(s,l) fwrite((s), sizeof(char), (l), stdout)
++#define luai_writeline() (luai_writestring("\n", 1), fflush(stdout))
++#endif
++
++/*
++@@ luai_writestringerror defines how to print error messages.
++** (A format string with one argument is enough for Lua...)
++*/
++#define luai_writestringerror(s,p) \
++ (fprintf(stderr, (s), (p)), fflush(stderr))
++
++
++/*
++@@ LUAI_MAXSHORTLEN is the maximum length for short strings, that is,
++** strings that are internalized. (Cannot be smaller than reserved words
++** or tags for metamethods, as these strings must be internalized;
++** #("function") = 8, #("__newindex") = 10.)
++*/
++#define LUAI_MAXSHORTLEN 40
++
++
++
++/*
++** {==================================================================
++** Compatibility with previous versions
++** ===================================================================
++*/
++
++/*
++@@ LUA_COMPAT_ALL controls all compatibility options.
++** You can define it to get all options, or change specific options
++** to fit your specific needs.
++*/
++#if defined(LUA_COMPAT_ALL) /* { */
++
++/*
++@@ LUA_COMPAT_UNPACK controls the presence of global 'unpack'.
++** You can replace it with 'table.unpack'.
++*/
++#define LUA_COMPAT_UNPACK
++
++/*
++@@ LUA_COMPAT_LOADERS controls the presence of table 'package.loaders'.
++** You can replace it with 'package.searchers'.
++*/
++#define LUA_COMPAT_LOADERS
++
++/*
++@@ macro 'lua_cpcall' emulates deprecated function lua_cpcall.
++** You can call your C function directly (with light C functions).
++*/
++#define lua_cpcall(L,f,u) \
++ (lua_pushcfunction(L, (f)), \
++ lua_pushlightuserdata(L,(u)), \
++ lua_pcall(L,1,0,0))
++
++
++/*
++@@ LUA_COMPAT_LOG10 defines the function 'log10' in the math library.
++** You can rewrite 'log10(x)' as 'log(x, 10)'.
++*/
++#define LUA_COMPAT_LOG10
++
++/*
++@@ LUA_COMPAT_LOADSTRING defines the function 'loadstring' in the base
++** library. You can rewrite 'loadstring(s)' as 'load(s)'.
++*/
++#define LUA_COMPAT_LOADSTRING
++
++/*
++@@ LUA_COMPAT_MAXN defines the function 'maxn' in the table library.
++*/
++#define LUA_COMPAT_MAXN
++
++/*
++@@ The following macros supply trivial compatibility for some
++** changes in the API. The macros themselves document how to
++** change your code to avoid using them.
++*/
++#define lua_strlen(L,i) lua_rawlen(L, (i))
++
++#define lua_objlen(L,i) lua_rawlen(L, (i))
++
++#define lua_equal(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPEQ)
++#define lua_lessthan(L,idx1,idx2) lua_compare(L,(idx1),(idx2),LUA_OPLT)
++
++/*
++@@ LUA_COMPAT_MODULE controls compatibility with previous
++** module functions 'module' (Lua) and 'luaL_register' (C).
++*/
++#define LUA_COMPAT_MODULE
++
++#endif /* } */
++
++/* }================================================================== */
++
++
++
++/*
++@@ LUAI_BITSINT defines the number of bits in an int.
++** CHANGE here if Lua cannot automatically detect the number of bits of
++** your machine. Probably you do not need to change this.
++*/
++/* avoid overflows in comparison */
++#if INT_MAX-20 < 32760 /* { */
++#define LUAI_BITSINT 16
++#elif INT_MAX > 2147483640L /* }{ */
++/* int has at least 32 bits */
++#define LUAI_BITSINT 32
++#else /* }{ */
++#error "you must define LUA_BITSINT with number of bits in an integer"
++#endif /* } */
++
++
++/*
++@@ LUA_INT32 is an signed integer with exactly 32 bits.
++@@ LUAI_UMEM is an unsigned integer big enough to count the total
++@* memory used by Lua.
++@@ LUAI_MEM is a signed integer big enough to count the total memory
++@* used by Lua.
++** CHANGE here if for some weird reason the default definitions are not
++** good enough for your machine. Probably you do not need to change
++** this.
++*/
++#if LUAI_BITSINT >= 32 /* { */
++#define LUA_INT32 int
++#define LUAI_UMEM size_t
++#define LUAI_MEM ptrdiff_t
++#else /* }{ */
++/* 16-bit ints */
++#define LUA_INT32 long
++#define LUAI_UMEM unsigned long
++#define LUAI_MEM long
++#endif /* } */
++
++
++/*
++@@ LUAI_MAXSTACK limits the size of the Lua stack.
++** CHANGE it if you need a different limit. This limit is arbitrary;
++** its only purpose is to stop Lua to consume unlimited stack
++** space (and to reserve some numbers for pseudo-indices).
++*/
++#if LUAI_BITSINT >= 32
++#define LUAI_MAXSTACK 1000000
++#else
++#define LUAI_MAXSTACK 15000
++#endif
++
++/* reserve some space for error handling */
++#define LUAI_FIRSTPSEUDOIDX (-LUAI_MAXSTACK - 1000)
++
++
++
++
++/*
++@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
++** CHANGE it if it uses too much C-stack space.
++*/
++#define LUAL_BUFFERSIZE BUFSIZ
++
++
++
++
++/*
++** {==================================================================
++@@ LUA_NUMBER is the type of numbers in Lua.
++** CHANGE the following definitions only if you want to build Lua
++** with a number type different from double. You may also need to
++** change lua_number2int & lua_number2integer.
++** ===================================================================
++*/
++
++#define LUA_NUMBER_DOUBLE
++#define LUA_NUMBER double
++
++/*
++@@ LUAI_UACNUMBER is the result of an 'usual argument conversion'
++@* over a number.
++*/
++#define LUAI_UACNUMBER double
++
++
++/*
++@@ LUA_NUMBER_SCAN is the format for reading numbers.
++@@ LUA_NUMBER_FMT is the format for writing numbers.
++@@ lua_number2str converts a number to a string.
++@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion.
++*/
++#define LUA_NUMBER_SCAN "%lf"
++#define LUA_NUMBER_FMT "%.14g"
++#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n))
++#define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */
++
++
++/*
++@@ l_mathop allows the addition of an 'l' or 'f' to all math operations
++*/
++#define l_mathop(x) (x)
++
++
++/*
++@@ lua_str2number converts a decimal numeric string to a number.
++@@ lua_strx2number converts an hexadecimal numeric string to a number.
++** In C99, 'strtod' does both conversions. C89, however, has no function
++** to convert floating hexadecimal strings to numbers. For these
++** systems, you can leave 'lua_strx2number' undefined and Lua will
++** provide its own implementation.
++*/
++#define lua_str2number(s,p) strtod((s), (p))
++
++#if defined(LUA_USE_STRTODHEX)
++#define lua_strx2number(s,p) strtod((s), (p))
++#endif
++
++
++/*
++@@ The luai_num* macros define the primitive operations over numbers.
++*/
++
++/* the following operations need the math library */
++#if defined(lobject_c) || defined(lvm_c)
++#include <math.h>
++#define luai_nummod(L,a,b) ((a) - l_mathop(floor)((a)/(b))*(b))
++#define luai_numpow(L,a,b) (l_mathop(pow)(a,b))
++#endif
++
++/* these are quite standard operations */
++#if defined(LUA_CORE)
++#define luai_numadd(L,a,b) ((a)+(b))
++#define luai_numsub(L,a,b) ((a)-(b))
++#define luai_nummul(L,a,b) ((a)*(b))
++#define luai_numdiv(L,a,b) ((a)/(b))
++#define luai_numunm(L,a) (-(a))
++#define luai_numeq(a,b) ((a)==(b))
++#define luai_numlt(L,a,b) ((a)<(b))
++#define luai_numle(L,a,b) ((a)<=(b))
++#define luai_numisnan(L,a) (!luai_numeq((a), (a)))
++#endif
++
++
++
++/*
++@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger.
++** CHANGE that if ptrdiff_t is not adequate on your machine. (On most
++** machines, ptrdiff_t gives a good choice between int or long.)
++*/
++#define LUA_INTEGER ptrdiff_t
++
++/*
++@@ LUA_UNSIGNED is the integral type used by lua_pushunsigned/lua_tounsigned.
++** It must have at least 32 bits.
++*/
++#define LUA_UNSIGNED unsigned LUA_INT32
++
++
++
++/*
++** Some tricks with doubles
++*/
++
++#if defined(LUA_NUMBER_DOUBLE) && !defined(LUA_ANSI) /* { */
++/*
++** The next definitions activate some tricks to speed up the
++** conversion from doubles to integer types, mainly to LUA_UNSIGNED.
++**
++@@ LUA_MSASMTRICK uses Microsoft assembler to avoid clashes with a
++** DirectX idiosyncrasy.
++**
++@@ LUA_IEEE754TRICK uses a trick that should work on any machine
++** using IEEE754 with a 32-bit integer type.
++**
++@@ LUA_IEEELL extends the trick to LUA_INTEGER; should only be
++** defined when LUA_INTEGER is a 32-bit integer.
++**
++@@ LUA_IEEEENDIAN is the endianness of doubles in your machine
++** (0 for little endian, 1 for big endian); if not defined, Lua will
++** check it dynamically for LUA_IEEE754TRICK (but not for LUA_NANTRICK).
++**
++@@ LUA_NANTRICK controls the use of a trick to pack all types into
++** a single double value, using NaN values to represent non-number
++** values. The trick only works on 32-bit machines (ints and pointers
++** are 32-bit values) with numbers represented as IEEE 754-2008 doubles
++** with conventional endianess (12345678 or 87654321), in CPUs that do
++** not produce signaling NaN values (all NaNs are quiet).
++*/
++
++/* Microsoft compiler on a Pentium (32 bit) ? */
++#if defined(LUA_WIN) && defined(_MSC_VER) && defined(_M_IX86) /* { */
++
++#define LUA_MSASMTRICK
++#define LUA_IEEEENDIAN 0
++#define LUA_NANTRICK
++
++
++/* pentium 32 bits? */
++#elif defined(__i386__) || defined(__i386) || defined(__X86__) /* }{ */
++
++#define LUA_IEEE754TRICK
++#define LUA_IEEELL
++#define LUA_IEEEENDIAN 0
++#define LUA_NANTRICK
++
++/* pentium 64 bits? */
++#elif defined(__x86_64) /* }{ */
++
++#define LUA_IEEE754TRICK
++#define LUA_IEEEENDIAN 0
++
++#elif defined(__POWERPC__) || defined(__ppc__) /* }{ */
++
++#define LUA_IEEE754TRICK
++#define LUA_IEEEENDIAN 1
++
++#else /* }{ */
++
++/* assume IEEE754 and a 32-bit integer type */
++#define LUA_IEEE754TRICK
++
++#endif /* } */
++
++#endif /* } */
++
++/* }================================================================== */
++
++
++
++
++/* =================================================================== */
++
++/*
++** Local configuration. You can use this space to add your redefinitions
++** without modifying the main part of the file.
++*/
++
++
++
++#endif
++