mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-04-21 00:31:15 -03:00
- Don't use `WString::from_str` for `str`s which are available at compile-time. Use `L!(input).to_owned()` instead. The reason for this is that `WString::from_str` can cause problems if the input contains PUA bytes which we use for our custom encoding scheme. In such cases, `bytes2wcstring` should be used, to avoid problems when decoding the `WString`. Removing harmless usages of `WString::from_str` allows us to focus on the potentially dangerous ones which don't convert `str`'s that are compiled into the binary. - Make `cstr2wcstring` actually take `CStr` as its input. The former version was only used in one place, and the conversion to `CStr` should happen there, where it can be checked that the conversion makes sense and is safe. The new version is used in `src/env/environmant.rs`, to avoid `to_bytes()` calls cluttering the code there. - Add `osstr2wcstring` function. This function also works for `Path`. Now, these types can be converted to widestrings with much less syntactic clutter.