From c49afcd7007b6361da51c3b4d952e44ec43bd83f Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Fri, 4 Oct 1996 04:26:09 +0000 Subject: (openp): Omit /: from start of file name. --- src/lread.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'src/lread.c') diff --git a/src/lread.c b/src/lread.c index 8dab8ee74c4..b74f1554883 100644 --- a/src/lread.c +++ b/src/lread.c @@ -635,9 +635,22 @@ openp (path, str, suffix, storeptr, exec_only) char *esuffix = (char *) index (nsuffix, ':'); int lsuffix = esuffix ? esuffix - nsuffix : strlen (nsuffix); - /* Concatenate path element/specified name with the suffix. */ - strncpy (fn, XSTRING (filename)->data, XSTRING (filename)->size); - fn[XSTRING (filename)->size] = 0; + /* Concatenate path element/specified name with the suffix. + If the directory starts with /:, remove that. */ + if (XSTRING (filename)->size > 2 + && XSTRING (filename)->data[0] == '/' + && XSTRING (filename)->data[1] == ':') + { + strncpy (fn, XSTRING (filename)->data + 2, + XSTRING (filename)->size - 2); + fn[XSTRING (filename)->size - 2] = 0; + } + else + { + strncpy (fn, XSTRING (filename)->data, XSTRING (filename)->size); + fn[XSTRING (filename)->size] = 0; + } + if (lsuffix != 0) /* Bug happens on CCI if lsuffix is 0. */ strncat (fn, nsuffix, lsuffix); -- cgit v1.2.1