static struct MyVar *MyVars;
-static void myvar_set(const char *var, const char *val)
+void myvar_set(const char *var, const char *val)
{
struct MyVar **cur = NULL;
memset(opt, 0, sizeof(*opt));
opt->name = s;
opt->type = DT_STRING;
+ opt->initial = (intptr_t) mv;
}
return true;
}
err.data = err_str;
err.dsize = sizeof(err_str);
- if (!mutt_option_get(param, &opt))
+ if (mutt_str_strncmp("my_", param, 3) == 0)
+ {
+ const char *val = lua_tostring(l, -1);
+ myvar_set(param, val);
+ return 0;
+ }
+ else if (!mutt_option_get(param, &opt))
{
luaL_error(l, "Error getting parameter %s", param);
return -1;
case DT_STRING:
if (mutt_str_strncmp("my_", param, 3) == 0)
{
- char *option = (char *) opt.name;
- char *value = (char *) opt.var;
+ char *value = (char *) opt.initial;
lua_pushstring(l, value);
- FREE(&option);
- FREE(&value);
}
else
{
int mutt_check_traditional_pgp(struct Header *h, int *redraw);
int mutt_command_complete(char *buffer, size_t len, int pos, int numtabs);
int mutt_var_value_complete(char *buffer, size_t len, int pos);
+void myvar_set(const char *var, const char *val);
#ifdef USE_NOTMUCH
bool mutt_nm_query_complete(char *buffer, size_t len, int pos, int numtabs);
bool mutt_nm_tag_complete(char *buffer, size_t len, int numtabs);