- Decrement integers without defining a new widget
- Preserve the number of leading zeros
- Increment binaries, octals, and hexadecimals
- Move the cursor to the end of the incremented integer
- Create a sequence of integers across terminal panes
- Add a Vim variant
- Also add tests
1) Document the behavior of "typeset -n existing_var" (via Jun T. comment)
2) Prohibit "typeset -nm pattern" because, well, it's insane. Add test.
3) Improve doc for ${(!)ref} including ${{t!)ref} (Jun T.)
4) Fix doc for how-to unset of a named ref (Jun T.)
5) Allow "typeset +r -n ref" and "typeset +r +n ref" (Jun T.)
6) Fix "typeset -r -n ref=param" to create readonly references
7) Avoid accidental removal of PM_UNSET flag (Jun T.) and update test
8) Fix "typeset -gn ref=value" and add a test for it
9) Add tests for read-only reference behavior
10) Fix infinite recursion when resolving scope of an unset local
named reference, add test.
This solves the following problems in the _prefix completer:
- The old code had logic for dealing with compstate[unambiguous] that
was unnecessary. It works fine without it.
- Because of this logic, if a widget set compstate[insert]=1 after
calling _main_complete, an `x` was left after the completion on the
command line.
- If the same widget also set `compstate[to_end]=`, then instead, the
last character of the inserted completion would be treated as an
autoremovable suffix, with the actual suffix being inserted to the
line as a normal character.
- After inserting a completion, the cursor would move to the end of the
entire current word on the command, not the end of word that was
inserted. This is not what you want with _prefix, since you are trying
to complete a word _before_ the one on the command line, after which
you usually want to insert a separator, such as a space or slash,
before the next word.
When completing inside ~[...] (_with_ the trailing `]` present), the
following bugs occured:
- Subscript completion was skipped entirely when there were one or more
slashes ('/') in the subscript, which is incorrect, since slashes are
allowed there.
- Instead of going through _complete, $_comps[-subscript-] was called
immediately, causing _setup to be skipped.
- If succesful, _main_complete was exited right after, causing
menu-style, comppostfuncs and other essential completion features to
be skipped.
This is a special case where TRAPEXIT is unset within a TRAPEXIT
as it should never run in a nested context, so just save the
function structure temporarily on the heap.
A bug with zmodload when unloading/reloading a static module caused the
state of the shell options to change during K01 test. Worked around it.
Also changed warnnestedvar messages to look more like other such.