Update.
[elisp.git] / vm
diff --git a/vm b/vm
index fac1ae7..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)
                                              ))
 
 
-(setq vm-startup-message-displayed t ;; Yes, we already saw it, no need to insist
-      vm-use-menus nil
-      vm-skip-deleted-messages nil
-      vm-skip-read-messages nil
-      vm-use-toolbar nil
+(setq
+      ;; browse-url-mozilla-program "iceweasel"
+      ;; mail-complete-style nil
+      ;; mail-from-style nil
+      ;; vm-coding-system-priorities '(utf-8)
+      ;; vm-highlighted-header-regexp "From:\\|Subject:\\|Cc:\\|To:\\|Bcc:\\|Reply-To:"
+      ;; vm-included-text-attribution-format "\nOn %w, %m %d, at %H, you wrote:\n\n"
       ;; vm-jump-to-new-messages nil
-      vm-startup-with-summary t
+      ;; vm-mime-7bit-composition-charset "latin-1"
+      ;; vm-mime-8bit-composition-charset "utf-8"
       ;; vm-preview-read-messages t
-      vm-preview-lines nil
-      vm-auto-get-new-mail t
-      vm-circular-folders nil
-      vm-confirm-new-folders t
-      vm-mutable-windows t
-      vm-mutable-frames nil
-      vm-summary-thread-indent-level 1
+      ;; vm-summary-format " %*%A %-3.3m %2d %5US %I%UA  %s\n"
       ;; vm-summary-uninteresting-senders-arrow "->"
       ;; vm-summary-uninteresting-senders-arrow "►"
-      vm-summary-uninteresting-senders-arrow ">"
       ;; vm-summary-uninteresting-senders-arrow "➔"
       ;; vm-summary-uninteresting-senders-arrow "➤"
-      vm-summary-arrow "> "
-      vm-included-text-prefix " > "
+      bbdb-send-mail-style 'vm
+      bbdb/mail-auto-create-p nil
+      mail-signature t
+      mail-specify-envelope-from t
+      vm-auto-folder-case-fold-search t
+      vm-auto-get-new-mail t
+      vm-circular-folders nil
+      vm-confirm-new-folders t
+      vm-delete-after-archiving t
+      vm-delete-after-saving t
       vm-forwarding-digest-type "mime"
-      vm-mime-attachment-save-directory "~/misc/attachments"
-      vm-use-toolbar nil
+      vm-forwarding-subject-format "(forwarded from %F) %s"
       vm-frame-per-folder nil
       vm-frame-per-summary nil
-      vm-mime-yank-attachments nil
-
-      ;; vm-mime-7bit-composition-charset "latin-1"
-      vm-mime-8bit-composition-charset "iso-8859-1"
-      ;; vm-mime-8bit-composition-charset "utf-8"
-      ;; browse-url-mozilla-program "iceweasel"
-      vm-netscape-program browse-url-mozilla-program
-      ;; vm-coding-system-priorities '(utf-8)
-      ;; mail-from-style nil
-      ;; mail-complete-style nil
-
-      ;; vm-summary-format " %*%A %-3.3m %2d %5US %I%UA  %s\n"
-      vm-summary-format " %*%a %-3.3m %2d %5US %I%UA  %s\n"
-      ;; vm-highlighted-header-regexp "From:\\|Subject:\\|Cc:\\|To:\\|Bcc:\\|Reply-To:"
       vm-highlighted-header-regexp "From:\\|Subject:\\|Reply-To:"
-
-      vm-auto-folder-case-fold-search t
-
-      vm-keep-sent-messages nil
-      vm-delete-after-saving t
-      vm-delete-after-archiving t
-
-      vm-forwarding-subject-format "(forwarded from %F) %s"
       vm-in-reply-to-format nil
       vm-included-text-attribution-format "\nOn %w, %m %d, %y (%h), %F wrote:\n\n"
-      ;; vm-included-text-attribution-format "\nOn %w, %m %d, at %H, you wrote:\n\n"
+      vm-included-text-prefix " > "
+      vm-keep-sent-messages nil
+      vm-mime-8bit-composition-charset "iso-8859-1"
+      vm-mime-attachment-save-directory "~/misc/attachments"
+      vm-mime-yank-attachments nil
+      vm-mutable-frames nil
+      vm-mutable-windows t
+      vm-netscape-program browse-url-mozilla-program
+      vm-preview-lines nil
       vm-reply-subject-prefix "Re: "
-
-      mail-signature t
-      mail-specify-envelope-from t
-
-      bbdb/mail-auto-create-p nil
-      bbdb-send-mail-style 'vm
-
+      vm-skip-deleted-messages nil
+      vm-skip-read-messages nil
+      vm-startup-message-displayed t
+      vm-startup-with-summary t
+      vm-summary-arrow "> "
+      vm-summary-format " %*%a %-3.3m %2d %5US %I%UA  %s\n"
+      vm-summary-thread-indent-level 1
+      vm-summary-uninteresting-senders-arrow ">"
+      vm-use-menus nil
+      vm-use-toolbar nil
+      vm-use-toolbar nil
       )
 
 ;; (add-to-list 'vm-visible-headers "From " t)
 
 (setq
 
- ;; vm-auto-displayed-mime-content-types '("text/plain" "text" "image" "multipart")
- ;; vm-display-using-mime t
- ;; vm-coding-system-priorities '(iso-8859-1 iso-8859-15 utf-8)
-
  vm-infer-mime-types t
  vm-mime-use-image-strips nil
  vm-mime-base64-decoder-program "base64"
  vm-mime-base64-encoder-program "base64"
  vm-mime-base64-encoder-switches '()
 
- ;; vm-auto-displayed-mime-content-types '(
-                                        ;; ;; "plain text"
-                                        ;; "text"
-                                        ;; "multipart"
-                                        ;; "image/xpm"
-                                        ;; )
-
- ;; vm-auto-displayed-mime-content-type-exceptions '("text/html")
-
  vm-mime-internal-content-types '(
                                   "multipart"
                                   "text"
                                          ("application/x-dvi"      "xdvi")
                                          ("image/postscript"       "gv")
                                          ("application/pdf"        "xpdf")
-                                         ;; ("application/pdf"        "epdfview")
                                          ("application/postscript" "gv")
-                                         ;;("image"                  "feh")
+                                         ("image"                  "pho")
                                          ("video"                  "mplayer")
-                                         ;; ("text/html"             "iceweasel")
+                                         ;; ("text/html"              "firefox")
+                                         ;; ("application/pdf"        "epdfview")
                                          )
 
  )
 
 (require 'vm-rfaddons)
 
-(setq vm-mime-default-face-charsets t)
+;; The two following lines deal with windows-1252 buggy encoding
+
+;;**;; ;; First, don't display iso-8859-1 as-is in default face
+;;**;; (delete "iso-8859-1" vm-mime-default-face-charsets)
+;;**;; ;; Then substitute windows-1252 for iso-8859-1
+;;**;; (add-to-list 'vm-mime-mule-charset-to-coding-alist '("iso-8859-1" windows-1252))
+
+;; (setq vm-mime-default-face-charsets t)
+
 ;; (add-to-list 'vm-mime-default-face-charsets  "utf-8")
 
 ;; (add-to-list 'vm-mime-default-face-charsets "iso-8859-1")
@@ -311,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)
 
@@ -544,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)
 
@@ -554,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)
 
@@ -570,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: ")
@@ -605,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)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -661,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)
+    )
+  )