}
main(int argc, char *argv[]){    int i, idlfiles;    IncludePathEntry *inc, *inc_head = NULL;    inc_head = malloc(sizeof *inc);    if (!inc_head)        return 1;    inc_head->directory = ".";    inc_head->next = NULL;    for (i = 1; i < argc; i++) {        if (argv[i][0] != '-')            break;        switch (argv[i][1]) {          case 'd':            generate_docs = TRUE;            break;          case 'i':            generate_invoke = TRUE;            break;          case 'h':                generate_headers = TRUE;                break;          case 'w':            enable_warnings = TRUE;            break;          case 'v':            verbose_mode = TRUE;            break;          case 'n':            generate_nothing = TRUE;            break;          case 'I':            if (i == argc) {                fputs("ERROR: missing path after -I\n", stderr);                xpidl_usage(argc, argv);                return 1;            }            inc = malloc(sizeof *inc);            if (!inc)                return 1;            inc->directory = argv[i + 1];#ifdef DEBUG_shaver            fprintf(stderr, "adding %s to include path\n", inc->directory);#endif            inc->next = inc_head;            inc_head = inc;            i++;            break;          default:            xpidl_usage(argc, argv);            return 1;        }    }        if (!(generate_docs || generate_invoke || generate_headers)) {        xpidl_usage(argc, argv);        return 1;    }    for (idlfiles = 0; i < argc; i++) {        if (argv[i][0] && argv[i][0] != '-')            idlfiles += xpidl_process_idl(argv[i], inc_head);    }        if (!idlfiles) {        xpidl_usage(argc, argv);        return 1;    }    return 0;}