Commit graph

137 commits

Author SHA1 Message Date
Wilhelm Schuermann
e95167a984 Plumbing: Use variadic templates for format()
- Use variadic templates, with a slight twist for properly supporting
  Taskwarrior's l10n strings.
- Adjust code that relied on implicit type conversion which led to
  problems with template instantiation.
- Move some functionality out of format() in order to keep it generic.
2015-06-07 20:54:02 +02:00
Paul Beckingham
e8d04bdce6 C++11: N1984 auto 2015-05-24 13:36:26 -04:00
Paul Beckingham
e74c6963a9 C++11: Cleaned up program framework with range-based for 2015-05-11 17:50:53 -04:00
Paul Beckingham
c346cf9395 Portability: Use fcntl instead of flock
- POSIX file locking mechanism, eliminating platform-specific code.
2015-05-02 11:47:39 -04:00
Wilhelm Schuermann
c830b4b669 TW-1287: default.* values applied to synced tasks
- Tasks that arrive through "task sync" no longer have defaults applied
  to them.
2015-04-02 13:39:20 +02:00
Wilhelm Schuermann
7a64c19641 Resolve most compiler warnings 2015-03-29 22:05:38 +02:00
Wilhelm Schuermann
9e6c6ecb93 TW-1583: Invalid ID displayed after done/delete
- Fix completed/deleted tasks getting an ID when GC is going to be run,
  previously resulting in invalid IDs being displayed in reports that
  show non-pending tasks.

A side effect of this fix is that it is sometimes not possible to
filter by ID when running a report right after calling done/delete.
This problem existed before; this change makes it happen on the first
report instead of the second, so it is more consistently broken.
Commands that modify tasks are not affected, making this an annoying
yet harmless defect.
2015-03-28 10:36:58 +01:00
Wilhelm Schuermann
d2e6c90446 TW-1581: Wrong urgency after done/delete command
- TDB2::dependency_scan() is run before GC, so we need to check both
  tasks in a dependency chain for their status before setting the
  blocking/blocked flag to true.
2015-03-26 18:43:58 +01:00
Wilhelm Schuermann
4f75652ccb TW-1580: "modified" attribute not updated
- Make all local modifications update the "modified" attribute.
- As per design, the user cannot overwrite this attribute; neither
  can hooks.
2015-03-23 15:55:47 +01:00
Paul Beckingham
96185cbd61 Merge branch '2.4.2' of ssh://git.tasktools.org/tm/task into 2.4.2 2015-03-02 16:17:09 -05:00
Paul Beckingham
7665d13d42 Duration
- Removed legacy duration value mapping, which causes much performance
  degradation.
2015-03-02 16:16:39 -05:00
Paul Beckingham
01feec568b Merge branch '2.4.2' of ssh://git.tasktools.org/tm/task into 2.4.2 2015-03-02 09:35:45 -05:00
Paul Beckingham
104aeb3905 TDB2
- Commented and reorganized for threading.
2015-03-02 09:33:57 -05:00
Tomas Babej
f0cc0151b7 TDB2: Explicitly mark updates done as addition to optimize performance
We are able to avoid loading the completed.data in certain scenarios.
2015-02-28 16:54:09 -05:00
Paul Beckingham
1cfdfbae52 Hooks
- Removed the ability for hooks to add tasks, or modify tasks that are outside
  the context of the current event. This makes hooks a local mechanism that
  operates only on local changes. Modifications/additions coming in via sync
  command are not processed by hooks.
2015-01-31 17:47:58 -05:00
Paul Beckingham
547d9edb55 TW-1484
- TW-1484 The 'history' and 'ghistory' reports do not obey rc.color.label.
2015-01-10 15:49:42 -05:00
Paul Beckingham
b7ad091d00 Updated copyright to 2015 2015-01-01 00:00:41 -05:00
Paul Beckingham
23e2719e1a TDB2
- Restored blank line for clarity, now that duplicate debug messages are allowed.
2014-10-19 01:31:03 -04:00
Paul Beckingham
1a5fb437a5 Task
- Upgrades legacy recur values.
2014-10-07 00:24:03 -04:00
Paul Beckingham
bfc6e38851 Hooks
- ::onExit now provides a set of all changeѕ tasks to the hook script, in
  read-only form.
2014-09-14 17:04:12 -04:00
Paul Beckingham
d0fd3bac4a TDB2
- ::update must call validate(false) to ensure metadata exists for the 'modify'
  case, then later call validate() to add defaults for the 'add' case.
2014-09-14 16:36:32 -04:00
Paul Beckingham
ab72cdad4d Hooks
- Stubbed new ::onAdd and ::onModify interfaces.
2014-09-14 15:42:47 -04:00
Paul Beckingham
7b617a7b6e TDB2
- Consolidated most of the processing in ::add and ::modify into ::update.
2014-09-14 15:25:37 -04:00
Paul Beckingham
21be0e3e94 TDB2
- Combined add and modify operations in ::add, in case the hook processing
  generates modifications.
2014-09-14 15:07:40 -04:00
Paul Beckingham
ac833c183a TDB2
- TDB2::add no longer assumes that adding one task results in only one task
  begin added, as hook processing may expand the set.
