summaryrefslogtreecommitdiff
path: root/dateibeziehungen.pas
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2018-01-08 16:32:43 +0100
committerErich Eckner <git@eckner.net>2018-01-08 16:32:43 +0100
commitb222ced32aadf4a46708bba9b87ed910839ce2b8 (patch)
treecd5090d7f45279306f3ad1e5eb3075ce84bea5fd /dateibeziehungen.pas
parent3e4b7b2dd66d7874279fddfa8ba8148d01464bf1 (diff)
downloadMake-b222ced32aadf4a46708bba9b87ed910839ce2b8.tar.xz
dateibeziehungen.pas: tMach.sammleDateien repariert
Diffstat (limited to 'dateibeziehungen.pas')
-rw-r--r--dateibeziehungen.pas17
1 files changed, 14 insertions, 3 deletions
diff --git a/dateibeziehungen.pas b/dateibeziehungen.pas
index f7fb94a..4fb444f 100644
--- a/dateibeziehungen.pas
+++ b/dateibeziehungen.pas
@@ -924,19 +924,30 @@ var
sR: tSearchRec;
err,i: longint;
weglassen: boolean;
+ rest: string;
begin
result:=0;
- err:=findFirst(wo,fareadOnly or faHidden or faSysFile or (byte(rekursiv)*faDirectory),sR);
+ rest:='';
+ if pos('*',wo)>0 then begin // wir müssen globben
+ rest:=wo;
+ erstesArgument(rest,'*',false);
+ erstesArgument(rest,'/',false);
+ if rest<>'' then
+ delete(wo,length(wo)-length(rest),length(rest)+1);
+ end;
+ if (rest='') and rekursiv then // rekursive Suche angefordert
+ rest:='*';
+ err:=findFirst(wo,fareadOnly or faHidden or faSysFile or (byte(rest<>'')*faDirectory),sR);
while err=0 do begin
weglassen:=false;
for i:=0 to length(_ign)-1 do
weglassen:=weglassen or _ign[i].exec(extractFilePath(wo)+sR.name);
if not weglassen then begin
if sR.attr and faDirectory <> 0 then begin
- if rekursiv and
+ if (rest<>'') and
(sR.name<>'.') and
(sR.name<>'..') then
- result:=result+sammleDateien(extractFilePath(wo)+sR.name+'/*',rekursiv);
+ result:=result+sammleDateien(extractFilePath(wo)+sR.name+'/'+rest,rekursiv);
end
else begin
inc(result);