Updated WIN32 code specific sections. Changed header.
[idzebra-moved-to-github.git] / dict / dictext.c
index ebace7a..09c4198 100644 (file)
@@ -1,10 +1,22 @@
 /*
- * 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.3  1994-10-04 17:46:54  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
@@ -21,7 +33,7 @@
 #include <assert.h>
 #include <ctype.h>
 
-#include <util.h>
+#include <zebrautl.h>
 
 char *prog;
 
@@ -29,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)
         {
@@ -42,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);
             }
         }
@@ -53,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 '-%s'", arg);
+            logf (LOG_FATAL, "Unknown option '-%s'", arg);
             exit (1);
         }
     }
@@ -67,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);
         }
     }
@@ -76,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';