"lua_check_number" accepts strings convertible to numbers.
This commit is contained in:
4
lualib.h
4
lualib.h
@@ -2,7 +2,7 @@
|
|||||||
** Libraries to be used in LUA programs
|
** Libraries to be used in LUA programs
|
||||||
** Grupo de Tecnologia em Computacao Grafica
|
** Grupo de Tecnologia em Computacao Grafica
|
||||||
** TeCGraf - PUC-Rio
|
** TeCGraf - PUC-Rio
|
||||||
** $Id: lualib.h,v 1.4 1995/11/10 17:54:31 roberto Exp roberto $
|
** $Id: lualib.h,v 1.5 1996/01/22 17:38:57 roberto Exp roberto $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef lualib_h
|
#ifndef lualib_h
|
||||||
@@ -16,7 +16,7 @@ void mathlib_open (void);
|
|||||||
/* auxiliar functions (private) */
|
/* auxiliar functions (private) */
|
||||||
void lua_arg_error(char *funcname);
|
void lua_arg_error(char *funcname);
|
||||||
char *lua_check_string (int numArg, char *funcname);
|
char *lua_check_string (int numArg, char *funcname);
|
||||||
float lua_check_number (int numArg, char *funcname);
|
double lua_check_number (int numArg, char *funcname);
|
||||||
char *luaI_addchar (int c);
|
char *luaI_addchar (int c);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
20
strlib.c
20
strlib.c
@@ -3,7 +3,7 @@
|
|||||||
** String library to LUA
|
** String library to LUA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char *rcs_strlib="$Id: strlib.c,v 1.15 1996/01/22 17:38:57 roberto Exp roberto $";
|
char *rcs_strlib="$Id: strlib.c,v 1.16 1996/01/26 12:11:28 roberto Exp roberto $";
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -29,12 +29,20 @@ char *lua_check_string (int numArg, char *funcname)
|
|||||||
return lua_getstring(o);
|
return lua_getstring(o);
|
||||||
}
|
}
|
||||||
|
|
||||||
float lua_check_number (int numArg, char *funcname)
|
double lua_check_number (int numArg, char *funcname)
|
||||||
{
|
{
|
||||||
lua_Object o = lua_getparam(numArg);
|
lua_Object o = lua_getparam(numArg);
|
||||||
if (!lua_isnumber(o))
|
if (lua_isnumber(o))
|
||||||
lua_arg_error(funcname);
|
|
||||||
return lua_getnumber(o);
|
return lua_getnumber(o);
|
||||||
|
else if (lua_isstring(o))
|
||||||
|
{
|
||||||
|
float t;
|
||||||
|
char c;
|
||||||
|
if (sscanf(lua_getstring(o), "%f %c",&t, &c) == 1)
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
lua_arg_error(funcname);
|
||||||
|
return 0; /* to avoid warnings */
|
||||||
}
|
}
|
||||||
|
|
||||||
char *luaI_addchar (int c)
|
char *luaI_addchar (int c)
|
||||||
@@ -171,7 +179,7 @@ static void str_ascii (void)
|
|||||||
#define MAX_CONVERTION 2000
|
#define MAX_CONVERTION 2000
|
||||||
#define MAX_FORMAT 50
|
#define MAX_FORMAT 50
|
||||||
|
|
||||||
static void io_format (void)
|
static void str_format (void)
|
||||||
{
|
{
|
||||||
int arg = 1;
|
int arg = 1;
|
||||||
char *strfrmt = lua_check_string(arg++, "format");
|
char *strfrmt = lua_check_string(arg++, "format");
|
||||||
@@ -244,5 +252,5 @@ void strlib_open (void)
|
|||||||
lua_register ("strlower", str_lower);
|
lua_register ("strlower", str_lower);
|
||||||
lua_register ("strupper", str_upper);
|
lua_register ("strupper", str_upper);
|
||||||
lua_register ("ascii", str_ascii);
|
lua_register ("ascii", str_ascii);
|
||||||
lua_register ("format", io_format);
|
lua_register ("format", str_format);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user