regx filter works with non-absyn
[idzebra-moved-to-github.git] / index / zinfo.c
index 4f5509b..f69af06 100644 (file)
@@ -3,7 +3,7 @@
  * All rights reserved.
  * Sebastian Hammer, Adam Dickmeiss
  *
- * $Id: zinfo.c,v 1.24 2002-02-20 23:07:54 adam Exp $
+ * $Id: zinfo.c,v 1.27 2002-04-15 09:07:10 adam Exp $
  */
 
 #include <stdlib.h>
@@ -435,7 +435,11 @@ ZebraExplainInfo zebraExplain_open (
        data1_node *node_tgtinfo, *node_zebra, *node_list, *np;
 
        zei->data1_target = read_sgml_rec (zei->dh, zei->nmem, trec);
+#if 0
        if (!zei->data1_target || !zei->data1_target->u.root.absyn)
+#else
+       if (!zei->data1_target)
+#endif
        {
            logf (LOG_FATAL, "Explain schema missing. Check profilePath");
            nmem_destroy (zei->nmem);
@@ -541,7 +545,7 @@ ZebraExplainInfo zebraExplain_open (
                                 "<multipleDBSearch>1</>\n"
                                 "<nicknames><name>Zebra</></>\n"
                                 "</></>\n" );
-           if (!zei->data1_target || !zei->data1_target->u.root.absyn)
+           if (!zei->data1_target)
            {
                logf (LOG_FATAL, "Explain schema missing. Check profilePath");
                nmem_destroy (zei->nmem);
@@ -702,6 +706,12 @@ static void zebraExplain_readDatabase (ZebraExplainInfo zei,
 int zebraExplain_curDatabase (ZebraExplainInfo zei, const char *database)
 {
     struct zebDatabaseInfoB *zdi;
+    const char *database_n = strrchr (database, '/');
+
+    if (database_n)
+        database_n++;
+    else
+        database_n = database;
     
     assert (zei);
     if (zei->curDatabaseInfo &&
@@ -709,7 +719,7 @@ int zebraExplain_curDatabase (ZebraExplainInfo zei, const char *database)
         return 0;
     for (zdi = zei->databaseInfo; zdi; zdi=zdi->next)
     {
-        if (!strcmp (zdi->databaseName, database))
+        if (!strcmp (zdi->databaseName, database_n))
             break;
     }
     if (!zdi)
@@ -786,6 +796,12 @@ int zebraExplain_newDatabase (ZebraExplainInfo zei, const char *database,
 {
     struct zebDatabaseInfoB *zdi;
     data1_node *node_dbinfo, *node_adinfo;
+    const char *database_n = strrchr (database, '/');
+
+    if (database_n)
+        database_n++;
+    else
+        database_n = database;
 
 #if ZINFO_DEBUG
     logf (LOG_LOG, "zebraExplain_newDatabase: %s", database);
@@ -793,7 +809,7 @@ int zebraExplain_newDatabase (ZebraExplainInfo zei, const char *database,
     assert (zei);
     for (zdi = zei->databaseInfo; zdi; zdi=zdi->next)
     {
-        if (!strcmp (zdi->databaseName, database))
+        if (!strcmp (zdi->databaseName, database_n))
             break;
     }
     if (zdi)
@@ -806,7 +822,7 @@ int zebraExplain_newDatabase (ZebraExplainInfo zei, const char *database,
     zdi->recordCount = 0;
     zdi->recordBytes = 0;
     zdi->readFlag = 0;
-    zdi->databaseName = nmem_strdup (zei->nmem, database);
+    zdi->databaseName = nmem_strdup (zei->nmem, database_n);
 
     zebraExplain_mergeAccessInfo (zei, 0, &zdi->accessInfo);
     
@@ -1435,7 +1451,7 @@ static void att_loadset(void *p, const char *n, const char *name)
 {
     data1_handle dh = (data1_handle) p;
     if (!data1_get_attset (dh, name))
-       logf (LOG_WARN, "Couldn't load attribute set %s", name);
+       logf (LOG_WARN, "Directive attset failed for %s", name);
 }
 
 void zebraExplain_loadAttsets (data1_handle dh, Res res)