#include "input.h"

#define PADDING  '='

int
readb(FILE *fp, unsigned char *s, int slen)
{
    int read, tread;
    unsigned char *send, *sbeg;
    unsigned char *l, *r;
    
    read = tread = 0;
    sbeg = l = r = s;
    while (tread < slen && (read = fread(l, sizeof(*l), slen-tread, fp))) {
        tread += read;
        send = s + tread;
        for (r = l; r < send; ++r)
            if (*r != '\n')
                *l++ = *r;
        tread -= r - l;
        if (l > sbeg) {
            for (--l; *l == PADDING; --l)
                ;
            ++l;
        }
    }

    return l-sbeg;
}