ports/125348: lang/nawk: support multibyte charsets in tolower/toupper functions
pfgshield-freebsd at yahoo.com
pfgshield-freebsd at yahoo.com
Mon Jul 7 16:20:06 UTC 2008
The following reply was made to PR ports/125348; it has been noted by GNATS.
From: pfgshield-freebsd at yahoo.com
To: FreeBSD-gnats-submit at FreeBSD.org
Cc:
Subject: Re: ports/125348: lang/nawk: support multibyte charsets in tolower/toupper functions
Date: Mon, 7 Jul 2008 09:16:20 -0700 (PDT)
--0-562972999-1215447380=:72738
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
The upstream maintainer doesn't want to add extensions or support multibyte=
chars.
I think FreeBSD might want to adopt them but for the time being it's better=
to just try to get some patches harmonized among all the BSDs and the main=
tainer.
Let's just add this minimalistic patch (mostly from OpenBSD):
- replace sprintf with snprintf
- use calloc() to avoid malloc(n * m) overflows
- NetBSD PR 36831: In setfval(), ensure that arithmetic never yields a nega=
tive zero result.
=0A=0A=0A Posta, news, sport, oroscopo: tutto in una sola pagina. =0AC=
rea l'home page che piace a te!=0Awww.yahoo.it/latuapagina
--0-562972999-1215447380=:72738
Content-Type: application/octet-stream; name=patch-nawk
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=patch-nawk
ZGlmZiAtcnVOIG5hd2sub3JpZy9maWxlcy9wYXRjaC1iLmMgbmF3ay9maWxl
cy9wYXRjaC1iLmMKLS0tIG5hd2sub3JpZy9maWxlcy9wYXRjaC1iLmMJMTk2
OS0xMi0zMSAxOTowMDowMC4wMDAwMDAwMDAgLTA1MDAKKysrIG5hd2svZmls
ZXMvcGF0Y2gtYi5jCTIwMDgtMDctMDcgMDg6NTc6MDMuMDAwMDAwMDAwIC0w
NTAwCkBAIC0wLDAgKzEsNjcgQEAKKy0tLSBiLmMub3JpZwkyMDA3LTAzLTMx
IDE1OjU2OjE4LjAwMDAwMDAwMCAtMDUwMAorKysrIGIuYwkyMDA4LTA3LTA3
IDA4OjQ0OjUwLjAwMDAwMDAwMCAtMDUwMAorQEAgLTg0LDggKzg0LDggQEAK
KyAKKyAJaWYgKHNldHZlYyA9PSAwKSB7CS8qIGZpcnN0IHRpbWUgdGhyb3Vn
aCBhbnkgUkUgKi8KKyAJCW1heHNldHZlYyA9IE1BWExJTjsKKy0JCXNldHZl
YyA9IChpbnQgKikgbWFsbG9jKG1heHNldHZlYyAqIHNpemVvZihpbnQpKTsK
Ky0JCXRtcHNldCA9IChpbnQgKikgbWFsbG9jKG1heHNldHZlYyAqIHNpemVv
ZihpbnQpKTsKKysJCXNldHZlYyA9IChpbnQgKikgY2FsbG9jKG1heHNldHZl
Yywgc2l6ZW9mKGludCkpOworKwkJdG1wc2V0ID0gKGludCAqKSBjYWxsb2Mo
bWF4c2V0dmVjLCBzaXplb2YoaW50KSk7CisgCQlpZiAoc2V0dmVjID09IDAg
fHwgdG1wc2V0ID09IDApCisgCQkJb3ZlcmZsbygib3V0IG9mIHNwYWNlIGlu
aXRpYWxpemluZyBtYWtlZGZhIik7CisgCX0KK0BAIC0xMzcsNyArMTM3LDcg
QEAKKyAJZi0+YWNjZXB0ID0gcG9zY250LTE7CS8qIHBlbnRlciBoYXMgY29t
cHV0ZWQgbnVtYmVyIG9mIHBvc2l0aW9ucyBpbiByZSAqLworIAljZm9sbChm
LCBwMSk7CS8qIHNldCB1cCBmb2xsb3cgc2V0cyAqLworIAlmcmVldHIocDEp
OworLQlpZiAoKGYtPnBvc25zWzBdID0gKGludCAqKSBjYWxsb2MoMSwgKihm
LT5yZVswXS5sZm9sbG93KSpzaXplb2YoaW50KSkpID09IE5VTEwpCisrCWlm
ICgoZi0+cG9zbnNbMF0gPSAoaW50ICopIGNhbGxvYygqKGYtPnJlWzBdLmxm
b2xsb3cpLCBzaXplb2YoaW50KSkpID09IE5VTEwpCisgCQkJb3ZlcmZsbygi
b3V0IG9mIHNwYWNlIGluIG1ha2VkZmEiKTsKKyAJaWYgKChmLT5wb3Nuc1sx
XSA9IChpbnQgKikgY2FsbG9jKDEsIHNpemVvZihpbnQpKSkgPT0gTlVMTCkK
KyAJCW92ZXJmbG8oIm91dCBvZiBzcGFjZSBpbiBtYWtlZGZhIik7CitAQCAt
MTU3LDcgKzE1Nyw3IEBACisgCWYtPnJlc2V0ID0gMDsKKyAJayA9ICooZi0+
cmVbMF0ubGZvbGxvdyk7CisgCXhmcmVlKGYtPnBvc25zWzJdKTsJCQkKKy0J
aWYgKChmLT5wb3Nuc1syXSA9IChpbnQgKikgY2FsbG9jKDEsIChrKzEpKnNp
emVvZihpbnQpKSkgPT0gTlVMTCkKKysJaWYgKChmLT5wb3Nuc1syXSA9IChp
bnQgKikgY2FsbG9jKGsrMSwgc2l6ZW9mKGludCkpKSA9PSBOVUxMKQorIAkJ
b3ZlcmZsbygib3V0IG9mIHNwYWNlIGluIG1ha2Vpbml0Iik7CisgCWZvciAo
aT0wOyBpIDw9IGs7IGkrKykgeworIAkJKGYtPnBvc25zWzJdKVtpXSA9IChm
LT5yZVswXS5sZm9sbG93KVtpXTsKK0BAIC0zNTcsNyArMzU3LDcgQEAKKyAJ
CQlzZXR2ZWNbaV0gPSAwOworIAkJc2V0Y250ID0gMDsKKyAJCWZvbGxvdyh2
KTsJLyogY29tcHV0ZXMgc2V0dmVjIGFuZCBzZXRjbnQgKi8KKy0JCWlmICgo
cCA9IChpbnQgKikgY2FsbG9jKDEsIChzZXRjbnQrMSkqc2l6ZW9mKGludCkp
KSA9PSBOVUxMKQorKwkJaWYgKChwID0gKGludCAqKSBjYWxsb2Moc2V0Y250
KzEsIHNpemVvZihpbnQpKSkgPT0gTlVMTCkKKyAJCQlvdmVyZmxvKCJvdXQg
b2Ygc3BhY2UgYnVpbGRpbmcgZm9sbG93IHNldCIpOworIAkJZi0+cmVbaW5m
byh2KV0ubGZvbGxvdyA9IHA7CisgCQkqcCA9IHNldGNudDsKK0BAIC01MzEs
NyArNTMxLDcgQEAKKyAJCQlmb3IgKGkgPSAyOyBpIDw9IGYtPmN1cnN0YXQ7
IGkrKykKKyAJCQkJeGZyZWUoZi0+cG9zbnNbaV0pOworIAkJCWsgPSAqZi0+
cG9zbnNbMF07CQkJCistCQkJaWYgKChmLT5wb3Nuc1syXSA9IChpbnQgKikg
Y2FsbG9jKDEsIChrKzEpKnNpemVvZihpbnQpKSkgPT0gTlVMTCkKKysJCQlp
ZiAoKGYtPnBvc25zWzJdID0gKGludCAqKSBjYWxsb2MoaysxLCBzaXplb2Yo
aW50KSkpID09IE5VTEwpCisgCQkJCW92ZXJmbG8oIm91dCBvZiBzcGFjZSBp
biBwbWF0Y2giKTsKKyAJCQlmb3IgKGkgPSAwOyBpIDw9IGs7IGkrKykKKyAJ
CQkJKGYtPnBvc25zWzJdKVtpXSA9IChmLT5wb3Nuc1swXSlbaV07CitAQCAt
NTg4LDcgKzU4OCw3IEBACisgCQkJZm9yIChpID0gMjsgaSA8PSBmLT5jdXJz
dGF0OyBpKyspCisgCQkJCXhmcmVlKGYtPnBvc25zW2ldKTsKKyAJCQlrID0g
KmYtPnBvc25zWzBdOwkJCQorLQkJCWlmICgoZi0+cG9zbnNbMl0gPSAoaW50
ICopIGNhbGxvYygxLCAoaysxKSpzaXplb2YoaW50KSkpID09IE5VTEwpCisr
CQkJaWYgKChmLT5wb3Nuc1syXSA9IChpbnQgKikgY2FsbG9jKGsrMSwgc2l6
ZW9mKGludCkpKSA9PSBOVUxMKQorIAkJCQlvdmVyZmxvKCJvdXQgb2Ygc3Rh
dGUgc3BhY2UiKTsKKyAJCQlmb3IgKGkgPSAwOyBpIDw9IGs7IGkrKykKKyAJ
CQkJKGYtPnBvc25zWzJdKVtpXSA9IChmLT5wb3Nuc1swXSlbaV07CitAQCAt
OTIwLDcgKzkyMCw3IEBACisgCWZvciAoaSA9IDA7IGkgPCBOQ0hBUlM7IGkr
KykKKyAJCWYtPmdvdG90YWJbZi0+Y3Vyc3RhdF1baV0gPSAwOworIAl4ZnJl
ZShmLT5wb3Nuc1tmLT5jdXJzdGF0XSk7CistCWlmICgocCA9IChpbnQgKikg
Y2FsbG9jKDEsIChzZXRjbnQrMSkqc2l6ZW9mKGludCkpKSA9PSBOVUxMKQor
KwlpZiAoKHAgPSAoaW50ICopIGNhbGxvYyhzZXRjbnQrMSwgc2l6ZW9mKGlu
dCkpKSA9PSBOVUxMKQorIAkJb3ZlcmZsbygib3V0IG9mIHNwYWNlIGluIGNn
b3RvIik7CisgCisgCWYtPnBvc25zW2YtPmN1cnN0YXRdID0gcDsKZGlmZiAt
cnVOIG5hd2sub3JpZy9maWxlcy9wYXRjaC1saWIuYyBuYXdrL2ZpbGVzL3Bh
dGNoLWxpYi5jCi0tLSBuYXdrLm9yaWcvZmlsZXMvcGF0Y2gtbGliLmMJMTk2
OS0xMi0zMSAxOTowMDowMC4wMDAwMDAwMDAgLTA1MDAKKysrIG5hd2svZmls
ZXMvcGF0Y2gtbGliLmMJMjAwOC0wNy0wNyAwOTo0MDowMi4wMDAwMDAwMDAg
LTA1MDAKQEAgLTAsMCArMSwyOSBAQAorLS0tIGxpYi5jLm9yaWcJMjAwNy0x
MC0yMiAxODoxNzo1Mi4wMDAwMDAwMDAgLTA1MDAKKysrKyBsaWIuYwkyMDA4
LTA3LTA3IDA5OjM4OjU4LjAwMDAwMDAwMCAtMDUwMAorQEAgLTU5LDcgKzU5
LDcgQEAKKyB7CisgCWlmICggKHJlY29yZCA9IChjaGFyICopIG1hbGxvYyhu
KSkgPT0gTlVMTAorIAkgIHx8IChmaWVsZHMgPSAoY2hhciAqKSBtYWxsb2Mo
bisxKSkgPT0gTlVMTAorLQkgIHx8IChmbGR0YWIgPSAoQ2VsbCAqKikgbWFs
bG9jKChuZmllbGRzKzEpICogc2l6ZW9mKENlbGwgKikpKSA9PSBOVUxMCisr
CSAgfHwgKGZsZHRhYiA9IChDZWxsICoqKSBjYWxsb2MoKG5maWVsZHMrMSks
IHNpemVvZihDZWxsICopKSkgPT0gTlVMTAorIAkgIHx8IChmbGR0YWJbMF0g
PSAoQ2VsbCAqKSBtYWxsb2Moc2l6ZW9mKENlbGwpKSkgPT0gTlVMTCApCisg
CQlGQVRBTCgib3V0IG9mIHNwYWNlIGZvciAkMCBhbmQgZmllbGRzIik7Cisg
CSpmbGR0YWJbMF0gPSBkb2xsYXIwOworQEAgLTc4LDcgKzc4LDcgQEAKKyAJ
CWlmIChmbGR0YWJbaV0gPT0gTlVMTCkKKyAJCQlGQVRBTCgib3V0IG9mIHNw
YWNlIGluIG1ha2VmaWVsZHMgJWQiLCBpKTsKKyAJCSpmbGR0YWJbaV0gPSBk
b2xsYXIxOworLQkJc3ByaW50Zih0ZW1wLCAiJWQiLCBpKTsKKysJCXNucHJp
bnRmKHRlbXAsIHNpemVvZiB0ZW1wLCAiJWQiLCBpKTsKKyAJCWZsZHRhYltp
XS0+bnZhbCA9IHRvc3RyaW5nKHRlbXApOworIAl9CisgfQorQEAgLTIyNiw3
ICsyMjYsNyBAQAorIAljaGFyICpzLCB0ZW1wWzUwXTsKKyAJZXh0ZXJuIEFy
cmF5ICpBUkdWdGFiOworIAorLQlzcHJpbnRmKHRlbXAsICIlZCIsIG4pOwor
KwlzbnByaW50Zih0ZW1wLCBzaXplb2YgdGVtcCwgIiVkIiwgbik7CisgCXgg
PSBzZXRzeW10YWIodGVtcCwgIiIsIDAuMCwgU1RSLCBBUkdWdGFiKTsKKyAJ
cyA9IGdldHN2YWwoeCk7CisgCSAgIGRwcmludGYoICgiZ2V0YXJndiglZCkg
cmV0dXJucyB8JXN8XG4iLCBuLCBzKSApOwpkaWZmIC1ydU4gbmF3ay5vcmln
L2ZpbGVzL3BhdGNoLXRyYW4uYyBuYXdrL2ZpbGVzL3BhdGNoLXRyYW4uYwot
LS0gbmF3ay5vcmlnL2ZpbGVzL3BhdGNoLXRyYW4uYwkxOTY5LTEyLTMxIDE5
OjAwOjAwLjAwMDAwMDAwMCAtMDUwMAorKysgbmF3ay9maWxlcy9wYXRjaC10
cmFuLmMJMjAwOC0wNy0wNyAxMDo1MzoyNi4wMDAwMDAwMDAgLTA1MDAKQEAg
LTAsMCArMSwyMyBAQAorZGlmZiAtdSAtcCAtcjEuNiAtcjEuOS4xMC4xCist
LS0gdHJhbi5jLm9yaWcJMjAwNS8wNy8wMyAxNToxODoxMQkxLjYKKysrKyB0
cmFuLmMJMjAwNy8xMS8wNiAyMzowNzo1MgkxLjkuMTAuMQorQEAgLTIxMCw3
ICsyMTAsMTAgQEAgQ2VsbCAqc2V0c3ltdGFiKGNvbnN0IGNoYXIgKm4sIGNv
bnN0IGNoYQorIAlpbnQgaDsKKyAJQ2VsbCAqcDsKKyAKKy0JaWYgKG4gIT0g
TlVMTCAmJiAocCA9IGxvb2t1cChuLCB0cCkpICE9IE5VTEwpIHsKKysJaWYg
KG4gPT0gTlVMTCkKKysJCW4gPSAiIjsKKysKKysJaWYgKChwID0gbG9va3Vw
KG4sIHRwKSkgIT0gTlVMTCkgeworIAkJICAgZHByaW50ZiggKCJzZXRzeW10
YWIgZm91bmQgJXA6IG49JXMgcz1cIiVzXCIgZj0lZyB0PSVvXG4iLAorIAkJ
CXAsIE5OKHAtPm52YWwpLCBOTihwLT5zdmFsKSwgcC0+ZnZhbCwgcC0+dHZh
bCkgKTsKKyAJCXJldHVybihwKTsKK0BAIC0yODIsNiArMjg1LDcgQEAgQXdr
ZmxvYXQgc2V0ZnZhbChDZWxsICp2cCwgQXdrZmxvYXQgZikJLworIHsKKyAJ
aW50IGZsZG5vOworIAorKwlmICs9IDAuMDsJCS8qIG5vcm1hbGlzZSBuZWdh
dGl2ZSB6ZXJvIHRvIHBvc2l0aXZlIHplcm8gKi8KKyAJaWYgKCh2cC0+dHZh
bCAmIChOVU0gfCBTVFIpKSA9PSAwKSAKKyAJCWZ1bm55dmFyKHZwLCAiYXNz
aWduIHRvIik7CisgCWlmIChpc2ZsZCh2cCkpIHsK
--0-562972999-1215447380=:72738--
More information about the freebsd-ports-bugs
mailing list