diff options
Diffstat (limited to 'package/bash/bash31-010')
| -rw-r--r-- | package/bash/bash31-010 | 164 | 
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_ */  | 
