Jan Nieuwenhuizen wrote:
> > the processor that interprets
> >   #include "c:/foo.h"
> >   #include "C:/FOO.H"
> >   #include "C:\\FOO.H"
> > cannot just assume that different file names correspond to different
> > files on disk.
> 
> Yes, but this example shows the mixing of three problems:
>   (1) wrong drive letter casing,
>   (2) difference in type of slash,
>   (3) difference in casing of the file name.

I claim that

  * Caring about (1), (2), (3) should be done in utility functions outside of
    realpath(), since they can be useful even on relative file names.

  * When you are in situations where (3) is a problem, caring about (1) or (2)
    but not (3) is not helpful.

  * Caring about (2) is helpful when passing file names to other programs via
    the command line, namely:
      - when you pass a file name to a Java-based program on Windows, you need
        to convert '\\' to '/', in order to avoid interpretation of '\\t' and
        such,
      - when you pass a file name to other Windows programs, you need
        to convert '/' to '\\', in order to avoid interpretation of '/something'
        as a command-line option.
    In some programs with less techy users, converting '/' to '\\' may also be
    useful to avoid confusing the user.

  * Caring about (1) without (2) is just cosmetics.

Bruno




Reply via email to