diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2019-10-06 21:37:42 +0200 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2019-10-06 21:37:42 +0200 |
| commit | 9f55cf9ad7e7a07bc422cd3e5dd41a8c8ca4c189 (patch) | |
| tree | 7c761894e74b295416c0aefaaf46bd2e6c7dafe3 /src/main.rs | |
| parent | b5fc5b305ab51ef5a0b893c92630581b6e68ed5a (diff) | |
Don't treat EOF in input as error
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 7 |
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 { |
