/*
- * Copyright (C) 2012, 2013
+ * Copyright (C) 2012, 2013, 2014
* Wolfgang Bumiller
* Dale Weiler
*
*/
#ifndef QCVM_LOOP
#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdarg.h>
#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
#include "gmqcc.h"
qc_program_t* prog_load(const char *filename, bool skipversion)
{
- qc_program_t *prog;
prog_header_t header;
- FILE *file = fs_file_open(filename, "rb");
+ qc_program_t *prog;
+ fs_file_t *file = fs_file_open(filename, "rb");
if (!file)
return NULL;
}
#define read_data(hdrvar, progvar, reserved) \
- if (fs_file_seek(file, header.hdrvar.offset, SEEK_SET) != 0) { \
+ if (fs_file_seek(file, header.hdrvar.offset, SEEK_SET) != 0) { \
loaderror("seek failed"); \
goto error; \
} \
- if (fs_file_read ( \
+ if (fs_file_read ( \
vec_add(prog->progvar, header.hdrvar.length + reserved), \
sizeof(*prog->progvar), \
header.hdrvar.length, \
done:
if (len < (int)sizeof(spaces)-1) {
spaces[sizeof(spaces)-1-len] = 0;
- fs_file_puts(stdout, spaces);
+ fs_file_puts((fs_file_t*)stdout, spaces);
spaces[sizeof(spaces)-1-len] = ' ';
}
}
* main for when building the standalone executor
*/
-#if defined(QCVM_EXECUTOR)
#include <math.h>
const char *type_name[TYPE_COUNT] = {
arg->vector[2] = 0;
switch (main_params[i].vtype) {
case TYPE_VECTOR:
-#ifdef _MSC_VER
- (void)sscanf_s(main_params[i].value, " %f %f %f ",
- &arg->vector[0],
- &arg->vector[1],
- &arg->vector[2]);
-#else
- (void)sscanf(main_params[i].value, " %f %f %f ",
- &arg->vector[0],
- &arg->vector[1],
- &arg->vector[2]);
-#endif
+ (void)util_sscanf(main_params[i].value, " %f %f %f ",
+ &arg->vector[0],
+ &arg->vector[1],
+ &arg->vector[2]);
break;
case TYPE_FLOAT:
arg->_float = atof(main_params[i].value);
if (argc < 2) {
usage();
- exit(1);
+ exit(EXIT_FAILURE);
}
while (argc > 1) {
!strcmp(argv[1], "--help"))
{
usage();
- exit(0);
+ exit(EXIT_SUCCESS);
}
else if (!strcmp(argv[1], "-v")) {
++opts_v;
++opts_v;
else {
usage();
- exit(1);
+ exit(EXIT_FAILURE);
}
}
--argc;
!strcmp(argv[1], "--version"))
{
version();
- exit(0);
+ exit(EXIT_SUCCESS);
}
else if (!strcmp(argv[1], "-trace")) {
--argc;
++argv;
if (argc <= 1) {
usage();
- exit(1);
+ exit(EXIT_FAILURE);
}
vec_push(dis_list, argv[1]);
--argc;
++argv;
if (argc < 2) {
usage();
- exit(1);
+ exit(EXIT_FAILURE);
}
p.value = argv[1];
if (progsfile) {
fprintf(stderr, "only 1 program file may be specified\n");
usage();
- exit(1);
+ exit(EXIT_FAILURE);
}
progsfile = argv[1];
--argc;
{
fprintf(stderr, "unknown parameter: %s\n", argv[1]);
usage();
- exit(1);
+ exit(EXIT_FAILURE);
}
}
if (!progsfile) {
fprintf(stderr, "must specify a program to execute\n");
usage();
- exit(1);
+ exit(EXIT_FAILURE);
}
prog = prog_load(progsfile, noexec);
if (!prog) {
fprintf(stderr, "failed to load program '%s'\n", progsfile);
- exit(1);
+ exit(EXIT_FAILURE);
}
prog->builtins = qc_builtins;
if (opts_printfuns) {
for (i = 0; i < vec_size(prog->functions); ++i) {
int32_t a;
- printf("Function: %-16s taking %i parameters:(",
+ printf("Function: %-16s taking %u parameters:(",
prog_getstring(prog, prog->functions[i].name),
(unsigned int)prog->functions[i].nargs);
for (a = 0; a < prog->functions[i].nargs; ++a) {
++st;
}
}
-#endif
#else /* !QCVM_LOOP */
/*
* Everything from here on is not including into the compilation of the