#endif /*! _MSC_VER */
#define GMQCC_VERSION_MAJOR 0
-#define GMQCC_VERSION_MINOR 2
-#define GMQCC_VERSION_PATCH 9
+#define GMQCC_VERSION_MINOR 3
+#define GMQCC_VERSION_PATCH 0
#define GMQCC_VERSION_BUILD(J,N,P) (((J)<<16)|((N)<<8)|(P))
#define GMQCC_VERSION \
GMQCC_VERSION_BUILD(GMQCC_VERSION_MAJOR, GMQCC_VERSION_MINOR, GMQCC_VERSION_PATCH)
#define GMQCC_VERSION_TYPE_DEVEL
/* Full version string in case we need it */
-#ifdef GMQCC_GITINFO
-# define GMQCC_DEV_VERSION_STRING "git build: " GMQCC_GITINFO "\n"
-#elif defined(GMQCC_VERSION_TYPE_DEVEL)
-# define GMQCC_DEV_VERSION_STRING "development build\n"
+#ifdef GMQCC_VERSION_TYPE_DEVEL
+# ifdef GMQCC_GITINFO
+# define GMQCC_DEV_VERSION_STRING "git build: " GMQCC_GITINFO "\n"
+# elif defined(GMQCC_VERSION_TYPE_DEVEL)
+# define GMQCC_DEV_VERSION_STRING "development build\n"
+# else
+# define GMQCC_DEV_VERSION_STRING
+# endif /*! GMQCC_GITINGO */
#else
# define GMQCC_DEV_VERSION_STRING
-#endif /*! GMQCC_GITINGO */
+#endif
#define GMQCC_STRINGIFY(x) #x
#define GMQCC_IND_STRING(x) GMQCC_STRINGIFY(x)
* code_pop_statement -- keeps statements and linenumbers together
*/
bool code_write (code_t *, const char *filename, const char *lno);
+GMQCC_WARN
code_t *code_init (void);
+void code_cleanup (code_t *);
uint32_t code_genstring (code_t *, const char *string);
qcint code_alloc_field (code_t *, size_t qcsize);
void code_push_statement(code_t *, prog_section_statement *stmt, int linenum);
typedef struct {
const char *file;
size_t line;
+ size_t column;
} lex_ctx;
/*===================================================================*/
FILE *con_default_out();
FILE *con_default_err();
-void con_vprintmsg (int level, const char *name, size_t line, const char *msgtype, const char *msg, va_list ap);
-void con_printmsg (int level, const char *name, size_t line, const char *msgtype, const char *msg, ...);
+void con_vprintmsg (int level, const char *name, size_t line, size_t column, const char *msgtype, const char *msg, va_list ap);
+void con_printmsg (int level, const char *name, size_t line, size_t column, const char *msgtype, const char *msg, ...);
void con_cvprintmsg(void *ctx, int lvl, const char *msgtype, const char *msg, va_list ap);
void con_cprintmsg (void *ctx, int lvl, const char *msgtype, const char *msg, ...);
bool prog_exec(qc_program *prog, prog_section_function *func, size_t flags, long maxjumps);
-char* prog_getstring (qc_program *prog, qcint str);
+const char* prog_getstring (qc_program *prog, qcint str);
prog_section_def* prog_entfield (qc_program *prog, qcint off);
prog_section_def* prog_getdef (qc_program *prog, qcint off);
qcany* prog_getedict (qc_program *prog, qcint e);
extern opts_cmd_t opts;
-#define OPTS_GENERIC(f,i) (!! (((f)[(i)/32]) & (1<< ((i)%32))))
+#define OPTS_GENERIC(f,i) (!! (((f)[(i)/32]) & (1<< (unsigned)((i)%32))))
#define OPTS_FLAG(i) OPTS_GENERIC(opts.flags, (i))
#define OPTS_WARN(i) OPTS_GENERIC(opts.warn, (i))
#define OPTS_WERROR(i) OPTS_GENERIC(opts.werror, (i))