Function: eshell-hist-parse-word-designator
eshell-hist-parse-word-designator is a byte-compiled function defined
in em-hist.el.gz.
Signature
(eshell-hist-parse-word-designator HIST REFERENCE)
Documentation
Parse a history word designator beginning for HIST in REFERENCE.
Source Code
;; Defined in /usr/src/emacs/lisp/eshell/em-hist.el.gz
(defun eshell-hist-parse-word-designator (hist reference)
"Parse a history word designator beginning for HIST in REFERENCE."
(let* ((index (string-match eshell-hist-word-designator reference))
(end (and index (match-end 0))))
(unless (memq (aref reference 0) '(?: ?^ ?$ ?* ?%))
(error "Invalid history word designator `%s'" reference))
(let ((nth (match-string 1 reference))
(mth (match-string 2 reference))
(here (point))
textargs)
(insert hist)
(setq textargs (car (eshell-hist-parse-arguments here (point))))
(delete-region here (point))
(if (string= nth "*")
(if mth
(error "Invalid history word designator `%s'"
reference)
(setq nth 1 mth "-$")))
(if (not mth)
(if nth
(setq mth nth)
(setq nth 0 mth "$"))
(if (string= mth "-")
(setq mth (- (length textargs) 2))
(if (string= mth "*")
(setq mth "$")
(if (not (and (> (length mth) 1)
(eq (aref mth 0) ?-)))
(error "Invalid history word designator `%s'"
reference)
(setq mth (substring mth 1))))))
(unless (numberp nth)
(setq nth (eshell-hist-word-reference nth)))
(unless (numberp mth)
(setq mth (eshell-hist-word-reference mth)))
(cons (mapconcat #'identity (seq-subseq textargs nth (1+ mth)) " ")
end))))