forked from cromer/pamac-classic
71 lines
1.7 KiB
C
71 lines
1.7 KiB
C
#include <string.h>
|
|
#include "alpm-util.h"
|
|
|
|
alpm_pkg_t* alpm_pkg_load_file (alpm_handle_t *handle, const char *filename, int full, alpm_siglevel_t level) {
|
|
alpm_pkg_t *p;
|
|
int err = alpm_pkg_load(handle, filename, full, level, &p);
|
|
if (err == -1) return NULL;
|
|
else return p;
|
|
}
|
|
|
|
alpm_list_t* alpm_pkg_get_files_list (alpm_pkg_t* pkg) {
|
|
alpm_list_t *list = NULL;
|
|
alpm_filelist_t *pkgfiles;
|
|
size_t i;
|
|
|
|
pkgfiles = alpm_pkg_get_files(pkg);
|
|
|
|
for(i = 0; i < pkgfiles->count; i++) {
|
|
const alpm_file_t *file = pkgfiles->files + i;
|
|
list = alpm_list_add(list, file);
|
|
}
|
|
return list;
|
|
}
|
|
|
|
void* alpm_list_get_data (alpm_list_t *list) {
|
|
return list->data;
|
|
}
|
|
|
|
void* alpm_list_nth_data (alpm_list_t *list, size_t n) {
|
|
return alpm_list_nth (list, n)->data;
|
|
}
|
|
|
|
alpm_list_t* alpm_list_add_str (alpm_list_t *list, const char *str) {
|
|
char *dup = strdup (str);
|
|
list = alpm_list_add (list, dup);
|
|
return list;
|
|
}
|
|
|
|
alpm_list_t* alpm_list_remove_data (alpm_list_t *list, const void *needle, alpm_list_fn_cmp fn) {
|
|
void *data = NULL;
|
|
list = alpm_list_remove (list, needle, fn, data);
|
|
free(data);
|
|
return list;
|
|
}
|
|
|
|
alpm_list_t* alpm_list_sort_data (alpm_list_t *list, alpm_list_fn_cmp fn) {
|
|
list = alpm_list_msort (list, alpm_list_count (list), fn);
|
|
return list;
|
|
}
|
|
|
|
alpm_list_t *alpm_list_new () {
|
|
return NULL;
|
|
}
|
|
|
|
void alpm_list_free_all (alpm_list_t *list) {
|
|
do { alpm_list_free_inner (list, free); alpm_list_free (list); list = NULL; } while (0);
|
|
}
|
|
|
|
void alpm_list_iterator (alpm_list_t *list, alpm_list_iterator_t* iter) {
|
|
iter->pos = list;
|
|
}
|
|
|
|
void* alpm_list_iterator_next_value (alpm_list_iterator_t *iter) {
|
|
if (iter->pos) {
|
|
void* result = alpm_list_get_data (iter->pos);
|
|
iter->pos = alpm_list_next (iter->pos);
|
|
return result;
|
|
}
|
|
else return NULL;
|
|
}
|