diff --git a/ide/outputfilter.pas b/ide/outputfilter.pas index 3654ec95f3..4c3519919c 100644 --- a/ide/outputfilter.pas +++ b/ide/outputfilter.pas @@ -787,6 +787,10 @@ begin while (i<=length(s)) and (s[i] in ['0'..'9','.']) do inc(i); if (i<=length(s)) and (s[i]=']') then inc(i); while (i<=length(s)) and (s[i] in [' ']) do inc(i); + // the user enabled extreme verbosity + // show all + DoAddFilteredLine(Copy(s, i, length(s))); + exit(true); end; // check for 'Compiling ' diff --git a/ideintf/idemsgintf.pas b/ideintf/idemsgintf.pas index 17da9605eb..217f4eae8e 100644 --- a/ideintf/idemsgintf.pas +++ b/ideintf/idemsgintf.pas @@ -313,22 +313,36 @@ function ParseFPCMessage(const Line: string; out Filename: string; out (456) : in line (123) Fatal: } -var StartPos, EndPos: integer; +var + StartPos, EndPos: integer; begin Result:=false; - if copy(Line,1,7)='Fatal: ' then begin + StartPos:=1; + + // skip time [0.000] + if (Line<>'') and (Line[StartPos]='[') then begin + inc(StartPos); + while (StartPos<=length(Line)) and (Line[StartPos] in ['0'..'9','.']) do + inc(StartPos); + if (StartPos<=length(Line)) and (Line[StartPos]=']') then + inc(StartPos); + while (StartPos<=length(Line)) and (Line[StartPos] in [' ']) do + inc(StartPos); + end; + + if copy(Line,StartPos,7)='Fatal: ' then begin Result:=true; Filename:=''; MsgType:=etFatal; exit; end; - if copy(Line,1,7)='Panic: ' then begin + if copy(Line,StartPos,7)='Panic: ' then begin Result:=true; Filename:=''; MsgType:=etPanic; exit; end; - StartPos:=1; + // find filename EndPos:=StartPos; while (EndPos<=length(Line)) and (Line[EndPos]<>'(') do inc(EndPos);