From 332947f2518b71342ebe3719899e83405a79c15d Mon Sep 17 00:00:00 2001 From: graham.gower Date: Thu, 12 Nov 2009 00:02:35 -0500 Subject: Cleanup version string handling. git-svn-id: http://opkg.googlecode.com/svn/trunk@286 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358 --- (limited to 'libopkg/pkg.c') diff --git a/libopkg/pkg.c b/libopkg/pkg.c index b1f45dd..bb3da1e 100644 --- a/libopkg/pkg.c +++ b/libopkg/pkg.c @@ -945,32 +945,27 @@ int abstract_pkg_name_compare(const void *p1, const void *p2) } -char *pkg_version_str_alloc(pkg_t *pkg) +char * +pkg_version_str_alloc(pkg_t *pkg) { - char *complete_version; - char *epoch_str; - char *revision_str; - - if (pkg->epoch) { - sprintf_alloc(&epoch_str, "%d:", pkg->epoch); - } else { - epoch_str = xstrdup(""); - } - - if (pkg->revision && strlen(pkg->revision)) { - sprintf_alloc(&revision_str, "-%s", pkg->revision); - } else { - revision_str = xstrdup(""); - } - - - sprintf_alloc(&complete_version, "%s%s%s", - epoch_str, pkg->version, revision_str); - - free(epoch_str); - free(revision_str); + char *version; + + if (pkg->epoch) { + if (pkg->revision) + sprintf_alloc(&version, "%d:%s-%s", + pkg->epoch, pkg->version, pkg->revision); + else + sprintf_alloc(&version, "%d:%s", + pkg->epoch, pkg->version); + } else { + if (pkg->revision) + sprintf_alloc(&version, "%s-%s", + pkg->version, pkg->revision); + else + version = xstrdup(pkg->version); + } - return complete_version; + return version; } str_list_t *pkg_get_installed_files(pkg_t *pkg) -- cgit v0.9.1