summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2014-06-03 22:45:20 -0700
committerAlan Coopersmith <alan.coopersmith@oracle.com>2014-06-03 22:45:20 -0700
commitae495ec8de483ab99fe51bb36b95af4f50973387 (patch)
tree4e9f3ca1cd1c3ded4fe11bf350585d0df53f832f
parent01a023d7078f3325f626e8d499307b0d92eef64d (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--xrdb.c25
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
diff --git a/xrdb.c b/xrdb.c
index 09422ef..09eb8e7 100644
--- a/xrdb.c
+++ b/xrdb.c
@@ -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