Commit d6e0df1c authored by jkobus's avatar jkobus Committed by Tobias Hunger
Browse files

Fix reading of git format-patch output



Task-number: QTCREATORBUG-12627
Change-Id: I7df1fe27f6502895ab9c82178084d2b631468c5d
Reviewed-by: default avatarFriedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Orgad Shaneh's avatarOrgad Shaneh <orgads@gmail.com>
parent ea675821
......@@ -821,7 +821,7 @@ static QList<FileData> readDiffPatch(const QString &patch,
QList<FileData> fileDataList;
int pos = diffRegExp.indexIn(patch, 0);
if (pos == 0) { // git style patch
if (pos >= 0) { // git style patch
readOk = true;
int lastPos = -1;
do {
......@@ -1045,7 +1045,7 @@ static QList<FileData> readGitPatch(const QString &patch, bool ignoreWhitespace,
simpleGitMatched = (pos == simpleGitPos);
}
if (pos == 0) { // git style patch
if (pos >= 0) { // git style patch
readOk = true;
int endOfLastHeader = 0;
QString lastLeftFileName;
......@@ -1159,9 +1159,16 @@ QList<FileData> DiffUtils::readPatch(const QString &patch, bool ignoreWhitespace
QList<FileData> fileDataList;
fileDataList = readGitPatch(patch, ignoreWhitespace, &readOk);
QString croppedPatch = patch;
// Crop e.g. "-- \n1.9.4.msysgit.0\n\n" at end of file
const QRegExp formatPatchEndingRegExp(QLatin1String("(\\n-- \\n\\S*\\n\\n$)"));
const int pos = formatPatchEndingRegExp.indexIn(patch, 0);
if (pos != -1)
croppedPatch = patch.left(pos + 1); // crop the ending for git format-patch
fileDataList = readGitPatch(croppedPatch, ignoreWhitespace, &readOk);
if (!readOk)
fileDataList = readDiffPatch(patch, ignoreWhitespace, &readOk);
fileDataList = readDiffPatch(croppedPatch, ignoreWhitespace, &readOk);
if (ok)
*ok = readOk;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment