reduce diff
authorDuncan Mac-Vicar P <dmacvicar@suse.de>
Fri, 10 Aug 2007 14:08:40 +0000 (14:08 +0000)
committerDuncan Mac-Vicar P <dmacvicar@suse.de>
Fri, 10 Aug 2007 14:08:40 +0000 (14:08 +0000)
zypp/parser/plaindir/RepoParser.cc

index c3efa9e..18de94c 100644 (file)
@@ -11,6 +11,7 @@
 #include "zypp/base/Logger.h"
 #include "zypp/base/Iterator.h"
 #include "zypp/base/String.h"
+#include "zypp/base/Regex.h"
 
 #include <zypp/target/rpm/RpmHeader.h>
 #include <zypp/target/rpm/RpmDb.h>
@@ -154,17 +155,15 @@ data::Package_Ptr makePackageDataFromHeader( const RpmHeader::constPtr header,
 
   list<string> filenames = header->tag_filenames();
   pkg->deps[Dep::PROVIDES] = header->tag_provides ( filerequires );
+  static str::smatch what;
+  static const str::regex filenameRegex( "/(s?bin|lib(64)?|etc)/|^/usr/(games/|share/(dict/words|magic\\.mime)$)|^/opt/gnome/games/",
+                                         str::regex::optimize|str::regex::nosubs );
+
   for (list<string>::const_iterator filename = filenames.begin();
        filename != filenames.end();
        ++filename)
   {
-    if (str::contains(*filename, "/bin/")
-        || str::contains(*filename, "/sbin")
-        || str::contains(*filename, "/lib") || str::contains(*filename, "/lib64/")
-        || str::contains(*filename, "/etc/")
-        || str::startsWith(*filename, "/usr/games")
-        || str::startsWith(*filename, "/usr/share/dict/words")
-        || str::startsWith(*filename, "/opt/gnome/games/"))
+    if ( str::regex_match( *filename, what, filenameRegex ) )
     {
       try {
         pkg->deps[Dep::PROVIDES].insert(capability::buildFile( ResTraits<Package>::kind, *filename ));