X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=charset%2Fstk-charconv.h;h=e6852c7762cd75c9437af6a05d9df4ef91bcee95;hb=1bc3bb66e47ec02003658fb3040aef0ffd7b7540;hp=01a242cdc9887d5510ee47e2f34c15e9660938ef;hpb=86853b9855a18d6d75fd48cc1c466db7fb4984e1;p=libucw.git diff --git a/charset/stk-charconv.h b/charset/stk-charconv.h index 01a242cd..e6852c77 100644 --- a/charset/stk-charconv.h +++ b/charset/stk-charconv.h @@ -1,5 +1,5 @@ /* - * Sherlock Library -- Character Conversion with Allocation on the Stack + * Sherlock Library -- Character Conversion with Allocation on the Stack * * (c) 2006 Pavel Charvat * @@ -10,21 +10,26 @@ #ifndef _CHARSET_STK_CHARCONV_H #define _CHARSET_STK_CHARCONV_H -#include "charset/charconv.h" +#include #include +#ifdef CONFIG_UCW_CLEAN_ABI +#define stk_strconv_init ucw_stk_strconv_init +#define stk_strconv_step ucw_stk_strconv_step +#endif + /* The following macros convert strings between given charsets (CONV_CHARSET_x). */ #define stk_strconv(s, cs_in, cs_out) \ - ({ struct conv_context _c; uns _l=stk_strconv_init(&_c, (s), (cs_in), (cs_out)); \ + ({ struct conv_context _c; uint _l=stk_strconv_init(&_c, (s), (cs_in), (cs_out)); \ while (_l) _l=stk_strconv_step(&_c, alloca(_l), _l); _c.dest_start; }) #define stk_strconv_to_utf8(s, cs_in) stk_strconv(s, cs_in, CONV_CHARSET_UTF8) #define stk_strconv_from_utf8(s, cs_out) stk_strconv(s, CONV_CHARSET_UTF8, cs_out) - + /* Internals */ -uns stk_strconv_init(struct conv_context *c, byte *s, uns cs_in, uns cs_out); -uns stk_strconv_step(struct conv_context *c, byte *buf, uns len); +uint stk_strconv_init(struct conv_context *c, const byte *s, uint cs_in, uint cs_out); +uint stk_strconv_step(struct conv_context *c, byte *buf, uint len); #endif