Changeset 3250


Ignore:
Timestamp:
Apr 30, 2007, 1:16:55 AM (18 years ago)
Author:
bird
Message:

Applied bash31-015

Location:
trunk/essentials/app-shells/bash
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/essentials/app-shells/bash/lib/glob/sm_loop.c

    r3231 r3250  
    639639  CHAR *pnext;                  /* pointer to next sub-pattern */
    640640  CHAR *srest;                  /* pointer to rest of string */
    641   int m1, m2;
     641  int m1, m2, xflags;           /* xflags = flags passed to recursive matches */
    642642
    643643#if DEBUG_MATCHING
     
    645645fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se);
    646646fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe);
     647fprintf(stderr, "extmatch: flags = %d\n", flags);
    647648#endif
    648649
     
    678679                 multiple matches of the pattern. */
    679680              if (m1)
    680                 m2 = (GMATCH (srest, se, prest, pe, flags) == 0) ||
    681                       (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0);
     681                {
     682                  /* if srest > s, we are not at start of string */
     683                  xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
     684                  m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) ||
     685                        (s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0);
     686                }
    682687              if (m1 && m2)
    683688                return (0);
     
    705710          for ( ; srest <= se; srest++)
    706711            {
     712              /* if srest > s, we are not at start of string */
     713              xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
    707714              if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 &&
    708                   GMATCH (srest, se, prest, pe, flags) == 0)
     715                  GMATCH (srest, se, prest, pe, xflags) == 0)
    709716                return (0);
    710717            }
     
    727734                break;
    728735            }
    729           if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0)
     736          /* if srest > s, we are not at start of string */
     737          xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
     738          if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0)
    730739            return (0);
    731740        }
  • trunk/essentials/app-shells/bash/patchlevel.h

    r3249 r3250  
    2626   looks for to find the patch level (for the sccs version string). */
    2727
    28 #define PATCHLEVEL 14
     28#define PATCHLEVEL 15
    2929
    3030#endif /* _PATCHLEVEL_H_ */
Note: See TracChangeset for help on using the changeset viewer.