fish-shell/fish-rust
Mahmoud Al-Qudsi c71342b933 Add safe Rust wrapper around system curses library
This is not yet used but will take eventually take the place of all (n)curses
access. The curses C library does a lot of header file magic with macro voodoo
to make it easier to perform certain tasks (such as access or override string
capabilities) but this functionality isn't actually directly exposed by the
library's ABI.

The rust wrapper eschews all of that for a more straight-forward implementation,
directly wrapping only the basic curses library calls that are required to
perform the tasks we care about. This should let us avoid the subtle
cross-platform differences between the various curses implementations that
plagued the previous C++ implementation.

All functionality in this module that requires an initialized curses TERMINAL
pointer (`cur_term`, traditionally) has been subsumed by the `Term` instance,
which once initialized with `curses::setup()` can be obtained at any time with
`curses::Term()` (which returns an Option that evaluates to `None` if `cur_term`
hasn't yet been initialized).
2023-05-25 16:54:07 -05:00
..
src Add safe Rust wrapper around system curses library 2023-05-25 16:54:07 -05:00
widestring-suffix Initial Rust commit 2023-02-02 19:34:47 -07:00
build.rs Add rsconf build system and check for gettext symbols 2023-05-25 16:54:03 -05:00
Cargo.lock Add rsconf build system and check for gettext symbols 2023-05-25 16:54:03 -05:00
Cargo.toml Add rsconf build system and check for gettext symbols 2023-05-25 16:54:03 -05:00