#include #include #include #include #include "../floatimg.h" int verbosity; /* --------------------------------------------------------------------- */ #define OP_ADD 1 #define OP_MUL 2 typedef struct { int code; char *op; } Opcode; Opcode opcodes[] = { { OP_ADD, "add" }, { OP_MUL, "mul" }, { 0, NULL } }; static void pr_opcodes(void) { Opcode *optr; puts("operators:"); for (optr = opcodes; optr->code; optr++) { printf("\t%-20s %d\n", optr->op, optr->code); } } static int look_opcodes(char *txt) { Opcode *optr; for (optr = opcodes; optr->code; optr++) { if (!strcmp(txt, optr->op)) { printf("found %s as %d\n", optr->op, optr->code); return optr->code; } } return -1; } /* --------------------------------------------------------------------- */ static void help(int lj) { puts("usage:\n\tfimgops [options] A.fimg B.fimg operator D.fimg"); pr_opcodes(); if (verbosity) fimg_print_version(1); exit(0); } /* --------------------------------------------------------------------- */ int main(int argc, char *argv[]) { int foo, opt; float fvalue; FloatImg fimg; while ((opt = getopt(argc, argv, "hk:v")) != -1) { switch(opt) { case 'h': help(0); break; case 'k': fvalue = atof(optarg); break; case 'v': verbosity++; break; } } #if DEBUG_LEVEL fprintf(stderr, "argc %d optind %d\n", argc, optind); for (foo=0; foo