1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
9  * or http://www.opensolaris.org/os/licensing.
10  * See the License for the specific language governing permissions
11  * and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL HEADER in each
14  * file and include the License file at src/OPENSOLARIS.LICENSE.
15  * If applicable, add the following below this CDDL HEADER, with the
16  * fields enclosed by brackets "[]" replaced with your own identifying
17  * information: Portions Copyright [yyyy] [name of copyright owner]
18  *
19  * CDDL HEADER END
20  */
21 /*
22  * Copyright(c) 2001 Sun Microsystems, Inc.
23  * All rights reserved.
24  */
25 
26 #ifndef _ISCII_H_
27 #define _ISCII_H_
28 
29 #include "iscii-bng.h"
30 #include "iscii-dev.h"
31 #include "iscii-gjr.h"
32 #include "iscii-gmk.h"
33 #include "iscii-knd.h"
34 #include "iscii-mlm.h"
35 #include "iscii-ori.h"
36 #include "iscii-tlg.h"
37 #include "iscii-tml.h"
38 
39 #define get_script_types(ucs, type) \
40     if ( ucs >= 0x0900 && ucs <= 0x097f ) \
41         type = DEV; \
42     else if ( ucs >= 0x0980 && ucs <= 0x09ff ) \
43         type = BNG; \
44     else if ( ucs >= 0x0a00 && ucs <= 0x0a7f ) \
45         type = GMK; \
46     else if ( ucs >= 0x0a80 && ucs <= 0x0aff ) \
47         type = GJR; \
48     else if ( ucs >= 0x0b00 && ucs <= 0x0b7f ) \
49         type = ORI; \
50     else if ( ucs >= 0x0b80 && ucs <= 0x0bff ) \
51         type = TML; \
52     else if ( ucs >= 0x0c00 && ucs <= 0x0c7f ) \
53         type = TLG; \
54     else if ( ucs >= 0x0c80 && ucs <= 0x0cff ) \
55         type = KND; \
56     else if ( ucs >= 0x0d00 && ucs <= 0x0d7f ) \
57         type = MLM; \
58     else \
59         type = NUM_ISCII;
60 
61 ISCII isc_TYPE[] = {
62     DEV, /* 0x42 */
63     BNG, /* 0x43 */
64     TML, /* 0x44 */
65     TLG, /* 0x45 */
66     NUM_ISCII,/* 0x46 */
67     ORI, /* 0x47 */
68     KND, /* 0x48 */
69     MLM, /* 0x49 */
70     GJR, /* 0x4a */
71     GMK  /* 0x4b */
72 };
73 
74 int aTRs[NUM_ISCII] = {
75     0x42, /* Devanagiri */
76     0x43, /* Bengali */
77     0x4b, /* Gurumukhi */
78     0x4a, /* Gujarati */
79     0x47, /* Oriya */
80     0x44, /* Tamil */
81     0x45, /* Telugu */
82     0x48, /* Kannada */
83     0x49 /* Malayalam */
84 };
85 
86 typedef struct _Entries {
87      Entry *entry;
88      int   items;
89 } Entries;
90 
91 Entries iscii_table[NUM_ISCII]= {
92      { Devanagari_isc, sizeof(Devanagari_isc)/sizeof(Entry) },
93      { Bengali_isc,  sizeof(Bengali_isc)/sizeof(Entry) },
94      { Gurmukhi_isc,  sizeof(Gurmukhi_isc)/sizeof(Entry) },
95      { Gujarati_isc,  sizeof(Gujarati_isc)/sizeof(Entry) },
96      { Oriya_isc,  sizeof(Oriya_isc)/sizeof(Entry) },
97      { Tamil_isc,  sizeof(Tamil_isc)/sizeof(Entry) },
98      { Telugu_isc,  sizeof(Telugu_isc)/sizeof(Entry) },
99      { Kannada_isc,  sizeof(Kannada_isc)/sizeof(Entry) },
100      { Malayalam_isc,  sizeof(Malayalam_isc)/sizeof(Entry) }
101 };
102 
103 Entries unicode_table[NUM_ISCII]= {
104      { Devanagari_uni, sizeof(Devanagari_uni)/sizeof(Entry) },
105      { Bengali_uni,  sizeof(Bengali_uni)/sizeof(Entry) },
106      { Gurmukhi_uni,  sizeof(Gurmukhi_uni)/sizeof(Entry) },
107      { Gujarati_uni,  sizeof(Gujarati_uni)/sizeof(Entry) },
108      { Oriya_uni,  sizeof(Oriya_uni)/sizeof(Entry) },
109      { Tamil_uni,  sizeof(Tamil_uni)/sizeof(Entry) },
110      { Telugu_uni,  sizeof(Telugu_uni)/sizeof(Entry) },
111      { Kannada_uni,  sizeof(Kannada_uni)/sizeof(Entry) },
112      { Malayalam_uni,  sizeof(Malayalam_uni)/sizeof(Entry) }
113 };
114 
115 int *nukta_type[NUM_ISCII] = {
116     Devanagari_nukta_type,
117     Bengali_nukta_type,
118     Gurmukhi_nukta_type,
119     NULL,
120     Oriya_nukta_type,
121     NULL,
122     NULL,
123     NULL,
124     NULL
125 };
126 
127 int *EXT_type[NUM_ISCII] = {
128     Devanagari_EXT_type,
129     NULL,
130     NULL,
131     NULL,
132     NULL,
133     NULL,
134     NULL,
135     NULL,
136     NULL
137 };
138 #endif
139