branch.
Major changes between versions 4.2 and 4.3
------------------------------------------
- There is support for multibyte character sets in the line editor,
though not the main shell. See Multibyte Character Support in INSTALL.
- The shell can now run an installation function for a new user
(one with no .zshrc, .zshenv, .zprofile or .zlogin file) without any
additional setting up by the administrator.
- The manual now has a Roadmap section (manual page zshroadmap) to
give new users an indication of the most interesting parts of the manual.
- New option PROMPT_SP, on by default, to work around the problem that the
line editor can overwrite output with no newline at the end.
- New option HIST_SAVE_BY_COPY (on by default): history is saved by
copying and renaming instead of directly overwriting.
- New redirection syntax e.g. {myfd}>file opens a new file descriptor
and stores the number in $myfd, so that >&$myfd will work. Chosen not to
break existing code (and to be compatible with proposals for the Korn
shell).
- Substitutions of the form ${var:-"$@"}, ${var:+"$@"} and similar where
word-splitting is applied to the text after the :- or :+ (in particular,
where the SH_WORD_SPLIT option is in effect for compatibility) now behave
as in other Bourne- and POSIX-compatible shells when in the appropriate
emulation mode.
- New Posix-style zsh-specific tests [[:IDENT:]], [[:IFS:]],
[[:IFSSPACE:]], [[:WORD:]] test if character can appear in identifier, is
an IFS character, is an IFS whitespace character, or is considered as part
of a word (is alphanumeric or appears in $WORDCHARS). Note the pattern
code doesn't yet handle multibyte characters.
- The idiom =(<<<...) is optimised so that the shell internally turns
the ... into the contents of a file whose name is then substituted.
- Supplied functions catch and throw provide limited support for
exception handling using the `{ ... } always { ... }' syntax.
- Signals now accept the SIG as part of the name for compatibility with
other shells.
- Editor function argument-base allows non-decimal arguments for
editor widgets.
- As always, there are many enhancements to completion functions.
makeinfo if no native makeinfo executable exists. Honor TEXINFO_REQD
when determining whether the native makeinfo can be used.
* Remove USE_MAKEINFO and replace it with USE_TOOLS+=makeinfo.
* Get rid of all the "split" argument deduction for makeinfo since
the PLIST module already handles varying numbers of split info files
correctly.
NOTE: Platforms that have "makeinfo" in the base system should check
that the makeinfo entries of pkgsrc/mk/tools.${OPSYS}.mk are
correct.
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
"extract" script for extraction. Many cases where a custom EXTRACT_CMD
simply copied the distfile into the work directory are no longer
needed. The extract script also hides differences between pax and
tar behind a common command-line interface, so we no longer need code
that's conditional on whether EXTRACT_USING is tar or pax.
Changes since last packaged version (2.3.0):
2.3.2
- fixed segfault due to checking the length of variables that I forgot to
remove from build_arg_vector() since the chroot root exploit fix in 2.3.0
2.3.1
- fixed stupid bug that caused rssh not to allow rsync and rdist
rather than PKG_FAIL_REASON, so that they provide useful error
messages in build logs, and so that they continue to work on platforms
where they aren't broken.
This is a terse description of the new features added to bash-3.1 since
the release of bash-3.0. As always, the manual page (doc/bash.1) is
the place to look for complete descriptions.
1. New Features in Bash
a. Bash now understands LC_TIME as a special variable so that time display
tracks the current locale.
b. BASH_ARGC, BASH_ARGV, BASH_SOURCE, and BASH_LINENO are no longer created
as `invisible' variables and may not be unset.
c. In POSIX mode, if `xpg_echo' option is enabled, the `echo' builtin doesn't
try to interpret any options at all, as POSIX requires.
d. The `bg' builtin now accepts multiple arguments, as POSIX seems to specify.
e. Fixed vi-mode word completion and glob expansion to perform tilde
expansion.
f. The `**' mathematic exponentiation operator is now right-associative.
g. The `ulimit' builtin has new options: -i (max number of pending signals),
-q (max size of POSIX message queues), and -x (max number of file locks).
h. A bare `%' once again expands to the current job when used as a job
specifier.
i. The `+=' assignment operator (append to the value of a string or array) is
now supported for assignment statements and arguments to builtin commands
that accept assignment statements.
j. BASH_COMMAND now preserves its value when a DEBUG trap is executed.
k. The `gnu_errfmt' option is enabled automatically if the shell is running
in an emacs terminal window.
l. New configuration option: --single-help-strings. Causes long help text
to be written as a single string; intended to ease translation.
m. The COMP_WORDBREAKS variable now causes the list of word break characters
to be emptied when the variable is unset.
n. An unquoted expansion of $* when $IFS is empty now causes the positional
parameters to be concatenated if the expansion doesn't undergo word
splitting.
o. Bash now inherits $_ from the environment if it appears there at startup.
p. New shell option: nocasematch. If non-zero, shell pattern matching ignores
case when used by `case' and `[[' commands.
q. The `printf' builtin takes a new option: -v var. That causes the output
to be placed into var instead of on stdout.
r. By default, the shell no longer reports processes dying from SIGPIPE.
s. Bash now sets the extern variable `environ' to the export environment it
creates, so C library functions that call getenv() (and can't use the
shell-provided replacement) get current values of environment variables.
t. A new configuration option, `--enable-strict-posix-default', which will
build bash to be POSIX conforming by default.
u. If compiled for strict POSIX conformance, LINES and COLUMNS may now
override the true terminal size.
2. New Features in Readline
a. The key sequence sent by the keypad `delete' key is now automatically
bound to delete-char.
b. A negative argument to menu-complete now cycles backward through the
completion list.
c. A new bindable readline variable: bind-tty-special-chars. If non-zero,
readline will bind the terminal special characters to their readline
equivalents when it's called (on by default).
d. New bindable command: vi-rubout. Saves deleted text for possible
reinsertion, as with any vi-mode `text modification' command; `X' is bound
to this in vi command mode.
e. A new external application-controllable variable that allows the LINES
and COLUMNS environment variables to set the window size regardless of
what the kernel returns: rl_prefer_env_winsize
Note that this is (mostly) a security fix release.
Changes since last packaged version (2.2.3):
2.3.0
- modified chroot_helper to parse the config file, to avoid arbitrary
chroot() (and thus root compromise)
- numerous documentation updates
- fix for va_start()/va_end()-related segfault on 64-bit architecture
- small bit of code cleanup
DEFAULT_PATH_VALUE as /usr/bin:/bin:${LOCALBASE}/bin:/usr/local/bin
(Instead of having non-existent default PATH directories.)
Bump PKGREVISION.
This is for PR 25044.
Okayed by bash2 maintainer.