From: Dale Weiler Date: Fri, 11 Oct 2013 07:21:44 +0000 (-0400) Subject: More cleanup X-Git-Tag: 0.3.5~35^2~2^2~10 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=5138a25420ce56408486f14778dba17f252411c7;p=xonotic%2Fgmqcc.git More cleanup --- diff --git a/ansi.c b/ansi.c index d470e97..26604fe 100644 --- a/ansi.c +++ b/ansi.c @@ -22,6 +22,7 @@ */ #include #include +#include #include "platform.h" @@ -138,3 +139,7 @@ int platform_closedir(DIR *dir) { struct dirent *platform_readdir(DIR *dir) { return readdir(dir); } + +int platform_isatty(int fd) { + return isatty(fd); +} diff --git a/conout.c b/conout.c index f89d68c..bc55b04 100644 --- a/conout.c +++ b/conout.c @@ -20,22 +20,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#include "gmqcc.h" +#include -/* - * isatty/STDERR_FILENO/STDOUT_FILNO - * + some other things likewise. - */ -#ifndef _WIN32 -# include -#else -# include - /* - * Windows and it's posix underscore bullshit. We simply fix this - * with yay, another macro :P - */ -# define isatty _isatty -#endif +#include "gmqcc.h" +#include "platform.h" #define GMQCC_IS_STDOUT(X) ((FILE*)((void*)X) == stdout) #define GMQCC_IS_STDERR(X) ((FILE*)((void*)X) == stderr) @@ -198,9 +186,9 @@ static con_t console; */ static void con_enablecolor(void) { if (console.handle_err == stderr || console.handle_err == stdout) - console.color_err = !!(isatty(STDERR_FILENO)); + console.color_err = !!(platform_isatty(STDERR_FILENO)); if (console.handle_out == stderr || console.handle_out == stdout) - console.color_out = !!(isatty(STDOUT_FILENO)); + console.color_out = !!(platform_isatty(STDOUT_FILENO)); } /* diff --git a/gmqcc.h b/gmqcc.h index 373232f..43e2aa0 100644 --- a/gmqcc.h +++ b/gmqcc.h @@ -289,9 +289,7 @@ GMQCC_IND_STRING(GMQCC_VERSION_PATCH) \ # include #endif /*! _WIN32 && !defined(__MINGW32__) */ -/*===================================================================*/ -/*=========================== stat.c ================================*/ -/*===================================================================*/ +/* stat.c */ void stat_info (void); char *stat_mem_strdup (const char *, size_t, const char *, bool); void *stat_mem_reallocate(void *, size_t, size_t, const char *); @@ -307,9 +305,7 @@ void *stat_mem_allocate (size_t, size_t, const char *); #define util_strdup(SRC) stat_mem_strdup((char*)(SRC), __LINE__, __FILE__, false) #define util_strdupe(SRC) stat_mem_strdup((char*)(SRC), __LINE__, __FILE__, true) -/*===================================================================*/ -/*=========================== util.c ================================*/ -/*===================================================================*/ +/* util.c */ /* * Microsoft implements against the spec versions of ctype.h. Which @@ -329,10 +325,9 @@ void *stat_mem_allocate (size_t, size_t, const char *); #define util_isprint(a) (((unsigned)(a)-0x20) < 0x5F) #define util_isspace(a) (((a) >= 9 && (a) <= 13) || (a) == ' ') -bool util_filexists (const char *); bool util_strupper (const char *); bool util_strdigit (const char *); -void util_endianswap (void *, size_t, unsigned int); +void util_endianswap (void *, size_t, unsigned int); size_t util_strtocmd (const char *, char *, size_t); size_t util_strtononcmd (const char *, char *, size_t); @@ -381,13 +376,6 @@ void _util_vec_grow(void **a, size_t i, size_t s); #define vec_append(A,N,S) ((void)(memcpy(vec_add((A), (N)), (S), (N) * sizeof(*(S))))) #define vec_remove(A,I,N) ((void)(memmove((A)+(I),(A)+((I)+(N)),sizeof(*(A))*(vec_meta(A)->used-(I)-(N))),vec_meta(A)->used-=(N))) -typedef struct correct_trie_s { - void *value; - struct correct_trie_s *entries; -} correct_trie_t; - -correct_trie_t* correct_trie_new(void); - typedef struct hash_table_s { size_t size; struct hash_node_t **table; @@ -435,10 +423,8 @@ void util_htrm (hash_table_t *ht, const char *key, void (*cb)(void*)); void *util_htget (hash_table_t *ht, const char *key); void *util_htgeth(hash_table_t *ht, const char *key, size_t hash); -/*===================================================================*/ -/*============================ file.c ===============================*/ -/*===================================================================*/ -/* file handling */ + +/* fs.c */ void fs_file_close (FILE *); int fs_file_error (FILE *); int fs_file_getc (FILE *); @@ -453,15 +439,19 @@ size_t fs_file_write (const void *, size_t, size_t, FILE *); FILE *fs_file_open (const char *, const char *); int fs_file_getline(char **, size_t *, FILE *); -/* directory handling */ int fs_dir_make (const char *); DIR *fs_dir_open (const char *); int fs_dir_close (DIR *); struct dirent *fs_dir_read (DIR *); -/*===================================================================*/ -/*=========================== correct.c =============================*/ -/*===================================================================*/ +/* correct.c */ +typedef struct correct_trie_s { + void *value; + struct correct_trie_s *entries; +} correct_trie_t; + +correct_trie_t* correct_trie_new(void); + typedef struct { char ***edits; size_t **lens; @@ -473,9 +463,8 @@ char *correct_str (correction_t *, correct_trie_t*, const char *); void correct_init(correction_t *); void correct_free(correction_t *); -/*===================================================================*/ -/*=========================== code.c ================================*/ -/*===================================================================*/ + +/* code.c */ /* Note: if you change the order, fix type_sizeof in ir.c */ enum { @@ -772,9 +761,7 @@ void code_push_statement(code_t *, prog_section_statement_t *stmt, lex_ctx_ void code_pop_statement (code_t *); -/*===================================================================*/ -/*============================ con.c ================================*/ -/*===================================================================*/ +/* conout.c */ enum { CON_BLACK = 30, CON_RED, @@ -822,10 +809,8 @@ bool GMQCC_WARN compile_warning (lex_ctx_t ctx, int warntype, const char *fmt, . bool GMQCC_WARN vcompile_warning(lex_ctx_t ctx, int warntype, const char *fmt, va_list ap); void compile_show_werrors(void); -/*===================================================================*/ -/*============================= ir.c ================================*/ -/*===================================================================*/ - +/* ir.c */ +/* TODO: cleanup */ enum store_types { store_global, store_local, /* local, assignable for now, should get promoted later */ @@ -838,9 +823,7 @@ typedef struct { qcfloat_t x, y, z; } vec3_t; -/*===================================================================*/ -/*============================= exec.c ==============================*/ -/*===================================================================*/ +/* exec.c */ /* TODO: cleanup */ /* @@ -933,9 +916,7 @@ qcany_t* prog_getedict (qc_program_t *prog, qcint_t e); qcint_t prog_tempstring(qc_program_t *prog, const char *_str); -/*===================================================================*/ -/*===================== parser.c commandline ========================*/ -/*===================================================================*/ +/* parser.c */ struct parser_s; struct parser_s *parser_create (void); bool parser_compile_file (struct parser_s *parser, const char *); @@ -943,9 +924,7 @@ bool parser_compile_string(struct parser_s *parser, const char *, co bool parser_finish (struct parser_s *parser, const char *); void parser_cleanup (struct parser_s *parser); -/*===================================================================*/ -/*====================== ftepp.c commandline ========================*/ -/*===================================================================*/ +/* ftepp.c */ struct ftepp_s; struct ftepp_s *ftepp_create (void); bool ftepp_preprocess_file (struct ftepp_s *ftepp, const char *filename); @@ -956,9 +935,7 @@ void ftepp_flush (struct ftepp_s *ftepp); void ftepp_add_define (struct ftepp_s *ftepp, const char *source, const char *name); void ftepp_add_macro (struct ftepp_s *ftepp, const char *name, const char *value); -/*===================================================================*/ -/*======================= main.c commandline ========================*/ -/*===================================================================*/ +/* main.c */ #if 1 /* Helpers to allow for a whole lot of flags. Otherwise we'd limit @@ -976,16 +953,12 @@ typedef uint32_t longbit; #define LONGBIT_SET(B, I) ((B) = (I)) #endif -/*===================================================================*/ -/*============================= utf8.c ==============================*/ -/*===================================================================*/ +/* utf.8 */ typedef long utf8ch_t; int utf8_from(char *, utf8ch_t); int utf8_to(utf8ch_t *, const unsigned char *, size_t); -/*===================================================================*/ -/*============================= opts.c ==============================*/ -/*===================================================================*/ +/* opts.c */ typedef struct { const char *name; longbit bit; diff --git a/msvc.c b/msvc.c index 904ef28..54543ff 100644 --- a/msvc.c +++ b/msvc.c @@ -20,7 +20,11 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -#include "gmqcc.h" +#include +#include +#include + +#include "platform.h" #define CTIME_BUFFER 64 #define GETENV_BUFFER 4096 @@ -112,3 +116,64 @@ const char *platform_strerror(int err) { strerror_s(buffer, STRERROR_BUFFER, err); return buffer; } + +FILE *platform_fopen(const char *filename, const char *mode) { + FILE *handle; + return (fopen_s(&handle, filename, mode) != 0) ? NULL : handle; +} + +size_t platform_fread(void *ptr, size_t size, size_t count, FILE *stream) { + return fread_s(ptr, size, size, count, stream); +} + +size_t platform_fwrite(const void *ptr, size_t size, size_t count, FILE *stream) { + return fwrite(ptr, size, count, stream); +} + +int platform_vfprintf(FILE *stream, const char *format, va_list arg) { + return vfprintf_s(stream, format, arg); +} + +int platform_fclose(FILE *stream) { + return fclose(stream); +} + +int platform_ferror(FILE *stream) { + return ferror(stream); +} + +int platform_fgetc(FILE *stream) { + return fgetc(stream); +} + +int platform_fputs(const char *str, FILE *stream) { + return fputs(str, stream); +} + +int platform_fseek(FILE *stream, long offset, int origin) { + return fseek(stream, offset, origin); +} + +long platform_ftell(FILE *stream) { + return ftell(stream); +} + +int platform_mkdir(const char *path, int mode) { + return mkdir(path, mode); +} + +DIR *platform_opendir(const char *path) { + return opendir(path); +} + +int platform_closedir(DIR *dir) { + return closedir(dir); +} + +struct dirent *platform_readdir(DIR *dir) { + return readdir(dir); +} + +int platform_istty(int fd) { + return _istty(fd); +} diff --git a/platform.h b/platform.h index db76edd..2602636 100644 --- a/platform.h +++ b/platform.h @@ -23,7 +23,6 @@ #ifndef GMQCC_PLATFORM_HDR #define GMQCC_PLATFORM_HDR -#include #include #include #include @@ -59,6 +58,6 @@ int platform_mkdir(const char *path, int mode); DIR *platform_opendir(const char *path); int platform_closedir(DIR *dir); struct dirent *platform_readdir(DIR *dir); - +int platform_isatty(int fd); #endif