summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Wilgus <me.theuser@yahoo.com>2019-07-11 11:57:50 -0500
committerWilliam Wilgus <me.theuser@yahoo.com>2019-07-11 11:59:43 -0500
commitee58f2601c2a03cec96568371a68e5f1bf0de170 (patch)
tree363b703f180be5f1b64beb5a25023c799ca15a20
parenta332924f68e1237ec69af84ef10362fd9b4623c3 (diff)
downloadrockbox-ee58f2601c2a03cec96568371a68e5f1bf0de170.tar.gz
rockbox-ee58f2601c2a03cec96568371a68e5f1bf0de170.zip
lua reduce heap allocated buffer sizes, organize luaconf.h
Change-Id: Ib9e568ea73a01474facd57cc155e62fa3dc093f7
-rw-r--r--apps/plugins/lua/luaconf.h335
1 files changed, 194 insertions, 141 deletions
diff --git a/apps/plugins/lua/luaconf.h b/apps/plugins/lua/luaconf.h
index 3ed495b207..4b6f25d008 100644
--- a/apps/plugins/lua/luaconf.h
+++ b/apps/plugins/lua/luaconf.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id$ 2** $Id: luaconf.h,v 1.82.1.7 2008/02/11 16:25:08 roberto Exp $
3** Configuration file for Lua 3** Configuration file for Lua
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -35,13 +35,13 @@
35 35
36#if defined(LUA_USE_LINUX) 36#if defined(LUA_USE_LINUX)
37#define LUA_USE_POSIX 37#define LUA_USE_POSIX
38#define LUA_USE_DLOPEN /* needs an extra library: -ldl */ 38#define LUA_USE_DLOPEN /* needs an extra library: -ldl */
39#define LUA_USE_READLINE /* needs some extra libraries */ 39#define LUA_USE_READLINE /* needs some extra libraries */
40#endif 40#endif
41 41
42#if defined(LUA_USE_MACOSX) 42#if defined(LUA_USE_MACOSX)
43#define LUA_USE_POSIX 43#define LUA_USE_POSIX
44#define LUA_DL_DYLD /* does not need extra library */ 44#define LUA_DL_DYLD /* does not need extra library */
45#endif 45#endif
46 46
47 47
@@ -68,7 +68,7 @@
68*/ 68*/
69#define LUA_PATH "LUA_PATH" 69#define LUA_PATH "LUA_PATH"
70#define LUA_CPATH "LUA_CPATH" 70#define LUA_CPATH "LUA_CPATH"
71#define LUA_INIT "LUA_INIT" 71#define LUA_INIT "LUA_INIT"
72 72
73 73
74/* 74/*
@@ -85,23 +85,23 @@
85** In Windows, any exclamation mark ('!') in the path is replaced by the 85** In Windows, any exclamation mark ('!') in the path is replaced by the
86** path of the directory of the executable file of the current process. 86** path of the directory of the executable file of the current process.
87*/ 87*/
88#define LUA_LDIR "!\\lua\\" 88#define LUA_LDIR "!\\lua\\"
89#define LUA_CDIR "!\\" 89#define LUA_CDIR "!\\"
90#define LUA_PATH_DEFAULT \ 90#define LUA_PATH_DEFAULT \
91 ".\\?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \ 91 ".\\?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \
92 LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua" 92 LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua"
93#define LUA_CPATH_DEFAULT \ 93#define LUA_CPATH_DEFAULT \
94 ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll" 94 ".\\?.dll;" LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll"
95 95
96#else 96#else
97#define LUA_ROOT "/usr/local/" 97#define LUA_ROOT "/usr/local/"
98#define LUA_LDIR LUA_ROOT "share/lua/5.1/" 98#define LUA_LDIR LUA_ROOT "share/lua/5.1/"
99#define LUA_CDIR LUA_ROOT "lib/lua/5.1/" 99#define LUA_CDIR LUA_ROOT "lib/lua/5.1/"
100#define LUA_PATH_DEFAULT \ 100#define LUA_PATH_DEFAULT \
101 "./?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \ 101 "./?.lua;" LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \
102 LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua" 102 LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua"
103#define LUA_CPATH_DEFAULT \ 103#define LUA_CPATH_DEFAULT \
104 "./?.so;" LUA_CDIR"?.so;" LUA_CDIR"loadall.so" 104 "./?.so;" LUA_CDIR"?.so;" LUA_CDIR"loadall.so"
105#endif 105#endif
106 106
107 107
@@ -111,9 +111,9 @@
111** and is not Windows. (On Windows Lua automatically uses "\".) 111** and is not Windows. (On Windows Lua automatically uses "\".)
112*/ 112*/
113#if defined(_WIN32) 113#if defined(_WIN32)
114#define LUA_DIRSEP "\\" 114#define LUA_DIRSEP "\\"
115#else 115#else
116#define LUA_DIRSEP "/" 116#define LUA_DIRSEP "/"
117#endif 117#endif
118 118
119 119
@@ -129,10 +129,10 @@
129** characters. (E.g., if one of those characters is a common character 129** characters. (E.g., if one of those characters is a common character
130** in file/directory names.) Probably you do not need to change them. 130** in file/directory names.) Probably you do not need to change them.
131*/ 131*/
132#define LUA_PATHSEP ";" 132#define LUA_PATHSEP ";"
133#define LUA_PATH_MARK "?" 133#define LUA_PATH_MARK "?"
134#define LUA_EXECDIR "!" 134#define LUA_EXECDIR "!"
135#define LUA_IGMARK "-" 135#define LUA_IGMARK "-"
136 136
137 137
138/* 138/*
@@ -140,7 +140,7 @@
140** CHANGE that if ptrdiff_t is not adequate on your machine. (On most 140** CHANGE that if ptrdiff_t is not adequate on your machine. (On most
141** machines, ptrdiff_t gives a good choice between int or long.) 141** machines, ptrdiff_t gives a good choice between int or long.)
142*/ 142*/
143#define LUA_INTEGER ptrdiff_t 143#define LUA_INTEGER ptrdiff_t
144 144
145 145
146/* 146/*
@@ -161,12 +161,12 @@
161 161
162#else 162#else
163 163
164#define LUA_API extern 164#define LUA_API extern
165 165
166#endif 166#endif
167 167
168/* more often than not the libs go together with the core */ 168/* more often than not the libs go together with the core */
169#define LUALIB_API LUA_API 169#define LUALIB_API LUA_API
170 170
171 171
172/* 172/*
@@ -179,17 +179,17 @@
179** when Lua is compiled as a shared library. 179** when Lua is compiled as a shared library.
180*/ 180*/
181#if defined(luaall_c) 181#if defined(luaall_c)
182#define LUAI_FUNC static 182#define LUAI_FUNC static
183#define LUAI_DATA /* empty */ 183#define LUAI_DATA /* empty */
184 184
185#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \ 185#elif defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \
186 defined(__ELF__) 186 defined(__ELF__)
187#define LUAI_FUNC __attribute__((visibility("hidden"))) extern 187#define LUAI_FUNC __attribute__((visibility("hidden"))) extern
188#define LUAI_DATA LUAI_FUNC 188#define LUAI_DATA LUAI_FUNC
189 189
190#else 190#else
191#define LUAI_FUNC extern 191#define LUAI_FUNC extern
192#define LUAI_DATA extern 192#define LUAI_DATA extern
193#endif 193#endif
194 194
195 195
@@ -198,8 +198,8 @@
198@@ LUA_QL describes how error messages quote program elements. 198@@ LUA_QL describes how error messages quote program elements.
199** CHANGE it if you want a different appearance. 199** CHANGE it if you want a different appearance.
200*/ 200*/
201#define LUA_QL(x) "'" x "'" 201#define LUA_QL(x) "'" x "'"
202#define LUA_QS LUA_QL("%s") 202#define LUA_QS LUA_QL("%s")
203 203
204 204
205/* 205/*
@@ -207,7 +207,7 @@
207@* of a function in debug information. 207@* of a function in debug information.
208** CHANGE it if you want a different size. 208** CHANGE it if you want a different size.
209*/ 209*/
210#define LUA_IDSIZE 60 210#define LUA_IDSIZE 60
211 211
212 212
213/* 213/*
@@ -226,13 +226,13 @@
226*/ 226*/
227#if defined(LUA_USE_ISATTY) 227#if defined(LUA_USE_ISATTY)
228#include <unistd.h> 228#include <unistd.h>
229#define lua_stdin_is_tty() isatty(0) 229#define lua_stdin_is_tty() isatty(0)
230#elif defined(LUA_WIN) 230#elif defined(LUA_WIN)
231#include <io.h> 231#include <io.h>
232#include <stdio.h> 232#include <stdio.h>
233#define lua_stdin_is_tty() _isatty(_fileno(stdin)) 233#define lua_stdin_is_tty() _isatty(_fileno(stdin))
234#else 234#else
235#define lua_stdin_is_tty() 1 /* assume stdin is a tty */ 235#define lua_stdin_is_tty() 1 /* assume stdin is a tty */
236#endif 236#endif
237 237
238 238
@@ -242,8 +242,8 @@
242** CHANGE them if you want different prompts. (You can also change the 242** CHANGE them if you want different prompts. (You can also change the
243** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.) 243** prompts dynamically, assigning to globals _PROMPT/_PROMPT2.)
244*/ 244*/
245#define LUA_PROMPT "> " 245#define LUA_PROMPT "> "
246#define LUA_PROMPT2 ">> " 246#define LUA_PROMPT2 ">> "
247 247
248 248
249/* 249/*
@@ -251,7 +251,7 @@
251** CHANGE it if your stand-alone interpreter has a different name and 251** CHANGE it if your stand-alone interpreter has a different name and
252** your system is not able to detect that name automatically. 252** your system is not able to detect that name automatically.
253*/ 253*/
254#define LUA_PROGNAME "lua" 254#define LUA_PROGNAME "lua"
255 255
256 256
257/* 257/*
@@ -259,7 +259,7 @@
259@* stand-alone interpreter. 259@* stand-alone interpreter.
260** CHANGE it if you need longer lines. 260** CHANGE it if you need longer lines.
261*/ 261*/
262#define LUA_MAXINPUT 512 262#define LUA_MAXINPUT 512
263 263
264 264
265/* 265/*
@@ -274,17 +274,17 @@
274#include <stdio.h> 274#include <stdio.h>
275#include <readline/readline.h> 275#include <readline/readline.h>
276#include <readline/history.h> 276#include <readline/history.h>
277#define lua_readline(L,b,p) ((void)L, ((b)=readline(p)) != NULL) 277#define lua_readline(L,b,p) ((void)L, ((b)=readline(p)) != NULL)
278#define lua_saveline(L,idx) \ 278#define lua_saveline(L,idx) \
279 if (lua_strlen(L,idx) > 0) /* non-empty line? */ \ 279 if (lua_strlen(L,idx) > 0) /* non-empty line? */ \
280 add_history(lua_tostring(L, idx)); /* add it to history */ 280 add_history(lua_tostring(L, idx)); /* add it to history */
281#define lua_freeline(L,b) ((void)L, free(b)) 281#define lua_freeline(L,b) ((void)L, free(b))
282#else 282#else
283#define lua_readline(L,b,p) \ 283#define lua_readline(L,b,p) \
284 ((void)L, fputs(p, stdout), fflush(stdout), /* show prompt */ \ 284 ((void)L, fputs(p, stdout), fflush(stdout), /* show prompt */ \
285 fgets(b, LUA_MAXINPUT, stdin) != NULL) /* get line */ 285 fgets(b, LUA_MAXINPUT, stdin) != NULL) /* get line */
286#define lua_saveline(L,idx) { (void)L; (void)idx; } 286#define lua_saveline(L,idx) { (void)L; (void)idx; }
287#define lua_freeline(L,b) { (void)L; (void)b; } 287#define lua_freeline(L,b) { (void)L; (void)b; }
288#endif 288#endif
289 289
290#endif 290#endif
@@ -299,7 +299,7 @@
299** mean larger pauses which mean slower collection.) You can also change 299** mean larger pauses which mean slower collection.) You can also change
300** this value dynamically. 300** this value dynamically.
301*/ 301*/
302#define LUAI_GCPAUSE 200 /* 200% (wait memory to double before next GC) */ 302#define LUAI_GCPAUSE 200 /* 200% (wait memory to double before next GC) */
303 303
304 304
305/* 305/*
@@ -310,7 +310,7 @@
310** infinity, where each step performs a full collection.) You can also 310** infinity, where each step performs a full collection.) You can also
311** change this value dynamically. 311** change this value dynamically.
312*/ 312*/
313#define LUAI_GCMUL 200 /* GC runs 'twice the speed' of memory allocation */ 313#define LUAI_GCMUL 200 /* GC runs 'twice the speed' of memory allocation */
314 314
315 315
316 316
@@ -333,14 +333,14 @@
333** CHANGE it to undefined as soon as your programs use only '...' to 333** CHANGE it to undefined as soon as your programs use only '...' to
334** access vararg parameters (instead of the old 'arg' table). 334** access vararg parameters (instead of the old 'arg' table).
335*/ 335*/
336#undef LUA_COMPAT_VARARG 336#define LUA_COMPAT_VARARG
337 337
338/* 338/*
339@@ LUA_COMPAT_MOD controls compatibility with old math.mod function. 339@@ LUA_COMPAT_MOD controls compatibility with old math.mod function.
340** CHANGE it to undefined as soon as your programs use 'math.fmod' or 340** CHANGE it to undefined as soon as your programs use 'math.fmod' or
341** the new '%' operator instead of 'math.mod'. 341** the new '%' operator instead of 'math.mod'.
342*/ 342*/
343#undef LUA_COMPAT_MOD 343#define LUA_COMPAT_MOD
344 344
345/* 345/*
346@@ LUA_COMPAT_LSTR controls compatibility with old long string nesting 346@@ LUA_COMPAT_LSTR controls compatibility with old long string nesting
@@ -348,22 +348,22 @@
348** CHANGE it to 2 if you want the old behaviour, or undefine it to turn 348** CHANGE it to 2 if you want the old behaviour, or undefine it to turn
349** off the advisory error when nesting [[...]]. 349** off the advisory error when nesting [[...]].
350*/ 350*/
351#undef LUA_COMPAT_LSTR 351#define LUA_COMPAT_LSTR 1
352 352
353/* 353/*
354@@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name. 354@@ LUA_COMPAT_GFIND controls compatibility with old 'string.gfind' name.
355** CHANGE it to undefined as soon as you rename 'string.gfind' to 355** CHANGE it to undefined as soon as you rename 'string.gfind' to
356** 'string.gmatch'. 356** 'string.gmatch'.
357*/ 357*/
358#undef LUA_COMPAT_GFIND 358#define LUA_COMPAT_GFIND
359 359
360/* 360/*
361@@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib' 361@@ LUA_COMPAT_OPENLIB controls compatibility with old 'luaL_openlib'
362@* behavior. 362@* behavior.
363** CHANGE it to undefined as soon as you replace to 'luaL_registry' 363** CHANGE it to undefined as soon as you replace to 'luaL_register'
364** your uses of 'luaL_openlib' 364** your uses of 'luaL_openlib'
365*/ 365*/
366#undef LUA_COMPAT_OPENLIB 366#define LUA_COMPAT_OPENLIB
367 367
368 368
369 369
@@ -376,9 +376,9 @@
376*/ 376*/
377#if defined(LUA_USE_APICHECK) 377#if defined(LUA_USE_APICHECK)
378#include <assert.h> 378#include <assert.h>
379#define luai_apicheck(L,o) { (void)L; assert(o); } 379#define luai_apicheck(L,o) { (void)L; assert(o); }
380#else 380#else
381#define luai_apicheck(L,o) { (void)L; } 381#define luai_apicheck(L,o) { (void)L; }
382#endif 382#endif
383 383
384 384
@@ -389,10 +389,10 @@
389*/ 389*/
390/* avoid overflows in comparison */ 390/* avoid overflows in comparison */
391#if INT_MAX-20 < 32760 391#if INT_MAX-20 < 32760
392#define LUAI_BITSINT 16 392#define LUAI_BITSINT 16
393#elif INT_MAX > 2147483640L 393#elif INT_MAX > 2147483640L
394/* int has at least 32 bits */ 394/* int has at least 32 bits */
395#define LUAI_BITSINT 32 395#define LUAI_BITSINT 32
396#else 396#else
397#error "you must define LUA_BITSINT with number of bits in an integer" 397#error "you must define LUA_BITSINT with number of bits in an integer"
398#endif 398#endif
@@ -411,18 +411,18 @@
411** longs.) Probably you do not need to change this. 411** longs.) Probably you do not need to change this.
412*/ 412*/
413#if LUAI_BITSINT >= 32 413#if LUAI_BITSINT >= 32
414#define LUAI_UINT32 unsigned int 414#define LUAI_UINT32 unsigned int
415#define LUAI_INT32 int 415#define LUAI_INT32 int
416#define LUAI_MAXINT32 INT_MAX 416#define LUAI_MAXINT32 INT_MAX
417#define LUAI_UMEM size_t 417#define LUAI_UMEM size_t
418#define LUAI_MEM ptrdiff_t 418#define LUAI_MEM ptrdiff_t
419#else 419#else
420/* 16-bit ints */ 420/* 16-bit ints */
421#define LUAI_UINT32 unsigned long 421#define LUAI_UINT32 unsigned long
422#define LUAI_INT32 long 422#define LUAI_INT32 long
423#define LUAI_MAXINT32 LONG_MAX 423#define LUAI_MAXINT32 LONG_MAX
424#define LUAI_UMEM unsigned long 424#define LUAI_UMEM unsigned long
425#define LUAI_MEM long 425#define LUAI_MEM long
426#endif 426#endif
427 427
428 428
@@ -432,7 +432,7 @@
432** arbitrary; its only purpose is to stop infinite recursion before 432** arbitrary; its only purpose is to stop infinite recursion before
433** exhausting memory. 433** exhausting memory.
434*/ 434*/
435#define LUAI_MAXCALLS 20000 435#define LUAI_MAXCALLS 20000
436 436
437 437
438/* 438/*
@@ -443,7 +443,7 @@
443** functions to consume unlimited stack space. (must be smaller than 443** functions to consume unlimited stack space. (must be smaller than
444** -LUA_REGISTRYINDEX) 444** -LUA_REGISTRYINDEX)
445*/ 445*/
446#define LUAI_MAXCSTACK 8000 446#define LUAI_MAXCSTACK 8000
447 447
448 448
449 449
@@ -465,27 +465,27 @@
465@@ LUAI_MAXCCALLS is the maximum depth for nested C calls (short) and 465@@ LUAI_MAXCCALLS is the maximum depth for nested C calls (short) and
466@* syntactical nested non-terminals in a program. 466@* syntactical nested non-terminals in a program.
467*/ 467*/
468#define LUAI_MAXCCALLS 200 468#define LUAI_MAXCCALLS 200
469 469
470 470
471/* 471/*
472@@ LUAI_MAXVARS is the maximum number of local variables per function 472@@ LUAI_MAXVARS is the maximum number of local variables per function
473@* (must be smaller than 250). 473@* (must be smaller than 250).
474*/ 474*/
475#define LUAI_MAXVARS 200 475#define LUAI_MAXVARS 200
476 476
477 477
478/* 478/*
479@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function 479@@ LUAI_MAXUPVALUES is the maximum number of upvalues per function
480@* (must be smaller than 250). 480@* (must be smaller than 250).
481*/ 481*/
482#define LUAI_MAXUPVALUES 60 482#define LUAI_MAXUPVALUES 60
483 483
484 484
485/* 485/*
486@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system. 486@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
487*/ 487*/
488#define LUAL_BUFFERSIZE 1024 488#define LUAL_BUFFERSIZE BUFSIZ
489 489
490/* }================================================================== */ 490/* }================================================================== */
491 491
@@ -501,14 +501,14 @@
501** =================================================================== 501** ===================================================================
502*/ 502*/
503 503
504#undef LUA_NUMBER_DOUBLE 504#define LUA_NUMBER_DOUBLE
505#define LUA_NUMBER long 505#define LUA_NUMBER double
506 506
507/* 507/*
508@@ LUAI_UACNUMBER is the result of an 'usual argument conversion' 508@@ LUAI_UACNUMBER is the result of an 'usual argument conversion'
509@* over a number. 509@* over a number.
510*/ 510*/
511#define LUAI_UACNUMBER long 511#define LUAI_UACNUMBER double
512 512
513 513
514/* 514/*
@@ -518,29 +518,29 @@
518@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion. 518@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion.
519@@ lua_str2number converts a string to a number. 519@@ lua_str2number converts a string to a number.
520*/ 520*/
521#define LUA_NUMBER_SCAN "%ld" 521#define LUA_NUMBER_SCAN "%lf"
522#define LUA_NUMBER_FMT "%ld" 522#define LUA_NUMBER_FMT "%.14g"
523#define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */ 523#define lua_number2str(s,n) sprintf((s), LUA_NUMBER_FMT, (n))
524#define lua_number2str(s,n) snprintf((s), 32, LUA_NUMBER_FMT, (n)) 524#define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */
525#define lua_str2number(s,p) strtol((s), (p), 10) 525#define lua_str2number(s,p) strtod((s), (p))
526 526
527 527
528/* 528/*
529@@ The luai_num* macros define the primitive operations over numbers. 529@@ The luai_num* macros define the primitive operations over numbers.
530*/ 530*/
531#if defined(LUA_CORE) 531#if defined(LUA_CORE)
532extern long rb_pow(long, long); 532/*#include <math.h> //ROCKLUA_REMOVED */
533#define luai_numadd(a,b) ((a)+(b)) 533#define luai_numadd(a,b) ((a)+(b))
534#define luai_numsub(a,b) ((a)-(b)) 534#define luai_numsub(a,b) ((a)-(b))
535#define luai_nummul(a,b) ((a)*(b)) 535#define luai_nummul(a,b) ((a)*(b))
536#define luai_numdiv(a,b) ((a)/(b)) 536#define luai_numdiv(a,b) ((a)/(b))
537#define luai_nummod(a,b) ((a)%(b)) 537#define luai_nummod(a,b) ((a) - floor((a)/(b))*(b))
538#define luai_numpow(a,b) (rb_pow(a,b)) 538#define luai_numpow(a,b) (pow(a,b))
539#define luai_numunm(a) (-(a)) 539#define luai_numunm(a) (-(a))
540#define luai_numeq(a,b) ((a)==(b)) 540#define luai_numeq(a,b) ((a)==(b))
541#define luai_numlt(a,b) ((a)<(b)) 541#define luai_numlt(a,b) ((a)<(b))
542#define luai_numle(a,b) ((a)<=(b)) 542#define luai_numle(a,b) ((a)<=(b))
543#define luai_numisnan(a) (!luai_numeq((a), (a))) 543#define luai_numisnan(a) (!luai_numeq((a), (a)))
544#endif 544#endif
545 545
546 546
@@ -561,7 +561,7 @@ extern long rb_pow(long, long);
561#if defined(_MSC_VER) 561#if defined(_MSC_VER)
562 562
563#define lua_number2int(i,d) __asm fld d __asm fistp i 563#define lua_number2int(i,d) __asm fld d __asm fistp i
564#define lua_number2integer(i,n) lua_number2int(i, n) 564#define lua_number2integer(i,n) lua_number2int(i, n)
565 565
566/* the next trick should work on any Pentium, but sometimes clashes 566/* the next trick should work on any Pentium, but sometimes clashes
567 with a DirectX idiosyncrasy */ 567 with a DirectX idiosyncrasy */
@@ -570,15 +570,15 @@ extern long rb_pow(long, long);
570union luai_Cast { double l_d; long l_l; }; 570union luai_Cast { double l_d; long l_l; };
571#define lua_number2int(i,d) \ 571#define lua_number2int(i,d) \
572 { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; } 572 { volatile union luai_Cast u; u.l_d = (d) + 6755399441055744.0; (i) = u.l_l; }
573#define lua_number2integer(i,n) lua_number2int(i, n) 573#define lua_number2integer(i,n) lua_number2int(i, n)
574 574
575#endif 575#endif
576 576
577 577
578/* this option always works, but may be slow */ 578/* this option always works, but may be slow */
579#else 579#else
580#define lua_number2int(i,d) ((i)=(int)(d)) 580#define lua_number2int(i,d) ((i)=(int)(d))
581#define lua_number2integer(i,d) ((i)=(lua_Integer)(d)) 581#define lua_number2integer(i,d) ((i)=(lua_Integer)(d))
582 582
583#endif 583#endif
584 584
@@ -592,7 +592,7 @@ union luai_Cast { double l_d; long l_l; };
592** aligned in 16-byte boundaries, then you should add long double in the 592** aligned in 16-byte boundaries, then you should add long double in the
593** union.) Probably you do not need to change this. 593** union.) Probably you do not need to change this.
594*/ 594*/
595#define LUAI_USER_ALIGNMENT_T union { void *s; long l; } 595#define LUAI_USER_ALIGNMENT_T union { double u; void *s; long l; }
596 596
597 597
598/* 598/*
@@ -605,22 +605,22 @@ union luai_Cast { double l_d; long l_l; };
605*/ 605*/
606#if defined(__cplusplus) 606#if defined(__cplusplus)
607/* C++ exceptions */ 607/* C++ exceptions */
608#define LUAI_THROW(L,c) throw(c) 608#define LUAI_THROW(L,c) throw(c)
609#define LUAI_TRY(L,c,a) try { a } catch(...) \ 609#define LUAI_TRY(L,c,a) try { a } catch(...) \
610 { if ((c)->status == 0) (c)->status = -1; } 610 { if ((c)->status == 0) (c)->status = -1; }
611#define luai_jmpbuf int /* dummy variable */ 611#define luai_jmpbuf int /* dummy variable */
612 612
613#elif defined(LUA_USE_ULONGJMP) 613#elif defined(LUA_USE_ULONGJMP)
614/* in Unix, try _longjmp/_setjmp (more efficient) */ 614/* in Unix, try _longjmp/_setjmp (more efficient) */
615#define LUAI_THROW(L,c) _longjmp((c)->b, 1) 615#define LUAI_THROW(L,c) _longjmp((c)->b, 1)
616#define LUAI_TRY(L,c,a) if (_setjmp((c)->b) == 0) { a } 616#define LUAI_TRY(L,c,a) if (_setjmp((c)->b) == 0) { a }
617#define luai_jmpbuf jmp_buf 617#define luai_jmpbuf jmp_buf
618 618
619#else 619#else
620/* default handling with long jumps */ 620/* default handling with long jumps */
621#define LUAI_THROW(L,c) longjmp((c)->b, 1) 621#define LUAI_THROW(L,c) longjmp((c)->b, 1)
622#define LUAI_TRY(L,c,a) if (setjmp((c)->b) == 0) { a } 622#define LUAI_TRY(L,c,a) if (setjmp((c)->b) == 0) { a }
623#define luai_jmpbuf jmp_buf 623#define luai_jmpbuf jmp_buf
624 624
625#endif 625#endif
626 626
@@ -630,7 +630,7 @@ union luai_Cast { double l_d; long l_l; };
630@* can do during pattern-matching. 630@* can do during pattern-matching.
631** CHANGE it if you need more captures. This limit is arbitrary. 631** CHANGE it if you need more captures. This limit is arbitrary.
632*/ 632*/
633#define LUA_MAXCAPTURES 32 633#define LUA_MAXCAPTURES 32
634 634
635 635
636/* 636/*
@@ -645,16 +645,16 @@ union luai_Cast { double l_d; long l_l; };
645 645
646#if defined(LUA_USE_MKSTEMP) 646#if defined(LUA_USE_MKSTEMP)
647#include <unistd.h> 647#include <unistd.h>
648#define LUA_TMPNAMBUFSIZE 32 648#define LUA_TMPNAMBUFSIZE 32
649#define lua_tmpnam(b,e) { \ 649#define lua_tmpnam(b,e) { \
650 strcpy(b, "/tmp/lua_XXXXXX"); \ 650 strcpy(b, "/tmp/lua_XXXXXX"); \
651 e = mkstemp(b); \ 651 e = mkstemp(b); \
652 if (e != -1) close(e); \ 652 if (e != -1) close(e); \
653 e = (e == -1); } 653 e = (e == -1); }
654 654
655#else 655#else
656#define LUA_TMPNAMBUFSIZE L_tmpnam 656#define LUA_TMPNAMBUFSIZE L_tmpnam
657#define lua_tmpnam(b,e) { e = (tmpnam(b) == NULL); } 657#define lua_tmpnam(b,e) { e = (tmpnam(b) == NULL); }
658#endif 658#endif
659 659
660#endif 660#endif
@@ -667,19 +667,19 @@ union luai_Cast { double l_d; long l_l; };
667*/ 667*/
668#if defined(LUA_USE_POPEN) 668#if defined(LUA_USE_POPEN)
669 669
670#define lua_popen(L,c,m) ((void)L, fflush(NULL), popen(c,m)) 670#define lua_popen(L,c,m) ((void)L, fflush(NULL), popen(c,m))
671#define lua_pclose(L,file) ((void)L, (pclose(file) != -1)) 671#define lua_pclose(L,file) ((void)L, (pclose(file) != -1))
672 672
673#elif defined(LUA_WIN) 673#elif defined(LUA_WIN)
674 674
675#define lua_popen(L,c,m) ((void)L, _popen(c,m)) 675#define lua_popen(L,c,m) ((void)L, _popen(c,m))
676#define lua_pclose(L,file) ((void)L, (_pclose(file) != -1)) 676#define lua_pclose(L,file) ((void)L, (_pclose(file) != -1))
677 677
678#else 678#else
679 679
680#define lua_popen(L,c,m) ((void)((void)c, m), \ 680#define lua_popen(L,c,m) ((void)((void)c, m), \
681 luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0) 681 luaL_error(L, LUA_QL("popen") " not supported"), (FILE*)0)
682#define lua_pclose(L,file) ((void)((void)L, file), 0) 682#define lua_pclose(L,file) ((void)((void)L, file), 0)
683 683
684#endif 684#endif
685 685
@@ -712,7 +712,7 @@ union luai_Cast { double l_d; long l_l; };
712** CHANGE (define) this if you really need that. This value must be 712** CHANGE (define) this if you really need that. This value must be
713** a multiple of the maximum alignment required for your machine. 713** a multiple of the maximum alignment required for your machine.
714*/ 714*/
715#define LUAI_EXTRASPACE 0 715#define LUAI_EXTRASPACE 0
716 716
717 717
718/* 718/*
@@ -720,12 +720,12 @@ union luai_Cast { double l_d; long l_l; };
720** CHANGE them if you defined LUAI_EXTRASPACE and need to do something 720** CHANGE them if you defined LUAI_EXTRASPACE and need to do something
721** extra when a thread is created/deleted/resumed/yielded. 721** extra when a thread is created/deleted/resumed/yielded.
722*/ 722*/
723#define luai_userstateopen(L) ((void)L) 723#define luai_userstateopen(L) ((void)L)
724#define luai_userstateclose(L) ((void)L) 724#define luai_userstateclose(L) ((void)L)
725#define luai_userstatethread(L,L1) ((void)L) 725#define luai_userstatethread(L,L1) ((void)L)
726#define luai_userstatefree(L) ((void)L) 726#define luai_userstatefree(L) ((void)L)
727#define luai_userstateresume(L,n) ((void)L) 727#define luai_userstateresume(L,n) ((void)L)
728#define luai_userstateyield(L,n) ((void)L) 728#define luai_userstateyield(L,n) ((void)L)
729 729
730 730
731/* 731/*
@@ -738,13 +738,13 @@ union luai_Cast { double l_d; long l_l; };
738 738
739#if defined(LUA_USELONGLONG) 739#if defined(LUA_USELONGLONG)
740 740
741#define LUA_INTFRMLEN "ll" 741#define LUA_INTFRMLEN "ll"
742#define LUA_INTFRM_T long long 742#define LUA_INTFRM_T long long
743 743
744#else 744#else
745 745
746#define LUA_INTFRMLEN "l" 746#define LUA_INTFRMLEN "l"
747#define LUA_INTFRM_T long 747#define LUA_INTFRM_T long
748 748
749#endif 749#endif
750 750
@@ -757,7 +757,60 @@ union luai_Cast { double l_d; long l_l; };
757** without modifying the main part of the file. 757** without modifying the main part of the file.
758*/ 758*/
759 759
760/*Rocklua integer patch */
761#undef LUA_NUMBER_DOUBLE
762
763#undef LUA_NUMBER
764#define LUA_NUMBER long
765
766#undef LUAI_UACNUMBER
767#define LUAI_UACNUMBER long
768
769#undef LUA_NUMBER_SCAN
770#define LUA_NUMBER_SCAN "%ld"
771
772#undef LUA_NUMBER_FMT
773#define LUA_NUMBER_FMT "%ld"
774
775#undef lua_number2str
776#define lua_number2str(s,n) snprintf((s), 32, LUA_NUMBER_FMT, (n))
777
778#define LUAI_MAXNUMBER2STR 32 /* 16 digits, sign, point, and \0 */
779
780#undef lua_str2number
781#define lua_str2number(s,p) strtol((s), (p), 10)
782
783#undef luai_nummod
784#define luai_nummod(a,b) ((a)%(b))
785
786extern long rb_pow(long, long);
787#undef luai_numpow
788#define luai_numpow(a,b) (rb_pow(a,b))
789
790#undef LUAI_USER_ALIGNMENT_T
791#define LUAI_USER_ALIGNMENT_T union { void *s; long l; }
792
793/* Compatibility */
794#undef LUA_COMPAT_VARARG
795#undef LUA_COMPAT_MOD
796#undef LUA_COMPAT_LSTR
797#undef LUA_COMPAT_GFIND
798#undef LUA_COMPAT_OPENLIB
799
800/* Resize heap allocated buffers */
801#undef LUAI_MAXVARS /*200*/
802#define LUAI_MAXVARS 100
803
804#undef LUAI_MAXUPVALUES /*60*/
805#define LUAI_MAXUPVALUES 30
806
807#undef LUAL_BUFFERSIZE /*1024*/
808#define LUAL_BUFFERSIZE 512
809
810/*Rocklua functions*/
760#include "rockconf.h" 811#include "rockconf.h"
812
813/*else*/
761#define LUAC_TRUST_BINARIES 814#define LUAC_TRUST_BINARIES
762#endif
763 815
816#endif