aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShadowNinja <shadowninja@minetest.net>2015-10-15 01:08:18 -0400
committerkwolekr <kwolekr@minetest.net>2015-10-15 01:14:38 -0400
commit7b8d372947aae232ddf598155e972bb4dda157af (patch)
treee7f4d9913100f392749bb2f65540923e1cbc41dd
parent659922fd30d5ee3d7876b22e4d26b116d1ae2513 (diff)
downloadminetest-7b8d372947aae232ddf598155e972bb4dda157af.tar.gz
minetest-7b8d372947aae232ddf598155e972bb4dda157af.tar.bz2
minetest-7b8d372947aae232ddf598155e972bb4dda157af.zip
Use warningstream for deprecated field messages and refactor log_deprecated
-rw-r--r--src/script/common/c_content.cpp39
-rw-r--r--src/script/common/c_internal.cpp31
2 files changed, 30 insertions, 40 deletions
diff --git a/src/script/common/c_content.cpp b/src/script/common/c_content.cpp
index 3754fc2ff..00ec85b2f 100644
--- a/src/script/common/c_content.cpp
+++ b/src/script/common/c_content.cpp
@@ -76,7 +76,7 @@ ItemDefinition read_item_definition(lua_State* L,int index,
getboolfield(L, index, "liquids_pointable", def.liquids_pointable);
warn_if_field_exists(L, index, "tool_digging_properties",
- "deprecated: use tool_capabilities");
+ "Deprecated; use tool_capabilities");
lua_getfield(L, index, "tool_capabilities");
if(lua_istable(L, -1)){
@@ -427,17 +427,17 @@ ContentFeatures read_content_features(lua_State *L, int index)
// Warn about some deprecated fields
warn_if_field_exists(L, index, "wall_mounted",
- "deprecated: use paramtype2 = 'wallmounted'");
+ "Deprecated; use paramtype2 = 'wallmounted'");
warn_if_field_exists(L, index, "light_propagates",
- "deprecated: determined from paramtype");
+ "Deprecated; determined from paramtype");
warn_if_field_exists(L, index, "dug_item",
- "deprecated: use 'drop' field");
+ "Deprecated; use 'drop' field");
warn_if_field_exists(L, index, "extra_dug_item",
- "deprecated: use 'drop' field");
+ "Deprecated; use 'drop' field");
warn_if_field_exists(L, index, "extra_dug_item_rarity",
- "deprecated: use 'drop' field");
+ "Deprecated; use 'drop' field");
warn_if_field_exists(L, index, "metadata_name",
- "deprecated: use on_add and metadata callbacks");
+ "Deprecated; use on_add and metadata callbacks");
// True for all ground-like things like stone and mud, false for eg. trees
getboolfield(L, index, "is_ground_content", f.is_ground_content);
@@ -639,14 +639,13 @@ void pushnode(lua_State *L, const MapNode &n, INodeDefManager *ndef)
/******************************************************************************/
void warn_if_field_exists(lua_State *L, int table,
- const char *fieldname, const std::string &message)
+ const char *name, const std::string &message)
{
- lua_getfield(L, table, fieldname);
- if(!lua_isnil(L, -1)){
-//TODO find way to access backtrace fct from here
- // infostream<<script_get_backtrace(L)<<std::endl;
- infostream<<"WARNING: field \""<<fieldname<<"\": "
- <<message<<std::endl;
+ lua_getfield(L, table, name);
+ if (!lua_isnil(L, -1)) {
+ warningstream << "Field \"" << name << "\": "
+ << message << std::endl;
+ infostream << script_get_backtrace(L) << std::endl;
}
lua_pop(L, 1);
}
@@ -705,7 +704,7 @@ ItemStack read_item(lua_State* L, int index,Server* srv)
}
catch(SerializationError &e)
{
- infostream<<"WARNING: unable to create item from itemstring"
+ warningstream<<"unable to create item from itemstring"
<<": "<<itemstring<<std::endl;
return ItemStack();
}
@@ -840,14 +839,14 @@ ToolCapabilities read_tool_capabilities(
getintfield(L, table_groupcap, "uses", groupcap.uses);
// DEPRECATED: maxwear
float maxwear = 0;
- if(getfloatfield(L, table_groupcap, "maxwear", maxwear)){
- if(maxwear != 0)
+ if (getfloatfield(L, table_groupcap, "maxwear", maxwear)){
+ if (maxwear != 0)
groupcap.uses = 1.0/maxwear;
else
groupcap.uses = 0;
- infostream<<script_get_backtrace(L)<<std::endl;
- infostream<<"WARNING: field \"maxwear\" is deprecated; "
- <<"should replace with uses=1/maxwear"<<std::endl;
+ warningstream << "Field \"maxwear\" is deprecated; "
+ << "replace with uses=1/maxwear" << std::endl;
+ infostream << script_get_backtrace(L) << std::endl;
}
// Read "times" table
lua_getfield(L, table_groupcap, "times");
diff --git a/src/script/common/c_internal.cpp b/src/script/common/c_internal.cpp
index 14d992df0..073ff1541 100644
--- a/src/script/common/c_internal.cpp
+++ b/src/script/common/c_internal.cpp
@@ -163,35 +163,26 @@ void script_run_callbacks_f(lua_State *L, int nargs,
void log_deprecated(lua_State *L, const std::string &message)
{
static bool configured = false;
- static bool dolog = false;
- static bool doerror = false;
+ static bool do_log = false;
+ static bool do_error = false;
- // performance optimization to not have to read and compare setting for every logline
+ // Only read settings on first call
if (!configured) {
std::string value = g_settings->get("deprecated_lua_api_handling");
if (value == "log") {
- dolog = true;
+ do_log = true;
} else if (value == "error") {
- dolog = true;
- doerror = true;
+ do_log = true;
+ do_error = true;
}
}
- if (doerror) {
- if (L != NULL) {
+ if (do_log) {
+ warningstream << message << std::endl;
+ if (do_error)
script_error(L, LUA_ERRRUN, NULL, NULL);
- } else {
- FATAL_ERROR("Can't do a scripterror for this deprecated message, "
- "so exit completely!");
- }
- }
-
- if (dolog) {
- /* abusing actionstream because of lack of file-only-logged loglevel */
- actionstream << message << std::endl;
- if (L != NULL) {
- actionstream << script_get_backtrace(L) << std::endl;
- }
+ else
+ infostream << script_get_backtrace(L) << std::endl;
}
}