Enhancement

- When presenting lists of ambiguous command, attributes and modifiers
  to the user, it is now a sorted list.
This commit is contained in:
Paul Beckingham 2010-07-28 17:47:58 -04:00
parent 96bd3ff8db
commit e886f7635b
3 changed files with 14 additions and 6 deletions

View file

@ -25,6 +25,7 @@
// //
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <sstream> #include <sstream>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
@ -253,6 +254,7 @@ bool Att::validNameValue (
{ {
std::string error = "Ambiguous attribute '" + name + "' - could be either of "; // TODO i18n std::string error = "Ambiguous attribute '" + name + "' - could be either of "; // TODO i18n
std::sort (matches.begin (), matches.end ());
std::string combined; std::string combined;
join (combined, ", ", matches); join (combined, ", ", matches);
@ -278,6 +280,7 @@ bool Att::validNameValue (
{ {
std::string error = "Ambiguous modifier '" + mod + "' - could be either of "; // TODO i18n std::string error = "Ambiguous modifier '" + mod + "' - could be either of "; // TODO i18n
std::sort (matches.begin (), matches.end ());
std::string combined; std::string combined;
join (combined, ", ", matches); join (combined, ", ", matches);
error += combined; error += combined;

View file

@ -25,13 +25,14 @@
// //
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
#include <iostream> // TODO Remove
#include <algorithm> #include <algorithm>
#include "Cmd.h" #include <Cmd.h>
#include "Context.h" #include <Context.h>
#include "util.h" #include <util.h>
#include "text.h" #include <text.h>
#include "i18n.h" #include <i18n.h>
#include "main.h" #include <main.h>
extern Context context; extern Context context;
@ -94,6 +95,7 @@ void Cmd::parse (const std::string& input)
{ {
std::string error = "Ambiguous command '" + candidate + "' - could be either of "; // TODO i18n std::string error = "Ambiguous command '" + candidate + "' - could be either of "; // TODO i18n
std::sort (matches.begin (), matches.end ());
std::string combined; std::string combined;
join (combined, ", ", matches); join (combined, ", ", matches);
throw error + combined; throw error + combined;

View file

@ -25,6 +25,7 @@
// //
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include <vector> #include <vector>
@ -397,6 +398,8 @@ void guess (
else else
{ {
std::sort (matches.begin (), matches.end ());
std::string error = "Ambiguous "; // TODO i18n std::string error = "Ambiguous "; // TODO i18n
error += type; error += type;
error += " '"; error += " '";