[Aptitude-devel] r3204 - in branches/aptitude-0.3/aptitude: . src/cmdline
Daniel Burrows
dburrows@costa.debian.org
Sat, 30 Apr 2005 19:08:37 +0000
Author: dburrows
Date: Sat Apr 30 19:08:30 2005
New Revision: 3204
Modified:
branches/aptitude-0.3/aptitude/ChangeLog
branches/aptitude-0.3/aptitude/src/cmdline/cmdline_action.cc
branches/aptitude-0.3/aptitude/src/cmdline/cmdline_action.h
branches/aptitude-0.3/aptitude/src/cmdline/cmdline_do_action.cc
branches/aptitude-0.3/aptitude/src/cmdline/cmdline_prompt.cc
branches/aptitude-0.3/aptitude/src/cmdline/cmdline_resolver.cc
branches/aptitude-0.3/aptitude/src/cmdline/cmdline_resolver.h
Log:
Whee, support package state changes at the resolver prompt.
Modified: branches/aptitude-0.3/aptitude/ChangeLog
==============================================================================
--- branches/aptitude-0.3/aptitude/ChangeLog (original)
+++ branches/aptitude-0.3/aptitude/ChangeLog Sat Apr 30 19:08:30 2005
@@ -1,5 +1,11 @@
2005-04-30 Daniel Burrows <dburrows@debian.org>
+ * src/cmdline/cmdline_action.cc, src/cmdline/cmdline_action.h, src/cmdline/cmdline_do_action.cc, src/cmdline/cmdline_prompt.cc, src/cmdline/cmdline_resolver.cc, src/cmdline/cmdline_resolver.h:
+
+ Add support for modifying package states from the resolver
+ prompt; in the process, moved the routine responsible for doing
+ this from cmdline_prompt.cc to cmdline_action.cc.
+
* src/cmdline/cmdline_resolver.cc:
Fix some of the formatting problems with the resolver help text.
Modified: branches/aptitude-0.3/aptitude/src/cmdline/cmdline_action.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/cmdline/cmdline_action.cc (original)
+++ branches/aptitude-0.3/aptitude/src/cmdline/cmdline_action.cc Sat Apr 30 19:08:30 2005
@@ -341,3 +341,79 @@
return rval;
}
+
+void cmdline_parse_action(string s,
+ pkgset &to_install, pkgset &to_hold,
+ pkgset &to_remove, pkgset &to_purge,
+ int verbose)
+{
+ string::size_type loc=0;
+
+ while(loc<s.size() && isspace(s[loc]))
+ ++loc;
+
+ if(loc==s.size())
+ return;
+
+ cmdline_pkgaction_type action;
+
+ switch(s[loc])
+ {
+ case '_':
+ action=cmdline_purge;
+ break;
+ case '-':
+ action=cmdline_remove;
+ break;
+ case '=':
+ action=cmdline_hold;
+ break;
+ case '+':
+ action=cmdline_install;
+ break;
+ default:
+ printf(_("Bad action character '%c'\n"), s[0]);
+ return;
+ }
+
+ ++loc;
+
+ while(loc<s.size())
+ {
+ while(loc<s.size() && isspace(s[loc]))
+ ++loc;
+
+ if(loc<s.size())
+ switch(s[loc])
+ {
+ case '_':
+ action=cmdline_purge;
+ ++loc;
+ break;
+ case '-':
+ action=cmdline_remove;
+ ++loc;
+ break;
+ case '=':
+ action=cmdline_hold;
+ ++loc;
+ break;
+ case '+':
+ action=cmdline_install;
+ ++loc;
+ break;
+ default:
+ {
+ string pkgname;
+ while(loc<s.size() && !isspace(s[loc]))
+ pkgname+=s[loc++];
+
+ if(!cmdline_applyaction(pkgname, action,
+ to_install, to_hold,
+ to_remove, to_purge,
+ verbose))
+ return;
+ }
+ }
+ }
+}
Modified: branches/aptitude-0.3/aptitude/src/cmdline/cmdline_action.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/cmdline/cmdline_action.h (original)
+++ branches/aptitude-0.3/aptitude/src/cmdline/cmdline_action.h Sat Apr 30 19:08:30 2005
@@ -21,4 +21,13 @@
pkgset &to_remove, pkgset &to_purge,
int verbose);
+/** Parses a list of actions and executes them. If there is a
+ * syntax or other error, all the commands up to the point of
+ * the error will be executed.
+ */
+void cmdline_parse_action(string s,
+ pkgset &to_install, pkgset &to_hold,
+ pkgset &to_remove, pkgset &to_purge,
+ int verbose);
+
#endif // CMDLINE_ACTION_H
Modified: branches/aptitude-0.3/aptitude/src/cmdline/cmdline_do_action.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/cmdline/cmdline_do_action.cc (original)
+++ branches/aptitude-0.3/aptitude/src/cmdline/cmdline_do_action.cc Sat Apr 30 19:08:30 2005
@@ -173,7 +173,8 @@
to_remove,
to_purge,
assume_yes,
- !fix_broken);
+ !fix_broken,
+ verbose);
_error->DumpErrors();
Modified: branches/aptitude-0.3/aptitude/src/cmdline/cmdline_prompt.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/cmdline/cmdline_prompt.cc (original)
+++ branches/aptitude-0.3/aptitude/src/cmdline/cmdline_prompt.cc Sat Apr 30 19:08:30 2005
@@ -489,84 +489,6 @@
return rval;
}
-// Parses a list of actions and executes them. Aborts after a partial
-// action if something bad happens.
-static void cmdline_parse_action(string s,
- pkgset &to_install, pkgset &to_hold,
- pkgset &to_remove, pkgset &to_purge,
- int verbose)
-{
- string::size_type loc=0;
-
- while(loc<s.size() && isspace(s[loc]))
- ++loc;
-
- if(loc==s.size())
- return;
-
- cmdline_pkgaction_type action;
-
- switch(s[loc])
- {
- case '_':
- action=cmdline_purge;
- break;
- case '-':
- action=cmdline_remove;
- break;
- case '=':
- action=cmdline_hold;
- break;
- case '+':
- action=cmdline_install;
- break;
- default:
- printf(_("Bad action character '%c'\n"), s[0]);
- return;
- }
-
- ++loc;
-
- while(loc<s.size())
- {
- while(loc<s.size() && isspace(s[loc]))
- ++loc;
-
- if(loc<s.size())
- switch(s[loc])
- {
- case '_':
- action=cmdline_purge;
- ++loc;
- break;
- case '-':
- action=cmdline_remove;
- ++loc;
- break;
- case '=':
- action=cmdline_hold;
- ++loc;
- break;
- case '+':
- action=cmdline_install;
- ++loc;
- break;
- default:
- {
- string pkgname;
- while(loc<s.size() && !isspace(s[loc]))
- pkgname+=s[loc++];
-
- if(!cmdline_applyaction(pkgname, action,
- to_install, to_hold,
- to_remove, to_purge,
- verbose))
- return;
- }
- }
- }
-}
-
static void cmdline_parse_show(string response,
int verbose)
{
@@ -656,7 +578,8 @@
to_remove,
to_purge,
assume_yes,
- force_no_change))
+ force_no_change,
+ verbose))
{
cont=true;
rval=false;
Modified: branches/aptitude-0.3/aptitude/src/cmdline/cmdline_resolver.cc
==============================================================================
--- branches/aptitude-0.3/aptitude/src/cmdline/cmdline_resolver.cc (original)
+++ branches/aptitude-0.3/aptitude/src/cmdline/cmdline_resolver.cc Sat Apr 30 19:08:30 2005
@@ -19,6 +19,7 @@
#include "cmdline_resolver.h"
+#include "cmdline_action.h"
#include "cmdline_common.h"
#include "cmdline_prompt.h"
#include "cmdline_show.h"
@@ -129,7 +130,8 @@
pkgset &to_remove,
pkgset &to_purge,
bool assume_yes,
- bool force_no_change)
+ bool force_no_change,
+ int verbose)
{
while(!show_broken())
{
@@ -206,6 +208,14 @@
cout << _("The following commands are available:") << endl;
resolver_help(cout);
break;
+ case '+':
+ case '-':
+ case '=':
+ case '_':
+ cmdline_parse_action(response, to_install, to_hold,
+ to_remove, to_purge, verbose);
+ modified_pkgs=true;
+ break;
default:
cout << _("Invalid response; please enter one of the following commands:") << endl;
resolver_help(cout);
Modified: branches/aptitude-0.3/aptitude/src/cmdline/cmdline_resolver.h
==============================================================================
--- branches/aptitude-0.3/aptitude/src/cmdline/cmdline_resolver.h (original)
+++ branches/aptitude-0.3/aptitude/src/cmdline/cmdline_resolver.h Sat Apr 30 19:08:30 2005
@@ -39,15 +39,17 @@
* \param assume_yes if \b true, try to find a single solution
* (regardless of how long it takes) and accept it immediately.
*
- * \param force_no_change if \b true, assign estra version scores to
+ * \param force_no_change if \b true, assign extra version scores to
* heavily bias the resolver against changing any packages in the
* supplied sets.
+ * \param verbose the verbosity level set by the user
*/
bool cmdline_resolve_deps(pkgset &to_install,
pkgset &to_hold,
pkgset &to_remove,
pkgset &to_purge,
bool assume_yes,
- bool force_no_change);
+ bool force_no_change,
+ int verbose);
#endif // CMDLINE_RESOLVER_H