diff options
Diffstat (limited to 'contrib/libio/strstream.cc')
-rw-r--r-- | contrib/libio/strstream.cc | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/contrib/libio/strstream.cc b/contrib/libio/strstream.cc deleted file mode 100644 index a32e811c9d94..000000000000 --- a/contrib/libio/strstream.cc +++ /dev/null @@ -1,116 +0,0 @@ -/* This is part of libio/iostream, providing -*- C++ -*- input/output. -Copyright (C) 1993 Free Software Foundation - -This file is part of the GNU IO Library. This library is free -software; you can redistribute it and/or modify it under the -terms of the GNU General Public License as published by the -Free Software Foundation; either version 2, or (at your option) -any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this library; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -As a special exception, if you link this library with files -compiled with a GNU compiler to produce an executable, this does not cause -the resulting executable to be covered by the GNU General Public License. -This exception does not however invalidate any other reasons why -the executable file might be covered by the GNU General Public License. */ - -/* Written by Per Bothner (bothner@cygnus.com). */ - -#ifdef __GNUG__ -#pragma implementation -#endif -#include "iostreamP.h" -#include "strstream.h" -#include <string.h> - -static void* default_alloc(_IO_size_t size) -{ - return (void*)new char[size]; -} - -static void default_free(void* ptr) -{ - delete [] (char*)ptr; -} - -istrstream::istrstream(const char *cp, int n) -{ - __my_sb.init_readonly (cp, n); -} - -strstreambase::strstreambase(char *cp, int n, int mode) -: __my_sb (cp, n, - (mode == ios::app || mode == ios::ate) ? cp + strlen(cp) : cp) -{ - init (&__my_sb); -} - -char *strstreambuf::str() -{ - freeze(1); - return base(); -} - -_IO_ssize_t strstreambuf::pcount () { return _IO_write_ptr - _IO_write_base; } - -int strstreambuf::overflow(int c /* = EOF */) -{ - return _IO_str_overflow (this, c); -} - -int strstreambuf::underflow() -{ - return _IO_str_underflow(this); -} - - -void strstreambuf::init_dynamic(_IO_alloc_type alloc, _IO_free_type free, - int initial_size) - -{ - _s._allocate_buffer = alloc ? alloc : default_alloc; - _s._free_buffer = free ? free : default_free; - if (initial_size > 0) - { - char * buf = (char*)(*_s._allocate_buffer)(initial_size); - setb(buf, buf + initial_size, 1); - setp(buf, buf + initial_size); - setg(buf, buf, buf); - } -} - -void strstreambuf::init_static(char *ptr, int size, char *pstart) -{ - _IO_str_init_static (this, ptr, size, pstart); -} - -void strstreambuf::init_readonly (const char *ptr, int size) -{ - _IO_str_init_readonly (this, ptr, size); -} - -strstreambuf::~strstreambuf() -{ - if (_IO_buf_base && !(_flags & _IO_USER_BUF)) - (_s._free_buffer)(_IO_buf_base); - _IO_buf_base = NULL; -} - -streampos strstreambuf::seekoff(streamoff off, _seek_dir dir, - int mode /*=ios::in|ios::out*/) -{ - return _IO_str_seekoff (this, off, dir, mode); -} - -int strstreambuf::pbackfail(int c) -{ - return _IO_str_pbackfail (this, c); -} |