From fa82a7b7ba63165347229476dbff2de5b972789c Mon Sep 17 00:00:00 2001 From: ewt Date: Tue, 19 Dec 1995 16:17:21 +0000 Subject: [PATCH] Added routines for retrieving GIFs CVS patchset: 59 CVS date: 1995/12/19 16:17:21 --- lib/oldrpmdb.h | 2 ++ oldrpmdb.c | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/lib/oldrpmdb.h b/lib/oldrpmdb.h index 87b9cdf..67e2630 100644 --- a/lib/oldrpmdb.h +++ b/lib/oldrpmdb.h @@ -52,6 +52,8 @@ struct rpmdbLabel * rpmdbFindPackagesByLabel(struct rpmdb * rpmdb, struct rpmdbLabel label); char * rpmdbGetPackageGroup(struct rpmdb * rpmdb, struct rpmdbLabel label); +char * rpmdbGetPackageGif(struct rpmdb * rpmdb, struct rpmdbLabel label, + int * size); int rpmdbGetPackageInfo(struct rpmdb * rpmdb, struct rpmdbLabel label, struct rpmdbPackageInfo * pinfo); void rpmdbFreePackageInfo(struct rpmdbPackageInfo package); diff --git a/oldrpmdb.c b/oldrpmdb.c index 8e022b3..bc6270c 100644 --- a/oldrpmdb.c +++ b/oldrpmdb.c @@ -381,6 +381,28 @@ char * rpmdbGetPackageGroup(struct rpmdb * rpmdb, struct rpmdbLabel label) { return g; } +/* Returns NULL on error or if no icon exists */ +char * rpmdbGetPackageGif(struct rpmdb * rpmdb, struct rpmdbLabel label, + int * size) { + datum key, rec; + char * labelstr; + + labelstr = rpmdbLabelToLabelstr(label, 0); + + key.dptr = labelstr; + key.dsize = strlen(labelstr); + + rec = gdbm_fetch(rpmdb->iconIndex, key); + free(labelstr); + if (!rec.dptr) { + return NULL; + } + + *size = rec.dsize; + + return rec.dptr; +} + /* return 0 on success, 1 on failure */ int rpmdbGetPackageInfo(struct rpmdb * rpmdb, struct rpmdbLabel label, struct rpmdbPackageInfo * pinfo) { -- 2.7.4