X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucw%2Fff-unicode.h;h=4570d3baf2a359f24d8f3362e053beead6c16654;hb=0db6e10eac28f38bfc3b325b13ad95107c58ce1e;hp=58c75d8581e135168264648cebc7be9f98ad22f1;hpb=031256ad2e123eec58521f8e3eb9496c197641d2;p=libucw.git diff --git a/ucw/ff-unicode.h b/ucw/ff-unicode.h index 58c75d85..4570d3ba 100644 --- a/ucw/ff-unicode.h +++ b/ucw/ff-unicode.h @@ -12,18 +12,28 @@ #ifndef _UCW_FF_UNICODE_H #define _UCW_FF_UNICODE_H -#include "ucw/fastbuf.h" -#include "ucw/unicode.h" +#include +#include + +#ifdef CONFIG_UCW_CLEAN_ABI +#define bget_utf16_be_slow ucw_bget_utf16_be_slow +#define bget_utf16_le_slow ucw_bget_utf16_le_slow +#define bget_utf8_32_slow ucw_bget_utf8_32_slow +#define bget_utf8_slow ucw_bget_utf8_slow +#define bput_utf16_be_slow ucw_bput_utf16_be_slow +#define bput_utf16_le_slow ucw_bput_utf16_le_slow +#define bput_utf8_32_slow ucw_bput_utf8_32_slow +#define bput_utf8_slow ucw_bput_utf8_slow +#endif -/*** UTF-8 ***/ +/* ** UTF-8 ** */ int bget_utf8_slow(struct fastbuf *b, uns repl); int bget_utf8_32_slow(struct fastbuf *b, uns repl); void bput_utf8_slow(struct fastbuf *b, uns u); void bput_utf8_32_slow(struct fastbuf *b, uns u); -static inline int -bget_utf8_repl(struct fastbuf *b, uns repl) +static inline int bget_utf8_repl(struct fastbuf *b, uns repl) { uns u; if (bavailr(b) >= 3) @@ -35,8 +45,7 @@ bget_utf8_repl(struct fastbuf *b, uns repl) return bget_utf8_slow(b, repl); } -static inline int -bget_utf8_32_repl(struct fastbuf *b, uns repl) +static inline int bget_utf8_32_repl(struct fastbuf *b, uns repl) { uns u; if (bavailr(b) >= 6) @@ -48,20 +57,17 @@ bget_utf8_32_repl(struct fastbuf *b, uns repl) return bget_utf8_32_slow(b, repl); } -static inline int -bget_utf8(struct fastbuf *b) +static inline int bget_utf8(struct fastbuf *b) /** Read a single utf8 character from range [0, 0xffff]. **/ { return bget_utf8_repl(b, UNI_REPLACEMENT); } -static inline int -bget_utf8_32(struct fastbuf *b) +static inline int bget_utf8_32(struct fastbuf *b) /** Read a single utf8 character (from the whole unicode range). **/ { return bget_utf8_32_repl(b, UNI_REPLACEMENT); } -static inline void -bput_utf8(struct fastbuf *b, uns u) +static inline void bput_utf8(struct fastbuf *b, uns u) /** Write a single utf8 character from range [0, 0xffff]. **/ { if (bavailw(b) >= 3) b->bptr = utf8_put(b->bptr, u); @@ -69,8 +75,7 @@ bput_utf8(struct fastbuf *b, uns u) bput_utf8_slow(b, u); } -static inline void -bput_utf8_32(struct fastbuf *b, uns u) +static inline void bput_utf8_32(struct fastbuf *b, uns u) /** Write a single utf8 character (from the whole unicode range). **/ { if (bavailw(b) >= 6) b->bptr = utf8_32_put(b->bptr, u); @@ -78,15 +83,14 @@ bput_utf8_32(struct fastbuf *b, uns u) bput_utf8_32_slow(b, u); } -/*** UTF-16 ***/ +/* ** UTF-16 ** */ int bget_utf16_be_slow(struct fastbuf *b, uns repl); int bget_utf16_le_slow(struct fastbuf *b, uns repl); void bput_utf16_be_slow(struct fastbuf *b, uns u); void bput_utf16_le_slow(struct fastbuf *b, uns u); -static inline int -bget_utf16_be_repl(struct fastbuf *b, uns repl) +static inline int bget_utf16_be_repl(struct fastbuf *b, uns repl) { uns u; if (bavailr(b) >= 4) @@ -98,8 +102,7 @@ bget_utf16_be_repl(struct fastbuf *b, uns repl) return bget_utf16_be_slow(b, repl); } -static inline int -bget_utf16_le_repl(struct fastbuf *b, uns repl) +static inline int bget_utf16_le_repl(struct fastbuf *b, uns repl) { uns u; if (bavailr(b) >= 4) @@ -111,20 +114,29 @@ bget_utf16_le_repl(struct fastbuf *b, uns repl) return bget_utf16_le_slow(b, repl); } -static inline int -bget_utf16_be(struct fastbuf *b) +/** + * Read an utf16 character from fastbuf. + * Big endian version. + **/ +static inline int bget_utf16_be(struct fastbuf *b) { return bget_utf16_be_repl(b, UNI_REPLACEMENT); } -static inline int -bget_utf16_le(struct fastbuf *b) +/** + * Read an utf16 character from fastbuf. + * Little endian version. + **/ +static inline int bget_utf16_le(struct fastbuf *b) { return bget_utf16_le_repl(b, UNI_REPLACEMENT); } -static inline void -bput_utf16_be(struct fastbuf *b, uns u) +/** + * Write an utf16 character to fastbuf. + * Big endian version. + **/ +static inline void bput_utf16_be(struct fastbuf *b, uns u) { if (bavailw(b) >= 4) b->bptr = utf16_be_put(b->bptr, u); @@ -132,8 +144,11 @@ bput_utf16_be(struct fastbuf *b, uns u) bput_utf16_be_slow(b, u); } -static inline void -bput_utf16_lbe(struct fastbuf *b, uns u) +/** + * Write an utf16 character to fastbuf. + * Little endian version. + **/ +static inline void bput_utf16_le(struct fastbuf *b, uns u) { if (bavailw(b) >= 4) b->bptr = utf16_le_put(b->bptr, u);