Function: mh-index-new-folder

mh-index-new-folder is a byte-compiled function defined in mh-search.el.gz.

Signature

(mh-index-new-folder NAME SEARCH-REGEXP)

Documentation

Return a folder name based on NAME for search results of SEARCH-REGEXP.

If folder NAME already exists and was generated for the same SEARCH-REGEXP then it is reused.

Otherwise if the folder NAME was generated from a different search then check if NAME-2 can be used. Otherwise try NAME-3. This is repeated till we find a new folder name.

If the folder returned doesn't exist then it is created.

Source Code

;; Defined in /usr/src/emacs/lisp/mh-e/mh-search.el.gz
(defun mh-index-new-folder (name search-regexp)
  "Return a folder name based on NAME for search results of SEARCH-REGEXP.

If folder NAME already exists and was generated for the same
SEARCH-REGEXP then it is reused.

Otherwise if the folder NAME was generated from a different
search then check if NAME-2 can be used. Otherwise try NAME-3.
This is repeated till we find a new folder name.

If the folder returned doesn't exist then it is created."
  (unless (mh-folder-name-p name)
    (error "The argument should be a valid MH folder name"))
  (let ((chosen-name
         (cl-loop for i from 1
                  for candidate = (if (equal i 1) name (format "%s-%s" name i))
                  when (or (not (mh-folder-exists-p candidate))
                           (equal (mh-index-folder-search-regexp candidate)
                                  search-regexp))
                  return candidate)))
    ;; Do pending refiles/deletes...
    (when (get-buffer chosen-name)
      (mh-process-or-undo-commands chosen-name))
    ;; Recreate folder...
    (save-excursion (mh-exec-cmd-quiet nil "rmf" chosen-name))
    (mh-exec-cmd-quiet nil "folder" "-create" "-fast" chosen-name)
    (mh-remove-from-sub-folders-cache chosen-name)
    (when (and (boundp 'speedbar-buffer) speedbar-buffer)
      (mh-speed-add-folder chosen-name))
    chosen-name))