diff options
author | Ian Jackson <ian@chiark.chu.cam.ac.uk> | 1996-05-23 21:31:05 +0100 |
---|---|---|
committer | Ian Jackson <ian@chiark.chu.cam.ac.uk> | 1996-05-23 21:31:05 +0100 |
commit | ac65bf803158ba30ac95d30730231a964d1b12aa (patch) | |
tree | 10fa36c86e27798096d24821b4652c1bc240b0d8 /dselect | |
parent | c503a31249f796403133b96da086ca05376572ac (diff) | |
download | dpkg-ac65bf803158ba30ac95d30730231a964d1b12aa.tar.gz |
dpkg (1.2.2); priority=MEDIUM
* Fixed dselect coredump found by Erick Branderhorst (thanks).
* Sort obsolete removed packages separately, not under Available.
-- Ian Jackson <ian@chiark.chu.cam.ac.uk> Thu, 23 May 1996 21:31:05 +0100
Diffstat (limited to 'dselect')
-rw-r--r-- | dselect/pkgdepcon.cc | 3 | ||||
-rw-r--r-- | dselect/pkgdisplay.cc | 6 | ||||
-rw-r--r-- | dselect/pkglist.cc | 16 | ||||
-rw-r--r-- | dselect/pkglist.h | 1 |
4 files changed, 19 insertions, 7 deletions
diff --git a/dselect/pkgdepcon.cc b/dselect/pkgdepcon.cc index 75ea43490..bfe48c985 100644 --- a/dselect/pkgdepcon.cc +++ b/dselect/pkgdepcon.cc @@ -35,8 +35,9 @@ extern "C" { static const int depdebug= 1; int packagelist::useavailable(pkginfo *pkg) { - if (informative(pkg,&pkg->available) && + if (pkg->clientdata && pkg->clientdata->selected == pkginfo::want_install && + informative(pkg,&pkg->available) && (pkg->status != pkginfo::stat_installed || versioncompare(&pkg->available.version,&pkg->installed.version) > 1)) return 1; diff --git a/dselect/pkgdisplay.cc b/dselect/pkgdisplay.cc index 89bd9f0f3..b024f6722 100644 --- a/dselect/pkgdisplay.cc +++ b/dselect/pkgdisplay.cc @@ -59,13 +59,15 @@ const char "Updated", "Obsolete/local", "Up-to-date", - "Available" }, + "Available", + "Removed" }, *const ssastrings[]= { "Brokenly installed packages", "Newly available packages", "Updated packages (newer version is available)", "Obsolete and local packages present on system", "Up to date installed packages", - "Available packages (not currently installed)" }; + "Available packages (not currently installed)", + "Removed and no longer available packages" }; const char *const sssstrings[]= { "Brokenly installed packages", diff --git a/dselect/pkglist.cc b/dselect/pkglist.cc index dc62597a2..90ed643f4 100644 --- a/dselect/pkglist.cc +++ b/dselect/pkglist.cc @@ -153,6 +153,7 @@ void packagelist::sortinplace() { void packagelist::ensurestatsortinfo() { const struct versionrevision *veri; const struct versionrevision *vera; + struct pkginfo *pkg; int index; if (debug) fprintf(debug,"packagelist[%p]::ensurestatsortinfos() " @@ -170,7 +171,10 @@ void packagelist::ensurestatsortinfo() { if (debug) fprintf(debug,"packagelist[%p]::ensurestatsortinfos() i=%d pkg=%s\n", this,index,table[index]->pkg->name); - switch (table[index]->pkg->status) { + pkg= table[index]->pkg; + if (!pkg->installed.valid) blankpackageperfile(&pkg->installed); + if (!pkg->available.valid) blankpackageperfile(&pkg->available); + switch (pkg->status) { case pkginfo::stat_unpacked: case pkginfo::stat_halfconfigured: case pkginfo::stat_halfinstalled: @@ -178,9 +182,13 @@ void packagelist::ensurestatsortinfo() { break; case pkginfo::stat_notinstalled: case pkginfo::stat_configfiles: - table[index]->ssavail= - table[index]->original == pkginfo::want_unknown - ? ssa_notinst_unseen : ssa_notinst_seen; + if (!informativeversion(&pkg->available.version)) { + table[index]->ssavail= ssa_notinst_gone; + } else if (table[index]->original == pkginfo::want_unknown) { + table[index]->ssavail= ssa_notinst_unseen; + } else { + table[index]->ssavail= ssa_notinst_seen; + } break; case pkginfo::stat_installed: veri= &table[index]->pkg->installed.version; diff --git a/dselect/pkglist.h b/dselect/pkglist.h index 575638be1..c93db2535 100644 --- a/dselect/pkglist.h +++ b/dselect/pkglist.h @@ -46,6 +46,7 @@ enum ssavailval { // Availability sorting order, first to last: ssa_installed_gone, // Installed but no longer available ssa_installed_sameold, // Same or older version available as installed ssa_notinst_seen, // Available but not installed + ssa_notinst_gone, // Not available, and only config files left ssa_none=-1 }; |