Source

linux-scalability-benchmarks / libowfat / buffer / buffer_get.c

The default branch has multiple heads

Full commit
#include "byte.h"
#include "buffer.h"

ssize_t buffer_get(buffer* b,char* x,size_t len) {
  unsigned long done;
  int blen;
  done=0;
  while (len) {
    if ((blen=buffer_feed(b))<=0) return blen;
    if ((unsigned long int) blen>=len)
      blen=len;
    byte_copy(x,blen,b->x+b->p);
    b->p+=blen;
    len-=blen;
    x+=blen;
    done+=blen;
  }
  return done;
}