+ switch (argv[0][1])
+ {
+ case 'h':
+ case 'H':
+ fprintf (stderr, "iso2709dump [options] [file]\n");
+ fprintf (stderr, "If no file is specified stdin is used\n");
+ fprintf (stderr, "Options:\n");
+ fprintf (stderr, " -p no Starting position\n");
+ fprintf (stderr, " -l end Ending position\n");
+ fprintf (stderr, " -o file Raw MARC output file\n");
+ fprintf (stderr, " -v Verbose\n");
+ fprintf (stderr, " -q Quiet mode\n");
+ exit (1);
+ case 'p':
+ if (argv[0][2])
+ start_pos = atoi (argv[0]+2);
+ else if (argc > 0)
+ {
+ --argc;
+ start_pos = atoi (*++argv);
+ }
+ else
+ {
+ fprintf (stderr, "%s: missing start pos\n", prog);
+ exit (1);
+ }
+ break;
+ case 'l':
+ if (argv[0][2])
+ end_pos = atoi (argv[0]+2);
+ else if (argc > 0)
+ {
+ --argc;
+ end_pos = atoi (*++argv);
+ }
+ else
+ {
+ fprintf (stderr, "%s: missing end pos\n", prog);
+ exit (1);
+ }
+ break;
+ case 'o':
+ if (argv[0][2])
+ output_file = argv[0]+2;
+ else if (argc > 0)
+ {
+ --argc;
+ output_file = *++argv;
+ }
+ else
+ {
+ fprintf (stderr, "%s: missing output file\n", prog);
+ exit (1);
+ }
+ break;
+ case 'v':
+ verbose = 1;
+ break;
+ case 'q':
+ quiet = 1;
+ break;
+ case 'f':
+ if (argv[0][2])
+ filter = argv[0]+2;
+ else if (argc > 0)
+ {
+ --argc;
+ filter = *++argv;
+ }
+ else
+ {
+ fprintf (stderr, "%s: missing filter\n", prog);
+ exit (1);
+ }
+ break;
+ default:
+ fprintf (stderr, "%s: unknown option %s; use -h for help\n",
+ prog, *argv);
+ exit (1);
+ }