diff options
author | Erich Eckner <git@eckner.net> | 2017-10-09 09:38:24 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2017-10-09 09:38:24 +0200 |
commit | edbca7ea38a7900009950767f020c4c8e9316e20 (patch) | |
tree | 8a1ce07ffe678db7452a96395c13b9aa1dfbc592 /dateibeziehungen.pas | |
parent | a7842fd8a3ecac1ae449b9362336a4b56977c4b0 (diff) | |
download | Make-edbca7ea38a7900009950767f020c4c8e9316e20.tar.xz |
zielFkt: entferne alle ":" vom Ende, expandiere "*" wie von der Manpage versprochen
Diffstat (limited to 'dateibeziehungen.pas')
-rw-r--r-- | dateibeziehungen.pas | 48 |
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; |