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