From 06b1992bcf8e46910064f2192209ed1acc17be39 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Thu, 23 Nov 2017 11:37:37 +0100 Subject: tools.pas: assume unknown commands have their input/output on the command line --- tools.pas | 48 ++++++++++++++++++++++++++++-------------------- 1 file 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 -- cgit v1.2.3-54-g00ecf