Skip to content

Commit

Permalink
retry ci and some path explanation fixups
Browse files Browse the repository at this point in the history
  • Loading branch information
matu3ba committed Apr 24, 2024
1 parent dfb17f9 commit 86304da
Showing 1 changed file with 13 additions and 14 deletions.
27 changes: 13 additions & 14 deletions paths_are_complex.md
Original file line number Diff line number Diff line change
@@ -1,30 +1,29 @@
Windows
for now skipped
https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd
#### Windows
(for now skipped) based on https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd
* Windows API (with some exceptions discussed in the following paragraphs):
"D:\some 256-character path string<NUL>" (in total 260 characters)
* Windows 10, Version 1607, and later: removed MAX_PATH limitations
"D:\\some 256-character path string\<NUL\>" (in total 260 characters)
* Windows 10, Version 1607, and later: removed MAX\_PATH limitations
- as of now, Windows an opt-in is required to to enable it
* maximum path of 32,767 characters is approximate, because the "\\?\"
* maximum path of 32,767 characters is approximate, because the "\\\\?\\"
prefix may be expanded to a longer string by the system at run time,
and this expansion applies to the total length.
* Windows applications use the UTF-16 implementation of Unicode.
older character sets that are native to Windows Me/98/95: Code Pages
assume: for sanity use UTF-16 encoded characters
* Windows applications use the utf-16 implementation of Unicode.
older character sets that are native to Windows Me/98/95: Code Pages.
Assume for sanity utf-16 encoded characters.

Linux
https://lwn.net/Articles/649115/
#### Linux
Based on https://lwn.net/Articles/649115/.
Internally, Linux permits to use any byte sequence for file name,
except for null byte 0 and forward slash '/'
(which is used as directory separator).
https://unix.stackexchange.com/a/2092
See https://unix.stackexchange.com/a/2092.
It depends on how you mount the file system, just take a look at mount
options for different file systems in man mount. For example iso9660,
vfat and fat have iocharset and utf8 options.
On top of that the user can overwrite localization settings
https://unix.stackexchange.com/a/87763 ie to encode filenames in
different ways
assume: for sanity use utf8 encoded characters
different ways.
Assume for sanity utf8 encoded characters.

NOTE: Only the Kernel information about filepaths are reliable,
since the path representation is depending on the user-overridable locale.

0 comments on commit 86304da

Please sign in to comment.