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
cqltransform: use odr_setprint_noclose
[yaz-moved-to-github.git]
/
src
/
cqltransform.c
diff --git
a/src/cqltransform.c
b/src/cqltransform.c
index
0ab9079
..
b5fe140
100644
(file)
--- a/
src/cqltransform.c
+++ b/
src/cqltransform.c
@@
-44,7
+44,7
@@
struct cql_transform_t_ {
struct cql_prop_entry *entry;
yaz_tok_cfg_t tok_cfg;
int error;
struct cql_prop_entry *entry;
yaz_tok_cfg_t tok_cfg;
int error;
- char *addinfo;
+ WRBUF addinfo;
NMEM nmem;
};
NMEM nmem;
};
@@
-54,7
+54,7
@@
cql_transform_t cql_transform_create(void)
cql_transform_t ct = (cql_transform_t) xmalloc(sizeof(*ct));
ct->tok_cfg = yaz_tok_cfg_create();
ct->error = 0;
cql_transform_t ct = (cql_transform_t) xmalloc(sizeof(*ct));
ct->tok_cfg = yaz_tok_cfg_create();
ct->error = 0;
- ct->addinfo = 0;
+ ct->addinfo = wrbuf_alloc();
ct->entry = 0;
ct->nmem = nmem_create();
return ct;
ct->entry = 0;
ct->nmem = nmem_create();
return ct;
@@
-191,9
+191,8
@@
static int cql_transform_parse_tok_line(cql_transform_t ct,
{
ODR pr = odr_createmem(ODR_PRINT);
Z_AttributeList *alp = &(*pp)->attr_list;
{
ODR pr = odr_createmem(ODR_PRINT);
Z_AttributeList *alp = &(*pp)->attr_list;
- odr_setprint(pr, yaz_log_file());
+ odr_setprint_noclose(pr, yaz_log_file());
z_AttributeList(pr, &alp, 0, 0);
z_AttributeList(pr, &alp, 0, 0);
- odr_setprint(pr, 0);
odr_destroy(pr);
}
}
odr_destroy(pr);
}
}
@@
-267,7
+266,7
@@
void cql_transform_close(cql_transform_t ct)
xfree(pe);
pe = pe_next;
}
xfree(pe);
pe = pe_next;
}
- xfree(ct->addinfo);
+ wrbuf_destroy(ct->addinfo);
yaz_tok_cfg_destroy(ct->tok_cfg);
nmem_destroy(ct->nmem);
xfree(ct);
yaz_tok_cfg_destroy(ct->tok_cfg);
nmem_destroy(ct->nmem);
xfree(ct);
@@
-988,14
+987,15
@@
int cql_transform_buf(cql_transform_t ct, struct cql_node *cn,
int cql_transform_error(cql_transform_t ct, const char **addinfo)
{
int cql_transform_error(cql_transform_t ct, const char **addinfo)
{
- *addinfo = ct->addinfo;
+ *addinfo = wrbuf_len(ct->addinfo) ? wrbuf_cstr(ct->addinfo) : 0;
return ct->error;
}
void cql_transform_set_error(cql_transform_t ct, int error, const char *addinfo)
{
return ct->error;
}
void cql_transform_set_error(cql_transform_t ct, int error, const char *addinfo)
{
- xfree(ct->addinfo);
- ct->addinfo = addinfo ? xstrdup(addinfo) : 0;
+ wrbuf_rewind(ct->addinfo);
+ if (addinfo)
+ wrbuf_puts(ct->addinfo, addinfo);
ct->error = error;
}
ct->error = error;
}