Revision history for Perl extension Argv.
0.01 Thu May 27 14:32:34 1999
- original version; created by h2xs 1.18
0.25 Tue Nov 2 22:42:50 EST 1999
- first CPAN release. NKNTW
0.26 Tue Nov 9 19:36:17 EST 1999
- Fix Windows autoquoting for paths ending in \
0.27 Thu Nov 11 09:37:06 EST 1999
- Fix Windows autoquoting again - turn embedded newlines back
into a literal "\n" so the &*@# cmd shell can turn it BACK.
0.28 Thu Nov 11 22:09:44 EST 1999
- Bugfix: if ->qx has options but no args
- Removed unused ->script method.
0.29 Sun Nov 14 12:55:37 EST 1999
- added Argv->count class method for metrics collection
0.30 Mon Nov 15 12:05:47 EST 1999
- Bugfix: change shell quoting on Unix to be closer to Win32
(quote embedded double-quotes, then double-quote the
entire word, rather than try to use single quotes on Unix
and the above on Windows).
0.32 Tue Nov 16 16:01:56 EST 1999
- Added an integration with IPC::ChildSafe. This
allows a user to request that commands be run
in the context of a single co-process rather
than doing a new fork/exec for each one.
0.33 Fri Nov 19 11:45:44 EST 1999
- Fixed a bug in Argv->quote method.
0.34 Mon Nov 29 13:03:31 EST 1999
- Lots of POD work.
- Implemented inheritance of attributes when constructor used
as an instance method.
- Renamed exported qxargv() to qv().
- Modified many methods to return the object in 'set' mode.
0.35 Wed Dec 8 23:22:54 EST 1999
- Some cosmetic work.
- Improved integration with IPC::ChildSafe with quoting fixes.
0.39 Thu Dec 16 21:58:20 EST 1999
- Renamed 'ipc' method to 'childsafe'.
- Renamed 'dfltopts' method to 'dfltsets'.
- Added 'stdopts' method.
- Allow config data to be specified for methods calling
Getopt::Long::GetOptions().
0.40 Fri Dec 17 20:25:13 EST 1999
- Added 'autofail' method.
- Cleaned up PODs some.
- Reformatted to 4-space indenting.
0.41 Wed Jan 5 12:31:18 EST 2000
- Renamed 'nativepath' to 'pathnorm'.
- Worked on 'stdopts' method.
- Removed overcomplicated 'dbglevel' stuff.
0.42 Sun Jan 9 18:15:39 EST 2000
- POD work
- Fixed quoting bug.
- Defer errors to caller in ipc_childsafe call.
0.45 Fri Jan 14 21:42:12 EST 2000
- Added anon-hash metthod of setting attrs
- Implemented non-sticky context-sensitive attrs.
- Implemented ->stdout(2) and ->stderr(1), etc.
- Renamed stdopts method to attropts.
- push(@EXPORT_OK, MSWIN) constant.
0.46 Sun Jan 16 06:18:11 EST 2000
- bugfix in functional interface
0.47 Tue Jan 18 21:09:41 EST 2000
- Regularized handling of qx/qv/ccqv/etc
0.48 Sun Jan 30 22:40:17 EST 2000
- Renamed 'systemxargs' to 'syxargs'.
- Renamed 'pathnorm' to 'inpathnorm', and added
an 'outpathnorm' method as well.
- Renamed 'cmd' method to 'argv' (to avoid
confusion with $self->ipc_cleartool->cmd()
method.
- Added ->syfail and ->qxfail attributes.
- Allow hashref attr specifiers to have a leading '-'.
0.49 Wed Feb 2 14:56:04 EST 2000
- Bugfix - qx() was overwriting stderr output with stdout
when both were redirected, in ipc_childsafe mode.
- Added an "exception-handling" capability. The autofail
attr can be a code-ref indicating a function to
call on failure, or an array-ref of which the first
element is a code-ref as above and the remainder
constitutes the arguments to pass to said sub.
- Allow constructor to be called as ->clone to clone
an existing instance.
- Reworked ipc_childsafe to only allow derived classes
access to the coprocess (since the base class cannot
directly support it).
- Reworked attropts() to allow prefix_pattern to be specified.
- Normalised -dbglevel output somewhat - made normal mode
show returned data at dbglevel >= 2 since ipc mode does so.
0.50 Wed Feb 16 11:52:40 EST 2000
- Added experimental AUTOLOAD capability, analogous
to "perldoc Shell".
0.51 Mon Apr 3 17:26:46 EDT 2000
- The 'quote' method now returns $self instead of @_.
This is to emphasize the fact that it modifies @_ in place.
- Propagate class attributes into the env to set the defaults
for child processes.
- Cleaned up issues related to Getopt::Long::Configure and
default settings.
0.54 Thu Aug 10 11:54:14 EDT 2000
- Compatibility for old Data::Dumper builds without Dumpxs.
0.55 Thu Nov 30 15:14:29 EST 2000
- Bugfix for case where ->exec returns on UNIX.
- Bugfix: previous versions silently removed '--' from @ARGV.
- POD work.
----------------------------------------------------------------------------
1.00 Wed Aug 29 00:10:24 EDT 2001
= Test Env: Solaris 8/Win2K SP2/Perl 5.6/CC 4.2
- Fixed a bug in the interaction with IPC::ChildSafe;
the status from system() wasn't being correctly returned
in coprocess mode.
- Added a ->quiet() attribute which suppresses stdout from
system and exec (but not qx).
- Minor cosmetic fix: in verbose mode, quote whitespace
so the resulting cmdline can be pasted back into a shell.
- Insist on a modern (>=2.23) Getopt::Long for simplicity.
- Bugfixes contributed by Silvio Wanka of alcatel.de.
- Try to use Clone or Storable modules for cloning if present;
they're significantly faster. (Then removed Clone again
for now, it's not ready for prime time).
- Minor new feature: the ->autofail exception-handling
mechanism now allows a scalar-ref; the scalar will be
incremented for each execution error.
- Improved verbosity (dbglevel=1) to show when cmd lines
are split up for syxargs() reasons.
- Bugfix in ->summary class method.
- Recognizing that the API has reached maturity,
I've moved the version to indicate a released state.
I'll try hard to stay compatible with 1.00 in
subsequent releases.
1.01 Mon Sep 3 21:53:25 EDT 2001
- More cleanups of ->summary class method; try to make
invocation and argument counts agree better.
- Bugfix in ->argv method.
1.02 Tue Sep 25 10:17:42 EDT 2001
- *COMPATIBILITY ALERT*: The ->inpathnorm attribute now
defaults to OFF on Windows (it's always been a no-op on
UNIX so the only effect is on Windows). In previous
versions the default was ON. Programs which depended on
this default must now set it explicitly.
- Reworked ->outpathnorm to be overrideable. This does not
change any semantics in Argv per se.
1.03 Wed Oct 3 11:56:58 EDT 2001
- Added ->envp method to specify a custom environment for
the child process.
- Added ->dump method (debugging aid).
- Defined a meaning for dbglevel=2; it now shows the $? from
each child process.
- Defined a meaning for dbglevel=3; it now invokes ->dump before
each execution.
1.04 Thu Nov 1 10:52:36 EST 2001
- Clean up and release 1.03 work (1.03 was never released).
1.05 Tue Nov 20 21:48:36 EST 2001
- Minor cleanup work.
- bugfix in ->warning method
- bugfix in interface to IPC::ChildSafe
1.06 Fri Dec 21 07:54:24 EST 2001
- bugfix to let subclasses interface with their own
in-process implementations.
1.07 Sun Jan 13 22:23:38 EST 2002
- Cosmetic improvements to -> envp work (tighter scoping, no
semantic effect).
- Cosmetic improvement to dbglevel=1 verbosity quoting.
- Fixed ->exec return codes on Windows ($?<<=8).
1.08 Tue Mar 5 14:37:51 EST 2002
- Added ->readonly attribute. Helpful with ->noexec (see).
1.09 Wed May 8 17:13:42 EDT 2002
- Changed autoquoting strategy to always respect single
quotes on 'arg', escape "arg" to look like \"arg\", and
allow a particular arg to opt out of autoquoting by
prepending "^" as in ^arg.
1.10 Tue Jul 22 10:35:41 EDT 2003
- Fixed contact data.
1.11 Wed Dec 31 12:37:08 EST 2003
- Allow negative arguments to ->qxargs() and ->syxargs()
to specify a maximum command-line length. As a special
case, a value of -1 means to look up and use ARG_MAX.
Also, the default was changed to -1. Thus cmd lines are
now limited by length according to the OS limit instead
of an arbitrary number.
This was suggested by, and a sample implementation was
provided by, Alex Harper of Digital Motorworks.
- Bugfix: chunked qx() would continue past a failed chunk
and lose $?. It still continues but now remembers $?.
- Feature: the ->argv() method now returns the entire
command line when called with no arguments.
1.12 Thu Jan 29 12:31:07 EST 2004
- Added ->lastresults method for use in exception handlers.
1.13 Fri Oct 29 17:57:01 EDT 2004
- Fixed a typo reported by Leo Sager which caused internal
and external redirections to confuse each other.
1.14 Mon Mar 14 11:13:42 EST 2005
- Allow ->stdout() and ->stderr() to specify any EXPR
which is valid to open(), e.g. ->stdout(">>/tmp/foo");
- Show redirections in verbosity output.
- Previously, when std{in,out,err} were turned off, this was
done by closing the handle. Now, the handle is connected to
the null device (/dev/null or NUL) instead because closing
these standard descriptors can raise complications.
- Various other cleanups vis-a-vis the -std*() redirection methods.
- Improve ->inpathnorm() reliability.
- Fix to autoquoting: on windows globbing is not handled
by the shell so we let '*' go by.
1.15 Tue Mar 29 23:47:15 EST 2005
- Show file redirections using \ on Windows.
- Removed CORE:: from exec functions: unnecessarily
constrictive for users.
- Bugfix: enhanced redirection code was not working right
for ->qx (reported by Andrew Maguire).
- Renamed the ->dump method to ->objdump to avoid name
conflicts. I doubt anyone ever used this explicitly
(if I'm wrong, sorry!).
1.16 Tue Oct 24 14:40:00 EDT 2006
- Accepted patches contributed by Kenneth Olving implementing
the new ->pipe method and surrounding support code for Win32:
- Ensure cloning code also 'clones' the pipe callback
- Added code in Makefile.PL to tell user about optional modules
useful for the ->pipe method on Win32.
- Updated docs and fixed some typos.
1.17 Fri Oct 27 10:29:33 EDT 2006
- Minor documentation tweaks.