Function: org-src-switch-to-buffer
org-src-switch-to-buffer is a byte-compiled function defined in
org-src.el.gz.
Signature
(org-src-switch-to-buffer BUFFER CONTEXT)
Documentation
Switch to BUFFER considering CONTEXT and org-src-window-setup.
Source Code
;; Defined in /usr/src/emacs/lisp/org/org-src.el.gz
(defun org-src-switch-to-buffer (buffer context)
"Switch to BUFFER considering CONTEXT and `org-src-window-setup'."
(pcase org-src-window-setup
(`plain
(when (eq context 'exit) (quit-restore-window))
(pop-to-buffer buffer))
(`current-window (pop-to-buffer-same-window buffer))
(`other-window
(let ((cur-win (selected-window)))
(org-switch-to-buffer-other-window buffer)
(when (eq context 'exit) (quit-restore-window cur-win))))
(`split-window-below
(if (eq context 'exit)
(delete-window)
(select-window (split-window-vertically)))
(pop-to-buffer-same-window buffer))
(`split-window-right
(if (eq context 'exit)
(delete-window)
(select-window (split-window-horizontally)))
(pop-to-buffer-same-window buffer))
(`other-frame
(pcase context
(`exit
(let ((frame (selected-frame)))
(switch-to-buffer-other-frame buffer)
(delete-frame frame)))
(`save
(kill-buffer (current-buffer))
(pop-to-buffer-same-window buffer))
(_ (switch-to-buffer-other-frame buffer))))
(`reorganize-frame
(when (eq context 'edit) (delete-other-windows))
(org-switch-to-buffer-other-window buffer)
(when (eq context 'exit) (delete-other-windows)))
(`switch-invisibly (set-buffer buffer))
(_
(message "Invalid value %s for `org-src-window-setup'"
org-src-window-setup)
(pop-to-buffer-same-window buffer))))