summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2017-10-19 13:29:05 +0200
committerAndreas Rumpf <rumpf_a@web.de>2017-10-19 13:29:11 +0200
commit186e7d49d3629c7e701e6aa2e2507b6410dd2b1f (patch)
tree2632e1e24f23d55efa2fb34cd9fca3d5305a820d
parent4f633dde64bcc8344e9004c96db845298f64207c (diff)
downloadNim-186e7d49d3629c7e701e6aa2e2507b6410dd2b1f.tar.gz
fixes c2nim regression; do not produce more newlines
-rw-r--r--compiler/renderer.nim39
1 files changed, 21 insertions, 18 deletions
diff --git a/compiler/renderer.nim b/compiler/renderer.nim
index f3b4527df..51aecae2b 100644
--- a/compiler/renderer.nim
+++ b/compiler/renderer.nim
@@ -37,8 +37,8 @@ type
     inGenericParams: bool
     checkAnon: bool        # we're in a context that can contain sfAnon
     inPragma: int
-    pendingNewlineCount: int
     when defined(nimpretty):
+      pendingNewlineCount: int
       origContent: string
 
 
@@ -71,21 +71,21 @@ else:
   template IndentWidth: untyped = lexer.gIndentationWidth
   template longIndentWid: untyped = IndentWidth() * 2
 
-proc minmaxLine(n: PNode): (int, int) =
-  case n.kind
-  of nkTripleStrLit:
-    result = (n.info.line.int, n.info.line.int + countLines(n.strVal))
-  of nkCommentStmt:
-    result = (n.info.line.int, n.info.line.int + countLines(n.comment))
-  else:
-    result = (n.info.line.int, n.info.line.int)
-  for i in 0 ..< safeLen(n):
-    let (currMin, currMax) = minmaxLine(n[i])
-    if currMin < result[0]: result[0] = currMin
-    if currMax > result[1]: result[1] = currMax
+  proc minmaxLine(n: PNode): (int, int) =
+    case n.kind
+    of nkTripleStrLit:
+      result = (n.info.line.int, n.info.line.int + countLines(n.strVal))
+    of nkCommentStmt:
+      result = (n.info.line.int, n.info.line.int + countLines(n.comment))
+    else:
+      result = (n.info.line.int, n.info.line.int)
+    for i in 0 ..< safeLen(n):
+      let (currMin, currMax) = minmaxLine(n[i])
+      if currMin < result[0]: result[0] = currMin
+      if currMax > result[1]: result[1] = currMax
 
-proc lineDiff(a, b: PNode): int =
-  result = minmaxLine(b)[0] - minmaxLine(a)[1]
+  proc lineDiff(a, b: PNode): int =
+    result = minmaxLine(b)[0] - minmaxLine(a)[1]
 
 const
   MaxLineLen = 80
@@ -113,7 +113,10 @@ proc addTok(g: var TSrcGen, kind: TTokType, s: string) =
 
 proc addPendingNL(g: var TSrcGen) =
   if g.pendingNL >= 0:
-    let newlines = repeat("\n", clamp(g.pendingNewlineCount, 1, 3))
+    when defined(nimpretty):
+      let newlines = repeat("\n", clamp(g.pendingNewlineCount, 1, 3))
+    else:
+      const newlines = "\n"
     addTok(g, tkSpaces, newlines & spaces(g.pendingNL))
     g.lineLen = g.pendingNL
     g.pendingNL = - 1
@@ -139,7 +142,7 @@ proc putNL(g: var TSrcGen) =
 proc optNL(g: var TSrcGen, indent: int) =
   g.pendingNL = indent
   g.lineLen = indent
-  g.pendingNewlineCount = 0
+  when defined(nimpretty): g.pendingNewlineCount = 0
 
 proc optNL(g: var TSrcGen) =
   optNL(g, g.indent)
@@ -147,7 +150,7 @@ proc optNL(g: var TSrcGen) =
 proc optNL(g: var TSrcGen; a, b: PNode) =
   g.pendingNL = g.indent
   g.lineLen = g.indent
-  g.pendingNewlineCount = lineDiff(a, b)
+  when defined(nimpretty): g.pendingNewlineCount = lineDiff(a, b)
 
 proc indentNL(g: var TSrcGen) =
   inc(g.indent, IndentWidth)