]> git.notmuchmail.org Git - notmuch/commitdiff
CLI/config: simulate top level comments when creating config
authorDavid Bremner <david@tethera.net>
Sun, 20 Aug 2023 15:10:56 +0000 (12:10 -0300)
committerDavid Bremner <david@tethera.net>
Mon, 21 Aug 2023 22:30:54 +0000 (19:30 -0300)
According to discussion on

          https://gitlab.gnome.org/GNOME/glib/-/issues/3078

it looks like upstream will stop supporting top of file comments.

It is questionable whether we really need this feature, but for now
update notmuch-config to simulate it.

notmuch-config.c

index e9456d794456c080e81abbd6a00efcb6b123c3c4..8123e4381003bd89509edc8d7970737893b1992b 100644 (file)
@@ -278,18 +278,24 @@ notmuch_conffile_open (notmuch_database_t *notmuch,
        return NULL;
     }
 
-    if (config->is_new)
-       g_key_file_set_comment (config->key_file, NULL, NULL,
-                               toplevel_config_comment, NULL);
-
     for (size_t i = 0; i < ARRAY_SIZE (group_comment_table); i++) {
        const char *name = group_comment_table[i].group_name;
        if (! g_key_file_has_group (config->key_file,  name)) {
            /* Force group to exist before adding comment */
            g_key_file_set_value (config->key_file, name, "dummy_key", "dummy_val");
            g_key_file_remove_key (config->key_file, name, "dummy_key", NULL);
-           g_key_file_set_comment (config->key_file, name, NULL,
-                                   group_comment_table[i].comment, NULL);
+           if (config->is_new && (i == 0) ) {
+               const char *comment;
+
+               comment = talloc_asprintf (config, "%s\n%s",
+                                          toplevel_config_comment,
+                                          group_comment_table[i].comment);
+               g_key_file_set_comment (config->key_file, name, NULL, comment,
+                                       NULL);
+           } else {
+               g_key_file_set_comment (config->key_file, name, NULL,
+                                       group_comment_table[i].comment, NULL);
+           }
        }
     }
     return config;