patches/glibc/2.1.3/rh62-08-glibc-2.1.3-glob.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Feb 24 11:00:05 2007 +0000 (2007-02-24)
changeset 1 eeea35fbf182
permissions -rw-r--r--
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!".
Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup.
That means I'm putting backups in place in the afternoon.
That also means we've lost history... :-(
yann@1
     1
2001-11-29  Jakub Jelinek  <jakub@redhat.com>
yann@1
     2
yann@1
     3
	* sysdeps/generic/glob.c (next_brace_sub): Return NULL if braces
yann@1
     4
	don't match, fix {{a,b},c} globbing, clean up.
yann@1
     5
	Patch by Flavio Veloso <flaviovs@magnux.com>.
yann@1
     6
yann@1
     7
--- libc/sysdeps/generic/glob.c.jj	Thu Aug 23 18:49:29 2001
yann@1
     8
+++ libc/sysdeps/generic/glob.c	Thu Nov 29 13:17:21 2001
yann@1
     9
@@ -355,42 +355,14 @@ static
yann@1
    10
 inline
yann@1
    11
 #endif
yann@1
    12
 const char *
yann@1
    13
-next_brace_sub (begin)
yann@1
    14
-     const char *begin;
yann@1
    15
+next_brace_sub (cp)
yann@1
    16
+     const char *cp;
yann@1
    17
 {
yann@1
    18
   unsigned int depth = 0;
yann@1
    19
-  const char *cp = begin;
yann@1
    20
-
yann@1
    21
-  while (1)
yann@1
    22
-    {
yann@1
    23
-      if (depth == 0)
yann@1
    24
-	{
yann@1
    25
-	  if (*cp != ',' && *cp != '}' && *cp != '\0')
yann@1
    26
-	    {
yann@1
    27
-	      if (*cp == '{')
yann@1
    28
-		++depth;
yann@1
    29
-	      ++cp;
yann@1
    30
-	      continue;
yann@1
    31
-	    }
yann@1
    32
-	}
yann@1
    33
-      else
yann@1
    34
-	{
yann@1
    35
-	  while (*cp != '\0' && (*cp != '}' || depth > 0))
yann@1
    36
-	    {
yann@1
    37
-	      if (*cp == '}')
yann@1
    38
-		--depth;
yann@1
    39
-	      ++cp;
yann@1
    40
-	    }
yann@1
    41
-	  if (*cp == '\0')
yann@1
    42
-	    /* An incorrectly terminated brace expression.  */
yann@1
    43
-	    return NULL;
yann@1
    44
-
yann@1
    45
-	  continue;
yann@1
    46
-	}
yann@1
    47
-      break;
yann@1
    48
-    }
yann@1
    49
-
yann@1
    50
-  return cp;
yann@1
    51
+  while (*cp != '\0' && (*cp != '}' || depth--) && (*cp != ',' || depth))
yann@1
    52
+    if (*cp++ == '{')
yann@1
    53
+      depth++;
yann@1
    54
+  return *cp != '\0' ? cp : NULL;
yann@1
    55
 }
yann@1
    56
 
yann@1
    57
 #endif /* !GLOB_ONLY_P */