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))))