From: Ondrej Bilka Date: 2006-08-04T21:38:18+09:00 Subject: [PATCH] readline --MessagePart:299257459.0-32518-1539562613-1154695086 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; delsp=yes; format=flowed Added bindings to some readline functions keyseq -because readline uses callback which doesnt give information what sequence did you typed you can have most 4096 seqs and typing record separator can lead to unspecified behaviour line_buffer,point variables rl_line_buffer and rl_point, -to use readline with (n)curses getc_proc binding for variable rl_getc_proc --MessagePart:299257459.0-32518-1539562613-1154695086 Content-Transfer-Encoding: base64 Content-Type: text/x-c; name=rline; charset="us-ascii" Content-Disposition: attachment; filename=rline SW5kZXg6IHJlYWRsaW5lLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL3NyYy9ydWJ5L2V4dC9yZWFk bGluZS9yZWFkbGluZS5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMwCmRpZmYgLXUgLXIxLjMw IHJlYWRsaW5lLmMKLS0tIHJlYWRsaW5lLmMJMjQgSnVsIDIwMDYgMDY6NTQ6NTggLTAwMDAJMS4z MAorKysgcmVhZGxpbmUuYwk0IEF1ZyAyMDA2IDEyOjE1OjI5IC0wMDAwCkBAIC0xMjAsNiArMTIw LDc5IEBACiAgICAgcmxfb3V0c3RyZWFtID0gcmJfaW9fc3RkaW9fZmlsZShvZnApOwogICAgIHJl dHVybiBvdXRwdXQ7CiB9CitleHRlcm4gS2V5bWFwIF9ybF9rZXltYXA7CitzdGF0aWMgVkFMVUUg cmVhZGxpbmVfYmluZGluZ3M7CitzdGF0aWMgaW50IF9fcmVhZGxpbmVfa2V5bm9fcGFydDsKK2lu dCByZWFkbGluZV9mdW5hKGludCBhLGludCBiKXsKKwlfX3JlYWRsaW5lX2tleW5vX3BhcnQ9Yi02 NDsKKwlyZXR1cm4gMDsKK30KK2ludCByZWFkbGluZV9mdW5iKGludCBhLGludCBiKXsKKwlyYl9m dW5jYWxsKCooUkFSUkFZKHJlYWRsaW5lX2JpbmRpbmdzKS0+cHRyKzY0Kl9fcmVhZGxpbmVfa2V5 bm9fcGFydCtiLTY0KSwgCQlyYl9pbnRlcm4oImNhbGwiKSwwKTsKKwlyZXR1cm4gMDsKK30KKwor LyoKKyAqIGNhbGwtc2VxCisgKiAgICAgICAgUmVhZGxpbmUua2V5c2VxKGtleXNlcSxwcm9jKSAK KyAqICAgICAgICAKKyAqICAgICAgICB3aGVuIGtleXNlcSBpcyB0eXBlZCBwcm9jIGlzIGV4ZWN1 dGVkCisgKgorICovCitzdGF0aWMgVkFMVUUgcmVhZGxpbmVfc19zZXRfa2V5c2VxKFZBTFVFIHNl bGYsVkFMVUUgc2VxLFZBTFVFIHByb2MpeworCWNoYXIgKnB0cj1SU1RSSU5HKHNlcSktPnB0cjsK KwljaGFyICptYWNybz1tYWxsb2MoNSk7LyptYWNybyB0aGF0IHJlc3VsdHMgMiBmdW5jIGNhbGxz Ki8KKyAgICBpZiAoIXJiX3Jlc3BvbmRfdG8ocHJvYywgcmJfaW50ZXJuKCJjYWxsIikpKQorCXJi X3JhaXNlKHJiX2VBcmdFcnJvciwgImFyZ3VtZW50IG11c3QgcmVzcG9uZCB0byBgY2FsbCciKTsK KwlyYl9hcnlfcHVzaChyZWFkbGluZV9iaW5kaW5ncyxwcm9jKTsKKwlpbnQgbj1SQVJSQVkocmVh ZGxpbmVfYmluZGluZ3MpLT5sZW4tMTsKKwlpZiAobj49NDA5NikJcmJfcmFpc2UocmJfZUFyZ0Vy cm9yLCAiY2Fubm90IGRlZmluZSBtb3JlIHRoYW4gNDA5NiBrZXliaW5kaW5ncyIpOworCisgICAg Ly8zMC0gcmVjb3JkIHNlcGFyYXRvciBob3BlIHRoYXQgbm9ib2R5IHVzZXMgaXQgCisJbWFjcm9b MF09MzA7CW1hY3JvWzFdPTY0KyhuLzY0KTsgbWFjcm9bMl09MDsKKwlybF9nZW5lcmljX2JpbmQo SVNGVU5DLG1hY3JvLChjaGFyICopcmVhZGxpbmVfZnVuYSxfcmxfa2V5bWFwKTsKKwltYWNyb1sy XT0zMDsJbWFjcm9bM109NjQrKG4lNjQpOyBtYWNyb1s0XT0wOworCXJsX2dlbmVyaWNfYmluZChJ U0ZVTkMsbWFjcm8rMiwoY2hhciAqKXJlYWRsaW5lX2Z1bmIsX3JsX2tleW1hcCk7CisJcmxfZ2Vu ZXJpY19iaW5kKElTTUFDUixwdHIsbWFjcm8sX3JsX2tleW1hcCk7LyptYWNybyBpcyB1c2VkIGJ5 IHJsIGRvIG5vdCBkZWxldGUgaXQqLworfQorc3RhdGljIFZBTFVFCityZWFkbGluZV9zX2dldF9n ZXRjKFZBTFVFIHNlbGYpCit7CisgICAgcmJfc2VjdXJlKDQpOworICAgIHJldHVybiByYl9pdl9n ZXQobVJlYWRsaW5lLCAiQGdldGNfcHJvYyIpOworfQoraW50IG15Z2V0YyhGSUxFICppbil7CisJ aW50IHI9TlVNMklOVChyYl9mdW5jYWxsKHJlYWRsaW5lX3NfZ2V0X2dldGMobVJlYWRsaW5lKSxy Yl9pbnRlcm4oImNhbGwiKSwwKSk7CisJcmV0dXJuIHI7Cit9CisKKworLyoKKyAqCisgKiBjYWxs LXNlcSBnZXRjPXByb2MKKyAqIAorICpwcm9jIGJlY29tZXMgY3VzdG9tIGdldGMgdXNlZCBieSBy ZWFkbGluZSAKKyAqdXNlIHdoZW4geW91IGNhbnQgc3RkaW4gZGlyZWN0bHkocmVtb3RlIGNvbm5l Y3Rpb24pCisgKm90aGVyd2lzZSB1c2UgaW5wdXQ9IHRvIHJlZGlyZWN0IGlucHV0CisgKgorICov CisKK3N0YXRpYyBWQUxVRQorcmVhZGxpbmVfc19zZXRfZ2V0YyhWQUxVRSBzZWxmLCBWQUxVRSBw cm9jKQorewkgCisJcmxfZ2V0Y19mdW5jdGlvbj1teWdldGM7CisJcmJfc2VjdXJlKDQpOworCWlm IChOSUxfUChwcm9jKSl7CisJICAgIHJldHVybiByYl9pdl9zZXQobVJlYWRsaW5lLCAiQGdldGNf cHJvYyIsIHByb2MpOworCX0KKwkJCisKKyAgICBpZiAoIXJiX3Jlc3BvbmRfdG8ocHJvYywgcmJf aW50ZXJuKCJjYWxsIikpKQorCXJiX3JhaXNlKHJiX2VBcmdFcnJvciwgImFyZ3VtZW50IG11c3Qg cmVzcG9uZCB0byBgY2FsbCciKTsKKyAgICByZXR1cm4gcmJfaXZfc2V0KG1SZWFkbGluZSwgIkBn ZXRjX3Byb2MiLCBwcm9jKTsKK30KKworCiAKIHN0YXRpYyBWQUxVRQogcmVhZGxpbmVfc19zZXRf Y29tcGxldGlvbl9wcm9jKFZBTFVFIHNlbGYsIFZBTFVFIHByb2MpCkBAIC02OTUsNyArNzY4LDIw IEBACiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0KKy8qc3RhdGljIFZBTFVFIHJlYWRs aW5lX3Nfc2V0X2xpbmVfYnVmZmVyKFZBTFVFIHNlbGYsVkFMVUUgbnVtKXsKK3JldHVybiAocmxf bGluZV9idWZmZXIpOworfSovCitzdGF0aWMgVkFMVUUgcmVhZGxpbmVfc19nZXRfbGluZV9idWZm ZXIoVkFMVUUgc2VsZil7CityZXR1cm4gcmJfc3RyX25ldyhybF9saW5lX2J1ZmZlcixybF9lbmQp OworfQorc3RhdGljIFZBTFVFIHJlYWRsaW5lX3Nfc2V0X3BvaW50KFZBTFVFIHNlbGYsVkFMVUUg bnVtKXsKKyAJcmxfcG9pbnQ9TlVNMklOVChudW0pOworCXJldHVybiBudW07Cit9CitzdGF0aWMg VkFMVUUgcmVhZGxpbmVfc19nZXRfcG9pbnQoVkFMVUUgc2VsZil7CityZXR1cm4gSU5UMk5VTShy bF9wb2ludCk7Cit9CisJCiB2b2lkCiBJbml0X3JlYWRsaW5lKCkKIHsKQEAgLTcxMCwxMiArNzk2 LDI0IEBACiAgICAgY29tcGxldGlvbl9jYXNlX2ZvbGQgPSByYl9pbnRlcm4oQ09NUExFVElPTl9D QVNFX0ZPTEQpOwogCiAgICAgbVJlYWRsaW5lID0gcmJfZGVmaW5lX21vZHVsZSgiUmVhZGxpbmUi KTsKKyAgICByYl9kZWZpbmVfc2luZ2xldG9uX21ldGhvZChtUmVhZGxpbmUsICJsaW5lX2J1ZmZl ciIsCisJCQkgICAgICAgcmVhZGxpbmVfc19nZXRfbGluZV9idWZmZXIsIDApOworICAgIHJiX2Rl ZmluZV9zaW5nbGV0b25fbWV0aG9kKG1SZWFkbGluZSwgInBvaW50PSIsCisJCQkgICAgICAgcmVh ZGxpbmVfc19zZXRfcG9pbnQsIDEpOworICAgIHJiX2RlZmluZV9zaW5nbGV0b25fbWV0aG9kKG1S ZWFkbGluZSwgInBvaW50IiwKKwkJCSAgICAgICByZWFkbGluZV9zX2dldF9wb2ludCwgMCk7CiAg ICAgcmJfZGVmaW5lX21vZHVsZV9mdW5jdGlvbihtUmVhZGxpbmUsICJyZWFkbGluZSIsCiAJCQkg ICAgICByZWFkbGluZV9yZWFkbGluZSwgLTEpOwogICAgIHJiX2RlZmluZV9zaW5nbGV0b25fbWV0 aG9kKG1SZWFkbGluZSwgImlucHV0PSIsCiAJCQkgICAgICAgcmVhZGxpbmVfc19zZXRfaW5wdXQs IDEpOwogICAgIHJiX2RlZmluZV9zaW5nbGV0b25fbWV0aG9kKG1SZWFkbGluZSwgIm91dHB1dD0i LAogCQkJICAgICAgIHJlYWRsaW5lX3Nfc2V0X291dHB1dCwgMSk7CisgICAgcmJfZGVmaW5lX3Np bmdsZXRvbl9tZXRob2QobVJlYWRsaW5lLCAiZ2V0Y19wcm9jPSIsCisJCQkgICAgICAgcmVhZGxp bmVfc19zZXRfZ2V0YywgMSk7CisgICAgcmJfZGVmaW5lX3NpbmdsZXRvbl9tZXRob2QobVJlYWRs aW5lLCAiZ2V0Y19wcm9jIiwKKwkJCSAgICAgICByZWFkbGluZV9zX2dldF9nZXRjLCAwKTsKKyAg ICByYl9kZWZpbmVfc2luZ2xldG9uX21ldGhvZChtUmVhZGxpbmUsICJrZXlzZXEiLAorCQkJICAg ICAgIHJlYWRsaW5lX3Nfc2V0X2tleXNlcSwgMik7CiAgICAgcmJfZGVmaW5lX3NpbmdsZXRvbl9t ZXRob2QobVJlYWRsaW5lLCAiY29tcGxldGlvbl9wcm9jPSIsCiAJCQkgICAgICAgcmVhZGxpbmVf c19zZXRfY29tcGxldGlvbl9wcm9jLCAxKTsKICAgICByYl9kZWZpbmVfc2luZ2xldG9uX21ldGhv ZChtUmVhZGxpbmUsICJjb21wbGV0aW9uX3Byb2MiLApAQCAtNzY3LDYgKzg2NSw4IEBACiAgICAg cmJfZGVmaW5lX3NpbmdsZXRvbl9tZXRob2QoaGlzdG9yeSwic2l6ZSIsIGhpc3RfbGVuZ3RoLCAw KTsKICAgICByYl9kZWZpbmVfc2luZ2xldG9uX21ldGhvZChoaXN0b3J5LCJlbXB0eT8iLCBoaXN0 X2VtcHR5X3AsIDApOwogICAgIHJiX2RlZmluZV9zaW5nbGV0b25fbWV0aG9kKGhpc3RvcnksImRl bGV0ZV9hdCIsIGhpc3RfZGVsZXRlX2F0LCAxKTsKKyAJcmVhZGxpbmVfYmluZGluZ3M9cmJfYXJ5 X25ldygpOworICAgIHJiX2l2X3NldChtUmVhZGxpbmUsIkBiaW5kaW5ncyIscmVhZGxpbmVfYmlu ZGluZ3MpCTsKICAgICByYl9kZWZpbmVfY29uc3QobVJlYWRsaW5lLCAiSElTVE9SWSIsIGhpc3Rv cnkpOwogCiAgICAgZmNvbXAgPSByYl9vYmpfYWxsb2MocmJfY09iamVjdCk7Ci== --MessagePart:299257459.0-32518-1539562613-1154695086--