increase readability of input.{c,h}

This commit is contained in:
Eric 2025-06-12 11:32:47 +02:00
parent 59bd416dc7
commit 99c88949ac
2 changed files with 23 additions and 20 deletions

41
input.c
View file

@ -3,27 +3,30 @@
#define PADDING '=' #define PADDING '='
int int
readb(FILE *fp, unsigned char *s, int slen) readb(FILE *fptr, unsigned char *buf, int bufsize)
{ {
int read, tread; int read;
unsigned char *send, *sbeg; int total;
unsigned char *l, *r; unsigned char *begin;
unsigned char *end;
unsigned char *left;
unsigned char *right;
read = tread = 0; read = total = 0;
sbeg = l = r = s; begin = left = buf;
while (tread < slen && (read = fread(l, sizeof(*l), slen-tread, fp))) { while (total < bufsize && (read = fread(left, sizeof(*left), bufsize-total, fptr))) {
tread += read; total += read;
send = s + tread; end = buf + total;
for (r = l; r < send; ++r) for (right = left; right < end; ++right)
if (*r != '\n') if (*right != '\n')
*l++ = *r; *left++ = *right;
tread -= r - l; total -= right - left;
if (l > sbeg) { }
for (--l; *l == PADDING; --l) if (left > begin) {
; for (--left; *left == PADDING; --left)
++l; ;
} ++left;
} }
return l-sbeg; return left-begin;
} }

View file

@ -4,6 +4,6 @@
#include <stdio.h> #include <stdio.h>
int int
readb(FILE *fp, unsigned char *s, int slen); readb(FILE *fptr, unsigned char *buf, int bufsize);
#endif #endif