Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 7 Jul 2008 03:50:04 GMT
From:      pfgshield-freebsd@yahoo.com
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   Re: ports/125348: lang/nawk: support multibyte charsets in tolower/toupper functions
Message-ID:  <200807070350.m673o47B062891@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/125348; it has been noted by GNATS.

From: pfgshield-freebsd@yahoo.com
To: FreeBSD-gnats-submit@FreeBSD.org
Cc:  
Subject: Re: ports/125348: lang/nawk: support multibyte charsets in tolower/toupper functions
Date: Sun, 6 Jul 2008 20:47:54 -0700 (PDT)

 --0-1148307283-1215402474=:41185
 Content-Type: text/plain; charset=utf-8
 Content-Transfer-Encoding: quoted-printable
 
 I have an additional patch from OpenBSD which extends awk with bitwise oper=
 ations (based on gawk) -- attached.
 
 I am not sure if we want to diverge from the historic nawk so I'll try to c=
 ontact the author.=20
 
 I should also mention that recent versions of nawk don't pass the mawk fpe_=
 test, which must be investigated too :( .
 =0A=0A=0A      Posta, news, sport, oroscopo: tutto in una sola pagina. =0AC=
 rea l&#39;home page che piace a te!=0Awww.yahoo.it/latuapagina
 --0-1148307283-1215402474=:41185
 Content-Type: application/octet-stream; name=patch-nawk
 Content-Transfer-Encoding: base64
 Content-Disposition: attachment; filename=patch-nawk
 
 ZGlmZiAtcnVOIG5hd2sub3JpZy9maWxlcy9wYXRjaC1hd2suaCBuYXdrL2Zp
 bGVzL3BhdGNoLWF3ay5oCi0tLSBuYXdrLm9yaWcvZmlsZXMvcGF0Y2gtYXdr
 LmgJMTk2OS0xMi0zMSAxOTowMDowMC4wMDAwMDAwMDAgLTA1MDAKKysrIG5h
 d2svZmlsZXMvcGF0Y2gtYXdrLmgJMjAwOC0wNy0wNiAyMjoxMjo1Ny4wMDAw
 MDAwMDAgLTA1MDAKQEAgLTAsMCArMSwxNSBAQAorLS0tIGF3ay5oLm9yaWcJ
 MjAwNC8xMi8zMCAwMTo1Mjo0OAkxLjExCisrKysgYXdrLmgJMjAwOC8wNi8w
 NCAxNDowNDo0MgkxLjEyCitAQCAtMTI3LDYgKzEyNywxMiBAQAorICNkZWZp
 bmUJRlRPVVBQRVIgMTIKKyAjZGVmaW5lCUZUT0xPV0VSIDEzCisgI2RlZmlu
 ZQlGRkxVU0gJMTQKKysjZGVmaW5lIEZBTkQJMTUKKysjZGVmaW5lIEZGT1IJ
 MTYKKysjZGVmaW5lIEZYT1IJMTcKKysjZGVmaW5lIEZDT01QTAkxOAorKyNk
 ZWZpbmUgRkxTSElGVAkxOQorKyNkZWZpbmUgRlJTSElGVAkyMAorIAorIC8q
 IE5vZGU6ICBwYXJzZSB0cmVlIGlzIG1hZGUgb2Ygbm9kZXMsIHdpdGggQ2Vs
 bCdzIGF0IGJvdHRvbSAqLworIApkaWZmIC1ydU4gbmF3ay5vcmlnL2ZpbGVz
 L3BhdGNoLWIuYyBuYXdrL2ZpbGVzL3BhdGNoLWIuYwotLS0gbmF3ay5vcmln
 L2ZpbGVzL3BhdGNoLWIuYwkxOTY5LTEyLTMxIDE5OjAwOjAwLjAwMDAwMDAw
 MCAtMDUwMAorKysgbmF3ay9maWxlcy9wYXRjaC1iLmMJMjAwOC0wNy0wNiAy
 MjoxMzoyNC4wMDAwMDAwMDAgLTA1MDAKQEAgLTAsMCArMSw2NyBAQAorLS0t
 IGIuYy5vcmlnCTIwMDQvMTIvMzAgMDE6NTI6NDgJMS4xMgorKysrIGIuYwky
 MDA3LzA5LzAyIDE1OjE5OjMxCTEuMTQKK0BAIC04NCw4ICs4NCw4IEBACisg
 CisgCWlmIChzZXR2ZWMgPT0gMCkgewkvKiBmaXJzdCB0aW1lIHRocm91Z2gg
 YW55IFJFICovCisgCQltYXhzZXR2ZWMgPSBNQVhMSU47CistCQlzZXR2ZWMg
 PSAoaW50ICopIG1hbGxvYyhtYXhzZXR2ZWMgKiBzaXplb2YoaW50KSk7Cist
 CQl0bXBzZXQgPSAoaW50ICopIG1hbGxvYyhtYXhzZXR2ZWMgKiBzaXplb2Yo
 aW50KSk7CisrCQlzZXR2ZWMgPSAoaW50ICopIGNhbGxvYyhtYXhzZXR2ZWMs
 IHNpemVvZihpbnQpKTsKKysJCXRtcHNldCA9IChpbnQgKikgY2FsbG9jKG1h
 eHNldHZlYywgc2l6ZW9mKGludCkpOworIAkJaWYgKHNldHZlYyA9PSAwIHx8
 IHRtcHNldCA9PSAwKQorIAkJCW92ZXJmbG8oIm91dCBvZiBzcGFjZSBpbml0
 aWFsaXppbmcgbWFrZWRmYSIpOworIAl9CitAQCAtMTM3LDcgKzEzNyw3IEBA
 CisgCWYtPmFjY2VwdCA9IHBvc2NudC0xOwkvKiBwZW50ZXIgaGFzIGNvbXB1
 dGVkIG51bWJlciBvZiBwb3NpdGlvbnMgaW4gcmUgKi8KKyAJY2ZvbGwoZiwg
 cDEpOwkvKiBzZXQgdXAgZm9sbG93IHNldHMgKi8KKyAJZnJlZXRyKHAxKTsK
 Ky0JaWYgKChmLT5wb3Nuc1swXSA9IChpbnQgKikgY2FsbG9jKDEsICooZi0+
 cmVbMF0ubGZvbGxvdykqc2l6ZW9mKGludCkpKSA9PSBOVUxMKQorKwlpZiAo
 KGYtPnBvc25zWzBdID0gKGludCAqKSBjYWxsb2MoKihmLT5yZVswXS5sZm9s
 bG93KSwgc2l6ZW9mKGludCkpKSA9PSBOVUxMKQorIAkJCW92ZXJmbG8oIm91
 dCBvZiBzcGFjZSBpbiBtYWtlZGZhIik7CisgCWlmICgoZi0+cG9zbnNbMV0g
 PSAoaW50ICopIGNhbGxvYygxLCBzaXplb2YoaW50KSkpID09IE5VTEwpCisg
 CQlvdmVyZmxvKCJvdXQgb2Ygc3BhY2UgaW4gbWFrZWRmYSIpOworQEAgLTE1
 Nyw3ICsxNTcsNyBAQAorIAlmLT5yZXNldCA9IDA7CisgCWsgPSAqKGYtPnJl
 WzBdLmxmb2xsb3cpOworIAl4ZnJlZShmLT5wb3Nuc1syXSk7CQkJCistCWlm
 ICgoZi0+cG9zbnNbMl0gPSAoaW50ICopIGNhbGxvYygxLCAoaysxKSpzaXpl
 b2YoaW50KSkpID09IE5VTEwpCisrCWlmICgoZi0+cG9zbnNbMl0gPSAoaW50
 ICopIGNhbGxvYyhrKzEsIHNpemVvZihpbnQpKSkgPT0gTlVMTCkKKyAJCW92
 ZXJmbG8oIm91dCBvZiBzcGFjZSBpbiBtYWtlaW5pdCIpOworIAlmb3IgKGk9
 MDsgaSA8PSBrOyBpKyspIHsKKyAJCShmLT5wb3Nuc1syXSlbaV0gPSAoZi0+
 cmVbMF0ubGZvbGxvdylbaV07CitAQCAtMzU0LDcgKzM1NCw3IEBACisgCQkJ
 c2V0dmVjW2ldID0gMDsKKyAJCXNldGNudCA9IDA7CisgCQlmb2xsb3codik7
 CS8qIGNvbXB1dGVzIHNldHZlYyBhbmQgc2V0Y250ICovCistCQlpZiAoKHAg
 PSAoaW50ICopIGNhbGxvYygxLCAoc2V0Y250KzEpKnNpemVvZihpbnQpKSkg
 PT0gTlVMTCkKKysJCWlmICgocCA9IChpbnQgKikgY2FsbG9jKHNldGNudCsx
 LCBzaXplb2YoaW50KSkpID09IE5VTEwpCisgCQkJb3ZlcmZsbygib3V0IG9m
 IHNwYWNlIGJ1aWxkaW5nIGZvbGxvdyBzZXQiKTsKKyAJCWYtPnJlW2luZm8o
 dildLmxmb2xsb3cgPSBwOworIAkJKnAgPSBzZXRjbnQ7CitAQCAtNTIzLDcg
 KzUyMyw3IEBACisgCQkJZm9yIChpID0gMjsgaSA8PSBmLT5jdXJzdGF0OyBp
 KyspCisgCQkJCXhmcmVlKGYtPnBvc25zW2ldKTsKKyAJCQlrID0gKmYtPnBv
 c25zWzBdOwkJCQorLQkJCWlmICgoZi0+cG9zbnNbMl0gPSAoaW50ICopIGNh
 bGxvYygxLCAoaysxKSpzaXplb2YoaW50KSkpID09IE5VTEwpCisrCQkJaWYg
 KChmLT5wb3Nuc1syXSA9IChpbnQgKikgY2FsbG9jKGsrMSwgc2l6ZW9mKGlu
 dCkpKSA9PSBOVUxMKQorIAkJCQlvdmVyZmxvKCJvdXQgb2Ygc3BhY2UgaW4g
 cG1hdGNoIik7CisgCQkJZm9yIChpID0gMDsgaSA8PSBrOyBpKyspCisgCQkJ
 CShmLT5wb3Nuc1syXSlbaV0gPSAoZi0+cG9zbnNbMF0pW2ldOworQEAgLTU4
 MCw3ICs1ODAsNyBAQAorIAkJCWZvciAoaSA9IDI7IGkgPD0gZi0+Y3Vyc3Rh
 dDsgaSsrKQorIAkJCQl4ZnJlZShmLT5wb3Nuc1tpXSk7CisgCQkJayA9ICpm
 LT5wb3Nuc1swXTsJCQkKKy0JCQlpZiAoKGYtPnBvc25zWzJdID0gKGludCAq
 KSBjYWxsb2MoMSwgKGsrMSkqc2l6ZW9mKGludCkpKSA9PSBOVUxMKQorKwkJ
 CWlmICgoZi0+cG9zbnNbMl0gPSAoaW50ICopIGNhbGxvYyhrKzEsIHNpemVv
 ZihpbnQpKSkgPT0gTlVMTCkKKyAJCQkJb3ZlcmZsbygib3V0IG9mIHN0YXRl
 IHNwYWNlIik7CisgCQkJZm9yIChpID0gMDsgaSA8PSBrOyBpKyspCisgCQkJ
 CShmLT5wb3Nuc1syXSlbaV0gPSAoZi0+cG9zbnNbMF0pW2ldOworQEAgLTkw
 Nyw3ICs5MDcsNyBAQAorIAlmb3IgKGkgPSAwOyBpIDwgTkNIQVJTOyBpKysp
 CisgCQlmLT5nb3RvdGFiW2YtPmN1cnN0YXRdW2ldID0gMDsKKyAJeGZyZWUo
 Zi0+cG9zbnNbZi0+Y3Vyc3RhdF0pOworLQlpZiAoKHAgPSAoaW50ICopIGNh
 bGxvYygxLCAoc2V0Y250KzEpKnNpemVvZihpbnQpKSkgPT0gTlVMTCkKKysJ
 aWYgKChwID0gKGludCAqKSBjYWxsb2Moc2V0Y250KzEsIHNpemVvZihpbnQp
 KSkgPT0gTlVMTCkKKyAJCW92ZXJmbG8oIm91dCBvZiBzcGFjZSBpbiBjZ290
 byIpOworIAorIAlmLT5wb3Nuc1tmLT5jdXJzdGF0XSA9IHA7CmRpZmYgLXJ1
 TiBuYXdrLm9yaWcvZmlsZXMvcGF0Y2gtbGV4LmMgbmF3ay9maWxlcy9wYXRj
 aC1sZXguYwotLS0gbmF3ay5vcmlnL2ZpbGVzL3BhdGNoLWxleC5jCTE5Njkt
 MTItMzEgMTk6MDA6MDAuMDAwMDAwMDAwIC0wNTAwCisrKyBuYXdrL2ZpbGVz
 L3BhdGNoLWxleC5jCTIwMDgtMDctMDYgMjI6MTQ6MDQuMDAwMDAwMDAwIC0w
 NTAwCkBAIC0wLDAgKzEsMzkgQEAKKy0tLSBsZXguYy5vcmlnCTIwMDYvMDQv
 MTYgMDI6MTA6MTgJMS45CisrKysgbGV4LmMJMjAwOC8wNi8wNCAxNDowNDo0
 MgkxLjEwCitAQCAtNDgsOSArNDgsMTEgQEAKKyAJeyAiQkVHSU4iLAlYQkVH
 SU4sCQlYQkVHSU4gfSwKKyAJeyAiRU5EIiwJWEVORCwJCVhFTkQgfSwKKyAJ
 eyAiTkYiLAkJVkFSTkYsCQlWQVJORiB9LAorKwl7ICJhbmQiLAlGQU5ELAkJ
 QkxUSU4gfSwKKyAJeyAiYXRhbjIiLAlGQVRBTiwJCUJMVElOIH0sCisgCXsg
 ImJyZWFrIiwJQlJFQUssCQlCUkVBSyB9LAorIAl7ICJjbG9zZSIsCUNMT1NF
 LAkJQ0xPU0UgfSwKKysJeyAiY29tcGwiLAlGQ09NUEwsCQlCTFRJTiB9LAor
 IAl7ICJjb250aW51ZSIsCUNPTlRJTlVFLAlDT05USU5VRSB9LAorIAl7ICJj
 b3MiLAlGQ09TLAkJQkxUSU4gfSwKKyAJeyAiZGVsZXRlIiwJREVMRVRFLAkJ
 REVMRVRFIH0sCitAQCAtNzAsMTMgKzcyLDE2IEBACisgCXsgImludCIsCUZJ
 TlQsCQlCTFRJTiB9LAorIAl7ICJsZW5ndGgiLAlGTEVOR1RILAlCTFRJTiB9
 LAorIAl7ICJsb2ciLAlGTE9HLAkJQkxUSU4gfSwKKysJeyAibHNoaWZ0IiwJ
 RkxTSElGVCwJQkxUSU4gfSwKKyAJeyAibWF0Y2giLAlNQVRDSEZDTiwJTUFU
 Q0hGQ04gfSwKKyAJeyAibmV4dCIsCU5FWFQsCQlORVhUIH0sCisgCXsgIm5l
 eHRmaWxlIiwJTkVYVEZJTEUsCU5FWFRGSUxFIH0sCisrCXsgIm9yIiwJCUZG
 T1IsCQlCTFRJTiB9LAorIAl7ICJwcmludCIsCVBSSU5ULAkJUFJJTlQgfSwK
 KyAJeyAicHJpbnRmIiwJUFJJTlRGLAkJUFJJTlRGIH0sCisgCXsgInJhbmQi
 LAlGUkFORCwJCUJMVElOIH0sCisgCXsgInJldHVybiIsCVJFVFVSTiwJCVJF
 VFVSTiB9LAorKwl7ICJyc2hpZnQiLAlGUlNISUZULAlCTFRJTiB9LAorIAl7
 ICJzaW4iLAlGU0lOLAkJQkxUSU4gfSwKKyAJeyAic3BsaXQiLAlTUExJVCwJ
 CVNQTElUIH0sCisgCXsgInNwcmludGYiLAlTUFJJTlRGLAlTUFJJTlRGIH0s
 CitAQCAtODgsNiArOTMsNyBAQAorIAl7ICJ0b2xvd2VyIiwJRlRPTE9XRVIs
 CUJMVElOIH0sCisgCXsgInRvdXBwZXIiLAlGVE9VUFBFUiwJQkxUSU4gfSwK
 KyAJeyAid2hpbGUiLAlXSElMRSwJCVdISUxFIH0sCisrCXsgInhvciIsCUZY
 T1IsCQlCTFRJTiB9LAorIH07CisgCisgI2RlZmluZSBERUJVRwpkaWZmIC1y
 dU4gbmF3ay5vcmlnL2ZpbGVzL3BhdGNoLXByb3RvLmggbmF3ay9maWxlcy9w
 YXRjaC1wcm90by5oCi0tLSBuYXdrLm9yaWcvZmlsZXMvcGF0Y2gtcHJvdG8u
 aAkxOTY5LTEyLTMxIDE5OjAwOjAwLjAwMDAwMDAwMCAtMDUwMAorKysgbmF3
 ay9maWxlcy9wYXRjaC1wcm90by5oCTIwMDgtMDctMDYgMTU6MzY6MTUuMDAw
 MDAwMDAwIC0wNTAwCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBwcm90by5oLm9y
 aWcJMjAwMy8xMC8yNiAxMTozNDoyMwkxLjUKKysrKyBwcm90by5oCTIwMDcv
 MTEvMDYgMjM6MDc6NTIJMS41LjIyLjEKK0BAIC0xMTIsNiArMTEyLDcgQEAg
 ZXh0ZXJuCWRvdWJsZQlnZXRmdmFsKENlbGwgKik7CisgZXh0ZXJuCWNoYXIJ
 KmdldHN2YWwoQ2VsbCAqKTsKKyBleHRlcm4JY2hhcgkqZ2V0cHNzdmFsKENl
 bGwgKik7ICAgICAvKiBmb3IgcHJpbnQgKi8KKyBleHRlcm4JY2hhcgkqdG9z
 dHJpbmcoY29uc3QgY2hhciAqKTsKKytleHRlcm4JY2hhcgkqdG9zdHJpbmdO
 KGNvbnN0IGNoYXIgKiwgc2l6ZV90IG4pOworIGV4dGVybgljaGFyCSpxc3Ry
 aW5nKGNvbnN0IGNoYXIgKiwgaW50KTsKKyAKKyBleHRlcm4Jdm9pZAlyZWNp
 bml0KHVuc2lnbmVkIGludCk7CmRpZmYgLXJ1TiBuYXdrLm9yaWcvZmlsZXMv
 cGF0Y2gtcnVuLmMgbmF3ay9maWxlcy9wYXRjaC1ydW4uYwotLS0gbmF3ay5v
 cmlnL2ZpbGVzL3BhdGNoLXJ1bi5jCTIwMDgtMDctMDYgMTU6MTI6MzEuMDAw
 MDAwMDAwIC0wNTAwCisrKyBuYXdrL2ZpbGVzL3BhdGNoLXJ1bi5jCTIwMDgt
 MDctMDYgMjI6MTQ6MjkuMDAwMDAwMDAwIC0wNTAwCkBAIC0xLDYgKzEsNjkg
 QEAKLS0tLSBydW4uYy5vcmlnCU1vbiBEZWMgIDYgMDY6NDQ6NDIgMjAwNAot
 KysrIHJ1bi5jCVNhdCBGZWIgMjYgMTg6MDE6NDYgMjAwNQotQEAgLTE1MDcs
 MTUgKzE1MDcsMTUgQEAKKy0tLSBydW4uYy5vcmlnCTIwMDctMDMtMzEgMTU6
 NTY6MTguMDAwMDAwMDAwIC0wNTAwCisrKysgcnVuLmMJMjAwOC0wNy0wNiAy
 MjowMTo0OS4wMDAwMDAwMDAgLTA1MDAKK0BAIC0xNTA0LDEzICsxNTA0LDcx
 IEBACisgCQkJbmV4dGFyZyA9IG5leHRhcmctPm5uZXh0OworIAkJfQorIAkJ
 YnJlYWs7CisrCWNhc2UgRkNPTVBMOgorKwkJdSA9IH4oKGludClnZXRmdmFs
 KHgpKTsKKysJCWJyZWFrOworKwljYXNlIEZBTkQ6CisrCQlpZiAobmV4dGFy
 ZyA9PSAwKSB7CisrCQkJV0FSTklORygiYW5kIHJlcXVpcmVzIHR3byBhcmd1
 bWVudHM7IHJldHVybmluZyAwIik7CisrCQkJdSA9IDA7CisrCQkJYnJlYWs7
 CisrCQl9CisrCQl5ID0gZXhlY3V0ZShhWzFdLT5ubmV4dCk7CisrCQl1ID0g
 KChpbnQpZ2V0ZnZhbCh4KSkgJiAoKGludClnZXRmdmFsKHkpKTsKKysJCXRl
 bXBmcmVlKHkpOworKwkJbmV4dGFyZyA9IG5leHRhcmctPm5uZXh0OworKwkJ
 YnJlYWs7CisrCWNhc2UgRkZPUjoKKysJCWlmIChuZXh0YXJnID09IDApIHsK
 KysJCQlXQVJOSU5HKCJvciByZXF1aXJlcyB0d28gYXJndW1lbnRzOyByZXR1
 cm5pbmcgMCIpOworKwkJCXUgPSAwOworKwkJCWJyZWFrOworKwkJfQorKwkJ
 eSA9IGV4ZWN1dGUoYVsxXS0+bm5leHQpOworKwkJdSA9ICgoaW50KWdldGZ2
 YWwoeCkpIHwgKChpbnQpZ2V0ZnZhbCh5KSk7CisrCQl0ZW1wZnJlZSh5KTsK
 KysJCW5leHRhcmcgPSBuZXh0YXJnLT5ubmV4dDsKKysJCWJyZWFrOworKwlj
 YXNlIEZYT1I6CisrCQlpZiAobmV4dGFyZyA9PSAwKSB7CisrCQkJV0FSTklO
 Rygib3IgcmVxdWlyZXMgdHdvIGFyZ3VtZW50czsgcmV0dXJuaW5nIDAiKTsK
 KysJCQl1ID0gMDsKKysJCQlicmVhazsKKysJCX0KKysJCXkgPSBleGVjdXRl
 KGFbMV0tPm5uZXh0KTsKKysJCXUgPSAoKGludClnZXRmdmFsKHgpKSBeICgo
 aW50KWdldGZ2YWwoeSkpOworKwkJdGVtcGZyZWUoeSk7CisrCQluZXh0YXJn
 ID0gbmV4dGFyZy0+bm5leHQ7CisrCQlicmVhazsKKysJY2FzZSBGTFNISUZU
 OgorKwkJaWYgKG5leHRhcmcgPT0gMCkgeworKwkJCVdBUk5JTkcoIm9yIHJl
 cXVpcmVzIHR3byBhcmd1bWVudHM7IHJldHVybmluZyAwIik7CisrCQkJdSA9
 IDA7CisrCQkJYnJlYWs7CisrCQl9CisrCQl5ID0gZXhlY3V0ZShhWzFdLT5u
 bmV4dCk7CisrCQl1ID0gKChpbnQpZ2V0ZnZhbCh4KSkgPDwgKChpbnQpZ2V0
 ZnZhbCh5KSk7CisrCQl0ZW1wZnJlZSh5KTsKKysJCW5leHRhcmcgPSBuZXh0
 YXJnLT5ubmV4dDsKKysJCWJyZWFrOworKwljYXNlIEZSU0hJRlQ6CisrCQlp
 ZiAobmV4dGFyZyA9PSAwKSB7CisrCQkJV0FSTklORygib3IgcmVxdWlyZXMg
 dHdvIGFyZ3VtZW50czsgcmV0dXJuaW5nIDAiKTsKKysJCQl1ID0gMDsKKysJ
 CQlicmVhazsKKysJCX0KKysJCXkgPSBleGVjdXRlKGFbMV0tPm5uZXh0KTsK
 KysJCXUgPSAoKGludClnZXRmdmFsKHgpKSA+PiAoKGludClnZXRmdmFsKHkp
 KTsKKysJCXRlbXBmcmVlKHkpOworKwkJbmV4dGFyZyA9IG5leHRhcmctPm5u
 ZXh0OworKwkJYnJlYWs7CisgCWNhc2UgRlNZU1RFTToKKyAJCWZmbHVzaChz
 dGRvdXQpOwkJLyogaW4gY2FzZSBzb21ldGhpbmcgaXMgYnVmZmVyZWQgYWxy
 ZWFkeSAqLwogIAkJdSA9IChBd2tmbG9hdCkgc3lzdGVtKGdldHN2YWwoeCkp
 IC8gMjU2OyAgIC8qIDI1NiBpcyB1bml4LWRlcCAqLwogIAkJYnJlYWs7CiAg
 CWNhc2UgRlJBTkQ6CkBAIC0xMSwxMSArNzQsMyBAQAogIAkJYnJlYWs7CiAg
 CWNhc2UgRlNSQU5EOgogIAkJaWYgKGlzcmVjKHgpKQkvKiBubyBhcmd1bWVu
 dCBwcm92aWRlZCAqLwotIAkJCXUgPSB0aW1lKCh0aW1lX3QgKikwKTsKLSAJ
 CWVsc2UKLSAJCQl1ID0gZ2V0ZnZhbCh4KTsKLS0JCXNyYW5kKCh1bnNpZ25l
 ZCBpbnQpIHUpOwotKwkJc3JhbmRvbSgodW5zaWduZWQgaW50KSB1KTsKLSAJ
 CWJyZWFrOwotIAljYXNlIEZUT1VQUEVSOgotIAljYXNlIEZUT0xPV0VSOgpk
 aWZmIC1ydU4gbmF3ay5vcmlnL2ZpbGVzL3BhdGNoLXRyYW4uYyBuYXdrL2Zp
 bGVzL3BhdGNoLXRyYW4uYwotLS0gbmF3ay5vcmlnL2ZpbGVzL3BhdGNoLXRy
 YW4uYwkxOTY5LTEyLTMxIDE5OjAwOjAwLjAwMDAwMDAwMCAtMDUwMAorKysg
 bmF3ay9maWxlcy9wYXRjaC10cmFuLmMJMjAwOC0wNy0wNiAxNTo1MTo0OC4w
 MDAwMDAwMDAgLTA1MDAKQEAgLTAsMCArMSw0MyBAQAorZGlmZiAtdSAtcCAt
 cjEuNiAtcjEuOS4xMC4xCistLS0gdHJhbi5jLm9yaWcJMjAwNS8wNy8wMyAx
 NToxODoxMQkxLjYKKysrKyB0cmFuLmMJMjAwNy8xMS8wNiAyMzowNzo1Mgkx
 LjkuMTAuMQorQEAgLTIxMCw3ICsyMTAsMTAgQEAgQ2VsbCAqc2V0c3ltdGFi
 KGNvbnN0IGNoYXIgKm4sIGNvbnN0IGNoYQorIAlpbnQgaDsKKyAJQ2VsbCAq
 cDsKKyAKKy0JaWYgKG4gIT0gTlVMTCAmJiAocCA9IGxvb2t1cChuLCB0cCkp
 ICE9IE5VTEwpIHsKKysJaWYgKG4gPT0gTlVMTCkKKysJCW4gPSAiIjsKKysK
 KysJaWYgKChwID0gbG9va3VwKG4sIHRwKSkgIT0gTlVMTCkgeworIAkJICAg
 ZHByaW50ZiggKCJzZXRzeW10YWIgZm91bmQgJXA6IG49JXMgcz1cIiVzXCIg
 Zj0lZyB0PSVvXG4iLAorIAkJCXAsIE5OKHAtPm52YWwpLCBOTihwLT5zdmFs
 KSwgcC0+ZnZhbCwgcC0+dHZhbCkgKTsKKyAJCXJldHVybihwKTsKK0BAIC0y
 ODIsNiArMjg1LDcgQEAgQXdrZmxvYXQgc2V0ZnZhbChDZWxsICp2cCwgQXdr
 ZmxvYXQgZikJLworIHsKKyAJaW50IGZsZG5vOworIAorKwlmICs9IDAuMDsJ
 CS8qIG5vcm1hbGlzZSBuZWdhdGl2ZSB6ZXJvIHRvIHBvc2l0aXZlIHplcm8g
 Ki8KKyAJaWYgKCh2cC0+dHZhbCAmIChOVU0gfCBTVFIpKSA9PSAwKSAKKyAJ
 CWZ1bm55dmFyKHZwLCAiYXNzaWduIHRvIik7CisgCWlmIChpc2ZsZCh2cCkp
 IHsKK0BAIC00MDAsNyArNDA0LDE4IEBAIGNoYXIgKnRvc3RyaW5nKGNvbnN0
 IGNoYXIgKnMpCS8qIG1ha2UgYSAKKyB7CisgCWNoYXIgKnA7CisgCistCXAg
 PSAoY2hhciAqKSBtYWxsb2Moc3RybGVuKHMpKzEpOworKwlwID0gc3RyZHVw
 KHMpOworKwlpZiAocCA9PSBOVUxMKQorKwkJRkFUQUwoIm91dCBvZiBzcGFj
 ZSBpbiB0b3N0cmluZyBvbiAlcyIsIHMpOworKwlzdHJjcHkocCwgcyk7Cisr
 CXJldHVybihwKTsKKyt9CisrCisrY2hhciAqdG9zdHJpbmdOKGNvbnN0IGNo
 YXIgKnMsIHNpemVfdCBuKQkvKiBtYWtlIGEgY29weSBvZiBzdHJpbmcgcyAq
 LworK3sKKysJY2hhciAqcDsKKysKKysJcCA9IG1hbGxvYyhuKTsKKyAJaWYg
 KHAgPT0gTlVMTCkKKyAJCUZBVEFMKCJvdXQgb2Ygc3BhY2UgaW4gdG9zdHJp
 bmcgb24gJXMiLCBzKTsKKyAJc3RyY3B5KHAsIHMpOwo=
 
 --0-1148307283-1215402474=:41185--



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