Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Dec 2005 12:57:15 -0500 (EST)
From:      "Matthew N. Dodd" <mdodd@FreeBSD.ORG>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        current@FreeBSD.ORG
Subject:   Re: About extensible prinf(3), a slightly long X-mas card
Message-ID:  <20051217124717.H97875@sasami.jurai.net>
In-Reply-To: <8509.1134766863@critter.freebsd.dk>
References:  <8509.1134766863@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--0-256505370-1134842235=:97875
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

On Fri, 16 Dec 2005, Poul-Henning Kamp wrote:
> If this proves useful, it'll stay in the tree and be part of 7.0 (no MFCs!)
> it people break out in bikesheds about it, it will not.

I'd rather leave the single letter specifiers and modifiers to the 
standards compliant printf and use something like %{foo} as the specifier 
for extensions.

I've re-arranged some of the internals to make this easier to implement, 
and stubbed out the parsing of the %{} formats.  I'm a little unsure what 
sort of errors to throw on extension lookup failure.

...

What are your feelings on implementing things in such a way that the 
compiler could use this same sort of extension plugin to perform type 
checking?


--0-256505370-1134842235=:97875
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="xprintf.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <20051217125715.C97875@sasami.jurai.net>
Content-Description: 
Content-Disposition: attachment; filename="xprintf.diff"

