-/*
- * 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.
- *
- */
+/* $Id: dictext.c,v 1.9 2002-08-02 19:26:55 adam Exp $
+ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
+ Index Data Aps
+
+This file is part of the Zebra server.
+
+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 Zebra; see the file LICENSE.zebra. If not, write to the
+Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+02111-1307, USA.
+*/
+
+
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <ctype.h>
-#include <util.h>
+#include <zebrautl.h>
char *prog;
{
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)
{
inputfile = arg;
else
{
- log (LOG_FATAL, "too many files specified\n");
+ logf (LOG_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);
+ " %s [-8] [-h] [-v n] [file]\n", prog);
exit (1);
}
+ else if (ret == '8')
+ use8 = 1;
else
{
- log (LOG_FATAL, "Unknown option '-%s'", arg);
+ logf (LOG_FATAL, "Unknown option '-%s'", arg);
exit (1);
}
}
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);
}
}
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';