about summary refs log tree commit diff
path: root/posix/bug-getopt4.c
diff options
context:
space:
mode:
authorZack Weinberg <zackw@panix.com>2017-04-01 16:19:50 -0400
committerZack Weinberg <zackw@panix.com>2017-04-07 07:51:28 -0400
commitdfbea09f96ce9e7a56f88c47d1593f07dc55c53c (patch)
treebbe379b210cf4bdcaceaf77ba80e046635ed81a3 /posix/bug-getopt4.c
parentc1af8775f2de694bd567813af51164e2d978a78d (diff)
downloadglibc-dfbea09f96ce9e7a56f88c47d1593f07dc55c53c.tar.gz
glibc-dfbea09f96ce9e7a56f88c47d1593f07dc55c53c.tar.xz
glibc-dfbea09f96ce9e7a56f88c47d1593f07dc55c53c.zip
getopt: refactor long-option handling
There were two copies of the bulk of the code to handle long options.
Now there is only one.  (Yes, this is in aid of merging from gnulib.)

The change to bug-getopt4.c clarifies the error messages when the test
fails.

	* posix/getopt.c (process_long_option): New function split out
	from _getopt_internal_r.
	(_getopt_internal_r): Replace both copies of the long-option
	processing code with calls to process_long_option.
	* posix/bug-getopt4.c (one_test): Print argv[0] in error messages.
	(do_test): Differentiate argv[0] in the two subtests.
Diffstat (limited to 'posix/bug-getopt4.c')
-rw-r--r--posix/bug-getopt4.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/posix/bug-getopt4.c b/posix/bug-getopt4.c
index 1daffd1d34..0956ca57fb 100644
--- a/posix/bug-getopt4.c
+++ b/posix/bug-getopt4.c
@@ -27,20 +27,20 @@ one_test (const char *fmt, int argc, char *argv[], int n, int expected[n])
       int c = getopt_long (argc, argv, fmt, opts, NULL);
       if (c != expected[i])
 	{
-	  printf ("format '%s' test %d failed: expected '%c', got '%c'\n",
-		  fmt, i, expected[i], c);
+	  printf ("%s: format '%s' test %d failed: expected '%c', got '%c'\n",
+		  argv[0], fmt, i, expected[i], c);
 	  res = 1;
 	}
       else if (optarg != NULL)
 	{
-	  printf ("format '%s' test %d failed: optarg is \"%s\", not NULL\n",
-		  fmt, i, optarg);
+	  printf ("%s: format '%s' test %d failed: optarg is \"%s\", not NULL\n",
+		  argv[0], fmt, i, optarg);
 	  res = 1;
 	}
       if (ftell (stderr) != 0)
 	{
-	  printf ("format '%s' test %d failed: printed to stderr\n",
-		  fmt, i);
+	  printf ("%s: format '%s' test %d failed: printed to stderr\n",
+		  argv[0], fmt, i);
 	  res = 1;
 	}
     }
@@ -68,11 +68,11 @@ do_test (void)
   remove (fname);
 
   int ret = one_test ("W;", 2,
-		      (char *[2]) { (char *) "bug-getopt4", (char *) "--a" },
+		      (char *[2]) { (char *) "bug-getopt4a", (char *) "--a" },
 		      1, (int [1]) { 'a' });
 
   ret |= one_test ("W;", 3,
-		   (char *[3]) { (char *) "bug-getopt4", (char *) "-W",
+		   (char *[3]) { (char *) "bug-getopt4b", (char *) "-W",
 				 (char *) "a" },
 		   1, (int [1]) { 'a' });