Add key to send a break to the serial line - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 1f087aa8b70fce67e7c43f689b5fb35667b5d84c
 (DIR) parent 473326f2e3115f4b745730be782b2eba63e0934c
 (HTM) 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:
         M config.def.h                        |       1 +
         M st.1                                |       3 +++
         M st.c                                |       9 +++++++++
       
       3 files changed, 13 insertions(+), 0 deletions(-)
       ---
 (DIR) 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} },
 (DIR) 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.
 (DIR) 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) {