mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-28 21:54:10 +01:00
notmuch setup: Fix new configuration-file groups to get comments
Our intent has always been that when new configuration-file settings are created by notmuch, that they get created with comments telling the user how to use them. But this was only working before when the entire configuration file was created. We fix this so that when a new group is added, (such as the recently- added [messages] section) that it gets its documentation.
This commit is contained in:
parent
65d278afb1
commit
15e71cfda7
1 changed files with 37 additions and 3 deletions
|
@ -179,6 +179,9 @@ notmuch_config_open (void *ctx,
|
||||||
int is_new = 0;
|
int is_new = 0;
|
||||||
size_t tmp;
|
size_t tmp;
|
||||||
char *notmuch_config_env = NULL;
|
char *notmuch_config_env = NULL;
|
||||||
|
int file_had_database_group;
|
||||||
|
int file_had_messages_group;
|
||||||
|
int file_had_user_group;
|
||||||
|
|
||||||
if (is_new_ret)
|
if (is_new_ret)
|
||||||
*is_new_ret = 0;
|
*is_new_ret = 0;
|
||||||
|
@ -235,6 +238,23 @@ notmuch_config_open (void *ctx,
|
||||||
is_new = 1;
|
is_new = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Whenever we know of configuration sections that don't appear in
|
||||||
|
* the configuration file, we add some comments to help the user
|
||||||
|
* understand what can be done.
|
||||||
|
*
|
||||||
|
* It would be convenient to just add those comments now, but
|
||||||
|
* apparently g_key_file will clear any comments when keys are
|
||||||
|
* added later that create the groups. So we have to check for the
|
||||||
|
* groups now, but add the comments only after setting all of our
|
||||||
|
* values.
|
||||||
|
*/
|
||||||
|
file_had_database_group = g_key_file_has_group (config->key_file,
|
||||||
|
"database");
|
||||||
|
file_had_messages_group = g_key_file_has_group (config->key_file,
|
||||||
|
"messages");
|
||||||
|
file_had_user_group = g_key_file_has_group (config->key_file, "user");
|
||||||
|
|
||||||
|
|
||||||
if (notmuch_config_get_database_path (config) == NULL) {
|
if (notmuch_config_get_database_path (config) == NULL) {
|
||||||
char *path = talloc_asprintf (config, "%s/mail",
|
char *path = talloc_asprintf (config, "%s/mail",
|
||||||
getenv ("HOME"));
|
getenv ("HOME"));
|
||||||
|
@ -283,15 +303,29 @@ notmuch_config_open (void *ctx,
|
||||||
notmuch_config_set_new_tags (config, tags, 2);
|
notmuch_config_set_new_tags (config, tags, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* When we create a new configuration file here, we add some
|
/* Whenever we know of configuration sections that don't appear in
|
||||||
* comments to help the user understand what can be done. */
|
* the configuration file, we add some comments to help the user
|
||||||
if (is_new) {
|
* understand what can be done. */
|
||||||
|
if (is_new)
|
||||||
|
{
|
||||||
g_key_file_set_comment (config->key_file, NULL, NULL,
|
g_key_file_set_comment (config->key_file, NULL, NULL,
|
||||||
toplevel_config_comment, NULL);
|
toplevel_config_comment, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! file_had_database_group)
|
||||||
|
{
|
||||||
g_key_file_set_comment (config->key_file, "database", NULL,
|
g_key_file_set_comment (config->key_file, "database", NULL,
|
||||||
database_config_comment, NULL);
|
database_config_comment, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! file_had_messages_group)
|
||||||
|
{
|
||||||
g_key_file_set_comment (config->key_file, "messages", NULL,
|
g_key_file_set_comment (config->key_file, "messages", NULL,
|
||||||
messages_config_comment, NULL);
|
messages_config_comment, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! file_had_user_group)
|
||||||
|
{
|
||||||
g_key_file_set_comment (config->key_file, "user", NULL,
|
g_key_file_set_comment (config->key_file, "user", NULL,
|
||||||
user_config_comment, NULL);
|
user_config_comment, NULL);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue