- Added an A3::is_attr type override for 'recur', which needs to be
  treated as an un-expanded 'string' type, most, but not all of the
  time.
- Documented the above in ColRecur.cpp.
- Modified Command.cpp to recognize both type 'duration' and name 'recur'.
- Removed Command::next_mod_group argument coalescing for date types,
  which was not used anyway.
- Improved the error message for unrecognized durations, which previously
  included the word 'date'.
- Modified unit tests to accomodate the above error message change.
- Added bug.972.t unit tests, which fail, because it isn't fixed yet.
- Made A3::dump const so it can be used anywhere.
This commit is contained in:
Paul Beckingham 2012-07-08 10:47:01 -04:00
parent 5fcc33f1f8
commit 4d4f286330
11 changed files with 81 additions and 25 deletions

View file

@ -559,7 +559,8 @@ void Command::modify_task (
}
// Durations too.
else if (column->type () == "duration")
else if (name == "recur" ||
column->type () == "duration")
{
// All values must be eval'd first.
A3 value_tokens;
@ -737,19 +738,7 @@ bool Command::next_mod_group (const A3& input, Arg& arg, unsigned int& pos)
{
arg = input[pos++];
// Date attributes aggregate durations and operators.
if (arg._type == Arg::type_date &&
arg._category == Arg::cat_attr)
{
while (pos < input.size () &&
(input[pos]._type == Arg::type_duration ||
input[pos]._category == Arg::cat_op))
{
arg._raw += " " + input[pos++]._raw;
}
}
else if (arg._raw == "depends")
if (arg._raw == "depends")
{
while (pos < input.size () &&
(input[pos]._category == Arg::cat_op ||