[bash205b-005]
When in a locale with multibyte characters, the readline display updater
will occasionally cause a segmentation fault when attempting to compute
the length of the first multibyte character on the line.
[bash205b-006]
When running in a locale with multibyte characters, the readline display
updater will use carriage returns when drawing the line, overwriting any
partial output already on the screen and not terminated by a newline.
[bash205b-007]
Using the vi editing mode's case-changing commands in a locale with
multibyte characters will cause garbage characters to be inserted into
the editing buffer.
Besides, export Bash's "test" target to Pkgsrc. Type "make test" to try
this.
XXX The MAINTAINER should be taken by someone really using this.
This is a development version of Zsh having more features than 4.0.x releases.
New features between zsh versions 4.0 and 4.1.1
-----------------------------------------------
Configuration:
- upgraded to use autoconf post-2.50
- improved compatibility with other shells through shell options,
builtin arguments and improved builtin option parsing
Syntax and builtins:
- new printf builtin
- `+=' to append to parameters which works for scalars, arrays and (with
pairs) associative arrays.
- enhanced multiple parameter `for' loops:
for key value in key1 value1 key2 value2 ...
maintaining full compatibility with POSIX syntax
Add-on modules and functions:
- zsh/net/tcp module provides builtin interface to TCP through ztcp
builtin. Function suite for interactive and script use with expect-style
pattern matching.
- zsh/net/socket module provides zsocket builtin.
- zcalc calculator function with full line editing.
- builtin interface to pcre library
- zsh/zselect module provides zselect builtin as interface to select
system call
Completion system:
- general improvements to command and context support, low-level functions,
display code.
- in verbose mode, matches with the same description are grouped
- highly configurable completions for values of specific parameters,
specific redirections for specific commands
- support for bash completion functions (typically zsh native functions are
more powerful where available)
- New completions provided for (some of these may be in later 4.0
releases): valgrind, tidy, texinfo, infocmp, Java classes, larch, limit,
locale parameters, netcat, mysqldiff, mt, lsof, elinks, ant, debchange
(dch), email addresses, file system types, Perforce, xsltproc.
Line editor:
- special parameters $PREDISPLAY, $POSTDISPLAY available in function
widgets to configure uneditable text (for narrowing)
- recursive editing
- supplied widgets read-from-minibuffer, replace-string use these features
(more intuitive prompting and argument reading than 4.0)
- access to killed text via $CUTBUFFER and $killring
- supplied highly configurable word widgets forward-word-match etc., can
set what constitutes a word interactively or in startup script
(implement bash-style behaviour, replacing previous bash-* word widgets)
- interface to incremental search via $LASTSEARCH
- better handling of keymaps in zle and widgets
- better support for output from user-defined widgets while zle is active
- tetris game which runs entirely in zle
Local internal improvements:
- disowned jobs are automatically restarted
- \u and \U print escapes for Unicode
- line numbers in error messages and $PS4 output are more consistent
- `=prog' expands only paths, no longer aliases for consistency
- job display in prompts; `jobs' command output can be piped
- prompts: new $RPROMPT2, %^, %j, %y, enhanced %{, %}, %_.
- rand48() function for better randomness in arithmetic
(if the corresponding math library function is present)
- $SECONDS parameter can be made floating point via `typeset -F SECONDS'
for better timing accuracy
- improvements to command line history mechanism
- many bugfixes
Bug fix release for stable version as well as a few completion
improvements. Also includes more current MASTER_SITES.
PR21938 by Geoff Wing <gcw at primenet dot com dot au>.
Tested on 1.6R (i386).
Changes:
03-03-18 --- Release ksh93o ---
03-03-18 A -N unary operator was added to test and [[...]] which returns
true if the file exists and the file has been modified since it
was last read.
03-03-18 The TIMEFORMAT variable was added to control the format for
the time compound command. The formatting description is
described in the man page.
03-03-06 A -N n option was added to read which causes exactly n bytes
to be read unlike -n n which causes at most n bytes to be read.
03-03-03 Three new shell variables were added. The variable .sh.file
stores the full pathname of the file that the current command
was found in. The variable .sh.fun names the current function
that is running. The variable .sh.subshell contains the depth
of the current subshell or command substitution.
03-03-03 When the DEBUG trap is executed, the current command line after
expansions is placed in the variable .sh.command. The trap
is also now triggered before each iteration of a for, select,
and case command and before each assignment and redirection.
03-02-28 Function definitions are no longer stored in the history file so
that set -o nolog no longer has any meaning.
03-02-28 All function definitions can be displayed with typeset -f not
just those stored in the history file. In addition, typeset +f
displays the function name followed by a comment containg the
line number and the path name for the file that defined this function.
03-02-28 A bug in which the value of $LINENO was not correct when executing
command contained inside mult-line command substitutions has been
fixed.
03-02-19 Since some existing ksh88 scripts use the undocumented and
unintended ability to insert a : in front of the % and # parameter
expansion operators, ksh93 was modified to accept :% as equivalent
to % and :# as equivalent to # with ${name op word}.
03-02-14 A bug which could cause a core dump when reading from standard
error when standard error was a pty has been fixed.
03-02-14 The shell arithmetic was modified to use long double on systems
that provide this data type.
03-02-09 A bug in which a function located in the first directory in FPATH
would not be found when the last component of PATH was . and the
current directory was one of the directories in PATH has been fixed.
03-02-07 The trap and kill builtin commands now accept a leading SIG prefix
on the signal names as documented.
03-02-05 A bug in the expansion of ${var/$pattern}, when pattern contained
\[ has been fixed.
03-02-05 A bug in which .sh.match[n], n>0, was not being set for substring
matches with % and %% has been fixed.
03-01-15 A bug in which getopts did not work for numerical arguments specified
as n#var in the getopts string has been fixed.
03-01-09 A bug in which using ${.sh.match} multiple times could lead to
a memory exception has been fixed.
03-01-06 A bug in the expansion of ${var/pattern/$string} in the case that
$string contains \digit has been fixed.
03-01-02 A -P option was added for systems such as Solaris 8 that support
profile shell.
03-01-02 For backward compatibility with ksh88, arithmetic expansion
with ((...)) and let has been modified so that if x is a zero-filled
variable, $x will not be treated as an octal constant.
${LOCALBASE} - makes this package install successfully on systems where the
package tools may reside under ${LOCALBASE}.
On Solaris, don't set "-static" into LDFLAGS, so that the package builds
properly.
as devel/perlsh.
The Perl Shell is a shell that combines the interactive nature of a Unix
shell with the power of Perl. The goal is to eventually have a fully
featured shell that behaves as expected for normal shell activity.
The Perl Shell will use Perl syntax and functionality for control-flow
statements and other things.
Makefiles simply need to use this value often, for better or for
worse.
(2) Create a new variable FIX_RPATH that lists variables that should
be cleansed of -R or -rpath values if ${_USE_RPATH} is "no". By
default, FIX_RPATH contains LIBS, X11_LDFLAGS, and LDFLAGS, and
additional variables may be appended from package Makefiles.
have it be automatically included by bsd.pkg.mk if USE_PKGINSTALL is set
to "YES". This enforces the requirement that bsd.pkg.install.mk be
included at the end of a package Makefile. Idea suggested by Julio M.
Merino Vidal <jmmv at menta.net>.
Changes from 20020922 (other than bug fixes) are:
* The code to display compound objects was rewritten to make it easier
for runtime extensions to reuse this code.
* A change was made to allow runtime builtins to be notified when a
signal is received so that cleanup can be performed.
* User applications can now trap the ALRM signal. Previously, the ALRM
signal was used internally and could not be used by applications.
as this isn't really the real Korn shell, and "pdksh" is a more accurate
name for it. Also don't use buildlink2 so that this shell may be used to
bootstrap buildlink2.
PD-ksh is a mostly complete AT&T ksh look-alike. Work is mostly
finished to make it fully compatible with both POSIX and AT&T ksh
(when the two don't conflict). Since pdksh is free and compiles
and runs on most common unix systems, it is very useful in creating
a consistent user interface across multiple machines.
Here are some of them, excerpted from NEWS:
- New code to handle multibyte characters.
- `select' was changed to be more ksh-compatible
- There is now a bindable edit-and-execute-command readline command,
like the vi-mode `v' command, bound to C-xC-e in emacs mode.
- The shell now performs arithmetic in the largest integer size the
machine supports (intmax_t), instead of long.
- There is a new configuration option `--enable-mem-scramble', controls
bash malloc behavior of writing garbage characters into memory at
allocation and free time.
- The `complete' and `compgen' builtins now have a new `-s/-A service'
option to complete on names from /etc/services.
- `read' has a new `-u fd' option to read from a specified file descriptor.
- The expansion of $LINENO inside a shell function is only relative to the
function start if the shell is interactive -- if the shell is running a
script, $LINENO expands to the line number in the script. This is as
POSIX-2001 requires.
- The bash debugger in examples/bashdb has been modified to work with the
new DEBUG trap semantics, the command set has been made more gdb-like,
and the changes to $LINENO make debugging functions work better. Code
from Gary Vaughan.
- New [n]<&word- and [n]>&word- redirections from ksh93 -- move fds (dup
and close).
- The `echo' builtin now accepts \0xxx (zero to three octal digits following
the `0') in addition to \xxx (one to three octal digits) for SUSv3/XPG6/
POSIX.1-2001 compliance.
- Added support for DESTDIR installation root prefix, so you can do a
`make install DESTDIR=bash-root' and do easier binary packaging.
- New `-A group/-g' option to complete and compgen; does group name
completion.
- The ksh-like `ERR' trap has been added. The `ERR' trap will be run
whenever the shell would have exited if the -e option were enabled.
It is not inherited by shell functions.
- configure has a new `--enable-largefile' option, like other GNU utilities.
- `for' loops now allow empty word lists after `in', like the latest POSIX
drafts require.
- The builtin `ulimit' now takes two new non-numeric arguments: `hard',
meaning the current hard limit, and `soft', meaning the current soft
limit, in addition to `unlimited'
Also, there is a "New unwind-protect implementation from Paul
Eggert", which I believe obviates the need for two sparc64-related
patches.
shells/mudsh.
Is there any reason why a shell (or command line) cannot be as
tolerant or as intelligent as a text adventure game like Zork, or a
MUD (Multi User Dungeon)? Is there any reason why a shell cannot work
like such a game? ("Go North", etc.)
Actually, the answer is no and this is a perl implementation to prove it.
Have fun, and don't get eaten by a Grue!