[net.unix-wizards] Why vprintf and not %r?

kendall@wjh12.UUCP (Sam Kendall) (03/25/84)

The new functions in System V.2, vprintf, vfprintf, and vsprintf,
provide the functionality of calling _doprnt directly.  I would
like to know why these three new functions were defined when printf
under V7 already had a solution, albeit undocumented: the %r
conversion code.  %r could have been defined in terms of the
varargs macros, and still have been upward compatible from V7.
*Sigh*.

	Sam Kendall	{allegra,ihnp4,ima,amd70}!wjh12!kendall
	Delft Consulting Corp.	    decvax!genrad!wjh12!kendall

gwyn@brl-vgr.ARPA (Doug Gwyn ) (03/27/84)

I believe (but am not sure) that the %r embedded format spec could\
not be implemented successfully on all computer architectures whereas
varargs can.  Anyone have more specific information?

kendall@wjh12.UUCP (Sam Kendall) (03/28/84)

<>
        I believe (but am not sure) that the %r embedded format spec
        could not be implemented successfully on all computer
        architectures whereas varargs can.

That is true, if we define the operand of %r to be a char **.  But if
we define it to be a va_list (a type defined in <varargs.h>) we get
a portable interface, and upward compatibility from V7 on most
architectures.

	Sam Kendall	{allegra,ihnp4,ima,amd70}!wjh12!kendall
	Delft Consulting Corp.	    decvax!genrad!wjh12!kendall