Function: ex-next
ex-next is a byte-compiled function defined in viper-ex.el.gz.
Signature
(ex-next CYCLE-OTHER-WINDOW &optional FIND-ALT-FILE)
Source Code
;; Defined in /usr/src/emacs/lisp/emulation/viper-ex.el.gz
;; Alternate file is the file next to the first one in the buffer ring
(defun ex-next (cycle-other-window &optional find-alt-file)
(catch 'ex-edit
(let (count l)
(if (not find-alt-file)
(progn
(viper-get-ex-file)
(if (or (char-or-string-p ex-offset)
(and (not (string= "" ex-file))
(not (string-match "^[0-9]+$" ex-file))))
(progn
(ex-edit t)
(throw 'ex-edit nil))
(setq count (string-to-number ex-file))
(if (= count 0) (setq count 1))
(if (< count 0) (error "Usage: `next <count>' (count >= 0)"))))
(setq count 1))
(setq l (viper-undisplayed-files))
(while (> count 0)
(while (and (not (null l)) (null (car l)))
(setq l (cdr l)))
(setq count (1- count))
(if (> count 0)
(setq l (cdr l))))
(if find-alt-file (car l)
(progn
(if (and (car l) (get-file-buffer (car l)))
(let* ((w (if cycle-other-window
(get-lru-window) (selected-window)))
(b (window-buffer w)))
(set-window-buffer w (get-file-buffer (car l)))
(bury-buffer b)
;; this puts "next <count>" in the ex-command history
(ex-fixup-history viper-last-ex-prompt ex-file))
(error "Not that many undisplayed files")))))))