Merge branch '2.4.3' into lexer2

This commit is contained in:
Paul Beckingham
2015-03-25 07:52:36 -04:00
6 changed files with 17 additions and 5 deletions

View File

@@ -2,6 +2,9 @@
- TW-1578 Bash tab completion problems on first run - TW-1578 Bash tab completion problems on first run
(thanks to Renato Alves and Ptolemarch). (thanks to Renato Alves and Ptolemarch).
- TW-1580 "modified" attribute no longer updated (thanks to David Patrick).
- Setting 'bulk' to zero is interpreted as infinity, which means there is no
amount of changes that is considered dangerous (thanks to Tomas Babej).
------ current release --------------------------- ------ current release ---------------------------

3
NEWS
View File

@@ -9,7 +9,8 @@ New commands in taskwarrior 2.4.3
New configuration options in taskwarrior 2.4.3 New configuration options in taskwarrior 2.4.3
- - Setting 'bulk' to zero is interpreted as infinity, which means there is no
amount of changes that is considered dangerous.
Newly deprecated features in taskwarrior 2.4.3 Newly deprecated features in taskwarrior 2.4.3

View File

@@ -314,7 +314,7 @@ Controls padding between columns of the report output. Default is "1".
Is a number, defaulting to 3. When this number or greater of tasks are modified Is a number, defaulting to 3. When this number or greater of tasks are modified
in a single command, confirmation will be required, regardless of the value of in a single command, confirmation will be required, regardless of the value of
.B confirmation .B confirmation
variable. variable. The special value bulk=0 is treated as an infinity.
This is useful for preventing large-scale unintended changes. This is useful for preventing large-scale unintended changes.

View File

@@ -598,7 +598,7 @@ void TDB2::update (
const std::string& uuid, const std::string& uuid,
Task& task, Task& task,
const bool add_to_backlog, const bool add_to_backlog,
const bool addition) const bool addition /* = false */)
{ {
// Validate to add metadata. // Validate to add metadata.
task.validate (false); task.validate (false);
@@ -607,6 +607,13 @@ void TDB2::update (
Task original; Task original;
if (not addition && get (task.get ("uuid"), original)) if (not addition && get (task.get ("uuid"), original))
{ {
if (add_to_backlog)
{
// All locally modified tasks are timestamped, implicitly overwriting any
// changes the user or hooks tried to apply to the "modified" attribute.
task.setAsNow ("modified");
}
// Update the task, wherever it is. // Update the task, wherever it is.
if (!pending.modify_task (task)) if (!pending.modify_task (task))
completed.modify_task (task); completed.modify_task (task);

View File

@@ -323,8 +323,8 @@ bool Command::permission (
} }
// 1 < Quantity < bulk modifications have optional confirmation, in the (y/n/a/q) // 1 < Quantity < bulk modifications have optional confirmation, in the (y/n/a/q)
// style. // style. Bulk = 0 denotes infinite bulk.
if (quantity < bulk && (!_needs_confirm || !confirmation)) if ((bulk == 0 || quantity < bulk) && (!_needs_confirm || !confirmation))
return true; return true;
if (context.verbose ("blank") && !_first_iteration) if (context.verbose ("blank") && !_first_iteration)

View File

@@ -252,6 +252,7 @@ std::string taskInfoDifferences (
for (name = beforeAtts.begin (); name != beforeAtts.end (); ++name) for (name = beforeAtts.begin (); name != beforeAtts.end (); ++name)
if (*name != "uuid" && if (*name != "uuid" &&
*name != "modified" &&
before.get (*name) != after.get (*name) && before.get (*name) != after.get (*name) &&
before.get (*name) != "" && after.get (*name) != "") before.get (*name) != "" && after.get (*name) != "")
{ {