From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id AHQ/FcWU82ARFQAAgWs5BA (envelope-from ) for ; Sun, 18 Jul 2021 04:41:09 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id mHH5EMWU82AoXQAA1q6Kng (envelope-from ) for ; Sun, 18 Jul 2021 02:41:09 +0000 Received: from mail.notmuchmail.org (nmbug.tethera.net [IPv6:2607:5300:201:3100::1657]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id DFC191C227 for ; Sun, 18 Jul 2021 04:41:08 +0200 (CEST) Received: from nmbug.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id 0606029322; Sat, 17 Jul 2021 22:40:51 -0400 (EDT) Received: from fethera.tethera.net (fethera.tethera.net [198.245.60.197]) by mail.notmuchmail.org (Postfix) with ESMTP id 5358529052 for ; Sat, 17 Jul 2021 22:40:34 -0400 (EDT) Received: by fethera.tethera.net (Postfix, from userid 1001) id 49D845FD21; Sat, 17 Jul 2021 22:40:34 -0400 (EDT) Received: (nullmailer pid 3853945 invoked by uid 1000); Sun, 18 Jul 2021 02:40:27 -0000 From: David Bremner To: notmuch@notmuchmail.org Cc: David Bremner Subject: [PATCH 12/25] lib/parse-sexp: parse date fields Date: Sat, 17 Jul 2021 23:40:08 -0300 Message-Id: <20210718024021.3850340-13-david@tethera.net> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210718024021.3850340-1-david@tethera.net> References: <20210718024021.3850340-1-david@tethera.net> MIME-Version: 1.0 Message-ID-Hash: VFEWFB4M7B47POVOW7LGZFY2EYTR76NO X-Message-ID-Hash: VFEWFB4M7B47POVOW7LGZFY2EYTR76NO X-MailFrom: bremner@tethera.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.1 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1626576069; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=kbY2vXHHSNDO2bvZcTCD0vjOCNtUdNE2+uiNmhyTAe0=; b=KIUeV20wp4IJXoQ+pCHHd/mSUkIuUaKgWIjEE8hnUIIH5fOOGERjc6oq+Ym2yv+3XCVHjz buwjhze7hQgtbzbwy+IwXVb98ABLJ6VHGsHh9UVwP5pCeahVK6BD0KcEWRVNcpfh7M2YQh rVcTRVU+Fg0WKXHGp5H/u2nGns9tigwwpsuwp0Kplq8og+wjtF9c26Mch26dDVIeLrga47 qLQKNW3qavU9fXPbH8KCu1EHzHKBQ1U0lWpApnbWfvyl6PVfCWZYvRK2ofNAVHSZXIN0Cj QRd88s4TaudPiSPL9v5TbwBsnqcildm3IfSElc1a1ZciyteueMTqokzvgPG+aw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1626576069; a=rsa-sha256; cv=none; b=O97ymsi81PmnuhCRjZHqMetq3dobjKM3GkqaTZCnqN9MnMFX44dlxHOXBKgPo5fMgx8IXQ jYTcjIawApq1EuIHxzEmUkJJ3jQ+jgxyI8b+nWvYvi/4R2H9q8TI2emI+vJ5q2ZdMN9w+Y dFQFyJAZtuYsSx0ex/CtGsdoiUf8a9CZ3UFy9vTCCk5XD9Q5zAxmnDkxn8DmiFWLv74FuK dPoLPtOQtiadZ38U7+CT5xcN4ebFZ5isNCPDq9BM1ZWRhiGGy9R9iQ1x27jsgZ2rdocFNB hd8Zcq1o6i6J7EN26wqKwzUVwq7zbnjSU9WVHAO/ZFSzQ+CafKonvZ3CuwILSw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2607:5300:201:3100::1657 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Spam-Score: -0.95 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 2607:5300:201:3100::1657 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Queue-Id: DFC191C227 X-Spam-Score: -0.95 X-Migadu-Scanner: scn0.migadu.com X-TUID: 4v5tBVRBUbur VGhpcyBpcyBtYWlubHkganVzdCBtYXJzaGFsbGluZyB0aGUgYXJndW1lbnRzIGFuZCBjYWxsaW5n IHRoZSBleGlzdGluZw0KcXVlcnkgZ2VuZXJhdG9yLiBJdCdzIG5vdCBvYnZpb3VzIHdoeSBkYXRl IGlzIGluIHRoZSBmaWVsZCB0YWJsZSBub3csDQpidXQgd2Ugd2lsbCBsYXRlciB1c2UgdGhpcyB0 byB0cmFjayB3aGF0IGZsYWdzIChvcHRpb25zKSBhcmUgcGVybWl0dGVkDQpwZXIgZmllbGQuDQot LS0NCiBsaWIvcGFyc2Utc2V4cC5jYyAgICAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystDQogdGVzdC9UMDgxLXNleHByLXNlYXJjaC5zaCB8IDE1ICsrKysr KysrKysrKystDQogMiBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQ0KDQpkaWZmIC0tZ2l0IGEvbGliL3BhcnNlLXNleHAuY2MgYi9saWIvcGFyc2Utc2V4cC5j Yw0KaW5kZXggYzhiYzM0MzIuLjI5YzVjZDMxIDEwMDY0NA0KLS0tIGEvbGliL3BhcnNlLXNleHAu Y2MNCisrKyBiL2xpYi9wYXJzZS1zZXhwLmNjDQpAQCAtMSw2ICsxLDcgQEANCiAjaW5jbHVkZSA8 eGFwaWFuLmg+DQogI2luY2x1ZGUgIm5vdG11Y2gtcHJpdmF0ZS5oIg0KICNpbmNsdWRlICJzZXhw LmgiDQorI2luY2x1ZGUgInBhcnNlLXRpbWUtdnJwLmgiDQogDQogdHlwZWRlZiBzdHJ1Y3QgIHsN CiAgICAgY29uc3QgY2hhciAqbmFtZTsNCkBAIC0yNSw2ICsyNiw3IEBAIHN0YXRpYyBfc2V4cF9m aWVsZF90IGZpZWxkc1tdID0NCiB7DQogICAgIHsgImF0dGFjaG1lbnQiLCAgICAgWGFwaWFuOjpR dWVyeTo6T1BfUEhSQVNFIH0sDQogICAgIHsgImJvZHkiLCAgICAgICAgICAgWGFwaWFuOjpRdWVy eTo6T1BfUEhSQVNFIH0sDQorICAgIHsgImRhdGUiLCAgICAgICAgICAgWGFwaWFuOjpRdWVyeTo6 T1BfSU5WQUxJRCB9LA0KICAgICB7ICJmcm9tIiwgICAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok9Q X1BIUkFTRSB9LA0KICAgICB7ICJmb2xkZXIiLCAgICAgICAgIFhhcGlhbjo6UXVlcnk6Ok9QX09S IH0sDQogICAgIHsgImlkIiwgICAgICAgICAgICAgWGFwaWFuOjpRdWVyeTo6T1BfT1IgfSwNCkBA IC0xMzQsNiArMTM2LDM2IEBAIF9zZXhwX2NvbWJpbmVfZmllbGQgKGNvbnN0IGNoYXIgKnByZWZp eCwNCiAgICAgcmV0dXJuIE5PVE1VQ0hfU1RBVFVTX1NVQ0NFU1M7DQogfQ0KIA0KK3N0YXRpYyBu b3RtdWNoX3N0YXR1c190DQorX3NleHBfcGFyc2VfZGF0ZSAobm90bXVjaF9kYXRhYmFzZV90ICpu b3RtdWNoLCBjb25zdCBzZXhwX3QgKnN4LCBYYXBpYW46OlF1ZXJ5ICZvdXRwdXQpDQorew0KKyAg ICBzdGQ6OnN0cmluZyBiZWdpbiwgZW5kLCBtc2c7DQorICAgIG5vdG11Y2hfc3RhdHVzX3Qgc3Rh dHVzOw0KKyAgICBjb25zdCBzZXhwX3QgKmN1ciA9IHN4LT5saXN0LT5uZXh0Ow0KKw0KKyAgICBp ZiAoY3VyKSB7DQorCWJlZ2luID0gY3VyLT52YWw7DQorCWN1ciA9IGN1ci0+bmV4dDsNCisJaWYg KGN1cikgew0KKwkgICAgZW5kID0gY3VyLT52YWw7DQorCSAgICBjdXIgPSBjdXItPm5leHQ7DQor CSAgICBpZiAoY3VyKSB7DQorCQlfbm90bXVjaF9kYXRhYmFzZV9sb2dfYXBwZW5kIChub3RtdWNo LCAiZXh0cmEgYXJndW1lbnQocykgdG8gZGF0ZSIpOw0KKwkJcmV0dXJuIE5PVE1VQ0hfU1RBVFVT X0JBRF9RVUVSWV9TWU5UQVg7DQorCSAgICB9DQorCSAgICBzdGF0dXMgPSBfbm90bXVjaF90aW1l X3JhbmdlX3RvX3F1ZXJ5IChOT1RNVUNIX1ZBTFVFX1RJTUVTVEFNUCwgYmVnaW4sIGVuZCwgbXNn LCBvdXRwdXQpOw0KKwl9IGVsc2Ugew0KKwkgICAgc3RhdHVzID0gX25vdG11Y2hfdGltZV9zdHJp bmdfdG9fcXVlcnkgKE5PVE1VQ0hfVkFMVUVfVElNRVNUQU1QLCBiZWdpbiwgbXNnLCBvdXRwdXQp Ow0KKwl9DQorCWlmIChzdGF0dXMpDQorCSAgICBfbm90bXVjaF9kYXRhYmFzZV9sb2dfYXBwZW5k IChub3RtdWNoLCAiJXMiLCBtc2cuY19zdHIgKCkpOw0KKwlyZXR1cm4gc3RhdHVzOw0KKyAgICB9 IGVsc2Ugew0KKwlfbm90bXVjaF9kYXRhYmFzZV9sb2dfYXBwZW5kIChub3RtdWNoLCAibWlzc2lu ZyBhcmd1bWVudChzKSB0byBkYXRlIik7DQorCXJldHVybiBOT1RNVUNIX1NUQVRVU19CQURfUVVF UllfU1lOVEFYOw0KKyAgICB9DQorfQ0KKw0KIC8qIEhlcmUgd2UgZXhwZWN0IHRoZSBzLWV4cHJl c3Npb24gdG8gYmUgYSBwcm9wZXIgbGlzdCwgd2l0aCBmaXJzdA0KICAqIGVsZW1lbnQgZGVmaW5p bmcgYW5kIG9wZXJhdGlvbiwgb3IgYXMgYSBzcGVjaWFsIGNhc2UgdGhlIGVtcHR5DQogICogbGlz dCAqLw0KQEAgLTE0OCw2ICsxODAsOCBAQCBfc2V4cF90b194YXBpYW5fcXVlcnkgKG5vdG11Y2hf ZGF0YWJhc2VfdCAqbm90bXVjaCwgY29uc3Qgc2V4cF90ICpzeCwgWGFwaWFuOjpRdQ0KIAlYYXBp YW46OlF1ZXJ5IGFjY3VtdWxhdG9yOw0KIAlmb3IgKGNvbnN0IF9zZXhwX2ZpZWxkX3QgKmZpZWxk ID0gZmllbGRzOyBmaWVsZCAmJiBmaWVsZC0+bmFtZTsgZmllbGQrKykgew0KIAkgICAgc3RkOjp2 ZWN0b3I8c3RkOjpzdHJpbmc+IHRlcm1zOw0KKwkgICAgaWYgKGZpZWxkLT54YXBpYW5fb3AgPT0g WGFwaWFuOjpRdWVyeTo6T1BfSU5WQUxJRCkNCisJCWNvbnRpbnVlOw0KIAkgICAgX3NleHBfZmlu ZF93b3JkcyAoc3gtPnZhbCwgX2ZpbmRfcHJlZml4IChmaWVsZC0+bmFtZSksIHRlcm1zKTsNCiAJ ICAgIGFjY3VtdWxhdG9yID0gWGFwaWFuOjpRdWVyeSAoWGFwaWFuOjpRdWVyeTo6T1BfT1IsIGFj Y3VtdWxhdG9yLA0KIAkJCQkJIFhhcGlhbjo6UXVlcnkgKFhhcGlhbjo6UXVlcnk6Ok9QX1BIUkFT RSwNCkBAIC0xNjksOSArMjAzLDE1IEBAIF9zZXhwX3RvX3hhcGlhbl9xdWVyeSAobm90bXVjaF9k YXRhYmFzZV90ICpub3RtdWNoLCBjb25zdCBzZXhwX3QgKnN4LCBYYXBpYW46OlF1DQogICAgIH0N CiANCiAgICAgZm9yIChjb25zdCBfc2V4cF9maWVsZF90ICpmaWVsZCA9IGZpZWxkczsgZmllbGQg JiYgZmllbGQtPm5hbWU7IGZpZWxkKyspIHsNCi0JaWYgKHN0cmNhc2VjbXAgKGZpZWxkLT5uYW1l LCBoZF9zZXhwIChzeCktPnZhbCkgPT0gMCkNCisJaWYgKHN0cmNhc2VjbXAgKGZpZWxkLT5uYW1l LCBoZF9zZXhwIChzeCktPnZhbCkgPT0gMCkgew0KKwkgICAgLyogc29tZSBmaWVsZHMgbmVlZCB0 byBiZSBoYW5kbGVkIHNwZWNpYWxseSAqLw0KKwkgICAgaWYgKHN0cmNhc2VjbXAgKGZpZWxkLT5u YW1lLCAiZGF0ZSIpID09IDApIHsNCisJCXJldHVybiBfc2V4cF9wYXJzZV9kYXRlIChub3RtdWNo LCBzeCwgb3V0cHV0KTsNCisJICAgIH0NCisNCiAJICAgIHJldHVybiBfc2V4cF9jb21iaW5lX2Zp ZWxkIChfZmluZF9wcmVmaXggKGZpZWxkLT5uYW1lKSwgZmllbGQtPnhhcGlhbl9vcCwgc3gtPmxp c3QtPm5leHQsDQogCQkJCQlvdXRwdXQpOw0KKwl9DQogICAgIH0NCiANCiAgICAgX25vdG11Y2hf ZGF0YWJhc2VfbG9nX2FwcGVuZCAobm90bXVjaCwgInVuaW1wbGVtZW50ZWQgcHJlZml4ICVzXG4i LCBzeC0+bGlzdC0+dmFsKTsNCmRpZmYgLS1naXQgYS90ZXN0L1QwODEtc2V4cHItc2VhcmNoLnNo IGIvdGVzdC9UMDgxLXNleHByLXNlYXJjaC5zaA0KaW5kZXggODBlM2RhZjMuLmM5ZGQ4ZjM5IDEw MDc1NQ0KLS0tIGEvdGVzdC9UMDgxLXNleHByLXNlYXJjaC5zaA0KKysrIGIvdGVzdC9UMDgxLXNl eHByLXNlYXJjaC5zaA0KQEAgLTY3LDYgKzY3LDIwIEBAIG5vdG11Y2ggc2VhcmNoIGJvZHk6a3J5 cHRvbml0ZSA+IEVYUEVDVEVEDQogbm90bXVjaCBzZWFyY2ggLS1xdWVyeS1zeW50YXg9c2V4cCAn KGJvZHkga3J5cHRvbml0ZSknID4gT1VUUFVUDQogdGVzdF9leHBlY3RfZXF1YWxfZmlsZSBFWFBF Q1RFRCBPVVRQVVQNCiANCit0ZXN0X2JlZ2luX3N1YnRlc3QgImRhdGUgMCBhcmd1bWVudHMiDQor dGVzdF9leHBlY3RfY29kZSAxICJub3RtdWNoIHNlYXJjaCAtLXF1ZXJ5LXN5bnRheD1zZXhwICco ZGF0ZSknIg0KKw0KK3Rlc3RfYmVnaW5fc3VidGVzdCAiZGF0ZSAxIGFyZ3VtZW50Ig0KK291dHB1 dD0kKG5vdG11Y2ggc2VhcmNoIC0tcXVlcnktc3ludGF4PXNleHAgJyhkYXRlIDIwMTAtMTItMTYp JyB8IG5vdG11Y2hfc2VhcmNoX3Nhbml0aXplKQ0KK3Rlc3RfZXhwZWN0X2VxdWFsICIkb3V0cHV0 IiAidGhyZWFkOlhYWCAgIDIwMTAtMTItMTYgWzEvMV0gT2xpdmllciBCZXJnZXI7IEVzc2FpIGFj Y2VudHXDqSAoaW5ib3ggdW5yZWFkKSINCisNCit0ZXN0X2JlZ2luX3N1YnRlc3QgImRhdGUgMiBh cmd1bWVudHMiDQorb3V0cHV0PSQobm90bXVjaCBzZWFyY2ggLS1xdWVyeS1zeW50YXg9c2V4cCAn KGRhdGUgMjAxMC0xMi0xNiAxMi8xNi8yMDEwKScgfCBub3RtdWNoX3NlYXJjaF9zYW5pdGl6ZSkN Cit0ZXN0X2V4cGVjdF9lcXVhbCAiJG91dHB1dCIgInRocmVhZDpYWFggICAyMDEwLTEyLTE2IFsx LzFdIE9saXZpZXIgQmVyZ2VyOyBFc3NhaSBhY2NlbnR1w6kgKGluYm94IHVucmVhZCkiDQorDQor dGVzdF9iZWdpbl9zdWJ0ZXN0ICJkYXRlIDMgYXJndW1lbnRzIg0KK3Rlc3RfZXhwZWN0X2NvZGUg MSAibm90bXVjaCBzZWFyY2ggLS1xdWVyeS1zeW50YXg9c2V4cCAnKGRhdGUgMjAxMC0xMi0xNiAx Mi8xNi8yMDEwIHRyYWlsaW5nLWdhcmJhZ2UpJyINCisNCiB0ZXN0X2JlZ2luX3N1YnRlc3QgIlNl YXJjaCBieSAnZnJvbSciDQogYWRkX21lc3NhZ2UgJ1tzdWJqZWN0XT0ic2VhcmNoIGJ5IGZyb20i JyAnW2RhdGVdPSJTYXQsIDAxIEphbiAyMDAwIDEyOjAwOjAwIC0wMDAwIicgW2Zyb21dPXNlYXJj aGJ5ZnJvbQ0KIG91dHB1dD0kKG5vdG11Y2ggc2VhcmNoIC0tcXVlcnktc3ludGF4PXNleHAgJyhm cm9tIHNlYXJjaGJ5ZnJvbSknIHwgbm90bXVjaF9zZWFyY2hfc2FuaXRpemUpDQpAQCAtMjA1LDcg KzIxOSw2IEBAIHRlc3RfYmVnaW5fc3VidGVzdCAiU2VhcmNoIGJ5ICd0bycgKG5hbWUgYW5kIGFk ZHJlc3MpIg0KIG91dHB1dD0kKG5vdG11Y2ggc2VhcmNoIC0tcXVlcnktc3ludGF4PXNleHAgJyh0 byAiU2VhcmNoIEJ5IFRvIE5hbWUgPHRlc3RAZXhhbXBsZS5jb20+IiknIHwgbm90bXVjaF9zZWFy Y2hfc2FuaXRpemUpDQogdGVzdF9leHBlY3RfZXF1YWwgIiRvdXRwdXQiICJ0aHJlYWQ6WFhYICAg MjAwMC0wMS0wMSBbMS8xXSBOb3RtdWNoIFRlc3QgU3VpdGU7IHNlYXJjaCBieSB0byAobmFtZSkg KGluYm94IHVucmVhZCkiDQogDQotDQogdGVzdF9iZWdpbl9zdWJ0ZXN0ICJVbmJhbGFuY2VkIHBh cmVucyINCiAjIEEgY29kZSAxIGluZGljYXRlcyB0aGUgZXJyb3Igd2FzIGhhbmRsZWQgKGEgY3Jh c2ggd2lsbCByZXR1cm4gZS5nLiAxMzkpLg0KIHRlc3RfZXhwZWN0X2NvZGUgMSAibm90bXVjaCBz ZWFyY2ggLS1xdWVyeS1zeW50YXg9c2V4cCAnKCciDQotLSANCjIuMzAuMg0=