csh glob bug from Christos; example is:
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Wed, 5 Feb 1992 07:32:41 +0000 (23:32 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Wed, 5 Feb 1992 07:32:41 +0000 (23:32 -0800)
% echo .[^.]
echo: No match.
% echo .[^.]*
.

SCCS-vsn: lib/libc/gen/glob.c 5.14

usr/src/lib/libc/gen/glob.c

index 3257eb5..521c911 100644 (file)
@@ -9,7 +9,7 @@
  */
 
 #if defined(LIBC_SCCS) && !defined(lint)
  */
 
 #if defined(LIBC_SCCS) && !defined(lint)
-static char sccsid[] = "@(#)glob.c     5.13 (Berkeley) %G%";
+static char sccsid[] = "@(#)glob.c     5.14 (Berkeley) %G%";
 #endif /* LIBC_SCCS and not lint */
 
 /*
 #endif /* LIBC_SCCS and not lint */
 
 /*
@@ -425,7 +425,8 @@ match(name, pat, patend)
                        break;
                case M_SET:
                        ok = 0;
                        break;
                case M_SET:
                        ok = 0;
-                       k = *name++;
+                       if ((k = *name++) == EOS)
+                               return(0);
                        if (negate_range = ((*pat & M_MASK) == M_NOT))
                                ++pat;
                        while (((c = *pat++) & M_MASK) != M_END)
                        if (negate_range = ((*pat & M_MASK) == M_NOT))
                                ++pat;
                        while (((c = *pat++) & M_MASK) != M_END)