X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fpazpar2.c;h=f23e6085afd2d0dbfb9fb5f7e9cac40f855fe54c;hb=bf7d0afdd97bd8cb1ae2d560d40fe4d84b96ef48;hp=184bd71dd693c9a235b6ee4414c9546a8ceb62fd;hpb=af02b59c657382b25d54cdb0e18e5020f310ca11;p=pazpar2-moved-to-github.git diff --git a/src/pazpar2.c b/src/pazpar2.c index 184bd71..f23e608 100644 --- a/src/pazpar2.c +++ b/src/pazpar2.c @@ -1,4 +1,4 @@ -/* $Id: pazpar2.c,v 1.41 2007-01-17 15:32:39 quinn Exp $ */ +/* $Id: pazpar2.c,v 1.43 2007-01-18 16:21:23 quinn Exp $ */ #include #include @@ -265,7 +265,6 @@ static void do_searchResponse(IOCHAN i, Z_APDU *a) if (r->presentStatus && !*r->presentStatus && r->records) { yaz_log(YLOG_DEBUG, "Records in search response"); - cl->records += *r->numberOfRecordsReturned; ingest_records(cl, r->records); } cl->state = Client_Idle; @@ -426,6 +425,17 @@ static xmlDoc *normalize_record(struct client *cl, Z_External *rec) yaz_log(YLOG_FATAL, "Unknown native_syntax in normalize_record"); exit(1); } + + if (global_parameters.dump_records) + { + fprintf(stderr, "Input Record (normalized):\n----------------\n"); +#if LIBXML_VERSION >= 20600 + xmlDocFormatDump(stderr, rdoc, 1); +#else + xmlDocDump(stderr, rdoc); +#endif + } + for (m = rprofile->maplist; m; m = m->next) { xmlDoc *new; @@ -508,6 +518,7 @@ static struct record *ingest_record(struct client *cl, Z_External *rec) res = nmem_malloc(se->nmem, sizeof(struct record)); res->next = 0; + 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); @@ -578,11 +589,13 @@ static struct record *ingest_record(struct client *cl, Z_External *rec) newm->next = 0; if (md->type == Metadata_type_generic) { - char *p; - newm->data.text = nmem_strdup(se->nmem, value); - for (p = newm->data.text + strlen(newm->data.text) - 1; - p > newm->data.text && strchr(" ,/.", *p); p--) - *p = '\0'; + char *p, *pe; + for (p = value; *p && isspace(*p); p++) + ; + for (pe = p + strlen(p) - 1; + pe > p && strchr(" ,/.:([", *pe); pe--) + *pe = '\0'; + newm->data.text = nmem_strdup(se->nmem, p); } else if (md->type == Metadata_type_year)