diff --git a/src/ViewText.cpp b/src/ViewText.cpp index 05e09963e..6e14d4afb 100644 --- a/src/ViewText.cpp +++ b/src/ViewText.cpp @@ -96,7 +96,6 @@ std::string ViewText::render () // Determine minimal, ideal column widths. std::vector minimal; std::vector ideal; - for (int col = 0; col < _columns.size (); ++col) { // Headers factor in to width calculations. diff --git a/src/sort.cpp b/src/sort.cpp index cc45f1587..84f77a673 100644 --- a/src/sort.cpp +++ b/src/sort.cpp @@ -25,6 +25,7 @@ // //////////////////////////////////////////////////////////////////////////////// +#include // TODO Remove #include #include #include @@ -99,9 +100,37 @@ static bool sort_compare (int left, int right) return left_number > right_number; } + // Depends string. + else if (field == "depends") + { + // Raw data is a comma-separated list of uuids + left_string = (*global_data)[left].get (field); + right_string = (*global_data)[right].get (field); + + if (left_string == right_string) + continue; + + if (left_string == "" && right_string != "") + return ascending; + + if (left_string != "" && right_string == "") + return !ascending; + + // Sort on the first dependency. + left_number = context.tdb.id (left_string.substr (0, 36)); + right_number = context.tdb.id (right_string.substr (0, 36)); + + if (left_number == right_number) + continue; + + if (ascending) + return left_number < right_number; + + return left_number > right_number; + } + // String. else if (field == "description" || - field == "depends" || field == "project" || field == "status" || field == "tags" || diff --git a/test/dependencies.t b/test/dependencies.t index ae6876ba0..cf65781ba 100755 --- a/test/dependencies.t +++ b/test/dependencies.t @@ -156,7 +156,7 @@ qx{../src/task rc:dep.rc do 2}; # [27] $output = qx{../src/task rc:dep.rc depreport}; -like ($output, qr/\s1\s+2,3\s+One\s+/, 'dependencies - depends report column reflects changed IDs'); +like ($output, qr/\s1\s+2 3\s+One\s+/, 'dependencies - depends report column reflects changed IDs'); # [28] qx{../src/task rc:dep.rc do 3};