mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-05 22:20:24 -08:00
Allow ^substr, substr=, ~word in mairix searches via the form widget.
lisp/net/mairix.el (mairix-replace-invalid-chars): Rename from mairix-replace-illegal-chars; all callers changed. Don't remove ^, ~, and = characters: they are meaningful in mairix search specs. (mairix-widget-create-query): Add usage information about mairix search forms: negating words, searching for substrings, etc.
This commit is contained in:
parent
83a96c0872
commit
dbf6c5a160
2 changed files with 24 additions and 7 deletions
|
|
@ -570,10 +570,10 @@ whole threads. Function returns t if messages were found."
|
|||
mairix-output-buffer)))
|
||||
(zerop rval)))
|
||||
|
||||
(defun mairix-replace-illegal-chars (header)
|
||||
"Replace illegal characters in HEADER for mairix query."
|
||||
(defun mairix-replace-invalid-chars (header)
|
||||
"Replace invalid characters in HEADER for mairix query."
|
||||
(when header
|
||||
(while (string-match "[^-.@/,& [:alnum:]]" header)
|
||||
(while (string-match "[^-.@/,^=~& [:alnum:]]" header)
|
||||
(setq header (replace-match "" t t header)))
|
||||
(while (string-match "[& ]" header)
|
||||
(setq header (replace-match "," t t header)))
|
||||
|
|
@ -620,7 +620,7 @@ See %s for details" mairix-output-buffer)))
|
|||
(concat
|
||||
(nth 1 cur)
|
||||
":"
|
||||
(mairix-replace-illegal-chars
|
||||
(mairix-replace-invalid-chars
|
||||
(widget-value
|
||||
(cadr (assoc (concat "e" (car (cddr cur))) widgets)))))
|
||||
query)))
|
||||
|
|
@ -652,9 +652,17 @@ Fill in VALUES if based on an article."
|
|||
(kill-all-local-variables)
|
||||
(erase-buffer)
|
||||
(widget-insert
|
||||
"Specify your query for Mairix (check boxes for activating fields):\n\n")
|
||||
"Specify your query for Mairix using check boxes for activating fields.\n\n")
|
||||
(widget-insert
|
||||
"(Whitespaces will be converted to ',' (i.e. AND). Use '/' for OR.)\n\n")
|
||||
(concat "Use ~word to match messages "
|
||||
(propertize "not" 'face 'italic)
|
||||
" containing the word)\n"
|
||||
" substring= to match words containing the substring\n"
|
||||
" substring=N to match words containing the substring, allowing\n"
|
||||
" up to N errors(mising/extra/different letters)\n"
|
||||
" ^substring= to match the substring at the beginning of a word.\n"))
|
||||
(widget-insert
|
||||
"Whitespace will be converted to ',' (i.e. AND). Use '/' for OR.\n\n")
|
||||
(setq mairix-widgets (mairix-widget-build-editable-fields values))
|
||||
(when (member 'flags mairix-widget-other)
|
||||
(widget-insert "\nFlags:\n Seen: ")
|
||||
|
|
@ -935,7 +943,7 @@ Use cursor keys or C-n,C-p to select next/previous search.\n\n")
|
|||
(lambda (field)
|
||||
(list (car (cddr field))
|
||||
(if (car field)
|
||||
(mairix-replace-illegal-chars
|
||||
(mairix-replace-invalid-chars
|
||||
(funcall get-mail-header (car field)))
|
||||
nil))))
|
||||
mairix-widget-fields-list)))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue