Commit graph

599 commits

Author SHA1 Message Date
Paul Beckingham
9d74b55d48 Feature #725
- Added feature #725, which provides feedback when tasks become unblocked.
- Added unit tests.
2012-02-26 13:08:40 -05:00
Owen Clarke
87853bdd78 Bug #938
- Fixed compiler warnings on Solaris.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-23 20:43:54 -05:00
Paul Beckingham
9c641fd778 Credit
- Updated ChangeLog to reflect recent patches.
2012-02-23 20:27:38 -05:00
Paul Beckingham
15a0d7a801 Bug #880
- Fixed bug #880, which listed the wrong file paths for themes (thanks to Peter
  Lewis).
2012-02-23 17:26:52 -05:00
Paul Beckingham
39998d5cc5 Bug #932
- Fixed bug #932, which fixed change propagation for recurring tasks (thanks to
  Jennifer Cormier).
- Added unit tests, corrected some.
2012-02-20 17:25:31 -05:00
Paul Beckingham
9f8165e3c6 Bug #932 (part 1)
- Fixed bug that caused only parent recurring tasks to have their attributes
  properly removed.
- When duplicating a parent recurring task, a new recurring parent task is
  created.  When a child recurring task is duplicated, a plain task is created.
- Added unit tests.
- Thanks to Jennifer Cormier.
2012-02-20 01:10:42 -05:00
Paul Beckingham
0a0e8f0d6b Bug - UTF8
- Fixed bug in the handling of UTF8 JSON data from holidata.net, when
  update-holidays.pl when decoding and writing files.
2012-02-19 23:22:45 -05:00
Paul Beckingham
7a45db4d0f Feature #891
- Added feature #891, which allows for leftmost partial matches of UUID values.
  Makes direct comparisons for full-length values, and regular expressions for
  partial values.  Note that there is a minimum length of 8 hex digits.
- Added safety parsing mechanism that fails a partial UUID if immediately
  followed by a hex digit.  This allows for numbers longer than 8 digits to not
  be misinterpreted as a UUID.
- Implemented Nibbler::getPartialUUID.
- Implemented unit tests.
@@ -1145,12 +1145,23 @@ const A3 A3::sequence (const A3& input) const

   for (unsigned int i = 0; i < uuids.size (); ++i)
   {
-    if (ids.size ())
+    if (ids.size () + i > 0)
       sequenced.push_back (Arg ("or", Arg::cat_op));

-    sequenced.push_back (Arg ("uuid",        Arg::type_string, Arg::cat_dom));
-    sequenced.push_back (Arg ("=",                             Arg::cat_op));
-    sequenced.push_back (Arg (uuids[i],      Arg::type_string, Arg::cat_literal));
+    // A full-length UUID requires a string comparison.
+    if (uuids[i].length () == 36)
+    {
+      sequenced.push_back (Arg ("uuid",         Arg::type_string, Arg::cat_dom));
+      sequenced.push_back (Arg ("=",                              Arg::cat_op));
+      sequenced.push_back (Arg (uuids[i],       Arg::type_string, Arg::cat_literal));
+    }
+    // A UUID fragment is a leftmost comparison.
+    else
+    {
+      sequenced.push_back (Arg ("uuid",         Arg::type_string, Arg::cat_dom));
+      sequenced.push_back (Arg ("~",                              Arg::cat_op));
+      sequenced.push_back (Arg ("^" + uuids[i], Arg::type_string, Arg::cat_rx));
+    }
   }

   sequenced.push_back (Arg (")", Arg::cat_op));
@@ -1674,11 +1685,11 @@ bool A3::is_uuid (Nibbler& n, std::string& result)
   n.save ();
   result = "";
   std::string uuid;
-  if (n.getUUID (uuid))
+  if (n.getPartialUUID (uuid))
   {
     result += uuid;
     while (n.skip (',') &&
-           n.getUUID (uuid))
+           n.getPartialUUID (uuid))
     {
       result += ',' + uuid;
     }
