summaryrefslogtreecommitdiffstats
path: root/buffer_copy.c
blob: dc4d4b1727b3598afd4e7a7eeb0fa8445a7da638 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "buffer.h"

int buffer_copy(buffer *bout,buffer *bin)
{
  int n;
  char *x;

  for (;;) {
    n = buffer_feed(bin);
    if (n < 0) return -2;
    if (!n) return 0;
    x = buffer_PEEK(bin);
    if (buffer_put(bout,x,n) == -1) return -3;
    buffer_SEEK(bin,n);
  }
}