X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-maildir-fcc.el;h=9f09129defa7892e93e29bcdc02bab3ecafce512;hb=0067a43ea2ee554eafed1e1300a71259cd6b6a6d;hp=1027e1a7036e75c1ec8074f086eb39e97df37643;hpb=dfb1b8eb89e814f4bf6f6e62b700c72aa1b4659a;p=notmuch diff --git a/emacs/notmuch-maildir-fcc.el b/emacs/notmuch-maildir-fcc.el index 1027e1a7..9f09129d 100644 --- a/emacs/notmuch-maildir-fcc.el +++ b/emacs/notmuch-maildir-fcc.el @@ -1,24 +1,23 @@ -;;; notmuch-maildir-fcc.el --- - -;; This file is free software; you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published -;; by the Free Software Foundation; either version 2, or (at your -;; option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - +;;; notmuch-maildir-fcc.el --- inserting using a fcc handler -*- lexical-binding: t -*- + +;; Copyright © Jesse Rosenthal +;; +;; This file is part of Notmuch. +;; +;; Notmuch is free software: you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. +;; +;; Notmuch is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. +;; ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. - -;;; Commentary: - -;; To use this as the fcc handler for message-mode, -;; customize the notmuch-fcc-dirs variable +;; along with Notmuch. If not, see . +;; +;; Authors: Jesse Rosenthal ;;; Code: @@ -30,6 +29,8 @@ (defvar notmuch-maildir-fcc-count 0) +;;; Options + (defcustom notmuch-fcc-dirs "sent" "Determines the Fcc Header which says where to save outgoing mail. @@ -77,15 +78,14 @@ directory if it does not exist yet when sending a mail." :require 'notmuch-fcc-initialization :group 'notmuch-send) -(defcustom notmuch-maildir-use-notmuch-insert 't +(defcustom notmuch-maildir-use-notmuch-insert t "Should fcc use notmuch insert instead of simple fcc." :type '(choice :tag "Fcc Method" (const :tag "Use notmuch insert" t) (const :tag "Use simple fcc" nil)) :group 'notmuch-send) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Functions which set up the fcc header in the message buffer. +;;; Functions which set up the fcc header in the message buffer. (defun notmuch-fcc-header-setup () "Add an Fcc header to the current message buffer. @@ -143,9 +143,7 @@ Insert header anyway? " subdir))) subdir (concat (notmuch-database-path) "/" subdir)))))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Functions for saving a message either using notmuch insert or file -;; fcc. First functions common to the two cases. +;;; Functions for saving a message using either method. (defmacro with-temporary-notmuch-message-buffer (&rest body) "Set-up a temporary copy of the current message-mode buffer." @@ -197,7 +195,7 @@ This is a rearranged version of message mode's message-do-fcc." (defun notmuch-fcc-handler (fcc-header) "Store message with notmuch insert or normal (file) fcc. -If `notmuch-maildir-use-notmuch-insert` is set then store the +If `notmuch-maildir-use-notmuch-insert' is set then store the message using notmuch insert. Otherwise store the message using normal fcc." (message "Doing Fcc...") @@ -205,8 +203,7 @@ normal fcc." (notmuch-maildir-fcc-with-notmuch-insert fcc-header) (notmuch-maildir-fcc-file-fcc fcc-header))) -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Functions for saving a message using notmuch insert. +;;; Functions for saving a message using notmuch insert. (defun notmuch-maildir-notmuch-insert-current-buffer (folder &optional create tags) "Use notmuch insert to put the current buffer in the database. @@ -243,18 +240,16 @@ If CREATE is non-nil then create the folder if necessary." ;; typo, or just the user want a new folder, let the user decide ;; how to deal with it. (error - (let ((response (notmuch-read-char-choice "Insert failed: \ + (let ((response (read-char-choice "Insert failed: \ \(r)etry, (c)reate folder, (i)gnore, or (e)dit the header? " '(?r ?c ?i ?e)))) (cl-case response (?r (notmuch-maildir-fcc-with-notmuch-insert fcc-header)) - (?c (notmuch-maildir-fcc-with-notmuch-insert fcc-header 't)) - (?i 't) + (?c (notmuch-maildir-fcc-with-notmuch-insert fcc-header t)) + (?i t) (?e (notmuch-maildir-fcc-with-notmuch-insert (read-from-minibuffer "Fcc header: " fcc-header))))))))) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Functions for saving a message using file fcc. +;;; Functions for saving a message using file fcc. (defun notmuch-maildir-fcc-host-fixer (hostname) (replace-regexp-in-string "/\\|:" @@ -323,12 +318,12 @@ if successful, nil if not." It offers the user a chance to correct the header, or filesystem, if needed." (if (notmuch-maildir-fcc-dir-is-maildir-p fcc-header) - (notmuch-maildir-fcc-write-buffer-to-maildir fcc-header 't) + (notmuch-maildir-fcc-write-buffer-to-maildir fcc-header t) ;; The fcc-header is not a valid maildir see if the user wants to ;; fix it in some way. (let* ((prompt (format "Fcc %s is not a maildir: \ \(r)etry, (c)reate folder, (i)gnore, or (e)dit the header? " fcc-header)) - (response (notmuch-read-char-choice prompt '(?r ?c ?i ?e)))) + (response (read-char-choice prompt '(?r ?c ?i ?e)))) (cl-case response (?r (notmuch-maildir-fcc-file-fcc fcc-header)) (?c (if (file-writable-p fcc-header) @@ -336,7 +331,7 @@ if needed." (message "No permission to create %s." fcc-header) (sit-for 2)) (notmuch-maildir-fcc-file-fcc fcc-header)) - (?i 't) + (?i t) (?e (notmuch-maildir-fcc-file-fcc (read-from-minibuffer "Fcc header: " fcc-header))))))) @@ -351,18 +346,20 @@ return t if successful, and nil otherwise." (let ((msg-id (notmuch-maildir-fcc-save-buffer-to-tmp destdir))) (when msg-id (cond (mark-seen - (condition-case err + (condition-case nil (notmuch-maildir-fcc-move-tmp-to-cur destdir msg-id t) (file-already-exists (throw 'link-error nil)))) (t - (condition-case err + (condition-case nil (notmuch-maildir-fcc-move-tmp-to-new destdir msg-id) (file-already-exists (throw 'link-error nil)))))) (delete-file (concat destdir "/tmp/" msg-id)))) t))) +;;; _ + (provide 'notmuch-maildir-fcc) ;;; notmuch-maildir-fcc.el ends here