mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-07-07 20:06:36 +02:00
TW-1608: The recur/recurring report shows tasks without a recur interval
- Lexer needed additional lookbehind criteria for ::isTag (thanks to Brad Collette).
This commit is contained in:
parent
f30f4d45c6
commit
7293de75b0
3 changed files with 13 additions and 5 deletions
|
@ -11,6 +11,8 @@
|
|||
again (thanks to Jens Erat).
|
||||
- TW-1605 Japanese translation for Taskwarrior (thanks to Oota Toshiya).
|
||||
- TW-1606 scheduled.any filter (thanks to Peter Rochen).
|
||||
- TW-1608 The recur/recurring report shows tasks without a recur interval
|
||||
(thanks to Brad Collette).
|
||||
- TW-1610 Disabling GC can lead to editing the wrong task (thanks to Scott M).
|
||||
- The 'obfuscate' setting, if set to '1' will replace all text with 'xxx'.
|
||||
- POSIX file locking mechanism, eliminating platform-specific code.
|
||||
|
|
|
@ -778,14 +778,17 @@ bool Lexer::isPair (std::string& token, Lexer::Type& type)
|
|||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Lexer::Type::tag
|
||||
// ^ | <isWhiteSpace> [ +|- ] <isIdentifierStart> [ <isIdentifierNext> ]*
|
||||
// ^ | '(' | ')' | <isWhiteSpace>
|
||||
// [ +|- ] <isIdentifierStart> [ <isIdentifierNext> ]*
|
||||
bool Lexer::isTag (std::string& token, Lexer::Type& type)
|
||||
{
|
||||
std::size_t marker = _cursor;
|
||||
|
||||
// Lookbehind: ^ | <isWhiteSpace>
|
||||
// Lookbehind: ^ | '(' | ')' | <isWhiteSpace>
|
||||
if (marker > 0 &&
|
||||
! isWhitespace (_text[marker - 1]))
|
||||
! isWhitespace (_text[marker - 1]) &&
|
||||
_text[marker - 1] != '(' &&
|
||||
_text[marker - 1] != ')')
|
||||
return false;
|
||||
|
||||
if (_text[marker] == '+' ||
|
||||
|
|
|
@ -36,7 +36,7 @@ Context context;
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
int main (int argc, char** argv)
|
||||
{
|
||||
UnitTest t (771);
|
||||
UnitTest t (789);
|
||||
|
||||
std::vector <std::pair <std::string, Lexer::Type>> tokens;
|
||||
std::string token;
|
||||
|
@ -374,6 +374,9 @@ int main (int argc, char** argv)
|
|||
{ "desc~pattern", { { "desc", Lexer::Type::dom },
|
||||
{ "~", Lexer::Type::op },
|
||||
{ "pattern", Lexer::Type::dom }, NO, NO }, },
|
||||
{ "(+tag)", { { "(", Lexer::Type::op },
|
||||
{ "+tag", Lexer::Type::tag },
|
||||
{ ")", Lexer::Type::op }, NO, NO }, },
|
||||
};
|
||||
#define NUM_TESTS (sizeof (lexerTests) / sizeof (lexerTests[0]))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue