diff options
| -rw-r--r-- | llimits.h | 9 | ||||
| -rw-r--r-- | lvm.c | 6 |
2 files changed, 11 insertions, 4 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: llimits.h,v 1.14 2000/08/29 14:48:16 roberto Exp roberto $ | 2 | ** $Id: llimits.h,v 1.15 2000/09/29 12:42:13 roberto Exp roberto $ |
| 3 | ** Limits, basic types, and some other "installation-dependent" definitions | 3 | ** Limits, basic types, and some other "installation-dependent" definitions |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -41,6 +41,13 @@ | |||
| 41 | 41 | ||
| 42 | typedef LUA_NUM_TYPE Number; | 42 | typedef LUA_NUM_TYPE Number; |
| 43 | 43 | ||
| 44 | /* function to convert a Number to a string */ | ||
| 45 | #define lua_number2str(s,n) sprintf((s), "%.16g", (n)) | ||
| 46 | |||
| 47 | /* function to convert a string to a Number */ | ||
| 48 | #define lua_str2number(s,p) strtod((s), (p)) | ||
| 49 | |||
| 50 | |||
| 44 | 51 | ||
| 45 | typedef unsigned long lint32; /* unsigned int with at least 32 bits */ | 52 | typedef unsigned long lint32; /* unsigned int with at least 32 bits */ |
| 46 | 53 | ||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lvm.c,v 1.138 2000/10/02 14:47:43 roberto Exp roberto $ | 2 | ** $Id: lvm.c,v 1.139 2000/10/02 20:10:55 roberto Exp roberto $ |
| 3 | ** Lua virtual machine | 3 | ** Lua virtual machine |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -39,7 +39,7 @@ | |||
| 39 | 39 | ||
| 40 | 40 | ||
| 41 | 41 | ||
| 42 | int luaV_tonumber (TObject *obj) { /* LUA_NUMBER */ | 42 | int luaV_tonumber (TObject *obj) { |
| 43 | if (ttype(obj) != TAG_STRING) | 43 | if (ttype(obj) != TAG_STRING) |
| 44 | return 1; | 44 | return 1; |
| 45 | else { | 45 | else { |
| @@ -56,7 +56,7 @@ int luaV_tostring (lua_State *L, TObject *obj) { /* LUA_NUMBER */ | |||
| 56 | return 1; | 56 | return 1; |
| 57 | else { | 57 | else { |
| 58 | char s[32]; /* 16 digits, sign, point and \0 (+ some extra...) */ | 58 | char s[32]; /* 16 digits, sign, point and \0 (+ some extra...) */ |
| 59 | sprintf(s, "%.16g", (double)nvalue(obj)); | 59 | lua_number2str(s, nvalue(obj)); /* convert `s' to number */ |
| 60 | tsvalue(obj) = luaS_new(L, s); | 60 | tsvalue(obj) = luaS_new(L, s); |
| 61 | ttype(obj) = TAG_STRING; | 61 | ttype(obj) = TAG_STRING; |
| 62 | return 0; | 62 | return 0; |
