Changes.
[idzebra-moved-to-github.git] / index / extract.c
index f0f3d12..711e360 100644 (file)
@@ -1,10 +1,22 @@
 /*
- * Copyright (C) 1994-1998, Index Data I/S 
+ * Copyright (C) 1994-1998, Index Data 
  * All rights reserved.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: extract.c,v $
- * Revision 1.84  1998-06-11 15:42:22  adam
+ * Revision 1.87  1998-10-15 13:10:33  adam
+ * Fixed bug in Zebra that caused it to stop indexing when empty
+ * record was read.
+ *
+ * Revision 1.86  1998/10/13 20:33:53  adam
+ * Fixed one log message and change use ordinal to be an unsigned char.
+ *
+ * Revision 1.85  1998/09/22 10:03:41  adam
+ * Changed result sets to be persistent in the sense that they can
+ * be re-searched if needed.
+ * Fixed memory leak in rsm_or.
+ *
+ * Revision 1.84  1998/06/11 15:42:22  adam
  * Changed the way use attributes are specified in the recordId
  * specification.
  *
@@ -607,8 +619,8 @@ static struct recKeys {
 static void addIndexString (RecWord *p, const char *string, int length)
 {
     char *dst;
-    char attrSet;
-    short attrUse;
+    unsigned char attrSet;
+    unsigned short attrUse;
     int lead = 0;
     int diff = 0;
     int *pseqno = &p->seqnos[p->reg_type];
@@ -682,9 +694,10 @@ static void addSortString (RecWord *p, const char *string, int length)
     sk->next = sortKeys;
     sortKeys = sk;
 
-    sk->string = xmalloc (p->length);
-    sk->length = p->length;
-    memcpy (sk->string, p->string, p->length);
+    sk->string = xmalloc (length);
+    sk->length = length;
+    memcpy (sk->string, string, length);
+
     sk->attrSet = p->attrSet;
     sk->attrUse = p->attrUse;
 }
@@ -815,8 +828,8 @@ static void flushSortKeys (SYSNO sysno, int cmd)
 
 static void flushRecordKeys (SYSNO sysno, int cmd, struct recKeys *reckeys)
 {
-    char attrSet = -1;
-    short attrUse = -1;
+    unsigned char attrSet = (unsigned char) -1;
+    unsigned short attrUse = (unsigned short) -1;
     int seqno = 0;
     int off = 0;
 
@@ -1248,7 +1261,7 @@ static int recordExtract (SYSNO *sysno, const char *fname,
                 return 1;
             logf (LOG_WARN, "No keys generated for file %s", fname);
             logf (LOG_WARN, " The file is probably empty");
-            return 0;
+            return 1;
         }
     }
 
@@ -1421,8 +1434,8 @@ static int recordExtract (SYSNO *sysno, const char *fname,
         rec->info[recInfo_storeData] = xmalloc (recordAttr->recordSize);
         if (lseek (fi->fd, recordOffset, SEEK_SET) < 0)
         {
-            logf (LOG_ERRNO|LOG_FATAL, "seek to %ld in %s", fname,
-                  (long) recordOffset);
+            logf (LOG_ERRNO|LOG_FATAL, "seek to %ld in %s",
+                  (long) recordOffset, fname);
             exit (1);
         }
         if (read (fi->fd, rec->info[recInfo_storeData], recordAttr->recordSize)