diff options
Diffstat (limited to 'package/bash/bash31-015')
| -rw-r--r-- | package/bash/bash31-015 | 106 | 
1 files changed, 106 insertions, 0 deletions
diff --git a/package/bash/bash31-015 b/package/bash/bash31-015 new file mode 100644 index 000000000..3376a4fb9 --- /dev/null +++ b/package/bash/bash31-015 @@ -0,0 +1,106 @@ +			     BASH PATCH REPORT +			     ================= + +Bash-Release: 3.1 +Patch-ID: bash31-015 + +Bug-Reported-by: Benoit Vila +Bug-Reference-ID: <43FCA614.1090108@free.fr> +Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-02/msg00058.html + +Bug-Description: + +A problem with the extended globbing code prevented dots from matching +filenames when used in some extended matching patterns. + +Patch: + +*** bash-3.1/lib/glob/sm_loop.c	Sun Oct 16 21:21:04 2005 +--- bash-3.1/lib/glob/sm_loop.c	Mon Feb 27 17:18:43 2006 +*************** +*** 639,643 **** +    CHAR *pnext;			/* pointer to next sub-pattern */ +    CHAR *srest;			/* pointer to rest of string */ +!   int m1, m2; +   +  #if DEBUG_MATCHING +--- 638,642 ---- +    CHAR *pnext;			/* pointer to next sub-pattern */ +    CHAR *srest;			/* pointer to rest of string */ +!   int m1, m2, xflags;		/* xflags = flags passed to recursive matches */ +   +  #if DEBUG_MATCHING +*************** +*** 645,648 **** +--- 644,648 ---- +  fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se); +  fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe); ++ fprintf(stderr, "extmatch: flags = %d\n", flags); +  #endif +   +*************** +*** 678,683 **** +  		 multiple matches of the pattern. */ +  	      if (m1) +! 		m2 = (GMATCH (srest, se, prest, pe, flags) == 0) || +! 		      (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0); +  	      if (m1 && m2) +  		return (0); +--- 678,687 ---- +  		 multiple matches of the pattern. */ +  	      if (m1) +! 		{ +! 		  /* if srest > s, we are not at start of string */ +! 		  xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; +! 		  m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) || +! 			(s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0); +! 		} +  	      if (m1 && m2) +  		return (0); +*************** +*** 705,710 **** +  	  for ( ; srest <= se; srest++) +  	    { +  	      if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 && +! 		  GMATCH (srest, se, prest, pe, flags) == 0) +  		return (0); +  	    } +--- 709,716 ---- +  	  for ( ; srest <= se; srest++) +  	    { ++ 	      /* if srest > s, we are not at start of string */ ++ 	      xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; +  	      if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 && +! 		  GMATCH (srest, se, prest, pe, xflags) == 0) +  		return (0); +  	    } +*************** +*** 727,731 **** +  		break; +  	    } +! 	  if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0) +  	    return (0); +  	} +--- 733,739 ---- +  		break; +  	    } +! 	  /* if srest > s, we are not at start of string */ +! 	  xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags; +! 	  if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0) +  	    return (0); +  	} +*** 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 14 +   +  #endif /* _PATCHLEVEL_H_ */ +--- 26,30 ---- +     looks for to find the patch level (for the sccs version string). */ +   +! #define PATCHLEVEL 15 +   +  #endif /* _PATCHLEVEL_H_ */  | 
