Added test case for bug #1140 in routine test_bug_1140. Is not currently
[pazpar2-moved-to-github.git] / src / logic.c
index b484279..4ec42cf 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: logic.c,v 1.28 2007-05-14 08:01:39 marc Exp $
+/* $Id: logic.c,v 1.32 2007-05-23 21:58:28 adam Exp $
    Copyright (c) 2006-2007, Index Data.
 
 This file is part of Pazpar2.
@@ -82,7 +82,8 @@ struct parameters global_parameters =
     "",
     "",
     0,
-    0,
+    0, /* dump_records */
+    0, /* debug_mode */
     30,
     "81",
     "Index Data PazPar2",
@@ -493,7 +494,17 @@ static void session_init_databases_fun(void *context, struct database *db)
 
     new->database = db;
     new->yaz_marc = 0;
-    new->pct = pp2_charset_create();
+
+#ifdef HAVE_ICU
+    if (global_parameters.server && global_parameters.server->icu_chn)
+            new->pct
+                = pp2_charset_create(global_parameters.server->icu_chn);
+        else
+            new->pct = pp2_charset_create(0);
+#else // HAVE_ICU
+    new->pct = pp2_charset_create(0);
+#endif // HAVE_ICU
+
     new->map = 0;
     new->settings 
         = nmem_malloc(se->session_nmem, sizeof(struct settings *) * num);
@@ -559,13 +570,19 @@ void session_apply_setting(struct session *se, char *dbname, char *setting,
 {
     struct session_database *sdb = find_session_database(se, dbname);
     struct setting *new = nmem_malloc(se->session_nmem, sizeof(*new));
-    int offset = settings_offset(setting);
+    int offset = settings_offset_cprefix(setting);
 
     if (offset < 0)
     {
         yaz_log(YLOG_WARN, "Unknown setting %s", setting);
         return;
     }
+    // Jakub: This breaks the filter setting.
+    /*if (offset == PZ_ID)
+    {
+        yaz_log(YLOG_WARN, "No need to set pz:id setting. Ignoring");
+        return;
+    }*/
     new->precedence = 0;
     new->target = dbname;
     new->name = setting;