Commit ce54e838922b19feeab648bbc967b58299163d9c

Authored by Göran Krampe
1 parent 8ae119dc

Fix broken merge, putting readAllX back.

Showing 1 changed file with 16 additions and 1 deletions
blimp.nim
@@ -127,6 +127,21 @@ proc expandDirs(templ: string): string = @@ -127,6 +127,21 @@ proc expandDirs(templ: string): string =
127 if gitRootDir.isNil: quit("Not in a git clone, can not expand %gitroot% in '" & templ & "'") 127 if gitRootDir.isNil: quit("Not in a git clone, can not expand %gitroot% in '" & templ & "'")
128 result = result.replace("%gitroot%", gitRootDir) 128 result = result.replace("%gitroot%", gitRootDir)
129 129
  130 +# Copy of readAllBuffer from sysio.nim - we need to call it
  131 +# instead of readAll(stdin) which doesn't work on Windows. readAll
  132 +# first tries to find file size, and that trips up Windows.
  133 +proc readAllX(file: File): string =
  134 + result = ""
  135 + var buffer = newString(4096)
  136 + while true:
  137 + var read = readBuffer(file, addr(buffer[0]), 4096)
  138 + if read == 4096:
  139 + result.add(buffer)
  140 + else:
  141 + buffer.setLen(read)
  142 + result.add(buffer)
  143 + break
  144 +
130 # Load a blimp.conf file 145 # Load a blimp.conf file
131 proc parseConfFile(filename: string) = 146 proc parseConfFile(filename: string) =
132 var f = newFileStream(filename, fmRead) 147 var f = newFileStream(filename, fmRead)
@@ -495,7 +510,7 @@ area = args["area"].asString @@ -495,7 +510,7 @@ area = args["area"].asString
495 if stdio: 510 if stdio:
496 verbose = false 511 verbose = false
497 try: 512 try:
498 - stdinContent = readAll(stdin) 513 + stdinContent = readAllX(stdin)
499 close(stdin) 514 close(stdin)
500 except: 515 except:
501 quit("Failed reading stdin", 1) 516 quit("Failed reading stdin", 1)