Subject: Re: [PATCH 2/2] On Cygwin support both UNIX and DOS style path-names

From: Johannes Sixt <[email-masked]>
Date: Tue, 09 Aug 2011 21:47:15 +0200

Am 05.08.2011 18:10, schrieb Pascal Obry:
> In fact Cygwin supports both, so make Git agree with this.
> The failing case is when a file is committed in a sub-dir of the
> repository using a log message from a file specified with a DOS
> style path-name. To reproduce:
> 
>    $ cd src
>    $ git commit -F c:\tmp\log.txt file.c
>    fatal: could not read log file 'src/c:\tmp\log.txt': No such file \
>    or directory.

Do you also want to support this:

     $ git add src\file.c

i.e., backslash in pathspec? Then you need more than this:

> +#define has_dos_drive_prefix(path) (isalpha(*(path)) && (path)[1] == ':')
> +#define is_dir_sep(c) ((c) == '/' || (c) == '\\')

In particular, you have to enable backslash processing in
setup.c:prefix_filename(), but then you lose the ability to escape
special characters with the backslash.

-- Hannes