Function: term-switch-to-alternate-sub-buffer

term-switch-to-alternate-sub-buffer is a byte-compiled function defined in term.el.gz.

Signature

(term-switch-to-alternate-sub-buffer SET)

Source Code

;; Defined in /usr/src/emacs/lisp/term.el.gz
(defun term-switch-to-alternate-sub-buffer (set)
  ;; If asked to switch to (from) the alternate sub-buffer, and already (not)
  ;; using it, do nothing.  This test is needed for some programs (including
  ;; Emacs) that emit the ti termcap string twice, for unknown reason.
  (term-handle-deferred-scroll)
  (when (eq set (not (term-using-alternate-sub-buffer)))
    (cond
     (set
      (goto-char (point-max))
      (if (not (eq (preceding-char) ?\n))
          (term-insert-char ?\n 1))
      (setq term-scroll-with-delete t)
      (setq term-saved-home-marker (copy-marker term-home-marker))
      (set-marker term-home-marker (point)))
     (t
      (setq term-scroll-with-delete
            (not (and (= term-scroll-start 0)
                      (= term-scroll-end (term--last-line)))))
      (goto-char (point-max))
      (when term-clear-full-screen-programs
        (delete-region term-home-marker (point))
        (set-marker term-home-marker term-saved-home-marker))
      (set-marker term-saved-home-marker nil)
      (setq term-saved-home-marker nil)))

    (setq term-start-line-column nil)
    (setq term-current-column nil)
    (setq term-current-row nil)
    (term-handle-deferred-scroll)))