~ubuntu-branches/ubuntu/trusty/cuneiform/trusty

« back to all changes in this revision

Viewing changes to cuneiform_src/Kern/rreccom/src/cpp/alphabet.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jakub Wilk, c-assert.diff, slovenian-slv.diff
  • Date: 2011-01-26 21:53:07 UTC
  • mfrom: (5.1.1 experimental)
  • Revision ID: james.westby@ubuntu.com-20110126215307-62x61mcesr607qb7
Tags: 1.0.0+dfsg-2
* Upload to unstable.
* Explicitly build-depend on pkg-config. Thanks to Stefano Rivera for the
  bug report.
* Add Vcs-* fields.
* Use the standard C assert() macro, rather than custom Cuneiform one.
  [c-assert.diff]
* Pass CFLAGS, CXXFLAGS and LDFLAGS (get from dpkg-buildflags) to cmake
  (closes: #608345). Thanks to Sami Liedes for the bug report.
  + Build depend on dpkg-dev (>= 1.15.7).
* Pass --parallel to dh.
  + Bump debhelper minimum version to 7.4.10.
* Update debian/copyright to the latest DEP-5 version.
* Bump year in debian/copyright.
* Explicitly link to GraphicsMagick (rather than via the ImageMagick
  compatibility layer).
* Don't ship /usr/lib/cuneiform/*.so symlinks. These libraries are
  considered private, at least until #598616 is fixed.
* Rename some private variables in debian/rules to make them lowercase.
* Update patch headers.
* Provide proper ‘build-arch’ and ‘build-indep’ targets in debian/rules.
* Document input format in the manual page (closes: #572061). Thanks to
  Janusz S. Bień for the bug report.
* Use ‘slv’ (rather than ‘slo’) as language code for Slovenian.
  [slovenian-slv.diff]
* Fix package description: Slovenian is supported, Slovak is not.
* Improve documentation of the language (-l) option (closes: #602512).
  Thanks to Jari Aalto for the bug report.
* Install reasons file for vrms.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*
2
 
Copyright (c) 1993-2008, Cognitive Technologies
3
 
All rights reserved.
4
 
 
5
 
����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
6
 
��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
7
 
 
8
 
      * ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
9
 
        ���� ����������� �� ��������� �����, ���� ������ ������� � �����������
10
 
        ����� �� ��������.
11
 
      * ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
12
 
        ������ ����������, ������������ ��� ���������������, ������ �����������
13
 
        ��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
14
 
        ����������� ����� �� ��������.
15
 
      * �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
16
 
        ���� ������������ � �������� �������� ��������� �/��� �����������
17
 
        ���������, ���������� �� ���� ��, ��� ���������������� �����������
18
 
        ����������.
19
 
 
20
 
��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
21
 
��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
22
 
������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
23
 
������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
24
 
����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
25
 
��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
26
 
������������� ������, ��������� � �������������� ��� ���������� ����������
27
 
������������� ������������� ��������� (������� ������ ������, ��� ������,
28
 
������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
29
 
������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
30
 
�� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
31
 
�������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
32
 
 
33
 
Redistribution and use in source and binary forms, with or without modification,
34
 
are permitted provided that the following conditions are met:
35
 
 
36
 
    * Redistributions of source code must retain the above copyright notice,
37
 
      this list of conditions and the following disclaimer.
38
 
    * Redistributions in binary form must reproduce the above copyright notice,
39
 
      this list of conditions and the following disclaimer in the documentation
40
 
      and/or other materials provided with the distribution.
41
 
    * Neither the name of the Cognitive Technologies nor the names of its
42
 
      contributors may be used to endorse or promote products derived from this
43
 
      software without specific prior written permission.
44
 
 
45
 
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
46
 
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
47
 
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
48
 
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
49
 
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
50
 
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
51
 
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
52
 
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
53
 
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
54
 
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
55
 
*/
 
2
 Copyright (c) 1993-2008, Cognitive Technologies
 
3
 All rights reserved.
 
4
 
 
5
 ����������� ��������� ��������������� � ������������� ��� � ���� ��������� ����,
 
6
 ��� � � �������� �����, � ����������� ��� ���, ��� ���������� ��������� �������:
 
7
 
 
8
 * ��� ��������� ��������������� ��������� ���� ������ ���������� ���������
 
9
 ���� ����������� �� ��������� �����, ���� ������ ������� � �����������
 
10
 ����� �� ��������.
 
11
 * ��� ��������� ��������������� ��������� ���� � ������������ �/��� �
 
12
 ������ ����������, ������������ ��� ���������������, ������ �����������
 
13
 ��������� ���� ���������� �� ��������� �����, ���� ������ ������� �
 
14
 ����������� ����� �� ��������.
 
15
 * �� �������� Cognitive Technologies, �� ����� �� ����������� �� �����
 
16
 ���� ������������ � �������� �������� ��������� �/��� �����������
 
17
 ���������, ���������� �� ���� ��, ��� ���������������� �����������
 
18
 ����������.
 
19
 
 
20
 ��� ��������� ������������� ����������� ��������� ���� �/��� ������� ������ "���
 
21
 ��� ����" ��� ������-���� ���� ��������, ���������� ���� ��� ���������������,
 
22
 ������� �������� ������������ �������� � ����������� ��� ���������� ����, �� ��
 
23
 ������������� ���. �� �������� ��������� ���� � �� ���� ������ ����, �������
 
24
 ����� �������� �/��� �������� �������������� ���������, �� � ���� ������ ��
 
25
 ��Ѩ� ���������������, ������� ����� �����, ���������, ����������� ���
 
26
 ������������� ������, ��������� � �������������� ��� ���������� ����������
 
27
 ������������� ������������� ��������� (������� ������ ������, ��� ������,
 
28
 ������� ���������, ��� ������ �/��� ������ �������, ���������� ��-�� ��������
 
29
 ������� ��� �/��� ������ ��������� �������� ��������� � ������� �����������,
 
30
 �� �� ������������� ����� ��������), �� �� ������������� ���, ���� ���� �����
 
31
 �������� ��� ������ ���� ���� �������� � ����������� ����� ������� � ������.
 
32
 
 
33
 Redistribution and use in source and binary forms, with or without modification,
 
34
 are permitted provided that the following conditions are met:
 
35
 
 
36
 * Redistributions of source code must retain the above copyright notice,
 
37
 this list of conditions and the following disclaimer.
 
38
 * Redistributions in binary form must reproduce the above copyright notice,
 
39
 this list of conditions and the following disclaimer in the documentation
 
40
 and/or other materials provided with the distribution.
 
41
 * Neither the name of the Cognitive Technologies nor the names of its
 
42
 contributors may be used to endorse or promote products derived from this
 
43
 software without specific prior written permission.
 
44
 
 
45
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 
46
 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 
47
 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 
48
 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
 
49
 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 
50
 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 
51
 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 
52
 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 
53
 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 
54
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
55
 */
56
56
 
57
57
/*#include <io.h>*/
58
58
#include <string.h>
59
 
#include "c_types.h"
 
59
#include "cttypes.h"
60
60
#include "lang.h"
61
61
#include "ligas.h"
62
62
#include "evn.h"
63
63
 
64
64
#include "compat_defs.h"
65
65
 
66
 
static Word8 alph_russian[256]={
67
 
//  0 1 2 3 4 5 6 7 8 9 A B C D E F
68
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 0
69
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 1
70
 
    0,1,0,1,0,1,1,0,1,1,0,1,0,1,1,1,    // 2
71
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 3
72
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 4
73
 
    0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,    // 5
74
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 6
75
 
    0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,    // 7
76
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 8
77
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 9
78
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // a
79
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // b
80
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // c
81
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // d
82
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // e
83
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0     // f
84
 
 };
85
 
static Word8 alph_digital[256]={
86
 
//  0 1 2 3 4 5 6 7 8 9 A B C D E F
87
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 0
88
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 1
89
 
    0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,    // 2
90
 
    1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,    // 3
91
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 4
92
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 5
93
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 6
94
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 7
95
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 8
96
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 9
97
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // a
98
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // b
99
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // c
100
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // d
101
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // e
102
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0     // f
103
 
 };
104
 
 static Word8 alph_ruseng[256]={
105
 
//  0 1 2 3 4 5 6 7 8 9 A B C D E F
106
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 0
107
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 1
108
 
    0,1,0,1,1,1,1,0,1,1,0,0,0,1,1,1,    // 2
109
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 3
110
 
    0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 4
111
 
    1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,    // 5
112
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 6
113
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,    // 7
114
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 8
115
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 9
116
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // a
117
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // b
118
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // c
119
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // d
120
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // e
121
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0     // f
122
 
 };
123
 
 static Word8 alph_english[256]={
124
 
//  0 1 2 3 4 5 6 7 8 9 A B C D E F
125
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 0
126
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 1
127
 
    0,1,0,1,1,1,1,0,1,1,0,0,0,1,1,1,    // 2
128
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 3
129
 
    0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 4
130
 
    1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,    // 5
131
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 6
132
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,    // 7
133
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 8
134
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 9
135
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // a
136
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,    // b
137
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // c
138
 
    0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,    // d
139
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // e
140
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0     // f
141
 
 };
142
 
 static Word8 alph_ce[256]={
143
 
//  0 1 2 3 4 5 6 7 8 9 A B C D E F
144
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 0
145
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 1
146
 
    0,0,0,1,1,1,1,0,1,1,0,0,0,1,1,1,    // 2
147
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 3
148
 
    0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 4
149
 
    1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,    // 5
150
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,    // 6
151
 
    1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,    // 7
152
 
    1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 8
153
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // 9
154
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // a
155
 
    1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,0,    // b
156
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // c
157
 
    0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,    // d
158
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,    // e
159
 
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0     // f
160
 
 };
161
 
static Word8 *alph_lang[LANG_TOTAL]={
162
 
alph_english        , // LANG_ENGLISH    0
163
 
alph_english        , // LANG_GERMAN     1
164
 
alph_english        , // LANG_FRENCH     2
165
 
alph_russian        , // LANG_RUSSIAN    3
166
 
alph_english        , // LANG_SWEDISH    4
167
 
alph_english        , // LANG_SPANISH    5
168
 
alph_english        , // LANG_ITALIAN    6
169
 
alph_ruseng         , // LANG_RUSENG     7
170
 
alph_russian        , // LANG_UKRAINIAN  8
171
 
alph_russian        , // LANG_SERBIAN    9
172
 
alph_ce             , // LANG_CROATIAN   10
173
 
alph_ce             , // LANG_POLISH     11
174
 
alph_english        , // LANG_DANISH     12
175
 
alph_english        , // LANG_PORTUGUESE 13
176
 
alph_english        , // LANG_DUTCH      14
177
 
alph_digital        , // LANG_DIG        15
178
 
alph_russian        , // LANG_UZBEK              16     // 01.09.2000 E.P.
179
 
alph_russian        , // LANG_KAZ            17
180
 
alph_ruseng         , // LANG_KAZ_ENG    18
181
 
alph_ce             , // LANG_CZECH              19
182
 
alph_ce             , // LANG_ROMAN              20
183
 
alph_ce             , // LANG_HUNGAR     21
184
 
alph_russian        , // LANG_BULGAR     22
185
 
alph_ce                         , // LANG_SLOVENIAN      23
186
 
alph_english        , // LANG_LATVIAN    24
187
 
alph_english        , // LANG_LITHUANIAN 25
188
 
alph_english        , // LANG_ESTONIAN   26
189
 
alph_english          // LANG_TURKISH    27
190
 
};
191
 
 
192
 
Bool16    rec_set_alpha(Word8 language, Word8 *alphabet)
193
 
{
194
 
if( language>=LANG_TOTAL )
195
 
    return FALSE;
196
 
if( alph_lang[language] )
197
 
    memcpy(alphabet,alph_lang[language],256);
198
 
else
199
 
    return FALSE;
200
 
if(language==LANG_RUSSIAN || language==LANG_RUSENG ||
201
 
   language==LANG_BULGAR // 01.09.2000 E.P.
202
 
   )
203
 
    {
204
 
    alphabet[r_cu_d]=1;
205
 
    alphabet[r_cu_g]=1;
206
 
    alphabet[r_cu_m]=1;
207
 
    alphabet[r_cu_u]=1;
208
 
    alphabet[r_cu_z]=1;
209
 
    alphabet[r_cu_a]=1;
210
 
 
211
 
    alphabet[liga_exm]=1;
212
 
    alphabet[liga_qm]=1;
213
 
    alphabet[liga_uperc]=1;
214
 
    alphabet[liga_lperc]=1;
215
 
    }
216
 
 
217
 
// � ���������� ��� ���� ������� ����. 01.09.2000 E.P.
218
 
if(language==LANG_BULGAR)
219
 
        {
220
 
        alphabet[r_EE_2dot]=0;  alphabet[r_e_2dot]=0;
221
 
        alphabet[(Word8)'�']=0; alphabet[(Word8)'�']=0;
222
 
        alphabet[(Word8)'�']=0; alphabet[(Word8)'�']=0;
223
 
        }
224
 
 
225
 
if( language==LANG_UKRAINIAN )
226
 
    {
227
 
    alphabet[r_cu_d]=1;
228
 
    alphabet[r_cu_g]=1;
229
 
    alphabet[r_cu_m]=1;
230
 
    alphabet[r_cu_u]=1;
231
 
    alphabet[r_cu_z]=1;
232
 
    alphabet[r_cu_a]=1;
233
 
    alphabet['I' ]=1;
234
 
    alphabet['i' ]=1;
235
 
    alphabet[UKR_I ]=1;
236
 
    alphabet[UKR_i ]=1;
237
 
    alphabet[UKR_II]=1;
238
 
    alphabet[UKR_ii]=1;
239
 
    alphabet[UKR_E ]=1;
240
 
    alphabet[UKR_e ]=1;
241
 
    alphabet[UKR_G ]=1;
242
 
    alphabet[UKR_g ]=1;
243
 
    alphabet[liga_i]=1;
244
 
 
245
 
    alphabet[liga_exm]=1;
246
 
    alphabet[liga_qm]=1;
247
 
    alphabet[liga_uperc]=1;
248
 
    alphabet[liga_lperc]=1;
249
 
    }
250
 
if( language==LANG_SERBIAN )
251
 
    {
252
 
    alphabet[r_cu_d]=1;
253
 
    alphabet[r_cu_g]=1;
254
 
    alphabet[r_cu_m]=1;
255
 
    alphabet[r_cu_u]=1;
256
 
    alphabet[r_cu_z]=1;
257
 
    alphabet[r_cu_a]=1;
258
 
    alphabet[SERB_HH]=1;
259
 
    alphabet[SERB_hh]=1;
260
 
    alphabet[SERB_L ]=1;
261
 
    alphabet[SERB_l ]=1;
262
 
    alphabet[SERB_N ]=1;
263
 
    alphabet[SERB_n ]=1;
264
 
    alphabet[SERB_H ]=1;
265
 
    alphabet[SERB_h ]=1;
266
 
    alphabet[SERB_U ]=1;
267
 
    alphabet[SERB_u ]=1;
268
 
    alphabet[SERB_J ]=1;
269
 
    alphabet[SERB_j ]=1;
270
 
    alphabet['J' ]=1;
271
 
    alphabet['j' ]=1;
272
 
    alphabet[liga_j]=1;
273
 
 
274
 
    alphabet[liga_exm]=1;
275
 
    alphabet[liga_qm]=1;
276
 
    alphabet[liga_uperc]=1;
277
 
    alphabet[liga_lperc]=1;
278
 
    }
279
 
 
280
 
if(language==LANG_CROATIAN)
281
 
    {
282
 
    alphabet[CROAT_D ]=1;
283
 
    alphabet[CROAT_d ]=1;
284
 
    alphabet[CROAT_SR]=1;
285
 
    alphabet[CROAT_sr]=1;
286
 
    alphabet[CROAT_CA]=1;
287
 
    alphabet[CROAT_ca]=1;
288
 
    alphabet[CROAT_ZR]=1;
289
 
    alphabet[CROAT_zr]=1;
290
 
    alphabet[CROAT_CR]=1;
291
 
    alphabet[CROAT_cr]=1;
292
 
    }
293
 
if(language == LANG_POLISH )
294
 
    {
295
 
    alphabet[POLISH_SS ]=1;
296
 
    alphabet[POLISH_s  ]=1;
297
 
    alphabet[POLISH_ZZR]=1;
298
 
    alphabet[POLISH_zr ]=1;
299
 
    alphabet[POLISH_ZZD]=1;
300
 
    alphabet[POLISH_zd ]=1;
301
 
    alphabet[POLISH_CC ]=1;
302
 
    alphabet[POLISH_c  ]=1;
303
 
    alphabet[POLISH_EE ]=1;
304
 
    alphabet[POLISH_e  ]=1;
305
 
    alphabet[POLISH_NN ]=1;
306
 
    alphabet[POLISH_n  ]=1;
307
 
    alphabet[POLISH_OO ]=1;
308
 
    alphabet[POLISH_o  ]=1;
309
 
    alphabet[POLISH_LL ]=1;
310
 
    alphabet[POLISH_l  ]=1;
311
 
    }
312
 
 
313
 
if( language==LANG_GERMAN )
314
 
    {
315
 
    alphabet[AA_2dot_accent ]=1;
316
 
    alphabet[a_2dot_accent  ]=1;
317
 
    alphabet[UU_2dot_accent ]=1;
318
 
    alphabet[u_2dot_accent  ]=1;
319
 
    alphabet[OO_2dot_accent ]=1;
320
 
    alphabet[o_2dot_accent  ]=1;
321
 
    alphabet[0xDF  ]=1;  // ??? small S-cet
322
 
    }
323
 
 
324
 
if( language==LANG_FRENCH )
325
 
    {
326
 
    alphabet[AA_left_accent ]=1;
327
 
    alphabet[AA_roof_accent ]=1;
328
 
    alphabet[CC_bottom_accent ]=1;
329
 
    alphabet[EE_left_accent ]=1;
330
 
    alphabet[EE_right_accent ]=1;
331
 
    alphabet[EE_roof_accent ]=1;
332
 
    alphabet[EE_2dot_accent ]=1;
333
 
    alphabet[II_roof_accent ]=1;
334
 
    alphabet[II_2dot_accent ]=1;
335
 
    alphabet[OO_roof_accent ]=1;
336
 
    alphabet[OE_cap_deaf_sound ]=1;
337
 
    alphabet[AE_cap_deaf_sound ]=1;
338
 
    alphabet[UU_left_accent ]=1;
339
 
    alphabet[UU_roof_accent ]=1;
340
 
    alphabet[UU_2dot_accent ]=1;
341
 
 
342
 
    alphabet[a_left_accent ]=1;
343
 
    alphabet[a_roof_accent ]=1;
344
 
    alphabet[c_bottom_accent ]=1;
345
 
    alphabet[e_left_accent ]=1;
346
 
    alphabet[e_right_accent ]=1;
347
 
    alphabet[e_roof_accent ]=1;
348
 
    alphabet[e_2dot_accent ]=1;
349
 
    alphabet[i_roof_accent ]=1;
350
 
    alphabet[i_2dot_accent ]=1;
351
 
    alphabet[o_roof_accent ]=1;
352
 
    alphabet[oe_deaf_sound ]=1;
353
 
    alphabet[ae_deaf_sound ]=1;
354
 
    alphabet[u_left_accent ]=1;
355
 
    alphabet[u_roof_accent ]=1;
356
 
    alphabet[u_2dot_accent ]=1;
357
 
    }
358
 
 
359
 
if( language==LANG_SWEDISH )
360
 
    {
361
 
    alphabet[AA_2dot_accent ]=1;
362
 
    alphabet[OO_2dot_accent ]=1;
363
 
    alphabet[AA_circle_accent ]=1;
364
 
 
365
 
    alphabet[a_2dot_accent ]=1;
366
 
    alphabet[o_2dot_accent ]=1;
367
 
    alphabet[a_circle_accent ]=1;
368
 
    }
369
 
if( language==LANG_SPANISH )
370
 
    {
371
 
    alphabet[AA_right_accent ]=1;
372
 
    alphabet[EE_right_accent ]=1;
373
 
    alphabet[II_right_accent ]=1;
374
 
    alphabet[OO_right_accent ]=1;
375
 
    alphabet[UU_right_accent ]=1;
376
 
    alphabet[UU_2dot_accent  ]=1;
377
 
    alphabet[NN_tild_accent  ]=1;
378
 
 
379
 
    alphabet[a_right_accent ]=1;
380
 
    alphabet[e_right_accent ]=1;
381
 
    alphabet[i_right_accent ]=1;
382
 
    alphabet[o_right_accent ]=1;
383
 
    alphabet[u_right_accent ]=1;
384
 
    alphabet[u_2dot_accent  ]=1;
385
 
    alphabet[n_tild_accent  ]=1;
386
 
    }
387
 
if( language==LANG_ITALIAN )
388
 
    {
389
 
    alphabet[AA_left_accent ]=1;
390
 
    alphabet[EE_left_accent ]=1;
391
 
    alphabet[EE_right_accent]=1;
392
 
    alphabet[II_left_accent ]=1;
393
 
    alphabet[II_right_accent]=1;
394
 
    alphabet[II_roof_accent ]=1;
395
 
    alphabet[OO_left_accent ]=1;
396
 
    alphabet[OO_right_accent]=1;
397
 
    alphabet[UU_left_accent ]=1;
398
 
    alphabet[UU_right_accent]=1;
399
 
 
400
 
    alphabet[a_left_accent ]=1;
401
 
    alphabet[e_left_accent ]=1;
402
 
    alphabet[e_right_accent]=1;
403
 
    alphabet[i_left_accent ]=1;
404
 
    alphabet[i_right_accent]=1;
405
 
    alphabet[i_roof_accent ]=1;
406
 
    alphabet[o_left_accent ]=1;
407
 
    alphabet[o_right_accent]=1;
408
 
    alphabet[u_left_accent ]=1;
409
 
    alphabet[u_right_accent]=1;
410
 
    }
411
 
if( language==LANG_DANISH )
412
 
    {
413
 
    alphabet[AE_cap_deaf_sound  ]=1;
414
 
    alphabet[AA_circle_accent   ]=1;
415
 
    alphabet[OO_crossed         ]=1;
416
 
 
417
 
    alphabet[ae_deaf_sound     ]=1;
418
 
    alphabet[a_circle_accent   ]=1;
419
 
    alphabet[o_crossed         ]=1;
420
 
    }
421
 
if( language==LANG_PORTUGUESE )
422
 
    {
423
 
    alphabet[AA_left_accent ]=1;
424
 
    alphabet[AA_right_accent]=1;
425
 
    alphabet[AA_tild_accent ]=1;
426
 
    alphabet[AA_roof_accent ]=1;
427
 
    alphabet[CC_bottom_accent  ]=1;
428
 
    alphabet[EE_left_accent ]=1;
429
 
    alphabet[EE_right_accent]=1;
430
 
    alphabet[EE_2dot_accent ]=1;
431
 
    alphabet[EE_roof_accent ]=1;
432
 
    alphabet[OO_left_accent ]=1;
433
 
    alphabet[OO_right_accent]=1;
434
 
    alphabet[OO_tild_accent ]=1;
435
 
    alphabet[OO_roof_accent ]=1;
436
 
    alphabet[II_right_accent]=1;
437
 
    alphabet[II_2dot_accent ]=1;
438
 
    alphabet[UU_roof_accent ]=1;
439
 
 
440
 
    alphabet[a_left_accent ]=1;
441
 
    alphabet[a_right_accent]=1;
442
 
    alphabet[a_tild_accent ]=1;
443
 
    alphabet[a_roof_accent ]=1;
444
 
    alphabet[c_bottom_accent  ]=1;
445
 
    alphabet[e_left_accent ]=1;
446
 
    alphabet[e_right_accent]=1;
447
 
    alphabet[e_2dot_accent ]=1;
448
 
    alphabet[e_roof_accent ]=1;
449
 
    alphabet[o_left_accent ]=1;
450
 
    alphabet[o_right_accent]=1;
451
 
    alphabet[o_tild_accent ]=1;
452
 
    alphabet[o_roof_accent ]=1;
453
 
    alphabet[i_right_accent]=1;
454
 
    alphabet[i_2dot_accent ]=1;
455
 
    alphabet[u_roof_accent ]=1;
456
 
    }
457
 
if( language==LANG_DUTCH )
458
 
    {
459
 
    alphabet[AA_left_accent ]=1;
460
 
    alphabet[AA_2dot_accent ]=1;
461
 
    alphabet[AA_roof_accent ]=1;
462
 
    alphabet[CC_bottom_accent]=1;
463
 
    alphabet[EE_left_accent ]=1;
464
 
    alphabet[EE_right_accent]=1;
465
 
    alphabet[EE_2dot_accent ]=1;
466
 
    alphabet[EE_roof_accent ]=1;
467
 
    alphabet[OO_2dot_accent ]=1;
468
 
    alphabet[NN_tild_accent ]=1;
469
 
    alphabet[II_roof_accent ]=1;
470
 
    alphabet[II_2dot_accent ]=1;
471
 
    alphabet[UU_roof_accent ]=1;
472
 
    alphabet[UU_2dot_accent ]=1;
473
 
 
474
 
    alphabet[a_left_accent ]=1;
475
 
    alphabet[a_2dot_accent ]=1;
476
 
    alphabet[a_roof_accent ]=1;
477
 
    alphabet[c_bottom_accent]=1;
478
 
    alphabet[e_left_accent ]=1;
479
 
    alphabet[e_right_accent]=1;
480
 
    alphabet[e_2dot_accent ]=1;
481
 
    alphabet[e_roof_accent ]=1;
482
 
    alphabet[o_2dot_accent ]=1;
483
 
    alphabet[n_tild_accent ]=1;
484
 
    alphabet[i_roof_accent ]=1;
485
 
    alphabet[i_2dot_accent ]=1;
486
 
    alphabet[u_roof_accent ]=1;
487
 
    alphabet[u_2dot_accent ]=1;
488
 
    }
489
 
 
490
 
// � ����� � ������ ������ ��� ��� cp1250 01.09.2000 E.P.
491
 
if(is_cen_language(language))
492
 
        {
493
 
    alphabet[liga_exm]=1;
494
 
    alphabet[liga_inv_exm]=1;
495
 
    alphabet[right_quocket]=1;
496
 
    alphabet[liga_CC]=1;
497
 
    alphabet[liga_CR]=1;
498
 
        }
499
 
 
500
 
if(language==LANG_CZECH)
501
 
        {
502
 
    alphabet[AA_right_accent]=          alphabet[a_right_accent]=1;
503
 
    alphabet[CC_inv_roof]=                      alphabet[c_inv_roof]=1;
504
 
    alphabet[DD_inv_roof]=                      alphabet[d_inv_roof]=1;
505
 
    alphabet[EE_right_accent]=          alphabet[e_right_accent]=1;
506
 
    alphabet[EE_inv_roof]=                      alphabet[e_inv_roof]=1;
507
 
    alphabet[II_right_accent]=          alphabet[i_right_accent]=1;
508
 
    alphabet[NN_inv_roof]=                      alphabet[n_inv_roof]=1;
509
 
    alphabet[OO_right_accent]=          alphabet[o_right_accent]=1;
510
 
    alphabet[RR_inv_roof]=                      alphabet[r_inv_roof]=1;
511
 
    alphabet[SS_inv_roof_latin]=        alphabet[s_inv_roof_latin]=1;
512
 
    alphabet[TT_inv_roof]=                      alphabet[t_inv_roof]=1;
513
 
    alphabet[UU_right_accent]=          alphabet[u_right_accent]=1;
514
 
    alphabet[UU_circle_accent]=         alphabet[u_circle_accent]=1;
515
 
    alphabet[YY_right_accent]=          alphabet[y_right_accent]=1;
516
 
    alphabet[ZZ_inv_roof_latin]=        alphabet[z_inv_roof_latin]=1;
517
 
        }
518
 
 
519
 
if(language==LANG_ROMAN)
520
 
        {
521
 
    alphabet[AA_semicircle]=            alphabet[a_semicircle]=1;
522
 
    alphabet[AA_roof_accent]=           alphabet[a_roof_accent]=1;
523
 
    alphabet[II_roof_accent]=           alphabet[i_roof_accent]=1;
524
 
    alphabet[SS_bottom_accent]=         alphabet[s_bottom_accent]=1;
525
 
    alphabet[TT_bottom_accent]=         alphabet[t_bottom_accent]=1;
526
 
        }
527
 
 
528
 
if(language==LANG_HUNGAR)
529
 
        {
530
 
    alphabet[AA_right_accent]=          alphabet[a_right_accent]=1;
531
 
    alphabet[EE_right_accent]=          alphabet[e_right_accent]=1;
532
 
    alphabet[II_right_accent]=          alphabet[i_right_accent]=1;
533
 
    alphabet[OO_right_accent]=          alphabet[o_right_accent]=1;
534
 
    alphabet[OO_2dot_accent]=           alphabet[o_2dot_accent]=1;
535
 
    alphabet[OO_double_right]=          alphabet[o_double_right]=1;
536
 
        }
537
 
 
538
 
if(language==LANG_SLOVENIAN)
539
 
        {
540
 
    alphabet[CC_inv_roof]=                      alphabet[c_inv_roof]=1;
541
 
    alphabet[SS_inv_roof_latin]=        alphabet[s_inv_roof_latin]=1;
542
 
    alphabet[ZZ_inv_roof_latin]=        alphabet[z_inv_roof_latin]=1;
543
 
        }
544
 
 
545
 
// ������������� ���� cp1257 09.07.2001 E.P.
546
 
if(is_baltic_language(language))
547
 
        {
548
 
        alphabet[low_quotes             ]=1;
549
 
    alphabet[liga_exm           ]=1;
550
 
    alphabet[liga_i                     ]=1;
551
 
    alphabet[right_quocket      ]=1;
552
 
    alphabet[liga_TM            ]=1;
553
 
    alphabet[liga_CC            ]=1;
554
 
    alphabet[liga_CR            ]=1;
555
 
    alphabet[liga_bull_baltic]=1;
556
 
        }
557
 
 
558
 
if( language==LANG_LATVIAN )
559
 
        {
560
 
         // LATVIAN 09.07.2001 E.P.
561
 
     alphabet[AA_macron                 ]=1;    alphabet[a_macron                       ]=1;
562
 
     alphabet[CC_inv_roof               ]=1;    alphabet[c_inv_roof                     ]=1;
563
 
     alphabet[EE_macron                 ]=1;    alphabet[e_macron                       ]=1;
564
 
     alphabet[GG_bottom_accent  ]=1;    alphabet[LATVIAN_g                      ]=1;
565
 
     alphabet[II_macron                 ]=1;    alphabet[i_macron                       ]=1;
566
 
     alphabet[KK_bottom_accent  ]=1;    alphabet[k_bottom_accent        ]=1;
567
 
     alphabet[LL_bottom_accent  ]=1;    alphabet[l_bottom_accent        ]=1;
568
 
     alphabet[NN_bottom_accent  ]=1;    alphabet[n_bottom_accent        ]=1;
569
 
     alphabet[SS_inv_roof_baltic]=1;    alphabet[s_inv_roof_baltic      ]=1;
570
 
     alphabet[UU_macron                 ]=1;    alphabet[u_macron                       ]=1;
571
 
     alphabet[ZZ_inv_roof_baltic]=1;    alphabet[z_inv_roof_baltic      ]=1;
572
 
 
573
 
     alphabet[(Word8)'Q'] = alphabet[(Word8)'q'] = 0;
574
 
     alphabet[(Word8)'W'] = alphabet[(Word8)'w'] = 0;
575
 
     alphabet[(Word8)'X'] = alphabet[(Word8)'x'] = 0;
576
 
     alphabet[(Word8)'Y'] = alphabet[(Word8)'y'] = 0;
577
 
        }
578
 
 
579
 
if( language==LANG_LITHUANIAN )
580
 
        {
581
 
         // LITHUANIAN 09.07.2001 E.P.
582
 
     alphabet[AA_bottom_accent  ]=1;    alphabet[a_bottom_accent        ]=1;
583
 
     alphabet[CC_inv_roof               ]=1;    alphabet[c_inv_roof                     ]=1;
584
 
     alphabet[EE_bottom_accent  ]=1;    alphabet[e_bottom_accent        ]=1;
585
 
     alphabet[EE_dot_accent             ]=1;    alphabet[e_dot_accent           ]=1;
586
 
     alphabet[II_bottom_accent  ]=1;    alphabet[i_bottom_accent        ]=1;
587
 
     alphabet[SS_inv_roof_baltic]=1;    alphabet[s_inv_roof_baltic      ]=1;
588
 
     alphabet[UU_bottom_accent  ]=1;    alphabet[u_bottom_accent        ]=1;
589
 
     alphabet[UU_macron                 ]=1;    alphabet[u_macron                       ]=1;
590
 
     alphabet[ZZ_inv_roof_baltic]=1;    alphabet[z_inv_roof_baltic      ]=1;
591
 
 
592
 
     alphabet[(Word8)'Q'] = alphabet[(Word8)'q'] = 0;
593
 
     alphabet[(Word8)'W'] = alphabet[(Word8)'w'] = 0;
594
 
     alphabet[(Word8)'X'] = alphabet[(Word8)'x'] = 0;
595
 
        }
596
 
 
597
 
if( language==LANG_ESTONIAN )
598
 
        {
599
 
         // ESTONIAN 09.07.2001 E.P.
600
 
     alphabet[AA_2dot_accent    ]=1;    alphabet[a_2dot_accent          ]=1;
601
 
     alphabet[OO_tild_accent    ]=1;    alphabet[o_tild_accent          ]=1;
602
 
     alphabet[OO_2dot_accent    ]=1;    alphabet[o_2dot_accent          ]=1;
603
 
     alphabet[SS_inv_roof_baltic]=1;    alphabet[s_inv_roof_baltic      ]=1;
604
 
     alphabet[UU_2dot_accent    ]=1;    alphabet[u_2dot_accent          ]=1;
605
 
     alphabet[ZZ_inv_roof_baltic]=1;    alphabet[z_inv_roof_baltic      ]=1;
606
 
 
607
 
     alphabet[(Word8)'C'] = alphabet[(Word8)'c'] = 0;
608
 
     alphabet[(Word8)'Q'] = alphabet[(Word8)'q'] = 0;
609
 
     alphabet[(Word8)'W'] = alphabet[(Word8)'w'] = 0;
610
 
     alphabet[(Word8)'X'] = alphabet[(Word8)'x'] = 0;
611
 
     alphabet[(Word8)'Y'] = alphabet[(Word8)'y'] = 0;
612
 
 
613
 
        }
614
 
 
615
 
// �������� ����. 20.05.2002 E.P.
616
 
if( language==LANG_TURKISH )
617
 
        {
618
 
        // �������� ����, �������� �� ������������������
619
 
    alphabet[liga_TM_turkish            ]=1;
620
 
    alphabet[liga_CC_turkish            ]=1;
621
 
    alphabet[liga_CR_turkish            ]=1;
622
 
    alphabet[liga_bull_turkish          ]=1;
623
 
 
624
 
        // �������� �����, �������� �� ������������������
625
 
        alphabet[GG_semicircle                          ]=1;
626
 
        alphabet[g_semicircle                           ]=1;
627
 
        alphabet[II_dot_accent                          ]=1;
628
 
        alphabet[i_sans_accent                          ]=1;
629
 
        alphabet[SS_bottom_accent_turkish       ]=1;
630
 
        alphabet[s_bottom_accent_turkish        ]=1;
631
 
        alphabet['Q'] = alphabet['q'] = 0;
632
 
        alphabet['W'] = alphabet['w'] = 0;
633
 
        alphabet['X'] = alphabet['x'] = 0;
634
 
        }
635
 
 
636
 
return TRUE;
637
 
}
638
 
 
639
 
static const char *tabevn1[LANG_TOTAL]={
640
 
"rec1.dat",         // LANG_ENGLISH             0
641
 
"rec1.dat",         // LANG_GERMAN              1
642
 
"rec1.dat",         // LANG_FRENCH              2
643
 
"rec1rus.dat",      // LANG_RUSSIAN             3
644
 
"rec1.dat",         // LANG_SWEDISH             4
645
 
"rec1.dat",         // LANG_SPANISH             5
646
 
"rec1.dat",         // LANG_ITALIAN             6
647
 
"rec1r&e.dat",      // LANG_RUSENG              7
648
 
"rec1rus.dat",      // LANG_UKRAINIAN   8
649
 
"rec1rus.dat",      // LANG_SERBIAN             9
650
 
"rec1cen.dat",      // LANG_CROATIAN    10
651
 
"rec1cen.dat",      // LANG_POLISH              11
652
 
"rec1n.dat",        // LANG_DANISH              12
653
 
"rec1n.dat",        // LANG_PORTUGUESE  13
654
 
"rec1n.dat",        // LANG_DUTCH               14
655
 
"rec1.dat",         // LANG_DIG                 15
656
 
"rec1uzb.dat",      // LANG_UZBEK               16      // 01.09.2000 E.P.
657
 
"rec1kaz.dat",      // LANG_KAZ                 17
658
 
"rec1kaz.dat",      // LANG_KAZ_ENG             18
659
 
"rec1cen.dat",      // LANG_CZECH               19
660
 
"rec1cen.dat",      // LANG_ROMAN               20
661
 
"rec1cen.dat",      // LANG_HUNGAR              21
662
 
"rec1rus.dat",      // LANG_BULGAR              22
663
 
"rec1cen.dat",      // LANG_SLOVENIAN   23
664
 
"rec1blt.dat",      // LANG_LATVIAN         24
665
 
"rec1blt.dat",      // LANG_LITHUANIAN  25
666
 
"rec1blt.dat",      // LANG_ESTONIAN    26
667
 
"rec1tur.dat"       // LANG_TURKISH             27
668
 
};
669
 
 
670
 
static const char *tabevn2[LANG_TOTAL]={
671
 
"rec2.dat",         // LANG_ENGLISH             0
672
 
"rec2.dat",         // LANG_GERMAN              1
673
 
"rec2.dat",         // LANG_FRENCH              2
674
 
"rec2rus.dat",      // LANG_RUSSIAN             3
675
 
"rec2.dat",         // LANG_SWEDISH             4
676
 
"rec2.dat",         // LANG_SPANISH             5
677
 
"rec2.dat",         // LANG_ITALIAN             6
678
 
"rec2r&e.dat",      // LANG_RUSENG              7
679
 
"rec2rus.dat",      // LANG_UKRAINIAN   8
680
 
"rec2rus.dat",      // LANG_SERBIAN             9
681
 
"rec2cen.dat",      // LANG_CROATIAN    10
682
 
"rec2cen.dat",      // LANG_POLISH              11
683
 
"rec2n.dat",        // LANG_DANISH              12
684
 
"rec2n.dat",        // LANG_PORTUGUESE  13
685
 
"rec2n.dat",        // LANG_DUTCH               14
686
 
"rec2.dat",         // LANG_DIG                 15
687
 
"rec2uzb.dat",      // LANG_UZBEK               16 // 01.09.2000 E.P.
688
 
"rec2kaz.dat",      // LANG_KAZ                 17
689
 
"rec2kaz.dat",      // LANG_KAZ_ENG             18
690
 
"rec2cen.dat",      // LANG_CZECH               19
691
 
"rec2cen.dat",      // LANG_ROMAN               20
692
 
"rec2cen.dat",      // LANG_HUNGAR              21
693
 
"rec2rus.dat",      // LANG_BULGAR              22
694
 
"rec2cen.dat",      // LANG_SLOVENIAN   23
695
 
"rec2blt.dat",      // LANG_LATVIAN         24
696
 
"rec2blt.dat",      // LANG_LITHUANIAN  25
697
 
"rec2blt.dat",      // LANG_ESTONIAN    26
698
 
"rec2tur.dat"       // LANG_TURKISH             27
699
 
};
700
 
 
701
 
Bool16 rec_load_tables(Word8 language) {
702
 
    if (language >= LANG_TOTAL)
703
 
        return FALSE;
704
 
    if (!EVNInitLanguage(tabevn1[language], tabevn2[language], language))
705
 
        return FALSE;
706
 
    return TRUE;
707
 
}
708
 
 
709
 
Bool16 rec_is_language(Word8 language) {
710
 
    if (language < LANG_ENGLISH || language >= LANG_TOTAL)
711
 
        return FALSE;
712
 
    if (data_file_exists(tabevn1[language]) == -1)
713
 
        return FALSE;
714
 
    if (data_file_exists(tabevn2[language]) == -1)
715
 
        return FALSE;
716
 
 
717
 
    return TRUE;
 
66
static uchar alph_russian[256] = {
 
67
//  0 1 2 3 4 5 6 7 8 9 A B C D E F
 
68
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0
 
69
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1
 
70
                0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, // 2
 
71
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 3
 
72
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4
 
73
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, // 5
 
74
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6
 
75
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, // 7
 
76
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
 
77
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
 
78
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // a
 
79
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // b
 
80
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // c
 
81
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // d
 
82
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // e
 
83
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // f
 
84
                };
 
85
static uchar alph_digital[256] = {
 
86
//  0 1 2 3 4 5 6 7 8 9 A B C D E F
 
87
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0
 
88
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1
 
89
                0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 2
 
90
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, // 3
 
91
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4
 
92
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 5
 
93
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6
 
94
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 7
 
95
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8
 
96
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9
 
97
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // a
 
98
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // b
 
99
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // c
 
100
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // d
 
101
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // e
 
102
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // f
 
103
                };
 
104
static uchar alph_ruseng[256] = {
 
105
//  0 1 2 3 4 5 6 7 8 9 A B C D E F
 
106
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0
 
107
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1
 
108
                0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, // 2
 
109
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 3
 
110
                0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
 
111
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, // 5
 
112
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
 
113
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, // 7
 
114
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 8
 
115
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 9
 
116
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // a
 
117
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // b
 
118
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // c
 
119
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // d
 
120
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // e
 
121
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // f
 
122
                };
 
123
static uchar alph_english[256] = {
 
124
//  0 1 2 3 4 5 6 7 8 9 A B C D E F
 
125
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0
 
126
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1
 
127
                0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, // 2
 
128
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 3
 
129
                0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
 
130
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, // 5
 
131
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
 
132
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, // 7
 
133
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8
 
134
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9
 
135
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // a
 
136
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, // b
 
137
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // c
 
138
                0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, // d
 
139
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // e
 
140
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // f
 
141
                };
 
142
static uchar alph_ce[256] = {
 
143
//  0 1 2 3 4 5 6 7 8 9 A B C D E F
 
144
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0
 
145
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1
 
146
                0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, // 2
 
147
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 3
 
148
                0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 4
 
149
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, // 5
 
150
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 6
 
151
                1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, // 7
 
152
                1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8
 
153
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9
 
154
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // a
 
155
                1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, // b
 
156
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // c
 
157
                0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, // d
 
158
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // e
 
159
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // f
 
160
                };
 
161
static uchar *alph_lang[LANG_TOTAL] = { alph_english, // LANG_ENGLISH    0
 
162
                alph_english, // LANG_GERMAN     1
 
163
                alph_english, // LANG_FRENCH     2
 
164
                alph_russian, // LANG_RUSSIAN    3
 
165
                alph_english, // LANG_SWEDISH    4
 
166
                alph_english, // LANG_SPANISH    5
 
167
                alph_english, // LANG_ITALIAN    6
 
168
                alph_ruseng, // LANG_RUSENG     7
 
169
                alph_russian, // LANG_UKRAINIAN  8
 
170
                alph_russian, // LANG_SERBIAN    9
 
171
                alph_ce, // LANG_CROATIAN   10
 
172
                alph_ce, // LANG_POLISH     11
 
173
                alph_english, // LANG_DANISH     12
 
174
                alph_english, // LANG_PORTUGUESE 13
 
175
                alph_english, // LANG_DUTCH      14
 
176
                alph_digital, // LANG_DIG        15
 
177
                alph_russian, // LANG_UZBEK              16     // 01.09.2000 E.P.
 
178
                alph_russian, // LANG_KAZ            17
 
179
                alph_ruseng, // LANG_KAZ_ENG    18
 
180
                alph_ce, // LANG_CZECH           19
 
181
                alph_ce, // LANG_ROMAN           20
 
182
                alph_ce, // LANG_HUNGAR  21
 
183
                alph_russian, // LANG_BULGAR     22
 
184
                alph_ce, // LANG_SLOVENIAN       23
 
185
                alph_english, // LANG_LATVIAN    24
 
186
                alph_english, // LANG_LITHUANIAN 25
 
187
                alph_english, // LANG_ESTONIAN   26
 
188
                alph_english // LANG_TURKISH     27
 
189
                };
 
190
 
 
191
Bool16 rec_set_alpha(uchar language, uchar *alphabet) {
 
192
        if (language >= LANG_TOTAL)
 
193
                return FALSE;
 
194
        if (alph_lang[language])
 
195
                memcpy(alphabet, alph_lang[language], 256);
 
196
        else
 
197
                return FALSE;
 
198
        if (language == LANG_RUSSIAN || language == LANG_RUSENG || language
 
199
                        == LANG_BULGAR // 01.09.2000 E.P.
 
200
        ) {
 
201
                alphabet[r_cu_d] = 1;
 
202
                alphabet[r_cu_g] = 1;
 
203
                alphabet[r_cu_m] = 1;
 
204
                alphabet[r_cu_u] = 1;
 
205
                alphabet[r_cu_z] = 1;
 
206
                alphabet[r_cu_a] = 1;
 
207
 
 
208
                alphabet[liga_exm] = 1;
 
209
                alphabet[liga_qm] = 1;
 
210
                alphabet[liga_uperc] = 1;
 
211
                alphabet[liga_lperc] = 1;
 
212
        }
 
213
 
 
214
        // � ���������� ��� ���� ������� ����. 01.09.2000 E.P.
 
215
        if (language == LANG_BULGAR) {
 
216
                alphabet[r_EE_2dot] = 0;
 
217
                alphabet[r_e_2dot] = 0;
 
218
                alphabet[(uchar) '�'] = 0;
 
219
                alphabet[(uchar) '�'] = 0;
 
220
                alphabet[(uchar) '�'] = 0;
 
221
                alphabet[(uchar) '�'] = 0;
 
222
        }
 
223
 
 
224
        if (language == LANG_UKRAINIAN) {
 
225
                alphabet[r_cu_d] = 1;
 
226
                alphabet[r_cu_g] = 1;
 
227
                alphabet[r_cu_m] = 1;
 
228
                alphabet[r_cu_u] = 1;
 
229
                alphabet[r_cu_z] = 1;
 
230
                alphabet[r_cu_a] = 1;
 
231
                alphabet['I'] = 1;
 
232
                alphabet['i'] = 1;
 
233
                alphabet[UKR_I] = 1;
 
234
                alphabet[UKR_i] = 1;
 
235
                alphabet[UKR_II] = 1;
 
236
                alphabet[UKR_ii] = 1;
 
237
                alphabet[UKR_E] = 1;
 
238
                alphabet[UKR_e] = 1;
 
239
                alphabet[UKR_G] = 1;
 
240
                alphabet[UKR_g] = 1;
 
241
                alphabet[liga_i] = 1;
 
242
 
 
243
                alphabet[liga_exm] = 1;
 
244
                alphabet[liga_qm] = 1;
 
245
                alphabet[liga_uperc] = 1;
 
246
                alphabet[liga_lperc] = 1;
 
247
        }
 
248
        if (language == LANG_SERBIAN) {
 
249
                alphabet[r_cu_d] = 1;
 
250
                alphabet[r_cu_g] = 1;
 
251
                alphabet[r_cu_m] = 1;
 
252
                alphabet[r_cu_u] = 1;
 
253
                alphabet[r_cu_z] = 1;
 
254
                alphabet[r_cu_a] = 1;
 
255
                alphabet[SERB_HH] = 1;
 
256
                alphabet[SERB_hh] = 1;
 
257
                alphabet[SERB_L] = 1;
 
258
                alphabet[SERB_l] = 1;
 
259
                alphabet[SERB_N] = 1;
 
260
                alphabet[SERB_n] = 1;
 
261
                alphabet[SERB_H] = 1;
 
262
                alphabet[SERB_h] = 1;
 
263
                alphabet[SERB_U] = 1;
 
264
                alphabet[SERB_u] = 1;
 
265
                alphabet[SERB_J] = 1;
 
266
                alphabet[SERB_j] = 1;
 
267
                alphabet['J'] = 1;
 
268
                alphabet['j'] = 1;
 
269
                alphabet[liga_j] = 1;
 
270
 
 
271
                alphabet[liga_exm] = 1;
 
272
                alphabet[liga_qm] = 1;
 
273
                alphabet[liga_uperc] = 1;
 
274
                alphabet[liga_lperc] = 1;
 
275
        }
 
276
 
 
277
        if (language == LANG_CROATIAN) {
 
278
                alphabet[CROAT_D] = 1;
 
279
                alphabet[CROAT_d] = 1;
 
280
                alphabet[CROAT_SR] = 1;
 
281
                alphabet[CROAT_sr] = 1;
 
282
                alphabet[CROAT_CA] = 1;
 
283
                alphabet[CROAT_ca] = 1;
 
284
                alphabet[CROAT_ZR] = 1;
 
285
                alphabet[CROAT_zr] = 1;
 
286
                alphabet[CROAT_CR] = 1;
 
287
                alphabet[CROAT_cr] = 1;
 
288
        }
 
289
        if (language == LANG_POLISH) {
 
290
                alphabet[POLISH_SS] = 1;
 
291
                alphabet[POLISH_s] = 1;
 
292
                alphabet[POLISH_ZZR] = 1;
 
293
                alphabet[POLISH_zr] = 1;
 
294
                alphabet[POLISH_ZZD] = 1;
 
295
                alphabet[POLISH_zd] = 1;
 
296
                alphabet[POLISH_CC] = 1;
 
297
                alphabet[POLISH_c] = 1;
 
298
                alphabet[POLISH_EE] = 1;
 
299
                alphabet[POLISH_e] = 1;
 
300
                alphabet[POLISH_NN] = 1;
 
301
                alphabet[POLISH_n] = 1;
 
302
                alphabet[POLISH_OO] = 1;
 
303
                alphabet[POLISH_o] = 1;
 
304
                alphabet[POLISH_LL] = 1;
 
305
                alphabet[POLISH_l] = 1;
 
306
        }
 
307
 
 
308
        if (language == LANG_GERMAN) {
 
309
                alphabet[AA_2dot_accent] = 1;
 
310
                alphabet[a_2dot_accent] = 1;
 
311
                alphabet[UU_2dot_accent] = 1;
 
312
                alphabet[u_2dot_accent] = 1;
 
313
                alphabet[OO_2dot_accent] = 1;
 
314
                alphabet[o_2dot_accent] = 1;
 
315
                alphabet[0xDF] = 1; // ??? small S-cet
 
316
        }
 
317
 
 
318
        if (language == LANG_FRENCH) {
 
319
                alphabet[AA_left_accent] = 1;
 
320
                alphabet[AA_roof_accent] = 1;
 
321
                alphabet[CC_bottom_accent] = 1;
 
322
                alphabet[EE_left_accent] = 1;
 
323
                alphabet[EE_right_accent] = 1;
 
324
                alphabet[EE_roof_accent] = 1;
 
325
                alphabet[EE_2dot_accent] = 1;
 
326
                alphabet[II_roof_accent] = 1;
 
327
                alphabet[II_2dot_accent] = 1;
 
328
                alphabet[OO_roof_accent] = 1;
 
329
                alphabet[OE_cap_deaf_sound] = 1;
 
330
                alphabet[AE_cap_deaf_sound] = 1;
 
331
                alphabet[UU_left_accent] = 1;
 
332
                alphabet[UU_roof_accent] = 1;
 
333
                alphabet[UU_2dot_accent] = 1;
 
334
 
 
335
                alphabet[a_left_accent] = 1;
 
336
                alphabet[a_roof_accent] = 1;
 
337
                alphabet[c_bottom_accent] = 1;
 
338
                alphabet[e_left_accent] = 1;
 
339
                alphabet[e_right_accent] = 1;
 
340
                alphabet[e_roof_accent] = 1;
 
341
                alphabet[e_2dot_accent] = 1;
 
342
                alphabet[i_roof_accent] = 1;
 
343
                alphabet[i_2dot_accent] = 1;
 
344
                alphabet[o_roof_accent] = 1;
 
345
                alphabet[oe_deaf_sound] = 1;
 
346
                alphabet[ae_deaf_sound] = 1;
 
347
                alphabet[u_left_accent] = 1;
 
348
                alphabet[u_roof_accent] = 1;
 
349
                alphabet[u_2dot_accent] = 1;
 
350
        }
 
351
 
 
352
        if (language == LANG_SWEDISH) {
 
353
                alphabet[AA_2dot_accent] = 1;
 
354
                alphabet[OO_2dot_accent] = 1;
 
355
                alphabet[AA_circle_accent] = 1;
 
356
 
 
357
                alphabet[a_2dot_accent] = 1;
 
358
                alphabet[o_2dot_accent] = 1;
 
359
                alphabet[a_circle_accent] = 1;
 
360
        }
 
361
        if (language == LANG_SPANISH) {
 
362
                alphabet[AA_right_accent] = 1;
 
363
                alphabet[EE_right_accent] = 1;
 
364
                alphabet[II_right_accent] = 1;
 
365
                alphabet[OO_right_accent] = 1;
 
366
                alphabet[UU_right_accent] = 1;
 
367
                alphabet[UU_2dot_accent] = 1;
 
368
                alphabet[NN_tild_accent] = 1;
 
369
 
 
370
                alphabet[a_right_accent] = 1;
 
371
                alphabet[e_right_accent] = 1;
 
372
                alphabet[i_right_accent] = 1;
 
373
                alphabet[o_right_accent] = 1;
 
374
                alphabet[u_right_accent] = 1;
 
375
                alphabet[u_2dot_accent] = 1;
 
376
                alphabet[n_tild_accent] = 1;
 
377
        }
 
378
        if (language == LANG_ITALIAN) {
 
379
                alphabet[AA_left_accent] = 1;
 
380
                alphabet[EE_left_accent] = 1;
 
381
                alphabet[EE_right_accent] = 1;
 
382
                alphabet[II_left_accent] = 1;
 
383
                alphabet[II_right_accent] = 1;
 
384
                alphabet[II_roof_accent] = 1;
 
385
                alphabet[OO_left_accent] = 1;
 
386
                alphabet[OO_right_accent] = 1;
 
387
                alphabet[UU_left_accent] = 1;
 
388
                alphabet[UU_right_accent] = 1;
 
389
 
 
390
                alphabet[a_left_accent] = 1;
 
391
                alphabet[e_left_accent] = 1;
 
392
                alphabet[e_right_accent] = 1;
 
393
                alphabet[i_left_accent] = 1;
 
394
                alphabet[i_right_accent] = 1;
 
395
                alphabet[i_roof_accent] = 1;
 
396
                alphabet[o_left_accent] = 1;
 
397
                alphabet[o_right_accent] = 1;
 
398
                alphabet[u_left_accent] = 1;
 
399
                alphabet[u_right_accent] = 1;
 
400
        }
 
401
        if (language == LANG_DANISH) {
 
402
                alphabet[AE_cap_deaf_sound] = 1;
 
403
                alphabet[AA_circle_accent] = 1;
 
404
                alphabet[OO_crossed] = 1;
 
405
 
 
406
                alphabet[ae_deaf_sound] = 1;
 
407
                alphabet[a_circle_accent] = 1;
 
408
                alphabet[o_crossed] = 1;
 
409
        }
 
410
        if (language == LANG_PORTUGUESE) {
 
411
                alphabet[AA_left_accent] = 1;
 
412
                alphabet[AA_right_accent] = 1;
 
413
                alphabet[AA_tild_accent] = 1;
 
414
                alphabet[AA_roof_accent] = 1;
 
415
                alphabet[CC_bottom_accent] = 1;
 
416
                alphabet[EE_left_accent] = 1;
 
417
                alphabet[EE_right_accent] = 1;
 
418
                alphabet[EE_2dot_accent] = 1;
 
419
                alphabet[EE_roof_accent] = 1;
 
420
                alphabet[OO_left_accent] = 1;
 
421
                alphabet[OO_right_accent] = 1;
 
422
                alphabet[OO_tild_accent] = 1;
 
423
                alphabet[OO_roof_accent] = 1;
 
424
                alphabet[II_right_accent] = 1;
 
425
                alphabet[II_2dot_accent] = 1;
 
426
                alphabet[UU_roof_accent] = 1;
 
427
 
 
428
                alphabet[a_left_accent] = 1;
 
429
                alphabet[a_right_accent] = 1;
 
430
                alphabet[a_tild_accent] = 1;
 
431
                alphabet[a_roof_accent] = 1;
 
432
                alphabet[c_bottom_accent] = 1;
 
433
                alphabet[e_left_accent] = 1;
 
434
                alphabet[e_right_accent] = 1;
 
435
                alphabet[e_2dot_accent] = 1;
 
436
                alphabet[e_roof_accent] = 1;
 
437
                alphabet[o_left_accent] = 1;
 
438
                alphabet[o_right_accent] = 1;
 
439
                alphabet[o_tild_accent] = 1;
 
440
                alphabet[o_roof_accent] = 1;
 
441
                alphabet[i_right_accent] = 1;
 
442
                alphabet[i_2dot_accent] = 1;
 
443
                alphabet[u_roof_accent] = 1;
 
444
        }
 
445
        if (language == LANG_DUTCH) {
 
446
                alphabet[AA_left_accent] = 1;
 
447
                alphabet[AA_2dot_accent] = 1;
 
448
                alphabet[AA_roof_accent] = 1;
 
449
                alphabet[CC_bottom_accent] = 1;
 
450
                alphabet[EE_left_accent] = 1;
 
451
                alphabet[EE_right_accent] = 1;
 
452
                alphabet[EE_2dot_accent] = 1;
 
453
                alphabet[EE_roof_accent] = 1;
 
454
                alphabet[OO_2dot_accent] = 1;
 
455
                alphabet[NN_tild_accent] = 1;
 
456
                alphabet[II_roof_accent] = 1;
 
457
                alphabet[II_2dot_accent] = 1;
 
458
                alphabet[UU_roof_accent] = 1;
 
459
                alphabet[UU_2dot_accent] = 1;
 
460
 
 
461
                alphabet[a_left_accent] = 1;
 
462
                alphabet[a_2dot_accent] = 1;
 
463
                alphabet[a_roof_accent] = 1;
 
464
                alphabet[c_bottom_accent] = 1;
 
465
                alphabet[e_left_accent] = 1;
 
466
                alphabet[e_right_accent] = 1;
 
467
                alphabet[e_2dot_accent] = 1;
 
468
                alphabet[e_roof_accent] = 1;
 
469
                alphabet[o_2dot_accent] = 1;
 
470
                alphabet[n_tild_accent] = 1;
 
471
                alphabet[i_roof_accent] = 1;
 
472
                alphabet[i_2dot_accent] = 1;
 
473
                alphabet[u_roof_accent] = 1;
 
474
                alphabet[u_2dot_accent] = 1;
 
475
        }
 
476
 
 
477
        // � ����� � ������ ������ ��� ��� cp1250 01.09.2000 E.P.
 
478
        if (is_cen_language(language)) {
 
479
                alphabet[liga_exm] = 1;
 
480
                alphabet[liga_inv_exm] = 1;
 
481
                alphabet[right_quocket] = 1;
 
482
                alphabet[liga_CC] = 1;
 
483
                alphabet[liga_CR] = 1;
 
484
        }
 
485
 
 
486
        if (language == LANG_CZECH) {
 
487
                alphabet[AA_right_accent] = alphabet[a_right_accent] = 1;
 
488
                alphabet[CC_inv_roof] = alphabet[c_inv_roof] = 1;
 
489
                alphabet[DD_inv_roof] = alphabet[d_inv_roof] = 1;
 
490
                alphabet[EE_right_accent] = alphabet[e_right_accent] = 1;
 
491
                alphabet[EE_inv_roof] = alphabet[e_inv_roof] = 1;
 
492
                alphabet[II_right_accent] = alphabet[i_right_accent] = 1;
 
493
                alphabet[NN_inv_roof] = alphabet[n_inv_roof] = 1;
 
494
                alphabet[OO_right_accent] = alphabet[o_right_accent] = 1;
 
495
                alphabet[RR_inv_roof] = alphabet[r_inv_roof] = 1;
 
496
                alphabet[SS_inv_roof_latin] = alphabet[s_inv_roof_latin] = 1;
 
497
                alphabet[TT_inv_roof] = alphabet[t_inv_roof] = 1;
 
498
                alphabet[UU_right_accent] = alphabet[u_right_accent] = 1;
 
499
                alphabet[UU_circle_accent] = alphabet[u_circle_accent] = 1;
 
500
                alphabet[YY_right_accent] = alphabet[y_right_accent] = 1;
 
501
                alphabet[ZZ_inv_roof_latin] = alphabet[z_inv_roof_latin] = 1;
 
502
        }
 
503
 
 
504
        if (language == LANG_ROMAN) {
 
505
                alphabet[AA_semicircle] = alphabet[a_semicircle] = 1;
 
506
                alphabet[AA_roof_accent] = alphabet[a_roof_accent] = 1;
 
507
                alphabet[II_roof_accent] = alphabet[i_roof_accent] = 1;
 
508
                alphabet[SS_bottom_accent] = alphabet[s_bottom_accent] = 1;
 
509
                alphabet[TT_bottom_accent] = alphabet[t_bottom_accent] = 1;
 
510
        }
 
511
 
 
512
        if (language == LANG_HUNGAR) {
 
513
                alphabet[AA_right_accent] = alphabet[a_right_accent] = 1;
 
514
                alphabet[EE_right_accent] = alphabet[e_right_accent] = 1;
 
515
                alphabet[II_right_accent] = alphabet[i_right_accent] = 1;
 
516
                alphabet[OO_right_accent] = alphabet[o_right_accent] = 1;
 
517
                alphabet[OO_2dot_accent] = alphabet[o_2dot_accent] = 1;
 
518
                alphabet[OO_double_right] = alphabet[o_double_right] = 1;
 
519
        }
 
520
 
 
521
        if (language == LANG_SLOVENIAN) {
 
522
                alphabet[CC_inv_roof] = alphabet[c_inv_roof] = 1;
 
523
                alphabet[SS_inv_roof_latin] = alphabet[s_inv_roof_latin] = 1;
 
524
                alphabet[ZZ_inv_roof_latin] = alphabet[z_inv_roof_latin] = 1;
 
525
        }
 
526
 
 
527
        // ������������� ���� cp1257 09.07.2001 E.P.
 
528
        if (is_baltic_language(language)) {
 
529
                alphabet[low_quotes] = 1;
 
530
                alphabet[liga_exm] = 1;
 
531
                alphabet[liga_i] = 1;
 
532
                alphabet[right_quocket] = 1;
 
533
                alphabet[liga_TM] = 1;
 
534
                alphabet[liga_CC] = 1;
 
535
                alphabet[liga_CR] = 1;
 
536
                alphabet[liga_bull_baltic] = 1;
 
537
        }
 
538
 
 
539
        if (language == LANG_LATVIAN) {
 
540
                // LATVIAN 09.07.2001 E.P.
 
541
                alphabet[AA_macron] = 1;
 
542
                alphabet[a_macron] = 1;
 
543
                alphabet[CC_inv_roof] = 1;
 
544
                alphabet[c_inv_roof] = 1;
 
545
                alphabet[EE_macron] = 1;
 
546
                alphabet[e_macron] = 1;
 
547
                alphabet[GG_bottom_accent] = 1;
 
548
                alphabet[LATVIAN_g] = 1;
 
549
                alphabet[II_macron] = 1;
 
550
                alphabet[i_macron] = 1;
 
551
                alphabet[KK_bottom_accent] = 1;
 
552
                alphabet[k_bottom_accent] = 1;
 
553
                alphabet[LL_bottom_accent] = 1;
 
554
                alphabet[l_bottom_accent] = 1;
 
555
                alphabet[NN_bottom_accent] = 1;
 
556
                alphabet[n_bottom_accent] = 1;
 
557
                alphabet[SS_inv_roof_baltic] = 1;
 
558
                alphabet[s_inv_roof_baltic] = 1;
 
559
                alphabet[UU_macron] = 1;
 
560
                alphabet[u_macron] = 1;
 
561
                alphabet[ZZ_inv_roof_baltic] = 1;
 
562
                alphabet[z_inv_roof_baltic] = 1;
 
563
 
 
564
                alphabet[(uchar) 'Q'] = alphabet[(uchar) 'q'] = 0;
 
565
                alphabet[(uchar) 'W'] = alphabet[(uchar) 'w'] = 0;
 
566
                alphabet[(uchar) 'X'] = alphabet[(uchar) 'x'] = 0;
 
567
                alphabet[(uchar) 'Y'] = alphabet[(uchar) 'y'] = 0;
 
568
        }
 
569
 
 
570
        if (language == LANG_LITHUANIAN) {
 
571
                // LITHUANIAN 09.07.2001 E.P.
 
572
                alphabet[AA_bottom_accent] = 1;
 
573
                alphabet[a_bottom_accent] = 1;
 
574
                alphabet[CC_inv_roof] = 1;
 
575
                alphabet[c_inv_roof] = 1;
 
576
                alphabet[EE_bottom_accent] = 1;
 
577
                alphabet[e_bottom_accent] = 1;
 
578
                alphabet[EE_dot_accent] = 1;
 
579
                alphabet[e_dot_accent] = 1;
 
580
                alphabet[II_bottom_accent] = 1;
 
581
                alphabet[i_bottom_accent] = 1;
 
582
                alphabet[SS_inv_roof_baltic] = 1;
 
583
                alphabet[s_inv_roof_baltic] = 1;
 
584
                alphabet[UU_bottom_accent] = 1;
 
585
                alphabet[u_bottom_accent] = 1;
 
586
                alphabet[UU_macron] = 1;
 
587
                alphabet[u_macron] = 1;
 
588
                alphabet[ZZ_inv_roof_baltic] = 1;
 
589
                alphabet[z_inv_roof_baltic] = 1;
 
590
 
 
591
                alphabet[(uchar) 'Q'] = alphabet[(uchar) 'q'] = 0;
 
592
                alphabet[(uchar) 'W'] = alphabet[(uchar) 'w'] = 0;
 
593
                alphabet[(uchar) 'X'] = alphabet[(uchar) 'x'] = 0;
 
594
        }
 
595
 
 
596
        if (language == LANG_ESTONIAN) {
 
597
                // ESTONIAN 09.07.2001 E.P.
 
598
                alphabet[AA_2dot_accent] = 1;
 
599
                alphabet[a_2dot_accent] = 1;
 
600
                alphabet[OO_tild_accent] = 1;
 
601
                alphabet[o_tild_accent] = 1;
 
602
                alphabet[OO_2dot_accent] = 1;
 
603
                alphabet[o_2dot_accent] = 1;
 
604
                alphabet[SS_inv_roof_baltic] = 1;
 
605
                alphabet[s_inv_roof_baltic] = 1;
 
606
                alphabet[UU_2dot_accent] = 1;
 
607
                alphabet[u_2dot_accent] = 1;
 
608
                alphabet[ZZ_inv_roof_baltic] = 1;
 
609
                alphabet[z_inv_roof_baltic] = 1;
 
610
 
 
611
                alphabet[(uchar) 'C'] = alphabet[(uchar) 'c'] = 0;
 
612
                alphabet[(uchar) 'Q'] = alphabet[(uchar) 'q'] = 0;
 
613
                alphabet[(uchar) 'W'] = alphabet[(uchar) 'w'] = 0;
 
614
                alphabet[(uchar) 'X'] = alphabet[(uchar) 'x'] = 0;
 
615
                alphabet[(uchar) 'Y'] = alphabet[(uchar) 'y'] = 0;
 
616
 
 
617
        }
 
618
 
 
619
        // �������� ����. 20.05.2002 E.P.
 
620
        if (language == LANG_TURKISH) {
 
621
                // �������� ����, �������� �� ������������������
 
622
                alphabet[liga_TM_turkish] = 1;
 
623
                alphabet[liga_CC_turkish] = 1;
 
624
                alphabet[liga_CR_turkish] = 1;
 
625
                alphabet[liga_bull_turkish] = 1;
 
626
 
 
627
                // �������� �����, �������� �� ������������������
 
628
                alphabet[GG_semicircle] = 1;
 
629
                alphabet[g_semicircle] = 1;
 
630
                alphabet[II_dot_accent] = 1;
 
631
                alphabet[i_sans_accent] = 1;
 
632
                alphabet[SS_bottom_accent_turkish] = 1;
 
633
                alphabet[s_bottom_accent_turkish] = 1;
 
634
                alphabet['Q'] = alphabet['q'] = 0;
 
635
                alphabet['W'] = alphabet['w'] = 0;
 
636
                alphabet['X'] = alphabet['x'] = 0;
 
637
        }
 
638
 
 
639
        return TRUE;
 
640
}
 
641
 
 
642
static const char *tabevn1[LANG_TOTAL] = { "rec1.dat", // LANG_ENGLISH          0
 
643
                "rec1.dat", // LANG_GERMAN              1
 
644
                "rec1.dat", // LANG_FRENCH              2
 
645
                "rec1rus.dat", // LANG_RUSSIAN          3
 
646
                "rec1.dat", // LANG_SWEDISH             4
 
647
                "rec1.dat", // LANG_SPANISH             5
 
648
                "rec1.dat", // LANG_ITALIAN             6
 
649
                "rec1r&e.dat", // LANG_RUSENG           7
 
650
                "rec1rus.dat", // LANG_UKRAINIAN        8
 
651
                "rec1rus.dat", // LANG_SERBIAN          9
 
652
                "rec1cen.dat", // LANG_CROATIAN 10
 
653
                "rec1cen.dat", // LANG_POLISH           11
 
654
                "rec1n.dat", // LANG_DANISH             12
 
655
                "rec1n.dat", // LANG_PORTUGUESE 13
 
656
                "rec1n.dat", // LANG_DUTCH              14
 
657
                "rec1.dat", // LANG_DIG                 15
 
658
                "rec1uzb.dat", // LANG_UZBEK            16      // 01.09.2000 E.P.
 
659
                "rec1kaz.dat", // LANG_KAZ                      17
 
660
                "rec1kaz.dat", // LANG_KAZ_ENG          18
 
661
                "rec1cen.dat", // LANG_CZECH            19
 
662
                "rec1cen.dat", // LANG_ROMAN            20
 
663
                "rec1cen.dat", // LANG_HUNGAR           21
 
664
                "rec1rus.dat", // LANG_BULGAR           22
 
665
                "rec1cen.dat", // LANG_SLOVENIAN        23
 
666
                "rec1blt.dat", // LANG_LATVIAN      24
 
667
                "rec1blt.dat", // LANG_LITHUANIAN  25
 
668
                "rec1blt.dat", // LANG_ESTONIAN 26
 
669
                "rec1tur.dat" // LANG_TURKISH           27
 
670
                };
 
671
 
 
672
static const char *tabevn2[LANG_TOTAL] = { "rec2.dat", // LANG_ENGLISH          0
 
673
                "rec2.dat", // LANG_GERMAN              1
 
674
                "rec2.dat", // LANG_FRENCH              2
 
675
                "rec2rus.dat", // LANG_RUSSIAN          3
 
676
                "rec2.dat", // LANG_SWEDISH             4
 
677
                "rec2.dat", // LANG_SPANISH             5
 
678
                "rec2.dat", // LANG_ITALIAN             6
 
679
                "rec2r&e.dat", // LANG_RUSENG           7
 
680
                "rec2rus.dat", // LANG_UKRAINIAN        8
 
681
                "rec2rus.dat", // LANG_SERBIAN          9
 
682
                "rec2cen.dat", // LANG_CROATIAN 10
 
683
                "rec2cen.dat", // LANG_POLISH           11
 
684
                "rec2n.dat", // LANG_DANISH             12
 
685
                "rec2n.dat", // LANG_PORTUGUESE 13
 
686
                "rec2n.dat", // LANG_DUTCH              14
 
687
                "rec2.dat", // LANG_DIG                 15
 
688
                "rec2uzb.dat", // LANG_UZBEK            16 // 01.09.2000 E.P.
 
689
                "rec2kaz.dat", // LANG_KAZ                      17
 
690
                "rec2kaz.dat", // LANG_KAZ_ENG          18
 
691
                "rec2cen.dat", // LANG_CZECH            19
 
692
                "rec2cen.dat", // LANG_ROMAN            20
 
693
                "rec2cen.dat", // LANG_HUNGAR           21
 
694
                "rec2rus.dat", // LANG_BULGAR           22
 
695
                "rec2cen.dat", // LANG_SLOVENIAN        23
 
696
                "rec2blt.dat", // LANG_LATVIAN      24
 
697
                "rec2blt.dat", // LANG_LITHUANIAN  25
 
698
                "rec2blt.dat", // LANG_ESTONIAN 26
 
699
                "rec2tur.dat" // LANG_TURKISH           27
 
700
                };
 
701
 
 
702
Bool16 rec_load_tables(uchar language) {
 
703
        if (language >= LANG_TOTAL)
 
704
                return FALSE;
 
705
        if (!EVNInitLanguage(tabevn1[language], tabevn2[language], language))
 
706
                return FALSE;
 
707
        return TRUE;
 
708
}
 
709
 
 
710
Bool16 rec_is_language(uchar language) {
 
711
        if (language < LANG_ENGLISH || language >= LANG_TOTAL)
 
712
                return FALSE;
 
713
        if (data_file_exists(tabevn1[language]) == -1)
 
714
                return FALSE;
 
715
        if (data_file_exists(tabevn2[language]) == -1)
 
716
                return FALSE;
 
717
 
 
718
        return TRUE;
718
719
}