View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0026635 | FPC | Utilities | public | 2014-08-26 19:10 | 2014-08-26 23:07 |
Reporter | ChrisF | Assigned To | Marco van de Voort | ||
Priority | normal | Severity | minor | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | Windows | ||||
Product Version | 2.6.4 | ||||
Fixed in Version | 3.0.0 | ||||
Summary | 0026635: InstantFPC 1.3 doesn't work (Windows version only) | ||||
Description | Impossible to run a Pascal program with InstantFPC 1.3 (which is coming with FPC 2.6.4) in Windows. There are 2 main issues due to the 1.3 version: -the .exe extension is not fully used in the code, which gives 2 errors: neither the deletion of the .exe file in the cache directory is done, nor the copy (i.e. "rename") of the .exe file from the __tmpxxxx directory to the cache directory (the last one being the "current visible" bug observed when running InstantFPC 1.3 in Windows), -the __tmpxxxx directory is not deleted (FindClose is missing). Attached, a patch for the FPC trunk version which is fixing these 2 issues. | ||||
Tags | No tags attached. | ||||
Fixed in Revision | 28523 | ||||
FPCOldBugId | |||||
FPCTarget | |||||
Attached Files |
|
|
mypatch.diff (2,336 bytes)
Index: instantfpc/instantfptools.pas =================================================================== --- instantfpc/instantfptools.pas (r�vision 28521) +++ instantfpc/instantfptools.pas (copie de travail) @@ -264,6 +264,7 @@ Halt(1); end; until FindNext(FileInfo)<>0; + Findclose(FileInfo); end; if not RemoveDir(Directory) then begin writeln('unable to delete directory "'+Directory+'"'); @@ -281,7 +282,7 @@ buf : Array[1..4096] of byte; pid: SizeUInt; BuildDir: String; - BuildOutputFilename: String; + OutputFilenameExe, BuildOutputFilename: String; procedure CleanUp; begin @@ -295,14 +296,15 @@ Compiler:=GetCompiler; pid:=GetProcessID; BuildDir:=''; - BuildOutputFilename:=OutputFilename; + OutputFilenameExe:=OutputFilename {$IFDEF HASEXEEXT} + '.exe' {$ENDIF}; + BuildOutputFilename:=OutputFilenameExe; if pid>0 then begin - BuildDir:=ExtractFilePath(OutputFilename)+'__tmp'+IntToStr(pid)+PathDelim; - BuildOutputFilename:=BuildDir+ExtractFileName(OutputFilename); + BuildDir:=ExtractFilePath(OutputFilenameExe)+'__tmp'+IntToStr(pid)+PathDelim; + BuildOutputFilename:=BuildDir+ExtractFileName(OutputFilenameExe); end; //writeln('Compiler=',Compiler,' Params=',CompParams); - if FileExists(OutputFilename) and not DeleteFile(OutputFilename) then begin - writeln('unable to delete ',OutputFilename); + if FileExists(OutputFilenameExe) and not DeleteFile(OutputFilenameExe) then begin + writeln('unable to delete ',OutputFilenameExe); Halt(1); end; if BuildDir<>'' then begin @@ -337,8 +339,8 @@ end; if BuildDir<>'' then begin // move from build directory to cache - if not RenameFile(BuildOutputFilename,OutputFilename) then begin - writeln('unable to move "',BuildOutputFilename,'" to "',OutputFilename,'"'); + if not RenameFile(BuildOutputFilename,OutputFilenameExe) then begin + writeln('unable to move "',BuildOutputFilename,'" to "',OutputFilenameExe,'"'); Halt(1); end; end; @@ -370,7 +372,7 @@ end; if OutputDirectory<>'' then AddParam('-FU'+OutputDirectory,Result); - AddParam('-o'+OutputFilename {$IFDEF HASEXEEXT} + '.exe' {$ENDIF},Result); + AddParam('-o'+OutputFilename,Result); AddParam(SrcFilename,Result); end; |
|
Applied |
Date Modified | Username | Field | Change |
---|---|---|---|
2014-08-26 19:10 | ChrisF | New Issue | |
2014-08-26 19:10 | ChrisF | File Added: mypatch.diff | |
2014-08-26 23:07 | Marco van de Voort | Fixed in Revision | => 28523 |
2014-08-26 23:07 | Marco van de Voort | Note Added: 0076727 | |
2014-08-26 23:07 | Marco van de Voort | Status | new => resolved |
2014-08-26 23:07 | Marco van de Voort | Fixed in Version | => 2.7.1 |
2014-08-26 23:07 | Marco van de Voort | Resolution | open => fixed |
2014-08-26 23:07 | Marco van de Voort | Assigned To | => Marco van de Voort |