further steps to get rid of deprecated endOfFile and readLine
This commit is contained in:
parent
a489161b16
commit
e261a88d07
11 changed files with 35 additions and 21 deletions
|
|
@ -144,10 +144,12 @@ proc executeCgi(client: TSocket, path, query: string, meth: TRequestMethod) =
|
|||
dealloc(buf)
|
||||
|
||||
var outp = process.outputStream
|
||||
while running(process) or not atEnd(outp):
|
||||
var line = outp.readLine()
|
||||
send(client, line.string)
|
||||
send(client, wwwNL)
|
||||
var line = newStringOfCap(120).TaintedString
|
||||
while true:
|
||||
if outp.readLine(line):
|
||||
send(client, line.string)
|
||||
send(client, wwwNL)
|
||||
elif not running(process): break
|
||||
|
||||
# --------------- Server Setup -----------------------------------------------
|
||||
|
||||
|
|
|
|||
|
|
@ -414,7 +414,7 @@ proc isRootDir*(path: string): bool {.
|
|||
var p = parentDir(path)
|
||||
result = p == path or p.len == 0
|
||||
|
||||
iterator parentDirs*(path: string, fromRoot = false, inclusive = true): string =
|
||||
iterator parentDirs*(path: string, fromRoot=false, inclusive=true): string =
|
||||
## Walks over all parent directories of a given `path`
|
||||
##
|
||||
## If `fromRoot` is set, the traversal will start from the file system root
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ proc execProcesses*(cmds: openArray[string],
|
|||
## that execute in parallel. The highest return value of all processes
|
||||
## is returned.
|
||||
when defined(posix):
|
||||
# poParentStreams causes problems on Posix, so we disable it simply:
|
||||
# poParentStreams causes problems on Posix, so we simply disable it:
|
||||
var options = options - {poParentStreams}
|
||||
|
||||
assert n > 0
|
||||
|
|
@ -218,12 +218,16 @@ when not defined(useNimRtl):
|
|||
var p = startCmd(command, options=options)
|
||||
var outp = outputStream(p)
|
||||
result = TaintedString""
|
||||
while running(p) or not atEnd(outp):
|
||||
result.string.add(outp.readLine().string)
|
||||
result.string.add("\n")
|
||||
var line = newStringOfCap(120).TaintedString
|
||||
while true:
|
||||
if outp.readLine(line):
|
||||
result.string.add(line.string)
|
||||
result.string.add("\n")
|
||||
elif not running(p): break
|
||||
close(outp)
|
||||
close(p)
|
||||
|
||||
|
||||
when defined(Windows) and not defined(useNimRtl):
|
||||
# We need to implement a handle stream for Windows:
|
||||
type
|
||||
|
|
@ -718,11 +722,14 @@ proc execCmdEx*(command: string, options: set[TProcessOption] = {
|
|||
var p = startCmd(command, options)
|
||||
var outp = outputStream(p)
|
||||
result = (TaintedString"", -1)
|
||||
var line = newStringOfCap(120).TaintedString
|
||||
while true:
|
||||
if result[1] == -1: result[1] = peekExitCode(p)
|
||||
if result[1] != -1 and atEnd(outp): break
|
||||
result[0].string.add(outp.readLine().string)
|
||||
result[0].string.add("\n")
|
||||
if outp.readLine(line):
|
||||
result[0].string.add(line.string)
|
||||
result[0].string.add("\n")
|
||||
else:
|
||||
result[1] = peekExitCode(p)
|
||||
if result[1] != -1: break
|
||||
close(outp)
|
||||
close(p)
|
||||
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ proc read[T](s: PStream, result: var T) =
|
|||
proc readChar*(s: PStream): char =
|
||||
## reads a char from the stream `s`. Raises `EIO` if an error occured.
|
||||
## Returns '\0' as an EOF marker.
|
||||
discard readData(s, addr(result), sizeof(result))
|
||||
if readData(s, addr(result), sizeof(result)) != 1: result = '\0'
|
||||
|
||||
proc readBool*(s: PStream): bool =
|
||||
## reads a bool from the stream `s`. Raises `EIO` if an error occured.
|
||||
|
|
@ -238,7 +238,9 @@ type
|
|||
|
||||
proc fsClose(s: PStream) = close(PFileStream(s).f)
|
||||
proc fsFlush(s: PStream) = flushFile(PFileStream(s).f)
|
||||
{.push warning[Deprecated]: off.}
|
||||
proc fsAtEnd(s: PStream): bool = return EndOfFile(PFileStream(s).f)
|
||||
{.pop.}
|
||||
proc fsSetPosition(s: PStream, pos: int) = setFilePos(PFileStream(s).f, pos)
|
||||
proc fsGetPosition(s: PStream): int = return int(getFilePos(PFileStream(s).f))
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ proc loadUnidecodeTable*(datafile = "unidecode.dat") =
|
|||
newSeq(translationTable, 0xffff)
|
||||
var i = 0
|
||||
for line in lines(datafile):
|
||||
translationTable[i] = line
|
||||
translationTable[i] = line.string
|
||||
inc(i)
|
||||
|
||||
proc unidecode*(s: string): string =
|
||||
|
|
|
|||
|
|
@ -797,6 +797,8 @@ when taintMode:
|
|||
## turned on. Use the ``-d:taintMode``
|
||||
## command line switch to turn the taint
|
||||
## mode on.
|
||||
|
||||
proc len*(s: TaintedString): int {.borrow.}
|
||||
else:
|
||||
type TaintedString* = string
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue