summaryrefslogtreecommitdiff
path: root/src/libstddjb/iobuffer_fill.c
blob: b99e22d0e933ed9e387d48322b53d8497bdc328f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* ISC license. */

#include <errno.h>
#include <skalibs/iobuffer.h>

ssize_t iobuffer_fill (iobuffer_ref b)
{
  if (b->isk)
  {
    ssize_t r = iobufferk_fill(&b->x.k) ;
    if (r >= 0 || errno != ENOSYS || !iobuffer_salvage(b)) return r ;
  }
  return iobufferu_fill(&b->x.u) ;
}