1 | # newgetopt.pl -- new options parsing. |
---|
2 | # Now just a wrapper around the Getopt::Long module. |
---|
3 | # $Id: newgetopt.pl,v 1.1.1.2 1997-11-13 01:48:19 ghudson Exp $ |
---|
4 | |
---|
5 | { package newgetopt; |
---|
6 | |
---|
7 | # Values for $order. See GNU getopt.c for details. |
---|
8 | $REQUIRE_ORDER = 0; |
---|
9 | $PERMUTE = 1; |
---|
10 | $RETURN_IN_ORDER = 2; |
---|
11 | |
---|
12 | # Handle POSIX compliancy. |
---|
13 | if ( defined $ENV{"POSIXLY_CORRECT"} ) { |
---|
14 | $autoabbrev = 0; # no automatic abbrev of options (???) |
---|
15 | $getopt_compat = 0; # disallow '+' to start options |
---|
16 | $option_start = "(--|-)"; |
---|
17 | $order = $REQUIRE_ORDER; |
---|
18 | $bundling = 0; |
---|
19 | $passthrough = 0; |
---|
20 | } |
---|
21 | else { |
---|
22 | $autoabbrev = 1; # automatic abbrev of options |
---|
23 | $getopt_compat = 1; # allow '+' to start options |
---|
24 | $option_start = "(--|-|\\+)"; |
---|
25 | $order = $PERMUTE; |
---|
26 | $bundling = 0; |
---|
27 | $passthrough = 0; |
---|
28 | } |
---|
29 | |
---|
30 | # Other configurable settings. |
---|
31 | $debug = 0; # for debugging |
---|
32 | $ignorecase = 1; # ignore case when matching options |
---|
33 | $argv_end = "--"; # don't change this! |
---|
34 | } |
---|
35 | |
---|
36 | use Getopt::Long; |
---|
37 | |
---|
38 | ################ Subroutines ################ |
---|
39 | |
---|
40 | sub NGetOpt { |
---|
41 | |
---|
42 | $Getopt::Long::debug = $newgetopt::debug |
---|
43 | if defined $newgetopt::debug; |
---|
44 | $Getopt::Long::autoabbrev = $newgetopt::autoabbrev |
---|
45 | if defined $newgetopt::autoabbrev; |
---|
46 | $Getopt::Long::getopt_compat = $newgetopt::getopt_compat |
---|
47 | if defined $newgetopt::getopt_compat; |
---|
48 | $Getopt::Long::option_start = $newgetopt::option_start |
---|
49 | if defined $newgetopt::option_start; |
---|
50 | $Getopt::Long::order = $newgetopt::order |
---|
51 | if defined $newgetopt::order; |
---|
52 | $Getopt::Long::bundling = $newgetopt::bundling |
---|
53 | if defined $newgetopt::bundling; |
---|
54 | $Getopt::Long::ignorecase = $newgetopt::ignorecase |
---|
55 | if defined $newgetopt::ignorecase; |
---|
56 | $Getopt::Long::ignorecase = $newgetopt::ignorecase |
---|
57 | if defined $newgetopt::ignorecase; |
---|
58 | $Getopt::Long::passthrough = $newgetopt::passthrough |
---|
59 | if defined $newgetopt::passthrough; |
---|
60 | |
---|
61 | &GetOptions; |
---|
62 | } |
---|
63 | |
---|
64 | ################ Package return ################ |
---|
65 | |
---|
66 | 1; |
---|
67 | |
---|
68 | ################ End of newgetopt.pl ################ |
---|