Browse Source

Merged revisions 6907-6908,6916-6917,6921-6922,6924-6928,6930,6932,6937,6943-6946,6952,6954,6956,6974,6976,6991,6996-6998,7002,7007,7016,7020-7021,7033,7037,7040,7042,7045,7068-7069,7075-7079,7087,7094,7098-7099,7101,7103,7109,7115-7119,7128,7136-7137,7139,7150,7160-7162,7175,7179,7184,7186,7190-7195,7198,7202,7205-7206,7208-7217,7220-7222,7225-7228,7230-7231,7233,7239-7241,7244,7246,7263,7275,7277,7279-7281,7285,7288-7289,7291-7293,7296,7300,7303,7308,7310,7318,7340-7341,7343,7345,7350,7372-7373,7375-7376,7379,7381,7383-7388,7391-7392,7400,7404-7406,7411,7422,7425,7436,7441-7442,7444-7446,7450,7456,7463,7467,7475,7479,7486,7498,7504,7506-7509,7511,7522,7527,7534-7537 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk

........
r6907 | hajny | 2007-03-17 23:10:02 +0100 (Sat, 17 Mar 2007) | 1 line

* comment about sec_fpc extended to cover current meaning
........
r6917 | tom_at_work | 2007-03-18 16:50:49 +0100 (Sun, 18 Mar 2007) | 1 line

* improve compilation on ppc64/linux
........
r6926 | peter | 2007-03-18 22:35:42 +0100 (Sun, 18 Mar 2007) | 2 lines

* removed invalid code from proc_get_importname where the result could be empty
........
r6932 | jonas | 2007-03-19 14:45:16 +0100 (Mon, 19 Mar 2007) | 2 lines

* fixed typos (MacOS -> Mac OS)
........
r6937 | hajny | 2007-03-20 01:49:20 +0100 (Tue, 20 Mar 2007) | 1 line

* OS/2 compilation fixes (not completely finished yet)
........
r6991 | hajny | 2007-03-25 01:21:12 +0100 (Sun, 25 Mar 2007) | 1 line

* align Comment behaviour with Msg2Comment
........
r6998 | daniel | 2007-03-25 16:38:45 +0200 (Sun, 25 Mar 2007) | 2 lines

* Fix indentation.
........
r7184 | florian | 2007-04-28 21:35:51 +0200 (Sat, 28 Apr 2007) | 3 lines

* convert extended to double when passing it to automation dispatchers
* fix code generation for automation dispatching of doubles
........
r7186 | hajny | 2007-04-29 11:48:53 +0200 (Sun, 29 Apr 2007) | 1 line

* added missing word in message explanation
........
r7231 | florian | 2007-05-01 14:47:06 +0200 (Tue, 01 May 2007) | 3 lines

* release buf already when closing the file
* better error handling
........
r7308 | jonas | 2007-05-11 11:17:01 +0200 (Fri, 11 May 2007) | 3 lines

* a loadsize of 1 can never cause alignment problems in subsetref
routines
........
r7350 | tom_at_work | 2007-05-15 21:03:55 +0200 (Tue, 15 May 2007) | 1 line

* 6 bit sized members of packed records can never be split over more than 2 bytes too
........
r7446 | michael | 2007-05-24 09:42:39 +0200 (Thu, 24 May 2007) | 1 line

* Applied patch from Ido Kanner
........
r7498 | florian | 2007-05-28 17:59:17 +0200 (Mon, 28 May 2007) | 2 lines

- removed several ;;
........
r7511 | jonas | 2007-05-29 15:04:15 +0200 (Tue, 29 May 2007) | 2 lines

* fixed (harmless) range error
........
r7537 | jonas | 2007-05-31 17:07:48 +0200 (Thu, 31 May 2007) | 2 lines

* added missing "reserved" field to new code page files to fix warnings
........

git-svn-id: branches/fixes_2_2@8537 -

peter 18 years ago
parent
commit
3bad44fc25

+ 3 - 0
.gitattributes

@@ -90,9 +90,12 @@ compiler/comphook.pas svneol=native#text/plain
 compiler/compiler.pas svneol=native#text/plain
 compiler/compinnr.inc svneol=native#text/plain
 compiler/comprsrc.pas svneol=native#text/plain
+compiler/cp1251.pas svneol=native#text/plain
 compiler/cp437.pas svneol=native#text/plain
 compiler/cp850.pas svneol=native#text/plain
+compiler/cp866.pas svneol=native#text/plain
 compiler/cp8859_1.pas svneol=native#text/plain
+compiler/cp8859_5.pas svneol=native#text/plain
 compiler/crefs.pas -text
 compiler/cresstr.pas svneol=native#text/plain
 compiler/cstreams.pas svneol=native#text/plain

+ 281 - 0
compiler/cp1251.pas

