projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Directive s=pw sets structure to phrase if term includes blank(s).
[yaz-moved-to-github.git]
/
retrieval
/
d1_read.c
diff --git
a/retrieval/d1_read.c
b/retrieval/d1_read.c
index
8ff1563
..
78b7cdd
100644
(file)
--- a/
retrieval/d1_read.c
+++ b/
retrieval/d1_read.c
@@
-1,10
+1,16
@@
/*
/*
- * Copyright (c) 1995-2000, Index Data.
+ * Copyright (c) 1995-2001, Index Data.
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: d1_read.c,v $
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: d1_read.c,v $
- * Revision 1.35 2000-12-05 14:44:25 adam
+ * Revision 1.37 2001-02-28 09:00:06 adam
+ * Fixed problem with stack overflow for very nested records.
+ *
+ * Revision 1.36 2001/02/21 13:46:53 adam
+ * C++ fixes.
+ *
+ * Revision 1.35 2000/12/05 14:44:25 adam
* Readers skips <! ...> sections.
*
* Revision 1.34 2000/12/05 10:06:23 adam
* Readers skips <! ...> sections.
*
* Revision 1.34 2000/12/05 10:06:23 adam
@@
-348,7
+354,7
@@
data1_xattr *data1_read_xattr (data1_handle dh, NMEM m,
c = (*get_byte)(fh);
if (!c || c == '>' || c == '/')
break;
c = (*get_byte)(fh);
if (!c || c == '>' || c == '/')
break;
- *pp = p = nmem_malloc (m, sizeof(*p));
+ *pp = p = (data1_xattr *) nmem_malloc (m, sizeof(*p));
p->next = 0;
pp = &p->next;
p->value = 0;
p->next = 0;
pp = &p->next;
p->value = 0;
@@
-361,7
+367,7
@@
data1_xattr *data1_read_xattr (data1_handle dh, NMEM m,
}
wrbuf_putc (wrbuf, '\0');
len = wrbuf_len(wrbuf);
}
wrbuf_putc (wrbuf, '\0');
len = wrbuf_len(wrbuf);
- p->name = nmem_malloc (m, len);
+ p->name = (char*) nmem_malloc (m, len);
strcpy (p->name, wrbuf_buf(wrbuf));
if (c == '=')
{
strcpy (p->name, wrbuf_buf(wrbuf));
if (c == '=')
{
@@
-376,7
+382,7
@@
data1_xattr *data1_read_xattr (data1_handle dh, NMEM m,
}
wrbuf_putc (wrbuf, '\0');
len = wrbuf_len(wrbuf);
}
wrbuf_putc (wrbuf, '\0');
len = wrbuf_len(wrbuf);
- p->value = nmem_malloc (m, len);
+ p->value = (char*) nmem_malloc (m, len);
strcpy (p->value, wrbuf_buf(wrbuf));
if (c == '"')
c = (*get_byte)(fh);
strcpy (p->value, wrbuf_buf(wrbuf));
if (c == '"')
c = (*get_byte)(fh);
@@
-593,7
+599,7
@@
data1_node *data1_read_nodex (data1_handle dh, NMEM m,
parent->child = res;
d1_stack[level] = res;
d1_stack[level+1] = 0;
parent->child = res;
d1_stack[level] = res;
d1_stack[level+1] = 0;
- if (!null_tag)
+ if (level < 250 && !null_tag)
++level;
}
else /* != '<'... this is a body of text */
++level;
}
else /* != '<'... this is a body of text */