# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    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:
    Mconfig.def.h | 1+
    Mst.1 | 3+++
    Mst.c | 9+++++++++

    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) {