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 67873431FAF for ; Fri, 26 Oct 2012 06:21:23 -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 Eu45Rm-wbuh1 for ; Fri, 26 Oct 2012 06:21:22 -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 576EB431FAE for ; Fri, 26 Oct 2012 06:21:22 -0700 (PDT) Received: by mail-ee0-f53.google.com with SMTP id e51so1268128eek.26 for ; Fri, 26 Oct 2012 06:21:19 -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=oGN1xr1IbgEryGEzrGlpIeamzifYo1ceA/pYqdqIPuc=; b=PQMpRogwUqydsFsmJRd+krzp1Elh8kc8DCF5sq1n3gz64yndVmPfx4BMJmRdjmlglF uOAfQ2XIM1bXm0DxTiNfEOv8lLLtZOn+J2t5rOiGYx0VGGJ0XIEB27RL9Xzo06YWOEsR Y5X3LD7vfrBXGQ6kXacZJDVTMqEvqN25AjNJhb143wcrOeN+QZQmHL46y/sTKFxqm2HW ELX3Xa3kWgx3+b303VA3ZoMrn34L4TnakuHVCewhzS2N+ORXkRlf8WROJRUc8XCy5tSA IrduF9bxM23QsLBOWgGR1nOV/AT9LCAbrli7c/1ms9RDo6TeOEMWvSCNDRoNVdTOH5/u rX+Q== 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=oGN1xr1IbgEryGEzrGlpIeamzifYo1ceA/pYqdqIPuc=; b=d3+QgbByElngodsrEsN3QM3zU9aX2/CYi/Z5HgLA/YEawttcySgJoFbyAQAsEKQ/qF sLSEHGtXk2bhZfwt4R3hVR54oni+m1V7SvvMNrldBpxgtxGCgq1e14oKyPDiVChfnjDH RWLgZklfvdY7ngukHefxA3XjQEBlixEgauM5K0KVkxqF2PZGC7w7fwpQV+SYiZ81DK2t TRkry8aA128do9fsyYf+rXe3WH6jpGDaUGmv/P9SSswZhfGXwWZWfZYzf8kKuuYcH8Ba PpJUCMJAP89Ny1bUvzBXrMR4Rzacnd4s+QZlC1cuJrpNNwKC/apdtelYt2knU6hRsrm7 cVVQ== Received: by 10.14.179.69 with SMTP id g45mr22800605eem.42.1351257679452; Fri, 26 Oct 2012 06:21:19 -0700 (PDT) Received: from mpn-glaptop (77-253-124-192.adsl.inetia.pl. [77.253.124.192]) by mx.google.com with ESMTPS id g47sm2626538eeo.6.2012.10.26.06.21.15 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 26 Oct 2012 06:21:17 -0700 (PDT) Sender: Michal Nazarewicz From: Michal Nazarewicz To: Taesoo Kim , notmuch@notmuchmail.org Subject: Re: [PATCH 1/2] Automatic tagging based on maildir In-Reply-To: <1351208039-32293-2-git-send-email-taesoo@mit.edu> Organization: http://mina86.com/ References: <1351208039-32293-1-git-send-email-taesoo@mit.edu> <1351208039-32293-2-git-send-email-taesoo@mit.edu> User-Agent: Notmuch/0.14+22~g8bdc16b (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: Fri, 26 Oct 2012 15:19:54 +0200 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Gm-Message-State: ALoCoQlsEpkNCVT/vl5Py5IlPZPCRn8woVn6Ysw/fK1Vnah+wQMv8MDgVagco9Bouwq2H5ITpb81ZsEjGf11l4HVK0vjNa1JYtOFW0xrlkUsM3UECdpZ/DwTnkFUAAOyGeP3epZYPAsNI44DvUnbY1NQCyQFZ8MiOQJqlRPNceG03Ar+z7iYSpLa8x7bssGV42Zmb+gAGpyh Cc: Taesoo Kim 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: Fri, 26 Oct 2012 13:21:23 -0000 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Fri, Oct 26 2012, Taesoo Kim wrote: > @@ -240,6 +242,32 @@ _entry_in_ignore_list (const char *entry, add_files_= state_t *state) > return FALSE; > } >=20=20 > +static void > +_add_maildir_as_tag(notmuch_database_t *notmuch, > + notmuch_message_t *msg, const char *path)=20 > +{ > + char *tok =3D talloc_strdup (notmuch, path); > + int len =3D strlen(tok); > +=20=20=20=20 > + /* asserts path ends with /cur|/tmp|/new */ It actually does not assert that. It just checks =E2=80=9C/=E2=80=9D. > + if (len > 4 && tok[len - 4] =3D=3D '/') { > + char *iter =3D tok + len - 4; > + *iter =3D '\0'; > + while (-- iter && iter >=3D tok) { > + char c =3D *iter; > + if (c =3D=3D '/' || c =3D=3D '.') { > + *iter =3D '\0'; > + notmuch_message_add_tag (msg, iter + 1); > + if (c =3D=3D '/') { > + break; > + } > + } > + *iter =3D tolower(*iter); > + } strtok() would make it easier. > + } > + talloc_free (tok); > +} How about (not tested): static void _add_maildir_as_tag(notmuch_database_t *notmuch, notmuch_message_t *msg, const char *path) { const char *a =3D NULL, *b =3D NULL; char *dir, *tag, *saveptr; while ((path =3D strchr(path, '/'))) { a =3D b; b =3D path; } if (!a || ++a >=3D b || (strcmp(b, "/cur") && strcmp(b, "/new") && strcmp(b, "/tmp"))) return; dir =3D talloc_strndup(notmuch, a, b - a); while ((tag =3D strtok_r(dir, ".", &saveptr))) notmuch_message_add_tag(msg, tag); talloc_free(dir); } --=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) iQIcBAEBAgAGBQJQio36AAoJECBgQBJQdR/0E+8P/1nGvBlGhqQpcbqen2TBT0AI kkg9qZua/QI+l9DcpFAP3P979Ux+2QgJagIuiC5QE68pJ9zyYUft8WVau252ycl+ pEMhk4y8cT2ttsJJzSEWA2kd1+Bknkn0/jdWSgKd3hoJ47XIEF8MpeJZ5QY0W+eG pjcqCKk5So118v7UAMSkhX5UOzT7IvUYcHuPKns8eaGv9D0TcmYPJRCvQdWoyXUB auo8ktTe8MqL1ZdKMFmKcGvI257J8F5bccHLUFSKKw+oO6RzCR5Sb+v4ejmwKlPs o5UIyaSJFHTOndTdxAyw8C1bE2dy+ryStN1gFpu92/f68j/Qr2NYnRbMVUOqTMVt +1T35voXdmGvhzQAAAqBipgzSDNGZMMnBy4fl9sBFGIrE3ZjzixXe5XXcrVTWnhd V6gwHOZ+KDP/CYQEOySrftIs3TxDGZq7p7ViHRpfq0FJ/v7/sEhSUv4P76O0xvJi k+kvNGpOcbp64IhhoCKS3EqLRqJ990iuzrNKGx6eSesgjxRVoUvwRt/bcU+/StY/ x0rZRRe6rlZ2v1+OIx1FtSOc6mGNzlyVeAHsE44/hKayxmt6cQ1I0u8FeCO8G4ok LMbHyknpnp9NdTIG1E5x2cX0nUnZ38Sh+zckBbZjbjGAXi9Qna35W3iETLoBh8ch C5SwGi23JNMnRQw0qCjz =ug1A -----END PGP SIGNATURE----- --==-=-=-- --=-=-=--