summaryrefslogtreecommitdiffstats
path: root/RPM4/src
diff options
context:
space:
mode:
authornanardon <nanardon@971eb68f-4bfb-0310-8326-d2484c010a4c>2006-01-30 15:07:29 +0000
committernanardon <nanardon@971eb68f-4bfb-0310-8326-d2484c010a4c>2006-01-30 15:07:29 +0000
commita9828e7168d040c074ac973261c06ecd724becc1 (patch)
tree5c0c7c5bfe9e4262bd93d5f161c5c4d365e10cc4 /RPM4/src
parent24fc3da0ceed5cfabbaccd258189b11dc4e1f050 (diff)
downloadperl-RPM4-a9828e7168d040c074ac973261c06ecd724becc1.tar
perl-RPM4-a9828e7168d040c074ac973261c06ecd724becc1.tar.gz
perl-RPM4-a9828e7168d040c074ac973261c06ecd724becc1.tar.bz2
perl-RPM4-a9828e7168d040c074ac973261c06ecd724becc1.tar.xz
perl-RPM4-a9828e7168d040c074ac973261c06ecd724becc1.zip
- add spec_icon and spec_icon_url
git-svn-id: svn+ssh://haiku.zarb.org/home/projects/rpm4/svn/trunk@94 971eb68f-4bfb-0310-8326-d2484c010a4c
Diffstat (limited to 'RPM4/src')
-rw-r--r--RPM4/src/RPM4.xs37
1 files changed, 35 insertions, 2 deletions
diff --git a/RPM4/src/RPM4.xs b/RPM4/src/RPM4.xs
index 4bd1a6f..248d92d 100644
--- a/RPM4/src/RPM4.xs
+++ b/RPM4/src/RPM4.xs
@@ -406,6 +406,7 @@ void _newspec(rpmts ts, char * filename, SV * svpassphrase, SV * svrootdir, SV *
char * cookies = NULL;
int anyarch = 0;
int force = 0;
+ dSP;
if (svpassphrase && SvOK(svpassphrase))
passphrase = SvPV_nolen(svpassphrase);
@@ -424,7 +425,6 @@ void _newspec(rpmts ts, char * filename, SV * svpassphrase, SV * svrootdir, SV *
if (svforce && SvOK(svforce))
force = SvIV(svforce);
- dSP;
if (filename) {
if (!parseSpec(ts, filename, rootdir, NULL, 0, passphrase, cookies, anyarch, force))
spec = rpmtsSetSpec(ts, NULL);
@@ -2848,7 +2848,40 @@ Spec_sources_url(spec, is = 0)
XPUSHs(sv_2mortal(newSVpv(dest, len)));
}
-
+void
+Spec_icon(spec)
+ Spec spec
+ PREINIT:
+ Package pkg;
+ PPCODE:
+ for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
+ char * dest = NULL;
+ int len;
+ if (!pkg->icon)
+ continue;
+ len = strlen(pkg->icon->source);
+ dest = malloc(len);
+ memcpy(dest, pkg->icon->source, len);
+ XPUSHs(sv_2mortal(newSVpv(dest, len)));
+ }
+
+void
+Spec_icon_url(spec)
+ Spec spec
+ PREINIT:
+ Package pkg;
+ PPCODE:
+ for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
+ char * dest = NULL;
+ int len;
+ if (!pkg->icon)
+ continue;
+ len = strlen(pkg->icon->fullSource);
+ dest = malloc(len);
+ memcpy(dest, pkg->icon->fullSource, len);
+ XPUSHs(sv_2mortal(newSVpv(dest, len)));
+ }
+
MODULE = RPM4 PACKAGE = RPM4::Db::_Problems PREFIX = ps_
void