git-annex/Utility
Joey Hess fa62c98910
simplify and speed up Utility.FileSystemEncoding
This eliminates the distinction between decodeBS and decodeBS', encodeBS
and encodeBS', etc. The old implementation truncated at NUL, and the
primed versions had to do extra work to avoid that problem. The new
implementation does not truncate at NUL, and is also a lot faster.
(Benchmarked at 2x faster for decodeBS and 3x for encodeBS; more for the
primed versions.)

Note that filepath-bytestring 1.4.2.1.8 contains the same optimisation,
and upgrading to it will speed up to/fromRawFilePath.

AFAIK, nothing relied on the old behavior of truncating at NUL. Some
code used the faster versions in places where I was sure there would not
be a NUL. So this change is unlikely to break anything.

Also, moved s2w8 and w82s out of the module, as they do not involve
filesystem encoding really.

Sponsored-by: Shae Erisson on Patreon
2021-08-11 12:13:31 -04:00
..
Directory remove unused imports 2020-11-02 15:36:11 -04:00
DirWatcher fix build on openbsd 2021-02-01 11:53:31 -04:00
Env fix a annex.pidlock issue 2020-06-17 15:30:59 -04:00
LockFile Windows: Work around win32 length limits when dealing with lock files 2021-01-13 14:38:35 -04:00
LockPool more RawFilePath conversion 2020-10-29 10:50:29 -04:00
Path fileRef: make paths relative and simplified 2021-05-07 13:25:59 -04:00
Process fix missing new lines in processTranscript 2021-08-02 13:42:27 -04:00
Scheduled
Tmp
Aeson.hs
Android.hs
Applicative.hs
Attoparsec.hs
AuthToken.hs
Base64.hs add newtypes for QuickCheck to avoid LANG=C issues 2020-11-09 20:21:18 -04:00
Batch.hs add searchPathContents 2021-02-02 19:06:15 -04:00
Bloom.hs
CoProcess.hs Revert "async exception safety for coprocesses" 2020-07-06 15:11:28 -04:00
CopyFile.hs convert to withCreateProcess for async exception safety 2020-06-04 15:45:52 -04:00
Daemon.hs set cwd rarher than changing current process directory 2021-05-12 17:44:22 -04:00
Data.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
DataUnits.hs
DBus.hs
Debug.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
DebugLocks.hs
Directory.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
DirWatcher.hs
DiskFree.hs
Dot.hs
DottedVersion.hs more RawFilePath conversion 2020-10-29 12:03:50 -04:00
Env.hs
Exception.hs comment typo 2021-01-21 14:13:55 -04:00
FileMode.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
FileSize.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
FileSystemEncoding.hs simplify and speed up Utility.FileSystemEncoding 2021-08-11 12:13:31 -04:00
Format.hs export encode_c' 2020-12-09 15:28:45 -04:00
FreeDesktop.hs
GitLFS.hs Build with the git-lfs library when available 2020-06-22 11:21:25 -04:00
Glob.hs Windows: include= and exclude= containing '/' will also match filenames that are written using '\' 2020-12-15 12:39:34 -04:00
Gpg.hs add searchPathContents 2021-02-02 19:06:15 -04:00
Hash.hs add incremental hashing interface to Backend 2021-02-09 15:00:51 -04:00
HtmlDetect.hs addurl: Avoid crashing when used on beegfs. 2021-07-05 13:02:40 -04:00
HttpManagerRestricted.hs Build with the http-client-restricted library when available 2020-06-22 11:31:31 -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 omit inode from ContentIdentifier for directory special remote 2021-01-19 13:15:07 -04:00
IPAddress.hs annex.security.allowed-ip-addresses ports syntax 2020-02-25 15:45:52 -04:00
libkqueue.c
libkqueue.h
LinuxMkLibs.hs more RawFilePath conversion 2020-10-29 10:50:29 -04:00
LockFile.hs
LockPool.hs
LogFile.hs
Lsof.hs convert to withCreateProcess for async exception safety 2020-06-04 12:44:09 -04:00
MagicWormhole.hs add searchPathContents 2021-02-02 19:06:15 -04:00
Matcher.hs fix handling of implicit and before parens 2021-01-28 13:51:07 -04:00
MD5.hs use filepath-bytestring for annex object manipulations 2019-12-11 15:25:07 -04:00
Metered.hs display scanning message whenever reconcileStaged has enough files to chew on 2021-06-08 12:48:30 -04:00
Misc.hs ByteString Ref continued 2020-04-07 11:54:27 -04:00
Monad.hs
Mounts.hs
MoveFile.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
Network.hs
NotificationBroadcaster.hs
OptParse.hs
OSX.hs
PartialPrelude.hs
Path.hs support fuzzy matching of addon commands 2021-02-02 19:37:09 -04:00
Percentage.hs
PID.hs
Process.hs switch from hslogger to purpose-built Utility.Debug 2021-04-05 13:40:31 -04:00
QuickCheck.hs fix build warning 2021-01-13 14:48:41 -04:00
RawFilePath.hs squash build warnings on windows 2020-11-23 14:00:17 -04:00
ResourcePool.hs check-attr resource pool 2020-04-21 11:05:57 -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
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
SshConfig.hs more RawFilePath conversion 2020-11-05 18:45:37 -04:00
SshHost.hs
Su.hs add searchPathContents 2021-02-02 19:06:15 -04:00
SystemDirectory.hs
Tense.hs
ThreadLock.hs
ThreadScheduler.hs avoid displaying the scanning annexed files message when repo is not large 2021-06-04 13:16:48 -04:00
TimeStamp.hs
TList.hs further change to support dlist-1.0 2020-08-05 10:37:14 -04:00
Tmp.hs finish fixing removeLink on windows 2020-11-24 13:20:44 -04:00
Tor.hs add searchPathContents 2021-02-02 19:06:15 -04:00
Touch.hs fix build on windows 2020-11-16 09:31:45 -04:00
Tuple.hs
Url.hs add pointer to annex.security.allowed-url-schemes 2021-07-02 10:53:45 -04:00
UserInfo.hs
Verifiable.hs add newtypes for QuickCheck to avoid LANG=C issues 2020-11-09 20:21:18 -04:00
WebApp.hs squash remaining build warnings on windows 2020-11-24 12:35:09 -04:00
Yesod.hs