mirror of
https://github.com/lua/lua
synced 2025-04-09 14:32:55 +03:00
Details
Small changes in test library: - execute mode added to 'all.lua'; - more information about subtypes (tags) when printing a stack.
This commit is contained in:
parent
fdbb4c2341
commit
cad5a4fdbb
53
ltests.c
53
ltests.c
@ -327,37 +327,40 @@ void lua_printobj (lua_State *L, struct GCObject *o) {
|
||||
|
||||
|
||||
void lua_printvalue (TValue *v) {
|
||||
switch (ttype(v)) {
|
||||
case LUA_TNUMBER: {
|
||||
switch (ttypetag(v)) {
|
||||
case LUA_VNUMINT: case LUA_VNUMFLT: {
|
||||
char buff[LUA_N2SBUFFSZ];
|
||||
unsigned len = luaO_tostringbuff(v, buff);
|
||||
buff[len] = '\0';
|
||||
printf("%s", buff);
|
||||
break;
|
||||
}
|
||||
case LUA_TSTRING: {
|
||||
printf("'%s'", getstr(tsvalue(v)));
|
||||
break;
|
||||
}
|
||||
case LUA_TBOOLEAN: {
|
||||
printf("%s", (!l_isfalse(v) ? "true" : "false"));
|
||||
break;
|
||||
}
|
||||
case LUA_TLIGHTUSERDATA: {
|
||||
printf("light udata: %p", pvalue(v));
|
||||
break;
|
||||
}
|
||||
case LUA_TNIL: {
|
||||
printf("nil");
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
if (ttislcf(v))
|
||||
printf("light C function: %p", fvalue(v));
|
||||
else /* must be collectable */
|
||||
printf("%s: %p", ttypename(ttype(v)), gcvalue(v));
|
||||
break;
|
||||
}
|
||||
case LUA_VSHRSTR:
|
||||
printf("'%s'", getstr(tsvalue(v))); break;
|
||||
case LUA_VLNGSTR:
|
||||
printf("'%.30s...'", getstr(tsvalue(v))); break;
|
||||
case LUA_VFALSE:
|
||||
printf("%s", "false"); break;
|
||||
case LUA_VTRUE:
|
||||
printf("%s", "true"); break;
|
||||
case LUA_VLIGHTUSERDATA:
|
||||
printf("light udata: %p", pvalue(v)); break;
|
||||
case LUA_VUSERDATA:
|
||||
printf("full udata: %p", uvalue(v)); break;
|
||||
case LUA_VNIL:
|
||||
printf("nil"); break;
|
||||
case LUA_VLCF:
|
||||
printf("light C function: %p", fvalue(v)); break;
|
||||
case LUA_VCCL:
|
||||
printf("C closure: %p", clCvalue(v)); break;
|
||||
case LUA_VLCL:
|
||||
printf("Lua function: %p", clLvalue(v)); break;
|
||||
case LUA_VTHREAD:
|
||||
printf("thread: %p", thvalue(v)); break;
|
||||
case LUA_VTABLE:
|
||||
printf("table: %p", hvalue(v)); break;
|
||||
default:
|
||||
lua_assert(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
0
testes/all.lua
Normal file → Executable file
0
testes/all.lua
Normal file → Executable file
Loading…
x
Reference in New Issue
Block a user