Commit graph

609 commits

Author SHA1 Message Date
Owen Clarke
f36f483d1e Bug #944
- Fixed merge.t failing when run on an NFS share
2012-03-05 08:26:08 +11:00
Paul Beckingham
77200d7eb4 Bug #837
- Fixed bug #837, which caused incorrect urgency calculations for tasks that
  have completed dependencies, and problems when editing those tasks (thanks
  to Matt Kraai).
- Added Task::addDependency (const std::string&) method for reconstructing
  dependencies on tasks with no ID.
- Modfified Task::urgency_blocked so that it considers the blocking task's
  status.  This is an expensive test, and so it is wrapped by a cheaper test
  to see if there are/were any dependencies at all.  This means that urgency
  calculations are not slowed for tasks without dependencies, and is slower
  but more accurate for tasks that do have dependencies.
- Modified edit command so that dependencies are shown as IDs or UUIDs
  depending on whether the task is pending or not.
- Modified edit command so that dependencies are parsed as IDs or UUIDs
  depending on whether the task is pending or not.
- Modified wording in the template of the edit command to reflect the above.
- Added unit tests bug.837.t.
2012-03-04 00:05:11 -05:00
Paul Beckingham
d230ea4001 Diagnostics
- The 'diagnostics' command now checks for duplicate UUID values in the data.
2012-02-28 01:22:57 -05:00
Paul Beckingham
50825bc61a Bug #851
- Fixed bug #851, which failed to recognize durations like '1day' when
  filtering date attributes (thanks to Philipp Woelfel).
- Added unit tests.
2012-02-28 00:27:48 -05:00
Paul Beckingham
9eee2e3e3e Bug #447
- Indicated that #447 was fixed alongside #942.
2012-02-27 20:18:11 -05:00
Paul Beckingham
8c0971425f Bug #942
- Fixed bug #942, which only allowed dates to be edited if they changed day
  (thanks to Owen Clarke).
2012-02-27 20:10:19 -05:00
Paul Beckingham
e42a5a831a Bug #865, #886
- Fixed bugs #865 and #886, which caused silent failure of unrecognized dates
  (thanks to Michelle Crane).
2012-02-27 00:36:53 -05:00
Paul Beckingham
5feb736939 Bug
- Fixed problem where urgency was not properly calculated for waiting tasks.
- Tweaked urgency coefficients to make most of the values closer together, and
  therefore more sensitive.
- Inverted 'waiting' coefficient.
- Boosted 'next', 'due' and 'blocking' coefficients.
- Modified unit tests accordingly.
- Lessened the impact of 'blocked', 'project', 'tags' and 'age'.
2012-02-26 23:13:15 -05:00
Paul Beckingham
8af872e289 Bug
- Fixed problem where update-holidays.pl did not use the YYYYMMDD date foramt.
2012-02-26 17:05:16 -05:00
Paul Beckingham
824cba7152 Bugs #552, #863
- Fixed bug #552, where 'rc.verbose=off' suppressed warnings (thanks to Peter
  De Poorter).
- Fixed bug #863, which suppressed report labels with rc.verbose=off (thanks to
  Michelle Crane).
2012-02-26 17:01:13 -05:00
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