/* This file is part of the YAZ toolkit.
- * Copyright (C) 1995-2011 Index Data
+ * Copyright (C) 1995-2013 Index Data
* See the file LICENSE for details.
*/
/**
if (o->direction == ODR_DECODE)
{
*p = (Odr_oct *)odr_malloc(o, sizeof(Odr_oct));
- (*p)->size= 0;
(*p)->len = 0;
(*p)->buf = 0;
}
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
{
- t->size= 0;
t->len = 0;
t->buf = 0;
}
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))
odr_seterror(o, ODATA, 44);
return 0;
}
- t->size = t->len = outbuf - (char*) t->buf;
+ t->len = outbuf - (char*) t->buf;
}
if (!t->buf)
{
- t->buf = (unsigned char *) *p;
- t->size = t->len = strlen(*p);
+ t->buf = *p;
+ t->len = strlen(*p);
}
}
else
{
- t->size= 0;
t->len = 0;
t->buf = 0;
}
size_t ret;
*p = outbuf;
-
+
ret = yaz_iconv (o->op->iconv_handle, &inbuf, &inleft,
&outbuf, &outleft);
if (ret == (size_t)(-1))
return 0;
}
inleft = outbuf - (char*) *p;
-
+
(*p)[inleft] = '\0'; /* null terminate it */
}
if (!*p)