-/* $Id: logic.c,v 1.20 2007-04-23 21:05:23 adam Exp $
+/* $Id: logic.c,v 1.21 2007-04-25 08:55:01 marc Exp $
Copyright (c) 2006-2007, Index Data.
This file is part of Pazpar2.
}
s->termlists[i].name = nmem_strdup(s->nmem, type);
- s->termlists[i].termlist = termlist_create(s->nmem, s->expected_maxrecs, 15);
+ s->termlists[i].termlist
+ = termlist_create(s->nmem, s->expected_maxrecs, 15);
s->num_termlists = i + 1;
}
termlist_insert(s->termlists[i].termlist, value);
yaz_log(YLOG_WARN, "No settings for %s", sdb->database->url);
return -1;
}
- if ((s = session_setting_oneval(sdb, PZ_NATIVESYNTAX)) && !strncmp(s, "iso2709", 7))
+ if ((s = session_setting_oneval(sdb, PZ_NATIVESYNTAX))
+ && !strncmp(s, "iso2709", 7))
{
char *encoding = "marc-8s", *e;
yaz_iconv_t cm;
// This analyzes settings and recomputes any supporting data structures
// if necessary.
-static int prepare_session_database(struct session *se, struct session_database *sdb)
+static int prepare_session_database(struct session *se,
+ struct session_database *sdb)
{
if (!sdb->settings)
{
- yaz_log(YLOG_WARN, "No settings associated with %s", sdb->database->url);
+ yaz_log(YLOG_WARN,
+ "No settings associated with %s", sdb->database->url);
return -1;
}
if (sdb->settings[PZ_NATIVESYNTAX] && !sdb->yaz_marc)
}
-void session_set_watch(struct session *s, int what, session_watchfun fun, void *data)
+void session_set_watch(struct session *s, int what,
+ session_watchfun fun, void *data)
{
s->watchlist[what].fun = fun;
s->watchlist[what].data = data;
}
// Associates a set of clients with a session;
-// Note: Session-databases represent databases with per-session setting overrides
+// Note: Session-databases represent databases with per-session
+// setting overrides
int select_targets(struct session *se, struct database_criterion *crit)
{
while (se->clients)
new->values = 0;
for (subi = 0; subi < subnum; subi++)
{
- struct database_criterion_value *newv = nmem_malloc(m, sizeof(*newv));
+ struct database_criterion_value *newv
+ = nmem_malloc(m, sizeof(*newv));
newv->value = subvalues[subi];
newv->next = new->values;
new->values = newv;
{
if (prepare_session_database(se, client_get_database(cl)) < 0)
return "CONFIG_ERROR";
- if (client_parse_query(cl, query) < 0) // Query must parse for all targets
+ // Query must parse for all targets
+ if (client_parse_query(cl, query) < 0)
return "QUERY";
}
new->database = db;
new->yaz_marc = 0;
new->map = 0;
- new->settings = nmem_malloc(se->session_nmem, sizeof(struct settings *) * num);
+ new->settings
+ = nmem_malloc(se->session_nmem, sizeof(struct settings *) * num);
memset(new->settings, 0, sizeof(struct settings*) * num);
+
if (db->settings)
{
for (i = 0; i < num; i++)
// Probably session_init_databases_fun should be refactored instead of
// called here.
-static struct session_database *load_session_database(struct session *se, char *id)
+static struct session_database *load_session_database(struct session *se,
+ char *id)
{
struct database *db = find_database(id, 0);
}
// Find an existing session database. If not found, load it
-static struct session_database *find_session_database(struct session *se, char *id)
+static struct session_database *find_session_database(struct session *se,
+ char *id)
{
struct session_database *sdb;
}
// Apply a session override to a database
-void session_apply_setting(struct session *se, char *dbname, char *setting, char *value)
+void session_apply_setting(struct session *se, char *dbname, char *setting,
+ char *value)
{
struct session_database *sdb = find_session_database(se, dbname);
struct setting *new = nmem_malloc(se->session_nmem, sizeof(*new));
return 0;
}
-struct record_cluster **show(struct session *s, struct reclist_sortparms *sp, int start,
- int *num, int *total, int *sumhits, NMEM nmem_show)
+struct record_cluster **show(struct session *s, struct reclist_sortparms *sp,
+ int start, int *num, int *total, int *sumhits,
+ NMEM nmem_show)
{
struct record_cluster **recs = nmem_malloc(nmem_show, *num
* sizeof(struct record_cluster *));
res->client = cl;
res->metadata = nmem_malloc(se->nmem,
sizeof(struct record_metadata*) * service->num_metadata);
- memset(res->metadata, 0, sizeof(struct record_metadata*) * service->num_metadata);
+ memset(res->metadata, 0,
+ sizeof(struct record_metadata*) * service->num_metadata);
mergekey_norm = (xmlChar *) nmem_strdup(se->nmem, (char*) mergekey);
xmlFree(mergekey);
// First, find out what field we're looking at
for (imeta = 0; imeta < service->num_metadata; imeta++)
- if (!strcmp((const char *) type, service->metadata[imeta].name))
+ if (!strcmp((const char *) type,
+ service->metadata[imeta].name))
{
md = &service->metadata[imeta];
if (md->sortkey_offset >= 0)
}
if (!md)
{
- yaz_log(YLOG_WARN, "Ignoring unknown metadata element: %s", type);
+ yaz_log(YLOG_WARN,
+ "Ignoring unknown metadata element: %s", type);
continue;
}
}
else
{
- yaz_log(YLOG_WARN, "Unknown type in metadata element %s", type);
+ yaz_log(YLOG_WARN,
+ "Unknown type in metadata element %s", type);
continue;
}
- if (md->type == Metadata_type_year && md->merge != Metadata_merge_range)
+ if (md->type == Metadata_type_year
+ && md->merge != Metadata_merge_range)
{
yaz_log(YLOG_WARN, "Only range merging supported for years");
continue;
{
struct record_metadata *mnode;
for (mnode = *wheretoput; mnode; mnode = mnode->next)
- if (!strcmp((const char *) mnode->data.text, newm->data.text))
+ if (!strcmp((const char *) mnode->data.text,
+ newm->data.text))
break;
if (!mnode)
{
}
else if (md->merge == Metadata_merge_longest)
{
- if (!*wheretoput ||
- strlen(newm->data.text) > strlen((*wheretoput)->data.text))
+ if (!*wheretoput
+ || strlen(newm->data.text)
+ > strlen((*wheretoput)->data.text))
{
*wheretoput = newm;
if (sk)
char *s = nmem_strdup(se->nmem, newm->data.text);
if (!cluster->sortkeys[md->sortkey_offset])
cluster->sortkeys[md->sortkey_offset] =
- nmem_malloc(se->nmem, sizeof(union data_types));
+ nmem_malloc(se->nmem,
+ sizeof(union data_types));
normalize_mergekey(s,
(sk->type == Metadata_sortkey_skiparticle));
cluster->sortkeys[md->sortkey_offset]->text = s;
}
}
}
- else if (md->merge == Metadata_merge_all || md->merge == Metadata_merge_no)
+ else if (md->merge == Metadata_merge_all
+ || md->merge == Metadata_merge_no)
{
newm->next = *wheretoput;
*wheretoput = newm;
#ifdef GAGA
if (sk)
{
- union data_types *sdata = cluster->sortkeys[md->sortkey_offset];
- yaz_log(YLOG_LOG, "SK range: %d-%d", sdata->number.min, sdata->number.max);
+ union data_types *sdata
+ = cluster->sortkeys[md->sortkey_offset];
+ yaz_log(YLOG_LOG, "SK range: %d-%d",
+ sdata->number.min, sdata->number.max);
}
#endif
}
else
- yaz_log(YLOG_WARN, "Don't know how to merge on element name %s", md->name);
+ yaz_log(YLOG_WARN,
+ "Don't know how to merge on element name %s",
+ md->name);
if (md->rank)
relevance_countwords(se->relevance, cluster,
type = value = 0;
}
else
- yaz_log(YLOG_WARN, "Unexpected element %s in internal record", n->name);
+ yaz_log(YLOG_WARN,
+ "Unexpected element %s in internal record", n->name);
}
if (type)
xmlFree(type);