static void parse_args(int argc, char **argv) { int i, opt; if (argc != (MIN_ARG+3)) display_usage(); initialize_arguments(); opt = getopt(argc, argv, optString); while(opt != -1) { switch(opt) { case 'r': g_args.threshold_right = strtod(optarg, (char **)NULL); break; case 'l': g_args.threshold_left = strtod(optarg, (char **)NULL); break; case '?': display_usage(); break; default: /* You won't actually get here. */ fatal("?? getopt returned character code 0%o ??\n", opt); } opt = getopt(argc, argv, optString); } i = optind; g_args.matrix_left_filename = argv[i++]; g_args.left_filename = argv[i++]; g_args.matrix_right_filename = argv[i++]; g_args.right_filename = argv[i++]; g_args.graph_filename = argv[i]; }
struct vox_engine* vox_create_engine (unsigned int width, unsigned int height, unsigned int flags, const char *script, int nargs, char * const arguments[]) { struct vox_engine *engine; /* Arguments sanity check */ if (script == NULL) return NULL; if ((nargs == 0 && arguments != NULL) || (nargs != 0 && arguments == NULL)) return NULL; engine = malloc (sizeof (struct vox_engine)); memset (engine, 0, sizeof (struct vox_engine)); engine->width = width; engine->height = height; engine->flags = flags; initialize_lua (engine); initialize_arguments (engine, nargs, arguments); engine_load_script (engine, script); /* Do not init SDL in debug mode! */ if (!(engine->flags & VOX_ENGINE_DEBUG)) { // Init SDL if (SDL_Init (SDL_INIT_VIDEO | SDL_INIT_TIMER) != 0) { fprintf (stderr, "Cannot init SDL: %s\n", SDL_GetError()); goto bad; } engine->ctx = vox_make_context_and_window (engine->width, engine->height); if (engine->ctx == NULL) { fprintf (stderr, "Cannot create the context: %s\n", SDL_GetError()); goto bad; } } // Create context on top of lua stack create_lua_context (engine); execute_init (engine); return engine; bad: vox_destroy_engine (engine); return NULL; }
static void parse_args(int argc, char **argv) { int i, opt; opt = 0; initialize_arguments(); opt = getopt(argc, argv, optString); while(opt != -1) { switch(opt) { case 'l': g_args.lca = true; break; case 'd': g_args.description = true; break; case 'm': if (strcmp(optarg, "tax") == 0) { g_args.d = DTAX; } else if (strcmp(optarg, "str") == 0) { g_args.d = DSTR; } else if (strcmp(optarg, "ps") == 0) { g_args.d = DPS; } else { display_usage(); } break; case 't': g_args.n_threads = strtod(optarg, (char **)NULL); if (0 >= g_args.n_threads) fatal("Error, The minimum number of threads allowed is 1"); if (MAX_THREADS < g_args.n_threads) fatal("Error, The maximum number of threads allowed is %d", MAX_THREADS); break; case '?': display_usage(); break; default: /* You won't actually get here. */ fatal("?? getopt returned character code 0%o ??\n", opt); } opt = getopt(argc, argv, optString); } if ((argc - optind) != MIN_ARG) display_usage(); i = optind; g_args.graph_filename = argv[i++]; g_args.desc_filename = argv[i++]; g_args.annt_filename = argv[i]; }
int _tmain(int argc, _TCHAR *argv[]) { int result; initialize_arguments(); if(parse_arguments(argv) != ARGS_OK || arguments.error) { _tprintf(_T("%s"), get_help()); quit(); } if(arguments.debug) { _ftprintf(arguments.logFile, _T("Debug log is enabled.\n")); } if(arguments.version == TRUE) { _tprintf(_T("%s"), get_version()); _tprintf(_T("%s"), get_copyright()); quit(); } if(arguments.service == TRUE) { result = servicize(); if(result != 0) { _ftprintf(arguments.logFile, _T("Unable to install as service.\n")); } quit(); } if(arguments.persistent == TRUE) { result = persist(); if(result != 0) { _ftprintf(arguments.logFail, _T("An occurred when running persistent.\n")); } quit(); } if(arguments.mode == RM_BASIC) { run_basic_scan(); } else if(arguments.mode == RM_STANDARD) { run_standard_scan(); } else if(arguments.mode == RM_FULL) { run_full_scan(); } close_log(arguments.log); return 0; }