diff options
author | alaviss <alaviss@users.noreply.github.com> | 2019-06-26 07:40:11 +0700 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-06-26 02:40:10 +0200 |
commit | 2f1a1b710621e9027babdd36561f8c9958930481 (patch) | |
tree | 269421b3a646e41db0ca3e7cb9f65d1551b383a7 /compiler/msgs.nim | |
parent | 0d50b0c8a766a80c357edfcdda563f239caaf9e6 (diff) | |
download | Nim-2f1a1b710621e9027babdd36561f8c9958930481.tar.gz |
compiler/[msgs, options]: confine --listFullPaths to compiler messages (#11583)
* compiler/[msgs, options]: make toFilename independent of listFullPaths toFilename is used mainly in codegen, as such it should not follow --listFullPaths * compiler/msgs: use toMsgFilename for toFileLineCol This proc is mainly used for compiler messages, so it should follow --listFullPaths * compiler/msgs: remove toFileLine unused proc * compiler/msgs: cleanup toMsgFilename Also improved path choosing logic, /home should now be preferred over ../home on *nix
Diffstat (limited to 'compiler/msgs.nim')
-rw-r--r-- | compiler/msgs.nim | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/compiler/msgs.nim b/compiler/msgs.nim index 2162ee559..3a0b25781 100644 --- a/compiler/msgs.nim +++ b/compiler/msgs.nim @@ -159,10 +159,7 @@ template toFilename*(conf: ConfigRef; fileIdx: FileIndex): string = if fileIdx.int32 < 0 or conf == nil: "???" else: - if optListFullPaths in conf.globalOptions: - conf.m.fileInfos[fileIdx.int32].fullPath.string - else: - conf.m.fileInfos[fileIdx.int32].projPath.string + conf.m.fileInfos[fileIdx.int32].projPath.string proc toFullPath*(conf: ConfigRef; fileIdx: FileIndex): string = if fileIdx.int32 < 0 or conf == nil: result = "???" @@ -200,14 +197,16 @@ template toFullPathConsiderDirty*(conf: ConfigRef; info: TLineInfo): string = proc toMsgFilename*(conf: ConfigRef; info: TLineInfo): string = if info.fileIndex.int32 < 0: - result = "???" - return - let absPath = conf.m.fileInfos[info.fileIndex.int32].fullPath.string - if optListFullPaths in conf.globalOptions: - result = absPath - else: - let relPath = conf.m.fileInfos[info.fileIndex.int32].projPath.string - result = if relPath.count("..") > 2: absPath else: relPath + return "???" + let + absPath = conf.m.fileInfos[info.fileIndex.int32].fullPath.string + relPath = conf.m.fileInfos[info.fileIndex.int32].projPath.string + result = if (optListFullPaths in conf.globalOptions) or + (relPath.len > absPath.len) or + (relPath.count("..") > 2): + absPath + else: + relPath proc toLinenumber*(info: TLineInfo): int {.inline.} = result = int info.line @@ -215,12 +214,9 @@ proc toLinenumber*(info: TLineInfo): int {.inline.} = proc toColumn*(info: TLineInfo): int {.inline.} = result = info.col -proc toFileLine*(conf: ConfigRef; info: TLineInfo): string {.inline.} = - result = toFilename(conf, info) & ":" & $info.line - proc toFileLineCol*(conf: ConfigRef; info: TLineInfo): string {.inline.} = # consider calling `helpers.lineInfoToString` instead - result = toFilename(conf, info) & "(" & $info.line & ", " & + result = toMsgFilename(conf, info) & "(" & $info.line & ", " & $(info.col + ColOffset) & ")" proc `$`*(conf: ConfigRef; info: TLineInfo): string = toFileLineCol(conf, info) |