increase readability of input.{c,h}
This commit is contained in:
parent
59bd416dc7
commit
99c88949ac
2 changed files with 23 additions and 20 deletions
41
input.c
41
input.c
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
2
input.h
2
input.h
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue