Re: [PATCH v2] contrib: notmuch-pick: add tests
authorTomi Ollila <tomi.ollila@iki.fi>
Sat, 3 Nov 2012 21:03:43 +0000 (23:03 +0200)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:50:16 +0000 (09:50 -0800)
77/5195771c20a886eab435ab3ab09a029795df7d [new file with mode: 0644]

diff --git a/77/5195771c20a886eab435ab3ab09a029795df7d b/77/5195771c20a886eab435ab3ab09a029795df7d
new file mode 100644 (file)
index 0000000..2626853
--- /dev/null
@@ -0,0 +1,533 @@
+Return-Path: <tomi.ollila@iki.fi>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 3CD4A431FAF\r
+       for <notmuch@notmuchmail.org>; Sat,  3 Nov 2012 14:03:45 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 0\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]\r
+       autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id vDQB8NIDRXbS for <notmuch@notmuchmail.org>;\r
+       Sat,  3 Nov 2012 14:03:43 -0700 (PDT)\r
+Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34])\r
+       by olra.theworths.org (Postfix) with ESMTP id CA561431FAE\r
+       for <notmuch@notmuchmail.org>; Sat,  3 Nov 2012 14:03:42 -0700 (PDT)\r
+Received: from guru.guru-group.fi (localhost [IPv6:::1])\r
+       by guru.guru-group.fi (Postfix) with ESMTP id A3349100030;\r
+       Sat,  3 Nov 2012 23:03:43 +0200 (EET)\r
+From: Tomi Ollila <tomi.ollila@iki.fi>\r
+To: Mark Walters <markwalters1009@gmail.com>, notmuch@notmuchmail.org\r
+Subject: Re: [PATCH v2] contrib: notmuch-pick: add tests\r
+In-Reply-To: <1351797910-19305-1-git-send-email-markwalters1009@gmail.com>\r
+References: <1351797910-19305-1-git-send-email-markwalters1009@gmail.com>\r
+User-Agent: Notmuch/0.14+81~gb8371cd (http://notmuchmail.org) Emacs/24.2.1\r
+       (x86_64-unknown-linux-gnu)\r
+X-Face: HhBM'cA~<r"^Xv\KRN0P{vn'Y"Kd;zg_y3S[4)KSN~s?O\"QPoL\r
+       $[Xv_BD:i/F$WiEWax}R(MPS`^UaptOGD`*/=@\1lKoVa9tnrg0TW?"r7aRtgk[F\r
+       !)g;OY^,BjTbr)Np:%c_o'jj,Z\r
+Date: Sat, 03 Nov 2012 23:03:43 +0200\r
+Message-ID: <m2objecsb4.fsf@guru.guru-group.fi>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=utf-8\r
+Content-Transfer-Encoding: quoted-printable\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Sat, 03 Nov 2012 21:03:45 -0000\r
+\r
+On Thu, Nov 01 2012, Mark Walters <markwalters1009@gmail.com> wrote:\r
+\r
+> The test should be run using the wrapper run-tests.sh.  This links\r
+> the tests into the normal notmuch TEST_DIRECTORY and runs them from\r
+> there. After the test is complete then the links are removed.\r
+> ---\r
+\r
+2 things:\r
+\r
+The PICK_DIR variable needs export in run-tests.sh, otherwise it is\r
+not (always??!!) available for test scripts (all tests failed\r
+for me until I added that export (fatal).\r
+\r
+git am informs  test/pick.expected-output/notmuch-pick-show-window=20\r
+has trailing whitespace when applied. Could you arrange your test\r
+to use other message there (wish).\r
+\r
+\r
+Tomi\r
+\r
+\r
+>\r
+> This is version 2 of the patches to add some tests for notmuch pick.=20\r
+>\r
+> The main change is that I have added Tomi's suggested wrapper script\r
+> (id:m2ip9srpd6.fsf@guru.guru-group.fi) which is much more robust and\r
+> generally better than the one I had.\r
+>\r
+> The other changes are to split out the tests for the default async\r
+> parser from those for the sync parser. My guess is that the sync\r
+> parser should be removed but it can be useful for debugging so is\r
+> probably worth keeping until pick is closer to being ready for proper\r
+> mainline.\r
+>\r
+> Best wishes\r
+>\r
+> Mark\r
+>\r
+>\r
+>\r
+>\r
+>  contrib/notmuch-pick/README                        |    5 ++\r
+>  contrib/notmuch-pick/run-tests.sh                  |   46 ++++++++++++\r
+>  contrib/notmuch-pick/test/emacs-pick               |   76 ++++++++++++++=\r
+++++++\r
+>  contrib/notmuch-pick/test/emacs-pick-sync          |   64 ++++++++++++++=\r
+++\r
+>  .../pick.expected-output/notmuch-pick-show-window  |   32 ++++++++\r
+>  .../notmuch-pick-single-thread                     |    6 ++\r
+>  .../pick.expected-output/notmuch-pick-tag-inbox    |   53 ++++++++++++++\r
+>  7 files changed, 282 insertions(+), 0 deletions(-)\r
+>  create mode 100755 contrib/notmuch-pick/run-tests.sh\r
+>  create mode 100755 contrib/notmuch-pick/test/emacs-pick\r
+>  create mode 100755 contrib/notmuch-pick/test/emacs-pick-sync\r
+>  create mode 100644 contrib/notmuch-pick/test/pick.expected-output/notmuc=\r
+h-pick-show-window\r
+>  create mode 100644 contrib/notmuch-pick/test/pick.expected-output/notmuc=\r
+h-pick-single-thread\r
+>  create mode 100644 contrib/notmuch-pick/test/pick.expected-output/notmuc=\r
+h-pick-tag-inbox\r
+>\r
+> diff --git a/contrib/notmuch-pick/README b/contrib/notmuch-pick/README\r
+> index 8eed974..4200824 100644\r
+> --- a/contrib/notmuch-pick/README\r
+> +++ b/contrib/notmuch-pick/README\r
+> @@ -15,6 +15,11 @@ Then after the "(require 'notmuch)" line in your .emac=\r
+s file add\r
+>  the line "(require 'notmuch-pick nil t)". This will load notmuch-pick on\r
+>  your next emacs start.\r
+>=20=20\r
+> +TEST\r
+> +\r
+> +Just execute run-tests.sh and it should all work (it does require that\r
+> +notmuch has already been built).\r
+> +\r
+>  USING PICK\r
+>=20=20\r
+>  The main key entries to notmuch pick are\r
+> diff --git a/contrib/notmuch-pick/run-tests.sh b/contrib/notmuch-pick/run=\r
+-tests.sh\r
+> new file mode 100755\r
+> index 0000000..97cc9e8\r
+> --- /dev/null\r
+> +++ b/contrib/notmuch-pick/run-tests.sh\r
+> @@ -0,0 +1,46 @@\r
+> +#!/usr/bin/env bash\r
+> +\r
+> +set -eu\r
+> +\r
+> +fail() {\r
+> +    echo ERROR $1\r
+> +    exit 1\r
+> +}\r
+> +\r
+> +TESTS=3D"emacs-pick emacs-pick-sync"\r
+> +TESTFILES=3D"$TESTS pick.expected-output"\r
+> +\r
+> +PICK_DIR=3D"`cd \`dirname "$0"\` && pwd`"\r
+> +PICK_TEST_DIR=3D"$PICK_DIR/test"\r
+> +\r
+> +\r
+> +for f in $TESTFILES\r
+> +do\r
+> +    test -f "$PICK_TEST_DIR/$f" || test -d "$PICK_TEST_DIR/$f" || fail "=\r
+$PICK_TEST_DIR/$f does not exist"\r
+> +done\r
+> +\r
+> +cd "$PICK_DIR/../../test"\r
+> +\r
+> +test -x ../notmuch || fail "`cd .. && pwd`/notmuch has not been built"\r
+> +\r
+> +for f in $TESTFILES\r
+> +do\r
+> +    if test -f "$f"\r
+> +    then\r
+> +    fail "$f exists"\r
+> +    fi\r
+> +done\r
+> +\r
+> +trap "rm -f $TESTFILES" 0\r
+> +\r
+> +for f in $TESTFILES\r
+> +do\r
+> +    ln -s "$PICK_TEST_DIR/$f" .\r
+> +done\r
+> +\r
+> +#don't exec -- traps would not run.\r
+> +for f in $TESTS\r
+> +do\r
+> +    echo $f\r
+> +    ./$f\r
+> +done\r
+> diff --git a/contrib/notmuch-pick/test/emacs-pick b/contrib/notmuch-pick/=\r
+test/emacs-pick\r
+> new file mode 100755\r
+> index 0000000..9db4b34\r
+> --- /dev/null\r
+> +++ b/contrib/notmuch-pick/test/emacs-pick\r
+> @@ -0,0 +1,76 @@\r
+> +#!/usr/bin/env bash\r
+> +\r
+> +test_description=3D"emacs pick interface"\r
+> +. test-lib.sh\r
+> +\r
+> +EXPECTED=3D$TEST_DIRECTORY/pick.expected-output\r
+> +\r
+> +add_email_corpus\r
+> +test_begin_subtest "Do we have emacs"\r
+> +test_emacs '(insert "hello\n")\r
+> +        (test-output)'\r
+> +cat <<EOF >EXPECTED\r
+> +hello\r
+> +EOF\r
+> +test_expect_equal_file OUTPUT EXPECTED\r
+> +\r
+> +test_begin_subtest "Basic notmuch-pick view in emacs"\r
+> +test_emacs '(add-to-list (quote load-path) "'$PICK_DIR'")\r
+> +        (require (quote notmuch-pick))\r
+> +        (notmuch-pick "tag:inbox")\r
+> +        (notmuch-test-wait)\r
+> +        (test-output)\r
+> +        (delete-other-windows)'\r
+> +test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-tag-inbox\r
+> +\r
+> +test_begin_subtest "Navigation of notmuch-hello to search results"\r
+> +test_emacs '(notmuch-hello)\r
+> +        (goto-char (point-min))\r
+> +        (re-search-forward "inbox")\r
+> +        (widget-button-press (1- (point)))\r
+> +        (notmuch-test-wait)\r
+> +        (notmuch-pick-from-search-current-query)\r
+> +        (notmuch-test-wait)\r
+> +        (test-output)\r
+> +        (delete-other-windows)'\r
+> +test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-tag-inbox\r
+> +\r
+> +test_begin_subtest "Pick of a single thread (from search)"\r
+> +test_emacs '(notmuch-hello)\r
+> +        (goto-char (point-min))\r
+> +        (re-search-forward "inbox")\r
+> +        (widget-button-press (1- (point)))\r
+> +        (notmuch-test-wait)\r
+> +        (notmuch-pick-from-search-thread)\r
+> +        (notmuch-test-wait)\r
+> +        (test-output)\r
+> +        (delete-other-windows)'\r
+> +test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-single-thread\r
+> +\r
+> +test_begin_subtest "Pick of a single thread (from show)"\r
+> +test_emacs '(notmuch-hello)\r
+> +        (goto-char (point-min))\r
+> +        (re-search-forward "inbox")\r
+> +        (widget-button-press (1- (point)))\r
+> +        (notmuch-test-wait)\r
+> +        (notmuch-search-show-thread)\r
+> +        (notmuch-pick-from-show-current-query)\r
+> +        (notmuch-test-wait)\r
+> +        (test-output)\r
+> +        (delete-other-windows)'\r
+> +test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-single-thread\r
+> +\r
+> +test_begin_subtest "Message window of pick"\r
+> +test_emacs '(notmuch-hello)\r
+> +        (goto-char (point-min))\r
+> +        (re-search-forward "inbox")\r
+> +        (widget-button-press (1- (point)))\r
+> +        (notmuch-test-wait)\r
+> +        (notmuch-pick-from-search-thread)\r
+> +        (notmuch-test-wait)\r
+> +        (select-window notmuch-pick-message-window)\r
+> +        (test-output)\r
+> +        (delete-other-windows)'\r
+> +test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-show-window\r
+> +\r
+> +test_done\r
+> diff --git a/contrib/notmuch-pick/test/emacs-pick-sync b/contrib/notmuch-=\r
+pick/test/emacs-pick-sync\r
+> new file mode 100755\r
+> index 0000000..a7da0ff\r
+> --- /dev/null\r
+> +++ b/contrib/notmuch-pick/test/emacs-pick-sync\r
+> @@ -0,0 +1,64 @@\r
+> +#!/usr/bin/env bash\r
+> +\r
+> +test_description=3D"emacs pick interface (sync parser)"\r
+> +. test-lib.sh\r
+> +\r
+> +EXPECTED=3D$TEST_DIRECTORY/pick.expected-output\r
+> +\r
+> +add_email_corpus\r
+> +test_begin_subtest "Do we have emacs"\r
+> +test_emacs '(insert "hello\n")\r
+> +        (test-output)'\r
+> +cat <<EOF >EXPECTED\r
+> +hello\r
+> +EOF\r
+> +test_expect_equal_file OUTPUT EXPECTED\r
+> +\r
+> +test_begin_subtest "Basic notmuch-pick view in emacs"\r
+> +test_emacs '(add-to-list (quote load-path) "'$PICK_DIR'")\r
+> +        (require (quote notmuch-pick))\r
+> +        (setq notmuch-pick-asynchronous-parser nil)\r
+> +        (notmuch-pick "tag:inbox")\r
+> +        (notmuch-test-wait)\r
+> +        (test-output)\r
+> +        (delete-other-windows)'\r
+> +test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-tag-inbox\r
+> +\r
+> +test_begin_subtest "Navigation of notmuch-hello to search results"\r
+> +test_emacs '(notmuch-hello)\r
+> +        (goto-char (point-min))\r
+> +        (re-search-forward "inbox")\r
+> +        (widget-button-press (1- (point)))\r
+> +        (notmuch-test-wait)\r
+> +        (notmuch-pick-from-search-current-query)\r
+> +        (notmuch-test-wait)\r
+> +        (test-output)\r
+> +        (delete-other-windows)'\r
+> +test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-tag-inbox\r
+> +\r
+> +test_begin_subtest "Pick of a single thread (from search)"\r
+> +test_emacs '(notmuch-hello)\r
+> +        (goto-char (point-min))\r
+> +        (re-search-forward "inbox")\r
+> +        (widget-button-press (1- (point)))\r
+> +        (notmuch-test-wait)\r
+> +        (notmuch-pick-from-search-thread)\r
+> +        (notmuch-test-wait)\r
+> +        (test-output)\r
+> +        (delete-other-windows)'\r
+> +test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-single-thread\r
+> +\r
+> +test_begin_subtest "Pick of a single thread (from show)"\r
+> +test_emacs '(notmuch-hello)\r
+> +        (goto-char (point-min))\r
+> +        (re-search-forward "inbox")\r
+> +        (widget-button-press (1- (point)))\r
+> +        (notmuch-test-wait)\r
+> +        (notmuch-search-show-thread)\r
+> +        (notmuch-pick-from-show-current-query)\r
+> +        (notmuch-test-wait)\r
+> +        (test-output)\r
+> +        (delete-other-windows)'\r
+> +test_expect_equal_file OUTPUT $EXPECTED/notmuch-pick-single-thread\r
+> +\r
+> +test_done\r
+> diff --git a/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-=\r
+show-window b/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-s=\r
+how-window\r
+> new file mode 100644\r
+> index 0000000..de37267\r
+> --- /dev/null\r
+> +++ b/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-show-wi=\r
+ndow\r
+> @@ -0,0 +1,32 @@\r
+> +Mikhail Gusarov <dottedmag@dottedmag.net> (2009-11-17) (inbox)\r
+> +Subject: [notmuch] [PATCH 1/2] Close message file after parsing message     =\r
+headers\r
+> +To: notmuch@notmuchmail.org\r
+> +Date: Tue, 17 Nov 2009 21:28:37 +0600\r
+> +\r
+> +Keeping unused files open helps to see "Too many open files" often.\r
+> +\r
+> +Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>\r
+> +---\r
+> + lib/message-file.c |    5 +++++\r
+> + 1 files changed, 5 insertions(+), 0 deletions(-)\r
+> +\r
+> +diff --git a/lib/message-file.c b/lib/message-file.c\r
+> +index 8a3f8ee..197ab01 100644\r
+> +--- a/lib/message-file.c\r
+> ++++ b/lib/message-file.c\r
+> +@@ -325,6 +325,11 @@ notmuch_message_file_get_header (notmuch_message_fi=\r
+le_t\r
+> +*message,\r
+> +        return decoded_value;\r
+> +     }\r
+> +\r
+> ++    if (message->parsing_finished) {\r
+> ++        fclose (message->file);\r
+> ++        message->file =3D NULL;\r
+> ++    }\r
+> ++\r
+> +     if (message->line)\r
+> +    free (message->line);\r
+> +     message->line =3D NULL;\r
+> +[ 2-line signature. Click/Enter to show. ]\r
+> +--=20\r
+> +1.6.3.3\r
+> diff --git a/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-=\r
+single-thread b/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick=\r
+-single-thread\r
+> new file mode 100644\r
+> index 0000000..c9e5ef8\r
+> --- /dev/null\r
+> +++ b/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-single-=\r
+thread\r
+> @@ -0,0 +1,6 @@\r
+> +  2009-11-17  Mikhail Gusarov       =E2=94=AC=E2=96=BA[notmuch] [PATCH 1=\r
+/2] Close message file after parsing message   headers (inbox)\r
+> +  2009-11-17  Mikhail Gusarov       =E2=94=9C=E2=94=80=E2=96=BA[notmuch]=\r
+ [PATCH 2/2] Include <stdint.h> to get uint32_t in C++ file with gcc 4.4 (i=\r
+nbox, unread)\r
+> +  2009-11-17  Carl Worth            =E2=95=B0=E2=94=AC=E2=96=BA[notmuch]=\r
+ [PATCH 1/2] Close message file after parsing message headers (inbox, unrea=\r
+d)\r
+> +  2009-11-17  Keith Packard          =E2=95=B0=E2=94=AC=E2=96=BA ...    =\r
+                                          (inbox, unread)\r
+> +  2009-11-18  Carl Worth              =E2=95=B0=E2=94=80=E2=96=BA ...   =\r
+                                          (inbox, unread)\r
+> +End of search results.\r
+> diff --git a/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-=\r
+tag-inbox b/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-tag=\r
+-inbox\r
+> new file mode 100644\r
+> index 0000000..484141e\r
+> --- /dev/null\r
+> +++ b/contrib/notmuch-pick/test/pick.expected-output/notmuch-pick-tag-inb=\r
+ox\r
+> @@ -0,0 +1,53 @@\r
+> +  2010-12-29  Fran=C3=A7ois Boulogne     =E2=94=80=E2=96=BA[aur-general]=\r
+ Guidelines: cp, mkdir vs install      (inbox, unread)\r
+> +  2010-12-16  Olivier Berger        =E2=94=80=E2=96=BAEssai accentu=C3=\r
+=A9                                      (inbox, unread)\r
+> +  2009-11-18  Chris Wilson          =E2=94=80=E2=96=BA[notmuch] [PATCH 1=\r
+/2] Makefile: evaluate pkg-config once (inbox, unread)\r
+> +  2009-11-18  Alex Botero-Lowry     =E2=94=AC=E2=96=BA[notmuch] [PATCH] =\r
+Error out if no query is supplied to search    instead of going into an infini=\r
+te loop (attachment, inbox, unread)\r
+> +  2009-11-18  Carl Worth            =E2=95=B0=E2=94=80=E2=96=BA[notmuch]=\r
+ [PATCH] Error out if no query is supplied to search instead of going into =\r
+an infinite loop (inbox, unread)\r
+> +  2009-11-17  Ingmar Vanhassel      =E2=94=AC=E2=96=BA[notmuch] [PATCH] =\r
+Typsos                            (inbox, unread)\r
+> +  2009-11-18  Carl Worth            =E2=95=B0=E2=94=80=E2=96=BA ...     =\r
+                                          (inbox, unread)\r
+> +  2009-11-17  Adrian Perez de Cast  =E2=94=AC=E2=96=BA[notmuch] Introduc=\r
+ing myself                        (inbox, signed, unread)\r
+> +  2009-11-18  Keith Packard         =E2=94=9C=E2=94=80=E2=96=BA ...     =\r
+                                          (inbox, unread)\r
+> +  2009-11-18  Carl Worth            =E2=95=B0=E2=94=80=E2=96=BA ...     =\r
+                                          (inbox, unread)\r
+> +  2009-11-17  Israel Herraiz        =E2=94=AC=E2=96=BA[notmuch] New to t=\r
+he list                           (inbox, unread)\r
+> +  2009-11-18  Keith Packard         =E2=94=9C=E2=94=80=E2=96=BA ...     =\r
+                                          (inbox, unread)\r
+> +  2009-11-18  Carl Worth            =E2=95=B0=E2=94=80=E2=96=BA ...     =\r
+                                          (inbox, unread)\r
+> +  2009-11-17  Jan Janak             =E2=94=AC=E2=96=BA[notmuch] What a g=\r
+reat idea!                        (inbox, unread)\r
+> +  2009-11-17  Jan Janak             =E2=94=9C=E2=94=80=E2=96=BA ...     =\r
+                                          (inbox, unread)\r
+> +  2009-11-18  Carl Worth            =E2=95=B0=E2=94=80=E2=96=BA ...     =\r
+                                          (inbox, unread)\r
+> +  2009-11-17  Jan Janak             =E2=94=AC=E2=96=BA[notmuch] [PATCH] =\r
+Older versions of install do not support -C. (inbox, unread)\r
+> +  2009-11-18  Carl Worth            =E2=95=B0=E2=94=80=E2=96=BA ...     =\r
+                                          (inbox, unread)\r
+> +  2009-11-17  Aron Griffis          =E2=94=AC=E2=96=BA[notmuch] archive =\r
+                                  (inbox, unread)\r
+> +  2009-11-18  Keith Packard         =E2=95=B0=E2=94=AC=E2=96=BA ...     =\r
+                                          (inbox, unread)\r
+> +  2009-11-18  Carl Worth             =E2=95=B0=E2=94=80=E2=96=BA ...    =\r
+                                          (inbox, unread)\r
+> +  2009-11-17  Keith Packard         =E2=94=AC=E2=96=BA[notmuch] [PATCH] =\r
+Make notmuch-show 'X' (and 'x') commands remove        inbox (and unread) tags (in=\r
+box, unread)\r
+> +  2009-11-18  Carl Worth            =E2=95=B0=E2=94=80=E2=96=BA[notmuch]=\r
+ [PATCH] Make notmuch-show 'X' (and 'x') commands remove inbox (and unread)=\r
+ tags (inbox, unread)\r
+> +  2009-11-17  Lars Kellogg-Stedman  =E2=94=AC=E2=96=BA[notmuch] Working =\r
+with Maildir storage?             (inbox, signed, unread)\r
+> +  2009-11-17  Mikhail Gusarov       =E2=94=9C=E2=94=AC=E2=96=BA ...     =\r
+                                          (inbox, signed, unread)\r
+> +  2009-11-17  Lars Kellogg-Stedman  =E2=94=82=E2=95=B0=E2=94=AC=E2=96=BA=\r
+ ...                                              (inbox, signed, unread)\r
+> +  2009-11-17  Mikhail Gusarov       =E2=94=82 =E2=94=9C=E2=94=80=E2=96=\r
+=BA ...                                             (inbox, unread)\r
+> +  2009-11-17  Keith Packard         =E2=94=82 =E2=95=B0=E2=94=AC=E2=96=\r
+=BA ...                                             (inbox, unread)\r
+> +  2009-11-18  Lars Kellogg-Stedman  =E2=94=82  =E2=95=B0=E2=94=80=E2=96=\r
+=BA ...                                            (inbox, signed, unread)\r
+> +  2009-11-18  Carl Worth            =E2=95=B0=E2=94=80=E2=96=BA ...     =\r
+                                          (inbox, unread)\r
+> +  2009-11-17  Mikhail Gusarov       =E2=94=AC=E2=96=BA[notmuch] [PATCH 1=\r
+/2] Close message file after parsing message   headers (inbox, unread)\r
+> +  2009-11-17  Mikhail Gusarov       =E2=94=9C=E2=94=80=E2=96=BA[notmuch]=\r
+ [PATCH 2/2] Include <stdint.h> to get uint32_t in C++ file with gcc 4.4 (i=\r
+nbox, unread)\r
+> +  2009-11-17  Carl Worth            =E2=95=B0=E2=94=AC=E2=96=BA[notmuch]=\r
+ [PATCH 1/2] Close message file after parsing message headers (inbox, unrea=\r
+d)\r
+> +  2009-11-17  Keith Packard          =E2=95=B0=E2=94=AC=E2=96=BA ...    =\r
+                                          (inbox, unread)\r
+> +  2009-11-18  Carl Worth              =E2=95=B0=E2=94=80=E2=96=BA ...   =\r
+                                          (inbox, unread)\r
+> +  2009-11-18  Keith Packard         =E2=94=AC=E2=96=BA[notmuch] [PATCH] =\r
+Create a default notmuch-show-hook that        highlights URLs and uses word-wrap =\r
+(inbox, unread)\r
+> +  2009-11-18  Alexander Botero-Low  =E2=95=B0=E2=94=80=E2=96=BA[notmuch]=\r
+ [PATCH] Create a default notmuch-show-hook that highlights URLs and uses w=\r
+ord-wrap (inbox, unread)\r
+> +  2009-11-18  Alexander Botero-Low  =E2=94=80=E2=96=BA[notmuch] request =\r
+for pull                          (inbox, unread)\r
+> +  2009-11-18  Jjgod Jiang           =E2=94=AC=E2=96=BA[notmuch] Mac OS X=\r
+/Darwin compatibility issues      (inbox, unread)\r
+> +  2009-11-18  Alexander Botero-Low  =E2=95=B0=E2=94=AC=E2=96=BA ...     =\r
+                                          (inbox, unread)\r
+> +  2009-11-18  Jjgod Jiang            =E2=95=B0=E2=94=AC=E2=96=BA ...    =\r
+                                          (inbox, unread)\r
+> +  2009-11-18  Alexander Botero-Low    =E2=95=B0=E2=94=80=E2=96=BA ...   =\r
+                                          (inbox, unread)\r
+> +  2009-11-18  Rolland Santimano     =E2=94=80=E2=96=BA[notmuch] Link to =\r
+mailing list archives ?           (inbox, unread)\r
+> +  2009-11-18  Jan Janak             =E2=94=80=E2=96=BA[notmuch] [PATCH] =\r
+notmuch new: Support for conversion of spool   subdirectories into tags (inbo=\r
+x, unread)\r
+> +  2009-11-18  Stewart Smith         =E2=94=80=E2=96=BA[notmuch] [PATCH] =\r
+count_files: sort directory in inode order before      statting (inbox, unread)\r
+> +  2009-11-18  Stewart Smith         =E2=94=80=E2=96=BA[notmuch] [PATCH 2=\r
+/2] Read mail directory in inode number order (inbox, unread)\r
+> +  2009-11-18  Stewart Smith         =E2=94=80=E2=96=BA[notmuch] [PATCH] =\r
+Fix linking with gcc to use g++ to link in C++ libs. (inbox, unread)\r
+> +  2009-11-18  Lars Kellogg-Stedman  =E2=94=AC=E2=96=BA[notmuch] "notmuch=\r
+ help" outputs to stderr?         (attachment, inbox, signed, unread)\r
+> +  2009-11-18  Lars Kellogg-Stedman  =E2=95=B0=E2=94=80=E2=96=BA ...     =\r
+                                          (attachment, inbox, signed, unrea=\r
+d)\r
+> +  2009-11-17  Mikhail Gusarov       =E2=94=80=E2=96=BA[notmuch] [PATCH] =\r
+Handle rename of message file     (inbox, unread)\r
+> +  2009-11-17  Alex Botero-Lowry     =E2=94=AC=E2=96=BA[notmuch] prelimin=\r
+ary FreeBSD support               (attachment, inbox, unread)\r
+> +  2009-11-17  Carl Worth            =E2=95=B0=E2=94=80=E2=96=BA ...     =\r
+                                          (inbox, unread)\r
+> +End of search results.\r
+> --=20\r
+> 1.7.9.1\r
+>\r
+> _______________________________________________\r
+> notmuch mailing list\r
+> notmuch@notmuchmail.org\r
+> http://notmuchmail.org/mailman/listinfo/notmuch\r