From 0ffbd21f2efad83dd797d9120b430f3828976ad0 Mon Sep 17 00:00:00 2001 From: "zik.saleeba" Date: Tue, 27 Jul 2010 11:48:39 +0000 Subject: [PATCH] When you're using a scripting mode - "-s", "-m" or "-i" - it now automatically includes all the system headers for you. This fixes issue 101 git-svn-id: http://picoc.googlecode.com/svn/trunk@475 21eae674-98b7-11dd-bd71-f92a316d2d60 --- include.c | 10 +++++++++- picoc.c | 8 ++++++-- picoc.h | 1 + 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/include.c b/include.c index 59bda9f..4f80ce1 100644 --- a/include.c +++ b/include.c @@ -5,7 +5,7 @@ /* a list of libraries we can include */ struct IncludeLibrary { - const char *IncludeName; + char *IncludeName; void (*SetupFunction)(void); struct LibraryFunction *FuncList; const char *SetupCSource; @@ -57,6 +57,14 @@ void IncludeRegister(const char *IncludeName, void (*SetupFunction)(void), struc IncludeLibList = NewLib; } +/* include all of the system headers */ +void IncludeAllSystemHeaders() +{ + struct IncludeLibrary *ThisInclude = IncludeLibList; + + for (; ThisInclude != NULL; ThisInclude = ThisInclude->NextLib) + IncludeFile(ThisInclude->IncludeName); +} /* include one of a number of predefined libraries, or perhaps an actual file */ void IncludeFile(char *FileName) diff --git a/picoc.c b/picoc.c index adea9a9..dbfb72e 100644 --- a/picoc.c +++ b/picoc.c @@ -67,21 +67,25 @@ int main(int argc, char **argv) if (argc < 2) { printf("Format: picoc ... [- ...] : run a program (calls main() to start it)\n" - " picoc -m ... [- ...] : run a program without calling main()\n" + " picoc -s ... [- ...] : script mode - runs the program without calling main()\n" " picoc -i : interactive mode\n"); exit(1); } Initialise(); - if (strcmp(argv[ParamCount], "-m") == 0) + if (strcmp(argv[ParamCount], "-s") == 0 || strcmp(argv[ParamCount], "-m") == 0) { DontRunMain = TRUE; + IncludeAllSystemHeaders(); ParamCount++; } if (strcmp(argv[ParamCount], "-i") == 0) + { + IncludeAllSystemHeaders(); ParseInteractive(); + } else { if (PlatformSetExitPoint()) diff --git a/picoc.h b/picoc.h index ef43fd3..c8b24b8 100644 --- a/picoc.h +++ b/picoc.h @@ -437,6 +437,7 @@ void IncludeInit(); void IncludeCleanup(); void IncludeRegister(const char *IncludeName, void (*SetupFunction)(void), struct LibraryFunction *FuncList, const char *SetupCSource); void IncludeFile(char *Filename); +void IncludeAllSystemHeaders(); /* stdio.c */ extern const char StdioDefs[];