int ranlib(char **argv) { int rv; archive = *argv; do { rv = options & AR_T? touch() : do_ranlib(); if (!rv && *argv) archive = *argv; } while (rv && *argv++); return rv; }
int main (int argc, char *argv[]) { char **argp; int noopts = 0; int narch = 0; for (argp = argv + 1; *argp; ++argp) { if (!noopts && (*argp)[0] == '-') { int i; if ((*argp)[1] == '-') { if ((*argp)[2] == '\0') { /* end of options */ noopts = 1; continue; } else { /* long option */ for (i = 0; i < NELEM (opts); ++i) { if (0 == strcmp (&(*argp)[2], opts[i].long_opt)) { if (NULL != opts[i].optfnc) { (*opts[i].optfnc) (); break; } } } if (i >= NELEM (opts)) { fprintf (stderr, "pBlazRanLib: unrecognized option `%s'\n", *argp); usage (); } } } else { char *optp; /* short option */ for (optp = &(*argp)[1]; *optp != '\0'; ++optp) { for (i = 0; i < NELEM (opts); ++i) { if (*optp == opts[i].short_opt) { if (NULL != opts[i].optfnc) { (*opts[i].optfnc) (); break; } } } if (i >= NELEM (opts)) { fprintf (stderr, "pBlazRanLib: invalid option -- %c\n", *optp); usage (); } } } } else { /* not an option */ do_ranlib (*argp); ++narch; } } if (!narch) usage (); return 0; }