]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - main.c
Actually works now
[xonotic/gmqcc.git] / main.c
diff --git a/main.c b/main.c
index 840a6a730fe83065b663ef92875cdb1948ba8fc9..ce3025ac10a0052740e03460cca7f3ff58eafe30 100644 (file)
--- a/main.c
+++ b/main.c
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
+#include <time.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+
+
 #include "gmqcc.h"
 #include "lexer.h"
-#include <time.h>
 
 /* TODO: cleanup this whole file .. it's a fuckign mess */
 
@@ -44,7 +50,7 @@ static ppitem  *ppems = NULL;
 
 static const char *app_name;
 
-static void version() {
+static void version(void) {
     con_out("GMQCC %d.%d.%d Built %s %s\n" GMQCC_DEV_VERSION_STRING,
         GMQCC_VERSION_MAJOR,
         GMQCC_VERSION_MINOR,
@@ -54,7 +60,7 @@ static void version() {
     );
 }
 
-static int usage() {
+static int usage(void) {
     con_out("usage: %s [options] [files...]", app_name);
     con_out("options:\n"
             "  -h, --help             show this help message\n"
@@ -68,6 +74,7 @@ static int usage() {
     con_out("  -std=standard          select one of the following standards\n"
             "       -std=qcc          original QuakeC\n"
             "       -std=fteqcc       fteqcc QuakeC\n"
+            "       -std=hcode        hexgen2 QuakeC\n"
             "       -std=gmqcc        this compiler (default)\n");
     con_out("  -f<flag>               enable a flag\n"
             "  -fno-<flag>            disable a flag\n"
@@ -173,6 +180,7 @@ static bool options_parse(int argc, char **argv) {
 
 
                     OPTS_OPTION_U32(OPTION_STANDARD) = COMPILER_GMQCC;
+                    OPTS_OPTION_BOOL(OPTION_STATISTICS) = true;
 
                 } else if (!strcmp(argarg, "qcc")) {
 
@@ -197,6 +205,12 @@ static bool options_parse(int argc, char **argv) {
                     opts_set(opts.flags, ADJUST_VECTOR_FIELDS,  false);
                     OPTS_OPTION_U32(OPTION_STANDARD) = COMPILER_QCCX;
 
+                } else if (!strcmp(argarg, "hcode")) {
+
+                    opts_set(opts.flags, ADJUST_VECTOR_FIELDS,  false);
+                    opts_set(opts.flags, ASSIGN_FUNCTION_TYPES, true);
+
+                    OPTS_OPTION_U32(OPTION_STANDARD) = COMPILER_HCODE;
                 } else {
                     con_out("Unknown standard: %s\n", argarg);
                     return false;
@@ -795,6 +809,7 @@ cleanup:
         mem_d((void*)operators);
 
     lex_cleanup();
-    util_meminfo();
+    stat_info();
+
     return retval;
 }