From 313282d8056743c0254ec034eff61140c5d3bed4 Mon Sep 17 00:00:00 2001 From: Araq Date: Fri, 14 Sep 2018 15:55:29 +0200 Subject: [PATCH] better file handling for .line directives --- compiler/pragmas.nim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/pragmas.nim b/compiler/pragmas.nim index ad287178e4..146c35fd99 100644 --- a/compiler/pragmas.nim +++ b/compiler/pragmas.nim @@ -585,7 +585,9 @@ proc pragmaLine(c: PContext, n: PNode) = else: # XXX check if paths are properly resolved this way: let dir = toFullPath(c.config, n.info).splitFile.dir - n.info.fileIndex = fileInfoIdx(c.config, AbsoluteDir(dir) / RelativeFile(x.strVal)) + let rel = if isAbsolute(x.strVal): relativeTo(AbsoluteFile(x.strVal), c.config.projectPath) + else: RelativeFile(x.strVal) + n.info.fileIndex = fileInfoIdx(c.config, AbsoluteDir(dir) / rel) n.info.line = uint16(y.intVal) else: localError(c.config, n.info, "tuple expected")