More cleanup
authorDale Weiler <killfieldengine@gmail.com>
Fri, 11 Oct 2013 07:21:44 +0000 (03:21 -0400)
committerDale Weiler <killfieldengine@gmail.com>
Fri, 11 Oct 2013 07:21:44 +0000 (03:21 -0400)
ansi.c
conout.c
gmqcc.h
msvc.c
platform.h

diff --git a/ansi.c b/ansi.c
index d470e979eebdae521a00abb0974696ff72064059..26604fe3b7166b81e97df642d6e4130ce1ad20bd 100644 (file)
--- a/ansi.c
+++ b/ansi.c
@@ -22,6 +22,7 @@
  */
 #include <string.h>
 #include <stdlib.h>
+#include <unistd.h>
 
 #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);
+}
index f89d68c13ec10b2b71e681f60f007f3f0d0f61bd..bc55b04f3e7c9e4270b5cbd595a37ef1893a27e6 100644 (file)
--- a/conout.c
+++ b/conout.c
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#include "gmqcc.h"
+#include <unistd.h>
 
-/*
- * isatty/STDERR_FILENO/STDOUT_FILNO
- * + some other things likewise.
- */
-#ifndef _WIN32
-#   include <unistd.h>
-#else
-#   include <io.h>
-    /*
-     * 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 373232f7d0e4b5cb5f54a8f83594c0c689e39d77..43e2aa00048add22edbc0bbc5e4389d2ace72039 100644 (file)
--- a/gmqcc.h
+++ b/gmqcc.h
@@ -289,9 +289,7 @@ GMQCC_IND_STRING(GMQCC_VERSION_PATCH) \
 #   include <dirent.h>
 #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 904ef2836cda6783c9f35eee1d3b773efc3aea60..54543ffafeb142e0a892be11d92d9a200acafa32 100644 (file)
--- a/msvc.c
+++ b/msvc.c
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-#include "gmqcc.h"
+#include <string.h>
+#include <stdlib.h>
+#include <io.h>
+
+#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);
+}
index db76edd37821c74e76c44ef750604f0f3f42d784..2602636ab586e96ee50b7a8835057ee8a1a5f59d 100644 (file)
@@ -23,7 +23,6 @@
 
 #ifndef GMQCC_PLATFORM_HDR
 #define GMQCC_PLATFORM_HDR
-#include <stddef.h>
 #include <stdarg.h>
 #include <time.h>
 #include <stdio.h>
@@ -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