]> de.git.xonotic.org Git - voretournament/voretournament.git/blob - misc/mediasource/fteqcc-src/qcctui.c
Move all other sources in a separate subfolder
[voretournament/voretournament.git] / misc / mediasource / fteqcc-src / qcctui.c
1 #include "qcc.h"\r
2 \r
3 #include <stdarg.h>\r
4 #include <stdio.h>\r
5 \r
6 /*\r
7 ==============\r
8 LoadFile\r
9 ==============\r
10 */\r
11 unsigned char *QCC_ReadFile (char *fname, void *buffer, int len)\r
12 {\r
13         long    length;\r
14         FILE *f;\r
15         f = fopen(fname, "rb");\r
16         if (!f)\r
17                 return NULL;\r
18         length = fread(buffer, 1, len, f);\r
19         fclose(f);\r
20 \r
21         if (length != len)\r
22                 return NULL;\r
23 \r
24         return buffer;\r
25 }\r
26 int QCC_FileSize (char *fname)\r
27 {\r
28         long    length;\r
29         FILE *f;\r
30         f = fopen(fname, "rb");\r
31         if (!f)\r
32                 return -1;\r
33         fseek(f, 0, SEEK_END);\r
34         length = ftell(f);\r
35         fclose(f);\r
36 \r
37         return length;\r
38 }\r
39 \r
40 pbool QCC_WriteFile (char *name, void *data, int len)\r
41 {\r
42         long    length;\r
43         FILE *f;\r
44         f = fopen(name, "wb");\r
45         if (!f)\r
46                 return false;\r
47         length = fwrite(data, 1, len, f);\r
48         fclose(f);\r
49 \r
50         if (length != len)\r
51                 return false;\r
52 \r
53         return true;\r
54 }\r
55 \r
56 #undef printf\r
57 #undef Sys_Error\r
58 \r
59 void Sys_Error(const char *text, ...)\r
60 {\r
61         va_list argptr;\r
62         static char msg[2048];  \r
63 \r
64         va_start (argptr,text);\r
65         QC_vsnprintf (msg,sizeof(msg)-1, text,argptr);\r
66         va_end (argptr);\r
67 \r
68         QCC_Error(ERR_INTERNAL, "%s", msg);\r
69 }\r
70 \r
71 \r
72 FILE *logfile;\r
73 int logprintf(const char *format, ...)\r
74 {\r
75         va_list         argptr;\r
76         static char             string[1024];\r
77 \r
78         va_start (argptr, format);\r
79 #ifdef _WIN32\r
80         _vsnprintf (string,sizeof(string)-1, format,argptr);\r
81 #else\r
82         vsnprintf (string,sizeof(string), format,argptr);\r
83 #endif\r
84         va_end (argptr);\r
85 \r
86         printf("%s", string);\r
87         if (logfile)\r
88                 fputs(string, logfile);\r
89 \r
90         return 0;\r
91 }\r
92 \r
93 int main (int argc, char **argv)\r
94 {\r
95         int sucess;\r
96         progexterns_t ext;\r
97         progfuncs_t funcs;\r
98         progfuncs = &funcs;\r
99         memset(&funcs, 0, sizeof(funcs));\r
100         funcs.parms = &ext;\r
101         memset(&ext, 0, sizeof(progexterns_t));\r
102         funcs.parms->ReadFile = QCC_ReadFile;\r
103         funcs.parms->FileSize = QCC_FileSize;\r
104         funcs.parms->WriteFile = QCC_WriteFile;\r
105         funcs.parms->printf = logprintf;\r
106         funcs.parms->Sys_Error = Sys_Error;\r
107         logfile = fopen("fteqcc.log", "wt");\r
108         sucess = CompileParams(&funcs, true, argc, argv);\r
109         qccClearHunk();\r
110         if (logfile)\r
111                 fclose(logfile);\r
112 \r
113 #ifdef _WIN32\r
114 //      fgetc(stdin);   //wait for keypress\r
115 #endif\r
116         return !sucess;\r
117 }\r