Pārlūkot izejas kodu

* post 2.0.0 fixes from cvs

git-svn-id: trunk@7 -
peter 20 gadi atpakaļ
vecāks
revīzija
b68af1b0e3
49 mainītis faili ar 412 papildinājumiem un 412 dzēšanām
  1. 8 3
      compiler/systems/t_macos.pas
  2. 5 2
      compiler/utils/fpc.pp
  3. 11 2
      demo/text/eratos.pp
  4. 10 2
      demo/text/qsort.pp
  5. 6 1
      fcl/db/bufdataset.inc
  6. 1 0
      fcl/db/datasource.inc
  7. 18 8
      fcl/db/fields.inc
  8. 5 1
      fcl/passrc/pastree.pp
  9. 26 5
      fcl/passrc/pparser.pp
  10. 29 7
      install/doc/readme.txt
  11. 5 1
      rtl/atari/system.pas
  12. 6 2
      rtl/beos/system.pp
  13. 5 2
      rtl/emx/crt.pas
  14. 5 1
      rtl/emx/system.pas
  15. 5 2
      rtl/go32v2/crt.pp
  16. 5 2
      rtl/go32v2/system.pp
  17. 4 2
      rtl/inc/compproc.inc
  18. 6 3
      rtl/inc/crt.inc
  19. 5 2
      rtl/inc/crth.inc
  20. 5 2
      rtl/inc/real2str.inc
  21. 6 3
      rtl/macos/sysdir.inc
  22. 5 2
      rtl/macos/sysfile.inc
  23. 6 5
      rtl/macos/sysheap.inc
  24. 6 5
      rtl/macos/sysos.inc
  25. 6 5
      rtl/macos/sysosh.inc
  26. 7 3
      rtl/macos/system.pp
  27. 6 3
      rtl/macos/systhrd.inc
  28. 10 4
      rtl/morphos/system.pp
  29. 2 2
      rtl/netware/crt.pp
  30. 5 2
      rtl/netware/system.pp
  31. 2 2
      rtl/netwlibc/crt.pp
  32. 5 2
      rtl/netwlibc/system.pp
  33. 5 2
      rtl/objpas/sysutils/sysutilh.inc
  34. 6 2
      rtl/os2/system.pas
  35. 5 1
      rtl/palmos/system.pp
  36. 5 2
      rtl/unix/crt.pp
  37. 6 2
      rtl/unix/sysunixh.inc
  38. 5 2
      rtl/watcom/crt.pp
  39. 10 5
      rtl/watcom/system.pp
  40. 6 3
      rtl/win32/crt.pp
  41. 6 2
      rtl/win32/system.pp
  42. 1 1
      tests/MPWMake
  43. 43 20
      tests/Makefile
  44. 51 24
      tests/Makefile.fpc
  45. 3 3
      tests/test/units/crt/tcrt.pp
  46. 0 186
      tests/utils/macos/LinkRunDir
  47. 1 62
      tests/utils/macos/LinkRunTests
  48. 18 5
      tests/utils/redir.pp
  49. 5 2
      utils/fpdoc/dglobals.pp

+ 8 - 3
compiler/systems/t_macos.pas

@@ -1,5 +1,5 @@
 {
-    $Id: t_macos.pas,v 1.22 2005/03/25 21:55:43 jonas Exp $
+    $Id: t_macos.pas,v 1.23 2005/05/14 12:15:18 olle Exp $
     Copyright (c) 2001-2002 by Peter Vreman
 
     This unit implements support import,export,link routines for MacOS.
@@ -164,9 +164,11 @@ begin
          * it is signaled it is a 32 bit app. (perhaps not nessecary on PowerPC)
          * heapsize  }
       if apptype <> app_tool then
