Re: [PATCH] lib: provide _notmuch_database_log_append
[notmuch-archives.git] / 85 / c1fdf45b504ad99971e9bd760c34a3f6360ba2
1 Return-Path: <mpn@google.com>\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 67873431FAF\r
6         for <notmuch@notmuchmail.org>; Fri, 26 Oct 2012 06:21:23 -0700 (PDT)\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=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7]\r
13         autolearn=disabled\r
14 Received: from olra.theworths.org ([127.0.0.1])\r
15         by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
16         with ESMTP id Eu45Rm-wbuh1 for <notmuch@notmuchmail.org>;\r
17         Fri, 26 Oct 2012 06:21:22 -0700 (PDT)\r
18 Received: from mail-ee0-f53.google.com (mail-ee0-f53.google.com\r
19  [74.125.83.53])        (using TLSv1 with cipher RC4-SHA (128/128 bits))        (No client\r
20  certificate requested) by olra.theworths.org (Postfix) with ESMTPS id\r
21  576EB431FAE    for <notmuch@notmuchmail.org>; Fri, 26 Oct 2012 06:21:22 -0700\r
22  (PDT)\r
23 Received: by mail-ee0-f53.google.com with SMTP id e51so1268128eek.26\r
24         for <notmuch@notmuchmail.org>; Fri, 26 Oct 2012 06:21:19 -0700 (PDT)\r
25 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\r
26  s=20120113;    h=sender:from:to:cc:subject:in-reply-to:organization:references\r
27         :user-agent:x-face:face:x-pgp:x-pgp-fp:date:message-id:mime-version\r
28         :content-type; bh=oGN1xr1IbgEryGEzrGlpIeamzifYo1ceA/pYqdqIPuc=;\r
29         b=PQMpRogwUqydsFsmJRd+krzp1Elh8kc8DCF5sq1n3gz64yndVmPfx4BMJmRdjmlglF\r
30         uOAfQ2XIM1bXm0DxTiNfEOv8lLLtZOn+J2t5rOiGYx0VGGJ0XIEB27RL9Xzo06YWOEsR\r
31         Y5X3LD7vfrBXGQ6kXacZJDVTMqEvqN25AjNJhb143wcrOeN+QZQmHL46y/sTKFxqm2HW\r
32         ELX3Xa3kWgx3+b303VA3ZoMrn34L4TnakuHVCewhzS2N+ORXkRlf8WROJRUc8XCy5tSA\r
33         IrduF9bxM23QsLBOWgGR1nOV/AT9LCAbrli7c/1ms9RDo6TeOEMWvSCNDRoNVdTOH5/u    rX+Q==\r
34 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r
35         d=google.com; s=20120113;\r
36         h=sender:from:to:cc:subject:in-reply-to:organization:references\r
37         :user-agent:x-face:face:x-pgp:x-pgp-fp:date:message-id:mime-version\r
38         :content-type:x-gm-message-state;\r
39         bh=oGN1xr1IbgEryGEzrGlpIeamzifYo1ceA/pYqdqIPuc=;\r
40         b=d3+QgbByElngodsrEsN3QM3zU9aX2/CYi/Z5HgLA/YEawttcySgJoFbyAQAsEKQ/qF\r
41         sLSEHGtXk2bhZfwt4R3hVR54oni+m1V7SvvMNrldBpxgtxGCgq1e14oKyPDiVChfnjDH\r
42         RWLgZklfvdY7ngukHefxA3XjQEBlixEgauM5K0KVkxqF2PZGC7w7fwpQV+SYiZ81DK2t\r
43         TRkry8aA128do9fsyYf+rXe3WH6jpGDaUGmv/P9SSswZhfGXwWZWfZYzf8kKuuYcH8Ba\r
44         PpJUCMJAP89Ny1bUvzBXrMR4Rzacnd4s+QZlC1cuJrpNNwKC/apdtelYt2knU6hRsrm7\r
45         cVVQ==\r
46 Received: by 10.14.179.69 with SMTP id g45mr22800605eem.42.1351257679452;\r
47         Fri, 26 Oct 2012 06:21:19 -0700 (PDT)\r
48 Received: from mpn-glaptop (77-253-124-192.adsl.inetia.pl. [77.253.124.192])\r
49         by mx.google.com with ESMTPS id g47sm2626538eeo.6.2012.10.26.06.21.15\r
50         (version=TLSv1/SSLv3 cipher=OTHER);\r
51         Fri, 26 Oct 2012 06:21:17 -0700 (PDT)\r
52 Sender: Michal Nazarewicz <mpn@google.com>\r
53 From: Michal Nazarewicz <mina86@mina86.com>\r
54 To: Taesoo Kim <taesoo@mit.edu>, notmuch@notmuchmail.org\r
55 Subject: Re: [PATCH 1/2] Automatic tagging based on maildir\r
56 In-Reply-To: <1351208039-32293-2-git-send-email-taesoo@mit.edu>\r
57 Organization: http://mina86.com/\r
58 References: <1351208039-32293-1-git-send-email-taesoo@mit.edu>\r
59         <1351208039-32293-2-git-send-email-taesoo@mit.edu>\r
60 User-Agent: Notmuch/0.14+22~g8bdc16b (http://notmuchmail.org) Emacs/24.2.50.1\r
61         (x86_64-unknown-linux-gnu)\r
62 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\r
63 Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWbfGlUPDDHgE57V0jUupKjgIObY0PLrom9mH4dFRK4gmjPs41MxjOgAAACQElEQVQ4jW3TMWvbQBQHcBk1xE6WyALX1069oZBMlq+ouUwpEQQ6uRjttkWP4CmBgGM0BQLBdPFZYPsyFUo6uEtKDQ7oy/U96XR2Ux8ehH/89Z6enqxBcS7Lg81jmSuujrfCZcLI/TYYvbGj+jbgFpHJ/bqQAUISj8iLyu4LuFHJTosxsucO4jSDNE0Hq3hwK/ceQ5sx97b8LcUDsILfk+ovHkOIsMbBfg43VuQ5Ln9YAGCkUdKJoXR9EclFBhixy3EGVz1K6eEkhxCAkeMMnqoAhAKwhoUJkDrCqvbecaYINlFKSRS1i12VKH1XpUd4qxL876EkMcDvHj3s5RBajHHMlA5iK32e0C7VgG0RlzFPvoYHZLRmAC0BmNcBruhkE0KsMsbEc62ZwUJDxWUdMsMhVqovoT96i/DnX/ASvz/6hbCabELLk/6FF/8PNpPCGqcZTGFcBhhAaZZDbQPaAB3+KrWWy2XgbYDNIinkdWAFcCpraDE/knwe5DBqGmgzESl1p2E4MWAz0VUPgYYzmfWb9yS4vCvgsxJriNTHoIBz5YteBvg+VGISQWUqhMiByPIPpygeDBE6elD973xWwKkEiHZAHKjhuPsFnBuArrzxtakRcISv+XMIPl4aGBUJm8Emk7qBYU8IlgNEIpiJhk/No24jHwkKTFHDWfPniR4iw5vJaw2nzSjfq2zffcE/GDjRC2dn0J0XwPAbDL84TvaFCJEU4Oml9pRyEUhR3Cl2t01AoEjRbs0sYugp14/4X5n4pU4EHHnMAAAAAElFTkSuQmCC\r
64 X-PGP: 50751FF4\r
65 X-PGP-FP: AC1F 5F5C D418 88F8 CC84 5858 2060 4012 5075 1FF4\r
66 Date: Fri, 26 Oct 2012 15:19:54 +0200\r
67 Message-ID: <xa1tr4olpdz9.fsf@mina86.com>\r
68 MIME-Version: 1.0\r
69 Content-Type: multipart/mixed; boundary="=-=-="\r
70 X-Gm-Message-State: ALoCoQlsEpkNCVT/vl5Py5IlPZPCRn8woVn6Ysw/fK1Vnah+wQMv8MDgVagco9Bouwq2H5ITpb81ZsEjGf11l4HVK0vjNa1JYtOFW0xrlkUsM3UECdpZ/DwTnkFUAAOyGeP3epZYPAsNI44DvUnbY1NQCyQFZ8MiOQJqlRPNceG03Ar+z7iYSpLa8x7bssGV42Zmb+gAGpyh\r
71 Cc: Taesoo Kim <taesoo@mit.edu>\r
72 X-BeenThere: notmuch@notmuchmail.org\r
73 X-Mailman-Version: 2.1.13\r
74 Precedence: list\r
75 List-Id: "Use and development of the notmuch mail system."\r
76         <notmuch.notmuchmail.org>\r
77 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
78         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
79 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
80 List-Post: <mailto:notmuch@notmuchmail.org>\r
81 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
82 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
83         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
84 X-List-Received-Date: Fri, 26 Oct 2012 13:21:23 -0000\r
85 \r
86 --=-=-=\r
87 Content-Type: text/plain; charset=utf-8\r
88 Content-Transfer-Encoding: quoted-printable\r
89 \r
90 On Fri, Oct 26 2012, Taesoo Kim <taesoo@mit.edu> wrote:\r
91 > @@ -240,6 +242,32 @@ _entry_in_ignore_list (const char *entry, add_files_=\r
92 state_t *state)\r
93 >      return FALSE;\r
94 >  }\r
95 >=20=20\r
96 > +static void\r
97 > +_add_maildir_as_tag(notmuch_database_t *notmuch,\r
98 > +                 notmuch_message_t *msg, const char *path)=20\r
99 > +{\r
100 > +    char *tok =3D talloc_strdup (notmuch, path);\r
101 > +    int len =3D strlen(tok);\r
102 > +=20=20=20=20\r
103 > +    /* asserts path ends with /cur|/tmp|/new */\r
104 \r
105 It actually does not assert that.  It just checks =E2=80=9C/=E2=80=9D.\r
106 \r
107 > +    if (len > 4 && tok[len - 4] =3D=3D '/') {\r
108 > +     char *iter =3D tok + len - 4;\r
109 > +     *iter =3D '\0';\r
110 > +     while (-- iter && iter >=3D tok) {\r
111 > +         char c =3D *iter;\r
112 > +         if (c =3D=3D '/' || c =3D=3D '.') {\r
113 > +             *iter =3D '\0';\r
114 > +             notmuch_message_add_tag (msg, iter + 1);\r
115 > +             if (c =3D=3D '/') {\r
116 > +                 break;\r
117 > +             }\r
118 > +         }\r
119 > +         *iter =3D tolower(*iter);\r
120 > +     }\r
121 \r
122 strtok() would make it easier.\r
123 \r
124 > +    }\r
125 > +    talloc_free (tok);\r
126 > +}\r
127 \r
128 How about (not tested):\r
129 \r
130 static void\r
131 _add_maildir_as_tag(notmuch_database_t *notmuch,\r
132                     notmuch_message_t *msg, const char *path)\r
133 {\r
134     const char *a =3D NULL, *b =3D NULL;\r
135     char *dir, *tag, *saveptr;\r
136 \r
137     while ((path =3D strchr(path, '/'))) {\r
138         a =3D b;\r
139         b =3D path;\r
140     }\r
141 \r
142     if (!a || ++a >=3D b ||\r
143         (strcmp(b, "/cur") && strcmp(b, "/new") && strcmp(b, "/tmp")))\r
144         return;\r
145 \r
146     dir =3D talloc_strndup(notmuch, a, b - a);\r
147     while ((tag =3D strtok_r(dir, ".", &saveptr)))\r
148         notmuch_message_add_tag(msg, tag);\r
149 \r
150     talloc_free(dir);\r
151 }\r
152 \r
153 --=20\r
154 Best regards,                                         _     _\r
155 .o. | Liege of Serenely Enlightened Majesty of      o' \,=3D./ `o\r
156 ..o | Computer Science,  Micha=C5=82 =E2=80=9Cmina86=E2=80=9D Nazarewicz   =\r
157  (o o)\r
158 ooo +----<email/xmpp: mpn@google.com>--------------ooO--(_)--Ooo--\r
159 --=-=-=\r
160 Content-Type: multipart/signed; boundary="==-=-=";\r
161         micalg=pgp-sha1; protocol="application/pgp-signature"\r
162 \r
163 --==-=-=\r
164 Content-Type: text/plain\r
165 \r
166 \r
167 --==-=-=\r
168 Content-Type: application/pgp-signature\r
169 \r
170 -----BEGIN PGP SIGNATURE-----\r
171 Version: GnuPG v1.4.10 (GNU/Linux)\r
172 \r
173 iQIcBAEBAgAGBQJQio36AAoJECBgQBJQdR/0E+8P/1nGvBlGhqQpcbqen2TBT0AI\r
174 kkg9qZua/QI+l9DcpFAP3P979Ux+2QgJagIuiC5QE68pJ9zyYUft8WVau252ycl+\r
175 pEMhk4y8cT2ttsJJzSEWA2kd1+Bknkn0/jdWSgKd3hoJ47XIEF8MpeJZ5QY0W+eG\r
176 pjcqCKk5So118v7UAMSkhX5UOzT7IvUYcHuPKns8eaGv9D0TcmYPJRCvQdWoyXUB\r
177 auo8ktTe8MqL1ZdKMFmKcGvI257J8F5bccHLUFSKKw+oO6RzCR5Sb+v4ejmwKlPs\r
178 o5UIyaSJFHTOndTdxAyw8C1bE2dy+ryStN1gFpu92/f68j/Qr2NYnRbMVUOqTMVt\r
179 +1T35voXdmGvhzQAAAqBipgzSDNGZMMnBy4fl9sBFGIrE3ZjzixXe5XXcrVTWnhd\r
180 V6gwHOZ+KDP/CYQEOySrftIs3TxDGZq7p7ViHRpfq0FJ/v7/sEhSUv4P76O0xvJi\r
181 k+kvNGpOcbp64IhhoCKS3EqLRqJ990iuzrNKGx6eSesgjxRVoUvwRt/bcU+/StY/\r
182 x0rZRRe6rlZ2v1+OIx1FtSOc6mGNzlyVeAHsE44/hKayxmt6cQ1I0u8FeCO8G4ok\r
183 LMbHyknpnp9NdTIG1E5x2cX0nUnZ38Sh+zckBbZjbjGAXi9Qna35W3iETLoBh8ch\r
184 C5SwGi23JNMnRQw0qCjz\r
185 =ug1A\r
186 -----END PGP SIGNATURE-----\r
187 --==-=-=--\r
188 \r
189 --=-=-=--\r