From 81acf8675a81b4eec50c7e8177229429b37ce2ba Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 12 Oct 1992 17:35:43 +0000 Subject: Formerly read.c.~39~ --- read.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/read.c b/read.c index d6cffbf..544d2c5 100644 --- a/read.c +++ b/read.c @@ -1385,11 +1385,24 @@ parse_file_seq (stringp, stopchar, size, strip) p--; if (strip) - while (q[0] == '.' && q[1] == '/' && q[2] != '\0' && !isblank (q[2])) - q += 2; + { + /* Skip leading `./'s. */ + while (p - q > 2 && q[0] == '.' && q[1] == '/') + { + q += 2; /* Skip "./". */ + while (q < p && *q == '/') + /* Skip following slashes: ".//foo" is "foo", not "/foo". */ + ++q; + } + } /* Extract the filename just found, and skip it. */ - name = savestring (q, p - q); + + if (q == p) + /* ".///" was stripped to "". */ + name = savestring ("./", 2); + else + name = savestring (q, p - q); /* Add it to the front of the chain. */ new1 = (struct nameseq *) xmalloc (size); -- cgit v1.2.3