Compare commits
2 commits
d921c1d860
...
a90a6901cc
Author | SHA1 | Date | |
---|---|---|---|
|
a90a6901cc | ||
|
debab62506 |
1 changed files with 16 additions and 11 deletions
15
input.c
15
input.c
|
@ -5,20 +5,25 @@
|
|||
int
|
||||
readb(FILE *fp, unsigned char *s, int slen)
|
||||
{
|
||||
unsigned char *send;
|
||||
unsigned char *sbeg;
|
||||
int read, tread;
|
||||
unsigned char *send, *sbeg;
|
||||
unsigned char *l, *r;
|
||||
|
||||
sbeg = s;
|
||||
send = s + fread(s, sizeof(*s), slen, fp);
|
||||
for (l = r = sbeg; r < send; ++r)
|
||||
read = tread = 0;
|
||||
sbeg = l = r = s;
|
||||
while (tread < slen && (read = fread(l, sizeof(*l), slen-tread, fp))) {
|
||||
tread += read;
|
||||
send = s + tread;
|
||||
for (r = l; r < send; ++r)
|
||||
if (*r != '\n')
|
||||
*l++ = *r;
|
||||
tread -= r - l;
|
||||
if (l > sbeg) {
|
||||
for (--l; *l == PADDING; --l)
|
||||
;
|
||||
++l;
|
||||
}
|
||||
}
|
||||
|
||||
return l-sbeg;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue