Remember rpmfi creation flags
authorPanu Matilainen <pmatilai@redhat.com>
Tue, 18 Nov 2008 04:26:02 +0000 (06:26 +0200)
committerPanu Matilainen <pmatilai@redhat.com>
Tue, 18 Nov 2008 09:26:56 +0000 (11:26 +0200)
lib/rpmfi.c
lib/rpmfi.h
lib/rpmfi_internal.h

index 005503d..d1c7b19 100644 (file)
@@ -1239,6 +1239,7 @@ rpmfi rpmfiNew(const rpmts ts, Header h, rpmTag tagN, rpmfiFlags flags)
     fi->tagN = tagN;
     fi->record = headerGetInstance(h);
 
+    fi->fiflags = flags;
     fi->scareFlags = scareFlags;
 
     fi->keep_header = (flags & RPMFI_KEEPHEADER);
@@ -1254,6 +1255,8 @@ rpmfi rpmfiNew(const rpmts ts, Header h, rpmTag tagN, rpmfiFlags flags)
     /* Archive size is not set when this gets called from build */
     isBuild = (asize == NULL);
     isSource = headerIsSource(h);
+    if (isBuild) fi->fiflags |= RPMFI_ISBUILD;
+    if (isSource) fi->fiflags |= RPMFI_ISSOURCE;
 
     /* See if we have pre/posttrans scripts. */
     fi->transscripts |= (headerIsEntry(h, RPMTAG_PRETRANS) &&
index 9113868..7755a71 100644 (file)
@@ -394,6 +394,8 @@ typedef enum rpmfiFlags_e {
     RPMFI_NOFILEDEPS   = (1 << 2),
     RPMFI_NOFILELANGS  = (1 << 3),
     RPMFI_NOFILEOWNER  = (1 << 4),
+    RPMFI_ISBUILD      = (1 << 30),    /* internal */
+    RPMFI_ISSOURCE     = (1 << 31),    /* internal */
 } rpmfiFlags;
 
 /** \ingroup rpmfi
index 929b919..a12068d 100644 (file)
@@ -81,6 +81,7 @@ struct rpmfi_s {
 /*=============================*/
     rpmte te;
 
+    rpmfiFlags fiflags;                /*!< file info set control flags */
     headerGetFlags scareFlags; /*!< headerGet flags wrt scareMem */
 /*-----------------------------*/
     rpmfileAttrs flags;                /*!< File flags (default). */