* mh-limit.el (mh-narrow-to-cc, mh-narrow-to-from)

(mh-narrow-to-subject, mh-narrow-to-to): Fix inability to narrow to
subjects with special characters by quoting regular expression
characters in pick expression derived from existing subjects and other
fields (closes SF #1432548).

* mh-utils.el (mh-pick-regexp-chars, mh-quote-pick-expr): New variable
and function for quoting pick regular expression characters (closes SF
#1432548).
This commit is contained in:
Bill Wohler 2006-03-01 05:33:18 +00:00
parent adc881cc69
commit 052df3346e
3 changed files with 34 additions and 4 deletions

View file

@ -1,5 +1,11 @@
2006-02-28 Bill Wohler <wohler@newt.com>
* mh-limit.el (mh-narrow-to-cc, mh-narrow-to-from)
(mh-narrow-to-subject, mh-narrow-to-to): Fix inability to narrow
to subjects with special characters by quoting regular expression
characters in pick expression derived from existing subjects and
other fields (closes SF #1432548).
* mh-utils.el (mh-image-load-path): Rename variable to
mh-image-directory.
(mh-image-load-path): Access mh-image-directory instead of
@ -9,6 +15,9 @@
the entire filesystem (or infinite loop). Don't append slash to
folder. These fixes fix problems observed with the pick search.
Thanks to Thomas Baumann for the help (closes SF #1435381).
(mh-pick-regexp-chars, mh-quote-pick-expr): New variable and
function for quoting pick regular expression characters (closes SF
#1432548).
2006-02-27 Bill Wohler <wohler@newt.com>

View file

@ -89,7 +89,8 @@ With a prefix argument, edit PICK-EXPR.
Use \\<mh-folder-mode-map>\\[mh-widen] to undo this command."
(interactive
(list (mh-edit-pick-expr (mh-current-message-header-field 'cc))))
(list (mh-edit-pick-expr
(mh-quote-pick-expr (mh-current-message-header-field 'cc)))))
(mh-narrow-to-header-field 'cc pick-expr))
;;;###mh-autoload
@ -99,7 +100,8 @@ With a prefix argument, edit PICK-EXPR.
Use \\<mh-folder-mode-map>\\[mh-widen] to undo this command."
(interactive
(list (mh-edit-pick-expr (mh-current-message-header-field 'from))))
(list (mh-edit-pick-expr
(mh-quote-pick-expr (mh-current-message-header-field 'from)))))
(mh-narrow-to-header-field 'from pick-expr))
;;;###mh-autoload
@ -122,7 +124,8 @@ With a prefix argument, edit PICK-EXPR.
Use \\<mh-folder-mode-map>\\[mh-widen] to undo this command."
(interactive
(list (mh-edit-pick-expr (mh-current-message-header-field 'subject))))
(list (mh-edit-pick-expr
(mh-quote-pick-expr (mh-current-message-header-field 'subject)))))
(mh-narrow-to-header-field 'subject pick-expr))
;;;###mh-autoload
@ -132,7 +135,8 @@ With a prefix argument, edit PICK-EXPR.
Use \\<mh-folder-mode-map>\\[mh-widen] to undo this command."
(interactive
(list (mh-edit-pick-expr (mh-current-message-header-field 'to))))
(list (mh-edit-pick-expr
(mh-quote-pick-expr (mh-current-message-header-field 'to)))))
(mh-narrow-to-header-field 'to pick-expr))

View file

@ -159,6 +159,23 @@ See also variable `mh-image-load-path-called-flag'."
(funcall function (car list))
(setq list (cdr list))))
(defvar mh-pick-regexp-chars ".*$["
"List of special characters in pick regular expressions.")
;;;###mh-autoload
(defun mh-quote-pick-expr (pick-expr)
"Quote `mh-pick-regexp-chars' in PICK-EXPR.
PICK-EXPR is a list of strings. Return nil if PICK-EXPR is nil."
(let ((quoted-pick-expr))
(dolist (string pick-expr)
(when (and string
(not (string-equal string "")))
(loop for i from 0 to (1- (length mh-pick-regexp-chars)) do
(let ((s (string ?\\ (aref mh-pick-regexp-chars i))))
(setq string (mh-replace-regexp-in-string s s string t t))))
(setq quoted-pick-expr (append quoted-pick-expr (list string)))))
quoted-pick-expr))
;;;###mh-autoload
(defun mh-replace-string (old new)
"Replace all occurrences of OLD with NEW in the current buffer.