123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- 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_ */
|