@@ -0,0 +1,281 @@
+{ This is an automatically created file, so don't edit it }
+unit cp1251;
+
+  interface
+
+  implementation
+
+  uses
+     charset;
+
+  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 : 1026; flag : umf_noinfo; reserved : 0),
+       (unicode : 1027; flag : umf_noinfo; reserved : 0),
+       (unicode : 8218; flag : umf_noinfo; reserved : 0),
+       (unicode : 1107; 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 : 8364; flag : umf_noinfo; reserved : 0),
+       (unicode : 8240; flag : umf_noinfo; reserved : 0),
+       (unicode : 1033; flag : umf_noinfo; reserved : 0),
+       (unicode : 8249; flag : umf_noinfo; reserved : 0),
+       (unicode : 1034; flag : umf_noinfo; reserved : 0),
+       (unicode : 1036; flag : umf_noinfo; reserved : 0),
+       (unicode : 1035; flag : umf_noinfo; reserved : 0),
+       (unicode : 1039; flag : umf_noinfo; reserved : 0),
+       (unicode : 1106; flag : umf_noinfo; 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 : 1113; flag : umf_noinfo; reserved : 0),
+       (unicode : 8250; flag : umf_noinfo; reserved : 0),
+       (unicode : 1114; flag : umf_noinfo; reserved : 0),
+       (unicode : 1116; flag : umf_noinfo; reserved : 0),
+       (unicode : 1115; flag : umf_noinfo; reserved : 0),
+       (unicode : 1119; flag : umf_noinfo; reserved : 0),
+       (unicode : 160; flag : umf_noinfo; reserved : 0),
+       (unicode : 1038; flag : umf_noinfo; reserved : 0),
+       (unicode : 1118; flag : umf_noinfo; reserved : 0),
+       (unicode : 1032; flag : umf_noinfo; reserved : 0),
+       (unicode : 164; flag : umf_noinfo; reserved : 0),
+       (unicode : 1168; flag : umf_noinfo; reserved : 0),
+       (unicode : 166; flag : umf_noinfo; reserved : 0),
+       (unicode : 167; flag : umf_noinfo; reserved : 0),
+       (unicode : 1025; flag : umf_noinfo; reserved : 0),
+       (unicode : 169; flag : umf_noinfo; reserved : 0),
+       (unicode : 1028; flag : umf_noinfo; 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 : 1031; flag : umf_noinfo; reserved : 0),
+       (unicode : 176; flag : umf_noinfo; reserved : 0),
+       (unicode : 177; flag : umf_noinfo; reserved : 0),
+       (unicode : 1030; flag : umf_noinfo; reserved : 0),
+       (unicode : 1110; flag : umf_noinfo; reserved : 0),
+       (unicode : 1169; 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 : 1105; flag : umf_noinfo; reserved : 0),
+       (unicode : 8470; flag : umf_noinfo; reserved : 0),
+       (unicode : 1108; flag : umf_noinfo; reserved : 0),
+       (unicode : 187; flag : umf_noinfo; reserved : 0),
+       (unicode : 1112; flag : umf_noinfo; reserved : 0),
+       (unicode : 1029; flag : umf_noinfo; reserved : 0),
+       (unicode : 1109; flag : umf_noinfo; reserved : 0),
+       (unicode : 1111; flag : umf_noinfo; reserved : 0),
+       (unicode : 1040; flag : umf_noinfo; reserved : 0),
+       (unicode : 1041; flag : umf_noinfo; reserved : 0),
+       (unicode : 1042; flag : umf_noinfo; reserved : 0),
+       (unicode : 1043; flag : umf_noinfo; reserved : 0),
+       (unicode : 1044; flag : umf_noinfo; reserved : 0),
+       (unicode : 1045; flag : umf_noinfo; reserved : 0),
+       (unicode : 1046; flag : umf_noinfo; reserved : 0),
+       (unicode : 1047; flag : umf_noinfo; reserved : 0),
+       (unicode : 1048; flag : umf_noinfo; reserved : 0),
+       (unicode : 1049; flag : umf_noinfo; reserved : 0),
+       (unicode : 1050; flag : umf_noinfo; reserved : 0),
+       (unicode : 1051; flag : umf_noinfo; reserved : 0),
+       (unicode : 1052; flag : umf_noinfo; reserved : 0),
+       (unicode : 1053; flag : umf_noinfo; reserved : 0),
+       (unicode : 1054; flag : umf_noinfo; reserved : 0),
+       (unicode : 1055; flag : umf_noinfo; reserved : 0),
+       (unicode : 1056; flag : umf_noinfo; reserved : 0),
+       (unicode : 1057; flag : umf_noinfo; reserved : 0),
+       (unicode : 1058; flag : umf_noinfo; reserved : 0),
+       (unicode : 1059; flag : umf_noinfo; reserved : 0),
+       (unicode : 1060; flag : umf_noinfo; reserved : 0),
+       (unicode : 1061; flag : umf_noinfo; reserved : 0),
+       (unicode : 1062; flag : umf_noinfo; reserved : 0),
+       (unicode : 1063; flag : umf_noinfo; reserved : 0),
+       (unicode : 1064; flag : umf_noinfo; reserved : 0),
+       (unicode : 1065; flag : umf_noinfo; reserved : 0),
+       (unicode : 1066; flag : umf_noinfo; reserved : 0),
+       (unicode : 1067; flag : umf_noinfo; reserved : 0),
+       (unicode : 1068; flag : umf_noinfo; reserved : 0),
+       (unicode : 1069; flag : umf_noinfo; reserved : 0),
+       (unicode : 1070; flag : umf_noinfo; reserved : 0),
+       (unicode : 1071; flag : umf_noinfo; reserved : 0),
+       (unicode : 1072; flag : umf_noinfo; reserved : 0),
+       (unicode : 1073; flag : umf_noinfo; reserved : 0),
+       (unicode : 1074; flag : umf_noinfo; reserved : 0),
+       (unicode : 1075; flag : umf_noinfo; reserved : 0),
+       (unicode : 1076; flag : umf_noinfo; reserved : 0),
+       (unicode : 1077; flag : umf_noinfo; reserved : 0),
+       (unicode : 1078; flag : umf_noinfo; reserved : 0),
+       (unicode : 1079; flag : umf_noinfo; reserved : 0),
+       (unicode : 1080; flag : umf_noinfo; reserved : 0),
+       (unicode : 1081; flag : umf_noinfo; reserved : 0),
+       (unicode : 1082; flag : umf_noinfo; reserved : 0),
+       (unicode : 1083; flag : umf_noinfo; reserved : 0),
+       (unicode : 1084; flag : umf_noinfo; reserved : 0),
+       (unicode : 1085; flag : umf_noinfo; reserved : 0),
+       (unicode : 1086; flag : umf_noinfo; reserved : 0),
+       (unicode : 1087; flag : umf_noinfo; reserved : 0),
+       (unicode : 1088; flag : umf_noinfo; reserved : 0),
+       (unicode : 1089; flag : umf_noinfo; reserved : 0),
+       (unicode : 1090; flag : umf_noinfo; reserved : 0),
+       (unicode : 1091; flag : umf_noinfo; reserved : 0),
+       (unicode : 1092; flag : umf_noinfo; reserved : 0),
+       (unicode : 1093; flag : umf_noinfo; reserved : 0),
+       (unicode : 1094; flag : umf_noinfo; reserved : 0),
+       (unicode : 1095; flag : umf_noinfo; reserved : 0),
+       (unicode : 1096; flag : umf_noinfo; reserved : 0),
+       (unicode : 1097; flag : umf_noinfo; reserved : 0),
+       (unicode : 1098; flag : umf_noinfo; reserved : 0),
+       (unicode : 1099; flag : umf_noinfo; reserved : 0),
+       (unicode : 1100; flag : umf_noinfo; reserved : 0),
+       (unicode : 1101; flag : umf_noinfo; reserved : 0),
+       (unicode : 1102; flag : umf_noinfo; reserved : 0),
+       (unicode : 1103; flag : umf_noinfo; reserved : 0)
+     );
+
+     unicodemap : tunicodemap = (
+       cpname : 'cp1251';
+       map : @map;
+       lastchar : 255;
+       next : nil;
+       internalmap : true
+     );
+
+  begin
+     registermapping(@unicodemap)
+  end.

