X-Git-Url: http://git.indexdata.com/?p=idzebra-moved-to-github.git;a=blobdiff_plain;f=dict%2Fdictext.c;h=11dce88af1dd028435b264412515e3ec12799368;hp=ebace7ac6d98d0e070290ef988d2714afc331d0a;hb=732870c555c7d32c5d2b6a4914c6fa7232eb26b2;hpb=1b29b77f09ae310c41f9cd0a6eeea2d562b7729e diff --git a/dict/dictext.c b/dict/dictext.c index ebace7a..11dce88 100644 --- a/dict/dictext.c +++ b/dict/dictext.c @@ -1,40 +1,49 @@ -/* - * Copyright (C) 1994, Index Data I/S - * All rights reserved. - * Sebastian Hammer, Adam Dickmeiss - * - * $Log: dictext.c,v $ - * 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 - * Initial code of lookup - not tested yet. - * - */ +/* This file is part of the Zebra server. + Copyright (C) 1994-2011 Index Data + +Zebra is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +Zebra is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +*/ + + +#if HAVE_CONFIG_H +#include +#endif #include #include #include #include #include -#include +#include +#include char *prog; -int main (int argc, char **argv) +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) { @@ -42,49 +51,54 @@ int main (int argc, char **argv) inputfile = arg; else { - log (LOG_FATAL, "too many files specified\n"); - exit (1); + yaz_log(YLOG_FATAL, "too many files specified\n"); + exit(1); } } else if (ret == 'v') { - log_init (log_mask_str(arg), prog, NULL); + yaz_log_init(yaz_log_mask_str(arg), prog, NULL); } else if (ret == 'h') { - fprintf (stderr, "usage:\n" - " %s [-h] [-v n] [file]\n", prog); - exit (1); + fprintf(stderr, "usage:\n" + " %s [-8] [-h] [-v n] [file]\n", prog); + exit(1); } + else if (ret == '8') + use8 = 1; else { - log (LOG_FATAL, "Unknown option '-%s'", arg); - exit (1); + yaz_log(YLOG_FATAL, "Unknown option '-%s'", arg); + exit(1); } } if (inputfile) { - ipf = fopen (inputfile, "r"); + ipf = fopen(inputfile, "r"); if (!ipf) { - log (LOG_FATAL|LOG_ERRNO, "cannot open '%s'", inputfile); - exit (1); + yaz_log(YLOG_FATAL|YLOG_ERRNO, "cannot open '%s'", inputfile); + exit(1); } } - while (fgets (ipf_buf, 1023, ipf)) + while (fgets(ipf_buf, 1023, ipf)) { 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'; - printf ("%s\n", ipf_ptr); + printf("%s\n", ipf_ptr); ipf_ptr += (i-1); } } @@ -94,3 +108,12 @@ int main (int argc, char **argv) +/* + * Local variables: + * c-basic-offset: 4 + * c-file-style: "Stroustrup" + * indent-tabs-mode: nil + * End: + * vim: shiftwidth=4 tabstop=8 expandtab + */ +