From a18be8ddbf7ab49e5250d02640b8a6fec74697e2 Mon Sep 17 00:00:00 2001 From: Kostas Date: Mon, 28 Jul 2014 10:55:56 +0000 Subject: [PATCH] Improved fossil query parsing to handle cr/nl conversions queries FossilOrigin-Name: 7963dcf290a49ba949e056b48a3af0d0ca133315 --- manifest | 12 ++++++------ manifest.uuid | 2 +- src/MainWindow.cpp | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/manifest b/manifest index 42fe1ac..296297f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Comment\sfiles\snow\sstart\swith\sa\sUTF-8\sBOM\s\nAdded\san\s"Apply"\sMessageBox\sbutton\sto\shandle\sthe\sconvert\soption\sasked\sby\sfossil\nConverted\sQ_WS_*\sto\sQ_OS_*\ssince\sthe\sfirst\sno\slonger\sexists\sin\sQT5 -D 2014-07-28T10:38:37.856 +C Improved\sfossil\squery\sparsing\sto\shandle\scr/nl\sconversions\squeries\n +D 2014-07-28T10:55:56.111 F dist/arch/PKGBUILD 1d72dad77767f94a6b1a018067188e61927fa564 F dist/win/fuel.iss ef3558dbba409eb194938b930377fc9ee27d319e F doc/Building.txt 7c0f1060d4a08ed330058d4a3a68905c05228381 @@ -187,7 +187,7 @@ F src/FileTableView.cpp 5ddf8c391c9a3ac449ec61fb1db837b577afeec2 F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261 -F src/MainWindow.cpp 2db7b4ca002c61985432fcf71c97a6a1ab482f3f +F src/MainWindow.cpp a09935e15a667fee4205f92c3a904715832bb0e4 F src/MainWindow.h 3e0ed4d5f6a531401e0aed92d1cd0eb29543d62b F src/SettingsDialog.cpp effff92f746a71b07f0e6a72a21caac5a9085123 F src/SettingsDialog.h 01c1f876c64f750ba8820a0d745e377acabe4921 @@ -201,7 +201,7 @@ F ui/CommitDialog.ui 6200f6cabdcf40a20812e811be28e0793f82516f F ui/FileActionDialog.ui 89bb4dc2d0b8adcd41adcb11ec65f2028a09a12d F ui/MainWindow.ui 7ede8bbb54513e0771fdf5d5a2566d88c81b73ad F ui/SettingsDialog.ui 55aefad7145c40d936c43759789d1b50e361b020 -P 05251390b4dac6dc122efb007cd84650e410a0d1 -R 8e737c57d203e492166f8d579f5e0a13 +P f99bd8ac7960cb1758222d2211937e99708f67f3 +R 17a11a3a86c01fbe80865209da47dbda U Kostas -Z 3b353f1973572f26eb2307e7504f1871 +Z 6fc79358cc91a5421ead178604d9fdec diff --git a/manifest.uuid b/manifest.uuid index 9c3928f..1fed763 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -f99bd8ac7960cb1758222d2211937e99708f67f3 \ No newline at end of file +7963dcf290a49ba949e056b48a3af0d0ca133315 \ No newline at end of file diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 997fa08..9536cba 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -1162,8 +1162,23 @@ bool MainWindow::runFossilRaw(const QStringList &args, QStringList *output, int int last_line_start = buffer.lastIndexOf(EOL_MARK); QString last_line; + QString before_last_line; if(last_line_start != -1) + { last_line = buffer.mid(last_line_start+1); // Including the EOL + + // Detect previous line + if(last_line_start>0) + { + int before_last_line_start = buffer.lastIndexOf(EOL_MARK, last_line_start-1); + // No line before ? + if(before_last_line_start==-1) + before_last_line_start = 0; // Use entire line + + // Extract previous line + before_last_line = buffer.mid(before_last_line_start, last_line_start-before_last_line_start); + } + } else last_line = buffer; @@ -1211,6 +1226,7 @@ bool MainWindow::runFossilRaw(const QStringList &args, QStringList *output, int // Map the Convert option to the Apply button if(have_acyn_query) { + query = before_last_line + query; buttons |= QMessageBox::Apply; }