Lines Matching refs:buffer

56     str->buffer->delete_range(str->buffer->tell((buf_char*)pptr()),
57 str->buffer->tell(str->end));
62 inline void disconnect_gap_from_file(edit_buffer* buffer, FILE* fp)
64 if (buffer->gap_start_ptr != &fp->__bufp)
66 buffer->gap_start_normal = fp->__bufp;
67 buffer->gap_start_ptr = &buffer->gap_start_normal;
71 void edit_streambuf::flush_to_buffer(edit_buffer* buffer)
73 if (pptr() > buffer->_gap_start && pptr() < buffer->gap_end())
74 buffer->_gap_start = pptr();
77 void edit_streambuf::disconnect_gap_from_file(edit_buffer* buffer)
79 if (buffer->_writer != this) return;
80 flush_to_buffer(buffer);
82 buffer->_writer = NULL;
96 return str->buffer->tell(file->__bufp);
152 /* Adjust markers, and buffer data structure, to put the gap at POS.
215 /* make sure that the gap in the current buffer is at least k
263 /* Add `amount' to the position of every marker in the current buffer
323 __off == index at start of buffer (need only be valid after seek ? )
327 __endp <= min(*gap_start_ptr, edit_string->end->ptr(buffer))
331 file->edit_string->end->ptr(buffer) == *gap_start_ptr+end
340 struct edit_buffer *buffer = str->buffer;
342 disconnect_gap_from_file(buffer);
345 buf_char *str_end = str->end->ptr(buffer);
352 if (str_end <= buffer->gap_start()) {
356 if (gptr() < buffer->gap_start()) {
357 setg(eback(), gptr(), buffer->gap_start());
360 if (gptr() == buffer->gap_start()) {
361 disconnect_gap_from_file(buffer);
363 setg(buffer->gap_end(), buffer->gap_end(), str_end);
374 struct edit_buffer *buffer = str->buffer;
375 flush_to_buffer(buffer);
381 buf_char *str_end = str->end->ptr(buffer);
390 if (buffer->_writer)
391 buffer->_writer->flush_to_buffer(); // Redundant?
392 buffer->_writer = NULL;
393 if (pptr() >= buffer->gap_end())
394 buffer->move_gap(pptr() - buffer->gap_size());
396 buffer->move_gap(pptr());
397 buffer->make_gap(1);
398 setp(buffer->gap_start(), buffer->gap_end());
399 buffer->_writer = this;
404 if (str_end <= buffer->gap_start()) {
408 else if (pptr() < buffer->gap_start()) {
410 setp(pptr(), buffer->gap_start());
413 else if (pptr() == buffer->gap_start()) {
415 // disconnect_gap_from_file(buffer);
416 setp(buffer->gap_end(), str_end);
443 struct edit_buffer *buffer = str->buffer;
444 disconnect_gap_from_file(buffer);
445 buf_index cur_pos = buffer->tell((buf_char*)current());;
446 buf_index start_pos = buffer->tell(str->start);
447 buf_index end_pos = buffer->tell(str->end);
461 buf_char *new_pos = buffer->data + offset;
462 buf_char* gap_start = buffer->gap_start();
464 buf_char* gap_end = buffer->gap_end();
466 if (new_pos >= buffer->data + buffer->buf_size) abort(); // Paranoia.
477 struct edit_buffer *buffer = cookie->str->buffer;
478 buf_char *str_start = cookie->str->start->ptr(buffer);
479 disconnect_gap_from_file(buffer, cookie->file);
481 if (file->__bufp <= *buffer->gap_start_ptr
482 || str_start >= buffer->__gap_end)
486 (*buffer->gap_start_ptr - str_start) + (file->__bufp - __gap_end);
509 *buffer->gap_start_ptr; /* what if gap_start_ptr == &bufp ??? */
555 edit_buffer* buffer = bstr->buffer;
556 next = buffer->files;
557 buffer->files = this;
558 char* buf_ptr = bstr->start->ptr(buffer);
574 struct edit_buffer *buffer = cookie->str->buffer;
576 for (ptr = &buffer->files; *ptr != cookie; ptr = &(*ptr)->next) ;
578 disconnect_gap_from_file(buffer, cookie->file);
588 // Unlink this from list of files associated with bstr->buffer.
589 edit_streambuf **ptr = &str->buffer->files;
593 disconnect_gap_from_file(str->buffer);
620 struct edit_buffer *buf = str->buffer;
640 // A (slow) way to find the buffer a mark belongs to.
642 edit_buffer * edit_mark::buffer()
652 // Must unlink mark from chain of owning buffer
653 struct edit_buffer *buf = buffer();
662 ptrdiff_t delta = end->ptr(buffer) - start->ptr(buffer);
663 if (end->ptr(buffer) <= buffer->gap_start() ||
664 start->ptr(buffer) >= buffer->gap_end())
666 return delta - buffer->gap_size();
674 start1 = start->ptr(buffer);
675 if (end->ptr(buffer) <= buffer->gap_start()
676 || start->ptr(buffer) >= buffer->gap_end()) {
677 len1 = end->ptr(buffer) - start1;
682 len1 = buffer->gap_start() - start1;
683 start2 = buffer->gap_end();
684 len2 = end->ptr(buffer) - start2;
703 if (buffer == src->buffer /*&& ???*/) { /* overly conservative */