- Fixed bug #1006, #1024, which caused words like the German 'im' and 'des' in
  a description to be expanded into 'imask' and 'description' (thanks to
  Louis-Claude Canon and Martin U).
- Promoted Louis-Claude Canon in the AUTHORS file, added Martin U.
This commit is contained in:
Paul Beckingham 2012-07-04 16:05:42 -04:00
parent 416cb40e3d
commit d16f434899
4 changed files with 25 additions and 14 deletions

View file

@ -10,6 +10,7 @@ contributions of the following people:
Dirk Deimeke (Technical Advisor & Marketing)
Wim Schuermann (Contributing Author)
Owen Clarke (Contributing Author)
Louis-Claude Canon (Contributing Author)
The following submitted code, packages or analysis, and deserve special thanks:
@ -71,7 +72,6 @@ The following submitted code, packages or analysis, and deserve special thanks:
Sam Stuck
Christoph Robbert
Oleksii Tsai
Louis-Claude Canon
Jörg Plate
Thanks to the following, who submitted detailed bug reports and excellent
@ -143,4 +143,5 @@ suggestions:
Nicholas Rabenau
Bruno Bigras
Hyde Stevenson
Martin U

View file

@ -82,6 +82,9 @@ Bugs
+ Fixed bug #990, which prevents color precedence to be applied correctly for
tagged tasks.
+ Fixed bug #1001, which caused a segv (thanks to Bryce Harrington).
+ Fixed bug #1006, #1024, which caused words like the German 'im' and 'des' in
a description to be expanded into 'imask' and 'description' (thanks to
Louis-Claude Canon and Martin U).
+ Fixed bug #1008, which failed to remove tasks with the special tag '+nocal'
from the calendar report output with 'calendar.details=full' set (thanks to
Bryan Kam).

1
NEWS
View file

@ -7,6 +7,7 @@ New Features in taskwarrior 2.0.1
opportunity to work on a task.
- All tasks may now be given an 'until' date, after which they will expire
and are deleted.
- User defined attributes.
Please refer to the ChangeLog file for full details. There are too many to
list here.

View file

@ -1301,12 +1301,13 @@ bool A3::is_attr (Nibbler& n, Arg& arg)
{
n.save ();
std::string name;
std::string canonical;
std::string value;
// If there is a valid attribute name.
if (n.getName (name) &&
name.length () &&
is_attribute (name, name))
is_attribute (name, canonical))
{
if (n.skip (':'))
{
@ -1326,13 +1327,13 @@ bool A3::is_attr (Nibbler& n, Arg& arg)
return false;
*/
arg._raw = name + ':' + value;
arg._raw = canonical + ':' + value;
arg._category = Arg::cat_attr;
// Most attributes are standard, some are pseudo-attributes, such as
// 'limit:page', which is not represented by a column object, and
// therefore not stored.
std::map<std::string, Column*>::iterator i = context.columns.find (name);
std::map<std::string, Column*>::iterator i = context.columns.find (canonical);
if (i != context.columns.end ())
arg._type = Arg::type_id (i->second->type ());
else
@ -1353,6 +1354,7 @@ bool A3::is_attmod (Nibbler& n, Arg& arg)
{
n.save ();
std::string name;
std::string canonical;
std::string modifier;
std::string value;
// time_t date;
@ -1360,7 +1362,7 @@ bool A3::is_attmod (Nibbler& n, Arg& arg)
// If there is a valid attribute name.
if (n.getName (name) &&
name.length () &&
is_attribute (name, name))
is_attribute (name, canonical))
{
if (n.skip ('.'))
{
@ -1395,8 +1397,8 @@ bool A3::is_attmod (Nibbler& n, Arg& arg)
return false;
*/
arg._raw = name + '.' + modifier + ':' + value;
Column* col = context.columns[name];
arg._raw = canonical + '.' + modifier + ':' + value;
Column* col = context.columns[canonical];
arg._type = col ? Arg::type_id (col->type ()) : Arg::type_pseudo;
arg._category = Arg::cat_attmod;
return true;
@ -1472,6 +1474,7 @@ bool A3::is_dom (Nibbler& n, Arg& arg)
{
n.save ();
std::string name;
std::string canonical;
int id;
std::string uuid;
@ -1505,8 +1508,9 @@ bool A3::is_dom (Nibbler& n, Arg& arg)
n.skip ('.') &&
n.getName (name) &&
name.length () &&
is_attribute (name, name))
is_attribute (name, canonical))
{
name = canonical;
result = format (id) + '.' + name;
arg._raw = result;
Column* col = context.columns[name];
@ -1522,8 +1526,9 @@ bool A3::is_dom (Nibbler& n, Arg& arg)
n.skip ('.') &&
n.getName (name) &&
name.length () &&
is_attribute (name, name))
is_attribute (name, canonical))
{
name = canonical;
arg._raw = uuid + '.' + name;
Column* col = context.columns[name];
arg._type = col ? Arg::type_id (col->type ()) : Arg::type_pseudo;
@ -1536,12 +1541,13 @@ bool A3::is_dom (Nibbler& n, Arg& arg)
// Attribute.
if (n.getName (name) &&
name.length () &&
is_attribute (name, name))
is_attribute (name, canonical))
{
if (name != "limit")
{
arg._raw = name;
Column* col = context.columns[name];
arg._value = canonical;
Column* col = context.columns[canonical];
arg._type = col ? Arg::type_id (col->type ()) : Arg::type_pseudo;
arg._category = Arg::cat_dom;
return true;