More robust yacc/bison failure output handling.
[p5sagit/p5-mst-13.2.git] / lib / newgetopt.pl
1 # newgetopt.pl -- new options parsing.
2 # Now just a wrapper around the Getopt::Long module.
3 # $Id: newgetopt.pl,v 1.17 1996-10-02 11:17:16+02 jv 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 ################