*** empty log message ***

From-SVN: r574
This commit is contained in:
Richard Stallman 1992-03-23 03:45:33 +00:00
parent 36d747f619
commit 3ed8294e32
1 changed files with 24 additions and 14 deletions

View File

@ -201,6 +201,7 @@ static void pfatal_with_name ();
static void perror_with_name ();
static void print_containing_files ();
static int lookup_import ();
static int lookup_include ();
static int check_preconditions ();
static void pcfinclude ();
static void pcstring_used ();
@ -3730,25 +3731,13 @@ get_filename:
fname = (char *) xmalloc (max_include_len + flen + 2);
/* + 2 above for slash and terminating null. */
/* See if we already included this file and we can tell in advance
(from a #ifndef around its contents last time)
that there is no need to include it again. */
{
struct file_name_list *l = all_include_files;
strncpy (fname, fbeg, flen);
fname[flen] = 0;
for (; l; l = l->next)
if (! strcmp (fname, l->fname)
&& l->control_macro
&& lookup (l->control_macro, -1, -1))
return 0;
}
/* If specified file name is absolute, just open it. */
if (*fbeg == '/') {
strncpy (fname, fbeg, flen);
fname[flen] = 0;
if (lookup_include (fname))
return 0;
if (importing)
f = lookup_import (fname);
else
@ -3791,6 +3780,10 @@ get_filename:
f = open (fname, O_RDONLY, 0666);
if (f == -2)
return 0; /* Already included this file */
if (lookup_include (fname)) {
close (f);
return 0;
}
if (f >= 0)
break;
}
@ -3921,6 +3914,23 @@ get_filename:
return 0;
}
/* Return nonzero if there is no need to include file NAME
because it has already been included and it contains a conditional
to make a repeated include do nothing. */
static int
lookup_include (name)
char *name;
{
struct file_name_list *l = all_include_files;
for (; l; l = l->next)
if (! strcmp (name, l->fname)
&& l->control_macro
&& lookup (l->control_macro, -1, -1))
return 1;
return 0;
}
/* Process the contents of include file FNAME, already open on descriptor F,
with output to OP.
SYSTEM_HEADER_P is 1 if this file was specified using <...>.