From: Will Sowerbutts Date: Sun, 25 Jan 2015 22:53:20 +0000 (+0000) Subject: Fix count= option to dd X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=ac6ba92926470d1f7d7d735e43ee77f8b8dbfab8;p=FUZIX.git Fix count= option to dd --- diff --git a/Applications/util/dd.c b/Applications/util/dd.c index e29bd394..be694f19 100644 --- a/Applications/util/dd.c +++ b/Applications/util/dd.c @@ -71,6 +71,7 @@ void main(int argc, char *argv[]) long skipval; long intotal; long outtotal; + long inmax; char *buf; infile = NULL; @@ -79,6 +80,7 @@ void main(int argc, char *argv[]) skipval = 0; blocksize = 512; count = 0x7fffffff; + inmax = 0; while (--argc > 0) { str = *++argv; @@ -204,6 +206,8 @@ void main(int argc, char *argv[]) goto cleanup; } } + if(count != 0x7fffffff) + inmax = count * blocksize; while ((incc = read(infd, buf, blocksize)) > 0) { intotal += incc; cp = buf; @@ -222,6 +226,8 @@ void main(int argc, char *argv[]) cp += outcc; incc -= outcc; } + if(inmax && intotal >= inmax) + break; } if (incc < 0)