mirror of https://gitlab.com/basile.b/dexed.git
fix, static explorer broken for runnable module after first execution
This commit is contained in:
parent
8d6cb64fb2
commit
4caebcfa57
|
@ -1298,7 +1298,7 @@ procedure TCEMainForm.compileAndRunFile(const edIndex: NativeInt; const runArgs:
|
|||
var
|
||||
editor: TCESynMemo;
|
||||
dmdproc: TProcess;
|
||||
fname: string;
|
||||
fname, fBasename: string;
|
||||
begin
|
||||
|
||||
FreeRunnableProc;
|
||||
|
@ -1316,9 +1316,14 @@ begin
|
|||
subjLmFromString(fLogMessager, 'compiling ' + shortenPath(editor.fileName, 25),
|
||||
editor, amcEdit, amkInf);
|
||||
|
||||
if fileExists(editor.fileName) then editor.save
|
||||
else editor.saveToFile(editor.tempFilename);
|
||||
fname := stripFileExt(editor.fileName);
|
||||
if fileExists(editor.fileName) then begin
|
||||
editor.save;
|
||||
fname := editor.fileName;
|
||||
end else begin
|
||||
editor.saveTempFile;
|
||||
fname := editor.tempFilename;
|
||||
end;
|
||||
fBasename := stripFileExt(fname);
|
||||
|
||||
if fRunnableSw = '' then
|
||||
fRunnableSw := '-vcolumns'#13'-w'#13'-wi';
|
||||
|
@ -1327,9 +1332,9 @@ begin
|
|||
{$ENDIF}
|
||||
dmdproc.Options := [poStdErrToOutput, poUsePipes];
|
||||
dmdproc.Executable := DCompiler;
|
||||
dmdproc.Parameters.Add(editor.fileName);
|
||||
dmdproc.Parameters.Add(fname);
|
||||
dmdproc.Parameters.AddText(fRunnableSw);
|
||||
dmdproc.Parameters.Add('-of' + fname + exeExt);
|
||||
dmdproc.Parameters.Add('-of' + fBasename + exeExt);
|
||||
LibMan.getLibFiles(nil, dmdproc.Parameters);
|
||||
LibMan.getLibSources(nil, dmdproc.Parameters);
|
||||
dmdproc.Execute;
|
||||
|
@ -1343,10 +1348,10 @@ begin
|
|||
fRunProc.CurrentDirectory := extractFilePath(fRunProc.Executable);
|
||||
if runArgs <> '' then
|
||||
fRunProc.Parameters.DelimitedText := symbolExpander.get(runArgs);
|
||||
fRunProc.Executable := fname + exeExt;
|
||||
fRunProc.Executable := fBasename + exeExt;
|
||||
fPrInpWidg.process := fRunProc;
|
||||
fRunProc.Execute;
|
||||
sysutils.DeleteFile(fname + objExt);
|
||||
sysutils.DeleteFile(fBasename + objExt);
|
||||
end
|
||||
else begin
|
||||
subjLmFromString(fLogMessager, shortenPath(editor.fileName,25)
|
||||
|
|
|
@ -391,7 +391,6 @@ end;
|
|||
procedure TCEStaticExplorerWidget.produceJsonInfo;
|
||||
var
|
||||
srcFname, itm: string;
|
||||
tempSrc: TStringList;
|
||||
i: Integer;
|
||||
begin
|
||||
if fDoc = nil then exit;
|
||||
|
@ -409,14 +408,8 @@ begin
|
|||
fJsonFname := fDoc.tempFilename + '.json';
|
||||
srcFname := fDoc.fileName;
|
||||
if not fileExists(srcFname) then begin
|
||||
tempSrc := TStringList.Create;
|
||||
try
|
||||
srcFname := fDoc.tempFilename;
|
||||
tempSrc.Assign(fDoc.Lines);
|
||||
tempSrc.SaveToFile(srcFname);
|
||||
finally
|
||||
tempSrc.Free;
|
||||
end;
|
||||
srcFname := fDoc.tempFilename;
|
||||
fDoc.saveTempFile;
|
||||
end;
|
||||
//else fDoc.save; refreshonChange/autorefresh don't work until existing doc is saved
|
||||
fDmdProc.Parameters.Add(srcFname);
|
||||
|
|
|
@ -98,6 +98,7 @@ type
|
|||
procedure loadFromFile(const aFilename: string);
|
||||
procedure saveToFile(const aFilename: string);
|
||||
procedure save;
|
||||
procedure saveTempFile;
|
||||
//
|
||||
property Identifier: string read fIdentifier;
|
||||
property fileName: string read fFilename;
|
||||
|
@ -430,7 +431,6 @@ begin
|
|||
end;
|
||||
|
||||
procedure TCESynMemo.save;
|
||||
|
||||
begin
|
||||
Lines.SaveToFile(fFilename);
|
||||
FileAge(fFilename, fFileDate);
|
||||
|
@ -439,6 +439,12 @@ begin
|
|||
subjDocChanged(TCEMultiDocSubject(fMultiDocSubject), self);
|
||||
end;
|
||||
|
||||
procedure TCESynMemo.saveTempFile;
|
||||
begin
|
||||
Lines.SaveToFile(fTempFileName);
|
||||
fModified := false;
|
||||
end;
|
||||
|
||||
procedure TCESynMemo.saveCache;
|
||||
var
|
||||
cache: TCESynMemoCache;
|
||||
|
|
Loading…
Reference in New Issue