Selaa lähdekoodia

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.
Carsten Dominik 16 vuotta sitten
vanhempi
commit
ebb5988e9d
2 muutettua tiedostoa jossa 20 lisäystä ja 0 poistoa
  1. 5 0
      lisp/ChangeLog
  2. 15 0
      lisp/org-remember.el

+ 5 - 0
lisp/ChangeLog

@@ -1,3 +1,8 @@
+2009-03-22  Carsten Dominik  <carsten.dominik@gmail.com>
+
+	* org-remember.el (org-remember-backup-directory): New variable.
+	(org-remember-apply-template): Write file to backup directory.
+
 2009-03-21  Carsten Dominik  <carsten.dominik@gmail.com>
 
 	* org-mouse.el (org-mouse-todo-menu): New function.

+ 15 - 0
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
+