diff --git a/src/dj.c b/src/dj.c index 8fe1af3..3b5bc5f 100644 --- a/src/dj.c +++ b/src/dj.c @@ -263,12 +263,12 @@ int main(int argc, char *argv[]){ assert(io[0].bufuse == 0); { /* read */ - char skipping; + long skipping; size_t t; /* hack to intentionally get a partial read from Io_read */ - if((skipping = (io[0].seek > 0)) && io[0].seek < io[0].bs) - io[0].bufuse = io[0].bs - io[0].seek; + if((skipping = MIN(io[0].seek, io[0].bs)) > 0) + io[0].bufuse = io[0].bs - (size_t)skipping; t = io[0].bufuse; if(Io_read(&io[0])->bufuse == t && !noerror && io[0].error == 0) @@ -290,7 +290,8 @@ int main(int argc, char *argv[]){ } } - if(skipping){ + if(skipping > 0){ + io[0].seek -= skipping; io[0].bufuse = 0; count += (count != 0); continue;