aboutsummaryrefslogtreecommitdiff
path: root/doc/CHANGES-1.2.md
blob: b128eb97c74d094323f42398926d908c96570ad0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# Changes in shFlags

## Changes with 1.2.3

Upgraded shUnit2 to 2.1.7.

Fixed the examples to work again with the new code structure.

Removed `gen_test_report.sh` as it isn't used anymore.

Minor fix for `_flags_underscoreName()` to insure POSIX compliance.

Cleanup of pre-GitHub cruft.

Fixed bug in `_flags_columns()` where `stty size` sometimes gave unexpected
output, causing the function to not work.

Replaced `test_runner` with upstream from https://github.com/kward/shlib.

## Changes with 1.2.2

Ran all scripts through [ShellCheck](http://www.shellcheck.net/).

Replaced `shflags_test.sh` with `test_runner` from
https://github.com/kward/shlib.

Fixed issue #45. Empty help string causes `shflags_test_issue_28.sh` to fail.

Continuous integration testing setup with [Travis
CI](https://travis-ci.org/kward/shflags).

Restructured code to be more GitHub like.

## Changes with 1.2.1

Fixed issue #43. Added support for BusyBox `ash` shell.

Fixed issues #26, #27. Re-factored `_flags_itemInList()` to use built-ins.

Fixed issue #31. Documented newline support in FLAGS_HELP.

Fixed issue #28. DEFINE_boolean misbehaves when help-string is empty.

Fixed issue #25. Fix some typos.

## Changes with 1.2.0

Changed 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.

Moved documentation to Markdown.

Migrated the code to GitHub as http://code.google.com/ is turning down.

Fixed 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.

Fixed issue where booleans were sometimes mis-configured to require additional
values like other flags.

Changed `_flags_fatal()` to exit with `FLAGS_ERROR` immediately.

Fixed issue #11. When help is requested, the help flag is no longer prefixed
with '[no]'.

Upgraded shUnit2 to 2.1.6.

Fixed issue #12. Requesting help shouldn't be considered an error.

Added the ability to override the use of the OS default `getopt` command by
defining the `FLAGS_GETOPT_CMD` variable.

Updated `gen_test_results.sh` and versions from shUnit2 source.

Fixed 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.)

Issue #20. Updated LGPL v2.1 license from
http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt.

Issue #15. Use `gexpr` instead of `expr` on BSD variants.

Minor tweaks to make run on FreeBSD 9.1.

Fixed issue in `shflags_test_public.sh` where screens >80 columns were causing a
test to fail.

Issue #22. Fixed broken testGetFlagInfo() test.

Created alternate `validFloat()` and `validInt()` functions that use shell
built-ins where possible to increase performance and reduce the usage of the
`expr` command.

Added separate built-in and `expr` functions for doing math.

## Changes with 1.0.3

MAJOR CHANGE! `FLAGS_ARGC` is now obsolete, and is replaced by `FLAGS_ARGV`. See
below for more info.

Fixed 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.)

Due 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.

Renamed `_flags_standardGetopt()` and `_flags_enhancedGetopt()` functions to
`_flags_getoptStandard()` and `_flags_getoptEnhanced()`.

Took 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.

Fixed bug under Solaris where the generated help was adding extra 'x'
characters.

Added checks for reserved flag variables (e.g. `FLAGS_TRUE`).

Fixed some unset variable bugs.

Now report the actual `getopt` error if there is one.

All tests now properly enable skipping based on whether a standard or enhanced
`getopt` is found.

Added the OS version to OS release for Solaris.

Fixed `flags_reset()` so it unsets the default value environment vars.

## Changes with 1.0.2

${FLAGS_PARENT} no longer transforms into a constant so that it can be defined
at run time in scripts.

Added warning about short flags being unsupported when there are problems
parsing the options with `getopt`.

Add default values to end of description strings.

Fixed bug that returned an error instead of success when recalling the default
values for empty strings.

Added warning when a duplicate flag definition is attempted.

Improved `assert[Warn|Error]Msg()` test helper grepping.

Replaced shell_versions.sh with a new versions library and created
`gen_test_results.sh` to make releases easier.

Copied the coding standards from shUnit2, but haven't fully implemented them in
shFlags yet.

Issue# 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.

Issue# 2: Passing the `--nohelp` option no longer gives help output.

Issue# 3: Added support for screen width detection.

## Changes with 1.0.1

Fixed bug where the help output added '[no]' to all flag names

Added additional example files that are referenced by the documentation.

Improved `zsh` version and option checking.

Upgraded shUnit2 to 2.1.4

Added unit testing for the help output.

When 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.

## Changes with 1.0.0

This is the first official release, so everything is new.