projects
/
idzebra-moved-to-github.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7d4f4b3
)
use data1_mk_tag_n
author
Adam Dickmeiss
<adam@indexdata.dk>
Mon, 19 Aug 2002 21:11:27 +0000
(21:11 +0000)
committer
Adam Dickmeiss
<adam@indexdata.dk>
Mon, 19 Aug 2002 21:11:27 +0000
(21:11 +0000)
recctrl/regxread.c
patch
|
blob
|
history
diff --git
a/recctrl/regxread.c
b/recctrl/regxread.c
index
78b4449
..
fead3a8
100644
(file)
--- a/
recctrl/regxread.c
+++ b/
recctrl/regxread.c
@@
-1,4
+1,4
@@
-/* $Id: regxread.c,v 1.44 2002-08-02 19:26:56 adam Exp $
+/* $Id: regxread.c,v 1.45 2002-08-19 21:11:27 adam Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
Index Data Aps
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002
Index Data Aps
@@
-828,50
+828,21
@@
static void tagStrip (const char **tag, int *len)
static void tagBegin (struct lexSpec *spec,
const char *tag, int len)
{
static void tagBegin (struct lexSpec *spec,
const char *tag, int len)
{
- struct data1_node *parent;
- data1_element *elem = NULL;
- data1_node *partag;
- data1_node *res;
- data1_element *e = NULL;
- int localtag = 0;
-
if (spec->d1_level == 0)
{
logf (LOG_WARN, "in element begin. No record type defined");
return ;
}
tagStrip (&tag, &len);
if (spec->d1_level == 0)
{
logf (LOG_WARN, "in element begin. No record type defined");
return ;
}
tagStrip (&tag, &len);
+ if (spec->d1_stack[spec->d1_level])
+ tagDataRelease (spec);
- parent = spec->d1_stack[spec->d1_level -1];
- partag = get_parent_tag(spec->dh, parent);
-
- res = data1_mk_node2 (spec->dh, spec->m, DATA1N_tag, parent);
-
- if (len >= DATA1_LOCALDATA)
- res->u.tag.tag = (char *) nmem_malloc (spec->m, len+1);
- else
- res->u.tag.tag = res->lbuf;
-
- memcpy (res->u.tag.tag, tag, len);
- res->u.tag.tag[len] = '\0';
-
#if REGX_DEBUG
logf (LOG_LOG, "begin tag %s (%d)", res->u.tag.tag, spec->d1_level);
#endif
#if REGX_DEBUG
logf (LOG_LOG, "begin tag %s (%d)", res->u.tag.tag, spec->d1_level);
#endif
- if (parent->which == DATA1N_variant)
- return ;
- if (partag)
- if (!(e = partag->u.tag.element))
- localtag = 1;
-
- elem = data1_getelementbytagname (spec->dh,
- spec->d1_stack[0]->u.root.absyn,
- e, res->u.tag.tag);
- res->u.tag.element = elem;
- if (spec->d1_stack[spec->d1_level])
- tagDataRelease (spec);
- spec->d1_stack[spec->d1_level] = res;
+ spec->d1_stack[spec->d1_level] = data1_mk_tag_n (
+ spec->dh, spec->m, tag, len, 0, spec->d1_stack[spec->d1_level -1]);
spec->d1_stack[++(spec->d1_level)] = NULL;
}
spec->d1_stack[++(spec->d1_level)] = NULL;
}