Changed because ccl_rpn_query sets attribute set.
[yaz-moved-to-github.git] / retrieval / d1_read.c
index 34759f4..6ff7445 100644 (file)
@@ -4,7 +4,24 @@
  * Sebastian Hammer, Adam Dickmeiss
  *
  * $Log: d1_read.c,v $
- * Revision 1.27  1999-08-27 09:40:32  adam
+ * Revision 1.32  2000-01-06 11:25:59  adam
+ * Added case to prevent warning.
+ *
+ * Revision 1.31  1999/12/21 14:16:20  ian
+ * Changed retrieval module to allow data1 trees with no associated absyn.
+ * Also added a simple interface for extracting values from data1 trees using
+ * a string based tagpath.
+ *
+ * Revision 1.30  1999/11/30 13:47:12  adam
+ * Improved installation. Moved header files to include/yaz.
+ *
+ * Revision 1.29  1999/10/21 12:06:29  adam
+ * Retrieval module no longer uses ctype.h - functions.
+ *
+ * Revision 1.28  1999/10/21 09:50:33  adam
+ * SGML reader uses own isspace - it doesn't do 8-bit on WIN32!
+ *
+ * Revision 1.27  1999/08/27 09:40:32  adam
  * Renamed logf function to yaz_log. Removed VC++ project files.
  *
  * Revision 1.26  1999/07/13 13:23:48  adam
  */
 
 #include <assert.h>
-#include <ctype.h>
 #include <stdio.h>
 #include <stdlib.h>
 
-#include <xmalloc.h>
-#include <log.h>
-#include <data1.h>
+#include <yaz/xmalloc.h>
+#include <yaz/log.h>
+#include <yaz/data1.h>
 
 /*
  * get the tag which is the immediate parent of this node (this may mean
@@ -295,7 +311,7 @@ data1_node *data1_read_nodex (data1_handle dh, NMEM m,
     while (1)
     {
        data1_node *parent = level ? d1_stack[level-1] : 0;
-       while (c != '\0' && isspace(c))
+       while (c != '\0' && d1_isspace(c))
        {
            if (c == '\n')
                line++;
@@ -310,11 +326,11 @@ data1_node *data1_read_nodex (data1_handle dh, NMEM m,
            char args[256];
            size_t i;
            
-           for (i = 0; (c=(*get_byte)(fh)) && c != '>' && !isspace(c);)
+           for (i = 0; (c=(*get_byte)(fh)) && c != '>' && !d1_isspace(c);)
                if (i < (sizeof(tag)-1))
                    tag[i++] = c;
            tag[i] = '\0';
-           while (isspace(c))
+           while (d1_isspace(c))
                c = (*get_byte)(fh);
            for (i = 0; c && c != '>'; c = (*get_byte)(fh))
                if (i < (sizeof(args)-1))
@@ -363,9 +379,8 @@ data1_node *data1_read_nodex (data1_handle dh, NMEM m,
            {
                if (!(absyn = data1_get_absyn (dh, tag)))
                {
-                   yaz_log(LOG_WARN, "Unable to acquire abstract syntax "
-                           "for '%s'", tag);
-                   return 0;
+                   yaz_log(LOG_WARN, "Unable to acquire abstract syntax " "for '%s'", tag); 
+                    /* It's now OK for a record not to have an absyn */
                }
                res = data1_mk_node (dh, m);
                res->which = DATA1N_root;
@@ -500,7 +515,7 @@ data1_node *data1_read_nodex (data1_handle dh, NMEM m,
            {
                if (*src == '\n')
                    line++;
-               if (isspace (*src))
+               if (d1_isspace (*src))
                    prev_char = ' ';
                else
                {
@@ -531,7 +546,7 @@ data1_node *data1_read_node (data1_handle dh, const char **buf, NMEM m)
     WRBUF wrbuf = wrbuf_alloc();
     data1_node *node;
 
-    node = data1_read_nodex(dh, m, getc_mem, buf, wrbuf);
+    node = data1_read_nodex(dh, m, getc_mem, (void *) (buf), wrbuf);
     wrbuf_free (wrbuf, 1);
     return node;
 }