musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
path: root/src/multibyte/internal.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011年02月27日 00:28:59 -0500
committerRich Felker <dalias@aerifal.cx>2011年02月27日 00:28:59 -0500
commit015d33c5075b9c0a4df8f28e844e4f7ace91c647 (patch)
tree6afdfbd8af5c6c7a550f8cf4a070e965b6806897 /src/multibyte/internal.c
parent2a195dd31ceb2a483ea547444aac080bee132ad2 (diff)
downloadmusl-015d33c5075b9c0a4df8f28e844e4f7ace91c647.tar.gz
cleanup utf-8 multibyte code, use visibility if possible
this code was written independently of musl, with support for a the backwards, nonstandard "31-bit unicode" some libraries/apps might want. unfortunately the extra code (inside #ifdef) makes the source harder to read and makes code that should be simple look complex, so i'm removing it. anyone who wants to use the old code can find it in the history or from elsewhere. also, change the visibility of the __fsmu8 state machine table to hidden, if supported. this should improve performance slightly in shared-library builds.
Diffstat (limited to 'src/multibyte/internal.c')
-rw-r--r--src/multibyte/internal.c 28
1 files changed, 1 insertions, 27 deletions
diff --git a/src/multibyte/internal.c b/src/multibyte/internal.c
index e9b938dd..11b9818f 100644
--- a/src/multibyte/internal.c
+++ b/src/multibyte/internal.c
@@ -15,27 +15,6 @@
R(0x80,0xc0) ) \
| ( R(0x80,0xc0) >> 6 ) \
| x )
-#ifdef I_FAILED_TO_RTFM_RFC3629
-#define F0(x) (( x==0 ? R(0x90,0xc0) : \
- R(0x80,0xc0) ) \
- | ( R(0x80,0xc0) >> 6 ) \
- | ( R(0x80,0xc0) >> 12 ) \
- | x )
-#define F8(x) (( x==0 ? R(0xa0,0xc0) : \
- R(0x80,0xc0) ) \
- | ( R(0x80,0xc0) >> 6 ) \
- | ( R(0x80,0xc0) >> 12 ) \
- | ( R(0x80,0xc0) >> 18 ) \
- | x )
-#define FC(x) (( x==0 ? R(0x88,0xc0) : \
- R(0x80,0xc0) ) \
- | ( R(0x80,0xc0) >> 6 ) \
- | ( R(0x80,0xc0) >> 12 ) \
- | ( R(0x80,0xc0) >> 18 ) \
- | ( R(0x80,0xc0) >> 24 ) \
- | x )
-#define F(x) ( x<8 ? F0(x) : x<12 ? F8((x&3)) : x<14 ? FC((x&1)) : -1 )
-#else
#define F(x) ( ( x>=5 ? 0 : \
x==0 ? R(0x90,0xc0) : \
x==4 ? R(0x80,0xa0) : \
@@ -43,7 +22,6 @@
| ( R(0x80,0xc0) >> 6 ) \
| ( R(0x80,0xc0) >> 12 ) \
| x )
-#endif
const uint32_t bittab[] = {
C(0x2),C(0x3),C(0x4),C(0x5),C(0x6),C(0x7),
@@ -52,9 +30,5 @@ const uint32_t bittab[] = {
D(0x8),D(0x9),D(0xa),D(0xb),D(0xc),D(0xd),D(0xe),D(0xf),
E(0x0),E(0x1),E(0x2),E(0x3),E(0x4),E(0x5),E(0x6),E(0x7),
E(0x8),E(0x9),E(0xa),E(0xb),E(0xc),E(0xd),E(0xe),E(0xf),
- F(0x0),F(0x1),F(0x2),F(0x3),F(0x4),
-#ifdef I_FAILED_TO_RTFM_RFC3629
- F(0x5),F(0x6),F(0x7),
- F(0x8),F(0x9),F(0xa),F(0xb),F(0xc),F(0xd)
-#endif
+ F(0x0),F(0x1),F(0x2),F(0x3),F(0x4)
};
generated by cgit v1.2.1 (git 2.18.0) at 2025年09月07日 06:48:14 +0000

AltStyle によって変換されたページ (->オリジナル) /