X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmultibyte%2Finternal.h;h=45bbc6d06289747b728fb26e416de0156a6eed74;hb=2e5fff43dd7fc808197744c67cca7908ac19bb4f;hp=25ba240e06269927dda0380b027c3f5e9c08f630;hpb=8f06ab0eb9c22998a47803938588bb0b13092a0b;p=musl diff --git a/src/multibyte/internal.h b/src/multibyte/internal.h index 25ba240e..45bbc6d0 100644 --- a/src/multibyte/internal.h +++ b/src/multibyte/internal.h @@ -1,22 +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 -#include "libc.h" +#include +#include -extern const uint32_t bittab[] ATTR_LIBC_VISIBILITY; +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 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"