Просмотр исходного кода

* add CtrlC for go32v2 and checks for windows calls

git-svn-id: trunk@6120 -
pierre 18 лет назад
Родитель
Сommit
07327f9301
1 измененных файлов с 16 добавлено и 3 удалено
  1. 16 3
      ide/wconsole.pas

+ 16 - 3
ide/wconsole.pas

@@ -48,8 +48,13 @@ Procedure RestoreConsoleMode(const ConsoleMode : TConsoleMode);
 implementation
 {$ifdef Windows}
   uses
+    wutils,
     windows;
 {$endif Windows}
+{$ifdef GO32V2}
+  uses
+    Dpmiexcp;
+{$endif GO32V2}
 
 Procedure SaveConsoleMode(var ConsoleMode : TConsoleMode);
 Begin
@@ -57,10 +62,15 @@ Begin
   TCGetAttr(1,ConsoleMode);
 {$endif UNIX}
 {$ifdef Windows}
-  GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),ConsoleMode);
+  if not GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),ConsoleMode) then
+    DebugMessage('','Call to GetConsoleMode failed, GetLastError='+
+        IntToStr(GetLastError),0,0);
 {$endif Windows}
 {$ifdef go32v2}
-  ConsoleMode:=0;
+  if djgpp_set_ctrl_c(false) then
+    ConsoleMode:=1
+  else
+    ConsoleMode:=0;
 {$endif go32v2}
 {$ifdef netware}
   ConsoleMode:=0;
@@ -73,9 +83,12 @@ Begin
   TCSetAttr(1,TCSANOW,ConsoleMode);
 {$endif UNIX}
 {$ifdef Windows}
-  SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),ConsoleMode);
+  if not SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),ConsoleMode) then
+    DebugMessage('','Call to SetConsoleMode failed, GetLastError='+
+        IntToStr(GetLastError),0,0);
 {$endif Windows}
 {$ifdef go32v2}
+  djgpp_set_ctrl_c((ConsoleMode and 1)<>0);
 {$endif go32v2}
 End;