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
About log system changes
[yaz-moved-to-github.git]
/
src
/
odr_cons.c
diff --git
a/src/odr_cons.c
b/src/odr_cons.c
index
7f455dd
..
dce204d
100644
(file)
--- a/
src/odr_cons.c
+++ b/
src/odr_cons.c
@@
-1,10
+1,16
@@
/*
/*
- * Copyright (c) 1995-2003, Index Data
+ * Copyright (c) 1995-2004, Index Data
* See the file LICENSE for details.
*
* See the file LICENSE for details.
*
- * $Id: odr_cons.c,v 1.1 2003-10-27 12:21:33 adam Exp $
+ * $Id: odr_cons.c,v 1.4 2004-10-15 00:19:00 adam Exp $
*
*/
*
*/
+
+/**
+ * \file odr_cons.c
+ * \brief Implements ODR constructed codec.
+ */
+
#if HAVE_CONFIG_H
#include <config.h>
#endif
#if HAVE_CONFIG_H
#include <config.h>
#endif
@@
-43,6
+49,8
@@
int odr_constructed_begin(ODR o, void *p, int zclass, int tag,
}
o->op->stack[++(o->op->stackp)].lenb = o->bp;
o->op->stack[o->op->stackp].len_offset = odr_tell(o);
}
o->op->stack[++(o->op->stackp)].lenb = o->bp;
o->op->stack[o->op->stackp].len_offset = odr_tell(o);
+ o->op->stack_names[o->op->stackp] = name ? name : "?";
+ o->op->stack_names[o->op->stackp + 1] = 0;
#ifdef ODR_DEBUG
fprintf(stderr, "[cons_begin(%d)]", o->op->stackp);
#endif
#ifdef ODR_DEBUG
fprintf(stderr, "[cons_begin(%d)]", o->op->stackp);
#endif
@@
-54,6
+62,7
@@
int odr_constructed_begin(ODR o, void *p, int zclass, int tag,
if (odr_write(o, dummy, lenlen) < 0) /* dummy */
{
if (odr_write(o, dummy, lenlen) < 0) /* dummy */
{
+ o->op->stack_names[o->op->stackp] = 0;
--(o->op->stackp);
return 0;
}
--(o->op->stackp);
return 0;
}
@@
-64,6
+73,7
@@
int odr_constructed_begin(ODR o, void *p, int zclass, int tag,
odr_max(o))) < 0)
{
odr_seterror(o, OOTHER, 31);
odr_max(o))) < 0)
{
odr_seterror(o, OOTHER, 31);
+ o->op->stack_names[o->op->stackp] = 0;
--(o->op->stackp);
return 0;
}
--(o->op->stackp);
return 0;
}
@@
-72,6
+82,7
@@
int odr_constructed_begin(ODR o, void *p, int zclass, int tag,
if (o->op->stack[o->op->stackp].len > odr_max(o))
{
odr_seterror(o, OOTHER, 32);
if (o->op->stack[o->op->stackp].len > odr_max(o))
{
odr_seterror(o, OOTHER, 32);
+ o->op->stack_names[o->op->stackp] = 0;
--(o->op->stackp);
return 0;
}
--(o->op->stackp);
return 0;
}
@@
-79,12
+90,13
@@
int odr_constructed_begin(ODR o, void *p, int zclass, int tag,
else if (o->direction == ODR_PRINT)
{
odr_prname(o, name);
else if (o->direction == ODR_PRINT)
{
odr_prname(o, name);
- fprintf(o->print, "{\n");
+ odr_printf(o, "{\n");
o->indent++;
}
else
{
odr_seterror(o, OOTHER, 33);
o->indent++;
}
else
{
odr_seterror(o, OOTHER, 33);
+ o->op->stack_names[o->op->stackp] = 0;
--(o->op->stackp);
return 0;
}
--(o->op->stackp);
return 0;
}
@@
-117,6
+129,7
@@
int odr_constructed_end(ODR o)
odr_seterror(o, OOTHER, 34);
return 0;
}
odr_seterror(o, OOTHER, 34);
return 0;
}
+ o->op->stack_names[o->op->stackp] = 0;
switch (o->direction)
{
case ODR_DECODE:
switch (o->direction)
{
case ODR_DECODE:
@@
-171,7
+184,7
@@
int odr_constructed_end(ODR o)
o->op->stackp--;
o->indent--;
odr_prname(o, 0);
o->op->stackp--;
o->indent--;
odr_prname(o, 0);
- fprintf(o->print, "}\n");
+ odr_printf(o, "}\n");
return 1;
default:
odr_seterror(o, OOTHER, 38);
return 1;
default:
odr_seterror(o, OOTHER, 38);