Re: Piping/Printing message looks odd TODO

Glenn Spell <[email protected]> Fri, 25 Mar 2016 13:55:03 -0400
Newsgroups gmane.network.tin.user
Organization the aerie
Message-ID <[email protected]>
T24gMjUgTWFyIDIwMTYgYXJvdW5kICAxOjI3UE0gKC0wNDAwKSBVcnMgSmFuw59lbiB3cm90ZToK
PiBJZiB5b3UgdGFnIGEgZmV3IGFydGljbGVzIG9uIHRoZSBncm91cCBvciB0aHJlYWQgbGV2ZWwg
YW5kIHBpcGUgdGhlbQo+IGludG8gYSBjbWQuIHRoZSB0YWcgbWFyayBpcyBzdGlsbCBwcmVzZW50
IHRpbGwgdGhlIG5leHQgbWFudWFsbHkgZm9yY2VkCj4gc2NyZWVuIHJlZHJhdyAoXkwpJy4KCkkg
dGhpbmsgdGhhdCdzIGZpeGVkIGZvciBwaXBpbmcsIHByaW50aW5nIGFuZCBzYXZpbmcgaW4gdGhl
IHBhdGNoIGJlbG93LgoKPiBZZXQgYW5vdGhlciBuZXcgZ2xvYmFsIHZhciwgd2h5IG5vdCBwYXNz
aW5nIGEgZmxhZyB0byBzaG93X3Byb2dyZXNzKCkgaWYKPiB5b3UncmUgY2FsbGluZyBpdCBkaXJl
Y3QgKHdoaWNoIGlzIElNSE8gc3RpbGwgbm90IHJpZ2h0KT8KCk9LLiBObyBuZXcgZ2xvYmFsIHZh
cmlhYmxlIGZvciBzaG93X3Byb2dyZXNzKCksIGFsdGhvdWdoIEknbSBubyBsb25nZXIKY2FsbGlu
ZyBpdCBkaXJlY3QuICBUaGUgbmV3IGdsb2JhbCB2YXIgaXMgZm9yIHRoZSBuZXcgcGlwZWQgbWVz
c2FnZS4KCj4gcHJvZ3Jlc3NfbWVzZyBpcyBzdGlsbCBOVUxMLCBidXQgaXMgcGFzc2VkIG9uIHRv
IGFydF9vcGVuKCkgaW4gbGluZSA0NjcsCj4gcGFzc2luZyBpdCB0byBwcm9ncmVzcygpIGluIHRo
ZSBlbmQgd2hpY2ggdGhlbiBza2lwcyBzaG93X3Byb2dyZXNzKCkgLSBub3QKPiB2ZXJ5IGNsZWFu
IElNSE8uCgpPSy4gSSdtIG5vIGxvbmdlciBjaGFuZ2luZyBhbnkgb2YgdGhhdCBjb2RlIGluIGZl
ZWQuYy4KClBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGlzIGFuZCB0ZWxsIG1lIHdoYXQgeSdhbGwg
dGhpbms6CgoKSW5kZXg6IGluY2x1ZGUvZXh0ZXJuLmgKLS0tIHRpbi0yLjMuMi5vcmlnL2luY2x1
ZGUvZXh0ZXJuLmgJMjAxNS0xMS0yMiAwMDoxNTo0MC4wMDAwMDAwMDAgKzAwMDAKKysrIHRpbi0y
LjMuMi9pbmNsdWRlL2V4dGVybi5oCTIwMTYtMDMtMjUgMTY6MTg6NDUuMDAwMDAwMDAwICswMDAw
CkBAIC00NzksNiArNDc5LDkgQEAgZXh0ZXJuIGNvbnN0ZXh0IHR4dF9hcnRpY2xlc19tYWlsZWRb
XTsKICNpZm5kZWYgRElTQUJMRV9QUklOVElORwogCWV4dGVybiBjb25zdGV4dCB0eHRfYXJ0aWNs
ZXNfcHJpbnRlZFtdOwogI2VuZGlmIC8qICFESVNBQkxFX1BSSU5USU5HICovCisjaWZuZGVmIERP
TlRfSEFWRV9QSVBJTkcKKwlleHRlcm4gY29uc3RleHQgdHh0X2FydGljbGVzX3BpcGVkW107Cisj
ZW5kaWYgLyogIURPTlRfSEFWRV9QSVBJTkcgKi8KIGV4dGVybiBjb25zdGV4dCB0eHRfYXR0YWNo
W107CiBleHRlcm4gY29uc3RleHQgdHh0X2F0dGFjaF9jaGFyc2V0W107CiBleHRlcm4gY29uc3Rl
eHQgdHh0X2F0dGFjaF9kZXNjcmlwdGlvbltdOwpJbmRleDogc3JjL2ZlZWQuYwotLS0gdGluLTIu
My4yLm9yaWcvc3JjL2ZlZWQuYwkyMDE1LTExLTIyIDAwOjE0OjMwLjAwMDAwMDAwMCArMDAwMAor
KysgdGluLTIuMy4yL3NyYy9mZWVkLmMJMjAxNi0wMy0yNSAxNjo0NzowNi4wMDAwMDAwMDAgKzAw
MDAKQEAgLTQzOSwxNCArNDM5LDEyIEBAIGZlZWRfYXJ0aWNsZSgKIAlzd2l0Y2ggKGZ1bmN0aW9u
KSB7CiAjaWZuZGVmIERPTlRfSEFWRV9QSVBJTkcKIAkJY2FzZSBGRUVEX1BJUEU6Ci0JCQkvKiBU
T0RPOiBsb29rcyBvZGQgYmVjYXVzZSBzY3JlZW4gbW9kZSBpcyByYXcgKi8KIAkJCXByb2dyZXNz
X21lc2cgPSBmbXRfc3RyaW5nKCIlcyAoJWQvJWQpIiwgXyh0eHRfcGlwaW5nKSwgY291bnRlci0+
dG90YWwsIGNvdW50ZXItPm1heCk7CiAJCQlicmVhazsKICNlbmRpZiAvKiAhRE9OVF9IQVZFX1BJ
UElORyAqLwogCiAjaWZuZGVmIERJU0FCTEVfUFJJTlRJTkcKIAkJY2FzZSBGRUVEX1BSSU5UOgot
CQkJLyogVE9ETzogbG9va3Mgb2RkIGJlY2F1c2Ugc2NyZWVuIG1vZGUgaXMgcmF3ICovCiAJCQlw
cm9ncmVzc19tZXNnID0gZm10X3N0cmluZygiJXMgKCVkLyVkKSIsIF8odHh0X3ByaW50aW5nKSwg
Y291bnRlci0+dG90YWwsIGNvdW50ZXItPm1heCk7CiAJCQlicmVhazsKICNlbmRpZiAvKiAhRElT
QUJMRV9QUklOVElORyAqLwpAQCAtNjY4LDYgKzY2Niw3IEBAIGZlZWRfYXJ0aWNsZXMoCiAJCS8q
IFNldHVwIHByaW50aW5nIC0gZ2V0IHByaW50IGNvbW1hbmQgbGluZSAqLwogCQljYXNlIEZFRURf
UFJJTlQ6CiAJCQlzbnByaW50ZihvdXRwYXRoLCBzaXplb2Yob3V0cGF0aCksICIlcyAlcyIsIHRp
bnJjLnByaW50ZXIsIFJFRElSRUNUX09VVFBVVCk7CisJCQlyZWRyYXdfc2NyZWVuID0gVFJVRTsK
IAkJCWJyZWFrOwogI2VuZGlmIC8qICFESVNBQkxFX1BSSU5USU5HICovCiAKQEAgLTkyOCwxMiAr
OTI3LDExIEBAIGdvdF9lcGlwZV93aGlsZV9waXBpbmc6CiAJCQlSYXcoVFJVRSk7CiAJCQlJbml0
V2luKCk7CiAjCWVuZGlmIC8qIFVTRV9DVVJTRVMgKi8KLQkJCXByb21wdF9jb250aW51ZSgpOwor
CQkJY3Vycm1lbnUtPnJlZHJhdygpOwogIwlpZm5kZWYgVVNFX0NVUlNFUwogCQkJUmF3KFRSVUUp
OwogCQkJSW5pdFdpbigpOwogIwllbmRpZiAvKiAhVVNFX0NVUlNFUyAqLwotCQkJcmVkcmF3X3Nj
cmVlbiA9IFRSVUU7CiAJCQlicmVhazsKICNlbmRpZiAvKiAhRE9OVF9IQVZFX1BJUElORyAqLwog
CkBAIC05NDQsNiArOTQyLDcgQEAgZ290X2VwaXBlX3doaWxlX3BpcGluZzoKIAkJCQlicmVhazsK
IAkJCX0KIAorCQkJY3Vycm1lbnUtPnJlZHJhdygpOwogCQkJcHJpbnRfc2F2ZV9zdW1tYXJ5KGZl
ZWRfdHlwZSwgY291bnRlci50b3RhbCk7CiAJCQlpZiAocHByb2NfZnVuYyAhPSBQT1NUUFJPQ0VT
U19OTykgewogCQkJCXRfYm9vbCBkZWxldGVfcG9zdF9wcm9jID0gRkFMU0U7CkBAIC0xMDI0LDYg
KzEwMjMsMTIgQEAgZ290X2VwaXBlX3doaWxlX3BpcGluZzoKIAkJCX0KIAkJCWJyZWFrOwogCisj
aWZuZGVmIERPTlRfSEFWRV9QSVBJTkcKKwkJY2FzZSBGRUVEX1BJUEU6IAorCQkJaW5mb19tZXNz
YWdlKF8odHh0X2FydGljbGVzX3BpcGVkKSwgY291bnRlci5zdWNjZXNzLCBQTFVSQUwoY291bnRl
ci5zdWNjZXNzLCB0eHRfYXJ0aWNsZSkpOworCQkJYnJlYWs7CisjZW5kaWYgLyogIURPTlRfSEFW
RV9QSVBJTkcgKi8KKwogI2lmbmRlZiBESVNBQkxFX1BSSU5USU5HCiAJCWNhc2UgRkVFRF9QUklO
VDoKIAkJCWluZm9fbWVzc2FnZShfKHR4dF9hcnRpY2xlc19wcmludGVkKSwgY291bnRlci5zdWNj
ZXNzLCBQTFVSQUwoY291bnRlci5zdWNjZXNzLCB0eHRfYXJ0aWNsZSkpOwpJbmRleDogc3JjL2xh
bmcuYwotLS0gdGluLTIuMy4yLm9yaWcvc3JjL2xhbmcuYwkyMDE1LTExLTIyIDAwOjE0OjMwLjAw
MDAwMDAwMCArMDAwMAorKysgdGluLTIuMy4yL3NyYy9sYW5nLmMJMjAxNi0wMy0yNSAxNjoxNTox
Ny4wMDAwMDAwMDAgKzAwMDAKQEAgLTExNDUsNiArMTE0NSw3IEBAIFRpbiB3aWxsIHRyeSB0byB1
c2UgWEhEUiBYUkVGIGluc3RlYWQgKHMKICNlbmRpZiAvKiAhRElTQUJMRV9QUklOVElORyAqLwog
CiAjaWZuZGVmIERPTlRfSEFWRV9QSVBJTkcKKwljb25zdGV4dCB0eHRfYXJ0aWNsZXNfcGlwZWRb
XSA9IE5fKCIlZCAlcyBwaXBlZCIpOwogCWNvbnN0ZXh0IHR4dF9oZWxwX2dsb2JhbF9waXBlW10g
PSBOXygicGlwZSBhcnRpY2xlL3RocmVhZC9ob3QvcGF0dGVybi90YWdnZWQgYXJ0aWNsZXMgaW50
byBjb21tYW5kIik7CiAJY29uc3RleHQgdHh0X25vX2NvbW1hbmRbXSA9IE5fKCJObyBjb21tYW5k
Iik7CiAJY29uc3RleHQgdHh0X3BpcGVbXSA9IE5fKCJQaXBlIik7CkluZGV4OiBzcmMvcHJvbXB0
LmMKLS0tIHRpbi0yLjMuMi5vcmlnL3NyYy9wcm9tcHQuYwkyMDE1LTExLTIyIDAwOjE0OjMxLjAw
MDAwMDAwMCArMDAwMAorKysgdGluLTIuMy4yL3NyYy9wcm9tcHQuYwkyMDE2LTAzLTIzIDE5OjEx
OjUwLjAwMDAwMDAwMCArMDAwMApAQCAtNzczLDggKzc3Myw5IEBAIHByb21wdF9jb250aW51ZSgK
IHsKIAlpbnQgY2g7CiAJaW50IHNhdmVfc2lnbmFsX2NvbnRleHQgPSBzaWduYWxfY29udGV4dDsK
Kwl0X2Jvb2wgc2F2ZV9jbWRfbGluZSA9IGNtZF9saW5lOwogCi0JY21kX2xpbmUgPSBUUlVFOwor
CWNtZF9saW5lID0gRkFMU0U7CiAJaW5mb19tZXNzYWdlKF8odHh0X3JldHVybl9rZXkpKTsKIAlz
aWduYWxfY29udGV4dCA9IGNNYWluOwogCWlucHV0X2NvbnRleHQgPSBjUHJvbXB0Q09OVDsKQEAg
LTc5Nyw3ICs3OTgsNyBAQCBwcm9tcHRfY29udGludWUoCiAjaWZkZWYgVVNFX0NVUlNFUwogCW15
X2ZwdXRjKCdcbicsIHN0ZG91dCk7CiAjZW5kaWYgLyogVVNFX0NVUlNFUyAqLwotCWNtZF9saW5l
ID0gRkFMU0U7CisJY21kX2xpbmUgPSBzYXZlX2NtZF9saW5lOwogI2lmZGVmIFVTRV9DVVJTRVMK
IAlteV9yZXRvdWNoKCk7CiAjZW5kaWYgLyogVVNFX0NVUlNFUyAqLwpJbmRleDogc3JjL3NjcmVl
bi5jCi0tLSB0aW4tMi4zLjIub3JpZy9zcmMvc2NyZWVuLmMJMjAxNS0xMS0yMiAwMDoxNDozMS4w
MDAwMDAwMDAgKzAwMDAKKysrIHRpbi0yLjMuMi9zcmMvc2NyZWVuLmMJMjAxNi0wMy0yNSAxMzox
Njo1Ny4wMDAwMDAwMDAgKzAwMDAKQEAgLTQ2NSw2ICs0NjUsOCBAQCBzaG93X3Byb2dyZXNzKAog
CXN0YXRpYyBpbnQgbGFzdF9yYXRpbzsKIAlzdGF0aWMgdF9hcnRudW0gbGFzdF90b3RhbDsKIAlz
dGF0aWMgdGltZV90IGxhc3RfdXBkYXRlOworCXRfYm9vbCBmZWVkaW5nID0gRkFMU0U7CisJdF9i
b29sIHNhdmVfY21kX2xpbmUgPSBjbWRfbGluZTsKICNpZiBkZWZpbmVkKEhBVkVfQ0xPQ0tfR0VU
VElNRSkgfHwgZGVmaW5lZChIQVZFX0dFVFRJTUVPRkRBWSkKIAlzdGF0aWMgdF9hcnRudW0gbGFz
dF9jb3VudDsKIAlzdGF0aWMgaW50IGF2ZXJhZ2U7CkBAIC00ODEsNiArNDgzLDE3IEBAIHNob3df
cHJvZ3Jlc3MoCiAJaWYgKGJhdGNoX21vZGUgfHwgY291bnQgPD0gMCB8fCB0b3RhbCA8PSAwKQog
CQlyZXR1cm47CiAKKwljbWRfbGluZSA9IEZBTFNFOworCisJLyogVE9ETzogcmF0aW8gYW5kIHRp
bWUgcmVtYWluaW5nIGFyZSB1bnN0YWJsZSB3aGVuIGZlZWRpbmcgKgorCSAqIElmIGZlZWRpbmcg
YXJ0aWNsZXMsIGRvbid0IHByaW50IHJhdGlvIG9yIHRpbWUgcmVtYWluaW5nICovCisJaWYgKHN0
cm5jbXAodHh0LCBfKHR4dF9waXBpbmcpLCBzdHJsZW4oXyh0eHRfcGlwaW5nKSkpID09IDAgfHwK
KwkgICAgc3RybmNtcCh0eHQsIF8odHh0X3ByaW50aW5nKSwgc3RybGVuKF8odHh0X3ByaW50aW5n
KSkpID09IDAgfHwKKwkgICAgc3RybmNtcCh0eHQsIF8odHh0X3NhdmluZyksIHN0cmxlbihfKHR4
dF9zYXZpbmcpKSkgPT0gMCkgeworCQlmZWVkaW5nID0gVFJVRTsKKwkJZ290byBmZWVkaW5nOwor
CX0KKwogCS8qIElmIHRoaXMgaXMgYSBuZXcgcHJvZ3Jlc3MgbWV0ZXIsIHN0YXJ0IHJlY2FsY3Vs
YXRpbmcgKi8KIAlpZiAoKGxhc3RfdHh0ICE9IHR4dCkgfHwgKGxhc3RfdG90YWwgIT0gdG90YWwp
KSB7CiAJCWxhc3RfcmF0aW8gPSAtMTsKQEAgLTU1Nyw2ICs1NzAsMTAgQEAgc2hvd19wcm9ncmVz
cygKIAlzbnByaW50ZihkaXNwbGF5LCBzaXplb2YoZGlzcGxheSksICIlcyAlM2QlJSIsIHR4dCwg
cmF0aW8pOwogI2VuZGlmIC8qIEhBVkVfQ0xPQ0tfR0VUVElNRSB8fCBIQVZFX0dFVFRJTUVPRkRB
WSAqLwogCisJZmVlZGluZzoKKwlpZiAoZmVlZGluZykKKwkJc25wcmludGYoZGlzcGxheSwgc2l6
ZW9mKGRpc3BsYXkpLCAiJXMiLCB0eHQpOworCiAJLyogT25seSBkaXNwbGF5IHRleHQgaWYgaXQg
Y2hhbmdlZCBmcm9tIGxhc3QgdGltZSAqLwogCWlmIChzdHJjbXAoZGlzcGxheSwgbGFzdF9kaXNw
bGF5KSkgewogCQljaGFyICp0bXA7CkBAIC01ODQsNyArNjAxLDExIEBAIHNob3dfcHJvZ3Jlc3Mo
CiAJCVNUUkNQWShsYXN0X2Rpc3BsYXksIGRpc3BsYXkpOwogCX0KIAotCWxhc3RfdHh0ID0gdHh0
OwotCWxhc3RfdG90YWwgPSB0b3RhbDsKLQlsYXN0X3JhdGlvID0gcmF0aW87CisJaWYgKCFmZWVk
aW5nKSB7CisJCWxhc3RfdHh0ID0gdHh0OworCQlsYXN0X3RvdGFsID0gdG90YWw7CisJCWxhc3Rf
cmF0aW8gPSByYXRpbzsKKwl9CisKKwljbWRfbGluZSA9IHNhdmVfY21kX2xpbmU7CiB9CgoKR2xl
bm4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwp0aW4t
dXNlcnMgbWFpbGluZyBsaXN0CnRpbi11c2Vyc0B0aW4ub3JnCmh0dHA6Ly9saXN0cy50aW4ub3Jn
L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby90aW4tdXNlcnMK