URI: 
       util.c: output function might override errno and thus affect perror() - dwm - dynamic window manager
  HTML git clone git://git.suckless.org/dwm
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit fcb2476b693ca4c40ad32c7119e27bbeb856865c
   DIR parent 8933ebcf50024f4378a78e556b1ac08091197206
  HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Sun, 27 Oct 2024 20:10:07 +0100
       
       util.c: output function might override errno and thus affect perror()
       
       Original patch by Raymond Cole with some modifications, thanks!
       
       Diffstat:
         M util.c                              |      13 +++++++------
       
       1 file changed, 7 insertions(+), 6 deletions(-)
       ---
   DIR diff --git a/util.c b/util.c
       @@ -1,4 +1,5 @@
        /* See LICENSE file for copyright and license details. */
       +#include <errno.h>
        #include <stdarg.h>
        #include <stdio.h>
        #include <stdlib.h>
       @@ -10,17 +11,17 @@ void
        die(const char *fmt, ...)
        {
                va_list ap;
       +        int saved_errno;
       +
       +        saved_errno = errno;
        
                va_start(ap, fmt);
                vfprintf(stderr, fmt, ap);
                va_end(ap);
        
       -        if (fmt[0] && fmt[strlen(fmt)-1] == ':') {
       -                fputc(' ', stderr);
       -                perror(NULL);
       -        } else {
       -                fputc('\n', stderr);
       -        }
       +        if (fmt[0] && fmt[strlen(fmt)-1] == ':')
       +                fprintf(stderr, " %s", strerror(saved_errno));
       +        fputc('\n', stderr);
        
                exit(1);
        }