diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2014-06-03 23:46:14 -0700 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2014-06-03 23:46:14 -0700 |
commit | 5ee8bcb7134d049abf50a34fcfd7a9d5e99ba323 (patch) | |
tree | fc2f029ddd7d17556b727c85a0740eb33a570b4e | |
parent | 00d3b27549902d2d2156888d7fcbabbf01e87c90 (diff) |
Print which option was in error along with usage message
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | dsimple.c | 8 | ||||
-rw-r--r-- | dsimple.h | 4 | ||||
-rw-r--r-- | xwd.c | 15 |
4 files changed, 17 insertions, 12 deletions
diff --git a/configure.ac b/configure.ac index 8ec6674..99e1722 100644 --- a/configure.ac +++ b/configure.ac @@ -48,7 +48,7 @@ if test x$use_xkb != xno ; then fi # Checks for pkg-config packages -PKG_CHECK_MODULES(XWD, [x11 xproto >= 7.0.17 ${XKBMODULE}]) +PKG_CHECK_MODULES(XWD, [x11 xproto >= 7.0.25 ${XKBMODULE}]) AC_CONFIG_FILES([ Makefile @@ -76,7 +76,7 @@ char *Get_Display_Name( char *arg = argv[i]; if (!strcmp (arg, "-display") || !strcmp (arg, "-d")) { - if (++i >= argc) usage (); + if (++i >= argc) usage ("-display requires an argument"); displayname = argv[i]; *pargc -= 2; @@ -180,7 +180,7 @@ Window Select_Window_Args( nargv = argv+1; argc = ARGC; #define OPTION argv[0] #define NXTOPTP ++argv, --argc>0 -#define NXTOPT if (++argv, --argc==0) usage() +#define NXTOPT(arg) if (++argv, --argc==0) usage(arg " requires an argument") #define COPYOPT nargv++[0]=OPTION, nargc++ while (NXTOPTP) { @@ -195,7 +195,7 @@ Window Select_Window_Args( continue; } if (!strcmp(OPTION, "-name")) { - NXTOPT; + NXTOPT("-name"); w = Window_With_Name(dpy, RootWindow(dpy, screen), OPTION); if (!w) @@ -203,7 +203,7 @@ Window Select_Window_Args( continue; } if (!strcmp(OPTION, "-id")) { - NXTOPT; + NXTOPT("-id"); w=0; sscanf(OPTION, "0x%lx", &w); if (!w) @@ -61,7 +61,7 @@ Display *Open_Display(const char *); void Setup_Display_And_Screen(int *, char **); void Close_Display(void); Window Select_Window_Args(int *, char **); -void usage(void) _X_NORETURN; +void usage(const char *errmsg) _X_NORETURN _X_COLD; #define X_USAGE "[host:display]" /* X arguments handled by Get_Display_Name */ @@ -76,5 +76,5 @@ void usage(void) _X_NORETURN; Window Select_Window(Display *, int); Window Window_With_Name(Display *, Window, const char *); -void Fatal_Error(const char *, ...) _X_NORETURN _X_ATTRIBUTE_PRINTF(1, 2); +void Fatal_Error(const char *, ...) _X_NORETURN _X_ATTRIBUTE_PRINTF(1, 2) _X_COLD; void outl(const char *, ...) _X_ATTRIBUTE_PRINTF(1, 2); @@ -163,9 +163,9 @@ main(int argc, char **argv) continue; } if (!strcmp(argv[i], "-help")) - usage(); + usage(NULL); if (!strcmp(argv[i], "-out")) { - if (++i >= argc) usage(); + if (++i >= argc) usage("-out requires an argument"); if (!(out_file = fopen(argv[i], "wb"))) Fatal_Error("Can't open output file as specified."); standard_out = False; @@ -184,7 +184,7 @@ main(int argc, char **argv) continue; } if (!strcmp(argv[i], "-add")) { - if (++i >= argc) usage(); + if (++i >= argc) usage("-add requires an argument"); add_pixel_value = parse_long (argv[i]); continue; } @@ -196,7 +196,9 @@ main(int argc, char **argv) silent = True; continue; } - usage(); + fprintf (stderr, "%s: unrecognized argument '%s'\n", + program_name, argv[i]); + usage(NULL); } #ifdef WIN32 if (standard_out) @@ -518,8 +520,11 @@ Window_Dump(Window window, FILE *out) * Report the syntax for calling xwd. */ void -usage(void) +usage(const char *errmsg) { + if (errmsg != NULL) + fprintf (stderr, "%s: %s\n", program_name, errmsg); + fprintf (stderr, "usage: %s [-display host:dpy] [-debug] [-help] %s [-nobdrs] [-out <file>]", program_name, "[{-root|-id <id>|-name <name>}]"); |