aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2019-10-06 21:37:42 +0200
committerReiner Herrmann <reiner@reiner-h.de>2019-10-06 21:37:42 +0200
commit9f55cf9ad7e7a07bc422cd3e5dd41a8c8ca4c189 (patch)
tree7c761894e74b295416c0aefaaf46bd2e6c7dafe3
parentb5fc5b305ab51ef5a0b893c92630581b6e68ed5a (diff)
Don't treat EOF in input as error
-rw-r--r--src/main.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index 396c1d2..66319b1 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -50,8 +50,11 @@ impl Program {
},
Command::GETC => {
let mut char_in = [0];
- input.read_exact(&mut char_in).or(Err("Reading the input failed"))?;
- memory.insert(pos, char_in[0]);
+ match input.read_exact(&mut char_in) {
+ Ok(_) => memory.insert(pos, char_in[0]),
+ Err(ref err) if err.kind() == io::ErrorKind::UnexpectedEof => None /* do nothing */,
+ Err(_) => return Err("Reading from input failed".to_string()),
+ };
},
Command::LOOPSTART { end } => {
if *memory.get(&pos).unwrap_or(&0) == 0 {