X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/aef05b788c268d43559a0183d1efe9c458724b94..7bfc5fd0ba781cf9ae34393dc4765e4506ee3157:/unix/uxser.c diff --git a/unix/uxser.c b/unix/uxser.c index 85e96189..db98dd87 100644 --- a/unix/uxser.c +++ b/unix/uxser.c @@ -2,12 +2,6 @@ * Serial back end (Unix-specific). */ -/* - * TODO: - * - * - send break. - */ - #include #include #include @@ -260,6 +254,11 @@ static const char *serial_init(void *frontend_handle, void **backend_handle, serial_uxsel_setup(serial); + /* + * Specials are always available. + */ + update_specials_menu(serial->frontend); + return NULL; } @@ -418,9 +417,13 @@ static void serial_size(void *handle, int width, int height) */ static void serial_special(void *handle, Telnet_Special code) { - /* - * FIXME: serial break? XON? XOFF? - */ + Serial serial = (Serial) handle; + + if (serial->fd >= 0 && code == TS_BRK) { + tcsendbreak(serial->fd, 0); + logevent(serial->frontend, "Sending serial break at user request"); + } + return; } @@ -430,10 +433,11 @@ static void serial_special(void *handle, Telnet_Special code) */ static const struct telnet_special *serial_get_specials(void *handle) { - /* - * FIXME: serial break? XON? XOFF? - */ - return NULL; + static const struct telnet_special specials[] = { + {"Break", TS_BRK}, + {NULL, TS_EXITMENU} + }; + return specials; } static int serial_connected(void *handle)