我正在用 Rust 创建一个终端文本编辑器。编辑器将终端置于原始模式,禁用字符回显等,然后退出时恢复原始终端功能。
但是,编辑器有一些错误,并且由于无符号变量下溢等问题时不时会意外崩溃。发生这种情况时,将终端恢复到其原始状态的清理代码永远不会运行。
我想运行的清理功能如下:
fn restore_orig_mode(editor_config: &EditorConfig) -> io::Result<()> {
termios::tcsetattr(STDIN, termios::TCSAFLUSH, &editor_config.orig_termios)
}
Run Code Online (Sandbox Code Playgroud)