xscreenshot: descriptive error message on invalid winid - xscreenshot - screen capture tool
 (HTM) git clone git://git.codemadness.org/xscreenshot
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit bcf725e82616a2ff64e4cc70c529c185440df14d
 (DIR) parent c776bb923767e4ca1fa1e6179cfc37e3d0babc0a
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Mon, 16 Nov 2015 22:04:24 +0100
       
       xscreenshot: descriptive error message on invalid winid
       
       Diffstat:
         M xscreenshot.c                       |      12 +++++++++---
       
       1 file changed, 9 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/xscreenshot.c b/xscreenshot.c
       @@ -35,6 +35,7 @@ main(int argc, char *argv[])
                XWindowAttributes attr;
                uint32_t tmp, w, h;
                uint16_t rgba[4];
       +        char *ep;
        
                if (!(dpy = XOpenDisplay(NULL)))
                        die("Can't XOpenDisplay");
       @@ -44,9 +45,14 @@ main(int argc, char *argv[])
                        if (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "-v") == 0)
                                usage(argv);
                        errno = 0;
       -                win = (Window)strtol(argv[1], NULL, 0);
       -                if (errno)
       -                        usage(argv);
       +                win = (Window)strtol(argv[1], &ep, 0);
       +                if (errno || argv[1] == ep || *ep != '\0') {
       +                        fprintf(stderr, "strtol: invalid number: \"%s\"%s%s\n",
       +                                argv[1],
       +                                errno ? ": " : "",
       +                                errno ? strerror(errno) : "");
       +                        exit(1);
       +                }
                } else {
                        win = RootWindow(dpy, 0);
                }