[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#15385: [Eshell] Directory completion overwrites preceding characters

From: Aidan Gauland
Subject: bug#15385: [Eshell] Directory completion overwrites preceding characters
Date: Sat, 21 Sep 2013 16:06:10 +1200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

The bug seems to be in pcomplete, line 1140 of pcomplete.el, to be

  (delete-char (- (length (comint-quote-filename stub))))

`comint-quote-filename' is given a relative path, "~/Dro", and returning
an absolute path, "/home/joost/Dropbox/".  The length of this is then
passed to `delete-char' to clear the argument being completed, but the
length is wrong when it's a relative path, because
`comint-quote-filename' seems to always return an absolute path.

I'm not sure how to fix this without breaking something else or leaving
out other special cases, such as ${FOO}tm[TAB], because I still don't
really understand how pcomplete works.  I still want to sit down with
pcomplete for a while and document it (it was left undocumented along
with Eshell, of which it was originally a component), so unless someone
else can come up with a good fix, this bug will have to remain
outstanding for a while, unfortunately.


Joost Kremers <address@hidden> writes:

> Starting from `emacs -Q', if I do
>    (setq eshell-cmpl-ignore-case t)
> and then start up a shell, TAB completion behaves incorrectly under some
> conditions.
> Specifically, I type a command such as:
>     $ cp ~/Dropbox/Work/Reading/Wilbur_Martinez2002.pdf ~/Dro
> At this point, I hit TAB to complete `~/Dro' and get:
>     $ cp ~/Dropbox/Work/Reading/Wilbur_Martine/home/joost/Dropbox/
> Note that the problem does *not* occur with the first file path. If I
> hit TAB to complete
>     $ cp ~/Dro
> then completion produces the correct result:
>     $ cp ~/Dropbox/
> It seems the problem occurs when the file path is the second argument on
> the command line, because if I type:
>     $ ls ~/Dropbox/Work/Literature/k/kim2002.pdf ~/dro
> and hit TAB to complete, the result is also:
>     $ ls ~/Dropbox/Work/Literature/k/ki/home/joost/Dropbox/
> It does not occur when there is a switch preceding the file path:
>     $ ls -l ~/dro
> completes fine.
> Thanks,
> Joost Kremers

reply via email to

[Prev in Thread] Current Thread [Next in Thread]