Article View: comp.std.c
Article #3563Re: printf() format extensions - looking for beta testers...
From: Peter Seebach
Date: Mon, 15 Apr 1996 04:44
Date: Mon, 15 Apr 1996 04:44
55 lines
2249 bytes
2249 bytes
In article <4kr74a$k8o@solutions.solon.com>,
Sean 'Captain Napalm' Conner <spc@gate.net> wrote:
>>%# would be a poor choice; the conversion func for %# is one which returns
>>a magic cookie to set the alternate format flag. :)
> Oh. Ah. Well. What IS available?
Whatever you want; it's just that if you change %#, you change the behavior
of existing legal programs.
> Well, why not change the approach? The current printf() will accept a
>line such as:
> printf("%*s",someint,somestring);
> To allow variable widths to be specified. Why not extend that and pass in
>the function pointers? Something like:
> printf("%p@",myfunctptr,myptrtype);
> Where '@' specifies a format function, and the letter before it declares
>the type using a single letter specification:
> c - char
> s - short
> i - int
> l - long
> f - float
> d - double
> With the following modifiers:
> p - pointer (if alone, void *)
> u - unsigned
> Less chance of clashes, and more flexible I feel.
Well, that would break existing code, of course; you can actually
do something similar;
int funcconv(va_list *ap, char *into, int len, fmtspec *fs) {
fmtconv fc;
fc = va_arg(*ap, fmtconv);
return fc(ap, into, len, fs);
}
And just bind this to whatever character you want. (In my sample
implementation, it's %<.)
-s
--
Peter Seebach - seebs@solon.com - Copyright 1996 Peter Seebach.
C/Unix wizard -- C/Unix questions? Send mail for help. No, really!
FUCK the communications decency act. Goddamned government. [literally.]
The *other* C FAQ - http://www.solon.com/~seebs/c/c-iaq.html
Technical Details
Message-ID:
<4ksk72$rm6@solutions.solon.com>Path:
arc1-ca.pugleaf.net!solon.com!not-for-mailReferences:
<4kll9l$o5h@solutions.solon.com> <4kobun$8i2@solutions.solon.com> <4koecq$8up@solutions.solon.com> <4kr74a$k8o@solutions.solon.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!solon.com!not-for-mail From: seebs@solon.com (Peter Seebach) Newsgroups: comp.std.c,comp.lang.c.moderated Subject: Re: printf() format extensions - looking for beta testers... Date: 14 Apr 1996 23:44:18 -0500 Organization: Usenet Fact Police (Undercover) Sender: clc@solutions.solon.com Approved: clc@solutions.solon.com Message-ID: <4ksk72$rm6@solutions.solon.com> References: <4kll9l$o5h@solutions.solon.com> <4kobun$8i2@solutions.solon.com> <4koecq$8up@solutions.solon.com> <4kr74a$k8o@solutions.solon.com> Reply-To: seebs@solon.com NNTP-Posting-Host: solutions.solon.com