From 8c0de1dd76699373af4e14746ee9d0df2f54d91e Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 4 Sep 1998 18:16:12 +0000 Subject: [PATCH] * uniform filerec/textrec (with recsize:longint and name:0..255) --- rtl/inc/file.inc | 9 ++- rtl/inc/filerec.inc | 151 +++++++++++++++++++++--------------------- rtl/inc/systemh.inc | 9 ++- rtl/inc/textrec.inc | 63 ++++++++++++++---- rtl/linux/syslinux.pp | 13 ++-- 5 files changed, 146 insertions(+), 99 deletions(-) diff --git a/rtl/inc/file.inc b/rtl/inc/file.inc index 819bdee3b9..78990f642f 100644 --- a/rtl/inc/file.inc +++ b/rtl/inc/file.inc @@ -49,7 +49,7 @@ begin end; -Procedure Rewrite(var f:File;l:Word);[IOCheck]; +Procedure Rewrite(var f:File;l:Longint);[IOCheck]; { Create file f with recordsize of l } @@ -65,7 +65,7 @@ Begin End; -Procedure Reset(var f:File;l:Word);[IOCheck]; +Procedure Reset(var f:File;l:Longint);[IOCheck]; { Open file f with recordsize of l and filemode } @@ -319,7 +319,10 @@ End; { $Log$ - Revision 1.6 1998-07-19 19:55:32 michael + Revision 1.7 1998-09-04 18:16:12 peter + * uniform filerec/textrec (with recsize:longint and name:0..255) + + Revision 1.6 1998/07/19 19:55:32 michael + fixed rename. Changed p to p^ Revision 1.5 1998/07/02 12:15:39 carl diff --git a/rtl/inc/filerec.inc b/rtl/inc/filerec.inc index 212315723a..9d91b11f62 100644 --- a/rtl/inc/filerec.inc +++ b/rtl/inc/filerec.inc @@ -3,6 +3,9 @@ This file is part of the Free Pascal run time library. Copyright (c) 1993,97 by the Free Pascal development team + FileRec record definition + + See the file COPYING.FPC, included in this distribution, for details about the copyright. @@ -12,110 +15,108 @@ **********************************************************************} +{ + This file contains the definition of the filerec record. + It is put separately, so it is available outside the system + unit without sacrificing TP compatibility. +} + +{$ifndef VER0_99_5} + {$ifndef VER0_99_6} + {$define UNIFORM_FILEREC} + {$endif} +{$endif} + + +{$ifdef UNIFORM_FILEREC} + + const -{$ifdef linux} filerecnamelength = 255; -{$endif} -{$ifdef Win32} +type + FileRec = Packed Record + Handle, + Mode, + RecSize : longint; + _private : array[1..32] of byte; + UserData : array[1..16] of byte; + name : array[0..filerecnamelength] of char; + End; + + +{$else UNIFORM_FILEREC} + + +{********************************** + Old style for 0.99.5/0.99.6 +**********************************} + +const + {$ifdef linux} filerecnamelength = 255; -{$endif} -{$ifdef MACOS} + {$endif} + {$ifdef Win32} filerecnamelength = 255; -{$endif} -{$ifdef AMIGA} + {$endif} + {$ifdef MACOS} filerecnamelength = 255; -{$endif} -{$ifdef OS2} + {$endif} + {$ifdef AMIGA} + filerecnamelength = 255; + {$endif} + {$ifdef OS2} filerecnamelength = 79; -{$endif} -{$ifdef GO32V2} + {$endif} + {$ifdef GO32V2} filerecnamelength = 79; -{$endif GO32V2} -{$ifdef GO32V1} + {$endif GO32V2} + {$ifdef GO32V1} filerecnamelength = 79; -{$endif Go32v1} -{$ifdef ATARI} + {$endif Go32v1} + {$ifdef ATARI} filerecnamelength = 79; -{$endif} + {$endif} Type {$PACKRECORDS 2} FileRec = Record -{$ifdef win32} + {$ifdef win32} handle : longint; -{$endif win32} -{$ifdef amiga} + {$endif win32} + {$ifdef amiga} handle : longint; -{$endif amiga} -{$ifdef macos} + {$endif amiga} + {$ifdef macos} handle : longint; -{$endif macos} -{$ifdef linux} + {$endif macos} + {$ifdef linux} handle : word; -{$endif} -{$ifdef go32v1} + {$endif} + {$ifdef go32v1} handle : word; -{$endif go32v1} -{$ifdef go32v2} + {$endif go32v1} + {$ifdef go32v2} handle : word; -{$endif go32v2} -{$ifdef atari} + {$endif go32v2} + {$ifdef atari} handle : word; -{$endif atari} -{$ifdef os2} + {$endif atari} + {$ifdef os2} handle : word; -{$endif os2} + {$endif os2} Mode : word; RecSize : word; _private : array[1..26] of byte; UserData : array[1..16] of byte; name : array[0..filerecnamelength] of char; End; +{$endif UNIFORM_FILEREC} { $Log$ - Revision 1.3 1998-05-21 11:55:59 carl + Revision 1.4 1998-09-04 18:16:13 peter + * uniform filerec/textrec (with recsize:longint and name:0..255) + + Revision 1.3 1998/05/21 11:55:59 carl * works with all OS - - Revision 1.1.1.1 1998/03/25 11:18:43 root - * Restored version - - Revision 1.7 1998/02/05 12:08:54 pierre - * added packrecords to about dword alignment - for structures used in dos calls - - Revision 1.6 1998/01/26 12:00:21 michael - + Added log at the end - - - - Working file: rtl/inc/filerec.inc - description: - ---------------------------- - revision 1.5 - date: 1998/01/06 00:29:32; author: michael; state: Exp; lines: +20 -19 - Implemented a system independent sequence of reset/rewrite/append fileopenfunc etc system \n (from Peter Vreman) - ---------------------------- - revision 1.4 - date: 1997/12/01 12:08:03; author: michael; state: Exp; lines: +13 -0 - + added copyright reference header. - ---------------------------- - revision 1.3 - date: 1997/11/28 18:56:18; author: pierre; state: Exp; lines: +2 -1 - bug fix in ifdef win32 - ---------------------------- - revision 1.2 - date: 1997/11/27 22:49:04; author: florian; state: Exp; lines: +7 -0 - - CPU.PP added - - some bugs in DOS fixed (espsecially for go32v1) - - the win32 system unit is now compilable - ---------------------------- - revision 1.1 - date: 1997/11/27 08:33:46; author: michael; state: Exp; - Initial revision - ---------------------------- - revision 1.1.1.1 - date: 1997/11/27 08:33:46; author: michael; state: Exp; lines: +0 -0 - FPC RTL CVS start - ============================================================================= } diff --git a/rtl/inc/systemh.inc b/rtl/inc/systemh.inc index 51f1d81b18..cd51a7e363 100644 --- a/rtl/inc/systemh.inc +++ b/rtl/inc/systemh.inc @@ -339,9 +339,9 @@ Procedure Str (Const SI : ShortInt; Len : longint; Var S : AnsiString); Procedure Assign(Var f:File;const Name:string); Procedure Assign(Var f:File;p:pchar); Procedure Assign(Var f:File;c:char); -Procedure Rewrite(Var f:File;l:Word); +Procedure Rewrite(Var f:File;l:Longint); Procedure Rewrite(Var f:File); -Procedure Reset(Var f:File;l:Word); +Procedure Reset(Var f:File;l:Longint); Procedure Reset(Var f:File); Procedure Close(Var f:File); Procedure BlockWrite(Var f:File;Var Buf;Count:Longint;Var Result:Longint); @@ -440,7 +440,10 @@ Procedure halt; { $Log$ - Revision 1.25 1998-09-01 17:36:22 peter + Revision 1.26 1998-09-04 18:16:14 peter + * uniform filerec/textrec (with recsize:longint and name:0..255) + + Revision 1.25 1998/09/01 17:36:22 peter + internconst Revision 1.24 1998/08/11 21:39:08 peter diff --git a/rtl/inc/textrec.inc b/rtl/inc/textrec.inc index fe462312ec..28c3ee1e18 100644 --- a/rtl/inc/textrec.inc +++ b/rtl/inc/textrec.inc @@ -1,7 +1,10 @@ { $Id$ This file is part of the Free Pascal run time library. - Copyright (c) 1993,97 by the Free Pascal development team + Copyright (c) 1993-98 by the Free Pascal development team + + Textrec record definition + See the file COPYING.FPC, included in this distribution, for details about the copyright. @@ -18,8 +21,46 @@ unit without sacrificing TP compatibility. } -Const +{$ifndef VER0_99_5} + {$ifndef VER0_99_6} + {$define UNIFORM_TEXTREC} + {$endif} +{$endif} + +{$ifdef UNIFORM_TEXTREC} + + +const + TextRecNameLength = 255; +type + TextBuf = array[0..255] of char; + TextRec = Packed Record + Handle, + Mode, + bufsize, + _private, + bufpos, + bufend : longint; + bufptr : ^textbuf; + openfunc, + inoutfunc, + flushfunc, + closefunc : pointer; + UserData : array[1..16] of byte; + name : array[0..textrecnamelength] of char; + buffer : textbuf; + End; + + +{$else UNIFORM_TEXTREC} + + +{********************************** + Old style for 0.99.5/0.99.6 +**********************************} + +Const {$ifdef linux} textrecnamelength = 255; {$endif} @@ -74,8 +115,6 @@ type {$ifdef os2} handle : word; {$endif os2} - - mode : word; bufsize, _private, @@ -86,20 +125,18 @@ type inoutfunc, flushfunc, closefunc : pointer; - userdata : array[1..16] of byte; + userdata : array[1..16] of byte; name : array[0..textrecnamelength] of char; buffer : textbuf; end; +{$endif UNIFORM_TEXTREC} + { $Log$ - Revision 1.3 1998-05-21 15:37:19 carl + Revision 1.4 1998-09-04 18:16:15 peter + * uniform filerec/textrec (with recsize:longint and name:0..255) + + Revision 1.3 1998/05/21 15:37:19 carl + working version now ok - - Revision 1.2 1998/05/12 10:42:45 peter - * moved getopts to inc/, all supported OS's need argc,argv exported - + strpas, strlen are now exported in the systemunit - * removed logs - * removed $ifdef ver_above - } diff --git a/rtl/linux/syslinux.pp b/rtl/linux/syslinux.pp index a345c5694a..5215a9db86 100644 --- a/rtl/linux/syslinux.pp +++ b/rtl/linux/syslinux.pp @@ -30,15 +30,16 @@ Unit SysLinux; Interface {$ifdef m68k} - { used for single computations } - const BIAS4 = $7f-1; +{ used for single computations } +const + BIAS4 = $7f-1; {$endif} {$I systemh.inc} {$I heaph.inc} const - UnusedHandle = $ffff; + UnusedHandle = -1; StdInputHandle = 0; StdOutputHandle = 1; StdErrorHandle = 2; @@ -120,7 +121,6 @@ Var pp : ppchar; {$else} b : Array[0..255] of Char; - {$endif} Begin {$ifdef crtlib} @@ -689,7 +689,10 @@ End. { $Log$ - Revision 1.13 1998-08-14 11:59:41 carl + Revision 1.14 1998-09-04 18:16:16 peter + * uniform filerec/textrec (with recsize:longint and name:0..255) + + Revision 1.13 1998/08/14 11:59:41 carl + m68k fixes Revision 1.12 1998/08/12 14:01:37 michael