Support "magic_and_path" flag in fileattrs
authorMichael Schroeder <mls@suse.de>
Thu, 19 May 2011 11:55:55 +0000 (14:55 +0300)
committerPanu Matilainen <pmatilai@redhat.com>
Thu, 19 May 2011 11:57:30 +0000 (14:57 +0300)
- Allow "magic_and_path" flag to configure that files must
  match both regexpes to be sent to the dependency generator.

Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
build/rpmfc.c

index fe8a254..cea2f82 100644 (file)
@@ -629,10 +629,13 @@ static void rpmfcAttributes(rpmfc fc, const char *ftype, const char *fullpath)
            continue;
 
        /* Add attributes on libmagic type & path pattern matches */
-       if (regMatch((*attr)->magic, ftype))
-           argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name);
-       if (regMatch((*attr)->path, path))
-           argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name);
+       if ((*attr)->magic && (*attr)->path && hasAttr((*attr)->flags, "magic_and_path")) {
+           if (regMatch((*attr)->magic, ftype) && regMatch((*attr)->path, path))
+               argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name);
+       } else {
+           if (regMatch((*attr)->magic, ftype) || regMatch((*attr)->path, path))
+               argvAddTokens(&fc->fattrs[fc->ix], (*attr)->name);
+       }
     }
 }