+ 281 - 0
compiler/cp866.pas

@@ -0,0 +1,281 @@
+{ This is an automatically created file, so don't edit it }
+unit cp866;
+
+  interface
+
+  implementation
+
+  uses
+     charset;
+
+  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 : 1040; flag : umf_noinfo; reserved : 0),
+       (unicode : 1041; flag : umf_noinfo; reserved : 0),
+       (unicode : 1042; flag : umf_noinfo; reserved : 0),
+       (unicode : 1043; flag : umf_noinfo; reserved : 0),
+       (unicode : 1044; flag : umf_noinfo; reserved : 0),
+       (unicode : 1045; flag : umf_noinfo; reserved : 0),
+       (unicode : 1046; flag : umf_noinfo; reserved : 0),
+       (unicode : 1047; flag : umf_noinfo; reserved : 0),
+       (unicode : 1048; flag : umf_noinfo; reserved : 0),
+       (unicode : 1049; flag : umf_noinfo; reserved : 0),
+       (unicode : 1050; flag : umf_noinfo; reserved : 0),
+       (unicode : 1051; flag : umf_noinfo; reserved : 0),
+       (unicode : 1052; flag : umf_noinfo; reserved : 0),
+       (unicode : 1053; flag : umf_noinfo; reserved : 0),
+       (unicode : 1054; flag : umf_noinfo; reserved : 0),
+       (unicode : 1055; flag : umf_noinfo; reserved : 0),
+       (unicode : 1056; flag : umf_noinfo; reserved : 0),
+       (unicode : 1057; flag : umf_noinfo; reserved : 0),
+       (unicode : 1058; flag : umf_noinfo; reserved : 0),
+       (unicode : 1059; flag : umf_noinfo; reserved : 0),
+       (unicode : 1060; flag : umf_noinfo; reserved : 0),
+       (unicode : 1061; flag : umf_noinfo; reserved : 0),
+       (unicode : 1062; flag : umf_noinfo; reserved : 0),
+       (unicode : 1063; flag : umf_noinfo; reserved : 0),
+       (unicode : 1064; flag : umf_noinfo; reserved : 0),
+       (unicode : 1065; flag : umf_noinfo; reserved : 0),
+       (unicode : 1066; flag : umf_noinfo; reserved : 0),
+       (unicode : 1067; flag : umf_noinfo; reserved : 0),
+       (unicode : 1068; flag : umf_noinfo; reserved : 0),
+       (unicode : 1069; flag : umf_noinfo; reserved : 0),
+       (unicode : 1070; flag : umf_noinfo; reserved : 0),
+       (unicode : 1071; flag : umf_noinfo; reserved : 0),
+       (unicode : 1072; flag : umf_noinfo; reserved : 0),
+       (unicode : 1073; flag : umf_noinfo; reserved : 0),
+       (unicode : 1074; flag : umf_noinfo; reserved : 0),
+       (unicode : 1075; flag : umf_noinfo; reserved : 0),
+       (unicode : 1076; flag : umf_noinfo; reserved : 0),
+       (unicode : 1077; flag : umf_noinfo; reserved : 0),
+       (unicode : 1078; flag : umf_noinfo; reserved : 0),
+       (unicode : 1079; flag : umf_noinfo; reserved : 0),
+       (unicode : 1080; flag : umf_noinfo; reserved : 0),
+       (unicode : 1081; flag : umf_noinfo; reserved : 0),
+       (unicode : 1082; flag : umf_noinfo; reserved : 0),
+       (unicode : 1083; flag : umf_noinfo; reserved : 0),
+       (unicode : 1084; flag : umf_noinfo; reserved : 0),
+       (unicode : 1085; flag : umf_noinfo; reserved : 0),
+       (unicode : 1086; flag : umf_noinfo; reserved : 0),
+       (unicode : 1087; flag : umf_noinfo; reserved : 0),
+       (unicode : 9617; flag : umf_noinfo; reserved : 0),
+       (unicode : 9618; flag : umf_noinfo; reserved : 0),
+       (unicode : 9619; flag : umf_noinfo; reserved : 0),
+       (unicode : 9474; flag : umf_noinfo; reserved : 0),
+       (unicode : 9508; flag : umf_noinfo; reserved : 0),
+       (unicode : 9569; flag : umf_noinfo; reserved : 0),
+       (unicode : 9570; flag : umf_noinfo; reserved : 0),
+       (unicode : 9558; flag : umf_noinfo; reserved : 0),
+       (unicode : 9557; flag : umf_noinfo; reserved : 0),
+       (unicode : 9571; flag : umf_noinfo; reserved : 0),
+       (unicode : 9553; flag : umf_noinfo; reserved : 0),
+       (unicode : 9559; flag : umf_noinfo; reserved : 0),
+       (unicode : 9565; flag : umf_noinfo; reserved : 0),
+       (unicode : 9564; flag : umf_noinfo; reserved : 0),
+       (unicode : 9563; flag : umf_noinfo; reserved : 0),
+       (unicode : 9488; flag : umf_noinfo; reserved : 0),
+       (unicode : 9492; flag : umf_noinfo; reserved : 0),
+       (unicode : 9524; flag : umf_noinfo; reserved : 0),
+       (unicode : 9516; flag : umf_noinfo; reserved : 0),
+       (unicode : 9500; flag : umf_noinfo; reserved : 0),
+       (unicode : 9472; flag : umf_noinfo; reserved : 0),
+       (unicode : 9532; flag : umf_noinfo; reserved : 0),
+       (unicode : 9566; flag : umf_noinfo; reserved : 0),
+       (unicode : 9567; flag : umf_noinfo; reserved : 0),
+       (unicode : 9562; flag : umf_noinfo; reserved : 0),
+       (unicode : 9556; flag : umf_noinfo; reserved : 0),
+       (unicode : 9577; flag : umf_noinfo; reserved : 0),
+       (unicode : 9574; flag : umf_noinfo; reserved : 0),
+       (unicode : 9568; flag : umf_noinfo; reserved : 0),
+       (unicode : 9552; flag : umf_noinfo; reserved : 0),
+       (unicode : 9580; flag : umf_noinfo; reserved : 0),
+       (unicode : 9575; flag : umf_noinfo; reserved : 0),
+       (unicode : 9576; flag : umf_noinfo; reserved : 0),
+       (unicode : 9572; flag : umf_noinfo; reserved : 0),
+       (unicode : 9573; flag : umf_noinfo; reserved : 0),
+       (unicode : 9561; flag : umf_noinfo; reserved : 0),
+       (unicode : 9560; flag : umf_noinfo; reserved : 0),
+       (unicode : 9554; flag : umf_noinfo; reserved : 0),
+       (unicode : 9555; flag : umf_noinfo; reserved : 0),
+       (unicode : 9579; flag : umf_noinfo; reserved : 0),
+       (unicode : 9578; flag : umf_noinfo; reserved : 0),
+       (unicode : 9496; flag : umf_noinfo; reserved : 0),
+       (unicode : 9484; flag : umf_noinfo; reserved : 0),
+       (unicode : 9608; flag : umf_noinfo; reserved : 0),
+       (unicode : 9604; flag : umf_noinfo; reserved : 0),
+       (unicode : 9612; flag : umf_noinfo; reserved : 0),
+       (unicode : 9616; flag : umf_noinfo; reserved : 0),
+       (unicode : 9600; flag : umf_noinfo; reserved : 0),
+       (unicode : 1088; flag : umf_noinfo; reserved : 0),
+       (unicode : 1089; flag : umf_noinfo; reserved : 0),
+       (unicode : 1090; flag : umf_noinfo; reserved : 0),
+       (unicode : 1091; flag : umf_noinfo; reserved : 0),
+       (unicode : 1092; flag : umf_noinfo; reserved : 0),
+       (unicode : 1093; flag : umf_noinfo; reserved : 0),
+       (unicode : 1094; flag : umf_noinfo; reserved : 0),
+       (unicode : 1095; flag : umf_noinfo; reserved : 0),
+       (unicode : 1096; flag : umf_noinfo; reserved : 0),
+       (unicode : 1097; flag : umf_noinfo; reserved : 0),
+       (unicode : 1098; flag : umf_noinfo; reserved : 0),
+       (unicode : 1099; flag : umf_noinfo; reserved : 0),
+       (unicode : 1100; flag : umf_noinfo; reserved : 0),
+       (unicode : 1101; flag : umf_noinfo; reserved : 0),
+       (unicode : 1102; flag : umf_noinfo; reserved : 0),
+       (unicode : 1103; flag : umf_noinfo; reserved : 0),
+       (unicode : 1025; flag : umf_noinfo; reserved : 0),
+       (unicode : 1105; flag : umf_noinfo; reserved : 0),
+       (unicode : 1028; flag : umf_noinfo; reserved : 0),
+       (unicode : 1108; flag : umf_noinfo; reserved : 0),
+       (unicode : 1031; flag : umf_noinfo; reserved : 0),
+       (unicode : 1111; flag : umf_noinfo; reserved : 0),
+       (unicode : 1038; flag : umf_noinfo; reserved : 0),
+       (unicode : 1118; flag : umf_noinfo; reserved : 0),
+       (unicode : 176; flag : umf_noinfo; reserved : 0),
+       (unicode : 8729; flag : umf_noinfo; reserved : 0),
+       (unicode : 183; flag : umf_noinfo; reserved : 0),
+       (unicode : 8730; flag : umf_noinfo; reserved : 0),
+       (unicode : 8470; flag : umf_noinfo; reserved : 0),
+       (unicode : 164; flag : umf_noinfo; reserved : 0),
+       (unicode : 9632; flag : umf_noinfo; reserved : 0),
+       (unicode : 160; flag : umf_noinfo; reserved : 0)
+     );
+
+     unicodemap : tunicodemap = (
+       cpname : 'cp866';
+       map : @map;
+       lastchar : 255;
+       next : nil;
+       internalmap : true
+     );
+
+  begin
+     registermapping(@unicodemap)
+  end.

