mirror of https://github.com/lua/lua
"lua_check_number" accepts strings convertible to numbers.
This commit is contained in:
parent
3abc25fa54
commit
801722825d
4
lualib.h
4
lualib.h
|
@ -2,7 +2,7 @@
|
|||
** Libraries to be used in LUA programs
|
||||
** Grupo de Tecnologia em Computacao Grafica
|
||||
** 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
|
||||
|
@ -16,7 +16,7 @@ void mathlib_open (void);
|
|||
/* auxiliar functions (private) */
|
||||
void lua_arg_error(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);
|
||||
|
||||
#endif
|
||||
|
|
22
strlib.c
22
strlib.c
|
@ -3,7 +3,7 @@
|
|||
** 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 <stdio.h>
|
||||
|
@ -29,12 +29,20 @@ char *lua_check_string (int numArg, char *funcname)
|
|||
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);
|
||||
if (!lua_isnumber(o))
|
||||
lua_arg_error(funcname);
|
||||
return lua_getnumber(o);
|
||||
if (lua_isnumber(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)
|
||||
|
@ -171,7 +179,7 @@ static void str_ascii (void)
|
|||
#define MAX_CONVERTION 2000
|
||||
#define MAX_FORMAT 50
|
||||
|
||||
static void io_format (void)
|
||||
static void str_format (void)
|
||||
{
|
||||
int arg = 1;
|
||||
char *strfrmt = lua_check_string(arg++, "format");
|
||||
|
@ -244,5 +252,5 @@ void strlib_open (void)
|
|||
lua_register ("strlower", str_lower);
|
||||
lua_register ("strupper", str_upper);
|
||||
lua_register ("ascii", str_ascii);
|
||||
lua_register ("format", io_format);
|
||||
lua_register ("format", str_format);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue