From bf601016dce45df7eeaebe270063829c8a3715b3 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 17 Feb 2017 22:29:06 +0100 Subject: [PATCH] Properly save source blocks with `save-some-buffers' * lisp/org-src.el (org-src-mode-configure-edit-buffer): Set `write-contents-functions' so that saving a remote editing buffer always call `org-edit-src-save'. (org-edit-src-save): Return a non-nil value explicitly. Reported-by: Thibault Polge --- lisp/org-src.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lisp/org-src.el b/lisp/org-src.el index b45306ef4..32883b029 100644 --- a/lisp/org-src.el +++ b/lisp/org-src.el @@ -646,7 +646,8 @@ See also `org-src-mode-hook'." (setq buffer-offer-save t) (setq buffer-file-name (concat (buffer-file-name (marker-buffer org-src--beg-marker)) - "[" (buffer-name) "]"))) + "[" (buffer-name) "]")) + (setq-local write-contents-functions '(org-edit-src-save))) (setq buffer-read-only t)))) (add-hook 'org-src-mode-hook #'org-src-mode-configure-edit-buffer) @@ -1032,7 +1033,10 @@ Throw an error if there is no such buffer." (insert edited-code) (when (and expecting-bol (not (bolp))) (insert "\n"))) (save-buffer) - (move-overlay overlay beg (point))))) + (move-overlay overlay beg (point)))) + ;; `write-contents-functions' require the function to return + ;; a non-nil value so that other functions are not called. + t) (defun org-edit-src-exit () "Kill current sub-editing buffer and return to source buffer." -- 2.11.4.GIT