summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2014-06-03 23:46:14 -0700
committerAlan Coopersmith <alan.coopersmith@oracle.com>2014-06-03 23:46:14 -0700
commit5ee8bcb7134d049abf50a34fcfd7a9d5e99ba323 (patch)
treefc2f029ddd7d17556b727c85a0740eb33a570b4e
parent00d3b27549902d2d2156888d7fcbabbf01e87c90 (diff)
Print which option was in error along with usage message
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
-rw-r--r--configure.ac2
-rw-r--r--dsimple.c8
-rw-r--r--dsimple.h4
-rw-r--r--xwd.c15
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
diff --git a/dsimple.c b/dsimple.c
index fa31e8f..4fb1a81 100644
--- a/dsimple.c
+++ b/dsimple.c
@@ -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)
diff --git a/dsimple.h b/dsimple.h
index b0422bd..18679b8 100644
--- a/dsimple.h
+++ b/dsimple.h
@@ -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);
diff --git a/xwd.c b/xwd.c
index 85734ea..d446bd5 100644
--- a/xwd.c
+++ b/xwd.c
@@ -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>}]");