void main(int argc, char **argv) { Sumfn *fn = sum32; char *exitstr=0, *s; ARGBEGIN{ case 'r': fn = sumr; break; case '5': fn = sum5; break; default: usage(); break; }ARGEND if(*argv){ while(*argv) if(s = sumfile(*argv++, fn)) /* assign = */ exitstr = s; }else exitstr = sumfile(0, fn); exits(exitstr); }
int main(int argc, char *argv[]) { OptNode *o; Node *n; xiargs *args; int verbose = 0, check=0; binary = " "; key1 = (unsigned char *)calloc(1, 40); if(!key1) { fprintf(stderr, "Memory allocation failed!\n"); return 2; } key2 = (unsigned char *)calloc(1, 40); if(!key2) { free(key1); fprintf(stderr, "Memory allocation failed!\n"); return 2; } args = xi_getopts(argc, argv, "MD5 summer (Xiqual example program)", "[-b] [-v] [-c] | [file...]", opt); if(!args) return 0; o = (OptNode *)args->opts.head; while(o) { switch(o->name[0]) { case 'b': binary = "*"; break; case 'v': verbose = 1; break; case 'c': check = 1; } o = o->next; } n = args->leftovers.head; if(check) { while(n) { checklist(n->data); n = n->next; } } else { while(n) { sumfile(n->data); n = n->next; } } free(key1); free(key2); xi_freeopts(args); return 0; }