diff options
author | Per Øyvind Karlsen <peroyvind@mandriva.org> | 2010-10-03 04:31:57 +0000 |
---|---|---|
committer | Per Øyvind Karlsen <peroyvind@mandriva.org> | 2010-10-03 04:31:57 +0000 |
commit | 27c2c6731eab4d317e285e91edab2e49f33f5be4 (patch) | |
tree | 814aecd68a92f3e987f9e778e420324f99fe2ec0 /URPM.xs | |
parent | 7ec00820d2f281aaeca7aeba53629247a3b56eda (diff) | |
download | perl-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.xs | 32 |
1 files changed, 14 insertions, 18 deletions
@@ -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) |