FIX: Viewer does not display KOI8 (fixes #726)

This commit is contained in:
Alexander Koblov 2022-12-21 22:31:16 +03:00
commit b3bd295976
2 changed files with 21 additions and 9 deletions

View file

@ -152,7 +152,9 @@ type
veCp950,
veIso88591,
veIso88592,
veKoi8,
veKoi8r,
veKoi8u,
veKoi8ru,
veUcs2le,
veUcs2be,
veUtf16le,
@ -189,7 +191,9 @@ const
'CP950',
'ISO-8859-1',
'ISO-8859-2',
'KOI-8',
'KOI8-R',
'KOI8-U',
'KOI8-RU',
'UCS-2LE',
'UCS-2BE',
'UTF-16LE',
@ -2981,7 +2985,9 @@ begin
veCp1250..veCp950,
veIso88591,
veIso88592,
veKoi8:
veKoi8r,
veKoi8u,
veKoi8ru:
if iPosition < FHighLimit then
begin
Result := PByte(GetDataAdr)[iPosition];
@ -3103,7 +3109,9 @@ begin
veCp1250..veCp950,
veIso88591,
veIso88592,
veKoi8:
veKoi8r,
veKoi8u,
veKoi8ru:
if iPosition > FLowLimit then
begin
Result := PByte(GetDataAdr + iPosition)[-1];
@ -3211,7 +3219,9 @@ begin
veCp1250..veCp950,
veIso88591,
veIso88592,
veKoi8:
veKoi8r,
veKoi8u,
veKoi8ru:
CharLenInBytes := 1;
veUcs2be, veUcs2le:
CharLenInBytes := 2;
@ -3617,7 +3627,9 @@ procedure TViewerControl.UpdateSelection;
veCp1250..veCp950,
veIso88591,
veIso88592,
veKoi8:
veKoi8r,
veKoi8u,
veKoi8ru:
; // any position allowed
veUcs2be, veUcs2le:

View file

@ -301,7 +301,7 @@ begin
M := D;
case CodePage of
cp1251 : Result:= 'CP1251';
cpKOI8R: Result:= 'KOI-8';
cpKOI8R: Result:= 'KOI8-R';
cp866 : Result:= 'CP866';
end;
end;
@ -327,7 +327,7 @@ begin
1252: Result:= 'CP1252';
1253: Result:= 'CP1253';
1255: Result:= 'CP1255';
20866: Result:= 'KOI-8';
20866: Result:= 'KOI8-R';
else
begin
Result:= CharsetInfo.Name;
@ -493,7 +493,7 @@ begin
Inc(P);
end
else begin
I:= UTF8CharacterStrictLength(@S[P]);
I:= UTF8CodepointStrictSize(@S[P]);
if (I = 0) then
begin
// Ignore last char