From e500f8530802c74ba8936056fa07c2c9448878f5 Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 6 May 1998 15:04:20 +0000 Subject: [PATCH] + when trying to find source files of a ppufile check the includepathlist for included files the main file must still be in the same directory --- compiler/files.pas | 29 ++++++++++++++++++++++++----- compiler/tree.pas | 9 ++++++--- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/compiler/files.pas b/compiler/files.pas index 79da6f6648..c5aebbc324 100644 --- a/compiler/files.pas +++ b/compiler/files.pas @@ -339,6 +339,7 @@ unit files; count : longint; temp,hs : string; b : byte; + incfile_found : boolean; code : word; objfiletime, ppufiletime, @@ -413,6 +414,7 @@ unit files; begin ppufile^.read_data(hs[0],1,count); ppufile^.read_data(hs[1],ord(hs[0]),count); + ppufile^.read_data(b,1,count); if (flags and uf_in_library)<>0 then begin sources_avail:=false; @@ -422,6 +424,19 @@ unit files; begin { check the date of the source files } Source_Time:=GetNamedFileTime(unit_path+hs); + if Source_Time=-1 then + begin + { search for include files in the includepathlist } + if b<>ibend then + temp:=search(hs,includesearchpath,incfile_found); + if incfile_found then + begin + hs:=temp+hs; + Source_Time:=GetNamedFileTime(hs); + end; + end + else + hs:=unit_path+hs; if Source_Time=-1 then begin sources_avail:=false; @@ -437,18 +452,17 @@ unit files; end; end; end; - Message1(unit_t_ppu_source,unit_path+hs+temp); + Message1(unit_t_ppu_source,hs+temp); {$ifdef UseBrowser} - fsplit(unit_path+hs,_d,_n,_e); + fsplit(hs,_d,_n,_e); new(hp,init(_d,_n,_e)); { the indexing should match what is done in writeasunit } sourcefiles.register_file(hp); {$endif UseBrowser} - ppufile^.read_data(b,1,count); end; { main source is always the last } stringdispose(mainsource); - mainsource:=stringdup(ppufile^.path^+hs); + mainsource:=stringdup(hs); { check the object and assembler file if not a library } if (flags and uf_smartlink)<>0 then @@ -646,7 +660,12 @@ unit files; end. { $Log$ - Revision 1.8 1998-05-04 17:54:25 peter + Revision 1.9 1998-05-06 15:04:20 pierre + + when trying to find source files of a ppufile + check the includepathlist for included files + the main file must still be in the same directory + + Revision 1.8 1998/05/04 17:54:25 peter + smartlinking works (only case jumptable left todo) * redesign of systems.pas to support assemblers and linkers + Unitname is now also in the PPU-file, increased version to 14 diff --git a/compiler/tree.pas b/compiler/tree.pas index dfceabb85e..55df89a6df 100644 --- a/compiler/tree.pas +++ b/compiler/tree.pas @@ -295,7 +295,6 @@ unit tree; implementation -{$ifdef UseTokenInfo} {$ifdef extdebug} uses types,pbase; @@ -303,7 +302,6 @@ unit tree; uses pbase; {$endif extdebug} -{$endif UseTokenInfo} {**************************************************************************** this is a pool for the tree nodes to get more performance @@ -1524,7 +1522,12 @@ unit tree; end. { $Log$ - Revision 1.6 1998-05-06 08:38:52 pierre + Revision 1.7 1998-05-06 15:04:21 pierre + + when trying to find source files of a ppufile + check the includepathlist for included files + the main file must still be in the same directory + + Revision 1.6 1998/05/06 08:38:52 pierre * better position info with UseTokenInfo UseTokenInfo greatly simplified + added check for changed tree after first time firstpass