diff options
Diffstat (limited to 'src/boost/tools/quickbook/test/unit/symbols_find_null.cpp')
-rw-r--r-- | src/boost/tools/quickbook/test/unit/symbols_find_null.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/boost/tools/quickbook/test/unit/symbols_find_null.cpp b/src/boost/tools/quickbook/test/unit/symbols_find_null.cpp new file mode 100644 index 000000000..0be8ab1e5 --- /dev/null +++ b/src/boost/tools/quickbook/test/unit/symbols_find_null.cpp @@ -0,0 +1,36 @@ +/*============================================================================= + Copyright (c) 2004 Joao Abecasis + http://spirit.sourceforge.net/ + + Use, modification and distribution is subject to the Boost Software + License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at + http://www.boost.org/LICENSE_1_0.txt) +=============================================================================*/ + +#include <boost/spirit/include/classic_scanner.hpp> +#include <boost/utility/addressof.hpp> +#include "symbols.hpp" + +typedef char char_type; +typedef char const* iterator; + +char_type data_[] = "whatever"; + +iterator begin = data_; +iterator end = + data_ + + sizeof(data_) / sizeof(char_type); // Yes, this is an intentional bug ;) + +int main() +{ + typedef BOOST_SPIRIT_CLASSIC_NS::scanner<> scanner; + typedef quickbook::tst<void*, char_type> symbols; + + symbols symbols_; + + symbols_.add(begin, end - 1, (void*)boost::addressof(symbols_)); + + // The symbol table parser should not choke on input containing the null + // character. + symbols_.find(scanner(begin, end)); +} |