Update.
[elisp.git] / vm
diff --git a/vm b/vm
index 8e25489..f196896 100644 (file)
--- a/vm
+++ b/vm
 ;; Contact <francois@fleuret.org> for comments & bug reports             ;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; A fast indexed / search in mbox
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; This is one of my own things, check my web page to get it
+
+(when (ff/load-or-alert "~/sources/gpl/mymail/mymail-vm.el")
+
+  (define-key vm-summary-mode-map "\\" 'mymail/vm-visit-folder)
+  (define-key global-map [S-f7] 'mymail/vm-visit-folder)
+  (setq mymail/default-search-request "today"
+        mymail/default-additional-search-requests "!s ^\\[SPAM\\],!s \\] STATUS,")
+  (add-to-list 'recentf-exclude "/tmp/mymail-vm-.*\.mbox")
+)
+
 (setq-default vm-summary-show-threads t)
 
 ;; (setq vm-preview-lines nil)
@@ -299,6 +313,7 @@ attachement from mail."
   (flyspell-mode)
   (auto-fill-mode)
   (mail-abbrevs-setup)
+  (yas/minor-mode)
 
   ;; (setq fill-paragraph-function 'mail-mode-fill-paragraph)
 
@@ -532,6 +547,7 @@ an attachment")
 (add-hook 'vm-mail-send-hook 'flyspell-mode-off)
 ;; Append so that it happens after the mime encoding
 ;; (add-hook 'vm-mail-send-hook 'ff/check-badly-encoded-address t)
+
 ;; Append this hook so that it runs after all other checks
 (add-hook 'vm-mail-send-hook 'ff/dissociate-file-from-vm-mail-buffer t)
 
@@ -542,10 +558,11 @@ an attachment")
 (add-hook 'vm-summary-mode-hook 'mc-install-read-mode)
 (add-hook 'vm-virtual-mode-hook 'mc-install-read-mode)
 (add-hook 'vm-mail-mode-hook 'mc-install-write-mode)
+(add-hook 'vm-presentation-mode-hook 'mc-install-read-mode)
 
 ;; (defun ff/encrypt-mail-if-possible () (interactive)
-;; (condition-case nil (mc-encrypt)
-;; (error nil)))
+  ;; (condition-case nil (mc-encrypt-message)
+    ;; (error nil)))
 
 ;; (add-hook 'vm-mail-send-hook 'ff/encrypt-mail-if-possible t)
 
@@ -558,7 +575,8 @@ an attachment")
 (defun ff/goto-next-mail-field () (interactive)
   (let ((field (save-excursion
                  (end-of-line)
-                 (re-search-backward (concat "\\(^[a-zA-Z\-]*: \\|^" mail-header-separator "$\\)") nil t)
+                 (re-search-backward
+                  (concat "\\(^[a-zA-Z\-]*: \\|^" mail-header-separator "$\\)") nil t)
                  (match-string 1))))
 
     (cond ((string= field "To: ")
@@ -593,6 +611,7 @@ an attachment")
           t)
 
 (substitute-key-definition 'next-line 'mail-abbrev-next-line vm-mail-mode-map global-map)
+
 (substitute-key-definition 'end-of-buffer 'mail-abbrev-end-of-buffer vm-mail-mode-map global-map)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -649,3 +668,15 @@ instance, someone in bbdb named \"Paul Smith\" would generate an alias
     (bbdb-insinuate-vm)
     (ff/mail-aliases-from-bbdb))
   )
+
+(defun ff/pipe-to-tmp () (interactive)
+  (let ((link "/tmp/attach")
+        (dir (format-time-string "/tmp/attach-%Y%m%d-%H%M%S" (current-time))))
+    (mkdir dir)
+    (when (file-symlink-p link) (delete-file link))
+    (unless (file-exists-p link)
+      (make-symbolic-link dir "/tmp/attach" 1))
+    (vm-pipe-message-to-command (concat "munpack -C " dir))
+    (message "Wrote files to %s" dir)
+    )
+  )