]> git.xonotic.org Git - xonotic/gmqcc.git/blobdiff - parser.c
fix the INCLUDE_DEF flag getting applied regardless of dotranslate...
[xonotic/gmqcc.git] / parser.c
index 14cf583647c0a79362691193440f75b0d8761572..c6819223cb279d4233ff8af9db6de883d31469ca 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -266,6 +266,7 @@ static ast_value* parser_const_string(parser_t *parser, const char *str, bool do
             char name[32];
             util_snprintf(name, sizeof(name), "dotranslate_%lu", (unsigned long)(parser->translated++));
             ast_value_set_name(out, name);
+            out->expression.flags |= AST_FLAG_INCLUDE_DEF;
         }
         return out;
     }
@@ -279,6 +280,7 @@ static ast_value* parser_const_string(parser_t *parser, const char *str, bool do
         char name[32];
         util_snprintf(name, sizeof(name), "dotranslate_%lu", (unsigned long)(parser->translated++));
         out = ast_value_new(parser_ctx(parser), name, TYPE_STRING);
+        out->expression.flags |= AST_FLAG_INCLUDE_DEF;
     } else
         out = ast_value_new(parser_ctx(parser), "#IMMEDIATE", TYPE_STRING);
     out->cvq      = CV_CONST;
@@ -5689,7 +5691,9 @@ skipvar:
 
                 /* we only want the integral part anyways */
                 builtin_num = integral;
-            } else if (parser->tok != TOKEN_INTCONST) {
+            } else if (parser->tok == TOKEN_INTCONST) {
+                builtin_num = parser_token(parser)->constval.i;
+            } else {
                 parseerror(parser, "builtin number must be a compile time constant");
                 break;
             }
@@ -5709,9 +5713,7 @@ skipvar:
                 }
                 vec_push(parser->functions, func);
 
-                func->builtin = -((OPTS_FLAG(EXPRESSIONS_FOR_BUILTINS))
-                                    ? builtin_num
-                                    : parser_token(parser)->constval.i) - 1;
+                func->builtin = -builtin_num-1;
             }
 
             if (OPTS_FLAG(EXPRESSIONS_FOR_BUILTINS)