| 1 | _bad() {
|
| 2 | #argv "$@"
|
| 3 |
|
| 4 | echo '_bad returning 124'
|
| 5 |
|
| 6 | # This caused an infinite loop in OSH, but not in bash. We have to test if
|
| 7 | # the return value is 124 AND the compspec was updated.
|
| 8 | #
|
| 9 | # In bash, it seems like you EITHER set COMPREPLY or return 124, not BOTH!
|
| 10 | # If it sees 124, it doesn't process the completions (unlike OSH at the
|
| 11 | # moment).
|
| 12 |
|
| 13 | #COMPREPLY=(x y)
|
| 14 |
|
| 15 | return 124
|
| 16 | }
|
| 17 | complete -F _bad bad
|
| 18 |
|
| 19 | _both() {
|
| 20 | #echo '_both setting COMPREPLY and returning 124'
|
| 21 | COMPREPLY=(x y)
|
| 22 | return 124
|
| 23 | }
|
| 24 | complete -F _both both
|
| 25 |
|
| 26 | _both2() {
|
| 27 | #echo '_both setting COMPREPLY and returning 124'
|
| 28 | COMPREPLY=(x y)
|
| 29 | complete -W 'b1 b2' both2
|
| 30 | return 124
|
| 31 | }
|
| 32 | complete -F _both2 both2
|
| 33 |
|
| 34 | _default() {
|
| 35 | echo '_default returning 124 without changing completion spec'
|
| 36 | # We're supposed to source something here, but we didn't
|
| 37 | return 124
|
| 38 | }
|
| 39 |
|
| 40 | complete -F _default -D
|