Re: [PATCH] emacs: wash: make word-wrap bound message width
[notmuch-archives.git] / 71 / e6ec8bf11f9c6c053452a745a4ef9dee11b699
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 65059429E26\r
6         for <notmuch@notmuchmail.org>; Wed, 21 Dec 2011 06:39:06 -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 vFl1hgJZa1Yg for <notmuch@notmuchmail.org>;\r
16         Wed, 21 Dec 2011 06:39:05 -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 A9170431FB6\r
20         for <notmuch@notmuchmail.org>; Wed, 21 Dec 2011 06:39:05 -0800 (PST)\r
21 X-AuditID: 12074422-b7fd66d0000008f9-f0-4ef1ef861430\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 34.2E.02297.68FE1FE4; Wed, 21 Dec 2011 09:39:02 -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 pBLEd1fO031639; \r
27         Wed, 21 Dec 2011 09:39:02 -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 pBLEcxpg024899\r
32         (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NOT);\r
33         Wed, 21 Dec 2011 09:39:00 -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 1RdNKy-0006Wi-9A; Wed, 21 Dec 2011 09:40:08 -0500\r
37 Date: Wed, 21 Dec 2011 09:40:08 -0500\r
38 From: Austin Clements <amdragon@MIT.EDU>\r
39 To: David Edmondson <dme@dme.org>\r
40 Subject: Re: [PATCH] emacs: create patch filename from subject for inline\r
41         patch fake parts\r
42 Message-ID: <20111221144008.GG10376@mit.edu>\r
43 References: <1321657368-13872-1-git-send-email-jani@nikula.org>\r
44         <87aa6nxb3o.fsf@nikula.org> <20111220215229.GF10376@mit.edu>\r
45         <cun4nwuxota.fsf@hotblack-desiato.hh.sledj.net>\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: <cun4nwuxota.fsf@hotblack-desiato.hh.sledj.net>\r
50 User-Agent: Mutt/1.5.21 (2010-09-15)\r
51 X-Brightmail-Tracker:\r
52  H4sIAAAAAAAAA+NgFuplleLIzCtJLcpLzFFi42IR4hRV1m17/9HPYNN9I4t9d7YwWTRNd7a4\r
53         fnMmswOzx67nf5k8bt1/ze7xbNUt5gDmKC6blNSczLLUIn27BK6MCR8mMRbsEKx4/YirgXE/\r
54         bxcjJ4eEgInE6SW7WSBsMYkL99azdTFycQgJ7GOUuLF2NjOEs4FR4t6h44wQzkkmiZst35kg\r
55         nCWMEs2L17GC9LMIqEq8+rOcDcRmE9CQ2LZ/OSOILSKgKPH/2wp2EJtZwEqiYcsHsLiwQIzE\r
56         03+TwHbzCuhIXL74EWr3JkaJr4cnQCUEJU7OfMIC0awlcePfS6DNHEC2tMTyfxwgYU4BG4nj\r
57         K46D3SAqoCIx5eQ2tgmMQrOQdM9C0j0LoXsBI/MqRtmU3Crd3MTMnOLUZN3i5MS8vNQiXVO9\r
58         3MwSvdSU0k2MoFBnd1HawfjzoNIhRgEORiUeXqH9H/yEWBPLiitzDzFKcjApifLOePvRT4gv\r
59         KT+lMiOxOCO+qDQntfgQowQHs5II78fXQDnelMTKqtSifJiUNAeLkjivutY7PyGB9MSS1OzU\r
60         1ILUIpisDAeHkgTvuXdAjYJFqempFWmZOSUIaSYOTpDhPEDDv4PU8BYXJOYWZ6ZD5E8xKkqJ\r
61         834GSQiAJDJK8+B6YanoFaM40CvCvG9AqniAaQyu+xXQYCagwducP4AMLklESEk1ME4Ku3iu\r
62         c9/qIv4auy2Sq5/d/75RX23Gq4Ipvzd48KyXdgu2/Gjj+46R7dvENb3rc1l8Yn0O7rvOmK0z\r
63         ZWHPfS/GBQdWNr4+6mHysDVP69bRz4EySzX4O7+tdtuR2ZXU4b1rlfwt1myO+mf5r9N5Lm0W\r
64         1sxZbtR1OU7R+c5OrXv/XBqM9XmV/yixFGckGmoxFxUnAgC3ieu9IAMAAA==\r
65 Cc: 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: Wed, 21 Dec 2011 14:39:06 -0000\r
79 \r
80 I would definitely go with the latter.\r
81 \r
82 It might feel less unwieldy with a shorter variable name than\r
83 "filename", since that has to be repeated so many times.  (It's also\r
84 not really a filename in the middle of the replace process.)\r
85 \r
86 This is splitting hairs, but in my original suggestion, I was thinking\r
87 something like\r
88 \r
89   (let* ((s subject)\r
90          (s (replace-regexp-in-string "^ *\\(\\[[^]]*\\]\\)? *" "" s))\r
91          (s (replace-regexp-in-string "[. ]*$" "" s))\r
92          (s (replace-regexp-in-string "[^A-Za-z0-9._-]+" "-" s))\r
93          (s (replace-regexp-in-string "\\.+" "." s))\r
94          (s (substring s 0 (min (length s) 50))))\r
95      (concat s ".patch"))\r
96 \r
97 Out of curiosity, where'd the regexps come from?  They all seem\r
98 reasonable, but some of them seem somewhat arbitrary.\r
99 \r
100 Quoth David Edmondson on Dec 21 at  9:21 am:\r
101 > On Tue, 20 Dec 2011 16:52:52 -0500, Austin Clements <amdragon@MIT.EDU> wrote:\r
102 > > Seems like a definite improvement, but perhaps a let* instead of all\r
103 > > of the setq's?\r
104\r
105 > What would be a lispy approach? I tried:\r
106\r
107 > (defun notmuch-subject-to-patch-filename (subject)\r
108 >   "Convert a typical patch mail subject line into a suitable filename."\r
109 >   (concat \r
110 >    (let ((filename subject)\r
111 >        (transforms\r
112 >         '(("^ *\\(\\[[^]]*\\]\\)? *" . "")\r
113 >           ("[. ]*$" . "")\r
114 >           ("[^A-Za-z0-9._-]+" . "-")\r
115 >           ("\\.+" . "."))))\r
116 >      (mapc (lambda (transform)\r
117 >            (setq filename (replace-regexp-in-string (car transform) (cdr transform) filename)))\r
118 >          transforms)\r
119 >      (substring filename 0 (min (length filename) 50)))\r
120 >    ".patch"))\r
121\r
122 > ...but that seems a bit unwieldy. `let*' looks best, but still feels a\r
123 > bit odd:\r
124\r
125 > (defun notmuch-subject-to-patch-filename (subject)\r
126 >   "Convert a typical patch mail subject line into a suitable filename."\r
127 >   (concat \r
128 >    (let* ((filename (replace-regexp-in-string "^ *\\(\\[[^]]*\\]\\)? *" "" subject))\r
129 >         (filename (replace-regexp-in-string "[. ]*$" "" filename))\r
130 >         (filename (replace-regexp-in-string "[^A-Za-z0-9._-]+" "-" filename))\r
131 >         (filename (replace-regexp-in-string "\\.+" "." filename)))\r
132 >      (substring filename 0 (min (length filename) 50)))\r
133 >    ".patch"))\r
134\r
135 > dme.\r