summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vpath.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/vpath.c b/vpath.c
index 1b9109b..986a18a 100644
--- a/vpath.c
+++ b/vpath.c
@@ -147,11 +147,6 @@ construct_vpath_list (pattern, dirpath)
return;
}
- /* Skip over any initial colons and blanks. */
- p = dirpath;
- while (*p == ':' || isblank (*p))
- ++p;
-
/* Figure out the maximum number of VPATH entries and
put it in MAXELEM. We start with 2, one before the
first colon and one nil, the list terminator and
@@ -164,19 +159,17 @@ construct_vpath_list (pattern, dirpath)
vpath = (char **) xmalloc (maxelem * sizeof (char *));
maxvpath = 0;
- elem = 0;
+ /* Skip over any initial colons and blanks. */
p = dirpath;
+ while (*p == ':' || isblank (*p))
+ ++p;
+
+ elem = 0;
while (*p != '\0')
{
char *v;
unsigned int len;
- /* Find the next entry. */
- while (*p != ':' && !isblank (*p))
- ++p;
- if (*p == '\0')
- break;
-
/* Find the end of this entry. */
v = p;
while (*p != '\0' && *p != ':' && !isblank (*p))
@@ -206,6 +199,10 @@ construct_vpath_list (pattern, dirpath)
else
/* The directory does not exist. Omit from the list. */
free (v);
+
+ /* Skip over colons and blanks between entries. */
+ while (*p == ':' || isblank (*p))
+ ++p;
}
if (elem > 0)