Implement osfs heirarchy for robust access to native operating system paths

Troy Rollo wine at
Thu Jun 9 20:31:49 CDT 2005

This patch is available for SVK merging:



Add the \\?\osfs\ file heirarchy, which maps between native operating system
paths and the heirarchy in a way that meets the following rules:
 * Each path element in the native heirarchy corresponds to a path element
   in the osfs heirarchy.
 * Names in the osfs heirarchy are case insensitive regardless of the case
   sensitivity of the underlying file system, so that if the case of the
   name is changed anywhere it is still translatable back to the original
   file name.

 * Characters that are valid in file names in the operating system but not
   in the NT file system are replaced with representations that are valid in
   the NT file system.

 * Mappings are deterministic - the mapping from /home/me/Makefile always
   refers  to a file of that name in the case of a UNIX osfs, and never to
   "/home/me/makefile" (currently in Wine you can use "/home/me/Makefile" as
   a path name provided that UNIX path is within some mapped Wine drive, but
   if that file does not exist and /home/me/makefile does, then the unix
   path will hit that latter file).
 * Mappings are roundtrippable - native file -> osfs heirarchy -> native file
   translations always return the original native file name.
 * Manipulations on path elements that either remove characters from, or add
   characters to, the end of a file name, will normally produce the right
   results when the mapping back to the native file name is performed.

	Add the \\?\osfs\ heirarchy for passing operating system paths through
        Wine APIs.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: osfs-path-translation.patch
Type: text/x-diff
Size: 43567 bytes
Desc: not available
Url :

More information about the wine-patches mailing list