Add handlers for C1 codes with a description what they are supposed to do. They
are not yet implemented and are no-ops.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This is now a fully vt500-series compliant state machine that parses escape
sequences. See vt100.net/emu for information on this state-machine. This is
written from scratch, though.
It now handles all kind of escape sequences that we every want to support. It
correctly ignores all unsupported ones right now.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Print the CSI command in debug messages so we can better understand what
escape commands were sent.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Add new helper to console subsystem which performs a backspace
operation. We must take care of auto-wrap mode so we cannot simply use
the *_move_left() function.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
The A, B, C and D CSIs are used to move the cursor in the scroll-region
without scrolling the buffer when reaching the margins.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This adds support for line-feed and carriage-return controls. The two
special line-feed controls which are not \n do not take care NL-mode so
they must be handled separately.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
The new parser reads CSI parameters correctly and saves them in an array
for later evaluation. We currently do not handle the CSI commands. This
needs to be added now.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This adds a parser for basic control codes but does not implement their
functionality, yet. Only the newline handler is kept.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
We should first check whether we recognize the XK_* identifier before we
rely on the converted UCS4 character.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
The system keys are mapped to their ASCII equivalents. We do not support
CR/NL mode nor scroll-lock yet (is this supported by any term?).
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This adds a converter from UTF8 stream to UCS4 data so the VTE subsystem
can handle the input correctly without complicated UTF8 input.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Make the vte subsystem handle the keyboard input instead of doing this
inside of test_terminal.
The handling is just a stub function. No actual keys are parsed yet.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
vte: This adds a dummy VTE subsystem. It will be used to emulate a vt100
terminal based on our console subsystem.
terminal: This ties together several subsystems including the output-, the
console- and the vte-subsystem.
The test_terminal test application can be used to test the terminal. It is
supposed to provide a full vt100 implementation which is displayed on all
available screens.
Most of the functionality here is not implemented yet and only a dummy function.
These will be added in later commits.
Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>