From ebb5988e9d013607c1cbe96df848a7c49075f5a7 Mon Sep 17 00:00:00 2001 From: Carsten Dominik Date: Sun, 22 Mar 2009 15:25:17 +0100 Subject: [PATCH] Remember: Allow backup files for remember buffers When setting the variable `org-remember-back-directory', each remember buffer created will now get its own unique file name in that directory. So if you, by accident, overwrite a remember buffer or remove it before storing it, there will be a backup. --- lisp/ChangeLog | 5 +++++ lisp/org-remember.el | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 881adc57b..af7e968fd 100755 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2009-03-22 Carsten Dominik + + * org-remember.el (org-remember-backup-directory): New variable. + (org-remember-apply-template): Write file to backup directory. + 2009-03-21 Carsten Dominik * org-mouse.el (org-mouse-todo-menu): New function. diff --git a/lisp/org-remember.el b/lisp/org-remember.el index 5cfe02ca3..5e661bc33 100644 --- a/lisp/org-remember.el +++ b/lisp/org-remember.el @@ -228,6 +228,12 @@ user each time a remember buffer with a running clock is filed away. " (const :tag "Always" t) (const :tag "Query user" query))) +(defcustom org-remember-backup-directory nil + "Directory where to store all remember buffers, for backup purposes." + :group 'org-remember + :type '(choice + (const :tag "No backups" nil) + (directory :tag "Directory"))) (defvar annotation) ; from remember.el, dynamically scoped in `remember-mode' (defvar initial) ; from remember.el, dynamically scoped in `remember-mode' @@ -566,6 +572,14 @@ to be run from that hook to function properly." (re-search-forward "%&" nil t)) (replace-match "") (org-set-local 'org-jump-to-target-location t)) + (when org-remember-backup-directory + (unless (file-directory-p org-remember-backup-directory) + (make-directory org-remember-backup-directory)) + (setq buffer-file-name + (expand-file-name + (format-time-string "remember-%Y-%m-%d-%H-%M-%S") + org-remember-backup-directory)) + (save-buffer)) (when (save-excursion (goto-char (point-min)) (re-search-forward "%!" nil t)) @@ -995,3 +1009,4 @@ See also the variable `org-reverse-note-order'." ;; arch-tag: 497f30d0-4bc3-4097-8622-2d27ac5f2698 ;;; org-remember.el ends here +