tReload on SIGHUP - surf - customized build of surf, the suckless webkit browser
 (HTM) git clone git://src.adamsgaard.dk/surf
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit c64c368d86a4319e43b7ff3d73a4afe0f4e8adf0
 (DIR) parent 4c41d363b761999a8af864b4e20218f0625d940f
 (HTM) Author: Charles Lehner <cel@celehner.com>
       Date:   Sat,  9 Jan 2016 14:18:53 -0500
       
       Reload on SIGHUP
       
       ratiueratuie rstiure tiurest aruite rautie rautier tiue rtaruit ratiuera
       This patch makes surf reload its pages when it receives a SIGHUP signal.
       This makes it easier for shell scripts to trigger surf to reload.
       
       I'm aware of using xdotool to trigger ctrl+r keypresses for reloading
       but I wasn't able to get that to work in a general way. [1]
       
       I'm sending this here in case surf maintainers and users would like to
       include this in core - if not I will submit it to the wiki.
       
       Regards,
       Charles
       
       t[1] http://surf.suckless.org/files/autorefresh
       
       Signed-off-by: Christoph Lohmann <20h@r-36.net>
       
       Diffstat:
         M surf.c                              |      14 ++++++++++++++
       
       1 file changed, 14 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/surf.c b/surf.c
       t@@ -145,6 +145,7 @@ static void usage(void);
        static void die(const char *errstr, ...);
        static void setup(void);
        static void sigchld(int unused);
       +static void sighup(int unused);
        static char *buildfile(const char *path);
        static char *buildpath(const char *path);
        static const char *getuserhomedir(const char *user);
       t@@ -266,6 +267,9 @@ setup(void)
        
                /* clean up any zombies immediately */
                sigchld(0);
       +        if (signal(SIGHUP, sighup) == SIG_ERR)
       +                die("Can't install SIGHUP handler");
       +
                gtk_init(NULL, NULL);
        
                gdpy = gdk_display_get_default();
       t@@ -331,6 +335,16 @@ sigchld(int unused)
                        ;
        }
        
       +void
       +sighup(int unused)
       +{
       +        Arg a = { .b = 0 };
       +        Client *c;
       +
       +        for (c = clients; c; c = c->next)
       +                reload(c, &a);
       +}
       +
        char *
        buildfile(const char *path)
        {