1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 04:10:54 -08:00
These were there to work around deficiencies in how Eshell produces
completions for 'pcomplete-argument' (Eshell passed various non-string
objects to Pcomplete, which broke things).  Now, Eshell always returns
a stringified form of the argument, with the original value stored via
the text property 'pcomplete-arg-value'.

* lisp/pcomplete.el (pcomplete-arg): Revert changes back to a simpler
form.
This commit is contained in:
Jim Porter 2023-09-05 18:27:21 -07:00
parent f7185ca29b
commit 239db5d516

View file

@ -685,35 +685,13 @@ parts of the list.
The OFFSET argument is added to/taken away from the index that will be
used. This is really only useful with `first' and `last', for
accessing absolute argument positions.
When the argument has been transformed into something that is not
a string by `pcomplete-parse-arguments-function', the text
representation of the argument, namely what the user actually
typed in, is returned, and the value of the argument is stored in
the pcomplete-arg-value text property of that string."
(let ((arg
(nth (+ (pcase index
('first 0)
('last pcomplete-last)
(_ (- pcomplete-index (or index 0))))
(or offset 0))
pcomplete-args)))
(if (or (stringp arg)
;; FIXME: 'last' is handled specially in Emacs 29, because
;; 'pcomplete-parse-arguments' accepts a list of strings
;; (which are completion candidates) as return value for
;; (pcomplete-arg 'last). See below: "it means it's a
;; list of completions computed during parsing,
;; e.g. Eshell uses that to turn globs into lists of
;; completions". This special case will be dealt with
;; differently in Emacs 30: the pcomplete-arg-value
;; property will be used by 'pcomplete-parse-arguments'.
(eq index 'last))
arg
(propertize
(car (split-string (pcomplete-actual-arg index offset)))
'pcomplete-arg-value arg))))
accessing absolute argument positions."
(nth (+ (pcase index
('first 0)
('last pcomplete-last)
(_ (- pcomplete-index (or index 0))))
(or offset 0))
pcomplete-args))
(defun pcomplete-begin (&optional index offset)
"Return the beginning position of the INDEXth argument.