aboutsummaryrefslogtreecommitdiff
path: root/src/base/bufio/reader.c
blob: afdaf609597bb1368eae1265a60c7f5587acad24 (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
26
27
28
#include "internal.h"

error
bufio·initreader(io·Buffer *buf, io·Reader rdr, void *h)
{
    if (buf->state) {
        errorf("attemped to initialize an active buffer, state is '%d'", buf->state);
        return bufio·err;
    }
    buf->state    = bufio·rdr;
    buf->runesize = 0;
    buf->h        = h;
    buf->rdr      = rdr;
    buf->beg      = buf->buf + bufio·ungets;
    buf->pos      = buf->beg;
    buf->end      = buf->pos; 
    buf->size     = bufio·size - bufio·ungets;

    return 0;
}

void
bufio·finireader(io·Buffer *buf)
{
    buf->state    = bufio·nil;
    buf->runesize = 0;
    buf->rdr      = (io·Reader){ .read = nil };
}