diff --git a/rtl/inc/video.inc b/rtl/inc/video.inc index 3a69a4d9c4..841a56d569 100644 --- a/rtl/inc/video.inc +++ b/rtl/inc/video.inc @@ -149,16 +149,19 @@ end; Procedure InitVideo; begin - If Not VideoInitialized then + if not VideoInitialized then begin - If Assigned(CurrentVideoDriver.InitDriver) then - CurrentVideoDriver.InitDriver; - VideoInitialized:=True; - if NextVideoModeSet then - SetVideoMode(NextVideoMode) - else - AssignVideoBuf(0,0); - ClearScreen; + if Assigned(CurrentVideoDriver.InitDriver) then + CurrentVideoDriver.InitDriver; + if errorcode=viook then + begin + VideoInitialized:=true; + if NextVideoModeSet then + SetVideoMode(NextVideoMode) + else + AssignVideoBuf(0,0); + ClearScreen; + end; end; end; diff --git a/rtl/unix/video.pp b/rtl/unix/video.pp index bf58e165bd..54dd6a3810 100644 --- a/rtl/unix/video.pp +++ b/rtl/unix/video.pp @@ -1098,11 +1098,11 @@ begin {$endif logging} { save new terminal characteristics and possible restore rawness } videoInitDone; + + decide_codepages; end else ErrorCode:=errVioInit; { not a TTY } - - decide_codepages; end; procedure SysDoneVideo; @@ -1234,7 +1234,7 @@ begin the terminal window size.} SysSetVideoMode:=false; fpioctl(stdinputhandle,TIOCGWINSZ,@winsize); - if (mode.row=winsize.ws_row) and + if (mode.row=winsize.ws_row) and (mode.col=winsize.ws_col) then begin screenwidth:=mode.col;