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