diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2001-01-10 15:41:50 -0200 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2001-01-10 15:41:50 -0200 |
| commit | 08496eea8b277d37c4de9cf75a011715ad6a4100 (patch) | |
| tree | 9c3eef538b85f79ece0a0993e4d99930be6f6039 /llex.c | |
| parent | 4ff55457095728b95cc5dcdbab0bca7255bd5387 (diff) | |
| download | lua-08496eea8b277d37c4de9cf75a011715ad6a4100.tar.gz lua-08496eea8b277d37c4de9cf75a011715ad6a4100.tar.bz2 lua-08496eea8b277d37c4de9cf75a011715ad6a4100.zip | |
small changes in lstring
Diffstat (limited to 'llex.c')
| -rw-r--r-- | llex.c | 9 |
1 files changed, 5 insertions, 4 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: llex.c,v 1.72 2000/10/20 16:39:03 roberto Exp roberto $ | 2 | ** $Id: llex.c,v 1.73 2001/01/10 16:40:56 roberto Exp roberto $ |
| 3 | ** Lexical Analyzer | 3 | ** Lexical Analyzer |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -133,7 +133,7 @@ void luaX_setinput (lua_State *L, LexState *LS, ZIO *z, TString *source) { | |||
| 133 | #define save_and_next(L, LS, l) (save(L, LS->current, l), next(LS)) | 133 | #define save_and_next(L, LS, l) (save(L, LS->current, l), next(LS)) |
| 134 | 134 | ||
| 135 | 135 | ||
| 136 | static const char *readname (LexState *LS) { | 136 | static size_t readname (LexState *LS) { |
| 137 | lua_State *L = LS->L; | 137 | lua_State *L = LS->L; |
| 138 | size_t l = 0; | 138 | size_t l = 0; |
| 139 | checkbuffer(L, 10, l); | 139 | checkbuffer(L, 10, l); |
| @@ -142,7 +142,7 @@ static const char *readname (LexState *LS) { | |||
| 142 | save_and_next(L, LS, l); | 142 | save_and_next(L, LS, l); |
| 143 | } while (isalnum(LS->current) || LS->current == '_'); | 143 | } while (isalnum(LS->current) || LS->current == '_'); |
| 144 | save(L, '\0', l); | 144 | save(L, '\0', l); |
| 145 | return L->Mbuffer; | 145 | return l-1; |
| 146 | } | 146 | } |
| 147 | 147 | ||
| 148 | 148 | ||
| @@ -369,7 +369,8 @@ int luaX_lex (LexState *LS, SemInfo *seminfo) { | |||
| 369 | return c; | 369 | return c; |
| 370 | } | 370 | } |
| 371 | tname: { /* identifier or reserved word */ | 371 | tname: { /* identifier or reserved word */ |
| 372 | TString *ts = luaS_new(LS->L, readname(LS)); | 372 | size_t l = readname(LS); |
| 373 | TString *ts = luaS_newlstr(LS->L, LS->L->Mbuffer, l); | ||
| 373 | if (ts->marked >= RESERVEDMARK) /* reserved word? */ | 374 | if (ts->marked >= RESERVEDMARK) /* reserved word? */ |
| 374 | return ts->marked-RESERVEDMARK+FIRST_RESERVED; | 375 | return ts->marked-RESERVEDMARK+FIRST_RESERVED; |
| 375 | seminfo->ts = ts; | 376 | seminfo->ts = ts; |
