sorry) of 'b', 'e' and 'w' commands in vi editing, when confronted with
a '_' character - this patch makes tcsh consider '_' characters to be part
of the word.
1) osh globbing is now handled by the main osh process, allowing
(for example) `mkdir some_really_long_directory_name... ; cd
some*...' and globbing for other special built-in commands as well.
2) A new, osh history-file-support feature has been added to save
the user's command-line history to the user $h/.osh.history file
if/when this file exists upon shell invocation.
0.9.10
. Corrected minor bug in the aliases function that appeared in the
previous version. Thank you Piotr Minkina for reporting this.
0.9.9
. Added the possibility to configure introduction prompt.
. Replaced "joker" by "warnings" (more elegant)
. Possibility of limiting the history file size.
. Added lpath built-in command to list allowed and denied path.
Thanks to Adrien Urban.
. Corrected bug when using "~" was not parsed as "home directory" when
used in a command other than "cd". Thank you Adrien Urban finding
this.
. Corrected minor typo when warning for a forbidden path.
. If $(foo) is present in the line, check if foo is allowed before
executing the line. Thank you Adrien Urban for pointing this out!
. Added the possibility to list commands allowed to be executed using
sudo.
The new configuration field is sudo_commands.
. Added the clear(1) command as a built-in command.
. Added '$(' and '${' in the forbidden list by default in the
configuration
file.
. Now check the content of curly braces withariables '${}'. Thank you
Adrien Urban for reporting this.
. Added possibility to set history file name using history_file in the
configuration file.
. Corrected the bug when using '|', '&' or ';' over ssh. Over ssh
forbidden
characters refers now to the list provided in the "forbidden" field.
Thank you Jools Wills for reporting this!
. It now possible to use "&&" and "||" even if "&" and/or "|" are in the
forbidden list. In order to forbid them too, you must add them
explicitely in the forbidden list. Thank you Adrien Urban for this
suggestion.
. Fixed aliases bug that replaced part of commands rendering them
unusable.
e.g. aliasei:vim replaced the view command by vimew.
. Added a logrotate file for lshell log files.
. Corrected parsing of commands overssh to be checked by the same
function
used by the lshell CLI.
Thank you Adrien Urban for you security audit and excellent ideas!
0.9.8
. Major bug fix. lshell did not launch on python 2.4 and 2.5
(https://sourceforge.net/projects/lshell/forums/forum/778301/topic/347
4668)
. Added aliases for commands over SSH.
0.9.7
. Cleaned up the Python code
. Corrected crash when directory permission denied
(Closes: https://sourceforge.net/tracker/?func=detail&aid=2875374&grou
p_id=215792&atid=1035093)
. Added possibility to set the home_path option using the '%u' flag.
(e.g. '/var/chroot/%u' where '%u' will be replaced by the user's
username)
. Now replaces "~" by user's home directory.
0.9.6
. Major security fix. User had access to all files located in forbidden
directories
(Closes: https://sourceforge.net/tracker/?func=detail&aid=2838542&grou
p_id=215792&atid=1035093)
. Corrects RPM generation bug
(Closes: https://sourceforge.net/tracker/index.php?func=detail&aid=283
8283&group_id=215792&atid=1035093)
. lshell exits gracefully when user home directory doesn't exist
0.9.5
. Minor release
. Changed lshell's group from lshellg to lshell (this should not have
an impact on older installations)
. Minor typo correction in the lshell.py code
I am pleased to announce that tcsh-6.17 is now available; this is a mainly a
bug fix release with the exception of these three feature additions:
10. always save the whole command, not just the first 80 chars of it.
4. Add autoexpand=onlyhistory (Don Estabrook, m66)
3. Add history in loops (Laurence Darby, m48)
Please consult the Fixes files for a complete list of changes.
Some highlighted changes (for full details, see the ChangeLog):
The command "emulate <mode> -c ..." evaluates an expression in a given
emulation. The emulation is sticky for functions defined within the
expression.
The variable CORRECT_IGNORE gives a pattern that can be ignored
in spelling correction. CORRECT_IGNORE='_*' ignores completion functions.
The option POSIX_ALIASES improves compatibility of aliases with other
shells.
The variable ZSH_PATCHLEVEL can be used to test for unreleased versions of
the shell; it is present but less useful in released versions.
The variables ZLE_REMOVE_SUFFIX_CHARS and ZLE_SPACE_SUFFIX_CHARS allow more
control over the way automatically removed suffixes are treated in
completion.
This document details the changes between this version, bash-4.1-rc,
and the previous version, bash-4.1-beta.
1. Changes to Bash
a. Fixed a bug that caused printf to not return a partial value when it
encountered an error while converting an integer argument.
b. Fixed a bug that caused setting one of the compatNN options to not
turn off the others.
c. The (undocumented) --wordexp option is no longer included by default.
d. Fixed a bug in conditional command execution that caused it to not
correctly ignore the exit status under certain circumstances.
e. Added a configure-time check for correctly-working asprintf/snprintf.
f. Fixed some problems with line number calculation and display when sourcing
a file in an interactive shell.
g. Fixed a bug that caused the shell to crash when using `declare -A foo=bar'.
h. Fixed a bug that caused an off-by-one error when calculating the directories
to display with the PROMPT_DIRTRIM option.
2. Changes to Readline
a. Fixed a bug that caused applications using the callback interface to not
react to SIGINT (or other signals) until another character arrived.
------------------------------------------------------------------------------
This document details the changes between this version, bash-4.1-beta,
and the previous version, bash-4.1-alpha.
1. Changes to Bash
a. Fixed a bug in mapfile that caused the shell to crash if it was passed the
name of an associative array.
b. Fixed a bug that caused the shell to incorrectly split case patterns if
they contained characters in $IFS.
c. Fixed a bug that caused the shell to set $? to the wrong value when using
a construct ending with a variable assignment with set -x enabled and PS4
containing a command substitution.
d. Fixed a bug that caused the shell to read commands incorrectly if an
expansion error occurred under certain conditions in a user-specified
subshell.
e. Fixed a bug that caused the shell to set $? incorrectly if a parse error
occurred in an evaluation context ("eval", trap command, dot script, etc.)
f. Fixed a bug that caused the shell to attempt command substitution
completion within a single-quoted string.
g. Fixed a bug that caused the shell to insert an extra single quote during
word completion.
h. Fixed a bug that caused the shell to crash if invoked with the environment
variable EMACS having a null value.
i. Fixed a bug that caused bash to incorrectly report the presence of new
mail in a `maildir' environment.
j. Fixed a bug that caused the shell to not recognize a here-document ending
delimiter inside a command substitution.
k. Fixed a bug that caused the shell to crash when a a dynamic array variable
was assigned a scalar value.
2. Changes to Readline
3. New Features in Bash
a. The mapfile/readarray builtin no longer stores the commands it invokes via
callbacks in the history list.
b. There is a new `compat40' shopt option.
c. The < and > operators to [[ do string comparisons using the current locale
only if the compatibility level is greater than 40 (set to 41 by default).
4. New Features in Readline
------------------------------------------------------------------------------
This document details the changes between this version, bash-4.1-alpha,
and the previous version, bash-4.0-release.
1. Changes to Bash
a. Fixed bugs in the parser involving new parsing of the commands contained
in command substitution when the substitution is read.
b. Fixed a bug that caused the shell to dump core when performing programmable
completion using a shell function.
c. Fixed a bug in `mapfile' that caused it to invoke callbacks at the wrong
time.
d. Fixed a bug that caused the shell to dump core when listing jobs in the
`exit' builtin.
e. Fixed several bugs encountered when reading subscripts in associative
array assignments and expansions.
f. Fixed a bug that under some circumstances caused an associative array to
be converted to an indexed array.
g. Fixed a bug that caused syntax errors and SIGINT interrupts to not set
$? to a value > 128.
h. Fixed a bug that caused the shell to remove FIFOs associated with process
substitution inside shell functions.
i. Fixed a bug that caused terminal attributes to not be reset when the
`read' builtin timed out.
j. Fixed a bug in brace expansion that caused unwanted zero padding of the
expanded terms.
k. Fixed a bug that prevented the |& construct from working as intended when
used with a simple command with additional redirections.
l. Fixed a bug with the case statment ;& terminator that caused the shell to
dereference a NULL pointer.
m. Fixed a bug that caused assignment statements or redirections preceding
a simple command name to inhibit alias expansion.
n. Fixed the behavior of `set -u' to conform to the latest Posix interpretation:
every expansion of an unset variable except $@ and $* will cause the
shell to exit.
o. Fixed a bug that caused double-quoted expansions of $* inside word
expansions like ${x#$*} to not expand properly when $IFS is empty.
p. Fixed a bug that caused traps to set $LINENO to the wrong value when they
execute.
q. Fixed a bug that caused off-by-one errors when computing history lines in
the `fc' builtin.
r. Fixed a bug that caused some terminating signals to not exit the shell
quickly enough, forcing the kernel to send the signal (e.g., SIGSEGV)
multiple times.
s. Fixed a bug that caused the shell to attempt to add empty lines to the
history list when reading here documents.
t. Made some internal changes that dramatically speeds up sequential indexed
array access.
u. Fixed a bug that caused the shell to write past the end of a string when
completing a double-quoted string ending in a backslash.
v. Fixed a bug that caused the shell to replace too many characters when a
pattern match was null in a ${foo//bar} expansion.
w. Fixed bugs in the expansion of ** that caused duplicate directory names
and the contents of the current directory to be omitted.
x. Fixed a bug that caused $? to not be set correctly when referencing an
unset variable with set -u and set -e enabled.
y. Fixed a bug caused by executing an external program from the DEBUG trap
while a pipeline was running. The effect was to disturb the pipeline
state, occasionally causing it to hang.
z. Fixed a bug that caused the ** glob expansion to dump core if it
encountered an unsearchable directory.
aa. Fixed a bug that caused `command -v' and `command -V' to not honor the
path set by the -p option.
bb. Fixed a bug that caused brace expansion to take place too soon in some
compound array assignments.
cc. Fixed a bug that caused programmable completion functions' changes to
READLINE_POINT to not be reflected back to readline.
dd. Fixed a bug that caused the shell to dump core if a trap was executed
during a shell assignment statement.
ee. Fixed an off-by-one error when computing the number of positional
parameters for the ${@:0:n} expansion.
ff. Fixed a problem with setting COMP_CWORD for programmable completion
functions that could leave it set to -1.
gg. Fixed a bug that caused the ERR trap to be triggered in some cases where
`set -e' would not have caused the shell to exit.
hh. Fixed a bug that caused changes made by `compopt' to not persist past the
completion function in which compopt was executed.
ii. Fixed a bug that caused the list of hostname completions to not be cleared
when HOSTNAME was unset.
jj. Fixed a bug that caused variable expansion in here documents to look in
any temporary environment.
kk. Bash and readline can now convert file names between precomposed and
decomposed Unicode on Mac OS X ("keyboard" and file system forms,
respectively). This affects filename completion (using new
rl_filename_rewrite_hook), globbing, and readline redisplay.
ll. The ERR and EXIT traps now see a non-zero value for $? when a parser
error after set -e has been enabled causes the shell to exit.
mm. Fixed a bug that in brace expansion that caused zero-prefixed terms to
not contain the correct number of digits.
nn. Fixed a bug that caused the shell to free non-allocated memory when
unsetting an associative array which had had a value implicitly assigned
to index "0".
oo. Fixed a memory leak in the ${!prefix@} expansion.
pp. Fixed a bug that caused printf to not correctly report all write errors.
qq. Fixed a bug that caused single and double quotes to act as delimiters
when splitting a command line into words for programmable completion.
rr. Fixed a bug that caused ** globbing that caused **/path/* to match every
directory, not just those matching `path'.
ss. Fixed a bug that caused the shell to dump core when running `help' without
arguments if the terminal width was fewer than 7 characters.
2. Changes to Readline
a. The SIGWINCH signal handler now avoids calling the redisplay code if
one arrives while in the middle of redisplay.
b. Changes to the timeout code to make sure that timeout values greater
than one second are handled better.
c. Fixed a bug in the redisplay code that was triggered by a prompt
containing invisible characters exactly the width of the screen.
d. Fixed a bug in the redisplay code encountered when running in horizontal
scroll mode.
e. Fixed a bug that prevented menu completion from properly completing
filenames.
f. Fixed a redisplay bug caused by a multibyte character causing a line to
wrap.
g. Fixed a bug that caused key sequences of two characters to not be
recognized when a longer sequence identical in the first two characters
was bound.
h. Fixed a bug that caused history expansion to be attempted on $'...'
single-quoted strings.
i. Fixed a bug that caused incorrect redisplay when the prompt contained
multibyte characters in an `invisible' sequence bracketed by \[ and
\].
j. Fixed a bug that caused history expansion to short-circuit after
encountering a multibyte character.
3. New Features in Bash
a. Here-documents within $(...) command substitutions may once more be
delimited by the closing right paren, instead of requiring a newline.
b. Bash's file status checks (executable, readable, etc.) now take file
system ACLs into account on file systems that support them.
c. Bash now passes environment variables with names that are not valid
shell variable names through into the environment passed to child
processes.
d. The `execute-unix-command' readline function now attempts to clear and
reuse the current line rather than move to a new one after the command
executes.
e. `printf -v' can now assign values to array indices.
f. New `complete -E' and `compopt -E' options that work on the "empty"
completion: completion attempted on an empty command line.
g. New complete/compgen/compopt -D option to define a `default' completion:
a completion to be invoked on command for which no completion has been
defined. If this function returns 124, programmable completion is
attempted again, allowing a user to dynamically build a set of completions
as completion is attempted by having the default completion function
install individual completion functions each time it is invoked.
h. When displaying associative arrays, subscripts are now quoted.
i. Changes to dabbrev-expand to make it more `emacs-like': no space appended
after matches, completions are not sorted, and most recent history entries
are presented first.
j. The [[ and (( commands are now subject to the setting of `set -e' and the
ERR trap.
k. The source/. builtin now removes NUL bytes from the file before attempting
to parse commands.
l. There is a new configuration option (in config-top.h) that forces bash to
forward all history entries to syslog.
m. A new variable $BASHOPTS to export shell options settable using `shopt' to
child processes.
n. There is a new confgure option that forces the extglob option to be
enabled by default.
o. New variable $BASH_XTRACEFD; when set to an integer bash will write xtrace
output to that file descriptor.
p. If the optional left-hand-side of a redirection is of the form {var}, the
shell assigns the file descriptor used to $var or uses $var as the file
descriptor to move or close, depending on the redirection operator.
q. The < and > operators to the [[ conditional command now do string
comparison according to the current locale.
r. Programmable completion now uses the completion for `b' instead of `a'
when completion is attempted on a line like: a $(b c.
s. Force extglob on temporarily when parsing the pattern argument to
the == and != operators to the [[ command, for compatibility.
t. Changed the behavior of interrupting the wait builtin when a SIGCHLD is
received and a trap on SIGCHLD is set to be Posix-mode only.
u. The read builtin has a new `-N nchars' option, which reads exactly NCHARS
characters, ignoring delimiters like newline.
4. New Features in Readline
a. New bindable function: menu-complete-backward.
b. In the vi insertion keymap, C-n is now bound to menu-complete by default,
and C-p to menu-complete-backward.
c. When in vi command mode, repeatedly hitting ESC now does nothing, even
when ESC introduces a bound key sequence. This is closer to how
historical vi behaves.
d. New bindable function: skip-csi-sequence. Can be used as a default to
consume key sequences generated by keys like Home and End without having
to bind all keys.
e. New application-settable function: rl_filename_rewrite_hook. Can be used
to rewite or modify filenames read from the file system before they are
compared to the word to be completed.
f. New bindable variable: skip-completed-text, active when completing in the
middle of a word. If enabled, it means that characters in the completion
that match characters in the remainder of the word are "skipped" rather
than inserted into the line.
g. The pre-readline-6.0 version of menu completion is available as
"old-menu-complete" for users who do not like the readline-6.0 version.
h. New bindable variable: echo-control-characters. If enabled, and the
tty ECHOCTL bit is set, controls the echoing of characters corresponding
to keyboard-generated signals.
i. New bindable variable: enable-meta-key. Controls whether or not readline
sends the smm/rmm sequences if the terminal indicates it has a meta key
that enables eight-bit characters.
Changes:
1) This update fixes a compilation problem on AIX caused by not
wrapping WCOREDUMP(s) with #ifdef WCOREDUMP ... #endif.
2) General code cleanup and rechecking w/ splint(1) reduces
unnecessary code duplication and eases future maintenance.
3) This update adds the program name to osh diagnostics (e.g.,
"osh: syntax error") for the sake of user friendliness.
[tg] Shut up a bogus gcc warning during configuration process
[tg] Spell AT&T consistently in the source code
[tg] Tweak mksh(1) manual page, from wbx@ and «lewellyn:#ksh»
[tg] dot.mkshrc: fix $@ vs. $* mix-up
[tg] dot.mkshrc: add DJB cdb hash function
[tg] Sync with oksh: fix Vi editing mode word erase handling, again
[tg] Skip whitespace between POSIX style shell function name and its definition parenthesēs during detection if an alias of the same name already exists to be more robust (Debian Closes: #535970)
[tg] Build system improvements for ACK and nwcc, both on Debian sid
[tg] Fix spelling error in changelog discovered by Lintian
[tg] Aligh “set -o nounset” / “set -u” behaviour with future POSIX standard, as discussed with GNU bash maintainers, David Korn from AT&T ksh93, and The Open Group; prompted by use in Debian; Closes: #539538
[tg] add an unsupported way to make printf(1) a builtin
[tg] Build system and regression test code and comment improvements: better and more comments matching reality better; more reliability w.r.t. passed CPPFLAGS; more of the MKSH_SMALL changes may be overridden, all of them are now enumerated on the webpage; fixed some breakage; portability
[tg] MKSH_NOPWNAM and MKSH_SMALL will now both disable the ~fac/ (homedir) expansion code wholly if defined, not just getpwnam(3) calls
[tg] shells without job control no longer define the standard “stop” and “suspend” aliases (they are pointless anyway); regression tests know
[tg] use system RCS ID macros on MirBSD if decent enough
[tg] shut up bogus gcc 4.5/trunk warnings caused by over-optimisation
[tg] restore ANSI C compilability broken in R38 (speed up, even)
[tg] use memcpy(3) ipv strlcpy(3) if possible and safe and secure
additional environment variables.
Note to packagers:
packages installing additional completion files should drop
them into ${DESTDIR}${PREFIX}/share/bash-completion.d
with the name of the package as file name.
bash-completion (1.0)
[ Guillaume Rousse ]
* Make bibtex complete on .aux files
* Add .xvid and .XVID to player completion
* Added cowsay/cowthink completion
* Added brctl completion
* Added cpan2dist completion
* Added qemu completion
* Added net-tools (mii-tool and mii-diag) completions
* Added minicom completion
* Added quota-tools completion
* Added rdesktop completion
* Added tightvncviewer completion
* Cleanup screen completion, and make it completes on options
[ David Paleino ]
* Added .kar to Timidity completion.
* Fix killall completion, remove trailing ":" on certain process
names
* Fix man -l completing filenames (Debian: #497074)
* (Partly) fixed java classes completion (Debian: #496828). Look for
FIXME in source.
* Dump to /dev/null error message from look(1) with no arguments
(Debian: #495142)
* Set ssh as default for rsync (was rsh) (Debian: #492328)
* Added .oga, .ogv, .ogx to mplayer completion (Debian: #496162)
* Added .epub to unzip|zipinfo completion (Debian: #492476)
* Added ssh-copy-id completion (Debian: #491856)
* Moved ssh completion to separate file (Debian: #360628)
* Bogus completion when mounting subdirs fixed (Debian: #322238)
* Fix `apt-cache showsrc` completing only on source package names
(Debian: #361535)
* Fixed bugs with gdb completion:
- when an empty directory is in $PATH (thanks to Morita Sho)
(Debian: #497597)
- when a non-existing directory is in $PATH (Debian: #499780)
* Fix missing completion for "-n" and "-e" (we were using echo, now
using printf) (thanks to Morita Sho) (Debian: #498105)
* Fixed gpg completion:
- --@(export|@(?(l|nr|nrl)sign|edit)-key)) (Debian: #500316)
- -@(r|-recipient))
* Fixed .cb[rz] completion for evince (Debian: #502885)
* Added gksudo, gksu, kdesudo completion
* Added apache2ctl completion
* Added gpg2 completion (Debian: #489927)
* Fixed mplayer -skin completion (Debian: #501473)
* Fixed errors with POSIX enabled (Debian: #502804)
* Fixed dpkg-source wrong exit() with return() (Debian: #)
* Added --schedule-only to aptitude's completion (Debian: #502664)
* Added build-dep to aptitude's completion (Debian: #495883)
* Added support for `-F configfile' to _known_hosts(), ssh, scp and
sftp, thanks to Freddy Vulto (Debian: #504141)
* Fixed sed quoting bug in _known_hosts(), thanks to Freddy Vulto
(Debian: #504650)
* Allow `Host(Name)' in ssh config file to be indented
* Allow `Host(Name)' in ssh config file to have trailing comment.
* Allow for comments in known_hosts files (Debian: #511789)
* Fixed perl -I/-x completion, thanks to Freddy Vulto
(Debian: #504547)
* README updated: explain how to use bash-completion correctly.
(Debian: #506560)
* TODO updated: the Alioth team is now upstream.
* Added qdbus completion, thanks to Terence Simpson (Ubuntu: #257903)
* Added monodevelop and mdtool completions.
* Split subversion-related completions to contrib/_subversion
(prefixed with _ to avoid file conflicts with upstream's one)
* Fixed completion of environment variables, thanks to Morita Sho
(Debian: #272660)
* Fix dpkg completion bug: it listed only non-Essential packages
(Debian: #511790)
* Fixed _dpkg_source completion (Debian: #503317)
* Added _parse_help() to try to parse options listed in $command
--help
* Fixed gzip completion to use _parse_help(), since the available
options vary with distributions
* Added to_review/ directory, where completions needing a review would
go. After it gets accepted, the completion would go into contrib/.
* Remove unused UNAME local variable in _info() (Debian: #501843)
* AUTHORS added
* Make _alias() use _get_cword
* Added .zip to jar completions (Debian: #521041)
* Merge from Gentoo:
- fix 'find' completion so that it properly completes on -?(i)whilename.
Patch by Ciaran McCreesh.
- use make -qp to parse the Makefile for us, so we get proper completion
on things like pattern rules. Patch by Mike Kelly <pioto@exherbo.org>.
- complete on gkrellm2 as well. Patch by Aaron Walker.
- fix CVS completion
* Merge from Ubuntu:
- consume error messages in configure completion (Ubuntu: #223882)
(Mika Fischer)
- quote $xspec in _filedir_xspec in case it is empty, which would
cause errors if there was no match under failglob. (Ubuntu: #194419)
(Mika Fischer)
* debian/links fixed (Debian: #494292)
* debian/control:
- fixed typo in the long description
- added Vcs-* fields
* debian/install:
- correctly install contrib/* under /etc/bash_completion.d/
* debian/copyright updated
* extra/dh_bash-completion:
- updated to support a list of files in debian/<package>.bash-completion
(Debian: #512917)
[ Ville Skyttä ]
* Added JPEG 2000 files to display completion, thanks to Bastien Nocera
(RedHat: #304771)
* Improved rpm macro completion.
* Added -E to rpm completion.
* Improved rpm backup file avoidance.
* Improved /var/log/rpmpkgs based rpm installed package completion.
* Improved performance of rpm -qa based rpm installed package completion.
* Improved features and performance of yum completion.
* Added support for p (POSIX) and x (x.org) man sections.
* Improved filename based man page completion.
* Added minimal sqlite3 completion.
* Improved getent completion (Ville Skyttä, Guillaume Rousse).
* (Re)fix gzip and bzip2 options completion.
* Improved svn filename completion (RedHat: #430059).
* Add lzma completion (Per Øyvind Karlsen, Ville Skyttä).
* Add .mp2 and .vdr to mplayer completion (RedHat: #444467).
* Add .mkv, .mp2 and .vdr to *xine completion (RedHat: #444467).
* Added lzop completion.
* Fix scp metacharacter escaping.
* Remove duplicate cpio completion, thanks to Freddy Vulto (Debian: #512823)
* Fix awk error in "modprobe -r /" completion (Debian: #512556).
* Expand ~foo to dir name more eagerly to avoid quoting issues.
* Fix -sourcepath handling in javadoc packages completion.
* Extract process name completion from _killall to _pnames, make it work
for others than Linux and FreeBSD.
* Fix process name completion with relative paths (RedHat: #484578).
* Use improved process name completion in pgrep in addition to killall.
* Enable pgrep and pkill completion if the commands are available, not just
on Linux and FreeBSD.
* Drop hg completion, an improved version is shipped with Mercurial
(contrib/bash_completion in the tarball).
* Make okular complete on same files as evince, thanks to Mary Ellen Foster
(RedHat: #486998).
* Apply ps2pdf completion to ps2pdf{12,13,14,wr} too.
* Simplify bash_completion.sh, return earlier in non-applicable environments.
* Remove obsolete --buildarch and --buildos rpm(build) completions.
* Add rpmbuild --target completion.
* Use "-profile help" to get mplayer and friends -profile completions.
* Fix local array initialization under bash 3.0, prevents "()" occurring in
file and dir name completions.
[ Freddy Vulto ]
* Restored `_display()' completion for `display' by removing
completion-by-extension for `display' (Alioth#311429)
* Removed duplicate completion option `-borderwidth' for `display'
* Prevent completion dir from being sourced twice if
BASH_COMPLETION_DIR and BASH_COMPLETION_COMPAT_DIR are equal (Alioth#311433)
* Make `_mii-tool()' and `_mii-diag()' POSIX-compliant
* Fix _isql completion waiting for grep input if $ODBCINI not set; handle
whitespace in $ODBCINI.
* Split vncviewer completion in _tightvncviewer() and _xvnc4viewer()
Added _realcommand() global function.
[ Jakob Unterwurzacher ]
* ps2pdf can run on .pdf files as well. (Debian: #516614, Ubuntu: #316943)
[ Santiago M. Mola ]
* Add .ape to mplayer supported extensions (Alioth#311510).
-- David Paleino <d.paleino@gmail.com> Wed, 25 Mar 2009 23:18:24 +0100
bash-completion (20080705) unstable; urgency=low
[ David Paleino ]
* Added more completions to imagemagick (thanks to Nelson A. de
Oliveira) (Debian: #487786)
* Added xrandr completion (thanks to Anton Khirnov) (Debian: #487825)
* Improving _gdb completion:
- $filenames to $default (Debian: #463969)
- also show directory names (i.e. compgen -d) in COMPREPLY.
- added . to $PATH, to allow debugging "local" executables.
- do not complete Bash's builtins (thanks to Morita Sho)
[ Luk Claes ]
* Remove use of ucf for /etc/bash-completion (Debian: #488171).
-- Luk Claes <luk@debian.org> Sat, 05 Jul 2008 16:14:15 +0200
bash-completion (20080617.5) unstable; urgency=medium
* Revert way of setting environment variables (Debian: #487774).
* Add equals sign to _get_cword for mutt_aliases (Debian: #482635).
* Enhance mlayer completion (Debian: #487826, #487838).
-- Luk Claes <luk@debian.org> Tue, 24 Jun 2008 19:50:57 +0200
bash-completion (20080617.4) experimental; urgency=low
[ David Paleino ]
* Merged Ubuntu changes:
- added quote(), quote_readline(), dequote() helper functions.
- added _remove_word()
- fixed _get_cword()
- refactored _filedir using quote_readline()
- refactored _filedir_xspec using quote_readline()
- fixed COMPREPLY's in _iwconfig
- fixed _cvs()
- _known_hosts(): use files from UserKnownHostsFile options in
addition to standard ones.
- fixed _command() to correctly prune the command line
- disabled completion of PostgreSQL users and databases
- fixed _java_packages()
- fixed _muttquery()
- added flv/FLV completion to mplayer
- added --installed to apt-cache
- only complete on filenames for aspell
- fixed code for exclusions compspecs
- added code to gracefully handle debug options (set +/-v)
-- Luk Claes <luk@debian.org> Mon, 23 Jun 2008 19:25:25 +0200
bash-completion (20080617.3) unstable; urgency=low
[ David Paleino ]
* Fixed IFS for filedir_xspec - Thanks to Stefan Lippers-Hollmann
(Debian: #487571)
[ Luk Claes ]
* Install dh-bash-completion to ease installation of completions.
-- Luk Claes <luk@debian.org> Mon, 23 Jun 2008 07:24:21 +0200
bash-completion (20080617.2) unstable; urgency=low
[ David Paleino ]
* New upstream release
- provide a manpage for extra/dh_bash-completion
- fix semi-serious problem with _filedir() (Debian: #487449)
* debian/rules:
- added rule to generate dh_bash-completion's manpage
* debian/install, debian/dirs:
- installing dh_bash-completion into /usr/bin
* debian/control:
- new package dh-bash-completion
[ Luk Claes ]
* Comment new package to make sure current fix gets in the archive first.
* Add compression completion for vi(m).
-- Luk Claes <luk@debian.org> Sun, 22 Jun 2008 19:47:23 +0200
bash-completion (20080617.1) unstable; urgency=medium
[ David Paleino ]
* Urgency set to medium because the package is currently unusable.
* New upstream sub-release
- fixed some typos here and there which prevented bash completions
at all (Debian: #487441).
- really closing Debian bug #455510.
-- Luk Claes <luk@debian.org> Sun, 22 Jun 2008 00:22:53 +0200
bash-completion (20080617) unstable; urgency=low
[ David Paleino ]
* New upstream release
- add more completions to aptitude (Debian: #432289)
- fixed UTF-8 problem with _get_cword(), thanks to
Andrei Paskevich (Debian: #472132)
- fixed autoremove completion, thanks to Flavio Visentin
(Debian: #474974)
- cmf and CMF added to playmidi completion (Debian: #365658)
- added rrdtool completion, thanks to Justin Pryzby (Debian: #428641)
- added OpenDocument completion for unzip/zipinfo (.od{f,g,p,s,t})
(Debian: #472940)
- fixed escaping problems with job control (i.e. disown, jobs, bg,
fg): the argument is now surrounded by "" (Debian: #347316)
- make mkdir complete also on filenames (Debian: #376433)
- {bz,z}{cat,cmp,diff,egrep,fgrep,grep,less,more} now should complete
on all filenames, not just compressed archives (just commented out)
(Debian: #455510)
- fixes Perl completion (Debian: #470742)
- fixes get_cword -> _get_cword typo (Debian: #478596)
- fixes _get_cword() function to properly handle filenames with
whitespaces (Debian: #394636, #468254, #474094)
- added .pdf.bz2 completion to evince (Debian: #424736)
- added .svg completion to display (Debian: #441017)
- added .m2ts completion to mplayer (Debian: #480879)
- added extra/dh_bash-completion to ease future rewrite of bc.
* debian/copyright - now in a fancier machine-parsable format.
* debian/control:
- added myself to Uploaders
- debhelper Build-Depends updated to >= 6.
* debian/watch:
- improved current watch line regex
- added (commented out) probable future watch line
* debian/compat bumped to 6
* debian/dirs, debian/install and debian/links added
* debian/rules:
- refactored to make use of debian/{dirs,install,links}
[ Steve Kemp ]
* Applied patch to fix completion of umount command.
(Debian: #470539)
* Fixed the completion of Perl manpages.
(Debian: #404976)
* Added 'aif' to the filenames offed for completion for mplayer.
(Debian: #474517)
* Allow tsocks completion.
(Debian: #409423)
* Update mutt completion to handle local usernames.
(Debian: #416655)
* Update apt-get completion to include the flag "--no-install-recommends"
(Debian: #475242)
-- Luk Claes <luk@debian.org> Sat, 21 Jun 2008 21:59:43 +0200
bash-completion (20060301-4) unstable; urgency=low
* Add some fixes from Ubuntu:
* Fix completion of filenames with spaces (Debian: #468254).
* Fix parsing of SSH config files (Debian: #435117).
* Change priority to standard (Debian: #471666).
* Add some more completions for xine (Debian: #452083, #471249).
* Fix completion of gzip (Debian: #351913).
* Also use $HOSTFILE in hostname completion (Debian: #400380).
-- Luk Claes <luk@debian.org> Sat, 22 Mar 2008 23:10:30 +0000
bash-completion (20060301-3) unstable; urgency=low
* Fix kpdf completion (Debian: #468163, #413374).
* Fix completion of - or -- with _command (Debian: #415276).
* Add sux to the complete -u list (Debian: #466089).
* Add dvipdfm to the list of dvi programs (Debian: #396644).
* Add --purge-unused option completion for aptitude (Debian: #438471).
* Add divx extension completion for mplayer (Debian: #444294).
* Add pdf.gz completion for evince (Debian: #456887).
* Add --remove-all completion for update-alternatives (Debian: #269173).
-- Luk Claes <luk@debian.org> Wed, 05 Mar 2008 22:57:27 +0100
bash-completion (20060301-2) unstable; urgency=low
* Take over the package.
-- Luk Claes <luk@debian.org> Wed, 27 Feb 2008 19:22:03 +0100
bash-completion (20060301-1) unstable; urgency=low
* Upload to unstable.
-- Matthias Klose <doko@debian.org> Sat, 09 Feb 2008 23:18:20 +0100
bash-completion (20060301-0ubuntu2) hardy; urgency=low
* Replace bash (<< 3.1dfsg-9), handle upgrade in preinst.
* Exclude hashed hostnames from ssh host completion results. Debian: #428085.
* Fix: ifup/down don't really complete. Debian: #463756.
* Allow perl completion to complete filenames, complete -I and -x arguments.
Debian: #443394.
* Add find -wholename completion. Debian: #431220.
* Handle whitespaces in $HOME for _known_hosts() completion. Debian: #414821.
* dpkg -L: complete for removed-but-not-purged packages. Debian: #372156.
* Complete for apt-get autoremove. Debian: #433542, #443816, #445332.
* Update completion for mplayer (mka/flac). Debian: #340452.
* Add ping6/fping6 completion. Debian: #413170.
* Handle whitespace in paths for mount/umount completion. Debian: #367957.
* apt-get: Support --auto-remove. Ubuntu: #60666.
-- Matthias Klose <doko@ubuntu.com> Sat, 09 Feb 2008 23:11:32 +0100
bash-completion (20060301-0ubuntu1) hardy; urgency=low
* Initial release, split out from the bash package.
The software currently is unsupported upstream.
* Don't try to set a readonly variable. Ubuntu: #149527.
* Support purge in apt-get auto completion (Mathias Gug). Ubuntu: #151677.
* evince: Autocomplete on cbr/cbz/djvu files. Ubuntu: #156200, #175220.
Debian: #400678.
* kdvi: complete .*\.dvi\.(gz|bz2). Ubuntu: #128234.
* kpdf: Complete postscript files. Ubuntu: #162319.
* Make completion working in the middle of a word (Adam Simpkins).
Ubuntu: #139666.
-- Matthias Klose <doko@ubuntu.com> Fri, 08 Feb 2008 16:46:34 +0100
* [tg] Fix regression tests on OSes insisting on a shebang (Cygwin)
* [Sean Boudreau] QNX 6.4.2 ed(1) is said to have the bugs fixed
* [tg] Build.sh bugfixes: -DMKSH_BINSHREDUCED can also
be given without -DMKSH_SMALL; allow HAVE_REALPATH=x and
HAVE_REVOKE=x in the environment to re-enable these even if
-DMKSH_SMALL disables them by default, like mknod already did
* [tg] -DMKSH_ASSUME_UTF8=0 skips the environment checks, like
-DMKSH_ASSUME_UTF8=1, but disables the utf8-mode
* [tg] Apply some more KNF – style(9) – to the source; clean it up
and further optimise for small size
* [OpenBSD] Fix segfaults caused by missing check for end of input
in the tokeniser on “let --” and other input
* [OpenBSD] Make Vi editing mode ^W behave like Emacs mode’s
* [tg] If no killpg(3) is avaiable, use kill(2) and hope it works
* [tg] -DMKSH_NO_LIMITS skips trying to build the ulimit code
0.9.4
. Log file name is now configurable using 'logfilename' variable
inside the configuration file
. Corrected aliases in lshell.conf to work with *BSD
0.9.3
. corrected major bug (alias related)
0.9.2
. added Force SCP directory feature
. added command alias feature
0.9.1
. loglevel can now be defined on global, group or user level
. corrected sftp support (broken since in 0.9.0)
0.9.0
. version jump to 0.9.0
. corrected bug in case PATH does not exist and allowed set to 'all'
. added support for UNIX groups in configuration file
. corrected major security bug
. corrected path completion
. added escape code handling
. added flexible +/- possibilities in configuration file
. now supports completion after '|', ';' and '&'
. Command test are also done after '|', ';' and '&'
. Doesn't list hidden directories by default
. 4 logging levels
. added 'strict' behaviour
When using the ** globbing operator, bash will incorrectly add an extra
directory name when the preceding directory name ends with `*' or an empty
string when there is no preceding directory name.
If the prompt length exactly matches the screen width, and the prompt ends
with invisible characters, readline positions the cursor incorrectly.
When parsing case statements in command substitutions, the shell did not
note that a newline is a shell metacharacter and can legally be followed
by a reserved word (e.g., `esac').
When not in a locale supporting multibyte characters, readline will
occasionally not erase characters between the cursor position and the end
of the line when killing text backwards.
If a SIGWINCH arrives while bash is performing redisplay, multi-line prompts
are displayed incorrectly due to the display code being called recursively.
Using an external command as part of the DEBUG trap when job control is
enabled causes pipelines to misbehave. The problem has to do with process
groups assigned to the pipeline and terminal.
A missing include file results in an empty function definition and a no-op
when checking whether or not the window size has changed.
Adding a null line to a here-document (e.g., by hitting EOF) causes the
shell to dump core attempting to dereference the NULL pointer.
There are several problems with the handling of $LINENO in an ERR trap.
Deferring handling of signals which should cause the shell to terminate until
it is "safe" to run the handler functions does not work for some terminating
signals.
When the fc builtin is run in a command substitution from a shell with history
enabled, it does not correctly calculate the command on which to operate.
Though references to $@ when there are no positional parameters will now
cause the shell to exit if the `errexit' option has been enabled, constructs
such as ${@:-foo} should not cause an exit.
A case statement using the ;& pattern terminator followed immediately by
"esac" caused a core dump due to a null pointer dereference.
When using the new |& operator following a simple command with a redirection,
the redirection of stderr through the pipe was not performed under certain
circumstances.
mksh R38b fixes the following problems:
* [André Wösten] Add __NO_EXT_QNX to avoid picking up the wrong
waitfor() from <libutil.h> in (while porting to) QNX 6.4
* [tg] Plug memory corruption issue introduced in R38
* [tg] Amend dot.mkshrc with a base64 en-/decoder in shell
* [tg] Import a manpage fix via OpenBSD from Alan R. S. Bueno
mksh R38 comes with these changes and fixes applied:
* [tg] Improve regression test output debugging
* [tg] Fix <libutil.h> prerequisites on MidnightBSD in mirtoconf
* [tg] Mention that RedHat BZ#496791 cannot currently be fixed in the
manpage by discouraging use of apostrophes in comments in comsubs; add
appropriate (expected-fail) regression tests
* [tg] Sync with OpenBSD ksh (mostly a no-op)
* [James Butler] Add search-history-up and search-history-down keybindings
(tcsh-like) to the Emacs command line editing mode
* [tg] Bind new search-history-{up,down} to ANSI PgUp and PgDn keys
* [tg] Document ANSI default keybindings (↑↓←→ Home End Del PgUp PgDn)
in the mksh(1) manual page as well
* [tg] Optimise internal UTF-8 handling code for size and reusability
* [tg] Incompatible change: ${foo:1:2} and ${#foo} now
operate on characters, not on bytes. Characters are octets (set +U)
or (utf8-mode) MirOS OPTU-8 multibyte characters (set -U)
* [tg] Improve regression tests relating to ${foo:1:2} and
${#foo} and let wc=1#x and utf8-mode
* [tg] Use per-file copyright notices, move global text to manpage
* [tg] Expose new MKSH_MIDNIGHTBSD01ASH_COMPAT ifdef; change it to
only trigger if FPOSIX (or MKSH_BINSHREDUCED and /bin/sh)
* [tg] Remove already-dead “#if 0” style debugging code
* [tg] Change some code into a more portable fashion, optimise
* [tg] Allow [[ $foo ]] (ksh93 extension) mentioned by pgas
* [tg] Clean up mksh and the contributed arc4random.c for some
conversion, enum and other warnings for gcc-snapshot trunk r147610
* [tg] Ensure no function uses more than 768 bytes of stack either
* [tg, wbx] Add extension to make “!string” lines work like in GNU bash
Upstream changes between osh-20081213 and osh-20090527 follow:
osh bug fixes:
1) This release fixes an `echo' bug that causes `echo ""' to print an
unnecessary diagnostic.
2) It also fixes a `sigign' bug that can cause incorrect signal ignoring
behavior for subshells.
New osh features:
1) This release adds `cd' as a synonym for the `chdir' special command.
2) It also adds $m as a special parameter for the value of the MANPATH
environment variable.
.[tg] Improve præprocessor detection/work in Build.sh
.[tg] Decouple MKSH_CONSERVATIVE_FDS from MKSH_SMALL
.[tg] Enable MKSH_CONSERVATIVE_FDS by default on Minix 3
.[tg] Work around the (in-)famous ACK "const" bug
.[tg] Optimise structure alignment and padding; Closes: #522778
.[tg] Retain LOCPATH (for glibc locale) in check.pl
.[tg] Document, simplify and clean up the code better
.[tg] Use mirbsd.org eMail addresses consistently
mksh R37b comes with the following fixes on top:
.[tg] Clean up build system and dot.mkshrc some more
.[tg] Add getrusage(2) implementation using times(3) if none found
.[tg] Add jobless mode (for Minix 3, Plan 9, .)
.[tg] Detect the Amsterdam Compiler Kit in the build system
.[tg] If no RLIM_INFINITY don.t try to do ulimit
.[tg] Work around gcc4 strict warnings vs. broken system headers
.[tg] Work around systems with mmap(2) but no munmap(2)
.[tg] Fix (disallow) bind key macro recursion (instead of beeping and going into an endless loop), allow multi-line bind key macros (mostly from Alexander Hall), remove dead code (the beeping) and optimise
.[tg] Add (commented out, undesired, standards compliance breaking) compatibility code to MidnightBSD 0.1 /bin/sh for ctriv
.[tg] Clarify the mksh(1) manual page even more
.[tg] Port to Minix 3 + GCC
mksh R37 has major standards compliance improvements:
.[tg] Rename -o utf8-hack to -o utf8-mode
.[tg] Fix spacing mode error (pasto) in the mdoc(7) format manpage
.[tg] Implement $((#.)) unsigned arithmetic calculation, needed for arc4random_uniform(3)-in-korn-shell implementation
.[tg] Really preserve LD_LIBRARY_PATH in check.pl
.[tg] New Build.sh option .-combine. for building mksh(1) at once with .-fwhole-program --combine. (gcc4, llvm-gcc4) if available
.[tg] Always set COLUMNS and LINES trying as hard as we can, using TIOCGWINSZ even if used without FTALKING, and with the sane 80x24 default if the ioctl(2) fails
.[tg] Handle _POSIX_VDISABLE being undefined (e.g. Linux/klibc)
.[tg] <sys/file.h> is only required for flock(2)
.[tg] Fix multi-column output routine for the corner case if the screen is less wide than one output column; 10x Gábor Gergely
.[tg] Fix ${foo/@(%)/\\x} in UTF-8 mode (utf_widthadj for control characters U+0080.U+009F is slightly broken; this fix shifts the brokenness into the command line editing mode only)
.[tg] Introduce mksh_ari_t and mksh_uari_t internal types to limit arithmetics to 32 bit on all systems; currently depending on the already-used standard int32_t and uint32_t types. Future expansion to 64 bit possible. Document that shell integer variables use this type.
.[tg] The variables PGRP, PPID, RANDOM and USER_ID are now unsigned
.[tg] Fix two off-by-ones breaking PS1 ending with a newline; bug reported by Matthias Diener
.[tg] Just pass through C1 control characters for now
.[tg] Code and internal interfaces cleanup
.[tg] Regression test fixes for Cygwin env(1) being unsorted
.[tg] Replace the memory allocator by something equally simple and homegrown but optimised for use with mksh and free checking
.[tg] Import a couple of minor fixes (e.g. spelling) from oksh
.[tg] Fix problems with "set -e" for real; from oksh, Closes: #518359
.[tg] In "set -o posix" mode, have limited echo(1) to improve standards compliance; the exact feature set is open for discussion, e.g. with pkgsrc® people; for now, only -n as first arg
.[tg] Make test builtin operator precedence consistent; from oksh
.[tg] Revamp and fold and enhance the regression tests
.[tg] Document somewhat surprising behaviour in mksh(1) better; here: [ x -eq y ]; for gps23 from #ksh
.[tg] Reduce memory consumption by allocator simplification
.[tg] Fix bugs spotted by DEC ucode cc (ULTRIX) and gcc 1.42 (BSD/OS)
.[laffer1] Make mksh the default /bin/sh in MidnightBSD
quite simply using a configuration file. It becomes easy to restrict user's
access to a limited set of commands, chosing to allow any command over SSH
(e.g. SCP,SFTP,rsync,etc.).
OK'd by seb@
Since two people already asked for it, here's the package, but
maintainer is set to pkgsrc-users.
Bash is an sh-compatible shell that incorporates useful features from
the Korn shell (ksh) and C shell (csh). It is intended to conform to
the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard.
It offers functional improvements over sh for both programming and
interactive use; these include command line editing, unlimited size
command history, job control, shell functions and aliases, indexed
arrays of unlimited size, and integer arithmetic in any base from two
to sixty-four. In addition, most sh scripts can be run by Bash without
modification.
This package contains the outdated version 3 of bash.
1. New Features in Bash
a. When using substring expansion on the positional parameters, a starting
index of 0 now causes $0 to be prefixed to the list.
b. The `help' builtin now prints its columns with entries sorted vertically
rather than horizontally.
c. There is a new variable, $BASHPID, which always returns the process id of
the current shell.
d. There is a new `autocd' option that, when enabled, causes bash to attempt
to `cd' to a directory name that is supplied as the first word of a
simple command.
e. There is a new `checkjobs' option that causes the shell to check for and
report any running or stopped jobs at exit.
f. The programmable completion code exports a new COMP_TYPE variable, set to
a character describing the type of completion being attempted.
g. The programmable completion code exports a new COMP_KEY variable, set to
the character that caused the completion to be invoked (e.g., TAB).
h. If creation of a child process fails due to insufficient resources, bash
will try again several times before reporting failure.
i. The programmable completion code now uses the same set of characters as
readline when breaking the command line into a list of words.
j. The block multiplier for the ulimit -c and -f options is now 512 when in
Posix mode, as Posix specifies.
k. Changed the behavior of the read builtin to save any partial input received
in the specified variable when the read builtin times out. This also
results in variables specified as arguments to read to be set to the empty
string when there is no input available. When the read builtin times out,
it returns an exit status greater than 128.
l. The shell now has the notion of a `compatibility level', controlled by
new variables settable by `shopt'. Setting this variable currently
restores the bash-3.1 behavior when processing quoted strings on the rhs
of the `=~' operator to the `[[' command.
m. The `ulimit' builtin now has new -b (socket buffer size) and -T (number
of threads) options.
n. The -p option to `declare' now displays all variable values and attributes
(or function values and attributes if used with -f).
o. There is a new `compopt' builtin that allows completion functions to modify
completion options for existing completions or the completion currently
being executed.
p. The `read' builtin has a new -i option which inserts text into the reply
buffer when using readline.
q. A new `-E' option to the complete builtin allows control of the default
behavior for completion on an empty line.
r. There is now limited support for completing command name words containing
globbing characters.
s. Changed format of internal help documentation for all builtins to roughly
follow man page format.
t. The `help' builtin now has a new -d option, to display a short description,
and a -m option, to print help information in a man page-like format.
u. There is a new `mapfile' builtin to populate an array with lines from a
given file. The name `readarray' is a synonym.
v. If a command is not found, the shell attempts to execute a shell function
named `command_not_found_handle', supplying the command words as the
function arguments.
w. There is a new shell option: `globstar'. When enabled, the globbing code
treats `**' specially -- it matches all directories (and files within
them, when appropriate) recursively.
x. There is a new shell option: `dirspell'. When enabled, the filename
completion code performs spelling correction on directory names during
completion.
y. The `-t' option to the `read' builtin now supports fractional timeout
values.
z. Brace expansion now allows zero-padding of expanded numeric values and
will add the proper number of zeroes to make sure all values contain the
same number of digits.
aa. There is a new bash-specific bindable readline function: `dabbrev-expand'.
It uses menu completion on a set of words taken from the history list.
bb. The command assigned to a key sequence with `bind -x' now sets two new
variables in the environment of the executed command: READLINE_LINE_BUFFER
and READLINE_POINT. The command can change the current readline line
and cursor position by modifying READLINE_LINE_BUFFER and READLINE_POINT,
respectively.
cc. There is a new &>> redirection operator, which appends the standard output
and standard error to the named file.
dd. The parser now understands `|&' as a synonym for `2>&1 |', which redirects
the standard error for a command through a pipe.
ee. The new `;&' case statement action list terminator causes execution to
continue with the action associated with the next pattern in the
statement rather than terminating the command.
ff. The new `;;&' case statement action list terminator causes the shell to
test the next set of patterns after completing execution of the current
action, rather than terminating the command.
gg. The shell understands a new variable: PROMPT_DIRTRIM. When set to an
integer value greater than zero, prompt expansion of \w and \W will
retain only that number of trailing pathname components and replace
the intervening characters with `...'.
hh. There are new case-modifying word expansions: uppercase (^[^]) and
lowercase (,[,]). They can work on either the first character or
array element, or globally. They accept an optional shell pattern
that determines which characters to modify. There is an optionally-
configured feature to include capitalization operators.
ii. The shell provides associative array variables, with the appropriate
support to create, delete, assign values to, and expand them.
jj. The `declare' builtin now has new -l (convert value to lowercase upon
assignment) and -u (convert value to uppercase upon assignment) options.
There is an optionally-configurable -c option to capitalize a value at
assignment.
kk. There is a new `coproc' reserved word that specifies a coprocess: an
asynchronous command run with two pipes connected to the creating shell.
Coprocs can be named. The input and output file descriptors and the
PID of the coprocess are available to the calling shell in variables
with coproc-specific names.
ll. A value of 0 for the -t option to `read' now returns success if there is
input available to be read from the specified file descriptor.
mm. CDPATH and GLOBIGNORE are ignored when the shell is running in privileged
mode.
nn. New bindable readline functions shell-forward-word and shell-backward-word,
which move forward and backward words delimited by shell metacharacters
and honor shell quoting.
oo. New bindable readline functions shell-backward-kill-word and shell-kill-word
which kill words backward and forward, but use the same word boundaries
as shell-forward-word and shell-backward-word.
2. New Features in Readline
a. A new variable, rl_sort_completion_matches; allows applications to inhibit
match list sorting (but beware: some things don't work right if
applications do this).
b. A new variable, rl_completion_invoking_key; allows applications to discover
the key that invoked rl_complete or rl_menu_complete.
c. The functions rl_block_sigint and rl_release_sigint are now public and
available to calling applications who want to protect critical sections
(like redisplay).
d. The functions rl_save_state and rl_restore_state are now public and
available to calling applications; documented rest of readline's state
flag values.
e. A new user-settable variable, `history-size', allows setting the maximum
number of entries in the history list.
f. There is a new implementation of menu completion, with several improvements
over the old; the most notable improvement is a better `completions
browsing' mode.
g. The menu completion code now uses the rl_menu_completion_entry_function
variable, allowing applications to provide their own menu completion
generators.
h. There is support for replacing a prefix of a pathname with a `...' when
displaying possible completions. This is controllable by setting the
`completion-prefix-display-length' variable. Matches with a common prefix
longer than this value have the common prefix replaced with `...'.
i. There is a new `revert-all-at-newline' variable. If enabled, readline will
undo all outstanding changes to all history lines when `accept-line' is
executed.
j. If the kernel supports it, readline displays special characters
corresponding to a keyboard-generated signal when the signal is received.
Changes from NEWS:
--------8<--------8<--------8<--------8<--------8<--------8<--------8<
Major changes between versions 4.3.6 and 4.3.9
----------------------------------------------
The option COMBINING_CHARS has been added. When it is set, the
line editor assumes the terminal is capable of displaying zero-width
combining characters (typically accents) correctly as modifications
to the base character, and will act accordingly. Note it is not set
by default owing to vagaries of terminals. The system is reported
to work on MacOS, where this is particularly important as accented
characters in file names are stored in their decomposed form (i.e.
with base and combining characters).
The option HIST_FCNTL_LOCK has been added to provide locking of history
files using the system call fcntl(). On recent NFS implementations this
may provide better reliability.
The syntax ~[...] provides a dynamic form of directory naming,
supplementing the existing static ~name syntax. A user-defined shell
function, zsh_directory_name, is used to handle both expansion of names to
directories and contraction of directories to names.
Patterns can now be used in incremental searches with the new widgets
history-incremental-pattern-search-backward and
history-incremental-pattern-search-forward. These are not bound to
keys by default.
Highlighting and colouring of sections of the command line is now
supported, controlled by the array parameter zle_highlight and the ZLE
special parameter region_highlight.
Colouring of prompts is now supported within the shell by prompt
escapes. The prompt theme system has been updated.
Various changes have been added to make debugging of shell code easier:
- As noted in README, the option DEBUG_BEFORE_CMD is now set by default.
- In DEBUG traps, $ZSH_DEBUG_CMD gives the code for which the trap is
called as a string.
- "setopt ERR_EXIT" in a DEBUG trap causes the code not to be executed.
- $ZSH_SUBSHELL indicates the subshell level at which code is being
executed.
- The zsh/parameter module has various additional arrays similar to
the existing $funcstack and $functrace, namely $funcsourcetrace
and $funcfiletrace. The consistency and informativeness of
the output of all these arrays has been improved.
- Prompt escapes %x and %I show the source file and line number in
debug prompts (compare %N and %i which show names and line numbers
in the execution environment).
- The option NO_MULTI_FUNCDEF can turn off multiple definition of
functions at once, a rarely used feature that can cause problems
with misplaced "()".
- The "fc" builtin has been enhanced to make non-interactive use possible
and output consistent when the history is manipulated with "print -s".
The completion style accept-exact-dirs has been added. When true, this
suppresses attempts to complete non-final directory segments of a filename
path when the directory exists. (For example, /home/pws/src/zsh/<TAB>
discovers that /home/pws/src/zsh exists and leaves the directory component
alone, while /h/p/s/z/<TAB> completes to /home/pws/src/zsh/... as before.)
This should improve completion behaviour noticeably in special cases, such
as remote paths under Cygwin.
Major changes between versions 4.3.5 and 4.3.6
----------------------------------------------
cd, chdir, pushd and popd now take a -q option to suppress side effects
including printing the directory stack (for pushd and popd) and executing
the chpwd hook functions (for all four).
The parameter subscript (e) flag now forces the argument to be treated
as a string where it would previously have been treated as a pattern,
for example ${array[(ie)*]} substitutes the index of the element whose
value is "*".
Major changes between versions 4.3.4 and 4.3.5
----------------------------------------------
- The new extended globbing flag (#cN,M) behaves similarly to the extended
regular expression syntax {N,M}.
- The zsh/datetime module has been enhanced and a calendar function
system has been added along the lines of (but much enhanced from)
the traditional Unix "calendar" utility. This is still under
development. See the zshcalsys manual. (The calendar functions
were in 4.3.4 but were not listed in this file. There have been
significant enhancements since 4.3.4.)
- A new module zsh/curses provides a builtin zcurses for access to
to the curses screen manipulation package. See the entry for zsh/curses
in the zshmodules manual.
- The module system has been enhanced to support the notion of "features"
that give more control over which builtins, parameters, conditions
and math functions are loaded from a module. In particular,
"zmodload -F zsh/stat b:zstat" makes the builtin previously called
"stat" available as "zstat" (only) to avoid clashes with a system
command named "stat".
>8-------->8-------->8-------->8-------->8-------->8-------->8--------
Upstream changes between osh-20081122 and osh-20081213 follow.
osh.c:
This release changes the effect of the `-v' command-line option so that,
in addition to printing non-blank command lines to the standard error,
it also prints each blank/empty command line as an empty line.
fd2.c, util.c:
This release changes the fd2 `-e' command-line option so that it
reflects the documented behavior. For example, this change causes
invocation of `fd2 -ef file command' to redirect both conventional
output and diagnostic output from "command" to "file".
Add new maintainer. Thank you J.A.
The following is from PR #40006:
I would like to maintain this package if that is acceptable.
Thus, I added myself as MAINTAINER.
Changed files: DESCR, Makefile, PLIST, distinfo
Changes between osh-20080629 and osh-20081122 which affect the osh
package on the various pkgsrc platforms are described below.
------------------------------------------------------------------------
[osh-20081122]:
mkconfig:
* Added a case for DragonFly BSD (uname -s == DragonFly).
osh.c:
* Fixed a bug introduced in osh-20061230 where the shell
incorrectly handles an unescaped terminating backslash (\)
character at the end of string when the shell is invoked as
`osh -c string'. In this case, the terminating backslash
causes the shell to incorrectly read from the standard input
at the end of string.
For example:
% osh -c 'echo Hello\'
to\
you!
Hello to you!
This example should instead do nothing and exit w/ a zero
status. For `osh -c string', an unescaped terminating
backslash should effectively turn string into a no-op.
Now, it behaves as expected.
------------------------------------------------------------------------
[osh-20081026]:
Makefile:
* Changed the "oshall" target to only build osh since the fd2,
goto, and if utilities are now built into the shell.
* Changed the "install-oshall" target to only install osh and
its manual pages. This includes the fd2.1, goto.1, and if.1
manual pages since they are not fully documented elsewhere.
osh.c:
* Renamed cmd_index() to cmd_lookup(), and changed the algorithm
from a linear search to a binary search.
* Added a base reallocation multiplier to glob() to reduce the
number of realloc()s required for very large argument vectors
while allowing the first malloc() to be a relatively small
allocation for up to 126 matching file-name arguments.
util.c:
* This is a new file for the integrated shell utilities.
* Added a new `-e' command-line option to fd2 to simplify
redirecting all conventional output to the standard error
as diagnostic output.
* Integrated the external `fd2', `goto', and `if' shell
utilities as special built-in commands to improve shell
performance. Also, added `echo' as a special built-in
command. Osh executes each of these built-ins in a subshell.
Consequently, the I/O for each can be redirected as before,
and the argument list for each can be the result of a call to
glob() as before.
Major changes:
* Digital UNIX (DEC OSF/1) V2.0 (MIPS) is now supported using the DEC C and ucode toolchain. (We could not run the testsuite, though.)
* The ‘-Q’ option to Build.sh is gone without replacement.
* A new option can be enabled by adding -DMKSH_BINSHREDUCED to $CPPFLAGS, intended mostly for Debian. This option adds extra code to determine whether mksh(1) is called as sh or -sh and switch to “set -o posix” mode if so, disabling brace expansion and some security features, because legacy scripts, such as debconf, depend on such reduced functionality /bin/shs.
* Input lines beginning with an IFS character of IFS white space are no longer pushed into the history. Some other, less surprising, changes were also made to both Emacs and Vi command line editing modes.
* The arc4random.c contributed file is now stored with the RCS version number appended, and has been updated.
to trigger/signal a rebuild for the transition 5.8.8 -> 5.10.0.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=...").
mksh R35b comes with the following bug fixes:
IRIX also has no UTF-8 locale at all, confirmed by Elias Pipping
Fix regression test suite for MKSH_SMALL
Bring in latest changes from oksh (OpenBSD ksh, not DeliLinux crap)
Fix abuse and unsafe use of str_save() and str_nsave()
Optimise the implementations of str_save() and str_nsave()
If MKSH_AFREE_DEBUG is defined, guard against afree()ing a pointer which has not been allocated from the given pool, from Todd C. Miller
Fix attempt to free a pointer to stack (function-local) storage when redefining a function containing a call to the “time” built-in, discovered by Elias Pipping, patch by Jared Yanovich, help from Todd C. Miller
Protect a little against people not running “./test.sh -v” but calling it with, for instance, GNU bash (as homsn did…)
Honour $PERL environment variable in test.sh, improve scanning for Perl, do not use potentially undefined $^O, print Perl version
Add <sys/types.h> as <ulimit.h> requirement (dietlibc)
Work around bug in BSD/OS 3.1 /bin/ksh (PD KSH v5.2.8 96/08/19)
Add regression tests from OpenBSD’s <bsd.regress.mk> suite
Use better CPPFLAGS for AIX, Minix 3 (from pdksh)
Expose the “s ≠ NULL” str_[n]save_() API and use it where the string can never be NULL (local stack storage), from gcc-4.2 warnings
Clean up pointer-to-integer-cast warnings in the mirtoconf process
mksh R35 comes with helluva changes:
Simplify and refactor the ulimit builtin, partially from oksh
Some style cleanup; use appropriate integer types
Fix a bug in table (e.g. kill -l, tab completion) display: the width of non-ASCII characters is now honoured in the utf8-hack mode
Improve handling of invalid UTF-8 in certain areas, and multibyte (UTF-8 / CESU-8) in general
When using “typeset -Z«n»” on an integer variable with a base other than ten, zero-pad the value instead of the base – pdksh, oksh, zsh, and AT&T ksh93 are wrong here; GNU bash doesn’t even have typeset
Improve parsing of “set +o” output where done (dot.mkshrc, check.t)
Improve regression tests
Support for base-1 numbers: in non-utf8-hack mode, ‘1#x’ means the same as the ASCII code for ‘x’ (e.g. 78hex), where ‘x’ is any single octet (byte); in utf8-hack mode, ‘x’ is either a valid and minimalistically encoded UTF-8 multibyte character in the range 0000‥FFFD, or a single octet with no trailing octets (bytes), which will then be converted as if it were an ASCII value, or, if bit7 is set, be mapped into the PUA range of EF80‥EFFF assigned by CSUR for this purpose; this mapping is, in both cases, bidirectional; the planned base-0 number support is not possible with the code, so use base-1 (with utf8-hack disabled, or & 0xFF) instead (while it is recommended to parse only single octets, there is a regression test showing correct and safe multibyte parsing, which however is error-prone to implement and thusly not recommended) – “genial” replaced@TNG, “this sounds fun” ggergely, agreed bsiegert@ and others
Pull in more current versions of supplied files; use Unicode 5.0
Clean up unused definitions in build system; document MKSH_CLS_STRING
Remove advertising clause from copyright file; while we’d be pleased to be mentioned if something contains our code, tg@ will no longer enforce the requirement to advertise with that specific formula, and we’d prefer if people remember the OpenHAL vs ath5k incident and that they cannot simply change licencing of existing code; patches sent to the MirOS Project for inclusion shall be accepted if they’re agreed to match this licence
Simplify dot.mkshrc sample file: licence is merged into the main copyright file; AT&T ksh93 compatibility was improved
Fix a display problem regarding fullwidth characters (e.g. CJK)
Set the “C” locale in Build.sh for tool execution; otherwise, certain OEs behave strange; thanks to Adam “replaced” Hoka for spotting
Use en_US.utf8 as UTF-8 locale for the testsuite for now
If setlocale(LC_CTYPE, "") is not available, look at the environment variables ourselves – brings UTF-8 support to poor OSes
Remove some now-dead code; speed up configuration process; shrink
Default to no setlocale(3) due to stubbed or missing locale support on GNU/Cygwin, OpenBSD, OSF/1 in Build.sh; a few more that are quite unlikely to have a UTF-8 locale: BSD/OS, Interix, Minix, PW32, Ultrix, AT&T UWIN; default to always UTF-8 on Plan 9
Fix for testsuite unexpected failure if running as root in one case
Initialise all shell integer variables (OPTIND, PPID, RANDOM, SECONDS, TMOUT) to base 10
Reintroduce from mksh pre-R24 shell integer variable PGRP set to the PID of the process group leader via getpgrp(2)
New shell integer variable USER_ID set to the geteuid(2) and used by dot.mkshrc to speed up logins, saves a spawn of id(1), mentioned by and realisation planned with Andreas "gecko2" Gockel
Fix dot.mkshrc tilde replacement in both $PS1 and the pushd/popd/dirs implementation when the home directory is empty, the root directory, or ends with a slash (disable replacement in that case)
Support dietlibc, force it into providing a BSDish caddr_t
Do not use LDFLAGS and LIBS while compiling with -c
Add realpath(3) builtin, to further speed up logins and chdirs
Optimise the code somewhat by making use of possible assumptions
Set the “C” locale in test.sh as well to quell warnings
Split the regression tests that use locale between en_US.utf8 and en_US.UTF-8, since not all OSes support either one, and make only HP-UX and GNU use the latter
Fix kill, mknod(8) builtin usage msg, from Igor Sobrado via oksh
Use proper ptrdiff_t casts for pointer arithmetics, inspired by an oksh commit from Federico Schwindt
Remove check category “pdksh” from check.t and test script
Improve Darwin, OSF/1, HP aCC, SUNpro version reporting
Support GNU bash “&>” extension, even better than they do, suggested by Lukas “smultron” Upton from MidnightBSD
Basic support for LLVM+clang in the build system with experimental “ccc” compiler driver; llvm-gcc worked as-is before already
Better support for contributed arc4random.c file
Do not spin if unlink(2) fails on $HISTFILE, from Decklin Foster
Dump the perl(1) $^O variable in test.sh to logs
Pull in latest changes from oksh
Allow white space between a here string indicator and the string, accidentally discovered by twkm (#ksh, freenode)
Allow fd specifications outside the 0‥9 range for I/O redirections, and bounds check them to be lower than the FDBASE definition, currently still 10 if MKSH_SMALL, 24 otherwise (unportable)
Improve the regression test suite: for one test, we had a bizarre constraint telling it won’t work on UWIN, which was based upon false assumptions, but Tru64 would fail it since its cat(1) unexpectedly outputs some error messages (fix by closing stderr for cat); another test would unexpectedly print no error message on Solaris (fix by making the error message optional in the perlre(1) used)
Switch back to en_US.UTF-8 for glibc, Debian can do both, Mandriva fails on en_US.utf8 (XXX no libc5 auto-detection to disable it)
Based on PR 37283 (update to 1.8).
eltclsh 1.9 released august 8, 2008
30. Fix libtool usage and install target to allow cross compilation in OpenEmbedded.
29. Honor TCL_DBGX to allow compiling against a tcl library with debugging
symbols enabled.
28. Honor CFLAGS from the environment during the build process
27. Fix history command that was not working.
26. Switch repository to git.
eltclsh 1.8 released august 20, 2007
25. Add wrappedputs procedure that print a string wrapped to a given width.
24. Stop scanning arguments in interactive mode when user press C-d.
eltclsh 1.7 released december 19, 2006
23. Add new function "interactive" which starts the interactive
interpreter (useful inside scripts).
22. Add support for installation in $(DESTDIR)
Based on PR 37283 (updated to 1.8).
eltclsh 1.9 released august 8, 2008
30. Fix libtool usage and install target to allow cross compilation in OpenEmbedded.
29. Honor TCL_DBGX to allow compiling against a tcl library with debugging
symbols enabled.
28. Honor CFLAGS from the environment during the build process
27. Fix history command that was not working.
26. Switch repository to git.
eltclsh 1.8 released august 20, 2007
25. Add wrappedputs procedure that print a string wrapped to a given width.
24. Stop scanning arguments in interactive mode when user press C-d.
eltclsh 1.7 released december 19, 2006
23. Add new function "interactive" which starts the interactive
interpreter (useful inside scripts).
22. Add support for installation in $(DESTDIR)
Significant changes include the following:
1) Support was added for 3 new command-line options: "-i", "-l", and "-v".
2) Support was added for 3 new rc files.
*) This includes a system-wide "osh.oshrc",
a system-wide "osh.logout", and a user ".osh.logout".
See http://v6shell.org/src/CHANGES for full details.
PDKSH-5_2_14 and NetBSD-current HEAD as of 2008-05-31.
- Fixes rare segfault seen on Solaris.
- add strlcpy and strlcat fallback implementations from libnbcompat
- regenerate configure (using autoconf-2.12, ugh)
Changes since 4.3:
- fix support for quota and passwd when running within the
chroot (exec pre-chroot)
- disallow rsync and svnserve from being run as daemons that
listen on a port
- switch to getopt_long for command processing, use getopt for
sftp-server, svnserve, and quota
- abort processing on commands that require getopt when getopt
is not available
- switched to slightly optimized and more compact debug code
- fix unison support within chroots
- fix for unison command execution bug
- allow multiple users with the same uid using USER environment
variable
- added missing semicolon to helper.c
- fixes the configure.in script to not define HAVE_OPTRESET, not
even to a value of 0
- fixes that hopefully improve the optarg compilation situation
- UNISON $HOME environment fix
- fixes to setup_chroot.sh/in
No changes in mksh R33c except for Ultrix support. None in R33d.
In mksh R33b, much more compilers are detected, even if not all of
them are supported. The OE (OS and CC/LD) versions are now dumped
too. Instead of #error, forced link failures are now used as the
mechanism to auto-detect some things in the target environment.
Features are now much better detected, and some annoying warnings
don't show up any longer due to this. Less tools are required to
build.
Please be reminded that you should run ./test.sh -v inside an
environment with /dev/tty available (as device node) and usable
(e.g. use script(1) or GNU screen if you're doing auto-builds
detached from controlling terminal). Use -v to see failures.
No surprises in mksh R33 either, but the build system now gives
more detailed output on the version actually built, to aid tracking
down FTBFSen (build errors) with access to only the build logs.
Regression tests now work with Intel's compiler on SLES too, which
requires a custom LD_LIBRARY_PATH formerly stripped by the script.
A relatively new feature in bash is programmable completion, which
has been available since the beta version of 2.04. Programmable
completion will be familiar to you if you are a zsh user. It also
exists, albeit in a much less usable form, in tcsh.
Standard completion
bash has offered many forms of completion since its inception,
including path, file, user, host and variable completion.
* Path-name completion
* File-name completion
* User-name completion
* Host-name completion
* Variable-name completion
Programmable completion indefinitely extends the type of completion
you can perform.
This package contains a variety of completions for various programs.
Based on patch provided by Jeffrey Allen Neitzel in PR 37737.
My modification:
* Honor PKGMANDIR
* Update MASTER_SITES and HOMEPAGE to new location.
Changes:
[osh-20080109]:
* New file: mkconfig (see Build/Install Changes)
* Moved files: Moved manual pages from *.1 to *.1.in to make their
generation and installation simpler in the Makefile.
Build/Install Changes:
* Stopped defining _XOPEN_SOURCE when compiling on Mac OS X, NetBSD,
and OpenBSD. It is simply not necessary. However, _XOPEN_SOURCE
and _BSD_SOURCE are necessary on GNU/Linux systems.
* Added a simple configure script, mkconfig. It is automatically
invoked from the Makefile to write out an appropriate "config.h"
file according to the osh package's needs on the given system. It
simply sets PATH_LOGIN, PATH_NEWGRP, _XOPEN_SOURCE, and _BSD_SOURCE
as needed so that the user does not need to bother w/ doing it
manually at build time.
osh.c:
* Patched the code to fix a "$0" parameter-substitution problem w/
the `source' command in the following interactive context:
% cat >file
echo \$0 == \"$0\"
echo \$1 == \"$1\"
^D
% source file ; : ... gives correct value for "$0".
$0 == ""
$1 == ""
% source file arg ; : ... gives incorrect value for "$0".
$0 == "0"
$1 == "arg"
getdolp() indirectly caused the problem by returning a NULL pointer
when the intended result was a pointer to the empty string. This
problem was not fatal, as the shell handles NULL pointers from
getdolp() anyway. However, NULL is supposed to indicate an
error where the specified parameter means nothing to the shell...
For example:
% echo \$Z == \"$Z\"
$Z == "Z"
* Changed the source command's parameter-substitution behavior so
that $0 always results in the name of the sourced command file,
not the name inherited from the main shell context. This makes
the parameter-substitution behavior of sourced command files
just like that of any other osh command file. Plus, this is
the documented behavior.
osh.1.in, sh6.1.in:
* Revised some wording to remove some cases of possible ambiguity.
-------------------------------------------------------------------------------
[osh-20070707]:
* Added a new file, INSTALL, which contains build and install
instructions. Made reference to INSTALL in Makefile and README.
Makefile:
* Added 3 new variables, MOXARCH, MOXSHELLARCH, and MOXUTILSARCH, to
simplify building universal binaries for Mac OS X. These are unset
by default. See INSTALL for more info.
* Changed the default value for SYSCONFDIR from /etc to $(PREFIX)/etc.
osh.c:
* Changed the reserved file descriptors from (7 - 9) to (10 - 12) in
order to avoid fd conflict w/ rxvt-unicode (version 8.2). This
conflict prevented `chdir -' from functioning correctly, but this
problem is now fixed.
The problem was clearly visible when running an interactive instance
of osh under the rxvt-unicode daemon (urxvtd) on Mac OS X. However,
I never saw this type of conflict when running under any other type
of terminal emulator on any OS. Thus, I do not know if this was
only an osh problem, a urxvtd problem, a Mac OS X problem, or some
combination of the 3...
R32:
* Make checks for symbol declarations compile checks instead of link
checks, as the binding may not succeed due to different symbol types,
for instance on AIX, if the declaration does not match
* Widen the range of array indices to [0..2^3ý-1], with negative values
being mapped into the high-bit31 range for simplicity
* Fix the pipeline-as-coprocess internal error
* Do not require certain integer types to be defined any more
R31d:
* Support pcc (the ragge version of the Portable C Compiler)
* Add pushd/popd/dirs functions (csh) and precmd/chpwd hooks (zsh) to
dot.mkshrc which now requires readlink(1) with -f; requested by many
(e.g. some Gentoo users; XTaran of symlink.ch)
* Enable colour escapes in dot.mkshrc since almost nobody groks how to
do it right from the manual
* Remove -DMKSH_NEED_MKNOD checks from Build.sh, people should use the
HAVE_MKNOD environment variable
* Implement parallel make in Build.sh
* Fix another busy-loop spinning problem introduced by an icc warning,
thanks to spaetzle@freewrt.org for keeping to bug me to look for it,
as it affected GNU/Linux most, followed by Solaris, rarely BSD
* Improve standard integer type detection in Build.sh
* Cleanups in code, build script and manual page
R31b:
* Fix typo (blsk -> bksl) in check.t test naming
* Autoscan for uint32_t, u_int etc. presence
* Fix some memory leaks, mostly by NetBSD(R) via OpenBSD
* The "unset" builtin always returns zero, even if the variable was
already unset, as per SUSv3 (reported by Arkadiusz Miskiewicz via
pld-linux -> oksh)
* In tab-completion, escape the question mark, reminded by
cbiere@netbsd.org, via oksh
* Fix a busy-loop problem, Debian #296446 via oksh
* Fix a few display output problems in the build script
* Shut up some gcc warnings on Fedora; beautify some code
* Support OSF/1 with gcc2.8, thanks to Jupp Schugt
* Fix gcc4 detection of __attribute__() on non-SSP targets
R31:
* Support the TenDRA compiler (possibly also Ten15, not tried)
* Begin supporting Fabrice Bellard's Tiny C Compiler (tcc on Debian
cannot link due to duplicate symbols in GNU libc, thus unfinished)
* Improve some mirtoconf checks (most notably, mknod(2) and macros)
* Add new emacs editing command "clear-screen" (ESC ^L) as requested by
D. Adam Karim <archite@midnightbsd.org>
* Support building for MidnightBSD
* Add new shell alias "source", semantics like the GNU bash builtin
* Add new shell option "set ño arc4random", controlling whether rand(3)
or arc4random(3) is used for the $RANDOM value, use
arc4random_pushb(3)
* Add new builtin "rename" (just calls rename(2) on its arguments)
* Fix the inofficial OpenBSD port, from D. Adam "Archite" Karim, 10x
* Disable the less(1) history file by default (privacy issues) in the
sample dot.mkshrc file; mention other things in etc_profile
* Fix a syntax error in Build.sh checking for TenDRA
linking behavior under NetBSD. This matches what "bsd.shlib.mk" does
and avoids "Malformed conditional" warnings under other platforms.
This fixes PR pkg/36769 by Yakovetsky Vladimir.
* If the basename of argv[0] starts with "sh", activate FPOSIX early,
preventing some typical ksh aliases from being defined.
* If FPOSIX, don't pre-define aliases (except integer and local) to
benefit operating environments that never heard of the great Korn Shell.
* Support x=(a b c) bash-like array initialisation
* Support ${foo:2:3} bash-like substring expansion
* Don't try to execute ELF, a.out, COFF, gzip or MZ binaries, e.g.
mksh /bin/sh.
* Prefer well-known signal names to alphabetically earlier ones
* Fix a bug delivering ERR and EXIT pseudo-signals to traps combined
with "set -e".
Update from mirabilos#pkgsrc with small fixups by me.