| 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 First Reported In: | 2.4 | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
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. *** |