summaryrefslogtreecommitdiffstats
path: root/src/package.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/package.c')
-rw-r--r--src/package.c33
1 files changed, 31 insertions, 2 deletions
diff --git a/src/package.c b/src/package.c
index 04153fb1..e7567d23 100644
--- a/src/package.c
+++ b/src/package.c
@@ -30,7 +30,7 @@
#include "util.h"
#include "package.h"
-pkginfo_t* load_pkg(char *pkgfile, unsigned short output)
+pkginfo_t* load_pkg(char *pkgfile)
{
char *expath;
int i;
@@ -66,7 +66,7 @@ pkginfo_t* load_pkg(char *pkgfile, unsigned short output)
mkstemp(descfile);
tar_extract_file(tar, descfile);
/* parse the info file */
- parse_descfile(descfile, info, &backup, output);
+ parse_descfile(descfile, info, &backup, 0);
if(!strlen(info->name)) {
fprintf(stderr, "load_pkg: missing package name in %s.\n", pkgfile);
FREEPKG(info);
@@ -379,4 +379,33 @@ void dump_pkg_sync(pkginfo_t *info)
printf("\nMD5 Sum : %s\n", info->md5sum);
}
+int split_pkgname(char *pkg, char **name, char **version)
+{
+ char tmp[256];
+ char *p, *q;
+
+ strncpy(tmp, pkg, 256);
+
+ p = strstr(tmp, ".pkg.tar.gz");
+ if(p == NULL) {
+ return(-1);
+ }
+ *p = 0;
+
+ for(q = --p; *q && *q != '-'; q--);
+ if(*q != '-' || q == tmp) {
+ return(-1);
+ }
+ for(p = --q; *p && *p != '-'; p--);
+ if(*p != '-' || p == tmp) {
+ return(-1);
+ }
+ *version = strdup(p+1);
+ *p = 0;
+
+ *name = strdup(tmp);
+
+ return(0);
+}
+
/* vim: set ts=2 sw=2 noet: */