\r
// HEADER FILES ------------------------------------------------------------\r
\r
+#if defined(_WIN32) && !defined(_MSC_VER)\r
+#define WIN32_LEAN_AND_MEAN\r
+#include <windows.h>\r
+#endif\r
+\r
#ifdef __NeXT__\r
#include <libc.h>\r
#else\r
#ifndef unix\r
#include <io.h>\r
#endif\r
+#include <limits.h>\r
#include <fcntl.h>\r
#include <stdlib.h>\r
#endif\r
\r
//==========================================================================\r
//\r
-// AddIncludePath\r
+// TK_AddIncludePath\r
// This adds an include path with less priority than the ones already added\r
// \r
// Pascal 12/11/08\r
}\r
}\r
\r
+//==========================================================================\r
+//\r
+// TK_AddProgramIncludePath\r
+// Adds an include path for the directory of the executable.\r
+//\r
+//==========================================================================\r
+\r
+void TK_AddProgramIncludePath(char *progname)\r
+{\r
+ if(NumIncludePaths < MAX_INCLUDE_PATHS)\r
+ {\r
+#ifdef _WIN32\r
+#ifdef _MSC_VER\r
+ if (_get_pgmptr(&progname) != 0)\r
+ {\r
+ return;\r
+ }\r
+#else\r
+ char progbuff[1024];\r
+ GetModuleFileName(0, progbuff, sizeof(progbuff));\r
+ progbuff[sizeof(progbuff)-1] = '\0';\r
+ progname = progbuff;\r
+#endif\r
+#else\r
+ char progbuff[PATH_MAX];\r
+ if (realpath(progname, progbuff) != NULL)\r
+ {\r
+ progname = progbuff;\r
+ }\r
+#endif\r
+ strcpy(IncludePaths[NumIncludePaths], progname);\r
+ if(MS_StripFilename(IncludePaths[NumIncludePaths]))\r
+ {\r
+ NumIncludePaths++;\r
+ }\r
+ }\r
+}\r
\r
//==========================================================================\r
//\r
void TK_SkipPast(tokenType_t token);\r
void TK_SkipTo(tokenType_t token);\r
void TK_AddIncludePath(char *sourceName);\r
+void TK_AddProgramIncludePath(char *argv0);\r
\r
// PUBLIC DATA DECLARATIONS ------------------------------------------------\r
\r