+ 281 - 0
compiler/cp8859_5.pas

@@ -0,0 +1,281 @@
+{ This is an automatically created file, so don't edit it }
+unit cp8859_5;
+
+  interface
+
+  implementation
+
+  uses
+     charset;
+
+  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 : 128; flag : umf_noinfo; reserved : 0),
+       (unicode : 129; flag : umf_noinfo; reserved : 0),
+       (unicode : 130; flag : umf_noinfo; reserved : 0),
+       (unicode : 131; flag : umf_noinfo; reserved : 0),
+       (unicode : 132; flag : umf_noinfo; reserved : 0),
+       (unicode : 133; flag : umf_noinfo; reserved : 0),
+       (unicode : 134; flag : umf_noinfo; reserved : 0),
+       (unicode : 135; flag : umf_noinfo; reserved : 0),
+       (unicode : 136; flag : umf_noinfo; reserved : 0),
+       (unicode : 137; flag : umf_noinfo; reserved : 0),
+       (unicode : 138; flag : umf_noinfo; reserved : 0),
+       (unicode : 139; flag : umf_noinfo; reserved : 0),
+       (unicode : 140; flag : umf_noinfo; reserved : 0),
+       (unicode : 141; flag : umf_noinfo; reserved : 0),
+       (unicode : 142; flag : umf_noinfo; reserved : 0),
+       (unicode : 143; flag : umf_noinfo; reserved : 0),
+       (unicode : 144; flag : umf_noinfo; reserved : 0),
+       (unicode : 145; flag : umf_noinfo; reserved : 0),
+       (unicode : 146; flag : umf_noinfo; reserved : 0),
+       (unicode : 147; flag : umf_noinfo; reserved : 0),
+       (unicode : 148; flag : umf_noinfo; reserved : 0),
+       (unicode : 149; flag : umf_noinfo; reserved : 0),
+       (unicode : 150; flag : umf_noinfo; reserved : 0),
+       (unicode : 151; flag : umf_noinfo; reserved : 0),
+       (unicode : 152; flag : umf_noinfo; reserved : 0),
+       (unicode : 153; flag : umf_noinfo; reserved : 0),
+       (unicode : 154; flag : umf_noinfo; reserved : 0),
+       (unicode : 155; flag : umf_noinfo; reserved : 0),
+       (unicode : 156; flag : umf_noinfo; reserved : 0),
+       (unicode : 157; flag : umf_noinfo; reserved : 0),
+       (unicode : 158; flag : umf_noinfo; reserved : 0),
+       (unicode : 159; flag : umf_noinfo; reserved : 0),
+       (unicode : 160; flag : umf_noinfo; reserved : 0),
+       (unicode : 1025; flag : umf_noinfo; reserved : 0),
+       (unicode : 1026; flag : umf_noinfo; reserved : 0),
+       (unicode : 1027; flag : umf_noinfo; reserved : 0),
+       (unicode : 1028; flag : umf_noinfo; reserved : 0),
+       (unicode : 1029; flag : umf_noinfo; reserved : 0),
+       (unicode : 1030; flag : umf_noinfo; reserved : 0),
+       (unicode : 1031; flag : umf_noinfo; reserved : 0),
+       (unicode : 1032; flag : umf_noinfo; reserved : 0),
+       (unicode : 1033; flag : umf_noinfo; reserved : 0),
+       (unicode : 1034; flag : umf_noinfo; reserved : 0),
+       (unicode : 1035; flag : umf_noinfo; reserved : 0),
+       (unicode : 1036; flag : umf_noinfo; reserved : 0),
+       (unicode : 173; flag : umf_noinfo; reserved : 0),
+       (unicode : 1038; flag : umf_noinfo; reserved : 0),
+       (unicode : 1039; flag : umf_noinfo; reserved : 0),
+       (unicode : 1040; flag : umf_noinfo; reserved : 0),
+       (unicode : 1041; flag : umf_noinfo; reserved : 0),
+       (unicode : 1042; flag : umf_noinfo; reserved : 0),
+       (unicode : 1043; flag : umf_noinfo; reserved : 0),
+       (unicode : 1044; flag : umf_noinfo; reserved : 0),
+       (unicode : 1045; flag : umf_noinfo; reserved : 0),
+       (unicode : 1046; flag : umf_noinfo; reserved : 0),
+       (unicode : 1047; flag : umf_noinfo; reserved : 0),
+       (unicode : 1048; flag : umf_noinfo; reserved : 0),
+       (unicode : 1049; flag : umf_noinfo; reserved : 0),
+       (unicode : 1050; flag : umf_noinfo; reserved : 0),
+       (unicode : 1051; flag : umf_noinfo; reserved : 0),
+       (unicode : 1052; flag : umf_noinfo; reserved : 0),
+       (unicode : 1053; flag : umf_noinfo; reserved : 0),
+       (unicode : 1054; flag : umf_noinfo; reserved : 0),
+       (unicode : 1055; flag : umf_noinfo; reserved : 0),
+       (unicode : 1056; flag : umf_noinfo; reserved : 0),
+       (unicode : 1057; flag : umf_noinfo; reserved : 0),
+       (unicode : 1058; flag : umf_noinfo; reserved : 0),
+       (unicode : 1059; flag : umf_noinfo; reserved : 0),
+       (unicode : 1060; flag : umf_noinfo; reserved : 0),
+       (unicode : 1061; flag : umf_noinfo; reserved : 0),
+       (unicode : 1062; flag : umf_noinfo; reserved : 0),
+       (unicode : 1063; flag : umf_noinfo; reserved : 0),
+       (unicode : 1064; flag : umf_noinfo; reserved : 0),
+       (unicode : 1065; flag : umf_noinfo; reserved : 0),
+       (unicode : 1066; flag : umf_noinfo; reserved : 0),
+       (unicode : 1067; flag : umf_noinfo; reserved : 0),
+       (unicode : 1068; flag : umf_noinfo; reserved : 0),
+       (unicode : 1069; flag : umf_noinfo; reserved : 0),
+       (unicode : 1070; flag : umf_noinfo; reserved : 0),
+       (unicode : 1071; flag : umf_noinfo; reserved : 0),
+       (unicode : 1072; flag : umf_noinfo; reserved : 0),
+       (unicode : 1073; flag : umf_noinfo; reserved : 0),
+       (unicode : 1074; flag : umf_noinfo; reserved : 0),
+       (unicode : 1075; flag : umf_noinfo; reserved : 0),
+       (unicode : 1076; flag : umf_noinfo; reserved : 0),
+       (unicode : 1077; flag : umf_noinfo; reserved : 0),
+       (unicode : 1078; flag : umf_noinfo; reserved : 0),
+       (unicode : 1079; flag : umf_noinfo; reserved : 0),
+       (unicode : 1080; flag : umf_noinfo; reserved : 0),
+       (unicode : 1081; flag : umf_noinfo; reserved : 0),
+       (unicode : 1082; flag : umf_noinfo; reserved : 0),
+       (unicode : 1083; flag : umf_noinfo; reserved : 0),
+       (unicode : 1084; flag : umf_noinfo; reserved : 0),
+       (unicode : 1085; flag : umf_noinfo; reserved : 0),
+       (unicode : 1086; flag : umf_noinfo; reserved : 0),
+       (unicode : 1087; flag : umf_noinfo; reserved : 0),
+       (unicode : 1088; flag : umf_noinfo; reserved : 0),
+       (unicode : 1089; flag : umf_noinfo; reserved : 0),
+       (unicode : 1090; flag : umf_noinfo; reserved : 0),
+       (unicode : 1091; flag : umf_noinfo; reserved : 0),
+       (unicode : 1092; flag : umf_noinfo; reserved : 0),
+       (unicode : 1093; flag : umf_noinfo; reserved : 0),
+       (unicode : 1094; flag : umf_noinfo; reserved : 0),
+       (unicode : 1095; flag : umf_noinfo; reserved : 0),
+       (unicode : 1096; flag : umf_noinfo; reserved : 0),
+       (unicode : 1097; flag : umf_noinfo; reserved : 0),
+       (unicode : 1098; flag : umf_noinfo; reserved : 0),
+       (unicode : 1099; flag : umf_noinfo; reserved : 0),
+       (unicode : 1100; flag : umf_noinfo; reserved : 0),
+       (unicode : 1101; flag : umf_noinfo; reserved : 0),
+       (unicode : 1102; flag : umf_noinfo; reserved : 0),
+       (unicode : 1103; flag : umf_noinfo; reserved : 0),
+       (unicode : 8470; flag : umf_noinfo; reserved : 0),
+       (unicode : 1105; flag : umf_noinfo; reserved : 0),
+       (unicode : 1106; flag : umf_noinfo; reserved : 0),
+       (unicode : 1107; flag : umf_noinfo; reserved : 0),
+       (unicode : 1108; flag : umf_noinfo; reserved : 0),
+       (unicode : 1109; flag : umf_noinfo; reserved : 0),
+       (unicode : 1110; flag : umf_noinfo; reserved : 0),
+       (unicode : 1111; flag : umf_noinfo; reserved : 0),
+       (unicode : 1112; flag : umf_noinfo; reserved : 0),
+       (unicode : 1113; flag : umf_noinfo; reserved : 0),
+       (unicode : 1114; flag : umf_noinfo; reserved : 0),
+       (unicode : 1115; flag : umf_noinfo; reserved : 0),
+       (unicode : 1116; flag : umf_noinfo; reserved : 0),
+       (unicode : 167; flag : umf_noinfo; reserved : 0),
+       (unicode : 1118; flag : umf_noinfo; reserved : 0),
+       (unicode : 1119; flag : umf_noinfo; reserved : 0)
+     );
+
+     unicodemap : tunicodemap = (
+       cpname : '8859-5';
+       map : @map;
+       lastchar : 255;
+       next : nil;
+       internalmap : true
+     );
+
+  begin
+     registermapping(@unicodemap)
+  end.

