* fix from Maxim Ganetsky to fix CRT output with non latin code pages, should fix #6785

git-svn-id: trunk@3606 -
This commit is contained in:
florian 2006-05-20 21:42:58 +00:00
parent 2c622ca2f6
commit adec4cdcfa

View File

@ -666,7 +666,11 @@ Function CrtWrite(var f : textrec) : integer;
var var
i : longint; i : longint;
s : string; s : string;
OldConsoleOutputCP : Word;
begin begin
OldConsoleOutputCP:=GetConsoleOutputCP;
SetConsoleOutputCP(GetACP);
GetScreenCursor(CurrX, CurrY); GetScreenCursor(CurrX, CurrY);
s:=''; s:='';
for i:=0 to f.bufpos-1 do for i:=0 to f.bufpos-1 do
@ -675,7 +679,7 @@ begin
if s<>'' then if s<>'' then
begin begin
WriteStr(s); WriteStr(s);
s:=''; s:='';
end; end;
WriteChar(f.buffer[i]); WriteChar(f.buffer[i]);
end end
@ -684,6 +688,8 @@ begin
if s<>'' then if s<>'' then
WriteStr(s); WriteStr(s);
SetScreenCursor(CurrX, CurrY); SetScreenCursor(CurrX, CurrY);
SetConsoleOutputCP(OldConsoleOutputCP);
f.bufpos:=0; f.bufpos:=0;
CrtWrite:=0; CrtWrite:=0;
@ -704,7 +710,11 @@ Function CrtRead(Var F: TextRec): Integer;
var var
ch : Char; ch : Char;
OldConsoleOutputCP : Word;
Begin Begin
OldConsoleOutputCP:=GetConsoleOutputCP;
SetConsoleOutputCP(GetACP);
GetScreenCursor(CurrX,CurrY); GetScreenCursor(CurrX,CurrY);
f.bufpos:=0; f.bufpos:=0;
f.bufend:=0; f.bufend:=0;
@ -781,6 +791,9 @@ Begin
end; end;
end; end;
until false; until false;
SetConsoleOutputCP(OldConsoleOutputCP);
f.bufpos:=0; f.bufpos:=0;
SetScreenCursor(CurrX, CurrY); SetScreenCursor(CurrX, CurrY);
CrtRead:=0; CrtRead:=0;