[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.20 and 1.21

version 1.20, 2008/01/18 16:20:00 version 1.21, 2008/02/01 23:29:54
Line 76  __RCSID("$NetBSD$");
Line 76  __RCSID("$NetBSD$");
 #include <glob.h>  #include <glob.h>
 #include <pwd.h>  #include <pwd.h>
 #include <stdio.h>  #include <stdio.h>
   #include <stddef.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
 #include <unistd.h>  #include <unistd.h>
Line 584  glob2(Char *pathbuf, Char *pathend, Char
Line 585  glob2(Char *pathbuf, Char *pathend, Char
         __gl_stat_t sb;          __gl_stat_t sb;
         Char *p, *q;          Char *p, *q;
         int anymeta;          int anymeta;
           Char *pend;
           ptrdiff_t diff;
   
         _DIAGASSERT(pathbuf != NULL);          _DIAGASSERT(pathbuf != NULL);
         _DIAGASSERT(pathend != NULL);          _DIAGASSERT(pathend != NULL);
Line 626  glob2(Char *pathbuf, Char *pathend, Char
Line 629  glob2(Char *pathbuf, Char *pathend, Char
                 }                  }
   
                 /*                  /*
                  * No expansion, or path ends in dot-slash or dot-dot-slash,                   * No expansion, or path ends in slash-dot shash-dot-dot,
                  * do next segment.                   * do next segment.
                  */                   */
                  if ((!anymeta) ||                  if (pglob->gl_flags & GLOB_PERIOD) {
                      (((pathend-pathbuf) > 1) &&                          for (pend = pathend; pend > pathbuf && pend[-1] == '/';
                       (((*(pathend-1) == SEP) && (*(pathend-2) == DOT)) &&                              pend--)
                         ((((pathend-pathbuf) < 3) || (*(pathend-3) == SEP)) ||                                  continue;
                          (((pathend-pathbuf) < 4) ||                          diff = pend - pathbuf;
                          ((*(pathend-3) == DOT) && (*(pathend-4) == SEP))))))) {                  } 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.20  
changed lines
  Added in v.1.21

CVSweb <webmaster@jp.NetBSD.org>