diff options
Diffstat (limited to 'src/scriptapi.cpp')
-rw-r--r-- | src/scriptapi.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp index be1366737..c9f132f4a 100644 --- a/src/scriptapi.cpp +++ b/src/scriptapi.cpp @@ -153,11 +153,18 @@ void check_modname_prefix(lua_State *L, std::string &name) // For __builtin, anything goes if(modname == "__builtin") return; - - if(name.substr(0, modname.size()+1) != modname + "_") + + if(name.substr(0, modname.size()+1) != modname + ":") + throw LuaError(L, std::string("Name \"")+name + +"\" does not follow naming conventions: " + +"\"modname:\" or \":\" prefix required)"); + + std::string subname = name.substr(modname.size()+1); + if(!string_allowed(subname, "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_")) throw LuaError(L, std::string("Name \"")+name +"\" does not follow naming conventions: " - +"\"modname_\" or \":\" prefix required)"); + +"\"contains unallowed characters)"); } static v3f readFloatPos(lua_State *L, int index) |