From 43019189cab08cd7a381a320ac0489bcc76ccb34 Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@justemail.net>
Date: Sun, 27 Apr 2014 12:13:26 +0000
Subject: [PATCH] Not blurting out the full help text when command line
 contains some mistake.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4820 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog  |  5 +++++
 src/nano.c | 14 ++++++++------
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 2e2742e4..e7af9ad6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-04-27  Benno Schulenberg  <bensberg@justemail.net>
+	* src/nano.c (usage, main): Don't blurt out the full help text
+	but just a hint when the command line contains some mistake, to
+	avoid drowning out the error message.
+
 2014-04-27  Mark Majeres  <mark@engine12.com>
 	* src/rcfile.c (parse_include): Plug two tiny memory leaks.
 
diff --git a/src/nano.c b/src/nano.c
index 03c9dcf5..9eba7ad0 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -837,7 +837,6 @@ void usage(void)
 	_("Option\t\tMeaning\n")
 #endif
 	);
-    print_opt("-h, -?", "--help", N_("Show this message"));
     print_opt(_("+LINE,COLUMN"), "",
 	N_("Start at line LINE, column COLUMN"));
 #ifndef NANO_TINY
@@ -906,6 +905,7 @@ void usage(void)
     print_opt("-d", "--rebinddelete",
 	N_("Fix Backspace/Delete confusion problem"));
 #ifndef NANO_TINY
+    print_opt("-h", "--help", N_("Show this help text"));
     print_opt("-i", "--autoindent",
 	N_("Automatically indent new lines"));
     print_opt("-k", "--cut", N_("Cut from cursor to end of line"));
@@ -951,8 +951,6 @@ void usage(void)
     /* This is a special case. */
     print_opt("-a, -b, -e,", "", NULL);
     print_opt("-f, -g, -j", "", N_("(ignored, for Pico compatibility)"));
-
-    exit(0);
 }
 
 /* Display the current version of nano, the date and time it was
@@ -2202,11 +2200,11 @@ int main(int argc, char **argv)
     while ((optchr =
 #ifdef HAVE_GETOPT_LONG
 	getopt_long(argc, argv,
-		"h?ABC:DEFGHIKLNOPQ:RST:UVWY:abcdefgijklmno:pqr:s:tuvwxz$",
+		"ABC:DEFGHIKLNOPQ:RST:UVWY:abcdefghijklmno:pqr:s:tuvwxz$",
 		long_options, NULL)
 #else
 	getopt(argc, argv,
-		"h?ABC:DEFGHIKLNOPQ:RST:UVWY:abcdefgijklmno:pqr:s:tuvwxz$")
+		"ABC:DEFGHIKLNOPQ:RST:UVWY:abcdefghijklmno:pqr:s:tuvwxz$")
 #endif
 		) != -1) {
 	switch (optchr) {
@@ -2393,8 +2391,12 @@ int main(int argc, char **argv)
 		SET(SOFTWRAP);
 		break;
 #endif
-	    default:
+	    case 'h':
 		usage();
+		exit(0);
+	    default:
+		printf(_("Type '%s -h' for a list of available options.\n"), argv[0]);
+		exit(1);
 	}
     }
 
-- 
GitLab