From a8e484c8f54dc9b2cf8dd8a82f051ee891d4fdd4 Mon Sep 17 00:00:00 2001
From: Fred Drake <fdrake@acm.org>
Date: Fri, 11 Aug 2000 19:55:06 +0000
Subject: getopt(): revise description of long_options parameter slightly so it
 will 	be less confusing; add a paragraph separation so that comments about 
 the options and long_options parameters don't have references that 	are
 easily misinterpreted.

Adjust the interactive examples to not need the string module.

Add an example showing how the module is commonly used in a script.
---
 Doc/lib/libgetopt.tex | 62 +++++++++++++++++++++++++++++++++++----------------
 1 file changed, 43 insertions(+), 19 deletions(-)

diff --git a/Doc/lib/libgetopt.tex b/Doc/lib/libgetopt.tex
index 56a8b3c..4f32225 100644
--- a/Doc/lib/libgetopt.tex
+++ b/Doc/lib/libgetopt.tex
@@ -21,25 +21,26 @@ argument list to be parsed, without the leading reference to the
 running program. Typically, this means \samp{sys.argv[1:]}.
 \var{options} is the string of option letters that the script wants to
 recognize, with options that require an argument followed by a colon
-(i.e., the same format that \UNIX{} \cfunction{getopt()} uses).  If
-specified, \var{long_options} is a list of strings with the names of
-the long options which should be supported.  The leading
+(\character{:}; i.e., the same format that \UNIX{}
+\cfunction{getopt()} uses).
+
+\var{long_options}, if specified, must be a list of strings with the
+names of the long options which should be supported.  The leading
 \code{'-}\code{-'} characters should not be included in the option
-name.  Options which require an argument should be followed by an
-equal sign (\code{'='}).
+name.  Long options which require an argument should be followed by an
+equal sign (\character{=}).
 
 The return value consists of two elements: the first is a list of
 \code{(\var{option}, \var{value})} pairs; the second is the list of
 program arguments left after the option list was stripped (this is a
-trailing slice of the first argument).
-Each option-and-value pair returned has the option as its first
-element, prefixed with a hyphen for short options (e.g., \code{'-x'})
-or two hyphens for long options (e.g., \code{'-}\code{-long-option'}),
-and the option argument as its second element, or an empty string if
-the option has no argument.
-The options occur in the list in the same order in which they were
-found, thus allowing multiple occurrences.  Long and short options may
-be mixed.
+trailing slice of \var{args}).  Each option-and-value pair returned
+has the option as its first element, prefixed with a hyphen for short
+options (e.g., \code{'-x'}) or two hyphens for long options (e.g.,
+\code{'-}\code{-long-option'}), and the option argument as its second
+element, or an empty string if the option has no argument.  The
+options occur in the list in the same order in which they were found,
+thus allowing multiple occurrences.  Long and short options may be
+mixed.
 \end{funcdesc}
 
 \begin{excdesc}{GetoptError}
@@ -61,8 +62,8 @@ Alias for \exception{GetoptError}; for backward compatibility.
 An example using only \UNIX{} style options:
 
 \begin{verbatim}
->>> import getopt, string
->>> args = string.split('-a -b -cfoo -d bar a1 a2')
+>>> import getopt
+>>> args = '-a -b -cfoo -d bar a1 a2'.split()
 >>> args
 ['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2']
 >>> optlist, args = getopt.getopt(args, 'abc:d:')
@@ -70,14 +71,13 @@ An example using only \UNIX{} style options:
 [('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]
 >>> args
 ['a1', 'a2']
->>> 
 \end{verbatim}
 
 Using long option names is equally easy:
 
 \begin{verbatim}
 >>> s = '--condition=foo --testing --output-file abc.def -x a1 a2'
->>> args = string.split(s)
+>>> args = s.split()
 >>> args
 ['--condition=foo', '--testing', '--output-file', 'abc.def', '-x', 'a1', 'a2']
 >>> optlist, args = getopt.getopt(args, 'x', [
@@ -87,5 +87,29 @@ Using long option names is equally easy:
  '')]
 >>> args
 ['a1', 'a2']
->>> 
+\end{verbatim}
+
+In a script, typical usage is something like this:
+
+\begin{verbatim}
+import getopt, sys
+
+def main():
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], "ho:", ["help", "output="])
+    except getopt.GetoptError:
+        # print help information and exit:
+        usage()
+        sys.exit(2)
+    output = None
+    for o, a in opts:
+        if o in ("-h", "--help"):
+            usage()
+            sys.exit()
+        if o in ("-o", "--output"):
+            output = a
+    # ...
+
+if __name__ == "__main__":
+    main()
 \end{verbatim}
-- 
cgit v0.12

