From 008b0f19bb73e4c2ef4b636415a1d703aca05ada Mon Sep 17 00:00:00 2001 From: Araq Date: Sun, 8 Feb 2015 15:47:55 +0100 Subject: [PATCH] 'nimsuggest' compiles again --- lib/impure/rdstdin.nim | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/impure/rdstdin.nim b/lib/impure/rdstdin.nim index 258da22072..b188ead1f6 100644 --- a/lib/impure/rdstdin.nim +++ b/lib/impure/rdstdin.nim @@ -1,7 +1,7 @@ # # # Nim's Runtime Library -# (c) Copyright 2012 Andreas Rumpf +# (c) Copyright 2015 Andreas Rumpf # # See the file "copying.txt", included in this # distribution, for details about the copyright. @@ -13,6 +13,8 @@ ## is used. This suffices because Windows' console already provides the ## wanted functionality. +{.deadCodeElim: on.} + when defined(Windows): proc readLineFromStdin*(prompt: string): TaintedString {. tags: [ReadIOEffect, WriteIOEffect].} = @@ -31,23 +33,23 @@ when defined(Windows): stdout.write(prompt) result = readLine(stdin, line) - proc getch(): cint {.header: "", importc: "_getch".} - proc readPasswordFromStdin*(prompt: string, password: var TaintedString) = ## Reads a `password` from stdin without printing it. `password` must not ## be ``nil``! + proc getch(): cint {.header: "", importc: "_getch".} + password.setLen(0) var c: char echo prompt while true: - c = getch().char - case c - of '\r', chr(0xA): - break - of '\b': - password.setLen(result.len - 1) - else: - password.add(c) + c = getch().char + case c + of '\r', chr(0xA): + break + of '\b': + password.setLen(password.len - 1) + else: + password.add(c) else: import readline, history, termios, unsigned