remove getsxts for better function readb
Decoding input is read faster now. With this, all options have been tuned to a reasonable degree.
This commit is contained in:
parent
0a4a98390d
commit
debab62506
3 changed files with 23 additions and 13 deletions
32
input.c
32
input.c
|
@ -1,19 +1,29 @@
|
|||
#include "input.h"
|
||||
|
||||
#define PADDING '='
|
||||
#define SXTETBUF 4
|
||||
|
||||
int
|
||||
getsxts(FILE *fp, unsigned char *s)
|
||||
readb(FILE *fp, unsigned char *s, int slen)
|
||||
{
|
||||
int c, n, pad;
|
||||
int read, tread;
|
||||
unsigned char *send, *sbeg;
|
||||
unsigned char *l, *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;
|
||||
}
|
||||
}
|
||||
|
||||
n = pad = 0;
|
||||
while (n < SXTETBUF && (c = fgetc(fp)) != EOF && c != PADDING)
|
||||
if (c != '\n')
|
||||
s[n++] = c;
|
||||
while (n+pad < SXTETBUF)
|
||||
s[n+pad++] = PADDING;
|
||||
|
||||
return n;
|
||||
return l-sbeg;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue