|
@@ -1,30 +1,10 @@
|
|
|
-This patch makes sure Bash does not segfault on empty here documents. It
|
|
|
|
|
-is derived from Gentoo Linux. The problem can be reproduced with "xargs
|
|
|
|
|
-<<< ${EMTPY_VARIABLE}".
|
|
|
|
|
|
|
+This patch documents two implemented and classical command
|
|
|
|
|
+line options "-v" and "-x". It is derived from Debian GNU/Linux.
|
|
|
|
|
|
|
|
---- redir.c 2002-03-12 20:27:38.000000000 +0000
|
|
|
|
|
-+++ redir.c 2003-05-01 13:04:07.000000000 +0100
|
|
|
|
|
-@@ -263,8 +263,10 @@
|
|
|
|
|
- int herelen, n, e;
|
|
|
|
|
-
|
|
|
|
|
- herestr = expand_string_to_string (redirectee->word, 0);
|
|
|
|
|
-- herelen = strlen (herestr);
|
|
|
|
|
-
|
|
|
|
|
-+ /* verify string wasnt empty */
|
|
|
|
|
-+ herelen = (herestr == NULL) ? 0 : strlen (herestr);
|
|
|
|
|
-+
|
|
|
|
|
- n = write (fd, herestr, herelen);
|
|
|
|
|
- if (n == herelen)
|
|
|
|
|
- {
|
|
|
|
|
-
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
-
|
|
|
|
|
-This patch documents two implemented and classical command line options
|
|
|
|
|
-"-v" and "-v". It is derived from Debian GNU/Linux.
|
|
|
|
|
-
|
|
|
|
|
---- doc/bash.1 Wed Jan 20 22:48:04 1999
|
|
|
|
|
-+++ doc/bash.1 Sun Nov 14 13:26:59 1999
|
|
|
|
|
-@@ -104,6 +104,12 @@
|
|
|
|
|
|
|
+Index: doc/bash.1
|
|
|
|
|
+--- doc/bash.1.orig 2004-07-12 17:27:08 +0200
|
|
|
|
|
++++ doc/bash.1 2004-07-27 19:47:10 +0200
|
|
|
|
|
+@@ -113,6 +113,12 @@
|
|
|
This option allows the positional parameters to be set
|
|
This option allows the positional parameters to be set
|
|
|
when invoking an interactive shell.
|
|
when invoking an interactive shell.
|
|
|
.TP
|
|
.TP
|
|
@@ -40,24 +20,38 @@ This patch documents two implemented and classical command line options
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
-This patch makes sure Bash does not segfault on on "shift" under "shopt
|
|
|
|
|
--s shift_verbose". It is a null pointer dereference caused by an
|
|
|
|
|
-erroneous assumption that, when the number of arguments to shift exceeds
|
|
|
|
|
-the number of arguments available for shifting, the latter is always
|
|
|
|
|
-explicitly specified on the command line rather than left implicit at
|
|
|
|
|
-the default 1. The patch was derived from Debian GNU/Linux.
|
|
|
|
|
|
|
+This patch adds an explicit recognition for terminal sequence "kD" to be
|
|
|
|
|
+"Delete" key. This is derived from Debian GNU/Linux and SuSE Linux.
|
|
|
|
|
|
|
|
---- builtins/shift.def.orig 2002-10-22 01:05:10.000000000 -0400
|
|
|
|
|
-+++ builtins/shift.def 2002-10-22 01:05:06.000000000 -0400
|
|
|
|
|
-@@ -68,7 +68,7 @@
|
|
|
|
|
- else if (times > number_of_args ())
|
|
|
|
|
- {
|
|
|
|
|
- if (print_shift_error)
|
|
|
|
|
-- sh_erange (list->word->word, "shift count");
|
|
|
|
|
-+ sh_erange (list ? list->word->word : NULL, "shift count");
|
|
|
|
|
- return (EXECUTION_FAILURE);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+Index: lib/readline/terminal.c
|
|
|
|
|
+--- lib/readline/terminal.c.orig 2003-09-18 17:03:42 +0200
|
|
|
|
|
++++ lib/readline/terminal.c 2004-07-27 20:03:17 +0200
|
|
|
|
|
+@@ -145,6 +145,9 @@
|
|
|
|
|
+ static char *_rl_term_kH;
|
|
|
|
|
+ static char *_rl_term_at7; /* @7 */
|
|
|
|
|
|
|
|
|
|
++/* The key sequence sent by the Delete key, if any. */
|
|
|
|
|
++static char *_rl_term_kD;
|
|
|
|
|
++
|
|
|
|
|
+ /* Insert key */
|
|
|
|
|
+ static char *_rl_term_kI;
|
|
|
|
|
+
|
|
|
|
|
+@@ -313,6 +316,7 @@
|
|
|
|
|
+ { "ei", &_rl_term_ei },
|
|
|
|
|
+ { "ic", &_rl_term_ic },
|
|
|
|
|
+ { "im", &_rl_term_im },
|
|
|
|
|
++ { "kD", &_rl_term_kD }, /* delete */
|
|
|
|
|
+ { "kH", &_rl_term_kH }, /* home down ?? */
|
|
|
|
|
+ { "kI", &_rl_term_kI }, /* insert */
|
|
|
|
|
+ { "kd", &_rl_term_kd },
|
|
|
|
|
+@@ -492,6 +496,7 @@
|
|
|
|
|
+
|
|
|
|
|
+ rl_bind_keyseq_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */
|
|
|
|
|
+ rl_bind_keyseq_if_unbound (_rl_term_at7, rl_end_of_line); /* End */
|
|
|
|
|
++ rl_bind_keyseq_if_unbound (_rl_term_kD, rl_delete); /* Delete */
|
|
|
|
|
+
|
|
|
|
|
+ _rl_keymap = xkeymap;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
|
|
@@ -65,10 +59,10 @@ This patch makes sure a signal state variable is declared "volatile" so
|
|
|
it is consistent throughout signal handling. This patch is derived from
|
|
it is consistent throughout signal handling. This patch is derived from
|
|
|
SuSE Linux.
|
|
SuSE Linux.
|
|
|
|
|
|
|
|
---- quit.h
|
|
|
|
|
-+++ quit.h Wed May 2 17:38:34 2001
|
|
|
|
|
-@@ -21,8 +21,8 @@
|
|
|
|
|
- #if !defined (_QUIT_H_)
|
|
|
|
|
|
|
+Index: quit.h
|
|
|
|
|
+--- quit.h.orig 2001-09-10 16:08:33 +0200
|
|
|
|
|
++++ quit.h 2004-07-27 19:47:10 +0200
|
|
|
|
|
+@@ -22,7 +22,7 @@
|
|
|
#define _QUIT_H_
|
|
#define _QUIT_H_
|
|
|
|
|
|
|
|
/* Non-zero means SIGINT has already ocurred. */
|
|
/* Non-zero means SIGINT has already ocurred. */
|
|
@@ -77,10 +71,11 @@ SuSE Linux.
|
|
|
|
|
|
|
|
/* Macro to call a great deal. SIGINT just sets above variable. When
|
|
/* Macro to call a great deal. SIGINT just sets above variable. When
|
|
|
it is safe, put QUIT in the code, and the "interrupt" will take place. */
|
|
it is safe, put QUIT in the code, and the "interrupt" will take place. */
|
|
|
---- sig.c
|
|
|
|
|
-+++ sig.c Wed May 2 17:36:17 2001
|
|
|
|
|
-@@ -57,7 +57,7 @@
|
|
|
|
|
- extern int interactive, interactive_shell, login_shell, startup_state;
|
|
|
|
|
|
|
+Index: sig.c
|
|
|
|
|
+--- sig.c.orig 2003-12-19 22:11:35 +0100
|
|
|
|
|
++++ sig.c 2004-07-27 19:47:10 +0200
|
|
|
|
|
+@@ -59,7 +59,7 @@
|
|
|
|
|
+ extern int parse_and_execute_level, shell_initialized;
|
|
|
|
|
|
|
|
/* Non-zero after SIGINT. */
|
|
/* Non-zero after SIGINT. */
|
|
|
-int interrupt_state;
|
|
-int interrupt_state;
|
|
@@ -88,91 +83,23 @@ SuSE Linux.
|
|
|
|
|
|
|
|
/* The environment at the top-level R-E loop. We use this in
|
|
/* The environment at the top-level R-E loop. We use this in
|
|
|
the case of error return. */
|
|
the case of error return. */
|
|
|
-@@ -69,7 +69,7 @@
|
|
|
|
|
|
|
+@@ -71,7 +71,7 @@
|
|
|
#endif /* JOB_CONTROL */
|
|
#endif /* JOB_CONTROL */
|
|
|
|
|
|
|
|
/* When non-zero, we throw_to_top_level (). */
|
|
/* When non-zero, we throw_to_top_level (). */
|
|
|
-int interrupt_immediately = 0;
|
|
-int interrupt_immediately = 0;
|
|
|
+volatile int interrupt_immediately = 0;
|
|
+volatile int interrupt_immediately = 0;
|
|
|
|
|
|
|
|
- static void initialize_shell_signals ();
|
|
|
|
|
-
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
-
|
|
|
|
|
-This patch adds an explicit recognition for terminal sequence "kD" to be
|
|
|
|
|
-"Delete" key. This is derived from Debian GNU/Linux and SuSE Linux.
|
|
|
|
|
-
|
|
|
|
|
---- lib/readline/terminal.c
|
|
|
|
|
-+++ lib/readline/terminal.c Thu Jul 18 14:34:00 2002
|
|
|
|
|
-@@ -145,6 +145,9 @@
|
|
|
|
|
- static char *_rl_term_kH;
|
|
|
|
|
- static char *_rl_term_at7; /* @7 */
|
|
|
|
|
-
|
|
|
|
|
-+/* The key sequence sent by the Delete key, if any. */
|
|
|
|
|
-+static char *_rl_term_kD;
|
|
|
|
|
-+
|
|
|
|
|
- /* Insert key */
|
|
|
|
|
- static char *_rl_term_kI;
|
|
|
|
|
-
|
|
|
|
|
-@@ -313,6 +316,7 @@
|
|
|
|
|
- { "ei", &_rl_term_ei },
|
|
|
|
|
- { "ic", &_rl_term_ic },
|
|
|
|
|
- { "im", &_rl_term_im },
|
|
|
|
|
-+ { "kD", &_rl_term_kD }, /* delete */
|
|
|
|
|
- { "kH", &_rl_term_kH }, /* home down ?? */
|
|
|
|
|
- { "kI", &_rl_term_kI }, /* insert */
|
|
|
|
|
- { "kd", &_rl_term_kd },
|
|
|
|
|
-@@ -496,6 +500,7 @@
|
|
|
|
|
-
|
|
|
|
|
- _rl_bind_if_unbound (_rl_term_kh, rl_beg_of_line); /* Home */
|
|
|
|
|
- _rl_bind_if_unbound (_rl_term_at7, rl_end_of_line); /* End */
|
|
|
|
|
-+ _rl_bind_if_unbound (_rl_term_kD, rl_delete); /* Delete */
|
|
|
|
|
|
|
+ static void initialize_shell_signals __P((void));
|
|
|
|
|
|
|
|
- _rl_keymap = xkeymap;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
-
|
|
|
|
|
-This patch makes sure Bash does not segfault on a particular error.
|
|
|
|
|
-It is derived from RedHat Linux.
|
|
|
|
|
-
|
|
|
|
|
---- builtins/common.c.warnings 2003-03-25 17:48:02.000000000 +0000
|
|
|
|
|
-+++ builtins/common.c 2003-03-25 17:49:03.000000000 +0000
|
|
|
|
|
-@@ -244,7 +244,7 @@
|
|
|
|
|
- char *s;
|
|
|
|
|
- {
|
|
|
|
|
- if (s)
|
|
|
|
|
-- builtin_error ("%s: no job control");
|
|
|
|
|
-+ builtin_error ("%s: no job control", s);
|
|
|
|
|
- else
|
|
|
|
|
- builtin_error ("no job control");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
|
-
|
|
|
|
|
-This adds the OpenPKG packaging brand.
|
|
|
|
|
-
|
|
|
|
|
-Index: version.c
|
|
|
|
|
---- version.c.orig 2002-04-03 15:49:19.000000000 +0200
|
|
|
|
|
-+++ version.c 2003-10-06 17:23:18.000000000 +0200
|
|
|
|
|
-@@ -63,7 +63,7 @@
|
|
|
|
|
- show_shell_version (extended)
|
|
|
|
|
- int extended;
|
|
|
|
|
- {
|
|
|
|
|
-- printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE);
|
|
|
|
|
-+ printf ("GNU bash, version %s (%s) [@l_openpkg_release@]\n", shell_version_string (), MACHTYPE);
|
|
|
|
|
- if (extended)
|
|
|
|
|
- printf ("Copyright (C) 2002 Free Software Foundation, Inc.\n");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
Port to HP-UX 11i and similar less smart platforms.
|
|
Port to HP-UX 11i and similar less smart platforms.
|
|
|
|
|
|
|
|
Index: configure
|
|
Index: configure
|
|
|
---- configure.orig 2002-07-16 15:31:47.000000000 +0200
|
|
|
|
|
-+++ configure 2004-06-07 10:31:26.000000000 +0200
|
|
|
|
|
-@@ -1146,6 +1146,7 @@
|
|
|
|
|
|
|
+--- configure.orig 2004-07-21 22:18:56 +0200
|
|
|
|
|
++++ configure 2004-07-27 19:47:10 +0200
|
|
|
|
|
+@@ -1479,6 +1479,7 @@
|
|
|
*-beos*) opt_bash_malloc=no ;; # they say it's suitable
|
|
*-beos*) opt_bash_malloc=no ;; # they say it's suitable
|
|
|
*-cygwin*) opt_bash_malloc=no ;; # Cygnus's CYGWIN environment
|
|
*-cygwin*) opt_bash_malloc=no ;; # Cygnus's CYGWIN environment
|
|
|
*-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft
|
|
*-opennt*|*-interix*) opt_bash_malloc=no ;; # Interix, now owned by Microsoft
|
|
@@ -180,7 +107,7 @@ Index: configure
|
|
|
esac
|
|
esac
|
|
|
|
|
|
|
|
# memory scrambling on free()
|
|
# memory scrambling on free()
|
|
|
-@@ -1211,7 +1212,7 @@
|
|
|
|
|
|
|
+@@ -1624,7 +1625,7 @@
|
|
|
|
|
|
|
|
else
|
|
else
|
|
|
MALLOC_LIB=
|
|
MALLOC_LIB=
|
|
@@ -189,24 +116,9 @@ Index: configure
|
|
|
MALLOC_LDFLAGS=
|
|
MALLOC_LDFLAGS=
|
|
|
MALLOC_DEP=
|
|
MALLOC_DEP=
|
|
|
fi
|
|
fi
|
|
|
-Index: mksyntax.c
|
|
|
|
|
---- mksyntax.c.orig 2002-02-07 15:32:28.000000000 +0100
|
|
|
|
|
-+++ mksyntax.c 2004-06-04 11:53:19.000000000 +0200
|
|
|
|
|
-@@ -128,7 +128,11 @@
|
|
|
|
|
-
|
|
|
|
|
- switch (i)
|
|
|
|
|
- {
|
|
|
|
|
-+#if defined(__STDC__)
|
|
|
|
|
- case '\a': xbuf[1] = 'a'; break;
|
|
|
|
|
-+#else
|
|
|
|
|
-+ case 7: xbuf[1] = 'a'; break;
|
|
|
|
|
-+#endif
|
|
|
|
|
- case '\v': xbuf[1] = 'v'; break;
|
|
|
|
|
- case '\b': xbuf[1] = 'b'; break;
|
|
|
|
|
- case '\f': xbuf[1] = 'f'; break;
|
|
|
|
|
Index: syntax.h
|
|
Index: syntax.h
|
|
|
---- syntax.h.orig 2002-02-25 17:52:37.000000000 +0100
|
|
|
|
|
-+++ syntax.h 2004-06-04 11:53:49.000000000 +0200
|
|
|
|
|
|
|
+--- syntax.h.orig 2004-04-15 05:19:36 +0200
|
|
|
|
|
++++ syntax.h 2004-07-27 19:47:10 +0200
|
|
|
@@ -21,6 +21,8 @@
|
|
@@ -21,6 +21,8 @@
|
|
|
#ifndef _SYNTAX_H_
|
|
#ifndef _SYNTAX_H_
|
|
|
#define _SYNTAX_H_
|
|
#define _SYNTAX_H_
|
|
@@ -216,15 +128,20 @@ Index: syntax.h
|
|
|
/* Defines for use by mksyntax.c */
|
|
/* Defines for use by mksyntax.c */
|
|
|
|
|
|
|
|
#define slashify_in_quotes "\\`$\"\n"
|
|
#define slashify_in_quotes "\\`$\"\n"
|
|
|
-Index: builtins/printf.def
|
|
|
|
|
---- builtins/printf.def.orig 2002-05-13 20:36:04.000000000 +0200
|
|
|
|
|
-+++ builtins/printf.def 2004-06-04 11:57:44.000000000 +0200
|
|
|
|
|
-@@ -114,7 +114,7 @@
|
|
|
|
|
- static intmax_t getintmax __P((void));
|
|
|
|
|
- static uintmax_t getuintmax __P((void));
|
|
|
|
|
-
|
|
|
|
|
--#if defined (HAVE_LONG_DOUBLE) && HAVE_DECL_STRTOLD
|
|
|
|
|
-+#if defined (HAVE_LONG_DOUBLE) && HAVE_DECL_STRTOLD && !defined(HPUX)
|
|
|
|
|
- typedef long double floatmax_t;
|
|
|
|
|
- # define FLOATMAX_CONV "L"
|
|
|
|
|
- # define strtofltmax strtold
|
|
|
|
|
|
|
+
|
|
|
|
|
+-----------------------------------------------------------------------------
|
|
|
|
|
+
|
|
|
|
|
+This adds the OpenPKG packaging brand.
|
|
|
|
|
+
|
|
|
|
|
+Index: version.c
|
|
|
|
|
+--- version.c.orig 2003-12-19 22:34:02 +0100
|
|
|
|
|
++++ version.c 2004-07-27 19:47:10 +0200
|
|
|
|
|
+@@ -77,7 +77,7 @@
|
|
|
|
|
+ show_shell_version (extended)
|
|
|
|
|
+ int extended;
|
|
|
|
|
+ {
|
|
|
|
|
+- printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE);
|
|
|
|
|
++ printf ("GNU bash, version %s (%s) [@l_openpkg_release@]\n", shell_version_string (), MACHTYPE);
|
|
|
|
|
+ if (extended)
|
|
|
|
|
+ printf (_("Copyright (C) 2004 Free Software Foundation, Inc.\n"));
|
|
|
|
|
+ }
|