]> git.proxmox.com Git - libgit2.git/commit
win32: use NT-prefixed "\\?\" paths
authorEdward Thomson <ethomson@microsoft.com>
Mon, 1 Dec 2014 18:09:58 +0000 (13:09 -0500)
committerEdward Thomson <ethomson@microsoft.com>
Tue, 16 Dec 2014 16:08:43 +0000 (10:08 -0600)
commitcceae9a25d0bed8b00f4981e051d5f380ef54401
tree37fc849d60ba24f6c6ac896322d6e8ac5f7d902c
parent09debe1213b9c979e21106ccbe9d420f8511f4eb
win32: use NT-prefixed "\\?\" paths

When turning UTF-8 paths into UCS-2 paths for Windows, always use
the \\?\-prefixed paths.  Because this bypasses the system's
path canonicalization, handle the canonicalization functions ourselves.

We must:
 1. always use a backslash as a directory separator
 2. only use a single backslash between directories
 3. not rely on the system to translate "." and ".." in paths
 4. remove trailing backslashes, except at the drive root (C:\)
src/win32/findfile.c
src/win32/path_w32.c [new file with mode: 0644]
src/win32/path_w32.h [new file with mode: 0644]
src/win32/posix.h
src/win32/posix_w32.c
src/win32/utf-conv.c
src/win32/utf-conv.h
src/win32/w32_util.h
tests/core/link.c
tests/path/win32.c [new file with mode: 0644]