X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmultibyte%2Finternal.h;h=7d0e78289f01ac563a8b26942a8185a3c064d8bf;hb=3fe595de83e398dbc3cdbe303cacaf8485c9ae08;hp=ec52bdfad268ce3ea56c1bd405fba5fba20b6076;hpb=f9d880d25893dbf4caaa2f4e0c4d9bc8c1aea22a;p=musl diff --git a/src/multibyte/internal.h b/src/multibyte/internal.h index ec52bdfa..7d0e7828 100644 --- a/src/multibyte/internal.h +++ b/src/multibyte/internal.h @@ -1,61 +1,24 @@ -/* - * This code was written by Rich Felker in 2010; no copyright is claimed. - * This code is in the public domain. Attribution is appreciated but - * unnecessary. - */ - -#define LIBC -#ifndef LIBC -/* rename functions not to conflict with libc */ -#ifndef myprefix -#define myprefix fsmu8_ -#endif -#define concat2(a,b) a ## b -#define concat(a,b) concat2(a,b) -#define prefix(b) concat(myprefix,b) - -#undef mblen -#undef mbrlen -#undef mbrtowc -#undef mbsinit -#undef mbsnrtowcs -#undef mbsrtowcs -#undef wcrtomb -#undef wcsrtombs -#undef wcstombs -#undef wctomb -#define mblen prefix(mblen) -#define mbrlen prefix(mbrlen) -#define mbrtowc prefix(mbrtowc) -#define mbsinit prefix(mbsinit) -#define mbsnrtowcs prefix(mbsnrtowcs) -#define mbsrtowcs prefix(mbsrtowcs) -#define mbstowcs prefix(mbstowcs) -#define wcrtomb prefix(wcrtomb) -#define wcsnrtombs prefix(wcsnrtombs) -#define wcsrtombs prefix(wcsrtombs) -#define wcstombs prefix(wcstombs) -#define wctomb prefix(wctomb) - -#define bittab prefix(bittab) -#else #define bittab __fsmu8 -#endif -extern const uint32_t bittab[]; +#include +#include "libc.h" + +extern hidden const uint32_t bittab[]; /* Upper 6 state bits are a negative integer offset to bound-check next byte */ /* equivalent to: ( (b-0x80) | (b+offset) ) & ~0x3f */ #define OOB(c,b) (((((b)>>3)-0x10)|(((b)>>3)+((int32_t)(c)>>26))) & ~7) /* Interval [a,b). Either a must be 80 or b must be c0, lower 3 bits clear. */ -#define R(a,b) ((uint32_t)((a==0x80 ? 0x40-b : -a) << 23)) +#define R(a,b) ((uint32_t)((a==0x80 ? 0x40u-b : 0u-a) << 23)) #define FAILSTATE R(0x80,0x80) -#ifdef I_FAILED_TO_RTFM_RFC3629 #define SA 0xc2u -#define SB 0xfeu -#else -#define SA 0xc2u -#define SB 0xf5u -#endif +#define SB 0xf4u + +/* Arbitrary encoding for representing code units instead of characters. */ +#define CODEUNIT(c) (0xdfff & (signed char)(c)) +#define IS_CODEUNIT(c) ((unsigned)(c)-0xdf80 < 0x80) + +/* Get inline definition of MB_CUR_MAX. */ +#include "locale_impl.h"