Browse Source

New unit to preserve console mode

pierre 24 years ago
parent
commit
19a8903683
1 changed files with 79 additions and 0 deletions
  1. 79 0
      ide/wconsole.pas

+ 79 - 0
ide/wconsole.pas

@@ -0,0 +1,79 @@
+{
+    $Id$
+    This file is part of the Free Pascal Integrated Development Environment
+    Copyright (c) 2001 by Pierre Muller
+
+    This unit is used to save and restore console modes
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+unit WConsole;
+
+interface
+{$ifdef UNIX}
+   uses
+     TermInfo,
+     linux;
+{$endif UNIX}
+
+  type
+    TConsoleMode =
+{$ifdef UNIX}
+      TermIos
+{$endif UNIX}
+{$ifdef Win32}
+      dword
+{$endif Win32}
+{$ifdef go32v2}
+      longint
+{$endif go32v2}
+    ;
+
+Procedure SaveConsoleMode(var ConsoleMode : TConsoleMode);
+Procedure RestoreConsoleMode(const ConsoleMode : TConsoleMode);
+
+implementation
+{$ifdef Win32}
+  uses
+    windows;
+{$endif Win32}
+
+Procedure SaveConsoleMode(var ConsoleMode : TConsoleMode);
+Begin
+{$ifdef UNIX}
+  TCGetAttr(1,ConsoleMode);
+{$endif UNIX}
+{$ifdef Win32}
+  GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),ConsoleMode);
+{$endif Win32}
+{$ifdef go32v2}
+  ConsoleMode:=;
+{$endif go32v2}
+End;
+
+Procedure RestoreConsoleMode(const ConsoleMode : TConsoleMode);
+Begin
+{$ifdef UNIX}
+  TCSetAttr(1,TCSANOW,StartTio);
+{$endif UNIX}
+{$ifdef Win32}
+  SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),ConsoleMode);
+{$endif Win32}
+{$ifdef go32v2}
+{$endif go32v2}
+End;
+
+end.
+
+{
+  $Log$
+  Revision 1.1  2001-10-02 23:40:44  pierre
+   New unit to preserve console mode
+
+}