ref: 7c3dae6ee98d99ea92bc06a830acf59f40108d45
parent: f33615cbd2103b8fbbc04cd3e3558b932f8398ce
author: Sigrid Solveig Haflínudóttir <ftrvxmtrx@gmail.com>
date: Sun Nov 22 14:43:17 EST 2020
ascii85 filter: call bufput once per 4 bytes
--- a/f_ascii85.c
+++ b/f_ascii85.c
@@ -5,8 +5,8 @@
static int
flreadall(void *aux, Buffer *bi, Buffer *bo)
{
+ uchar *in, c[4];
int i, j, insz;
- uchar *in;
u32int x;
USED(aux);
@@ -20,10 +20,11 @@
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);
+ c[0] = x >> 24;
+ c[1] = x >> 16;
+ c[2] = x >> 8;
+ c[3] = x;
+ bufput(bo, c, 4);
}
bi->off = bi->sz;