+ 2 - 2
compiler/i386/cpuinfo.pas

@@ -51,7 +51,7 @@ Type
 
    tfputype =
      (fpu_none,
-      fpu_soft,
+//      fpu_soft,
       fpu_x87,
       fpu_sse,
       fpu_sse2,
@@ -84,7 +84,7 @@ Const
    );
 
    fputypestr : array[tfputype] of string[6] = ('',
-     'SOFT',
+//     'SOFT',
      'X87',
      'SSE',
      'SSE2',

+ 5 - 4
compiler/msg/errord.msg

@@ -3,7 +3,7 @@
 #   Latest updates contributed by Karl-Michael Schindler aka mischi
 #   <karl-michael.schindler at physik.uni-halle.de>
 #
-#   Based on errore.msg of SVN revision 7250
+#   Based on errore.msg of SVN revision 7501
 #
 #   This file is part of the Free Pascal Compiler
 #   Copyright (c) 1998-2000 by the Free Pascal Development team
@@ -2152,7 +2152,7 @@ unit_f_circular_unit_reference=10020_F_Gegenseitige Abh
 unit_f_cant_compile_unit=10021_F_Kann Unit "$1" nicht �bersetzen, keine Quellen vorhanden
 % A unit was found that needs to be recompiled, but no sources are
 % available.
-unit_f_cant_find_ppu=10022_F_Kann Unit "$1" nicht finden
+unit_f_cant_find_ppu=10022_F_Kann Unit "$1", die von "$2" benutzt wird, nicht finden
 % You tried to use a unit of which the PPU file isn't found by the
 % compiler. Check your config files for the unit pathes
 unit_w_unit_name_error=10023_W_Unit "$1" wurde nicht gefunden, aber "$2" existiert
@@ -2216,7 +2216,7 @@ unit_w_cant_compile_unit_with_changed_incfile=10040_W_Kann Unit $1 nicht rekompi
 % some source files were not found, so recompilation is impossible.
 unit_u_source_modified=10041_U_Datei $1 ist neuer als die PPU Datei $2
 % A modified source file for a compiler unit was found.
-unit_u_ppu_invalid_fpumode=10042_U_Eine Unit wurde nicht mit der korrekten FPU Mode kompiliert
+unit_u_ppu_invalid_fpumode=10042_U_Versuch eine Unit zu verwenden, die in einem anderen FPU Mode kompiliert wurde
 % Trying to compile code while using units which were not compiled with
 % the same floating point format mode. Either all code should be compiled
 % with FPU emulation on, or with FPU emulation off.
@@ -2503,7 +2503,8 @@ S*2Aas_assembliere mit Hilfe von GNU AS
 **2FE<x>_setze den Pfad f�r Exe/Unit-Dateien auf <x>
 **2Fi<x>_erg„nze <x> zum Include-Pfad
 **2Fl<x>_erg„nze <x> zum Bibliotheks-Pfad
-*L2FL<x>_benutze <x> als dynamischen Linker
+**2FL<x>_benutze <x> als dynamischen Linker
+**2Fm<x>_lade die Unicode-Konversionstabelle aus <x>.txt im Compiler-Verzeichnis
 **2Fo<x>_erg„nze <x> zum Objektdatei-Pfad
 **2Fr<x>_lade die Fehler-Meldungs Datei <x>
 **2Fu<x>_erg„nze <x> zum Unit-Pfad

+ 5 - 4
compiler/msg/errordu.msg

@@ -3,7 +3,7 @@
 #   Latest updates contributed by Karl-Michael Schindler aka mischi
 #   <karl-michael.schindler at physik.uni-halle.de>
 #
-#   Based on errore.msg of SVN revision 7250
+#   Based on errore.msg of SVN revision 7501
 #
 #   This file is part of the Free Pascal Compiler
 #   Copyright (c) 1998-2000 by the Free Pascal Development team
@@ -2152,7 +2152,7 @@ unit_f_circular_unit_reference=10020_F_Gegenseitige Abhängigkeit von Units zwis
 unit_f_cant_compile_unit=10021_F_Kann Unit "$1" nicht übersetzen, keine Quellen vorhanden
 % A unit was found that needs to be recompiled, but no sources are
 % available.
-unit_f_cant_find_ppu=10022_F_Kann Unit "$1" nicht finden
+unit_f_cant_find_ppu=10022_F_Kann Unit "$1", die von "$2" benutzt wird, nicht finden
 % You tried to use a unit of which the PPU file isn't found by the
 % compiler. Check your config files for the unit pathes
 unit_w_unit_name_error=10023_W_Unit "$1" wurde nicht gefunden, aber "$2" existiert
@@ -2216,7 +2216,7 @@ unit_w_cant_compile_unit_with_changed_incfile=10040_W_Kann Unit $1 nicht rekompi
 % some source files were not found, so recompilation is impossible.
 unit_u_source_modified=10041_U_Datei $1 ist neuer als die PPU Datei $2
 % A modified source file for a compiler unit was found.
-unit_u_ppu_invalid_fpumode=10042_U_Eine Unit wurde nicht mit der korrekten FPU Mode kompiliert
+unit_u_ppu_invalid_fpumode=10042_U_Versuch eine Unit zu verwenden, die in einem anderen FPU Mode kompiliert wurde
 % Trying to compile code while using units which were not compiled with
 % the same floating point format mode. Either all code should be compiled
 % with FPU emulation on, or with FPU emulation off.
@@ -2503,7 +2503,8 @@ S*2Aas_assembliere mit Hilfe von GNU AS
 **2FE<x>_setze den Pfad für Exe/Unit-Dateien auf <x>
 **2Fi<x>_ergänze <x> zum Include-Pfad
 **2Fl<x>_ergänze <x> zum Bibliotheks-Pfad
-*L2FL<x>_benutze <x> als dynamischen Linker
+**2FL<x>_benutze <x> als dynamischen Linker
+**2Fm<x>_lade die Unicode-Konversionstabelle aus <x>.txt im Compiler-Verzeichnis
 **2Fo<x>_ergänze <x> zum Objektdatei-Pfad
 **2Fr<x>_lade die Fehler-Meldungs Datei <x>
 **2Fu<x>_ergänze <x> zum Unit-Pfad

+ 3 - 1
compiler/msg/errore.msg

@@ -348,6 +348,8 @@ scan_e_only_packset=02080_E_Illegal set packing value
 scan_w_pic_ignored=02081_W_PIC directive ignored
 % Several targets like windows do not support the PIC directive and need it to be
 % ignored.
+scan_w_unsupported_switch_by_target=02082_W_The switch "$1" is not supported by the currently selected target
+% Some compiler switches like $E are not supported by all targets.
 % \end{description}
 #
 # Parser
@@ -2502,6 +2504,7 @@ S*2Aas_assemble using GNU AS
 **2Fi<x>_adds <x> to include path
 **2Fl<x>_adds <x> to library path
 **2FL<x>_uses <x> as dynamic linker
+**2Fm<x>_load unicode conversion table from <x>.txt in the compiler dir
 **2Fo<x>_adds <x> to object path
 **2Fr<x>_load error message file <x>
 **2Fu<x>_adds <x> to unit path
@@ -2532,7 +2535,6 @@ S*2Aas_assemble using GNU AS
 **2Mobjfpc_switch some Delphi 2 extensions on
 **2Mdelphi_tries to be Delphi compatible
 **2Mtp_tries to be TP/BP 7.0 compatible
-**2Mgpc_tries to be gpc compatible
 **2Mmacpas_tries to be compatible to the macintosh pascal dialects
 **1n_don't read the default config file
 **1N<x>_node tree optimizations

+ 3 - 2
compiler/msgidx.inc

@@ -102,6 +102,7 @@ const
   scanner_e_illegal_warn_state=02079;
   scan_e_only_packset=02080;
   scan_w_pic_ignored=02081;
+  scan_w_unsupported_switch_by_target=02082;
   parser_e_syntax_error=03000;
   parser_e_dont_nest_interrupt=03004;
   parser_w_proc_directive_ignored=03005;
@@ -723,9 +724,9 @@ const
   option_info=11024;
   option_help_pages=11025;
 
-  MsgTxtSize = 43129;
+  MsgTxtSize = 43240;
 
   MsgIdxMax : array[1..20] of longint=(
-    24,82,237,79,63,49,107,22,135,60,
+    24,83,237,79,63,49,107,22,135,60,
     42,1,1,1,1,1,1,1,1,1
   );

File diff suppressed because it is too large
+ 293 - 292
compiler/msgtxt.inc


+ 95 - 6
compiler/nadd.pas

@@ -217,7 +217,6 @@ implementation
                end;
           end;
 
-
         { both are int constants }
         if (
             (
@@ -426,7 +425,100 @@ implementation
              end;
              result:=t;
              exit;
-          end;
+          end
+        {Match against the ranges, i.e.:
+         var a:1..10;
+         begin
+           if a>0 then
+         ... always evaluates to true. (DM)}
+        else if is_constintnode(left) and (right.resultdef.typ=orddef) and
+            { all type limits are stored using tconstexprint = int64   }
+            { currently, so u64bit support would need extra type casts }
+            (Torddef(right.resultdef).ordtype<>u64bit) and
+            { don't ignore type checks }
+            is_subequal(left.resultdef,right.resultdef) then
+            begin
+              t:=nil;
+              lv:=Tordconstnode(left).value;
+              with Torddef(right.resultdef) do
+                case nodetype of
+                 ltn:
+                   if lv<low then
+                     t:=Cordconstnode.create(1,booltype,true)
+                   else if lv>=high then
+                     t:=Cordconstnode.create(0,booltype,true);
+                 lten:
+                   if lv<=low then
+                     t:=Cordconstnode.create(1,booltype,true)
+                   else if lv>high then
+                     t:=Cordconstnode.create(0,booltype,true);
+                 gtn:
+                   if lv<=low then
+                     t:=Cordconstnode.create(0,booltype,true)
+                   else if lv>high then
+                     t:=Cordconstnode.create(1,booltype,true);
+                 gten :
+                   if lv<low then
+                     t:=Cordconstnode.create(0,booltype,true)
+                   else if lv>=high then
+                     t:=Cordconstnode.create(1,booltype,true);
+                 equaln:
+                   if (lv<low) or (lv>high) then
+                     t:=Cordconstnode.create(0,booltype,true);
+                 unequaln:
+                   if (lv<low) or (lv>high) then
+                     t:=Cordconstnode.create(1,booltype,true);
+                end;
+              if t<>nil then
+                begin
+                  result:=t;
+                  exit;
+                end
+            end
+          else if (left.resultdef.typ=orddef) and is_constintnode(right) and
+              { all type limits are stored using tconstexprint = int64   }
+              { currently, so u64bit support would need extra type casts }
+              (Torddef(left.resultdef).ordtype<>u64bit) and
+              { don't ignore type checks }
+              is_subequal(left.resultdef,right.resultdef) then
+            begin
+              t:=nil;
+              rv:=Tordconstnode(right).value;
+              with Torddef(left.resultdef) do
+                case nodetype of
+                 ltn:
+                   if high<rv then
+                     t:=Cordconstnode.create(1,booltype,true)
+                   else if low>=rv then
+                     t:=Cordconstnode.create(0,booltype,true);
+                 lten:
+                   if high<=rv then
+                     t:=Cordconstnode.create(1,booltype,true)
+                   else if low>rv then
+                     t:=Cordconstnode.create(0,booltype,true);
+                 gtn:
+                   if high<=rv then
+                     t:=Cordconstnode.create(0,booltype,true)
+                   else if low>rv then
+                     t:=Cordconstnode.create(1,booltype,true);
+                 gten:
+                   if high<rv then
+                     t:=Cordconstnode.create(0,booltype,true)
+                   else if low>=rv then
+                     t:=Cordconstnode.create(1,booltype,true);
+                 equaln:
+                   if (rv<low) or (rv>high) then
+                     t:=Cordconstnode.create(0,booltype,true);
+                 unequaln:
+                   if (rv<low) or (rv>high) then
+                     t:=Cordconstnode.create(1,booltype,true);
+                end;
+              if t<>nil then
+                begin
+                  result:=t;
+                  exit;
+                end
+            end;
 
         { Add,Sub,Mul with constant 0 or 1?  }
         if is_constintnode(right) and is_integer(left.resultdef) then
@@ -822,10 +914,7 @@ implementation
                 begin
                   left.resultdef := s64inttype;
                   right.resultdef := s64inttype;
-                end
-            else if (left.resultdef.typ <> floatdef) and
-               (right.resultdef.typ <> floatdef) then
-              CGMessage(type_h_use_div_for_int);
+                end;
             inserttypeconv(right,resultrealdef);
             inserttypeconv(left,resultrealdef);
           end

+ 5 - 0
compiler/ncnv.pas

@@ -612,6 +612,11 @@ implementation
          if def=nil then
           internalerror(200103281);
          fileinfo:=node.fileinfo;
+         {An attempt to convert the result of a floating point division
+          (with the / operator) to an integer type will fail. Give a hint
+          to use the div operator.}
+         if (node.nodetype=slashn) and (def.typ=orddef) then
+           cgmessage(type_h_use_div_for_int);
       end;
 
 

+ 12 - 0
compiler/options.pas

@@ -70,6 +70,7 @@ implementation
 
 uses
   widestr,
+  charset,
   SysUtils,
   version,
   cutils,cmsgs,
@@ -372,6 +373,7 @@ var
   error : integer;
   j,l   : longint;
   d,s   : TCmdStr;
+  unicodemapping : punicodemap;
 begin
   if opt='' then
    exit;
@@ -707,6 +709,14 @@ begin
                      else
                        includesearchpath.AddPath(More,true);
                    end;
+                 'm' :
+                   begin
+                     unicodemapping:=loadunicodemapping(More,More+'.txt');
+                     if assigned(unicodemapping) then
+                       registermapping(unicodemapping)
+                     else
+                       IllegalPara(opt);
+                   end;
                  'g' :
                    Message2(option_obsolete_switch_use_new,'-Fg','-Fl');
                  'l' :
@@ -2327,9 +2337,11 @@ begin
 {$endif arm}
   then
     begin
+{$ifdef cpufpemu}
       include(init_settings.moduleswitches,cs_fp_emulation);
       { cs_fp_emulation and fpu_soft are equal on arm }
       init_settings.fputype:=fpu_soft;
+{$endif cpufpemu}
     end;
 
 

+ 16 - 7
compiler/switches.pas

@@ -162,15 +162,24 @@ begin
          begin
            if current_module.in_global then
             begin
-              if state='+' then
-                include(current_settings.moduleswitches,tmoduleswitch(setsw))
+{$ifndef cpufpemu}
+              if tmoduleswitch(setsw)=cs_fp_emulation then
+                begin
+                  Message1(scan_w_unsupported_switch_by_target,'$'+switch);
+                end
               else
+{$endif cpufpemu}
                 begin
-                  { Turning off debuginfo when lineinfo is requested
-                    is not possible }
-                  if not((cs_use_lineinfo in current_settings.globalswitches) and
-                         (tmoduleswitch(setsw)=cs_debuginfo)) then
-                    exclude(current_settings.moduleswitches,tmoduleswitch(setsw));
+                  if state='+' then
+                    include(current_settings.moduleswitches,tmoduleswitch(setsw))
+                  else
+                    begin
+                      { Turning off debuginfo when lineinfo is requested
+                        is not possible }
+                      if not((cs_use_lineinfo in current_settings.globalswitches) and
+                             (tmoduleswitch(setsw)=cs_debuginfo)) then
+                        exclude(current_settings.moduleswitches,tmoduleswitch(setsw));
+                    end;
                 end;
             end
            else

+ 4 - 2
compiler/widestr.pas

@@ -61,8 +61,10 @@ unit widestr;
   implementation
 
     uses
-       cp8859_1,cp850,cp437,
-       globals;
+      cp8859_1,cp850,cp437,
+      { cyrillic code pages }
+      cp1251,cp866,cp8859_5,
+      globals;
 
 
     procedure initwidestring(out r : pcompilerwidestring);

+ 1 - 1
compiler/x86/cgx86.pas

@@ -454,7 +454,7 @@ unit cgx86;
                  s:=S_IQ;
               end;
             else
-              internalerror(200204041);
+              internalerror(200204043);
          end;
       end;
 

Some files were not shown because too many files changed in this diff