ref: 3d14c5f66a2485db6ba7e25393a72e5f142049b6
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, };