diff options
author | Roberto E. Vargas Caballero | 2015-09-08 12:10:11 +0200 |
---|---|---|
committer | Roberto E. Vargas Caballero | 2015-09-08 12:10:11 +0200 |
commit | 1f087aa8b70fce67e7c43f689b5fb35667b5d84c (patch) | |
tree | 26115eec179a2a29e31a21e81a1daea6b88207ac | |
parent | 473326f2e3115f4b745730be782b2eba63e0934c (diff) | |
download | st-1f087aa8b70fce67e7c43f689b5fb35667b5d84c.tar.gz st-1f087aa8b70fce67e7c43f689b5fb35667b5d84c.tar.xz st-1f087aa8b70fce67e7c43f689b5fb35667b5d84c.zip |
Add key to send a break to the serial line
-rw-r--r-- | config.def.h | 1 | ||||
-rw-r--r-- | st.1 | 3 | ||||
-rw-r--r-- | st.c | 9 |
3 files changed, 13 insertions, 0 deletions
diff --git a/config.def.h b/config.def.h index 11a0c02..7129fa1 100644 --- 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} }, @@ -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. @@ -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) { |