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
Changes
[yaz-moved-to-github.git]
/
retrieval
/
d1_marc.c
diff --git
a/retrieval/d1_marc.c
b/retrieval/d1_marc.c
index
bb2ea47
..
e410b7c
100644
(file)
--- a/
retrieval/d1_marc.c
+++ b/
retrieval/d1_marc.c
@@
-3,7
+3,7
@@
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
* See the file LICENSE for details.
* Sebastian Hammer, Adam Dickmeiss
*
- * $Id: d1_marc.c,v 1.23 2002-08-19 21:09:10 adam Exp $
+ * $Id: d1_marc.c,v 1.27 2002-08-28 19:34:50 adam Exp $
*/
*/
@@
-152,26
+152,29
@@
data1_marctab *data1_read_marctab (data1_handle dh, const char *file)
static char *get_data(data1_node *n, int *len)
{
char *r;
static char *get_data(data1_node *n, int *len)
{
char *r;
- data1_node *np = 0;
while (n)
{
if (n->which == DATA1N_data)
{
while (n)
{
if (n->which == DATA1N_data)
{
+ int i;
*len = n->u.data.len;
*len = n->u.data.len;
+
+ for (i = 0; i<*len; i++)
+ if (!d1_isspace(n->u.data.data[i]))
+ break;
while (*len && d1_isspace(n->u.data.data[*len - 1]))
(*len)--;
while (*len && d1_isspace(n->u.data.data[*len - 1]))
(*len)--;
- if (*len != 0)
- return n->u.data.data;
+ *len = *len - i;
+ if (*len > 0)
+ return n->u.data.data + i;
}
if (n->which == DATA1N_tag)
}
if (n->which == DATA1N_tag)
- np = n->child;
- n = n->next;
- if (!n)
- {
- n = np;
- np = 0;
- }
+ n = n->child;
+ else if (n->which == DATA1N_data)
+ n = n->next;
+ else
+ break;
}
r = "";
*len = strlen(r);
}
r = "";
*len = strlen(r);