1Version 4.3.5 contains both bugfixes and improvements. Further progress 2has been made in support for multibyte character set and in most cases 3this is thought to be stable although a few glitches remain. 4 5Visible changes in the shell and its modules since 4.3.4 include the 6following: 7 8A new module zsh/curses provides the builtin zcurses for access 9to the curses screen manipulation package; see the entry in the zsh/modules 10manual. Configuration of terminal libraries is now easier with the 11--with-term-lib option to configure. 12 13The module system has been extended to add "features" which can 14be manipulated with zmodload -F. This allows a more convenient and 15powerful way of manipulating builtins, parameters, mathematical functions 16and test operators provided by modules. For example, 17 zmodload -aF zsh/datetime b:strftime p:EPOCHSECONDS 18specifies that builtin strftime and parameter EPOCHSECONDS are to be 19autoloaded from the module zsh/datetime, but that no other features 20from zsh/datetime will be enabled without being specifically mentioned. 21In addition, the zsh/stat module can now be loaded with 22 zmodload -F zsh/stat b:zstat 23to make the builtin available under the name "zstat". The alternative 24name "stat" is still available but commonly clashes with the name of an 25external binary. The completion system has been modified to use only 26"zstat". 27 28"zmodload -i" behaviour is now the default, so "zmodload <module>" 29no longer fails if <module> is already loaded. 30 31The globbing flag (#cN,M) is an extension of the extended globbing 32# and ## pattern operators, forcing the previous expression to match 33at least N and no more than M times, similar to {N,M} in regular 34expressions. 35 36In zsh native mode (NO_KSH_ARRAYS), retrieving array subscript zero returns 37the empty string or attempting to set subscript zero with arrays is now an 38error. This was previously a source of difficult to find problems. 39The old behaviour can be obtained with the KSH_ZERO_SUBSCRIPT option 40for compatibility, however there is no reason to use this in new 41shell code and KSH_ARRAYS should be preferred for compatibility with 42other shells. 43 44Previously, splitting quoted parameters using "${(s.:.)param}" removed 45empty fields. This is incompatible with the usual effect of quoting 46parameters. This behaviour has been retained for compatibility, 47but using an explicit "@" flag as in "${(@s.:.)param}" forces 48empty fields to be retained. 49 50The sched module has a parameter zsh_scheduled_events that makes 51querying scheduled events from a function easier. 52 53The calendar function system can now use UIDs imported from other calendar 54systems to identify entries for replacing. Handling of recurring events 55is more robust but still limited. 56