xref: /aosp_15_r20/external/shflags/doc/CHANGES-1.3.md (revision 63d4e48fb639f6414be0db9d718e3be2667e4fed)
1*63d4e48fSSadaf Ebrahimi# Changes in shFlags
2*63d4e48fSSadaf Ebrahimi
3*63d4e48fSSadaf Ebrahimi## 1.3.x development series
4*63d4e48fSSadaf Ebrahimi
5*63d4e48fSSadaf Ebrahimi### Changes with 1.3.0
6*63d4e48fSSadaf Ebrahimi
7*63d4e48fSSadaf Ebrahimi*A new series was started due to the major changes required for 'set -e' support.*
8*63d4e48fSSadaf Ebrahimi
9*63d4e48fSSadaf EbrahimiUpgraded shUnit2 to HEAD, which includes 'set -e' support.
10*63d4e48fSSadaf Ebrahimi
11*63d4e48fSSadaf EbrahimiFixed #9. shFlags now works properly with 'set -e' enabled.
12*63d4e48fSSadaf Ebrahimi
13*63d4e48fSSadaf EbrahimiFixed #50. The `FLAGS_ARGC` variable is no longer is no longer exported. The variable was marked obsolete in 1.0.3, and it is finally being removed.
14*63d4e48fSSadaf Ebrahimi
15*63d4e48fSSadaf EbrahimiIssue #57. Added `shflags_issue_57.sh` to ensure 'set -o pipefail' doesn't break functionality.
16*63d4e48fSSadaf Ebrahimi
17*63d4e48fSSadaf Ebrahimi---
18*63d4e48fSSadaf Ebrahimi
19*63d4e48fSSadaf Ebrahimi## 1.2.x stable series
20*63d4e48fSSadaf Ebrahimi
21*63d4e48fSSadaf Ebrahimi### Changes with 1.2.3
22*63d4e48fSSadaf Ebrahimi
23*63d4e48fSSadaf EbrahimiUpgraded shUnit2 to 2.1.7.
24*63d4e48fSSadaf Ebrahimi
25*63d4e48fSSadaf EbrahimiFixed the examples to work again with the new code structure.
26*63d4e48fSSadaf Ebrahimi
27*63d4e48fSSadaf EbrahimiRemoved `gen_test_report.sh` as it isn't used anymore.
28*63d4e48fSSadaf Ebrahimi
29*63d4e48fSSadaf EbrahimiMinor fix for `_flags_underscoreName()` to insure POSIX compliance.
30*63d4e48fSSadaf Ebrahimi
31*63d4e48fSSadaf EbrahimiCleanup of pre-GitHub cruft.
32*63d4e48fSSadaf Ebrahimi
33*63d4e48fSSadaf EbrahimiFixed bug in `_flags_columns()` where `stty size` sometimes gave unexpected
34*63d4e48fSSadaf Ebrahimioutput, causing the function to not work.
35*63d4e48fSSadaf Ebrahimi
36*63d4e48fSSadaf EbrahimiReplaced `test_runner` with upstream from https://github.com/kward/shlib.
37*63d4e48fSSadaf Ebrahimi
38*63d4e48fSSadaf Ebrahimi### Changes with 1.2.2
39*63d4e48fSSadaf Ebrahimi
40*63d4e48fSSadaf EbrahimiRan all scripts through [ShellCheck](http://www.shellcheck.net/).
41*63d4e48fSSadaf Ebrahimi
42*63d4e48fSSadaf EbrahimiReplaced `shflags_test.sh` with `test_runner` from https://github.com/kward/shlib.
43*63d4e48fSSadaf Ebrahimi
44*63d4e48fSSadaf EbrahimiFixed issue #45. Empty help string causes `shflags_test_issue_28.sh` to fail.
45*63d4e48fSSadaf Ebrahimi
46*63d4e48fSSadaf EbrahimiContinuous integration testing setup with [Travis CI](https://travis-ci.org/kward/shflags).
47*63d4e48fSSadaf Ebrahimi
48*63d4e48fSSadaf EbrahimiRestructured code to be more GitHub like.
49*63d4e48fSSadaf Ebrahimi
50*63d4e48fSSadaf Ebrahimi### Changes with 1.2.1
51*63d4e48fSSadaf Ebrahimi
52*63d4e48fSSadaf EbrahimiFixed issue #43. Added support for BusyBox `ash` shell.
53*63d4e48fSSadaf Ebrahimi
54*63d4e48fSSadaf EbrahimiFixed issues #26, #27. Re-factored `_flags_itemInList()` to use built-ins.
55*63d4e48fSSadaf Ebrahimi
56*63d4e48fSSadaf EbrahimiFixed issue #31. Documented newline support in `FLAGS_HELP`.
57*63d4e48fSSadaf Ebrahimi
58*63d4e48fSSadaf EbrahimiFixed issue #28. `DEFINE_boolean` misbehaves when help-string is empty.
59*63d4e48fSSadaf Ebrahimi
60*63d4e48fSSadaf EbrahimiFixed issue #25. Fix some typos.
61*63d4e48fSSadaf Ebrahimi
62*63d4e48fSSadaf Ebrahimi### Changes with 1.2.0
63*63d4e48fSSadaf Ebrahimi
64*63d4e48fSSadaf EbrahimiChanged from the LGPL v2.1 license to the Apache v2.0 license so that others can include the library or make changes without needing to release the modified source code as well.
65*63d4e48fSSadaf Ebrahimi
66*63d4e48fSSadaf EbrahimiMoved documentation to Markdown.
67*63d4e48fSSadaf Ebrahimi
68*63d4e48fSSadaf EbrahimiMigrated the code to GitHub as http://code.google.com/ is turning down.
69*63d4e48fSSadaf Ebrahimi
70*63d4e48fSSadaf EbrahimiFixed issue #10. Usage of `expr` under FreeBSD 7.2 (FreeNAS 0.7.1) and FreeBSD 8.0 that was causing many unit tests to fail.
71*63d4e48fSSadaf Ebrahimi
72*63d4e48fSSadaf EbrahimiFixed issue where booleans were sometimes mis-configured to require additional values like other flags.
73*63d4e48fSSadaf Ebrahimi
74*63d4e48fSSadaf EbrahimiChanged `_flags_fatal()` to exit with `FLAGS_ERROR` immediately.
75*63d4e48fSSadaf Ebrahimi
76*63d4e48fSSadaf EbrahimiFixed issue #11. When help is requested, the help flag is no longer prefixed with '[no]'.
77*63d4e48fSSadaf Ebrahimi
78*63d4e48fSSadaf EbrahimiUpgraded shUnit2 to 2.1.6.
79*63d4e48fSSadaf Ebrahimi
80*63d4e48fSSadaf EbrahimiFixed issue #12. Requesting help shouldn't be considered an error.
81*63d4e48fSSadaf Ebrahimi
82*63d4e48fSSadaf EbrahimiAdded the ability to override the use of the OS default `getopt` command by defining the `FLAGS_GETOPT_CMD` variable.
83*63d4e48fSSadaf Ebrahimi
84*63d4e48fSSadaf EbrahimiUpdated `gen_test_results.sh` and versions from shUnit2 source.
85*63d4e48fSSadaf Ebrahimi
86*63d4e48fSSadaf EbrahimiFixed issues #13, #14. Added support for dashes '-' in long flag names. The defined flag will still be declared with underscores '\_' due to shell limitations, so only one of a dashed flag name or an underscored flag name are allowed, not both. (Backslash on _ to prevent Markdown formatting.)
87*63d4e48fSSadaf Ebrahimi
88*63d4e48fSSadaf EbrahimiIssue #20. Updated LGPL v2.1 license from http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt.
89*63d4e48fSSadaf Ebrahimi
90*63d4e48fSSadaf EbrahimiIssue #15. Use `gexpr` instead of `expr` on BSD variants.
91*63d4e48fSSadaf Ebrahimi
92*63d4e48fSSadaf EbrahimiMinor tweaks to make run on FreeBSD 9.1.
93*63d4e48fSSadaf Ebrahimi
94*63d4e48fSSadaf EbrahimiFixed issue in `shflags_test_public.sh` where screens >80 columns were causing a test to fail.
95*63d4e48fSSadaf Ebrahimi
96*63d4e48fSSadaf EbrahimiIssue #22. Fixed broken `testGetFlagInfo()` test.
97*63d4e48fSSadaf Ebrahimi
98*63d4e48fSSadaf EbrahimiCreated alternate `validFloat()` and `validInt()` functions that use shell built-ins where possible to increase performance and reduce the usage of the `expr` command.
99*63d4e48fSSadaf Ebrahimi
100*63d4e48fSSadaf EbrahimiAdded separate built-in and `expr` functions for doing math.
101*63d4e48fSSadaf Ebrahimi
102*63d4e48fSSadaf Ebrahimi---
103*63d4e48fSSadaf Ebrahimi
104*63d4e48fSSadaf Ebrahimi## 1.0.x stable series
105*63d4e48fSSadaf Ebrahimi
106*63d4e48fSSadaf Ebrahimi### Changes with 1.0.3
107*63d4e48fSSadaf Ebrahimi
108*63d4e48fSSadaf EbrahimiMAJOR CHANGE! `FLAGS_ARGC` is now obsolete, and is replaced by `FLAGS_ARGV`. See below for more info.
109*63d4e48fSSadaf Ebrahimi
110*63d4e48fSSadaf EbrahimiFixed issue# 7 where long flags defined with '=' (e.g. `--abc=123`) made it impossible for the user to know how many non-flag command-line arguments were available because the value returned by `FLAGS_ARGC` was wrong. The `FLAGS_ARGC` value is now obsolete, but will be maintained for backwards compatibility. The new method of getting the non-flag arguments is by executing `eval set -- "${FLAGS_ARGV}"` after the `FLAGS` call. The arguments will then be available using the standard shell $#, $@, $\*, $1, etc. variables. (Backslash on \* to prevent Markdown formatting.)
111*63d4e48fSSadaf Ebrahimi
112*63d4e48fSSadaf EbrahimiDue to above fix for issue# 7, there is now proper support for mixing flags with non-flag arguments on the command-line. Previously, all non-flag arguments had to be at the end of the command-line.
113*63d4e48fSSadaf Ebrahimi
114*63d4e48fSSadaf EbrahimiRenamed `_flags_standardGetopt()` and `_flags_enhancedGetopt()` functions to `_flags_getoptStandard()` and `_flags_getoptEnhanced()`.
115*63d4e48fSSadaf Ebrahimi
116*63d4e48fSSadaf EbrahimiTook out the setting and restoration of the '-u' shell flag to treat unset variables as an error. No point in having it in this library as it is verified in the unit tests, and provides basically no benefit.
117*63d4e48fSSadaf Ebrahimi
118*63d4e48fSSadaf EbrahimiFixed bug under Solaris where the generated help was adding extra 'x' characters.
119*63d4e48fSSadaf Ebrahimi
120*63d4e48fSSadaf EbrahimiAdded checks for reserved flag variables (e.g. `FLAGS_TRUE`).
121*63d4e48fSSadaf Ebrahimi
122*63d4e48fSSadaf EbrahimiFixed some unset variable bugs.
123*63d4e48fSSadaf Ebrahimi
124*63d4e48fSSadaf EbrahimiNow report the actual `getopt` error if there is one.
125*63d4e48fSSadaf Ebrahimi
126*63d4e48fSSadaf EbrahimiAll tests now properly enable skipping based on whether a standard or enhanced `getopt` is found.
127*63d4e48fSSadaf Ebrahimi
128*63d4e48fSSadaf EbrahimiAdded the OS version to OS release for Solaris.
129*63d4e48fSSadaf Ebrahimi
130*63d4e48fSSadaf EbrahimiFixed `flags_reset()` so it unsets the default value environment vars.
131*63d4e48fSSadaf Ebrahimi
132*63d4e48fSSadaf Ebrahimi### Changes with 1.0.2
133*63d4e48fSSadaf Ebrahimi
134*63d4e48fSSadaf Ebrahimi`${FLAGS_PARENT}` no longer transforms into a constant so that it can be defined at run time in scripts.
135*63d4e48fSSadaf Ebrahimi
136*63d4e48fSSadaf EbrahimiAdded warning about short flags being unsupported when there are problems
137*63d4e48fSSadaf Ebrahimiparsing the options with `getopt`.
138*63d4e48fSSadaf Ebrahimi
139*63d4e48fSSadaf EbrahimiAdd default values to end of description strings.
140*63d4e48fSSadaf Ebrahimi
141*63d4e48fSSadaf EbrahimiFixed bug that returned an error instead of success when recalling the default values for empty strings.
142*63d4e48fSSadaf Ebrahimi
143*63d4e48fSSadaf EbrahimiAdded warning when a duplicate flag definition is attempted.
144*63d4e48fSSadaf Ebrahimi
145*63d4e48fSSadaf EbrahimiImproved `assert[Warn|Error]Msg()` test helper grepping.
146*63d4e48fSSadaf Ebrahimi
147*63d4e48fSSadaf EbrahimiReplaced shell_versions.sh with a new versions library and created `gen_test_results.sh` to make releases easier.
148*63d4e48fSSadaf Ebrahimi
149*63d4e48fSSadaf EbrahimiCopied the coding standards from shUnit2, but haven't fully implemented them in shFlags yet.
150*63d4e48fSSadaf Ebrahimi
151*63d4e48fSSadaf EbrahimiIssue# 1: When a user defines their own `--help` flag, no more warning is thrown when `FLAGS()` is called stating that the help flag already defined.
152*63d4e48fSSadaf Ebrahimi
153*63d4e48fSSadaf EbrahimiIssue# 2: Passing the `--nohelp` option no longer gives help output.
154*63d4e48fSSadaf Ebrahimi
155*63d4e48fSSadaf EbrahimiIssue# 3: Added support for screen width detection.
156*63d4e48fSSadaf Ebrahimi
157*63d4e48fSSadaf Ebrahimi### Changes with 1.0.1
158*63d4e48fSSadaf Ebrahimi
159*63d4e48fSSadaf EbrahimiFixed bug where the help output added '[no]' to all flag names
160*63d4e48fSSadaf Ebrahimi
161*63d4e48fSSadaf EbrahimiAdded additional example files that are referenced by the documentation.
162*63d4e48fSSadaf Ebrahimi
163*63d4e48fSSadaf EbrahimiImproved `zsh` version and option checking.
164*63d4e48fSSadaf Ebrahimi
165*63d4e48fSSadaf EbrahimiUpgraded shUnit2 to 2.1.4
166*63d4e48fSSadaf Ebrahimi
167*63d4e48fSSadaf EbrahimiAdded unit testing for the help output.
168*63d4e48fSSadaf Ebrahimi
169*63d4e48fSSadaf EbrahimiWhen including a library (e.g. shflags) in a script, zsh 3.0.8 doesn't actually execute the code in-line, but later. As such, variables that are defined in the library cannot be used until functions are called from the main code. This required the 'help' flag definition to be moved inside the `FLAGS` command.
170*63d4e48fSSadaf Ebrahimi
171*63d4e48fSSadaf Ebrahimi### Changes with 1.0.0
172*63d4e48fSSadaf Ebrahimi
173*63d4e48fSSadaf EbrahimiThis is the first official release, so everything is new.
174