summaryrefslogtreecommitdiff
path: root/mystringlistunit.pas
diff options
context:
space:
mode:
Diffstat (limited to 'mystringlistunit.pas')
-rw-r--r--mystringlistunit.pas70
1 files changed, 35 insertions, 35 deletions
diff --git a/mystringlistunit.pas b/mystringlistunit.pas
index 72a86b0..34e72e8 100644
--- a/mystringlistunit.pas
+++ b/mystringlistunit.pas
@@ -272,6 +272,41 @@ begin
end;
inc(i);
end;
+ if wasGefunden then continue;
+
+ i:=count-1;
+ while i>=0 do begin // Substitutionen auswerten
+ s:=self[i];
+ if startetMit('!setze',s) then begin
+ wasGefunden:=true;
+ t:=erstesArgument(s,':');
+ if pos('$',t)<>1 then begin
+ prot.schreibe('ungültiger Variablenname '''+t+''' für Ersetzung!',true);
+ exit;
+ end;
+ delete(i);
+ for j:=i to count-1 do begin
+ u:=self[j];
+ k:=length(u);
+ while (pos(t,u)>0) and (k>0) do begin // ... nach Ersetzung ...
+ u:=copy(u,1,pos(t,u)-1)+s+copy(u,pos(t,u)+length(t),length(u));
+ dec(k);
+ end;
+ self[j]:=u;
+ end;
+ end
+ else
+ dec(i);
+ end;
+ if wasGefunden then continue;
+
+ for i:=0 to count-1 do begin // Shellvariablen auswerten
+ s:=shellSubst(self[i]);
+ if s<>self[i] then begin
+ wasGefunden:=true;
+ self[i]:=s;
+ end;
+ end;
i:=0;
while i<count do begin // Schleifen ausrollen
@@ -367,41 +402,6 @@ begin
end;
inc(i);
end;
- if wasGefunden then continue;
-
- i:=count-1;
- while i>=0 do begin // Substitutionen auswerten
- s:=self[i];
- if startetMit('!setze',s) then begin
- wasGefunden:=true;
- t:=erstesArgument(s,':');
- if pos('$',t)<>1 then begin
- prot.schreibe('ungültiger Variablenname '''+t+''' für Ersetzung!',true);
- exit;
- end;
- delete(i);
- for j:=i to count-1 do begin
- u:=self[j];
- k:=length(u);
- while (pos(t,u)>0) and (k>0) do begin // ... nach Ersetzung ...
- u:=copy(u,1,pos(t,u)-1)+s+copy(u,pos(t,u)+length(t),length(u));
- dec(k);
- end;
- self[j]:=u;
- end;
- end
- else
- dec(i);
- end;
- if wasGefunden then continue;
-
- for i:=0 to count-1 do begin // Shellvariablen auswerten
- s:=shellSubst(self[i]);
- if s<>self[i] then begin
- wasGefunden:=true;
- self[i]:=s;
- end;
- end;
until not wasGefunden;