Merge branch '2.4.3' into lexer2

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

View file

@ -2,6 +2,9 @@
- TW-1578 Bash tab completion problems on first run
(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 ---------------------------

3
NEWS
View file

@ -9,7 +9,8 @@ New commands 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

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
in a single command, confirmation will be required, regardless of the value of
.B confirmation
variable.
variable. The special value bulk=0 is treated as an infinity.
This is useful for preventing large-scale unintended changes.

View file

@ -598,7 +598,7 @@ void TDB2::update (
const std::string& uuid,
Task& task,
const bool add_to_backlog,
const bool addition)
const bool addition /* = false */)
{
// Validate to add metadata.
task.validate (false);
@ -607,6 +607,13 @@ void TDB2::update (
Task 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.
if (!pending.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)
// style.
if (quantity < bulk && (!_needs_confirm || !confirmation))
// style. Bulk = 0 denotes infinite bulk.
if ((bulk == 0 || quantity < bulk) && (!_needs_confirm || !confirmation))
return true;
if (context.verbose ("blank") && !_first_iteration)

View file

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