Added support for raw retrieval (element set name "R").
authorAdam Dickmeiss <adam@indexdata.dk>
Mon, 22 Jan 2001 11:41:41 +0000 (11:41 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Mon, 22 Jan 2001 11:41:41 +0000 (11:41 +0000)
CHANGELOG
index/retrieve.c
recctrl/rectext.c

index c6c8fe7..3295c9d 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,6 @@
+Added support for raw retrieval. Element Set Name R forces the
+text filter which returns the record in its original form.
+
 Added numerical sort - triggered by structure=numeric (4=109).
 
 Remote record import using Z39.50 Extended Services and Segments.
 Added numerical sort - triggered by structure=numeric (4=109).
 
 Remote record import using Z39.50 Extended Services and Segments.
index 2eb556a..d824a1a 100644 (file)
@@ -4,7 +4,10 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: retrieve.c,v $
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: retrieve.c,v $
- * Revision 1.13  2000-03-20 19:08:36  adam
+ * Revision 1.14  2001-01-22 11:41:41  adam
+ * Added support for raw retrieval (element set name "R").
+ *
+ * Revision 1.13  2000/03/20 19:08:36  adam
  * Added remote record import using Z39.50 extended services and Segment
  * Requests.
  *
  * Added remote record import using Z39.50 extended services and Segment
  * Requests.
  *
@@ -146,6 +149,12 @@ int zebra_record_fetch (ZebraHandle zh, int sysno, int score, ODR stream,
     *basenamep = (char *) odr_malloc (stream, strlen(basename)+1);
     strcpy (*basenamep, basename);
 
     *basenamep = (char *) odr_malloc (stream, strlen(basename)+1);
     strcpy (*basenamep, basename);
 
+    if (comp && comp->which == Z_RecordComp_simple &&
+        comp->u.simple->which == Z_ElementSetNames_generic)
+    {
+        if (!strcmp (comp->u.simple->u.generic, "R"))
+            file_type = "text";
+    }
     if (!(rt = recType_byName (zh->service->recTypes,
                               file_type, subType, &clientData)))
     {
     if (!(rt = recType_byName (zh->service->recTypes,
                               file_type, subType, &clientData)))
     {
index 29f8a6b..f102e7c 100644 (file)
@@ -1,10 +1,13 @@
 /*
 /*
- * Copyright (C) 1994-1998, Index Data 
+ * Copyright (C) 1994-2001, Index Data 
  * All rights reserved.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: rectext.c,v $
  * All rights reserved.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: rectext.c,v $
- * Revision 1.13  1999-09-07 07:19:21  adam
+ * Revision 1.14  2001-01-22 11:41:41  adam
+ * Added support for raw retrieval (element set name "R").
+ *
+ * Revision 1.13  1999/09/07 07:19:21  adam
  * Work on character mapping. Implemented replace rules.
  *
  * Revision 1.12  1999/05/26 07:49:14  adam
  * Work on character mapping. Implemented replace rules.
  *
  * Revision 1.12  1999/05/26 07:49:14  adam
@@ -170,6 +173,9 @@ static int text_retrieve (void *clientData, struct recRetrieveCtrl *p)
         p->comp->u.simple->which == Z_ElementSetNames_generic)
         elementSetName = p->comp->u.simple->u.generic;
 
         p->comp->u.simple->which == Z_ElementSetNames_generic)
         elementSetName = p->comp->u.simple->u.generic;
 
+    /* don't make header for the R(aw) element set name */
+    if (elementSetName && !strcmp(elementSetName, "R"))
+        start_flag = 0;
     while (1)
     {
         if (text_ptr + 4096 >= text_size)
     while (1)
     {
         if (text_ptr + 4096 >= text_size)