Bump year. Change Aps->ApS
[idzebra-moved-to-github.git] / dict / dictext.c
1 /* $Id: dictext.c,v 1.11 2005-01-15 19:38:21 adam Exp $
2    Copyright (C) 1995-2005
3    Index Data ApS
4
5 This file is part of the Zebra server.
6
7 Zebra is free software; you can redistribute it and/or modify it under
8 the terms of the GNU General Public License as published by the Free
9 Software Foundation; either version 2, or (at your option) any later
10 version.
11
12 Zebra is distributed in the hope that it will be useful, but WITHOUT ANY
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with Zebra; see the file LICENSE.zebra.  If not, write to the
19 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 02111-1307, USA.
21 */
22
23
24
25 #include <string.h>
26 #include <stdlib.h>
27 #include <stdio.h>
28 #include <assert.h>
29 #include <ctype.h>
30
31 #include <zebrautl.h>
32
33 char *prog;
34
35 int main (int argc, char **argv)
36 {
37     char *arg;
38     int ret;
39     int use8 = 0;
40     char *inputfile = NULL;
41     FILE *ipf = stdin;
42     char ipf_buf[1024];
43
44     prog = *argv;
45     while ((ret = options ("8vh", argv, argc, &arg)) != -2)
46     {
47         if (ret == 0)
48         {
49             if (!inputfile)
50                 inputfile = arg;
51             else
52             {
53                 yaz_log (YLOG_FATAL, "too many files specified\n");
54                 exit (1);
55             }
56         }
57         else if (ret == 'v')
58         {
59             yaz_log_init (yaz_log_mask_str(arg), prog, NULL);
60         }
61         else if (ret == 'h')
62         {
63             fprintf (stderr, "usage:\n"
64                      "  %s [-8] [-h] [-v n] [file]\n", prog);
65             exit (1);
66         }
67         else if (ret == '8')
68             use8 = 1;
69         else
70         {
71             yaz_log (YLOG_FATAL, "Unknown option '-%s'", arg);
72             exit (1);
73         }
74     }
75     if (inputfile)
76     {
77         ipf = fopen (inputfile, "r");
78         if (!ipf)
79         {
80             yaz_log (YLOG_FATAL|YLOG_ERRNO, "cannot open '%s'", inputfile);
81             exit (1);
82         }
83     }
84     while (fgets (ipf_buf, 1023, ipf))
85     {
86         char *ipf_ptr = ipf_buf;
87         for (;*ipf_ptr && *ipf_ptr != '\n';ipf_ptr++)
88         {
89             if ((use8 && *ipf_ptr<0)
90                 || (*ipf_ptr > 0 && isalpha(*ipf_ptr))
91                 || *ipf_ptr == '_')
92             {
93                 int i = 1;
94                 while (ipf_ptr[i] && ((use8 && ipf_ptr[i] < 0)
95                                       || (ipf_ptr[i]>0 && isalnum(ipf_ptr[i]))
96                                       || ipf_ptr[i] == '_'))
97                     i++;
98                 if (ipf_ptr[i])
99                     ipf_ptr[i++] = '\0';
100                 printf ("%s\n", ipf_ptr);
101                 ipf_ptr += (i-1);
102             }
103         }
104     }
105     return 0;
106 }
107
108
109