diff options
author | Roberto E. Vargas Caballero <k0ga@shike2.com> | 2015-09-08 12:10:11 +0200 |
---|---|---|
committer | Roberto E. Vargas Caballero <k0ga@shike2.com> | 2015-09-08 12:10:11 +0200 |
commit | 1f087aa8b70fce67e7c43f689b5fb35667b5d84c (patch) | |
tree | 26115eec179a2a29e31a21e81a1daea6b88207ac | |
parent | 473326f2e3115f4b745730be782b2eba63e0934c (diff) | |
download | st-patched-1f087aa8b70fce67e7c43f689b5fb35667b5d84c.tar.bz2 st-patched-1f087aa8b70fce67e7c43f689b5fb35667b5d84c.tar.xz st-patched-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[] = { | |||
134 | 134 | ||
135 | static Shortcut shortcuts[] = { | 135 | static Shortcut shortcuts[] = { |
136 | /* mask keysym function argument */ | 136 | /* mask keysym function argument */ |
137 | { XK_NO_MOD, XK_Pause, sendbreak, {.i = 0} }, | ||
137 | { ControlMask, XK_Print, toggleprinter, {.i = 0} }, | 138 | { ControlMask, XK_Print, toggleprinter, {.i = 0} }, |
138 | { ShiftMask, XK_Print, printscreen, {.i = 0} }, | 139 | { ShiftMask, XK_Print, printscreen, {.i = 0} }, |
139 | { XK_ANY_MOD, XK_Print, printsel, {.i = 0} }, | 140 | { XK_ANY_MOD, XK_Print, printsel, {.i = 0} }, |
@@ -122,6 +122,9 @@ and all the remaining arguments are used as a command | |||
122 | even without it. | 122 | even without it. |
123 | .SH SHORTCUTS | 123 | .SH SHORTCUTS |
124 | .TP | 124 | .TP |
125 | .B Pause | ||
126 | Send a break in the serial line | ||
127 | .TP | ||
125 | .B Ctrl-Print Screen | 128 | .B Ctrl-Print Screen |
126 | Toggle if st should print to the | 129 | Toggle if st should print to the |
127 | .I iofile. | 130 | .I iofile. |
@@ -17,6 +17,7 @@ | |||
17 | #include <sys/time.h> | 17 | #include <sys/time.h> |
18 | #include <sys/types.h> | 18 | #include <sys/types.h> |
19 | #include <sys/wait.h> | 19 | #include <sys/wait.h> |
20 | #include <termios.h> | ||
20 | #include <time.h> | 21 | #include <time.h> |
21 | #include <unistd.h> | 22 | #include <unistd.h> |
22 | #include <libgen.h> | 23 | #include <libgen.h> |
@@ -333,6 +334,7 @@ static void xzoomreset(const Arg *); | |||
333 | static void printsel(const Arg *); | 334 | static void printsel(const Arg *); |
334 | static void printscreen(const Arg *) ; | 335 | static void printscreen(const Arg *) ; |
335 | static void toggleprinter(const Arg *); | 336 | static void toggleprinter(const Arg *); |
337 | static void sendbreak(const Arg *); | ||
336 | 338 | ||
337 | /* Config.h for applying patches and the configuration. */ | 339 | /* Config.h for applying patches and the configuration. */ |
338 | #include "config.h" | 340 | #include "config.h" |
@@ -2579,6 +2581,13 @@ strreset(void) | |||
2579 | } | 2581 | } |
2580 | 2582 | ||
2581 | void | 2583 | void |
2584 | sendbreak(const Arg *arg) | ||
2585 | { | ||
2586 | if (tcsendbreak(cmdfd, 0)) | ||
2587 | perror("Error sending break"); | ||
2588 | } | ||
2589 | |||
2590 | void | ||
2582 | tprinter(char *s, size_t len) | 2591 | tprinter(char *s, size_t len) |
2583 | { | 2592 | { |
2584 | if (iofd != -1 && xwrite(iofd, s, len) < 0) { | 2593 | if (iofd != -1 && xwrite(iofd, s, len) < 0) { |