X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmultibyte%2Finternal.h;h=51308f4f0cc14a4f0245a541010e2ff4ca22d712;hb=1b0c9cd099e80a7557eb4ae36efb1897f7202a02;hp=df47331e11b215db6b67cef434a24c3be7702d2d;hpb=015d33c5075b9c0a4df8f28e844e4f7ace91c647;p=musl diff --git a/src/multibyte/internal.h b/src/multibyte/internal.h index df47331e..51308f4f 100644 --- a/src/multibyte/internal.h +++ b/src/multibyte/internal.h @@ -6,19 +6,27 @@ #define bittab __fsmu8 -#if 100*__GNUC__+__GNUC_MINOR__ >= 303 || defined(__PCC__) || defined(__TINYC__) -extern const uint32_t bittab[] __attribute__((visibility("hidden"))); -#else -extern const uint32_t bittab[]; +#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 */ /* 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) #define SA 0xc2u -#define SB 0xf5u +#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"