make tio test green again

This commit is contained in:
Araq
2018-08-22 13:15:19 +02:00
parent 64517445ea
commit 7896903fd0

View File

@@ -143,13 +143,17 @@ proc getFileHandle*(f: File): FileHandle = c_fileno(f)
proc readLine(f: File, line: var TaintedString): bool =
var pos = 0
var sp: cint = 80
line.string.setLen(sp)
# Use the currently reserved space for a first try
var sp = line.string.len
if sp == 0:
sp = 80
line.string.setLen(sp)
while true:
# memset to \L so that we can tell how far fgets wrote, even on EOF, where
# fgets doesn't append an \L
nimSetMem(addr line.string[pos], '\L'.ord, sp)
var fgetsSuccess = c_fgets(addr line.string[pos], sp, f) != nil
var fgetsSuccess = c_fgets(addr line.string[pos], sp.cint, f) != nil
if not fgetsSuccess: checkErr(f)
let m = c_memchr(addr line.string[pos], '\L'.ord, sp)
if m != nil: