- Removed support for non-extended forms, which is approximately half of the
formats. These include:
YYYYMMDD
YYYYWww
YYYYWwwD
hhmmѕsZ
hhmmZ
hhZ
and combinations thereof. Essentially all forms that contains run-on sequences
of integers, without separators. These removed forms will still be supported
via rc.dateformat.
- Removed unsupported forms from iso8601d.t.cpp.
- Removed unsupported forms from datetime-negative.t, and corrected the tests
that now succeed.
- Disallows 2-digit times, such as 14 (2pm). Now requires at least minutes
included as well. This is likely to need further review, and possible dropping
of all non-extended date forms (hhmmss, yyyymmdd), otherwise there will always
be confusion between ID, UUID and ISO8601 dates.
- Removed 2-digit time tests.
- This is a large commit, as all the changes are centered around the elimination
of CLI.
- CLI is no longer compiled.
- Context no longer maintains CLI + CLI2.
- Filter now walks the parse tree and sends to Eval a
std::vector <std::pair <std::string, Lexer::Type>> containing only args tagged
with FILTER.
- Filter more efficiently sets/unsets Eval::debug, by doing it less often.
- The filterExpr.length() check is no longer meaningful, and instead the size of
the std::vector above is used.
- Filter::pendingOnly performs better analysis.
- Filter::safety makes use of the std::vector size also.
- Task::modify makes use of 'canonical' rather than 'name', which is a policy
change, not a fix.
- If an argument is an exact match for a command ('projects'), it is a command.
- If an argument is not an exact match for command ('project'), but is an exact
match for an attribute, it is not a command.
- If an argument fails the above tests, but canonicalizes to a command, it is a
command.
- Consider 'project.is:home' and 'project:home.garden'. The colon ':' and the
dot '.' switch places and change the meaning. This was not caught by the paser.
- Removed commented call that is now merged.