commit - f80a5ceaf03e13c98e13cc9091cb44c854f8e7ef
commit + 0386ec3071e4e205bd9cfb7730d7bdc27f0f0637
blob - 489a70b8b32e25fe9908b0b052709cc59c8d923e
blob + 40316dcbe9d1831f6f7fed1bcef42d972c6d806b
--- modules/clock.c
+++ modules/clock.c
#include "statbar.h"
static volatile sig_atomic_t should_quit = 0;
+static volatile sig_atomic_t renormalize = 0;
static void
get_clock(char *clock_string)
signal_handler(int sig)
{
if (sig == SIGTERM || sig == SIGINT) should_quit = 1;
+ if (sig == SIGUSR1) renormalize = 1;
}
pid_t
(void)signal(SIGTERM, signal_handler);
(void)signal(SIGINT, signal_handler);
+ (void)signal(SIGUSR1, signal_handler);
if (pledge("stdio", NULL) == -1)
{
while (!should_quit)
{
+ if (renormalize)
+ {
+ normalize_clock_interval(&interval);
+ renormalize = 0;
+ }
get_clock(clock_string);
(void)dprintf(clock_pipe[1], "%s", clock_string);
blob - 1c476b749e34fa40cc14b6ce98c928709ddd30dc
blob + 2ff440e2976c78a1329a3bd7ee7accf034a7dbd6
--- src/main.c
+++ src/main.c
#define NFDS 6
static volatile sig_atomic_t should_quit = 0;
+static int renormalize_clock = 0;
static int reload_mail = 0;
static int reload_battery = 0;
(void)printf("Got command 0x%02x: ", cmd);
switch (cmd)
{
+ case 0x02:
+ (void)puts("renormalizing clock interval");
+ renormalize_clock = 1;
+ break;
case 0x03:
(void)puts("reloading mail");
reload_mail = 1;
dirty = true;
}
+ if (renormalize_clock)
+ {
+ renormalize_clock = 0;
+ (void)kill(clock_pid, SIGUSR1);
+ }
+
/* Mail */
if (reload_mail)
{
blob - 3fc672918f869da97a24e6eabb090b7717276205
blob + f64ff47fe646de6cf7a6045074b6148182c3b1bb
--- statbarctl.sh
+++ statbarctl.sh
fi
case "$1" in
+ renormalize-clock) CMDBYTE="\x02" ;;
reload-mail) CMDBYTE="\x03" ;;
reload-battery) CMDBYTE="\x04" ;;
help)