95 lines
3.1 KiB
Plaintext
95 lines
3.1 KiB
Plaintext
|
------------------------------
|
||
|
shFlags.sh 1.0.3 Release Notes
|
||
|
------------------------------
|
||
|
|
||
|
Preface
|
||
|
=======
|
||
|
Copyright 2008-2009 Kate Ward. All Rights Reserved.
|
||
|
Released under the LGPL (GNU Lesser General Public License)
|
||
|
Author: kate.ward@forestent.com (Kate Ward)
|
||
|
|
||
|
This document covers any known issues and workarounds for the stated release of
|
||
|
shFlags.
|
||
|
|
||
|
Release info
|
||
|
============
|
||
|
|
||
|
This is a major bug fix release. The biggest fix is in how non-flag arguments are
|
||
|
made available to the script.
|
||
|
|
||
|
Major changes
|
||
|
-------------
|
||
|
|
||
|
The use of the ``FLAGS_ARGC`` variable is now obsolete. It will be maintained
|
||
|
for backwards compatibility with old scripts, but its value is known to be
|
||
|
wrong when flag and non-flag arguments are mixed together on the command-line.
|
||
|
|
||
|
To gain access to the non-flag arguments, replace the following snippet of code
|
||
|
in your scripts with the updated version.
|
||
|
|
||
|
old ::
|
||
|
shift ${FLAGS_ARGC}
|
||
|
|
||
|
new ::
|
||
|
eval set -- "${FLAGS_ARGV}"
|
||
|
|
||
|
Please see the CHANGES-1.0.txt file for a complete list of changes.
|
||
|
|
||
|
Obsolete items
|
||
|
--------------
|
||
|
|
||
|
Bug fixes
|
||
|
---------
|
||
|
|
||
|
Issue# 7 Flags set with '=' result in off-by-one shifting error
|
||
|
|
||
|
General info
|
||
|
============
|
||
|
|
||
|
The unit tests
|
||
|
--------------
|
||
|
|
||
|
shFlags is designed to work on as many environments as possible, but not all
|
||
|
environments are created equal. As such, not all of the unit tests will succeed
|
||
|
on every platform. The unit tests are therefore designed to fail, indicating to
|
||
|
the tester that the supported functionality is not present, but an additional
|
||
|
test is present to verify that shFlags properly caught the limitation and
|
||
|
presented the user with an appropriate error message.
|
||
|
|
||
|
shFlags tries to support both the standard and enhanced versions of ``getopt``.
|
||
|
As each responds differently, and not everything is supported on the standard
|
||
|
version, some unit tests will be skipped (i.e. ASSERTS will not be thrown) when
|
||
|
the standard version of ``getopt`` is detected. The reason being that there is
|
||
|
no point testing for functionality that is positively known not to exist. A
|
||
|
tally of skipped tests will be kept for later reference.
|
||
|
|
||
|
Standard vs Enhanced getopt
|
||
|
---------------------------
|
||
|
|
||
|
Here is a matrix of the supported features of the various **getopt** variants.
|
||
|
|
||
|
+=========================================+=====+=====+
|
||
|
| Feature | std | enh |
|
||
|
+-----------------------------------------+-----+-----+
|
||
|
| short option names | Y | Y |
|
||
|
| long option names | N | Y |
|
||
|
| spaces in string options | N | Y |
|
||
|
| intermixing of flag and non-flag values | N | Y |
|
||
|
+=========================================+=====+=====+
|
||
|
|
||
|
Known Issues
|
||
|
------------
|
||
|
|
||
|
The **getopt** version provided by default with all versions of Mac OS X (up to
|
||
|
and including 10.5.6) and Solaris (up to and including Solaris 10 and
|
||
|
OpenSolaris) is the standard version.
|
||
|
|
||
|
Workarounds
|
||
|
-----------
|
||
|
|
||
|
The Zsh shell requires the ``shwordsplit`` option to be set and the special
|
||
|
``FLAGS_PARENT`` variable must be defined. See ``src/shflags_test_helpers`` to
|
||
|
see how the unit tests do this.
|
||
|
|
||
|
.. vim:fileencoding=latin1:ft=rst:spell:tw=80
|