ref: d1a98f52a81b08b68e9cbb0e78c166f62c936690
dir: /f_ascii85.c/
#include <u.h>
#include <libc.h>
#include "pdf.h"
static int
flreadall(void *aux, Buffer *bi, Buffer *bo)
{
int i, j, insz;
uchar *in;
u32int x;
USED(aux);
in = bufdata(bi, &insz);
for(i = j = 0; i < insz; i++){
if(!isws(in[i]))
in[j++] = in[i];
}
insz = j;
for(i = 0; i < insz; i += 5){
for(x = 0, j = 0; j < 5; j++)
x = x*85 + ((i+j < insz ? in[i+j] : 'u') - 33);
bufput(bo, (uchar*)&x+3, 1);
bufput(bo, (uchar*)&x+2, 1);
bufput(bo, (uchar*)&x+1, 1);
bufput(bo, (uchar*)&x+0, 1);
}
bi->off = bi->sz;
return 0;
}
Filter filterASCII85 = {
.name = "ASCII85Decode",
.readall = flreadall,
};