char *ftepp_predef_file(lex_file *context) {
size_t length = strlen(context->name) + 3; /* two quotes and a terminator */
char *value = (char*)mem_a(length);
- sprintf(value, "\"%s\"", context->name);
+ snprintf(value, length, "\"%s\"", context->name);
return value;
}
return false;
}
} while (ftepp->token == ',');
+
if (ftepp->token != ')') {
ftepp_error(ftepp, "expected closing paren after macro parameter list");
return false;
return false;
}
- index = atoi(ftepp_tokval(ftepp));
+ index = (int)strtol(ftepp_tokval(ftepp), NULL, 10);
if (ftepp_next(ftepp) != ']') {
ftepp_error(ftepp, "expected `]` in __VA_ARGS__ subscript");
break;
default:
ftepp_error(ftepp, "expected macro name");
- goto cleanup_false;
+ return false;
}
(void)ftepp_next(ftepp);
if (ftepp->token == '(') {
macro->has_params = true;
- if (!ftepp_define_params(ftepp, macro))
- goto cleanup_false;
+ if (!ftepp_define_params(ftepp, macro)) {
+ ppmacro_delete(macro);
+ return false;
+ }
}
- if (!ftepp_skipspace(ftepp))
- goto cleanup_false;
+ if (!ftepp_skipspace(ftepp)) {
+ ppmacro_delete(macro);
+ return false;
+ }
- if (!ftepp_define_body(ftepp, macro))
- goto cleanup_false;
+ if (!ftepp_define_body(ftepp, macro)) {
+ ppmacro_delete(macro);
+ return false;
+ }
if (ftepp->output_on)
vec_push(ftepp->macros, macro);
for (; l < ftepp_ctx(ftepp).line; ++l)
ftepp_out(ftepp, "\n", true);
return true;
-
-cleanup_false:
- if (macro) ppmacro_delete(macro);
- return false;
}
/**
if (resetline && !ftepp->in_macro) {
char lineno[128];
- sprintf(lineno, "\n#pragma line(%lu)\n", (unsigned long)(old_lexer->sline));
+ snprintf(lineno, 128, "\n#pragma line(%lu)\n", (unsigned long)(old_lexer->sline));
ftepp_out(ftepp, lineno, false);
}
minor[2] = '"';
} else if (OPTS_OPTION_U32(OPTION_STANDARD) == COMPILER_GMQCC) {
ftepp_add_define(NULL, "__STD_GMQCC__");
- sprintf(major, "\"%d\"", GMQCC_VERSION_MAJOR);
- sprintf(minor, "\"%d\"", GMQCC_VERSION_MINOR);
+ snprintf(major, 32, "\"%d\"", GMQCC_VERSION_MAJOR);
+ snprintf(minor, 32, "\"%d\"", GMQCC_VERSION_MINOR);
} else if (OPTS_OPTION_U32(OPTION_STANDARD) == COMPILER_QCCX) {
ftepp_add_define(NULL, "__STD_QCCX__");
- sprintf(major, "\"%d\"", GMQCC_VERSION_MAJOR);
- sprintf(minor, "\"%d\"", GMQCC_VERSION_MINOR);
+ snprintf(major, 32, "\"%d\"", GMQCC_VERSION_MAJOR);
+ snprintf(minor, 32, "\"%d\"", GMQCC_VERSION_MINOR);
} else if (OPTS_OPTION_U32(OPTION_STANDARD) == COMPILER_QCC) {
ftepp_add_define(NULL, "__STD_QCC__");
/* 1.0 */