# # # patch "guitone/src/monotone/Monotone.cpp" # from [c226824f64346ffd8ee88a1a83d7238b499044ef] # to [3d0d845b9d79a048207d19a2fd60afa531dd415e] # # patch "guitone/src/monotone/Monotone.h" # from [901a2ee3e2759aceb0ba334fbe8fc6cde01add43] # to [cd194dcafc2094075e90a5ccdb2b76b90b57fb09] # ============================================================ --- guitone/src/monotone/Monotone.cpp c226824f64346ffd8ee88a1a83d7238b499044ef +++ guitone/src/monotone/Monotone.cpp 3d0d845b9d79a048207d19a2fd60afa531dd415e @@ -25,6 +25,8 @@ const QString Monotone::RequiredVersion Monotone* Monotone::instance = 0; const QString Monotone::RequiredVersion = "0.29"; +// 50KB buffer size +const int Monotone::StdioBufferSize = 50 * 1024 * 1024; Monotone::Monotone(QObject * parent) : QObject(parent), process(0) { @@ -75,6 +77,7 @@ void Monotone::setup(QDir *workingDirect QStringList args; args << "automate"; args << "stdio"; + args << QString("--automate-stdio-size=%1").arg(StdioBufferSize); // Start up monotone's executable 'mtn' QString mtn = Settings::getMtnExePath(); @@ -206,16 +209,17 @@ void Monotone::readAndParseStdout() { // prepend the data header again input.prepend(QString("%1:%2:%3:%4:") - .arg(list[0]) - .arg(list[1]) - .arg(list[2]) - .arg(list[3]) + .arg(list[1]) + .arg(list[2]) + .arg(list[3]) + .arg(list[4]) ); return; } // add the byte amount to the output string output.append(input.left(outBytes)); + // and remove it from the input string input = input.right(input.length() - outBytes); ============================================================ --- guitone/src/monotone/Monotone.h 901a2ee3e2759aceb0ba334fbe8fc6cde01add43 +++ guitone/src/monotone/Monotone.h cd194dcafc2094075e90a5ccdb2b76b90b57fb09 @@ -31,6 +31,7 @@ class Monotone : public QObject static Monotone* singleton(QObject * parent = 0); static bool checkBinaryVersion(const QString &); static const QString RequiredVersion; + static const int StdioBufferSize; void setup(QDir*); virtual ~Monotone();