Subject: bug#43735: 28.0.50; eshell: No such directory found via CDPATH environment variable

From: Colin Baxter <[email-masked]>
Date: Sat, 03 Oct 2020 08:37:05 +0100

>>>>> Jean Louis <[email-masked]> writes:

    > * Lars Ingebrigtsen <[email-masked]> [2020-10-01 22:56]:
    >> Jean Louis <[email-masked]> writes:
    >> 
    >> >> > I think it is related also to CDPATH. Now when I remove
    >> CDPATH from >> > .bashrc, then it works.
    >> >> 
    >> >> What's your CDPATH variable?
    >> >
    >> > export >
    >> CDPATH="./:~:/home/data1/protected/Work/3rd-Dynamic/Corporation/Division_4/Dept_10/Company
    >> > Formation"
    >> 
    >> I can reproduce this bug:
    >> 
    >> M-x eshell $ export CDPATH="/var" $ cd tmp No such directory
    >> found via CDPATH environment variable
    >> 
    >> (tmp does exist.)

    > It is reproducible, but I am starting from login with CDPATH in my
    > .bashrc, before starting Emacs. I am not chaning CDPATH within
    > Emacs inside, I did not test that.

    > If I start with CDPATH in .bashrc, as environment, that is where
    > problem starts.

Sorry, but it works for me even if I set the CDPATH in ~/.bashrc

In ~/.bashrc
# CDPATH
CDPATH=.:/home/<USERNAME>/1/2/
export CDPATH

Open xterm
echo $CDPATH --> .:/home/<USERNAME>/1/2/
emacs -q <RET>
M-x shell <RET>
In shell
cd <RET>
echo $CDPATH --> .:/home/<USERNAME>/1/2/
cd 3 <RET>
pwd -- > /home/<USERNAME>/1/2/3

Ditto for eshell.

However in eshell the sequence of commands
cd <RET>
cd 3 <RET>
cd ../ <RET>
ls --> /HOME
cd ../ <RET>
ls --> /<USERNAME>
cd <RET>
ls --> all files and directories in $HOME are listed as normal

The odd behaviour of eshell does not occur in shell.

Again, I'm using emacs-28.0.50

Best wishes,

Colin.

Colin Baxter
URL: http://www.Colin-Baxter.com