All pastes #1486973 Raw Edit

Miscellany

public c v1 · immutable
#1486973 ·published 2009-07-07 15:27 UTC
rendered paste body
#include <stdio.h>#include <alpm.h>#include <alpm_list.h>void displaydeps(pmpkg_t *pkg) {	alpm_list_t *i;	for(i = alpm_pkg_get_depends(pkg); i; i = alpm_list_next(i)) {		char *dep = alpm_list_getdata(i);		printf("%s \n", dep);	}}int main(int argc, char **argv){	pmdb_t *db = NULL;	alpm_list_t *i;	if(argc != 2) {		printf("usage : displaydeps <pkg>\n");		exit(EXIT_FAILURE);	}	if(alpm_initialize() == -1) {		fprintf(stderr, "cannot initialize alpm: %s\n", alpm_strerror(pm_errno));		exit(EXIT_FAILURE);	}	alpm_option_set_dbpath("/var/lib/pacman");	db = alpm_db_register_local();	if(db == NULL) {		fprintf(stderr, "error: could not register 'local' database (%s)\n",				alpm_strerror(pm_errno));		exit(EXIT_FAILURE);	}	/* if the package exists, list its dependencies */	pmpkg_t *pkg = alpm_db_get_pkg(db, argv[1]);	if(pkg) {		displaydeps(pkg);	} else {		/* otherwise, search for matching packages */		fprintf(stderr, "error: package %s does not exist\n", argv[1]);		alpm_list_t *targets = alpm_list_add(NULL, argv[1]);		alpm_list_t *res = alpm_db_search(db, targets);		fprintf(stderr, "matching packages : ");		for(i = res; i; i = alpm_list_next(i)) {			pmpkg_t *pkg = alpm_list_getdata(i);			printf("%s \n", alpm_pkg_get_name(pkg));		}	}	if(alpm_release() == -1) {		fprintf(stderr, "error releasing alpm: %s\n", alpm_strerror(pm_errno));	}	exit(EXIT_SUCCESS);}/* vim: set ts=2 sw=2 noet: */