Skip to content
  • Joey Hess's avatar
    Windows: Support long filenames in more (possibly all) of the code · 54ad1b4c
    Joey Hess authored
    Works around this bug in unix-compat:
    https://github.com/jacobstanley/unix-compat/issues/56
    getFileStatus and other FilePath using functions in unix-compat do not do
    UNC conversion on Windows.
    
    Made Utility.RawFilePath use convertToWindowsNativeNamespace to do the
    necessary conversion on windows to support long filenames.
    
    Audited all imports of System.PosixCompat.Files to make sure that no
    functions that operate on FilePath were imported from it. Instead, use
    the equvilants from Utility.RawFilePath. In particular the
    re-export of that module in Common had to be removed, which led to lots
    of other changes throughout the code.
    
    The changes to Build.Configure, Build.DesktopFile, and Build.TestConfig
    make Utility.Directory not be needed to build setup. And so let it use
    Utility.RawFilePath, which depends on unix, which cannot be in
    setup-depends.
    
    Sponsored-by: Dartmouth College's Datalad project
    54ad1b4c