From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id 78FDE6DE01D0 for ; Tue, 13 Sep 2016 10:16:11 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: 0.152 X-Spam-Level: X-Spam-Status: No, score=0.152 tagged_above=-999 required=5 tests=[AWL=0.872, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mxpqpMyGz_z0 for ; Tue, 13 Sep 2016 10:16:09 -0700 (PDT) Received: from mail-wm0-f66.google.com (mail-wm0-f66.google.com [74.125.82.66]) by arlo.cworth.org (Postfix) with ESMTPS id 303D76DE0134 for ; Tue, 13 Sep 2016 10:16:08 -0700 (PDT) Received: by mail-wm0-f66.google.com with SMTP id b184so3333394wma.3 for ; Tue, 13 Sep 2016 10:16:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nikula-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=P/k3dNjkieCaa1Ptv675bkGOqiOkneZAl3lKjQlt35c=; b=tnMeWQ+4LG+xc9pLgS7jmvwn9RZ94BqU2jKhV9nNuov+picvrDd7J1upCy1fwXRCwt nkrXbkUPJiTSBM+iwG3zgCjBJ5Fws108uF7Z07gt5aG+9k+cWZEHMQP5sX4kcL8FXM5q 5hMMz4e5KH++OsL7Bu+C9wcvgwoWe9NmmAFwz2IpbfLeZDJs/9sELMx4zuboFzf86nlP vO6EWpWHEXC5OmypiYFhUY2LGB6S9wCxDrS9Uy/D1CjbC6zMzJIugizR/HT0IbVyNaDZ PM8ji4LwSAEMRPaxh9jPNjAiRGOF9KdTMZubdP6BN96cq5kV/9gKJ38uYjQR4Vipe8dm 1Opw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=P/k3dNjkieCaa1Ptv675bkGOqiOkneZAl3lKjQlt35c=; b=KA8wwNRDKNDg32pb9vLT7gxXL6PbO1ru8XJQT4hTRyttRU5eH5t4CXgr0y6c5O0dTK ziCjFqWIX4QZsXdSN8nXbTFhkQetO99765Jj+AjPPKqJvvsxelt/am+7eAL1ig+NYEQB JlWErJQ7paMNe/KlyIMb1hlzir3lKGrQuuPWFUNytJhT9UZyRGfApdHy6ZYWxJdC7uHd n2h9yxbZh20KR9QhEKOhhk1K8GEHFsVkOv1tCDC+PvioZJ8ZPqfHkdvxaFeKoWYH4sBo LhAM0wmSxWGKl8GxkfeSJupLLj1pKKUcT9nJhEY5dsdRjO6GQsdCXbwhc16zFkV4net0 mF5Q== X-Gm-Message-State: AE9vXwMJIxuy9HxQUDA/G0YgsqPd74IOh3wGkGbRRcYDO1HrM/3pkKQ9DuDs8966n+RmHw== X-Received: by 10.28.145.129 with SMTP id t123mr3937786wmd.64.1473786965852; Tue, 13 Sep 2016 10:16:05 -0700 (PDT) Received: from localhost (dsl-hkibrasgw2-58c368-70.dhcp.inet.fi. [88.195.104.70]) by smtp.gmail.com with ESMTPSA id jn7sm13262801wjb.5.2016.09.13.10.16.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 13 Sep 2016 10:16:05 -0700 (PDT) From: Jani Nikula To: notmuch@notmuchmail.org Subject: [PATCH v3 00/15] reply refactor, fixes Date: Tue, 13 Sep 2016 20:14:07 +0300 Message-Id: X-Mailer: git-send-email 2.1.4 X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.22 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: Tue, 13 Sep 2016 17:16:11 -0000 Updated version of [1] to address David's review comments, mostly just commit message updates. Also incorporates the multiple corpora support from [2], with the commit message extended a bit, and rebasing patch 2 on top of it. BR, Jani. [1] id:cover.1471088022.git.jani@nikula.org [2] id:1473609824-6258-1-git-send-email-jani@nikula.org Jani Nikula (15): test: make it possible to have multiple corpora test: add known broken test for reply to message with multiple Cc headers cli/reply: push notmuch reply format abstraction lower in the stack cli/reply: reuse show_reply_headers() in headers-only format cli/reply: unify reply format functions cli/reply: reorganize create_reply_message() cli/reply: make references header creation easier to follow cli/reply: reuse create_reply_message() also for headers-only format cli/reply: reduce the reply format abstractions cli/reply: use dedicated functions for reply to mapping cli/reply: check for NULL list first in scan_address_list() cli/reply: return internet address list from get header funcs cli/reply: do not parse Reply-To: header into internet address list twice cli/reply: pass gmime message to Reply-To: redundancy detection cli/reply: only pass gmime message to add recipients to reply message notmuch-reply.c | 435 ++++++++------------- test/T220-reply.sh | 12 + test/corpora/README | 11 + test/corpora/broken/broken-cc | 9 + test/{corpus => corpora/default}/01:2, | 0 test/{corpus => corpora/default}/02:2, | 0 test/{corpus => corpora/default}/bar/17:2, | 0 test/{corpus => corpora/default}/bar/18:2, | 0 test/{corpus => corpora/default}/bar/baz/05:2, | 0 test/{corpus => corpora/default}/bar/baz/23:2, | 0 test/{corpus => corpora/default}/bar/baz/24:2, | 0 test/{corpus => corpora/default}/bar/baz/cur/25:2, | 0 test/{corpus => corpora/default}/bar/baz/cur/26:2, | 0 test/{corpus => corpora/default}/bar/baz/new/27:2, | 0 test/{corpus => corpora/default}/bar/baz/new/28:2, | 0 test/{corpus => corpora/default}/bar/cur/19:2, | 0 test/{corpus => corpora/default}/bar/cur/20:2, | 0 test/{corpus => corpora/default}/bar/new/21:2, | 0 test/{corpus => corpora/default}/bar/new/22:2, | 0 test/{corpus => corpora/default}/cur/29:2, | 0 test/{corpus => corpora/default}/cur/30:2, | 0 test/{corpus => corpora/default}/cur/31:2, | 0 test/{corpus => corpora/default}/cur/32:2, | 0 test/{corpus => corpora/default}/cur/33:2, | 0 test/{corpus => corpora/default}/cur/34:2, | 0 test/{corpus => corpora/default}/cur/35:2, | 0 test/{corpus => corpora/default}/cur/36:2, | 0 test/{corpus => corpora/default}/cur/37:2, | 0 test/{corpus => corpora/default}/cur/38:2, | 0 test/{corpus => corpora/default}/cur/39:2, | 0 test/{corpus => corpora/default}/cur/40:2, | 0 test/{corpus => corpora/default}/cur/41:2, | 0 test/{corpus => corpora/default}/cur/42:2, | 0 test/{corpus => corpora/default}/cur/43:2, | 0 test/{corpus => corpora/default}/cur/44:2, | 0 test/{corpus => corpora/default}/cur/45:2, | 0 test/{corpus => corpora/default}/cur/46:2, | 0 test/{corpus => corpora/default}/cur/47:2, | 0 test/{corpus => corpora/default}/cur/48:2, | 0 test/{corpus => corpora/default}/cur/49:2, | 0 test/{corpus => corpora/default}/cur/50:2, | 0 test/{corpus => corpora/default}/cur/51:2, | 0 test/{corpus => corpora/default}/cur/52:2, | 0 test/{corpus => corpora/default}/cur/53:2, | 0 test/{corpus => corpora/default}/foo/06:2, | 0 test/{corpus => corpora/default}/foo/baz/11:2, | 0 test/{corpus => corpora/default}/foo/baz/12:2, | 0 test/{corpus => corpora/default}/foo/baz/cur/13:2, | 0 test/{corpus => corpora/default}/foo/baz/cur/14:2, | 0 test/{corpus => corpora/default}/foo/baz/new/15:2, | 0 test/{corpus => corpora/default}/foo/baz/new/16:2, | 0 test/{corpus => corpora/default}/foo/cur/07:2, | 0 test/{corpus => corpora/default}/foo/cur/08:2, | 0 test/{corpus => corpora/default}/foo/new/03:2, | 0 test/{corpus => corpora/default}/foo/new/09:2, | 0 test/{corpus => corpora/default}/foo/new/10:2, | 0 test/{corpus => corpora/default}/new/04:2, | 0 test/test-lib.sh | 19 +- 58 files changed, 212 insertions(+), 274 deletions(-) create mode 100644 test/corpora/README create mode 100644 test/corpora/broken/broken-cc rename test/{corpus => corpora/default}/01:2, (100%) rename test/{corpus => corpora/default}/02:2, (100%) rename test/{corpus => corpora/default}/bar/17:2, (100%) rename test/{corpus => corpora/default}/bar/18:2, (100%) rename test/{corpus => corpora/default}/bar/baz/05:2, (100%) rename test/{corpus => corpora/default}/bar/baz/23:2, (100%) rename test/{corpus => corpora/default}/bar/baz/24:2, (100%) rename test/{corpus => corpora/default}/bar/baz/cur/25:2, (100%) rename test/{corpus => corpora/default}/bar/baz/cur/26:2, (100%) rename test/{corpus => corpora/default}/bar/baz/new/27:2, (100%) rename test/{corpus => corpora/default}/bar/baz/new/28:2, (100%) rename test/{corpus => corpora/default}/bar/cur/19:2, (100%) rename test/{corpus => corpora/default}/bar/cur/20:2, (100%) rename test/{corpus => corpora/default}/bar/new/21:2, (100%) rename test/{corpus => corpora/default}/bar/new/22:2, (100%) rename test/{corpus => corpora/default}/cur/29:2, (100%) rename test/{corpus => corpora/default}/cur/30:2, (100%) rename test/{corpus => corpora/default}/cur/31:2, (100%) rename test/{corpus => corpora/default}/cur/32:2, (100%) rename test/{corpus => corpora/default}/cur/33:2, (100%) rename test/{corpus => corpora/default}/cur/34:2, (100%) rename test/{corpus => corpora/default}/cur/35:2, (100%) rename test/{corpus => corpora/default}/cur/36:2, (100%) rename test/{corpus => corpora/default}/cur/37:2, (100%) rename test/{corpus => corpora/default}/cur/38:2, (100%) rename test/{corpus => corpora/default}/cur/39:2, (100%) rename test/{corpus => corpora/default}/cur/40:2, (100%) rename test/{corpus => corpora/default}/cur/41:2, (100%) rename test/{corpus => corpora/default}/cur/42:2, (100%) rename test/{corpus => corpora/default}/cur/43:2, (100%) rename test/{corpus => corpora/default}/cur/44:2, (100%) rename test/{corpus => corpora/default}/cur/45:2, (100%) rename test/{corpus => corpora/default}/cur/46:2, (100%) rename test/{corpus => corpora/default}/cur/47:2, (100%) rename test/{corpus => corpora/default}/cur/48:2, (100%) rename test/{corpus => corpora/default}/cur/49:2, (100%) rename test/{corpus => corpora/default}/cur/50:2, (100%) rename test/{corpus => corpora/default}/cur/51:2, (100%) rename test/{corpus => corpora/default}/cur/52:2, (100%) rename test/{corpus => corpora/default}/cur/53:2, (100%) rename test/{corpus => corpora/default}/foo/06:2, (100%) rename test/{corpus => corpora/default}/foo/baz/11:2, (100%) rename test/{corpus => corpora/default}/foo/baz/12:2, (100%) rename test/{corpus => corpora/default}/foo/baz/cur/13:2, (100%) rename test/{corpus => corpora/default}/foo/baz/cur/14:2, (100%) rename test/{corpus => corpora/default}/foo/baz/new/15:2, (100%) rename test/{corpus => corpora/default}/foo/baz/new/16:2, (100%) rename test/{corpus => corpora/default}/foo/cur/07:2, (100%) rename test/{corpus => corpora/default}/foo/cur/08:2, (100%) rename test/{corpus => corpora/default}/foo/new/03:2, (100%) rename test/{corpus => corpora/default}/foo/new/09:2, (100%) rename test/{corpus => corpora/default}/foo/new/10:2, (100%) rename test/{corpus => corpora/default}/new/04:2, (100%) -- 2.1.4