Function: evil-ex-get-optional-register-and-count
evil-ex-get-optional-register-and-count is a byte-compiled function
defined in evil-types.el.
Signature
(evil-ex-get-optional-register-and-count STRING)
Documentation
Parse STRING as an ex arg with both optional REGISTER and COUNT.
Return a list (REGISTER COUNT).
Source Code
;; Defined in ~/.emacs.d/elpa/evil-20260728.1438/evil-types.el
(defun evil-ex-get-optional-register-and-count (string)
"Parse STRING as an ex arg with both optional REGISTER and COUNT.
Return a list (REGISTER COUNT)."
(let* ((split-args (split-string (or string "")))
(arg-count (length split-args))
(arg0 (car split-args))
(arg1 (cadr split-args))
(number-regex "^-?[1-9][0-9]*$")
(register nil)
(count nil))
(cond
;; :command REGISTER or :command COUNT
((= arg-count 1)
(if (string-match-p number-regex arg0)
(setq count arg0)
(setq register arg0)))
;; :command REGISTER COUNT
((eq arg-count 2)
(setq register arg0
count arg1))
;; more than 2 args aren't allowed
((> arg-count 2)
(user-error "Invalid use")))
;; if register is given, check it's valid
(when register
(unless (= (length register) 1)
(user-error "Invalid register"))
(setq register (string-to-char register)))
;; if count is given, check it's valid
(when count
(unless (string-match-p number-regex count)
(user-error "Invalid count"))
(setq count (string-to-number count))
(unless (> count 0)
(user-error "Invalid count")))
(list register count)))