aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto E. Vargas Caballero <k0ga@shike2.com>2015-09-08 12:10:11 +0200
committerRoberto E. Vargas Caballero <k0ga@shike2.com>2015-09-08 12:10:11 +0200
commit1f087aa8b70fce67e7c43f689b5fb35667b5d84c (patch)
tree26115eec179a2a29e31a21e81a1daea6b88207ac
parent473326f2e3115f4b745730be782b2eba63e0934c (diff)
downloadst-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.h1
-rw-r--r--st.13
-rw-r--r--st.c9
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
135static Shortcut shortcuts[] = { 135static 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} },
diff --git a/st.1 b/st.1
index 29e3163..f2f3f0e 100644
--- a/st.1
+++ b/st.1
@@ -122,6 +122,9 @@ and all the remaining arguments are used as a command
122even without it. 122even without it.
123.SH SHORTCUTS 123.SH SHORTCUTS
124.TP 124.TP
125.B Pause
126Send a break in the serial line
127.TP
125.B Ctrl-Print Screen 128.B Ctrl-Print Screen
126Toggle if st should print to the 129Toggle if st should print to the
127.I iofile. 130.I iofile.
diff --git a/st.c b/st.c
index 256f8f5..7804316 100644
--- a/st.c
+++ b/st.c
@@ -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 *);
333static void printsel(const Arg *); 334static void printsel(const Arg *);
334static void printscreen(const Arg *) ; 335static void printscreen(const Arg *) ;
335static void toggleprinter(const Arg *); 336static void toggleprinter(const Arg *);
337static 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
2581void 2583void
2584sendbreak(const Arg *arg)
2585{
2586 if (tcsendbreak(cmdfd, 0))
2587 perror("Error sending break");
2588}
2589
2590void
2582tprinter(char *s, size_t len) 2591tprinter(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) {