On Wed, Mar 12 2014, Austin Clements <amdragon@MIT.EDU> wrote: > Previously, the term escaper used a blacklist of characters that > needed escaping. This blacklist turned out to be somewhat incomplete; > for example, it did not contain non-whitespace ASCII control > characters or Unicode "fancy quotes", both of which do require the > term to be escaped. > > Switch to a whitelist of characters that are definitely safe to leave > unquoted. This fixes the broken test introduced by the previous > patch. > --- LGTM. Tomi > emacs/notmuch-lib.el | 5 ++++- > test/T310-emacs.sh | 1 - > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el > index 2fefdad..b071b2f 100644 > --- a/emacs/notmuch-lib.el > +++ b/emacs/notmuch-lib.el > @@ -426,7 +426,10 @@ user-friendly queries." > > (save-match-data > (if (or (equal term "") > - (string-match "[ ()]\\|^\"" term)) > + ;; To be pessimistic, only pass through terms composed > + ;; entirely of ASCII printing characters other than ", (, > + ;; and ). > + (string-match "[^!#-'*-~]" term)) > ;; Requires escaping > (concat "\"" (replace-regexp-in-string "\"" "\"\"" term t t) "\"") > term))) > diff --git a/test/T310-emacs.sh b/test/T310-emacs.sh > index 6c18bbd..ac966e5 100755 > --- a/test/T310-emacs.sh > +++ b/test/T310-emacs.sh > @@ -954,7 +954,6 @@ output=$(notmuch search --output=messages 'tag:search-global-race-tag') > test_expect_equal "$output" "id:$gen_msg_id_1" > > test_begin_subtest "Term escaping" > -test_subtest_known_broken > output=$(test_emacs "(mapcar 'notmuch-escape-boolean-term (list > \"\" > \"abc\`~\!@#\$%^&*-=_+123\" > -- > 1.8.4.rc3 > > _______________________________________________ > notmuch mailing list > notmuch@notmuchmail.org > http://notmuchmail.org/mailman/listinfo/notmuch