aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs6/ftrigr_peek.c
blob: 5107baee06c46c9d9e3e775133a4a08648a3ea87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/* ISC license. */

#include <errno.h>

#include <skalibs/genalloc.h>

#include <s6/ftrigr.h>
#include "ftrigr-internal.h"

int ftrigr_peek (ftrigr *a, uint32_t id, ftrigr_string *fs)
{
  ftrigr_data *p = genalloc_s(ftrigr_data, &a->data) + id ;
  switch (p->status)
  {
    case EAGAIN : return 0 ;
    case 0 :
    {
      fs->s = p->sa.s ;
      fs->len = p->sa.len ;
      return 1 ;
    }
    default: break ;
  }
  return (errno = p->status, -1) ;
}