spec->line[0] = '\0';
}
+ /* Collect parsed line */
+ if (spec->parsed == NULL)
+ spec->parsed = newStringBuf();
+ appendLineStringBuf(spec->parsed, spec->line);
+
/* FIX: spec->readStack->next should be dependent */
return 0;
}
StringBuf check; /*!< %check scriptlet. */
StringBuf clean; /*!< %clean scriptlet. */
+ StringBuf parsed; /*!< parsed spec contents */
+
Package packages; /*!< Package list. */
};
int rpmSpecSrcNum(rpmSpecSrc src);
const char * rpmSpecSrcFilename(rpmSpecSrc src, int full);
-/* Retrieve parsed spec script section (RPMBUILD_PREP, RPMBUILD_BUILD etc) */
+/*
+ * Retrieve parsed spec script section (RPMBUILD_PREP, RPMBUILD_BUILD etc).
+ * As a special case, RPMBUILD_NONE as section returns the entire spec in
+ * preprocessed (macros expanded etc) format.
+ */
const char * rpmSpecGetSection(rpmSpec spec, int section);
/** \ingroup rpmbuild
spec->install = NULL;
spec->check = NULL;
spec->clean = NULL;
+ spec->parsed = NULL;
spec->sources = NULL;
spec->packages = NULL;
spec->install = freeStringBuf(spec->install);
spec->check = freeStringBuf(spec->check);
spec->clean = freeStringBuf(spec->clean);
+ spec->parsed = freeStringBuf(spec->parsed);
spec->buildRoot = _free(spec->buildRoot);
spec->buildSubdir = _free(spec->buildSubdir);
{
if (spec) {
switch (section) {
+ case RPMBUILD_NONE: return getStringBuf(spec->parsed);
case RPMBUILD_PREP: return getStringBuf(spec->prep);
case RPMBUILD_BUILD: return getStringBuf(spec->build);
case RPMBUILD_INSTALL: return getStringBuf(spec->install);