X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/95575d1fdc976ebc74d7336fd537e28a89165429..485d7cfcbdc6f70e6eb32b29cbd071f4c72c6bfc:/dot-emacs.el diff --git a/dot-emacs.el b/dot-emacs.el index d81aff4..01bed92 100644 --- a/dot-emacs.el +++ b/dot-emacs.el @@ -188,6 +188,78 @@ symbols `sunday', `monday', etc. (or a mixture). If the date stored in (nth 2 when)))))))) (eq w d))) +;;;----- Mail and news hacking ---------------------------------------------- + +(define-derived-mode mdwmail-mode mail-mode "[mdw] mail" + "Major mode for editing news and mail messages from external programs +Not much right now. Just support for doing MailCrypt stuff." + :syntax-table nil + :abbrev-table nil + (run-hooks 'mail-setup-hook)) + +(define-key mdwmail-mode-map [?\C-c ?\C-c] 'disabled-operation) + +(add-hook 'mdwail-mode-hook + (lambda () + (set-buffer-file-coding-system 'utf-8) + (make-local-variable 'paragraph-separate) + (make-local-variable 'paragraph-start) + (setq paragraph-start + (concat "[ \t]*[-_][-_][-_]+$\\|^-- \\|-----\\|" + paragraph-start)) + (setq paragraph-separate + (concat "[ \t]*[-_][-_][-_]+$\\|^-- \\|-----\\|" + paragraph-separate)))) + +;; --- How to encrypt in mdwmail --- + +(defun mdwmail-mc-encrypt (&optional recip scm start end from sign) + (or start + (setq start (save-excursion + (goto-char (point-min)) + (or (search-forward "\n\n" nil t) (point-min))))) + (or end + (setq end (point-max))) + (mc-encrypt-generic recip scm start end from sign)) + +;; --- How to sign in mdwmail --- + +(defun mdwmail-mc-sign (key scm start end uclr) + (or start + (setq start (save-excursion + (goto-char (point-min)) + (or (search-forward "\n\n" nil t) (point-min))))) + (or end + (setq end (point-max))) + (mc-sign-generic key scm start end uclr)) + +;; --- Some signature mangling --- + +(defun mdwmail-mangle-signature () + (save-excursion + (goto-char (point-min)) + (perform-replace "\n-- \n" "\n-- " nil nil nil))) +(add-hook 'mail-setup-hook 'mdwmail-mangle-signature) +(add-hook 'message-setup-hook 'mdwmail-mangle-signature) + +;; --- Insert my login name into message-ids, so I can score replies --- + +(defadvice message-unique-id (after mdw-user-name last activate compile) + "Ensure that the user's name appears at the end of the message-id string, +so that it can be used for convenient filtering." + (setq ad-return-value (concat ad-return-value "." (user-login-name)))) + +;; --- Tell my movemail hack where movemail is --- +;; +;; This is needed to shup up warnings about LD_PRELOAD. + +(let ((path exec-path)) + (while path + (let ((try (expand-file-name "movemail" (car path)))) + (if (file-executable-p try) + (setenv "REAL_MOVEMAIL" try)) + (setq path (cdr path))))) + ;;;----- Utility functions -------------------------------------------------- (or (fboundp 'line-number-at-pos) @@ -323,58 +395,6 @@ get itself into a twist." (mdw-check-autorevert)) (defadvice write-file (after mdw-autorevert activate) (mdw-check-autorevert)) - -(define-derived-mode mdwmail-mode mail-mode "[mdw] mail" - "Major mode for editing news and mail messages from external programs -Not much right now. Just support for doing MailCrypt stuff." - :syntax-table nil - :abbrev-table nil - (run-hooks 'mail-setup-hook)) - -(define-key mdwmail-mode-map [?\C-c ?\C-c] 'disabled-operation) - -(add-hook 'mdwail-mode-hook - (lambda () - (set-buffer-file-coding-system 'utf-8) - (make-local-variable 'paragraph-separate) - (make-local-variable 'paragraph-start) - (setq paragraph-start - (concat "[ \t]*[-_][-_][-_]+$\\|^-- \\|-----\\|" - paragraph-start)) - (setq paragraph-separate - (concat "[ \t]*[-_][-_][-_]+$\\|^-- \\|-----\\|" - paragraph-separate)))) - -;; --- How to encrypt in mdwmail --- - -(defun mdwmail-mc-encrypt (&optional recip scm start end from sign) - (or start - (setq start (save-excursion - (goto-char (point-min)) - (or (search-forward "\n\n" nil t) (point-min))))) - (or end - (setq end (point-max))) - (mc-encrypt-generic recip scm start end from sign)) - -;; --- How to sign in mdwmail --- - -(defun mdwmail-mc-sign (key scm start end uclr) - (or start - (setq start (save-excursion - (goto-char (point-min)) - (or (search-forward "\n\n" nil t) (point-min))))) - (or end - (setq end (point-max))) - (mc-sign-generic key scm start end uclr)) - -;; --- Some signature mangling --- - -(defun mdwmail-mangle-signature () - (save-excursion - (goto-char (point-min)) - (perform-replace "\n-- \n" "\n-- " nil nil nil))) -(add-hook 'mail-setup-hook 'mdwmail-mangle-signature) - ;;;----- Dired hacking ------------------------------------------------------ (defadvice dired-maybe-insert-subdir