Deprecate TaintedString (#15423)
Co-authored-by: Timothee Cour <timothee.cour2@gmail.com> Co-authored-by: Dominik Picheta <dominikpicheta@googlemail.com>
This commit is contained in:
parent
7b632f9ccb
commit
78a99587a4
36 changed files with 184 additions and 229 deletions
|
|
@ -22,13 +22,13 @@
|
|||
## echo userResponse
|
||||
|
||||
when defined(Windows):
|
||||
proc readLineFromStdin*(prompt: string): TaintedString {.
|
||||
proc readLineFromStdin*(prompt: string): string {.
|
||||
tags: [ReadIOEffect, WriteIOEffect].} =
|
||||
## Reads a line from stdin.
|
||||
stdout.write(prompt)
|
||||
result = readLine(stdin)
|
||||
|
||||
proc readLineFromStdin*(prompt: string, line: var TaintedString): bool {.
|
||||
proc readLineFromStdin*(prompt: string, line: var string): bool {.
|
||||
tags: [ReadIOEffect, WriteIOEffect].} =
|
||||
## Reads a `line` from stdin. `line` must not be
|
||||
## ``nil``! May throw an IO exception.
|
||||
|
|
@ -40,35 +40,35 @@ when defined(Windows):
|
|||
result = readLine(stdin, line)
|
||||
|
||||
elif defined(genode):
|
||||
proc readLineFromStdin*(prompt: string): TaintedString {.
|
||||
proc readLineFromStdin*(prompt: string): string {.
|
||||
tags: [ReadIOEffect, WriteIOEffect].} =
|
||||
stdin.readLine()
|
||||
|
||||
proc readLineFromStdin*(prompt: string, line: var TaintedString): bool {.
|
||||
proc readLineFromStdin*(prompt: string, line: var string): bool {.
|
||||
tags: [ReadIOEffect, WriteIOEffect].} =
|
||||
stdin.readLine(line)
|
||||
|
||||
else:
|
||||
import linenoise
|
||||
|
||||
proc readLineFromStdin*(prompt: string): TaintedString {.
|
||||
proc readLineFromStdin*(prompt: string): string {.
|
||||
tags: [ReadIOEffect, WriteIOEffect].} =
|
||||
var buffer = linenoise.readLine(prompt)
|
||||
if isNil(buffer):
|
||||
raise newException(IOError, "Linenoise returned nil")
|
||||
result = TaintedString($buffer)
|
||||
if result.string.len > 0:
|
||||
result = $buffer
|
||||
if result.len > 0:
|
||||
historyAdd(buffer)
|
||||
linenoise.free(buffer)
|
||||
|
||||
proc readLineFromStdin*(prompt: string, line: var TaintedString): bool {.
|
||||
proc readLineFromStdin*(prompt: string, line: var string): bool {.
|
||||
tags: [ReadIOEffect, WriteIOEffect].} =
|
||||
var buffer = linenoise.readLine(prompt)
|
||||
if isNil(buffer):
|
||||
line.string.setLen(0)
|
||||
line.setLen(0)
|
||||
return false
|
||||
line = TaintedString($buffer)
|
||||
if line.string.len > 0:
|
||||
line = $buffer
|
||||
if line.len > 0:
|
||||
historyAdd(buffer)
|
||||
linenoise.free(buffer)
|
||||
result = true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue