X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Fsiconv.c;h=596fe25daaa81d0d2086431453c9efc4fb705afd;hp=d7f066d8fe21edc11be3cbac44eb3b7e37253e2b;hb=d2ed898832ae354c17254ff52c70c92278518efe;hpb=99eee17dbb3ef0d81d44b01d9072e3405f326595 diff --git a/src/siconv.c b/src/siconv.c index d7f066d..596fe25 100644 --- a/src/siconv.c +++ b/src/siconv.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2008 Index Data + * Copyright (C) 1995-2013 Index Data * See the file LICENSE for details. */ /** @@ -20,14 +20,13 @@ #include #include #include -#include #if HAVE_ICONV_H #include #endif #include -#include +#include #include "iconv-p.h" struct yaz_iconv_struct { @@ -92,12 +91,14 @@ static int prepare_decoders(yaz_iconv_t cd, const char *tocode) return 1; if (yaz_wchar_decoder(tocode, &cd->decoder)) return 1; + if (yaz_danmarc_decoder(tocode, &cd->decoder)) + return 1; return 0; } yaz_iconv_t yaz_iconv_open(const char *tocode, const char *fromcode) { - yaz_iconv_t cd = (yaz_iconv_t) xmalloc (sizeof(*cd)); + yaz_iconv_t cd = (yaz_iconv_t) xmalloc(sizeof(*cd)); cd->encoder.data = 0; cd->encoder.write_handle = 0; @@ -184,10 +185,10 @@ size_t yaz_iconv(yaz_iconv_t cd, char **inbuf, size_t *inbytesleft, if (cd->init_flag) { cd->my_errno = YAZ_ICONV_UNKNOWN; - + if (cd->encoder.init_handle) (*cd->encoder.init_handle)(&cd->encoder); - + cd->unget_x = 0; cd->no_read_x = 0; @@ -197,7 +198,7 @@ size_t yaz_iconv(yaz_iconv_t cd, char **inbuf, size_t *inbytesleft, size_t r = (cd->decoder.init_handle)( cd, &cd->decoder, inbuf ? (unsigned char *) *inbuf : 0, - inbytesleft ? *inbytesleft : 0, + inbytesleft ? *inbytesleft : 0, &no_read); if (r) { @@ -248,7 +249,7 @@ size_t yaz_iconv(yaz_iconv_t cd, char **inbuf, size_t *inbytesleft, break; } x = (*cd->decoder.read_handle)( - cd, &cd->decoder, + cd, &cd->decoder, (unsigned char *) *inbuf, *inbytesleft, &no_read); if (no_read == 0) { @@ -306,7 +307,9 @@ void yaz_iconv_set_errno(yaz_iconv_t cd, int no) /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab */ +