From b3b885c122cee8ed456207981ae72f5483e1e545 Mon Sep 17 00:00:00 2001 From: Spoike Date: Sat, 13 Jun 2009 11:57:52 +0000 Subject: [PATCH] Trying to clean up qclib a little. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3220 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/qclib/Makefile | 9 +-- engine/qclib/comprout.c | 6 +- engine/qclib/gui.h | 2 +- engine/qclib/initlib.c | 2 +- engine/qclib/pr_edict.c | 13 ---- engine/qclib/qcc.dsp | 19 ++++++ engine/qclib/qcc.h | 2 +- engine/qclib/qcc_cmdlib.c | 14 ++++ engine/qclib/qcc_pr_lex.c | 16 ----- engine/qclib/qccgui.c | 103 ++++++++++++++++++++++++++++- engine/qclib/qccguistuff.c | 1 + engine/qclib/qccmain.c | 130 ------------------------------------- engine/qclib/qcd_main.c | 5 +- 13 files changed, 147 insertions(+), 175 deletions(-) diff --git a/engine/qclib/Makefile b/engine/qclib/Makefile index 9166aab08..2f1e81b3b 100644 --- a/engine/qclib/Makefile +++ b/engine/qclib/Makefile @@ -3,6 +3,7 @@ QCC_OBJS=qccmain.o qcc_pr_comp.o qcc_pr_lex.o VM_OBJS=pr_exec.o pr_edict.o pr_multi.o initlib.o qcdecomp.o GTKGUI_OBJS=qcc_gtk.o qccguistuff.o WIN32GUI_OBJS=qccgui.o qccguistuff.o +TUI_OBJS=qcctui.o LIB_OBJS= CC=gcc -Wall @@ -31,10 +32,10 @@ nocyg: win: $(MAKE) USEGUI_CFLAGS="-DUSEGUI -DQCCONLY" R_win -R_qcc: $(QCC_OBJS) $(COMMON_OBJS) - $(CC) $(BASE_CFLAGS) -o fteqcc.bin -O3 -s $(QCC_OBJS) $(COMMON_OBJS) +R_qcc: $(QCC_OBJS) $(COMMON_OBJS) $(TUI_OBJS) + $(CC) $(BASE_CFLAGS) -o fteqcc.bin -O3 -s $(QCC_OBJS) $(TUI_OBJS) $(COMMON_OBJS) qcc: - $(MAKE) USEGUI_CFLAGS="-DQCCONLY" R_qcc + $(MAKE) USEGUI_CFLAGS="" R_qcc qccmain.o: qccmain.c qcc.h $(DO_CC) @@ -82,4 +83,4 @@ testapp.bin: qcvm.so test.o $(CC) $(BASE_CFLAGS) -o testapp.bin -O3 -s qcvm.so test.o regressiontest: testapp.bin - ./testapp.bin regression.dat -srcfile regression.src \ No newline at end of file + ./testapp.bin regression.dat -srcfile regression.src diff --git a/engine/qclib/comprout.c b/engine/qclib/comprout.c index 614f91188..cb2a3c87f 100644 --- a/engine/qclib/comprout.c +++ b/engine/qclib/comprout.c @@ -41,11 +41,11 @@ void qccClearHunk(void) qcchunk=NULL; } } +int qccpersisthunk; void PostCompile(void) { -#ifndef QCCONLY //QCCONLY has a frontend that browses defs. - qccClearHunk(); -#endif + if (!qccpersisthunk) + qccClearHunk(); if (asmfile) { diff --git a/engine/qclib/gui.h b/engine/qclib/gui.h index 381ed3d3e..66ad9c56c 100644 --- a/engine/qclib/gui.h +++ b/engine/qclib/gui.h @@ -4,7 +4,7 @@ void EditFile(char *name, int line); void GUI_SetDefaultOpts(void); int GUI_BuildParms(char *args, char **argv); -char *QCC_ReadFile (char *fname, void *buffer, int len); +unsigned char *QCC_ReadFile (char *fname, void *buffer, int len); int QCC_FileSize (char *fname); pbool QCC_WriteFile (char *name, void *data, int len); void GUI_DialogPrint(char *title, char *text); diff --git a/engine/qclib/initlib.c b/engine/qclib/initlib.c index 7ea34f8a1..f65a1c2be 100644 --- a/engine/qclib/initlib.c +++ b/engine/qclib/initlib.c @@ -587,7 +587,7 @@ progfuncs_t deffuncs = { #endif filefromprogs, - filefromnewprogs, + NULL,//filefromnewprogs, SaveEnts, LoadEnts, diff --git a/engine/qclib/pr_edict.c b/engine/qclib/pr_edict.c index b7d00f60a..6ee3963e9 100644 --- a/engine/qclib/pr_edict.c +++ b/engine/qclib/pr_edict.c @@ -25,19 +25,6 @@ vec3_t vec3_origin; //int pr_max_edict_size; //unsigned short pr_crc; -const unsigned int type_size[12] = {1, //void - sizeof(string_t)/4, //string - 1, //float - 3, //vector - 1, //entity - 1, //field - sizeof(func_t)/4,//function - sizeof(void *)/4,//pointer - 1, //integer - 1, //fixme: how big should a variant be? - 0, //ev_struct. variable sized. - 0 //ev_union. variable sized. - }; fdef_t *ED_FieldAtOfs (progfuncs_t *progfuncs, unsigned int ofs); pbool ED_ParseEpair (progfuncs_t *progfuncs, void *base, ddefXX_t *key, char *s, int bits); diff --git a/engine/qclib/qcc.dsp b/engine/qclib/qcc.dsp index 0c4be3df5..59b58afc5 100644 --- a/engine/qclib/qcc.dsp +++ b/engine/qclib/qcc.dsp @@ -210,6 +210,25 @@ SOURCE=.\QccMain.c # End Source File # Begin Source File +SOURCE=.\qcctui.c + +!IF "$(CFG)" == "qcc - Win32 Release" + +!ELSEIF "$(CFG)" == "qcc - Win32 Debug" + +!ELSEIF "$(CFG)" == "qcc - Win32 GUIDebug" + +# PROP Exclude_From_Build 1 + +!ELSEIF "$(CFG)" == "qcc - Win32 GUIRelease" + +# PROP Exclude_From_Build 1 + +!ENDIF + +# End Source File +# Begin Source File + SOURCE=.\qcd_main.c # End Source File # End Group diff --git a/engine/qclib/qcc.h b/engine/qclib/qcc.h index b76d7044e..6c891e1c3 100644 --- a/engine/qclib/qcc.h +++ b/engine/qclib/qcc.h @@ -24,7 +24,7 @@ #define progfuncs qccprogfuncs extern progfuncs_t *qccprogfuncs; -#if _WIN32 && !defined(MINGW) +#if defined(_WIN32) && !defined(MINGW) #define inline _inline #endif diff --git a/engine/qclib/qcc_cmdlib.c b/engine/qclib/qcc_cmdlib.c index 186196394..7766b94c4 100644 --- a/engine/qclib/qcc_cmdlib.c +++ b/engine/qclib/qcc_cmdlib.c @@ -17,6 +17,20 @@ char **myargv; char qcc_token[1024]; int qcc_eof; +const unsigned int type_size[12] = {1, //void + sizeof(string_t)/4, //string + 1, //float + 3, //vector + 1, //entity + 1, //field + sizeof(func_t)/4,//function + sizeof(void *)/4,//pointer + 1, //integer + 1, //fixme: how big should a variant be? + 0, //ev_struct. variable sized. + 0 //ev_union. variable sized. + }; + /* ============================================================================ diff --git a/engine/qclib/qcc_pr_lex.c b/engine/qclib/qcc_pr_lex.c index ebed86b1e..43c138766 100644 --- a/engine/qclib/qcc_pr_lex.c +++ b/engine/qclib/qcc_pr_lex.c @@ -67,22 +67,6 @@ QCC_type_t *type_variant;// = {ev_integer/*, &def_integer*/}; QCC_type_t *type_floatfield;// = {ev_field/*, &def_field*/, NULL, &type_float}; -#ifdef QCCONLY -const unsigned int type_size[12] = {1, //void - sizeof(string_t)/4, //string - 1, //float - 3, //vector - 1, //entity - 1, //field - sizeof(func_t)/4,//function - sizeof(void *)/4,//pointer - 1, //integer - 1, //fixme: how big should a variant be? - 0, //ev_struct. variable sized. - 0 //ev_union. variable sized. - }; -#endif - /*QCC_def_t def_void = {type_void, "temp"}; QCC_def_t def_string = {type_string, "temp"}; QCC_def_t def_float = {type_float, "temp"}; diff --git a/engine/qclib/qccgui.c b/engine/qclib/qccgui.c index 8ba1f0190..e6fb7bd02 100644 --- a/engine/qclib/qccgui.c +++ b/engine/qclib/qccgui.c @@ -8,6 +8,106 @@ #include "qcc.h" #include "gui.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; +} + + + + + + + + + + + #define Edit_Redo(hwndCtl) ((BOOL)(DWORD)SNDMSG((hwndCtl), EM_REDO, 0L, 0L)) @@ -23,9 +123,6 @@ int GUIprintf(const char *msg, ...); void GUIPrint(HWND wnd, char *msg); -char *QCC_ReadFile (char *fname, void *buffer, int len); -int QCC_FileSize (char *fname); -pbool QCC_WriteFile (char *name, void *data, int len); char finddef[256]; diff --git a/engine/qclib/qccguistuff.c b/engine/qclib/qccguistuff.c index c9d03b55b..b9555312b 100644 --- a/engine/qclib/qccguistuff.c +++ b/engine/qclib/qccguistuff.c @@ -13,6 +13,7 @@ char parameters[16384]; char progssrcname[256]; char progssrcdir[256]; +int qccpersisthunk = 1; void GoToDefinition(char *name) { QCC_def_t *def; diff --git a/engine/qclib/qccmain.c b/engine/qclib/qccmain.c index 49aa54874..5394e9234 100644 --- a/engine/qclib/qccmain.c +++ b/engine/qclib/qccmain.c @@ -3431,134 +3431,4 @@ void new_QCC_ContinueCompile(void) }*/ - - - - - - - - - - -#ifdef QCCONLY -progfuncs_t *progfuncs; - -/* -============== -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); -} - -#ifndef USEGUI -#include -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; -} -#endif//usegui -#endif//qcconly - -#endif//minimal - diff --git a/engine/qclib/qcd_main.c b/engine/qclib/qcd_main.c index 2493c423a..f98e5336a 100644 --- a/engine/qclib/qcd_main.c +++ b/engine/qclib/qcd_main.c @@ -186,7 +186,7 @@ char *filefromprogs(progfuncs_t *progfuncs, progsnum_t prnum, char *fname, int * return NULL; } -#ifndef QCCONLY +/* char *filefromnewprogs(progfuncs_t *progfuncs, char *prname, char *fname, int *size, char *buffer) { int num; @@ -225,5 +225,4 @@ char *filefromnewprogs(progfuncs_t *progfuncs, char *prname, char *fname, int *s *size = 0; return NULL; } - -#endif +*/