Index: .pkgextract =================================================================== --- /dev/null +++ .pkgextract @@ -0,0 +1,14 @@ +tar Oxfj ../bash-4.0-patches.tar.bz2 | patch -p0 -s +patch -p0 -s --suffix=".manual" < ../bash-2.03-manual.patch +patch -p0 -s --suffix=".security" < ../bash-4.0-security.patch +patch -p0 -s --suffix=".2.4.4" < ../bash-3.2-2.4.4.patch +patch -p0 -s --suffix=".evalexp" < ../bash-3.0-evalexp.patch +patch -p0 -s --suffix=".warnlc" < ../bash-3.0-warn-locale.patch +patch -p0 -s --suffix=".nfs_redir"< ../bash-3.0-nfs_redir.patch +patch -p0 -s --suffix=".decl" < ../bash-3.0-decl.patch +patch -p0 -s --suffix=".equote" < ../bash-4.0-extended_quote.patch +patch -p0 -s --suffix=".printf" < ../bash-3.2-printf.patch +patch -p0 -s --suffix=".plugins" < ../bash-4.0-loadables.dif +patch -p0 -s --suffix=".zerotty" < ../readline-4.3-input.dif +patch -p0 -s --suffix=".wrap" < ../readline-6.0-wrap.patch +patch -p0 -s --suffix=".conf" < ../readline-5.2-conf.patch Index: config-top.h =================================================================== --- config-top.h.orig +++ config-top.h @@ -54,14 +54,14 @@ /* The default value of the PATH variable. */ #ifndef DEFAULT_PATH_VALUE #define DEFAULT_PATH_VALUE \ - "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:." + "/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:." #endif /* The value for PATH when invoking `command -p'. This is only used when the Posix.2 confstr () function, or CS_PATH define are not present. */ #ifndef STANDARD_UTILS_PATH #define STANDARD_UTILS_PATH \ - "/bin:/usr/bin:/sbin:/usr/sbin:/etc:/usr/etc" + "/bin:/usr/bin:/sbin:/usr/sbin" #endif /* Default primary and secondary prompt strings. */ @@ -75,20 +75,20 @@ #define KSH_COMPATIBLE_SELECT /* System-wide .bashrc file for interactive shells. */ -/* #define SYS_BASHRC "/etc/bash.bashrc" */ +#define SYS_BASHRC "/etc/bash.bashrc" /* System-wide .bash_logout for login shells. */ -/* #define SYS_BASH_LOGOUT "/etc/bash.bash_logout" */ +#define SYS_BASH_LOGOUT "/etc/bash.bash_logout" /* Define this to make non-interactive shells begun with argv[0][0] == '-' run the startup files when not in posix mode. */ -/* #define NON_INTERACTIVE_LOGIN_SHELLS */ +#define NON_INTERACTIVE_LOGIN_SHELLS /* Define this if you want bash to try to check whether it's being run by sshd and source the .bashrc if so (like the rshd behavior). This checks for the presence of SSH_CLIENT or SSH2_CLIENT in the initial environment, which can be fooled under certain not-uncommon circumstances. */ -/* #define SSH_SOURCE_BASHRC */ +#define SSH_SOURCE_BASHRC /* Define if you want the case-capitalizing operators (~[~]) and the `capcase' variable attribute (declare -c). */ Index: general.h =================================================================== --- general.h.orig +++ general.h @@ -21,10 +21,13 @@ #if !defined (_GENERAL_H_) #define _GENERAL_H_ +#include +#include #include "stdc.h" #include "bashtypes.h" #include "chartypes.h" +#include "bashline.h" #if defined (HAVE_SYS_RESOURCE_H) && defined (RLIMTYPE) # if defined (HAVE_SYS_TIME_H) Index: jobs.c =================================================================== --- jobs.c.orig +++ jobs.c @@ -199,10 +199,10 @@ int previous_job = NO_JOB; #endif /* Last child made by the shell. */ -pid_t last_made_pid = NO_PID; +volatile pid_t last_made_pid = NO_PID; /* Pid of the last asynchronous child. */ -pid_t last_asynchronous_pid = NO_PID; +volatile pid_t last_asynchronous_pid = NO_PID; /* The pipeline currently being built. */ PROCESS *the_pipeline = (PROCESS *)NULL; @@ -215,7 +215,7 @@ int already_making_children = 0; /* If this is non-zero, $LINES and $COLUMNS are reset after every process exits from get_tty_state(). */ -int check_window_size; +int check_window_size = 1; /* Functions local to this file. */ Index: jobs.h =================================================================== --- jobs.h.orig +++ jobs.h @@ -165,7 +165,7 @@ extern pid_t fork (), getpid (), getpgrp extern struct jobstats js; extern pid_t original_pgrp, shell_pgrp, pipeline_pgrp; -extern pid_t last_made_pid, last_asynchronous_pid; +extern volatile pid_t last_made_pid, last_asynchronous_pid; extern int asynchronous_notification; extern JOB **jobs; Index: parse.y =================================================================== --- parse.y.orig +++ parse.y @@ -1283,7 +1283,7 @@ input_file_descriptor () #if defined (READLINE) char *current_readline_prompt = (char *)NULL; -char *current_readline_line = (char *)NULL; +unsigned char *current_readline_line = (unsigned char *)NULL; int current_readline_line_index = 0; static int Index: shell.c =================================================================== --- shell.c.orig +++ shell.c @@ -479,7 +479,7 @@ main (argc, argv, env) if (dump_translatable_strings) read_but_dont_execute = 1; - if (running_setuid && privileged_mode == 0) + if (running_setuid && privileged_mode == 0 /* && act_like_sh == 0 */) disable_priv_mode (); /* Need to get the argument to a -c option processed in the Index: subst.c =================================================================== --- subst.c.orig +++ subst.c @@ -2962,6 +2962,7 @@ call_expand_word_internal (w, q, i, c, e last_command_exit_value = EXECUTION_FAILURE; exp_jump_to_top_level ((result == &expand_word_error) ? DISCARD : FORCE_EOF); /* NOTREACHED */ + return NULL; /* make stupid compiler happy */ } else return (result); Index: builtins/shopt.def =================================================================== --- builtins/shopt.def.orig +++ builtins/shopt.def @@ -279,9 +279,9 @@ reset_shopt_options () allow_null_glob_expansion = glob_dot_filenames = 0; cdable_vars = mail_warning = 0; no_exit_on_failed_exec = print_shift_error = 0; - check_hashed_filenames = cdspelling = expand_aliases = check_window_size = 0; + check_hashed_filenames = cdspelling = expand_aliases = 0; - source_uses_path = promptvars = 1; + check_window_size = source_uses_path = promptvars = 1; #if defined (EXTENDED_GLOB) extended_glob = 0; Index: doc/Makefile.in =================================================================== --- doc/Makefile.in.orig +++ doc/Makefile.in @@ -142,7 +142,7 @@ BASHREF_FILES = $(srcdir)/bashref.texi $ ${RM} $@ -${DVIPS} $< -all: ps info dvi text html +all: info html nodvi: ps info text html everything: all pdf Index: doc/bash.1 =================================================================== --- doc/bash.1.orig +++ doc/bash.1 @@ -4620,8 +4620,8 @@ file (the \fIinputrc\fP file). The name of this file is taken from the value of the .SM .B INPUTRC -variable. If that variable is unset, the default is -.IR ~/.inputrc . +environment variable. If that variable is unset, readline will read both +.IR /etc/inputrc " and " ~/.inputrc . When a program which uses the readline library starts up, the initialization file is read, and the key bindings and variables are set. @@ -9340,6 +9340,9 @@ The individual login shell cleanup file, .TP .FN ~/.inputrc Individual \fIreadline\fP initialization file +.TP +.FN /etc/inputrc +System \fBreadline\fP initialization file .PD .SH AUTHORS Brian Fox, Free Software Foundation Index: support/printenv.c =================================================================== --- support/printenv.c.orig +++ support/printenv.c @@ -27,6 +27,7 @@ #if defined (HAVE_CONFIG_H) # include #endif +#include #include "bashansi.h" Index: support/rlvers.sh =================================================================== --- support/rlvers.sh.orig +++ support/rlvers.sh @@ -27,10 +27,10 @@ TDIR=$TMPDIR/rlvers # defaults CC=cc -RL_LIBDIR=/usr/local/lib -RL_INCDIR=/usr/local/include +RL_LIBDIR=/lib +RL_INCDIR=/usr/include -TERMCAP_LIB="-ltermcap" +TERMCAP_LIB="-lncurses" # cannot rely on the presence of getopts while [ $# -gt 0 ]; do Index: support/shobj-conf =================================================================== --- support/shobj-conf.orig +++ support/shobj-conf @@ -112,10 +112,11 @@ sunos5*|solaris2*) linux*-*|gnu*-*|k*bsd*-gnu-*) SHOBJ_CFLAGS=-fPIC SHOBJ_LD='${CC}' - SHOBJ_LDFLAGS='-shared -Wl,-soname,$@' + SHOBJ_LDFLAGS='-shared' - SHLIB_XLDFLAGS='-Wl,-rpath,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`' + SHLIB_XLDFLAGS='-Wl,-rpath-link,$(libdir) -Wl,-soname,`basename $@ $(SHLIB_MINOR)`' SHLIB_LIBVERSION='$(SHLIB_LIBSUFF).$(SHLIB_MAJOR)$(SHLIB_MINOR)' + SHLIB_LIBS=-lncurses ;; freebsd2*) Index: tests/run-intl =================================================================== --- tests/run-intl.orig +++ tests/run-intl @@ -5,4 +5,4 @@ echo "warning: some of these tests will echo "warning: locales installed on your system." >&2 echo "warning: please ignore any differences consisting only of white space" >&2 ${THIS_SH} ./intl.tests > /tmp/xx -diff $AFLAG /tmp/xx intl.right && rm -f /tmp/xx +diff -w $AFLAG /tmp/xx intl.right && rm -f /tmp/xx Index: tests/run-read =================================================================== --- tests/run-read.orig +++ tests/run-read @@ -1,4 +1,4 @@ echo "warning: please do not consider output differing only in the amount of" >&2 echo "warning: white space to be an error." >&2 ${THIS_SH} ./read.tests > /tmp/xx 2>&1 -diff /tmp/xx read.right && rm -f /tmp/xx +diff -w /tmp/xx read.right && rm -f /tmp/xx