diff options
author | Jose <jose@zeroc.com> | 2014-10-30 23:19:01 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2014-10-30 23:19:01 +0100 |
commit | 540ca4a7a96a15d5a6c40936e1dc6c943f36bb70 (patch) | |
tree | cee4d1d5420d7705d40ca183846fa7943ea24acd /cpp/demo/book/lifecycle/Parser.cpp | |
parent | SLES updates for ice.spec (diff) | |
download | ice-540ca4a7a96a15d5a6c40936e1dc6c943f36bb70.tar.bz2 ice-540ca4a7a96a15d5a6c40936e1dc6c943f36bb70.tar.xz ice-540ca4a7a96a15d5a6c40936e1dc6c943f36bb70.zip |
More lex Scanner fixes
Diffstat (limited to 'cpp/demo/book/lifecycle/Parser.cpp')
-rw-r--r-- | cpp/demo/book/lifecycle/Parser.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/cpp/demo/book/lifecycle/Parser.cpp b/cpp/demo/book/lifecycle/Parser.cpp index b53950fa935..44ab2797d7f 100644 --- a/cpp/demo/book/lifecycle/Parser.cpp +++ b/cpp/demo/book/lifecycle/Parser.cpp @@ -294,8 +294,21 @@ Parser::destroy(const std::list<string>& names) } } +// +// With older flex version <= 2.5.35 YY_INPUT second +// paramenter is of type int&, in newer versions it +// changes to size_t& +// +void +Parser::getInput(char* buf, int& result, size_t maxSize) +{ + size_t r = static_cast<size_t>(result); + getInput(buf, r, maxSize); + result = static_cast<int>(r); +} + void -Parser::getInput(char* buf, int& result, int maxSize) +Parser::getInput(char* buf, size_t& result, size_t maxSize) { #ifdef HAVE_READLINE @@ -352,7 +365,7 @@ Parser::getInput(char* buf, int& result, int maxSize) } } - result = static_cast<int>(line.length()); + result = line.length(); if(result > maxSize) { error("input line too long"); |