This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: bash 2.04 can't complete ~/name if $HOME set to c:/users/foo?


On Tue, 2 Oct 2001 13:44:19 -0400, Christopher Faylor <cgf@redhat.com> wrote:
> 
> On Tue, Oct 02, 2001 at 10:33:36AM -0400, Matt Landau wrote:
> >At 05:37 AM 10/2/2001, David Starks-Browning wrote:
> >>If your non-Cygwin application (like Emacs) requires HOME be set in a
> >>non-Cygwin way, then don't start emacs from your Cygwin bash shell.
> >
> >Let me clarify the problem.
> >
> >Emacs doesn't care what $HOME is set to, it cares what path it sees on
> >the command line.  The issue is that bash, by default, expands
> >~/filename to a posix-style path, resulting in commands like "emacs
> >/c/users/matt/.bashrc", which doesn't work for any non-Cygwin program.
> >
> 
> It is unlikely that anyone who is working on cygwin development, a large
> part of which is devoted to providing unix path handling, is going to be
> overly interested in modifying bash to handle MS-DOS paths.
> 
> So, as has been suggested elsewhere, the best solution is to inspect the
> bash source code and provide a fix.  I can't speak for anyone else but I
> know that I, personally, have no interest in making bash work with
> MS-DOS paths.

Cygwin has a small program cygpath.exe for this purpose. I wrote a little
bash script that I think work around the problem. I call it run-win.sh and
you run the M$Windows command thru it.  e.g. run-win.sh emacs ~/.bashrc

#! /bin/sh -ex
# --------------------------------------------------

cnvrt_path ()
{
    case "$1" in
        ~/* | /?/* ) cygpath -w "$1" ;;    # argument is filename/path
          *  ) echo "$1" ;;                # as is
    esac
}


export HOME=`cnvrt_path "$HOME"`           # convert home variable

CMD=""
for VAR in "$@"
do
    CMD="$CMD "`cnvrt_path "$VAR"`         # add next var (path converted)
done

$CMD &                                     # run this command

############################## run-win.sh ##############################


I hope this help.

Ehud.


-- 
 Ehud Karni     Mivtach - Simon  Insurance   /"\
 Tel: +972-3-7966-561 Fax: +972-3-7966-667   \ /  ASCII Ribbon Campaign
 (USA) Fax and  voice  mail: 1-815-5509341    X   Against  HTML  Mail
     Better     Safe     Than     Sorry      / \
     mailto:ehud@unix.simonwiesel.co.il    http://www.simonwiesel.co.il

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]