(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).
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
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>
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
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
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
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))
\f
(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.