(&mut self, c: u8)
| 720 | } |
| 721 | |
| 722 | fn queue_input_char(&mut self, c: u8) -> Result<()> { |
| 723 | if !self.termios.local_modes.contains(LocalMode::ICANON) { |
| 724 | if self.input_buffer.len() < self.input_buffer.capacity() - 2 { |
| 725 | self.input_buffer.push(c); |
| 726 | } |
| 727 | return Ok(()); |
| 728 | } |
| 729 | |
| 730 | assert_ne!(c, 0); |
| 731 | |
| 732 | if self.is_line_end(c) { |
| 733 | self.input_buffer.try_push(c).map_err(|_| err!(Again))?; |
| 734 | self.slave_read_counter.inc(); |
| 735 | return Ok(()); |
| 736 | } else if c == self.termios.special_characters.erase { |
| 737 | todo!() |
| 738 | } else if c == self.termios.special_characters.intr { |
| 739 | todo!() |
| 740 | } else if c == self.termios.special_characters.kill { |
| 741 | todo!() |
| 742 | } else if c == self.termios.special_characters.lnext { |
| 743 | todo!() |
| 744 | } else if c == self.termios.special_characters.quit { |
| 745 | todo!() |
| 746 | } else if c == self.termios.special_characters.reprint { |
| 747 | todo!() |
| 748 | } else if c == self.termios.special_characters.start { |
| 749 | todo!() |
| 750 | } else if c == self.termios.special_characters.stop { |
| 751 | todo!() |
| 752 | } else if c == self.termios.special_characters.susp { |
| 753 | todo!() |
| 754 | } else if c == self.termios.special_characters.werase { |
| 755 | todo!() |
| 756 | } else if self.input_buffer.len() < self.input_buffer.capacity() - 2 { |
| 757 | self.input_buffer.push(c); |
| 758 | } |
| 759 | |
| 760 | Ok(()) |
| 761 | } |
| 762 | |
| 763 | fn is_line_end(&self, c: u8) -> bool { |
| 764 | c == b'\n' |
no test coverage detected