[PATCH 07/11] emacs: Use notmuch tag --batch for large tag queries
Austin Clements
amdragon at MIT.EDU
Wed Oct 9 07:11:44 PDT 2013
Quoth Mark Walters on Oct 08 at 8:27 am:
> On Mon, 07 Oct 2013, Austin Clements <amdragon at MIT.EDU> wrote:
> > (Unfortunately, it's difficult to first demonstrate this problem with
> > a known-broken test because modern Linux kernels have argument length
> > limits in the megabytes, which makes Emacs really slow!)
> > ---
> > emacs/notmuch-lib.el | 8 ++++++++
> > emacs/notmuch-tag.el | 12 ++++++++++--
> > test/emacs | 8 ++++++++
> > 3 files changed, 26 insertions(+), 2 deletions(-)
> >
> > diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
> > index 22156f1..348112b 100644
> > --- a/emacs/notmuch-lib.el
> > +++ b/emacs/notmuch-lib.el
> > @@ -261,6 +261,14 @@ user-friendly queries."
> > "Return a query that matches the message with id ID."
> > (concat "id:" (notmuch-escape-boolean-term id)))
> >
> > +(defun notmuch-hex-encode (str)
> > + "Hex-encode STR (e.g., as used by batch tagging).
> > +
> > +This replaces spaces, percents, and double quotes in STR with
> > +%NN where NN is the hexadecimal value of the character."
> > + (replace-regexp-in-string
> > + "[ %\"]" (lambda (match) (format "%%%02x" (aref match 0))) str))
> > +
> > ;;
> >
> > (defun notmuch-common-do-stash (text)
> > diff --git a/emacs/notmuch-tag.el b/emacs/notmuch-tag.el
> > index 064cfa8..a4eec14 100644
> > --- a/emacs/notmuch-tag.el
> > +++ b/emacs/notmuch-tag.el
> > @@ -242,6 +242,8 @@ from TAGS if present."
> > (error "Changed tag must be of the form `+this_tag' or `-that_tag'")))))
> > (sort result-tags 'string<)))
> >
> > +(defconst notmuch-tag-argument-limit 1000)
> > +
>
> Another triviality: I think this should have a doc string saying use
> batch tag if the query is longer than this.
Done.
> The other patches in the series up to this point LGTM.
>
> Mark
More information about the notmuch
mailing list