X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Ficonv_encode_iso_8859_1.c;h=e68f49aaa66064d4aec40ac752aa2a22e42b1796;hp=b2d11ee22182353d8fb201a08daff843f6d4dfbc;hb=88d3bedf772316f87e1996f655ccf8d1e2589755;hpb=ee6ab2ee3a9ee1a8c65d7272ec7fba1d886f5af0 diff --git a/src/iconv_encode_iso_8859_1.c b/src/iconv_encode_iso_8859_1.c index b2d11ee..e68f49a 100644 --- a/src/iconv_encode_iso_8859_1.c +++ b/src/iconv_encode_iso_8859_1.c @@ -1,5 +1,5 @@ /* This file is part of the YAZ toolkit. - * Copyright (C) 1995-2008 Index Data + * Copyright (C) 1995-2010 Index Data * See the file LICENSE for details. */ /** @@ -17,12 +17,7 @@ #include #include -#if HAVE_ICONV_H -#include -#endif - #include -#include #include "iconv-p.h" struct encoder_data @@ -140,7 +135,7 @@ static size_t write_iso_8859_1(yaz_iconv_t cd, yaz_iconv_encoder_t e, unsigned long x, char **outbuf, size_t *outbytesleft) { - struct encoder_data *w = e->data; + struct encoder_data *w = (struct encoder_data *) e->data; /* list of two char unicode sequence that, when combined, are equivalent to single unicode chars that can be represented in ISO-8859-1/Latin-1. @@ -198,7 +193,7 @@ static size_t write_iso_8859_1(yaz_iconv_t cd, yaz_iconv_encoder_t e, static size_t flush_iso_8859_1(yaz_iconv_t cd, yaz_iconv_encoder_t e, char **outbuf, size_t *outbytesleft) { - struct encoder_data *w = e->data; + struct encoder_data *w = (struct encoder_data *) e->data; if (w->compose_char) { unsigned char *outp = (unsigned char *) *outbuf; @@ -218,7 +213,7 @@ static size_t flush_iso_8859_1(yaz_iconv_t cd, yaz_iconv_encoder_t e, void init_iso_8859_1(yaz_iconv_encoder_t e) { - struct encoder_data *w = e->data; + struct encoder_data *w = (struct encoder_data *) e->data; w->compose_char = 0; } @@ -233,7 +228,8 @@ yaz_iconv_encoder_t yaz_iso_8859_1_encoder(const char *tocode, { if (!yaz_matchstr(tocode, "iso88591")) { - struct encoder_data *data = xmalloc(sizeof(*data)); + struct encoder_data *data = (struct encoder_data *) + xmalloc(sizeof(*data)); e->data = data; e->write_handle = write_iso_8859_1; e->flush_handle = flush_iso_8859_1; @@ -244,11 +240,35 @@ yaz_iconv_encoder_t yaz_iso_8859_1_encoder(const char *tocode, return 0; } +static unsigned long read_ISO8859_1(yaz_iconv_t cd, + yaz_iconv_decoder_t d, + unsigned char *inp, + size_t inbytesleft, size_t *no_read) +{ + unsigned long x = inp[0]; + *no_read = 1; + return x; +} + +yaz_iconv_decoder_t yaz_iso_8859_1_decoder(const char *fromcode, + yaz_iconv_decoder_t d) + +{ + if (!yaz_matchstr(fromcode, "iso88591")) + { + d->read_handle = read_ISO8859_1; + return d; + } + return 0; +} + /* * Local variables: * c-basic-offset: 4 + * c-file-style: "Stroustrup" * indent-tabs-mode: nil * End: * vim: shiftwidth=4 tabstop=8 expandtab */ +