From 4f169b21507eab134131278806ff55c761641495 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 8 May 2012 18:10:05 +0200 Subject: [PATCH] fakevim: fix :!cmd if there is no selection Change-Id: Ieafb77ecc4d211f97b7b8321fc84fd7d6c81dfc0 Reviewed-by: hjk --- src/plugins/fakevim/fakevimhandler.cpp | 31 +++++++++++++++----------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 55f95bf9036..621476114c6 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -3727,15 +3727,19 @@ bool FakeVimHandler::Private::handleExBangCommand(const ExCommand &cmd) // :! proc.closeWriteChannel(); proc.waitForFinished(); QString result = QString::fromUtf8(proc.readAllStandardOutput()); - beginEditBlock(); - removeText(currentRange()); - insertText(result); - setPosition(targetPosition); - endEditBlock(); - leaveVisualMode(); - //qDebug() << "FILTER: " << command; - showBlackMessage(FakeVimHandler::tr("%n lines filtered", 0, - text.count('\n'))); + if (text.isEmpty()) { + emit q->extraInformationChanged(result); + } else { + beginEditBlock(); + removeText(currentRange()); + insertText(result); + setPosition(targetPosition); + endEditBlock(); + leaveVisualMode(); + //qDebug() << "FILTER: " << command; + showBlackMessage(FakeVimHandler::tr("%n lines filtered", 0, + text.count('\n'))); + } return true; } @@ -3866,13 +3870,14 @@ void FakeVimHandler::Private::handleExCommand(const QString &line0) } if (beginLine != -1 && endLine == -1) endLine = beginLine; - const int beginPos = firstPositionInLine(beginLine); - const int endPos = lastPositionInLine(endLine); ExCommand cmd; cmd.setContentsFromLine(line); - cmd.range = Range(beginPos, endPos, RangeLineMode); - if (beginLine != -1) + if (beginLine != -1) { + const int beginPos = firstPositionInLine(beginLine); + const int endPos = lastPositionInLine(endLine); + cmd.range = Range(beginPos, endPos, RangeLineMode); cmd.count = beginLine; + } //qDebug() << "CMD: " << cmd; enterCommandMode();