]> granicus.if.org Git - graphviz/commitdiff
sfio: use 'SIG_IGN' instead of custom ignoring signal handler
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 20 Apr 2022 04:29:15 +0000 (21:29 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 24 Apr 2022 01:15:24 +0000 (18:15 -0700)
This is a simpler, more efficient, and more concise way of achieving the same
thing that has existed since at least C89.

Gitlab: #1998

lib/sfio/sfmode.c

index cfd3de214f096f82501ef06e57e623fb923d51b1..441d948fd82adfd27766fbec6082541fbc79e320 100644 (file)
@@ -156,13 +156,6 @@ Sfrsrv_t *_sfrsrv(Sfio_t * f, ssize_t size)
     return size >= 0 ? rsrv : NULL;
 }
 
-#ifdef SIGPIPE
-static void ignoresig(int sig)
-{
-    signal(sig, ignoresig);
-}
-#endif
-
 /**
  * @param f
  * @param fd
@@ -189,8 +182,7 @@ int _sfpopen(Sfio_t * f, int fd, int pid, int stdio)
     if (p->sigp) {
        Sfsignal_f handler;
 
-       if ((handler = signal(SIGPIPE, ignoresig)) != SIG_DFL &&
-           handler != ignoresig)
+       if ((handler = signal(SIGPIPE, SIG_IGN)) != SIG_DFL && handler != SIG_IGN)
            signal(SIGPIPE, handler);   /* honor user handler */
        _Sfsigp += 1;
     }
@@ -230,8 +222,7 @@ int _sfpclose(Sfio_t * f)
 #ifdef SIGPIPE
        if (p->sigp && (_Sfsigp -= 1) <= 0) {
            Sfsignal_f handler;
-           if ((handler = signal(SIGPIPE, SIG_DFL)) != SIG_DFL &&
-               handler != ignoresig)
+           if ((handler = signal(SIGPIPE, SIG_DFL)) != SIG_DFL && handler != SIG_IGN)
                signal(SIGPIPE, handler);       /* honor user handler */
            _Sfsigp = 0;
        }