Re: [PATCH] emacs: wash: make word-wrap bound message width
[notmuch-archives.git] / 05 / 6145defd06bf00f6e848464f00d6ce43dd76ff
1 Return-Path: <bremner@tethera.net>\r
2 X-Original-To: notmuch@notmuchmail.org\r
3 Delivered-To: notmuch@notmuchmail.org\r
4 Received: from localhost (localhost [127.0.0.1])\r
5         by olra.theworths.org (Postfix) with ESMTP id 5E7F6429E44\r
6         for <notmuch@notmuchmail.org>; Sun,  6 Jan 2013 19:17:14 -0800 (PST)\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
8 X-Spam-Flag: NO\r
9 X-Spam-Score: 0\r
10 X-Spam-Level: \r
11 X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]\r
12         autolearn=disabled\r
13 Received: from olra.theworths.org ([127.0.0.1])\r
14         by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
15         with ESMTP id u+Tpg2suDh2q for <notmuch@notmuchmail.org>;\r
16         Sun,  6 Jan 2013 19:17:13 -0800 (PST)\r
17 Received: from tesseract.cs.unb.ca (tesseract.cs.unb.ca [131.202.240.238])\r
18         (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))\r
19         (No client certificate requested)\r
20         by olra.theworths.org (Postfix) with ESMTPS id 2F2BB429E3A\r
21         for <notmuch@notmuchmail.org>; Sun,  6 Jan 2013 19:17:12 -0800 (PST)\r
22 Received: from fctnnbsc30w-156034082078.dhcp-dynamic.fibreop.nb.bellaliant.net\r
23         ([156.34.82.78] helo=zancas.localnet)\r
24         by tesseract.cs.unb.ca with esmtpsa\r
25         (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80)\r
26         (envelope-from <bremner@tethera.net>)\r
27         id 1Ts3D2-0002dw-RM; Sun, 06 Jan 2013 23:17:09 -0400\r
28 Received: from bremner by zancas.localnet with local (Exim 4.80)\r
29         (envelope-from <bremner@tethera.net>)\r
30         id 1Ts3Cx-0001hl-9k; Sun, 06 Jan 2013 23:17:03 -0400\r
31 From: david@tethera.net\r
32 To: notmuch@notmuchmail.org\r
33 Subject: [Patch v2 1/9] tag-util: factor out rules for illegal tags,\r
34         use in parse_tag_line\r
35 Date: Sun,  6 Jan 2013 23:16:46 -0400\r
36 Message-Id: <1357528614-6413-2-git-send-email-david@tethera.net>\r
37 X-Mailer: git-send-email 1.7.10.4\r
38 In-Reply-To: <1357528614-6413-1-git-send-email-david@tethera.net>\r
39 References: <1357528614-6413-1-git-send-email-david@tethera.net>\r
40 X-Spam_bar: -\r
41 Cc: David Bremner <bremner@debian.org>\r
42 X-BeenThere: notmuch@notmuchmail.org\r
43 X-Mailman-Version: 2.1.13\r
44 Precedence: list\r
45 List-Id: "Use and development of the notmuch mail system."\r
46         <notmuch.notmuchmail.org>\r
47 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
48         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
49 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
50 List-Post: <mailto:notmuch@notmuchmail.org>\r
51 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
52 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
53         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
54 X-List-Received-Date: Mon, 07 Jan 2013 03:17:14 -0000\r
55 \r
56 From: David Bremner <bremner@debian.org>\r
57 \r
58 This will allow us to be consistent between batch tagging and command\r
59 line tagging as far as what is an illegal tag.\r
60 ---\r
61  tag-util.c |   36 +++++++++++++++++++++++++++++++-----\r
62  1 file changed, 31 insertions(+), 5 deletions(-)\r
63 \r
64 diff --git a/tag-util.c b/tag-util.c\r
65 index ca12b3b..0a4fe78 100644\r
66 --- a/tag-util.c\r
67 +++ b/tag-util.c\r
68 @@ -31,6 +31,30 @@ line_error (tag_parse_status_t status,\r
69      return status;\r
70  }\r
71  \r
72 +/*\r
73 + * Test tags for some forbidden cases.\r
74 + *\r
75 + * return: NULL if OK,\r
76 + *        explanatory message otherwise.\r
77 + */\r
78 +\r
79 +static const char *\r
80 +illegal_tag (const char *tag, notmuch_bool_t remove)\r
81 +{\r
82 +\r
83 +    if (*tag == '\0' && ! remove)\r
84 +       return "empty tag forbidden";\r
85 +\r
86 +    /* This disallows adding the non-removable tag "-" and\r
87 +     * enables notmuch tag to take long options more easily.\r
88 +     */\r
89 +\r
90 +    if (*tag == '-' && ! remove)\r
91 +       return "tag starting with '-' forbidden";\r
92 +\r
93 +    return NULL;\r
94 +}\r
95 +\r
96  tag_parse_status_t\r
97  parse_tag_line (void *ctx, char *line,\r
98                 tag_op_flag_t flags,\r
99 @@ -95,11 +119,13 @@ parse_tag_line (void *ctx, char *line,\r
100         remove = (*tok == '-');\r
101         tag = tok + 1;\r
102  \r
103 -       /* Maybe refuse empty tags. */\r
104 -       if (! (flags & TAG_FLAG_BE_GENEROUS) && *tag == '\0') {\r
105 -           ret = line_error (TAG_PARSE_INVALID, line_for_error,\r
106 -                             "empty tag");\r
107 -           goto DONE;\r
108 +       /* Maybe refuse illegal tags. */\r
109 +       if (! (flags & TAG_FLAG_BE_GENEROUS)) {\r
110 +           const char *msg = illegal_tag (tag, remove);\r
111 +           if (msg) {\r
112 +               ret = line_error (TAG_PARSE_INVALID, line_for_error, msg);\r
113 +               goto DONE;\r
114 +           }\r
115         }\r
116  \r
117         /* Decode tag. */\r
118 -- \r
119 1.7.10.4\r
120 \r