[PATCH:bitmap 03/17] Print which option was in error along with usage message

Alan Coopersmith alan.coopersmith at oracle.com
Fri Nov 15 18:38:32 PST 2013


Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 atobm.c      |   26 +++++++++++++++++++-------
 bmtoa.c      |    8 +++++++-
 configure.ac |    2 +-
 3 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/atobm.c b/atobm.c
index 040fecb..ef6da7e 100644
--- a/atobm.c
+++ b/atobm.c
@@ -42,9 +42,11 @@ static char *ProgramName;
 static void doit(FILE *fp, const char *filename, const char *chars,
 		 int xhot, int yhot, const char *name);
 
-static void _X_NORETURN
-usage (void)
+static void _X_NORETURN _X_COLD
+usage (const char *msg)
 {
+    if (msg)
+	fprintf(stderr, "%s: %s\n", ProgramName, msg);
     fprintf (stderr, "usage:  %s [-options ...] [filename]\n\n%s\n",
 	     ProgramName,
              "where options include:\n"
@@ -55,6 +57,14 @@ usage (void)
     exit (1);
 }
 
+static void _X_NORETURN _X_COLD
+missing_arg (const char *option)
+{
+    char msg[32];
+
+    snprintf(msg, sizeof(msg), "%s requires an argument", option);
+    usage(msg);
+}
 
 static char *
 cify_name (char *name)
@@ -106,23 +116,25 @@ main (int argc, char *argv[])
 		filename = NULL;
 		continue;
 	      case 'c':
-		if (++i >= argc) usage ();
+		if (++i >= argc) missing_arg("-chars");
 		chars = argv[i];
 		continue;
 	      case 'n':
-		if (++i >= argc) usage ();
+		if (++i >= argc) missing_arg("-name");
 		name = argv[i];
 		continue;
 	      case 'x':
-		if (++i >= argc) usage ();
+		if (++i >= argc) missing_arg("-xhot");
 		xhot = atoi (argv[i]);
 		continue;
 	      case 'y':
-		if (++i >= argc) usage ();
+		if (++i >= argc) missing_arg("-yhot");
 		yhot = atoi (argv[i]);
 		continue;
 	      default:
-		usage ();
+		fprintf(stderr, "%s: unrecognized option '%s'\n",
+			ProgramName, argv[i]);
+		usage (NULL);
 	    }
 	} else {
 	    filename = arg;
diff --git a/bmtoa.c b/bmtoa.c
index 0394038..a9de614 100644
--- a/bmtoa.c
+++ b/bmtoa.c
@@ -130,10 +130,16 @@ main (int argc, char *argv[])
 		filename = NULL;
 		continue;
 	      case 'c':
-		if (++i >= argc) usage ();
+		if (++i >= argc) {
+		    fprintf(stderr, "%s: -chars requires an argument\n",
+			    ProgramName);
+		    usage ();
+		}
 		chars = argv[i];
 		continue;
 	      default:
+		fprintf(stderr, "%s: unrecognized option '%s'\n",
+			ProgramName, argv[i]);
 		usage ();
 	    }
 	} else {
diff --git a/configure.ac b/configure.ac
index 0b8cee6..d61ec7c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -56,7 +56,7 @@ AC_SUBST([MATH_LIBS])
 
 # Obtain compiler/linker options from dependencies
 PKG_CHECK_MODULES(BMTOA, [x11 xmu xproto >= 7.0.17])
-PKG_CHECK_MODULES(ATOBM, [xproto >= 7.0.17])
+PKG_CHECK_MODULES(ATOBM, [xproto >= 7.0.25])
 PKG_CHECK_MODULES(BITMAP, xbitmaps xaw7 xmu)
 
 PKG_CHECK_MODULES(APPDEFS, xt)
-- 
1.7.9.2



More information about the xorg-devel mailing list