summaryrefslogtreecommitdiffstats
path: root/package/bash/bash31-010
diff options
context:
space:
mode:
Diffstat (limited to 'package/bash/bash31-010')
-rw-r--r--package/bash/bash31-010164
1 files changed, 0 insertions, 164 deletions
diff --git a/package/bash/bash31-010 b/package/bash/bash31-010
deleted file mode 100644
index 19277a88f..000000000
--- a/package/bash/bash31-010
+++ /dev/null
@@ -1,164 +0,0 @@
- BASH PATCH REPORT
- =================
-
-Bash-Release: 3.1
-Patch-ID: bash31-010
-
-Bug-Reported-by: vw@vonwolff.de
-Bug-Reference-ID: <20060123135234.1AC2F1D596@wst07.vonwolff.de>
-Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-01/msg00090.html
-
-Bug-Description:
-
-There is a difference in behavior between bash-3.0 and bash-3.1 involving
-parsing of single- and double-quoted strings occurring in old-style
-command substitution. The difference has to do with how backslashes are
-processed. This patch restores a measure of backwards compatibility while
-the question of POSIX conformance and ultimately correct behavior is discussed.
-
-THIS IS AN UPDATED PATCH. USE THIS COMMAND TO REVERSE THE EFFECTS OF
-THE ORIGINAL PATCH. THE CURRENT DIRECTORY MUST BE THE BASH-3.1 SOURCE
-DIRECTORY.
-
-patch -p0 -R < bash31-010.orig
-
-Then apply this patch as usual.
-
-Patch:
-
-*** bash-3.1/parse.y Fri Nov 11 23:14:18 2005
---- bash-3.1/parse.y Thu Feb 23 08:21:12 2006
-***************
-*** 2716,2721 ****
---- 2723,2729 ----
- #define P_ALLOWESC 0x02
- #define P_DQUOTE 0x04
- #define P_COMMAND 0x08 /* parsing a command, so look for comments */
-+ #define P_BACKQUOTE 0x10 /* parsing a backquoted command substitution */
-
- static char matched_pair_error;
- static char *
-***************
-*** 2725,2736 ****
- int *lenp, flags;
- {
- int count, ch, was_dollar, in_comment, check_comment;
-! int pass_next_character, nestlen, ttranslen, start_lineno;
- char *ret, *nestret, *ttrans;
- int retind, retsize, rflags;
-
- count = 1;
-! pass_next_character = was_dollar = in_comment = 0;
- check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
-
- /* RFLAGS is the set of flags we want to pass to recursive calls. */
---- 2733,2744 ----
- int *lenp, flags;
- {
- int count, ch, was_dollar, in_comment, check_comment;
-! int pass_next_character, backq_backslash, nestlen, ttranslen, start_lineno;
- char *ret, *nestret, *ttrans;
- int retind, retsize, rflags;
-
- count = 1;
-! pass_next_character = backq_backslash = was_dollar = in_comment = 0;
- check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
-
- /* RFLAGS is the set of flags we want to pass to recursive calls. */
-***************
-*** 2742,2752 ****
- start_lineno = line_number;
- while (count)
- {
-! #if 0
-! ch = shell_getc ((qc != '\'' || (flags & P_ALLOWESC)) && pass_next_character == 0);
-! #else
-! ch = shell_getc (qc != '\'' && pass_next_character == 0);
-! #endif
- if (ch == EOF)
- {
- free (ret);
---- 2750,2757 ----
- start_lineno = line_number;
- while (count)
- {
-! ch = shell_getc (qc != '\'' && pass_next_character == 0 && backq_backslash == 0);
-!
- if (ch == EOF)
- {
- free (ret);
-***************
-*** 2771,2779 ****
- continue;
- }
- /* Not exactly right yet */
-! else if (check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind -1])))
- in_comment = 1;
-
- if (pass_next_character) /* last char was backslash */
- {
- pass_next_character = 0;
---- 2776,2791 ----
- continue;
- }
- /* Not exactly right yet */
-! else if MBTEST(check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind - 1])))
- in_comment = 1;
-
-+ /* last char was backslash inside backquoted command substitution */
-+ if (backq_backslash)
-+ {
-+ backq_backslash = 0;
-+ /* Placeholder for adding special characters */
-+ }
-+
- if (pass_next_character) /* last char was backslash */
- {
- pass_next_character = 0;
-***************
-*** 2814,2819 ****
---- 2824,2831 ----
- {
- if MBTEST((flags & P_ALLOWESC) && ch == '\\')
- pass_next_character++;
-+ else if MBTEST((flags & P_BACKQUOTE) && ch == '\\')
-+ backq_backslash++;
- continue;
- }
-
-***************
-*** 2898,2904 ****
- }
- else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0)
- {
-! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags);
- goto add_nestret;
- }
- else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */
---- 2910,2920 ----
- }
- else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0)
- {
-! /* Add P_BACKQUOTE so backslash quotes the next character and
-! shell_getc does the right thing with \<newline>. We do this for
-! a measure of backwards compatibility -- it's not strictly the
-! right POSIX thing. */
-! nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_BACKQUOTE);
- goto add_nestret;
- }
- else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */
-*** bash-3.1/patchlevel.h Wed Jul 20 13:58:20 2005
---- bash-3.1/patchlevel.h Wed Dec 7 13:48:42 2005
-***************
-*** 26,30 ****
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 9
-
- #endif /* _PATCHLEVEL_H_ */
---- 26,30 ----
- looks for to find the patch level (for the sccs version string). */
-
-! #define PATCHLEVEL 10
-
- #endif /* _PATCHLEVEL_H_ */