diff --git a/lapi.c b/lapi.c index ee982f31..dbeb4f59 100644 --- a/lapi.c +++ b/lapi.c @@ -1,5 +1,5 @@ /* -** $Id: lapi.c,v 1.46 1999/06/17 17:04:03 roberto Exp roberto $ +** $Id: lapi.c,v 1.47 1999/06/22 20:37:23 roberto Exp roberto $ ** Lua API ** See Copyright Notice in lua.h */ @@ -24,8 +24,8 @@ #include "lvm.h" -char lua_ident[] = "$Lua: " LUA_VERSION " " LUA_COPYRIGHT " $\n" - "$Authors: " LUA_AUTHORS " $"; +const char lua_ident[] = "$Lua: " LUA_VERSION " " LUA_COPYRIGHT " $\n" + "$Authors: " LUA_AUTHORS " $"; @@ -34,8 +34,7 @@ TObject *luaA_Address (lua_Object o) { } -static lua_Type normalized_type (TObject *o) -{ +static lua_Type normalized_type (const TObject *o) { int t = ttype(o); switch (t) { case LUA_T_PMARK: @@ -50,21 +49,18 @@ static lua_Type normalized_type (TObject *o) } -static void set_normalized (TObject *d, TObject *s) -{ +static void set_normalized (TObject *d, const TObject *s) { d->value = s->value; d->ttype = normalized_type(s); } -static TObject *luaA_protovalue (TObject *o) -{ +static const TObject *luaA_protovalue (const TObject *o) { return (normalized_type(o) == LUA_T_CLOSURE) ? protovalue(o) : o; } -void luaA_packresults (void) -{ +void luaA_packresults (void) { luaV_pack(L->Cstack.lua2C, L->Cstack.num, L->stack.top); incr_top; } @@ -76,14 +72,13 @@ int luaA_passresults (void) { } -static void checkCparams (int nParams) -{ +static void checkCparams (int nParams) { if (L->stack.top-L->stack.stack < L->Cstack.base+nParams) lua_error("API error - wrong number of arguments in C2lua stack"); } -static lua_Object put_luaObject (TObject *o) { +static lua_Object put_luaObject (const TObject *o) { luaD_openstack((L->stack.top-L->stack.stack)-L->Cstack.base); L->stack.stack[L->Cstack.base++] = *o; return L->Cstack.base; /* this is +1 real position (see Ref) */ @@ -115,8 +110,7 @@ lua_Object lua_pop (void) { ** Get a parameter, returning the object handle or LUA_NOOBJECT on error. ** 'number' must be 1 to get the first parameter. */ -lua_Object lua_lua2C (int number) -{ +lua_Object lua_lua2C (int number) { if (number <= 0 || number > L->Cstack.num) return LUA_NOOBJECT; /* Ref(L->stack.stack+(L->Cstack.lua2C+number-1)) == L->stack.stack+(L->Cstack.lua2C+number-1)-L->stack.stack+1 == */ @@ -124,8 +118,7 @@ lua_Object lua_lua2C (int number) } -int lua_callfunction (lua_Object function) -{ +int lua_callfunction (lua_Object function) { if (function == LUA_NOOBJECT) return 1; else { @@ -136,14 +129,12 @@ int lua_callfunction (lua_Object function) } -lua_Object lua_gettagmethod (int tag, char *event) -{ +lua_Object lua_gettagmethod (int tag, const char *event) { return put_luaObject(luaT_gettagmethod(tag, event)); } -lua_Object lua_settagmethod (int tag, char *event) -{ +lua_Object lua_settagmethod (int tag, const char *event) { checkCparams(1); luaT_settagmethod(tag, event, L->stack.top-1); return put_luaObjectonTop(); @@ -159,8 +150,7 @@ lua_Object lua_seterrormethod (void) { } -lua_Object lua_gettable (void) -{ +lua_Object lua_gettable (void) { checkCparams(2); luaV_gettable(); return put_luaObjectonTop(); @@ -190,8 +180,7 @@ void lua_rawsettable (void) { } -lua_Object lua_createtable (void) -{ +lua_Object lua_createtable (void) { TObject o; luaC_checkGC(); avalue(&o) = luaH_new(0); @@ -200,31 +189,27 @@ lua_Object lua_createtable (void) } -lua_Object lua_getglobal (char *name) -{ +lua_Object lua_getglobal (const char *name) { luaD_checkstack(2); /* may need that to call T.M. */ luaV_getglobal(luaS_new(name)); return put_luaObjectonTop(); } -lua_Object lua_rawgetglobal (char *name) -{ +lua_Object lua_rawgetglobal (const char *name) { TaggedString *ts = luaS_new(name); return put_luaObject(&ts->u.s.globalval); } -void lua_setglobal (char *name) -{ +void lua_setglobal (const char *name) { checkCparams(1); luaD_checkstack(2); /* may need that to call T.M. */ luaV_setglobal(luaS_new(name)); } -void lua_rawsetglobal (char *name) -{ +void lua_rawsetglobal (const char *name) { TaggedString *ts = luaS_new(name); checkCparams(1); luaS_rawsetglobal(ts, --L->stack.top); @@ -232,113 +217,96 @@ void lua_rawsetglobal (char *name) -int lua_isnil (lua_Object o) -{ +int lua_isnil (lua_Object o) { return (o!= LUA_NOOBJECT) && (ttype(Address(o)) == LUA_T_NIL); } -int lua_istable (lua_Object o) -{ +int lua_istable (lua_Object o) { return (o!= LUA_NOOBJECT) && (ttype(Address(o)) == LUA_T_ARRAY); } -int lua_isuserdata (lua_Object o) -{ +int lua_isuserdata (lua_Object o) { return (o!= LUA_NOOBJECT) && (ttype(Address(o)) == LUA_T_USERDATA); } -int lua_iscfunction (lua_Object o) -{ +int lua_iscfunction (lua_Object o) { return (lua_tag(o) == LUA_T_CPROTO); } -int lua_isnumber (lua_Object o) -{ +int lua_isnumber (lua_Object o) { return (o!= LUA_NOOBJECT) && (tonumber(Address(o)) == 0); } -int lua_isstring (lua_Object o) -{ +int lua_isstring (lua_Object o) { int t = lua_tag(o); return (t == LUA_T_STRING) || (t == LUA_T_NUMBER); } -int lua_isfunction (lua_Object o) -{ +int lua_isfunction (lua_Object o) { int t = lua_tag(o); return (t == LUA_T_PROTO) || (t == LUA_T_CPROTO); } -double lua_getnumber (lua_Object object) -{ +double lua_getnumber (lua_Object object) { if (object == LUA_NOOBJECT) return 0.0; if (tonumber(Address(object))) return 0.0; else return (nvalue(Address(object))); } -char *lua_getstring (lua_Object object) -{ +const char *lua_getstring (lua_Object object) { luaC_checkGC(); /* "tostring" may create a new string */ if (object == LUA_NOOBJECT || tostring(Address(object))) return NULL; else return (svalue(Address(object))); } -long lua_strlen (lua_Object object) -{ +long lua_strlen (lua_Object object) { luaC_checkGC(); /* "tostring" may create a new string */ if (object == LUA_NOOBJECT || tostring(Address(object))) return 0L; else return (tsvalue(Address(object))->u.s.len); } -void *lua_getuserdata (lua_Object object) -{ +void *lua_getuserdata (lua_Object object) { if (object == LUA_NOOBJECT || ttype(Address(object)) != LUA_T_USERDATA) return NULL; else return tsvalue(Address(object))->u.d.v; } -lua_CFunction lua_getcfunction (lua_Object object) -{ +lua_CFunction lua_getcfunction (lua_Object object) { if (!lua_iscfunction(object)) return NULL; else return fvalue(luaA_protovalue(Address(object))); } -void lua_pushnil (void) -{ +void lua_pushnil (void) { ttype(L->stack.top) = LUA_T_NIL; incr_top; } -void lua_pushnumber (double n) -{ +void lua_pushnumber (double n) { ttype(L->stack.top) = LUA_T_NUMBER; nvalue(L->stack.top) = n; incr_top; } -void lua_pushlstring (char *s, long len) -{ +void lua_pushlstring (const char *s, long len) { tsvalue(L->stack.top) = luaS_newlstr(s, len); ttype(L->stack.top) = LUA_T_STRING; incr_top; luaC_checkGC(); } -void lua_pushstring (char *s) -{ +void lua_pushstring (const char *s) { if (s == NULL) lua_pushnil(); else lua_pushlstring(s, strlen(s)); } -void lua_pushcclosure (lua_CFunction fn, int n) -{ +void lua_pushcclosure (lua_CFunction fn, int n) { if (fn == NULL) lua_error("API error - attempt to push a NULL Cfunction"); checkCparams(n); @@ -349,8 +317,7 @@ void lua_pushcclosure (lua_CFunction fn, int n) luaC_checkGC(); } -void lua_pushusertag (void *u, int tag) -{ +void lua_pushusertag (void *u, int tag) { if (tag < 0 && tag != LUA_ANYTAG) luaT_realtag(tag); /* error if tag is not valid */ tsvalue(L->stack.top) = luaS_createudata(u, tag); @@ -359,8 +326,7 @@ void lua_pushusertag (void *u, int tag) luaC_checkGC(); } -void luaA_pushobject (TObject *o) -{ +void luaA_pushobject (const TObject *o) { *L->stack.top = *o; incr_top; } @@ -373,12 +339,11 @@ void lua_pushobject (lua_Object o) { } -int lua_tag (lua_Object lo) -{ +int lua_tag (lua_Object lo) { if (lo == LUA_NOOBJECT) return LUA_T_NIL; else { - TObject *o = Address(lo); + const TObject *o = Address(lo); int t; switch (t = ttype(o)) { case LUA_T_USERDATA: @@ -402,8 +367,7 @@ int lua_tag (lua_Object lo) } -void lua_settag (int tag) -{ +void lua_settag (int tag) { checkCparams(1); luaT_realtag(tag); switch (ttype(L->stack.top-1)) { @@ -440,7 +404,7 @@ TaggedString *luaA_nextvar (TaggedString *g) { } -char *lua_nextvar (char *varname) { +const char *lua_nextvar (const char *varname) { TaggedString *g = (varname == NULL) ? NULL : luaS_new(varname); g = luaA_nextvar(g); if (g) { @@ -454,7 +418,7 @@ char *lua_nextvar (char *varname) { } -int luaA_next (Hash *t, int i) { +int luaA_next (const Hash *t, int i) { int tsize = nhash(t); for (; istack.top-1)-L->stack.stack; i>=0; i--) { int t = L->stack.stack[i].ttype; @@ -533,20 +496,20 @@ lua_Function lua_stackedfunction (int level) int lua_nups (lua_Function func) { - TObject *o = luaA_Address(func); + const TObject *o = luaA_Address(func); return (!o || normalized_type(o) != LUA_T_CLOSURE) ? 0 : o->value.cl->nelems; } -int lua_currentline (lua_Function func) -{ - TObject *f = Address(func); +int lua_currentline (lua_Function func) { + const TObject *f = Address(func); return (f+1 < L->stack.top && (f+1)->ttype == LUA_T_LINE) ? (f+1)->value.i : -1; } -lua_Object lua_getlocal (lua_Function func, int local_number, char **name) { +lua_Object lua_getlocal (lua_Function func, int local_number, + const char **name) { /* check whether func is a Lua function */ if (lua_tag(func) != LUA_T_PROTO) return LUA_NOOBJECT; @@ -565,15 +528,14 @@ lua_Object lua_getlocal (lua_Function func, int local_number, char **name) { } -int lua_setlocal (lua_Function func, int local_number) -{ +int lua_setlocal (lua_Function func, int local_number) { /* check whether func is a Lua function */ if (lua_tag(func) != LUA_T_PROTO) return 0; else { TObject *f = Address(func); TProtoFunc *fp = luaA_protovalue(f)->value.tf; - char *name = luaF_getlocalname(fp, local_number, lua_currentline(func)); + const char *name = luaF_getlocalname(fp, local_number, lua_currentline(func)); checkCparams(1); --L->stack.top; if (name) { @@ -588,11 +550,11 @@ int lua_setlocal (lua_Function func, int local_number) } -void lua_funcinfo (lua_Object func, char **source, int *linedefined) { +void lua_funcinfo (lua_Object func, const char **source, int *linedefined) { if (!lua_isfunction(func)) lua_error("API error - `funcinfo' called with a non-function value"); else { - TObject *f = luaA_protovalue(Address(func)); + const TObject *f = luaA_protovalue(Address(func)); if (normalized_type(f) == LUA_T_PROTO) { *source = tfvalue(f)->source->str; *linedefined = tfvalue(f)->lineDefined; @@ -605,14 +567,13 @@ void lua_funcinfo (lua_Object func, char **source, int *linedefined) { } -static int checkfunc (TObject *o) -{ +static int checkfunc (TObject *o) { return luaO_equalObj(o, L->stack.top); } -char *lua_getobjname (lua_Object o, char **name) -{ /* try to find a name for given function */ +const char *lua_getobjname (lua_Object o, const char **name) { + /* try to find a name for given function */ set_normalized(L->stack.top, Address(o)); /* to be accessed by "checkfunc" */ if ((*name = luaS_travsymbol(checkfunc)) != NULL) return "global"; @@ -662,7 +623,7 @@ int lua_ref (int lock) { lua_Object lua_getref (int ref) { - TObject *o = luaC_getref(ref); + const TObject *o = luaC_getref(ref); return (o ? put_luaObject(o) : LUA_NOOBJECT); } diff --git a/lapi.h b/lapi.h index c3d6fc8d..b836f905 100644 --- a/lapi.h +++ b/lapi.h @@ -1,5 +1,5 @@ /* -** $Id: lapi.h,v 1.3 1999/02/22 19:13:12 roberto Exp roberto $ +** $Id: lapi.h,v 1.4 1999/02/23 14:57:28 roberto Exp roberto $ ** Auxiliary functions from Lua API ** See Copyright Notice in lua.h */ @@ -13,10 +13,10 @@ TObject *luaA_Address (lua_Object o); -void luaA_pushobject (TObject *o); +void luaA_pushobject (const TObject *o); void luaA_packresults (void); int luaA_passresults (void); TaggedString *luaA_nextvar (TaggedString *g); -int luaA_next (Hash *t, int i); +int luaA_next (const Hash *t, int i); #endif diff --git a/lauxlib.c b/lauxlib.c index a7746bbe..9387a54a 100644 --- a/lauxlib.c +++ b/lauxlib.c @@ -1,5 +1,5 @@ /* -** $Id: lauxlib.c,v 1.16 1999/03/10 14:19:41 roberto Exp roberto $ +** $Id: lauxlib.c,v 1.17 1999/03/11 18:59:19 roberto Exp roberto $ ** Auxiliary functions for building Lua libraries ** See Copyright Notice in lua.h */ @@ -20,7 +20,7 @@ -int luaL_findstring (char *name, char *list[]) { +int luaL_findstring (const char *name, const char *const list[]) { int i; for (i=0; list[i]; i++) if (strcmp(list[i], name) == 0) @@ -28,9 +28,9 @@ int luaL_findstring (char *name, char *list[]) { return -1; /* name not found */ } -void luaL_argerror (int numarg, char *extramsg) { +void luaL_argerror (int numarg, const char *extramsg) { lua_Function f = lua_stackedfunction(0); - char *funcname; + const char *funcname; lua_getobjname(f, &funcname); numarg -= lua_nups(f); if (funcname == NULL) @@ -42,58 +42,50 @@ void luaL_argerror (int numarg, char *extramsg) { numarg, funcname, extramsg); } -char *luaL_check_lstr (int numArg, long *len) -{ +const char *luaL_check_lstr (int numArg, long *len) { lua_Object o = lua_getparam(numArg); luaL_arg_check(lua_isstring(o), numArg, "string expected"); if (len) *len = lua_strlen(o); return lua_getstring(o); } -char *luaL_opt_lstr (int numArg, char *def, long *len) -{ +const char *luaL_opt_lstr (int numArg, const char *def, long *len) { return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : luaL_check_lstr(numArg, len); } -double luaL_check_number (int numArg) -{ +double luaL_check_number (int numArg) { lua_Object o = lua_getparam(numArg); luaL_arg_check(lua_isnumber(o), numArg, "number expected"); return lua_getnumber(o); } -double luaL_opt_number (int numArg, double def) -{ +double luaL_opt_number (int numArg, double def) { return (lua_getparam(numArg) == LUA_NOOBJECT) ? def : luaL_check_number(numArg); } -lua_Object luaL_tablearg (int arg) -{ +lua_Object luaL_tablearg (int arg) { lua_Object o = lua_getparam(arg); luaL_arg_check(lua_istable(o), arg, "table expected"); return o; } -lua_Object luaL_functionarg (int arg) -{ +lua_Object luaL_functionarg (int arg) { lua_Object o = lua_getparam(arg); luaL_arg_check(lua_isfunction(o), arg, "function expected"); return o; } -lua_Object luaL_nonnullarg (int numArg) -{ +lua_Object luaL_nonnullarg (int numArg) { lua_Object o = lua_getparam(numArg); luaL_arg_check(o != LUA_NOOBJECT, numArg, "value expected"); return o; } -void luaL_openlib (struct luaL_reg *l, int n) -{ +void luaL_openlib (const struct luaL_reg *l, int n) { int i; lua_open(); /* make sure lua is already open */ for (i=0; inhash; i++) { - Node *nd = &(a->node[i]); + const Node *nd = &(a->node[i]); if (ttype(val(nd)) != LUA_T_NIL) { *(L->stack.top++) = f; *(L->stack.top++) = *ref(nd); @@ -504,7 +504,7 @@ static void swap (Hash *a, int i, int j) { luaH_setint(a, j, &temp); } -static int sort_comp (lua_Object f, TObject *a, TObject *b) { +static int sort_comp (lua_Object f, const TObject *a, const TObject *b) { /* notice: the caller (auxsort) must check stack space */ if (f != LUA_NOOBJECT) { *(L->stack.top) = *luaA_Address(f); @@ -604,7 +604,7 @@ static void query_strings (void) { static void countlist (void) { - char *s = luaL_check_string(1); + const char *s = luaL_check_string(1); GCnode *l = (s[0]=='t') ? L->roottable.next : (s[0]=='c') ? L->rootcl.next : (s[0]=='p') ? L->rootproto.next : L->rootglobal.next; int i=0; @@ -623,7 +623,7 @@ static void testC (void) { static int locks[10]; lua_Object reg[10]; char nome[2]; - char *s = luaL_check_string(1); + const char *s = luaL_check_string(1); nome[1] = 0; for (;;) { switch (*s++) { @@ -674,7 +674,7 @@ static void testC (void) { -static struct luaL_reg builtin_funcs[] = { +static const struct luaL_reg builtin_funcs[] = { #ifdef LUA_COMPAT2_5 {"setfallback", luaT_setfallback}, #endif diff --git a/ldblib.c b/ldblib.c index 18951e3c..432f8426 100644 --- a/ldblib.c +++ b/ldblib.c @@ -1,5 +1,5 @@ /* -** $Id: ldblib.c,v 1.4 1999/02/04 17:47:59 roberto Exp roberto $ +** $Id: ldblib.c,v 1.5 1999/03/04 21:17:26 roberto Exp roberto $ ** Interface from Lua to its debug API ** See Copyright Notice in lua.h */ @@ -15,7 +15,7 @@ -static void settabss (lua_Object t, char *i, char *v) { +static void settabss (lua_Object t, const char *i, const char *v) { lua_pushobject(t); lua_pushstring(i); lua_pushstring(v); @@ -23,7 +23,7 @@ static void settabss (lua_Object t, char *i, char *v) { } -static void settabsi (lua_Object t, char *i, int v) { +static void settabsi (lua_Object t, const char *i, int v) { lua_pushobject(t); lua_pushstring(i); lua_pushnumber(v); @@ -33,7 +33,7 @@ static void settabsi (lua_Object t, char *i, int v) { static lua_Object getfuncinfo (lua_Object func) { lua_Object result = lua_createtable(); - char *str; + const char *str; int line; lua_funcinfo(func, &str, &line); if (line == -1) /* C function? */ @@ -48,7 +48,7 @@ static lua_Object getfuncinfo (lua_Object func) { settabss(result, "source", str); } if (line != 0) { /* is it not a "main"? */ - char *kind = lua_getobjname(func, &str); + const char *kind = lua_getobjname(func, &str); if (*kind) { settabss(result, "name", str); settabss(result, "where", kind); @@ -86,10 +86,10 @@ static int findlocal (lua_Object func, int arg) { if (lua_isnumber(v)) return (int)lua_getnumber(v); else { - char *name = luaL_check_string(arg); + const char *name = luaL_check_string(arg); int i = 0; int result = -1; - char *vname; + const char *vname; while (lua_getlocal(func, ++i, &vname) != LUA_NOOBJECT) { if (strcmp(name, vname) == 0) result = i; /* keep looping to get the last var with this name */ @@ -104,7 +104,7 @@ static int findlocal (lua_Object func, int arg) { static void getlocal (void) { lua_Object func = lua_stackedfunction(luaL_check_int(1)); lua_Object val; - char *name; + const char *name; if (func == LUA_NOOBJECT) /* level out of range? */ return; /* return nil */ else if (lua_getparam(2) != LUA_NOOBJECT) { /* 2nd argument? */ @@ -161,7 +161,7 @@ static void linef (int line) { } -static void callf (lua_Function func, char *file, int line) { +static void callf (lua_Function func, const char *file, int line) { if (func != LUA_NOOBJECT) { lua_pushobject(func); lua_pushstring(file); @@ -201,7 +201,7 @@ static void setlinehook (void) { } -static struct luaL_reg dblib[] = { +static const struct luaL_reg dblib[] = { {"funcinfo", funcinfo}, {"getlocal", getlocal}, {"getstack", getstack}, diff --git a/ldo.c b/ldo.c index 71f389d3..81b1b708 100644 --- a/ldo.c +++ b/ldo.c @@ -1,5 +1,5 @@ /* -** $Id: ldo.c,v 1.44 1999/06/17 17:04:03 roberto Exp roberto $ +** $Id: ldo.c,v 1.45 1999/06/22 20:37:23 roberto Exp roberto $ ** Stack and Call structure of Lua ** See Copyright Notice in lua.h */ @@ -159,7 +159,7 @@ static StkId callCclosure (struct Closure *cl, lua_CFunction f, StkId base) { } -void luaD_callTM (TObject *f, int nParams, int nResults) { +void luaD_callTM (const TObject *f, int nParams, int nResults) { luaD_openstack(nParams); *(L->stack.top-nParams-1) = *f; luaD_calln(nParams, nResults); @@ -199,7 +199,7 @@ void luaD_calln (int nArgs, int nResults) { } default: { /* func is not a function */ /* Check the tag method for invalid functions */ - TObject *im = luaT_getimbyObj(func, IM_FUNCTION); + const TObject *im = luaT_getimbyObj(func, IM_FUNCTION); if (ttype(im) == LUA_T_NIL) lua_error("call expression not a function"); luaD_callTM(im, (S->top-S->stack)-(base-1), nResults); @@ -222,8 +222,7 @@ void luaD_calln (int nArgs, int nResults) { /* ** Traverse all objects on L->stack.stack */ -void luaD_travstack (int (*fn)(TObject *)) -{ +void luaD_travstack (int (*fn)(TObject *)) { StkId i; for (i = (L->stack.top-1)-L->stack.stack; i>=0; i--) fn(L->stack.stack+i); @@ -231,8 +230,8 @@ void luaD_travstack (int (*fn)(TObject *)) -static void message (char *s) { - TObject *em = &(luaS_new("_ERRORMESSAGE")->u.s.globalval); +static void message (const char *s) { + const TObject *em = &(luaS_new("_ERRORMESSAGE")->u.s.globalval); if (ttype(em) == LUA_T_PROTO || ttype(em) == LUA_T_CPROTO || ttype(em) == LUA_T_CLOSURE) { *L->stack.top = *em; @@ -245,7 +244,7 @@ static void message (char *s) { /* ** Reports an error, and jumps up to the available recover label */ -void lua_error (char *s) { +void lua_error (const char *s) { if (s) message(s); if (L->errorJmp) longjmp(L->errorJmp->b, 1); @@ -335,9 +334,8 @@ static int do_main (ZIO *z, int bin) { } -void luaD_gcIM (TObject *o) -{ - TObject *im = luaT_getimbyObj(o, IM_GC); +void luaD_gcIM (const TObject *o) { + const TObject *im = luaT_getimbyObj(o, IM_GC); if (ttype(im) != LUA_T_NIL) { *L->stack.top = *o; incr_top; @@ -348,7 +346,7 @@ void luaD_gcIM (TObject *o) #define MAXFILENAME 260 /* maximum part of a file name kept */ -int lua_dofile (char *filename) { +int lua_dofile (const char *filename) { ZIO z; int status; int c; @@ -371,12 +369,12 @@ int lua_dofile (char *filename) { } -int lua_dostring (char *str) { +int lua_dostring (const char *str) { return lua_dobuffer(str, strlen(str), str); } -int lua_dobuffer (char *buff, int size, char *name) { +int lua_dobuffer (const char *buff, int size, const char *name) { ZIO z; if (!name) name = "?"; luaZ_mopen(&z, buff, size, name); diff --git a/ldo.h b/ldo.h index cf651423..a4dac9a5 100644 --- a/ldo.h +++ b/ldo.h @@ -1,5 +1,5 @@ /* -** $Id: ldo.h,v 1.5 1998/07/12 16:14:34 roberto Exp roberto $ +** $Id: ldo.h,v 1.6 1999/06/22 20:37:23 roberto Exp roberto $ ** Stack and Call structure of Lua ** See Copyright Notice in lua.h */ @@ -36,9 +36,9 @@ void luaD_openstack (int nelems); void luaD_lineHook (int line); void luaD_callHook (StkId base, TProtoFunc *tf, int isreturn); void luaD_calln (int nArgs, int nResults); -void luaD_callTM (TObject *f, int nParams, int nResults); +void luaD_callTM (const TObject *f, int nParams, int nResults); int luaD_protectedrun (void); -void luaD_gcIM (TObject *o); +void luaD_gcIM (const TObject *o); void luaD_travstack (int (*fn)(TObject *)); void luaD_checkstack (int n); diff --git a/lfunc.c b/lfunc.c index e1bdd2bd..32fefb29 100644 --- a/lfunc.c +++ b/lfunc.c @@ -1,5 +1,5 @@ /* -** $Id: lfunc.c,v 1.9 1998/06/19 16:14:09 roberto Exp roberto $ +** $Id: lfunc.c,v 1.10 1999/03/04 21:17:26 roberto Exp roberto $ ** Auxiliary functions to manipulate prototypes and closures ** See Copyright Notice in lua.h */ @@ -16,8 +16,7 @@ -Closure *luaF_newclosure (int nelems) -{ +Closure *luaF_newclosure (int nelems) { Closure *c = (Closure *)luaM_malloc(sizeof(Closure)+nelems*sizeof(TObject)); luaO_insertlist(&(L->rootcl), (GCnode *)c); L->nblocks += gcsizeclosure(c); @@ -26,8 +25,7 @@ Closure *luaF_newclosure (int nelems) } -TProtoFunc *luaF_newproto (void) -{ +TProtoFunc *luaF_newproto (void) { TProtoFunc *f = luaM_new(TProtoFunc); f->code = NULL; f->lineDefined = 0; @@ -42,8 +40,7 @@ TProtoFunc *luaF_newproto (void) -static void freefunc (TProtoFunc *f) -{ +static void freefunc (TProtoFunc *f) { luaM_free(f->code); luaM_free(f->locvars); luaM_free(f->consts); @@ -51,8 +48,7 @@ static void freefunc (TProtoFunc *f) } -void luaF_freeproto (TProtoFunc *l) -{ +void luaF_freeproto (TProtoFunc *l) { while (l) { TProtoFunc *next = (TProtoFunc *)l->head.next; L->nblocks -= gcsizeproto(l); @@ -62,8 +58,7 @@ void luaF_freeproto (TProtoFunc *l) } -void luaF_freeclosure (Closure *l) -{ +void luaF_freeclosure (Closure *l) { while (l) { Closure *next = (Closure *)l->head.next; L->nblocks -= gcsizeclosure(l); @@ -77,10 +72,9 @@ void luaF_freeclosure (Closure *l) ** Look for n-th local variable at line "line" in function "func". ** Returns NULL if not found. */ -char *luaF_getlocalname (TProtoFunc *func, int local_number, int line) -{ +const char *luaF_getlocalname (TProtoFunc *func, int local_number, int line) { int count = 0; - char *varname = NULL; + const char *varname = NULL; LocVar *lv = func->locvars; if (lv == NULL) return NULL; diff --git a/lfunc.h b/lfunc.h index 7f1e5157..718a76c6 100644 --- a/lfunc.h +++ b/lfunc.h @@ -1,5 +1,5 @@ /* -** $Id: lfunc.h,v 1.4 1997/11/19 17:29:23 roberto Exp roberto $ +** $Id: lfunc.h,v 1.5 1997/12/15 16:17:20 roberto Exp roberto $ ** Lua Function structures ** See Copyright Notice in lua.h */ @@ -17,7 +17,7 @@ Closure *luaF_newclosure (int nelems); void luaF_freeproto (TProtoFunc *l); void luaF_freeclosure (Closure *l); -char *luaF_getlocalname (TProtoFunc *func, int local_number, int line); +const char *luaF_getlocalname (TProtoFunc *func, int local_number, int line); #endif diff --git a/lgc.c b/lgc.c index 66244fbf..b0e4b91a 100644 --- a/lgc.c +++ b/lgc.c @@ -1,5 +1,5 @@ /* -** $Id: lgc.c,v 1.23 1999/03/04 21:17:26 roberto Exp roberto $ +** $Id: lgc.c,v 1.24 1999/08/11 17:00:59 roberto Exp roberto $ ** Garbage Collector ** See Copyright Notice in lua.h */ @@ -29,7 +29,7 @@ static int markobject (TObject *o); */ -int luaC_ref (TObject *o, int lock) { +int luaC_ref (const TObject *o, int lock) { int ref; if (ttype(o) == LUA_T_NIL) ref = LUA_REFNIL; @@ -48,15 +48,13 @@ int luaC_ref (TObject *o, int lock) { } -void lua_unref (int ref) -{ +void lua_unref (int ref) { if (ref >= 0 && ref < L->refSize) L->refArray[ref].status = FREE; } -TObject* luaC_getref (int ref) -{ +const TObject *luaC_getref (int ref) { if (ref == LUA_REFNIL) return &luaO_nilobject; if (ref >= 0 && ref < L->refSize && @@ -67,8 +65,7 @@ TObject* luaC_getref (int ref) } -static void travlock (void) -{ +static void travlock (void) { int i; for (i=0; irefSize; i++) if (L->refArray[i].status == LOCK) @@ -76,8 +73,7 @@ static void travlock (void) } -static int ismarked (TObject *o) -{ +static int ismarked (const TObject *o) { /* valid only for locked objects */ switch (o->ttype) { case LUA_T_STRING: case LUA_T_USERDATA: @@ -99,8 +95,7 @@ static int ismarked (TObject *o) } -static void invalidaterefs (void) -{ +static void invalidaterefs (void) { int i; for (i=0; irefSize; i++) if (L->refArray[i].status == HOLD && !ismarked(&L->refArray[i].o)) @@ -109,8 +104,7 @@ static void invalidaterefs (void) -void luaC_hashcallIM (Hash *l) -{ +void luaC_hashcallIM (Hash *l) { TObject t; ttype(&t) = LUA_T_ARRAY; for (; l; l=(Hash *)l->head.next) { @@ -120,8 +114,7 @@ void luaC_hashcallIM (Hash *l) } -void luaC_strcallIM (TaggedString *l) -{ +void luaC_strcallIM (TaggedString *l) { TObject o; ttype(&o) = LUA_T_USERDATA; for (; l; l=(TaggedString *)l->head.next) @@ -133,8 +126,7 @@ void luaC_strcallIM (TaggedString *l) -static GCnode *listcollect (GCnode *l) -{ +static GCnode *listcollect (GCnode *l) { GCnode *frees = NULL; while (l) { GCnode *next = l->next; @@ -151,8 +143,7 @@ static GCnode *listcollect (GCnode *l) } -static void strmark (TaggedString *s) -{ +static void strmark (TaggedString *s) { if (!s->head.marked) s->head.marked = 1; } @@ -169,8 +160,7 @@ static void protomark (TProtoFunc *f) { } -static void closuremark (Closure *f) -{ +static void closuremark (Closure *f) { if (!f->head.marked) { int i; f->head.marked = 1; @@ -180,8 +170,7 @@ static void closuremark (Closure *f) } -static void hashmark (Hash *h) -{ +static void hashmark (Hash *h) { if (!h->head.marked) { int i; h->head.marked = 1; @@ -196,8 +185,7 @@ static void hashmark (Hash *h) } -static void globalmark (void) -{ +static void globalmark (void) { TaggedString *g; for (g=(TaggedString *)L->rootglobal.next; g; g=(TaggedString *)g->head.next){ LUA_ASSERT(g->constindex >= 0, "userdata in global list"); @@ -209,8 +197,7 @@ static void globalmark (void) } -static int markobject (TObject *o) -{ +static int markobject (TObject *o) { switch (ttype(o)) { case LUA_T_USERDATA: case LUA_T_STRING: strmark(tsvalue(o)); @@ -231,8 +218,7 @@ static int markobject (TObject *o) -static void markall (void) -{ +static void markall (void) { luaD_travstack(markobject); /* mark stack objects */ globalmark(); /* mark global variable values and names */ travlock(); /* mark locked objects */ @@ -240,8 +226,7 @@ static void markall (void) } -long lua_collectgarbage (long limit) -{ +long lua_collectgarbage (long limit) { unsigned long recovered = L->nblocks; /* to subtract nblocks after gc */ Hash *freetable; TaggedString *freestr; @@ -267,8 +252,7 @@ long lua_collectgarbage (long limit) } -void luaC_checkGC (void) -{ +void luaC_checkGC (void) { if (L->nblocks >= L->GCthreshold) lua_collectgarbage(0); } diff --git a/lgc.h b/lgc.h index 60a0b1ec..8bd7b3b1 100644 --- a/lgc.h +++ b/lgc.h @@ -1,5 +1,5 @@ /* -** $Id: lgc.h,v 1.3 1997/11/19 17:29:23 roberto Exp roberto $ +** $Id: lgc.h,v 1.4 1997/12/01 20:31:25 roberto Exp roberto $ ** Garbage Collector ** See Copyright Notice in lua.h */ @@ -12,8 +12,8 @@ void luaC_checkGC (void); -TObject* luaC_getref (int ref); -int luaC_ref (TObject *o, int lock); +const TObject *luaC_getref (int ref); +int luaC_ref (const TObject *o, int lock); void luaC_hashcallIM (Hash *l); void luaC_strcallIM (TaggedString *l); diff --git a/liolib.c b/liolib.c index 27f0afbe..fa76b9a1 100644 --- a/liolib.c +++ b/liolib.c @@ -1,5 +1,5 @@ /* -** $Id: liolib.c,v 1.42 1999/07/22 19:35:50 roberto Exp roberto $ +** $Id: liolib.c,v 1.43 1999/08/10 13:05:16 roberto Exp roberto $ ** Standard I/O (and system) library ** See Copyright Notice in lua.h */ @@ -44,8 +44,8 @@ #ifdef POPEN -FILE *popen(); -int pclose(); +/* FILE *popen(); +int pclose(); */ #define CLOSEFILE(f) ((pclose(f) == -1) ? fclose(f) : 0) #else /* no support for popen */ @@ -88,7 +88,7 @@ static int ishandle (lua_Object f) { } -static FILE *getfilebyname (char *name) { +static FILE *getfilebyname (const char *name) { lua_Object f = lua_rawgetglobal(name); if (!ishandle(f)) luaL_verror("global variable `%.50s' is not a file handle", name); @@ -109,7 +109,7 @@ static FILE *getnonullfile (int arg) { } -static FILE *getfileparam (char *name, int *arg) { +static FILE *getfileparam (const char *name, int *arg) { FILE *f = getfile(*arg); if (f) { (*arg)++; @@ -152,13 +152,13 @@ static void io_open (void) { } -static void setfile (FILE *f, char *name, int tag) { +static void setfile (FILE *f, const char *name, int tag) { lua_pushusertag(f, tag); lua_setglobal(name); } -static void setreturn (FILE *f, char *name) { +static void setreturn (FILE *f, const char *name) { if (f == NULL) pushresult(0); else { @@ -181,7 +181,7 @@ static void io_readfrom (void) { else if (lua_tag(f) == gettag()) /* deprecated option */ current = lua_getuserdata(f); else { - char *s = luaL_check_string(FIRSTARG); + const char *s = luaL_check_string(FIRSTARG); current = (*s == '|') ? popen(s+1, "r") : fopen(s, "r"); } setreturn(current, FINPUT); @@ -200,7 +200,7 @@ static void io_writeto (void) { else if (lua_tag(f) == gettag()) /* deprecated option */ current = lua_getuserdata(f); else { - char *s = luaL_check_string(FIRSTARG); + const char *s = luaL_check_string(FIRSTARG); current = (*s == '|') ? popen(s+1,"w") : fopen(s, "w"); } setreturn(current, FOUTPUT); @@ -228,7 +228,7 @@ static void io_appendto (void) { #define NEED_OTHER (EOF-1) /* just some flag different from EOF */ -static int read_pattern (FILE *f, char *p) { +static int read_pattern (FILE *f, const char *p) { int inskip = 0; /* {skip} level */ int c = NEED_OTHER; while (*p != '\0') { @@ -243,7 +243,7 @@ static int read_pattern (FILE *f, char *p) { p++; continue; default: { - char *ep = luaI_classend(p); /* get what is next */ + const char *ep = luaI_classend(p); /* get what is next */ int m; /* match result */ if (c == NEED_OTHER) c = getc(f); m = (c==EOF) ? 0 : luaI_singlematch(c, p, ep); @@ -317,10 +317,10 @@ static void read_file (FILE *f) { static void io_read (void) { - static char *options[] = {"*n", "*l", "*a", ".*", "*w", NULL}; + static const char *const options[] = {"*n", "*l", "*a", ".*", "*w", NULL}; int arg = FIRSTARG; FILE *f = getfileparam(FINPUT, &arg); - char *p = luaL_opt_string(arg++, "*l"); + const char *p = luaL_opt_string(arg++, "*l"); do { /* repeat for each part */ long l; int success; @@ -355,7 +355,7 @@ static void io_write (void) { int arg = FIRSTARG; FILE *f = getfileparam(FOUTPUT, &arg); int status = 1; - char *s; + const char *s; long l; while ((s = luaL_opt_lstr(arg++, NULL, &l)) != NULL) status = status && ((long)fwrite(s, 1, l, f) == l); @@ -364,8 +364,8 @@ static void io_write (void) { static void io_seek (void) { - static int mode[] = {SEEK_SET, SEEK_CUR, SEEK_END}; - static char *modenames[] = {"set", "cur", "end", NULL}; + static const int mode[] = {SEEK_SET, SEEK_CUR, SEEK_END}; + static const char *const modenames[] = {"set", "cur", "end", NULL}; FILE *f = getnonullfile(FIRSTARG); int op = luaL_findstring(luaL_opt_string(FIRSTARG+1, "cur"), modenames); long offset = luaL_opt_long(FIRSTARG+2, 0); @@ -428,7 +428,7 @@ static void io_clock (void) { static void io_date (void) { char b[256]; - char *s = luaL_opt_string(1, "%c"); + const char *s = luaL_opt_string(1, "%c"); struct tm *tm; time_t t; time(&t); tm = localtime(&t); @@ -440,9 +440,9 @@ static void io_date (void) { static void setloc (void) { - static int cat[] = {LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, - LC_TIME}; - static char *catnames[] = {"all", "collate", "ctype", "monetary", + static const int cat[] = {LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, + LC_NUMERIC, LC_TIME}; + static const char *const catnames[] = {"all", "collate", "ctype", "monetary", "numeric", "time", NULL}; int op = luaL_findstring(luaL_opt_string(2, "all"), catnames); luaL_arg_check(op != -1, 2, "invalid option"); @@ -485,9 +485,9 @@ static void errorfb (void) { lua_Object func; sprintf(buff, "lua error: %.200s\n", lua_getstring(lua_getparam(1))); while ((func = lua_stackedfunction(level++)) != LUA_NOOBJECT) { - char *name; + const char *name; int currentline; - char *chunkname; + const char *chunkname; char buffchunk[MAXSRC]; int linedefined; lua_funcinfo(func, &chunkname, &linedefined); @@ -531,7 +531,7 @@ static void errorfb (void) { -static struct luaL_reg iolib[] = { +static const struct luaL_reg iolib[] = { {"_ERRORMESSAGE", errorfb}, {"clock", io_clock}, {"date", io_date}, @@ -546,7 +546,7 @@ static struct luaL_reg iolib[] = { }; -static struct luaL_reg iolibtag[] = { +static const struct luaL_reg iolibtag[] = { {"appendto", io_appendto}, {"closefile", io_close}, {"flush", io_flush}, diff --git a/llex.c b/llex.c index 74aa7d3a..63404c3d 100644 --- a/llex.c +++ b/llex.c @@ -1,5 +1,5 @@ /* -** $Id: llex.c,v 1.36 1999/06/17 17:04:03 roberto Exp roberto $ +** $Id: llex.c,v 1.37 1999/07/22 19:29:42 roberto Exp roberto $ ** Lexical Analyzer ** See Copyright Notice in lua.h */ @@ -28,8 +28,8 @@ /* ORDER RESERVED */ -static char *reserved [] = {"and", "do", "else", "elseif", "end", "function", - "if", "local", "nil", "not", "or", "repeat", "return", "then", +static const char *const reserved [] = {"and", "do", "else", "elseif", "end", + "function", "if", "local", "nil", "not", "or", "repeat", "return", "then", "until", "while"}; @@ -44,7 +44,7 @@ void luaX_init (void) { #define MAXSRC 80 -void luaX_syntaxerror (LexState *ls, char *s, char *token) { +void luaX_syntaxerror (LexState *ls, const char *s, const char *token) { char buff[MAXSRC]; luaL_chunkid(buff, zname(ls->lex_z), sizeof(buff)); if (token[0] == '\0') @@ -54,7 +54,7 @@ void luaX_syntaxerror (LexState *ls, char *s, char *token) { } -void luaX_error (LexState *ls, char *s) { +void luaX_error (LexState *ls, const char *s) { save('\0'); luaX_syntaxerror(ls, s, luaL_buffer()); } @@ -117,8 +117,8 @@ static void skipspace (LexState *LS) { } -static int checkcond (LexState *LS, char *buff) { - static char *opts[] = {"nil", "1", NULL}; +static int checkcond (LexState *LS, const char *buff) { + static const char *const opts[] = {"nil", "1", NULL}; int i = luaL_findstring(buff, opts); if (i >= 0) return i; else if (isalpha((unsigned char)buff[0]) || buff[0] == '_') @@ -160,7 +160,7 @@ static void ifskip (LexState *LS) { static void inclinenumber (LexState *LS) { - static char *pragmas [] = + static const char *const pragmas [] = {"debug", "nodebug", "endinput", "end", "ifnot", "if", "else", NULL}; next(LS); /* skip '\n' */ ++LS->linenumber; diff --git a/llex.h b/llex.h index 0b0dd4d9..20928075 100644 --- a/llex.h +++ b/llex.h @@ -1,5 +1,5 @@ /* -** $Id: llex.h,v 1.12 1999/06/17 17:04:03 roberto Exp roberto $ +** $Id: llex.h,v 1.13 1999/07/22 19:29:42 roberto Exp roberto $ ** Lexical Analyzer ** See Copyright Notice in lua.h */ @@ -61,8 +61,8 @@ typedef struct LexState { void luaX_init (void); void luaX_setinput (LexState *LS, ZIO *z); int luaX_lex (LexState *LS); -void luaX_syntaxerror (LexState *ls, char *s, char *token); -void luaX_error (LexState *ls, char *s); +void luaX_syntaxerror (LexState *ls, const char *s, const char *token); +void luaX_error (LexState *ls, const char *s); void luaX_token2str (int token, char *s); diff --git a/lmathlib.c b/lmathlib.c index 5e9f10b0..0ea8491e 100644 --- a/lmathlib.c +++ b/lmathlib.c @@ -1,5 +1,5 @@ /* -** $Id: lmathlib.c,v 1.16 1999/02/19 17:33:35 roberto Exp roberto $ +** $Id: lmathlib.c,v 1.17 1999/07/07 17:54:08 roberto Exp roberto $ ** Lua standard mathematical library ** See Copyright Notice in lua.h */ @@ -164,7 +164,7 @@ static void math_randomseed (void) { } -static struct luaL_reg mathlib[] = { +static const struct luaL_reg mathlib[] = { {"abs", math_abs}, {"sin", math_sin}, {"cos", math_cos}, diff --git a/lmem.c b/lmem.c index 1c334b64..26aac9c6 100644 --- a/lmem.c +++ b/lmem.c @@ -1,5 +1,5 @@ /* -** $Id: lmem.c,v 1.16 1999/05/20 20:43:06 roberto Exp roberto $ +** $Id: lmem.c,v 1.17 1999/05/24 17:51:05 roberto Exp roberto $ ** Interface to Memory Manager ** See Copyright Notice in lua.h */ @@ -35,7 +35,7 @@ static unsigned long power2 (unsigned long n) { void *luaM_growaux (void *block, unsigned long nelems, int inc, int size, - char *errormsg, unsigned long limit) { + const char *errormsg, unsigned long limit) { unsigned long newn = nelems+inc; if (newn >= limit) lua_error(errormsg); if ((newn ^ nelems) <= nelems || /* still the same power of 2 limit? */ @@ -86,25 +86,23 @@ unsigned long totalmem = 0; static void *checkblock (void *block) { - if (block == NULL) - return NULL; - else { - unsigned long *b = blocksize(block); - unsigned long size = *b; - int i; - for (i=0;i oldsize) @@ -40,7 +39,7 @@ int luaO_redimension (int oldsize) } -int luaO_equalval (TObject *t1, TObject *t2) { +int luaO_equalval (const TObject *t1, const TObject *t2) { switch (ttype(t1)) { case LUA_T_NIL: return 1; case LUA_T_NUMBER: return nvalue(t1) == nvalue(t2); @@ -56,8 +55,7 @@ int luaO_equalval (TObject *t1, TObject *t2) { } -void luaO_insertlist (GCnode *root, GCnode *node) -{ +void luaO_insertlist (GCnode *root, GCnode *node) { node->next = root->next; root->next = node; node->marked = 0; @@ -90,7 +88,7 @@ static double expten (unsigned int e) { } -double luaO_str2d (char *s) { /* LUA_NUMBER */ +double luaO_str2d (const char *s) { /* LUA_NUMBER */ double a = 0.0; int point = 0; while (isdigit((unsigned char)*s)) { diff --git a/lobject.h b/lobject.h index 7c6a4959..91bf0cac 100644 --- a/lobject.h +++ b/lobject.h @@ -1,5 +1,5 @@ /* -** $Id: lobject.h,v 1.27 1999/03/04 21:17:26 roberto Exp roberto $ +** $Id: lobject.h,v 1.28 1999/03/16 16:43:27 roberto Exp roberto $ ** Type definitions for Lua objects ** See Copyright Notice in lua.h */ @@ -178,19 +178,19 @@ typedef struct Hash { } Hash; -extern char *luaO_typenames[]; +extern const char *const luaO_typenames[]; #define luaO_typename(o) luaO_typenames[-ttype(o)] -extern TObject luaO_nilobject; +extern const TObject luaO_nilobject; #define luaO_equalObj(t1,t2) ((ttype(t1) != ttype(t2)) ? 0 \ : luaO_equalval(t1,t2)) -int luaO_equalval (TObject *t1, TObject *t2); +int luaO_equalval (const TObject *t1, const TObject *t2); int luaO_redimension (int oldsize); void luaO_insertlist (GCnode *root, GCnode *node); -double luaO_str2d (char *s); +double luaO_str2d (const char *s); #ifdef OLD_ANSI void luaO_memup (void *dest, void *src, int size); diff --git a/lparser.c b/lparser.c index 37f1c854..0ba30b5e 100644 --- a/lparser.c +++ b/lparser.c @@ -1,5 +1,5 @@ /* -** $Id: lparser.c,v 1.37 1999/06/17 17:04:03 roberto Exp roberto $ +** $Id: lparser.c,v 1.38 1999/07/22 19:29:42 roberto Exp roberto $ ** LL(1) Parser and code generator for Lua ** See Copyright Notice in lua.h */ @@ -142,7 +142,7 @@ static void var_or_func_tail (LexState *ls, vardesc *v); -static void checklimit (LexState *ls, int val, int limit, char *msg) { +static void checklimit (LexState *ls, int val, int limit, const char *msg) { if (val > limit) { char buff[100]; sprintf(buff, "too many %.50s (limit=%d)", msg, limit); @@ -498,7 +498,7 @@ static void lua_pushvar (LexState *ls, vardesc *var) { } -static void storevar (LexState *ls, vardesc *var) { +static void storevar (LexState *ls, const vardesc *var) { switch (var->k) { case VLOCAL: code_oparg(ls, SETLOCAL, var->info, -1); @@ -597,12 +597,13 @@ static void close_func (LexState *ls) { -static int expfollow [] = {ELSE, ELSEIF, THEN, IF, WHILE, REPEAT, DO, NAME, - LOCAL, FUNCTION, END, UNTIL, RETURN, ')', ']', '}', ';', EOS, ',', 0}; +static const int expfollow [] = {ELSE, ELSEIF, THEN, IF, WHILE, REPEAT, + DO, NAME, LOCAL, FUNCTION, END, UNTIL, RETURN, ')', ']', '}', ';', + EOS, ',', 0}; -static int is_in (int tok, int *toks) { - int *t; +static int is_in (int tok, const int *toks) { + const int *t; for (t=toks; *t; t++) if (*t == tok) return t-toks; return -1; @@ -923,13 +924,13 @@ static void ret (LexState *ls) { */ #define POW 13 -static int binop [] = {EQ, NE, '>', '<', LE, GE, CONC, - '+', '-', '*', '/', '^', 0}; +static const int binop [] = {EQ, NE, '>', '<', LE, GE, CONC, + '+', '-', '*', '/', '^', 0}; -static int priority [POW+1] = {5, 5, 1, 1, 1, 1, 1, 1, 2, 3, 3, 4, 4, 6}; +static const int priority [POW+1] = {5, 5, 1, 1, 1, 1, 1, 1, 2, 3, 3, 4, 4, 6}; -static OpCode opcodes [POW+1] = {NOTOP, MINUSOP, EQOP, NEQOP, GTOP, LTOP, - LEOP, GEOP, CONCOP, ADDOP, SUBOP, MULTOP, DIVOP, POWOP}; +static const OpCode opcodes [POW+1] = {NOTOP, MINUSOP, EQOP, NEQOP, GTOP, + LTOP, LEOP, GEOP, CONCOP, ADDOP, SUBOP, MULTOP, DIVOP, POWOP}; #define MAXOPS 20 /* op's stack size (arbitrary limit) */ diff --git a/lparser.h b/lparser.h index 1bd3517c..6b243a98 100644 --- a/lparser.h +++ b/lparser.h @@ -1,5 +1,5 @@ /* -** $Id: lparser.h,v 1.2 1997/12/22 20:57:18 roberto Exp roberto $ +** $Id: lparser.h,v 1.3 1999/02/25 19:13:56 roberto Exp roberto $ ** LL(1) Parser and code generator for Lua ** See Copyright Notice in lua.h */ @@ -13,8 +13,8 @@ void luaY_codedebugline (int line); TProtoFunc *luaY_parser (ZIO *z); -void luaY_error (char *s); -void luaY_syntaxerror (char *s, char *token); +void luaY_error (const char *s); +void luaY_syntaxerror (const char *s, const char *token); #endif diff --git a/lstate.c b/lstate.c index 1a7fe22e..e5ad27bd 100644 --- a/lstate.c +++ b/lstate.c @@ -1,5 +1,5 @@ /* -** $Id: lstate.c,v 1.11 1999/05/11 14:19:32 roberto Exp roberto $ +** $Id: lstate.c,v 1.12 1999/05/11 20:08:20 roberto Exp roberto $ ** Global State ** See Copyright Notice in lua.h */ @@ -20,8 +20,7 @@ lua_State *lua_state = NULL; -void lua_open (void) -{ +void lua_open (void) { if (lua_state) return; lua_state = luaM_new(lua_State); L->Cstack.base = 0; @@ -58,8 +57,7 @@ void lua_open (void) } -void lua_close (void) -{ +void lua_close (void) { TaggedString *alludata = luaS_collectudata(); L->GCthreshold = MAX_INT; /* to avoid GC during GC */ luaC_hashcallIM((Hash *)L->roottable.next); /* GC t.methods for tables */ diff --git a/lstring.c b/lstring.c index db15fc60..3c399d5a 100644 --- a/lstring.c +++ b/lstring.c @@ -1,5 +1,5 @@ /* -** $Id: lstring.c,v 1.18 1999/02/08 16:28:48 roberto Exp roberto $ +** $Id: lstring.c,v 1.19 1999/02/26 15:49:53 roberto Exp roberto $ ** String table (keeps all strings handled by Lua) ** See Copyright Notice in lua.h */ @@ -38,7 +38,7 @@ void luaS_init (void) { } -static unsigned long hash_s (char *s, long l) { +static unsigned long hash_s (const char *s, long l) { unsigned long h = 0; /* seed */ while (l--) h = h ^ ((h<<5)+(h>>2)+(unsigned char)*(s++)); @@ -83,7 +83,7 @@ static void grow (stringtable *tb) { } -static TaggedString *newone_s (char *str, long l, unsigned long h) { +static TaggedString *newone_s (const char *str, long l, unsigned long h) { TaggedString *ts = (TaggedString *)luaM_malloc(sizeof(TaggedString)+l); memcpy(ts->str, str, l); ts->str[l] = 0; /* ending 0 */ @@ -97,7 +97,7 @@ static TaggedString *newone_s (char *str, long l, unsigned long h) { return ts; } -static TaggedString *newone_u (char *buff, int tag, unsigned long h) { +static TaggedString *newone_u (void *buff, int tag, unsigned long h) { TaggedString *ts = luaM_new(TaggedString); ts->u.d.v = buff; ts->u.d.tag = (tag == LUA_ANYTAG) ? 0 : tag; @@ -109,7 +109,7 @@ static TaggedString *newone_u (char *buff, int tag, unsigned long h) { return ts; } -static TaggedString *insert_s (char *str, long l, stringtable *tb) { +static TaggedString *insert_s (const char *str, long l, stringtable *tb) { TaggedString *ts; unsigned long h = hash_s(str, l); int size = tb->size; @@ -172,16 +172,16 @@ TaggedString *luaS_createudata (void *udata, int tag) { return insert_u(udata, tag, &L->string_root[t]); } -TaggedString *luaS_newlstr (char *str, long l) { +TaggedString *luaS_newlstr (const char *str, long l) { int t = (l==0) ? 0 : ((int)((unsigned char)str[0]*l))%NUM_HASHSTR; return insert_s(str, l, &L->string_root[t]); } -TaggedString *luaS_new (char *str) { +TaggedString *luaS_new (const char *str) { return luaS_newlstr(str, strlen(str)); } -TaggedString *luaS_newfixedstring (char *str) { +TaggedString *luaS_newfixedstring (const char *str) { TaggedString *ts = luaS_new(str); if (ts->head.marked == 0) ts->head.marked = 2; /* avoid GC */ @@ -282,7 +282,7 @@ void luaS_rawsetglobal (TaggedString *ts, TObject *newval) { } -char *luaS_travsymbol (int (*fn)(TObject *)) { +const char *luaS_travsymbol (int (*fn)(TObject *)) { TaggedString *g; for (g=(TaggedString *)L->rootglobal.next; g; g=(TaggedString *)g->head.next) if (fn(&g->u.s.globalval)) @@ -291,7 +291,7 @@ char *luaS_travsymbol (int (*fn)(TObject *)) { } -int luaS_globaldefined (char *name) { +int luaS_globaldefined (const char *name) { TaggedString *ts = luaS_new(name); return ts->u.s.globalval.ttype != LUA_T_NIL; } diff --git a/lstring.h b/lstring.h index 82cdbabb..0680cf6d 100644 --- a/lstring.h +++ b/lstring.h @@ -1,5 +1,5 @@ /* -** $Id: lstring.h,v 1.6 1997/12/01 20:31:25 roberto Exp roberto $ +** $Id: lstring.h,v 1.7 1998/03/06 16:54:42 roberto Exp roberto $ ** String table (keep all strings handled by Lua) ** See Copyright Notice in lua.h */ @@ -15,12 +15,12 @@ void luaS_init (void); TaggedString *luaS_createudata (void *udata, int tag); TaggedString *luaS_collector (void); void luaS_free (TaggedString *l); -TaggedString *luaS_newlstr (char *str, long l); -TaggedString *luaS_new (char *str); -TaggedString *luaS_newfixedstring (char *str); +TaggedString *luaS_newlstr (const char *str, long l); +TaggedString *luaS_new (const char *str); +TaggedString *luaS_newfixedstring (const char *str); void luaS_rawsetglobal (TaggedString *ts, TObject *newval); -char *luaS_travsymbol (int (*fn)(TObject *)); -int luaS_globaldefined (char *name); +const char *luaS_travsymbol (int (*fn)(TObject *)); +int luaS_globaldefined (const char *name); TaggedString *luaS_collectudata (void); void luaS_freeall (void); diff --git a/lstrlib.c b/lstrlib.c index a91f1a40..057605b3 100644 --- a/lstrlib.c +++ b/lstrlib.c @@ -1,5 +1,5 @@ /* -** $Id: lstrlib.c,v 1.32 1999/06/17 17:04:03 roberto Exp roberto $ +** $Id: lstrlib.c,v 1.33 1999/08/10 12:55:56 roberto Exp roberto $ ** Standard library for strings and pattern-matching ** See Copyright Notice in lua.h */ @@ -16,16 +16,14 @@ -static void addnchar (char *s, int n) -{ +static void addnchar (const char *s, int n) { char *b = luaL_openspace(n); memcpy(b, s, n); luaL_addsize(n); } -static void str_len (void) -{ +static void str_len (void) { long l; luaL_check_lstr(1, &l); lua_pushnumber(l); @@ -45,7 +43,7 @@ static long posrelat (long pos, long len) { static void str_sub (void) { long l; - char *s = luaL_check_lstr(1, &l); + const char *s = luaL_check_lstr(1, &l); long start = posrelat(luaL_check_long(2), l); long end = posrelat(luaL_opt_long(3, -1), l); if (start < 1) start = 1; @@ -59,7 +57,7 @@ static void str_sub (void) { static void str_lower (void) { long l; int i; - char *s = luaL_check_lstr(1, &l); + const char *s = luaL_check_lstr(1, &l); luaL_resetbuffer(); for (i=0; i 0) @@ -91,7 +88,7 @@ static void str_rep (void) static void str_byte (void) { long l; - char *s = luaL_check_lstr(1, &l); + const char *s = luaL_check_lstr(1, &l); long pos = posrelat(luaL_opt_long(2, 1), l); luaL_arg_check(0src_end && luaI_singlematch((unsigned char)*(s+i), p, ep)) i++; /* keeps trying to match mith the maximum repetitions */ while (i>=0) { - char *res = match((s+i), ep+1, cap); + const char *res = match((s+i), ep+1, cap); if (res) return res; i--; /* else didn't match; reduce 1 repetition to try again */ } @@ -275,9 +274,10 @@ static char *max_expand (char *s, char *p, char *ep, struct Capture *cap) { } -static char *min_expand (char *s, char *p, char *ep, struct Capture *cap) { +static const char *min_expand (const char *s, const char *p, const char *ep, + struct Capture *cap) { for (;;) { - char *res = match(s, ep+1, cap); + const char *res = match(s, ep+1, cap); if (res != NULL) return res; else if (ssrc_end && luaI_singlematch((unsigned char)*s, p, ep)) @@ -287,8 +287,9 @@ static char *min_expand (char *s, char *p, char *ep, struct Capture *cap) { } -static char *start_capt (char *s, char *p, struct Capture *cap) { - char *res; +static const char *start_capt (const char *s, const char *p, + struct Capture *cap) { + const char *res; int level = cap->level; if (level >= MAX_CAPT) lua_error("too many captures"); cap->capture[level].init = s; @@ -300,9 +301,10 @@ static char *start_capt (char *s, char *p, struct Capture *cap) { } -static char *end_capt (char *s, char *p, struct Capture *cap) { +static const char *end_capt (const char *s, const char *p, + struct Capture *cap) { int l = capture_to_close(cap); - char *res; + const char *res; cap->capture[l].len = s - cap->capture[l].init; /* close capture */ if ((res = match(s, p+1, cap)) == NULL) /* match failed? */ cap->capture[l].len = -1; /* undo capture */ @@ -310,7 +312,8 @@ static char *end_capt (char *s, char *p, struct Capture *cap) { } -static char *match_capture (char *s, int level, struct Capture *cap) { +static const char *match_capture (const char *s, int level, + struct Capture *cap) { int l = check_cap(level, cap); int len = cap->capture[l].len; if (cap->src_end-s >= len && @@ -320,7 +323,7 @@ static char *match_capture (char *s, int level, struct Capture *cap) { } -static char *match (char *s, char *p, struct Capture *cap) { +static const char *match (const char *s, const char *p, struct Capture *cap) { init: /* using goto's to optimize tail recursion */ switch (*p) { case '(': /* start capture */ @@ -346,11 +349,11 @@ static char *match (char *s, char *p, struct Capture *cap) { return (s == cap->src_end) ? s : NULL; /* check end of string */ else goto dflt; default: dflt: { /* it is a pattern item */ - char *ep = luaI_classend(p); /* points to what is next */ + const char *ep = luaI_classend(p); /* points to what is next */ int m = ssrc_end && luaI_singlematch((unsigned char)*s, p, ep); switch (*ep) { case '?': { /* optional */ - char *res; + const char *res; if (m && ((res=match(s+1, ep+1, cap)) != NULL)) return res; p=ep+1; goto init; /* else return match(s, ep+1, cap); */ @@ -372,8 +375,8 @@ static char *match (char *s, char *p, struct Capture *cap) { static void str_find (void) { long l; - char *s = luaL_check_lstr(1, &l); - char *p = luaL_check_string(2); + const char *s = luaL_check_lstr(1, &l); + const char *p = luaL_check_string(2); long init = posrelat(luaL_opt_long(3, 1), l) - 1; struct Capture cap; luaL_arg_check(0 <= init && init <= l, 3, "out of range"); @@ -388,10 +391,10 @@ static void str_find (void) { } else { int anchor = (*p == '^') ? (p++, 1) : 0; - char *s1=s+init; + const char *s1=s+init; cap.src_end = s+l; do { - char *res; + const char *res; cap.level = 0; if ((res=match(s1, p, &cap)) != NULL) { lua_pushnumber(s1-s+1); /* start */ @@ -407,7 +410,7 @@ static void str_find (void) { static void add_s (lua_Object newp, struct Capture *cap) { if (lua_isstring(newp)) { - char *news = lua_getstring(newp); + const char *news = lua_getstring(newp); int l = lua_strlen(newp); int i; for (i=0; i= 100) { /* no precision and string is too big to be formatted; keep original string */ @@ -570,7 +573,7 @@ static void str_format (void) { } -static struct luaL_reg strlib[] = { +static const struct luaL_reg strlib[] = { {"strlen", str_len}, {"strsub", str_sub}, {"strlower", str_lower}, diff --git a/ltable.c b/ltable.c index 73a6011e..53d6c866 100644 --- a/ltable.c +++ b/ltable.c @@ -1,5 +1,5 @@ /* -** $Id: ltable.c,v 1.21 1999/02/23 14:57:28 roberto Exp roberto $ +** $Id: ltable.c,v 1.22 1999/05/21 19:41:49 roberto Exp roberto $ ** Lua tables (hash) ** See Copyright Notice in lua.h */ @@ -24,7 +24,7 @@ -static long int hashindex (TObject *ref) { +static long int hashindex (const TObject *ref) { long int h; switch (ttype(ref)) { case LUA_T_NUMBER: @@ -53,7 +53,7 @@ static long int hashindex (TObject *ref) { } -Node *luaH_present (Hash *t, TObject *key) { +Node *luaH_present (const Hash *t, const TObject *key) { int tsize = nhash(t); long int h = hashindex(key); int h1 = h%tsize; @@ -135,7 +135,7 @@ static void rehash (Hash *t) { } -void luaH_set (Hash *t, TObject *ref, TObject *val) { +void luaH_set (Hash *t, const TObject *ref, const TObject *val) { Node *n = luaH_present(t, ref); if (ttype(ref(n)) != LUA_T_NIL) *val(n) = *val; @@ -153,14 +153,14 @@ void luaH_set (Hash *t, TObject *ref, TObject *val) { } -int luaH_pos (Hash *t, TObject *r) { +int luaH_pos (const Hash *t, const TObject *r) { Node *n = luaH_present(t, r); luaL_arg_check(ttype(val(n)) != LUA_T_NIL, 2, "key not found"); return n-(t->node); } -void luaH_setint (Hash *t, int ref, TObject *val) { +void luaH_setint (Hash *t, int ref, const TObject *val) { TObject index; ttype(&index) = LUA_T_NUMBER; nvalue(&index) = ref; @@ -168,7 +168,7 @@ void luaH_setint (Hash *t, int ref, TObject *val) { } -TObject *luaH_getint (Hash *t, int ref) { +TObject *luaH_getint (const Hash *t, int ref) { TObject index; ttype(&index) = LUA_T_NUMBER; nvalue(&index) = ref; diff --git a/ltable.h b/ltable.h index b6a46cd2..6c8bbe40 100644 --- a/ltable.h +++ b/ltable.h @@ -1,5 +1,5 @@ /* -** $Id: ltable.h,v 1.10 1999/01/25 17:40:10 roberto Exp roberto $ +** $Id: ltable.h,v 1.11 1999/02/23 14:57:28 roberto Exp roberto $ ** Lua tables (hash) ** See Copyright Notice in lua.h */ @@ -20,11 +20,11 @@ Hash *luaH_new (int nhash); void luaH_free (Hash *frees); -Node *luaH_present (Hash *t, TObject *key); -void luaH_set (Hash *t, TObject *ref, TObject *val); -int luaH_pos (Hash *t, TObject *r); -void luaH_setint (Hash *t, int ref, TObject *val); -TObject *luaH_getint (Hash *t, int ref); +Node *luaH_present (const Hash *t, const TObject *key); +void luaH_set (Hash *t, const TObject *ref, const TObject *val); +int luaH_pos (const Hash *t, const TObject *r); +void luaH_setint (Hash *t, int ref, const TObject *val); +TObject *luaH_getint (const Hash *t, int ref); #endif diff --git a/ltm.c b/ltm.c index a9b3b515..4c0a0876 100644 --- a/ltm.c +++ b/ltm.c @@ -1,5 +1,5 @@ /* -** $Id: ltm.c,v 1.24 1999/02/26 15:48:55 roberto Exp roberto $ +** $Id: ltm.c,v 1.25 1999/05/21 19:41:49 roberto Exp roberto $ ** Tag methods ** See Copyright Notice in lua.h */ @@ -15,14 +15,14 @@ #include "ltm.h" -char *luaT_eventname[] = { /* ORDER IM */ +const char *const luaT_eventname[] = { /* ORDER IM */ "gettable", "settable", "index", "getglobal", "setglobal", "add", "sub", "mul", "div", "pow", "unm", "lt", "le", "gt", "ge", "concat", "gc", "function", NULL }; -static int luaI_checkevent (char *name, char *list[]) { +static int luaI_checkevent (const char *name, const char *const list[]) { int e = luaL_findstring(name, list); if (e < 0) luaL_verror("`%.50s' is not a valid event name", name); @@ -34,7 +34,8 @@ static int luaI_checkevent (char *name, char *list[]) { /* events in LUA_T_NIL are all allowed, since this is used as a * 'placeholder' for "default" fallbacks */ -static char luaT_validevents[NUM_TAGS][IM_N] = { /* ORDER LUA_T, ORDER IM */ +/* ORDER LUA_T, ORDER IM */ +static const char luaT_validevents[NUM_TAGS][IM_N] = { {1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1}, /* LUA_T_USERDATA */ {1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1}, /* LUA_T_NUMBER */ {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, /* LUA_T_STRING */ @@ -96,7 +97,7 @@ int lua_copytagmethods (int tagto, int tagfrom) { } -int luaT_effectivetag (TObject *o) { +int luaT_effectivetag (const TObject *o) { int t; switch (t = ttype(o)) { case LUA_T_ARRAY: @@ -118,7 +119,7 @@ int luaT_effectivetag (TObject *o) { } -TObject *luaT_gettagmethod (int t, char *event) { +const TObject *luaT_gettagmethod (int t, const char *event) { int e = luaI_checkevent(event, luaT_eventname); checktag(t); if (luaT_validevent(t, e)) @@ -128,7 +129,7 @@ TObject *luaT_gettagmethod (int t, char *event) { } -void luaT_settagmethod (int t, char *event, TObject *func) { +void luaT_settagmethod (int t, const char *event, TObject *func) { TObject temp; int e = luaI_checkevent(event, luaT_eventname); checktag(t); @@ -143,7 +144,7 @@ void luaT_settagmethod (int t, char *event, TObject *func) { } -char *luaT_travtagmethods (int (*fn)(TObject *)) { /* ORDER IM */ +const char *luaT_travtagmethods (int (*fn)(TObject *)) { /* ORDER IM */ int e; for (e=IM_GETTABLE; e<=IM_FUNCTION; e++) { int t; @@ -191,10 +192,11 @@ static void fillvalids (IMS e, TObject *func) { void luaT_setfallback (void) { - static char *oldnames [] = {"error", "getglobal", "arith", "order", NULL}; + static const char *const oldnames [] = {"error", "getglobal", "arith", + "order", NULL}; TObject oldfunc; lua_CFunction replace; - char *name = luaL_check_string(1); + const char *name = luaL_check_string(1); lua_Object func = lua_getparam(2); luaL_arg_check(lua_isfunction(func), 2, "function expected"); switch (luaL_findstring(name, oldnames)) { diff --git a/ltm.h b/ltm.h index 87081874..3eaea82e 100644 --- a/ltm.h +++ b/ltm.h @@ -1,5 +1,5 @@ /* -** $Id: ltm.h,v 1.4 1997/11/26 18:53:45 roberto Exp roberto $ +** $Id: ltm.h,v 1.5 1999/01/15 13:11:57 roberto Exp roberto $ ** Tag methods ** See Copyright Notice in lua.h */ @@ -47,15 +47,15 @@ struct IM { #define luaT_getim(tag,event) (&L->IMtable[-(tag)].int_method[event]) #define luaT_getimbyObj(o,e) (luaT_getim(luaT_effectivetag(o),(e))) -extern char *luaT_eventname[]; +extern const char *const luaT_eventname[]; void luaT_init (void); void luaT_realtag (int tag); -int luaT_effectivetag (TObject *o); -void luaT_settagmethod (int t, char *event, TObject *func); -TObject *luaT_gettagmethod (int t, char *event); -char *luaT_travtagmethods (int (*fn)(TObject *)); +int luaT_effectivetag (const TObject *o); +void luaT_settagmethod (int t, const char *event, TObject *func); +const TObject *luaT_gettagmethod (int t, const char *event); +const char *luaT_travtagmethods (int (*fn)(TObject *)); void luaT_setfallback (void); /* only if LUA_COMPAT2_5 */ diff --git a/lua.c b/lua.c index 625b459d..474e583f 100644 --- a/lua.c +++ b/lua.c @@ -1,5 +1,5 @@ /* -** $Id: lua.c,v 1.20 1999/06/24 19:42:02 roberto Exp roberto $ +** $Id: lua.c,v 1.21 1999/07/02 18:22:38 roberto Exp roberto $ ** Lua stand-alone interpreter ** See Copyright Notice in lua.h */ @@ -52,7 +52,7 @@ static void laction (int i) { } -static int ldo (int (*f)(char *), char *name) { +static int ldo (int (*f)(const char *), const char *name) { int res; handler h = lreset(); res = f(name); /* dostring | dofile */ diff --git a/lua.h b/lua.h index ddba13fa..2f0f2b4c 100644 --- a/lua.h +++ b/lua.h @@ -1,5 +1,5 @@ /* -** $Id: lua.h,v 1.32 1999/05/11 20:29:19 roberto Exp roberto $ +** $Id: lua.h,v 1.33 1999/08/11 17:00:59 roberto Exp roberto $ ** Lua - An Extensible Extension Language ** TeCGraf: Grupo de Tecnologia em Computacao Grafica, PUC-Rio, Brazil ** e-mail: lua@tecgraf.puc-rio.br @@ -33,18 +33,21 @@ void lua_open (void); void lua_close (void); lua_State *lua_setstate (lua_State *st); -lua_Object lua_settagmethod (int tag, char *event); /* In: new method */ -lua_Object lua_gettagmethod (int tag, char *event); +lua_Object lua_settagmethod (int tag, const char *event); + /* In: new method */ +lua_Object lua_gettagmethod (int tag, const char *event); int lua_newtag (void); int lua_copytagmethods (int tagto, int tagfrom); void lua_settag (int tag); /* In: object */ -void lua_error (char *s); -int lua_dofile (char *filename); /* Out: returns */ -int lua_dostring (char *string); /* Out: returns */ -int lua_dobuffer (char *buff, int size, char *name); - /* Out: returns */ +void lua_error (const char *s); +int lua_dofile (const char *filename); + /* Out: returns */ +int lua_dostring (const char *string); + /* Out: returns */ +int lua_dobuffer (const char *buff, int size, + const char *name); /* Out: returns */ int lua_callfunction (lua_Object f); /* In: parameters; Out: returns */ @@ -64,7 +67,7 @@ int lua_isstring (lua_Object object); int lua_isfunction (lua_Object object); double lua_getnumber (lua_Object object); -char *lua_getstring (lua_Object object); +const char *lua_getstring (lua_Object object); long lua_strlen (lua_Object object); lua_CFunction lua_getcfunction (lua_Object object); void *lua_getuserdata (lua_Object object); @@ -72,18 +75,18 @@ void *lua_getuserdata (lua_Object object); void lua_pushnil (void); void lua_pushnumber (double n); -void lua_pushlstring (char *s, long len); -void lua_pushstring (char *s); +void lua_pushlstring (const char *s, long len); +void lua_pushstring (const char *s); void lua_pushcclosure (lua_CFunction fn, int n); void lua_pushusertag (void *u, int tag); void lua_pushobject (lua_Object object); lua_Object lua_pop (void); -lua_Object lua_getglobal (char *name); -lua_Object lua_rawgetglobal (char *name); -void lua_setglobal (char *name); /* In: value */ -void lua_rawsetglobal (char *name); /* In: value */ +lua_Object lua_getglobal (const char *name); +lua_Object lua_rawgetglobal (const char *name); +void lua_setglobal (const char *name); /* In: value */ +void lua_rawsetglobal (const char *name); /* In: value */ void lua_settable (void); /* In: table, index, value */ void lua_rawsettable (void); /* In: table, index, value */ @@ -92,7 +95,7 @@ lua_Object lua_rawgettable (void); /* In: table, index */ int lua_tag (lua_Object object); -char *lua_nextvar (char *varname); /* Out: value */ +const char *lua_nextvar (const char *varname); /* Out: value */ int lua_next (lua_Object o, int i); /* Out: ref, value */ diff --git a/luadebug.h b/luadebug.h index f7727119..53deba78 100644 --- a/luadebug.h +++ b/luadebug.h @@ -1,5 +1,5 @@ /* -** $Id: luadebug.h,v 1.5 1999/02/04 17:47:59 roberto Exp roberto $ +** $Id: luadebug.h,v 1.6 1999/03/04 21:17:26 roberto Exp roberto $ ** Debugging API ** See Copyright Notice in lua.h */ @@ -14,14 +14,15 @@ typedef lua_Object lua_Function; typedef void (*lua_LHFunction) (int line); -typedef void (*lua_CHFunction) (lua_Function func, char *file, int line); +typedef void (*lua_CHFunction) (lua_Function func, const char *file, int line); lua_Function lua_stackedfunction (int level); -void lua_funcinfo (lua_Object func, char **source, int *linedefined); +void lua_funcinfo (lua_Object func, const char **source, int *linedefined); int lua_currentline (lua_Function func); -char *lua_getobjname (lua_Object o, char **name); +const char *lua_getobjname (lua_Object o, const char **name); -lua_Object lua_getlocal (lua_Function func, int local_number, char **name); +lua_Object lua_getlocal (lua_Function func, int local_number, + const char **name); int lua_setlocal (lua_Function func, int local_number); int lua_nups (lua_Function func); diff --git a/lualib.h b/lualib.h index 805165f0..f60e72d1 100644 --- a/lualib.h +++ b/lualib.h @@ -1,5 +1,5 @@ /* -** $Id: lualib.h,v 1.5 1999/01/08 16:47:44 roberto Exp roberto $ +** $Id: lualib.h,v 1.6 1999/05/05 19:23:11 roberto Exp roberto $ ** Lua standard libraries ** See Copyright Notice in lua.h */ @@ -29,8 +29,8 @@ void lua_userinit (void); /* Auxiliary functions (private) */ -char *luaI_classend (char *p); -int luaI_singlematch (int c, char *p, char *ep); +const char *luaI_classend (const char *p); +int luaI_singlematch (int c, const char *p, const char *ep); #endif diff --git a/lundump.c b/lundump.c index 0c3b5fd7..225eda28 100644 --- a/lundump.c +++ b/lundump.c @@ -1,5 +1,5 @@ /* -** $Id: lundump.c,v 1.21 1999/07/02 19:34:26 lhf Exp $ +** $Id: lundump.c,v 1.12 1999/07/08 12:43:23 roberto Exp roberto $ ** load bytecodes from files ** See Copyright Notice in lua.h */ @@ -50,7 +50,7 @@ static unsigned long LoadLong (ZIO* Z) /* * convert number from text */ -double luaU_str2d (char* b, char* where) +double luaU_str2d (const char* b, const char* where) { int negative=(b[0]=='-'); double x=luaO_str2d(b+negative); @@ -76,7 +76,7 @@ static real LoadNumber (ZIO* Z, int native) } } -static int LoadInt (ZIO* Z, char* message) +static int LoadInt (ZIO* Z, const char* message) { unsigned long l=LoadLong(Z); unsigned int i=l; @@ -169,7 +169,7 @@ static TProtoFunc* LoadFunction (ZIO* Z, int native) static void LoadSignature (ZIO* Z) { - char* s=SIGNATURE; + const char* s=SIGNATURE; while (*s!=0 && ezgetc(Z)==*s) ++s; if (*s!=0) luaL_verror("bad signature in %s",zname(Z)); @@ -231,9 +231,9 @@ TProtoFunc* luaU_undump1 (ZIO* Z) /* * handle constants that cannot happen */ -void luaU_badconstant (char* s, int i, TObject* o, TProtoFunc* tf) +void luaU_badconstant (const char* s, int i, const TObject* o, TProtoFunc* tf) { int t=ttype(o); - char* name= (t>0 || t0 || tstack.top-2; - TObject *im; + const TObject *im; if (ttype(table) != LUA_T_ARRAY) { /* not a table, get gettable method */ im = luaT_getimbyObj(table, IM_GETTABLE); if (ttype(im) == LUA_T_NIL) @@ -146,9 +146,9 @@ void luaV_gettable (void) { /* ** Receives table at *t, index at *(t+1) and value at top. */ -void luaV_settable (TObject *t) { +void luaV_settable (const TObject *t) { struct Stack *S = &L->stack; - TObject *im; + const TObject *im; if (ttype(t) != LUA_T_ARRAY) { /* not a table, get "settable" method */ im = luaT_getimbyObj(t, IM_SETTABLE); if (ttype(im) == LUA_T_NIL) @@ -173,7 +173,7 @@ void luaV_settable (TObject *t) { } -void luaV_rawsettable (TObject *t) { +void luaV_rawsettable (const TObject *t) { if (ttype(t) != LUA_T_ARRAY) lua_error("indexed expression not a table"); else { @@ -186,7 +186,7 @@ void luaV_rawsettable (TObject *t) { void luaV_getglobal (TaggedString *ts) { /* WARNING: caller must assure stack space */ - TObject *value = &ts->u.s.globalval; + const TObject *value = &ts->u.s.globalval; switch (ttype(value)) { /* only userdata, tables and nil can have getglobal tag methods */ case LUA_T_USERDATA: case LUA_T_ARRAY: case LUA_T_NIL: { @@ -208,8 +208,8 @@ void luaV_getglobal (TaggedString *ts) { void luaV_setglobal (TaggedString *ts) { - TObject *oldvalue = &ts->u.s.globalval; - TObject *im = luaT_getimbyObj(oldvalue, IM_SETGLOBAL); + const TObject *oldvalue = &ts->u.s.globalval; + const TObject *im = luaT_getimbyObj(oldvalue, IM_SETGLOBAL); if (ttype(im) == LUA_T_NIL) /* is there a tag method? */ luaS_rawsetglobal(ts, --L->stack.top); else { @@ -226,9 +226,9 @@ void luaV_setglobal (TaggedString *ts) { } -static void call_binTM (IMS event, char *msg) -{ - TObject *im = luaT_getimbyObj(L->stack.top-2, event);/* try first operand */ +static void call_binTM (IMS event, const char *msg) { + /* try first operand */ + const TObject *im = luaT_getimbyObj(L->stack.top-2, event); if (ttype(im) == LUA_T_NIL) { im = luaT_getimbyObj(L->stack.top-1, event); /* try second operand */ if (ttype(im) == LUA_T_NIL) { @@ -242,14 +242,12 @@ static void call_binTM (IMS event, char *msg) } -static void call_arith (IMS event) -{ +static void call_arith (IMS event) { call_binTM(event, "unexpected type in arithmetic operation"); } -static int luaV_strcomp (char *l, long ll, char *r, long lr) -{ +static int luaV_strcomp (const char *l, long ll, const char *r, long lr) { for (;;) { long temp = strcoll(l, r); if (temp != 0) return temp; @@ -268,8 +266,8 @@ static int luaV_strcomp (char *l, long ll, char *r, long lr) void luaV_comparison (lua_Type ttype_less, lua_Type ttype_equal, lua_Type ttype_great, IMS op) { struct Stack *S = &L->stack; - TObject *l = S->top-2; - TObject *r = S->top-1; + const TObject *l = S->top-2; + const TObject *r = S->top-1; real result; if (ttype(l) == LUA_T_NUMBER && ttype(r) == LUA_T_NUMBER) result = nvalue(l)-nvalue(r); @@ -300,8 +298,7 @@ void luaV_pack (StkId firstel, int nvararg, TObject *tab) { } -static void adjust_varargs (StkId first_extra_arg) -{ +static void adjust_varargs (StkId first_extra_arg) { TObject arg; luaV_pack(first_extra_arg, (L->stack.top-L->stack.stack)-first_extra_arg, &arg); @@ -318,8 +315,8 @@ static void adjust_varargs (StkId first_extra_arg) */ StkId luaV_execute (Closure *cl, TProtoFunc *tf, StkId base) { struct Stack *S = &L->stack; /* to optimize */ - register Byte *pc = tf->code; - TObject *consts = tf->consts; + register const Byte *pc = tf->code; + const TObject *consts = tf->consts; if (L->callhook) luaD_callHook(base, tf, 0); luaD_checkstack((*pc++)+EXTRA_STACK); diff --git a/lvm.h b/lvm.h index ed66403b..a0a3fc51 100644 --- a/lvm.h +++ b/lvm.h @@ -1,5 +1,5 @@ /* -** $Id: lvm.h,v 1.7 1998/12/30 17:26:49 roberto Exp roberto $ +** $Id: lvm.h,v 1.8 1999/02/08 17:07:59 roberto Exp roberto $ ** Lua virtual machine ** See Copyright Notice in lua.h */ @@ -22,8 +22,8 @@ int luaV_tonumber (TObject *obj); int luaV_tostring (TObject *obj); void luaV_setn (Hash *t, int val); void luaV_gettable (void); -void luaV_settable (TObject *t); -void luaV_rawsettable (TObject *t); +void luaV_settable (const TObject *t); +void luaV_rawsettable (const TObject *t); void luaV_getglobal (TaggedString *ts); void luaV_setglobal (TaggedString *ts); StkId luaV_execute (Closure *cl, TProtoFunc *tf, StkId base); diff --git a/lzio.c b/lzio.c index aaa900c4..c59ec559 100644 --- a/lzio.c +++ b/lzio.c @@ -1,5 +1,5 @@ /* -** $Id: lzio.c,v 1.6 1999/03/04 14:49:18 roberto Exp roberto $ +** $Id: lzio.c,v 1.7 1999/03/05 13:15:50 roberto Exp roberto $ ** a generic input stream interface ** See Copyright Notice in lua.h */ @@ -16,51 +16,48 @@ /* ----------------------------------------------------- memory buffers --- */ static int zmfilbuf (ZIO* z) { - return EOZ; + return EOZ; } -ZIO* zmopen (ZIO* z, char* b, int size, char *name) -{ - if (b==NULL) return NULL; - z->n=size; - z->p= (unsigned char *)b; - z->filbuf=zmfilbuf; - z->u=NULL; - z->name=name; - return z; +ZIO* zmopen (ZIO* z, const char* b, int size, const char *name) { + if (b==NULL) return NULL; + z->n = size; + z->p = (unsigned const char *)b; + z->filbuf = zmfilbuf; + z->u = NULL; + z->name = name; + return z; } /* ------------------------------------------------------------ strings --- */ -ZIO* zsopen (ZIO* z, char* s, char *name) -{ - if (s==NULL) return NULL; - return zmopen(z,s,strlen(s),name); +ZIO* zsopen (ZIO* z, const char* s, const char *name) { + if (s==NULL) return NULL; + return zmopen(z,s,strlen(s),name); } /* -------------------------------------------------------------- FILEs --- */ static int zffilbuf (ZIO* z) { - int n; - if (feof((FILE *)z->u)) return EOZ; - n=fread(z->buffer,1,ZBSIZE,z->u); - if (n==0) return EOZ; - z->n=n-1; - z->p=z->buffer; - return *(z->p++); + int n; + if (feof((FILE *)z->u)) return EOZ; + n = fread(z->buffer,1,ZBSIZE,z->u); + if (n==0) return EOZ; + z->n = n-1; + z->p = z->buffer; + return *(z->p++); } -ZIO* zFopen (ZIO* z, FILE* f, char *name) -{ - if (f==NULL) return NULL; - z->n=0; - z->p=z->buffer; - z->filbuf=zffilbuf; - z->u=f; - z->name=name; - return z; +ZIO* zFopen (ZIO* z, FILE* f, const char *name) { + if (f==NULL) return NULL; + z->n = 0; + z->p = z->buffer; + z->filbuf = zffilbuf; + z->u = f; + z->name = name; + return z; } diff --git a/lzio.h b/lzio.h index 94b79da4..448ef059 100644 --- a/lzio.h +++ b/lzio.h @@ -1,5 +1,5 @@ /* -** $Id: lzio.h,v 1.3 1997/12/22 20:57:18 roberto Exp roberto $ +** $Id: lzio.h,v 1.4 1998/01/09 14:57:43 roberto Exp roberto $ ** Buffered streams ** See Copyright Notice in lua.h */ @@ -22,9 +22,9 @@ typedef struct zio ZIO; -ZIO* zFopen (ZIO* z, FILE* f, char *name); /* open FILEs */ -ZIO* zsopen (ZIO* z, char* s, char *name); /* string */ -ZIO* zmopen (ZIO* z, char* b, int size, char *name); /* memory */ +ZIO* zFopen (ZIO* z, FILE* f, const char *name); /* open FILEs */ +ZIO* zsopen (ZIO* z, const char* s, const char *name); /* string */ +ZIO* zmopen (ZIO* z, const char* b, int size, const char *name); /* memory */ int zread (ZIO* z, void* b, int n); /* read next n bytes */ @@ -38,12 +38,12 @@ int zread (ZIO* z, void* b, int n); /* read next n bytes */ #define ZBSIZE 256 /* buffer size */ struct zio { - int n; /* bytes still unread */ - unsigned char* p; /* current position in buffer */ - int (*filbuf)(ZIO* z); - void* u; /* additional data */ - char *name; - unsigned char buffer[ZBSIZE]; /* buffer */ + int n; /* bytes still unread */ + const unsigned char* p; /* current position in buffer */ + int (*filbuf)(ZIO* z); + void* u; /* additional data */ + const char *name; + unsigned char buffer[ZBSIZE]; /* buffer */ };