On 04/03/11 18:04, Paul Eggert wrote: > On 03/04/2011 02:09 AM, Pádraig Brady wrote: >> On 04/03/11 07:44, Paul Eggert wrote: >>> + /* If bs=SIZE is given and iflag=fullblock is not, warn if a >> >> Do you check that bs= is specified? > > I meant to, but I inadvertently deleted that part of the change, > which meant that the code didn't implement the comment correctly. > Sorry about that; see below. > >> Anyway, with this patch the following slightly contrived example will >> warn: > > The following further patch, which fixes the abovementioned typo, > should address that problem. > > --- a/src/dd.c > +++ b/src/dd.c > @@ -814,7 +814,7 @@ iread (int fd, char *buf, size_t size) > static bool warned; > static ssize_t prev_nread; > > - if (! warned && iread_fnc == iread > + if (! warned && ! (conversions_mask & C_TWOBUFS) && iread_fnc == > iread > && 0 < prev_nread && prev_nread < size
Looks good! I can't think of an example where this might erroneously warn. > && (skip_records > || (0 < max_records && max_records < (uintmax_t) -1))) If we more aggressively warn by removing the check for the counts above, then we would directly address http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8171 Unfortunately that would give unwanted warnings though, in some cases. cheers, Pádraig.
