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
Use libxml2 2.9.2/Libxslt 1.1.28 - part of YAZ-804
[yaz-moved-to-github.git]
/
src
/
odr_oct.c
diff --git
a/src/odr_oct.c
b/src/odr_oct.c
index
c4ef168
..
d9c35a8
100644
(file)
--- a/
src/odr_oct.c
+++ b/
src/odr_oct.c
@@
-1,8
+1,6
@@
-/*
- * Copyright (C) 1995-2007, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) Index Data
* See the file LICENSE for details.
* See the file LICENSE for details.
- *
- * $Id: odr_oct.c,v 1.12 2007-05-02 11:31:59 adam Exp $
*/
/**
* \file odr_oct.c
*/
/**
* \file odr_oct.c
@@
-47,7
+45,6
@@
int odr_octetstring(ODR o, Odr_oct **p, int opt, const char *name)
if (o->direction == ODR_DECODE)
{
*p = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct));
if (o->direction == ODR_DECODE)
{
*p = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct));
- (*p)->size= 0;
(*p)->len = 0;
(*p)->buf = 0;
}
(*p)->len = 0;
(*p)->buf = 0;
}
@@
-86,12
+83,11
@@
int odr_cstring(ODR o, char **p, int opt, const char *name)
t = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct)); /* wrapper for octstring */
if (o->direction == ODR_ENCODE)
{
t = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct)); /* wrapper for octstring */
if (o->direction == ODR_ENCODE)
{
- t->buf = (unsigned char *) *p;
- t->size = t->len = strlen(*p);
+ t->buf = *p;
+ t->len = strlen(*p);
}
else
{
}
else
{
- t->size= 0;
t->len = 0;
t->buf = 0;
}
t->len = 0;
t->buf = 0;
}
@@
-143,9
+139,9
@@
int odr_iconv_string(ODR o, char **p, int opt, const char *name)
size_t outleft = 4 * inleft + 2;
char *outbuf = (char *) odr_malloc (o, outleft);
size_t ret;
size_t outleft = 4 * inleft + 2;
char *outbuf = (char *) odr_malloc (o, outleft);
size_t ret;
-
- t->buf = (unsigned char *) outbuf;
-
+
+ t->buf = outbuf;
+
ret = yaz_iconv(o->op->iconv_handle, &inbuf, &inleft,
&outbuf, &outleft);
if (ret == (size_t)(-1))
ret = yaz_iconv(o->op->iconv_handle, &inbuf, &inleft,
&outbuf, &outleft);
if (ret == (size_t)(-1))
@@
-161,17
+157,16
@@
int odr_iconv_string(ODR o, char **p, int opt, const char *name)
odr_seterror(o, ODATA, 44);
return 0;
}
odr_seterror(o, ODATA, 44);
return 0;
}
- t->size = t->len = outbuf - (char*) t->buf;
+ t->len = outbuf - (char*) t->buf;
}
if (!t->buf)
{
}
if (!t->buf)
{
- t->buf = (unsigned char *) *p;
- t->size = t->len = strlen(*p);
+ t->buf = *p;
+ t->len = strlen(*p);
}
}
else
{
}
}
else
{
- t->size= 0;
t->len = 0;
t->buf = 0;
}
t->len = 0;
t->buf = 0;
}
@@
-190,7
+185,7
@@
int odr_iconv_string(ODR o, char **p, int opt, const char *name)
size_t ret;
*p = outbuf;
size_t ret;
*p = outbuf;
-
+
ret = yaz_iconv (o->op->iconv_handle, &inbuf, &inleft,
&outbuf, &outleft);
if (ret == (size_t)(-1))
ret = yaz_iconv (o->op->iconv_handle, &inbuf, &inleft,
&outbuf, &outleft);
if (ret == (size_t)(-1))
@@
-198,8
+193,15
@@
int odr_iconv_string(ODR o, char **p, int opt, const char *name)
odr_seterror(o, ODATA, 45);
return 0;
}
odr_seterror(o, ODATA, 45);
return 0;
}
+ ret = yaz_iconv(o->op->iconv_handle, 0, 0,
+ &outbuf, &outleft);
+ if (ret == (size_t)(-1))
+ {
+ odr_seterror(o, ODATA, 45);
+ return 0;
+ }
inleft = outbuf - (char*) *p;
inleft = outbuf - (char*) *p;
-
+
(*p)[inleft] = '\0'; /* null terminate it */
}
if (!*p)
(*p)[inleft] = '\0'; /* null terminate it */
}
if (!*p)
@@
-213,6
+215,7
@@
int odr_iconv_string(ODR o, char **p, int opt, const char *name)
/*
* Local variables:
* c-basic-offset: 4
/*
* Local variables:
* c-basic-offset: 4
+ * c-file-style: "Stroustrup"
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab
* indent-tabs-mode: nil
* End:
* vim: shiftwidth=4 tabstop=8 expandtab