On 11/06/2011 01:12 PM, Jim Meyering wrote: > Pádraig Brady wrote: >> On 11/04/2011 06:37 PM, Rodney Rieck wrote: >>> Hello, >>> >>> This is about the Linux program "sum" that computes checksums and >>> number of blocks in a file. I'm not writing about a program error I've >>> found -- I am writing about how the output from the program is >>> formatted. >>> >>> If you type in something like this: sum -r * >>> >>> and if there are multiple files present in the current directory, you >>> will get output like this for each file it checks: >>> >>> [check_sum] [number_of_blocks] [file_name] >>> >>> If though on the command line you change the "*" to a single file name, >>> the output is the same except that it doesn't print/display the >>> "[file_name]", I guess because that seems redundant because the file >>> name is already known and was typed in on the command line. >> >> I consider that a bug. >> freebsd always outputs the file name for example. >> This means that if you do `find -type f | xargs sum`, >> the last entry could be without a file name. >> >> Now we can't change without consideration for backwards compat, >> though I'd be inclined to fix this inconsistency. > > The existing behavior is compatible with that of UCB sum, > and -r (the default) selects BSD compatibility: > > solaris10$ : > k && /usr/ucb/sum k > 00000 0 > solaris10$ /usr/ucb/sum k k > 00000 0 k > 00000 0 k > > Since GNU sum's raison d'etre is compatibility, I'd have a hard > time justifying a change that would render it incompatible. >
Interesting. On solaris: $ echo 1 > 1 $ sum -r 1 32802 1 1 $ /usr/ucb/sum 1 32802 1 UCB being the "Berkley" variant. However BSD changed to always outputting the filename at some stage because `sum` does so on FreeBSD, and has since 1993 according to http://svnweb.freebsd.org/base/head/usr.bin/cksum/ This suggests that the UCB variant was added to solaris around 1989 http://src.illumos.org/source/xref/illumos-gate/usr/src/ucbcmd/sum/sum.c So I'm guessing this was changed in the BSD source sometime between 1989 and 1993. cheers, Pádraig.
