34 if (m_read_ptr && (len = m_read_end - m_read_ptr) > 0) {
35 MemDump get_area (m_read_ptr, len);
43 if (m_write_base && (len = m_write_ptr - m_write_base) > 0) {
44 MemDump put_area (m_write_base, len);
69 setg (
char* gbeg_,
char* gnext_,
char* gend_)
80 setb (
char* b_,
char* eb_,
int del_)
109 if (p_ == NULL || len_ == 0) {
118 setb (p_, p_ + len_, 0);
152 else if (count > 20) {
153 memcpy (data_, m_read_ptr, count);
165 DL((
STRMBUFTRACE,
"Transferred %d bytes to user-space buffer\n", count));
188 const char* s = data_;
203 memcpy (m_write_ptr, s, count);
205 m_write_ptr += count;
207 else if (count <= 0) {
214 for (i=count; --i >= 0;) {
222 if (more == 0 ||
overflow ((
unsigned char) *s++) == EOF) {
229 return (len_ - more);
239 buf =
new char [1024];
243 setb (buf, buf+1024, 1);