Re: have "notmuch help" call man?
authorAustin Clements <amdragon@MIT.EDU>
Thu, 29 Dec 2011 02:24:19 +0000 (21:24 +1900)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:41:23 +0000 (09:41 -0800)
0a/1bb4651379e0a9b6ec846f0375246995e55efc [new file with mode: 0644]

diff --git a/0a/1bb4651379e0a9b6ec846f0375246995e55efc b/0a/1bb4651379e0a9b6ec846f0375246995e55efc
new file mode 100644 (file)
index 0000000..f073138
--- /dev/null
@@ -0,0 +1,159 @@
+Return-Path: <amdragon@mit.edu>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 636EC431FD0\r
+       for <notmuch@notmuchmail.org>; Wed, 28 Dec 2011 18:23:38 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.7\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
+       tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id Ba9AXy0BMEng for <notmuch@notmuchmail.org>;\r
+       Wed, 28 Dec 2011 18:23:36 -0800 (PST)\r
+Received: from dmz-mailsec-scanner-5.mit.edu (DMZ-MAILSEC-SCANNER-5.MIT.EDU\r
+       [18.7.68.34])\r
+       by olra.theworths.org (Postfix) with ESMTP id E816C431FB6\r
+       for <notmuch@notmuchmail.org>; Wed, 28 Dec 2011 18:23:35 -0800 (PST)\r
+X-AuditID: 12074422-b7fd66d0000008f9-4a-4efbcf273d3f\r
+Received: from mailhub-auth-1.mit.edu ( [18.9.21.35])\r
+       by dmz-mailsec-scanner-5.mit.edu (Symantec Messaging Gateway) with SMTP\r
+       id 1B.C7.02297.72FCBFE4; Wed, 28 Dec 2011 21:23:35 -0500 (EST)\r
+Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103])\r
+       by mailhub-auth-1.mit.edu (8.13.8/8.9.2) with ESMTP id pBT2NYrV000797; \r
+       Wed, 28 Dec 2011 21:23:34 -0500\r
+Received: from awakening.csail.mit.edu (awakening.csail.mit.edu [18.26.4.91])\r
+       (authenticated bits=0)\r
+       (User authenticated as amdragon@ATHENA.MIT.EDU)\r
+       by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id pBT2NW4o024564\r
+       (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT);\r
+       Wed, 28 Dec 2011 21:23:33 -0500 (EST)\r
+Received: from amthrax by awakening.csail.mit.edu with local (Exim 4.77)\r
+       (envelope-from <amdragon@mit.edu>)\r
+       id 1Rg5fH-0003Dq-Ak; Wed, 28 Dec 2011 21:24:19 -0500\r
+Date: Wed, 28 Dec 2011 21:24:19 -0500\r
+From: Austin Clements <amdragon@MIT.EDU>\r
+To: David Bremner <david@tethera.net>\r
+Subject: Re: have "notmuch help" call man?\r
+Message-ID: <20111229022419.GI30150@mit.edu>\r
+References: <87zkescxp5.fsf@zancas.localnet> <87iplbyj0w.fsf@zancas.localnet>\r
+       <87ehvxtgoi.fsf@zancas.localnet>\r
+       <87k45pqkaz.fsf@servo.finestructure.net>\r
+       <8739c6yhp0.fsf@zancas.localnet>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=us-ascii\r
+Content-Disposition: inline\r
+In-Reply-To: <8739c6yhp0.fsf@zancas.localnet>\r
+User-Agent: Mutt/1.5.21 (2010-09-15)\r
+X-Brightmail-Tracker:\r
+ H4sIAAAAAAAAA+NgFuplleLIzCtJLcpLzFFi42IR4hRV1lU//9vPYOtdQYsbrd2MFnv2eVlc\r
+       vzmT2YHZ4+5pLo9nq24xe2w59J45gDmKyyYlNSezLLVI3y6BK2Pxj43MBXdFK5Zt+MLYwPhI\r
+       oIuRk0NCwETi5q1zrBC2mMSFe+vZuhi5OIQE9jFKPF45iRHC2cAoMXn+RFYI5ySTRMfS/+wQ\r
+       zhJGiaPLDjKD9LMIqEr8W/OGEcRmE9CQ2LZ/OZgtAhS/um0yG4jNLJAucXn7DjBbWEBL4uvL\r
+       P2C7eQV0JHa/eMwCMfQAo8T21zuYIBKCEidnPmGBaNaSuPHvJVCcA8iWllj+jwMkzCmgK7Hs\r
+       fjs7iC0qoCIx5eQ2tgmMQrOQdM9C0j0LoXsBI/MqRtmU3Crd3MTMnOLUZN3i5MS8vNQiXVO9\r
+       3MwSvdSU0k2MoFBnd1HawfjzoNIhRgEORiUeXi/D335CrIllxZW5hxglOZiURHkrzgCF+JLy\r
+       UyozEosz4otKc1KLDzFKcDArifDW7gbK8aYkVlalFuXDpKQ5WJTEedW13vkJCaQnlqRmp6YW\r
+       pBbBZGU4OJQkeHPPATUKFqWmp1akZeaUIKSZODhBhvMADe8CqeEtLkjMLc5Mh8ifYlSUEudN\r
+       AEkIgCQySvPgemGp6BWjONArwrxxIFU8wDQG1/0KaDAT0OBz536BDC5JREhJNTA2nuefsklA\r
+       Mbpgp1ZiuN+y+vLY6kXGNou3ZPdz+71jT3t+64l3PGes+g/DY02bYw5mOvxq4D1966OoS82r\r
+       N8k7SvJ3FZ88lTv1rKQtB//68pM7a3dyCWWVBN9SnFO1vsA/lUH3Q4++daSI+Yvl3+OMJ7zg\r
+       Cnn/uutj0am9fOzX4l0XqnDICyqxFGckGmoxFxUnAgD56yGjIAMAAA==\r
+Cc: Notmuch Mail <notmuch@notmuchmail.org>\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Thu, 29 Dec 2011 02:23:38 -0000\r
+\r
+Quoth David Bremner on Dec 26 at  8:35 pm:\r
+> The following changes since commit d61cef374b3234c2f1327fa74b612b40c196a605:\r
+> \r
+>   show: Rewrite show_message_body to use the MIME tree interface. (2011-12-25 22:23:15 -0400)\r
+> \r
+> are available in the git repository at:\r
+>   git://pivot.cs.unb.ca/notmuch split-man\r
+> \r
+> HEAD is at 8eaee754e48dc630d83e2f7369bdadde0f34af84\r
+\r
+Some comments on "notmuch: replace built-in help with exec of man"\r
+\r
+> @@ -534,38 +126,20 @@ notmuch_help_command (unused (void *ctx), int argc, char *argv[])\r
+>      for (i = 0; i < ARRAY_SIZE (commands); i++) {\r
+>      command = &commands[i];\r
+>  \r
+> -    if (strcmp (argv[0], command->name) == 0) {\r
+> -        printf ("Help for \"notmuch %s\":\n\n", argv[0]);\r
+> -        if (command->arguments)\r
+> -            printf ("%s %s\n\n\t%s\n\n%s\n\n",\r
+> -                    command->name, command->arguments,\r
+> -                    command->summary, command->documentation);\r
+> -        else\r
+> -            printf ("%s\t%s\n\n%s\n\n", command->name,\r
+> -                    command->summary, command->documentation);\r
+> -        return 0;\r
+> +    if (strncmp (argv[0], command->name, strlen (argv[0])) == 0) {\r
+\r
+Shouldn't this be strcmp?\r
+\r
+> +        char *page = malloc (strlen (argv[0]) + strlen ("notmuch-") + 1);\r
+> +        strcpy (page, "notmuch-");\r
+> +        strcat (page, command->name);\r
+\r
+This is fine, but could be cleaner with talloc:\r
+  char *page = talloc_asprintf (ctx, "notmuch-%s", command->name);\r
+\r
+> +\r
+> +        execlp ("man", "man", page, (char *) NULL);\r
+> +        /* NOTREACHED */\r
+\r
+This certainly *can* be reached if the exec fails.  You should print a\r
+helpful error message and exit, maybe something like\r
+  fprintf (stderr, "failed to exec man: %s\n", strerror (errno));\r
+  exit (1);\r
+\r
+>      }\r
+>      }\r
+>  \r
+> -    if (strcmp (argv[0], "search-terms") == 0) {\r
+> -    printf ("Help for <%s>\n\n", argv[0]);\r
+> -    for (i = 0; i < ARRAY_SIZE (commands); i++) {\r
+> -        command = &commands[i];\r
+> -\r
+> -        if (command->arguments &&\r
+> -            strstr (command->arguments, "search-terms"))\r
+> -        {\r
+> -            printf ("\t%s\t%s\n",\r
+> -                    command->name, command->arguments);\r
+> -        }\r
+> -    }\r
+> -    printf ("\n");\r
+> -    printf (search_terms_help);\r
+> -    return 0;\r
+> -    } else if (strcmp (argv[0], "hooks") == 0) {\r
+> -    printf ("Help for <%s>\n\n", argv[0]);\r
+> -    printf (hooks_help);\r
+> -    return 0;\r
+> +    if (strncmp (argv[0], "search-terms", strlen (argv[0])) == 0) {\r
+> +    execlp ("man", "man", "notmuch-search-terms", (char *) NULL);\r
+> +    } else if (strncmp (argv[0], "hooks", strlen (argv[0])) == 0) {\r
+> +    execlp ("man", "man", "notmuch-hooks", (char *) NULL);\r
+\r
+Same comments about strncmp and exec failing for the above four lines.\r
+It might make sense to merge all of the exec calls in to one to\r
+centralize the error handling.\r
+\r
+>      }\r
+>  \r
+>      fprintf (stderr,\r