mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-07-16 16:36:03 +02:00
commit bash-snap-20170531 snapshot
This commit is contained in:
@@ -13984,3 +13984,19 @@ lib/readline/histfile.c
|
||||
- read_history_range: if the file isn't a regular file, return an
|
||||
error. Bug report from Eduardo Bustamante <dualbus@gmail.com>,
|
||||
relaying from IRC
|
||||
|
||||
5/30
|
||||
----
|
||||
variables.c
|
||||
- set_pwd: if in Posix mode, and PWD appears in initial environment as
|
||||
an absolute pathname to the current directory, set PWD to the result
|
||||
of canonicalizing the environment value, or to the physical path if
|
||||
canonicalization fails. From a suggestion by Eduardo Bustamante
|
||||
<dualbus@gmail.com>
|
||||
|
||||
5/31
|
||||
----
|
||||
builtins/read.def
|
||||
- read_builtin: if -n or -N option is supplied with a 0 argument,
|
||||
don't attempt to read any characters; bail out right away. Reported
|
||||
by Eduardo Bustamante <dualbus@gmail.com>, relaying from IRC
|
||||
|
||||
+7
-2
@@ -176,7 +176,7 @@ read_builtin (list)
|
||||
WORD_LIST *list;
|
||||
{
|
||||
register char *varname;
|
||||
int size, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2;
|
||||
int size, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2, nflag;
|
||||
volatile int i;
|
||||
int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul;
|
||||
int raw, edit, nchars, silent, have_timeout, ignore_delim, fd, lastsig, t_errno;
|
||||
@@ -239,7 +239,7 @@ read_builtin (list)
|
||||
tmsec = tmusec = 0; /* no timeout */
|
||||
nr = nchars = input_is_tty = input_is_pipe = unbuffered_read = have_timeout = 0;
|
||||
delim = '\n'; /* read until newline */
|
||||
ignore_delim = 0;
|
||||
ignore_delim = nflag = 0;
|
||||
|
||||
reset_internal_getopt ();
|
||||
while ((opt = internal_getopt (list, "ersa:d:i:n:p:t:u:N:")) != -1)
|
||||
@@ -288,6 +288,7 @@ read_builtin (list)
|
||||
ignore_delim = 1;
|
||||
delim = -1;
|
||||
case 'n':
|
||||
nflag = 1;
|
||||
code = legal_number (list_optarg, &intval);
|
||||
if (code == 0 || intval < 0 || intval != (int)intval)
|
||||
{
|
||||
@@ -361,6 +362,10 @@ read_builtin (list)
|
||||
input_string = (char *)xmalloc (size = 112); /* XXX was 128 */
|
||||
input_string[0] = '\0';
|
||||
|
||||
/* More input and options validation */
|
||||
if (nflag == 1 && nchars == 0)
|
||||
goto assign_vars; /* bail early if asked to read 0 chars */
|
||||
|
||||
/* $TMOUT, if set, is the default timeout for read. */
|
||||
if (have_timeout == 0 && (e = get_string_value ("TMOUT")))
|
||||
{
|
||||
|
||||
@@ -960,7 +960,7 @@ o `complete' and `compgen' now take a `-o value' option, which controls some
|
||||
directory names and suppress trailing spaces
|
||||
o A new loadable builtin, realpath, which canonicalizes and expands symlinks
|
||||
in pathname arguments.
|
||||
o When `set' is called without options, it prints function defintions in a
|
||||
o When `set' is called without options, it prints function definitions in a
|
||||
way that allows them to be reused as input. This affects `declare' and
|
||||
`declare -p' as well. This only happens when the shell is not in POSIX
|
||||
mode, since POSIX.2 forbids this behavior.
|
||||
@@ -2279,7 +2279,7 @@ The \w expansion gives the full pathname of the current directory, with
|
||||
a tilde (`~') substituted for the current value of $HOME. The \W
|
||||
expansion gives the basename of the current directory. To put the full
|
||||
pathname of the current directory into the path without any tilde
|
||||
subsitution, use $PWD. Here are some examples:
|
||||
substitution, use $PWD. Here are some examples:
|
||||
|
||||
PS1='\w$ ' # current directory with tilde
|
||||
PS1='\W$ ' # basename of current directory
|
||||
@@ -2396,7 +2396,7 @@ a bash programmer's guide with a chapter on creating loadable builtins
|
||||
a better loadable interface to perl with access to the shell builtins and
|
||||
variables (contributions gratefully accepted)
|
||||
ksh93-like `xx.yy' variables (including some of the .sh.* variables) and
|
||||
associated disipline functions
|
||||
associated discipline functions
|
||||
Some of the new ksh93 pattern matching operators, like backreferencing
|
||||
|
||||
H5) When will the next release appear?
|
||||
|
||||
+2
-2
@@ -8292,7 +8292,7 @@ echoed and executed.
|
||||
.sp 1
|
||||
In the second form, \fIcommand\fP is re-executed after each instance
|
||||
of \fIpat\fP is replaced by \fIrep\fP.
|
||||
\fICommand\fP is intepreted the same as \fIfirst\fP above.
|
||||
\fICommand\fP is interpreted the same as \fIfirst\fP above.
|
||||
A useful alias to use with this is
|
||||
.if n ``r="fc -s"'',
|
||||
.if t \f(CWr='fc \-s'\fP,
|
||||
@@ -10606,7 +10606,7 @@ If the \fB\-n\fP option is supplied, \fBwait\fP waits for any job to
|
||||
terminate and returns its exit status.
|
||||
If the \fB\-f\fP option is supplied, and job control is enabled,
|
||||
\fBwait\fP forces \fIid\fP to terminate before returning its status,
|
||||
intead of returning when it changes status.
|
||||
instead of returning when it changes status.
|
||||
If
|
||||
.I id
|
||||
specifies a non-existent process or job, the return status is
|
||||
|
||||
+1
-1
@@ -1319,7 +1319,7 @@ will ensure that the output of @code{traceroute foss.org.my} is displayed first.
|
||||
Finally, Parallel can be used to run a sequence of shell commands in parallel,
|
||||
similar to @samp{cat file | bash}.
|
||||
It is not uncommon to take a list of filenames, create a series of shell
|
||||
commands to operate on them, and feed that list of commnds to a shell.
|
||||
commands to operate on them, and feed that list of commands to a shell.
|
||||
Parallel can speed this up. Assuming that @file{file} contains a list of
|
||||
shell commands, one per line,
|
||||
|
||||
|
||||
@@ -2214,7 +2214,7 @@ a shell function and bind it to a particular command using @code{complete -F}.
|
||||
|
||||
The following function provides completions for the @code{cd} builtin.
|
||||
It is a reasonably good example of what shell functions must do when
|
||||
used for completion. This function uses the word passsed as @code{$2}
|
||||
used for completion. This function uses the word passed as @code{$2}
|
||||
to determine the directory name to complete. You can also use the
|
||||
@code{COMP_WORDS} array variable; the current word is indexed by the
|
||||
@code{COMP_CWORD} variable.
|
||||
|
||||
@@ -38,6 +38,7 @@ shopt -u inherit_errexit
|
||||
shopt -s interactive_comments
|
||||
shopt -u lastpipe
|
||||
shopt -u lithist
|
||||
shopt -u localvar_inherit
|
||||
shopt -u login_shell
|
||||
shopt -u mailwarn
|
||||
shopt -u no_empty_cmd_completion
|
||||
@@ -96,6 +97,7 @@ shopt -u huponexit
|
||||
shopt -u inherit_errexit
|
||||
shopt -u lastpipe
|
||||
shopt -u lithist
|
||||
shopt -u localvar_inherit
|
||||
shopt -u login_shell
|
||||
shopt -u mailwarn
|
||||
shopt -u no_empty_cmd_completion
|
||||
@@ -135,6 +137,7 @@ huponexit off
|
||||
inherit_errexit off
|
||||
lastpipe off
|
||||
lithist off
|
||||
localvar_inherit off
|
||||
login_shell off
|
||||
mailwarn off
|
||||
no_empty_cmd_completion off
|
||||
|
||||
+7
-2
@@ -122,7 +122,7 @@ int variable_context = 0;
|
||||
|
||||
/* If non-zero, local variables inherit values and attributes from a variable
|
||||
with the same name at a previous scope. */
|
||||
int localvar_inherit = 1;
|
||||
int localvar_inherit = 0;
|
||||
|
||||
/* The set of shell assignments which are made only in the environment
|
||||
for a single command. */
|
||||
@@ -854,8 +854,13 @@ set_pwd ()
|
||||
current_dir = sh_canonpath (temp_string, PATH_CHECKDOTDOT|PATH_CHECKEXISTS);
|
||||
if (current_dir == 0)
|
||||
current_dir = get_working_directory ("shell_init");
|
||||
else
|
||||
else
|
||||
set_working_directory (current_dir);
|
||||
if (posixly_correct && current_dir)
|
||||
{
|
||||
temp_var = bind_variable ("PWD", current_dir, 0);
|
||||
set_auto_export (temp_var);
|
||||
}
|
||||
free (current_dir);
|
||||
}
|
||||
else if (home_string && interactive_shell && login_shell &&
|
||||
|
||||
Reference in New Issue
Block a user