mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-10 14:42:13 +00:00
Looks like someone forgot a file.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3222 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
1c985c65d2
commit
82f3ae2102
1 changed files with 117 additions and 0 deletions
117
engine/qclib/qcctui.c
Normal file
117
engine/qclib/qcctui.c
Normal file
|
@ -0,0 +1,117 @@
|
|||
#include "qcc.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
||||
/*
|
||||
==============
|
||||
LoadFile
|
||||
==============
|
||||
*/
|
||||
unsigned char *QCC_ReadFile (char *fname, void *buffer, int len)
|
||||
{
|
||||
long length;
|
||||
FILE *f;
|
||||
f = fopen(fname, "rb");
|
||||
if (!f)
|
||||
return NULL;
|
||||
length = fread(buffer, 1, len, f);
|
||||
fclose(f);
|
||||
|
||||
if (length != len)
|
||||
return NULL;
|
||||
|
||||
return buffer;
|
||||
}
|
||||
int QCC_FileSize (char *fname)
|
||||
{
|
||||
long length;
|
||||
FILE *f;
|
||||
f = fopen(fname, "rb");
|
||||
if (!f)
|
||||
return -1;
|
||||
fseek(f, 0, SEEK_END);
|
||||
length = ftell(f);
|
||||
fclose(f);
|
||||
|
||||
return length;
|
||||
}
|
||||
|
||||
pbool QCC_WriteFile (char *name, void *data, int len)
|
||||
{
|
||||
long length;
|
||||
FILE *f;
|
||||
f = fopen(name, "wb");
|
||||
if (!f)
|
||||
return false;
|
||||
length = fwrite(data, 1, len, f);
|
||||
fclose(f);
|
||||
|
||||
if (length != len)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#undef printf
|
||||
#undef Sys_Error
|
||||
|
||||
void Sys_Error(const char *text, ...)
|
||||
{
|
||||
va_list argptr;
|
||||
static char msg[2048];
|
||||
|
||||
va_start (argptr,text);
|
||||
QC_vsnprintf (msg,sizeof(msg)-1, text,argptr);
|
||||
va_end (argptr);
|
||||
|
||||
QCC_Error(ERR_INTERNAL, "%s", msg);
|
||||
}
|
||||
|
||||
|
||||
FILE *logfile;
|
||||
int logprintf(const char *format, ...)
|
||||
{
|
||||
va_list argptr;
|
||||
static char string[1024];
|
||||
|
||||
va_start (argptr, format);
|
||||
#ifdef _WIN32
|
||||
_vsnprintf (string,sizeof(string)-1, format,argptr);
|
||||
#else
|
||||
vsnprintf (string,sizeof(string), format,argptr);
|
||||
#endif
|
||||
va_end (argptr);
|
||||
|
||||
printf("%s", string);
|
||||
if (logfile)
|
||||
fputs(string, logfile);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main (int argc, char **argv)
|
||||
{
|
||||
int sucess;
|
||||
progexterns_t ext;
|
||||
progfuncs_t funcs;
|
||||
progfuncs = &funcs;
|
||||
memset(&funcs, 0, sizeof(funcs));
|
||||
funcs.parms = &ext;
|
||||
memset(&ext, 0, sizeof(progexterns_t));
|
||||
funcs.parms->ReadFile = QCC_ReadFile;
|
||||
funcs.parms->FileSize = QCC_FileSize;
|
||||
funcs.parms->WriteFile = QCC_WriteFile;
|
||||
funcs.parms->printf = logprintf;
|
||||
funcs.parms->Sys_Error = Sys_Error;
|
||||
logfile = fopen("fteqcc.log", "wt");
|
||||
sucess = CompileParams(&funcs, true, argc, argv);
|
||||
qccClearHunk();
|
||||
if (logfile)
|
||||
fclose(logfile);
|
||||
|
||||
#ifdef _WIN32
|
||||
// fgetc(stdin); //wait for keypress
|
||||
#endif
|
||||
return !sucess;
|
||||
}
|
Loading…
Reference in a new issue