./usr/bin/gcore minix-sys
./usr/bin/gcov-pull minix-sys
./usr/bin/genassym minix-sys
+./usr/bin/getopt minix-sys
./usr/bin/grep minix-sys
./usr/bin/groups minix-sys
./usr/bin/gunzip minix-sys
./usr/man/man1/fsck.mfs.1 minix-sys
./usr/man/man1/ftp.1 minix-sys
./usr/man/man1/genassym.1 minix-sys
+./usr/man/man1/getopt.1 minix-sys
./usr/man/man1/getopts.1 minix-sys
./usr/man/man1/grep.1 minix-sys
./usr/man/man1/groups.1 minix-sys
2012/10/17 12:00:00,usr.bin/ctags
2011/09/01 13:37:33,usr.bin/du
2012/10/17 12:00:00,usr.bin/genassym
+2013/03/09 12:00:00,usr.bin/getopt
2012/10/17 12:00:00,usr.bin/gzip
2012/10/17 12:00:00,usr.bin/indent
2012/10/17 12:00:00,usr.bin/infocmp
--- /dev/null
+.\" $NetBSD: getopt.1,v 1.19 2010/01/24 20:13:28 dholland Exp $
+.Dd November 28, 2009
+.Dt GETOPT 1
+.Os
+.Sh NAME
+.Nm getopt
+.Nd parse command options
+.Sh SYNOPSIS
+.Li args=\`getopt optstring $*\`
+.Pp
+.Li set \-\- \`getopt optstring $*\`
+.Sh DESCRIPTION
+.Nm
+is used to break up options in command lines for easy parsing by
+shell procedures, and to check for legal options.
+.Op Optstring
+is a string of recognized option letters (see
+.Xr getopt 3 ) ;
+if a letter is followed by a colon, the option
+is expected to have an argument which may or may not be
+separated from it by white space.
+The special option
+.Dq \-\-
+is used to delimit the end of the options.
+.Nm
+will place
+.Dq \-\-
+in the arguments at the end of the options,
+or recognize it if used explicitly.
+The shell arguments
+.Pq Ev $1 , Ev $2 , ...
+are reset so that each option is
+preceded by a
+.Dq \-
+and in its own shell argument;
+each option argument is also in its own shell argument.
+.Pp
+.Nm
+should not be used in new scripts; use the shell builtin
+.Nm getopts
+instead.
+.Sh EXAMPLES
+The following code fragment shows how one might process the arguments
+for a command that can take the options
+.Op a
+and
+.Op b ,
+and the option
+.Op c ,
+which requires an argument.
+.Pp
+.Bd -literal -offset indent
+args=\`getopt abc: $*\`
+if [ $? \-ne 0 ]; then
+ echo 'Usage: ...'
+ exit 2
+fi
+set \-\- $args
+while [ $# \-gt 0 ]; do
+ case "$1" in
+ \-a|\-b)
+ flag=$1
+ ;;
+ \-c)
+ carg=$2; shift
+ ;;
+ \-\-)
+ shift; break
+ ;;
+ esac
+ shift
+done
+.Ed
+.Pp
+This code will accept any of the following as equivalent:
+.Pp
+.Bd -literal -offset indent
+cmd \-acarg file file
+cmd \-a \-c arg file file
+cmd \-carg -a file file
+cmd \-a \-carg \-\- file file
+.Ed
+.Pp
+.St -p1003.2
+mandates that the
+.Xr sh 1
+set command return the value of 0 for the exit status.
+Therefore, the exit status of the
+.Nm
+command is lost when
+.Nm
+and the
+.Xr sh 1
+set command are used on the same line.
+The example given is one way to detect errors found by
+.Nm .
+.Sh DIAGNOSTICS
+.Nm
+prints an error message on the standard error output when it
+encounters an option letter not included in
+.Op optstring .
+.Sh SEE ALSO
+.Xr sh 1 ,
+.Xr getopt 3
+.Sh HISTORY
+Written by Henry Spencer, working from a Bell Labs manual page.
+Behavior believed identical to the Bell version.
+.Sh BUGS
+Whatever
+.Xr getopt 3
+has.
+.Pp
+Arguments containing white space or embedded shell metacharacters
+generally will not survive intact; this looks easy to fix but isn't.
+.Pp
+The error message for an invalid option is identified as coming
+from
+.Nm
+rather than from the shell procedure containing the invocation
+of
+.Nm ;
+this again is hard to fix.
+.Pp
+The precise best way to use the
+.Ic set
+command to set the arguments without disrupting the value(s) of
+shell options varies from one shell version to another.
--- /dev/null
+/* $NetBSD: getopt.c,v 1.8 2006/07/09 21:39:48 wiz Exp $ */
+
+/*
+ * This material, written by Henry Spencer, was released by him
+ * into the public domain and is thus not subject to any copyright.
+ */
+
+#include <sys/cdefs.h>
+#ifndef lint
+__RCSID("$NetBSD: getopt.c,v 1.8 2006/07/09 21:39:48 wiz Exp $");
+#endif /* not lint */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(int argc, char *argv[])
+{
+ int c;
+ int status = 0;
+
+ optind = 2; /* Past the program name and the option letters. */
+ while ((c = getopt(argc, argv, argv[1])) != -1)
+ switch (c) {
+ case '?':
+ status = 1; /* getopt routine gave message */
+ break;
+ default:
+ if (optarg != NULL)
+ printf(" -%c %s", c, optarg);
+ else
+ printf(" -%c", c);
+ break;
+ }
+ printf(" --");
+ for (; optind < argc; optind++)
+ printf(" %s", argv[optind]);
+ printf("\n");
+ exit(status);
+}