summaryrefslogtreecommitdiff
path: root/dateibeziehungen.pas
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2017-10-09 09:38:24 +0200
committerErich Eckner <git@eckner.net>2017-10-09 09:38:24 +0200
commitedbca7ea38a7900009950767f020c4c8e9316e20 (patch)
tree8a1ce07ffe678db7452a96395c13b9aa1dfbc592 /dateibeziehungen.pas
parenta7842fd8a3ecac1ae449b9362336a4b56977c4b0 (diff)
downloadMake-edbca7ea38a7900009950767f020c4c8e9316e20.tar.xz
zielFkt: entferne alle ":" vom Ende, expandiere "*" wie von der Manpage versprochen
Diffstat (limited to 'dateibeziehungen.pas')
-rw-r--r--dateibeziehungen.pas48
1 files changed, 33 insertions, 15 deletions
diff --git a/dateibeziehungen.pas b/dateibeziehungen.pas
index e362cc4..98f0735 100644
--- a/dateibeziehungen.pas
+++ b/dateibeziehungen.pas
@@ -421,23 +421,37 @@ var
i,ebene,ende: longint;
s,t,u: string;
wasda: boolean;
+ sR: tSearchRec;
begin
result:=false;
if pos('{',zielFkt)=0 then begin
if not quellersetzung(zielFkt,quellen,quellen.count) then exit;
- zielFkt:=unescape(zielFkt);
- wasda:=false;
- for i:=0 to _dats.count-1 do
- if zielFkt=_dats[i].name then begin
- wasda:=true;
+ if pos('*',zielFkt)=0 then begin
+ zielFkt:=unescape(zielFkt);
+ wasda:=false;
+ for i:=0 to _dats.count-1 do
+ if zielFkt=_dats[i].name then begin
+ wasda:=true;
+ ziele.add(_dats[i]);
+ end;
+ if not wasda then begin
+ result:=true;
+ _dats.add(tDateiMitDatum.create);
+ _dats.last.name:=zielFkt;
+ _dats.last.aktuell:=aNichtVorhanden;
ziele.add(_dats[i]);
end;
- if not wasda then begin
- result:=true;
- _dats.add(tDateiMitDatum.create);
- _dats.last.name:=zielFkt;
- _dats.last.aktuell:=aNichtVorhanden;
- ziele.add(_dats[i]);
+ end
+ else begin
+ i:=findFirst(zielFkt,$3f,sR);
+ while i=0 do begin
+ if not zieleHinzufuegen(ziele,quellen,extractFileDir(zielFkt)+'/'+sR.name) then begin
+ findClose(sR);
+ exit;
+ end;
+ i:=findNext(sR);
+ end;
+ findClose(sR);
end;
end
else begin
@@ -712,7 +726,7 @@ end;
function tMach.liesMachDatei: boolean;
var
f: tMyStringList;
- s: string;
+ s,t: string;
na: tGenerischeAbhaengigkeit;
rek: boolean;
posi: longint;
@@ -753,7 +767,7 @@ begin
// eine zu überwachende Datei
wasIst:=ztSuche;
- if wasIst in [ztZiel,ztBefehl] then
+ if wasIst in [ztBefehl] then
delete(s,length(s),1);
if (wasWar=ztBefehl) and (wasIst<>ztBefehl) then begin
@@ -794,8 +808,12 @@ begin
na.befehleFkt.add(s);
end;
ztZiel:
- while s<>'' do
- na.zieleFkt.add(erstesArgument(s));
+ while s<>'' do begin
+ t:=erstesArgument(s);
+ if rightStr(t,1)=':' then
+ delete(t,length(t),1);
+ na.zieleFkt.add(t);
+ end;
ztQuelle: begin
setlength(na.quellenREs,length(na.quellenREs)+1);
na.quellenREs[length(na.quellenREs)-1]:=s;