X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=retrieval%2Fd1_read.c;h=6ff74457ec7d554e023e71b32fb3df194a637e32;hb=37b3d8433b89248def810d7cfa9b110893519f65;hp=34759f4d633f97a6ab8a37ef5ec5f0c980aa4064;hpb=b440dce0831a72bebe4f4821ab7771cc05e8facb;p=yaz-moved-to-github.git diff --git a/retrieval/d1_read.c b/retrieval/d1_read.c index 34759f4..6ff7445 100644 --- a/retrieval/d1_read.c +++ b/retrieval/d1_read.c @@ -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 @@ -146,13 +163,12 @@ */ #include -#include #include #include -#include -#include -#include +#include +#include +#include /* * 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; }