mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Support :: prefix to reference global namespace, deprecate GLOBAL::
Closes #2709
This commit is contained in:
parent
c23ee30542
commit
12a5616f4d
26 changed files with 476 additions and 20 deletions
|
@ -28,6 +28,7 @@ TEST_CASE("module_util streq")
|
|||
TEST_CASE("module_util extract_module_name")
|
||||
{
|
||||
CHECK(extract_module_name("mod") == GLOBAL_MODULE_NAME);
|
||||
CHECK(extract_module_name("::var") == GLOBAL_MODULE_NAME);
|
||||
CHECK(extract_module_name("mod::") == "mod");
|
||||
CHECK(extract_module_name("mod::var") == "mod");
|
||||
}
|
||||
|
@ -38,7 +39,7 @@ string extract_module_name(const char* name)
|
|||
string module_name = name;
|
||||
string::size_type pos = module_name.rfind("::");
|
||||
|
||||
if ( pos == string::npos )
|
||||
if ( pos == string::npos || pos == 0 )
|
||||
return GLOBAL_MODULE_NAME;
|
||||
|
||||
module_name.erase(pos);
|
||||
|
@ -89,16 +90,18 @@ TEST_CASE("module_util make_full_var_name")
|
|||
CHECK(make_full_var_name(nullptr, "GLOBAL::var") == "var");
|
||||
CHECK(make_full_var_name(GLOBAL_MODULE_NAME, "var") == "var");
|
||||
CHECK(make_full_var_name(nullptr, "notglobal::var") == "notglobal::var");
|
||||
CHECK(make_full_var_name(nullptr, "::var") == "::var");
|
||||
CHECK(make_full_var_name(nullptr, "::var") == "var");
|
||||
|
||||
CHECK(make_full_var_name("module", "var") == "module::var");
|
||||
CHECK(make_full_var_name("module::", "var") == "module::var");
|
||||
CHECK(make_full_var_name("", "var") == "::var");
|
||||
CHECK(make_full_var_name("", "var") == "var");
|
||||
CHECK(make_full_var_name("", "::var") == "var");
|
||||
}
|
||||
|
||||
string make_full_var_name(const char* module_name, const char* var_name)
|
||||
{
|
||||
if ( ! module_name || streq(module_name, GLOBAL_MODULE_NAME) || strstr(var_name, "::") )
|
||||
if ( ! module_name || streq(module_name, "") || streq(module_name, GLOBAL_MODULE_NAME) ||
|
||||
strstr(var_name, "::") )
|
||||
{
|
||||
if ( streq(GLOBAL_MODULE_NAME, extract_module_name(var_name).c_str()) )
|
||||
return extract_var_name(var_name);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue