summaryrefslogtreecommitdiff
path: root/dateibeziehungen.pas
diff options
context:
space:
mode:
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);