+++ /dev/null
-#include "qcc.h"\r
-\r
-#include <stdarg.h>\r
-#include <stdio.h>\r
-\r
-/*\r
-==============\r
-LoadFile\r
-==============\r
-*/\r
-unsigned char *QCC_ReadFile (char *fname, void *buffer, int len)\r
-{\r
- long length;\r
- FILE *f;\r
- f = fopen(fname, "rb");\r
- if (!f)\r
- return NULL;\r
- length = fread(buffer, 1, len, f);\r
- fclose(f);\r
-\r
- if (length != len)\r
- return NULL;\r
-\r
- return buffer;\r
-}\r
-int QCC_FileSize (char *fname)\r
-{\r
- long length;\r
- FILE *f;\r
- f = fopen(fname, "rb");\r
- if (!f)\r
- return -1;\r
- fseek(f, 0, SEEK_END);\r
- length = ftell(f);\r
- fclose(f);\r
-\r
- return length;\r
-}\r
-\r
-pbool QCC_WriteFile (char *name, void *data, int len)\r
-{\r
- long length;\r
- FILE *f;\r
- f = fopen(name, "wb");\r
- if (!f)\r
- return false;\r
- length = fwrite(data, 1, len, f);\r
- fclose(f);\r
-\r
- if (length != len)\r
- return false;\r
-\r
- return true;\r
-}\r
-\r
-#undef printf\r
-#undef Sys_Error\r
-\r
-void Sys_Error(const char *text, ...)\r
-{\r
- va_list argptr;\r
- static char msg[2048]; \r
-\r
- va_start (argptr,text);\r
- QC_vsnprintf (msg,sizeof(msg)-1, text,argptr);\r
- va_end (argptr);\r
-\r
- QCC_Error(ERR_INTERNAL, "%s", msg);\r
-}\r
-\r
-\r
-FILE *logfile;\r
-int logprintf(const char *format, ...)\r
-{\r
- va_list argptr;\r
- static char string[1024];\r
-\r
- va_start (argptr, format);\r
-#ifdef _WIN32\r
- _vsnprintf (string,sizeof(string)-1, format,argptr);\r
-#else\r
- vsnprintf (string,sizeof(string), format,argptr);\r
-#endif\r
- va_end (argptr);\r
-\r
- printf("%s", string);\r
- if (logfile)\r
- fputs(string, logfile);\r
-\r
- return 0;\r
-}\r
-\r
-int main (int argc, char **argv)\r
-{\r
- int sucess;\r
- progexterns_t ext;\r
- progfuncs_t funcs;\r
- progfuncs = &funcs;\r
- memset(&funcs, 0, sizeof(funcs));\r
- funcs.parms = &ext;\r
- memset(&ext, 0, sizeof(progexterns_t));\r
- funcs.parms->ReadFile = QCC_ReadFile;\r
- funcs.parms->FileSize = QCC_FileSize;\r
- funcs.parms->WriteFile = QCC_WriteFile;\r
- funcs.parms->printf = logprintf;\r
- funcs.parms->Sys_Error = Sys_Error;\r
- logfile = fopen("fteqcc.log", "wt");\r
- sucess = CompileParams(&funcs, true, argc, argv);\r
- qccClearHunk();\r
- if (logfile)\r
- fclose(logfile);\r
-\r
-#ifdef _WIN32\r
-// fgetc(stdin); //wait for keypress\r
-#endif\r
- return !sucess;\r
-}\r