From e4914c1d1eb703b7c3c5a27a777f42e211663298 Mon Sep 17 00:00:00 2001 From: Jonas Maier Date: Wed, 18 Mar 2026 13:34:21 +0100 Subject: multiline input --- src/main.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index bcad011..92ce812 100644 --- a/src/main.rs +++ b/src/main.rs @@ -341,15 +341,29 @@ fn event_loop() { // Enter b'\r' => { - let line = se.line.dump(); + let line = se.line.into_bytes(); + if !line.is_empty() { + let parsed = match parse::do_parse(&line) { + Ok(p) => p, + Err((crate::parse::ParseError::Eof, _)) => { + se.line.add(b'\n'); + print!("\r\n> "); + continue + }, + Err(e) => { + println!("{e:?}\n{}", se.prompt()); + continue; + } + }; print!("\r\n"); let entry = HistoryEntry::new(line.clone()); history::persist(&entry); se.history.push(entry); se.history_visit = 0; + se.line.dump(); drop(se); - run::run(session.clone(), line); + run::run(session.clone(), parsed); } } -- cgit v1.2.3