From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=42763 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OF5CK-0000kj-Cf for qemu-devel@nongnu.org; Thu, 20 May 2010 08:50:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OF5CD-00032R-Sg for qemu-devel@nongnu.org; Thu, 20 May 2010 08:50:00 -0400 Received: from mx1.redhat.com ([209.132.183.28]:2728) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OF5CD-00032J-IC for qemu-devel@nongnu.org; Thu, 20 May 2010 08:49:53 -0400 Message-ID: <4BF52FE7.6000202@redhat.com> Date: Thu, 20 May 2010 14:49:43 +0200 From: Gerd Hoffmann MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [PATCH 1/3] cursor: add cursor functions. References: <1273063904-6028-1-git-send-email-kraxel@redhat.com> <1273063904-6028-2-git-send-email-kraxel@redhat.com> <4BE3BBA1.3010007@redhat.com> <4BF39E72.6070906@redhat.com> <4BF4372C.7060000@codemonkey.ws> In-Reply-To: <4BF4372C.7060000@codemonkey.ws> Content-Type: multipart/mixed; boundary="------------080703020502020105070906" List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Blue Swirl , Paolo Bonzini , qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------080703020502020105070906 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, >>> Well. You can't have both. We can have a efficiently packed format (i.e. >>> two bitmaps). Or we can do it in a way which doesn't need parsing, >>> but that >>> wouldn't be the most compact format ... >> You're right, so packing or introducing a small conversion function is >> not critical. I'd still prefer a standard format if possible. > > Personally, I'd rather see Gerd's original format but read from a file > instead of hard coded in a .c file. IOW, a > /usr/share/qemu/default-cursor.qpm that contained the appropriate > strings. A couple extra lines that made it an xpm I think would be worth > it too. xpms are designed to be easily #include-able, and parsing them that way is easier than loading them at runtime. At least without adding a dependency to libXpm. So how about the following incremental RfC patch? It adds the cursors as separate files which are standard xpm format. Nevertheless they are compiled in, i.e. they can't be changed at runtime. cheers, Gerd --------------080703020502020105070906 Content-Type: text/plain; name="0001-cursor-switch-to-xpm.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-cursor-switch-to-xpm.patch" RnJvbSA3MDY2ZTVhNzU5ZWM4ODcxOTE2MDFlNmE5NmRlYWI1OWExZGRhNzIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHZXJkIEhvZmZtYW5uIDxrcmF4ZWxAcmVkaGF0LmNv bT4KRGF0ZTogVGh1LCAyMCBNYXkgMjAxMCAxNDozOToyNiArMDIwMApTdWJqZWN0OiBbUEFU Q0hdIGN1cnNvcjogc3dpdGNoIHRvIHhwbQoKLS0tCiBjdXJzb3IuYyAgICAgICAgICAgIHwg ICA5NCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIGN1cnNvcl9oaWRkZW4ueHBtICAgfCAgIDM3ICsrKysrKysrKysrKysrKysrKysrCiBj dXJzb3JfbGVmdF9wdHIueHBtIHwgICAzOSArKysrKysrKysrKysrKysrKysrKysKIDMgZmls ZXMgY2hhbmdlZCwgMTI0IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IGN1cnNvcl9oaWRkZW4ueHBtCiBjcmVhdGUgbW9kZSAxMDA2NDQgY3Vy c29yX2xlZnRfcHRyLnhwbQoKZGlmZiAtLWdpdCBhL2N1cnNvci5jIGIvY3Vyc29yLmMKaW5k ZXggMzk5NWEzMS4uZGZiOWVlZiAxMDA2NDQKLS0tIGEvY3Vyc29yLmMKKysrIGIvY3Vyc29y LmMKQEAgLTEsNTEgKzEsNTcgQEAKICNpbmNsdWRlICJxZW11LWNvbW1vbi5oIgogI2luY2x1 ZGUgImNvbnNvbGUuaCIKIAotc3RhdGljIGNvbnN0IGNoYXIgY3Vyc29yX2hpZGRlbl8zMlsz MiozMl07Ci1zdGF0aWMgY29uc3QgY2hhciBjdXJzb3JfbGVmdF9wdHJfMzJbMzIqMzJdID0g ewotICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIKLSAgICAiIFggICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiCi0gICAgIiBYWCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIgotICAgICIgWC5YICAgICAgICAgICAgICAgICAgICAgICAgICAgICIK LSAgICAiIFguLlggICAgICAgICAgICAgICAgICAgICAgICAgICAiCi0gICAgIiBYLi4uWCAg ICAgICAgICAgICAgICAgICAgICAgICAgIgotICAgICIgWC4uLi5YICAgICAgICAgICAgICAg ICAgICAgICAgICIKLSAgICAiIFguLi4uLlggICAgICAgICAgICAgICAgICAgICAgICAiCi0g ICAgIiBYLi4uLi4uWCAgICAgICAgICAgICAgICAgICAgICAgIgotICAgICIgWC4uLi4uLi5Y ICAgICAgICAgICAgICAgICAgICAgICIKLSAgICAiIFguLi4uLi4uLlggICAgICAgICAgICAg ICAgICAgICAiCi0gICAgIiBYLi4uLi5YWFhYWCAgICAgICAgICAgICAgICAgICAgIgotICAg ICIgWC4uWC4uWCAgICAgICAgICAgICAgICAgICAgICAgICIKLSAgICAiIFguWCBYLi5YICAg ICAgICAgICAgICAgICAgICAgICAiCi0gICAgIiBYWCAgWC4uWCAgICAgICAgICAgICAgICAg ICAgICAgIgotICAgICIgWCAgICBYLi5YICAgICAgICAgICAgICAgICAgICAgICIKLSAgICAi ICAgICAgWC4uWCAgICAgICAgICAgICAgICAgICAgICAiCi0gICAgIiAgICAgICBYLi5YICAg ICAgICAgICAgICAgICAgICAgIgotICAgICIgICAgICAgWC4uWCAgICAgICAgICAgICAgICAg ICAgICIKLSAgICAiICAgICAgICBYWCAgICAgICAgICAgICAgICAgICAgICAiCi0gICAgIiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIgotfTsKKyNpbmNsdWRlICJjdXJzb3Jf aGlkZGVuLnhwbSIKKyNpbmNsdWRlICJjdXJzb3JfbGVmdF9wdHIueHBtIgogCiAvKiBmb3Ig Y3JlYXRpbmcgYnVpbHQtaW4gY3Vyc29ycyAqLwotc3RhdGljIHZvaWQgY3Vyc29yX3BhcnNl X2FzY2lpX2FydChRRU1VQ3Vyc29yICpjLCBjb25zdCBjaGFyICpwdHIpCitzdGF0aWMgUUVN VUN1cnNvciAqY3Vyc29yX3BhcnNlX3hwbShjb25zdCBjaGFyICp4cG1bXSkKIHsKLSAgICBp bnQgaSwgcGl4ZWxzOwotCi0gICAgcGl4ZWxzID0gYy0+d2lkdGggKiBjLT5oZWlnaHQ7Ci0g ICAgZm9yIChpID0gMDsgaSA8IHBpeGVsczsgaSsrKSB7Ci0gICAgICAgIHN3aXRjaCAocHRy W2ldKSB7Ci0gICAgICAgIGNhc2UgJ1gnOiAvKiBibGFjayAqLwotICAgICAgICAgICAgYy0+ ZGF0YVtpXSA9IDB4ZmYwMDAwMDA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz ZSAnLic6IC8qIHdoaXRlICovCi0gICAgICAgICAgICBjLT5kYXRhW2ldID0gMHhmZmZmZmZm ZjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICcgJzogLyogdHJhbnNwYXJl bnQgKi8KLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGMtPmRhdGFbaV0gPSAweDAw MDAwMDAwOwotICAgICAgICAgICAgYnJlYWs7CisgICAgUUVNVUN1cnNvciAqYzsKKyAgICB1 aW50MzJfdCBjdGFiWzEyOF07CisgICAgdW5zaWduZWQgaW50IHdpZHRoLCBoZWlnaHQsIGNv bG9ycywgY2hhcnM7CisgICAgdW5zaWduZWQgaW50IGxpbmUgPSAwLCBpLCByLCBnLCBiLCB4 LCB5LCBwaXhlbDsKKyAgICBjaGFyIG5hbWVbMTZdOworICAgIHVpbnQ4X3QgaWR4OworCisg ICAgLyogcGFyc2UgaGVhZGVyIGxpbmU6IHdpZHRoLCBoZWlnaHQsICNjb2xvcnMsICNjaGFy cyAqLworICAgIGlmIChzc2NhbmYoeHBtW2xpbmVdLCAiJWQgJWQgJWQgJWQiLCAmd2lkdGgs ICZoZWlnaHQsICZjb2xvcnMsICZjaGFycykgIT0gNCkgeworICAgICAgICBmcHJpbnRmKHN0 ZGVyciwgIiVzOiBoZWFkZXIgcGFyc2UgZXJyb3I6IFwiJXNcIlxuIiwKKyAgICAgICAgICAg ICAgICBfX0ZVTkNUSU9OX18sIHhwbVtsaW5lXSk7CisgICAgICAgIHJldHVybiBOVUxMOwor ICAgIH0KKyAgICBpZiAoY2hhcnMgIT0gMSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwg IiVzOiBjaGFycyAhPSAxIG5vdCBzdXBwb3J0ZWRcbiIsIF9fRlVOQ1RJT05fXyk7CisgICAg ICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBsaW5lKys7CisKKyAgICAvKiBwYXJzZSBj b2xvciB0YWJsZSAqLworICAgIGZvciAoaSA9IDA7IGkgPCBjb2xvcnM7IGkrKywgbGluZSsr KSB7CisgICAgICAgIGlmIChzc2NhbmYoeHBtW2xpbmVdLCAiJWMgYyAlMTVzIiwgJmlkeCwg bmFtZSkgPT0gMikgeworICAgICAgICAgICAgaWYgKHNzY2FuZihuYW1lLCAiIyUwMnglMDJ4 JTAyeCIsICZyLCAmZywgJmIpID09IDMpIHsKKyAgICAgICAgICAgICAgICBjdGFiW2lkeF0g PSAoMHhmZiA8PCAyNCkgfCAoYiA8PCAxNikgfCAoZyA8PCA4KSB8IHI7CisgICAgICAgICAg ICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoc3RyY21w KG5hbWUsICJOb25lIikgPT0gMCkgeworICAgICAgICAgICAgICAgIGN0YWJbaWR4XSA9IDB4 MDAwMDAwMDA7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CiAg ICAgICAgIH0KKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogY29sb3IgcGFyc2UgZXJy b3I6IFwiJXNcIlxuIiwKKyAgICAgICAgICAgICAgICBfX0ZVTkNUSU9OX18sIHhwbVtsaW5l XSk7CisgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KKworICAgIC8qIHBhcnNlIHBpeGVs IGRhdGEgKi8KKyAgICBjID0gY3Vyc29yX2FsbG9jKHdpZHRoLCBoZWlnaHQpOworICAgIGZv ciAocGl4ZWwgPSAwLCB5ID0gMDsgeSA8IGhlaWdodDsgeSsrLCBsaW5lKyspIHsKKyAgICAg ICAgZm9yICh4ID0gMDsgeCA8IGhlaWdodDsgeCsrLCBwaXhlbCsrKSB7CisgICAgICAgICAg ICBpZHggPSB4cG1bbGluZV1beF07CisgICAgICAgICAgICBjLT5kYXRhW3BpeGVsXSA9IGN0 YWJbaWR4XTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gYzsKIH0KIAogLyogbmlj ZSBmb3IgZGVidWdnaW5nICovCkBAIC03NSw4ICs4MSw3IEBAIFFFTVVDdXJzb3IgKmN1cnNv cl9idWlsdGluX2hpZGRlbih2b2lkKQogewogICAgIFFFTVVDdXJzb3IgKmM7CiAKLSAgICBj ID0gY3Vyc29yX2FsbG9jKDMyLCAzMik7Ci0gICAgY3Vyc29yX3BhcnNlX2FzY2lpX2FydChj LCBjdXJzb3JfaGlkZGVuXzMyKTsKKyAgICBjID0gY3Vyc29yX3BhcnNlX3hwbShjdXJzb3Jf aGlkZGVuX3hwbSk7CiAgICAgcmV0dXJuIGM7CiB9CiAKQEAgLTg0LDEwICs4OSw3IEBAIFFF TVVDdXJzb3IgKmN1cnNvcl9idWlsdGluX2xlZnRfcHRyKHZvaWQpCiB7CiAgICAgUUVNVUN1 cnNvciAqYzsKIAotICAgIGMgPSBjdXJzb3JfYWxsb2MoMzIsIDMyKTsKLSAgICBjdXJzb3Jf cGFyc2VfYXNjaWlfYXJ0KGMsIGN1cnNvcl9sZWZ0X3B0cl8zMik7Ci0gICAgYy0+aG90X3gg PSAxOwotICAgIGMtPmhvdF95ID0gMTsKKyAgICBjID0gY3Vyc29yX3BhcnNlX3hwbShjdXJz b3JfbGVmdF9wdHJfeHBtKTsKICAgICByZXR1cm4gYzsKIH0KIApkaWZmIC0tZ2l0IGEvY3Vy c29yX2hpZGRlbi54cG0gYi9jdXJzb3JfaGlkZGVuLnhwbQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4zNTRlN2E5Ci0tLSAvZGV2L251bGwKKysrIGIvY3Vyc29yX2hp ZGRlbi54cG0KQEAgLTAsMCArMSwzNyBAQAorLyogWFBNICovCitzdGF0aWMgY29uc3QgY2hh ciAqY3Vyc29yX2hpZGRlbl94cG1bXSA9IHsKKyAgICAiMzIgMzIgMSAxIiwKKyAgICAiICBj IE5vbmUiLAorICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsCisgICAg IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwKKyAgICAiICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiLAorICAgICIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIsCisgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwKKyAg ICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLAorICAgICIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIsCisgICAgIiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIiwKKyAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLAor ICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsCisgICAgIiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiwKKyAgICAiICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiLAorICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIs CisgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwKKyAgICAiICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiLAorICAgICIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIsCisgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IiwKKyAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLAorICAgICIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsCisgICAgIiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiwKKyAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiLAorICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsCisgICAgIiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwKKyAgICAiICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiLAorICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIsCisgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwKKyAgICAi ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLAorICAgICIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICIsCisgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIiwKKyAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLAorICAg ICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsCisgICAgIiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIiwKK307CmRpZmYgLS1naXQgYS9jdXJzb3JfbGVmdF9w dHIueHBtIGIvY3Vyc29yX2xlZnRfcHRyLnhwbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi42YzlhZGE5Ci0tLSAvZGV2L251bGwKKysrIGIvY3Vyc29yX2xlZnRfcHRy LnhwbQpAQCAtMCwwICsxLDM5IEBACisvKiBYUE0gKi8KK3N0YXRpYyBjb25zdCBjaGFyICpj dXJzb3JfbGVmdF9wdHJfeHBtW10gPSB7CisgICAgIjMyIDMyIDMgMSIsCisgICAgIlggYyAj MDAwMDAwIiwKKyAgICAiLiBjICNmZmZmZmYiLAorICAgICIgIGMgTm9uZSIsCisgICAgIlgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwKKyAgICAiWFggICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiLAorICAgICJYLlggICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIsCisgICAgIlguLlggICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwKKyAgICAi WC4uLlggICAgICAgICAgICAgICAgICAgICAgICAgICAiLAorICAgICJYLi4uLlggICAgICAg ICAgICAgICAgICAgICAgICAgICIsCisgICAgIlguLi4uLlggICAgICAgICAgICAgICAgICAg ICAgICAgIiwKKyAgICAiWC4uLi4uLlggICAgICAgICAgICAgICAgICAgICAgICAiLAorICAg ICJYLi4uLi4uLlggICAgICAgICAgICAgICAgICAgICAgICIsCisgICAgIlguLi4uLi4uLlgg ICAgICAgICAgICAgICAgICAgICAgIiwKKyAgICAiWC4uLi4uWFhYWFggICAgICAgICAgICAg ICAgICAgICAiLAorICAgICJYLi5YLi5YICAgICAgICAgICAgICAgICAgICAgICAgICIsCisg ICAgIlguWCBYLi5YICAgICAgICAgICAgICAgICAgICAgICAgIiwKKyAgICAiWFggIFguLlgg ICAgICAgICAgICAgICAgICAgICAgICAiLAorICAgICJYICAgIFguLlggICAgICAgICAgICAg ICAgICAgICAgICIsCisgICAgIiAgICAgWC4uWCAgICAgICAgICAgICAgICAgICAgICAgIiwK KyAgICAiICAgICAgWC4uWCAgICAgICAgICAgICAgICAgICAgICAiLAorICAgICIgICAgICBY Li5YICAgICAgICAgICAgICAgICAgICAgICIsCisgICAgIiAgICAgICBYWCAgICAgICAgICAg ICAgICAgICAgICAgIiwKKyAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi LAorICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsCisgICAgIiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwKKyAgICAiICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiLAorICAgICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIsCisgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwKKyAgICAiICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLAorICAgICIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIsCisgICAgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIiwKKyAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLAorICAgICIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsCisgICAgIiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIiwKKyAgICAiICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiLAorfTsKLS0gCjEuNi42LjEKCg== --------------080703020502020105070906--