From 5a4076b1cbb634e93c07a38e77dd346babb9e199 Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Thu, 13 Nov 2014 16:33:01 +0100 Subject: [PATCH] unleashed a bug in TCEProject, run, parameters not copied from TCEPorjectRunOptions --- lazproj/coedit.lpi | 2 +- src/ce_dmdwrap.pas | 12 +++++++----- src/ce_project.pas | 28 +++++++++++++++++++--------- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/lazproj/coedit.lpi b/lazproj/coedit.lpi index e5745d9a..b7141f4f 100644 --- a/lazproj/coedit.lpi +++ b/lazproj/coedit.lpi @@ -307,7 +307,7 @@ - + diff --git a/src/ce_dmdwrap.pas b/src/ce_dmdwrap.pas index 5c3fb6e2..d0515a98 100644 --- a/src/ce_dmdwrap.pas +++ b/src/ce_dmdwrap.pas @@ -258,7 +258,7 @@ type procedure setExecutable(const aValue: string); procedure setWorkDir(const aValue: string); procedure setOptions(const aValue: TProcessOptions); - procedure setParameters(const aValue: TStringList); + procedure setParameters(aValue: TStringList); procedure setShowWin(const aValue: TShowWindowOptions); protected property executable: string read fExecutable write setExecutable; @@ -271,7 +271,7 @@ type destructor destroy; override; procedure assign(source: TPersistent); override; procedure getOpts(const aList: TStrings); override; - procedure setProcess(const aProcess: TProcess); + procedure setProcess(aProcess: TProcess); end; (***************************************************************************** @@ -986,7 +986,7 @@ begin if source is TCustomProcOptions then begin src := TCustomProcOptions(source); - fParameters.Assign(src.fParameters); + fParameters := src.fParameters; fOptions := src.fOptions; fExecutable := src.fExecutable; fShowWin := src.fShowWin; @@ -998,7 +998,9 @@ procedure TCustomProcOptions.getOpts(const aList: TStrings); begin end; -procedure TCustomProcOptions.setProcess(const aProcess: TProcess); +procedure TCustomProcOptions.setProcess(aProcess: TProcess); +var + i: Integer; begin aProcess.Parameters := fParameters; aProcess.Executable := fExecutable; @@ -1029,7 +1031,7 @@ begin doChanged; end; -procedure TCustomProcOptions.setParameters(const aValue: TStringList); +procedure TCustomProcOptions.setParameters(aValue: TStringList); begin fParameters.Assign(aValue); doChanged; diff --git a/src/ce_project.pas b/src/ce_project.pas index 79f874b2..fcd0ed46 100644 --- a/src/ce_project.pas +++ b/src/ce_project.pas @@ -559,16 +559,26 @@ begin killProcess(fRunner); // fRunner := TAsyncProcess.Create(nil); // fRunner can use the input process widget. + + // TODO-cbugfix: parameters are not copied from src to target. currentConfiguration.runOptions.setProcess(fRunner); - prm := ''; - i := 1; - repeat - prm := ExtractDelimited(i, runArgs, [' ']); - prm := CEMainForm.expandSymbolicString(prm); - if prm <> '``' then - fRunner.Parameters.AddText(prm); - Inc(i); - until prm = '``'; + + //fRunner.Parameters.SaveToFile('C:\dst.txt'); + //currentConfiguration.runOptions.parameters.SaveToFile('C:\src.txt'); + + + if runArgs <> '' then + begin + prm := ''; + i := 1; + repeat + prm := ExtractDelimited(i, runArgs, [' ']); + prm := CEMainForm.expandSymbolicString(prm); + if prm <> '``' then + fRunner.Parameters.AddText(prm); + Inc(i); + until prm = '``'; + end; // if not fileExists(outputFilename) then begin