int main(int argc, char *argv[]) { char *me; hestOpt *hopt = NULL; int center; double minPos, maxPos, pos, index, size; me = argv[0]; hestOptAdd(&hopt, NULL, "center", airTypeEnum, 1, 1, ¢er, NULL, "which centering applies to the quantized position.\n " "Possibilities are:\n " "\b\bo \"cell\": for histogram bins, quantized values, and " "pixels-as-squares\n " "\b\bo \"node\": for non-trivially interpolated " "sample points", NULL, nrrdCenter); hestOptAdd(&hopt, NULL, "minPos", airTypeDouble, 1, 1, &minPos, NULL, "smallest position associated with index 0"); hestOptAdd(&hopt, NULL, "maxPos", airTypeDouble, 1, 1, &maxPos, NULL, "highest position associated with highest index"); hestOptAdd(&hopt, NULL, "num", airTypeDouble, 1, 1, &size, NULL, "number of intervals into which position has been quantized"); hestOptAdd(&hopt, NULL, "index", airTypeDouble, 1, 1, &index, NULL, "the input index, to be converted to position"); hestParseOrDie(hopt, argc-1, argv+1, NULL, me, info, AIR_TRUE, AIR_TRUE, AIR_TRUE); pos = NRRD_POS(center, minPos, maxPos, size, index); printf("%g\n", pos); hestParseFree(hopt); hestOptFree(hopt); exit(0); }
int main(int argc, const char **argv) { char *single, *triple[3], *maybe, **many; int howMany, i, N; hestOpt *opt = NULL; char *err = NULL; hestOptAdd(&opt, "A", "token", airTypeOther, 1, 1, &single, "alpha", "testing A", NULL, NULL, &cbinfo); hestOptAdd(&opt, "B", "tok1 tok2 tok3", airTypeOther, 3, 3, triple, "beta psi rho", "testing B", NULL, NULL, &cbinfo); hestOptAdd(&opt, "C", "mtok", airTypeOther, 0, 1, &maybe, "gamma", "testing C", NULL, NULL, &cbinfo); hestOptAdd(&opt, "D", "tok", airTypeOther, 1, -1, &many, "kappa omega", "testing D", &howMany, NULL, &cbinfo); hestOptAdd(&opt, "int", "N", airTypeInt, 1, 1, &N, NULL, "an integer"); if (hestParse(opt, argc-1, argv+1, &err, NULL)) { fprintf(stderr, "ERROR: %s\n", err); free(err); hestUsage(stderr, opt, argv[0], NULL); hestGlossary(stderr, opt, NULL); exit(1); } printf("single: %s\n", single); printf("triple: %s %s %s\n", triple[0], triple[1], triple[2]); printf("maybe: %s\n", maybe); printf("many(%d):", howMany); for (i=0; i<=howMany-1; i++) { printf(" %s", many[i]); } printf("\n"); hestParseFree(opt); exit(0); }
int main(int argc, char **argv) { static int res[2], v, numIn; static char **in, *out; static int *mm, mmm; int n; hestOpt opt[] = { {"res", "sx sy", airTypeInt, 2, 2, res, NULL, "image resolution"}, {"v", "level", airTypeInt, 0, 1, &v, NULL /* "0" */, "verbosity level"}, {"VV", "level", airTypeInt, 0, 5, &mm, "33 22 11", "gonzo level", &mmm}, {"out", "file", airTypeString, 1, 1, &out, "output.ppm", "PPM image output"}, {NULL, "input", airTypeString, 1, -1, &in, NULL, "input image file(s)", &numIn}, {NULL, NULL, 0} }; hestParm *parm; char *err = NULL, info[] = "This program does nothing in particular, though it does attempt " "to pose as some sort of command-line image processing program. " "Any implied functionality is purely coincidental, especially since " "this software was written by a sleep-deprived grad student."; parm = hestParmNew(); parm->respFileEnable = AIR_TRUE; if (1 == argc) { /* didn't get anything at all on command line */ hestInfo(stderr, argv[0], info, parm); hestUsage(stderr, opt, argv[0], parm); hestGlossary(stderr, opt, parm); parm = hestParmFree(parm); exit(1); } /* else we got something, see if we can parse it */ if (hestParse(opt, argc-1, argv+1, &err, parm)) { fprintf(stderr, "ERROR: %s\n", err); free(err); hestUsage(stderr, opt, argv[0], parm); hestGlossary(stderr, opt, parm); parm = hestParmFree(parm); exit(1); } printf("(err = %s)\n", err); printf("res = %d %d\n", res[0], res[1]); printf(" v = %d\n", v); printf("out = \"%s\"\n", out); printf(" mm = %d ints:", mmm); for (n=0; n<=mmm-1; n++) { printf(" %d", mm[n]); } printf("\n"); printf(" in = %d files:", numIn); for (n=0; n<=numIn-1; n++) { printf(" \"%s\"", in[n]); } printf("\n"); hestParseFree(opt); parm = hestParmFree(parm); exit(0); }
int main(int argc, char **argv) { int res[2], v, numIn; char **in, *out, *blah[3], *option = NULL; int n, *ints, numN; hestOpt *opt = NULL; hestParm *parm; char *err = NULL, info[] = "This program does nothing in particular, though it does attempt " "to pose as some sort of command-line image processing program. " "As usual, any implied functionality is purely coincidental, " "especially since this is the output of a unicyclist."; parm = hestParmNew(); parm->respFileEnable = AIR_TRUE; parm->verbosity = 3; opt = NULL; hestOptAdd(&opt, "v,verbose", "level", airTypeInt, 0, 1, &v, "0", "verbosity level"); hestOptAdd(&opt, "out", "file", airTypeString, 1, 1, &out, "output.ppm", "PPM image output"); hestOptAdd(&opt, "blah", "input", airTypeString, 3, 3, blah, "a b c", "input image file(s)"); hestOptAdd(&opt, "option","opt", airTypeString, 0, 1, &option, "default", "this is just a test"); hestOptAdd(&opt, NULL, "input", airTypeString, 1, -1, &in, NULL, "input image file(s)", &numIn); hestOptAdd(&opt, "ints", "N", airTypeInt, 1, -1, &ints, "10 20 30", "a list of integers", &numN); hestOptAdd(&opt, "res", "sx sy", airTypeInt, 2, 2, res, NULL, "image resolution"); printf("what 0\n"); if (1 == argc) { /* didn't get anything at all on command line */ /* print program information ... */ hestInfo(stderr, argv[0], info, parm); /* ... and usage information ... */ hestUsage(stderr, opt, argv[0], parm); hestGlossary(stderr, opt, parm); /* ... and avoid memory leaks */ opt = hestOptFree(opt); parm = hestParmFree(parm); exit(1); } printf("what 1\n"); /* else we got something, see if we can parse it */ if (hestParse(opt, argc-1, argv+1, &err, parm)) { fprintf(stderr, "ERROR: %s\n", err); free(err); /* print usage information ... */ hestUsage(stderr, opt, argv[0], parm); hestGlossary(stderr, opt, parm); /* ... and then avoid memory leaks */ opt = hestOptFree(opt); parm = hestParmFree(parm); printf(" ---- in = %lx\n", (unsigned long)in); printf(" ---- blah[0] = %lx\n", (unsigned long)(blah[0])); printf(" ---- option = %lx\n", (unsigned long)option); exit(1); } printf("what 2\n"); printf("(err = %s)\n", err ? err : "(null)"); printf(" v = %d\n", v); printf("out = \"%s\"\n", out ? out : "(null)"); printf("blah = \"%s\" \"%s\" \"%s\"\n", blah[0], blah[1], blah[2]); printf("option = \"%s\"\n", option ? option : "(null)"); printf("res = %d %d\n", res[0], res[1]); /* printf(" ---- in = %lx\n", (unsigned long)in); printf(" in = %d files:", numIn); for (n=0; n<=numIn-1; n++) { printf(" \"%s\"", in[n] ? in[n] : "(null)"); } printf("\n"); */ printf(" ints = %d ints:", numN); for (n=0; n<=numN-1; n++) { printf(" %d", ints[n]); } printf("\n"); printf("what 3\n"); /* free the memory allocated by parsing ... */ hestParseFree(opt); /* ... and the other stuff */ opt = hestOptFree(opt); parm = hestParmFree(parm); exit(0); }