diff --git a/ChangeLog b/ChangeLog index 81481dc19..52afb3566 100644 --- a/ChangeLog +++ b/ChangeLog @@ -186,6 +186,7 @@ + Fixed bug #808, which generated compiler warnings on Solarix (thanks to Owen Clarke). + Fixed bug #831, which prevented some date fields from being properly parsed. + + Fixed bug #835, which prevented hierarchical projects from being recognized. # Untracked Bugs, biggest first. + Fixed bug that required the '%YAML' prologue in a YAML import. diff --git a/src/A3.cpp b/src/A3.cpp index b0801479f..143a3c5f8 100644 --- a/src/A3.cpp +++ b/src/A3.cpp @@ -1254,11 +1254,10 @@ bool A3::is_attr (Nibbler& n, Arg& arg) { // Both quoted and unquoted Att's are accepted. // Consider removing this for a stricter parse. - if (n.getQuoted ('"', value) || - n.getQuoted ('\'', value) || - n.getName (value) || - n.getUntilWS (value) || - n.getUntilEOS (value) || + if (n.getQuoted ('"', value) || + n.getQuoted ('\'', value) || + n.getUntilOneOf (" \t)(", value) || + n.getUntilEOS (value) || n.depleted ()) { /* diff --git a/src/commands/Command.cpp b/src/commands/Command.cpp index 91d37e8dd..2625bc45d 100644 --- a/src/commands/Command.cpp +++ b/src/commands/Command.cpp @@ -431,7 +431,6 @@ void Command::modify_task ( // Get the column info. Column* column = context.columns[name]; - if (value == "") { task.remove (name); diff --git a/test/bug.835.t b/test/bug.835.t index 7054cd74b..ae4e9adf6 100755 --- a/test/bug.835.t +++ b/test/bug.835.t @@ -28,7 +28,7 @@ use strict; use warnings; -use Test::More tests => 3; +use Test::More tests => 5; # Create the rc file. if (open my $fh, '>', 'bug.rc') @@ -42,6 +42,10 @@ qx{../src/task rc:bug.rc add pro:main.subproject Test}; my $output = qx{../src/task rc:bug.rc ls}; like ($output, qr/main\.subproject/, "hierarchical project ok"); +qx{../src/task rc:bug.rc \\(pro:main.subproject\\) ls}; +like ($output, qr/main\.subproject/, "Parens tolerated"); +unlike ($output, qr/Mismatched parentheses in expression/, "No 'mismatch' error generated"); + # Cleanup. unlink qw(pending.data completed.data undo.data backlog.data synch.key bug.rc); ok (! -r 'pending.data' &&