ref: refs/heads/master
commit e34ba877162b234f35e7b515c5a6c83dc2221130
Author: Michael Andres
Date: Wed Jul 15 16:51:30 2009 +0200
Add new string Match::Mode STRINGSTART and STRINGEND.
---
package/libzypp.changes | 5 +++++
tests/sat/AttrMatcher_test.cc | 20 ++++++++++++++++++++
zypp/sat/AttrMatcher.cc | 26 ++++++++++++++++----------
zypp/sat/AttrMatcher.h | 14 ++++++++++++++
4 files changed, 55 insertions(+), 10 deletions(-)
diff --git a/package/libzypp.changes b/package/libzypp.changes
index 5f09c1b..5c1eebe 100644
--- a/package/libzypp.changes
+++ b/package/libzypp.changes
@@ -1,4 +1,9 @@
-------------------------------------------------------------------
+Wed Jul 15 16:45:39 CEST 2009 - ma@suse.de
+
+- Add new string Match::Mode STRINGSTART and STRINGEND.
+
+-------------------------------------------------------------------
Tue Jul 15 14:38:51 CEST 2009 - jkupec@suse.cz
- log redirections when cURL media backend is used (fate #305320).
diff --git a/tests/sat/AttrMatcher_test.cc b/tests/sat/AttrMatcher_test.cc
index 05e0d88..e689f79 100644
--- a/tests/sat/AttrMatcher_test.cc
+++ b/tests/sat/AttrMatcher_test.cc
@@ -99,6 +99,26 @@ BOOST_AUTO_TEST_CASE(AttrMatcher_STRING)
BOOST_CHECK( !m( "default" ) );
}
+BOOST_AUTO_TEST_CASE(AttrMatcher_STRINGSTART)
+{
+ sat::AttrMatcher m( "fau", Match::STRINGSTART );
+ BOOST_CHECK( !m( "" ) );
+ BOOST_CHECK( !m( "a" ) );
+ BOOST_CHECK( m( "fau" ) );
+ BOOST_CHECK( m( "fault" ) );
+ BOOST_CHECK( !m( "default" ) );
+}
+
+BOOST_AUTO_TEST_CASE(AttrMatcher_STRINGEND)
+{
+ sat::AttrMatcher m( "fau", Match::STRINGEND );
+ BOOST_CHECK( !m( "" ) );
+ BOOST_CHECK( !m( "a" ) );
+ BOOST_CHECK( m( "fau" ) );
+ BOOST_CHECK( m( "defau" ) );
+ BOOST_CHECK( !m( "default" ) );
+}
+
BOOST_AUTO_TEST_CASE(AttrMatcher_REGEX)
{
sat::AttrMatcher m( "fau" );
diff --git a/zypp/sat/AttrMatcher.cc b/zypp/sat/AttrMatcher.cc
index 146cd5e..6001110 100644
--- a/zypp/sat/AttrMatcher.cc
+++ b/zypp/sat/AttrMatcher.cc
@@ -53,6 +53,8 @@ namespace zypp
{
case 0: return NOTHING; break;
case SEARCH_STRING: return STRING; break;
+ case SEARCH_STRINGSTART: return STRINGSTART; break;
+ case SEARCH_STRINGEND: return STRINGEND; break;
case SEARCH_SUBSTRING: return SUBSTRING; break;
case SEARCH_GLOB: return GLOB; break;
case SEARCH_REGEX: return REGEX; break;
@@ -66,6 +68,8 @@ namespace zypp
{
case NOTHING: return 0; break;
case STRING: return SEARCH_STRING; break;
+ case STRINGSTART: return SEARCH_STRINGSTART; break;
+ case STRINGEND: return SEARCH_STRINGEND; break;
case SUBSTRING: return SEARCH_SUBSTRING; break;
case GLOB: return SEARCH_GLOB; break;
case REGEX: return SEARCH_REGEX; break;
@@ -84,6 +88,8 @@ namespace zypp
#define OUTS(V) case Match::V: return str << #V; break
OUTS( NOTHING );
OUTS( STRING );
+ OUTS( STRINGSTART );
+ OUTS( STRINGEND );
OUTS( SUBSTRING );
OUTS( GLOB );
OUTS( REGEX );
@@ -99,21 +105,21 @@ namespace zypp
return str << "NOTHING";
const char * sep = "|";
-
- int val = obj.modeval();
- switch ( val )
+ Match::Mode mode( obj.mode() );
+ switch ( mode )
{
- case 0: sep = 0; break;
- case SEARCH_STRING: str << "STRING"; break;
- case SEARCH_SUBSTRING: str << "SUBSTRING"; break;
- case SEARCH_GLOB: str << "GLOB"; break;
- case SEARCH_REGEX: str << "REGEX"; break;
+ case Match::NOTHING:
+ sep = 0; // suppress 'NOTHING|'
+ break;
+ case Match::OTHER:
+ str << mode<<"("<