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 4CFBC431FAE for ; Tue, 24 Jul 2012 19:35:17 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org 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 f4ImJcQlrk46 for ; Tue, 24 Jul 2012 19:35:16 -0700 (PDT) Received: from dmz-mailsec-scanner-8.mit.edu (DMZ-MAILSEC-SCANNER-8.MIT.EDU [18.7.68.37]) by olra.theworths.org (Postfix) with ESMTP id 1899D431FAF for ; Tue, 24 Jul 2012 19:35:07 -0700 (PDT) X-AuditID: 12074425-b7f9b6d0000008c4-15-500f5b597f25 Received: from mailhub-auth-1.mit.edu ( [18.9.21.35]) by dmz-mailsec-scanner-8.mit.edu (Symantec Messaging Gateway) with SMTP id 22.8F.02244.95B5F005; Tue, 24 Jul 2012 22:35:05 -0400 (EDT) Received: from outgoing.mit.edu (OUTGOING-AUTH.MIT.EDU [18.7.22.103]) by mailhub-auth-1.mit.edu (8.13.8/8.9.2) with ESMTP id q6P2Z4Bv011168; Tue, 24 Jul 2012 22:35:04 -0400 Received: from drake.dyndns.org (209-6-116-242.c3-0.arl-ubr1.sbo-arl.ma.cable.rcn.com [209.6.116.242]) (authenticated bits=0) (User authenticated as amdragon@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.6/8.12.4) with ESMTP id q6P2Z2Vn025114 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT); Tue, 24 Jul 2012 22:35:03 -0400 (EDT) Received: from amthrax by drake.dyndns.org with local (Exim 4.77) (envelope-from ) id 1StrRE-0004Yh-RN; Tue, 24 Jul 2012 22:35:00 -0400 From: Austin Clements To: notmuch@notmuchmail.org Subject: [PATCH 00/13] Convert notmuch show to use structure printers Date: Tue, 24 Jul 2012 22:34:40 -0400 Message-Id: <1343183693-17134-1-git-send-email-amdragon@mit.edu> X-Mailer: git-send-email 1.7.10 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrKIsWRmVeSWpSXmKPExsUixCmqrBsZzR9gMOUSt8XehnZGi+s3ZzI7 MHks3rSfzePZqlvMAUxRXDYpqTmZZalF+nYJXBl3X0xhLNjCUfFxy2P2BsYHbF2MnBwSAiYS 6z6uYIawxSQu3FsPFOfiEBLYxygxZdplJpCEkMAGRolvB50gEo+YJB5N28YM4cxllNh25Q9Y O5uAhsS2/csZQWwRAWmJnXdns4LYzAJCEr+u7QCrERZwlbj8tBksziKgKvG/qRfM5hVwkLj3 4CErxBnyEk/v97FNYORdwMiwilE2JbdKNzcxM6c4NVm3ODkxLy+1SNdCLzezRC81pXQTIyg0 2F1UdzBOOKR0iFGAg1GJh/fXE74AIdbEsuLK3EOMkhxMSqK8FcH8AUJ8SfkplRmJxRnxRaU5 qcWHGCU4mJVEeIvCgHK8KYmVValF+TApaQ4WJXHeGyk3/YUE0hNLUrNTUwtSi2CyMhwcShK8 rVFAjYJFqempFWmZOSUIaSYOTpDhPEDDWUFqeIsLEnOLM9Mh8qcYFaXEebVBEgIgiYzSPLhe WOy+YhQHekWYtxmkigcY93Ddr4AGMwENfh7GBzK4JBEhJdXA6L3M+0Sg0JmjbOsy590TuMu+ dNvlHcVcr/7MurrkhvdpsZaJzdpXlrw9NZNpzebPz533sVWLzXm+Z8PSTWt/hj1Z18B+Jced kafI+q5bq9q7Iu8WnX4XvZwzgeqbzq1Uu/tk30HbCPdF+t/FTm08wrn8X9LisOdC/S0vFx0M 03yX3i3moGPaKabEUpyRaKjFXFScCACwMJJIuAIAAA== 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: Wed, 25 Jul 2012 02:35:17 -0000 This patch series converts notmuch show to use the new structure printer infrastructure, cleaning up the code and paving the way to easily support other structure types. There are a lot of patches, but most of them are small and the conversion is very mechanical. The first three patches set up prerequisites by making the test infrastructure more resilient to irrelevant JSON changes and by introducing a new method to the sprinter. The next three patches introduce sprinters to notmuch show and feed them through all of its layers, though they remain unused. The remaining patches work their way back up from the leaves of the JSON printer all the way to do_show, converting each layer to use the sprinter. By doing this conversion from the leaves of the structure up, the output remains valid and the tests continue to pass at every step. The full series has been tested with both GMime 2.4 and GMime 2.6. The first two patches together and the third patch alone stand on their own and could be pushed before the rest of the series if desired.