19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* 29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999 39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Silicon Graphics Computer Systems, Inc. 49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999 69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Boris Fomitchev 79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * This material is provided "as is", with absolutely no warranty expressed 99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * or implied. Any use is at your own risk. 109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to use or copy this software for any purpose is hereby granted 129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * without fee, provided the above notices are retained on all copies. 139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to modify the code and to distribute modified code is granted, 149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * provided the above notices are retained, and a notice that the code was 159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * modified is included with the above copyright notice. 169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * 179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */ 189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_STREAMBUF_C 199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_STREAMBUF_C 209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef _STLP_INTERNAL_STREAMBUF 229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block# include <stl/_streambuf.h> 239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_BEGIN_NAMESPACE 269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block//---------------------------------------------------------------------- 279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Non-inline basic_streambuf<> member functions. 289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if !defined (_STLP_MSVC) || (_STLP_MSVC >= 1300) || !defined (_STLP_USE_STATIC_LIB) 309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::basic_streambuf() 329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block : _M_gbegin(0), _M_gnext(0), _M_gend(0), 339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _M_pbegin(0), _M_pnext(0), _M_pend(0), 349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _M_locale() { 359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block // _M_lock._M_initialize(); 369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block} 379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::~basic_streambuf() 419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{} 429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocklocale 459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::pubimbue(const locale& __loc) { 469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block this->imbue(__loc); 479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block locale __tmp = _M_locale; 489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _M_locale = __loc; 499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return __tmp; 509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block} 519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockstreamsize 549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::xsgetn(_CharT* __s, streamsize __n) { 559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block streamsize __result = 0; 569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const int_type __eof = _Traits::eof(); 579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block while (__result < __n) { 599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block if (_M_gnext < _M_gend) { 609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block size_t __chunk = (min) (__STATIC_CAST(size_t,_M_gend - _M_gnext), 619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block __STATIC_CAST(size_t,__n - __result)); 629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _Traits::copy(__s, _M_gnext, __chunk); 639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block __result += __chunk; 649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block __s += __chunk; 659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _M_gnext += __chunk; 669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block else { 689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block int_type __c = this->sbumpc(); 699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block if (!_Traits::eq_int_type(__c, __eof)) { 709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *__s = _Traits::to_char_type(__c); 719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block ++__result; 729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block ++__s; 739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block else 759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block break; 769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 789720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 799720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return __result; 809720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block} 819720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 829720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 839720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockstreamsize 849720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::xsputn(const _CharT* __s, streamsize __n) 859720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ 869720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block streamsize __result = 0; 879720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const int_type __eof = _Traits::eof(); 889720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 899720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block while (__result < __n) { 909720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block if (_M_pnext < _M_pend) { 919720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block size_t __chunk = (min) (__STATIC_CAST(size_t,_M_pend - _M_pnext), 929720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block __STATIC_CAST(size_t,__n - __result)); 939720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _Traits::copy(_M_pnext, __s, __chunk); 949720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block __result += __chunk; 959720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block __s += __chunk; 969720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _M_pnext += __chunk; 979720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 989720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 999720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block else if (!_Traits::eq_int_type(this->overflow(_Traits::to_int_type(*__s)), 1009720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block __eof)) { 1019720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block ++__result; 1029720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block ++__s; 1039720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 1049720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block else 1059720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block break; 1069720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 1079720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return __result; 1089720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block} 1099720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 1119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockstreamsize 1129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::_M_xsputnc(_CharT __c, streamsize __n) 1139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ 1149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block streamsize __result = 0; 1159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block const int_type __eof = _Traits::eof(); 1169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block while (__result < __n) { 1189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block if (_M_pnext < _M_pend) { 1199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block size_t __chunk = (min) (__STATIC_CAST(size_t,_M_pend - _M_pnext), 1209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block __STATIC_CAST(size_t,__n - __result)); 1219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _Traits::assign(_M_pnext, __chunk, __c); 1229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block __result += __chunk; 1239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _M_pnext += __chunk; 1249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 1259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block else if (!_Traits::eq_int_type(this->overflow(_Traits::to_int_type(__c)), 1279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block __eof)) 1289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block ++__result; 1299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block else 1309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block break; 1319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 1329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return __result; 1339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block} 1349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 1369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::int_type 1379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::_M_snextc_aux() 1389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ 1399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block int_type __eof = _Traits::eof(); 1409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block if (_M_gend == _M_gnext) 1419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return _Traits::eq_int_type(this->uflow(), __eof) ? __eof : this->sgetc(); 1429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block else { 1439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _M_gnext = _M_gend; 1449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return this->underflow(); 1459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block } 1469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block} 1479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 1499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::int_type 1509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::pbackfail(int_type) { 1519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return _Traits::eof(); 1529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block} 1539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 1559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::int_type 1569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::overflow(int_type) { 1579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return _Traits::eof(); 1589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block} 1599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 1619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::int_type 1629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::uflow() { 1639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block return ( _Traits::eq_int_type(this->underflow(),_Traits::eof()) ? 1649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _Traits::eof() : 1659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block _Traits::to_int_type(*_M_gnext++)); 1669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block} 1679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 1699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::int_type 1709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::underflow() 1719720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return _Traits::eof(); } 1729720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1739720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 1749720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockstreamsize 1759720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::showmanyc() 1769720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return 0; } 1779720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1789720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 1799720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockvoid 1809720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::imbue(const locale&) {} 1819720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1829720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 1839720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockint 1849720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::sync() { return 0; } 1859720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1869720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 1879720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::pos_type 1889720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::seekpos(pos_type, ios_base::openmode) 1899720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return pos_type(-1); } 1909720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1919720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 1929720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::pos_type 1939720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>::seekoff(off_type, ios_base::seekdir, 1949720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block ios_base::openmode) 1959720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return pos_type(-1); } 1969720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 1979720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blocktemplate <class _CharT, class _Traits> 1989720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>* 1999720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Blockbasic_streambuf<_CharT, _Traits>:: setbuf(char_type*, streamsize) 2009720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block{ return this; } 2019720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 2029720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block_STLP_END_NAMESPACE 2039720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 2049720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif 2059720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block 2069720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Local Variables: 2079720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// mode:C++ 2089720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// End: 209