1 Return-Path: <jani@nikula.org>
\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 831A8431FD0
\r
6 for <notmuch@notmuchmail.org>; Wed, 10 Aug 2011 03:23:33 -0700 (PDT)
\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org
\r
11 X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5
\r
12 tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled
\r
13 Received: from olra.theworths.org ([127.0.0.1])
\r
14 by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)
\r
15 with ESMTP id uvLpzc8fhDlu for <notmuch@notmuchmail.org>;
\r
16 Wed, 10 Aug 2011 03:23:32 -0700 (PDT)
\r
17 Received: from mail-qw0-f53.google.com (mail-qw0-f53.google.com
\r
18 [209.85.216.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits))
\r
19 (No client certificate requested)
\r
20 by olra.theworths.org (Postfix) with ESMTPS id A3C6F431FB6
\r
21 for <notmuch@notmuchmail.org>; Wed, 10 Aug 2011 03:23:32 -0700 (PDT)
\r
22 Received: by qwb7 with SMTP id 7so539114qwb.26
\r
23 for <notmuch@notmuchmail.org>; Wed, 10 Aug 2011 03:22:12 -0700 (PDT)
\r
24 Received: by 10.224.31.11 with SMTP id w11mr5474639qac.132.1312971730835;
\r
25 Wed, 10 Aug 2011 03:22:10 -0700 (PDT)
\r
26 Received: from localhost (nikula.org [92.243.24.172])
\r
27 by mx.google.com with ESMTPS id 1sm716204qcy.7.2011.08.10.03.22.08
\r
28 (version=TLSv1/SSLv3 cipher=OTHER);
\r
29 Wed, 10 Aug 2011 03:22:09 -0700 (PDT)
\r
30 From: Jani Nikula <jani@nikula.org>
\r
31 To: notmuch@notmuchmail.org
\r
32 Subject: [RFC PATCH 0/3] add user friendly date range search
\r
33 Date: Wed, 10 Aug 2011 10:22:04 +0000
\r
34 Message-Id: <cover.1312964528.git.jani@nikula.org>
\r
35 X-Mailer: git-send-email 1.7.1
\r
36 Cc: amdragon@mit.edu
\r
37 X-BeenThere: notmuch@notmuchmail.org
\r
38 X-Mailman-Version: 2.1.13
\r
40 List-Id: "Use and development of the notmuch mail system."
\r
41 <notmuch.notmuchmail.org>
\r
42 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,
\r
43 <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>
\r
44 List-Archive: <http://notmuchmail.org/pipermail/notmuch>
\r
45 List-Post: <mailto:notmuch@notmuchmail.org>
\r
46 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>
\r
47 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,
\r
48 <mailto:notmuch-request@notmuchmail.org?subject=subscribe>
\r
49 X-List-Received-Date: Wed, 10 Aug 2011 10:23:33 -0000
\r
51 Hi, this RFC series adds user friendly date range searches in notmuch.
\r
53 Patches 1 and 2 add the date/time parser from coreutils, and were posted to
\r
54 the list by Michal Sojka in January [1]. I picked them up from the
\r
55 date-parser branch of the git tree at [2]. These worked without
\r
56 modifications, so I didn't touch them.
\r
58 Patch 3 adds the actual date range searches on top of current
\r
59 master. Michal also posted a date search implementation, but it was based
\r
60 on Austin Clements' custom parser patches, which I haven't looked at. Also,
\r
61 this one uses date: range syntax rather than before: and after:, and I
\r
62 think Michal would agree on this one [3].
\r
64 If the same parser is to be eventually included in notmuch, I'd prefer
\r
65 using the parse-datetime module [3] (get_date() was renamed) directly from
\r
66 gnulib [4], instead of coreutils or elsewhere that just imports from
\r
67 gnulib. Also, I think the gnulib module should be placed in a subdirectory
\r
68 rather than alongside all the notmuch lib files. However there are some
\r
69 complications in using parse-datetime, as gnulib modules heavily rely on
\r
70 autotools. Perhaps one option would be to build a separate library with
\r
71 autotools that has what we need from gnulib?
\r
73 Anyway, this is here now, and works (well, with caveats outlined in the
\r
74 commit message for patch 3) so that people can try this and get a feel of
\r
75 the date range search. I wouldn't put much efforts to cleanly importing
\r
76 gnulib before there's some guarantee that the syntax and semantics are
\r
77 desired in the first place.
\r
79 Personally, I've been happy with it ever since I got used to the semantics
\r
87 [1] http://notmuchmail.org/pipermail/notmuch/2011/003749.html
\r
88 [2] git://rtime.felk.cvut.cz/notmuch.git
\r
89 [3] http://notmuchmail.org/pipermail/notmuch/2011/004096.html
\r
90 [4] http://www.gnu.org/s/gnulib/MODULES.html#module=parse-datetime
\r
91 [3] http://www.gnu.org/s/gnulib/
\r
95 lib: add gnulib get_date() based date range search
\r
98 Import date/time parser from GNU coreutils
\r
99 Compile the date/time parser into notmuch library
\r
101 Makefile.local | 3 +
\r
103 lib/Makefile.local | 6 +-
\r
104 lib/c-ctype.c | 398 ++++++
\r
105 lib/c-ctype.h | 297 ++++
\r
106 lib/config.h | 45 +
\r
107 lib/database-private.h | 1 +
\r
108 lib/database.cc | 4 +
\r
109 lib/getdate-proc.cc | 32 +
\r
110 lib/getdate-proc.h | 21 +
\r
111 lib/getdate.c | 3506 ++++++++++++++++++++++++++++++++++++++++++++++++
\r
112 lib/getdate.h | 31 +
\r
113 lib/getdate.y | 1581 ++++++++++++++++++++++
\r
114 lib/gettime.c | 48 +
\r
115 lib/intprops.h | 83 ++
\r
116 lib/timespec.h | 39 +
\r
117 lib/verify.h | 140 ++
\r
118 17 files changed, 6242 insertions(+), 1 deletions(-)
\r
119 create mode 100644 lib/c-ctype.c
\r
120 create mode 100644 lib/c-ctype.h
\r
121 create mode 100644 lib/config.h
\r
122 create mode 100644 lib/getdate-proc.cc
\r
123 create mode 100644 lib/getdate-proc.h
\r
124 create mode 100644 lib/getdate.c
\r
125 create mode 100644 lib/getdate.h
\r
126 create mode 100644 lib/getdate.y
\r
127 create mode 100644 lib/gettime.c
\r
128 create mode 100644 lib/gettime.h
\r
129 create mode 100644 lib/intprops.h
\r
130 create mode 100644 lib/timespec.h
\r
131 create mode 100644 lib/verify.h
\r