fish-shell/fish-rust
Johannes Altmanninger 05bad5eda1 Port common.{h,cpp} to Rust
Most of it is duplicated, hence untested.

Functions like mbrtowc are not exposed by the libc crate, so declare them
ourselves.
Since we don't know the definition of C macros, add two big hacks to make
this work:
1. Replace MB_LEN_MAX and mbstate_t with values (resp types) that should
   be large enough for any implementation.
2. Detect the definition of MB_CUR_MAX in the build script. This requires
   more changes for each new libc. We could also use this approach for 1.

Additionally, this commit brings a small behavior change to
read_unquoted_escape(): we cannot decode surrogate code points like \UDE01
into a Rust char, so use � (\UFFFD, replacement character) instead.
Previously, we added such code points to a wcstring; looks like they were
ignored when printed.
2023-04-02 15:17:06 +02:00
..
src Port common.{h,cpp} to Rust 2023-04-02 15:17:06 +02:00
widestring-suffix Initial Rust commit 2023-02-02 19:34:47 -07:00
build.rs Port common.{h,cpp} to Rust 2023-04-02 15:17:06 +02:00
Cargo.lock Port common.{h,cpp} to Rust 2023-04-02 15:17:06 +02:00
Cargo.toml Port common.{h,cpp} to Rust 2023-04-02 15:17:06 +02:00