time_t ctime;
time_t mtime;
+ // Link destinations
+ char hardlink[PATH_MAX];
+ char symlink[PATH_MAX];
+
// Digests
struct pakfire_file_digest digests[MAX_DIGESTS];
pakfire_file_set_path(file, path);
}
+ // Set links
+ pakfire_file_set_hardlink(file, archive_entry_hardlink(entry));
+ pakfire_file_set_symlink(file, archive_entry_symlink(entry));
+
// Set size
pakfire_file_set_size(file, archive_entry_size(entry));
return pakfire_string_set(file->path, path);
}
+PAKFIRE_EXPORT const char* pakfire_file_get_hardlink(struct pakfire_file* file) {
+ if (!*file->hardlink)
+ return NULL;
+
+ return file->hardlink;
+}
+
+PAKFIRE_EXPORT void pakfire_file_set_hardlink(struct pakfire_file* file, const char* link) {
+ if (!link || !*link)
+ *file->hardlink = '\0';
+ else
+ pakfire_string_set(file->hardlink, link);
+}
+
+PAKFIRE_EXPORT const char* pakfire_file_get_symlink(struct pakfire_file* file) {
+ if (!*file->symlink)
+ return NULL;
+
+ return file->symlink;
+}
+
+PAKFIRE_EXPORT void pakfire_file_set_symlink(struct pakfire_file* file, const char* link) {
+ if (!link || !*link)
+ *file->hardlink = '\0';
+ else
+ pakfire_string_set(file->symlink, link);
+}
+
PAKFIRE_EXPORT int pakfire_file_get_type(struct pakfire_file* file) {
return file->mode & S_IFMT;
}
const char* pakfire_file_get_path(struct pakfire_file* file);
int pakfire_file_set_path(struct pakfire_file* file, const char* path);
+const char* pakfire_file_get_hardlink(struct pakfire_file* file);
+void pakfire_file_set_hardlink(struct pakfire_file* file, const char* link);
+const char* pakfire_file_get_symlink(struct pakfire_file* file);
+void pakfire_file_set_symlink(struct pakfire_file* file, const char* link);
+
int pakfire_file_get_type(struct pakfire_file* file);
ssize_t pakfire_file_get_size(struct pakfire_file* file);