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 5E115431FB6 for ; Mon, 3 Sep 2012 04:34:06 -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=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, 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 UnUVb9HlEy1h for ; Mon, 3 Sep 2012 04:34:05 -0700 (PDT) Received: from mail-ee0-f53.google.com (mail-ee0-f53.google.com [74.125.83.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by olra.theworths.org (Postfix) with ESMTPS id EBFDB431FAF for ; Mon, 3 Sep 2012 04:34:04 -0700 (PDT) Received: by eekb47 with SMTP id b47so2227210eek.26 for ; Mon, 03 Sep 2012 04:34:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=sender:from:to:cc:subject:in-reply-to:organization:references :user-agent:x-face:face:x-pgp:x-pgp-fp:date:message-id:mime-version :content-type; bh=1p3W9PRWaISrAdzQsGE37M9H5DhjVe3cXKWU1sc2wko=; b=jooXuhCEslLstlvTDNldWn+diD6eBBZ6iOvFO/43t81I+ppsWYMMcU5gezXu4uPpdz IZsnPPEV1GYkYWVejUDrex1CZvC2B152xp3g49SK1wTwdE/CMZ2tzHnt4XYku24U3i5e ZJg6QtwYhVXDxIJiUgiMncTa1zrC3CkvJpKQwKtAtveXA51k3pmBXz5sUkjPsn6I7VZz 4faPA+/PuHo5AJPb5JWLjQChsC+0yLBQW4AA7OTUElaGLT61W8eNtqxRelLYvmc+H06S aKBsc/dKTlX8V6BT84kznA1i2ZZZnqJLz7ivU0uLBVwplFcm0diiCfV+FGEFFOvq3x0f tdJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=sender:from:to:cc:subject:in-reply-to:organization:references :user-agent:x-face:face:x-pgp:x-pgp-fp:date:message-id:mime-version :content-type:x-gm-message-state; bh=1p3W9PRWaISrAdzQsGE37M9H5DhjVe3cXKWU1sc2wko=; b=ZEkR6krpxIkt543iNCzd7v3mXlOcRVzuyYukQQ3D9fnsI+o6v7FOHHtD9JKp9wHqvE jeAO9kzlDd8kFRp3LFnUCG7UYcmHTSLdy4rqLAaf0GDaZbN3mL6R5It0Yn/A967BYgX9 pi4ONEo0czRE1n91NTPQlryT4uyqfCBH65yWYV5KCLOBAjHHjfs6AIxK4PRVDes5UmdU xIofUq4FE0CqqveBpMuAdl8LeEDZFd56FVWfNTng2PhyHhgFjTo9eAktgaBpwYYMX2oI kBi3zHihRzqw8FjWDSCDA/Jrp4taqgTxjwjAWuSRiTYhMIfjKcmNBJiTmu/ZFO2p8Fki 6sdQ== Received: by 10.14.203.73 with SMTP id e49mr21070156eeo.27.1346672042349; Mon, 03 Sep 2012 04:34:02 -0700 (PDT) Received: by 10.14.203.73 with SMTP id e49mr21070147eeo.27.1346672042223; Mon, 03 Sep 2012 04:34:02 -0700 (PDT) Received: from mpn-glaptop ([2620:0:105f:5:f2de:f1ff:fe35:1a72]) by mx.google.com with ESMTPS id h42sm35722724eem.5.2012.09.03.04.34.00 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 03 Sep 2012 04:34:00 -0700 (PDT) Sender: Michal Nazarewicz From: Michal Nazarewicz To: Jani Nikula , notmuch@notmuchmail.org Subject: Re: [PATCH 1/6] emacs: add helper for tag change list manipulation In-Reply-To: <9dbf16fb95f40812ad246f95b954681bc895ceb2.1346614915.git.jani@nikula.org> Organization: http://mina86.com/ References: <9dbf16fb95f40812ad246f95b954681bc895ceb2.1346614915.git.jani@nikula.org> User-Agent: Notmuch/0.14+2~g416b120 (http://notmuchmail.org) Emacs/24.2.50.1 (x86_64-unknown-linux-gnu) X-Face: PbkBB1w#)bOqd`iCe"Ds{e+!C7`pkC9a|f)Qo^BMQvy\q5x3?vDQJeN(DS?|-^$uMti[3D*#^_Ts"pU$jBQLq~Ud6iNwAw_r_o_4]|JO?]}P_}Nc&"p#D(ZgUb4uCNPe7~a[DbPG0T~!&c.y$Ur,=N4RT>]dNpd; KFrfMCylc}gc??'U2j,!8%xdD Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWbfGlUPDDHgE57V0jUupKjgIObY0PLrom9mH4dFRK4gmjPs41MxjOgAAACQElEQVQ4jW3TMWvbQBQHcBk1xE6WyALX1069oZBMlq+ouUwpEQQ6uRjttkWP4CmBgGM0BQLBdPFZYPsyFUo6uEtKDQ7oy/U96XR2Ux8ehH/89Z6enqxBcS7Lg81jmSuujrfCZcLI/TYYvbGj+jbgFpHJ/bqQAUISj8iLyu4LuFHJTosxsucO4jSDNE0Hq3hwK/ceQ5sx97b8LcUDsILfk+ovHkOIsMbBfg43VuQ5Ln9YAGCkUdKJoXR9EclFBhixy3EGVz1K6eEkhxCAkeMMnqoAhAKwhoUJkDrCqvbecaYINlFKSRS1i12VKH1XpUd4qxL876EkMcDvHj3s5RBajHHMlA5iK32e0C7VgG0RlzFPvoYHZLRmAC0BmNcBruhkE0KsMsbEc62ZwUJDxWUdMsMhVqovoT96i/DnX/ASvz/6hbCabELLk/6FF/8PNpPCGqcZTGFcBhhAaZZDbQPaAB3+KrWWy2XgbYDNIinkdWAFcCpraDE/knwe5DBqGmgzESl1p2E4MWAz0VUPgYYzmfWb9yS4vCvgsxJriNTHoIBz5YteBvg+VGISQWUqhMiByPIPpygeDBE6elD973xWwKkEiHZAHKjhuPsFnBuArrzxtakRcISv+XMIPl4aGBUJm8Emk7qBYU8IlgNEIpiJhk/No24jHwkKTFHDWfPniR4iw5vJaw2nzSjfq2zffcE/GDjRC2dn0J0XwPAbDL84TvaFCJEU4Oml9pRyEUhR3Cl2t01AoEjRbs0sYugp14/4X5n4pU4EHHnMAAAAAElFTkSuQmCC X-PGP: 50751FF4 X-PGP-FP: AC1F 5F5C D418 88F8 CC84 5858 2060 4012 5075 1FF4 Date: Mon, 03 Sep 2012 13:33:55 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Gm-Message-State: ALoCoQm4VOTCnz6FvJp62kQCEn0GSkzElrEUf23/qAWr5rF7li2bu8AZXhBS9xd+LBo6CKzeQjKefG9CEReuFme+noP2rIS/EQk/jAotm3ZntG9S6yvR758Q7xAgdmrxJLN3we6BG4YuTMMBsLH+nTfBAFwYjWIzy6DwlPLGJgz3jCRnh6GnpRIkTHqgRWQjpBiHwFPPNgBx 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: Mon, 03 Sep 2012 11:34:06 -0000 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Jani Nikula writes: > Add a helper to create (and optionally reverse) a list of tag changes. > --- > emacs/notmuch-tag.el | 17 +++++++++++++++++ > 1 file changed, 17 insertions(+) > > diff --git a/emacs/notmuch-tag.el b/emacs/notmuch-tag.el > index 0c0fc87..c1aeb99 100644 > --- a/emacs/notmuch-tag.el > +++ b/emacs/notmuch-tag.el > @@ -140,6 +140,23 @@ notmuch-after-tag-hook will be run." > ;; in all cases we return tag-changes as a list > tag-changes) >=20=20 > +(defun notmuch-tag-change-list (tags &optional reverse) > + "Convert TAGS into a list of tag changes. > + > +Add a \"+\" prefix to any tag in TAGS list that doesn't already > +begin with a \"+\" or a \"-\". If REVERSE is non-nil, replace all > +\"+\" prefixes with \"-\" and vice versa in the result." > + (mapcar (lambda (str) > + (let ((s (if (not (string-match "^[+-]" str)) > + (concat "+" str) > + str))) (if (string-match "^[-+]" str) str (concat "+" str)) Negation only makes things less readable IMO. > + (if reverse > + (concat (if (=3D (string-to-char s) ?-) "+" "-") > + (substring s 1)) > + s))) > + tags)) > + > + > ;; >=20=20 > (provide 'notmuch-tag) --=20 Best regards, _ _ .o. | Liege of Serenely Enlightened Majesty of o' \,=3D./ `o ..o | Computer Science, Micha=C5=82 =E2=80=9Cmina86=E2=80=9D Nazarewicz = (o o) ooo +------------------ooO--(_)--Ooo-- --=-=-= Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" --==-=-= Content-Type: text/plain --==-=-= Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) iQIcBAEBAgAGBQJQRJWjAAoJECBgQBJQdR/0HCgP/2QaZyjEqq9PP/8YoUqx7zUY 9U9AoP+f7hxjT4387Fpm4HOFSw6cKK4jxGKZQ97v7vFKf0tLaIp18bosHHGSoX29 nuDP2tvwo4Psuih17yV9STzHkaSCgaFPa27s/baTYIvFP2iD7CX0d7W2H+LIaYFl fIFVuLHLMWH5PqGXaE5vu3I1wXK07L8YwjTL4XBvWg3h904S8m/unpINP/XuBOq1 jpIQv5op+EbenXvdFU8t5x8xvdwhIc+plJg02RqB12gXHJMQq0Wp36WX0BaKH34V huCEBAV3Tv+Ihbm/0Mg8goWsyE3kfZ1hKFwZksnEpuZREmawBDYwL9EaNCt1GE65 eHwL/ZA1xQ1GkhdEuBV6yRldVlYOVNqsiFSM4DffpqUfbLDC8oQSX6aRpX8CQr12 KBDOHBIgpYE+uojMjTeoNHsoF02z3/tsHoCZspm/e6/FYKVBzbTeuDXPBv7st8Qu cMsIBXMRGKKD7YWRIdF2+nF7rPdOvhGo5k9RAJU5l/3bHyQ7tr4aaZdVUi0feNlE OxbG32w3zjhBo2LpOHYU/+whylsiipUqsN01tzUvc3aETSeyLz3reQNfSiJhJbGZ EPDHGlj4kHfdi0zI+IHSbmscRQvC8r29yZCZrUMaHomlMRr+C6+wEYgvsJ6lcj48 xl+Y5CTOs+2vqxXpWyjs =xmOa -----END PGP SIGNATURE----- --==-=-=-- --=-=-=--