void poldek__ts_display_summary(struct poldek_ts *ts)
{
int ninst = 0, ndep = 0, nrm = 0, npkgs = 0, parseable = 0;
-+ long sinsts = 0, sdeps = 0, srems = 0, sdiff = 0;
++ long int sinsts = 0, sdeps = 0, srems = 0, sdiff = 0;
tn_array *ipkgs, *idepkgs, *rmpkgs, *pkgs;
char ms[1024], *to, *prefix;
- int n;
-
- if (ts->type == POLDEK_TS_UNINSTALL) {
+ if (ipkgs)
-+ for (i=0; i < n_array_size(ipkgs); i++) {
++ for (i=0; i < ninst; i++) {
+ struct pkg *pkg = n_array_nth(ipkgs, i);
+ sinsts += pkg->size;
+ }
+ if (idepkgs)
-+ for (i=0; i < n_array_size(idepkgs); i++) {
++ for (i=0; i < ndep; i++) {
+ struct pkg *pkg = n_array_nth(idepkgs, i);
+ sdeps += pkg->size;
+ }
+ if (rmpkgs)
-+ for (i=0; i < n_array_size(rmpkgs); i++) {
++ for (i=0; i < nrm; i++) {
+ struct pkg *pkg = n_array_nth(rmpkgs, i);
+ srems += pkg->size;
+ }
prefix = "R";
pkgs = rmpkgs;
npkgs = nrm + ndep;
-+ sdiff = sdeps + srems;
++ sdiff = - srems - sdeps;
nrm = 0;
}
n_assert(pkgs);
packages_display_summary(1, "R", rmpkgs, parseable);
}
+
-+ if (sdiff) {
-+ char size[64];
-+ snprintf_size(size, sizeof(size), abs(sdiff), 1, 1);
++ if (sdiff != 0) {
++ char size[64];
++ snprintf_size(size, sizeof(size), labs(sdiff), 1, 1);
+
-+ if (sdiff > 0 && ts->type != POLDEK_TS_UNINSTALL)
-+ msgn(1, _("This operation will take %s of disk space."), size);
-+ else
-+ msgn(1, _("This operation will free %s of disk space."), size);
++ if (sdiff > 0)
++ msgn(1, _("This operation will take %s of disk space."), size);
++ else
++ msgn(1, _("This operation will free %s of disk space."), size);
+ }
}