Add LF/NL mode.
This commit is contained in:
parent
e3f89052e5
commit
b513e4ba93
@ -210,6 +210,11 @@ struct guac_terminal {
|
|||||||
*/
|
*/
|
||||||
bool application_cursor_keys;
|
bool application_cursor_keys;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Whether a CR should automatically follow a LF, VT, or FF.
|
||||||
|
*/
|
||||||
|
bool automatic_carriage_return;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -96,6 +96,7 @@ guac_terminal* guac_terminal_create(guac_client* client,
|
|||||||
|
|
||||||
term->text_selected = false;
|
term->text_selected = false;
|
||||||
term->application_cursor_keys = false;
|
term->application_cursor_keys = false;
|
||||||
|
term->automatic_carriage_return = false;
|
||||||
|
|
||||||
/* Open STDOUT pipe */
|
/* Open STDOUT pipe */
|
||||||
if (pipe(term->stdout_pipe_fd)) {
|
if (pipe(term->stdout_pipe_fd)) {
|
||||||
|
@ -98,11 +98,6 @@ int guac_terminal_echo(guac_terminal* term, char c) {
|
|||||||
term->cursor_col--;
|
term->cursor_col--;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Carriage return */
|
|
||||||
case '\r':
|
|
||||||
term->cursor_col = 0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* Line feed / VT / FF */
|
/* Line feed / VT / FF */
|
||||||
case '\n':
|
case '\n':
|
||||||
case 0x0B: /* VT */
|
case 0x0B: /* VT */
|
||||||
@ -118,6 +113,14 @@ int guac_terminal_echo(guac_terminal* term, char c) {
|
|||||||
term->scroll_end, 1);
|
term->scroll_end, 1);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If automatic carriage return, fall through to CR handler */
|
||||||
|
if (!term->automatic_carriage_return)
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* Carriage return */
|
||||||
|
case '\r':
|
||||||
|
term->cursor_col = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* ESC */
|
/* ESC */
|
||||||
@ -333,6 +336,12 @@ static bool* __guac_terminal_get_flag(guac_terminal* term, int num, char private
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if (private_mode == 0) {
|
||||||
|
switch (num) {
|
||||||
|
case 20: return &(term->automatic_carriage_return); /* LF/NL */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Unknown flag */
|
/* Unknown flag */
|
||||||
return NULL;
|
return NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user