Browse Source

* check handle for file closing

peter 25 years ago
parent
commit
cea4495a20

+ 6 - 1
rtl/go32v2/filutil.inc

@@ -117,6 +117,8 @@ end;
 Procedure FileClose (Handle : Longint);
 var Regs: registers;
 begin
+  if Handle<=4 then
+   exit;
 Regs.Eax := $3e00;
 Regs.Ebx := Handle;
 RealIntr($21, Regs);
@@ -454,7 +456,10 @@ end;
 
 {
   $Log$
-  Revision 1.10  2000-01-07 16:41:31  daniel
+  Revision 1.11  2000-01-16 22:25:38  peter
+    * check handle for file closing
+
+  Revision 1.10  2000/01/07 16:41:31  daniel
     * copyright 2000
 
   Revision 1.9  1999/11/25 15:55:52  pierre

+ 6 - 1
rtl/go32v2/system.pp

@@ -743,6 +743,8 @@ procedure do_close(handle : longint);
 var
   regs : trealregs;
 begin
+  if Handle<=4 then
+   exit;
   regs.realebx:=handle;
   if handle<max_files then
     begin
@@ -1337,7 +1339,10 @@ Begin
 End.
 {
   $Log$
-  Revision 1.28  2000-01-07 16:41:32  daniel
+  Revision 1.29  2000-01-16 22:25:38  peter
+    * check handle for file closing
+
+  Revision 1.28  2000/01/07 16:41:32  daniel
     * copyright 2000
 
   Revision 1.27  2000/01/07 16:32:23  daniel

+ 5 - 9
rtl/inc/file.inc

@@ -358,14 +358,7 @@ Begin
     end;
   end;
   FileRec(f).mode:=fmClosed;
-{$IFDEF OS2}
-  if (FileRec (F).Handle > 4) or
-                            (os_MODE = osOS2) and (FileRec (F).Handle > 2) then
-{ Only three standard handles under real OS/2 }
-{$ELSE}
-  if FileRec(f).Handle>4 then
-{$ENDIF}
-   Do_Close(FileRec(f).Handle);
+  Do_Close(FileRec(f).Handle);
 End;
 
 
@@ -415,7 +408,10 @@ End;
 
 {
   $Log$
-  Revision 1.16  2000-01-07 16:41:33  daniel
+  Revision 1.17  2000-01-16 22:25:38  peter
+    * check handle for file closing
+
+  Revision 1.16  2000/01/07 16:41:33  daniel
     * copyright 2000
 
   Revision 1.15  2000/01/07 16:32:24  daniel

+ 6 - 1
rtl/linux/filutil.inc

@@ -62,6 +62,8 @@ end;
 Procedure FileClose (Handle : Longint);
 
 begin
+  if Handle<=4 then
+   exit;
   fdclose(Handle);
 end;
 
@@ -283,7 +285,10 @@ end;
 
 {
   $Log$
-  Revision 1.12  2000-01-07 16:41:40  daniel
+  Revision 1.13  2000-01-16 22:25:38  peter
+    * check handle for file closing
+
+  Revision 1.12  2000/01/07 16:41:40  daniel
     * copyright 2000
 
   Revision 1.11  1999/05/14 22:19:34  michael

+ 6 - 1
rtl/linux/syslinux.pp

@@ -260,6 +260,8 @@ end;
 
 Procedure Do_Close(Handle:Longint);
 Begin
+  if Handle<=4 then
+   exit;
 {$ifdef crtlib}
   _rtl_close(Handle);
 {$else}
@@ -739,7 +741,10 @@ End.
 
 {
   $Log$
-  Revision 1.32  2000-01-07 16:41:41  daniel
+  Revision 1.33  2000-01-16 22:25:38  peter
+    * check handle for file closing
+
+  Revision 1.32  2000/01/07 16:41:41  daniel
     * copyright 2000
 
   Revision 1.31  2000/01/07 16:32:28  daniel

+ 9 - 1
rtl/os2/sysos2.pas

@@ -279,11 +279,16 @@ end;
 procedure do_close(h:longint);
 
 begin
+{ Only three standard handles under real OS/2 }
+  if (h > 4) or
+     (os_MODE = osOS2) and (FileRec (F).Handle > 2) then
+   begin
      asm
         movb $0x3e,%ah
         mov h,%ebx
         call syscall
      end;
+   end;
 end;
 
 procedure do_erase(p:Pchar);
@@ -750,7 +755,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.21  2000-01-09 20:45:58  hajny
+  Revision 1.22  2000-01-16 22:25:38  peter
+    * check handle for file closing
+
+  Revision 1.21  2000/01/09 20:45:58  hajny
     * FPK changed to FPC
 
   Revision 1.20  2000/01/07 16:41:50  daniel

+ 6 - 1
rtl/win32/filutil.inc

@@ -80,6 +80,8 @@ end;
 Procedure FileClose (Handle : Longint);
 
 begin
+  if Handle<=4 then
+   exit;
   CloseHandle(Handle);
 end;
 
@@ -427,7 +429,10 @@ end;
 
 {
   $Log$
-  Revision 1.12  2000-01-07 16:41:52  daniel
+  Revision 1.13  2000-01-16 22:25:38  peter
+    * check handle for file closing
+
+  Revision 1.12  2000/01/07 16:41:52  daniel
     * copyright 2000
 
   Revision 1.11  1999/08/18 08:38:42  michael

+ 7 - 2
rtl/win32/syswin32.pp

@@ -333,7 +333,9 @@ end;
 
 procedure do_close(h : longint);
 begin
-   closehandle(h);
+  if Handle<=4 then
+   exit;
+  CloseHandle(h);
 end;
 
 
@@ -1159,7 +1161,10 @@ end.
 
 {
   $Log$
-  Revision 1.54  2000-01-07 16:41:52  daniel
+  Revision 1.55  2000-01-16 22:25:38  peter
+    * check handle for file closing
+
+  Revision 1.54  2000/01/07 16:41:52  daniel
     * copyright 2000
 
   Revision 1.53  2000/01/07 16:32:34  daniel