aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--xC.c12
2 files changed, 9 insertions, 5 deletions
diff --git a/NEWS b/NEWS
index 90182f9..c7a05c6 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,8 @@ Unreleased
with the exception of editor_command/editor, backlog_helper/pager,
and backlog_helper_strip_formatting/pager_strip_formatting
+ * xC: replaced behaviour.save_on_quit with general.autosave
+
* xC: improved pager integration capabilities
* xC: made it show WALLOPS messages, as PRIVMSG for the server buffer
diff --git a/xC.c b/xC.c
index d4efc2a..535fbd9 100644
--- a/xC.c
+++ b/xC.c
@@ -2422,8 +2422,8 @@ static struct config_schema g_config_server[] =
static struct config_schema g_config_general[] =
{
- { .name = "save_on_quit",
- .comment = "Save configuration before quitting",
+ { .name = "autosave",
+ .comment = "Save configuration automatically after each change",
.type = CONFIG_ITEM_BOOLEAN,
.default_ = "on" },
{ .name = "debug_mode",
@@ -11363,6 +11363,8 @@ static bool
handle_command_set_assign
(struct app_context *ctx, struct strv *all, char *arguments)
{
+ hard_assert (all->len > 0);
+
char *op = cut_word (&arguments);
bool add = false;
bool remove = false;
@@ -11397,6 +11399,9 @@ handle_command_set_assign
free (key);
}
config_item_destroy (new_);
+
+ if (get_config_boolean (ctx->config.root, "general.autosave"))
+ save_configuration (ctx);
return true;
}
@@ -14748,9 +14753,6 @@ main (int argc, char *argv[])
CALL (ctx.input, stop);
- if (get_config_boolean (ctx.config.root, "general.save_on_quit"))
- save_configuration (&ctx);
-
app_context_free (&ctx);
toggle_bracketed_paste (false);
free_terminal ();