From: Enrico Forestieri Date: Tue, 12 May 2009 18:21:27 +0000 (+0000) Subject: Restore line buffered output at least on posix systems. I failed to do X-Git-Tag: 2.0.0~6596 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=cd9b169d7697338bb70e800f4186e6aec6c38006;p=features.git Restore line buffered output at least on posix systems. I failed to do that on Windows, as using CONOUT$ in place of /dev/stdout didn't work. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29642 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/support/Systemcall.cpp b/src/support/Systemcall.cpp index 20813e7948..ec3f5a2258 100644 --- a/src/support/Systemcall.cpp +++ b/src/support/Systemcall.cpp @@ -60,6 +60,12 @@ int Systemcall::startscript(Starttype how, string const & what) #else QString cmd = QString::fromLocal8Bit(what.c_str()); QProcess * process = new QProcess; +#ifndef WIN32 + if (isatty(1)) + process->setStandardOutputFile(toqstr("/dev/stdout")); + if (isatty(2)) + process->setStandardErrorFile(toqstr("/dev/stderr")); +#endif process->start(cmd); if (!process->waitForStarted(3000)) { LYXERR0("Qprocess " << cmd << " did not start!"); @@ -86,8 +92,10 @@ int Systemcall::startscript(Starttype how, string const & what) LYXERR0("state " << process->state()); LYXERR0("status " << process->exitStatus()); } +#ifdef WIN32 cout << fromqstr(QString::fromLocal8Bit(process->readAllStandardOutput().data())) << endl; cerr << fromqstr(QString::fromLocal8Bit(process->readAllStandardError().data())) << endl; +#endif killProcess(process); return exit_code; #endif