#include <pakfire/archive.h>
#include <pakfire/fhs.h>
#include <pakfire/file.h>
+#include <pakfire/filelist.h>
#include <pakfire/linter.h>
#include <pakfire/linter-file.h>
#include <pakfire/logging.h>
// Package
struct pakfire_package* pkg;
+ // Filelist
+ struct pakfire_filelist* filelist;
+
// Results
TAILQ_HEAD(results, pakfire_linter_result) results;
return -errno;
// Store file
- if (file)
+ if (file) {
result->file = pakfire_file_ref(file);
+ // Add the file to the filelist
+ r = pakfire_filelist_add(linter->filelist, file);
+ if (r < 0)
+ goto ERROR;
+ }
+
// Store priority
result->priority = priority;
va_end(args);
// Fail on error
- if (r < 0) {
- pakfire_linter_result_free(result);
- return r;
- }
+ if (r < 0)
+ goto ERROR;
// Store the result
TAILQ_INSERT_TAIL(&linter->results, result, nodes);
}
return 0;
+
+ERROR:
+ if (result)
+ pakfire_linter_result_free(result);
+
+ return r;
}
int pakfire_linter_create(struct pakfire_linter** linter,
goto ERROR;
}
+ // Create a filelist
+ r = pakfire_filelist_create(&l->filelist, l->pakfire);
+ if (r < 0)
+ goto ERROR;
+
// Return the pointer
*linter = pakfire_linter_ref(l);
pakfire_linter_result_free(result);
}
+ if (linter->filelist)
+ pakfire_filelist_unref(linter->filelist);
if (linter->archive)
pakfire_archive_unref(linter->archive);
if (linter->pkg)