mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-26 23:33:08 +02:00
commit bash-20180413 snapshot
This commit is contained in:
@@ -15197,3 +15197,59 @@ smatch.c
|
||||
unrecognized character class names, since the wide character ctype
|
||||
functions allow locales to define their own character class names
|
||||
(e.g., "hyphen"). Fixes issue reported by yangyajing <yyj_cqu@163.com>
|
||||
|
||||
4/10
|
||||
----
|
||||
configure.ac,cross-build/qnx.cache
|
||||
- qnx: add a configure cache file for cross-building, treat qnx 7 like
|
||||
qnx 6 in terms of cpp options. Fix from Brian Carnes
|
||||
<bcarnes@google.com>
|
||||
|
||||
aclocal.m4
|
||||
- BASH_CHECK_DEV_STDIN: experimental change to test for /dev/stdin
|
||||
independently of /dev/fd or /proc/self/fd. Suggested for QNX by
|
||||
Brian Carnes <bcarnes@google.com>
|
||||
|
||||
|
||||
4/11
|
||||
----
|
||||
lib/glob/glob.c
|
||||
- glob_testdir: return -2 if DIR is a symlink, to differentiate it from
|
||||
any other kind of non-directory file
|
||||
- glob_vector: if we have GX_ALLDIRS (globstar), we want to skip over
|
||||
symlinks to directories, since we will pick up the real directory
|
||||
later. Fixes incompatibility reported by Murukesh Mohanan
|
||||
<murukesh.mohanan@gmail.com>
|
||||
|
||||
bashline.c
|
||||
- bash_execute_unix_command: changes to make READLINE_POINT apply to
|
||||
characters instead of bytes when in a multibyte locale. Report and
|
||||
fix from Koichi Murase <myoga.murase@gmail.com>
|
||||
|
||||
4/12
|
||||
----
|
||||
builtins/evalstring.c
|
||||
- parse_and_execute_cleanup: now takes an argument which is the value
|
||||
of running_trap at some point before parse_and_execute was called;
|
||||
changed callers in sig.c, builtins/evalfile.c
|
||||
|
||||
builtins/common.h
|
||||
- parse_and_execute_cleanup: changed prototype
|
||||
|
||||
4/13
|
||||
----
|
||||
builtins/evalstring.c
|
||||
- parse_and_execute_cleanup: if the argument holding the previous state
|
||||
of running_trap is the same value as the current running_trap state,
|
||||
don't call run_trap_cleanup: assume that there is a caller who will
|
||||
take care of the cleanup after this returns. Fixes recursive trap
|
||||
call on "eval return" reported by Martijn Dekker <martijn@inlv.org>
|
||||
|
||||
parse.y
|
||||
- read_a_line: if remove_quoted_newline is non-zero, indicating the
|
||||
here-document delimiter is unquoted, we will be running the contents
|
||||
of the here-document through word expansion and need to quote CTLESC
|
||||
and CTLNUL in the input. Fixes bug with ^A in here document reported
|
||||
by Jorge Alberto Baca Garcia <bacagarcia@me.com>
|
||||
|
||||
|
||||
|
||||
@@ -210,6 +210,7 @@ builtins/bashgetopt.h f
|
||||
cross-build/cygwin32.cache f
|
||||
cross-build/x86-beos.cache f
|
||||
cross-build/opennt.cache f
|
||||
cross-build/qnx.cache f
|
||||
include/ansi_stdlib.h f
|
||||
include/chartypes.h f
|
||||
include/filecntl.h f
|
||||
|
||||
Vendored
+1
-3
@@ -1581,9 +1581,7 @@ fi
|
||||
AC_DEFUN(BASH_CHECK_DEV_STDIN,
|
||||
[AC_MSG_CHECKING(whether /dev/stdin stdout stderr are available)
|
||||
AC_CACHE_VAL(bash_cv_dev_stdin,
|
||||
[if test -d /dev/fd && (exec test -r /dev/stdin < /dev/null) ; then
|
||||
bash_cv_dev_stdin=present
|
||||
elif test -d /proc/self/fd && (exec test -r /dev/stdin < /dev/null) ; then
|
||||
[if (exec test -r /dev/stdin < /dev/null) ; then
|
||||
bash_cv_dev_stdin=present
|
||||
else
|
||||
bash_cv_dev_stdin=absent
|
||||
|
||||
+17
-2
@@ -66,6 +66,7 @@
|
||||
#include <readline/rlconf.h>
|
||||
#include <readline/readline.h>
|
||||
#include <readline/history.h>
|
||||
#include <readline/rlmbutil.h>
|
||||
|
||||
#include <glob/glob.h>
|
||||
|
||||
@@ -4095,7 +4096,7 @@ bash_execute_unix_command (count, key)
|
||||
register int i, r;
|
||||
intmax_t mi;
|
||||
sh_parser_state_t ps;
|
||||
char *cmd, *value, *ce;
|
||||
char *cmd, *value, *ce, old_ch;
|
||||
SHELL_VAR *v;
|
||||
char ibuf[INT_STRLEN_BOUND(int) + 1];
|
||||
|
||||
@@ -4129,7 +4130,17 @@ bash_execute_unix_command (count, key)
|
||||
v = bind_variable ("READLINE_LINE", rl_line_buffer, 0);
|
||||
if (v)
|
||||
VSETATTR (v, att_exported);
|
||||
value = inttostr (rl_point, ibuf, sizeof (ibuf));
|
||||
i = rl_point;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
if (MB_CUR_MAX > 1)
|
||||
{
|
||||
old_ch = rl_line_buffer[rl_point];
|
||||
rl_line_buffer[rl_point] = '\0';
|
||||
i = MB_STRLEN (rl_line_buffer);
|
||||
rl_line_buffer[rl_point] = old_ch;
|
||||
}
|
||||
#endif
|
||||
value = inttostr (i, ibuf, sizeof (ibuf));
|
||||
v = bind_int_variable ("READLINE_POINT", value, 0);
|
||||
if (v)
|
||||
VSETATTR (v, att_exported);
|
||||
@@ -4146,6 +4157,10 @@ bash_execute_unix_command (count, key)
|
||||
if (v && legal_number (value_cell (v), &mi))
|
||||
{
|
||||
i = mi;
|
||||
#if defined (HANDLE_MULTIBYTE)
|
||||
if (i > 0 && MB_CUR_MAX > 1)
|
||||
i = _rl_find_next_mbchar (rl_line_buffer, 0, i, 0);
|
||||
#endif
|
||||
if (i != rl_point)
|
||||
{
|
||||
rl_point = i;
|
||||
|
||||
+1
-1
@@ -200,7 +200,7 @@ extern WORD_LIST *get_directory_stack __P((int));
|
||||
/* Functions from evalstring.c */
|
||||
extern int parse_and_execute __P((char *, const char *, int));
|
||||
extern int evalstring __P((char *, const char *, int));
|
||||
extern void parse_and_execute_cleanup __P((void));
|
||||
extern void parse_and_execute_cleanup __P((int));
|
||||
extern int parse_string __P((char *, const char *, int, char **));
|
||||
extern int should_suppress_fork __P((COMMAND *));
|
||||
extern void optimize_fork __P((COMMAND *));
|
||||
|
||||
+1
-1
@@ -278,7 +278,7 @@ file_error_and_exit:
|
||||
force parse_and_execute () to clean up. */
|
||||
if (return_val)
|
||||
{
|
||||
parse_and_execute_cleanup ();
|
||||
parse_and_execute_cleanup (-1);
|
||||
result = return_catch_value;
|
||||
}
|
||||
else
|
||||
|
||||
+16
-4
@@ -136,11 +136,17 @@ optimize_subshell_command (command)
|
||||
|
||||
/* How to force parse_and_execute () to clean up after itself. */
|
||||
void
|
||||
parse_and_execute_cleanup ()
|
||||
parse_and_execute_cleanup (old_running_trap)
|
||||
int old_running_trap;
|
||||
{
|
||||
if (running_trap)
|
||||
if (running_trap > 0)
|
||||
{
|
||||
run_trap_cleanup (running_trap - 1);
|
||||
/* We assume if we have a different value for running_trap than when
|
||||
we started (the only caller that cares is evalstring()), the
|
||||
original caller will perform the cleanup, and we should not step
|
||||
on them. */
|
||||
if (running_trap != old_running_trap)
|
||||
run_trap_cleanup (running_trap - 1);
|
||||
unfreeze_jobs_list ();
|
||||
}
|
||||
|
||||
@@ -653,6 +659,10 @@ evalstring (string, from_file, flags)
|
||||
int flags;
|
||||
{
|
||||
volatile int r, rflag, rcatch;
|
||||
volatile int was_trap;
|
||||
|
||||
/* Are we running a trap when we execute this function? */
|
||||
was_trap = running_trap;
|
||||
|
||||
rcatch = 0;
|
||||
rflag = return_catch_flag;
|
||||
@@ -672,7 +682,9 @@ evalstring (string, from_file, flags)
|
||||
|
||||
if (rcatch)
|
||||
{
|
||||
parse_and_execute_cleanup ();
|
||||
/* We care about whether or not we are running the same trap we were
|
||||
when we entered this function. */
|
||||
parse_and_execute_cleanup (was_trap);
|
||||
r = return_catch_value;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#! /bin/sh
|
||||
# From configure.ac for Bash 5.0, version 4.090.
|
||||
# From configure.ac for Bash 5.0, version 4.091.
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for bash 5.0-alpha.
|
||||
#
|
||||
@@ -2866,7 +2866,7 @@ sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF
|
||||
*-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X)
|
||||
*-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X)
|
||||
*-dgux*) opt_bash_malloc=no ;; # DG/UX machines
|
||||
*-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX 6.x
|
||||
*-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX [67].x
|
||||
*-machten4) opt_bash_malloc=no ;; # MachTen 4.x
|
||||
*-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
|
||||
*-beos*) opt_bash_malloc=no ;; # they say it's suitable
|
||||
@@ -4911,6 +4911,9 @@ if test "x$cross_compiling" = "xyes"; then
|
||||
i[3456]86-*-beos*)
|
||||
cross_cache=${srcdir}/cross-build/x86-beos.cache
|
||||
;;
|
||||
*-qnx*)
|
||||
cross_cache=${srcdir}/cross-build/qnx.cache
|
||||
;;
|
||||
*) echo "configure: cross-compiling for $host is not supported" >&2
|
||||
;;
|
||||
esac
|
||||
@@ -16081,9 +16084,7 @@ $as_echo_n "checking whether /dev/stdin stdout stderr are available... " >&6; }
|
||||
if ${bash_cv_dev_stdin+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
if test -d /dev/fd && (exec test -r /dev/stdin < /dev/null) ; then
|
||||
bash_cv_dev_stdin=present
|
||||
elif test -d /proc/self/fd && (exec test -r /dev/stdin < /dev/null) ; then
|
||||
if (exec test -r /dev/stdin < /dev/null) ; then
|
||||
bash_cv_dev_stdin=present
|
||||
else
|
||||
bash_cv_dev_stdin=absent
|
||||
@@ -16174,7 +16175,7 @@ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
|
||||
*) $as_echo "#define PGRP_PIPE 1" >>confdefs.h
|
||||
;;
|
||||
esac ;;
|
||||
*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
|
||||
*qnx[67]*) LOCAL_LIBS="-lncurses" ;;
|
||||
*qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
|
||||
powerux*) LOCAL_LIBS="-lgen" ;;
|
||||
cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
|
||||
|
||||
+7
-4
@@ -1,5 +1,5 @@
|
||||
dnl
|
||||
dnl Configure script for bash-4.4
|
||||
dnl Configure script for bash-5.0
|
||||
dnl
|
||||
dnl report bugs to chet@po.cwru.edu
|
||||
dnl
|
||||
@@ -21,7 +21,7 @@ dnl Process this file with autoconf to produce a configure script.
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
AC_REVISION([for Bash 5.0, version 4.090])dnl
|
||||
AC_REVISION([for Bash 5.0, version 4.091])dnl
|
||||
|
||||
define(bashvers, 5.0)
|
||||
define(relstatus, alpha)
|
||||
@@ -82,7 +82,7 @@ sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF
|
||||
*-rhapsody*) opt_bash_malloc=no ;; # Apple Rhapsody (MacOS X)
|
||||
*-darwin*) opt_bash_malloc=no ;; # Apple Darwin (MacOS X)
|
||||
*-dgux*) opt_bash_malloc=no ;; # DG/UX machines
|
||||
*-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX 6.x
|
||||
*-qnx*) opt_bash_malloc=no ;; # QNX 4.2, QNX [67].x
|
||||
*-machten4) opt_bash_malloc=no ;; # MachTen 4.x
|
||||
*-bsdi2.1|*-bsdi3.?) opt_bash_malloc=no ; : ${CC:=shlicc2} ;; # for loadable builtins
|
||||
*-beos*) opt_bash_malloc=no ;; # they say it's suitable
|
||||
@@ -445,6 +445,9 @@ if test "x$cross_compiling" = "xyes"; then
|
||||
i[[3456]]86-*-beos*)
|
||||
cross_cache=${srcdir}/cross-build/x86-beos.cache
|
||||
;;
|
||||
*-qnx*)
|
||||
cross_cache=${srcdir}/cross-build/qnx.cache
|
||||
;;
|
||||
*) echo "configure: cross-compiling for $host is not supported" >&2
|
||||
;;
|
||||
esac
|
||||
@@ -1108,7 +1111,7 @@ linux*) LOCAL_LDFLAGS=-rdynamic # allow dynamic loading
|
||||
1.*|2.[[0123]]*) : ;;
|
||||
*) AC_DEFINE(PGRP_PIPE) ;;
|
||||
esac ;;
|
||||
*qnx6*) LOCAL_CFLAGS="-Dqnx -Dqnx6" LOCAL_LIBS="-lncurses" ;;
|
||||
*qnx[[67]]*) LOCAL_LIBS="-lncurses" ;;
|
||||
*qnx*) LOCAL_CFLAGS="-Dqnx -F -3s" LOCAL_LDFLAGS="-3s" LOCAL_LIBS="-lunix -lncurses" ;;
|
||||
powerux*) LOCAL_LIBS="-lgen" ;;
|
||||
cygwin*) LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
bash_cv_decl_strtoimax=${bash_cv_decl_strtoimax=yes}
|
||||
bash_cv_decl_strtol=${bash_cv_decl_strtol=yes}
|
||||
bash_cv_decl_strtoll=${bash_cv_decl_strtoll=yes}
|
||||
bash_cv_decl_strtoul=${bash_cv_decl_strtoul=yes}
|
||||
bash_cv_decl_strtoull=${bash_cv_decl_strtoull=yes}
|
||||
bash_cv_decl_strtoumax=${bash_cv_decl_strtoumax=yes}
|
||||
bash_cv_decl_under_sys_siglist=${bash_cv_decl_under_sys_siglist=no}
|
||||
bash_cv_dev_fd=${bash_cv_dev_fd=absent}
|
||||
bash_cv_dev_stdin=${bash_cv_dev_stdin=present}
|
||||
bash_cv_dirent_has_d_fileno=${bash_cv_dirent_has_d_fileno=no}
|
||||
bash_cv_dirent_has_d_namlen=${bash_cv_dirent_has_d_namlen=no}
|
||||
bash_cv_dirent_has_dino=${bash_cv_dirent_has_dino=yes}
|
||||
bash_cv_dup2_broken=${bash_cv_dup2_broken=no}
|
||||
bash_cv_fionread_in_ioctl=${bash_cv_fionread_in_ioctl=yes}
|
||||
bash_cv_func_ctype_nonascii=${bash_cv_func_ctype_nonascii=no}
|
||||
bash_cv_func_sigsetjmp=${bash_cv_func_sigsetjmp=present}
|
||||
bash_cv_func_snprintf=${bash_cv_func_snprintf=yes}
|
||||
bash_cv_func_strcoll_broken=${bash_cv_func_strcoll_broken=no}
|
||||
bash_cv_func_vsnprintf=${bash_cv_func_vsnprintf=yes}
|
||||
bash_cv_getcwd_malloc=${bash_cv_getcwd_malloc=yes}
|
||||
bash_cv_getenv_redef=${bash_cv_getenv_redef=yes}
|
||||
bash_cv_getpw_declared=${bash_cv_getpw_declared=yes}
|
||||
bash_cv_have_gethostbyname=${bash_cv_have_gethostbyname=no}
|
||||
bash_cv_have_socklib=${bash_cv_have_socklib=no}
|
||||
bash_cv_have_strsignal=${bash_cv_have_strsignal=yes}
|
||||
bash_cv_job_control_missing=${bash_cv_job_control_missing=present}
|
||||
bash_cv_langinfo_codeset=${bash_cv_langinfo_codeset=no}
|
||||
bash_cv_mail_dir=${bash_cv_mail_dir=unknown}
|
||||
bash_cv_must_reinstall_sighandlers=${bash_cv_must_reinstall_sighandlers=no}
|
||||
bash_cv_opendir_not_robust=${bash_cv_opendir_not_robust=no}
|
||||
bash_cv_pgrp_pipe=${bash_cv_pgrp_pipe=no}
|
||||
bash_cv_printf_a_format=${bash_cv_printf_a_format=yes}
|
||||
bash_cv_signal_vintage=${bash_cv_signal_vintage=posix}
|
||||
bash_cv_speed_t_in_sys_types=${bash_cv_speed_t_in_sys_types=no}
|
||||
bash_cv_std_putenv=${bash_cv_std_putenv=yes}
|
||||
bash_cv_std_unsetenv=${bash_cv_std_unsetenv=yes}
|
||||
bash_cv_strtold_broken=${bash_cv_strtold_broken=no}
|
||||
bash_cv_struct_timeval=${bash_cv_struct_timeval=yes}
|
||||
bash_cv_struct_timezone=${bash_cv_struct_timezone=yes}
|
||||
bash_cv_struct_winsize_header=${bash_cv_struct_winsize_header=ioctl_h}
|
||||
bash_cv_sys_errlist=${bash_cv_sys_errlist=no}
|
||||
bash_cv_sys_named_pipes=${bash_cv_sys_named_pipes=present}
|
||||
bash_cv_sys_siglist=${bash_cv_sys_siglist=yes}
|
||||
bash_cv_sys_struct_timespec_in_time_h=${bash_cv_sys_struct_timespec_in_time_h=yes}
|
||||
bash_cv_termcap_lib=${bash_cv_termcap_lib=libtermcap}
|
||||
bash_cv_tiocstat_in_ioctl=${bash_cv_tiocstat_in_ioctl=no}
|
||||
bash_cv_type_clock_t=${bash_cv_type_clock_t=yes}
|
||||
bash_cv_type_intmax_t=${bash_cv_type_intmax_t=yes}
|
||||
bash_cv_type_long_long=${bash_cv_type_long_long='long long'}
|
||||
bash_cv_type_quad_t=${bash_cv_type_quad_t=no}
|
||||
bash_cv_type_rlimit=${bash_cv_type_rlimit=rlim_t}
|
||||
bash_cv_type_sig_atomic_t=${bash_cv_type_sig_atomic_t=yes}
|
||||
bash_cv_type_sigset_t=${bash_cv_type_sigset_t=yes}
|
||||
bash_cv_type_socklen_t=${bash_cv_type_socklen_t=yes}
|
||||
bash_cv_type_uintmax_t=${bash_cv_type_uintmax_t=yes}
|
||||
bash_cv_type_unsigned_long_long=${bash_cv_type_unsigned_long_long='unsigned long long'}
|
||||
bash_cv_type_wchar_t=${bash_cv_type_wchar_t=yes}
|
||||
bash_cv_type_wctype_t=${bash_cv_type_wctype_t=yes}
|
||||
bash_cv_type_wint_t=${bash_cv_type_wint_t=yes}
|
||||
bash_cv_ulimit_maxfds=${bash_cv_ulimit_maxfds=no}
|
||||
bash_cv_under_sys_siglist=${bash_cv_under_sys_siglist=no}
|
||||
bash_cv_unusable_rtsigs=${bash_cv_unusable_rtsigs=no}
|
||||
bash_cv_void_sighandler=${bash_cv_void_sighandler=yes}
|
||||
bash_cv_wcontinued_broken=${bash_cv_wcontinued_broken=no}
|
||||
bash_cv_wcwidth_broken=${bash_cv_wcwidth_broken=no}
|
||||
bash_cv_wexitstatus_offset=${bash_cv_wexitstatus_offset=8}
|
||||
@@ -4814,11 +4814,7 @@ execute_function (var, words, flags, fds_to_close, async, subshell)
|
||||
|
||||
/* Shell functions inherit the RETURN trap if function tracing is on
|
||||
globally or on individually for this function. */
|
||||
#if 0
|
||||
if (return_trap && ((trace_p (var) == 0) && function_trace_mode == 0))
|
||||
#else
|
||||
if (return_trap && (signal_in_progress (DEBUG_TRAP) || ((trace_p (var) == 0) && function_trace_mode == 0)))
|
||||
#endif
|
||||
{
|
||||
if (subshell == 0)
|
||||
{
|
||||
|
||||
+15
-1
@@ -477,7 +477,7 @@ dequote_pathname (pathname)
|
||||
# endif /* AFS */
|
||||
#endif /* !HAVE_LSTAT */
|
||||
|
||||
/* Return 0 if DIR is a directory, -1 otherwise. */
|
||||
/* Return 0 if DIR is a directory, -2 if DIR is a symlink, -1 otherwise. */
|
||||
static int
|
||||
glob_testdir (dir, flags)
|
||||
char *dir;
|
||||
@@ -495,6 +495,11 @@ glob_testdir (dir, flags)
|
||||
if (r < 0)
|
||||
return (-1);
|
||||
|
||||
#if defined (S_ISLNK)
|
||||
if (S_ISLNK (finfo.st_mode))
|
||||
return (-2);
|
||||
#endif
|
||||
|
||||
if (S_ISDIR (finfo.st_mode) == 0)
|
||||
return (-1);
|
||||
|
||||
@@ -800,6 +805,15 @@ glob_vector (pat, dir, flags)
|
||||
}
|
||||
}
|
||||
|
||||
/* When FLAGS includes GX_ALLDIRS, we want to skip a symlink
|
||||
to a directory, since we will pick the directory up later. */
|
||||
if (isdir == -2 && glob_testdir (subdir, 0) == 0)
|
||||
{
|
||||
free (subdir);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* XXX - should we even add this if it's not a directory? */
|
||||
nextlink = (struct globval *) malloc (sizeof (struct globval));
|
||||
if (firstmalloc == 0)
|
||||
firstmalloc = nextlink;
|
||||
|
||||
@@ -2041,7 +2041,8 @@ read_a_line (remove_quoted_newline)
|
||||
c = '\n';
|
||||
}
|
||||
|
||||
/* `+2' in case the final character in the buffer is a newline. */
|
||||
/* `+2' in case the final character in the buffer is a newline or we
|
||||
have to handle CTLESC or CTLNUL. */
|
||||
RESIZE_MALLOCED_BUFFER (line_buffer, indx, 2, buffer_size, 128);
|
||||
|
||||
/* IF REMOVE_QUOTED_NEWLINES is non-zero, we are reading a
|
||||
@@ -2072,7 +2073,14 @@ read_a_line (remove_quoted_newline)
|
||||
}
|
||||
}
|
||||
else
|
||||
line_buffer[indx++] = c;
|
||||
{
|
||||
/* remove_quoted_newline is non-zero if the here-document delimiter
|
||||
is unquoted. In this case, we will be expanding the lines and
|
||||
need to make sure CTLESC and CTLNUL in the input are quoted. */
|
||||
if (remove_quoted_newline && (c == CTLESC || c == CTLNUL))
|
||||
line_buffer[indx++] = CTLESC;
|
||||
line_buffer[indx++] = c;
|
||||
}
|
||||
|
||||
if (c == '\n')
|
||||
{
|
||||
|
||||
@@ -371,7 +371,7 @@ top_level_cleanup ()
|
||||
{
|
||||
/* Clean up string parser environment. */
|
||||
while (parse_and_execute_level)
|
||||
parse_and_execute_cleanup ();
|
||||
parse_and_execute_cleanup (-1);
|
||||
|
||||
#if defined (PROCESS_SUBSTITUTION)
|
||||
unlink_fifo_list ();
|
||||
@@ -409,7 +409,7 @@ throw_to_top_level ()
|
||||
|
||||
/* Clean up string parser environment. */
|
||||
while (parse_and_execute_level)
|
||||
parse_and_execute_cleanup ();
|
||||
parse_and_execute_cleanup (-1);
|
||||
|
||||
if (running_trap > 0)
|
||||
run_trap_cleanup (running_trap - 1);
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
BUILD_DIR=/usr/local/build/bash/bash-current
|
||||
BUILD_DIR=/usr/local/build/chet/bash/bash-current
|
||||
THIS_SH=$BUILD_DIR/bash
|
||||
PATH=$PATH:$BUILD_DIR
|
||||
|
||||
|
||||
Reference in New Issue
Block a user