mirror of
https://github.com/php/php-src.git
synced 2024-10-21 16:33:44 +00:00
168 lines
5.8 KiB
C
168 lines
5.8 KiB
C
|
/*
|
||
|
* "streamable kanji code filter and converter"
|
||
|
* Copyright (c) 1998-2002 HappySize, Inc. All rights reserved.
|
||
|
*
|
||
|
* LICENSE NOTICES
|
||
|
*
|
||
|
* This file is part of "streamable kanji code filter and converter",
|
||
|
* which is distributed under the terms of GNU Lesser General Public
|
||
|
* License (version 2) as published by the Free Software Foundation.
|
||
|
*
|
||
|
* This software is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU Lesser General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU Lesser General Public
|
||
|
* License along with "streamable kanji code filter and converter";
|
||
|
* if not, write to the Free Software Foundation, Inc., 59 Temple Place,
|
||
|
* Suite 330, Boston, MA 02111-1307 USA
|
||
|
*
|
||
|
* The authors of this file: PHP3 Internationalization team
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
/* charactor property table */
|
||
|
#define MBFL_CHP_CTL 0x01
|
||
|
#define MBFL_CHP_DIGIT 0x02
|
||
|
#define MBFL_CHP_UALPHA 0x04
|
||
|
#define MBFL_CHP_LALPHA 0x08
|
||
|
#define MBFL_CHP_MMHQENC 0x10 /* must Q-encoding in MIME Header encoded-word */
|
||
|
#define MBFL_CHP_MSPECIAL 0x20 /* RFC822 Special characters */
|
||
|
|
||
|
/*
|
||
|
* Unicode table
|
||
|
*/
|
||
|
|
||
|
static const unsigned char mbfl_charprop_table[] = {
|
||
|
/* NUL 0 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC,
|
||
|
/* SCH 1 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* SIX 2 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* EIX 3 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* EOT 4 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* ENQ 5 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* ACK 6 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* BEL 7 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* BS 8 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* HI 9 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* LF 10 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* VI 11 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* FF 12 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* CR 13 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* SO 14 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* SI 15 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* SLE 16 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* CSI 17 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* DC2 18 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* DC3 19 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* DC4 20 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* NAK 21 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* SYN 22 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* EIB 23 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* CAN 24 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* EM 25 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* SLB 26 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* ESC 27 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* FS 28 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* GS 29 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* RS 30 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* US 31 */ MBFL_CHP_CTL | MBFL_CHP_MMHQENC ,
|
||
|
/* SP 32 */ MBFL_CHP_MMHQENC ,
|
||
|
/* ! 33 */ 0 ,
|
||
|
/* " 34 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* # 35 */ MBFL_CHP_MMHQENC ,
|
||
|
/* $ 36 */ MBFL_CHP_MMHQENC ,
|
||
|
/* % 37 */ MBFL_CHP_MMHQENC ,
|
||
|
/* & 38 */ MBFL_CHP_MMHQENC ,
|
||
|
/* ' 39 */ MBFL_CHP_MMHQENC ,
|
||
|
/* ( 40 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* ) 41 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* * 42 */ 0 ,
|
||
|
/* + 43 */ 0 ,
|
||
|
/* , 44 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* - 45 */ 0 ,
|
||
|
/* . 46 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* / 47 */ 0 ,
|
||
|
/* 0 48 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC ,
|
||
|
/* 1 49 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC ,
|
||
|
/* 2 50 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC ,
|
||
|
/* 3 51 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC ,
|
||
|
/* 4 52 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC ,
|
||
|
/* 5 53 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC ,
|
||
|
/* 6 54 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC ,
|
||
|
/* 7 55 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC ,
|
||
|
/* 8 56 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC ,
|
||
|
/* 9 57 */ MBFL_CHP_DIGIT | MBFL_CHP_MMHQENC ,
|
||
|
/* : 58 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* ; 59 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* < 60 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* = 61 */ 0 ,
|
||
|
/* > 62 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* ? 63 */ MBFL_CHP_MMHQENC ,
|
||
|
/* @ 64 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* A 65 */ MBFL_CHP_UALPHA ,
|
||
|
/* B 66 */ MBFL_CHP_UALPHA ,
|
||
|
/* C 67 */ MBFL_CHP_UALPHA ,
|
||
|
/* D 68 */ MBFL_CHP_UALPHA ,
|
||
|
/* E 69 */ MBFL_CHP_UALPHA ,
|
||
|
/* F 70 */ MBFL_CHP_UALPHA ,
|
||
|
/* G 71 */ MBFL_CHP_UALPHA ,
|
||
|
/* H 72 */ MBFL_CHP_UALPHA ,
|
||
|
/* I 73 */ MBFL_CHP_UALPHA ,
|
||
|
/* J 74 */ MBFL_CHP_UALPHA ,
|
||
|
/* K 75 */ MBFL_CHP_UALPHA ,
|
||
|
/* L 76 */ MBFL_CHP_UALPHA ,
|
||
|
/* M 77 */ MBFL_CHP_UALPHA ,
|
||
|
/* N 78 */ MBFL_CHP_UALPHA ,
|
||
|
/* O 79 */ MBFL_CHP_UALPHA ,
|
||
|
/* P 80 */ MBFL_CHP_UALPHA ,
|
||
|
/* Q 81 */ MBFL_CHP_UALPHA ,
|
||
|
/* R 82 */ MBFL_CHP_UALPHA ,
|
||
|
/* S 83 */ MBFL_CHP_UALPHA ,
|
||
|
/* T 84 */ MBFL_CHP_UALPHA ,
|
||
|
/* U 85 */ MBFL_CHP_UALPHA ,
|
||
|
/* V 86 */ MBFL_CHP_UALPHA ,
|
||
|
/* W 87 */ MBFL_CHP_UALPHA ,
|
||
|
/* X 88 */ MBFL_CHP_UALPHA ,
|
||
|
/* Y 89 */ MBFL_CHP_UALPHA ,
|
||
|
/* Z 90 */ MBFL_CHP_UALPHA ,
|
||
|
/* [ 91 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* \ 92 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* ] 93 */ MBFL_CHP_MMHQENC | MBFL_CHP_MSPECIAL ,
|
||
|
/* ^ 94 */ MBFL_CHP_MMHQENC ,
|
||
|
/* _ 95 */ MBFL_CHP_MMHQENC ,
|
||
|
/* ` 96 */ MBFL_CHP_MMHQENC ,
|
||
|
/* a 97 */ MBFL_CHP_LALPHA ,
|
||
|
/* b 98 */ MBFL_CHP_LALPHA ,
|
||
|
/* c 99 */ MBFL_CHP_LALPHA ,
|
||
|
/* d 100 */ MBFL_CHP_LALPHA ,
|
||
|
/* e 101 */ MBFL_CHP_LALPHA ,
|
||
|
/* f 102 */ MBFL_CHP_LALPHA ,
|
||
|
/* g 103 */ MBFL_CHP_LALPHA ,
|
||
|
/* h 104 */ MBFL_CHP_LALPHA ,
|
||
|
/* i 105 */ MBFL_CHP_LALPHA ,
|
||
|
/* j 106 */ MBFL_CHP_LALPHA ,
|
||
|
/* k 107 */ MBFL_CHP_LALPHA ,
|
||
|
/* l 108 */ MBFL_CHP_LALPHA ,
|
||
|
/* m 109 */ MBFL_CHP_LALPHA ,
|
||
|
/* n 110 */ MBFL_CHP_LALPHA ,
|
||
|
/* o 111 */ MBFL_CHP_LALPHA ,
|
||
|
/* p 112 */ MBFL_CHP_LALPHA ,
|
||
|
/* q 113 */ MBFL_CHP_LALPHA ,
|
||
|
/* r 114 */ MBFL_CHP_LALPHA ,
|
||
|
/* s 115 */ MBFL_CHP_LALPHA ,
|
||
|
/* t 116 */ MBFL_CHP_LALPHA ,
|
||
|
/* u 117 */ MBFL_CHP_LALPHA ,
|
||
|
/* v 118 */ MBFL_CHP_LALPHA ,
|
||
|
/* w 119 */ MBFL_CHP_LALPHA ,
|
||
|
/* x 120 */ MBFL_CHP_LALPHA ,
|
||
|
/* y 121 */ MBFL_CHP_LALPHA ,
|
||
|
/* z 122 */ MBFL_CHP_LALPHA ,
|
||
|
/* { 123 */ MBFL_CHP_MMHQENC ,
|
||
|
/* | 124 */ MBFL_CHP_MMHQENC ,
|
||
|
/* } 125 */ MBFL_CHP_MMHQENC ,
|
||
|
/* ~ 126 */ MBFL_CHP_MMHQENC ,
|
||
|
/* DEL 127 */ MBFL_CHP_MMHQENC
|
||
|
};
|
||
|
|