Closed
Description
The new Path module (coming soon) represents POSIX paths as vectors (#7225) of non-NUL bytes instead of as ~str
. This is because Linux allows for non-unicode paths.
Unfortunately, there are a lot of clients of Path
, including related functionality like Process
arguments and environment variables, that still use &str
. These need to be updated to handle &[u8]
so they can represent non-unicode Path
s.
All of the known locations where this is an issue are marked up by // FIXME
lines referencing this issue. Note that in the case of Process
args and environments, these comments are at the usage locations rather than the implementation.
Sub-tasks that have been filed for various components:
- glob("*") does not support matching non-utf8 filenames #11916
glob("*")
does not support matching non-utf8 filenames - Process::new and dynamic_library::open_external should take &[u8]s, not Paths or ~strs #11650
Process::new
anddynamic_library::open_external
should take&[u8]
s, notPath
s or~strs