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:
parent
627afc0c90
commit
e22ccad29a
2 changed files with 24 additions and 22 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue