[BACK]Return to glob.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / lib / libc / gen

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/lib/libc/gen/glob.c between version 1.30 and 1.34

version 1.30, 2011/05/14 22:44:06 version 1.34, 2013/02/21 18:17:43
Line 180  static void  qprintf(const char *, Char 
Line 180  static void  qprintf(const char *, Char 
 #endif  #endif
   
 int  int
 glob(const char *pattern, int flags, int (*errfunc)(const char *, int),  glob(const char * __restrict pattern, int flags, int (*errfunc)(const char *,
     glob_t *pglob)      int), glob_t * __restrict pglob)
 {  {
         const u_char *patnext;          const u_char *patnext;
         int c;          int c;
Line 612  glob2(Char *pathbuf, Char *pathend, Char
Line 612  glob2(Char *pathbuf, Char *pathend, Char
         const Char *p;          const Char *p;
         Char *q;          Char *q;
         int anymeta;          int anymeta;
         Char *pend;  
         ptrdiff_t diff;  
   
         _DIAGASSERT(pathbuf != NULL);          _DIAGASSERT(pathbuf != NULL);
         _DIAGASSERT(pathend != NULL);          _DIAGASSERT(pathend != NULL);
Line 665  glob2(Char *pathbuf, Char *pathend, Char
Line 663  glob2(Char *pathbuf, Char *pathend, Char
                         *q++ = *p++;                          *q++ = *p++;
                 }                  }
   
                 /*                  if (!anymeta) {
                  * No expansion, or path ends in slash-dot shash-dot-dot,  
                  * do next segment.  
                  */  
                 if (pglob->gl_flags & GLOB_PERIOD) {  
                         for (pend = pathend; pend > pathbuf && pend[-1] == '/';  
                             pend--)  
                                 continue;  
                         diff = pend - pathbuf;  
                 } else {  
                         /* XXX: GCC */  
                         diff = 0;  
                         pend = pathend;  
                 }  
   
                 if ((!anymeta) ||  
                     ((pglob->gl_flags & GLOB_PERIOD) &&  
                      (diff >= 1 && pend[-1] == DOT) &&  
                      (diff >= 2 && (pend[-2] == SLASH || pend[-2] == DOT)) &&  
                      (diff < 3 || pend[-3] == SLASH))) {  
                         pathend = q;                          pathend = q;
                         pattern = p;                          pattern = p;
                         while (*pattern == SEP) {                          while (*pattern == SEP) {

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.34

CVSweb <webmaster@jp.NetBSD.org>