diff --git a/source/compiler/sc.h b/source/compiler/sc.h index d5576510..cfeebd2b 100644 --- a/source/compiler/sc.h +++ b/source/compiler/sc.h @@ -727,7 +727,7 @@ SC_FUNC cell do_static_check(int use_warning); SC_FUNC void pushstk(stkitem val); SC_FUNC stkitem popstk(void); SC_FUNC void clearstk(void); -SC_FUNC int plungequalifiedfile(char *name); /* explicit path included */ +SC_FUNC int plungequalifiedfile(char *name,char new_extensions); /* explicit path included */ SC_FUNC int plungefile(char *name,int try_currentpath,int try_includepaths); /* search through "include" paths */ SC_FUNC int number(cell *val,const unsigned char *curptr); SC_FUNC void preprocess(void); diff --git a/source/compiler/sc1.c b/source/compiler/sc1.c index cedcbcbb..ef385d59 100644 --- a/source/compiler/sc1.c +++ b/source/compiler/sc1.c @@ -664,7 +664,7 @@ int pc_compile(int argc, char *argv[]) if (strcmp(incfname,sDEF_PREFIX)==0) { plungefile(incfname,FALSE,TRUE); /* parse "default.inc" */ } else { - if (!plungequalifiedfile(incfname)) /* parse "prefix" include file */ + if (!plungequalifiedfile(incfname,1)) /* parse "prefix" include file */ error(100,incfname); /* cannot read from ... (fatal error) */ } /* if */ } /* if */ @@ -755,7 +755,7 @@ int pc_compile(int argc, char *argv[]) if (strcmp(incfname,sDEF_PREFIX)==0) plungefile(incfname,FALSE,TRUE); /* parse "default.inc" (again) */ else - plungequalifiedfile(incfname); /* parse implicit include file (again) */ + plungequalifiedfile(incfname,1); /* parse implicit include file (again) */ } /* if */ warnstack_init(); preprocess(); /* fetch first line */ diff --git a/source/compiler/sc2.c b/source/compiler/sc2.c index 0895dfac..6ba14039 100644 --- a/source/compiler/sc2.c +++ b/source/compiler/sc2.c @@ -132,16 +132,17 @@ SC_FUNC void clearstk(void) assert(stktop==0); } -SC_FUNC int plungequalifiedfile(char *name) +SC_FUNC int plungequalifiedfile(char *name,char new_extensions) { -static char extensions[][6] = { "", ".inc", ".p", ".pawn" }; + unsigned int skipped_extensions=new_extensions?0:1; + static char extensions[][6] = { "", ".inc", ".p", ".pawn", ".pwn"}; int found; struct stat st; FILE *fp; char *path; char *real_path; char *ext; - int ext_idx; + unsigned int ext_idx; fp=NULL; ext_idx=0; @@ -178,7 +179,7 @@ static char extensions[][6] = { "", ".inc", ".p", ".pawn" }; found=FALSE; } /* if */ ext_idx++; - } while (!found && ext_idx