Function: eshell-hist-parse-arguments
eshell-hist-parse-arguments is a byte-compiled function defined in
em-hist.el.gz.
Signature
(eshell-hist-parse-arguments &optional B E)
Documentation
Parse current command arguments in a history-code-friendly way.
Source Code
;; Defined in /usr/src/emacs/lisp/eshell/em-hist.el.gz
(defun eshell-hist-parse-arguments (&optional b e)
"Parse current command arguments in a history-code-friendly way."
(let ((end (or e (point)))
(begin (or b (save-excursion (beginning-of-line) (point))))
(posb (list t))
(pose (list t))
(textargs (list t))
hist args)
(unless (catch 'eshell-incomplete
(ignore
(setq args (eshell-parse-arguments begin end))))
(save-excursion
(goto-char begin)
(while (< (point) end)
(if (get-text-property (point) 'arg-begin)
(nconc posb (list (point))))
(if (get-text-property (point) 'arg-end)
(nconc pose
(list (if (= (1+ (point)) end)
(1+ (point))
(point)))))
(forward-char))
(setq posb (cdr posb)
pose (cdr pose))
(cl-assert (= (length posb) (length args)))
(cl-assert (<= (length posb) (length pose))))
(setq hist (buffer-substring-no-properties begin end))
(let ((b posb) (e pose))
(while b
(nconc textargs
(list (substring hist (- (car b) begin)
(- (car e) begin))))
(setq b (cdr b)
e (cdr e))))
(setq textargs (cdr textargs))
(cl-assert (= (length textargs) (length args)))
(list textargs posb pose))))