diff options
| author | Přemysl Eric Janouch <p@janouch.name> | 2022-08-29 08:20:51 +0200 | 
|---|---|---|
| committer | Přemysl Eric Janouch <p@janouch.name> | 2022-08-29 08:22:09 +0200 | 
| commit | bea8d13227ec01ba325f0bab512b0c16b1fea976 (patch) | |
| tree | 409b08c85016e8e9a4c40e36a1e5f98188d88692 /xC.c | |
| parent | ecebeace0ea28f243045bdee1002530028846fe8 (diff) | |
| download | xK-bea8d13227ec01ba325f0bab512b0c16b1fea976.tar.gz xK-bea8d13227ec01ba325f0bab512b0c16b1fea976.tar.xz xK-bea8d13227ec01ba325f0bab512b0c16b1fea976.zip | |
xC: don't autosave when nothing changed
Diffstat (limited to 'xC.c')
| -rw-r--r-- | xC.c | 23 | 
1 files changed, 13 insertions, 10 deletions
| @@ -11361,7 +11361,7 @@ handle_command_set_modify  	return result;  } -static void +static bool  handle_command_set_assign_item (struct app_context *ctx,  	char *key, struct config_item *new_, bool add, bool remove)  { @@ -11384,14 +11384,14 @@ handle_command_set_assign_item (struct app_context *ctx,  		log_global_error (ctx,  			"Failed to set option \"#s\": #s", key, e->message);  		error_free (e); +		return false;  	} -	else -	{ -		struct strv tmp = strv_make (); -		dump_matching_options (ctx->config.root, key, &tmp); -		log_global_status (ctx, "Option changed: #s", tmp.vector[0]); -		strv_free (&tmp); -	} + +	struct strv tmp = strv_make (); +	dump_matching_options (ctx->config.root, key, &tmp); +	log_global_status (ctx, "Option changed: #s", tmp.vector[0]); +	strv_free (&tmp); +	return true;  }  static bool @@ -11427,15 +11427,18 @@ handle_command_set_assign  		config_item_destroy (new_);  		return true;  	} + +	bool changed = false;  	for (size_t i = 0; i < all->len; i++)  	{  		char *key = cstr_cut_until (all->vector[i], " "); -		handle_command_set_assign_item (ctx, key, new_, add, remove); +		if (handle_command_set_assign_item (ctx, key, new_, add, remove)) +			changed = true;  		free (key);  	}  	config_item_destroy (new_); -	if (get_config_boolean (ctx->config.root, "general.autosave")) +	if (changed && get_config_boolean (ctx->config.root, "general.autosave"))  		save_configuration (ctx);  	return true;  } | 
