- 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.
- Fixed bug #1006, #1024, which caused words like the German 'im' and 'des' in
a description to be expanded into 'imask' and 'description' (thanks to
Louis-Claude Canon and Martin U).
- Promoted Louis-Claude Canon in the AUTHORS file, added Martin U.
- Fixed bug #995, which mis-parsed UUIDs in filters as other elements (thanks
to Bryce Harrington).
- Nibbler no longer permits 8-character UUID abbreviations, because too often
they resemble other forms, such as '1111111d' which looks like a duration.
- Modified unit tests accordingly.
- Removed the feature that allows commands to be piped in to stdin,
and appended to any existing command line. This feature is
conditionally compiled, controlled by the FEATURE_STDIN define in
main.h
- Many unit tests contained "echo '-- y'", and now use "echo 'y'"
because the '--' is no longer supported on stdin.
- Thanks to the IRC team for testing, including Bryce Harrington,
Sam Stuck, Owen Clarke, Greg Grossmeier.
Manually include unistd.h in a couple of places get things building with gcc
4.7, which removed it from the global namespace. This fixes the following build
errors:
src/A3.cpp:283:3: error: 'STDIN_FILENO' was not declared in this scope
src/commands/CmdEdit.cpp:598:30: error: 'getpid' was not declared in this scope
src/commands/CmdEdit.cpp:603:47: error: 'chdir' was not declared in this scope
Signed-off-by: Paul Beckingham <paul@beckingham.net>
- Tag matching was being performed using the regex \b<tag>\b, which makes
taskwarrior dependent on regex lib bugs for basic functionality. This is
now modified to use pseudo-operators _hastag_ and _notag_.
- Fixed bug #818, which caused partial tag matching (thanks to Joe Holloway).
- Note that the regex word boundary anchors are different for Solaris
and Linux, and largely broken on OSX.
- Added unit tests.
- Possible fix for bug #892, which I cannot replicate anyway. This fix
involves testing my suspicion that std::map autovivifies via
std::map::operator[], which is not nice. Will ask Dmitriy to confirm.
- Added feature #827, which allows augmentation of default.command with extra
arguments, when default.command itself contains mulitple arguments (thanks to
Aikido Guy).
- Fixed bug #846, which prevented the default.command configuration from
handling multiple arguments (thanks to Uli Martens).
- While fixing bug.360.t, discovered a bigger problem, which is not yet
fixed. When a due date is removed from a recurring child task, the
imask, parent and recur attributes should also be removed. Similarly
when a recur frequency is removed from a recurring child task, the
imask and parent should also be removed.
- Net result: two new failing tests.
- Lowered the precedence of tag detection so that dates and durations are
recognized first.
- Modified the allowable tokens for a tag to be almost anything.
- Re-enabled shadow files, but in a new, simpler manner, that allows the
rc.shadow.command to override settings like color if necessary.
- Modifed A3 to capture program name and store it in the Context.
- Some attribute values (ie wait:tomorrow) when parsed, need to take
the data type of the attribute (date) and use that as an implied type
of the value (date literal).
- Arg renders type-less and category-less values as "", instead of "none".
Cleaner output.
- Arg now has a _value member that reflects the value in play, rather
than the input _raw value. Only _value is used in eval.
- DOM expansion capabilities are now controlled by rc.dom.
- Arguments are now categorized as either "literal" or a specific
category, with accompanying type. Type is inferred for literals,
and referenced for attributes.
- The A3::Arg object is very similar to the E9::Term object, so the two are
being merged. First step is to separate A3::Arg into it's own space, then
add a _type member.
- Added more valid stop characters as terminators for various arg types.
- Removed redundant E9 special handling for dates, which is already built in
to the Date object.
- Duration were parsed as <int><unit> in A3, whereas <number><unit> is
correct.
- Added Nibbler::str method for internal access.
- Nibbler::save, ::restore now return positions. Useful for extracting
substrings.
- Modified countdown.t to use the (now) correct units for durations.
- Restored the <name>.<modifier>[:=]<value> syntax that was reduced
to just <name>.<modifier>:<value> to make parsing easier. Now that
A3 is more sophisticated, we can have our sugar back.
- The command line construct "tags.none:" is translated into the expression
"tags = ''", but instead of '=' I had entered '=='. Force of C/C++/Perl
habit.
- When parsing duration literals, look-ahead now prevents an ordinal
such as '31st' (August 31st) from being interpreted as two tokens
'31s' (duration) and 't' (word). This is the same fix that was
applied to A3::is_number. I'll be there are more that I missed.