From: Jani Nikula <jani@nikula.org>
To: notmuch@notmuchmail.org
Subject: [PATCH v3 0/5] add --format=text0 to notmuch search
Date: Sun, 16 Dec 2012 23:02:36 +0200 [thread overview]
Message-ID: <cover.1355691124.git.jani@nikula.org> (raw)
Hi all, v3 of id:cover.1355064714.git.jani@nikula.org
Changes since v2:
* add new patch 1/5 to clarify sprinter documentation
* fix the test patch 4/5 according to id:8738z6wguj.fsf@qmul.ac.uk and
id:87y5gyvvv7.fsf@awakening.csail.mit.edu
Diff to v2 at the end of the cover letter.
BR,
Jani.
Jani Nikula (5):
sprinter: clarify separator documentation
sprinter: add text0 formatter for null character separated text
cli: add --format=text0 to notmuch search
test: notmuch search --format=text0
man: document notmuch search --format=text0
man/man1/notmuch-search.1 | 26 ++++++++++++++++----------
notmuch-search.c | 16 ++++++++++++++--
sprinter-text.c | 22 ++++++++++++++++++++++
sprinter.h | 15 +++++++++++----
test/text | 33 +++++++++++++++++++++++++++++++++
5 files changed, 96 insertions(+), 16 deletions(-)
--
1.7.10.4
diff --git a/sprinter.h b/sprinter.h
index f36b999..f859672 100644
--- a/sprinter.h
+++ b/sprinter.h
@@ -42,10 +42,11 @@ typedef struct sprinter {
*/
void (*map_key) (struct sprinter *, const char *);
- /* Insert a separator (usually extra whitespace) for improved
- * readability without affecting the abstract syntax of the
- * structure being printed.
- * For JSON, this could simply be a line break.
+ /* Insert a separator (usually extra whitespace). For the text
+ * printers, this is a syntactic separator. For the structured
+ * printers, this is for improved readability without affecting
+ * the abstract syntax of the structure being printed. For JSON,
+ * this could simply be a line break.
*/
void (*separator) (struct sprinter *);
diff --git a/test/text b/test/text
index e003a66..b5ccefc 100755
--- a/test/text
+++ b/test/text
@@ -55,30 +55,34 @@ test_expect_equal "$output" \
add_email_corpus
test_begin_subtest "Search message tags: text0"
-cat <<EOF > EXPECTED.$test_count
+cat <<EOF > EXPECTED
attachment inbox signed unread
EOF
-notmuch search --format=text0 --output=tags '*' | xargs -0 | notmuch_search_sanitize > OUTPUT.$test_count
-test_expect_equal_file EXPECTED.$test_count OUTPUT.$test_count
+notmuch search --format=text0 --output=tags '*' | xargs -0 | notmuch_search_sanitize > OUTPUT
+test_expect_equal_file EXPECTED OUTPUT
+# Use tr(1) to convert --output=text0 to --output=text for
+# comparison. Also translate newlines to spaces to fail with more
+# noise if they are present as delimiters instead of null
+# characters. This assumes there are no newlines in the data.
test_begin_subtest "Compare text vs. text0 for threads"
-notmuch search --format=text --output=threads '*' | notmuch_search_sanitize > EXPECTED.$test_count
-notmuch search --format=text0 --output=threads '*' | xargs -0 -L1 | notmuch_search_sanitize > OUTPUT.$test_count
-test_expect_equal_file EXPECTED.$test_count OUTPUT.$test_count
+notmuch search --format=text --output=threads '*' | notmuch_search_sanitize > EXPECTED
+notmuch search --format=text0 --output=threads '*' | tr "\n\0" " \n" | notmuch_search_sanitize > OUTPUT
+test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "Compare text vs. text0 for messages"
-notmuch search --format=text --output=messages '*' | notmuch_search_sanitize > EXPECTED.$test_count
-notmuch search --format=text0 --output=messages '*' | xargs -0 -L1 | notmuch_search_sanitize > OUTPUT.$test_count
-test_expect_equal_file EXPECTED.$test_count OUTPUT.$test_count
+notmuch search --format=text --output=messages '*' | notmuch_search_sanitize > EXPECTED
+notmuch search --format=text0 --output=messages '*' | tr "\n\0" " \n" | notmuch_search_sanitize > OUTPUT
+test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "Compare text vs. text0 for files"
-notmuch search --format=text --output=files '*' | notmuch_search_sanitize > EXPECTED.$test_count
-notmuch search --format=text0 --output=files '*' | xargs -0 -L1 | notmuch_search_sanitize > OUTPUT.$test_count
-test_expect_equal_file EXPECTED.$test_count OUTPUT.$test_count
+notmuch search --format=text --output=files '*' | notmuch_search_sanitize > EXPECTED
+notmuch search --format=text0 --output=files '*' | tr "\n\0" " \n" | notmuch_search_sanitize > OUTPUT
+test_expect_equal_file EXPECTED OUTPUT
test_begin_subtest "Compare text vs. text0 for tags"
-notmuch search --format=text --output=tags '*' | notmuch_search_sanitize > EXPECTED.$test_count
-notmuch search --format=text0 --output=tags '*' | xargs -0 -L1 | notmuch_search_sanitize > OUTPUT.$test_count
-test_expect_equal_file EXPECTED.$test_count OUTPUT.$test_count
+notmuch search --format=text --output=tags '*' | notmuch_search_sanitize > EXPECTED
+notmuch search --format=text0 --output=tags '*' | tr "\n\0" " \n" | notmuch_search_sanitize > OUTPUT
+test_expect_equal_file EXPECTED OUTPUT
test_done
next reply other threads:[~2012-12-16 21:02 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-16 21:02 Jani Nikula [this message]
2012-12-16 21:02 ` [PATCH v3 1/5] sprinter: clarify separator documentation Jani Nikula
2012-12-16 21:02 ` [PATCH v3 2/5] sprinter: add text0 formatter for null character separated text Jani Nikula
2012-12-16 21:02 ` [PATCH v3 3/5] cli: add --format=text0 to notmuch search Jani Nikula
2012-12-16 21:02 ` [PATCH v3 4/5] test: notmuch search --format=text0 Jani Nikula
2012-12-16 21:02 ` [PATCH v3 5/5] man: document " Jani Nikula
2012-12-16 21:07 ` [PATCH v3 0/5] add --format=text0 to notmuch search Austin Clements
2012-12-16 21:13 ` Mark Walters
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1355691124.git.jani@nikula.org \
--to=jani@nikula.org \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).