diff --git a/ChangeLog b/ChangeLog index 7393e97a8..27af663fc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,8 @@ (thanks to Renato Alves). - Eliminated some code that is not UTF8-safe. - Removed pthreads linkage. +- Closed dangling pipes in execute (), resolving problems when a hook script + forks (thanks to Jens Erat). ------ current release --------------------------- diff --git a/src/Lexer2.cpp b/src/Lexer2.cpp index d90e3b80e..538730d80 100644 --- a/src/Lexer2.cpp +++ b/src/Lexer2.cpp @@ -770,7 +770,8 @@ bool Lexer2::isPath (std::string& token, Lexer2::Type& type) else break; - if (! isWhitespace (_text[marker]) && + if (_text[marker] && + ! isWhitespace (_text[marker]) && _text[marker] != '/') { utf8_next_char (_text, marker); diff --git a/test/eval.t.cpp b/test/eval.t.cpp index fcd842bb7..59bf04798 100644 --- a/test/eval.t.cpp +++ b/test/eval.t.cpp @@ -137,9 +137,9 @@ int main (int argc, char** argv) t.is (result.get_integer (), 7, "infix '2*3+1' --> 7"); // TW-1254 - Unary minus support. - e.evaluateInfixExpression ("2--3", result); - t.is (result.type (), Variant::type_integer, "infix '2--3' --> integer"); - t.is (result.get_integer (), 5, "infix '2--3' --> 5"); + e.evaluateInfixExpression ("2- -3", result); + t.is (result.type (), Variant::type_integer, "infix '2- -3' --> integer"); + t.is (result.get_integer (), 5, "infix '2- -3' --> 5"); //e.debug (); e.evaluateInfixExpression ("!false", result);