From edbca7ea38a7900009950767f020c4c8e9316e20 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 9 Oct 2017 09:38:24 +0200 Subject: zielFkt: entferne alle ":" vom Ende, expandiere "*" wie von der Manpage versprochen --- Make.lpi | 7 +++- Make.lps | 100 +++++++++++++++++++++++++-------------------------- dateibeziehungen.pas | 48 +++++++++++++++++-------- 3 files changed, 89 insertions(+), 66 deletions(-) diff --git a/Make.lpi b/Make.lpi index 809ca7b..e6f21f9 100644 --- a/Make.lpi +++ b/Make.lpi @@ -1,7 +1,7 @@ - + @@ -32,6 +32,11 @@ + + + + + diff --git a/Make.lps b/Make.lps index 746e678..cc450a9 100644 --- a/Make.lps +++ b/Make.lps @@ -1,14 +1,14 @@ - + - - + + @@ -21,21 +21,20 @@ - + - - - - - + + + + @@ -43,9 +42,9 @@ - - - + + + @@ -63,10 +62,11 @@ - - - + + + + @@ -134,122 +134,122 @@ - + - + - + - + - + + - + - + - - + + - + - - + + - + - + - + - + - - + + - - + + - - + + - - + - + - + - + - + - + - + - + - + - - + + - + 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; -- cgit v1.2.3-54-g00ecf