-diff -Nru bash-2.05/Makefile.in bash-2.05.new/Makefile.in
---- bash-2.05/Makefile.in Thu Apr 19 03:00:07 2001
-+++ bash-2.05.new/Makefile.in Thu Apr 19 03:03:43 2001
-@@ -593,14 +593,15 @@
- # Targets that actually do things not part of the build
-
- installdirs:
-- @${SHELL} $(SUPPORT_SRC)mkdirs $(bindir)
-- @${SHELL} $(SUPPORT_SRC)mkdirs $(man1dir) $(man3dir)
-- @${SHELL} $(SUPPORT_SRC)mkdirs $(infodir)
-+ @${SHELL} $(SUPPORT_SRC)mkdirs $(DESTDIR)$(bindir)
-+ @${SHELL} $(SUPPORT_SRC)mkdirs $(DESTDIR)$(man1dir) $(DESTDIR)$(man3dir)
-+ @${SHELL} $(SUPPORT_SRC)mkdirs $(DESTDIR)$(infodir)
-
- install: .made installdirs
-- $(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(bindir)/$(Program)
-- $(INSTALL_PROGRAM) $(INSTALLMODE2) bashbug $(bindir)/bashbug
-+ $(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(DESTDIR)$(bindir)/$(Program)
-+ $(INSTALL_PROGRAM) $(INSTALLMODE2) bashbug $(DESTDIR)$(bindir)/bashbug
+--- bash-2.05a/Makefile.in Tue Feb 12 22:55:14 2002
++++ bash-2.05a/Makefile.in.new Tue Feb 12 23:40:24 2002
+@@ -630,6 +630,7 @@
+ $(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(DESTDIR)$(bindir)/$(Program)
+ $(INSTALL_PROGRAM) $(INSTALLMODE2) bashbug $(DESTDIR)$(bindir)/bashbug
-( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \
+ DESTDIR=$(DESTDIR) \
man1dir=$(man1dir) man1ext=$(man1ext) \
man3dir=$(man3dir) man3ext=$(man3ext) \
- infodir=$(infodir) htmldir=$(htmldir) $@ )
-diff -Nru bash-2.05/doc/Makefile.in bash-2.05.new/doc/Makefile.in
---- bash-2.05/doc/Makefile.in Mon Mar 19 16:14:11 2001
-+++ bash-2.05.new/doc/Makefile.in Thu Apr 19 03:07:22 2001
-@@ -209,34 +209,34 @@
+ infodir=$(infodir) htmldir=$(htmldir) DESTDIR=$(DESTDIR) $@ )
+--- bash-2.05a/doc/Makefile.in Thu Feb 7 22:38:32 2002
++++ bash-2.05a/doc/Makefile.in.new Tue Feb 12 23:39:40 2002
+@@ -184,10 +184,10 @@
$(RM) Makefile
installdirs:
-- -test -d $(man1dir) || $(SHELL) ${MKDIRS} $(man1dir)
-- -test -d $(infodir) || $(SHELL) ${MKDIRS} $(infodir)
+- -test -d $(man1dir) || $(SHELL) ${MKDIRS} $(DESTDIR)$(man1dir)
+- -test -d $(infodir) || $(SHELL) ${MKDIRS} $(DESTDIR)$(infodir)
+ -test -d $(DESTDIR)$(man1dir) || $(SHELL) ${MKDIRS} $(DESTDIR)$(man1dir)
+ -test -d $(DESTDIR)$(infodir) || $(SHELL) ${MKDIRS} $(DESTDIR)$(infodir)
- -if [ -n "$(htmldir)" ]; then \
-- test -d $(htmldir) || $(SHELL) ${MKDIRS} $(htmldir) ; \
+ -if test -n "$(htmldir)" ; then \
+- test -d $(htmldir) || $(SHELL) ${MKDIRS} $(DESTDIR)$(htmldir) ; \
+ test -d $(DESTDIR)$(htmldir) || $(SHELL) ${MKDIRS} $(DESTDIR)$(htmldir) ; \
fi
install: info installdirs
-- -$(INSTALL_DATA) $(srcdir)/bash.1 $(man1dir)/bash.${man1ext}
-- -$(INSTALL_DATA) $(srcdir)/bashbug.1 $(man1dir)/bashbug.${man1ext}
-+ -$(INSTALL_DATA) $(srcdir)/bash.1 $(DESTDIR)$(man1dir)/bash.${man1ext}
-+ -$(INSTALL_DATA) $(srcdir)/bashbug.1 $(DESTDIR)$(man1dir)/bashbug.${man1ext}
- # uncomment the next line to install the builtins man page
- # $(INSTALL_DATA) $(srcdir)/builtins.1 $(man1dir)/bash_builtins.${man1ext}
-- -$(INSTALL_DATA) $(srcdir)/bashref.info $(infodir)/bash.info
-+ -$(INSTALL_DATA) $(srcdir)/bashref.info $(DESTDIR)$(infodir)/bash.info
- # run install-info if it is present to update the info directory
- if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
-- install-info --dir-file=$(infodir)/dir $(infodir)/bash.info; \
-+ install-info --dir-file=$(DESTDIR)$(infodir)/dir $(DESTDIR)$(infodir)/bash.info; \
- else true; fi
- # if htmldir is set, install the html files into that directory
-- -if [ -n "${htmldir}" ]; then \
-- $(INSTALL_DATA) $(srcdir)/bash.html $(htmldir) ; \
-- $(INSTALL_DATA) $(srcdir)/bashref.html $(htmldir) ; \
-+ -if [ -n "$(DESTDIR)${htmldir}" ]; then \
-+ $(INSTALL_DATA) $(srcdir)/bash.html $(DESTDIR)$(htmldir) ; \
-+ $(INSTALL_DATA) $(srcdir)/bashref.html $(DESTDIR)$(htmldir) ; \
- fi
-
- uninstall:
-- -$(RM) $(man1dir)/bash.${man1ext} $(man1dir)/bashbug.${man1ext}
-- $(RM) $(infodir)/bash.info
-+ -$(RM) $(DESTDIR)$(man1dir)/bash.${man1ext} $(DESTDIR)$(man1dir)/bashbug.${man1ext}
-+ $(RM) $(DESTDIR)$(infodir)/bash.info
- -if [ -n "$(htmldir)" ]; then \
-- $(RM) $(htmldir)/bash.html ; \
-- $(RM) $(htmldir)/bashref.html ; \
-+ $(RM) $(DESTDIR)$(htmldir)/bash.html ; \
-+ $(RM) $(DESTDIR)$(htmldir)/bashref.html ; \
- fi
-
- # for use by chet
-diff -urN bash-2.05.org/Makefile.in bash-2.05/Makefile.in
---- bash-2.05.org/Makefile.in Wed Apr 18 23:07:48 2001
-+++ bash-2.05/Makefile.in Wed Apr 18 23:27:34 2001
-@@ -563,8 +563,8 @@
+--- bash-2.05a-new/aclocal.m4 Fri Feb 8 00:20:35 2002
++++ bash-2.05a/aclocal.m4 Thu Feb 7 22:38:32 2002
+@@ -921,8 +921,8 @@
+ _bash_needmsg=
+ fi
+ AC_CACHE_VAL(bash_cv_termcap_lib,
+-[AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
+- [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcal_lib=libtinfo,
++[AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
++ [AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
+ [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
+ [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
+ bash_cv_termcap_lib=gnutermcap)])])])])
+--- bash-2.05a-new/Makefile.in Fri Feb 8 00:20:46 2002
++++ bash-2.05a/Makefile.in Thu Feb 7 22:38:32 2002
+@@ -592,8 +592,8 @@
$(SHELL) ./config.status --recheck
# comment out for distribution
# for chet
reconfig: force
-diff -urN bash-2.05.org/aclocal.m4 bash-2.05/aclocal.m4
---- bash-2.05.org/aclocal.m4 Wed Apr 18 23:07:48 2001
-+++ bash-2.05/aclocal.m4 Wed Apr 18 23:33:17 2001
-@@ -606,10 +606,11 @@
- _bash_needmsg=
- fi
- AC_CACHE_VAL(bash_cv_termcap_lib,
--[AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
-+[AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
-+ [AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
- [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
- [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
-- bash_cv_termcap_lib=gnutermcap)])])])
-+ bash_cv_termcap_lib=gnutermcap)])])])])
- if test "X$_bash_needmsg" = "Xyes"; then
- AC_MSG_CHECKING(which library has the termcap functions)
- fi
-@@ -620,6 +621,9 @@
- TERMCAP_DEP="./lib/termcap/libtermcap.a"
- elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
- TERMCAP_LIB=-ltermcap
-+TERMCAP_DEP=
-+elif test $bash_cv_termcap_lib = libtinfo; then
-+TERMCAP_LIB=-ltinfo
- TERMCAP_DEP=
- elif test $bash_cv_termcap_lib = libncurses; then
- TERMCAP_LIB=-lncurses
#if defined (JOB_CONTROL)
#include "jobs.h"
-@@ -49,7 +52,10 @@
+@@ -49,6 +52,9 @@
+
extern int line_number, current_command_line_count;
- extern int disallow_filename_globbing;
extern int last_command_exit_value;
+extern int rpm_requires;
-
+char *alphabet_set = "abcdefghijklmnopqrstuvwxyz"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- WORD_DESC *
- make_bare_word (string)
+ static COMMAND *make_for_or_select __P((enum command_type, WORD_DESC *, WORD_LIST *, COMMAND *));
+ #if defined (ARITH_FOR_COMMAND)
@@ -696,6 +702,36 @@
return (make_command (cm_subshell, (SIMPLE_COM *)temp));
}
-v the size of virtual memory
+ -L the maximum number of file locks (Kernel >= 2.4)
- If LIMIT is given, it is the new value of the specified resource.
- Otherwise, the current value of the specified resource is printed.
-@@ -202,6 +203,9 @@
+ If LIMIT is given, it is the new value of the specified resource;
+ the special LIMIT values `soft', `hard', and `unlimited' stand for
+@@ -216,6 +216,9 @@
#if defined (HAVE_RESOURCE)
- { 'v', RLIMIT_VIRTMEM, RLIMIT_VMBLKSZ, "virtual memory (kbytes)" },
+ { 'v', RLIMIT_VIRTMEM, RLIMIT_VMBLKSZ, "virtual memory", "kbytes" },
#endif
+#ifdef RLIMIT_LOCKS
+ { 'L', RLIMIT_LOCKS, 1, "max file locks" },
+#endif /* RLIMIT_LOCKS */
- { -1, -1, -1, (char *)NULL }
- };
- #define NCMDS (sizeof(limits) / sizeof(limits[0]))
+ #ifdef RLIMIT_SWAP
+ { 'w', RLIMIT_SWAP, 1024, "swap size", "kbytes" },
+ #endif
@@ -344,6 +348,7 @@
int mode, multiple;
{
int opt, limind, setting;
+ int dont_locks = 0;
- long block_factor;
- RLIMTYPE current_limit, real_limit, limit;
+ int block_factor;
+ RLIMTYPE soft_limit, hard_limit, real_limit, limit;
-@@ -354,8 +359,15 @@
- opt = get_limit (limind, mode, ¤t_limit);
+@@ -354,9 +359,20 @@
+ opt = get_limit (limind, &soft_limit, &hard_limit);
if (opt < 0)
{
-- builtin_error ("cannot get limit: %s", strerror (errno));
+- builtin_error ("cannot get %s limit: %s", limits[limind].description,
+- strerror (errno));
- return (EXECUTION_FAILURE);
-+ if ( ( errno == 22 ) &&
-+ ( limits[limind].parameter == RLIMIT_LOCKS )
-+ ) {
-+ current_limit=RLIM_INFINITY;
-+ dont_locks = 1;
-+ } else {
-+ builtin_error ("cannot get limit: %s", strerror (errno));
-+ return (EXECUTION_FAILURE);
-+ }
++ if (( errno == 22) && (limits[limind].parameter == RLIMIT_LOCKS))
++ {
++ if (mode & LIMIT_SOFT)
++ soft_limit = RLIM_INFINITY;
++ else
++ hard_limit = RLIM_INFINITY;
++ dont_locks = 1;
++ }
++ else
++ {
++ builtin_error ("cannot get %s limit: %s", limits[limind].description,
++ strerror (errno));
++ return (EXECUTION_FAILURE);
++ }
}
if (setting == 0) /* print the value of the specified limit */
@@ -363,6 +375,12 @@
- printone (limind, current_limit, multiple);
+ printone (limind, (mode & LIMIT_SOFT) ? soft_limit : hard_limit, multiple);
return (EXECUTION_SUCCESS);
}
+
+ return (EXECUTION_FAILURE);
+ }
- /* Setting the limit. */
- if (STREQ (cmdarg, "unlimited"))
-@@ -617,8 +635,15 @@
+ /* Setting the limit.
+ if (STREQ (cmdarg, "hard"))
+@@ -617,7 +635,17 @@
+ for (i = 0; limits[i].option > 0; i++)
{
- if (get_limit (i, mode, &value) < 0)
- {
-- fprintf (stderr, DESCFMT, limits[i].description);
-- builtin_error ("cannot get limit: %s", strerror (errno));
-+ if ( ( errno == 22 ) &&
-+ ( limits[i].parameter == RLIMIT_LOCKS )
-+ ) {
-+ value=RLIM_INFINITY;
-+ printone (i, value, 1);
-+ } else {
-+ fprintf (stderr, DESCFMT, limits[i].description);
-+ builtin_error ("cannot get limit: %s", strerror (errno));
-+ }
- }
+ if (get_limit (i, &softlim, &hardlim) < 0)
+- builtin_error ("cannot get %s limit: %s", limits[i].description, strerror (errno));
++ {
++ if ((errno == 22) && (limits[i].parameter == RLIMIT_LOCKS))
++ {
++ if (mode & LIMIT_SOFT)
++ softlim = RLIM_INFINITY;
++ else
++ hardlim = RLIM_INFINITY;
++ printone (i, (mode & LIMIT_SOFT) ? softlim : hardlim, 1);
++ } else
++ builtin_error ("cannot get %s limit: %s", limits[i].description, strerror (errno));
++ }
else
- printone (i, value, 1);
+ printone (i, (mode & LIMIT_SOFT) ? softlim : hardlim, 1);
+
--- bash-2.04/execute_cmd.c.shellfunc Tue Jan 25 11:29:11 2000
+++ bash-2.04/execute_cmd.c Tue May 2 21:26:24 2000
-@@ -2762,6 +2762,8 @@
+@@ -2855,6 +2855,7 @@
+ int return_val, result;
+ COMMAND *tc, *fc;
+ char *debug_trap, *error_trap;
++ SHELL_VAR* old_shell_function;
+
+ USE_VAR(fc);
+
+@@ -2862,6 +2862,8 @@
if (tc && (flags & CMD_IGNORE_RETURN))
tc->flags |= CMD_IGNORE_RETURN;
if (subshell == 0)
{
begin_unwind_frame ("function_calling");
-@@ -2843,6 +2845,8 @@
+@@ -2959,6 +2959,8 @@
if (variable_context == 0 || this_shell_function == 0)
make_funcname_visible (0);