pull/111/merge
Ondřej Hruška 7 years ago
parent e22ae1e66a
commit af47249492
  1. 3
      user/ansi_parser_callbacks.c
  2. 14
      user/screen.c
  3. 2
      user/screen.h

@ -261,6 +261,9 @@ apars_handle_CSI(char leadchar, int *params, int count, char keychar)
if (n == 4) {
screen_set_insert_mode(yn);
}
else if (n == 20) {
screen_set_newline_mode(yn);
}
else {
// ansi_warn("NOIMPL flag %d", n);
}

@ -39,6 +39,8 @@ static struct {
bool numpad_alt_mode; //!< Application Mode - affects how user input of control keys is sent
bool cursors_alt_mode; //!< Application mode for cursor keys
bool newline_mode;
char charset0;
char charset1;
} scr;
@ -194,6 +196,7 @@ screen_reset(void)
scr.numpad_alt_mode = false;
scr.cursors_alt_mode = false;
scr.newline_mode = false;
scr.charset0 = 'B';
scr.charset1 = '0';
@ -701,6 +704,13 @@ screen_set_cursors_alt_mode(bool alt_mode)
scr.cursors_alt_mode = alt_mode;
NOTIFY_DONE();
}
void ICACHE_FLASH_ATTR
screen_set_newline_mode(bool nlm)
{
scr.newline_mode = nlm;
}
//endregion
//region --- Printing ---
@ -720,6 +730,10 @@ screen_putchar(const char *ch)
switch (ch[0]) {
case '\r':
screen_cursor_set_x(0);
if (scr.newline_mode) {
// like LF
screen_cursor_move(1, 0, true);
}
goto done;
case '\n':

@ -167,6 +167,8 @@ void screen_cursor_restore(bool withAttrs);
void screen_cursor_visible(bool visible);
/** Enable auto wrap */
void screen_wrap_enable(bool enable);
/** Enable CR auto */
void screen_set_newline_mode(bool nlm);
// --- Colors ---

Loading…
Cancel
Save