Update to 4.3:
This is a terse description of the new features added to bash-4.3 since the release of bash-4.2. As always, the manual page (doc/bash.1) is the place to look for complete descriptions. 1. New Features in Bash a. The `helptopic' completion action now maps to all the help topics, not just the shell builtins. b. The `help' builtin no longer does prefix substring matching first, so `help read' does not match `readonly', but will do it if exact string matching fails. c. The shell can be compiled to not display a message about processes that terminate due to SIGTERM. d. Non-interactive shells now react to the setting of checkwinsize and set LINES and COLUMNS after a foreground job exits. e. There is a new shell option, `globasciiranges', which, when set to on, forces globbing range comparisons to use character ordering as if they were run in the C locale. f. There is a new shell option, `direxpand', which makes filename completion expand variables in directory names in the way bash-4.1 did. g. In Posix mode, the `command' builtin does not change whether or not a builtin it shadows is treated as an assignment builtin. h. The `return' and `exit' builtins accept negative exit status arguments. i. The word completion code checks whether or not a filename containing a shell variable expands to a directory name and appends `/' to the word as appropriate. The same code expands shell variables in command names when performing command completion. j. In Posix mode, it is now an error to attempt to define a shell function with the same name as a Posix special builtin. k. When compiled for strict Posix conformance, history expansion is disabled by default. l. The history expansion character (!) does not cause history expansion when followed by the closing quote in a double-quoted string. m. `complete' and its siblings compgen/compopt now takes a new `-o noquote' option to inhibit quoting of the completions. n. Setting HISTSIZE to a value less than zero causes the history list to be unlimited (setting it 0 zero disables the history list). o. Setting HISTFILESIZE to a value less than zero causes the history file size to be unlimited (setting it to 0 causes the history file to be truncated to zero size). p. The `read' builtin now skips NUL bytes in the input. q. There is a new `bind -X' option to print all key sequences bound to Unix commands. r. When in Posix mode, `read' is interruptible by a trapped signal. After running the trap handler, read returns 128+signal and throws away any partially-read input. s. The command completion code skips whitespace and assignment statements before looking for the command name word to be completed. t. The build process has a new mechanism for constructing separate help files that better reflects the current set of compilation options. u. The -nt and -ot options to test now work with files with nanosecond timestamp resolution. v. The shell saves the command history in any shell for which history is enabled and HISTFILE is set, not just interactive shells. w. The shell has `nameref' variables and new -n(/+n) options to declare and unset to use them, and a `test -R' option to test for them. x. The shell now allows assigning, referencing, and unsetting elements of indexed arrays using negative subscripts (a[-1]=2, echo ${a[-1]}) which count back from the last element of the array. y. The {x}<word redirection feature now allows words like {array[ind]} and can use variables with special meanings to the shell (e.g., BASH_XTRACEFD). z. There is a new CHILD_MAX special shell variable; its value controls the number of exited child statues the shell remembers. aa. There is a new configuration option (--enable-direxpand-default) that causes the `direxpand' shell option to be enabled by default. bb. Bash does not do anything special to ensure that the file descriptor assigned to X in {x}<foo remains open after the block containing it completes. cc. The `wait' builtin has a new `-n' option to wait for the next child to change status. dd. The `printf' %(...)T format specifier now uses the current time if no argument is supplied. ee. There is a new variable, BASH_COMPAT, that controls the current shell compatibility level. ff. The `popd' builtin now treats additional arguments as errors. gg. The brace expansion code now treats a failed sequence expansion as a simple string and will continue to expand brace terms in the remainder of the word. hh. Shells started to run process substitutions now run any trap set on EXIT. ii. The fc builtin now interprets -0 as the current command line. jj. Completing directory names containing shell variables now adds a trailing slash if the expanded result is a directory. kk. `cd' has a new `-@' option to browse a file's extended attributes on systems that support O_XATTR. ll. The test/[/[[ `-v variable' binary operator now understands array references. 2. New Features in Readline a. Readline is now more responsive to SIGHUP and other fatal signals when reading input from the terminal or performing word completion but no longer attempts to run any not-allowable functions from a signal handler context. b. There are new bindable commands to search the history for the string of characters between the beginning of the line and the point (history-substring-search-forward, history-substring-search-backward) c. Readline allows quoted strings as the values of variables when setting them with `set'. As a side effect, trailing spaces and tabs are ignored when setting a string variable's value. d. The history library creates a backup of the history file when writing it and restores the backup on a write error. e. New application-settable variable: rl_filename_stat_hook: a function called with a filename before using it in a call to stat(2). Bash uses it to expand shell variables so things like $HOME/Downloads have a slash appended. f. New bindable function `print-last-kbd-macro', prints the most-recently- defined keyboard macro in a reusable format. g. New user-settable variable `colored-stats', enables use of colored text to denote file types when displaying possible completions (colored analog of visible-stats). h. New user-settable variable `keyseq-timout', acts as an inter-character timeout when reading input or incremental search strings. i. New application-callable function: rl_clear_history. Clears the history list and frees all readline-associated private data. j. New user-settable variable, show-mode-in-prompt, adds a characters to the beginning of the prompt indicating the current editing mode. k. New application-settable variable: rl_input_available_hook; function to be called when readline detects there is data available on its input file descriptor. l. Readline calls an application-set event hook (rl_event_hook) after it gets a signal while reading input (read returns -1/EINTR but readline does not handle the signal immediately) to allow the application to handle or otherwise note it. m. If the user-settable variable `history-size' is set to a value less than 0, the history list size is unlimited. n. New application-settable variable: rl_signal_event_hook; function that is called when readline is reading terminal input and read(2) is interrupted by a signal. Currently not called for SIGHUP or SIGTERM. o. rl_change_environment: new application-settable variable that controls whether or not Readline modifies the environment (currently readline modifies only LINES and COLUMNS).
This commit is contained in:
parent
af811e5135
commit
4103332619
8 changed files with 24 additions and 189 deletions
|
@ -1,10 +1,9 @@
|
|||
# $NetBSD: Makefile,v 1.60 2014/01/11 18:18:46 chopps Exp $
|
||||
# $NetBSD: Makefile,v 1.61 2014/03/12 10:08:46 wiz Exp $
|
||||
|
||||
BASH_VERSION= 4.2
|
||||
BASH_VERSION= 4.3
|
||||
|
||||
DISTNAME= bash-${BASH_VERSION}
|
||||
#PKGNAME= bash-${BASH_VERSION}.${BASH_PATCHLEVEL}
|
||||
PKGREVISION= 4
|
||||
CATEGORIES= shells
|
||||
MASTER_SITES= ${MASTER_SITE_GNU:=bash/} \
|
||||
ftp://ftp.cwru.edu/pub/bash/
|
||||
|
|
|
@ -1,14 +1,26 @@
|
|||
@comment $NetBSD: PLIST,v 1.6 2011/03/12 15:55:22 wiz Exp $
|
||||
@comment $NetBSD: PLIST,v 1.7 2014/03/12 10:08:46 wiz Exp $
|
||||
bin/bash
|
||||
bin/bashbug
|
||||
info/bash.info
|
||||
man/man1/bash.1
|
||||
man/man1/bashbug.1
|
||||
share/doc/bash/CHANGES
|
||||
share/doc/bash/COMPAT
|
||||
share/doc/bash/FAQ
|
||||
share/doc/bash/INTRO
|
||||
share/doc/bash/NEWS
|
||||
share/doc/bash/POSIX
|
||||
share/doc/bash/RBASH
|
||||
share/doc/bash/README
|
||||
share/doc/bash/bash.html
|
||||
share/doc/bash/bashref.html
|
||||
share/locale/af/LC_MESSAGES/bash.mo
|
||||
share/locale/bg/LC_MESSAGES/bash.mo
|
||||
share/locale/ca/LC_MESSAGES/bash.mo
|
||||
share/locale/cs/LC_MESSAGES/bash.mo
|
||||
share/locale/da/LC_MESSAGES/bash.mo
|
||||
share/locale/de/LC_MESSAGES/bash.mo
|
||||
share/locale/el/LC_MESSAGES/bash.mo
|
||||
share/locale/en@boldquot/LC_MESSAGES/bash.mo
|
||||
share/locale/en@quot/LC_MESSAGES/bash.mo
|
||||
share/locale/eo/LC_MESSAGES/bash.mo
|
||||
|
@ -17,8 +29,11 @@ share/locale/et/LC_MESSAGES/bash.mo
|
|||
share/locale/fi/LC_MESSAGES/bash.mo
|
||||
share/locale/fr/LC_MESSAGES/bash.mo
|
||||
share/locale/ga/LC_MESSAGES/bash.mo
|
||||
share/locale/gl/LC_MESSAGES/bash.mo
|
||||
share/locale/hr/LC_MESSAGES/bash.mo
|
||||
share/locale/hu/LC_MESSAGES/bash.mo
|
||||
share/locale/id/LC_MESSAGES/bash.mo
|
||||
share/locale/it/LC_MESSAGES/bash.mo
|
||||
share/locale/ja/LC_MESSAGES/bash.mo
|
||||
share/locale/lt/LC_MESSAGES/bash.mo
|
||||
share/locale/nl/LC_MESSAGES/bash.mo
|
||||
|
@ -27,6 +42,8 @@ share/locale/pt_BR/LC_MESSAGES/bash.mo
|
|||
share/locale/ro/LC_MESSAGES/bash.mo
|
||||
share/locale/ru/LC_MESSAGES/bash.mo
|
||||
share/locale/sk/LC_MESSAGES/bash.mo
|
||||
share/locale/sl/LC_MESSAGES/bash.mo
|
||||
share/locale/sr/LC_MESSAGES/bash.mo
|
||||
share/locale/sv/LC_MESSAGES/bash.mo
|
||||
share/locale/tr/LC_MESSAGES/bash.mo
|
||||
share/locale/uk/LC_MESSAGES/bash.mo
|
||||
|
|
|
@ -1,14 +1,9 @@
|
|||
$NetBSD: distinfo,v 1.28 2014/01/11 18:07:06 chopps Exp $
|
||||
$NetBSD: distinfo,v 1.29 2014/03/12 10:08:46 wiz Exp $
|
||||
|
||||
SHA1 (bash-4.2.tar.gz) = 487840ab7134eb7901fbb2e49b0ee3d22de15cb8
|
||||
RMD160 (bash-4.2.tar.gz) = df7ae51783f039a1234d3b720ffcf4bfa5d09673
|
||||
Size (bash-4.2.tar.gz) = 7009201 bytes
|
||||
SHA1 (bash-4.3.tar.gz) = 45ac3c5727e7262334f4dfadecdf601b39434e84
|
||||
RMD160 (bash-4.3.tar.gz) = cd21a9f51ea7780994d4e2c9c7d16d5eb000f845
|
||||
Size (bash-4.3.tar.gz) = 7955839 bytes
|
||||
SHA1 (patch-af) = dfd1d1be3d822cfc3ae0fd21bb2bbd3e35b11f0d
|
||||
SHA1 (patch-ag) = 4da0a43f6b890482affff46b18eef4be67770e48
|
||||
SHA1 (patch-ai) = 26825922898567841bed0bf62a8dee3bcc50cd75
|
||||
SHA1 (patch-aj) = 8b3c52c2aee9cf53ee5a9ce64ead243d0970305e
|
||||
SHA1 (patch-ak) = 6dfb7195f45f81064f687a4c9febb9dcae721aa7
|
||||
SHA1 (patch-builtins_ulimit.def) = d4cb59bedc6a6199f9a99a3530c99374e428baeb
|
||||
SHA1 (patch-execute_cmd.c) = ce9fe5820188aa218bac74316d45cbdabadb1785
|
||||
SHA1 (patch-lib_readline_vi_mode.c) = 104be6ec5f30e39a5ee442de078ff5dcb9380874
|
||||
SHA1 (patch-lib_sh_eaccess.c) = 484577f09efe67f604c3fb85afdb5a58b64f5b6c
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
$NetBSD: patch-ai,v 1.1 2011/02/20 14:22:15 wiz Exp $
|
||||
|
||||
Add MirBSD.
|
||||
|
||||
--- support/shobj-conf.orig Wed Oct 28 13:19:57 2009
|
||||
+++ support/shobj-conf
|
||||
@@ -197,7 +197,7 @@ darwin*|macosx*)
|
||||
SHLIB_LIBS='-lncurses' # see if -lcurses works on MacOS X 10.1
|
||||
;;
|
||||
|
||||
-openbsd*|netbsd*)
|
||||
+openbsd*|netbsd*|mirbsd*)
|
||||
SHOBJ_CFLAGS=-fPIC
|
||||
SHOBJ_LD='${CC}'
|
||||
SHOBJ_LDFLAGS='-shared'
|
|
@ -1,14 +0,0 @@
|
|||
$NetBSD: patch-ak,v 1.1 2011/02/20 14:22:16 wiz Exp $
|
||||
|
||||
Add MirBSD.
|
||||
|
||||
--- configure.orig Tue Dec 29 13:34:27 2009
|
||||
+++ configure
|
||||
@@ -2192,6 +2192,7 @@ sparc-linux*) opt_bash_malloc=no ;; # sp
|
||||
#*-freebsd*-gnu) opt_bash_malloc=no ;; # there's some undetermined problem here
|
||||
#*-freebsd*) opt_bash_malloc=no ;; # they claim it's better; I disagree
|
||||
*-openbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
|
||||
+*-mirbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
|
||||
*-aix*) opt_bash_malloc=no ;; # AIX machines
|
||||
*-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep
|
||||
*-macos*) opt_bash_malloc=no ;; # Apple MacOS X
|
|
@ -1,31 +0,0 @@
|
|||
$NetBSD: patch-execute_cmd.c,v 1.1 2013/02/12 23:31:41 tcort Exp $
|
||||
|
||||
Allow bash to compile with JOB_CONTROL disabled.
|
||||
|
||||
http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-018
|
||||
|
||||
--- execute_cmd.c.orig Wed Feb 9 22:32:25 2011
|
||||
+++ execute_cmd.c Tue Feb 12 11:48:00 2013
|
||||
@@ -2196,6 +2196,7 @@
|
||||
if (ignore_return && cmd)
|
||||
cmd->flags |= CMD_IGNORE_RETURN;
|
||||
|
||||
+#if defined (JOB_CONTROL)
|
||||
lastpipe_flag = 0;
|
||||
begin_unwind_frame ("lastpipe-exec");
|
||||
lstdin = -1;
|
||||
@@ -2219,11 +2220,14 @@
|
||||
}
|
||||
if (prev >= 0)
|
||||
add_unwind_protect (close, prev);
|
||||
+#endif
|
||||
|
||||
exec_result = execute_command_internal (cmd, asynchronous, prev, pipe_out, fds_to_close);
|
||||
|
||||
+#if defined (JOB_CONTROL)
|
||||
if (lstdin > 0)
|
||||
restore_stdin (lstdin);
|
||||
+#endif
|
||||
|
||||
if (prev >= 0)
|
||||
close (prev);
|
|
@ -1,79 +0,0 @@
|
|||
$NetBSD: patch-lib_readline_vi_mode.c,v 1.1 2014/01/11 18:07:06 chopps Exp $
|
||||
|
||||
Pull in fix for 'cc', 'dd', commands 'yy' from readline git repository (pre-6.3
|
||||
release). Prior to this 'dd', et al. simply moved to position 0 but did not cut
|
||||
the text from the line.
|
||||
|
||||
--- lib/readline/vi_mode.c.orig 2010-11-21 00:51:39.000000000 +0000
|
||||
+++ lib/readline/vi_mode.c
|
||||
@@ -1114,7 +1114,7 @@ rl_domove_read_callback (m)
|
||||
rl_beg_of_line (1, c);
|
||||
_rl_vi_last_motion = c;
|
||||
RL_UNSETSTATE (RL_STATE_VIMOTION);
|
||||
- return (0);
|
||||
+ return (vidomove_dispatch (m));
|
||||
}
|
||||
#if defined (READLINE_CALLBACKS)
|
||||
/* XXX - these need to handle rl_universal_argument bindings */
|
||||
@@ -1234,11 +1234,19 @@ rl_vi_delete_to (count, key)
|
||||
_rl_vimvcxt->motion = '$';
|
||||
r = rl_domove_motion_callback (_rl_vimvcxt);
|
||||
}
|
||||
- else if (vi_redoing)
|
||||
+ else if (vi_redoing && _rl_vi_last_motion != 'd') /* `dd' is special */
|
||||
{
|
||||
_rl_vimvcxt->motion = _rl_vi_last_motion;
|
||||
r = rl_domove_motion_callback (_rl_vimvcxt);
|
||||
}
|
||||
+ else if (vi_redoing) /* handle redoing `dd' here */
|
||||
+ {
|
||||
+ _rl_vimvcxt->motion = _rl_vi_last_motion;
|
||||
+ rl_mark = rl_end;
|
||||
+ rl_beg_of_line (1, key);
|
||||
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
|
||||
+ r = vidomove_dispatch (_rl_vimvcxt);
|
||||
+ }
|
||||
#if defined (READLINE_CALLBACKS)
|
||||
else if (RL_ISSTATE (RL_STATE_CALLBACK))
|
||||
{
|
||||
@@ -1316,11 +1324,19 @@ rl_vi_change_to (count, key)
|
||||
_rl_vimvcxt->motion = '$';
|
||||
r = rl_domove_motion_callback (_rl_vimvcxt);
|
||||
}
|
||||
- else if (vi_redoing)
|
||||
+ else if (vi_redoing && _rl_vi_last_motion != 'c') /* `cc' is special */
|
||||
{
|
||||
_rl_vimvcxt->motion = _rl_vi_last_motion;
|
||||
r = rl_domove_motion_callback (_rl_vimvcxt);
|
||||
}
|
||||
+ else if (vi_redoing) /* handle redoing `cc' here */
|
||||
+ {
|
||||
+ _rl_vimvcxt->motion = _rl_vi_last_motion;
|
||||
+ rl_mark = rl_end;
|
||||
+ rl_beg_of_line (1, key);
|
||||
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
|
||||
+ r = vidomove_dispatch (_rl_vimvcxt);
|
||||
+ }
|
||||
#if defined (READLINE_CALLBACKS)
|
||||
else if (RL_ISSTATE (RL_STATE_CALLBACK))
|
||||
{
|
||||
@@ -1377,6 +1393,19 @@ rl_vi_yank_to (count, key)
|
||||
_rl_vimvcxt->motion = '$';
|
||||
r = rl_domove_motion_callback (_rl_vimvcxt);
|
||||
}
|
||||
+ else if (vi_redoing && _rl_vi_last_motion != 'y') /* `yy' is special */
|
||||
+ {
|
||||
+ _rl_vimvcxt->motion = _rl_vi_last_motion;
|
||||
+ r = rl_domove_motion_callback (_rl_vimvcxt);
|
||||
+ }
|
||||
+ else if (vi_redoing) /* handle redoing `yy' here */
|
||||
+ {
|
||||
+ _rl_vimvcxt->motion = _rl_vi_last_motion;
|
||||
+ rl_mark = rl_end;
|
||||
+ rl_beg_of_line (1, key);
|
||||
+ RL_UNSETSTATE (RL_STATE_VIMOTION);
|
||||
+ r = vidomove_dispatch (_rl_vimvcxt);
|
||||
+ }
|
||||
#if defined (READLINE_CALLBACKS)
|
||||
else if (RL_ISSTATE (RL_STATE_CALLBACK))
|
||||
{
|
|
@ -1,37 +0,0 @@
|
|||
$NetBSD: patch-lib_sh_eaccess.c,v 1.1 2012/07/18 15:43:12 spz Exp $
|
||||
|
||||
from ftp://ftp.gnu.org/pub/gnu/bash/bash-4.2-patches/bash42-033
|
||||
|
||||
Bash-Release: 4.2
|
||||
Patch-ID: bash42-033
|
||||
|
||||
Bug-Reported-by: David Leverton <levertond@googlemail.com>
|
||||
Bug-Reference-ID: <4FCCE737.1060603@googlemail.com>
|
||||
Bug-Reference-URL:
|
||||
|
||||
Bug-Description:
|
||||
|
||||
Bash uses a static buffer when expanding the /dev/fd prefix for the test
|
||||
and conditional commands, among other uses, when it should use a dynamic
|
||||
buffer to avoid buffer overflow.
|
||||
|
||||
--- lib/sh/eaccess.c.orig 2011-01-09 01:50:10.000000000 +0000
|
||||
+++ lib/sh/eaccess.c
|
||||
@@ -82,6 +82,8 @@ sh_stat (path, finfo)
|
||||
const char *path;
|
||||
struct stat *finfo;
|
||||
{
|
||||
+ static char *pbuf = 0;
|
||||
+
|
||||
if (*path == '\0')
|
||||
{
|
||||
errno = ENOENT;
|
||||
@@ -106,7 +108,7 @@ sh_stat (path, finfo)
|
||||
trailing slash. Make sure /dev/fd/xx really uses DEV_FD_PREFIX/xx.
|
||||
On most systems, with the notable exception of linux, this is
|
||||
effectively a no-op. */
|
||||
- char pbuf[32];
|
||||
+ pbuf = xrealloc (pbuf, sizeof (DEV_FD_PREFIX) + strlen (path + 8));
|
||||
strcpy (pbuf, DEV_FD_PREFIX);
|
||||
strcat (pbuf, path + 8);
|
||||
return (stat (pbuf, finfo));
|
Loading…
Reference in a new issue