Summary: | Kate refuses to replace a pattern with an empty string | ||
---|---|---|---|
Product: | [Applications] kate | Reporter: | Maxilys <maxilys> |
Component: | general | Assignee: | Anders Lund <anderslund> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | fhidalgosola, kdebugs |
Priority: | NOR | ||
Version: | 2.4 | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Maxilys
2005-03-19 14:54:48 UTC
I'll fix it for 3.4.1. In the meantime, you can use the commandline replace as a work around (press F7 and enter 'replace PATTERN' will replace with nothing) CVS commit by alund: allow to replace with nothing. BUG: 101895 Could someone please backport? M +18 -11 katesearch.cpp 1.87 --- kdelibs/kate/part/katesearch.cpp #1.86:1.87 @@ -38,4 +38,5 @@ #include <kfinddialog.h> #include <kreplacedialog.h> +#include <knotifyclient.h> #include <qlayout.h> @@ -111,5 +112,5 @@ void KateSearch::find() } -void KateSearch::find( const QString &pattern, long flags, bool add, bool shownotfound ) +bool KateSearch::find( const QString &pattern, long flags, bool add, bool shownotfound ) { KateViewConfig::global()->setSearchFlags( flags ); @@ -145,5 +146,5 @@ void KateSearch::find( const QString &pa s.showNotFound = shownotfound; - search( searchFlags ); + return search( searchFlags ); } @@ -166,7 +167,7 @@ void KateSearch::replace() m_replacement = replaceDialog->replacement(); s_searchList = replaceDialog->findHistory () ; - s_replaceList = replaceDialog->replacementHistory () ; + s_replaceList = replaceDialog->replacementHistory (); - replace( s_searchList.first(), s_replaceList.first(), opts ); + replace( s_searchList.first(), m_replacement, opts ); } @@ -234,5 +235,5 @@ void KateSearch::findAgain( bool back ) } -void KateSearch::search( SearchFlags flags ) +bool KateSearch::search( SearchFlags flags ) { s.flags = flags; @@ -262,6 +263,7 @@ void KateSearch::search( SearchFlags fla else replaceAll(); + return false; // FIXME } else { - findAgain(); + return findAgain(); } } @@ -291,19 +293,21 @@ void KateSearch::wrapSearch() } -void KateSearch::findAgain() +bool KateSearch::findAgain() { if( s_pattern.isEmpty() ) { find(); - return; + return false; // ### make find() return a bool too just to be consequent } if ( doSearch( s_pattern ) ) { exposeFound( s.cursor, s.matchedLength ); + return true; } else if( !s.flags.finished ) { if( askContinue() ) { wrapSearch(); - findAgain(); + return findAgain(); } else { if (arbitraryHLExample) m_arbitraryHLList->clear(); + return false; } } else { @@ -315,4 +319,5 @@ void KateSearch::findAgain() i18n("Find")); } + return false; } @@ -806,5 +811,6 @@ while ( (p = pattern.find( '\\' + delim, if ( cmd.startsWith( "find" ) ) { - ((KateView*)view)->find( pattern, f ); + if ( ! ((KateView*)view)->find( pattern, f ) ) + msg = i18n("'%1' not found.").arg( pattern ); return true; } @@ -899,5 +905,6 @@ void SearchCommand::processText( Kate::V v->setCursorPositionInternal( v->selStartLine(), v->selStartCol() ); - v->find( pattern, m_ifindFlags, false ); + if ( ! v->find( pattern, m_ifindFlags, false ) ) + KNotifyClient::beep(); } } Sorry for the lengthy commit, but I *did* fix it. Just needs a backport, but that will be done too... CVS commit by dhaumann: Backport Anders' fix for bug: allow to replace with nothing. CCBUG: 101895 M +1 -1 katesearch.cpp 1.84.2.1 --- kdelibs/kate/part/katesearch.cpp #1.84:1.84.2.1 @@ -167,5 +167,5 @@ void KateSearch::replace() s_replaceList = replaceDialog->replacementHistory () ; - replace( s_searchList.first(), s_replaceList.first(), opts ); + replace( s_searchList.first(), m_replacement, opts ); } *** Bug 102678 has been marked as a duplicate of this bug. *** *** Bug 105540 has been marked as a duplicate of this bug. *** |