~ruther/guix-local

9ba0b8d3d09a83c03ea3e296239e5e8c986a6bb7 — Ludovic Courtès 11 years ago 46b8aad
daemon: Flush upon '\r' when reading the substituter's stderr.

* nix/libstore/local-store.cc (LocalStore::getLineFromSubstituter):
  Flush when the line contains '\r'.
1 files changed, 4 insertions(+), 2 deletions(-)

M nix/libstore/local-store.cc
M nix/libstore/local-store.cc => nix/libstore/local-store.cc +4 -2
@@ 1168,8 1168,10 @@ string LocalStore::getLineFromSubstituter(RunningSubstituter & run)
            if (n == 0) throw EndOfFile(format("substituter `%1%' died unexpectedly") % run.program);
            err.append(buf, n);
            string::size_type p;
            while ((p = err.find('\n')) != string::npos) {
                printMsg(lvlError, run.program + ": " + string(err, 0, p));
            while (((p = err.find('\n')) != string::npos)
		   || ((p = err.find('\r')) != string::npos)) {
	        string thing(err, 0, p + 1);
	        writeToStderr(run.program + ": " + thing);
                err = string(err, p + 1);
            }
        }