From 8cf7b8cf1a9f40df89e2f3c29bccdb3a005a5b6d Mon Sep 17 00:00:00 2001 From: Don Armstrong Date: Mon, 20 May 2013 14:34:29 -0700 Subject: [PATCH] fix the post attach command for use in message-mode --- .emacs | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/.emacs b/.emacs index 535c484..30bbd43 100644 --- a/.emacs +++ b/.emacs @@ -219,13 +219,42 @@ Maildir, or by Message-ID." (add-to-list 'auto-mode-alist '("mutt-[a-z0-9]+-[0-9]+-" . message-mode)) (add-to-list 'auto-mode-alist '("muttrc" . muttrc-mode)) -(add-hook 'mail-mode-hook - (lambda () - (font-lock-add-keywords nil - '(("^[ \t]*>[ \t]*>[ \t]*>.*$" - (0 'mail-multiply-quoted-text-face)) - ("^[ \t]*>[ \t]*>.*$" - (0 'mail-double-quoted-text-face)))))) +(defun my-message-mode-settings () + (font-lock-add-keywords nil + '(("^[ \t]*>[ \t]*>[ \t]*>.*$" + (0 'message-multiply-quoted-text-face)) + ("^[ \t]*>[ \t]*>.*$" + (0 'message-double-quoted-text-face)))) + (local-set-key (kbd "C-c C-a") 'my-post-attach-file) + ) +(add-hook 'message-mode-hook 'my-message-mode-settings) + +(defun my-post-attach-file () + "Prompt for an attachment." + (interactive) + (let ((file (read-file-name "Attach file: " nil nil t nil)) + (description (string-read "Description: "))) + (my-header-attach-file file description))) + +(symbol-function 'my-post-attach-file) + +(defun my-header-attach-file (file description) + "Attach a FILE to the current message (works with Mutt). +Argument DESCRIPTION MIME description." + (interactive "fAttach file: \nsDescription: ") + (when (> (length file) 0) + (save-excursion + (save-match-data + (save-restriction + (widen) + (goto-char (point-min)) + (search-forward-regexp "^$") + (insert (concat "Attach: " (replace-regexp-in-string "\\([[:space:]\\]\\)" "\\\\\\1" (file-truename file)) " " + description "\n")) + (message (concat "Attached '" file "'.")) + (setq post-has-attachment t)))))) + + (setq mail-yank-prefix "> ") -- 2.39.2