* lisp/org.el (org-kill-buffer): Create a wrapper for kill-buffer to handle last newline deletion. (org-kill-buffer-and-window): Create a wrapper for kill-buffer-and-window to handle last newline deletion.
* lisp/org-keys.el (org-remap): Remap kill-buffer and kill-buffer-and-window to org wrappers. --- I'd forgotten to patch the commands for exiting indirect buffers spawned by `org-tree-to-indirect-buffer'. This needs to be squashed with the first commit. Sorry for the bother. lisp/org-keys.el | 2 ++ lisp/org.el | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/lisp/org-keys.el b/lisp/org-keys.el index 26a3852b3..0f4fd5b6d 100644 --- a/lisp/org-keys.el +++ b/lisp/org-keys.el @@ -533,6 +533,8 @@ COMMANDS is a list of alternating OLDDEF NEWDEF command names." 'delete-backward-char 'org-delete-backward-char 'kill-line 'org-kill-line 'kill-region 'org-kill-region + 'kill-buffer 'org-kill-bufer + 'kill-buffer-and-window 'org-kill-buffer-and-window 'widen 'org-widen 'open-line 'org-open-line 'yank 'org-yank diff --git a/lisp/org.el b/lisp/org.el index 02130ab6a..292807138 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -7442,6 +7442,27 @@ frame is not changed." (make-indirect-buffer buffer bname 'clone) (error (make-indirect-buffer buffer bname))))) +(defun org-kill-buffer (&optional buffer-or-name) + "Kill the buffer specified by BUFFER-OR-NAME. +The argument may be a buffer or the name of an existing buffer. +Argument nil or omitted means kill the current buffer. Return t if the +buffer is actually killed, nil otherwise. + +Wrapper for org. See `kill-buffer' for more info." + (interactive) + (when (buffer-base-buffer) + (org-widen)) + (kill-buffer buffer-or-name)) + +(defun org-kill-buffer-and-window () + "Kill the current buffer and delete the selected window. + +Wrapper for org. See `kill-buffer-and-window' for more info." + (interactive) + (when (buffer-base-buffer) + (org-widen)) + (kill-buffer-and-window)) + (defun org-set-frame-title (title) "Set the title of the current frame to the string TITLE." (modify-frame-parameters (selected-frame) (list (cons 'name title)))) -- 2.20.1