@@ -1997,13 +2008,13 @@ bool A3::extract_uuid (
   Nibbler n (input);

   std::string uuid;
-  if (n.getUUID (uuid))
+  if (n.getPartialUUID (uuid))
   {
     sequence.push_back (uuid);

     while (n.skip (','))
     {
-      if (!n.getUUID (uuid))
+      if (!n.getPartialUUID (uuid))
         throw std::string (STRING_A3_UUID_AFTER_COMMA);

       sequence.push_back (uuid);
2012-02-19 22:27:40 -05:00
Paul Beckingham
c785836083 Feature #632
- Added feature #632, which allows environment variables TASKRC and TASKDATA
  to override .taskrc and .task directory locations (thanks to Steve Rader).
- Added unit tests.
+
2012-02-19 18:59:28 -05:00
Michal Vyskocil
78e5891cd3 Portability
- lua_open has been declared as deprecated in lua 5.1 and removed from
  5.2. Usage of luaL_newstate is thus recommended in both series.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-15 19:26:26 -05:00
Uli Martens
7fe5fc80e9 Bug #636
- Fixed bug #636, which causes the burndown reports to not honor the
  _forcecolor=off setting (thanks to Steve Rader, Uli Martens).

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-13 06:15:27 -05:00
Paul Beckingham
28a4947234 Bug #818
- 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.
2012-02-12 10:42:24 -05:00
Uli Martens
0f60e8c758 Bug #929
- Fixed bug #929, which corrected argument handling for aliases.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-12 08:15:45 -05:00
Paul Beckingham
86f113a24c Feature #609
- Added feature #609, which allows suppression of output labels and verbose
  text.
2012-02-03 00:05:46 -05:00
Paul Beckingham
8abc541777 Bug #906
- Fixed bug #906, which caused problems with inverted project matching (thanks
  to Uli Martens).
2012-02-02 23:51:31 -05:00
Paul Beckingham
565d14962d Bug #910
- Fixed bug #910, which caused unexpected behavior when duplicating a recurring
  task (thanks to Jennifer Cormier).
- Fixed typo in duplicate command that failed to remove the 'mask' attribute.
2012-02-02 23:31:22 -05:00
Paul Beckingham
2ce9322a28 Bug #917
- Fixed bug #917, which mis-encoded quotes (thanks to Uli Martens).
- Added unit tests.
- Minor unrelated edits.
2012-02-02 22:58:36 -05:00
Paul Beckingham
bff868145d Bug #901
- Fixed bug #901, which was preventing multiple IDs and UUIDs from being used
  as a filter (thanks to Bryce Harrington).
2012-01-30 01:00:45 -05:00
Paul Beckingham
5609711d47 Feature #571 - Special tag feedback
- The verbosity token 'special' now controls whether the feedback is provided
  when special tags are added to a task.
- Added new 'special' verbosity token documentation to man page.
- Added missing 'next' special tag to man page.
- Added new localized strings for describing special tags.
2012-01-29 18:28:07 -05:00
Paul Beckingham
bf9e14f581 Bug 899
- Fixed bug #899, which displayed incorrect project completion numbers (thanks
  to Paul-Gheorghe Barbu).
- Added unit tests.
2012-01-29 17:44:43 -05:00
Paul Beckingham
ec96d929a0 Bug 879 - Description/Annotation ending with Slash Causes Problems
- Backslashes actually.  The escaping mechanism in the low-level parser
  was eating leading \ characters when it should not.  Very hard bug to
  find, trivial to fix.
- Added unit tests to several components while narrowing this down.
2012-01-29 15:36:05 -05:00
Paul Beckingham
7a2bf28005 ChangeLog
- Updated ChangeLog to reflect several bugs that have been fixed, but
  were not reported.
2012-01-28 17:18:34 -05:00
Paul Beckingham
7cc3544f74 Bug #897
- Fixed bug #897, which omitted the UUID field from the 'completed'
  report, which is essential if you need to modify a completed task
  (thanks to Eli Lev).
2012-01-12 16:47:08 -05:00
Ralph Bean
36ed70ad93 Exports
- Provided sample sqlite3 export script in Python, to serve as a
  starting point for anyone wanting to migrate taskwarrior data into
  a SQL database.  Illustrates JSON parsing and separation of the
  relational data.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-01-10 17:58:34 -05:00
Owen Clarke
7c90d1e8cc Bug - Default TZ not always UTC.
From Owen:

I tried mktime on Darwin an Linux; looks like they both default to UTC if the TZ
environment variable is unset but on Solaris it defaults to the local timezone.
I compiled and ran the tests and checked the behaviour by running:

date
TZ="" date
TZ="UTC" date

On Solaris the first two are in local time and the third is in UTC.
On Darwin and Linux the first one is in local time and the other two are in UTC.

Found this as a reference, too, which mentions the suggested implementation in
'man 3 timegm':

http://stackoverflow.com/questions/6467844/is-c-mktime-different-on-windows-and-gnu-linux

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-01-05 18:08:24 -05:00
Owen Clarke
afcd362f67 + Fixed problem with duplicate 'project changed' messages.
Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-01-05 17:43:29 -05:00
Paul Beckingham
4eb5c8a0db Urgency
- Made the default urgency.age.coefficient non-zero.
- Updated documentation regarding new configuration settings.
2012-01-02 22:33:25 -05:00
Paul Beckingham
b35a2f54bb Documentation
- Removed "suspicion" comment about the autovivifying of map keys.
  Credited Dmitriy properly.
2011-12-31 11:39:50 -05:00
Matt Kraai
3a4871e975 Signed-off-by: Paul Beckingham <paul@beckingham.net>
Bug #836

 - Make A3 use same the number representation as the user.
2011-11-14 23:46:56 -05:00
Paul Beckingham
e13ad1bbaf Feature
- Added a 'uuids' command that parallels the 'ids' command.  This allows
  task UUIDs to be selected if the task is not pending.
- Updated documentation.
2011-10-29 23:53:36 -04:00
Paul Beckingham
01087c0ff4 Bug
- Fixed problem with DOM-checking the 'limit' pseudo-attribute (thanks to
  Barton Meeks).
2011-10-29 23:47:21 -04:00
Paul Beckingham
45262be011 Bug #860
- Fixed bug #860, which prevented lower-case priority values from being
  accepted (thanks to Michelle Crane).
- Added unit tests.
- Also included ChangeLog updates from other fixes that were misseed.
2011-10-16 00:46:13 -04:00
Paul Beckingham
5c685153dc Bug #859
- Fixed bug #859, which used only one color for the 'ghistory.*' report
  legends (thanks to Uli Martens).
2011-10-06 23:05:23 -04:00
Paul Beckingham
1009af83d0 Bug #862
- Fixed bug #862, which suppressed feedback from the 'denotate' command.
2011-10-06 08:44:16 -04:00
Paul Beckingham
b656f3c7e0 Documentation
- Updated ChangeLog with bugs that mysteriously fixed themselves.
2011-10-02 17:01:18 -04:00
Paul Beckingham
87d940c46d Bugs #822, #845
- Fixed bug #822, #845, which generated incorrect IDs (thanks to Matt Kraai and
  Michelle Crane).
