On Wed, Feb 21, 2007 at 04:16:17PM +0000, Frank Hofmann wrote: > >>>http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/mdb/common/mdb/mdb_print.c#1446 > >> > >>Can this be overridden ? > >> > >>If '/...' operates on the first instead of the last output work, it breaks > >>the old example: > >> > >>*log_recentq::print queue_t q_first | ::walk b_next | ::walk b_cont | > >>::print mblk_t b_rptr | /s > >> > >>if an '-a' is inserted after the '::print'. > > > >I do not see this as inconsistent. There is no point to -a in such a case > >unless you want the address. Just don't use -a! > > It does make a difference. The following: > > *rootvfs::print -a vfs_t vfs_data | ::print ufsvfs_t > *rootvfs::print -a vfs_t vfs_data | ::print -a ufsvfs_t > *rootvfs::print vfs_t vfs_data | ::print ufsvfs_t > *rootvfs::print vfs_t vfs_data | ::print -a ufsvfs_t > > all do the same on 'classical' but with the new are different.
I'm not denying the behaviour has changed, just that the new behaviour is both useful and self-consistent. > Imagine longer pipes with ::print in. What's the difference? When would you have previously found -a useful in such a case? Given that the thing it changed was always ignored? > And the documentation on pipes, so that it mentions "watch what you put to > the left side of a '|'". You've lost me. It's always the case that the behaviour on the right side of a pipe is dependent on what happens on the left side of a pipe. I can't imagine any concept of a pipe where that isn't true. The fact that the -a option to ::print was previously useless in a pipe context is edging pretty close to a bug as far as I can see. regards john