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