Added modify counter which is increased every time something is changed

in configuration.

Autosaving settings doesn't even try to save them if config isn't
changed.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@871 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2000-11-26 02:17:14 +00:00 committed by cras
commit a954fa03d0
3 changed files with 11 additions and 4 deletions

View file

@ -46,12 +46,13 @@ typedef struct {
struct _config_rec {
char *fname;
int handle;
int create_mode;
int create_mode;
int modifycounter; /* increase every time something is changed */
char *last_error;
CONFIG_NODE *mainnode;
GHashTable *cache; /* path -> node (for querying) */
GHashTable *cache_nodes; /* node -> path (for removing) */
GHashTable *cache_nodes; /* node -> path (for removing) */
GScanner *scanner;

View file

@ -37,6 +37,7 @@ void config_node_remove(CONFIG_REC *rec, CONFIG_NODE *parent, CONFIG_NODE *node)
g_return_if_fail(parent != NULL);
g_return_if_fail(node != NULL);
rec->modifycounter++;
cache_remove(rec, node);
parent->value = g_slist_remove(parent->value, node);
@ -114,6 +115,7 @@ void config_node_set_str(CONFIG_REC *rec, CONFIG_NODE *parent, const char *key,
}
node->value = g_strdup(value);
rec->modifycounter++;
}
void config_node_set_int(CONFIG_NODE *parent, const char *key, int value)