Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Cygwin completion fails on mounted paths



Hello,

I found the discussion earlier this month "ZSH DOS/Windows" rather informative. This got me looking at some problems I've had using zsh as my default shell under Cygwin. This is zsh 4.0.6 installed from a recent Cygwin setup.

$ uname -a
CYGWIN_NT-5.1 nbbillb 1.3.20(0.73/3/2) 2003-02-08 12:10 i686 unknown unknown Cygwin

The problem I'm having is that zsh refuses to complete on mounted paths:
$ mount
C:\cygwin\bin on /usr/bin type system (binmode)
C:\cygwin\lib on /usr/lib type system (binmode)
C:\cygwin on / type system (binmode)
C: on /c type system (textmode)

If I try to complete on /c/<C-D>, zsh just barks at me. After some experimentation, I found the work around is to *not* set HOME to something that uses a mount. But I want my HOME in a different place than the default that's based on HOMEDRIVE and HOMEPATH.

The following hack seems to work. First in My Computer, Environment variables, I created a CYGWIN_HOME User variable set to /cygdrive/c/home. Then, I modified /etc/zprofile adding the following after the USER="`id -un`" line:

# Get a specfic home directory
if [ -n "$CYGWIN_HOME" ]; then
  if [ -d "$CYGWIN_HOME" ]; then
    HOME="$CYGWIN_HOME"
  else
    echo "CYGWIN_HOME points to a non existant directory!"
  fi
fi

Then, I created a zygwin.bat script in my Cygwin root directory C:\cygwin:
  @echo off
  C:
  chdir C:\cygwin\bin
  zsh -l -i

So, I guess there's a bug in the completion and/or the way HOME is handled.

-Bill




Messages sorted by: Reverse Date, Date, Thread, Author