Author: rpmcruz
Date: Mon Nov 3 19:11:53 2008
New Revision: 52860
URL: http://svn.opensuse.org/viewcvs/yast?rev=52860&view=rev
Log:
* src/yzyppwrapper.cc: bug fix 441143: use candidate object as the
newest version -- just looking at the numbers ignores the arch.
Modified:
trunk/gtk/ChangeLog
trunk/gtk/src/yzyppwrapper.cc
Modified: trunk/gtk/ChangeLog
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/ChangeLog?rev=52860&r1=52859&r2=52860&view=diff
==============================================================================
--- trunk/gtk/ChangeLog (original)
+++ trunk/gtk/ChangeLog Mon Nov 3 19:11:53 2008
@@ -1,3 +1,8 @@
+2008-11-03 Ricardo Cruz
+
+ * src/yzyppwrapper.cc: bug fix 441143: use candidate object as the
+ newest version -- just looking at the numbers ignores the arch.
+
2008-11-02 Ricardo Cruz
* src/YGProgressBar.cc: got rid of ygtkprogressbar.
Modified: trunk/gtk/src/yzyppwrapper.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/yzyppwrapper.cc?rev=52860&r1=52859&r2=52860&view=diff
==============================================================================
--- trunk/gtk/src/yzyppwrapper.cc (original)
+++ trunk/gtk/src/yzyppwrapper.cc Mon Nov 3 19:11:53 2008
@@ -1000,13 +1000,14 @@
m_sel->setStatus (status);
}
- static Ypp::Package::Version *constructVersion (ZyppObject object)
+ static Ypp::Package::Version *constructVersion (
+ ZyppObject object, ZyppObject installedObj)
{
Ypp::Package::Version *version = new Ypp::Package::Version();
version->number = object->edition().asString();
version->arch = object->arch().asString();
version->repo = ypp->impl->getRepository (object->repoInfo().alias());
- version->cmp = 0;
+ version->cmp = installedObj ? zypp::Edition::compare (object->edition(), installedObj->edition()) : 0;
version->impl = (void *) get_pointer (object);
return version;
}
@@ -1016,7 +1017,7 @@
if (!m_installedVersion) {
const ZyppObject installedObj = m_sel->installedObj();
assert (installedObj != NULL);
- m_installedVersion = constructVersion (installedObj);
+ m_installedVersion = constructVersion (installedObj, NULL);
}
return m_installedVersion;
}
@@ -1025,13 +1026,20 @@
{
if (!m_availableVersions) {
const ZyppObject installedObj = m_sel->installedObj();
+ const ZyppObject candidateObj = m_sel->candidateObj();
for (zypp::ui::Selectable::available_iterator it = m_sel->availableBegin();
it != m_sel->availableEnd(); it++) {
- Ypp::Package::Version *version = constructVersion (*it);
- if (installedObj)
- version->cmp = zypp::Edition::compare ((*it)->edition(), installedObj->edition());
- m_availableVersions = g_slist_append (m_availableVersions, version);
+ if (candidateObj && (*it)->edition() == candidateObj->edition() &&
+ (*it)->arch() == candidateObj->arch())
+ continue;
+ Ypp::Package::Version *version = constructVersion (*it, installedObj);
+ m_availableVersions = g_slist_prepend (m_availableVersions, version);
+ }
+ if (candidateObj) { // make sure this goes first
+ Ypp::Package::Version *version = constructVersion (candidateObj, installedObj);
+ m_availableVersions = g_slist_prepend (m_availableVersions, version);
}
+#if 0 // let zypp order prevail
struct inner {
static gint version_compare (gconstpointer pa, gconstpointer pb)
{
@@ -1042,6 +1050,7 @@
}
};
m_availableVersions = g_slist_sort (m_availableVersions, inner::version_compare);
+#endif
}
return (Ypp::Package::Version *) g_slist_nth_data (m_availableVersions, nb);
}
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org