summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/mh-e/ChangeLog3
-rw-r--r--lisp/mh-e/mh-utils.el12
2 files changed, 10 insertions, 5 deletions
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index b89a4fc3d1f..19cffeabacb 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,5 +1,8 @@
2006-02-09 Bill Wohler <wohler@newt.com>
+ * mh-utils.el (mh-folder-list): Don't replace "/*$" with "/" since
+ that causes an infinite loop on XEmacs.
+
* mh-compat.el(mh-replace-regexp-in-string): Add missing regexp
argument.
diff --git a/lisp/mh-e/mh-utils.el b/lisp/mh-e/mh-utils.el
index 42f11376262..dc86d19ae77 100644
--- a/lisp/mh-e/mh-utils.el
+++ b/lisp/mh-e/mh-utils.el
@@ -516,13 +516,15 @@ value of `mh-recursive-folders-flag'. If this flag is nil, and
the sub-folders have not been explicitly viewed, then they will
not be returned."
(let ((folder-list))
- ;; Normalize folder. Strip leading +. Add trailing slash. If no
- ;; folder is specified, ensure it is nil to ensure we get the
- ;; top-level folders; otherwise mh-sub-folders returns all the
- ;; files in / if given an empty string or +.
+ ;; Normalize folder. Strip leading +. Add trailing slash (done in
+ ;; two steps to avoid infinite loops when replacing "/*$" with "/"
+ ;; in XEmacs). If no folder is specified, ensure it is nil to
+ ;; ensure we get the top-level folders; otherwise mh-sub-folders
+ ;; returns all the files in / if given an empty string or +.
(when folder
(setq folder (mh-replace-regexp-in-string "^\+" "" folder))
- (setq folder (mh-replace-regexp-in-string "/*$" "/" folder))
+ (setq folder (mh-replace-regexp-in-string "/+$" "" folder))
+ (setq folder (concat folder "/"))
(if (equal folder "")
(setq folder nil)))
(loop for f in (mh-sub-folders folder) do