Add key to send a break to the serial line - st - Personal fork of st (HTM) git clone git://git.drkhsh.at/st.git (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit 1f087aa8b70fce67e7c43f689b5fb35667b5d84c (DIR) parent 473326f2e3115f4b745730be782b2eba63e0934c (HTM) Author: Roberto E. Vargas Caballero <k0ga@shike2.com> Date: Tue, 8 Sep 2015 12:10:11 +0200 Add key to send a break to the serial line Diffstat: M config.def.h | 1 + M st.1 | 3 +++ M st.c | 9 +++++++++ 3 files changed, 13 insertions(+), 0 deletions(-) --- (DIR) diff --git a/config.def.h b/config.def.h @@ -134,6 +134,7 @@ static Mousekey mshortcuts[] = { static Shortcut shortcuts[] = { /* mask keysym function argument */ + { XK_NO_MOD, XK_Pause, sendbreak, {.i = 0} }, { ControlMask, XK_Print, toggleprinter, {.i = 0} }, { ShiftMask, XK_Print, printscreen, {.i = 0} }, { XK_ANY_MOD, XK_Print, printsel, {.i = 0} }, (DIR) diff --git a/st.1 b/st.1 @@ -122,6 +122,9 @@ and all the remaining arguments are used as a command even without it. .SH SHORTCUTS .TP +.B Pause +Send a break in the serial line +.TP .B Ctrl-Print Screen Toggle if st should print to the .I iofile. (DIR) diff --git a/st.c b/st.c @@ -17,6 +17,7 @@ #include <sys/time.h> #include <sys/types.h> #include <sys/wait.h> +#include <termios.h> #include <time.h> #include <unistd.h> #include <libgen.h> @@ -333,6 +334,7 @@ static void xzoomreset(const Arg *); static void printsel(const Arg *); static void printscreen(const Arg *) ; static void toggleprinter(const Arg *); +static void sendbreak(const Arg *); /* Config.h for applying patches and the configuration. */ #include "config.h" @@ -2579,6 +2581,13 @@ strreset(void) } void +sendbreak(const Arg *arg) +{ + if (tcsendbreak(cmdfd, 0)) + perror("Error sending break"); +} + +void tprinter(char *s, size_t len) { if (iofd != -1 && xwrite(iofd, s, len) < 0) {