Commit graph

2870 commits

Author SHA1 Message Date
Paul Beckingham
1274f2ba07 Code Cleanup
- Addressed valgrind complaints by freeing allocations for commands and columns.
  This leaves one complaint about getpwuid, which is either an optional free,
  or not valid, depending on OS.  (Thanks to Bryce Harrington).
2012-03-18 00:27:47 -04:00
Paul Beckingham
ac4d90f1f6 Feature Pulled
- 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.
2012-03-17 10:46:05 -04:00
Paul Beckingham
80d6655709 Bug
- Fixed problem where 'project' was not supported as a verbosity token (thanks
  to Adam Gibbins).
2012-03-17 10:11:55 -04:00
Paul Beckingham
deb12102f6 Delay Decrease
- Reduced the delay to 1ms.  Note: this is still a hack.
- Added error checking around the 'select' call.
2012-03-15 22:34:37 -04:00
Paul Beckingham
c5d3042bbf Delay Increase
- Increased delay to 0.05s.
- Added Sam Stuck to AUTHORS, by way of thanks.
2012-03-15 20:41:15 -04:00
Paul Beckingham
5f13019d05 Ubuntu 'select' Fix
- Added a delay before the 'select' call on STDIN, to allow time for
  the data to buffer.  Experimental patch.
2012-03-15 20:20:08 -04:00
Paul Beckingham
773b028865 Portability
- Fixed code that generated warning on Ubuntu.
2012-03-14 17:53:24 -04:00
Paul Beckingham
2c90bca134 Bug #950
- Fixed bug #950, which warned about dependency chain problems during
  annotation, which makes no sense (thanks to Uli Martens).
2012-03-14 00:32:45 -04:00
Paul Beckingham
948bbe8745 Bug #946
- Fixed bug #946, which caused 'edit' command problems when
  'dateformat.annotation' did not contain any date elements (thanks to Tuomas
  Toivola).
2012-03-14 00:17:56 -04:00
Paul Beckingham
86e74c1020 Code Cleanup
- Removed unused function and corresponding unit tests.  YAGNI.
2012-03-11 15:33:45 -04:00
Owen Clarke
9951da5710 Bug
- Added bounds check before call to string::substr to avoid passing a
  negative start pos. Test rc.t was broken from commit 0ac9a4b because
  it contains 'report.:b' and legacyCheckForDeprecatedVariables was
  trying to substr starting from pos 'length() - 12' (-3).
2012-03-06 23:32:24 +11:00
Paul Beckingham
0ac9a4b3df Deprecated
- Made proper note of deprecated configuration variables.
2012-03-06 01:22:16 -05:00
Paul Beckingham
8537ddbb5a Documentation
- Corrected command usages.
- Corrected help command output.
2012-03-06 00:36:37 -05:00
Paul Beckingham
2ab2497126 Configuration
- Removed obsolete configuration defaults.
2012-03-06 00:35:21 -05:00
Paul Beckingham
c8027a17c1 Feature
- Missing data now tolerated for UDAs.
- Info command includes all column data, even for unrecognized types.
2012-03-05 22:49:41 -05:00
Paul Beckingham
6d1e14ea3e Portability
- Modified cmake files to allow for clang/llvm as well as gcc.
2012-03-04 18:58:40 -05: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
94627df5de Portability
- Fixed compiler warnings on Ubuntu.
2012-03-03 16:25:55 -05:00
Paul Beckingham
761ef296ad Code Cleanup
- Eliminatd helpers.cpp, and the redundant getFullDescription function
  therein.
- The timesheet report now uses standard description formatting.
2012-03-03 16:08:21 -05:00
Paul Beckingham
a300dba2df Code Cleanup
- Removed use of getFullDescription in CmdInfo.
2012-03-03 15:41:07 -05:00
Paul Beckingham
facb795f88 Code Cleanup
- Eliminated redundant getDueDate helper function.
2012-03-03 14:40:35 -05:00
Paul Beckingham
0f4bcefcff Code Cleanup
- Relocated code from helper.cpp to feedback.cpp.
- Fixed typo.
2012-03-03 14:24:41 -05:00
Paul Beckingham
173d24b3fb Oops
- Inadvertently committed a UDA formatting change that isn't ready.
2012-03-03 09:50:43 -05:00
Paul Beckingham
46b275c3ce Feedback
- When bulk tasks are modified, the "project changed" messages are
  now retained until processing is completed, so that only one message
  per project is generated.
2012-03-03 09:46:11 -05:00
Paul Beckingham
d4f85484df Internals
- Modified color processing so that it can be disabled completely at
  compile time.  This is to assist the Windows port.
2012-03-03 09:08:46 -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
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
Owen Clarke
9fb015f72c Portability
- Added new 'format' overload to resolve compiler warnings on Solaris.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-26 18:49:13 -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
Paul Beckingham
a9de8a6596 Verbosity
- Tweak to 'affected' token.  Needs more.
2012-02-24 18:27:39 -05:00
Paul Beckingham
a495b05d6b Bug #938
- Made alternate fix to CmdUrgency.cpp, to avoid the ambiguity around
  the format() signatures (thanks to Owen Clarke).
2012-02-23 20:48:01 -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
Owen Clarke
25a1b89156 Bug #938
- Fixed incorrect return type.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-23 20:33:05 -05:00
Owen Clarke
3ba0b62783 Bug #937
- Fixed problem with incomplete 'stat' path.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2012-02-23 20:23:05 -05:00
Paul Beckingham
1a7ed9e137 Debugging
- Inadvertently left in a debug statement.
2012-02-21 19:26:17 -05:00
Luke Macken
1358a8302f Portability
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>
2012-02-20 17:31:30 -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
259f39f2d2 Performance
- Corrected performance measurement.  The TDB2::gc requires data to
  be loaded first, but load time is measured separately.  This resulted
  in repeat counting.  Now the gc time subtracts any load time that is
  accumulated *during* the gc.  This is now a fair accounting of the time.
2012-02-20 09:26:52 -05:00
Paul Beckingham
d386081c4c Bug
- Modified format 'uuid.short' to show the leftmost 8 characters from
  a UUID, which is the same as partial UUID matching implemented in
  #891.
2012-02-20 01:23:34 -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
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
Paul Beckingham
09431caf1c Bug
- 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_.
2012-02-19 17:20:11 -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