mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Add error message for ambiguous long-form option abbreviation
Before: $ set -o hist -ksh: set: hist: bad option(s) After: $ set --hist -ksh: set: hist: ambiguous option In ksh 93u+m, there are three options starting with 'hist', so the abbreviation does not represent a single option. It is useful to communicate this in the error message. In addition, "bad option(s)" was changed to "unknown option", the same message as that given by AST optget(3), for consistency. src/cmd/ksh93/sh/string.c: - Make sh_lookopt() return -1 for an ambiguous option. This is trivial as there is already an 'amb' variable flagging that up. src/cmd/ksh93/sh/args.c: - Use the negative sh_lookopt() return status to decide between "unknown option" and "ambiguous option". src/cmd/ksh93/data/builtins.c: sh_set[]: - Explain the --option and --nooption forms in addition to the -o option and +o option forms. - Document the long options without their 'no' prefixes (e.g. glob instead of noglob) as this simplifies documentation and the relation with the short options makes more sense. Those names are also how they show up in 'set -o' output and it is better for those to match. - Tweaks.
This commit is contained in:
parent
4f9456d69f
commit
3030197b89
9 changed files with 40 additions and 30 deletions
|
|
@ -905,7 +905,7 @@ done
|
|||
# ksh2020 regression: https://github.com/att/ast/issues/1284
|
||||
actual=$($SHELL --verson 2>&1)
|
||||
actual_status=$?
|
||||
expect=': verson: bad option(s)'
|
||||
expect=': verson: @(bad option(s)|unknown option)'
|
||||
expect_status=2
|
||||
[[ "$actual" == *${expect}* ]] || err_exit "failed to handle invalid flag" \
|
||||
"(expected *$(printf %q "$expect")*, got $(printf %q "$actual"))"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue