aboutsummaryrefslogtreecommitdiffhomepage
path: root/emacs/notmuch-lib.el
diff options
context:
space:
mode:
authorGravatar Austin Clements <amdragon@MIT.EDU>2013-10-24 11:19:07 -0400
committerGravatar David Bremner <david@tethera.net>2013-11-08 20:35:13 -0400
commit730b8f61e0cf4b2e8c0f123c0914d472d6df38fc (patch)
tree8ac4fa0d20d221b7b2c94eb86d42007017af0796 /emacs/notmuch-lib.el
parent662e097984780165e57c7fa1f0ddf450dfeab83d (diff)
emacs: Use notmuch tag --batch for large tag queries
(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!)
Diffstat (limited to 'emacs/notmuch-lib.el')
-rw-r--r--emacs/notmuch-lib.el8
1 files changed, 8 insertions, 0 deletions
diff --git a/emacs/notmuch-lib.el b/emacs/notmuch-lib.el
index 17040ed8..08a86fd3 100644
--- a/emacs/notmuch-lib.el
+++ b/emacs/notmuch-lib.el
@@ -355,6 +355,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)