- Now allows abbreviations of aliases.
- No longer truncates commands after --.
This commit is contained in:
Paul Beckingham 2009-07-05 13:26:53 -04:00
parent f2af6cc2dd
commit e20e05ab54

View file

@ -280,6 +280,17 @@ std::string Context::canonicalize (const std::string& input) const
{
std::string canonical = input;
// First try to autocomplete the alias.
std::vector <std::string> options;
std::vector <std::string> matches;
foreach (name, aliases)
options.push_back (name->first);
autoComplete (input, options, matches);
if (matches.size () == 1)
{
canonical = matches[0];
// Follow the chain.
int i = 10; // Safety valve.
std::map <std::string, std::string>::const_iterator found;
@ -288,6 +299,7 @@ std::string Context::canonicalize (const std::string& input) const
if (i < 1)
return input;
}
return canonical;
}
@ -362,11 +374,13 @@ void Context::loadCorrectConfigFile ()
// Apply overrides of type: "rc.name:value"
std::vector <std::string> filtered;
bool foundTerminator = false;
foreach (arg, args)
{
if (*arg == "--")
break;
else if (arg->substr (0, 3) == "rc.")
foundTerminator = true;
else if (!foundTerminator &&
arg->substr (0, 3) == "rc.")
{
std::string name;
std::string value;