From a2e69cbcdc1f8e825257ea46e538c769222543a5 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sat, 30 Mar 2013 16:21:21 +0200 Subject: [PATCH] [PATCH v2 2/3] cli: add reply.honor_followup_to configuration option --- f7/a0c4954d419d54e5aff691a45d60ef7ba6a730 | 201 ++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 f7/a0c4954d419d54e5aff691a45d60ef7ba6a730 diff --git a/f7/a0c4954d419d54e5aff691a45d60ef7ba6a730 b/f7/a0c4954d419d54e5aff691a45d60ef7ba6a730 new file mode 100644 index 000000000..40216be08 --- /dev/null +++ b/f7/a0c4954d419d54e5aff691a45d60ef7ba6a730 @@ -0,0 +1,201 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id C5C23429E29 + for ; Sat, 30 Mar 2013 07:21:39 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" +X-Spam-Flag: NO +X-Spam-Score: -0.7 +X-Spam-Level: +X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5 + tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id KyZfgUsOe-42 for ; + Sat, 30 Mar 2013 07:21:38 -0700 (PDT) +Received: from mail-lb0-f181.google.com (mail-lb0-f181.google.com + [209.85.217.181]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) + (No client certificate requested) + by olra.theworths.org (Postfix) with ESMTPS id 49A38431FD7 + for ; Sat, 30 Mar 2013 07:21:36 -0700 (PDT) +Received: by mail-lb0-f181.google.com with SMTP id r11so910753lbv.26 + for ; Sat, 30 Mar 2013 07:21:34 -0700 (PDT) +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; + d=google.com; s=20120113; + h=x-received:from:to:cc:subject:date:message-id:x-mailer:in-reply-to + :references:in-reply-to:references:x-gm-message-state; + bh=fkWdoztOuJvp5t9Z1M/kbGJRHF09TLv8Q4BpHLlbkrE=; + b=en47N4t3TEDcAIEUpXgdTo8kUD7ktXiQ3l64hX6TYlxG1gWUzjmRmykItZt4YSkM5l + V8M8WTcMzlVMegij6tq+pLOYOI5nZi6ZcCjYUEPJktz3HcXpT8P4b8W16qiPKWDlLpU/ + reUXnDSzKLePW90iS0JVVcPnWXT9/OwZZ8+zEdkD6Fg2IupIJ2+QXPa1abSGjrJasMhD + 1M2lKqzF+UF7DjcV57bzOnt0s9F+45EdOd36XEHiZWH5j0jcy8mTTyRuOqfFHrUS6XPK + cwleKJMdF12d2Bgvlk3g4GLUWyfLoBP6B6CV70VYebvwE5ekHIE0PbK4rAClux77nUPI + HttQ== +X-Received: by 10.112.59.104 with SMTP id y8mr3000445lbq.39.1364653294753; + Sat, 30 Mar 2013 07:21:34 -0700 (PDT) +Received: from localhost (dsl-hkibrasgw4-50df51-27.dhcp.inet.fi. + [80.223.81.27]) + by mx.google.com with ESMTPS id fz10sm2656631lbb.12.2013.03.30.07.21.32 + (version=TLSv1.2 cipher=RC4-SHA bits=128/128); + Sat, 30 Mar 2013 07:21:33 -0700 (PDT) +From: Jani Nikula +To: notmuch@notmuchmail.org +Subject: [PATCH v2 2/3] cli: add reply.honor_followup_to configuration option +Date: Sat, 30 Mar 2013 16:21:21 +0200 +Message-Id: + <698d81ea04495c4315ff7da603f3e54eed1d24f1.1364652420.git.jani@nikula.org> +X-Mailer: git-send-email 1.7.10.4 +In-Reply-To: +References: +In-Reply-To: +References: +X-Gm-Message-State: + ALoCoQmCKzX6xFSXVdYlV14feLps3NxG1RYLRdu6KX4dRytWi3VXIM+him6+OnDryID3L5Wh7NWF +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Sat, 30 Mar 2013 14:21:40 -0000 + +The reply.honor_followup_to configuration option determines whether +notmuch reply takes into account the Mail-Followup-To: header in +incoming messages. +--- + notmuch-client.h | 7 +++++++ + notmuch-config.c | 43 +++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 50 insertions(+) + +diff --git a/notmuch-client.h b/notmuch-client.h +index 45749a6..0b7800c 100644 +--- a/notmuch-client.h ++++ b/notmuch-client.h +@@ -301,6 +301,13 @@ notmuch_config_set_new_ignore (notmuch_config_t *config, + size_t length); + + notmuch_bool_t ++notmuch_config_get_reply_honor_followup_to (notmuch_config_t *config); ++ ++void ++notmuch_config_set_reply_honor_followup_to (notmuch_config_t *config, ++ notmuch_bool_t honor_followup_to); ++ ++notmuch_bool_t + notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config); + + void +diff --git a/notmuch-config.c b/notmuch-config.c +index 66a1cdf..053038e 100644 +--- a/notmuch-config.c ++++ b/notmuch-config.c +@@ -53,6 +53,17 @@ static const char new_config_comment[] = + "\t names will be ignored, independent of its depth/location\n" + "\t in the mail store.\n"; + ++static const char reply_config_comment[] = ++ " Configuration for \"notmuch reply\"\n" ++ "\n" ++ " The following option is supported here:\n" ++ "\n" ++ "\thonor_followup_to Valid values are true and false.\n" ++ "\n" ++ "\tIf true, \"notmuch reply\" will honor the \"Mail-Followup-To:\"" ++ "\theader in incoming messages. (This will not generate the headers" ++ "\tto outgoing messages.)\n"; ++ + static const char user_config_comment[] = + " User configuration\n" + "\n" +@@ -115,6 +126,7 @@ struct _notmuch_config { + size_t new_tags_length; + const char **new_ignore; + size_t new_ignore_length; ++ notmuch_bool_t reply_honor_followup_to; + notmuch_bool_t maildir_synchronize_flags; + const char **search_exclude_tags; + size_t search_exclude_tags_length; +@@ -240,6 +252,7 @@ notmuch_config_open (void *ctx, + char *notmuch_config_env = NULL; + int file_had_database_group; + int file_had_new_group; ++ int file_had_reply_group; + int file_had_user_group; + int file_had_maildir_group; + int file_had_search_group; +@@ -273,6 +286,7 @@ notmuch_config_open (void *ctx, + config->new_tags_length = 0; + config->new_ignore = NULL; + config->new_ignore_length = 0; ++ config->reply_honor_followup_to = FALSE; + config->maildir_synchronize_flags = TRUE; + config->search_exclude_tags = NULL; + config->search_exclude_tags_length = 0; +@@ -316,6 +330,7 @@ notmuch_config_open (void *ctx, + file_had_database_group = g_key_file_has_group (config->key_file, + "database"); + file_had_new_group = g_key_file_has_group (config->key_file, "new"); ++ file_had_reply_group = g_key_file_has_group (config->key_file, "reply"); + file_had_user_group = g_key_file_has_group (config->key_file, "user"); + file_had_maildir_group = g_key_file_has_group (config->key_file, "maildir"); + file_had_search_group = g_key_file_has_group (config->key_file, "search"); +@@ -383,6 +398,15 @@ notmuch_config_open (void *ctx, + } + + error = NULL; ++ config->reply_honor_followup_to = ++ g_key_file_get_boolean (config->key_file, ++ "reply", "honor_followup_to", &error); ++ if (error) { ++ notmuch_config_set_reply_honor_followup_to (config, FALSE); ++ g_error_free (error); ++ } ++ ++ error = NULL; + config->maildir_synchronize_flags = + g_key_file_get_boolean (config->key_file, + "maildir", "synchronize_flags", &error); +@@ -406,6 +430,10 @@ notmuch_config_open (void *ctx, + g_key_file_set_comment (config->key_file, "new", NULL, + new_config_comment, NULL); + ++ if (! file_had_reply_group) ++ g_key_file_set_comment (config->key_file, "reply", NULL, ++ reply_config_comment, NULL); ++ + if (! file_had_user_group) + g_key_file_set_comment (config->key_file, "user", NULL, + user_config_comment, NULL); +@@ -845,6 +873,21 @@ notmuch_config_command (notmuch_config_t *config, int argc, char *argv[]) + } + + notmuch_bool_t ++notmuch_config_get_reply_honor_followup_to (notmuch_config_t *config) ++{ ++ return config->reply_honor_followup_to; ++} ++ ++void ++notmuch_config_set_reply_honor_followup_to (notmuch_config_t *config, ++ notmuch_bool_t honor_followup_to) ++{ ++ g_key_file_set_boolean (config->key_file, ++ "reply", "honor_followup_to", honor_followup_to); ++ config->reply_honor_followup_to = honor_followup_to; ++} ++ ++notmuch_bool_t + notmuch_config_get_maildir_synchronize_flags (notmuch_config_t *config) + { + return config->maildir_synchronize_flags; +-- +1.7.10.4 + -- 2.26.2