xC: don't autosave when nothing changed
This commit is contained in:
		
							parent
							
								
									ecebeace0e
								
							
						
					
					
						commit
						bea8d13227
					
				
							
								
								
									
										23
									
								
								xC.c
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								xC.c
									
									
									
									
									
								
							| @ -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; | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user