lua

A copy of the Lua development repository
Log | Files | Refs | README

commit 595e449537eb6ff17fa6c58742920a1a609fc5c5
parent a907aeeb1e4850cb6509a61bdf6a16bc42d68c4f
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date:   Wed, 10 Jan 2001 14:40:34 -0200

tighter size for error buffers

Diffstat:
Mllex.c | 7++++---
Mllex.h | 6+++---
Mlparser.c | 10+++++-----
3 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/llex.c b/llex.c @@ -1,5 +1,5 @@ /* -** $Id: llex.c,v 1.71 2000/09/27 17:41:58 roberto Exp roberto $ +** $Id: llex.c,v 1.72 2000/10/20 16:39:03 roberto Exp roberto $ ** Lexical Analyzer ** See Copyright Notice in lua.h */ @@ -38,6 +38,7 @@ void luaX_init (lua_State *L) { int i; for (i=0; i<NUM_RESERVED; i++) { TString *ts = luaS_new(L, token2string[i]); + LUA_ASSERT(strlen(token2string[i])+1 <= TOKEN_LEN, "incorrect token_len"); ts->marked = (unsigned char)(RESERVEDMARK+i); /* reserved word */ } } @@ -48,8 +49,8 @@ void luaX_init (lua_State *L) { void luaX_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); + char buff[90]; + sprintf(buff, "too many %.40s (limit=%d)", msg, limit); luaX_error(ls, buff, ls->t.token); } } diff --git a/llex.h b/llex.h @@ -1,5 +1,5 @@ /* -** $Id: llex.h,v 1.31 2000/09/27 17:41:58 roberto Exp roberto $ +** $Id: llex.h,v 1.32 2000/12/04 18:33:40 roberto Exp roberto $ ** Lexical Analyzer ** See Copyright Notice in lua.h */ @@ -13,8 +13,8 @@ #define FIRST_RESERVED 257 -/* maximum length of a reserved word (+1 for final 0) */ -#define TOKEN_LEN 15 +/* maximum length of a reserved word */ +#define TOKEN_LEN (sizeof("function")) /* diff --git a/lparser.c b/lparser.c @@ -1,5 +1,5 @@ /* -** $Id: lparser.c,v 1.120 2000/12/26 18:46:09 roberto Exp roberto $ +** $Id: lparser.c,v 1.121 2000/12/28 12:55:41 roberto Exp roberto $ ** LL(1) Parser and code generator for Lua ** See Copyright Notice in lua.h */ @@ -71,9 +71,9 @@ static void lookahead (LexState *ls) { static void error_expected (LexState *ls, int token) { - char buff[100], t[TOKEN_LEN]; + char buff[30], t[TOKEN_LEN]; luaX_token2str(token, t); - sprintf(buff, "`%.20s' expected", t); + sprintf(buff, "`%.10s' expected", t); luaK_error(ls, buff); } @@ -104,11 +104,11 @@ static void check_match (LexState *ls, int what, int who, int where) { if (where == ls->linenumber) error_expected(ls, what); else { - char buff[100]; + char buff[70]; char t_what[TOKEN_LEN], t_who[TOKEN_LEN]; luaX_token2str(what, t_what); luaX_token2str(who, t_who); - sprintf(buff, "`%.20s' expected (to close `%.20s' at line %d)", + sprintf(buff, "`%.10s' expected (to close `%.10s' at line %d)", t_what, t_who, where); luaK_error(ls, buff); }