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 optionedOptionsModified: boolean;
|
||||||
//
|
//
|
||||||
function openFileFromDmdMessage(const aMessage: string): 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 guessMessageKind(const aMessg: string): TAppMessageKind;
|
||||||
//
|
//
|
||||||
function singleServiceName: string;
|
function singleServiceName: string;
|
||||||
|
|
@ -1239,7 +1239,7 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TMessagesWidget.getLineFromMessage(const aMessage: string): TPoint;
|
class function TMessagesWidget.getLineFromMessage(const aMessage: string): TPoint;
|
||||||
var
|
var
|
||||||
rng: TStringRange = (ptr:nil; pos:0; len: 0);
|
rng: TStringRange = (ptr:nil; pos:0; len: 0);
|
||||||
lne: string;
|
lne: string;
|
||||||
|
|
@ -1258,9 +1258,10 @@ begin
|
||||||
gnuStyle := (rng.front = ':') and (not rng.empty) and (rng.popFront^.front in ['1'..'9']);
|
gnuStyle := (rng.front = ':') and (not rng.empty) and (rng.popFront^.front in ['1'..'9']);
|
||||||
if gnuStyle then
|
if gnuStyle then
|
||||||
begin
|
begin
|
||||||
lne := rng.takeUntil([':', ' ']).yield;
|
lne := rng.takeWhile(['1'..'9']).yield;
|
||||||
|
rng.popWhile(' ');
|
||||||
if rng.front = ':' then
|
if rng.front = ':' then
|
||||||
col := rng.popWhile(':')^.takeUntil(' ').yield;
|
col := rng.popFront()^.takeUntil([' ', ':']).yield;
|
||||||
end else
|
end else
|
||||||
begin
|
begin
|
||||||
rng.popWhile(['(', ':']);
|
rng.popWhile(['(', ':']);
|
||||||
|
|
@ -1350,4 +1351,12 @@ begin
|
||||||
end;
|
end;
|
||||||
{$ENDREGION}
|
{$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.
|
end.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue