[zypp-commit] r10053 - in /trunk/zypper/src: zypper-search.h zypper.cc
Author: jkupec Date: Mon May 12 18:16:28 2008 New Revision: 10053 URL: http://svn.opensuse.org/viewcvs/zypp?rev=10053&view=rev Log: - fix --uninstalled-only in search Modified: trunk/zypper/src/zypper-search.h trunk/zypper/src/zypper.cc Modified: trunk/zypper/src/zypper-search.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper-search.h?rev=10053&r1=10052&r2=10053&view=diff ============================================================================== --- trunk/zypper/src/zypper-search.h (original) +++ trunk/zypper/src/zypper-search.h Mon May 12 18:16:28 2008 @@ -30,10 +30,12 @@ // the table used for output Table * _table; const GlobalOptions & _gopts; + bool _only_not_installed; - FillSearchTableSolvable( Table & table ) + FillSearchTableSolvable( Table & table, bool only_not_installed = false ) : _table( &table ) , _gopts(Zypper::instance()->globalOpts()) + , _only_not_installed(only_not_installed) { TableHeader header; @@ -98,10 +100,21 @@ } } - row << (installed ? "i" : "v"); + if (installed) + { + if (_only_not_installed) + continue; + row << "i"; + } + else + row << "v"; } else if (pi.isSatisfied()) // patches/patterns/products are installed if satisfied + { + if (_only_not_installed) + continue; row << "i"; + } else row << ""; @@ -127,6 +140,9 @@ *_table << row; } + if (_only_not_installed) + return true; + // show installed objects only if there is no counterpart in repos if (show_installed || s->availableEmpty()) { @@ -171,10 +187,12 @@ // the table used for output Table * _table; const GlobalOptions & _gopts; + bool _only_not_installed; - FillSearchTableSelectable( Table & table ) + FillSearchTableSelectable( Table & table, bool only_not_installed = false ) : _table( &table ) , _gopts(Zypper::instance()->globalOpts()) + , _only_not_installed(only_not_installed) { TableHeader header; // translators: S for installed Status @@ -190,7 +208,14 @@ { TableRow row; - row << (s->installedEmpty() ? (s->theObj().isSatisfied() ? "i" : "") : "i"); + if (!s->installedEmpty() | s->theObj().isSatisfied()) + { + if (_only_not_installed) + return true; + row << "i"; + } + else + row << ""; row << s->name(); row << s->theObj()->summary(); row << kind_to_string_localized(s->kind(), 1); @@ -208,10 +233,12 @@ // the table used for output Table * _table; const GlobalOptions & _gopts; - - FillPatchesTable( Table & table ) + bool _only_not_installed; + + FillPatchesTable( Table & table, bool only_not_installed = false ) : _table( &table ) , _gopts(Zypper::instance()->globalOpts()) + , _only_not_installed(only_not_installed) { TableHeader header; @@ -230,10 +257,13 @@ bool operator()(const zypp::PoolItem & pi) const { + if (pi.isSatisfied() && _only_not_installed) + return true; + TableRow row; zypp::Patch::constPtr patch = zypp::asKindzypp::Patch(pi.resolvable()); - + row << pi->repository().info().name() << pi->name() Modified: trunk/zypper/src/zypper.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/zypper.cc?rev=10053&r1=10052&r2=10053&view=diff ============================================================================== --- trunk/zypper/src/zypper.cc (original) +++ trunk/zypper/src/zypper.cc Mon May 12 18:16:28 2008 @@ -2534,7 +2534,7 @@ if (runningHelp()) { out().info(_command_help, Out::QUIET); return; } if (globalOpts().disable_system_resolvables || copts.count("uninstalled-only")) - query.setUninstalledOnly(); + query.setUninstalledOnly(); // beware: this is not all to it, look at zypper-search, _only_not_installed if (copts.count("installed-only")) query.setInstalledOnly(); //if (copts.count("match-any")) options.setMatchAny(); @@ -2607,17 +2607,17 @@ { if (command() == ZypperCommand::RUG_PATCH_SEARCH) { - FillPatchesTable callback(t); + FillPatchesTable callback(t, query.statusFilterFlags() & PoolQuery::UNINSTALLED_ONLY); invokeOnEach(query.poolItemBegin(), query.poolItemEnd(), callback); } else if (_gopts.is_rug_compatible || _copts.count("details")) { - FillSearchTableSolvable callback(t); + FillSearchTableSolvable callback(t, query.statusFilterFlags() & PoolQuery::UNINSTALLED_ONLY); invokeOnEach(query.selectableBegin(), query.selectableEnd(), callback); } else { - FillSearchTableSelectable callback(t); + FillSearchTableSelectable callback(t, query.statusFilterFlags() & PoolQuery::UNINSTALLED_ONLY); invokeOnEach(query.selectableBegin(), query.selectableEnd(), callback); } -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org
participants (1)
-
jkupec@svn.opensuse.org