From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00, DNS_FROM_OPENWHOIS, SPF_NEUTRAL autolearn=no version=3.2.5 Message-ID: <4D90F890.9000703@gmail.com> Date: Tue, 29 Mar 2011 01:07:28 +0400 From: Alexey Gladkov User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.16pre) Gecko/20110308 Lightning/1.0b3pre Thunderbird/3.1.10pre MIME-Version: 1.0 To: kbd@lists.altlinux.org References: <20110321214236.GA13370@graeme> <4D8C9693.9040006@gmail.com> <20110326223322.GA21591@altlinux.org> <4D8F0463.1050207@gmail.com> <20110328111918.GC15694@altlinux.org> In-Reply-To: <20110328111918.GC15694@altlinux.org> X-Enigmail-Version: 1.1.2 Content-Type: multipart/mixed; boundary="------------080404090308060909060206" Subject: Re: [kbd] New vt_mode tool for kbd? X-BeenThere: kbd@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: Linux console tools development discussion List-Id: Linux console tools development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Mar 2011 21:07:36 -0000 Archived-At: List-Archive: This is a multi-part message in MIME format. --------------080404090308060909060206 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit 28.03.2011 15:19, Dmitry V. Levin wrote: > This interface would be both script-friendly and extensible. Ok. Another implementation. How about this ? -- Rgrds, legion --------------080404090308060909060206 Content-Type: text/plain; name="kbdinfo.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="kbdinfo.c" I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxlcnJuby5oPgojaW5jbHVkZSA8ZXJyb3Iu aD4KI2luY2x1ZGUgPHVuaXN0ZC5oPgojaW5jbHVkZSA8c3lzL2lvY3RsLmg+CiNpbmNsdWRl IDxsaW51eC9rZC5oPgojaW5jbHVkZSA8Z2V0b3B0Lmg+CiNpbmNsdWRlICJnZXRmZC5oIgoj aW5jbHVkZSAibmxzLmgiCiNpbmNsdWRlICJ2ZXJzaW9uLmgiCgpzdGF0aWMgY2hhciAqYWN0 aW9uID0gTlVMTDsKc3RhdGljIGNoYXIgKnZhbHVlICA9IE5VTEw7CgpzdGF0aWMgdm9pZCBh dHRyX25vcmV0dXJuCnVzYWdlKGludCBjb2RlKSB7CglmcHJpbnRmKHN0ZGVyciwgXygiVXNh Z2U6ICVzIFstQyBERVZJQ0VdIGdldG1vZGUgW3RleHR8Z3JhcGhpY3NdXG4iKSwgcHJvZ25h bWUpOwoJZnByaW50ZihzdGRlcnIsIF8oIiAgIG9yOiAlcyBbLUMgREVWSUNFXSBna2Jtb2Rl IFtyYXd8eGxhdGV8bWVkaXVtcmF3fHVuaWNvZGVdXG4iKSwgcHJvZ25hbWUpOwoJZnByaW50 ZihzdGRlcnIsIF8oIiAgIG9yOiAlcyBbLUMgREVWSUNFXSBna2JtZXRhIFttZXRhYml0fGVz Y3ByZWZpeF1cbiIpLCBwcm9nbmFtZSk7CglmcHJpbnRmKHN0ZGVyciwgXygiICAgb3I6ICVz IFstQyBERVZJQ0VdIGdrYmxlZCAgW3Njcm9sbGxvY2t8bnVtbG9ja3xjYXBzbG9ja11cbiIp LCBwcm9nbmFtZSk7CglleGl0KGNvZGUpOwp9CgpzdGF0aWMgaW50CmFuc3dlcihjaGFyICph bnMpIHsKCWlmICh2YWx1ZSkKCQlyZXR1cm4gIXN0cmNhc2VjbXAodmFsdWUsIGFucykgPyBF WElUX1NVQ0NFU1MgOiBFWElUX0ZBSUxVUkU7CgoJcHJpbnRmKCIlc1xuIiwgYW5zKTsKCXJl dHVybiBFWElUX1NVQ0NFU1M7Cn0KCmludAptYWluKGludCBhcmdjLCBjaGFyICoqYXJndikg ewoJaW50IGZkLCBtb2RlLCBjOwoJaW50IHJjID0gRVhJVF9GQUlMVVJFOwoJY2hhciBmbGFn czsKCWNoYXIgKmNvbnNvbGUgPSBOVUxMOwoKCXNldF9wcm9nbmFtZShhcmd2WzBdKTsKCglz ZXRsb2NhbGUoTENfQUxMLCAiIik7CgliaW5kdGV4dGRvbWFpbihQQUNLQUdFX05BTUUsIExP Q0FMRURJUik7Cgl0ZXh0ZG9tYWluKFBBQ0tBR0VfTkFNRSk7CgoJd2hpbGUgKChjID0gZ2V0 b3B0KGFyZ2MsIGFyZ3YsICJDOmhWIikpICE9IEVPRikgewoJCXN3aXRjaCAoYykgewoJCQlj YXNlICdDJzoKCQkJCWlmIChvcHRhcmcgPT0gTlVMTCB8fCBvcHRhcmdbMF0gPT0gJ1wwJykK CQkJCQl1c2FnZShFWElUX0ZBSUxVUkUpOwoJCQkJY29uc29sZSA9IG9wdGFyZzsKCQkJCWJy ZWFrOwoJCQljYXNlICdWJzoKCQkJCXByaW50X3ZlcnNpb25fYW5kX2V4aXQoKTsKCQkJCWJy ZWFrOwoJCQljYXNlICdoJzoKCQkJCXVzYWdlKEVYSVRfU1VDQ0VTUyk7CgkJCQlicmVhazsK CQl9Cgl9CgoJaWYgKG9wdGluZCA9PSBhcmdjKSB7CgkJZnByaW50ZihzdGRlcnIsIF8oIkVy cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy5cbiIpKTsKCQlleGl0KEVYSVRfRkFJTFVSRSk7 Cgl9CgoJYWN0aW9uID0gYXJndltvcHRpbmQrK107CgoJaWYgKG9wdGluZCA8IGFyZ2MpCgkJ dmFsdWUgPSBhcmd2W29wdGluZCsrXTsKCglmZCA9IGdldGZkKGNvbnNvbGUpOwoKCWlmICgh c3RyY2FzZWNtcCgiR0VUTU9ERSIsIGFjdGlvbikpIHsKCQlpZiAoaW9jdGwoZmQsIEtER0VU TU9ERSwgJm1vZGUpID09IC0xKQoJCQllcnJvcihFWElUX0ZBSUxVUkUsIGVycm5vLCAiaW9j dGwiKTsKCgkJc3dpdGNoIChtb2RlKSB7CgkJCWNhc2UgS0RfVEVYVDoJCXJjID0gYW5zd2Vy KCJ0ZXh0Iik7CQlicmVhazsKCQkJY2FzZSBLRF9HUkFQSElDUzoJcmMgPSBhbnN3ZXIoImdy YXBoaWNzIik7CWJyZWFrOwoJCX0KCgl9IGVsc2UgaWYgKCFzdHJjYXNlY21wKCJHS0JNT0RF IiwgYWN0aW9uKSkgewoJCWlmIChpb2N0bChmZCwgS0RHS0JNT0RFLCAmbW9kZSkgPT0gLTEp CgkJCWVycm9yKEVYSVRfRkFJTFVSRSwgZXJybm8sICJpb2N0bCIpOwoKCQlzd2l0Y2ggKG1v ZGUpIHsKCQkJY2FzZSBLX1JBVzoJCXJjID0gYW5zd2VyKCJyYXciKTsJCWJyZWFrOwoJCQlj YXNlIEtfWExBVEU6CQlyYyA9IGFuc3dlcigieGxhdGUiKTsJCWJyZWFrOwoJCQljYXNlIEtf TUVESVVNUkFXOglyYyA9IGFuc3dlcigibWVkaXVtcmF3Iik7CWJyZWFrOwoJCQljYXNlIEtf VU5JQ09ERToJCXJjID0gYW5zd2VyKCJ1bmljb2RlIik7CQlicmVhazsKCQl9CgoJfSBlbHNl IGlmICghc3RyY2FzZWNtcCgiR0tCTUVUQSIsIGFjdGlvbikpIHsKCQlpZiAoaW9jdGwoZmQs IEtER0tCTUVUQSwgJm1vZGUpID09IC0xKQoJCQllcnJvcihFWElUX0ZBSUxVUkUsIGVycm5v LCAiaW9jdGwiKTsKCgkJc3dpdGNoIChtb2RlKSB7CgkJCWNhc2UgS19NRVRBQklUOgkJcmMg PSBhbnN3ZXIoIm1ldGFiaXQiKTsJCWJyZWFrOwoJCQljYXNlIEtfRVNDUFJFRklYOglyYyA9 IGFuc3dlcigiZXNjcHJlZml4Iik7CWJyZWFrOwoJCX0KCgl9IGVsc2UgaWYgKCFzdHJjYXNl Y21wKCJHS0JMRUQiLCBhY3Rpb24pKSB7CgkJaWYgKGlvY3RsKGZkLCBLREdLQkxFRCwgJmZs YWdzKSA9PSAtMSkKCQkJZXJyb3IoRVhJVF9GQUlMVVJFLCBlcnJubywgImlvY3RsIik7CgoJ CW1vZGUgPSAoZmxhZ3MgJiAweDcpOwoKCQlpZiAodmFsdWUpIHsKCQkJaWYgKCgobW9kZSAm IExFRF9TQ1IpICYmICFzdHJjYXNlY21wKHZhbHVlLCAic2Nyb2xsbG9jayIpKSB8fAoJCQkg ICAgKChtb2RlICYgTEVEX05VTSkgJiYgIXN0cmNhc2VjbXAodmFsdWUsICJudW1sb2NrIikp ICAgIHx8CgkJCSAgICAoKG1vZGUgJiBMRURfQ0FQKSAmJiAhc3RyY2FzZWNtcCh2YWx1ZSwg ImNhcHNsb2NrIikpKQoJCQkJcmMgPSBFWElUX1NVQ0NFU1M7CgkJfSBlbHNlIHsKCQkJcHJp bnRmKCJzY3JvbGxsb2NrOiVzICIsIChtb2RlICYgTEVEX1NDUikgPyAib24iIDogIm9mZiIp OwoJCQlwcmludGYoIm51bWxvY2s6JXMgIiwgICAgKG1vZGUgJiBMRURfTlVNKSA/ICJvbiIg OiAib2ZmIik7CgkJCXByaW50ZigiY2Fwc2xvY2s6JXNcbiIsICAobW9kZSAmIExFRF9DQVAp ID8gIm9uIiA6ICJvZmYiKTsKCQkJcmMgPSBFWElUX1NVQ0NFU1M7CgkJfQoKCX0gZWxzZSB7 CgkJZnByaW50ZihzdGRlcnIsIF8oIkVycm9yOiBVbnJlY29nbml6ZWQgYWN0aW9uOiAlc1xu IiksIGFjdGlvbik7Cgl9CgoJY2xvc2UoZmQpOwoJcmV0dXJuIHJjOwp9Cg== --------------080404090308060909060206--