SW5kZXg6IGluY2x1ZGUvcHJpbnRmLmgNCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NClJDUyBmaWxlOiAvaG9tZS9jdnMvc3JjL2luY2x1ZGUvcHJpbnRmLmgs
dg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjENCmRpZmYgLXUgLXUgLXIxLjEg
cHJpbnRmLmgNCi0tLSBpbmNsdWRlL3ByaW50Zi5oCTE2IERlYyAyMDA1IDE4
OjU2OjM4IC0wMDAwCTEuMQ0KKysrIGluY2x1ZGUvcHJpbnRmLmgJMTcgRGVj
IDIwMDUgMTc6MTM6MjcgLTAwMDANCkBAIC03NCw2ICs3NCw3IEBADQogCWNv
bnN0IGNoYXIJKmJlZ2luOw0KIAljb25zdCBjaGFyCSplbmQ7DQogCXZvaWQg
CQkqYXJnW19fUFJJTlRGTUFYQVJHXTsNCisJc3RydWN0IGFyZ19mdW5jdGlv
biAqYXJnX2ZjbjsNCiB9Ow0KIA0KIGVudW0gew0KQEAgLTEwNSw2ICsxMDYs
MTIgQEANCiBzdHJ1Y3QgX19wcmludGZfaW87DQogdHlwZWRlZiBpbnQgcHJp
bnRmX3JlbmRlcihzdHJ1Y3QgX19wcmludGZfaW8gKiwgY29uc3Qgc3RydWN0
IHByaW50Zl9pbmZvICosIGNvbnN0IHZvaWQgKmNvbnN0ICopOw0KIA0KK3N0
cnVjdCBhcmdfZnVuY3Rpb24gew0KKwlwcmludGZfYXJnaW5mb19mdW5jdGlv
bgkqYXJnaW5mbzsNCisJcHJpbnRmX2Z1bmN0aW9uCQkqZ251cmVuZGVyOw0K
KwlwcmludGZfcmVuZGVyCQkqcmVuZGVyOw0KK307DQorDQogLyogdnByaW50
Zi5jICovDQogZXh0ZXJuIGNvbnN0IGNoYXIgX19sb3dlcmNhc2VfaGV4WzE3
XTsNCiBleHRlcm4gY29uc3QgY2hhciBfX3VwcGVyY2FzZV9oZXhbMTddOw0K
SW5kZXg6IGxpYi9saWJjL3N0ZGlvL3hwcmludGYuYw0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL2N2cy9zcmMvbGliL2xpYmMv
c3RkaW8veHByaW50Zi5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xDQpk
aWZmIC11IC11IC1yMS4xIHhwcmludGYuYw0KLS0tIGxpYi9saWJjL3N0ZGlv
L3hwcmludGYuYwkxNiBEZWMgMjAwNSAxODo1NjozOCAtMDAwMAkxLjENCisr
KyBsaWIvbGliYy9zdGRpby94cHJpbnRmLmMJMTcgRGVjIDIwMDUgMTc6NDg6
MzcgLTAwMDANCkBAIC0yMzAsMTEgKzIzMCw3IEBADQogLyogdGFibGUgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSovDQogDQogLypsaW50IC1lc3ltKDc4NSwgcHJpbnRm
X3RibCkgKi8NCi1zdGF0aWMgc3RydWN0IHsNCi0JcHJpbnRmX2FyZ2luZm9f
ZnVuY3Rpb24JKmFyZ2luZm87DQotCXByaW50Zl9mdW5jdGlvbgkJKmdudXJl
bmRlcjsNCi0JcHJpbnRmX3JlbmRlcgkJKnJlbmRlcjsNCi19IHByaW50Zl90
YmxbMjU2XSA9IHsNCitzdHJ1Y3QgYXJnX2Z1bmN0aW9uIHByaW50Zl90Ymxb
MjU2XSA9IHsNCiAJWyclJ10gPSB7IF9fcHJpbnRmX2FyZ2luZm9fcGN0LAkJ
TlVMTCwJX19wcmludGZfcmVuZGVyX3BjdCB9LA0KIAlbJ0EnXSA9IHsgX19w
cmludGZfYXJnaW5mb19mbG9hdCwJTlVMTCwJX19wcmludGZfcmVuZGVyX2Zs
b2F0IH0sDQogCVsnQyddID0geyBfX3ByaW50Zl9hcmdpbmZvX2NociwJCU5V
TEwsCV9fcHJpbnRmX3JlbmRlcl9jaHIgfSwNCkBAIC00MjksMTMgKzQyNSwz
MSBAQA0KIAkJCQlwaS0+aXNfc2l6ZSA9IDE7DQogCQkJCWZtdCsrOw0KIAkJ
CQljb250aW51ZTsNCisJCQljYXNlICd7JzoNCisJCQkJLyogU2tpcCB7ICov
DQorCQkJCXBpLT5zcGVjKys7DQorDQorCQkJCS8qIExvb2sgZm9yIGVuZCBi
cmFjZS4gKi8NCisJCQkJd2hpbGUgKCpmbXQrKyAhPSAnfScpDQorCQkJCQk7
DQorDQorCQkJCS8qIE5vIGNsb3NpbmcgYnJhY2UhICovDQorCQkJCWlmICgq
Zm10ID09ICdcMCcpDQorCQkJCQlhYm9ydCgpOw0KKw0KKwkJCQkvKiBsZW4g
PSBwaS0+c3BlYyAtIGZtdCAtIDEgKi8NCisJCQkJYnJlYWs7DQogCQkJZGVm
YXVsdDoNCiAJCQkJZm10Kys7DQogCQkJCWJyZWFrOw0KIAkJCX0NCi0JCQlp
ZiAocHJpbnRmX3RibFtwaS0+c3BlY10uYXJnaW5mbyA9PSBOVUxMKQ0KKw0K
KwkJCWlmIChwaS0+YXJnX2ZjbiA9PSBOVUxMKQ0KKwkJCQlwaS0+YXJnX2Zj
biA9ICZwcmludGZfdGJsW3BpLT5zcGVjXTsNCisNCisJCQlpZiAocGktPmFy
Z19mY24tPmFyZ2luZm8gPT0gTlVMTCkNCiAJCQkJZXJyeCgxLCAiYXJnaW5m
b1slY10gPSBOVUxMIiwgcGktPnNwZWMpOw0KLQkJCWNoID0gcHJpbnRmX3Ri
bFtwaS0+c3BlY10uYXJnaW5mbygNCisJCQljaCA9IHBpLT5hcmdfZmNuLT5h
cmdpbmZvKA0KIAkJCSAgICBwaSwgX19QUklOVEZNQVhBUkcsICZhcmd0W25l
eHRhcmddKTsNCiAJCQlpZiAoY2ggPiAwKQ0KIAkJCQlwaS0+YXJnWzBdID0g
JmFyZ3NbbmV4dGFyZ107DQpAQCAtNTQwLDE0ICs1NTQsMTQgQEANCiAJCWlm
IChwaS0+Z2V0X3ByZWMpIA0KIAkJCXBpLT5wcmVjID0gYXJnc1twaS0+Z2V0
X3ByZWNdLmludGFyZzsNCiAJCXJldCArPSBfX3ByaW50Zl9wdXRzKCZpbywg
cGktPmJlZ2luLCBwaS0+ZW5kIC0gcGktPmJlZ2luKTsNCi0JCWlmIChwcmlu
dGZfdGJsW3BpLT5zcGVjXS5nbnVyZW5kZXIgIT0gTlVMTCkgew0KKwkJaWYg
KHBpLT5hcmdfZmNuLT5nbnVyZW5kZXIgIT0gTlVMTCkgew0KIAkJCV9fcHJp
bnRmX2ZsdXNoKCZpbyk7DQogCQkJcGktPnNvZmFyID0gcmV0Ow0KLQkJCXJl
dCArPSBwcmludGZfdGJsW3BpLT5zcGVjXS5nbnVyZW5kZXIoDQorCQkJcmV0
ICs9IHBpLT5hcmdfZmNuLT5nbnVyZW5kZXIoDQogCQkJICAgIGZwLCBwaSwg
KGNvbnN0IHZvaWQgKilwaS0+YXJnKTsNCi0JCX0gZWxzZSBpZiAocHJpbnRm
X3RibFtwaS0+c3BlY10ucmVuZGVyICE9IE5VTEwpIHsNCisJCX0gZWxzZSBp
ZiAocGktPmFyZ19mY24tPnJlbmRlciAhPSBOVUxMKSB7DQogCQkJcGktPnNv
ZmFyID0gcmV0Ow0KLQkJCW4gPSBwcmludGZfdGJsW3BpLT5zcGVjXS5yZW5k
ZXIoDQorCQkJbiA9IHBpLT5hcmdfZmNuLT5yZW5kZXIoDQogCQkJICAgICZp
bywgcGksIChjb25zdCB2b2lkICopcGktPmFyZyk7DQogCQkJaWYgKG4gPCAw
KQ0KIAkJCQlpby5mcC0+X2ZsYWdzIHw9IF9fU0VSUjsNCg==

--0-256505370-1134842235=:97875--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051217124717.H97875>