X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmultibyte%2Finternal.h;h=45bbc6d06289747b728fb26e416de0156a6eed74;hb=7d568410b455390362e2bcfb7c50fcf9c8833d9b;hp=df47331e11b215db6b67cef434a24c3be7702d2d;hpb=015d33c5075b9c0a4df8f28e844e4f7ace91c647;p=musl diff --git a/src/multibyte/internal.h b/src/multibyte/internal.h index df47331e..45bbc6d0 100644 --- a/src/multibyte/internal.h +++ b/src/multibyte/internal.h @@ -1,24 +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 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[]; -#endif +#include +#include + +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) #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"