aboutsummaryrefslogtreecommitdiff
path: root/gcc/cccp.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-02-13 06:50:49 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1995-02-13 06:50:49 -0500
commit40ddf499b7eecc106fc17552e09b807dacb14ccd (patch)
tree13dd90483c041eafb0bc3e30024031265ff332f8 /gcc/cccp.c
parent128373acacc776a33747e3edf41297a701dc0e98 (diff)
downloadgcc-40ddf499b7eecc106fc17552e09b807dacb14ccd.zip
gcc-40ddf499b7eecc106fc17552e09b807dacb14ccd.tar.gz
gcc-40ddf499b7eecc106fc17552e09b807dacb14ccd.tar.bz2
(do_include, is_system_include, open_include_file): Handle
DIR_SEPARATOR. From-SVN: r8917
Diffstat (limited to 'gcc/cccp.c')
-rw-r--r--gcc/cccp.c38
1 files changed, 30 insertions, 8 deletions
diff --git a/gcc/cccp.c b/gcc/cccp.c
index 4171f4b..3fcde09 100644
--- a/gcc/cccp.c
+++ b/gcc/cccp.c
@@ -4140,6 +4140,13 @@ get_filename:
search_start = dsp;
#ifndef VMS
ep = rindex (nam, '/');
+#ifdef DIR_SEPARATOR
+ if (ep == NULL) ep = rindex (nam, DIR_SEPARATOR);
+ else {
+ char *tmp = rindex (nam, DIR_SEPARATOR);
+ if (tmp != NULL && tmp > ep) ep = tmp;
+ }
+#endif
#else /* VMS */
ep = rindex (nam, ']');
if (ep == NULL) ep = rindex (nam, '>');
@@ -4266,7 +4273,11 @@ get_filename:
/* If specified file name is absolute, just open it. */
- if (*fbeg == '/') {
+ if (*fbeg == '/'
+#ifdef DIR_SEPARATOR
+ || *fbeg == DIR_SEPARATOR
+#endif
+ ) {
strncpy (fname, fbeg, flen);
fname[flen] = 0;
if (redundant_include_p (fname))
@@ -4520,13 +4531,17 @@ is_system_include (filename)
register char *sys_dir = searchptr->fname;
register unsigned length = strlen (sys_dir);
- if (! strncmp (sys_dir, filename, length) && filename[length] == '/')
- {
- if (searchptr->c_system_include_path)
- return 2;
- else
- return 1;
- }
+ if (! strncmp (sys_dir, filename, length)
+ && (filename[length] == '/'
+#ifdef DIR_SEPARATOR
+ || filename[length] == DIR_SEPARATOR
+#endif
+ )) {
+ if (searchptr->c_system_include_path)
+ return 2;
+ else
+ return 1;
+ }
}
return 0;
}
@@ -4708,6 +4723,13 @@ open_include_file (filename, searchptr)
in /usr/include/header.gcc and look up types.h in
/usr/include/sys/header.gcc. */
p = rindex (filename, '/');
+#ifdef DIR_SEPARATOR
+ if (! p) p = rindex (filename, DIR_SEPARATOR);
+ else {
+ char *tmp = rindex (filename, DIR_SEPARATOR);
+ if (tmp != NULL && tmp > p) p = tmp;
+ }
+#endif
if (! p)
p = filename;
if (searchptr