-        Add('Echo "data ''SIZE'' (-1) '#182'{ $'#182'"1080 ' + heapsizestr + ' ' + heapsizestr +
+        begin
+          Add('Echo "data ''SIZE'' (-1) '#182'{ $'#182'"1080 ' + heapsizestr + ' ' + heapsizestr +
                                          #182'" '#182'};" | Rez -a -o ' + ScriptFixFileName(current_module.exefilename^));
-      Add('Exit If "{Status}" != 0');
+          Add('Exit If "{Status}" != 0');
+        end;
 
       {Add mac resources}
       if apptype = app_cui then
@@ -272,6 +274,9 @@ initialization
 end.
 {
   $Log: t_macos.pas,v $
+  Revision 1.23  2005/05/14 12:15:18  olle
+    * Fix small issue for link script
+
   Revision 1.22  2005/03/25 21:55:43  jonas
     * removed some unused variables
 

+ 5 - 2
compiler/utils/fpc.pp

@@ -1,5 +1,5 @@
 {
-    $Id: fpc.pp,v 1.19 2005/02/14 17:13:10 peter Exp $
+    $Id: fpc.pp,v 1.20 2005/05/08 19:56:59 marco Exp $
     Copyright (c) 2000-2002 by Florian Klaempfl
 
     This file is the "loader" for the Free Pascal compiler
@@ -203,11 +203,14 @@ program fpc;
          error(ppcbin+' can''t be executed, error message: '+e.message);
      end;
      if errorvalue<>0 then
-       error(ppcbin+' returned an error exitcode (normal if you did not specifiy a source file to be compiled)');
+       error(ppcbin+' returned an error exitcode (normal if you did not specify a source file to be compiled)');
      halt(errorvalue);
   end.
 {
   $Log: fpc.pp,v $
+  Revision 1.20  2005/05/08 19:56:59  marco
+   * typo fixed
+
   Revision 1.19  2005/02/14 17:13:10  peter
     * truncate log
 

+ 11 - 2
demo/text/eratos.pp

@@ -1,7 +1,7 @@
 {
-    $Id: eratos.pp,v 1.2 2002/09/07 15:06:35 peter Exp $
+    $Id: eratos.pp,v 1.3 2005/05/14 11:11:33 olle Exp $
     This file is part of the Free Pascal run time library.
-    Copyright (c) 1993-98 by Florian Klaempfl
+    Copyright (c) 1993-2005 by Florian Klaempfl
 
     Eratos Example, Calculates all Prime Numbers from 1 to max
 
@@ -16,7 +16,13 @@
 program eratosthenes;
 
   const
+{$ifndef MACOS}
      max = 1000000;
+{$else}
+     max = 10000; {Actually it works with 100000 also, but not 1000000,}
+                  {in which case the OS refuses to start it.}
+{$endif}
+
   var
      a : array[1..max] of boolean;
 
@@ -55,6 +61,9 @@ program eratosthenes;
 
 {
   $Log: eratos.pp,v $
+  Revision 1.3  2005/05/14 11:11:33  olle
+    * Smaller arrray sizes for macos
+
   Revision 1.2  2002/09/07 15:06:35  peter
     * old logs removed and tabs fixed
 

+ 10 - 2
demo/text/qsort.pp

@@ -1,7 +1,7 @@
 {
-    $Id: qsort.pp,v 1.2 2002/09/07 15:06:35 peter Exp $
+    $Id: qsort.pp,v 1.3 2005/05/14 11:11:33 olle Exp $
     This file is part of the Free Pascal run time library.
-    Copyright (c) 1993-98 by the Free Pascal Development Team
+    Copyright (c) 1993-2005 by the Free Pascal Development Team
 
     QuickSort Example
 
@@ -16,7 +16,12 @@
 program quicksort;
 
   const
+{$ifndef MACOS}
      max = 100000;
+{$else}
+     max = 1000; {Actually it works with 100000 also, but that might }
+                 {lead problems occacionally.}
+{$endif}
 
   type
      tlist = array[1..max] of longint;
@@ -78,6 +83,9 @@ begin
 end.
 {
   $Log: qsort.pp,v $
+  Revision 1.3  2005/05/14 11:11:33  olle
+    * Smaller arrray sizes for macos
+
   Revision 1.2  2002/09/07 15:06:35  peter
     * old logs removed and tabs fixed
 

+ 6 - 1
fcl/db/bufdataset.inc

@@ -1,5 +1,5 @@
 {
-    $Id: bufdataset.inc,v 1.13 2005/02/28 16:19:07 joost Exp $
+    $Id: bufdataset.inc,v 1.14 2005/05/07 14:41:00 joost Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by Michael Van Canneyt, member of the
     Free Pascal development team
@@ -421,6 +421,11 @@ var
   FieldUpdBuf : PFieldUpdateBuffer;
 
 begin
+  if not (state in [dsEdit, dsInsert]) then
+    begin
+    DatabaseErrorFmt(SNotInEditState,[NAme],self);
+    exit;
+    end;
   If Field.Fieldno > 0 then // If = 0, then calculated field or something
     begin
     CurrBuff := ActiveBuffer;

+ 1 - 0
fcl/db/datasource.inc

@@ -7,6 +7,7 @@ Constructor TDataLink.Create;
 begin
   Inherited Create;
   FBufferCount:=1;
+  FDataSource := nil;
   FDatasourceFixed:=False;
 end;
 

+ 18 - 8
fcl/db/fields.inc

@@ -1,5 +1,5 @@
 {
-    $Id: fields.inc,v 1.33 2005/04/26 16:48:58 michael Exp $
+    $Id: fields.inc,v 1.34 2005/05/12 18:52:32 michael Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by Michael Van Canneyt, member of the
     Free Pascal development team
@@ -1391,14 +1391,14 @@ end;
 procedure TFloatField.SetAsString(const AValue: string);
 
 Var R : Double;
-    Code : longint;
 
 begin
-  Val(AVAlue,R,Code);
-  If Code<>0 then
-    DatabaseErrorFmt(SNotAFloat,[AVAlue])
-  Else
+  try
+    R := StrToFloat(AValue);
     SetAsFloat(R);
+  except
+    DatabaseErrorFmt(SNotAFloat, [AValue]);
+  end;
 end;
 
 procedure TFloatField.SetVarValue(const AValue: Variant);
@@ -1487,9 +1487,11 @@ Var Temp : string;
 
 begin
   Temp:=UpperCase(AValue);
-  If Temp=FDisplays[True,True] Then
+  if Temp='' then
+    Clear
+  else if pos(Temp, FDisplays[True,True])=1 then
     SetAsBoolean(True)
-  else If Temp=FDisplays[True,False] then
+  else if pos(Temp, FDisplays[True,False])=1 then
     SetAsBoolean(False)
   else
     DatabaseErrorFmt(SNotABoolean,[AValue]);
@@ -2308,6 +2310,14 @@ end;
 
 {
   $Log: fields.inc,v $
+  Revision 1.34  2005/05/12 18:52:32  michael
+    - Patch from Jesus Reyes:
+    * TFloatField.SetAsString doesn't look at DecimalSeparator for
+      converting a string into a Float
+    * TBooleanField.SetAsString won't accept an empty string as a valid
+      value, also the patch allows strings as T, F or any starting
+      substring of DisplayValues to be accepted.
+
   Revision 1.33  2005/04/26 16:48:58  michael
    * Some patches from Uberto Barbini
      + TLoginEvent more Delphi compatible (D5 and bigger).

+ 5 - 1
fcl/passrc/pastree.pp

@@ -1,5 +1,5 @@
 {
-    $Id: pastree.pp,v 1.7 2005/02/14 17:13:16 peter Exp $
+    $Id: pastree.pp,v 1.8 2005/05/10 06:08:59 michael Exp $
     This file is part of the Free Component Library
 
     Pascal parse tree classes
@@ -184,6 +184,7 @@ type
     function ElementTypeName: String; override;
     IsValueUsed: Boolean;
     Value: Integer;
+    AssignedValue : String;
   end;
 
   TPasEnumType = class(TPasType)
@@ -1402,6 +1403,9 @@ end.
 
 {
   $Log: pastree.pp,v $
+  Revision 1.8  2005/05/10 06:08:59  michael
+  + Added parsing of explicitly assigned enumerated values
+
   Revision 1.7  2005/02/14 17:13:16  peter
     * truncate log
 

+ 26 - 5
fcl/passrc/pparser.pp

@@ -1,5 +1,5 @@
 {
-    $Id: pparser.pp,v 1.16 2005/04/07 07:55:40 marco Exp $
+    $Id: pparser.pp,v 1.17 2005/05/10 06:08:59 michael Exp $
     This file is part of the Free Component Library
 
     Pascal source parser
@@ -389,8 +389,17 @@ begin
           NextToken;
           if CurToken = tkBraceClose then
             break
-          else if CurToken <> tkComma then
-            ParseExc(SParserExpectedCommaRBracket);
+          else if CurToken in [tkEqual,tkAssign] then
+            begin
+            EnumValue.AssignedValue:=ParseExpression;
+            NextToken;
+            if CurToken = tkBraceClose then
+              Break
+            else if not (CurToken=tkComma) then
+              ParseExc(SParserExpectedCommaRBracket);
+            end
+          else if not (CurToken=tkComma) then
+            ParseExc(SParserExpectedCommaRBracket)
         end;
       end;
     tkSet:
@@ -1004,8 +1013,17 @@ begin
             NextToken;
             if CurToken = tkBraceClose then
               break
-            else if CurToken <> tkComma then
-              ParseExc(SParserExpectedCommaRBracket);
+            else if CurToken in [tkEqual,tkAssign] then
+              begin
+              EnumValue.AssignedValue:=ParseExpression;
+              NextToken;
+              if CurToken = tkBraceClose then
+                Break
+              else if not (CurToken=tkComma) then
+                ParseExc(SParserExpectedCommaRBracket);
+              end
+            else if not (CurToken=tkComma) then
+              ParseExc(SParserExpectedCommaRBracket)
           end;
           ExpectToken(tkSemicolon);
         except
@@ -1857,6 +1875,9 @@ end.
 
 {
   $Log: pparser.pp,v $
+  Revision 1.17  2005/05/10 06:08:59  michael
+  + Added parsing of explicitly assigned enumerated values
+
   Revision 1.16  2005/04/07 07:55:40  marco
    * patch from peter for resoursestring=string bug + fix crash missing --input
 

+ 29 - 7
install/doc/readme.txt

@@ -20,7 +20,6 @@ Free Pascal 2.0.0 is currently available for the following platforms:
 - Linux-powerpc
 - Linux-sparc
 - Linux-x86_64 (amd64)
-- Dos (i386), using the Go32v2 dos extender
 - Win32 (Win95/98/Me/XP/2000 and WinNT)
 - OS/2-i386 (OS/2 Warp v3.0, 4.0, WarpServer for e-Business and eComStation)
 - FreeBSD i386
@@ -35,6 +34,13 @@ Because release building is quite time intensive, we decide to start the
 this and create and maintain 2.0 beta releases for other platforms and
 targets, feel free to contact us, e-mail addresses are listed below.
 
+There are other platforms which are more or less working, but there is
+currently no maintainer for them and thus we cannot provide adequate
+support. DOS (i386) using the GO32v2 dos extender is one such example,
+other examples would include other BSD variants, etc. If you want to change
+this and create and maintain versions for other platforms and targets, feel
+free to contact us, e-mail addresses are listed below.
+
 ****************************************************************************
 * Features
 ****************************************************************************
@@ -52,6 +58,7 @@ targets, feel free to contact us, e-mail addresses are listed below.
   - COM, CORBA and raw interfaces support
   - dynamic array support
   - variant support
+  - inlining
 - code optimizer:
   - peephole optimizer (80x86 only)
   - jump optimizer
@@ -66,11 +73,12 @@ targets, feel free to contact us, e-mail addresses are listed below.
   - GNU Assembler (GAS)
   - Netwide assembler (Nasm)
   - Microsoft Assembler/Turbo Assembler (Masm/Tasm)
+  - Watcom assembler (wasm)
 - can call external C code
 - smartlinking (not yet supported under Mac OS X)
 - support for the GNU debugger
-- IDE (currently for GO32v2, Linux, FreeBSD and Win32 only, in beta testing
-  phase)
+- IDE (currently for GO32v2, Linux, FreeBSD, OS/2 and Win32 only; not all
+  platforms include debugger integrated in IDE)
 - can create binaries running natively under both DOS and OS/2 (EMX version)
 
 
@@ -97,12 +105,26 @@ Mac OS (classic)
  - Mac OS 9.2 has been tested, should probably also work from 7.5.3 and up.
 
 ****************************************************************************
-* Quick start - Win32 / OS/2 / DOS
+* Quick start - Win32
+****************************************************************************
+
+Download the distribution package (fpc-2.0.0.i386-win32.exe) and run it
+- it is a self-extracting installer, so just follow the instructions
+to install it. Don't forget to set the path as mentioned by the install
+program.
+
+To test the compiler, change to the demo directory of the compiler
+and type
+        fpc hello
+        hello
+
+
+****************************************************************************
+* Quick start - OS/2 / DOS
 ****************************************************************************
 
-Download distribution archive (fpc-2.0.0.i386-win32.zip for Win32,
-dos196.zip for GO32v2 or os2196.zip for OS/2) and unzip it
-into a temporary directory.
+Download distribution archive (os2200.zip for OS/2 or dos196.zip for
+GO32v2) and unzip it into a temporary directory.
 
 Start the install program INSTALL.EXE and follow the instructions.
 

+ 5 - 1
rtl/atari/system.pas

@@ -1,5 +1,5 @@
 {
-    $Id: system.pas,v 1.14 2005/04/03 21:10:59 hajny Exp $
+    $Id: system.pas,v 1.15 2005/05/12 20:29:04 michael Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by Carl Eric Codere
     member of the Free Pascal development team
@@ -45,6 +45,7 @@ const
  PathSeparator = ';';
  FileNameCaseSensitive = false;
  maxExitCode = 255;
+ MaxPathLen = 255;
 
  sLineBreak: string [1] = LineEnding;
     { used for single computations }
@@ -773,6 +774,9 @@ end.
 
 {
   $Log: system.pas,v $
+  Revision 1.15  2005/05/12 20:29:04  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
   Revision 1.14  2005/04/03 21:10:59  hajny
     * EOF_CTRLZ conditional define replaced with CtrlZMarksEOF, #26 handling made more consistent (fix for bug 2453)
 

+ 6 - 2
rtl/beos/system.pp

@@ -1,5 +1,5 @@
 {
-    $Id: system.pp,v 1.23 2005/04/13 20:10:50 florian Exp $
+    $Id: system.pp,v 1.24 2005/05/12 20:29:04 michael Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by the Free Pascal development team.
 
@@ -43,7 +43,8 @@ const
  PathSeparator = ':';
 { FileNameCaseSensitive is defined separately below!!! }
  maxExitCode = 255;
-
+ MaxPathLen = 256;
+ 
 const
   FileNameCaseSensitive : boolean = true;
   CtrlZMarksEOF: boolean = false; (* #26 not considered as end of file *)
@@ -548,6 +549,9 @@ begin
 end.
 {
   $Log: system.pp,v $
+  Revision 1.24  2005/05/12 20:29:04  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
   Revision 1.23  2005/04/13 20:10:50  florian
     + TThreadID
 

+ 5 - 2
rtl/emx/crt.pas

@@ -1,6 +1,6 @@
 {****************************************************************************
 
-    $Id: crt.pas,v 1.6 2005/03/30 23:11:35 hajny Exp $
+    $Id: crt.pas,v 1.7 2005/05/14 15:01:49 hajny Exp $
 
                             Standard CRT unit.
                     Free Pascal runtime library for EMX.
@@ -453,7 +453,7 @@ begin
     scroll_dn(row,left,bot,right,1,fil);
 end;
 
-procedure textmode(mode:integer);
+procedure TextMode (Mode: word);
 
 { Use this procedure to set-up a specific text-mode.}
 
@@ -960,6 +960,9 @@ end.
 
 {
   $Log: crt.pas,v $
+  Revision 1.7  2005/05/14 15:01:49  hajny
+    * TextMode parameter type changed to word for TP/BP compatibility
+
   Revision 1.6  2005/03/30 23:11:35  hajny
     * OS/2 fixes merged to EMX
 

+ 5 - 1
rtl/emx/system.pas

@@ -1,5 +1,5 @@
 {
- $Id: system.pas,v 1.35 2005/04/03 21:10:59 hajny Exp $
+ $Id: system.pas,v 1.36 2005/05/12 20:29:04 michael Exp $
  ****************************************************************************
 
     This file is part of the Free Pascal run time library.
@@ -37,6 +37,7 @@ const
  PathSeparator = ';';
 { FileNameCaseSensitive is defined separately below!!! }
  maxExitCode = 255;
+ MaxPathLen = 256;
 
 type    Tos=(osDOS,osOS2,osDPMI);
 
@@ -591,6 +592,9 @@ begin
 end.
 {
   $Log: system.pas,v $
+  Revision 1.36  2005/05/12 20:29:04  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
   Revision 1.35  2005/04/03 21:10:59  hajny
     * EOF_CTRLZ conditional define replaced with CtrlZMarksEOF, #26 handling made more consistent (fix for bug 2453)
 

+ 5 - 2
rtl/go32v2/crt.pp

@@ -1,5 +1,5 @@
 {
-    $Id: crt.pp,v 1.12 2005/02/14 17:13:22 peter Exp $
+    $Id: crt.pp,v 1.13 2005/05/14 15:01:49 hajny Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by the Free Pascal development team.
 
@@ -144,7 +144,7 @@ end;
 ****************************************************************************}
 
 
-procedure textmode(mode : integer);
+procedure textmode (Mode: word);
 
 var
    regs : trealregs;
@@ -770,6 +770,9 @@ end.
 
 {
   $Log: crt.pp,v $
+  Revision 1.13  2005/05/14 15:01:49  hajny
+    * TextMode parameter type changed to word for TP/BP compatibility
+
   Revision 1.12  2005/02/14 17:13:22  peter
     * truncate log
 

+ 5 - 2
rtl/go32v2/system.pp

@@ -1,5 +1,5 @@
 {
-    $Id: system.pp,v 1.52 2005/05/05 11:40:23 peter Exp $
+    $Id: system.pp,v 1.53 2005/05/12 20:29:04 michael Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by the Free Pascal development team.
 
@@ -43,7 +43,7 @@ const
  PathSeparator = ';';
 { FileNameCaseSensitive is defined separately below!!! }
  maxExitCode = 255;
-
+ MaxPathLen = 256;
 
 const
 { Default filehandles }
@@ -658,6 +658,9 @@ Begin
 End.
 {
   $Log: system.pp,v $
+  Revision 1.53  2005/05/12 20:29:04  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
   Revision 1.52  2005/05/05 11:40:23  peter
   Call InitSystemThreads
 

+ 4 - 2
rtl/inc/compproc.inc

@@ -1,5 +1,5 @@
 {
-    $Id: compproc.inc,v 1.67 2005/03/28 13:38:05 florian Exp $
+    $Id: compproc.inc,v 1.68 2005/05/14 11:53:31 olle Exp $
     This file is part of the Free Pascal Run time library.
     Copyright (c) 1999-2000 by the Free Pascal development team
 
@@ -335,7 +335,6 @@ procedure fpc_largeset_contains_sets(set1,set2 : pointer; size: longint); compil
 procedure fpc_rangeerror; compilerproc;
 procedure fpc_divbyzero; compilerproc;
 procedure fpc_overflow; compilerproc;
-//procedure fpc_iocheck(addr : longint); compilerproc;
 procedure fpc_iocheck; compilerproc;
 
 procedure fpc_InitializeUnits; compilerproc;
@@ -366,6 +365,9 @@ function fpc_qword_to_double(q: qword): double; compilerproc;
 
 {
   $Log: compproc.inc,v $
+  Revision 1.68  2005/05/14 11:53:31  olle
+    - Removed outcommented function
+
   Revision 1.67  2005/03/28 13:38:05  florian
     + a lot of vararray stuff
 

+ 6 - 3
rtl/inc/crt.inc

@@ -1,5 +1,5 @@
 {
-    $Id: crt.inc,v 1.2 2005/05/14 14:58:41 hajny Exp $
+    $Id: crt.inc,v 1.3 2005/05/14 15:01:49 hajny Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1998 - 2005 by the Free Pascal development team.
 
@@ -108,12 +108,12 @@ begin
 end;
 
 
-procedure TextMode (Mode: integer);
+procedure TextMode (Mode: word);
 { Use this procedure to set-up a specific text-mode.}
 begin
  TextAttr := $07;
  LastMode := Mode;
- SetScreenMode (word (Mode));
+ SetScreenMode (Mode);
  WindMin := 0;
  WindMaxX := Pred (ScreenWidth);
  WindMaxY := Pred (ScreenHeight);
@@ -410,6 +410,9 @@ end;
 
 {
   $Log: crt.inc,v $
+  Revision 1.3  2005/05/14 15:01:49  hajny
+    * TextMode parameter type changed to word for TP/BP compatibility
+
   Revision 1.2  2005/05/14 14:58:41  hajny
     * TextMode parameter type changed temporarily not to break other platforms
 

+ 5 - 2
rtl/inc/crth.inc

@@ -1,5 +1,5 @@
 {
-    $Id: crth.inc,v 1.4 2005/02/14 17:13:22 peter Exp $
+    $Id: crth.inc,v 1.5 2005/05/15 12:44:14 hajny Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by the Free Pascal development team.
 
@@ -77,7 +77,7 @@ var
 procedure AssignCrt(var F: Text);
 function KeyPressed: Boolean;
 function ReadKey: Char;
-procedure TextMode(Mode: Integer);
+procedure TextMode (Mode: word);
 procedure Window(X1,Y1,X2,Y2: Byte);
 procedure GotoXY(X,Y: Byte);
 function WhereX: Byte;
@@ -102,6 +102,9 @@ procedure cursorbig;
 
 {
   $Log: crth.inc,v $
+  Revision 1.5  2005/05/15 12:44:14  hajny
+    * TextMode parameter type changed to word for TP/BP compatibility
+
   Revision 1.4  2005/02/14 17:13:22  peter
     * truncate log
 

+ 5 - 2
rtl/inc/real2str.inc

@@ -1,5 +1,5 @@
 {
-    $Id: real2str.inc,v 1.17 2005/02/14 17:13:26 peter Exp $
+    $Id: real2str.inc,v 1.18 2005/05/14 11:54:00 olle Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by Michael Van Canneyt,
     member of the Free Pascal development team
@@ -194,7 +194,7 @@ begin
       end;
     rt_s64real :
       begin
-{ if the maximum suppported type is double, we can print out one digit }
+{ if the maximum supported type is double, we can print out one digit }
 { less, because otherwise we can't round properly and 1e-400 becomes   }
 { 0.99999999999e-400 (JM)                                              }
 {$ifdef support_extended}
@@ -461,6 +461,9 @@ end;
 
 {
   $Log: real2str.inc,v $
+  Revision 1.18  2005/05/14 11:54:00  olle
+    * Fixed typo
+
   Revision 1.17  2005/02/14 17:13:26  peter
     * truncate log
 

+ 6 - 3
rtl/macos/sysdir.inc

@@ -1,10 +1,10 @@
 {
-    $Id: sysdir.inc,v 1.2 2005/02/14 17:13:30 peter Exp $
+    $Id: sysdir.inc,v 1.3 2005/05/14 11:52:37 olle Exp $
     This file is part of the Free Pascal run time library.
-    Copyright (c) 1999-2000 by Florian Klaempfl and Pavel Ozerski
+    Copyright (c) 1999-2005 by Florian Klaempfl and Pavel Ozerski
     member of the Free Pascal development team.
 
-    FPC Pascal system unit for the Win32 API.
+    Low level directory functions for MacOS
 
     See the file COPYING.FPC, included in this distribution,
     for details about the copyright.
@@ -121,6 +121,9 @@ end;
 
 {
   $Log: sysdir.inc,v $
+  Revision 1.3  2005/05/14 11:52:37  olle
+    * Updated header comments
+
   Revision 1.2  2005/02/14 17:13:30  peter
     * truncate log
 

+ 5 - 2
rtl/macos/sysfile.inc

@@ -1,9 +1,9 @@
 {
-    $Id: sysfile.inc,v 1.4 2005/04/28 18:21:04 olle Exp $
+    $Id: sysfile.inc,v 1.5 2005/05/14 11:52:37 olle Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 2001-2005 by Free Pascal development team
 
-    Low level file functions
+    Low level file functions for MacOS
 
     See the file COPYING.FPC, included in this distribution,
     for details about the copyright.
@@ -351,6 +351,9 @@ end;
 
 {
    $Log: sysfile.inc,v $
+   Revision 1.5  2005/05/14 11:52:37  olle
+     * Updated header comments
+
    Revision 1.4  2005/04/28 18:21:04  olle
      * Set errno to zero after close
 

+ 6 - 5
rtl/macos/sysheap.inc

@@ -1,11 +1,9 @@
 {
-    $Id: sysheap.inc,v 1.1 2005/02/07 21:30:12 peter Exp $
+    $Id: sysheap.inc,v 1.2 2005/05/14 11:52:37 olle Exp $
     This file is part of the Free Pascal run time library.
-    Copyright (c) 2001 by Free Pascal development team
+    Copyright (c) 2001-2005 by Free Pascal development team
 
-    This file implements all the base types and limits required
-    for a minimal POSIX compliant subset required to port the compiler
-    to a new OS.
+    Low level heap functions for MacOS
 
     See the file COPYING.FPC, included in this distribution,
     for details about the copyright.
@@ -38,6 +36,9 @@ end;
 
 {
    $Log: sysheap.inc,v $
+   Revision 1.2  2005/05/14 11:52:37  olle
+     * Updated header comments
+
    Revision 1.1  2005/02/07 21:30:12  peter
      * system unit updated
 

+ 6 - 5
rtl/macos/sysos.inc

@@ -1,11 +1,9 @@
 {
-    $Id: sysos.inc,v 1.2 2005/03/20 19:35:24 olle Exp $
+    $Id: sysos.inc,v 1.3 2005/05/14 11:52:37 olle Exp $
     This file is part of the Free Pascal run time library.
-    Copyright (c) 2001 by Free Pascal development team
+    Copyright (c) 2001-2005 by Free Pascal development team
 
-    This file implements all the base types and limits required
-    for a minimal POSIX compliant subset required to port the compiler
-    to a new OS.
+    Low level system functions for MacOS
 
     See the file COPYING.FPC, included in this distribution,
     for details about the copyright.
@@ -164,6 +162,9 @@ end;
 
 {
    $Log: sysos.inc,v $
+   Revision 1.3  2005/05/14 11:52:37  olle
+     * Updated header comments
+
    Revision 1.2  2005/03/20 19:35:24  olle
      - removed FSpLocationFromFullPath
 

+ 6 - 5
rtl/macos/sysosh.inc

@@ -1,11 +1,9 @@
 {
-    $Id: sysosh.inc,v 1.2 2005/04/13 20:10:50 florian Exp $
+    $Id: sysosh.inc,v 1.3 2005/05/14 11:52:37 olle Exp $
     This file is part of the Free Pascal run time library.
-    Copyright (c) 2001 by Free Pascal development team
+    Copyright (c) 2001-2005 by Free Pascal development team
 
-    This file implements all the base types and limits required
-    for a minimal POSIX compliant subset required to port the compiler
-    to a new OS.
+    This file implements all the base types and limits for MacOS
 
     See the file COPYING.FPC, included in this distribution,
     for details about the copyright.
@@ -33,6 +31,9 @@ type
 
 {
    $Log: sysosh.inc,v $
+   Revision 1.3  2005/05/14 11:52:37  olle
+     * Updated header comments
+
    Revision 1.2  2005/04/13 20:10:50  florian
      + TThreadID
 

+ 7 - 3
rtl/macos/system.pp

@@ -1,5 +1,5 @@
 {
-    $Id: system.pp,v 1.32 2005/04/03 21:10:59 hajny Exp $
+    $Id: system.pp,v 1.33 2005/05/12 20:29:04 michael Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 2002-2004 by Olle Raab
 
@@ -28,9 +28,10 @@ const
  PathSeparator = ',';  {Is used in MPW and OzTeX}
  FileNameCaseSensitive = false;
  CtrlZMarksEOF: boolean = false; (* #26 not considered as end of file *)
-
+  
  maxExitCode = 65535;
-
+ MaxPathLen = 256;
+  
 const
 { Default filehandles }
   UnusedHandle    : Longint = -1;
@@ -560,6 +561,9 @@ end.
 
 {
   $Log: system.pp,v $
+  Revision 1.33  2005/05/12 20:29:04  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
   Revision 1.32  2005/04/03 21:10:59  hajny
     * EOF_CTRLZ conditional define replaced with CtrlZMarksEOF, #26 handling made more consistent (fix for bug 2453)
 

+ 6 - 3
rtl/macos/systhrd.inc

@@ -1,10 +1,10 @@
 {
-    $Id: systhrd.inc,v 1.1 2005/02/07 21:30:12 peter Exp $
+    $Id: systhrd.inc,v 1.2 2005/05/14 11:52:37 olle Exp $
     This file is part of the Free Pascal run time library.
-    Copyright (c) 2002 by Peter Vreman,
+    Copyright (c) 2002-2005 by Peter Vreman,
     member of the Free Pascal development team.
 
-    Linux (pthreads) threading support implementation
+    MacOS threading support implementation.
 
     See the file COPYING.FPC, included in this distribution,
     for details about the copyright.
@@ -25,6 +25,9 @@ end;
 
 {
   $Log: systhrd.inc,v $
+  Revision 1.2  2005/05/14 11:52:37  olle
+    * Updated header comments
+
   Revision 1.1  2005/02/07 21:30:12  peter
     * system unit updated
 

+ 10 - 4
rtl/morphos/system.pp

@@ -1,5 +1,5 @@
 {
-    $Id: system.pp,v 1.33 2005/04/03 21:10:59 hajny Exp $
+    $Id: system.pp,v 1.35 2005/05/12 20:29:04 michael Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 2004 by Karoly Balogh for Genesi S.a.r.l.
 
@@ -35,7 +35,8 @@ const
   DriveSeparator = ':';
   PathSeparator = ';';
   maxExitCode = 255;
-
+  MaxPathLen = 256;
+  
 const
   UnusedHandle    : LongInt = -1;
   StdInputHandle  : LongInt = 0;
@@ -119,8 +120,7 @@ var
           for i:=oldargvlen to argvlen-1 do
             argv[i]:=nil;
         end;
-      { use realloc to reuse already existing memory }
-      sysreallocmem(argv[idx],len+1);
+      ArgV [Idx] := SysAllocMem (Succ (Len));
     end;
 
 var
@@ -336,6 +336,12 @@ end.
 
 {
   $Log: system.pp,v $
+  Revision 1.35  2005/05/12 20:29:04  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
+  Revision 1.34  2005/05/10 21:45:08  hajny
+    * fix for potential SIGSEGV during argv allocation
+
   Revision 1.33  2005/04/03 21:10:59  hajny
     * EOF_CTRLZ conditional define replaced with CtrlZMarksEOF, #26 handling made more consistent (fix for bug 2453)
 

+ 2 - 2
rtl/netware/crt.pp

@@ -1,5 +1,5 @@
 {
-    $Id: crt.pp,v 1.5 2004/02/08 16:22:20 michael Exp $
+    $Id: crt.pp,v 1.6 2005/05/14 15:01:49 hajny Exp $
     Copyright (c) 1999-2001 by the Free Pascal development team.
 
     Borland Pascal 7 Compatible CRT Unit for Netware, tested with
@@ -141,7 +141,7 @@ end;
 ****************************************************************************}
 
 
-procedure textmode(mode : integer);
+procedure textmode (mode: word);
 begin
   Window (1,1,byte(ScreenWidth),byte(ScreenHeight));
   ClrScr;

+ 5 - 2
rtl/netware/system.pp

@@ -1,5 +1,5 @@
 {
-    $Id: system.pp,v 1.37 2005/04/03 21:10:59 hajny Exp $
+    $Id: system.pp,v 1.38 2005/05/12 20:29:04 michael Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by the Free Pascal development team.
 
@@ -42,7 +42,7 @@ const
  PathSeparator = ';';
 { FileNameCaseSensitive is defined separately below!!! }
  maxExitCode = 255;
-
+ MaxPathLen = 256;
 
 CONST
   { Default filehandles }
@@ -489,6 +489,9 @@ Begin
 End.
 {
   $Log: system.pp,v $
+  Revision 1.38  2005/05/12 20:29:04  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
   Revision 1.37  2005/04/03 21:10:59  hajny
     * EOF_CTRLZ conditional define replaced with CtrlZMarksEOF, #26 handling made more consistent (fix for bug 2453)
 

+ 2 - 2
rtl/netwlibc/crt.pp

@@ -1,5 +1,5 @@
 {
-    $Id: crt.pp,v 1.1 2004/09/05 20:58:47 armin Exp $
+    $Id: crt.pp,v 1.2 2005/05/14 15:01:49 hajny Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2004 by the Free Pascal development team.
 
@@ -128,7 +128,7 @@ end;
 ****************************************************************************}
 
 
-procedure textmode(mode : integer);
+procedure TextMode (Mode: word);
 begin
   Window (1,1,byte(ScreenWidth),byte(ScreenHeight));
   ClrScr;

+ 5 - 2
rtl/netwlibc/system.pp

@@ -1,5 +1,5 @@
 {
-    $Id: system.pp,v 1.15 2005/04/03 21:10:59 hajny Exp $
+    $Id: system.pp,v 1.16 2005/05/12 20:29:04 michael Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2004 by the Free Pascal development team.
 
@@ -48,7 +48,7 @@ const
  PathSeparator = ';';
 { FileNameCaseSensitive is defined separately below!!! }
  maxExitCode = $ffff;
-
+ MaxPathLen = 256;
 
 CONST
   { Default filehandles }
@@ -560,6 +560,9 @@ Begin
 End.
 {
   $Log: system.pp,v $
+  Revision 1.16  2005/05/12 20:29:04  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
   Revision 1.15  2005/04/03 21:10:59  hajny
     * EOF_CTRLZ conditional define replaced with CtrlZMarksEOF, #26 handling made more consistent (fix for bug 2453)
 

+ 5 - 2
rtl/objpas/sysutils/sysutilh.inc

@@ -1,5 +1,5 @@
 {
-    $Id: sysutilh.inc,v 1.14 2005/03/12 14:56:22 florian Exp $
+    $Id: sysutilh.inc,v 1.15 2005/05/12 20:30:51 michael Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by Florian Klaempfl
     member of the Free Pascal development team
@@ -194,7 +194,7 @@ const
   PathDelim={System.}DirectorySeparator;
   DriveDelim={System.}DriveSeparator;
   PathSep={System.}PathSeparator;
-
+  MAX_PATH={System.}MaxPathLen;
 
 Type
    TFileRec=FileRec;
@@ -237,6 +237,9 @@ Type
 
 {
   $Log: sysutilh.inc,v $
+  Revision 1.15  2005/05/12 20:30:51  michael
+  + Added MAX_PATH for Delphi/Kylix compatibility.
+
   Revision 1.14  2005/03/12 14:56:22  florian
     + added Ansi* routines to widestring manager
     * made them using OS calls on windows

+ 6 - 2
rtl/os2/system.pas

@@ -1,5 +1,5 @@
 {
- $Id: system.pas,v 1.85 2005/05/03 22:17:26 hajny Exp $
+ $Id: system.pas,v 1.86 2005/05/12 20:29:04 michael Exp $
  ****************************************************************************
 
     This file is part of the Free Pascal run time library.
@@ -50,7 +50,8 @@ const
   PathSeparator = ';';
 { FileNameCaseSensitive is defined separately below!!! }
   MaxExitCode = 65535;
-
+  MaxPathLen = 256;
+  
 type    Tos=(osDOS,osOS2,osDPMI);
 
 const   os_mode: Tos = osOS2;
@@ -773,6 +774,9 @@ begin
 end.
 {
   $Log: system.pas,v $
+  Revision 1.86  2005/05/12 20:29:04  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
   Revision 1.85  2005/05/03 22:17:26  hajny
     * SysAllocMem used for ArgV [Idx] allocation again
 

+ 5 - 1
rtl/palmos/system.pp

@@ -1,5 +1,5 @@
 {
-    $Id: system.pp,v 1.8 2005/04/03 21:10:59 hajny Exp $
+    $Id: system.pp,v 1.9 2005/05/12 20:29:04 michael Exp $
 
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by Florian Klaempfl
@@ -32,6 +32,7 @@ const
  FileNameCaseSensitive = false;
  CtrlZMarksEOF: boolean = false; (* #26 not considered as end of file *)
  maxExitCode = 255; {$ERROR TODO: CONFIRM THIS}
+ MaxPathLen = 256;
 
     Type
        { type and constant declartions doesn't hurt }
@@ -110,6 +111,9 @@ end.
 
 {
   $Log: system.pp,v $
+  Revision 1.9  2005/05/12 20:29:04  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
   Revision 1.8  2005/04/03 21:10:59  hajny
     * EOF_CTRLZ conditional define replaced with CtrlZMarksEOF, #26 handling made more consistent (fix for bug 2453)
 

+ 5 - 2
rtl/unix/crt.pp

@@ -1,5 +1,5 @@
 {
-    $Id: crt.pp,v 1.24 2005/03/16 18:17:23 jonas Exp $
+    $Id: crt.pp,v 1.25 2005/05/14 15:01:49 hajny Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by Michael Van Canneyt and Peter Vreman,
     members of the Free Pascal development team.
@@ -1416,7 +1416,7 @@ end;
 
 
 
-Procedure TextMode(Mode: Integer);
+Procedure TextMode (Mode: word);
 {
   Only Clears Screen under linux}
 begin
@@ -1626,6 +1626,9 @@ Finalization
 End.
 {
   $Log: crt.pp,v $
+  Revision 1.25  2005/05/14 15:01:49  hajny
+    * TextMode parameter type changed to word for TP/BP compatibility
+
   Revision 1.24  2005/03/16 18:17:23  jonas
     * fix from mischi to fix extra spaces under some terminals
 

+ 6 - 2
rtl/unix/sysunixh.inc

@@ -1,5 +1,5 @@
 {
-    $Id: sysunixh.inc,v 1.26 2005/04/03 21:10:59 hajny Exp $
+    $Id: sysunixh.inc,v 1.27 2005/05/12 20:29:16 michael Exp $
     This file is part of the Free Pascal Run time library.
     Copyright (c) 2001 by the Free Pascal development team
 
@@ -33,7 +33,8 @@ const
  PathSeparator = ':';
 { FileNameCaseSensitive is defined below! }
  maxExitCode = 255;
-
+ MaxPathLen = 256; 
+ 
 const
   UnusedHandle    = -1;
   StdInputHandle  = 0;
@@ -56,6 +57,9 @@ var argc:longint;external name 'operatingsystem_parameter_argc';
 
 {
   $Log: sysunixh.inc,v $
+  Revision 1.27  2005/05/12 20:29:16  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
   Revision 1.26  2005/04/03 21:10:59  hajny
     * EOF_CTRLZ conditional define replaced with CtrlZMarksEOF, #26 handling made more consistent (fix for bug 2453)
 

+ 5 - 2
rtl/watcom/crt.pp

@@ -1,5 +1,5 @@
 {
-    $Id: crt.pp,v 1.5 2005/02/14 17:13:32 peter Exp $
+    $Id: crt.pp,v 1.6 2005/05/14 15:01:49 hajny Exp $
 
 }
 
@@ -133,7 +133,7 @@ end;
 ****************************************************************************}
 
 
-procedure textmode(mode : integer);
+procedure TextMode (Mode: word);
 
 var
    regs : trealregs;
@@ -756,6 +756,9 @@ end.
 
 {
   $Log: crt.pp,v $
+  Revision 1.6  2005/05/14 15:01:49  hajny
+    * TextMode parameter type changed to word for TP/BP compatibility
+
   Revision 1.5  2005/02/14 17:13:32  peter
     * truncate log
 

+ 10 - 5
rtl/watcom/system.pp

@@ -1,5 +1,5 @@
 {
-    $Id: system.pp,v 1.22 2005/04/13 20:10:50 florian Exp $
+    $Id: system.pp,v 1.24 2005/05/12 20:29:04 michael Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by the Free Pascal development team.
 
@@ -44,7 +44,8 @@ const
  PathSeparator = ';';
 { FileNameCaseSensitive is defined separately below!!! }
  maxExitCode = 255;
-
+ MaxPathLen = 256;
+ 
 const
 { Default filehandles }
   UnusedHandle    = -1;
@@ -304,9 +305,7 @@ var
        fillchar(argv[oldargvlen],(argvlen-oldargvlen)*sizeof(pointer),0);
        argv[idx]:=nil;
      end;
-    { use realloc to reuse already existing memory }
-    if len<>0 then
-      sysreallocmem(argv[idx],len+1);
+     ArgV [Idx] := SysAllocMem (Succ (Len));
   end;
 
 begin
@@ -1541,6 +1540,12 @@ End.
 
 {
   $Log: system.pp,v $
+  Revision 1.24  2005/05/12 20:29:04  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
+  Revision 1.23  2005/05/10 21:45:08  hajny
+    * fix for potential SIGSEGV during argv allocation
+
   Revision 1.22  2005/04/13 20:10:50  florian
     + TThreadID
 

+ 6 - 3
rtl/win32/crt.pp

@@ -1,5 +1,5 @@
 {
-    $Id: crt.pp,v 1.24 2005/02/14 17:13:32 peter Exp $
+    $Id: crt.pp,v 1.25 2005/05/14 15:01:49 hajny Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by the Free Pascal development team.
 
@@ -109,9 +109,9 @@ end;
 ****************************************************************************}
 
 
-procedure textmode(mode : integer);
+procedure TextMode (Mode: word);
 begin
-  {!!! Not done yet !!! }
+  {$WARNING TextMode not implemented yet!!}
 end;
 
 Procedure TextColor(Color: Byte);
@@ -831,6 +831,9 @@ end. { unit Crt }
 
 {
   $Log: crt.pp,v $
+  Revision 1.25  2005/05/14 15:01:49  hajny
+    * TextMode parameter type changed to word for TP/BP compatibility
+
   Revision 1.24  2005/02/14 17:13:32  peter
     * truncate log
 

+ 6 - 2
rtl/win32/system.pp

@@ -1,5 +1,5 @@
 {
-    $Id: system.pp,v 1.73 2005/04/03 21:10:59 hajny Exp $
+    $Id: system.pp,v 1.74 2005/05/12 20:29:04 michael Exp $
     This file is part of the Free Pascal run time library.
     Copyright (c) 1999-2000 by Florian Klaempfl and Pavel Ozerski
     member of the Free Pascal development team.
@@ -39,7 +39,8 @@ const
  PathSeparator = ';';
 { FileNameCaseSensitive is defined separately below!!! }
  maxExitCode = 65535;
-
+ MaxPathLen = 260;
+ 
 type
    PEXCEPTION_FRAME = ^TEXCEPTION_FRAME;
    TEXCEPTION_FRAME = record
@@ -1108,6 +1109,9 @@ end.
 
 {
   $Log: system.pp,v $
+  Revision 1.74  2005/05/12 20:29:04  michael
+  + Added maxpathlen constant (maximum length of filename path)
+
   Revision 1.73  2005/04/03 21:10:59  hajny
     * EOF_CTRLZ conditional define replaced with CtrlZMarksEOF, #26 handling made more consistent (fix for bug 2453)
 

+ 1 - 1
tests/MPWMake

@@ -25,7 +25,7 @@ DIRS = :webtbs: :webtbf: :tbs: :tbf: :test: :test:cg: :test:cg:cdecl: :test:unit
 ################################
 # Utilities
 #
-:utils:dotest Ä :utils:dotest.pp
+:utils:dotest Ä :utils:dotest.pp :utils:redir.pp
 	"{FPC}" -WT "{OPT}" -FE:utils: :utils:dotest.pp
 
 :utils:digest Ä :utils:digest.pp

+ 43 - 20
tests/Makefile

@@ -1285,6 +1285,10 @@ ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 endif
 unexport FPC_VERSION
+TEST_HOSTNAME:=$(shell hostname -s)
+ifeq ($(TEST_HOSTNAME),)
+TEST_HOSTNAME:=$(shell hostname)
+endif
 ifndef TEST_FPC
 TEST_FPC=$(wildcard $(dir $(CURDIR))compiler/$(notdir $(FPC)))
 ifeq ($(TEST_FPC), )
@@ -1329,6 +1333,13 @@ endif
 endif
 endif
 TEST_OUTPUTDIR=output/$(TEST_FULL_TARGET)
+TEST_DATETIME:=$(shell $(DATE) +%Y%m%d%H%M)
+ifndef TEST_USER
+TEST_USER=$(USER)
+endif
+DB_TARGZ=$(TEST_HOSTNAME)-$(TEST_DATETIME).tar.gz
[email protected]
+DB_UPLOADDIR=/home/fpc/testsuite/incoming
 ifndef FAILLIST
 export FAILLIST:=$(TEST_OUTPUTDIR)/faillist
 endif
@@ -1351,9 +1362,6 @@ utils:
 	$(MAKE) -C utils utils
 utilsdb:
 	$(MAKE) -C utils utilsdb
-ifndef DBDIGEST
-DBDIGEST=utils/dbdigest
-endif
 ifndef DIGEST
 DIGEST=utils/digest
 endif
@@ -1455,14 +1463,29 @@ distclean: clean fpc_distclean
 	$(DELTREE) output
 	$(MAKE) -C utils distclean
 	-$(DEL) testprep-stamp.*
-.PHONY: all full digest dailytest onlyknown onlygraph onlyinteractive
+.PHONY: all full digest onlyknown onlygraph onlyinteractive
 digest : utils
 	-$(DIGEST) $(LOG)
-dbdigest: utilsdb
-	-$(DBDIGEST) -v $(TEST_FPC_VERSION) -o $(TEST_OS_TARGET) -c $(TEST_CPU_TARGET) -l $(LOG) $(DBDIGESTOPT)
+$(TEST_OUTPUTDIR)/dbdigest.cfg:
+	$(ECHOREDIR) "OS=$(TEST_OS_TARGET)" > $(TEST_OUTPUTDIR)/dbdigest.cfg
+	$(ECHOREDIR) "CPU=$(TEST_CPU_TARGET)" >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+	$(ECHOREDIR) "Version=$(TEST_FPC_VERSION)" >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+	$(ECHOREDIR) "LogFile=log" >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+	$(ECHOREDIR) "Submitter=$(TEST_USER)" >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+	$(ECHOREDIR) "Machine=$(TEST_HOSTNAME)" >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+	$(ECHOREDIR) "Comment=$(TEST_OPT)" >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+$(TEST_OUTPUTDIR)/tar.lst:
+	cd $(TEST_OUTPUTDIR) && find . -name '*.log' -or -name '*.elg' > tar.lst
+	$(ECHOREDIR) "log" >> $(TEST_OUTPUTDIR)/tar.lst
+	$(ECHOREDIR) "dbdigest.cfg" >> $(TEST_OUTPUTDIR)/tar.lst
+$(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/tar.lst $(TEST_OUTPUTDIR)/dbdigest.cfg
+	cd $(TEST_OUTPUTDIR) && tar cfz $(DB_TARGZ) --files-from=tar.lst
+uploadrun: $(TEST_OUTPUTDIR)/$(DB_TARGZ)
+	scp $(TEST_OUTPUTDIR)/$(DB_TARGZ) $(DB_HOST):$(DB_UPLOADDIR)/$(DB_TARGZ).part
+	ssh $(DB_HOST) "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)"
 all : allexectests
 full : clean allexectests digest
-fulldb : clean allexectests digest dbdigest
+fulldb : clean allexectests digest uploadrun
 onlyknown :
 	$(MAKE) full "DOTESTOPT= $(DOTESTOPT) -k-"
 onlygraph :
@@ -1472,15 +1495,16 @@ onlyinteractive :
 info :
 	@$(ECHO) "This Makefile allows to test the compiler"
 	@$(ECHO)
-	@$(ECHO) "Targets:"
-	@$(ECHO) "  all   - continue all tests"
-	@$(ECHO) "  full  - clean and run all tests"
-	@$(ECHO) "  dailytest - run full and save results"
-	@$(ECHO) "              in files having the date as extension"
+	@$(ECHO) "Basic Targets:"
+	@$(ECHO) "  all    - continue all tests"
+	@$(ECHO) "  full   - clean and run all tests"
+	@$(ECHO) "  fulldb - full and upload test results"
+	@$(ECHO) "  digest - compute and print test statistics"
+	@$(ECHO)
+	@$(ECHO) "Advanced Targets:"
 	@$(ECHO) "  onlyknown - run only known bugs"
 	@$(ECHO) "  onlygraph - run only graph tests"
 	@$(ECHO) "  onlyinteractive - run only interactive tests"
-	@$(ECHO) "  digest    - compute and print test statistics"
 	@$(ECHO)
 	@$(ECHO) "Host environment:"
 	@$(ECHO) "  $(FULL_TARGET)"
@@ -1489,10 +1513,9 @@ info :
 	@$(ECHO) "Test environment:"
 	@$(ECHO) "  $(TEST_FULL_TARGET)"
 	@$(ECHO) "  compiler: $(TEST_FPC) ver: $(TEST_FPC_VERSION)"
-override DATESUFFIX:=$(shell $(DATE) +%Y.%m.%d)
-ifneq ($(wildcard log.$(DATESUFFIX)),)
-override DATESUFFIX=$(shell $(DATE) +%Y.%m.%d.%H.%M)
-endif
-ifneq ($(wildcard lastdate.txt),)
-LASTDATESUFFIX:=$(shell cat lastdate.txt)
-endif
+	@$(ECHO)
+	@$(ECHO) "Output settings:"
+	@$(ECHO) "  DateTime : $(TEST_DATETIME)"
+	@$(ECHO) "  Outputdir: $(TEST_OUTPUTDIR)"
+	@$(ECHO) "  Uploaddir: $(DB_UPLOADDIR)"
+	@$(ECHO) "  tar.gz   : $(DB_TARGZ)"

+ 51 - 24
tests/Makefile.fpc

@@ -16,6 +16,11 @@ unexport FPC_VERSION
 # Test environment setup
 #
 
+TEST_HOSTNAME:=$(shell hostname -s)
+ifeq ($(TEST_HOSTNAME),)
+TEST_HOSTNAME:=$(shell hostname)
+endif
+
 ifndef TEST_FPC
 #Use development version of the compiler
 TEST_FPC=$(wildcard $(dir $(CURDIR))compiler/$(notdir $(FPC)))
@@ -69,6 +74,17 @@ endif
 # Target dir where the ppu and binaries are created
 TEST_OUTPUTDIR=output/$(TEST_FULL_TARGET)
 
+# Date and time the testsuite was run
+TEST_DATETIME:=$(shell $(DATE) +%Y%m%d%H%M)
+
+ifndef TEST_USER
+TEST_USER=$(USER)
+endif
+
+# Testsuite upload
+DB_TARGZ=$(TEST_HOSTNAME)-$(TEST_DATETIME).tar.gz
[email protected]
+DB_UPLOADDIR=/home/fpc/testsuite/incoming
 
 ################################
 # Misc
@@ -115,10 +131,6 @@ utils:
 utilsdb:
         $(MAKE) -C utils utilsdb
 
-ifndef DBDIGEST
-DBDIGEST=utils/dbdigest
-endif
-
 ifndef DIGEST
 DIGEST=utils/digest
 endif
@@ -297,19 +309,37 @@ distclean: clean fpc_distclean
 # Main rules
 #
 
-.PHONY: all full digest dailytest onlyknown onlygraph onlyinteractive
+.PHONY: all full digest onlyknown onlygraph onlyinteractive
 
 digest : utils
         -$(DIGEST) $(LOG)
 
-dbdigest: utilsdb
-        -$(DBDIGEST) -v $(TEST_FPC_VERSION) -o $(TEST_OS_TARGET) -c $(TEST_CPU_TARGET) -l $(LOG) $(DBDIGESTOPT)
+$(TEST_OUTPUTDIR)/dbdigest.cfg:
+        $(ECHOREDIR) "OS=$(TEST_OS_TARGET)" > $(TEST_OUTPUTDIR)/dbdigest.cfg
+        $(ECHOREDIR) "CPU=$(TEST_CPU_TARGET)" >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+        $(ECHOREDIR) "Version=$(TEST_FPC_VERSION)" >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+        $(ECHOREDIR) "LogFile=log" >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+        $(ECHOREDIR) "Submitter=$(TEST_USER)" >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+        $(ECHOREDIR) "Machine=$(TEST_HOSTNAME)" >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+        $(ECHOREDIR) "Comment=$(TEST_OPT)" >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+
+$(TEST_OUTPUTDIR)/tar.lst:
+        cd $(TEST_OUTPUTDIR) && find . -name '*.log' -or -name '*.elg' > tar.lst
+        $(ECHOREDIR) "log" >> $(TEST_OUTPUTDIR)/tar.lst
+        $(ECHOREDIR) "dbdigest.cfg" >> $(TEST_OUTPUTDIR)/tar.lst
+
+$(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/tar.lst $(TEST_OUTPUTDIR)/dbdigest.cfg
+        cd $(TEST_OUTPUTDIR) && tar cfz $(DB_TARGZ) --files-from=tar.lst
+
+uploadrun: $(TEST_OUTPUTDIR)/$(DB_TARGZ)
+        scp $(TEST_OUTPUTDIR)/$(DB_TARGZ) $(DB_HOST):$(DB_UPLOADDIR)/$(DB_TARGZ).part
+        ssh $(DB_HOST) "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)"
 
 all : allexectests
 
 full : clean allexectests digest
 
-fulldb : clean allexectests digest dbdigest
+fulldb : clean allexectests digest uploadrun
 
 onlyknown :
         $(MAKE) full "DOTESTOPT= $(DOTESTOPT) -k-"
@@ -323,15 +353,16 @@ onlyinteractive :
 info :
         @$(ECHO) "This Makefile allows to test the compiler"
         @$(ECHO)
-        @$(ECHO) "Targets:"
-        @$(ECHO) "  all   - continue all tests"
-        @$(ECHO) "  full  - clean and run all tests"
-        @$(ECHO) "  dailytest - run full and save results"
-        @$(ECHO) "              in files having the date as extension"
+        @$(ECHO) "Basic Targets:"
+        @$(ECHO) "  all    - continue all tests"
+        @$(ECHO) "  full   - clean and run all tests"
+        @$(ECHO) "  fulldb - full and upload test results"
+        @$(ECHO) "  digest - compute and print test statistics"
+        @$(ECHO)
+        @$(ECHO) "Advanced Targets:"
         @$(ECHO) "  onlyknown - run only known bugs"
         @$(ECHO) "  onlygraph - run only graph tests"
         @$(ECHO) "  onlyinteractive - run only interactive tests"
-        @$(ECHO) "  digest    - compute and print test statistics"
         @$(ECHO)
         @$(ECHO) "Host environment:"
         @$(ECHO) "  $(FULL_TARGET)"
@@ -340,13 +371,9 @@ info :
         @$(ECHO) "Test environment:"
         @$(ECHO) "  $(TEST_FULL_TARGET)"
         @$(ECHO) "  compiler: $(TEST_FPC) ver: $(TEST_FPC_VERSION)"
-
-override DATESUFFIX:=$(shell $(DATE) +%Y.%m.%d)
-
-ifneq ($(wildcard log.$(DATESUFFIX)),)
-override DATESUFFIX=$(shell $(DATE) +%Y.%m.%d.%H.%M)
-endif
-
-ifneq ($(wildcard lastdate.txt),)
-LASTDATESUFFIX:=$(shell cat lastdate.txt)
-endif
+        @$(ECHO)
+        @$(ECHO) "Output settings:"
+        @$(ECHO) "  DateTime : $(TEST_DATETIME)"
+        @$(ECHO) "  Outputdir: $(TEST_OUTPUTDIR)"
+        @$(ECHO) "  Uploaddir: $(DB_UPLOADDIR)"
+        @$(ECHO) "  tar.gz   : $(DB_TARGZ)"

+ 3 - 3
tests/test/units/crt/tcrt.pp

@@ -1,6 +1,6 @@
 { %INTERACTIVE }
 {
-  $Id: tcrt.pp,v 1.1 2001/05/09 16:12:50 carl Exp $
+  $Id: tcrt.pp,v 1.2 2005/05/14 14:31:51 hajny Exp $
 
   Program to test CRT unit by Mark May.
   Only standard TP functions are tested (except WhereX, WhereY).
@@ -89,7 +89,7 @@ begin
   writeln ('The following line should then become blank from column 10');
   writeln ('12345678901234567890');
   writeln;
-  writeln ('This line should dissapear.');
+  writeln ('This line should disappear.');
   writeln;
   writeln ('Between this line and the next, an empty line should appear.');
   writeln ('This is the next line, above which the empty one should appear');
@@ -100,7 +100,7 @@ begin
   gotoxy (10,6);clreol;
   gotoxy (1,8);delline;
   gotoxy (1,10); insline;
-  gotoxy (17,13); clreol;
+  gotoxy (18,13); clreol;
   writeln ('end.');
   readkey;
 end.

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 186
tests/utils/macos/LinkRunDir


+ 1 - 62
tests/utils/macos/LinkRunTests

@@ -1,62 +1 @@
-#Assembles, links and run tests of FreePascal
-#Param 1, the directory with the tests to perform.
-#Note versions can be either 2 or 3 fields, e g 1.1  1.0.10
-
-(Evaluate {0} =~ /(Å:)¨1[Â:]*/) > Dev:Null
-Set mydir {¨1}
-
-Set -e debugverbose 1
-Echo "** Assembles, links and run tests for MacOS **" 
-
-#Delete -i Å.o
-Set -e nrOfSucceded 0
-Set -e nrOfFailed 0
-
-#Set compiler version
-Set compver '1.9' #Must be at least two fields
-If `Evaluate "{compver}" !~ /([0-9]*)¨1.([0-9]*)¨2.([0-9]*)¨3/`
-  If `Evaluate "{compver}" !~ /([0-9]*)¨1.([0-9]*)¨2/`
-    Echo Error in compiler version no
-    Exit 1
-  Else
-    Set ¨3 0
-  End
-End
-Set -e cv1 {¨1};Set -e cv2 {¨2}; Set -e cv3 {¨3}
-
-Directory {1}units:
-
-#Iterate through files in :units:
-Set Exit 0 # To handle the case, in the for stmt, when there is no match
-For sourceWithExt In Å.s
-  Set Exit 1 #Revert error handling
-  (Evaluate "{sourceWithExt}" =~ /(([Â.])*)¨1Å/) > Dev:Null
-  Set unitname {¨1}
-  If `Exists {unitname}.o`
-    Continue
-  End
-  SetFile -c 'MPS ' -t 'TEXT' {unitname}_ppas
-  Execute {unitname}_ppas
-  Set Exit 0 # To handle the case, in the for stmt, when there is no match
-End
-Set Exit 1 #Revert error handling
-
-Directory {1}
-
-{mydir}LinkRunDir ':test:'
-{mydir}LinkRunDir ':test:cg:'
-{mydir}LinkRunDir ':test:cg:cdecl:'
-{mydir}LinkRunDir ':test:units:system:'
-{mydir}LinkRunDir ':test:units:strings:'
-{mydir}LinkRunDir ':test:units:objects:'
-{mydir}LinkRunDir ':test:units:math:'
-{mydir}LinkRunDir ':test:opt:'
-{mydir}LinkRunDir ':tbs:'
-{mydir}LinkRunDir ':tbf:'
-{mydir}LinkRunDir ':webtbs:'
-{mydir}LinkRunDir ':webtbf:'
-
-Echo "============================================================="
-Echo '** Test session finished. **'
-Echo "No of succeded tests: {nrOfSucceded}"
-Echo "No of failed tests: {nrOfFailed}"
+#Assembles, links and run tests of FreePascal
#Param 1, the directory with the tests to perform.
#Note versions can be either 2 or 3 fields, e g 1.1  1.0.10

(Evaluate {0} =~ /(Å:)¨1[Â:]*/) > Dev:Null
Set mydir {¨1}

Set -e debugverbose 1
Echo "** Assembles, links and run tests for MacOS **" 

#Delete -i Å.o
Set -e nrOfSucceded 0
Set -e nrOfFailed 0

#Set compiler version
Set compver '1.9' #Must be at least two fields
If `Evaluate "{compver}" !~ /([0-9]*)¨1.([0-9]*)¨2.([0-9]*)¨3/`
  If `Evaluate "{compver}" !~ /([0-9]*)¨1.([0-9]*)¨2/`
    Echo Error in compiler version no
    Exit 1
  Else
    Set ¨3 0
  End
End
Set -e cv1 {¨1};Set -e cv2 {¨2}; Set -e cv3 {¨3}

Directory {1}units:

#Iterate through files in :units:
Set Exit 0 # To handle the case, in the for stmt, when there is no match
For sourceWithExt In Å.s
  Set Exit 1 #Revert error handling
  (Evaluate "{sourceWithExt}" =~ /(([Â.])*)¨1Å/) > Dev:Null
  Set unitname {¨1}
  If `Exists {unitname}.o`
    Continue
  End
  SetFile -c 'MPS ' -t 'TEXT' {unitname}_ppas
  Execute {unitname}_ppas
  Set Exit 0 # To handle the case, in the for stmt, when there is no match
End
Set Exit 1 #Revert error handling

Directory {1}

{mydir}LinkRunDir ':test:'
{mydir}LinkRunDir ':test:cg:'
{mydir}LinkRunDir ':test:cg:cdecl:'
{mydir}LinkRunDir ':test:units:system:'
{mydir}LinkRunDir ':test:units:strings:'
{mydir}LinkRunDir ':test:units:objects:'
{mydir}LinkRunDir ':test:units:math:'
{mydir}LinkRunDir ':test:opt:'
{mydir}LinkRunDir ':tbs:'
{mydir}LinkRunDir ':tbf:'
{mydir}LinkRunDir ':webtbs:'
{mydir}LinkRunDir ':webtbf:'

Echo "============================================================="
Echo '** Test session finished. **'
#duesnt work:
#Echo "No of succeded tests: {nrOfSucceded}"
#Echo "No of failed tests: {nrOfFailed}"

+ 18 - 5
tests/utils/redir.pp

@@ -1,5 +1,5 @@
 {
-    $Id: redir.pp,v 1.21 2005/02/14 17:13:37 peter Exp $
+    $Id: redir.pp,v 1.22 2005/05/14 11:18:52 olle Exp $
     This file is part of the Free Pascal Test Suite
     Copyright (c) 1999-2000 by Pierre Muller
 
@@ -835,18 +835,28 @@ begin
 
  CmdLine2 := ComLine;
  if RedirStdIn <> '' then CmdLine2 := CmdLine2 + ' < ' + RedirStdIn;
+
+ {$ifndef macos}
  if RedirStdOut <> '' then CmdLine2 := CmdLine2 + ' > ' + RedirStdOut;
  if RedirStdErr <> '' then
  begin
-  {$ifndef macos}
   if RedirStdErr = RedirStdOut then
     CmdLine2 := CmdLine2 + ' 2>&1'
   else
     CmdLine2 := CmdLine2 + ' 2> ' + RedirStdErr;
-  {$else macos}
-  CmdLine2 := CmdLine2 + ' ' + #179 + ' ' + RedirStdErr; {#179 is "greater or equal" char}
-  {$endif macos}
  end;
+ {$else macos}
+ if RedirStdErr <> RedirStdOut then
+   if RedirStdOut <> '' then CmdLine2 := CmdLine2 + ' > ' + RedirStdOut;
+ if RedirStdErr <> '' then
+ begin
+  if RedirStdErr = RedirStdOut then
+    CmdLine2 := CmdLine2 + ' ' + #183 + ' ' + RedirStdErr  {#183 is "capital sigma" char in MacRoman}
+  else
+    CmdLine2 := CmdLine2 + ' ' + #179 + ' ' + RedirStdErr; {#179 is "greater or equal" char in MacRoman}
+ end;
+ {$endif macos}
+
  DosExecute (ProgName, CmdLine2);
  ExecuteRedir:=(IOStatus=0) and (ExecuteResult=0);
 end;
@@ -1017,6 +1027,9 @@ finalization
 End.
 {
   $Log: redir.pp,v $
+  Revision 1.22  2005/05/14 11:18:52  olle
+    * Fix for MacOS when redirect stdout and stderr to same stream
+
   Revision 1.21  2005/02/14 17:13:37  peter
     * truncate log
 

+ 5 - 2
utils/fpdoc/dglobals.pp

@@ -1,5 +1,5 @@
 {
-    $Id: dglobals.pp,v 1.11 2005/05/09 18:50:13 michael Exp $
+    $Id: dglobals.pp,v 1.12 2005/05/15 19:36:30 hajny Exp $
 
     FPDoc  -  Free Pascal Documentation Tool
     Copyright (C) 2000 - 2002 by
@@ -98,7 +98,7 @@ resourcestring
   SManUsagePackageDescription = 'Use descr as the description of man pages';
   
   // HTML usage
-  SHTMLUsageFooter = 'Append xhmtl from file as footer to html page';
+  SHTMLUsageFooter = 'Append xhtml from file as footer to html page';
 
   STitle                      = 'FPDoc - Free Pascal Documentation Tool';
   SCopyright                  = '(c) 2000 - 2003 Areca Systems GmbH / Sebastian Guenther, [email protected]';
@@ -1220,6 +1220,9 @@ end.
 
 {
   $Log: dglobals.pp,v $
+  Revision 1.12  2005/05/15 19:36:30  hajny
+    * mistyping fixed (xhmtl)
+
   Revision 1.11  2005/05/09 18:50:13  michael
   * Added patch from Vincent Snijders to add a footer to each HTML page
 

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels