[PATCH] Recognize binary integer literals

Petr Písař <[email protected]> Mon, 3 Dec 2018 14:35:27 +0100
Newsgroups gmane.comp.gnu.indent.bugs
Message-ID <[email protected]>
U29tZSBjb21waWxlcnMgc3VwcG9ydCBiaW5hcnkgY29uc3RhbnRzIHdyaXR0ZW4gYXMgMGIxIG9y
IDBCMS4gVGhpcyBpcwp0aGUgY2FzZSBvZiBHQ0MKPGh0dHBzOi8vZ2NjLmdudS5vcmcvb25saW5l
ZG9jcy9nY2MvQmluYXJ5LWNvbnN0YW50cy5odG1sPi4KClRoaXMgaXMgYmFzZWQgb24gYSBwYXRj
aCBwcm92aWRlZCBieSBKb3NlZiBLdWJpbiA8ZW50b21vbG9nQGNlbnRydW0uY3o+LgoKPGh0dHBz
Oi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTY1NTMxOT4KClNpZ25lZC1v
ZmYtYnk6IFBldHIgUMOtc2HFmSA8cHBpc2FyQHJlZGhhdC5jb20+Ci0tLQogcmVncmVzc2lvbi9U
RVNUICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiByZWdyZXNzaW9uL2lucHV0L2JpbmFy
eS1jb25zdGFudC5jICAgIHwgMTIgKysrKysrKysrKysrCiByZWdyZXNzaW9uL3N0YW5kYXJkL2Jp
bmFyeS1jb25zdGFudC5jIHwgMTIgKysrKysrKysrKysrCiBzcmMvbGV4aS5jICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgMjMgKysrKysrKysrKysrKysrKystLS0tLS0KIDQgZmlsZXMgY2hh
bmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCByZWdyZXNzaW9uL2lucHV0L2JpbmFyeS1jb25zdGFudC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQg
cmVncmVzc2lvbi9zdGFuZGFyZC9iaW5hcnktY29uc3RhbnQuYwoKZGlmZiAtLWdpdCBhL3JlZ3Jl
c3Npb24vVEVTVCBiL3JlZ3Jlc3Npb24vVEVTVAppbmRleCA1NmY0MWQ5Li42NGI5YmNlIDEwMDc1
NQotLS0gYS9yZWdyZXNzaW9uL1RFU1QKKysrIGIvcmVncmVzc2lvbi9URVNUCkBAIC0zNyw3ICsz
Nyw3IEBAIEJVR1M9ImNhc2UtbGFiZWwuYyBvbmUtbGluZS0xLmMgb25lLWxpbmUtMi5jIG9uZS1s
aW5lLTMuYyBcCiAgICAgICAgIG9uZS1saW5lLTQuYyBzdHJ1Y3QtZGVjbC5jIHNpemVvZi1pbi13
aGlsZS5jIGxpbmUtYnJlYWstY29tbWVudC5jIFwKICAgICAgICAgbWFjcm8uYyBlbnVtLmMgZWxp
Zi5jIG5lc3RlZC5jIHdyYXBwZWQtc3RyaW5nLmMgbWludXNfcHJlZGVjcmVtZW50LmMgXAogICAg
ICAgICBidWctZ251LTMzMzY0LmMgZmxvYXQtY29uc3RhbnQtc3VmZml4LmMgYmxvY2stY29tbWVu
dHMuYyBcCi0gICAgICAgIG5vLWZvcmNlZC1ubC1pbi1ibG9jay1pbml0LmMgaGV4YWRlY2ltYWxf
ZmxvYXQuYyIKKyAgICAgICAgbm8tZm9yY2VkLW5sLWluLWJsb2NrLWluaXQuYyBoZXhhZGVjaW1h
bF9mbG9hdC5jIGJpbmFyeS1jb25zdGFudC5jIgogCiBJTkRFTlRTUkM9ImFyZ3MuYyBiYWNrdXAu
aCBiYWNrdXAuYyBkaXJlbnRfZGVmLmggZ2xvYnMuYyBpbmRlbnQuaCBcCiAgICAgICAgIGluZGVu
dC5jIGluZGVudF9nbG9icy5oIGlvLmMgbGV4aS5jIG1lbWNweS5jIHBhcnNlLmMgcHJfY29tbWVu
dC5jIFwKZGlmZiAtLWdpdCBhL3JlZ3Jlc3Npb24vaW5wdXQvYmluYXJ5LWNvbnN0YW50LmMgYi9y
ZWdyZXNzaW9uL2lucHV0L2JpbmFyeS1jb25zdGFudC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjI1ZjE2MjQKLS0tIC9kZXYvbnVsbAorKysgYi9yZWdyZXNzaW9uL2lucHV0
L2JpbmFyeS1jb25zdGFudC5jCkBAIC0wLDAgKzEsMTIgQEAKK2ludCBmb28gPSAwYjE7Citsb25n
IGludCBmb28gPSAwYjFMOwordW5zaWduZWQgaW50IGZvbyA9IDBiMVU7Cit1bnNpZ25lZCBsb25n
IGludCBmb28gPSAwYjFMVTsKKworaW50IGZvbyA9IDBCMTsKK2xvbmcgaW50IGZvbyA9IDBCMUw7
Cit1bnNpZ25lZCBpbnQgZm9vID0gMEIxVTsKK3Vuc2lnbmVkIGxvbmcgaW50IGZvbyA9IDBCMUxV
OworCitpbnQgZm9vID0gMGIwMTAxMDEwMTsKK2ludCBmb28gPSAwQjAxMDEwMTAxOwpkaWZmIC0t
Z2l0IGEvcmVncmVzc2lvbi9zdGFuZGFyZC9iaW5hcnktY29uc3RhbnQuYyBiL3JlZ3Jlc3Npb24v
c3RhbmRhcmQvYmluYXJ5LWNvbnN0YW50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMjVmMTYyNAotLS0gL2Rldi9udWxsCisrKyBiL3JlZ3Jlc3Npb24vc3RhbmRhcmQvYmlu
YXJ5LWNvbnN0YW50LmMKQEAgLTAsMCArMSwxMiBAQAoraW50IGZvbyA9IDBiMTsKK2xvbmcgaW50
IGZvbyA9IDBiMUw7Cit1bnNpZ25lZCBpbnQgZm9vID0gMGIxVTsKK3Vuc2lnbmVkIGxvbmcgaW50
IGZvbyA9IDBiMUxVOworCitpbnQgZm9vID0gMEIxOworbG9uZyBpbnQgZm9vID0gMEIxTDsKK3Vu
c2lnbmVkIGludCBmb28gPSAwQjFVOwordW5zaWduZWQgbG9uZyBpbnQgZm9vID0gMEIxTFU7CisK
K2ludCBmb28gPSAwYjAxMDEwMTAxOworaW50IGZvbyA9IDBCMDEwMTAxMDE7CmRpZmYgLS1naXQg
YS9zcmMvbGV4aS5jIGIvc3JjL2xleGkuYwppbmRleCA4NDhkZGM5Li42ZWFiYTk1IDEwMDY0NAot
LS0gYS9zcmMvbGV4aS5jCisrKyBiL3NyYy9sZXhpLmMKQEAgLTI4NiwxNSArMjg2LDI0IEBAIGV4
dGVybiBjb2Rlc190eSBsZXhpKHZvaWQpCiAgICAgICBpZiAocGFyc2VyX3N0YXRlX3Rvcy0+bGFz
dF9ydyA9PSByd19yZXR1cm4pCiAgICAgICAgICAgcGFyc2VyX3N0YXRlX3Rvcy0+bGFzdF9ydyA9
IHJ3X25vbmU7CiAKKyAgICAgIC8qIGRlY2ltYWwsIG9jdGFsLCBoZXgsIGJpbmFyeSBhbmQgZmxv
YXRpbmcgcG9pbnQgbnVtYmVyIGZvcm1hdCAqLwogICAgICAgaWYgKGlzZGlnaXQgKCpidWZfcHRy
KSB8fAogICAgICAgICAgICgoYnVmX3B0clswXSA9PSAnLicpICYmIGlzZGlnaXQgKGJ1Zl9wdHJb
MV0pKSkKICAgICAgIHsKLSAgICAgICAgIGludCBzZWVuZG90ID0gMCwgc2VlbmV4cCA9IDAsIGlz
aGV4YSA9IDA7CisgICAgICAgICBpbnQgc2VlbmRvdCA9IDAsIHNlZW5leHAgPSAwLCBpc2hleGEg
PSAwLCBpc2JpbmFyeSA9IDA7CiAKLSAgICAgICAgIGlmICgoKmJ1Zl9wdHIgPT0gJzAnKSAmJiAo
KGJ1Zl9wdHJbMV0gPT0gJ3gnKSB8fCAoYnVmX3B0clsxXSA9PSAnWCcpKSkKKyAgICAgICAgIGlm
ICgqYnVmX3B0ciA9PSAnMCcpCiAgICAgICAgICB7Ci0gICAgICAgICAgICBpc2hleGEgPSAxOwot
ICAgICAgICAgICAgYnVmX3B0ciArPSAxOworICAgICAgICAgICAgaWYgKChidWZfcHRyWzFdID09
ICd4JykgfHwgKGJ1Zl9wdHJbMV0gPT0gJ1gnKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgIGlzaGV4YSA9IDE7CisgICAgICAgICAgICAgICBidWZfcHRyICs9IDE7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBlbHNlIGlmICgoYnVmX3B0clsxXSA9PSAnYicpIHx8IChidWZfcHRy
WzFdID09ICdCJykpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICBpc2JpbmFyeSA9IDE7
CisgICAgICAgICAgICAgICBidWZfcHRyICs9IDE7CisgICAgICAgICAgICB9CiAgICAgICAgICB9
CiAgICAgICAgICB3aGlsZSAoMSkKICAgICAgICAgIHsKQEAgLTMxMiw4ICszMjEsMTAgQEAgZXh0
ZXJuIGNvZGVzX3R5IGxleGkodm9pZCkKIAogICAgICAgICAgICAgYnVmX3B0cisrOwogCi0gICAg
ICAgICAgICBpZiAoIShpc2hleGEgJiYgIXNlZW5leHAgPwotICAgICAgICAgICAgICAgICBpc3hk
aWdpdCAoKmJ1Zl9wdHIpIDogaXNkaWdpdCAoKmJ1Zl9wdHIpCisgICAgICAgICAgICBpZiAoISgK
KyAgICAgICAgICAgICAgICAgKGlzaGV4YSAmJiAhc2VlbmV4cCAmJiBpc3hkaWdpdCAoKmJ1Zl9w
dHIpKSB8fAorICAgICAgICAgICAgICAgICAoaXNiaW5hcnkgJiYgIXNlZW5leHAgJiYgKCpidWZf
cHRyID09ICcwJyB8fCAqYnVmX3B0ciA9PSAnMScpKSB8fAorICAgICAgICAgICAgICAgICAoKCEo
aXNoZXhhIHx8IGlzYmluYXJ5KSB8fCBzZWVuZXhwKSAmJiBpc2RpZ2l0ICgqYnVmX3B0cikpCiAg
ICAgICAgICAgICAgICAgICkgJiYgKmJ1Zl9wdHIgIT0gJy4nKQogICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgaWYgKChpc2hleGEgPwotLSAKMi4xNy4yCgoKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYnVnLWluZGVudCBtYWlsaW5nIGxpc3QKYnVn
LWluZGVudEBnbnUub3JnCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2J1
Zy1pbmRlbnQK