+ no++;
+ switch (ret)
+ {
+ case 0:
+ inf = fopen (arg, "r");
+ if (!inf)
+ {
+ fprintf (stderr, "%s: cannot open %s:%s\n",
+ prog, arg, strerror (errno));
+ exit (1);
+ }
+ if (fseek (inf, 0L, SEEK_END))
+ {
+ fprintf (stderr, "%s: cannot seek in %s:%s\n",
+ prog, arg, strerror (errno));
+ exit (1);
+ }
+ file_size = ftell (inf);
+ if (fseek (inf, 0L, SEEK_SET))
+ {
+ fprintf (stderr, "%s: cannot seek in %s:%s\n",
+ prog, arg, strerror (errno));
+ exit (1);
+ }
+ buf = (char *)xmalloc (file_size);
+ if (!buf)
+ {
+ fprintf (stderr, "%s: cannot xmalloc: %s\n",
+ prog, strerror (errno));
+ exit (1);
+ }
+ if ((long) fread (buf, 1, file_size, inf) != file_size)
+ {
+ fprintf (stderr, "%s: cannot read %s: %s\n",
+ prog, arg, strerror (errno));
+ exit (1);
+ }
+ while ((ret = marc_display_ex (buf, stdout, verbose)) > 0)
+ {
+ buf += ret;
+ count++;
+ }
+ fclose (inf);
+ xfree (buf);
+ break;
+ case 'v':
+ verbose++;
+ break;
+ default:
+ fprintf (stderr, "Usage: %s [-v] file...\n", prog);
+ exit (1);
+ }