svn commit: r216447 - head/usr.bin/printf

Xin LI delphij at FreeBSD.org
Tue Dec 14 20:35:08 UTC 2010


Author: delphij
Date: Tue Dec 14 20:35:08 2010
New Revision: 216447
URL: http://svn.freebsd.org/changeset/base/216447

Log:
  Revert r216423 per request from Jilles.
  
  The new behavior prevents us from being able to bail out explicitly
  on unknown options that we have not implemented.  BASH for instance
  have introduced a '-v' for printf(1) builtin and it seems to be bad
  to pretend that we supported it and have a script break silently.

Modified:
  head/usr.bin/printf/printf.c

Modified: head/usr.bin/printf/printf.c
==============================================================================
--- head/usr.bin/printf/printf.c	Tue Dec 14 20:19:41 2010	(r216446)
+++ head/usr.bin/printf/printf.c	Tue Dec 14 20:35:08 2010	(r216447)
@@ -101,7 +101,7 @@ int
 main(int argc, char *argv[])
 {
 	size_t len;
-	int chopped, end, rval;
+	int ch, chopped, end, rval;
 	char *format, *fmt, *start;
 
 #ifndef SHELL
@@ -110,15 +110,15 @@ main(int argc, char *argv[])
 #ifdef SHELL
 	optreset = 1; optind = 1; opterr = 0; /* initialize getopt */
 #endif
-	/* Skip argv[0] which is the process name */
-	argv++;
-	argc--;
-
-	/* Need to accept/ignore "--" option. */
-	if (argc >= 1 && strcmp(*argv, "--") == 0) {
-		argc--;
-		argv++;
-	}
+	while ((ch = getopt(argc, argv, "")) != -1)
+		switch (ch) {
+		case '?':
+		default:
+			usage();
+			return (1);
+		}
+	argc -= optind;
+	argv += optind;
 
 	if (argc < 1) {
 		usage();


More information about the svn-src-all mailing list