dj(1): fix infiniskipping
This commit is contained in:
parent
bf06e91be5
commit
0df2c9f566
7
src/dj.c
7
src/dj.c
@ -263,11 +263,11 @@ int main(int argc, char *argv[]){
|
|||||||
assert(io[0].bufuse == 0);
|
assert(io[0].bufuse == 0);
|
||||||
|
|
||||||
{ /* read */
|
{ /* read */
|
||||||
char skipping;
|
long skipping;
|
||||||
size_t t;
|
size_t t;
|
||||||
|
|
||||||
/* hack to intentionally get a partial read from Io_read */
|
/* hack to intentionally get a partial read from Io_read */
|
||||||
if((skipping = (io[0].seek > 0)) && io[0].seek < io[0].bs)
|
if((skipping = MIN(io[0].seek, io[0].bs)) > 0)
|
||||||
io[0].bufuse = io[0].bs - io[0].seek;
|
io[0].bufuse = io[0].bs - io[0].seek;
|
||||||
|
|
||||||
t = io[0].bufuse;
|
t = io[0].bufuse;
|
||||||
@ -290,7 +290,8 @@ int main(int argc, char *argv[]){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(skipping){
|
if(skipping > 0){
|
||||||
|
io[0].seek -= skipping;
|
||||||
io[0].bufuse = 0;
|
io[0].bufuse = 0;
|
||||||
count += (count != 0);
|
count += (count != 0);
|
||||||
continue;
|
continue;
|
||||||
|
Loading…
Reference in New Issue
Block a user