2014-09-14 14:56:54 -04:00
Paul Beckingham
f3c035d2b8 TDB2
- Removed hook processing that is now in the wrong place.
2014-09-14 14:20:30 -04:00
Paul Beckingham
1058f045b0 TDB2
- Added ::has methods to determine whether a UUID is known.
2014-09-10 22:54:17 -04:00
Paul Beckingham
05ba58c56f TDB2
- Disabled hook processing while processing hooks. This is because both ::add
  and ::modify can each add or modify tasks, and there is the potential for
  infinite recursion.
2014-09-09 23:37:29 -04:00
Paul Beckingham
6faf6bb678 TDB2
- Now updates the task ID of any new task, therefore avoiding off-by-one
  errors that occur when code calls TDB2::next_id.
2014-08-16 14:20:00 -04:00
Paul Beckingham
6209529aaa TDB2
- In debug mode, if any TF2 objects are dirty, they speak up.
2014-08-09 20:26:51 -04:00
Paul Beckingham
0825ce3c56 TDB2
- Updated ID:UUID mapping on ::add, which is the first part of the fix for
  TW-1389.
2014-08-06 10:45:15 -04:00
Paul Beckingham
68436d0d50 TDB2
- Integrated hooks to TF2::add_task and TF2::modify_task.
2014-05-13 22:06:19 -04:00
Paul Beckingham
d52eebaa66 Bug TW-1288
- TW-1288 Added missing locking for task modifications (thanks to Kosta H,
          Ralph Bean, Adam Coddington).
2014-03-11 23:28:57 -04:00
Jochen Sprickerhof
4ae8431f96 Bug TD-45
- TD-45 Fix preprocessor define.

Signed-off-by: Paul Beckingham <paul@beckingham.net>
2014-03-06 18:26:39 -05:00
Paul Beckingham
523dce8f32 Code Cleanup
- Standardized headers.
2014-02-01 14:33:37 -05:00
Paul Beckingham
8b736934d7 Code Cleanup
- Removed deprecated 'push', 'pull' and 'merge' commands.
2014-01-18 19:12:48 -05:00
Paul Beckingham
8ed92ca498 Copyright
- Bumped copyright to 2014, ready for release.
2014-01-01 13:32:22 -05:00
Paul Beckingham
d211337315 Performance
- Optimizes indexing into pending.data for direct task access.
2013-11-03 14:02:11 -05:00
Paul Beckingham
f367989afa Bug #1270
- The 'undo' command is now properly removing backlog entries.
2013-10-06 13:43:21 -04:00
Paul Beckingham
7a6c534636 Code Cleanup
- Restructured 'undo' code to make backlog rollback more readily implementable.
2013-10-06 11:02:25 -04:00
Paul Beckingham
88abd93e52 Feature
- Protects against interrupt during critical DB commit and sync operations.
2013-09-07 14:24:35 -04:00
Paul Beckingham
4133d29cca FF4/JSON Interop
- Removed the \n characters from Task::composeFF4 and Task::ComposeJSON.
- Tasks in backlog.data file are now written as JSON.
- Tasks are recognized in FF4 or JSON format.
2013-06-02 20:38:58 -04:00
Paul Beckingham
dd0b01e487 Code Sharing
- Cleaned up the #ifdef in Task.cpp for sharing with taskd.

(cherry picked from commit af94ac2e12d84fddb735d6931aaf2c46176c794c)
2013-06-02 13:58:21 -04:00
Paul Beckingham
d03c4cda8a Build Error
- Many files were missing an explicit cmake.h include.  Some were not including
  it at all.  Now it's used almost everywhere.

(cherry picked from commit 82ae86979c497e6d1d0c6b2b5a55aa379ec82c98)
2013-06-02 13:57:36 -04:00
Paul Beckingham
773b55d374 Code Cleanup
- Removed L10N define.  It served its purpose.
2013-04-07 23:50:51 -04:00
Paul Beckingham
8af0a7f3ba Merge branch 'master' into 2.3.0
Conflicts:
	AUTHORS
	CMakeLists.txt
	INSTALL
	NEWS
	cmake.h.in
	doc/man/task-faq.5.in
	package-config/osx/README
	scripts/utils/verify_l10n
	src/API.h
	src/Config.cpp
	src/Context.cpp
	src/DOM.cpp
	src/Hooks.cpp
	src/TransportShell.h
	src/commands/CmdDiagnostics.cpp
	src/commands/CmdShell.cpp
	src/commands/CmdVersion.cpp
	src/en-US.h
	src/shell/Readline.h
	src/wcwidth6.cpp
	test/CMakeLists.txt
	test/color.uda.t
	test/duration.t.cpp
	test/hook.on-launch.t
	test/template.t
	test/uuid.t
2013-04-07 17:56:59 -04:00
Paul Beckingham
88968ac36c Bug #1191
+ The 'execute' command should not be considered a 'write' command.
2013-03-06 21:04:46 -05:00
Johannes Schlatow
7388cec75e Bug #1191
Added missing close().
2013-03-07 02:46:37 +01:00
Paul Beckingham
1dccd29643 Copyright 2013
- Updated copyright notices.
2013-03-04 17:47:12 -05:00
Paul Beckingham
2be52e1be2 Bug #1137
- Fixed bug #1137, which caused file locks to be non-blocking (thanks to Steve
  Rader).
2013-02-10 23:25:27 -05:00