Mercurial > emacs
changeset 106359:fceba9857bee
(pcomplete-std-complete): Don't try to complete past the last element.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 01 Dec 2009 19:39:52 +0000 |
parents | 8acd940e483a |
children | 33815099ecfc |
files | lisp/ChangeLog lisp/pcomplete.el |
diffstat | 2 files changed, 20 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Dec 01 19:01:41 2009 +0000 +++ b/lisp/ChangeLog Tue Dec 01 19:39:52 2009 +0000 @@ -1,5 +1,8 @@ 2009-12-01 Stefan Monnier <monnier@iro.umontreal.ca> + * pcomplete.el (pcomplete-std-complete): Don't try to complete past + the last element. + * simple.el (normal-erase-is-backspace-mode): Fix thinko in message. 2009-12-01 Glenn Morris <rgm@gnu.org>
--- a/lisp/pcomplete.el Tue Dec 01 19:01:41 2009 +0000 +++ b/lisp/pcomplete.el Tue Dec 01 19:39:52 2009 +0000 @@ -480,28 +480,31 @@ (pcomplete-begin))) (buftext (buffer-substring beg (point))) (table - (if (not (equal pcomplete-stub buftext)) - ;; This isn't always strictly right (e.g. if - ;; FOO="toto/$FOO", then completion of /$FOO/bar may - ;; result in something incorrect), but given the lack of - ;; any other info, it's about as good as it gets, and in - ;; practice it should work just fine (fingers crossed). - (let ((prefixes (pcomplete--common-quoted-suffix - pcomplete-stub buftext))) - (apply-partially - 'pcomplete--table-subvert - completions - (cdr prefixes) (car prefixes))) + (cond + ((null completions) nil) + ((not (equal pcomplete-stub buftext)) + ;; This isn't always strictly right (e.g. if + ;; FOO="toto/$FOO", then completion of /$FOO/bar may + ;; result in something incorrect), but given the lack of + ;; any other info, it's about as good as it gets, and in + ;; practice it should work just fine (fingers crossed). + (let ((prefixes (pcomplete--common-quoted-suffix + pcomplete-stub buftext))) + (apply-partially + 'pcomplete--table-subvert + completions + (cdr prefixes) (car prefixes)))) + (t (lexical-let ((completions completions)) (lambda (string pred action) (let ((res (complete-with-action action completions string pred))) (if (stringp res) (pcomplete-quote-argument res) - res)))))) + res))))))) (pred ;; pare it down, if applicable - (when (and pcomplete-use-paring pcomplete-seen) + (when (and table pcomplete-use-paring pcomplete-seen) (setq pcomplete-seen (mapcar (lambda (f) (funcall pcomplete-norm-func