use standard BSD err functions - xscreenshot - screen capture tool
 (HTM) git clone git://git.codemadness.org/xscreenshot
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit d8f8fff9489a4e0521b682d2d9ab0698ad2b6422
 (DIR) parent e8fe465251d2897d54eaa451d9d653ff025a18e5
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Wed, 24 Feb 2016 20:00:25 +0100
       
       use standard BSD err functions
       
       add -D_BSD_SOURCE and -D_DEFAULT_SOURCE to cpp flags
       
       Diffstat:
         M config.mk                           |       4 ++--
         M xscreenshot.c                       |      26 ++++++++------------------
       
       2 files changed, 10 insertions(+), 20 deletions(-)
       ---
 (DIR) diff --git a/config.mk b/config.mk
       @@ -17,11 +17,11 @@ LIBS = -L${X11LIB} -lX11
        CPPFLAGS = -DVERSION=\"${VERSION}\"
        
        # debug
       -CFLAGS = -O0 -g -std=c99 -Wall -pedantic ${INCS} ${CPPFLAGS}
       +CFLAGS = -O0 -g -std=c99 -Wall -pedantic -D_DEFAULT_SOURCE -D_BSD_SOURCE ${INCS} ${CPPFLAGS}
        LDFLAGS = ${LIBS}
        
        # optimized
       -#CFLAGS = -O2 -std=c99 -DVERSION=\"${VERSION}\" ${INCS} ${CPPFLAGS}
       +#CFLAGS = -O2 -std=c99 -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE -D_BSD_SOURCE ${INCS} ${CPPFLAGS}
        #LDFLAGS = -s ${LIBS}
        
        # compiler and linker
 (DIR) diff --git a/xscreenshot.c b/xscreenshot.c
       @@ -1,6 +1,7 @@
        /* see LICENSE / README for more info */
        #include <arpa/inet.h>
        
       +#include <err.h>
        #include <errno.h>
        #include <stdio.h>
        #include <stdint.h>
       @@ -11,20 +12,6 @@
        #include <X11/Xlib.h>
        #include <X11/Xutil.h>
        
       -static void
       -die(const char *s)
       -{
       -        fprintf(stderr, "xscreenshot: %s\n", s);
       -        exit(1);
       -}
       -
       -static void
       -usage(char **argv)
       -{
       -        fprintf(stderr, "usage: %s [winid]\n", argv[0]);
       -        exit(1);
       -}
       -
        int
        main(int argc, char *argv[])
        {
       @@ -37,13 +24,16 @@ main(int argc, char *argv[])
                char *ep;
        
                if (!(dpy = XOpenDisplay(NULL)))
       -                die("Can't XOpenDisplay");
       +                errx(1, "XOpenDisplay");
        
                /* identify window */
                if (argc > 1) {
       -                if (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "-v") == 0)
       -                        usage(argv);
       +                if (!strcmp(argv[1], "-h") || !strcmp(argv[1], "-v")) {
       +                        fprintf(stderr, "usage: %s [winid]\n", argv[0]);
       +                        return 1;
       +                }
                        errno = 0;
       +
                        win = (Window)strtol(argv[1], &ep, 0);
                        if (errno || argv[1] == ep || *ep != '\0') {
                                fprintf(stderr, "strtol: invalid number: \"%s\"%s%s\n",
       @@ -82,7 +72,7 @@ main(int argc, char *argv[])
                                rgba[3] = htons(65535);
        
                                if (fwrite(&rgba, 4 * sizeof(uint16_t), 1, stdout) != 1)
       -                                die("fwrite() failed");
       +                                err(1, "fwrite");
                        }
                }
                XDestroyImage(img);