CLI/CmdCalendar
- When the binary is named (or symlinked to) 'cal', then CLI::_args[0] must be clobbered, and restored for subsequent commands.
This commit is contained in:
@@ -411,6 +411,12 @@ void CLI::analyze (bool parse /* = true */, bool strict /* = false */)
|
|||||||
}
|
}
|
||||||
|
|
||||||
_args.push_back (a);
|
_args.push_back (a);
|
||||||
|
|
||||||
|
if (a.hasTag ("CALENDAR"))
|
||||||
|
{
|
||||||
|
A cal ("argCal", "calendar");
|
||||||
|
_args.push_back (cal);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (context.config.getInteger ("debug.parser") >= 3)
|
if (context.config.getInteger ("debug.parser") >= 3)
|
||||||
|
|||||||
@@ -335,7 +335,11 @@ int CmdCalendar::execute (std::string& output)
|
|||||||
if (context.commands.find (report) == context.commands.end ())
|
if (context.commands.find (report) == context.commands.end ())
|
||||||
throw std::string (STRING_ERROR_DETAILS);
|
throw std::string (STRING_ERROR_DETAILS);
|
||||||
|
|
||||||
|
// If the executable was "cal" or equivalent, replace it with "task".
|
||||||
std::string executable = context.cli._args[0].attribute ("raw");
|
std::string executable = context.cli._args[0].attribute ("raw");
|
||||||
|
std::string::size_type cal = executable.find ("cal");
|
||||||
|
if (cal != std::string::npos)
|
||||||
|
executable = executable.substr (0, cal) + PACKAGE;
|
||||||
|
|
||||||
std::vector <std::string> args;
|
std::vector <std::string> args;
|
||||||
args.push_back (executable);
|
args.push_back (executable);
|
||||||
|
|||||||
Reference in New Issue
Block a user