summaryrefslogtreecommitdiff
path: root/pathexp.c
diff options
context:
space:
mode:
authorChet Ramey <chet.ramey@case.edu>2011-12-12 22:03:58 -0500
committerChet Ramey <chet.ramey@case.edu>2011-12-12 22:03:58 -0500
commit5f8cde236aa72470a886bf8e7d8aaca32506d8dd (patch)
tree6472b60e768f40b20cac3c3da60ffea9d3cb26cb /pathexp.c
parent9ec5ed66405529e0d4d7edc5636c692e75edfccd (diff)
downloadbash-5f8cde236aa72470a886bf8e7d8aaca32506d8dd.tar.gz
commit bash-20100728 snapshot
Diffstat (limited to 'pathexp.c')
-rw-r--r--pathexp.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/pathexp.c b/pathexp.c
index 851ab8ff..42f21e4c 100644
--- a/pathexp.c
+++ b/pathexp.c
@@ -40,6 +40,7 @@
static int glob_name_is_acceptable __P((const char *));
static void ignore_globbed_names __P((char **, sh_ignore_func_t *));
+static char *split_ignorespec __P((char *, int *));
#if defined (USE_POSIX_GLOB_LIBRARY)
# include <glob.h>
@@ -428,6 +429,30 @@ ignore_glob_matches (names)
ignore_globbed_names (names, glob_name_is_acceptable);
}
+static char *
+split_ignorespec (s, ip)
+ char *s;
+ int *ip;
+{
+ char *t;
+ int n, i;
+
+ if (s == 0)
+ return 0;
+
+ i = *ip;
+ if (s[i] == 0)
+ return 0;
+
+ n = skip_to_delim (s, i, ":", SD_NOJMP|SD_EXTGLOB);
+ t = substring (s, i, n);
+
+ if (s[n] == ':')
+ n++;
+ *ip = n;
+ return t;
+}
+
void
setup_ignore_patterns (ivp)
struct ignorevar *ivp;
@@ -467,7 +492,11 @@ setup_ignore_patterns (ivp)
numitems = maxitems = ptr = 0;
+#if 0
while (colon_bit = extract_colon_unit (this_ignoreval, &ptr))
+#else
+ while (colon_bit = split_ignorespec (this_ignoreval, &ptr))
+#endif
{
if (numitems + 1 >= maxitems)
{