diff --git a/AUTHORS b/AUTHORS index 2cd0d30b1..61e6b2bad 100644 --- a/AUTHORS +++ b/AUTHORS @@ -245,3 +245,4 @@ suggestions: Scott Carter Taisuke Hachimura Martin + Alexandre de Verteuil diff --git a/ChangeLog b/ChangeLog index ddb9c00c9..b01837b96 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,11 +1,16 @@ 2.4.2 () - +- TW-1535 move default listing-break from list to ls (thanks to David Patrick). - TW-1545 cc1plus: error: unrecognized command line option '-std=c++11' (thanks to Petteri). - TW-1546 column type due.remaining breaks colors on due tasks (thanks to Renato Alves). - TW-1547 Recur column is always shown even if no recurring task is displayed (thanks to Renato Alves). +- TW-1549 task annotate hangs with specific text pattern (thanks to Alexandre + de Verteuil). +- TW-1550 _contexts helper-command (thanks to David Patrick). +- TW-1551 Unable to get a UDA value from DOM (thanks to Tomas Babej). - Eliminated some code that is not UTF8-safe. - Removed pthreads linkage. - Implemented the context feature. diff --git a/src/Config.cpp b/src/Config.cpp index 4083878fc..f13bb9168 100644 --- a/src/Config.cpp +++ b/src/Config.cpp @@ -368,7 +368,7 @@ std::string Config::_defaults = "report.list.labels=ID,Active,Age,D,P,Project,Tags,R,Sch,Due,Until,Description,Urg\n" "report.list.columns=id,start.age,entry.age,depends.indicator,priority,project,tags,recur.indicator,scheduled.countdown,due,until.remaining,description.count,urgency\n" "report.list.filter=status:pending\n" - "report.list.sort=start-,due+,project+/,urgency-\n" + "report.list.sort=start-,due+,project+,urgency-\n" "\n" "report.ls.description=Few details of tasks\n" "report.ls.labels=ID,A,D,Project,Tags,R,Wait,S,Due,Until,Description\n" diff --git a/src/DOM.cpp b/src/DOM.cpp index e3647e351..4b0dffdb9 100644 --- a/src/DOM.cpp +++ b/src/DOM.cpp @@ -313,7 +313,7 @@ bool DOM::get (const std::string& name, const Task& task, Variant& value) Column* column = context.columns[canonical]; if (column) { - if (column->is_uda () && ! task.has (canonical)) + if (column->is_uda () && ! ref.has (canonical)) { value = Variant ("''"); return true; diff --git a/test/tw-1549.t b/test/tw-1549.t new file mode 100755 index 000000000..29879ae6e --- /dev/null +++ b/test/tw-1549.t @@ -0,0 +1,62 @@ +#!/usr/bin/env python2.7 +# -*- coding: utf-8 -*- +################################################################################ +## +## Copyright 2006 - 2015, Paul Beckingham, Federico Hernandez. +## +## Permission is hereby granted, free of charge, to any person obtaining a copy +## of this software and associated documentation files (the "Software"), to deal +## in the Software without restriction, including without limitation the rights +## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +## copies of the Software, and to permit persons to whom the Software is +## furnished to do so, subject to the following conditions: +## +## The above copyright notice and this permission notice shall be included +## in all copies or substantial portions of the Software. +## +## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +## OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +## THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +## SOFTWARE. +## +## http://www.opensource.org/licenses/mit-license.php +## +################################################################################ + +import sys +import os +import unittest + +# Ensure python finds the local simpletap module +sys.path.append(os.path.dirname(os.path.abspath(__file__))) + +from basetest import Task, TestCase + +class Test1549(TestCase): + def setUp(self): + self.t = Task() + + def test_lexer_state(self): + """ + The token '1e ' left the lexer in a bad state. + + +--------+ +----------+ +---------------------+ +--------------+ + | | -> |1 | -> |e | -> | | + |typeNone| |typeNumber| |typeExponentIndicator| |Missing 'else'| + +--------+ +----------+ +---------------------+ +--------------+ + + """ + + # This command will hang and therefore timeout in 2.4.1. + code, out, err = self.t(('add', '1e x')) + self.assertIn("Created task 1.", out) + + +if __name__ == "__main__": + from simpletap import TAPTestRunner + unittest.main(testRunner=TAPTestRunner()) + +# vim: ai sts=4 et sw=4