| tAdd key to send a break to the serial line - st - [fork] customized build of s… | |
| git clone git://src.adamsgaard.dk/st | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit 1f087aa8b70fce67e7c43f689b5fb35667b5d84c | |
| parent 473326f2e3115f4b745730be782b2eba63e0934c | |
| Author: Roberto E. Vargas Caballero <[email protected]> | |
| 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(-) | |
| --- | |
| diff --git a/config.def.h b/config.def.h | |
| t@@ -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} }, | |
| diff --git a/st.1 b/st.1 | |
| t@@ -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. | |
| diff --git a/st.c b/st.c | |
| t@@ -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> | |
| t@@ -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" | |
| t@@ -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) { |