Function recordExtract modified so that files with no keys (possibly empty)
[idzebra-moved-to-github.git] / index / extract.c
index 798354a..5055e72 100644 (file)
@@ -4,7 +4,17 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: extract.c,v $
- * Revision 1.49  1996-02-05 12:29:57  adam
+ * Revision 1.52  1996-04-25 13:27:57  adam
+ * Function recordExtract modified so that files with no keys (possibly empty)
+ * are ignored.
+ *
+ * Revision 1.51  1996/03/19  11:08:42  adam
+ * Bug fix: Log preamble wasn't always turned off after recordExtract.
+ *
+ * Revision 1.50  1996/02/12  18:45:36  adam
+ * New fileVerboseFlag in record group control.
+ *
+ * Revision 1.49  1996/02/05  12:29:57  adam
  * Logging reduced a bit.
  * The remaining running time is estimated during register merge.
  *
@@ -826,6 +836,11 @@ static int recordExtract (SYSNO *sysno, const char *fname,
             logf (LOG_WARN, "Couldn't extract file %s, code %d", fname, r);
             return 0;
         }
+        if (reckeys.buf_used == 0)
+        {
+            logf (LOG_WARN, "Empty file %s", fname);
+            return 0;
+        }
     }
 
     /* perform match if sysno not known and if match criteria is specified */
@@ -864,10 +879,8 @@ static int recordExtract (SYSNO *sysno, const char *fname,
             return 1;
         }
         logInfo.op = "add";
-#if 0
-        logf (LOG_LOG, "update %s %s", rGroup->recordType,
-              fname);
-#endif
+        if (rGroup->fileVerboseFlag)
+            logf (LOG_LOG, "add %s %s", rGroup->recordType, fname);
         rec = rec_new (records);
         *sysno = rec->sysno;
 
@@ -897,9 +910,8 @@ static int recordExtract (SYSNO *sysno, const char *fname,
             }
             else
             {
-#if 0
-                logf (LOG_LOG, "delete %s %s", rGroup->recordType, fname);
-#endif
+                if (rGroup->fileVerboseFlag)
+                    logf (LOG_LOG, "delete %s %s", rGroup->recordType, fname);
                 records_deleted++;
                 if (matchStr)
                     dict_delete (matchDict, matchStr);
@@ -916,10 +928,8 @@ static int recordExtract (SYSNO *sysno, const char *fname,
             }
             else
             {
-#if 0
-                logf (LOG_LOG, "update %s %s", rGroup->recordType,
-                      fname);
-#endif
+                if (rGroup->fileVerboseFlag)
+                    logf (LOG_LOG, "update %s %s", rGroup->recordType, fname);
                 flushRecordKeys (*sysno, 1, &reckeys, rGroup->databaseName); 
                 records_updated++;
             }
@@ -990,14 +1000,13 @@ static int recordExtract (SYSNO *sysno, const char *fname,
         rec_strdup (rGroup->databaseName, &rec->size[recInfo_databaseName]); 
 
     rec_put (records, &rec);
-    log_event_start (NULL, NULL);
     return 1;
 }
 
 int fileExtract (SYSNO *sysno, const char *fname, 
                  const struct recordGroup *rGroupP, int deleteFlag)
 {
-    int i, fd;
+    int r, i, fd;
     char gprefix[128];
     char ext[128];
     char ext_res[128];
@@ -1037,18 +1046,16 @@ int fileExtract (SYSNO *sysno, const char *fname,
             sprintf (ext_res, "%srecordType", gprefix);
             if (!(rGroup->recordType = res_get (common_resource, ext_res)))
             {
-#if 0
-                logf (LOG_LOG, "? %s", fname);
-#endif
+                if (rGroup->fileVerboseFlag)
+                    logf (LOG_LOG, "? %s", fname);
                 return 0;
             }
         }
     }
     if (!rGroup->recordType)
     {
-#if 0
-        logf (LOG_LOG, "? record %s", fname);
-#endif
+        if (rGroup->fileVerboseFlag)
+            logf (LOG_LOG, "? record %s", fname);
         return 0;
     }
     if (!(recType = recType_byName (rGroup->recordType, subType)))
@@ -1119,10 +1126,11 @@ int fileExtract (SYSNO *sysno, const char *fname,
         }
     }
     fi = file_read_start (fd);
-    recordExtract (sysno, fname, rGroup, deleteFlag, fi, recType, subType);
+    r = recordExtract (sysno, fname, rGroup, deleteFlag, fi, recType, subType);
+    log_event_start (NULL, NULL);
     file_read_stop (fi);
     if (fd != -1)
         close (fd);
-    return 1;
+    return r;
 }