X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fodr.c;h=1e31f29cca1bb26ecff8534f074df0b70c1c2b88;hp=54ff61361e74f80731ca60df7956e54bb918dd3c;hb=05c274ef315384faafcc5900c17468f0ea2474e6;hpb=3cef72d7093afaa8b106e4160ef0885b2ac50335 diff --git a/src/odr.c b/src/odr.c index 54ff613..1e31f29 100644 --- a/src/odr.c +++ b/src/odr.c @@ -2,9 +2,15 @@ * Copyright (c) 1995-2004, Index Data * See the file LICENSE for details. * - * $Id: odr.c,v 1.3 2004-08-13 07:30:06 adam Exp $ + * $Id: odr.c,v 1.8 2004-10-15 00:19:00 adam Exp $ * */ + +/** + * \file odr.c + * \brief Implements fundamental ODR functionality + */ + #if HAVE_CONFIG_H #include #endif @@ -110,13 +116,13 @@ void odr_FILE_write(ODR o, void *handle, int type, #endif for (i = 0; i 3100) { fputs(" ..... ", (FILE*) handle); i = len - 1000; } - unsigned c = ((const unsigned char *) buf)[i]; - if (strchr("\r\n\f\t", c) || c >= ' ' && c <= 126) + if (strchr("\r\n\f\t", c) || (c >= ' ' && c <= 126)) putc(c, (FILE*) handle); else { @@ -145,7 +151,7 @@ void odr_set_stream(ODR o, void *handle, const char *buf, int len), void (*stream_close)(void *handle)) { - o->print = handle; + o->print = (FILE*) handle; o->op->stream_write = stream_write; o->op->stream_close = stream_close; } @@ -221,6 +227,7 @@ void odr_destroy(ODR o) void odr_setbuf(ODR o, char *buf, int len, int can_grow) { + odr_seterror(o, ONONE, 0); o->bp = (unsigned char *) buf; o->buf = (unsigned char *) buf;