static void parse_options (cairo_perf_t *perf, int argc, char *argv[]) { int c; const char *iters; char *end; if ((iters = getenv("CAIRO_PERF_ITERATIONS")) && *iters) perf->iterations = strtol(iters, NULL, 0); else perf->iterations = CAIRO_PERF_ITERATIONS_DEFAULT; perf->exact_iterations = 0; perf->raw = FALSE; perf->list_only = FALSE; perf->names = NULL; perf->num_names = 0; while (1) { c = _cairo_getopt (argc, argv, "i:lr"); if (c == -1) break; switch (c) { case 'i': perf->exact_iterations = TRUE; perf->iterations = strtoul (optarg, &end, 10); if (*end != '\0') { fprintf (stderr, "Invalid argument for -i (not an integer): %s\n", optarg); exit (1); } break; case 'l': perf->list_only = TRUE; break; case 'r': perf->raw = TRUE; break; default: fprintf (stderr, "Internal error: unhandled option: %c\n", c); /* fall-through */ case '?': usage (argv[0]); exit (1); } } if (optind < argc) { perf->names = &argv[optind]; perf->num_names = argc - optind; } }
static void parse_options (cairo_perf_t *perf, int argc, char *argv[]) { int c; const char *iters; char *end; int verbose = 0; int use_surface_cache = 0; if ((iters = getenv ("CAIRO_PERF_ITERATIONS")) && *iters) perf->iterations = strtol (iters, NULL, 0); else perf->iterations = CAIRO_PERF_ITERATIONS_DEFAULT; perf->exact_iterations = 0; perf->raw = FALSE; perf->list_only = FALSE; perf->names = NULL; perf->num_names = 0; perf->summary = stdout; perf->summary_continuous = FALSE; perf->exclude_names = NULL; perf->num_exclude_names = 0; while (1) { c = _cairo_getopt (argc, argv, "i:x:lrvc"); if (c == -1) break; switch (c) { case 'i': perf->exact_iterations = TRUE; perf->iterations = strtoul (optarg, &end, 10); if (*end != '\0') { fprintf (stderr, "Invalid argument for -i (not an integer): %s\n", optarg); exit (1); } break; case 'l': perf->list_only = TRUE; break; case 'r': perf->raw = TRUE; perf->summary = NULL; break; case 'v': verbose = 1; break; case 'c': use_surface_cache = 1; break; case 'x': if (! read_excludes (perf, optarg)) { fprintf (stderr, "Invalid argument for -x (not readable file): %s\n", optarg); exit (1); } break; default: fprintf (stderr, "Internal error: unhandled option: %c\n", c); /* fall-through */ case '?': usage (argv[0]); exit (1); } } if (verbose && perf->summary == NULL) perf->summary = stderr; #if HAVE_UNISTD_H if (perf->summary && isatty (fileno (perf->summary))) perf->summary_continuous = TRUE; #endif if (optind < argc) { perf->names = &argv[optind]; perf->num_names = argc - optind; } if (use_surface_cache) surface_cache = _cairo_hash_table_create (scache_equal); }