Function: viper-get-ex-address-subr
viper-get-ex-address-subr is a byte-compiled function defined in
viper-ex.el.gz.
Signature
(viper-get-ex-address-subr OLD-ADDRESS DOT)
Source Code
;; Defined in /usr/src/emacs/lisp/emulation/viper-ex.el.gz
;; Returns an address as a point
(defun viper-get-ex-address-subr (old-address dot)
(let ((address nil))
(if (null old-address) (setq old-address dot))
(cond ((eq ex-token-type 'dot)
(setq address dot))
((eq ex-token-type 'add-number)
(save-excursion
(goto-char old-address)
(forward-line (if (= old-address 0) (1- ex-token) ex-token))
(setq address (point-marker))))
((eq ex-token-type 'sub-number)
(save-excursion
(goto-char old-address)
(forward-line (- ex-token))
(setq address (point-marker))))
((eq ex-token-type 'abs-number)
(save-excursion
(goto-char (point-min))
(if (= ex-token 0) (setq address 0)
(forward-line (1- ex-token))
(setq address (point-marker)))))
((eq ex-token-type 'end)
(save-excursion
(goto-char (1- (point-max)))
(setq address (point-marker))))
((eq ex-token-type 'plus) t) ; do nothing
((eq ex-token-type 'minus) t) ; do nothing
((eq ex-token-type 'search-forward)
(save-excursion
(ex-search-address t)
(setq address (point-marker))))
((eq ex-token-type 'search-backward)
(save-excursion
(ex-search-address nil)
(setq address (point-marker))))
((eq ex-token-type 'goto-mark)
(save-excursion
(if (null ex-token)
(exchange-point-and-mark)
(goto-char
(viper-register-to-point (1+ (- ex-token ?a)) 'enforce-buffer)))
(setq address (point-marker)))))
address))