mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-24 10:23:43 +08:00
05bad5eda1
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.
14 lines
721 B
Rust
14 lines
721 B
Rust
// Enumeration of all wildcard types.
|
|
|
|
use crate::common::{char_offset, WILDCARD_RESERVED_BASE};
|
|
|
|
/// Character representing any character except '/' (slash).
|
|
pub const ANY_CHAR: char = char_offset(WILDCARD_RESERVED_BASE, 0);
|
|
/// Character representing any character string not containing '/' (slash).
|
|
pub const ANY_STRING: char = char_offset(WILDCARD_RESERVED_BASE, 1);
|
|
/// Character representing any character string.
|
|
pub const ANY_STRING_RECURSIVE: char = char_offset(WILDCARD_RESERVED_BASE, 2);
|
|
/// This is a special pseudo-char that is not used other than to mark the
|
|
/// end of the the special characters so we can sanity check the enum range.
|
|
pub const ANY_SENTINEL: char = char_offset(WILDCARD_RESERVED_BASE, 3);
|