diff options
Diffstat (limited to 'cpan/Getopt-Long/CHANGES')
-rw-r--r-- | cpan/Getopt-Long/CHANGES | 534 |
1 files changed, 534 insertions, 0 deletions
diff --git a/cpan/Getopt-Long/CHANGES b/cpan/Getopt-Long/CHANGES new file mode 100644 index 0000000000..679da2abae --- /dev/null +++ b/cpan/Getopt-Long/CHANGES @@ -0,0 +1,534 @@ +Changes in version 2.38 +----------------------- + +* Bugfix for Ticket 35759: First arg to callback function evaluates + to false when used in bool context. + +* Fix problem with prototypes of GetOptionsFrom* functions. + +* Fix restoring default die handler. + +* Bugfix for Ticket 24941: Autoabbrev with + incorrect. + +Changes in version 2.37 +----------------------- + +* The first argument to callback function is now an object and will + get methods for finer control in the future. The object stringifies + to the option name, so current code should not notice a difference. + +* Bugfix: With gnu_compat, --foo= will no longer trigger "Option + requires an argument" but return the empty string. + +Changes in version 2.36 +----------------------- + +**************** WARNING -- EXPERIMENTAL CODE AHEAD **************** + +* Parsing options from an arbitrary array + + The entry point GetOptionsFromArray (exported on demand) can be used + to parse command line options that are not passed in via @ARGV, but + using an arbitrary array. + + use Getopt::Long qw(GetOptionsFromArray); + $ret = GetOptionsFromArray(\@myopts, ...); + +* Parsing options from an arbitrary string + + The entry point GetOptionsFromString (exported on demand) can be + used to parse command line options that are not passed in via @ARGV, + but using an arbitrary string. + + use Getopt::Long qw(GetOptionsFromString); + $ret = GetOptionsFromString($optstring, ...); + + Note that upon completion, no arguments may remain in the string. + If arguments may remain, call it in list context: + + ($ret, $args) = GetOptionsFromString($optstring, ...); + + @$args will have the remaining arguments. + +**************** END EXPERIMENTAL CODE **************** + +* Number values for options may include underscores for readability + (just like Perls numbers). + +* Bugfix for Ticket #19432 (found and fixed by khali). + +* Bugfix to make it cooperate with the bignum pragma. Thanks to Merijn + and Yves. + +* Various small fixes to make the test suite run under 5.004_05. + +* More examples (skeletons). + +Changes in version 2.35 +----------------------- + +* long_prefix_pattern configuration variable. + + prefix_pattern has now been complemented by a new configuration + option 'long_prefix_pattern' that allows the user to specify what + prefix patterns should have long option style sematics applied. + This will enable people to do things like + + foo.pl /option=value + + instead of forcing people to use the short option style + + foo.pl /option value + + This enhancement was suggested and implemented by Yves Orton. + +* Bugfix for Ticket #11377 (bug found and fixed by Ryan). +* Bugfix for Ticket #12380. + +* Options can take multiple values at once. E.g., + + --coordinates 52.2 16.4 --rgbcolor 255 255 149 + + To handle the above command line, the following call to GetOptions + can be used: + + GetOptions('coordinates=f{2}' => \@coor, 'rgbcolor=i{3}' => \@color); + + You can specify the minimum and maximum number of values desired. + The syntax for this is similar to that of regular expression + patterns: { min , max }. + +Changes in version 2.34 +----------------------- + +* Auto-vivification of array and hash refs + + If an option is specified to require an array or hash ref, and a + scalar reference is passed, this is auto-vivified to array or hash + ref. + + Example: + + @ARGV = qw(--foo=xx); + GetOptions("foo=s@", \$var); + # Now $var->[0] eq "xx" + +* Auto-supplied verbose and help options are no longer taken into + account when determining option ambiguity. This eliminates the + common problem that you suddenly get an ambiguous option warning + when you have an option "verbose" and run your program with "-v". + +* Cosmetic changes in some error messages. + +Changes in version 2.33 +----------------------- + +The following new features are marked experimental. This means that if +you are going to use them you _must_ watch out for the next release of +Getopt::Long to see if the API has changed. + +* Getopt::Long can automatically handle --version and --help options + if the calling program did not specify a handler explicitly. + + Two configuration parameters have been added: 'auto_help' (or + 'help') and 'auto_version' (or 'version'). If set, Getopt::Long will + itself take care of --help and --version options. Otherwise, + everything is exactly as it was before. + + The new features will be enabled by default for programs that + explicitly require version 2.3203 or later. + + Getopt::Long uses module Pod::Usage to produce the help message from + the SYNOPSIS section of the program's POD. + + Using a --help (or -?) command line option will write the SYNOPSIS + section of the program's POD to STDOUT, and exit with status 0. + However, an illegal option will produce the help text to STDERR, + and exit with status 2. This is in accordance with current + conventions. + +* Two subroutines can be exported on demand: + + - VersionMessage + + This subroutine prints the standard version message. + + - HelpMessage + + This subroutine prints the standard help message. + + Both subroutines take the same arguments as Pod::Usage::pod2usage, + see its documentation for details. + + Example: + + use Getopt::Long 2.33 qw(GetOptions HelpMessage); + GetOptions(...) or HelpMessage(2); + +* Subroutine Configure can now be exported on demand. + +* Negatable options (with "!") now also support the "no-" prefix. + On request of Ed Avis. + +* Some fixes with hashes and bundling. + Thanks to Anders Johnson and Andrei Gnepp. + Mandatory/optional status for hash values is now effective. + String valued options with no value now default to the empty string + instead of 1 (one). + NOTE: The hash options still remain more or less experimental. + +* Fix a pass_through bug where the options terminator (normally "--") + was not passed through in @ARGV. + Thanks to Philippe Verdret. + +* Add FAQ: I "use GetOpt::Long;" (Windows) and now it doesn't work. + +Changes in version 2.32 +----------------------- + +* Fix a bug where the initial value for a optional numeric argument +was not used for value of a hash option. + +* Remove 5.005 thread safety code. Getopt::Long is completely thread +safe when using the 5.8 ithreads. + +Changes in version 2.31 +----------------------- + +* Fix a bug where calling the configure method on a + Getopt::Long::Parser object would bail out with + Undefined subroutine &Getopt::Long::Parser::Configure called at + Getopt/Long.pm line 186. + +Changes in version 2.30 +----------------------- + +* Fix a problem where a 'die' from a 'warn' via a localized + $SIG{__WARN__} was not properly propagated from a callback. + Thanks to Diab Jerius. + +Changes in version 2.29 +----------------------- + +* Fix a problem where options were not recognized when both + auto_abbrev and ignore_case were disabled. Thanks to Seth Robertson. + +* Remove Carp. + +Changes in version 2.28 +----------------------- + +* When an option is specified more than once, a warning is generated + if perl is run with -w. This is a correction to 2.27, where it would + unconditionally die. + + An example of duplicate specification is GetOptions('foo', 'foo'), + but also GetOptions('foo=s', 'foo') and GetOptions('Foo', 'foo') + (the latter only when ignore_case is in effect). + +Changes in version 2.27 +----------------------- + +* You can now specify integer options to take an optional argument. + that defaults to a specific value. E.g., GetOptions('foo:5' => \$var) + will allow $var to get the value 5 when no value was specified with + the -foo option on the command line. + + Instead of a value, a '+' may be specified. E.g., + GetOptions('foo:+' => \$var) will allow $var to be incremented when + no value was specified with the -foo option on the command line. + +* Fix several problems with internal and external use of 'die' and + signal handlers. + +* Fixed some bugs with subtle combinations of bundling_override and + ignore_case. + +* A callback routine that is associated with a hash-valued option will + now have both the hask key and the value passed. It used to get only + the value passed. + +* Eliminated the use of autoloading. Autoloading kept generating + problems during development, and when using perlcc. + +* Avoid errors on references when an option is found in error, e.g. + GetOptions('fo$@#' => \$var). + Thanks to Wolfgang Laun. + +* When an option is specified more than once, an error is now + generated. E.g., GetOptions('foo', 'foo'). + Thanks to Wolfgang Laun. + +* Lots of internal restructoring to make room for extensions. + +* Redesigned the regression tests. + +* Enhance the documentation to prevent common misunderstandings about + single character options. + +Changes in version 2.26 +----------------------- + +* New option type: 'o'. It accepts all kinds of integral numbers in + Perl style, including decimal (24), octal (012), hexadecimal (0x2f) + and binary (0b1001). + +* Fix problem with getopt_compat not matching +foo=bar. + +* Remove $VERSION_STRING for production versions. + +Changes in version 2.25 +----------------------- + +* Change handling of a lone "-" on the command line. It will now be + treated as a non-option unless an explicit specification was passed + to GetOptions. See the manual. + In the old implementation an error was signalled, so no + compatibility breaks are expected from this change. + +* Add $VERSION_STRING. This is the string form of $VERSION. Usually + they are identical, unless it is a pre-release in which case + $VERSION will be (e.g.) 2.2403 and $VERSION_STRING will be "2.24_03". + +Changes in version 2.24 +----------------------- + +* Add object oriented interface: + + use Getopt::Long; + $p = new Getopt::Long::Parser; + $p->configure(...configuration options...); + if ($p->getoptions(...options descriptions...)) ... + +* Add configuration at 'use' time: + + use Getopt::Long qw(:config no_ignore_case bundling); + +* Add configuration options "gnu_getopt" and "gnu_compat". + + "gnu_compat" controls whether --opt= is allowed, and what it should + do. Without "gnu_compat", --opt= gives an error. With "gnu_compat", + --opt= will give option "opt" and empty value. + This is the way GNU getopt_long does it. + + "gnu_getopt" is a short way of setting "gnu_compat bundling permute + no_getopt_compat. With "gnu_getopt", command line handling should be + fully compatible with GNU getopt_long. + +* Correct warnings when the user specified an array or hash + destination using a non-lowercase option, e.g. "I=s@". + +* Correct ambiguous use of 'set' and 'reset' in the Configuration + section of the documentation. + +* Add configuration option "posix_default" to reset to defaults as if + POSIXLY_CORRECT were set. + +* Disallow "no" prefix on configuration options "default", "prefix" and + "prefix_pattern". + +* Add a section "Trouble Shooting" to the documentation, with + frequently asked questions. + +Changes in version 2.23 +----------------------- + +* When a call-back routine issues 'die', messages starting with "!" + are treated specially. Currently, only "!FINISH" is recognised (see + the next bullet point). Other messages that start with "!" are + ignored. + +* Change 'die("FINISH") (see changes in 2.21) to die("!FINISH"). This + is an incompatible change, but I guess noone is using this yet. + +Changes in version 2.22 +----------------------- + +* Fixes a bug in the combination of aliases and negation. + + Old: "foo|bar!" allowed negation on foo, but not on bar. + New: "foo|bar!" allows negation on foo and bar. + + Caveat: "foo|f!", with bundling, issues the warning that negation on + a short option is ignored. To obtain the desired behaviour, use + + "foo!" => \$opt_foo, "f" => \$opt_foo + or + "foo|f" => \$opt_foo, "nofoo" => sub { $opt_foo = 0 } + + Remember that this is _only_ required when bundling is in effect. + +Changes in version 2.21 +----------------------- + +* New documentation. + +* User defined subroutines should use 'die' to signal errors. + +* User defined subroutines can preliminary terminate options + processing by calling die("FINISH"); + +* Correct erroneous install of Getopt::Long manpage. + Previous versions seem to install Getopt::GetoptLong instead of + Getopt::Long. + +Changes in version 2.20 +----------------------- + +* Prevent the magic argument "<>" from being interpreted as option + starter characters if it is the first argument passed. + To use the characters "<>" as option starters, pass "><" instead. + +* Changed license: Getopt::Long may now also be used under the Perl + Artistic License. + +* Changed the file name of the distribution kit from "GetoptLong..." + to "Getopt-Long-..." to match the standards. + +Changes in version 2.19 +----------------------- + +* Fix a warning bug with bundling_override. + +There's no version 2.18 +----------------------- + +Changes in version 2.17 +----------------------- + +* Getopt::Long::config is renamed Getopt::Long::Configure. The old + name will remain supported without being documented. + +* Options can have the specifier '+' to denote that the option value + must be incremented each time the option occurs on the command line. + For example: + + my $more = 2; + Getopt::Long::Configure("bundling"); + GetOptions ("v+" => \$more); + print STDOUT ("more = $more\n"); + + will print "more = 3" when called with "-v", "more = 4" when called + with "-vv" (or "-v -v"), and so on. + +* Getopt::Long now uses autoloading. This substantially reduces the + resources required to 'use Getopt::Long' (about 100 lines of over + 1300 total). + +* It is now documented that global option variables like $opt_foo + need to be declared using 'use vars ...' when running under 'use + strict'. + +* To install, it is now required to use the official procedure: + + perl Makefile.PL + make + make test + make install + +Changes in version 2.16 +----------------------- + +* A couple of small additional fixes to the $` $& $' fixes. + +* The option prefix can be set using config("prefix=...") or, more + powerful, with config("prefix_pattern=..."); see the documentation + for details. + +* More 'perl -w' warnings eliminated for obscure cases of bundling. + +This version is identical to 2.15, which was not released. + +There's no version 2.14 +----------------------- + +Changes in version 2.13 +----------------------- + +* All regexps are changed to avoid the use of $`, $& and $'. Using one + of these causes all pattern matches in the program to be much slower + than necessary. + +* Configuration errors are signalled using die() and will cause the + program to be terminated (unless eval{...} or $SIG{__DIE__} is + used). + +* Option parsing errors are now signalled with calls to warn(). + +* In option bundles, numeric values may be embedded in the bundle + (e.g. -al24w80). + +* More 'perl -w' warnings eliminated for obscure cases of bundling. + +* Removed non-standard version number matching. Version 1.121 is now + more than 1.12 but less than 1.13. + +Changes in version 2.12 +----------------------- + +* A single question mark is allowed as an alias to an option, e.g. + + GetOptions ("help|?", ...) + +Changes in version 2.11 +----------------------- + +* User linkage may be an object, provided the object is really a hash. + + For example: + + { package Foo; + sub new () { return bless {}; } + } + + my $linkage = Foo->new(); + + GetOptions ($linkage, ... ); + +* Some bug fixes in handling obscure cases of pass-through. + +Changes in version 2.9 +---------------------- + +* A new way to configure Getopt::Long. Instead of setting module local + variables, routine Getopt::Long::config can be called with the names + of options to be set or reset, e.g. + + Getopt::Long::config ("no_auto_abbrev", "ignore_case"); + + Configuring by using the module local variables is deprecated, but + it will continue to work for backwark compatibility. + +Changes in version 2.6 +---------------------- + +* Handle ignorecase even if autoabbrev is off. + +* POD corrections. + +Changes in version 2.4 +---------------------- + +* Pass-through of unrecognized options. Makes it easy to write wrapper + programs that process some of the command line options but pass the + others to another program. + +* Options can be of type HASH, now you can say + + --define foo=bar + + and have $opt_define{"foo"} set to "bar". + +* An enhanced skeleton program, skel2.pl, that combines the power of + Getopt::Long with Pod::Usage. + Module Pod::Usage can be obtained from CPAN, + http://www.perl.com/CPAN/authors/Brad_Appleton. + +Possible incompatibility in version 2.4 +--------------------------------------- + +Previous versions of Getopt::Long always downcased the option variable +names when ignorecase was in effect. This bug has been corrected. As a +consequence, &GetOptions ("Foo") will now set variable $opt_Foo +instead of $opt_foo. + |