aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--luaconf.h46
1 files changed, 26 insertions, 20 deletions
diff --git a/luaconf.h b/luaconf.h
index 6f8441a4..407159ae 100644
--- a/luaconf.h
+++ b/luaconf.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: luaconf.h,v 1.252 2015/06/18 14:26:05 roberto Exp roberto $ 2** $Id: luaconf.h,v 1.253 2015/06/24 18:23:57 roberto Exp roberto $
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*/
@@ -412,9 +412,33 @@
412@@ LUA_NUMBER_FMT is the format for writing floats. 412@@ LUA_NUMBER_FMT is the format for writing floats.
413@@ lua_number2str converts a float to a string. 413@@ lua_number2str converts a float to a string.
414@@ l_mathop allows the addition of an 'l' or 'f' to all math operations. 414@@ l_mathop allows the addition of an 'l' or 'f' to all math operations.
415@@ l_floor takes the floor of a float.
415@@ lua_str2number converts a decimal numeric string to a number. 416@@ lua_str2number converts a decimal numeric string to a number.
416*/ 417*/
417 418
419
420/* The following definitions are good for most cases here */
421
422#define l_floor(x) (l_mathop(floor)(x))
423
424#define lua_number2str(s,sz,n) l_sprintf((s), sz, LUA_NUMBER_FMT, (n))
425
426/*
427@@ lua_numbertointeger converts a float number to an integer, or
428** returns 0 if float is not within the range of a lua_Integer.
429** (The range comparisons are tricky because of rounding. The tests
430** here assume a two-complement representation, where MININTEGER always
431** has an exact representation as a float; MAXINTEGER may not have one,
432** and therefore its conversion to float may have an ill-defined value.)
433*/
434#define lua_numbertointeger(n,p) \
435 ((n) >= (LUA_NUMBER)(LUA_MININTEGER) && \
436 (n) < -(LUA_NUMBER)(LUA_MININTEGER) && \
437 (*(p) = (LUA_INTEGER)(n), 1))
438
439
440/* now the variable definitions */
441
418#if LUA_FLOAT_TYPE == LUA_FLOAT_FLOAT /* { single float */ 442#if LUA_FLOAT_TYPE == LUA_FLOAT_FLOAT /* { single float */
419 443
420#define LUA_NUMBER float 444#define LUA_NUMBER float
@@ -468,25 +492,6 @@
468#endif /* } */ 492#endif /* } */
469 493
470 494
471#define l_floor(x) (l_mathop(floor)(x))
472
473#define lua_number2str(s,sz,n) l_sprintf((s), sz, LUA_NUMBER_FMT, (n))
474
475
476/*
477@@ lua_numbertointeger converts a float number to an integer, or
478** returns 0 if float is not within the range of a lua_Integer.
479** (The range comparisons are tricky because of rounding. The tests
480** here assume a two-complement representation, where MININTEGER always
481** has an exact representation as a float; MAXINTEGER may not have one,
482** and therefore its conversion to float may have an ill-defined value.)
483*/
484#define lua_numbertointeger(n,p) \
485 ((n) >= (LUA_NUMBER)(LUA_MININTEGER) && \
486 (n) < -(LUA_NUMBER)(LUA_MININTEGER) && \
487 (*(p) = (LUA_INTEGER)(n), 1))
488
489
490 495
491/* 496/*
492@@ LUA_INTEGER is the integer type used by Lua. 497@@ LUA_INTEGER is the integer type used by Lua.
@@ -537,6 +542,7 @@
537 542
538#elif LUA_INT_TYPE == LUA_INT_LONGLONG /* }{ long long */ 543#elif LUA_INT_TYPE == LUA_INT_LONGLONG /* }{ long long */
539 544
545/* use presence of macro LLONG_MAX as proxy for C99 compliance */
540#if defined(LLONG_MAX) /* { */ 546#if defined(LLONG_MAX) /* { */
541/* use ISO C99 stuff */ 547/* use ISO C99 stuff */
542 548