1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -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:
Eli Zaretskii 2012-03-10 16:36:42 +02:00
parent 83a96c0872
commit dbf6c5a160
2 changed files with 24 additions and 7 deletions

View file

@ -1,3 +1,12 @@
2012-03-10 Eli Zaretskii <eliz@gnu.org>
* 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.
2012-03-10 Jae-hyeon Park <jae-hyeon.park@desy.de> (tiny change)
* international/fontset.el (font-encoding-alist): Add an entry for

View file

@ -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)))