commit 1f087aa8b70fce67e7c43f689b5fb35667b5d84c
parent 473326f2e3115f4b745730be782b2eba63e0934c
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:
3 files changed, 13 insertions(+), 0 deletions(-)
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} },
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.
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) {