aboutsummaryrefslogtreecommitdiffstats
path: root/src/cursor.rs
diff options
context:
space:
mode:
authorJonas Maier <>2026-05-24 19:25:45 +0200
committerJonas Maier <>2026-05-24 19:25:45 +0200
commit76ce59936d6d1c03ea291e6631db26339d310c19 (patch)
treeb0cbff9bf3fac0bb3b9ad9580f6e83bcc51b0056 /src/cursor.rs
parent01a198b8ad42680c9333039c75317d1787120c78 (diff)
downloadpish-76ce59936d6d1c03ea291e6631db26339d310c19.tar.gz
less broken multiline editing
Diffstat (limited to 'src/cursor.rs')
-rw-r--r--src/cursor.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/cursor.rs b/src/cursor.rs
index 959b15f..e6f99f1 100644
--- a/src/cursor.rs
+++ b/src/cursor.rs
@@ -27,12 +27,20 @@ pub fn move_cursor(direction: Direction, n: usize) {
fmove_cursor(direction, n, &mut std::io::stdout()).unwrap()
}
+pub fn f_save(stdout: &mut dyn Write) -> std::io::Result<()> {
+ stdout.write_all(b"\x1b[s")
+}
+
+pub fn f_restore(stdout: &mut dyn Write) -> std::io::Result<()> {
+ stdout.write_all(b"\x1b[u")
+}
+
pub fn save() {
- std::io::stdout().lock().write_all(b"\x1b[s").unwrap();
+ f_save(&mut std::io::stdout().lock()).unwrap();
}
pub fn restore() {
- std::io::stdout().lock().write_all(b"\x1b[u").unwrap();
+ f_restore(&mut std::io::stdout().lock()).unwrap();
}
/// Represents a cursor position