git-annex/Utility
Joey Hess cd076cd085
Windows: Support urls like "file:///c:/path"
That is a legal url, but parseUrl parses it to "/c:/path"
which is not a valid path on Windows. So as a workaround, use
parseURIPortable everywhere, which removes the leading slash when
run on windows.

Note that if an url is parsed like this and then serialized back
to a string, it will be different from the input. Which could
potentially be a problem, but is probably not in practice.

An alternative way to do it would be to have an uriPathPortable
that fixes up the path after parsing. But it would be harder to
make sure that is used everywhere, since uriPath is also used
when constructing an URI.

It's also worth noting that System.FilePath.normalize "/c:/path"
yields "c:/path". The reason I didn't use it is that it also
may change "/" to "\" in the path and I wanted to keep the url
changes minimal. Also noticed that convertToWindowsNativeNamespace
handles "/c:/path" the same as "c:/path".

Sponsored-By: the NIH-funded NICEMAN (ReproNim TR&D3) project
2023-03-27 13:38:02 -04:00
..
Directory improve createDirectoryUnder to allow alternate top directories 2022-08-12 12:52:37 -04:00
DirWatcher fix build warnings on windows 2023-03-21 18:41:23 -04:00
Env fix a annex.pidlock issue 2020-06-17 15:30:59 -04:00
LockFile fix build warnings on windows 2023-03-21 18:41:23 -04:00
LockPool Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
Path Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
Process fix missing new lines in processTranscript 2021-08-02 13:42:27 -04:00
Scheduled Typo: recurrance -> recurrence 2023-03-17 15:14:54 -04:00
Tmp avoid using removePathForcibly everywhere, it is unsafe 2022-05-02 14:06:20 -04:00
Aeson.hs fix build warning with old aeson 2022-03-07 13:29:24 -04:00
Android.hs explict export lists 2019-11-21 16:08:37 -04:00
Applicative.hs squelch tab warnings 2019-11-22 12:49:41 -04:00
Attoparsec.hs fix git ls-tree parser 2019-12-06 14:05:48 -04:00
AuthToken.hs turn of PackageImports in cabal file 2022-02-25 13:16:36 -04:00
Base64.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
Batch.hs add searchPathContents 2021-02-02 19:06:15 -04:00
Bloom.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
CoProcess.hs Revert "async exception safety for coprocesses" 2020-07-06 15:11:28 -04:00
CopyFile.hs use RawFilePath version of rename 2022-06-22 16:47:34 -04:00
Daemon.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
Data.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
DataUnits.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
DBus.hs explict export lists 2019-11-21 16:08:37 -04:00
Debug.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
DebugLocks.hs explict export lists 2019-11-21 16:08:37 -04:00
Directory.hs Windows: Support long filenames in more (possibly all) of the code 2023-03-01 15:55:58 -04:00
DirWatcher.hs explict export lists 2019-11-21 16:08:37 -04:00
DiskFree.hs removed the old Android app 2018-10-13 01:41:11 -04:00
Dot.hs explict export lists 2019-11-21 16:08:37 -04:00
DottedVersion.hs more RawFilePath conversion 2020-10-29 12:03:50 -04:00
Env.hs explict export lists 2019-11-21 16:08:37 -04:00
Exception.hs comment typo 2021-01-21 14:13:55 -04:00
FileMode.hs fix build warning on windows 2023-03-27 12:17:55 -04:00
FileSize.hs fix build warnings on windows 2023-03-21 18:41:23 -04:00
FileSystemEncoding.hs improve comments 2021-12-08 18:59:22 -04:00
Format.hs export encode_c' 2020-12-09 15:28:45 -04:00
FreeDesktop.hs
GitLFS.hs Revert "Removed the vendored git-lfs and the GitLfs build flag" 2023-01-04 17:33:29 -04:00
Glob.hs Typo: sansative -> sensitive 2023-03-17 15:14:50 -04:00
Gpg.hs avoid setEnv while testing gpg 2022-05-18 16:05:11 -04:00
Hash.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
HtmlDetect.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
HumanNumber.hs Fix a rounding bug in display of data sizes 2021-07-30 09:56:04 -04:00
HumanTime.hs avoid parseDuration succeeding on empty string 2020-12-08 12:51:56 -04:00
InodeCache.hs fix build warnings on windows 2023-03-21 18:41:23 -04:00
IPAddress.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
libkqueue.c
libkqueue.h
LinuxMkLibs.hs work around ldd crash on arm64 autobuilder 2023-01-28 14:26:01 -04:00
LockFile.hs
LockPool.hs
LogFile.hs avoid unix-compat's rename 2022-07-12 14:55:02 -04:00
Lsof.hs convert to withCreateProcess for async exception safety 2020-06-04 12:44:09 -04:00
MagicWormhole.hs fix breakage in wormhole's sendFile 2022-09-26 15:26:29 -04:00
Matcher.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
MD5.hs use filepath-bytestring for annex object manipulations 2019-12-11 15:25:07 -04:00
Metered.hs rename memoryUnits 2022-05-05 15:35:11 -04:00
Misc.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00
Monad.hs explict export lists 2019-11-21 16:08:37 -04:00
Mounts.hs removed the old Android app 2018-10-13 01:41:11 -04:00
MoveFile.hs fix build warnings on windows 2023-03-21 18:41:23 -04:00
Network.hs explict export lists 2019-11-21 16:08:37 -04:00
NotificationBroadcaster.hs
OptParse.hs explict export lists 2019-11-21 16:08:37 -04:00
OSX.hs explict export lists 2019-11-21 16:08:37 -04:00
PartialPrelude.hs explict export lists 2019-11-21 16:08:37 -04:00
Path.hs annex.maxextensionlength for view 2023-03-24 14:01:38 -04:00
Percentage.hs
PID.hs explict export lists 2019-11-21 16:08:37 -04:00
Process.hs When bup split fails, display its stderr 2022-08-05 13:57:20 -04:00
QuickCheck.hs Windows: Support long filenames in more (possibly all) of the code 2023-03-01 15:55:58 -04:00
RawFilePath.hs Windows: Support long filenames in more (possibly all) of the code 2023-03-01 15:55:58 -04:00
ResourcePool.hs use ResourcePool for hash-object handles 2022-07-25 17:32:39 -04:00
Rsync.hs Parse youtube-dl progress output 2020-09-29 17:53:48 -04:00
SafeCommand.hs add newtypes for QuickCheck to avoid LANG=C issues 2020-11-09 20:21:18 -04:00
Scheduled.hs Typo: recurrance -> recurrence 2023-03-17 15:14:54 -04:00
Shell.hs add searchPathContents 2021-02-02 19:06:15 -04:00
ShellEscape.hs add newtypes for QuickCheck to avoid LANG=C issues 2020-11-09 20:21:18 -04:00
SimpleProtocol.hs minor improvements 2020-12-09 15:28:11 -04:00
Split.hs reword comment 2019-11-27 16:38:18 -04:00
SshConfig.hs Windows: Support long filenames in more (possibly all) of the code 2023-03-01 15:55:58 -04:00
SshHost.hs avoid the dashed ssh hostname class of security holes 2017-08-17 22:11:31 -04:00
Su.hs fix build warning 2022-10-27 10:21:24 -04:00
SystemDirectory.hs small RawFilePath optimisation 2023-03-02 10:53:12 -04:00
Tense.hs explict export lists 2019-11-23 11:24:10 -04:00
ThreadLock.hs explict export lists 2019-11-23 11:24:10 -04:00
ThreadScheduler.hs avoid displaying the scanning annexed files message when repo is not large 2021-06-04 13:16:48 -04:00
TimeStamp.hs explict export lists 2019-11-23 11:24:10 -04:00
TList.hs further change to support dlist-1.0 2020-08-05 10:37:14 -04:00
Tmp.hs Windows: Support long filenames in more (possibly all) of the code 2023-03-01 15:55:58 -04:00
Tor.hs Windows: Support long filenames in more (possibly all) of the code 2023-03-01 15:55:58 -04:00
Touch.hs fix build on windows 2020-11-16 09:31:45 -04:00
Tuple.hs explict export lists 2019-11-23 11:24:10 -04:00
Url.hs Windows: Support urls like "file:///c:/path" 2023-03-27 13:38:02 -04:00
UserInfo.hs avoid unix-compat's rename 2022-07-12 14:55:02 -04:00
Verifiable.hs add newtypes for QuickCheck to avoid LANG=C issues 2020-11-09 20:21:18 -04:00
WebApp.hs turn of PackageImports in cabal file 2022-02-25 13:16:36 -04:00
Yesod.hs Apply codespell -w throughout 2023-03-17 15:14:58 -04:00