mirror of
https://github.com/lua/lua
synced 2024-12-27 12:49:43 +03:00
Default for warnings changed to "off"
Warnings are mostly a tool to help developers (e.g., by showing hidden error messages); regular users usually don't need to see them.
This commit is contained in:
parent
5bc47fe830
commit
be78aeae4c
2
all
2
all
@ -2,7 +2,7 @@ make -s -j
|
||||
cd testes/libs; make -s
|
||||
cd .. # back to directory 'testes'
|
||||
ulimit -S -s 2000
|
||||
if { ../lua all.lua; } then
|
||||
if { ../lua -W all.lua; } then
|
||||
echo -e "\n\n final OK!!!!\n\n"
|
||||
else
|
||||
echo -e "\n\n >>>> BUG!!!!\n\n"
|
||||
|
@ -1037,7 +1037,7 @@ LUALIB_API lua_State *luaL_newstate (void) {
|
||||
lua_atpanic(L, &panic);
|
||||
warnstate = (int *)lua_newuserdatauv(L, sizeof(int), 0);
|
||||
luaL_ref(L, LUA_REGISTRYINDEX); /* make sure it won't be collected */
|
||||
*warnstate = 1; /* next message starts a new warning */
|
||||
*warnstate = 0; /* default is warnings off */
|
||||
lua_setwarnf(L, warnf, warnstate);
|
||||
}
|
||||
return L;
|
||||
|
2
ltests.c
2
ltests.c
@ -92,7 +92,7 @@ static int tpanic (lua_State *L) {
|
||||
static void warnf (void *ud, const char *msg, int tocont) {
|
||||
lua_State *L = cast(lua_State *, ud);
|
||||
static char buff[200] = ""; /* should be enough for tests... */
|
||||
static int onoff = 1;
|
||||
static int onoff = 0;
|
||||
static int mode = 0; /* start in normal mode */
|
||||
static int lasttocont = 0;
|
||||
if (!lasttocont && !tocont && *msg == '@') { /* control message? */
|
||||
|
10
lua.c
10
lua.c
@ -73,7 +73,7 @@ static void print_usage (const char *badoption) {
|
||||
" -l name require library 'name' into global 'name'\n"
|
||||
" -v show version information\n"
|
||||
" -E ignore environment variables\n"
|
||||
" -q turn warnings off\n"
|
||||
" -W turn warnings on\n"
|
||||
" -- stop handling options\n"
|
||||
" - stop handling options and execute stdin\n"
|
||||
,
|
||||
@ -264,7 +264,7 @@ static int collectargs (char **argv, int *first) {
|
||||
return has_error; /* invalid option */
|
||||
args |= has_E;
|
||||
break;
|
||||
case 'q':
|
||||
case 'W':
|
||||
if (argv[i][2] != '\0') /* extra characters? */
|
||||
return has_error; /* invalid option */
|
||||
break;
|
||||
@ -295,7 +295,7 @@ static int collectargs (char **argv, int *first) {
|
||||
|
||||
/*
|
||||
** Processes options 'e' and 'l', which involve running Lua code, and
|
||||
** 'q', which also affects the state.
|
||||
** 'W', which also affects the state.
|
||||
** Returns 0 if some code raises an error.
|
||||
*/
|
||||
static int runargs (lua_State *L, char **argv, int n) {
|
||||
@ -315,8 +315,8 @@ static int runargs (lua_State *L, char **argv, int n) {
|
||||
if (status != LUA_OK) return 0;
|
||||
break;
|
||||
}
|
||||
case 'q':
|
||||
lua_warning(L, "@off", 0); /* no warnings */
|
||||
case 'W':
|
||||
lua_warning(L, "@on", 0); /* warnings on */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -8735,7 +8735,7 @@ The options are:
|
||||
@item{@T{-i}| enters interactive mode after running @rep{script};}
|
||||
@item{@T{-v}| prints version information;}
|
||||
@item{@T{-E}| ignores environment variables;}
|
||||
@item{@T{-q}| turn warnings off;}
|
||||
@item{@T{-W}| turn warnings on;}
|
||||
@item{@T{--}| stops handling options;}
|
||||
@item{@T{-}| executes @id{stdin} as a file and stops handling options.}
|
||||
}
|
||||
@ -8761,7 +8761,7 @@ setting the values of
|
||||
@Lid{package.path} and @Lid{package.cpath}
|
||||
with the default paths defined in @id{luaconf.h}.
|
||||
|
||||
The options @T{-e}, @T{-l}, and @T{-q} are handled in
|
||||
The options @T{-e}, @T{-l}, and @T{-W} are handled in
|
||||
the order they appear.
|
||||
For instance, an invocation like
|
||||
@verbatim{
|
||||
|
@ -5,8 +5,8 @@
|
||||
|
||||
local version = "Lua 5.4"
|
||||
if _VERSION ~= version then
|
||||
warn("This test suite is for ", version,
|
||||
", not for ", _VERSION, "\nExiting tests")
|
||||
io.stderr:write("This test suite is for ", version,
|
||||
", not for ", _VERSION, "\nExiting tests")
|
||||
return
|
||||
end
|
||||
|
||||
@ -210,6 +210,7 @@ if #msgs > 0 then
|
||||
end
|
||||
|
||||
print("(there should be two warnings now)")
|
||||
warn("@on")
|
||||
warn("#This is ", "an expected", " warning")
|
||||
warn("@off")
|
||||
warn("******** THIS WARNING SHOULD NOT APPEAR **********")
|
||||
|
@ -163,6 +163,7 @@ do
|
||||
assert(not X and coroutine.status(co) == "dead")
|
||||
|
||||
-- error closing a coroutine
|
||||
warn("@on")
|
||||
local x = 0
|
||||
co = coroutine.create(function()
|
||||
local y <close> = func2close(function (self,err)
|
||||
|
@ -369,7 +369,7 @@ if T then
|
||||
s[n] = i
|
||||
end
|
||||
|
||||
warn("@store")
|
||||
warn("@on"); warn("@store")
|
||||
collectgarbage()
|
||||
assert(string.find(_WARN, "error in __gc metamethod"))
|
||||
assert(string.match(_WARN, "@(.-)@") == "expected"); _WARN = nil
|
||||
|
@ -313,6 +313,7 @@ local function checkwarn (msg)
|
||||
end
|
||||
end
|
||||
|
||||
warn("@on")
|
||||
|
||||
do print("testing errors in __close")
|
||||
|
||||
|
@ -221,8 +221,11 @@ assert(string.find(getoutput(), "error calling 'print'"))
|
||||
RUN('echo "io.stderr:write(1000)\ncont" | lua -e "require\'debug\'.debug()" 2> %s', out)
|
||||
checkout("lua_debug> 1000lua_debug> ")
|
||||
|
||||
-- test warnings
|
||||
RUN('echo "io.stderr:write(1); warn[[XXX]]" | lua -q 2> %s', out)
|
||||
|
||||
print("testing warnings")
|
||||
|
||||
-- no warnings by default
|
||||
RUN('echo "io.stderr:write(1); warn[[XXX]]" | lua 2> %s', out)
|
||||
checkout("1")
|
||||
|
||||
prepfile[[
|
||||
@ -236,7 +239,7 @@ warn("", "@on") -- again, no control, real warning
|
||||
warn("@on") -- keep it "started"
|
||||
warn("Z", "Z", "Z") -- common warning
|
||||
]]
|
||||
RUN('lua %s 2> %s', prog, out)
|
||||
RUN('lua -W %s 2> %s', prog, out)
|
||||
checkout[[
|
||||
Lua warning: @offXXX@off
|
||||
Lua warning: @on
|
||||
@ -250,7 +253,7 @@ warn("@allow")
|
||||
u1 = setmetatable({}, {__gc = function () error("XYZ") end})
|
||||
u2 = setmetatable({}, {__gc = function () error("ZYX") end})
|
||||
]]
|
||||
RUN('lua %s 2> %s', prog, out)
|
||||
RUN('lua -W %s 2> %s', prog, out)
|
||||
checkprogout("ZYX)\nXYZ)\n")
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user