X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=exec.c;h=dccee5ed121205936fd05c2c9804dea8d6381cab;hp=6934a0c0605a9d17bf7145f96a8eec25c7718e17;hb=125d039e3d2ee0779a1329f8767a0993e294a45f;hpb=144672fada7324651eabbbd0eaec68ed4dd031c1 diff --git a/exec.c b/exec.c index 6934a0c..dccee5e 100644 --- a/exec.c +++ b/exec.c @@ -56,7 +56,7 @@ qc_program* prog_load(const char *filename, bool skipversion) { qc_program *prog; prog_header header; - FILE *file = fs_file_open(filename, "rb"); + FILE *file = fs_file_open(filename, "rb"); if (!file) return NULL; @@ -144,6 +144,8 @@ error: vec_free(prog->entitydata); vec_free(prog->entitypool); mem_d(prog); + + fs_file_close(file); return NULL; } @@ -172,7 +174,7 @@ const char* prog_getstring(qc_program *prog, qcint str) { /* cast for return required for C++ */ if (str < 0 || str >= (qcint)vec_size(prog->strings)) return "<<>>"; - + return prog->strings + str; } @@ -760,7 +762,7 @@ static int qc_strcat(qc_program *prog) { size_t len1, len2; qcany *str1, *str2; qcany out; - + const char *cstr1; const char *cstr2; @@ -786,7 +788,7 @@ static int qc_strcmp(qc_program *prog) { const char *cstr1; const char *cstr2; - + if (prog->argc != 2 && prog->argc != 3) { fprintf(stderr, "ERROR: invalid number of arguments for strcmp/strncmp: %i, expected 2 or 3\n", prog->argc); @@ -905,19 +907,19 @@ void escapestring(char* dest, const char* src) { char c; while ((c = *(src++))) { switch(c) { - case '\t': + case '\t': *(dest++) = '\\', *(dest++) = 't'; break; - case '\n': + case '\n': *(dest++) = '\\', *(dest++) = 'n'; break; - case '\r': + case '\r': *(dest++) = '\\', *(dest++) = 'r'; break; - case '\\': + case '\\': *(dest++) = '\\', *(dest++) = '\\'; break; - case '\"': + case '\"': *(dest++) = '\\', *(dest++) = '\"'; break; default: