mirror of https://github.com/rusefi/lua.git
String library to LUA
This commit is contained in:
parent
26c3684c4f
commit
212fdf861a
26
strlib.c
26
strlib.c
|
@ -1,12 +1,10 @@
|
||||||
/*
|
/*
|
||||||
** strlib.c
|
** strlib.c
|
||||||
** String library to LUA
|
** String library to LUA
|
||||||
**
|
|
||||||
** Waldemar Celes Filho
|
|
||||||
** TeCGraf - PUC-Rio
|
|
||||||
** 19 May 93
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
char *rcs_strlib="$Id: $";
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
@ -21,16 +19,18 @@
|
||||||
*/
|
*/
|
||||||
static void str_find (void)
|
static void str_find (void)
|
||||||
{
|
{
|
||||||
int n;
|
char *s1, *s2, *f;
|
||||||
char *s1, *s2;
|
|
||||||
lua_Object o1 = lua_getparam (1);
|
lua_Object o1 = lua_getparam (1);
|
||||||
lua_Object o2 = lua_getparam (2);
|
lua_Object o2 = lua_getparam (2);
|
||||||
if (!lua_isstring(o1) || !lua_isstring(o2))
|
if (!lua_isstring(o1) || !lua_isstring(o2))
|
||||||
{ lua_error ("incorrect arguments to function `strfind'"); return; }
|
{ lua_error ("incorrect arguments to function `strfind'"); return; }
|
||||||
s1 = lua_getstring(o1);
|
s1 = lua_getstring(o1);
|
||||||
s2 = lua_getstring(o2);
|
s2 = lua_getstring(o2);
|
||||||
n = strstr(s1,s2) - s1 + 1;
|
f = strstr(s1,s2);
|
||||||
lua_pushnumber (n);
|
if (f != NULL)
|
||||||
|
lua_pushnumber (f-s1+1);
|
||||||
|
else
|
||||||
|
lua_pushnil();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -59,13 +59,15 @@ static void str_sub (void)
|
||||||
lua_Object o1 = lua_getparam (1);
|
lua_Object o1 = lua_getparam (1);
|
||||||
lua_Object o2 = lua_getparam (2);
|
lua_Object o2 = lua_getparam (2);
|
||||||
lua_Object o3 = lua_getparam (3);
|
lua_Object o3 = lua_getparam (3);
|
||||||
if (!lua_isstring(o1) || !lua_isnumber(o2) || !lua_isnumber(o3))
|
if (!lua_isstring(o1) || !lua_isnumber(o2))
|
||||||
{ lua_error ("incorrect arguments to function `strsub'"); return; }
|
{ lua_error ("incorrect arguments to function `strsub'"); return; }
|
||||||
s = strdup (lua_getstring(o1));
|
if (o3 != NULL && !lua_isnumber(o3))
|
||||||
|
{ lua_error ("incorrect third argument to function `strsub'"); return; }
|
||||||
|
s = lua_copystring(o1);
|
||||||
start = lua_getnumber (o2);
|
start = lua_getnumber (o2);
|
||||||
end = lua_getnumber (o3);
|
end = o3 == NULL ? strlen(s) : lua_getnumber (o3);
|
||||||
if (end < start || start < 1 || end > strlen(s))
|
if (end < start || start < 1 || end > strlen(s))
|
||||||
lua_pushstring ("");
|
lua_pushstring("");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
s[end] = 0;
|
s[end] = 0;
|
||||||
|
|
Loading…
Reference in New Issue