Correctly handle compiler output now it compiles several files at the same time.

[DEVELOPMENT ENVIRONMENT]
* BUG: Correctly handle compiler output now it compiles several files at the same time.
This commit is contained in:
gambas 2021-05-28 01:59:07 +02:00
parent 627afc0c90
commit e22ccad29a
2 changed files with 24 additions and 22 deletions

View file

@ -940,7 +940,7 @@ Public Sub OnProjectChange()
$aTask = Null
UpdateTask
SetCompilation
SetCompilation()
CloseSearch
trmVersionControl.Clear
trmTest.Clear
@ -960,22 +960,21 @@ Public Sub ShowError(sMsg As String)
End
Public Sub SetCompilation(Optional sOutput As String)
Public Sub SetCompilation(Optional aOutput As String[])
Dim aOutput As String[]
Dim sLine As String
Dim aLine As String[]
Dim I As Integer
Dim aPos As String[]
gvwCompilation.Clear
If Not sOutput Then
If Not aOutput Or If aOutput.Count = 0 Then
HideTab(TAB_COMPILATION)
'GotoConsole
Return
Endif
aOutput = Split(Trim(sOutput), "\n").Sort(gb.Natural)
aOutput.Sort(gb.Natural)
gvwCompilation.Rows.Count = aOutput.Count
For Each sLine In aOutput

View file

@ -358,7 +358,7 @@ Public Sub Main()
'Print Application.Theme
OUTPUT_FILE = Temp$()
OUTPUT_FILE = Temp$("output")
EXAMPLES_DIR = System.Path &/ "share/gambas" & Split(System.Version, ".")[0] & "/examples"
Application.ShowTooltips = Settings["/ShowTooltip", True]
@ -2574,7 +2574,6 @@ End
Public Function Compile(Optional bAll As Boolean, Optional bNoDebug As Boolean, Optional bNoMessage As Boolean, Optional bMakeExecutable As Boolean) As Boolean
Dim sExec As String
Dim sOutput As String
Dim sRes As String
Dim sDir As String
Dim sPath As String
@ -2583,6 +2582,10 @@ Public Function Compile(Optional bAll As Boolean, Optional bNoDebug As Boolean,
Dim sBefore, sAfter As String
Dim bGotError As Boolean
Dim fTimer As Float
Dim aOutput As String[]
Dim I As Integer
Dim sLine As String
Dim sError As String
If Project.ReadOnly Then Return
If Project.Running Then Return 'TRUE
@ -2631,26 +2634,26 @@ Public Function Compile(Optional bAll As Boolean, Optional bNoDebug As Boolean,
bGotError = Process.LastValue
sOutput = Trim(File.Load(OUTPUT_FILE))
iPos = RInStr(sOutput, "\n")
If iPos Then
sRes = Mid$(sOutput, iPos + 1)
sOutput = Left(sOutput, iPos - 1)
Else
If sOutput <> "OK" Then
sRes = sOutput
aOutput = Split(File.Load(OUTPUT_FILE), "\n", "", True)
I = 0
While I < aOutput.Count
sLine = aOutput[I]
If sLine Like "*: warning: *" Then
Inc I
Continue
Endif
sOutput = ""
Endif
FDebugInfo.SetCompilation(sOutput)
If sLine Like "*: error: *" Then sError = sLine
aOutput.Remove(I)
Wend
FDebugInfo.SetCompilation(aOutput)
'FDebugInfo.GotoFirstWarning()
If bGotError And If sRes Then
If bGotError And If sError Then
UnlockIt()
If Not bNoMessage Then CompileError(sRes)
If Not bNoMessage Then CompileError(sError)
Return True
Else