From 2e5f56539db7cfb857808380ab4d699fbb8d7dca Mon Sep 17 00:00:00 2001
From: Roland McGrath <roland@redhat.com>
Date: Fri, 24 Jul 1992 06:02:26 +0000
Subject: [PATCH] Formerly main.c.~54~

---
 main.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/main.c b/main.c
index ab4aab77..ad794533 100644
--- a/main.c
+++ b/main.c
@@ -91,7 +91,8 @@ struct command_switch
 	string,			/* One string per switch.  */
 	positive_int,		/* A positive integer.  */
 	floating,		/* A floating-point number (double).  */
-	ignore			/* Ignored.  */
+	ignore,			/* Ignored.  */
+	usage_and_exit		/* Ignored; exit after processing switches.  */
       } type;
 
     char *value_ptr;	/* Pointer to the value-holding variable.  */
@@ -234,6 +235,10 @@ static struct command_switch switches[] =
     { 'f', string, (char *) &makefiles, 0, 0, 0, 0, 0,
 	"file", "FILE",
 	"Read FILE as a makefile" },
+    { 'h', usage_and_exit, 
+	0, 0, 0, 0, 0, 0,
+	"help", 0,
+	"Print this message and exit." },
     { 'i', flag, (char *) &ignore_errors_flag, 1, 1, 0, 0, 0,
 	"ignore-errors", 0,
 	"Ignore errors from commands" },
@@ -1095,6 +1100,10 @@ decode_switches (argc, argv)
 		case ignore:
 		  break;
 
+		case usage_and_exit:
+		  bad = 1;
+		  break;
+
 		case flag:
 		case flag_off:
 		  *(int *) cs->value_ptr = cs->type == flag;