mirror of https://gitlab.com/basile.b/dexed.git
fix #146 - linenum not detected in message produced by ld.gold
This commit is contained in:
parent
f1f209a486
commit
8b6f7e0f63
|
|
@ -161,7 +161,7 @@ type
|
|||
function optionedOptionsModified: boolean;
|
||||
//
|
||||
function openFileFromDmdMessage(const aMessage: string): boolean;
|
||||
function getLineFromMessage(const aMessage: string): TPoint;
|
||||
class function getLineFromMessage(const aMessage: string): TPoint;
|
||||
function guessMessageKind(const aMessg: string): TAppMessageKind;
|
||||
//
|
||||
function singleServiceName: string;
|
||||
|
|
@ -1239,7 +1239,7 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
function TMessagesWidget.getLineFromMessage(const aMessage: string): TPoint;
|
||||
class function TMessagesWidget.getLineFromMessage(const aMessage: string): TPoint;
|
||||
var
|
||||
rng: TStringRange = (ptr:nil; pos:0; len: 0);
|
||||
lne: string;
|
||||
|
|
@ -1258,9 +1258,10 @@ begin
|
|||
gnuStyle := (rng.front = ':') and (not rng.empty) and (rng.popFront^.front in ['1'..'9']);
|
||||
if gnuStyle then
|
||||
begin
|
||||
lne := rng.takeUntil([':', ' ']).yield;
|
||||
lne := rng.takeWhile(['1'..'9']).yield;
|
||||
rng.popWhile(' ');
|
||||
if rng.front = ':' then
|
||||
col := rng.popWhile(':')^.takeUntil(' ').yield;
|
||||
col := rng.popFront()^.takeUntil([' ', ':']).yield;
|
||||
end else
|
||||
begin
|
||||
rng.popWhile(['(', ':']);
|
||||
|
|
@ -1350,4 +1351,12 @@ begin
|
|||
end;
|
||||
{$ENDREGION}
|
||||
|
||||
{$IFDEF DEBUG}
|
||||
begin
|
||||
assert(TMessagesWidget.getLineFromMessage('home/xxx/temp/temp.sx:8 : erreur : référence à « BAD » non définie') = Point(-1,8));
|
||||
assert(TMessagesWidget.getLineFromMessage('home/xxx/temp/temp.sx:8: erreur : référence à « BAD » non définie') = Point(-1,8));
|
||||
assert(TMessagesWidget.getLineFromMessage('home/xxx/temp/temp.sx:8:12: erreur : référence à « BAD » non définie') = Point(12,8));
|
||||
assert(TMessagesWidget.getLineFromMessage('home/xxx/temp/temp.sx(8,12): erreur : référence à « BAD » non définie') = Point(12,8));
|
||||
assert(TMessagesWidget.getLineFromMessage('home/xxx/temp/temp.sx(8): erreur : référence à « BAD » non définie') = Point(-1,8));
|
||||
{$ENDIF}
|
||||
end.
|
||||
|
|
|
|||
Loading…
Reference in New Issue