2011-09-29 00:00:36 -04:00
Paul Beckingham
a99aa217d0 Bug #856
- Fixed bug #856, which prevented filters on missing project from working
  (thanks to Michelle Crane).
2011-09-28 23:26:07 -04:00
Paul Beckingham
4858931592 Bug #846, Feature #827
- 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).
2011-09-25 11:37:57 -04:00
Paul Beckingham
d3c6ddb87f Bug #839
- Fixed bug #839, which caused problems when recurrence frequencies of '1m'
  were used.  This is an obsolete form, and should now be '1mo' (thanks to
  Gour D).
2011-09-21 00:32:13 -04:00
Paul Beckingham
e478f6626b Bug #835
- Fixed bug #835, which prevented hierarchical projects from being recognized.
2011-09-21 00:19:42 -04:00
Paul Beckingham
965e15fe91 Bug #831
- Fixed bug #831 that imposed an arbitrary and incorrect assumption that
  caused some date fields from being parsed properly.
2011-09-20 23:58:33 -04:00
Federico Hernandez
070ec91566 Fixed bugs #533 and #536
- correct paths are now written to default .taskrc
2011-09-14 01:10:52 +02:00
Federico Hernandez
4083883ec4 Feature #813
- applied patch for eoq and soq (thanks to Paulo Almeida)
2011-09-03 16:38:26 +02:00
Paul Beckingham
6f38e10cab Feature #682
- Added feature #682, which allows the configuration variable 'defaultheight'
  to override the assumed height of 24 lines when 'detection' is not enabled
  (thanks to Steve Rader).
2011-08-23 23:29:36 -04:00
Paul Beckingham
397d1c2d09 Feature #806
- Added feature #806, which provides the ability to compare dates using the
  relational operator '>=' (thanks to Miguel de Val Borro).
2011-08-23 23:01:56 -04:00
Paul Beckingham
257f5ab3da Bug #458
- Fixed bug #458, removing the ambiguous 'm' as a duration, leaving 'mi[nutes]'
  and 'mo[nths]' requiring at least two characters for a match.
2011-08-23 22:46:32 -04:00
Paul Beckingham
d15cccdb7d Bug #694
- Fixed bug #694, which allows attributes to be modified while annotating a
  task (thanks to Aikido Guy).
2011-08-23 22:30:01 -04:00
Paul Beckingham
2f60bdf9d0 Bug #720
- Fixed bug #720, so that when the 'info' report renders total active time,
  it uses a lossless format (thanks to Bernhard B).
2011-08-23 22:15:00 -04:00
Paul Beckingham
89d3b4e805 Bug #737
- Fixed bug #737, which allows wait dates after due dates, but provides a
  warning (thanks to Arkady Grudzinsky).
2011-08-23 21:36:09 -04:00
Paul Beckingham
7dd3e081c7 Bug #804 - URL link and break line
- Addressed bug #804 by allowing rc.hyphenate to control whether hyphens are
  inserted when long lines are broken.  This may help prevent xterm from
  mis-parsing URLs in task annotations, when wrapped (thanks to Yann Davin).
- Added unit tests.
2011-08-17 22:39:28 -04:00