Chris@16: // Copyright Vladimir Prus 2004. Chris@16: // Distributed under the Boost Software License, Version 1.0. Chris@16: // (See accompanying file LICENSE_1_0.txt Chris@16: // or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: #ifndef BOOST_ENVIRONMENT_ITERATOR_VP_2004_05_14 Chris@16: #define BOOST_ENVIRONMENT_ITERATOR_VP_2004_05_14 Chris@16: Chris@16: #include "eof_iterator.hpp" Chris@16: Chris@16: #include Chris@16: #include Chris@16: #include Chris@16: Chris@16: namespace boost { Chris@16: Chris@16: class environment_iterator Chris@16: : public eof_iterator > Chris@16: { Chris@16: public: Chris@16: environment_iterator(char** environment) Chris@16: : m_environment(environment) Chris@16: { Chris@16: get(); Chris@16: } Chris@16: Chris@16: environment_iterator() Chris@16: { Chris@16: found_eof(); Chris@16: } Chris@16: Chris@16: void get() Chris@16: { Chris@16: if (*m_environment == 0) Chris@16: found_eof(); Chris@16: else { Chris@16: std::string s(*m_environment); Chris@16: std::string::size_type n = s.find('='); Chris@16: assert(n != s.npos); Chris@16: value().first = s.substr(0, n); Chris@16: value().second = s.substr(n+1); Chris@16: } Chris@16: ++m_environment; Chris@16: } Chris@16: Chris@16: private: Chris@16: char** m_environment; Chris@16: }; Chris@16: } Chris@16: #endif