Added copy of CCL and MARC display
[yaz-moved-to-github.git] / util / marcdump.c
1 /*
2  * Copyright (C) 1994, Index Data I/S 
3  * All rights reserved.
4  * Sebastian Hammer, Adam Dickmeiss
5  *
6  * $Log: marcdump.c,v $
7  * Revision 1.1  1995-04-10 10:28:47  quinn
8  * Added copy of CCL and MARC display
9  *
10  */
11
12 #include <stdio.h>
13 #include <stdlib.h>
14 #include <errno.h>
15 #include <marcdisp.h>
16
17 #ifndef SEEK_SET
18 #define SEEK_SET 0
19 #endif
20 #ifndef SEEK_END
21 #define SEEK_END 2
22 #endif
23  
24 int main (int argc, char **argv)
25 {
26     FILE *inf;
27     long file_size;
28     char *buf;
29     int r;
30
31     if (argc < 2)
32     {
33         fprintf (stderr, "usage\n%s <file>\n", *argv);
34         exit (1);
35     }
36     inf = fopen (argv[1], "r");
37     if (!inf)
38     {
39         fprintf (stderr, "%s: cannot open %s:%s\n",
40                  *argv, argv[1], strerror (errno));
41         exit (1);
42     }
43     if (fseek (inf, 0L, SEEK_END))
44     {
45         fprintf (stderr, "%s: cannot seek in %s:%s\n",
46                  *argv, argv[1], strerror (errno));
47         exit (1);
48     }
49     file_size = ftell (inf);    
50     if (fseek (inf, 0L, SEEK_SET))
51     {
52         fprintf (stderr, "%s: cannot seek in %s:%s\n",
53                  *argv, argv[1], strerror (errno));
54         exit (1);
55     }
56     buf = malloc (file_size);
57     if (!buf)
58     {
59         fprintf (stderr, "%s: cannot malloc: %s\n",
60                  *argv, strerror (errno));
61         exit (1);
62     }
63     if (fread (buf, 1, file_size, inf) != file_size)
64     {
65         fprintf (stderr, "%s: cannot read %s: %s\n",
66                  *argv, argv[1], strerror (errno));
67         exit (1);
68     }
69     while ((r = marc_display (buf, stdout)) > 0)
70         buf += r;
71     exit (0);
72 }