mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-02 18:10:23 +02:00
* store original source time in ppu so it can be compared instead of
comparing with the ppu time
This commit is contained in:
parent
51cc63140f
commit
21933875b5
@ -72,12 +72,15 @@ interface
|
||||
procedure setmacro(p:pchar;len:longint);
|
||||
procedure setline(line,linepos:longint);
|
||||
function getlinestr(l:longint):string;
|
||||
function getfiletime:longint;
|
||||
protected
|
||||
function fileopen(const filename: string): boolean; virtual;
|
||||
function fileseek(pos: longint): boolean; virtual;
|
||||
function fileread(var databuf; maxsize: longint): longint; virtual;
|
||||
function fileeof: boolean; virtual;
|
||||
function fileclose: boolean; virtual;
|
||||
filetime : longint;
|
||||
function fileopen(const filename: string): boolean; virtual; abstract;
|
||||
function fileseek(pos: longint): boolean; virtual; abstract;
|
||||
function fileread(var databuf; maxsize: longint): longint; virtual; abstract;
|
||||
function fileeof: boolean; virtual; abstract;
|
||||
function fileclose: boolean; virtual; abstract;
|
||||
procedure filegettime; virtual; abstract;
|
||||
end;
|
||||
|
||||
tdosinputfile = class(tinputfile)
|
||||
@ -87,6 +90,7 @@ interface
|
||||
function fileread(var databuf; maxsize: longint): longint; override;
|
||||
function fileeof: boolean; override;
|
||||
function fileclose: boolean; override;
|
||||
procedure filegettime; override;
|
||||
private
|
||||
f : file; { current file handle }
|
||||
end;
|
||||
@ -164,6 +168,7 @@ uses
|
||||
name:=stringdup(n+e);
|
||||
path:=stringdup(p);
|
||||
next:=nil;
|
||||
filetime:=-1;
|
||||
{ file info }
|
||||
is_macro:=false;
|
||||
endoffile:=false;
|
||||
@ -401,38 +406,11 @@ uses
|
||||
end;
|
||||
|
||||
|
||||
function tinputfile.fileopen(const filename: string): boolean;
|
||||
function tinputfile.getfiletime:longint;
|
||||
begin
|
||||
abstract;
|
||||
fileopen:=false;
|
||||
end;
|
||||
|
||||
|
||||
function tinputfile.fileseek(pos: longint): boolean;
|
||||
begin
|
||||
abstract;
|
||||
fileseek:=false;
|
||||
end;
|
||||
|
||||
|
||||
function tinputfile.fileread(var databuf; maxsize: longint): longint;
|
||||
begin
|
||||
abstract;
|
||||
fileread:=0;
|
||||
end;
|
||||
|
||||
|
||||
function tinputfile.fileeof: boolean;
|
||||
begin
|
||||
abstract;
|
||||
fileeof:=false;
|
||||
end;
|
||||
|
||||
|
||||
function tinputfile.fileclose: boolean;
|
||||
begin
|
||||
abstract;
|
||||
fileclose:=false;
|
||||
if filetime=-1 then
|
||||
filegettime;
|
||||
getfiletime:=filetime;
|
||||
end;
|
||||
|
||||
|
||||
@ -488,6 +466,12 @@ uses
|
||||
end;
|
||||
|
||||
|
||||
procedure tdosinputfile.filegettime;
|
||||
begin
|
||||
filetime:=getnamedfiletime(path^+name^);
|
||||
end;
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
Tinputfilemanager
|
||||
****************************************************************************}
|
||||
@ -702,7 +686,11 @@ uses
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.18 2002-08-11 13:24:11 peter
|
||||
Revision 1.19 2002-10-20 14:49:31 peter
|
||||
* store original source time in ppu so it can be compared instead of
|
||||
comparing with the ppu time
|
||||
|
||||
Revision 1.18 2002/08/11 13:24:11 peter
|
||||
* saving of asmsymbols in ppu supported
|
||||
* asmsymbollist global is removed and moved into a new class
|
||||
tasmlibrarydata that will hold the info of a .a file which
|
||||
|
@ -401,6 +401,7 @@ uses
|
||||
for i:=1 to j-1 do
|
||||
hp:=hp.ref_next;
|
||||
ppufile.putstring(hp.name^);
|
||||
ppufile.putlongint(hp.getfiletime);
|
||||
dec(j);
|
||||
end;
|
||||
ppufile.writeentry(ibsourcefiles);
|
||||
@ -550,17 +551,17 @@ uses
|
||||
incfile_found,
|
||||
main_found,
|
||||
is_main : boolean;
|
||||
ppufiletime,
|
||||
orgfiletime,
|
||||
source_time : longint;
|
||||
hp : tinputfile;
|
||||
begin
|
||||
ppufiletime:=getnamedfiletime(ppufilename^);
|
||||
sources_avail:=true;
|
||||
is_main:=true;
|
||||
main_dir:='';
|
||||
while not ppufile.endofentry do
|
||||
begin
|
||||
hs:=ppufile.getstring;
|
||||
orgfiletime:=ppufile.getlongint;
|
||||
temp_dir:='';
|
||||
if (flags and uf_in_library)<>0 then
|
||||
begin
|
||||
@ -618,9 +619,10 @@ uses
|
||||
else
|
||||
begin
|
||||
temp:=' time '+filetimestring(source_time);
|
||||
if (source_time>ppufiletime) then
|
||||
if (orgfiletime<>-1) and
|
||||
(source_time<>orgfiletime) then
|
||||
begin
|
||||
if {is_main or} ((flags and uf_release)=0) then
|
||||
if ((flags and uf_release)=0) then
|
||||
begin
|
||||
do_compile:=true;
|
||||
recompile_reason:=rr_sourcenewer;
|
||||
@ -1317,7 +1319,11 @@ uses
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.24 2002-10-04 20:13:10 peter
|
||||
Revision 1.25 2002-10-20 14:49:31 peter
|
||||
* store original source time in ppu so it can be compared instead of
|
||||
comparing with the ppu time
|
||||
|
||||
Revision 1.24 2002/10/04 20:13:10 peter
|
||||
* set in_second_load flag before resetting the module, this is
|
||||
required to skip some checkings
|
||||
|
||||
|
@ -24,6 +24,7 @@
|
||||
{$endif}
|
||||
program pppdump;
|
||||
uses
|
||||
dos,
|
||||
ppu;
|
||||
|
||||
const
|
||||
@ -233,6 +234,38 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
Function L0(l:longint):string;
|
||||
{
|
||||
return the string of value l, if l<10 then insert a zero, so
|
||||
the string is always at least 2 chars '01','02',etc
|
||||
}
|
||||
var
|
||||
s : string;
|
||||
begin
|
||||
Str(l,s);
|
||||
if l<10 then
|
||||
s:='0'+s;
|
||||
L0:=s;
|
||||
end;
|
||||
|
||||
|
||||
function filetimestring( t : longint) : string;
|
||||
{
|
||||
convert dos datetime t to a string YY/MM/DD HH:MM:SS
|
||||
}
|
||||
var
|
||||
DT : DateTime;
|
||||
begin
|
||||
if t=-1 then
|
||||
begin
|
||||
FileTimeString:='Not Found';
|
||||
exit;
|
||||
end;
|
||||
unpacktime(t,DT);
|
||||
filetimestring:=L0(dt.Year)+'/'+L0(dt.Month)+'/'+L0(dt.Day)+' '+L0(dt.Hour)+':'+L0(dt.min)+':'+L0(dt.sec);
|
||||
end;
|
||||
|
||||
|
||||
{****************************************************************************
|
||||
Read Routines
|
||||
****************************************************************************}
|
||||
@ -1472,7 +1505,7 @@ begin
|
||||
sourcenumber:=1;
|
||||
while not EndOfEntry do
|
||||
begin
|
||||
Writeln('Source file ',sourcenumber,' : ',getstring);
|
||||
Writeln('Source file ',sourcenumber,' : ',getstring,' ',filetimestring(getlongint));
|
||||
inc(sourcenumber);
|
||||
end;
|
||||
end;
|
||||
@ -1865,7 +1898,11 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.32 2002-10-06 12:25:53 florian
|
||||
Revision 1.33 2002-10-20 14:49:31 peter
|
||||
* store original source time in ppu so it can be compared instead of
|
||||
comparing with the ppu time
|
||||
|
||||
Revision 1.32 2002/10/06 12:25:53 florian
|
||||
+ dump of tdefoptions.df_unique
|
||||
|
||||
Revision 1.31 2002/09/27 21:22:04 carl
|
||||
|
Loading…
Reference in New Issue
Block a user