summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools.pas48
1 files changed, 28 insertions, 20 deletions
diff --git a/tools.pas b/tools.pas
index 11f14ae..f07b4c4 100644
--- a/tools.pas
+++ b/tools.pas
@@ -248,39 +248,47 @@ begin
fehler('Befehl '''+oBef+''' hat Lokalitätstest nicht bestanden! ('+lokTest.expression+')');
exit;
end
+ // folgende Executables sind unkritisch, da der Name des Outputs i.d.R. direkt
+ // vom Namen des Inputs abhängt bzw. per Kommandozeilenparameter übergeben
+ // wird (und nicht in einer Datei steht):
else if (exe='convert') or
(exe='epstopdf') or
(exe='latexmk') or
(exe='mpost') or
(exe='pdflatex') then
- exit;
-
- // folgende Executables sind unkritisch, da der Name des Outputs i.d.R. direkt
- // vom Namen des Inputs abhängt bzw. per Kommandozeilenparameter übergeben
- // wird (und nicht in einer Datei steht):
- //
- // 'convert'
- // 'epstopdf'
- // 'latexmk'
- // 'mpost'
- // 'pdflatex'
+ exit
+ else begin
+ regex:='';
+ re:=tRegExpr.create;
+ re.expression:='\S+';
+ matchNum:=0;
+ end;
dateien:=extrahiereAlleDateien(args+' '+bef);
if dateien.count = 0 then
gibAus('Warnung: Hier ist ein Befehl ohne offensichtliche Input-Dateien! ('''+oBef+''')!',3);
- sl:=tMyStringlist.create;
relZeil:=tMyStringlist.create;
- for i:=0 to dateien.count-1 do begin
- sl.loadFromFile(dateien[i]);
- if exe='epost' then begin
- sl.grep(regex+'|^[!?]');
- sl.unfoldMacros;
+ if regex='' then begin
+ // dateien sind bereits die zu betrachtenden Dateien
+ for i:=0 to dateien.count-1 do begin
+ if re.exec(dateien[i]) then
+ relZeil.add(dateien[i]);
+ end;
+ end
+ else begin
+ sl:=tMyStringlist.create;
+ for i:=0 to dateien.count-1 do begin
+ sl.loadFromFile(dateien[i]);
+ if exe='epost' then begin
+ sl.grep(regex+'|^[!?]');
+ sl.unfoldMacros;
+ end;
+ sl.grep(regex);
+ relZeil.addStrings(sl);
end;
- sl.grep(regex);
- relZeil.addStrings(sl);
+ sl.free;
end;
- sl.free;
dateien.free;
for i:=0 to relZeil.count-1 do begin