]> git.notmuchmail.org Git - notmuch/blobdiff - notmuch-config.c
emacs: Do not attempt to render arbitrary application parts.
[notmuch] / notmuch-config.c
index bace8e567fb465251f4213988e464ff705b423c9..6e4c5c4c0c93738f643b4048152c0d2de826a5f4 100644 (file)
@@ -77,7 +77,7 @@ static const char maildir_config_comment[] =
     "\t\tF     flagged\n"
     "\t\tP     passed\n"
     "\t\tR     replied\n"
     "\t\tF     flagged\n"
     "\t\tP     passed\n"
     "\t\tR     replied\n"
-    "\t\tS     unread (added when 'S' tag is not present)\n"
+    "\t\tS     unread (added when 'S' flag is not present)\n"
     "\n"
     "\tThe \"notmuch new\" command will notice flag changes in filenames\n"
     "\tand update tags, while the \"notmuch tag\" and \"notmuch restore\"\n"
     "\n"
     "\tThe \"notmuch new\" command will notice flag changes in filenames\n"
     "\tand update tags, while the \"notmuch tag\" and \"notmuch restore\"\n"
@@ -97,8 +97,6 @@ struct _notmuch_config {
     notmuch_bool_t maildir_synchronize_flags;
 };
 
     notmuch_bool_t maildir_synchronize_flags;
 };
 
-#define MAILDIR_SYNC_UNDEF ((notmuch_bool_t)-1)
-
 static int
 notmuch_config_destructor (notmuch_config_t *config)
 {
 static int
 notmuch_config_destructor (notmuch_config_t *config)
 {
@@ -111,13 +109,15 @@ notmuch_config_destructor (notmuch_config_t *config)
 static char *
 get_name_from_passwd_file (void *ctx)
 {
 static char *
 get_name_from_passwd_file (void *ctx)
 {
-    long pw_buf_size = sysconf(_SC_GETPW_R_SIZE_MAX);
-    char *pw_buf = talloc_zero_size (ctx, pw_buf_size);
+    long pw_buf_size;
+    char *pw_buf;
     struct passwd passwd, *ignored;
     char *name;
     int e;
 
     struct passwd passwd, *ignored;
     char *name;
     int e;
 
+    pw_buf_size = sysconf(_SC_GETPW_R_SIZE_MAX);
     if (pw_buf_size == -1) pw_buf_size = 64;
     if (pw_buf_size == -1) pw_buf_size = 64;
+    pw_buf = talloc_size (ctx, pw_buf_size);
 
     while ((e = getpwuid_r (getuid (), &passwd, pw_buf,
                             pw_buf_size, &ignored)) == ERANGE) {
 
     while ((e = getpwuid_r (getuid (), &passwd, pw_buf,
                             pw_buf_size, &ignored)) == ERANGE) {
@@ -144,13 +144,16 @@ get_name_from_passwd_file (void *ctx)
 static char *
 get_username_from_passwd_file (void *ctx)
 {
 static char *
 get_username_from_passwd_file (void *ctx)
 {
-    long pw_buf_size = sysconf(_SC_GETPW_R_SIZE_MAX);
-    char *pw_buf = talloc_zero_size (ctx, pw_buf_size);
+    long pw_buf_size;
+    char *pw_buf;
     struct passwd passwd, *ignored;
     char *name;
     int e;
 
     struct passwd passwd, *ignored;
     char *name;
     int e;
 
+    pw_buf_size = sysconf(_SC_GETPW_R_SIZE_MAX);
     if (pw_buf_size == -1) pw_buf_size = 64;
     if (pw_buf_size == -1) pw_buf_size = 64;
+    pw_buf = talloc_zero_size (ctx, pw_buf_size);
+
     while ((e = getpwuid_r (getuid (), &passwd, pw_buf,
                             pw_buf_size, &ignored)) == ERANGE) {
         pw_buf_size = pw_buf_size * 2;
     while ((e = getpwuid_r (getuid (), &passwd, pw_buf,
                             pw_buf_size, &ignored)) == ERANGE) {
         pw_buf_size = pw_buf_size * 2;
@@ -247,7 +250,7 @@ notmuch_config_open (void *ctx,
     config->user_other_email_length = 0;
     config->new_tags = NULL;
     config->new_tags_length = 0;
     config->user_other_email_length = 0;
     config->new_tags = NULL;
     config->new_tags_length = 0;
-    config->maildir_synchronize_flags = MAILDIR_SYNC_UNDEF;
+    config->maildir_synchronize_flags = TRUE;
 
     if (! g_key_file_load_from_file (config->key_file,
                                     config->filename,
 
     if (! g_key_file_load_from_file (config->key_file,
                                     config->filename,
@@ -341,8 +344,13 @@ notmuch_config_open (void *ctx,
        notmuch_config_set_new_tags (config, tags, 2);
     }
 
        notmuch_config_set_new_tags (config, tags, 2);
     }
 
-    if (notmuch_config_get_maildir_synchronize_flags (config) == MAILDIR_SYNC_UNDEF) {
-       notmuch_config_set_maildir_synchronize_flags (config, FALSE);
+    error = NULL;
+    config->maildir_synchronize_flags =
+       g_key_file_get_boolean (config->key_file,
+                               "maildir", "synchronize_flags", &error);
+    if (error) {
+       notmuch_config_set_maildir_synchronize_flags (config, TRUE);
+       g_error_free (error);
     }
 
     /* Whenever we know of configuration sections that don't appear in
     }
 
     /* Whenever we know of configuration sections that don't appear in
@@ -745,16 +753,6 @@ notmuch_config_command (void *ctx, int argc, char *argv[])
 notmuch_bool_t
 notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config)
 {
 notmuch_bool_t
 notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config)
 {
-    GError *err = NULL;
-    if (config->maildir_synchronize_flags == MAILDIR_SYNC_UNDEF) {
-       config->maildir_synchronize_flags =
-           g_key_file_get_boolean (config->key_file,
-                                   "maildir", "synchronize_flags", &err);
-       if (err) {
-           config->maildir_synchronize_flags = MAILDIR_SYNC_UNDEF;
-           g_error_free (err);
-       }
-    }
     return config->maildir_synchronize_flags;
 }
 
     return config->maildir_synchronize_flags;
 }