Re: [PATCH v3 0/6] Make Emacs search use sexp format
[notmuch-archives.git] / 0a / 1bb4651379e0a9b6ec846f0375246995e55efc
1 Return-Path: <amdragon@mit.edu>\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 636EC431FD0\r
6         for <notmuch@notmuchmail.org>; Wed, 28 Dec 2011 18:23:38 -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.7\r
10 X-Spam-Level: \r
11 X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
12         tests=[RCVD_IN_DNSWL_LOW=-0.7] 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 Ba9AXy0BMEng for <notmuch@notmuchmail.org>;\r
16         Wed, 28 Dec 2011 18:23:36 -0800 (PST)\r
17 Received: from dmz-mailsec-scanner-5.mit.edu (DMZ-MAILSEC-SCANNER-5.MIT.EDU\r
18         [18.7.68.34])\r
19         by olra.theworths.org (Postfix) with ESMTP id E816C431FB6\r
20         for <notmuch@notmuchmail.org>; Wed, 28 Dec 2011 18:23:35 -0800 (PST)\r
21 X-AuditID: 12074422-b7fd66d0000008f9-4a-4efbcf273d3f\r
22 Received: from mailhub-auth-1.mit.edu ( [18.9.21.35])\r
23         by dmz-mailsec-scanner-5.mit.edu (Symantec Messaging Gateway) with SMTP\r
24         id 1B.C7.02297.72FCBFE4; Wed, 28 Dec 2011 21:23:35 -0500 (EST)\r
25 Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103])\r
26         by mailhub-auth-1.mit.edu (8.13.8/8.9.2) with ESMTP id pBT2NYrV000797; \r
27         Wed, 28 Dec 2011 21:23:34 -0500\r
28 Received: from awakening.csail.mit.edu (awakening.csail.mit.edu [18.26.4.91])\r
29         (authenticated bits=0)\r
30         (User authenticated as amdragon@ATHENA.MIT.EDU)\r
31         by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id pBT2NW4o024564\r
32         (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT);\r
33         Wed, 28 Dec 2011 21:23:33 -0500 (EST)\r
34 Received: from amthrax by awakening.csail.mit.edu with local (Exim 4.77)\r
35         (envelope-from <amdragon@mit.edu>)\r
36         id 1Rg5fH-0003Dq-Ak; Wed, 28 Dec 2011 21:24:19 -0500\r
37 Date: Wed, 28 Dec 2011 21:24:19 -0500\r
38 From: Austin Clements <amdragon@MIT.EDU>\r
39 To: David Bremner <david@tethera.net>\r
40 Subject: Re: have "notmuch help" call man?\r
41 Message-ID: <20111229022419.GI30150@mit.edu>\r
42 References: <87zkescxp5.fsf@zancas.localnet> <87iplbyj0w.fsf@zancas.localnet>\r
43         <87ehvxtgoi.fsf@zancas.localnet>\r
44         <87k45pqkaz.fsf@servo.finestructure.net>\r
45         <8739c6yhp0.fsf@zancas.localnet>\r
46 MIME-Version: 1.0\r
47 Content-Type: text/plain; charset=us-ascii\r
48 Content-Disposition: inline\r
49 In-Reply-To: <8739c6yhp0.fsf@zancas.localnet>\r
50 User-Agent: Mutt/1.5.21 (2010-09-15)\r
51 X-Brightmail-Tracker:\r
52  H4sIAAAAAAAAA+NgFuplleLIzCtJLcpLzFFi42IR4hRV1lU//9vPYOtdQYsbrd2MFnv2eVlc\r
53         vzmT2YHZ4+5pLo9nq24xe2w59J45gDmKyyYlNSezLLVI3y6BK2Pxj43MBXdFK5Zt+MLYwPhI\r
54         oIuRk0NCwETi5q1zrBC2mMSFe+vZuhi5OIQE9jFKPF45iRHC2cAoMXn+RFYI5ySTRMfS/+wQ\r
55         zhJGiaPLDjKD9LMIqEr8W/OGEcRmE9CQ2LZ/OZgtAhS/um0yG4jNLJAucXn7DjBbWEBL4uvL\r
56         P2C7eQV0JHa/eMwCMfQAo8T21zuYIBKCEidnPmGBaNaSuPHvJVCcA8iWllj+jwMkzCmgK7Hs\r
57         fjs7iC0qoCIx5eQ2tgmMQrOQdM9C0j0LoXsBI/MqRtmU3Crd3MTMnOLUZN3i5MS8vNQiXVO9\r
58         3MwSvdSU0k2MoFBnd1HawfjzoNIhRgEORiUeXi/D335CrIllxZW5hxglOZiURHkrzgCF+JLy\r
59         UyozEosz4otKc1KLDzFKcDArifDW7gbK8aYkVlalFuXDpKQ5WJTEedW13vkJCaQnlqRmp6YW\r
60         pBbBZGU4OJQkeHPPATUKFqWmp1akZeaUIKSZODhBhvMADe8CqeEtLkjMLc5Mh8ifYlSUEudN\r
61         AEkIgCQySvPgemGp6BWjONArwrxxIFU8wDQG1/0KaDAT0OBz536BDC5JREhJNTA2nuefsklA\r
62         Mbpgp1ZiuN+y+vLY6kXGNou3ZPdz+71jT3t+64l3PGes+g/DY02bYw5mOvxq4D1966OoS82r\r
63         N8k7SvJ3FZ88lTv1rKQtB//68pM7a3dyCWWVBN9SnFO1vsA/lUH3Q4++daSI+Yvl3+OMJ7zg\r
64         Cnn/uutj0am9fOzX4l0XqnDICyqxFGckGmoxFxUnAgD56yGjIAMAAA==\r
65 Cc: Notmuch Mail <notmuch@notmuchmail.org>\r
66 X-BeenThere: notmuch@notmuchmail.org\r
67 X-Mailman-Version: 2.1.13\r
68 Precedence: list\r
69 List-Id: "Use and development of the notmuch mail system."\r
70         <notmuch.notmuchmail.org>\r
71 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
72         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
73 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
74 List-Post: <mailto:notmuch@notmuchmail.org>\r
75 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
76 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
77         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
78 X-List-Received-Date: Thu, 29 Dec 2011 02:23:38 -0000\r
79 \r
80 Quoth David Bremner on Dec 26 at  8:35 pm:\r
81 > The following changes since commit d61cef374b3234c2f1327fa74b612b40c196a605:\r
82\r
83 >   show: Rewrite show_message_body to use the MIME tree interface. (2011-12-25 22:23:15 -0400)\r
84\r
85 > are available in the git repository at:\r
86 >   git://pivot.cs.unb.ca/notmuch split-man\r
87\r
88 > HEAD is at 8eaee754e48dc630d83e2f7369bdadde0f34af84\r
89 \r
90 Some comments on "notmuch: replace built-in help with exec of man"\r
91 \r
92 > @@ -534,38 +126,20 @@ notmuch_help_command (unused (void *ctx), int argc, char *argv[])\r
93 >      for (i = 0; i < ARRAY_SIZE (commands); i++) {\r
94 >       command = &commands[i];\r
95 >  \r
96 > -     if (strcmp (argv[0], command->name) == 0) {\r
97 > -         printf ("Help for \"notmuch %s\":\n\n", argv[0]);\r
98 > -         if (command->arguments)\r
99 > -             printf ("%s %s\n\n\t%s\n\n%s\n\n",\r
100 > -                     command->name, command->arguments,\r
101 > -                     command->summary, command->documentation);\r
102 > -         else\r
103 > -             printf ("%s\t%s\n\n%s\n\n", command->name,\r
104 > -                     command->summary, command->documentation);\r
105 > -         return 0;\r
106 > +     if (strncmp (argv[0], command->name, strlen (argv[0])) == 0) {\r
107 \r
108 Shouldn't this be strcmp?\r
109 \r
110 > +         char *page = malloc (strlen (argv[0]) + strlen ("notmuch-") + 1);\r
111 > +         strcpy (page, "notmuch-");\r
112 > +         strcat (page, command->name);\r
113 \r
114 This is fine, but could be cleaner with talloc:\r
115   char *page = talloc_asprintf (ctx, "notmuch-%s", command->name);\r
116 \r
117 > +\r
118 > +         execlp ("man", "man", page, (char *) NULL);\r
119 > +         /* NOTREACHED */\r
120 \r
121 This certainly *can* be reached if the exec fails.  You should print a\r
122 helpful error message and exit, maybe something like\r
123   fprintf (stderr, "failed to exec man: %s\n", strerror (errno));\r
124   exit (1);\r
125 \r
126 >       }\r
127 >      }\r
128 >  \r
129 > -    if (strcmp (argv[0], "search-terms") == 0) {\r
130 > -     printf ("Help for <%s>\n\n", argv[0]);\r
131 > -     for (i = 0; i < ARRAY_SIZE (commands); i++) {\r
132 > -         command = &commands[i];\r
133 > -\r
134 > -         if (command->arguments &&\r
135 > -             strstr (command->arguments, "search-terms"))\r
136 > -         {\r
137 > -             printf ("\t%s\t%s\n",\r
138 > -                     command->name, command->arguments);\r
139 > -         }\r
140 > -     }\r
141 > -     printf ("\n");\r
142 > -     printf (search_terms_help);\r
143 > -     return 0;\r
144 > -    } else if (strcmp (argv[0], "hooks") == 0) {\r
145 > -     printf ("Help for <%s>\n\n", argv[0]);\r
146 > -     printf (hooks_help);\r
147 > -     return 0;\r
148 > +    if (strncmp (argv[0], "search-terms", strlen (argv[0])) == 0) {\r
149 > +     execlp ("man", "man", "notmuch-search-terms", (char *) NULL);\r
150 > +    } else if (strncmp (argv[0], "hooks", strlen (argv[0])) == 0) {\r
151 > +     execlp ("man", "man", "notmuch-hooks", (char *) NULL);\r
152 \r
153 Same comments about strncmp and exec failing for the above four lines.\r
154 It might make sense to merge all of the exec calls in to one to\r
155 centralize the error handling.\r
156 \r
157 >      }\r
158 >  \r
159 >      fprintf (stderr,\r