+ Added Greek code page 1253 to the compiler to have support for the third modern code page (in addition to cp1251 and cp1252). It is needed to be able to define "type AnsiString(1253)" in tests. Previously I used cp1252 for tests with Euro symbol conversions. But for unknown reason cp1252 does not have the Euro symbol with code $80 on Unix systems (libiconv bug?). In other hand cp1253 has the Euro symbol with code $80 as expected.

git-svn-id: trunk@23615 -
This commit is contained in:
yury 2013-02-14 11:29:47 +00:00
parent fd873c2ee0
commit 849095f5e5
3 changed files with 285 additions and 0 deletions

1
.gitattributes vendored
View File

@ -154,6 +154,7 @@ compiler/comprsrc.pas svneol=native#text/plain
compiler/constexp.pas svneol=native#text/x-pascal
compiler/cp1251.pas svneol=native#text/plain
compiler/cp1252.pp svneol=native#text/plain
compiler/cp1253.pp svneol=native#text/plain
compiler/cp437.pas svneol=native#text/plain
compiler/cp646.pas svneol=native#text/pascal
compiler/cp850.pas svneol=native#text/plain

282
compiler/cp1253.pp Normal file
View File

@ -0,0 +1,282 @@
{ This is an automatically created file, so don't edit it }
unit cp1253;
interface
implementation
uses
{$if FPC_FULLVERSION<20700}ccharset{$else}charset{$endif};
const
map : array[0..255] of tunicodecharmapping = (
(unicode : 0; flag : umf_noinfo; reserved: 0),
(unicode : 1; flag : umf_noinfo; reserved: 0),
(unicode : 2; flag : umf_noinfo; reserved: 0),
(unicode : 3; flag : umf_noinfo; reserved: 0),
(unicode : 4; flag : umf_noinfo; reserved: 0),
(unicode : 5; flag : umf_noinfo; reserved: 0),
(unicode : 6; flag : umf_noinfo; reserved: 0),
(unicode : 7; flag : umf_noinfo; reserved: 0),
(unicode : 8; flag : umf_noinfo; reserved: 0),
(unicode : 9; flag : umf_noinfo; reserved: 0),
(unicode : 10; flag : umf_noinfo; reserved: 0),
(unicode : 11; flag : umf_noinfo; reserved: 0),
(unicode : 12; flag : umf_noinfo; reserved: 0),
(unicode : 13; flag : umf_noinfo; reserved: 0),
(unicode : 14; flag : umf_noinfo; reserved: 0),
(unicode : 15; flag : umf_noinfo; reserved: 0),
(unicode : 16; flag : umf_noinfo; reserved: 0),
(unicode : 17; flag : umf_noinfo; reserved: 0),
(unicode : 18; flag : umf_noinfo; reserved: 0),
(unicode : 19; flag : umf_noinfo; reserved: 0),
(unicode : 20; flag : umf_noinfo; reserved: 0),
(unicode : 21; flag : umf_noinfo; reserved: 0),
(unicode : 22; flag : umf_noinfo; reserved: 0),
(unicode : 23; flag : umf_noinfo; reserved: 0),
(unicode : 24; flag : umf_noinfo; reserved: 0),
(unicode : 25; flag : umf_noinfo; reserved: 0),
(unicode : 26; flag : umf_noinfo; reserved: 0),
(unicode : 27; flag : umf_noinfo; reserved: 0),
(unicode : 28; flag : umf_noinfo; reserved: 0),
(unicode : 29; flag : umf_noinfo; reserved: 0),
(unicode : 30; flag : umf_noinfo; reserved: 0),
(unicode : 31; flag : umf_noinfo; reserved: 0),
(unicode : 32; flag : umf_noinfo; reserved: 0),
(unicode : 33; flag : umf_noinfo; reserved: 0),
(unicode : 34; flag : umf_noinfo; reserved: 0),
(unicode : 35; flag : umf_noinfo; reserved: 0),
(unicode : 36; flag : umf_noinfo; reserved: 0),
(unicode : 37; flag : umf_noinfo; reserved: 0),
(unicode : 38; flag : umf_noinfo; reserved: 0),
(unicode : 39; flag : umf_noinfo; reserved: 0),
(unicode : 40; flag : umf_noinfo; reserved: 0),
(unicode : 41; flag : umf_noinfo; reserved: 0),
(unicode : 42; flag : umf_noinfo; reserved: 0),
(unicode : 43; flag : umf_noinfo; reserved: 0),
(unicode : 44; flag : umf_noinfo; reserved: 0),
(unicode : 45; flag : umf_noinfo; reserved: 0),
(unicode : 46; flag : umf_noinfo; reserved: 0),
(unicode : 47; flag : umf_noinfo; reserved: 0),
(unicode : 48; flag : umf_noinfo; reserved: 0),
(unicode : 49; flag : umf_noinfo; reserved: 0),
(unicode : 50; flag : umf_noinfo; reserved: 0),
(unicode : 51; flag : umf_noinfo; reserved: 0),
(unicode : 52; flag : umf_noinfo; reserved: 0),
(unicode : 53; flag : umf_noinfo; reserved: 0),
(unicode : 54; flag : umf_noinfo; reserved: 0),
(unicode : 55; flag : umf_noinfo; reserved: 0),
(unicode : 56; flag : umf_noinfo; reserved: 0),
(unicode : 57; flag : umf_noinfo; reserved: 0),
(unicode : 58; flag : umf_noinfo; reserved: 0),
(unicode : 59; flag : umf_noinfo; reserved: 0),
(unicode : 60; flag : umf_noinfo; reserved: 0),
(unicode : 61; flag : umf_noinfo; reserved: 0),
(unicode : 62; flag : umf_noinfo; reserved: 0),
(unicode : 63; flag : umf_noinfo; reserved: 0),
(unicode : 64; flag : umf_noinfo; reserved: 0),
(unicode : 65; flag : umf_noinfo; reserved: 0),
(unicode : 66; flag : umf_noinfo; reserved: 0),
(unicode : 67; flag : umf_noinfo; reserved: 0),
(unicode : 68; flag : umf_noinfo; reserved: 0),
(unicode : 69; flag : umf_noinfo; reserved: 0),
(unicode : 70; flag : umf_noinfo; reserved: 0),
(unicode : 71; flag : umf_noinfo; reserved: 0),
(unicode : 72; flag : umf_noinfo; reserved: 0),
(unicode : 73; flag : umf_noinfo; reserved: 0),
(unicode : 74; flag : umf_noinfo; reserved: 0),
(unicode : 75; flag : umf_noinfo; reserved: 0),
(unicode : 76; flag : umf_noinfo; reserved: 0),
(unicode : 77; flag : umf_noinfo; reserved: 0),
(unicode : 78; flag : umf_noinfo; reserved: 0),
(unicode : 79; flag : umf_noinfo; reserved: 0),
(unicode : 80; flag : umf_noinfo; reserved: 0),
(unicode : 81; flag : umf_noinfo; reserved: 0),
(unicode : 82; flag : umf_noinfo; reserved: 0),
(unicode : 83; flag : umf_noinfo; reserved: 0),
(unicode : 84; flag : umf_noinfo; reserved: 0),
(unicode : 85; flag : umf_noinfo; reserved: 0),
(unicode : 86; flag : umf_noinfo; reserved: 0),
(unicode : 87; flag : umf_noinfo; reserved: 0),
(unicode : 88; flag : umf_noinfo; reserved: 0),
(unicode : 89; flag : umf_noinfo; reserved: 0),
(unicode : 90; flag : umf_noinfo; reserved: 0),
(unicode : 91; flag : umf_noinfo; reserved: 0),
(unicode : 92; flag : umf_noinfo; reserved: 0),
(unicode : 93; flag : umf_noinfo; reserved: 0),
(unicode : 94; flag : umf_noinfo; reserved: 0),
(unicode : 95; flag : umf_noinfo; reserved: 0),
(unicode : 96; flag : umf_noinfo; reserved: 0),
(unicode : 97; flag : umf_noinfo; reserved: 0),
(unicode : 98; flag : umf_noinfo; reserved: 0),
(unicode : 99; flag : umf_noinfo; reserved: 0),
(unicode : 100; flag : umf_noinfo; reserved: 0),
(unicode : 101; flag : umf_noinfo; reserved: 0),
(unicode : 102; flag : umf_noinfo; reserved: 0),
(unicode : 103; flag : umf_noinfo; reserved: 0),
(unicode : 104; flag : umf_noinfo; reserved: 0),
(unicode : 105; flag : umf_noinfo; reserved: 0),
(unicode : 106; flag : umf_noinfo; reserved: 0),
(unicode : 107; flag : umf_noinfo; reserved: 0),
(unicode : 108; flag : umf_noinfo; reserved: 0),
(unicode : 109; flag : umf_noinfo; reserved: 0),
(unicode : 110; flag : umf_noinfo; reserved: 0),
(unicode : 111; flag : umf_noinfo; reserved: 0),
(unicode : 112; flag : umf_noinfo; reserved: 0),
(unicode : 113; flag : umf_noinfo; reserved: 0),
(unicode : 114; flag : umf_noinfo; reserved: 0),
(unicode : 115; flag : umf_noinfo; reserved: 0),
(unicode : 116; flag : umf_noinfo; reserved: 0),
(unicode : 117; flag : umf_noinfo; reserved: 0),
(unicode : 118; flag : umf_noinfo; reserved: 0),
(unicode : 119; flag : umf_noinfo; reserved: 0),
(unicode : 120; flag : umf_noinfo; reserved: 0),
(unicode : 121; flag : umf_noinfo; reserved: 0),
(unicode : 122; flag : umf_noinfo; reserved: 0),
(unicode : 123; flag : umf_noinfo; reserved: 0),
(unicode : 124; flag : umf_noinfo; reserved: 0),
(unicode : 125; flag : umf_noinfo; reserved: 0),
(unicode : 126; flag : umf_noinfo; reserved: 0),
(unicode : 127; flag : umf_noinfo; reserved: 0),
(unicode : 8364; flag : umf_noinfo; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 8218; flag : umf_noinfo; reserved: 0),
(unicode : 402; flag : umf_noinfo; reserved: 0),
(unicode : 8222; flag : umf_noinfo; reserved: 0),
(unicode : 8230; flag : umf_noinfo; reserved: 0),
(unicode : 8224; flag : umf_noinfo; reserved: 0),
(unicode : 8225; flag : umf_noinfo; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 8240; flag : umf_noinfo; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 8249; flag : umf_noinfo; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 8216; flag : umf_noinfo; reserved: 0),
(unicode : 8217; flag : umf_noinfo; reserved: 0),
(unicode : 8220; flag : umf_noinfo; reserved: 0),
(unicode : 8221; flag : umf_noinfo; reserved: 0),
(unicode : 8226; flag : umf_noinfo; reserved: 0),
(unicode : 8211; flag : umf_noinfo; reserved: 0),
(unicode : 8212; flag : umf_noinfo; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 8482; flag : umf_noinfo; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 8250; flag : umf_noinfo; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 160; flag : umf_noinfo; reserved: 0),
(unicode : 901; flag : umf_noinfo; reserved: 0),
(unicode : 902; flag : umf_noinfo; reserved: 0),
(unicode : 163; flag : umf_noinfo; reserved: 0),
(unicode : 164; flag : umf_noinfo; reserved: 0),
(unicode : 165; flag : umf_noinfo; reserved: 0),
(unicode : 166; flag : umf_noinfo; reserved: 0),
(unicode : 167; flag : umf_noinfo; reserved: 0),
(unicode : 168; flag : umf_noinfo; reserved: 0),
(unicode : 169; flag : umf_noinfo; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 171; flag : umf_noinfo; reserved: 0),
(unicode : 172; flag : umf_noinfo; reserved: 0),
(unicode : 173; flag : umf_noinfo; reserved: 0),
(unicode : 174; flag : umf_noinfo; reserved: 0),
(unicode : 8213; flag : umf_noinfo; reserved: 0),
(unicode : 176; flag : umf_noinfo; reserved: 0),
(unicode : 177; flag : umf_noinfo; reserved: 0),
(unicode : 178; flag : umf_noinfo; reserved: 0),
(unicode : 179; flag : umf_noinfo; reserved: 0),
(unicode : 900; flag : umf_noinfo; reserved: 0),
(unicode : 181; flag : umf_noinfo; reserved: 0),
(unicode : 182; flag : umf_noinfo; reserved: 0),
(unicode : 183; flag : umf_noinfo; reserved: 0),
(unicode : 904; flag : umf_noinfo; reserved: 0),
(unicode : 905; flag : umf_noinfo; reserved: 0),
(unicode : 906; flag : umf_noinfo; reserved: 0),
(unicode : 187; flag : umf_noinfo; reserved: 0),
(unicode : 908; flag : umf_noinfo; reserved: 0),
(unicode : 189; flag : umf_noinfo; reserved: 0),
(unicode : 910; flag : umf_noinfo; reserved: 0),
(unicode : 911; flag : umf_noinfo; reserved: 0),
(unicode : 912; flag : umf_noinfo; reserved: 0),
(unicode : 913; flag : umf_noinfo; reserved: 0),
(unicode : 914; flag : umf_noinfo; reserved: 0),
(unicode : 915; flag : umf_noinfo; reserved: 0),
(unicode : 916; flag : umf_noinfo; reserved: 0),
(unicode : 917; flag : umf_noinfo; reserved: 0),
(unicode : 918; flag : umf_noinfo; reserved: 0),
(unicode : 919; flag : umf_noinfo; reserved: 0),
(unicode : 920; flag : umf_noinfo; reserved: 0),
(unicode : 921; flag : umf_noinfo; reserved: 0),
(unicode : 922; flag : umf_noinfo; reserved: 0),
(unicode : 923; flag : umf_noinfo; reserved: 0),
(unicode : 924; flag : umf_noinfo; reserved: 0),
(unicode : 925; flag : umf_noinfo; reserved: 0),
(unicode : 926; flag : umf_noinfo; reserved: 0),
(unicode : 927; flag : umf_noinfo; reserved: 0),
(unicode : 928; flag : umf_noinfo; reserved: 0),
(unicode : 929; flag : umf_noinfo; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0),
(unicode : 931; flag : umf_noinfo; reserved: 0),
(unicode : 932; flag : umf_noinfo; reserved: 0),
(unicode : 933; flag : umf_noinfo; reserved: 0),
(unicode : 934; flag : umf_noinfo; reserved: 0),
(unicode : 935; flag : umf_noinfo; reserved: 0),
(unicode : 936; flag : umf_noinfo; reserved: 0),
(unicode : 937; flag : umf_noinfo; reserved: 0),
(unicode : 938; flag : umf_noinfo; reserved: 0),
(unicode : 939; flag : umf_noinfo; reserved: 0),
(unicode : 940; flag : umf_noinfo; reserved: 0),
(unicode : 941; flag : umf_noinfo; reserved: 0),
(unicode : 942; flag : umf_noinfo; reserved: 0),
(unicode : 943; flag : umf_noinfo; reserved: 0),
(unicode : 944; flag : umf_noinfo; reserved: 0),
(unicode : 945; flag : umf_noinfo; reserved: 0),
(unicode : 946; flag : umf_noinfo; reserved: 0),
(unicode : 947; flag : umf_noinfo; reserved: 0),
(unicode : 948; flag : umf_noinfo; reserved: 0),
(unicode : 949; flag : umf_noinfo; reserved: 0),
(unicode : 950; flag : umf_noinfo; reserved: 0),
(unicode : 951; flag : umf_noinfo; reserved: 0),
(unicode : 952; flag : umf_noinfo; reserved: 0),
(unicode : 953; flag : umf_noinfo; reserved: 0),
(unicode : 954; flag : umf_noinfo; reserved: 0),
(unicode : 955; flag : umf_noinfo; reserved: 0),
(unicode : 956; flag : umf_noinfo; reserved: 0),
(unicode : 957; flag : umf_noinfo; reserved: 0),
(unicode : 958; flag : umf_noinfo; reserved: 0),
(unicode : 959; flag : umf_noinfo; reserved: 0),
(unicode : 960; flag : umf_noinfo; reserved: 0),
(unicode : 961; flag : umf_noinfo; reserved: 0),
(unicode : 962; flag : umf_noinfo; reserved: 0),
(unicode : 963; flag : umf_noinfo; reserved: 0),
(unicode : 964; flag : umf_noinfo; reserved: 0),
(unicode : 965; flag : umf_noinfo; reserved: 0),
(unicode : 966; flag : umf_noinfo; reserved: 0),
(unicode : 967; flag : umf_noinfo; reserved: 0),
(unicode : 968; flag : umf_noinfo; reserved: 0),
(unicode : 969; flag : umf_noinfo; reserved: 0),
(unicode : 970; flag : umf_noinfo; reserved: 0),
(unicode : 971; flag : umf_noinfo; reserved: 0),
(unicode : 972; flag : umf_noinfo; reserved: 0),
(unicode : 973; flag : umf_noinfo; reserved: 0),
(unicode : 974; flag : umf_noinfo; reserved: 0),
(unicode : 65535; flag : umf_unused; reserved: 0)
);
unicodemap : tunicodemap = (
cpname : 'cp1253';
cp : 1253;
map : @map;
lastchar : 255;
next : nil;
internalmap : true
);
begin
registermapping(@unicodemap)
end.

View File

@ -70,6 +70,8 @@ unit widestr;
cp8859_1,cp850,cp437,cp1252,cp646,
{ cyrillic code pages }
cp1251,cp866,cp8859_5,
{ greek code page }
cp1253,
globals,cutils;