]> git.armaanb.net Git - dwmblocks.git/commitdiff
Merge pull request #8 from markcaudill/master
authortorrinfail <torrinfail@gmail.com>
Thu, 11 Jun 2020 07:13:49 +0000 (01:13 -0600)
committerGitHub <noreply@github.com>
Thu, 11 Jun 2020 07:13:49 +0000 (01:13 -0600)
This merge adds fix for issue #5 which @markcaudill fixed by having all real-time signals handled by a dummy handler if it doesn't have a refresh signal .

1  2 
dwmblocks.c

diff --combined dwmblocks.c
index 2f3b774664cfca6eac7e016b946b1eed3088f9cf,7d4616d1d2506f3388091e6adaa6ede473218b8f..8668f042d77bea8510570564fe82f78de5bc5463
@@@ -13,7 -13,9 +13,8 @@@ typedef struct 
        unsigned int interval;
        unsigned int signal;
  } Block;
+ void dummysighandler(int num);
  void sighandler(int num);
 -void replace(char *str, char old, char new);
  void getcmds(int time);
  #ifndef __OpenBSD__
  void getsigcmds(int signal);
@@@ -36,6 -38,14 +37,6 @@@ static char statusstr[2][256]
  static int statusContinue = 1;
  static void (*writestatus) () = setroot;
  
 -void replace(char *str, char old, char new)
 -{
 -      int N = strlen(str);
 -      for(int i = 0; i < N; i++)
 -              if(str[i] == old)
 -                      str[i] = new;
 -}
 -
  //opens process *cmd and stores output in *output
  void getcmd(const Block *block, char *output)
  {
@@@ -58,7 -68,7 +59,7 @@@ void getcmds(int time
  {
        const Block* current;
        for(int i = 0; i < LENGTH(blocks); i++)
-       {       
+       {
                current = blocks + i;
                if ((current->interval != 0 && time % current->interval == 0) || time == -1)
                        getcmd(current,statusbar[i]);
@@@ -79,8 -89,12 +80,12 @@@ void getsigcmds(int signal
  
  void setupsignals()
  {
+     /* initialize all real time signals with dummy handler */
+     for(int i = SIGRTMIN; i <= SIGRTMAX; i++)
+         signal(i, dummysighandler);
        for(int i = 0; i < LENGTH(blocks); i++)
-       {         
+       {
                if (blocks[i].signal > 0)
                        signal(SIGRTMIN+blocks[i].signal, sighandler);
        }
@@@ -137,6 -151,14 +142,14 @@@ void statusloop(
        }
  }
  
+ #ifndef __OpenBSD__
+ /* this signal handler should do nothing */
+ void dummysighandler(int signum)
+ {
+     return;
+ }
+ #endif
  #ifndef __OpenBSD__
  void sighandler(int signum)
  {
@@@ -154,7 -176,7 +167,7 @@@ void termhandler(int signum
  int main(int argc, char** argv)
  {
        for(int i = 0; i < argc; i++)
-       {       
+       {
                if (!strcmp("-d",argv[i]))
                        delim = argv[++i][0];
                else if(!strcmp("-p",argv[i]))