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 C0D63431FBD for ; Thu, 24 Dec 2009 02:08:27 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org 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 2ggMk6VVAurw for ; Thu, 24 Dec 2009 02:08:27 -0800 (PST) Received: from smtp6-g21.free.fr (smtp6-g21.free.fr [212.27.42.6]) by olra.theworths.org (Postfix) with ESMTP id CAD66431FAE for ; Thu, 24 Dec 2009 02:08:25 -0800 (PST) Received: from smtp6-g21.free.fr (localhost [127.0.0.1]) by smtp6-g21.free.fr (Postfix) with ESMTP id CF64AE0817F; Thu, 24 Dec 2009 11:08:18 +0100 (CET) Received: from UNKNOWN (imp8-g19.priv.proxad.net [172.20.243.138]) by smtp6-g21.free.fr (Postfix) with ESMTP id B956CE081C1; Thu, 24 Dec 2009 11:08:15 +0100 (CET) Received: by UNKNOWN (Postfix, from userid 0) id B6D0034FBE62F; Thu, 24 Dec 2009 11:07:16 +0100 (CET) Received: from ([132.166.135.72]) by imp.free.fr (IMP) with HTTP for ; Thu, 24 Dec 2009 11:07:16 +0100 Message-ID: <1261649236.4b333d54a22d3@imp.free.fr> Date: Thu, 24 Dec 2009 11:07:16 +0100 From: racin@free.fr To: Carl Worth References: <1261148449.4b2b9921f3ab1@imp.free.fr> <87eimsyxpo.fsf@yoom.home.cworth.org> In-Reply-To: <87eimsyxpo.fsf@yoom.home.cworth.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="-MOQ12616492364fa14bfbf367f5bbae378742ad843aea" User-Agent: Internet Messaging Program (IMP) 3.2.8 X-Originating-IP: 132.166.135.72 Cc: notmuch@notmuchmail.org Subject: Re: [notmuch] First attempt to add smart completion in notmuch-search X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.12 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: Thu, 24 Dec 2009 10:08:27 -0000 This message is in MIME format. ---MOQ12616492364fa14bfbf367f5bbae378742ad843aea Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit OK, I had a problem using this #!#)($! webmail client. Here's the patch. Matthieu Quoting Carl Worth : > On Fri, 18 Dec 2009 16:00:49 +0100, racin@free.fr wrote: > > Here is a first attempt to add "smart completion" to notmuch-search. > > Hi Matthieu, > > This all sounds quite interesting! > > I look forward to actually seeing the patch. ;-) > > -Carl > ---MOQ12616492364fa14bfbf367f5bbae378742ad843aea Content-Type: application/octet-stream; name="patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch" ZGlmZiAtLWdpdCBhL25vdG11Y2gtY2xpZW50LmggYi9ub3RtdWNoLWNsaWVudC5oCmluZGV4IDUw YTMwZmUuLmViNTU3MmYgMTAwNjQ0Ci0tLSBhL25vdG11Y2gtY2xpZW50LmgKKysrIGIvbm90bXVj aC1jbGllbnQuaApAQCAtMTIzLDYgKzEyMyw5IEBAIG5vdG11Y2hfdGFnX2NvbW1hbmQgKHZvaWQg KmN0eCwgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSk7CiBpbnQKIG5vdG11Y2hfc2VhcmNoX3RhZ3Nf Y29tbWFuZCAodm9pZCAqY3R4LCBpbnQgYXJnYywgY2hhciAqYXJndltdKTsKIAoraW50Citub3Rt dWNoX3NlYXJjaF9oZWFkZXJzX2NvbW1hbmQgKHZvaWQgKmN0eCwgaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSk7CisKIGNvbnN0IGNoYXIgKgogbm90bXVjaF90aW1lX3JlbGF0aXZlX2RhdGUgKGNvbnN0 IHZvaWQgKmN0eCwgdGltZV90IHRoZW4pOwogCmRpZmYgLS1naXQgYS9ub3RtdWNoLXNlYXJjaC10 YWdzLmMgYi9ub3RtdWNoLXNlYXJjaC10YWdzLmMKaW5kZXggN2ExMzA1ZS4uMzJlNWFmYyAxMDA2 NDQKLS0tIGEvbm90bXVjaC1zZWFyY2gtdGFncy5jCisrKyBiL25vdG11Y2gtc2VhcmNoLXRhZ3Mu YwpAQCAtOTYsMyArOTYsOTkgQEAgZXJyb3I6CiAgICAgaWYgKGRiKSBub3RtdWNoX2RhdGFiYXNl X2Nsb3NlIChkYik7CiAgICAgcmV0dXJuIDE7CiB9CisKKy8qIFRPRE86IG9ubHkgdGFrZSBoZWFk ZXJzIHRoYXQgbWF0Y2ggcmVnZXhwPyAqLworLyogVE9ETzogbGltaXQgdGhlIG1heCBudW1iZXIg b2YgcXVlcmllcz8gKi8KK3ZvaWQgKgorbm90bXVjaF9tZXNzYWdlc19wcmludF9oZWFkZXJzIChu b3RtdWNoX21lc3NhZ2VzX3QgKm1lc3NhZ2VzLCBjb25zdCBjaGFyICpoZWFkZXIpCit7CisgICAg bm90bXVjaF90YWdzX3QgKnRhZ3MsICptc2dfdGFnczsKKyAgICBub3RtdWNoX21lc3NhZ2VfdCAq bXNnOworICAgIEdIYXNoVGFibGUgKmh0YWJsZTsKKyAgICBHTGlzdCAqa2V5cywgKmw7CisgICAg Y29uc3QgY2hhciAqdGFnOworICAgIGNvbnN0IGNoYXIgKm1zZ19oZWFkZXI7CisKKworICAgIGh0 YWJsZSA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbCAoZ19zdHJfaGFzaCwgZ19zdHJfZXF1YWwsIGZy ZWUsIE5VTEwpOworCisgICAgd2hpbGUgKChtc2cgPSBub3RtdWNoX21lc3NhZ2VzX2dldCAobWVz c2FnZXMpKSkgeworICAgICAgbXNnX2hlYWRlciA9IG5vdG11Y2hfbWVzc2FnZV9nZXRfaGVhZGVy IChtc2csIGhlYWRlcik7CisgICAgICBnX2hhc2hfdGFibGVfaW5zZXJ0IChodGFibGUsIHhzdHJk dXAgKG1zZ19oZWFkZXIpLCBOVUxMKTsKKyAgICAgIG5vdG11Y2hfbWVzc2FnZV9kZXN0cm95ICht c2cpOworICAgICAgbm90bXVjaF9tZXNzYWdlc19hZHZhbmNlIChtZXNzYWdlcyk7CisgICAgfQor CisgICAga2V5cyA9IGdfaGFzaF90YWJsZV9nZXRfa2V5cyAoaHRhYmxlKTsKKworICAgIC8qIFRP RE86IHNvcnQgYnkgYWxwaGFiZXRpY2FsIG9yZGVyPyAqLworICAgIGZvciAobCA9IGtleXM7IGw7 IGwgPSBsLT5uZXh0KSB7CisgICAgICBwcmludGYoIiVzXG4iLCAoY2hhciAqKWwtPmRhdGEpOwor ICAgIH0KKworICAgIGdfbGlzdF9mcmVlIChrZXlzKTsKKyAgICBnX2hhc2hfdGFibGVfZGVzdHJv eSAoaHRhYmxlKTsKK30KKworaW50Citub3RtdWNoX3NlYXJjaF9oZWFkZXJzX2NvbW1hbmQgKHZv aWQgKmN0eCwgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKyAgICBub3RtdWNoX21lc3NhZ2Vz X3QgKm1zZ3M7CisgICAgbm90bXVjaF90YWdzX3QgKnRhZ3M7CisgICAgbm90bXVjaF9jb25maWdf dCAqY29uZmlnOworICAgIG5vdG11Y2hfZGF0YWJhc2VfdCAqZGI7CisgICAgbm90bXVjaF9xdWVy eV90ICpxdWVyeTsKKyAgICBjaGFyICpxdWVyeV9zdHI7CisKKyAgICB0YWdzID0gTlVMTDsKKyAg ICBjb25maWcgPSBOVUxMOworICAgIGRiID0gTlVMTDsKKyAgICBxdWVyeSA9IE5VTEw7CisKKyAg ICBpZiAoKGNvbmZpZyA9IG5vdG11Y2hfY29uZmlnX29wZW4gKGN0eCwgTlVMTCwgTlVMTCkpID09 IE5VTEwpIHsKKwlnb3RvIGVycm9yOworICAgIH0KKworICAgIGRiID0gbm90bXVjaF9kYXRhYmFz ZV9vcGVuIChub3RtdWNoX2NvbmZpZ19nZXRfZGF0YWJhc2VfcGF0aCAoY29uZmlnKSwKKwkJCQlO T1RNVUNIX0RBVEFCQVNFX01PREVfUkVBRF9PTkxZKTsKKyAgICBpZiAoZGIgPT0gTlVMTCkgewor CWdvdG8gZXJyb3I7CisgICAgfQorCisgICAgaWYgKGFyZ2MgPCAzKSB7CisgICAgICAgICBmcHJp bnRmKCBzdGRlcnIsICJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzXG4iKTsKKyAgICAgICAgIGZw cmludGYoIHN0ZGVyciwgIkFyZ3VtZW50czogPGhlYWRlcj4gPHJlZ2V4cD4gPHF1ZXJ5PlxuIik7 CisJIGdvdG8gZXJyb3I7CisgICAgfQorCisgICAgY29uc3QgY2hhciAqaGVhZGVyID0gYXJndlsw XTsKKyAgICBjb25zdCBjaGFyICpyZWdleHAgPSBhcmd2WzFdOyAvLyBJZ25vcmVkIGZvciBub3cu CisKKyAgICBpZigoIHF1ZXJ5X3N0ciA9IHF1ZXJ5X3N0cmluZ19mcm9tX2FyZ3MgKGN0eCwgYXJn Yy0yLCAmYXJndlsyXSkpID09IE5VTEwpIHsKKyAgICAgIGZwcmludGYgKHN0ZGVyciwgIk91dCBv ZiBtZW1vcnkuXG4iKTsKKyAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorCisgICAgaWYgKCpxdWVy eV9zdHIgPT0gJ1wwJykgeworICAgICAgZnByaW50ZiAoc3RkZXJyLCAiRXJyb3I6IEludmFsaWQg c2VhcmNoIHN0cmluZy5cbiIpOworICAgICAgZ290byBlcnJvcjsKKyAgICB9CisKKyAgICBpZiAo KHF1ZXJ5ID0gbm90bXVjaF9xdWVyeV9jcmVhdGUgKGRiLCBxdWVyeV9zdHIpKSA9PSBOVUxMKSB7 CisgICAgICBmcHJpbnRmIChzdGRlcnIsICJPdXQgb2YgbWVtb3J5XG4iKTsKKyAgICAgIGdvdG8g ZXJyb3I7CisgICAgfQorCisgICAgbXNncyA9IG5vdG11Y2hfcXVlcnlfc2VhcmNoX21lc3NhZ2Vz IChxdWVyeSk7CisgICAgaWYgKChub3RtdWNoX21lc3NhZ2VzX3ByaW50X2hlYWRlcnMgKG1zZ3Ms IGhlYWRlcikpID09IE5VTEwpIGdvdG8gZXJyb3I7CisKKyAgICBub3RtdWNoX3F1ZXJ5X2Rlc3Ry b3kgKHF1ZXJ5KTsKKyAgICBub3RtdWNoX2RhdGFiYXNlX2Nsb3NlIChkYik7CisgICAgcmV0dXJu IDA7CisKK2Vycm9yOgorICAgIGlmICh0YWdzKSBub3RtdWNoX3RhZ3NfZGVzdHJveSAodGFncyk7 CisgICAgaWYgKHF1ZXJ5KSBub3RtdWNoX3F1ZXJ5X2Rlc3Ryb3kgKHF1ZXJ5KTsKKyAgICBpZiAo ZGIpIG5vdG11Y2hfZGF0YWJhc2VfY2xvc2UgKGRiKTsKKyAgICByZXR1cm4gMTsKK30KZGlmZiAt LWdpdCBhL25vdG11Y2guYyBiL25vdG11Y2guYwppbmRleCAyYWM4YTU5Li4wOTIxOTA2IDEwMDY0 NAotLS0gYS9ub3RtdWNoLmMKKysrIGIvbm90bXVjaC5jCkBAIC0yODQsNiArMjg0LDExIEBAIGNv bW1hbmRfdCBjb21tYW5kc1tdID0gewogICAgICAgIlx0XHRjb250YWluIHRhZ3Mgb25seSBmcm9t IG1lc3NhZ2VzIHRoYXQgbWF0Y2ggdGhlIHNlYXJjaC10ZXJtKHMpLlxuIgogICAgICAgIlxuIgog ICAgICAgIlx0XHRJbiBib3RoIGNhc2VzIHRoZSBsaXN0IHdpbGwgYmUgYWxwaGFiZXRpY2FsbHkg c29ydGVkLiIgfSwKKyAgICB7ICJzZWFyY2gtaGVhZGVycyIsIG5vdG11Y2hfc2VhcmNoX2hlYWRl cnNfY29tbWFuZCwKKyAgICAgICJzZWFyY2gtaGVhZGVycyA8aGVhZGVyPiA8cmVnZXhwPiA8c2Vh cmNoLXRlcm1zPiBbLi4uXSIsCisgICAgICAiXHRcdExpc3QgYWxsIGhlYWRlcnMgPGhlYWRlcj4g IG1hdGNoaW5nIDxyZWdleHA+IGluIG1lc3NhZ2VzIgorICAgICAgIiBtYXRjaGluZyA8c2VhcmNo LXRlcm1zPiIKKyAgICB9LAogICAgIHsgImhlbHAiLCBub3RtdWNoX2hlbHBfY29tbWFuZCwKICAg ICAgICJbPGNvbW1hbmQ+XSIsCiAgICAgICAiXHRcdFRoaXMgbWVzc2FnZSwgb3IgbW9yZSBkZXRh aWxlZCBoZWxwIGZvciB0aGUgbmFtZWQgY29tbWFuZC4iLApkaWZmIC0tZ2l0IGEvbm90bXVjaC5l bCBiL25vdG11Y2guZWwKaW5kZXggOTc5MTRmMi4uOGQ5YTNmOSAxMDA2NDQKLS0tIGEvbm90bXVj aC5lbAorKysgYi9ub3RtdWNoLmVsCkBAIC0xMjg2LDcgKzEyODYsOCBAQCBjaGFyYWN0ZXJzIGFz IHdlbGwgYXMgYF8uKy0nLgogOzs7IyMjYXV0b2xvYWQKIChkZWZ1biBub3RtdWNoLXNlYXJjaCAo cXVlcnkgJm9wdGlvbmFsIG9sZGVzdC1maXJzdCkKICAgIlJ1biBcIm5vdG11Y2ggc2VhcmNoXCIg d2l0aCB0aGUgZ2l2ZW4gcXVlcnkgc3RyaW5nIGFuZCBkaXNwbGF5IHJlc3VsdHMuIgotICAoaW50 ZXJhY3RpdmUgInNOb3RtdWNoIHNlYXJjaDogIikKKyAgKGludGVyYWN0aXZlIChsaXN0IChjb21w bGV0aW5nLXJlYWQgIk5vdG11Y2gtc2VhcmNoOiAiCisJCQkJICAgICAgJ25vdG11Y2gtc2VhcmNo LWNvbXB1dGUtY29tcGxldGlvbi1mdW5jdGlvbikpKQogICAobGV0ICgoYnVmZmVyIChnZXQtYnVm ZmVyLWNyZWF0ZSAoY29uY2F0ICIqbm90bXVjaC1zZWFyY2gtIiBxdWVyeSAiKiIpKSkpCiAgICAg KHN3aXRjaC10by1idWZmZXIgYnVmZmVyKQogICAgIChub3RtdWNoLXNlYXJjaC1tb2RlKQpAQCAt MTQ5NCwzICsxNDk1LDQ2IEBAIEN1cnJlbnRseSBhdmFpbGFibGUga2V5IGJpbmRpbmdzOgogICAg ICAgKGdvdG8tbGluZSBuKSkpKQogCiAocHJvdmlkZSAnbm90bXVjaCkKKworKGRlZnVuIG5vdG11 Y2gtc2VhcmNoLWNvbXB1dGUtY29tcGxldGlvbi1mdW5jdGlvbiAoc3RyaW5nIHByZWRpY2F0ZSBm bGFnKQorICAiU21hcnQgY29tcGxldGlvbiBmb3Igbm90bXVjaC4gIgorICAobGV0ICgodG8tY29t cGxldGUpCisJKHByZWZpeCkKKwkoY29tcGxldGlvbi1saXN0KSkKKyAgOzsgRmlyc3QgY2FzZTog Y29tcGxldGUgYSBoZWFkZXIKKyAgICAoY29uZCAoKHN0cmluZy1tYXRjaCAiXFwoLipcXDxcXClc XChcXHcrXFwpOlxcKFwiLio/XFx8XFx3Kj9cXCkkIiBzdHJpbmcpCisJICAgKHNldHEgaGVhZGVy IChtYXRjaC1zdHJpbmcgMiBzdHJpbmcpKQorCSAgIChzZXRxIHByZWZpeCAoY29uY2F0ICAobWF0 Y2gtc3RyaW5nIDEgc3RyaW5nKSAobWF0Y2gtc3RyaW5nIDIgc3RyaW5nKSAiOiIpKQorCSAgIChz ZXRxIHRvLWNvbXBsZXRlIChtYXRjaC1zdHJpbmcgMyBzdHJpbmcpKQorCSAgIChzZXRxIGNvbXBs ZXRpb24tbGlzdAorCQkgKHNwbGl0LXN0cmluZyAKKwkJICAod2l0aC1vdXRwdXQtdG8tc3RyaW5n CisJCSAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciBzdGFuZGFyZC1vdXRwdXQKKwkJICAgICAgOzsg WFhYOiBXZSBzaG91bGQgYWRkIHRvIHRoZSBxdWVyeSBzdHJpbmcgdGhlIHdoYXQncyBhbHJlYWR5 CisJCSAgICAgIDs7IGluIHRoZSBtaW5pYnVmZmVyOyB0aGlzIHJlcXVpcmVzIGEgbW9yZSBjb21w bGV4IHBhcnNlcgorCQkgICAgICA7OyB0byBoYW5kbGUgaW5jb21wbGV0ZSBwYXJlbnRoZXNpcywg ZXRjLgorCQkgICAgICAoYXBwbHkgJ2NhbGwtcHJvY2VzcyBub3RtdWNoLWNvbW1hbmQgbmlsIHQg bmlsIAorCQkJICAgICAic2VhcmNoLWhlYWRlcnMiIGhlYWRlciAiZHVtbXkiIAorCQkJICAgICA7 KGxpc3Qgbm90bXVjaC1zZWFyY2gtcXVlcnktc3RyaW5nKQorCQkJICAgICA7IFhYWDogbm90bXVj aC1zZWFyY2gtcXVlcnktc3RyaW5nIGlzIG5vdCBhY2Nlc3NpYmxlCisJCQkgICAgIDsgZnJvbSB0 aGUgbWluaWJ1ZmZlcgorCQkJICAgICAobGlzdCAidGFnOmluYm94IikKKwkJCSAgICAgKSkpCisJ CSAgIlxuKyIgdCkpCisJICAgKQorICA7OyBTZWNvbmQgY2FzZTogY29tcGxldGUgYSBwcmVmaXgK KwkgICgoc3RyaW5nLW1hdGNoICJcXCguKlxcPFxcKVxcKFxcdypcXCkkIiBzdHJpbmcpCisJICAg KHNldHEgdG8tY29tcGxldGUgKG1hdGNoLXN0cmluZyAyIHN0cmluZykpCisJICAgKHNldHEgY29t cGxldGlvbi1saXN0IChsaXN0ICJmcm9tOiIgInRvOiIgInN1YmplY3Q6XCIiICJhdHRhY2htZW50 OlwiIiAKKwkJCQkgICAgICAgInRhZzoiICJpZDoiICJhbmQgIiAib3IgIikpCisJICAgKHNldHEg cHJlZml4IChtYXRjaC1zdHJpbmcgMSBzdHJpbmcpKQorCSAgICkKKyAgOzsgTm90aGluZyB0byBj b21wbGV0ZS4JICAKKwkgICh0IChzZXRxIHRvLWNvbXBsZXRlICIiKQorCSAgICAgKHNldHEgY29t cGxldGlvbi1saXN0IG5pbCkKKwkgICAgIChzZXRxIHByZWZpeCBzdHJpbmcpKSkKKyAgICAoY2Fz ZSBmbGFnCisgICAgICAobmlsIChjb25jYXQgcHJlZml4ICh0cnktY29tcGxldGlvbiB0by1jb21w bGV0ZSBjb21wbGV0aW9uLWxpc3QpKSkKKyAgICAgICgndCAobWFwY2FyIChsYW1iZGEgKHN0cmlu ZykgKGNvbmNhdCBwcmVmaXggc3RyaW5nKSkKKwkJICAoYWxsLWNvbXBsZXRpb25zIHRvLWNvbXBs ZXRlIGNvbXBsZXRpb24tbGlzdCkpKQorICAgICAgKCdsYW1iZGEgKHRlc3QtY29tcGxldGlvbiB0 by1jb21wbGV0ZSBjb21wbGV0aW9uLWxpc3QpKSkpKQo= ---MOQ12616492364fa14bfbf367f5bbae378742ad843aea--