Преглед на файлове

+ Correct behaviour when initialization fails.

git-svn-id: trunk@3841 -
daniel преди 19 години
родител
ревизия
4a3248bc08
променени са 2 файла, в които са добавени 15 реда и са изтрити 12 реда
  1. 12 9
      rtl/inc/video.inc
  2. 3 3
      rtl/unix/video.pp

+ 12 - 9
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;
 

+ 3 - 3
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;