X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmultibyte%2Finternal.h;h=51308f4f0cc14a4f0245a541010e2ff4ca22d712;hb=1b0c9cd099e80a7557eb4ae36efb1897f7202a02;hp=ec52bdfad268ce3ea56c1bd405fba5fba20b6076;hpb=f9d880d25893dbf4caaa2f4e0c4d9bc8c1aea22a;p=musl diff --git a/src/multibyte/internal.h b/src/multibyte/internal.h index ec52bdfa..51308f4f 100644 --- a/src/multibyte/internal.h +++ b/src/multibyte/internal.h @@ -4,44 +4,13 @@ * 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 +#include + +#ifdef __PIC__ +__attribute__((__visibility__("hidden"))) +#endif extern const uint32_t bittab[]; /* Upper 6 state bits are a negative integer offset to bound-check next byte */ @@ -49,13 +18,15 @@ extern const uint32_t bittab[]; #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"