From bf01f6fe66fdfe0be5aee18cf5c4da099287474e Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Wed, 29 Apr 2015 13:21:17 +0200 Subject: [PATCH] org-src: Small fix to auto-save feature * lisp/org-src.el (org-src-mode): Trigger auto-save even when current buffer is not and edit buffer. --- lisp/org-src.el | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/lisp/org-src.el b/lisp/org-src.el index aafe53419..3c96655f6 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -548,27 +548,26 @@ There is a mode hook, and keybindings for `org-edit-src-exit' and \\[org-edit-src-abort]" "Exit with \\[org-edit-src-exit] or abort with \ \\[org-edit-src-abort]")))) - ;; Possibly set-up various auto-save features (for the edit buffer + ;; Possibly activate various auto-save features (for the edit buffer ;; or the source buffer). (when org-edit-src-turn-on-auto-save (setq buffer-auto-save-file-name (concat (make-temp-name "org-src-") (format-time-string "-%Y-%d-%m") ".txt"))) - ;; Install idle auto save feature, if necessary. - (or org-src--auto-save-timer - (zerop org-edit-src-auto-save-idle-delay) - (setq org-src--auto-save-timer - (run-with-idle-timer - org-edit-src-auto-save-idle-delay t - (lambda () - (let ((edit-buffers (org-remove-if-not #'org-src-edit-buffer-p - (buffer-list)))) - (if edit-bufffers - (dolist (b edit-bufffers) - (when (buffer-modified-p) (org-edit-src-save))) - (cancel-timer org-src--auto-save-timer) - (setq org-src--auto-save-timer nil)))))))) + (unless (or org-src--auto-save-timer (zerop org-edit-src-auto-save-idle-delay)) + (setq org-src--auto-save-timer + (run-with-idle-timer + org-edit-src-auto-save-idle-delay t + (lambda () + (let (edit-flag) + (dolist (b (buffer-list)) + (when (org-src-edit-buffer-p) + (unless edit-flag (setq edit-flag t)) + (when (buffer-modified-p) (org-edit-src-save)))) + (unless edit-flag + (cancel-timer org-src--auto-save-timer) + (setq org-src--auto-save-timer nil)))))))) (defun org-src-mode-configure-edit-buffer () (when (org-bound-and-true-p org-src--from-org-mode) -- 2.11.4.GIT