Revert "Don't generate automatic include guards"

This reverts commit 05e34102d4949a7992f836db13085a85dea7c82c.

Conflicts:
	source/compiler/sc2.c
This commit is contained in:
Zeex 2014-03-29 17:41:24 +07:00
parent a272a7e43e
commit ed8175dab5

View File

@ -231,6 +231,8 @@ static void check_empty(const unsigned char *lptr)
static void doinclude(int silent) static void doinclude(int silent)
{ {
char name[_MAX_PATH]; char name[_MAX_PATH];
char symname[sNAMEMAX];
char *ptr;
char c; char c;
int i, result; int i, result;
@ -260,9 +262,27 @@ static void doinclude(int silent)
if (c!='\0') if (c!='\0')
check_empty(lptr+1); /* verify that the rest of the line is whitespace */ check_empty(lptr+1); /* verify that the rest of the line is whitespace */
result=plungefile(name,(c!='>'),TRUE); /* create a symbol from the name of the include file; this allows the system
if (!result && !silent) * to test for multiple inclusions
error(100,name); /* cannot read from ... (fatal error) */ */
strcpy(symname,"_inc_");
if ((ptr=strrchr(name,DIRSEP_CHAR))!=NULL)
strlcat(symname,ptr+1,sizeof symname);
else
strlcat(symname,name,sizeof symname);
if (find_symbol(&glbtab,symname,fcurrent,-1,NULL)==NULL) {
/* constant is not present, so this file has not been included yet */
/* Include files between "..." or without quotes are read from the current
* directory, or from a list of "include directories". Include files
* between <...> are only read from the list of include directories.
*/
result=plungefile(name,(c!='>'),TRUE);
if (result)
add_constant(symname,1,sGLOBAL,0);
else if (!silent)
error(100,name); /* cannot read from ... (fatal error) */
} /* if */
} }
/* readline /* readline