X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=dict%2Fdictext.c;h=09c41987dc553b6ac2c89893962cac74ad60514a;hb=ef696645cc3b7e0f4027008d1dc589c0f0f90c1f;hp=cb8f41e1037f2b686687df0dbcb1159324be29d2;hpb=60603b577514c9e6559d37e11b4ce3aa26e51be3;p=idzebra-moved-to-github.git diff --git a/dict/dictext.c b/dict/dictext.c index cb8f41e..09c4198 100644 --- a/dict/dictext.c +++ b/dict/dictext.c @@ -1,10 +1,25 @@ /* - * Copyright (C) 1994, Index Data I/S + * Copyright (C) 1994-1999, Index Data * All rights reserved. * Sebastian Hammer, Adam Dickmeiss * * $Log: dictext.c,v $ - * Revision 1.2 1994-09-28 13:07:08 adam + * Revision 1.7 1999-02-02 14:50:18 adam + * Updated WIN32 code specific sections. Changed header. + * + * Revision 1.6 1996/10/29 14:00:02 adam + * Page size given by DICT_DEFAULT_PAGESIZE in dict.h. + * + * Revision 1.5 1996/01/31 21:03:59 adam + * Extra options. + * + * Revision 1.4 1995/09/04 12:33:31 adam + * Various cleanup. YAZ util used instead. + * + * Revision 1.3 1994/10/04 17:46:54 adam + * Function options now returns arg with error option. + * + * Revision 1.2 1994/09/28 13:07:08 adam * Use log_mask_str now. * * Revision 1.1 1994/09/16 15:39:11 adam @@ -18,7 +33,7 @@ #include #include -#include +#include char *prog; @@ -26,12 +41,13 @@ int main (int argc, char **argv) { char *arg; int ret; + int use8 = 0; char *inputfile = NULL; FILE *ipf = stdin; char ipf_buf[1024]; prog = *argv; - while ((ret = options ("vh", argv, argc, &arg)) != -2) + while ((ret = options ("8vh", argv, argc, &arg)) != -2) { if (ret == 0) { @@ -39,7 +55,7 @@ int main (int argc, char **argv) inputfile = arg; else { - log (LOG_FATAL, "too many files specified\n"); + logf (LOG_FATAL, "too many files specified\n"); exit (1); } } @@ -50,12 +66,14 @@ int main (int argc, char **argv) else if (ret == 'h') { fprintf (stderr, "usage:\n" - " %s [-h] [-v n] [file]\n", prog); + " %s [-8] [-h] [-v n] [file]\n", prog); exit (1); } + else if (ret == '8') + use8 = 1; else { - log (LOG_FATAL, "unknown option"); + logf (LOG_FATAL, "Unknown option '-%s'", arg); exit (1); } } @@ -64,7 +82,7 @@ int main (int argc, char **argv) ipf = fopen (inputfile, "r"); if (!ipf) { - log (LOG_FATAL|LOG_ERRNO, "cannot open '%s'", inputfile); + logf (LOG_FATAL|LOG_ERRNO, "cannot open '%s'", inputfile); exit (1); } } @@ -73,11 +91,14 @@ int main (int argc, char **argv) char *ipf_ptr = ipf_buf; for (;*ipf_ptr && *ipf_ptr != '\n';ipf_ptr++) { - if (isalpha(*ipf_ptr) || *ipf_ptr == '_') + if ((use8 && *ipf_ptr<0) + || (*ipf_ptr > 0 && isalpha(*ipf_ptr)) + || *ipf_ptr == '_') { int i = 1; - while (ipf_ptr[i] && (isalnum(ipf_ptr[i]) || - ipf_ptr[i] == '_')) + while (ipf_ptr[i] && ((use8 && ipf_ptr[i] < 0) + || (ipf_ptr[i]>0 && isalnum(ipf_ptr[i])) + || ipf_ptr[i] == '_')) i++; if (ipf_ptr[i]) ipf_ptr[i++] = '\0';