Native bindings to libreadline.
- thin wrappers around
readline
andadd_history
- write history line to file:
add_history_persist
- load history from file:
preload_history
- library version:
version
Add rl-sys
as a dependency in Cargo.toml
[dependencies]
rl-sys = "~0.5.2"
A simple implementation of cat
using rl_sys::readline
extern crate rl_sys;
use rl_sys::readline;
use rl_sys::history::listmgmt;
fn main() {
loop {
let input: String = match readline::readline("") {
Ok(Some(s)) => s,
Ok(None) => break, // user entered ctrl-d
Err(e) => {
println!("{}", e);
continue;
}
};
println!("{}", input);
// Enables up/down arrow scrolling through history
listmgmt::add(&input).unwrap();
}
}
Check out the more comprehensive shell
example in the examples directory.
To work on this crate, remember to git clone --recursive
or git submodule init && git submodule update
.
Distributed under the GNU General Public License.