Changed character map facility so that admin can specify character
[idzebra-moved-to-github.git] / rset / rsrel.c
index 74bc84f..d344b01 100644 (file)
@@ -4,7 +4,17 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: rsrel.c,v $
- * Revision 1.18  1997-09-24 13:36:41  adam
+ * Revision 1.21  1997-11-18 10:05:08  adam
+ * Changed character map facility so that admin can specify character
+ * mapping files for each register type, w, p, etc.
+ *
+ * Revision 1.20  1997/10/31 12:37:55  adam
+ * Code calls xfree() instead of free().
+ *
+ * Revision 1.19  1997/10/01 11:44:06  adam
+ * Small improvement of new ranking.
+ *
+ * Revision 1.18  1997/09/24 13:36:41  adam
  * More work on new ranking algorithm.
  *
  * Revision 1.17  1997/09/22 12:39:07  adam
@@ -246,7 +256,7 @@ static void relevance (struct rset_rel_info *info, rset_relevance_parms *parms)
            no_occur = score_sum = 0;
            memcpy (isam_prev_buf, isam_buf[min], info->key_size);
            for (i = 0; i<parms->no_isam_positions; i++)
-               pos_tf[i] = 0;
+               pos_tf[i] = -10;
        }
        else if (min < 0 ||
                 (*parms->cmp)(isam_buf[min], isam_prev_buf) > 1)
@@ -259,7 +269,7 @@ static void relevance (struct rset_rel_info *info, rset_relevance_parms *parms)
            no_occur = score_sum = 0;
            memcpy (isam_prev_buf, isam_buf[min], info->key_size);
            for (i = 0; i<parms->no_isam_positions; i++)
-               pos_tf[i] = 0;
+               pos_tf[i] = -10;
        }
        pos = (*parms->get_pos)(isam_buf[min]);
        logf (LOG_LOG, "pos=%d", pos);
@@ -268,7 +278,7 @@ static void relevance (struct rset_rel_info *info, rset_relevance_parms *parms)
            int d = pos - pos_tf[i];
 
            no_occur++;
-           if (!pos_tf[i] && i != min)
+           if (pos_tf[i] < 0 && i != min)
                continue;
            if (d < 10)
                d = 10;
@@ -421,7 +431,7 @@ static void r_close (RSFD rfd)
         if (*rfdp == rfd)
         {
             *rfdp = (*rfdp)->next;
-            free (rfd);
+            xfree (rfd);
             return;
         }
     logf (LOG_FATAL, "r_close but no rfd match!");