forked from KolibriOS/kolibrios
CEdit: refactoring, minor fixes
git-svn-id: svn://kolibrios.org@9659 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
(*
|
||||
Copyright 2021 Anton Krotov
|
||||
Copyright 2021, 2022 Anton Krotov
|
||||
|
||||
This file is part of CEdit.
|
||||
|
||||
@@ -20,18 +20,26 @@
|
||||
MODULE Encodings;
|
||||
|
||||
CONST
|
||||
CP866* = 0; W1251* = 1; UTF8* = 2; UTF8BOM* = 3; UTF16LE* = 4;
|
||||
CP866* = 0; W1251* = 1; UTF8* = 2; UTF8BOM* = 3; (*UTF16LE* = 4;*)
|
||||
|
||||
UNDEF* = -1;
|
||||
|
||||
EOL_CRLF* = 0; EOL_LF* = 1; EOL_CR* = 2;
|
||||
CR = 0DX; LF = 0AX;
|
||||
|
||||
TYPE
|
||||
CP = ARRAY 256 OF INTEGER;
|
||||
|
||||
tEOL* = ARRAY 3 OF WCHAR;
|
||||
|
||||
VAR
|
||||
cpW1251*, cp866*: CP;
|
||||
names*: ARRAY 4, 16 OF WCHAR;
|
||||
UNI*: ARRAY 65536, 2 OF INTEGER;
|
||||
|
||||
eol*: ARRAY 3 OF tEOL;
|
||||
eolNames*: ARRAY 3, 16 OF WCHAR;
|
||||
|
||||
|
||||
PROCEDURE InitCP (VAR cp: CP);
|
||||
VAR
|
||||
@@ -60,6 +68,10 @@ PROCEDURE InitW1251 (VAR cp: CP);
|
||||
VAR
|
||||
n, i: INTEGER;
|
||||
BEGIN
|
||||
InitCP(cp);
|
||||
FOR i := 0410H TO 044FH DO
|
||||
cp[i - 350H] := i
|
||||
END;
|
||||
n := 80H;
|
||||
Init8(cp, n, 0402H, 0403H, 201AH, 0453H, 201EH, 2026H, 2020H, 2021H);
|
||||
Init8(cp, n, 20ACH, 2030H, 0409H, 2039H, 040AH, 040CH, 040BH, 040FH);
|
||||
@@ -69,10 +81,6 @@ BEGIN
|
||||
Init8(cp, n, 0401H, 00A9H, 0404H, 00ABH, 00ACH, 00ADH, 00AEH, 0407H);
|
||||
Init8(cp, n, 00B0H, 00B1H, 0406H, 0456H, 0491H, 00B5H, 00B6H, 00B7H);
|
||||
Init8(cp, n, 0451H, 2116H, 0454H, 00BBH, 0458H, 0405H, 0455H, 0457H);
|
||||
FOR i := 0410H TO 044FH DO
|
||||
cp[i - 350H] := i
|
||||
END;
|
||||
InitCP(cp)
|
||||
END InitW1251;
|
||||
|
||||
|
||||
@@ -80,11 +88,12 @@ PROCEDURE InitCP866 (VAR cp: CP);
|
||||
VAR
|
||||
n, i: INTEGER;
|
||||
BEGIN
|
||||
InitCP(cp);
|
||||
FOR i := 0410H TO 043FH DO
|
||||
cp[i - 0410H + 80H] := i
|
||||
cp[i - 390H] := i
|
||||
END;
|
||||
FOR i := 0440H TO 044FH DO
|
||||
cp[i - 0440H + 0E0H] := i
|
||||
cp[i - 360H] := i
|
||||
END;
|
||||
n := 0B0H;
|
||||
Init8(cp, n, 2591H, 2592H, 2593H, 2502H, 2524H, 2561H, 2562H, 2556H);
|
||||
@@ -93,12 +102,9 @@ BEGIN
|
||||
Init8(cp, n, 255AH, 2554H, 2569H, 2566H, 2560H, 2550H, 256CH, 2567H);
|
||||
Init8(cp, n, 2568H, 2564H, 2565H, 2559H, 2558H, 2552H, 2553H, 256BH);
|
||||
Init8(cp, n, 256AH, 2518H, 250CH, 2588H, 2584H, 258CH, 2590H, 2580H);
|
||||
|
||||
n := 0F0H;
|
||||
Init8(cp, n, 0401H, 0451H, 0404H, 0454H, 0407H, 0457H, 040EH, 045EH);
|
||||
Init8(cp, n, 00B0H, 2219H, 00B7H, 221AH, 2116H, 00A4H, 25A0H, 00A0H);
|
||||
|
||||
InitCP(cp)
|
||||
END InitCP866;
|
||||
|
||||
|
||||
@@ -108,7 +114,7 @@ VAR
|
||||
BEGIN
|
||||
FOR i := 0 TO 65535 DO
|
||||
UNI[i, CP866] := UNDEF;
|
||||
UNI[i, W1251] := UNDEF;
|
||||
UNI[i, W1251] := UNDEF
|
||||
END;
|
||||
FOR i := 0 TO 255 DO
|
||||
IF cpW1251[i] # UNDEF THEN
|
||||
@@ -122,6 +128,12 @@ END setUNI;
|
||||
|
||||
|
||||
BEGIN
|
||||
eol[EOL_CRLF] := CR + LF;
|
||||
eol[EOL_LF] := LF;
|
||||
eol[EOL_CR] := CR;
|
||||
eolNames[EOL_CRLF] := "CRLF";
|
||||
eolNames[EOL_LF] := "LF";
|
||||
eolNames[EOL_CR] := "CR";
|
||||
names[CP866] := "CP866";
|
||||
names[W1251] := "Windows-1251";
|
||||
names[UTF8] := "UTF-8";
|
||||
|
||||
Reference in New Issue
Block a user