X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=mymail-vm.el;h=5d31d6a8a546603c0b527a83f86affe8bee05ae5;hb=9385a49c7a296bdaf163a280d68173a896f11f78;hp=5d9d50ca1bebbf193f65ec85866ca5bc1e2f080d;hpb=e3b8d318444f13acefc0b8840c899eb9eb8aa9cb;p=mymail.git diff --git a/mymail-vm.el b/mymail-vm.el index 5d9d50c..5d31d6a 100644 --- a/mymail-vm.el +++ b/mymail-vm.el @@ -16,38 +16,59 @@ ;; You should have received a copy of the GNU General Public License ;; along with mymail. If not, see . -(add-to-list 'recentf-exclude "/tmp/mymail-vm-.*\.mbox") +;; You may want to add +;; +;; (add-to-list 'recentf-exclude "/tmp/mymail-vm-.*\.mbox") +;; +;; to your .emacs + +(defgroup mymail () + "Command to visit a folder build on-the-fly with mymail" + :version "0.9.5") + +(defcustom mymail/default-additional-search-requests "" + "Comma-separated list of search requests to add to any search" + :type 'string + :group 'mymail) -(defcustom mymail/default-search-request "" - "Default request to add to any search" - :type 'string) +(defcustom mymail/default-search-request nil + "Default request to use in place of the empty search" + :type 'string + :group 'mymail) (defun mymail/vm-visit-folder (param) "Read a comma-separated list of search requests for mymail, create a temporary mbox with the resulting mails, and open it in vm with `vm-visit-folder'. -The string `mymail/default-search-request' is automatically +If the request string is empty, use +`mymail/default-search-request' instead. + +The string `mymail/default-additional-search-requests' is automatically concatenated to the provided request, except if the request is prefaced with \\." (interactive (list (read-string "mymail-vm: " nil 'mymail-vm-history))) + (if (string= param "") + (if mymail/default-search-request + (setq param mymail/default-search-request) + (error "mymail error: empty search"))) + (let ((n 1) (mbox-name nil) (search-args - (apply 'nconc - (mapcar - (lambda (searche-request) - (if (not (string= searche-request "")) - (list "-s" searche-request))) - (if (string= (substring param 0 1) "\\") - (split-string (substring param 1 nil) ",") - (split-string (concat param "," mymail/default-search-request) ",")) - ))) - + (mapcar + (lambda (searche-request) + (if (not (string= searche-request "")) + (list "--search" searche-request))) + (if (string= (substring param 0 1) "\\") + (split-string (substring param 1 nil) ",") + (split-string (concat param "," + mymail/default-additional-search-requests) ",")) + ))) ) (while (get-file-buffer (setq mbox-name (format "/tmp/mymail-vm-%d.mbox" n))) @@ -61,4 +82,4 @@ prefaced with \\." 0) (vm-visit-folder mbox-name t) (message "mymail failed")) - )) + ))