diff options
author | Přemysl Janouch <p.janouch@gmail.com> | 2016-01-09 02:35:05 +0100 |
---|---|---|
committer | Přemysl Janouch <p.janouch@gmail.com> | 2016-01-09 05:01:50 +0100 |
commit | aca153f5750cabfb7ccf0fc0cb5a05a83ed2d026 (patch) | |
tree | 547b098ab0feb39dbaf4bbf32d3cb8e67dcb7253 | |
parent | 79f46752d465680ff50fda38a007998673f3f746 (diff) | |
download | xK-aca153f5750cabfb7ccf0fc0cb5a05a83ed2d026.tar.gz xK-aca153f5750cabfb7ccf0fc0cb5a05a83ed2d026.tar.xz xK-aca153f5750cabfb7ccf0fc0cb5a05a83ed2d026.zip |
degesch: Lua: fix configuration loading
Not the cleanest solution but it has to do for now.
-rw-r--r-- | degesch.c | 17 |
1 files changed, 11 insertions, 6 deletions
@@ -7999,10 +7999,12 @@ lua_plugin_add_config_schema (struct lua_plugin *plugin, self->ref_validate = LUA_REFNIL; struct config_schema *schema = &self->schema; - schema->name = xstrdup (name); - schema->comment = NULL; - schema->default_ = NULL; - schema->type = CONFIG_ITEM_NULL; + schema->name = xstrdup (name); + schema->comment = NULL; + schema->default_ = NULL; + schema->type = CONFIG_ITEM_NULL; + schema->on_change = lua_schema_item_on_change; + schema->validate = lua_schema_item_validate; // Try to update the defaults with values provided by the plugin int values = lua_absindex (L, -2); @@ -8602,7 +8604,7 @@ lua_plugin_load (struct app_context *ctx, const char *filename, luaL_openlibs (L); struct lua_plugin *plugin = xcalloc (1, sizeof *plugin); - plugin->super.name = NULL; + plugin->super.name = xstrdup (filename); plugin->super.vtable = &lua_plugin_vtable; plugin->ctx = ctx; plugin->L = L; @@ -8714,9 +8716,12 @@ plugin_load (struct app_context *ctx, const char *name) struct plugin *plugin = plugin_load_by_name (ctx, name, &e); if (plugin) { + // FIXME: this way the real name isn't available to the plugin on load + free (plugin->name); + plugin->name = xstrdup (name); + log_global_status (ctx, "Plugin \"#s\" loaded", name); LIST_PREPEND (ctx->plugins, plugin); - plugin->name = xstrdup (name); } else { |