diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2014-06-03 22:45:20 -0700 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2014-06-03 22:45:20 -0700 |
commit | ae495ec8de483ab99fe51bb36b95af4f50973387 (patch) | |
tree | 4e9f3ca1cd1c3ded4fe11bf350585d0df53f832f | |
parent | 01a023d7078f3325f626e8d499307b0d92eef64d (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-- | xrdb.c | 25 |
2 files changed, 16 insertions, 11 deletions
diff --git a/configure.ac b/configure.ac index 78a99e9..bf7e0a7 100644 --- a/configure.ac +++ b/configure.ac @@ -82,7 +82,7 @@ CPP_PATH=`echo ${CPP_PATH} | sed 's/,/\\",\\"/g'` AC_DEFINE_UNQUOTED([CPP], "$CPP_PATH", [Path to CPP program]) # Checks for pkg-config packages -PKG_CHECK_MODULES(XRDB, [xmuu x11 xproto >= 7.0.17]) +PKG_CHECK_MODULES(XRDB, [xmuu x11 xproto >= 7.0.25]) AC_CONFIG_FILES([ Makefile @@ -134,7 +134,7 @@ static Display *dpy; static Buffer buffer; static Entries newDB; -static void fatal(const char *, ...) _X_ATTRIBUTE_PRINTF(1,2) _X_NORETURN; +static void fatal(const char *, ...) _X_ATTRIBUTE_PRINTF(1,2) _X_NORETURN _X_COLD; static void addstring ( String *arg, const char *s ); static void addescapedstring ( String *arg, const char *s ); static void addtokstring ( String *arg, const char *s ); @@ -726,9 +726,12 @@ cleanup: } } -static void _X_NORETURN -Syntax (void) +static void _X_NORETURN _X_COLD +Syntax (const char *errmsg) { + if (errmsg != NULL) + fprintf (stderr, "%s: %s\n", ProgramName, errmsg); + fprintf (stderr, "usage: %s [-options ...] [filename]\n\n" "where options include:\n" @@ -892,21 +895,21 @@ main(int argc, char *argv[]) filename = NULL; continue; } else if (isabbreviation ("-help", arg, 2)) { - Syntax (); + Syntax (NULL); /* doesn't return */ } else if (isabbreviation ("-version", arg, 2)) { printf("%s\n", PACKAGE_STRING); exit(0); } else if (isabbreviation ("-display", arg, 2)) { - if (++i >= argc) Syntax (); + if (++i >= argc) Syntax ("-display requires an argument"); displayname = argv[i]; continue; } else if (isabbreviation ("-geometry", arg, 3)) { - if (++i >= argc) Syntax (); + if (++i >= argc) Syntax ("-geometry requires an argument"); /* ignore geometry */ continue; } else if (isabbreviation ("-cpp", arg, 2)) { - if (++i >= argc) Syntax (); + if (++i >= argc) Syntax ("-cpp requires an argument"); cpp_program = argv[i]; continue; } else if (!strcmp ("-n", arg)) { @@ -934,12 +937,12 @@ main(int argc, char *argv[]) oper = OPREMOVE; continue; } else if (isabbreviation ("-edit", arg, 2)) { - if (++i >= argc) Syntax (); + if (++i >= argc) Syntax ("-edit requires an argument"); oper = OPEDIT; editFile = argv[i]; continue; } else if (isabbreviation ("-backup", arg, 2)) { - if (++i >= argc) Syntax (); + if (++i >= argc) Syntax ("-backup requires an argument"); backup_suffix = argv[i]; continue; } else if (isabbreviation ("-all", arg, 2)) { @@ -979,7 +982,9 @@ main(int argc, char *argv[]) } continue; } - Syntax (); + fprintf (stderr, "%s: unrecognized argument '%s'\n", + ProgramName, arg); + Syntax (NULL); } else if (arg[0] == '=') continue; else |