aboutsummaryrefslogtreecommitdiffstats
path: root/URPM.xs
diff options
context:
space:
mode:
authorPer Øyvind Karlsen <peroyvind@mandriva.org>2010-10-03 04:31:57 +0000
committerPer Øyvind Karlsen <peroyvind@mandriva.org>2010-10-03 04:31:57 +0000
commit27c2c6731eab4d317e285e91edab2e49f33f5be4 (patch)
tree814aecd68a92f3e987f9e778e420324f99fe2ec0 /URPM.xs
parent7ec00820d2f281aaeca7aeba53629247a3b56eda (diff)
downloadperl-URPM-27c2c6731eab4d317e285e91edab2e49f33f5be4.tar
perl-URPM-27c2c6731eab4d317e285e91edab2e49f33f5be4.tar.gz
perl-URPM-27c2c6731eab4d317e285e91edab2e49f33f5be4.tar.bz2
perl-URPM-27c2c6731eab4d317e285e91edab2e49f33f5be4.tar.xz
perl-URPM-27c2c6731eab4d317e285e91edab2e49f33f5be4.zip
always print any errors reported with rpmtsProblems() in Trans_check()
Diffstat (limited to 'URPM.xs')
-rw-r--r--URPM.xs32
1 files changed, 14 insertions, 18 deletions
diff --git a/URPM.xs b/URPM.xs
index 011770b..2ea5fe6 100644
--- a/URPM.xs
+++ b/URPM.xs
@@ -3174,7 +3174,7 @@ Trans_check(trans, ...)
PREINIT:
I32 gimme = GIMME_V;
int translate_message = 0;
- int i;
+ int i, r;
PPCODE:
for (i = 1; i < items-1; i+=2) {
STRLEN len;
@@ -3184,28 +3184,24 @@ Trans_check(trans, ...)
translate_message = SvIV(ST(i+1));
}
}
- if (rpmtsCheck(trans->ts)) {
+ r = rpmtsCheck(trans->ts);
+ rpmps ps = rpmtsProblems(trans->ts);
+ if (rpmpsNumProblems(ps) > 0) {
if (gimme == G_SCALAR) {
XPUSHs(sv_2mortal(newSViv(0)));
} else if (gimme == G_ARRAY) {
- XPUSHs(sv_2mortal(newSVpv("error while checking dependencies", 0)));
- }
- } else {
- rpmps ps = rpmtsProblems(trans->ts);
- if (rpmpsNumProblems(ps) > 0) {
- if (gimme == G_SCALAR) {
- XPUSHs(sv_2mortal(newSViv(0)));
- } else if (gimme == G_ARRAY) {
- /* now translation is handled by rpmlib, but only for version 4.2 and above */
- PUTBACK;
- return_problems(ps, 1, 0);
- SPAGAIN;
- }
- } else if (gimme == G_SCALAR) {
- XPUSHs(sv_2mortal(newSViv(1)));
+ /* now translation is handled by rpmlib, but only for version 4.2 and above */
+ PUTBACK;
+ return_problems(ps, 1, 0);
+ SPAGAIN;
}
- ps = rpmpsFree(ps);
+ } else if (gimme == G_SCALAR) {
+ XPUSHs(sv_2mortal(newSViv(1)));
}
+ if(r == 1)
+ XPUSHs(sv_2mortal(newSVpv("error while checking dependencies", 0)));
+
+ ps = rpmpsFree(ps);
void
Trans_order(trans)