emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Emacs 22.1 Windows ClearType Support


From: Richard Stallman
Subject: Re: Emacs 22.1 Windows ClearType Support
Date: Thu, 22 Nov 2007 23:35:45 -0500

If people decide to install this, we should ask Andrew to sign
a disclaimer for it.

Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C82D1F.7AB72653"
Date: Thu, 22 Nov 2007 10:51:24 -0500
Message-ID: <address@hidden>
Thread-Topic: Emacs 22.1 Windows ClearType Support
Thread-Index: AcgtH4jh8q9WrvztS6uHkPEgf4wmYg==
From: "Ng, Andrew" <address@hidden>
To: <address@hidden>
Subject: Emacs 22.1 Windows ClearType Support

This is a multi-part message in MIME format.

------_=_NextPart_001_01C82D1F.7AB72653
Content-Type: text/plain;
        charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

I have been having a go at fixing up the issues related to ClearType in
Emacs 22.1.

I think I have pretty much sorted out the major issues and everything
appears to work fine now. I've tried as much as possible not to alter
the non-ClearType code path.

I've also added an environment variable "EMACS_CLEARTYPE". If present
this will disable ClearType if its value is 0 and will enable ClearType
if its value is non-zero. Otherwise, ClearType is enabled according to
the system settings.

I've attached a patch file for my changes.

Thank you.

Regards,

Andrew Ng

------_=_NextPart_001_01C82D1F.7AB72653
Content-Type: application/octet-stream;
        name="patchfile"
Content-Transfer-Encoding: base64
Content-Description: patchfile
Content-Disposition: attachment;
        filename="patchfile"

ZGlmZiAtdSBlbWFjcy0yMi4xLW9yaWcvc3JjL2Rpc3BuZXcuYyBlbWFjcy0yMi4xL3NyYy9kaXNw
bmV3LmMKLS0tIGVtYWNzLTIyLjEtb3JpZy9zcmMvZGlzcG5ldy5jCTIwMDctMDQtMTYgMTc6MjE6
MTguMDAwMDAwMDAwICswMTAwCisrKyBlbWFjcy0yMi4xL3NyYy9kaXNwbmV3LmMJMjAwNy0xMS0y
MiAxNDoyNjo0NC4xODc1MDAwMDAgKzAwMDAKQEAgLTQ1MjMsOCArNDUyMyw4IEBACiAJICAgICAg
aWYgKG92ZXJsYXBwaW5nX2dseXBoc19wCiAJCSAgJiYgaSA+IDAKIAkJICAmJiBpIDwgY3VycmVu
dF9yb3ctPnVzZWRbVEVYVF9BUkVBXQotCQkgICYmIChjdXJyZW50X3Jvdy0+dXNlZFtURVhUX0FS
RUFdCi0JCSAgICAgICE9IGRlc2lyZWRfcm93LT51c2VkW1RFWFRfQVJFQV0pKQorCQkgIC8qJiYg
KGN1cnJlbnRfcm93LT51c2VkW1RFWFRfQVJFQV0KKwkJICAgICAgIT0gZGVzaXJlZF9yb3ctPnVz
ZWRbVEVYVF9BUkVBXSkqLykKIAkJewogCQkgIGludCBsZWZ0LCByaWdodDsKIApkaWZmIC11IGVt
YWNzLTIyLjEtb3JpZy9zcmMvdzMyZm5zLmMgZW1hY3MtMjIuMS9zcmMvdzMyZm5zLmMKLS0tIGVt
YWNzLTIyLjEtb3JpZy9zcmMvdzMyZm5zLmMJMjAwNy0wMy0yNCAxNTo0OTo0OC4wMDAwMDAwMDAg
KzAwMDAKKysrIGVtYWNzLTIyLjEvc3JjL3czMmZucy5jCTIwMDctMTEtMjAgMTA6MDM6MTMuMTcx
ODc1MDAwICswMDAwCkBAIC00NTQ2LDYgKzQ1NDYsOCBAQAogICAgIGludCBjb2RlcGFnZTsKICAg
ICBpbnQgaTsKIAorICAgIGNvbnN0IGNoYXIgKmVudjsKKwogICAgIGlmICghZm9udG5hbWUgfHwg
IXhfdG9fdzMyX2ZvbnQgKGZvbnRuYW1lLCAmbGYpKQogICAgICAgcmV0dXJuIChOVUxMKTsKIApA
QCAtNDU1Nyw3ICs0NTU5LDEyIEBACiAgICAgICAgICAgIGVuZGVkIHVwIHdpdGguICovCiAgICAg
ICByZXR1cm4gTlVMTDsKIAotICAgIGxmLmxmUXVhbGl0eSA9IERFRkFVTFRfUVVBTElUWTsKKyNp
Zm5kZWYgQ0xFQVJUWVBFX1FVQUxJVFkKKyNkZWZpbmUgQ0xFQVJUWVBFX1FVQUxJVFkgNQorI2Vu
ZGlmCisKKyAgICBlbnYgPSBnZXRlbnYoIkVNQUNTX0NMRUFSVFlQRSIpOworICAgIGxmLmxmUXVh
bGl0eSA9IGVudiA/ICgoYXRvaShlbnYpICE9IDApID8gQ0xFQVJUWVBFX1FVQUxJVFkgOiBBTlRJ
QUxJQVNFRF9RVUFMSVRZKSA6IERFRkFVTFRfUVVBTElUWTsKIAogICAgIGZvbnQgPSAoWEZvbnRT
dHJ1Y3QgKikgeG1hbGxvYyAoc2l6ZW9mIChYRm9udFN0cnVjdCkpOwogICAgIGJ6ZXJvIChmb250
LCBzaXplb2YgKCpmb250KSk7CmRpZmYgLXUgZW1hY3MtMjIuMS1vcmlnL3NyYy93MzJ0ZXJtLmMg
ZW1hY3MtMjIuMS9zcmMvdzMydGVybS5jCi0tLSBlbWFjcy0yMi4xLW9yaWcvc3JjL3czMnRlcm0u
YwkyMDA3LTAyLTE5IDE0OjQ1OjM5LjAwMDAwMDAwMCArMDAwMAorKysgZW1hY3MtMjIuMS9zcmMv
dzMydGVybS5jCTIwMDctMTEtMjEgMTI6NTI6MDAuOTUzMTI1MDAwICswMDAwCkBAIC05MDMsNyAr
OTAzLDcgQEAKICNlbmRpZgogCSAgaWYgKGNsZWFydHlwZV9hY3RpdmUpCiAJICAgIHsKLQkgICAg
ICAvKiBDbGVhcnR5cGUgYW50aWFsaWFzaW5nIGNhdXNlcyBjaGFyYWN0ZXJzIHRvIG92ZXJoYW5n
CisJICAgICAgLyogQ2xlYXJ0eXBlIGFudGlhbGlhc2luZyBjYW4gY2F1c2UgY2hhcmFjdGVycyB0
byBvdmVyaGFuZwogCQkgYnkgYSBwaXhlbCBvbiBlYWNoIHNpZGUgY29tcGFyZWQgd2l0aCB3aGF0
IEdldENoYXJBQkNXaWR0aHMKIAkJIHJlcG9ydHMuICAqLwogCSAgICAgIGNoYXJfd2lkdGhzLmFi
Y0EgLT0gMTsKQEAgLTEwNDEsNyArMTA0MSw4IEBACiAgICAgICBpZiAoKChmb250LT50bS50bVBp
dGNoQW5kRmFtaWx5ICYgVE1QRl9GSVhFRF9QSVRDSCkgIT0gMCkKICAgICAgICAgICAvKiBTb21l
IGZvbnRzIChlZyBEQkNTIGZvbnRzKSBhcmUgbWFya2VkIGFzIGZpeGVkIHdpZHRoIGV2ZW4KICAg
ICAgICAgICAgICB0aG91Z2ggdGhleSBjb250YWluIGNoYXJhY3RlcnMgb2YgZGlmZmVyZW50IHdp
ZHRocy4gKi8KLSAgICAgICAgICB8fCAoZm9udC0+dG0udG1NYXhDaGFyV2lkdGggIT0gZm9udC0+
dG0udG1BdmVDaGFyV2lkdGgpKQorICAgICAgICAgIHx8IChmb250LT50bS50bU1heENoYXJXaWR0
aCAhPSBmb250LT50bS50bUF2ZUNoYXJXaWR0aCkKKyAgICAgICAgICB8fCBjbGVhcnR5cGVfYWN0
aXZlKQogCXsKIAkgIC8qIEZvbnQgaXMgbm90IGZpeGVkIHBpdGNoLCBzbyBjYWNoZSBwZXJfY2hh
ciBpbmZvIGZvciB0aGUKICAgICAgICAgICAgICBBU0NJSSBjaGFyYWN0ZXJzLiAgSXQgd291bGQg
YmUgbXVjaCBtb3JlIHdvcmssIGFuZCBwcm9iYWJseQpAQCAtMTQzNyw5ICsxNDM4LDQyIEBACiB3
MzJfY29tcHV0ZV9nbHlwaF9zdHJpbmdfb3ZlcmhhbmdzIChzKQogICAgICBzdHJ1Y3QgZ2x5cGhf
c3RyaW5nICpzOwogewotICAvKiBUT0RPOiBXaW5kb3dzIGRvZXMgbm90IGFwcGVhciB0byBoYXZl
IGEgbWV0aG9kIGZvcgotICAgICBnZXR0aW5nIHRoaXMgaW5mbyB3aXRob3V0IGdldHRpbmcgdGhl
IEFCQyB3aWR0aHMgZm9yIGVhY2gKLSAgICAgaW5kaXZpZHVhbCBjaGFyYWN0ZXIgYW5kIHdvcmtp
bmcgaXQgb3V0IG1hbnVhbGx5LiAqLworICBpZiAocy0+Y21wID09IE5VTEwKKyAgICAgICYmIHMt
PmZpcnN0X2dseXBoLT50eXBlID09IENIQVJfR0xZUEgKKyAgICAgICYmIHMtPm5jaGFycyA+IDAp
CisgICAgeworICAgICAgWEZvbnRTdHJ1Y3QgKmZvbnQgPSBzLT5mb250OworICAgICAgY29uc3Qg
aW50ICAgIGZvbnRfdHlwZSA9IHMtPmZpcnN0X2dseXBoLT5mb250X3R5cGU7CisKKyAgICAgIHdj
aGFyX3QgICp3cyA9IHMtPmNoYXIyYjsKKyAgICAgIGNvbnN0IGludCBuYyA9IHMtPm5jaGFyczsK
KyAgICAgIGludCAgICAgICBpLCBwb3MsIG1uLCBteDsKKyAgICAgIGlmIChuYyA9PSAxKQorICAg
ICAgICB7CisgICAgICAgICAgWENoYXJTdHJ1Y3QgKnBjbSA9IHczMl9wZXJfY2hhcl9tZXRyaWMg
KGZvbnQsIHdzLCBmb250X3R5cGUpOworCisgICAgICAgICAgcy0+cmlnaHRfb3ZlcmhhbmcgPSBw
Y20tPnJiZWFyaW5nID4gcGNtLT53aWR0aCA/IHBjbS0+cmJlYXJpbmcgLSBwY20tPndpZHRoIDog
MDsKKyAgICAgICAgICBzLT5sZWZ0X292ZXJoYW5nICA9IHBjbS0+bGJlYXJpbmcgPCAwID8gLXBj
bS0+bGJlYXJpbmcgOiAwOworICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICBw
b3MgPSBtbiA9IG14ID0gMDsKKyAgICAgIGZvciAoaSA9IDA7IGkgPCBuYzsgKytpLCArK3dzKQor
ICAgICAgICB7CisgICAgICAgICAgWENoYXJTdHJ1Y3QgKnBjbSA9IHczMl9wZXJfY2hhcl9tZXRy
aWMgKGZvbnQsIHdzLCBmb250X3R5cGUpOworCisgICAgICAgICAgY29uc3QgaW50IHJwID0gcG9z
ICsgcGNtLT5yYmVhcmluZzsKKyAgICAgICAgICBjb25zdCBpbnQgbHAgPSBwb3MgKyBwY20tPmxi
ZWFyaW5nOworCisgICAgICAgICAgaWYgKHJwID4gbXgpIG14ID0gcnA7CisgICAgICAgICAgaWYg
KGxwIDwgbW4pIG1uID0gbHA7CisKKyAgICAgICAgICBwb3MgKz0gcGNtLT53aWR0aDsKKyAgICAg
ICAgfQorCisgICAgICBzLT5yaWdodF9vdmVyaGFuZyA9IG14ID4gcG9zID8gbXggLSBwb3MgOiAw
OworICAgICAgcy0+bGVmdF9vdmVyaGFuZyAgPSBtbiA8IDAgPyAtbW4gOiAwOworICAgIH0KIH0K
IAogCkBAIC0xNTM2LDcgKzE1NzAsNyBAQAogeF9kcmF3X2dseXBoX3N0cmluZ19mb3JlZ3JvdW5k
IChzKQogICAgICBzdHJ1Y3QgZ2x5cGhfc3RyaW5nICpzOwogewotICBpbnQgaSwgeDsKKyAgaW50
IGksIHgsIGN0X2NsZWFyID0gMDsKICAgSEZPTlQgb2xkX2ZvbnQ7CiAKICAgLyogSWYgZmlyc3Qg
Z2x5cGggb2YgUyBoYXMgYSBsZWZ0IGJveCBsaW5lLCBzdGFydCBkcmF3aW5nIHRoZSB0ZXh0CkBA
IC0xNTUwLDcgKzE1ODQsMTUgQEAKICAgaWYgKHMtPmZvcl9vdmVybGFwcyB8fCAocy0+YmFja2dy
b3VuZF9maWxsZWRfcCAmJiBzLT5obCAhPSBEUkFXX0NVUlNPUikpCiAgICAgU2V0QmtNb2RlIChz
LT5oZGMsIFRSQU5TUEFSRU5UKTsKICAgZWxzZQotICAgIFNldEJrTW9kZSAocy0+aGRjLCBPUEFR
VUUpOworICB7CisgICAgaWYgKGNsZWFydHlwZV9hY3RpdmUpCisgICAgICB7CisgICAgICAgIGN0
X2NsZWFyID0gMTsKKyAgICAgICAgU2V0QmtNb2RlIChzLT5oZGMsIFRSQU5TUEFSRU5UKTsKKyAg
ICAgIH0KKyAgICBlbHNlCisgICAgICBTZXRCa01vZGUgKHMtPmhkYywgT1BBUVVFKTsKKyAgfQog
CiAgIFNldFRleHRDb2xvciAocy0+aGRjLCBzLT5nYy0+Zm9yZWdyb3VuZCk7CiAgIFNldEJrQ29s
b3IgKHMtPmhkYywgcy0+Z2MtPmJhY2tncm91bmQpOwpAQCAtMTU4Niw2ICsxNjI4LDIxIEBACiAg
ICAgICAgICAgY2hhcjFiW2ldID0gWENIQVIyQl9CWVRFMiAoJnMtPmNoYXIyYltpXSk7CiAKICAg
ICAgIC8qIERyYXcgdGV4dCB3aXRoIFRleHRPdXQgYW5kIGZyaWVuZHMuICovCisgICAgICBpZiAo
Y3RfY2xlYXIpCisgICAgICAgIHsKKyAgICAgICAgICBIQlJVU0ggaGI7CisgICAgICAgICAgUkVD
VCAgIHI7CisKKyAgICAgICAgICByLmxlZnQgPSB4OworICAgICAgICAgIHIudG9wICA9IHMtPnk7
CisgICAgICAgICAgci5yaWdodCAgPSB4ICsgcy0+YmFja2dyb3VuZF93aWR0aDsKKyAgICAgICAg
ICByLmJvdHRvbSA9IHMtPnkgKyBzLT5oZWlnaHQ7CisKKyAgICAgICAgICBoYiA9IENyZWF0ZVNv
bGlkQnJ1c2ggKHMtPmdjLT5iYWNrZ3JvdW5kKTsKKyAgICAgICAgICBGaWxsUmVjdCAocy0+aGRj
LCAmciwgaGIpOworICAgICAgICAgIERlbGV0ZU9iamVjdCAoaGIpOworICAgICAgICB9CisKICAg
ICAgIHczMl90ZXh0X291dCAocywgeCwgcy0+eWJhc2UgLSBib2ZmLCBzLT5jaGFyMmIsIHMtPm5j
aGFycyk7CiAKICAgICAgIGlmIChzLT5mYWNlLT5vdmVyc3RyaWtlKQpAQCAtNjMzNiw3ICs2Mzkz
LDcgQEAKICAgdzMyX2Rlc3Ryb3lfZnJpbmdlX2JpdG1hcCwKICAgdzMyX3Blcl9jaGFyX21ldHJp
YywKICAgdzMyX2VuY29kZV9jaGFyLAotICBOVUxMLCAvKiB3MzJfY29tcHV0ZV9nbHlwaF9zdHJp
bmdfb3ZlcmhhbmdzICovCisgIHczMl9jb21wdXRlX2dseXBoX3N0cmluZ19vdmVyaGFuZ3MsCiAg
IHhfZHJhd19nbHlwaF9zdHJpbmcsCiAgIHczMl9kZWZpbmVfZnJhbWVfY3Vyc29yLAogICB3MzJf
Y2xlYXJfZnJhbWVfYXJlYSwKQEAgLTY0MzQsNiArNjQ5MSw4IEBACiAgICAgVUlOVCBzbW9vdGhp
bmdfdHlwZTsKICAgICBCT09MIHNtb290aGluZ19lbmFibGVkOwogCisgICAgY29uc3QgY2hhciAq
ZW52OworCiAgICAgLyogSWYgdXNpbmcgcHJvcG9ydGlvbmFsIHNjcm9sbCBiYXJzLCBlbnN1cmUg
aGFuZGxlIGlzIGF0IGxlYXN0IDUgcGl4ZWxzOwogICAgICAgIG90aGVyd2lzZSB1c2UgdGhlIGZp
eGVkIGhlaWdodC4gICovCiAgICAgdmVydGljYWxfc2Nyb2xsX2Jhcl9taW5faGFuZGxlID0gNTsK
QEAgLTY0NTksMTEgKzY1MTgsMTMgQEAKICAgICAgICB0aGUgY2hhciBtZXRyaWMgY2FsY3VsYXRp
b25zIHdoaWNoIGFkZHMgZXh0cmEgcGl4ZWxzIHRvCiAgICAgICAgY29tcGVuc2F0ZSBmb3IgdGhl
ICJzdWItcGl4ZWxzIiB0aGF0IGFyZSBub3QgY291bnRlZCBieSB0aGUKICAgICAgICBzeXN0ZW0g
QVBJcy4gKi8KKyAgICBlbnYgPSBnZXRlbnYoIkVNQUNTX0NMRUFSVFlQRSIpOwogICAgIGNsZWFy
dHlwZV9hY3RpdmUgPQotICAgICAgU3lzdGVtUGFyYW1ldGVyc0luZm8gKFNQSV9HRVRGT05UU01P
T1RISU5HLCAwLCAmc21vb3RoaW5nX2VuYWJsZWQsIDApCi0gICAgICAmJiBzbW9vdGhpbmdfZW5h
YmxlZAotICAgICAgJiYgU3lzdGVtUGFyYW1ldGVyc0luZm8gKFNQSV9HRVRGT05UU01PT1RISU5H
VFlQRSwgMCwgJnNtb290aGluZ190eXBlLCAwKQotICAgICAgJiYgc21vb3RoaW5nX3R5cGUgPT0g
RkVfRk9OVFNNT09USElOR0NMRUFSVFlQRTsKKyAgICAgIGVudiA/IChhdG9pKGVudikgIT0gMCkg
OgorICAgICAgICAoU3lzdGVtUGFyYW1ldGVyc0luZm8gKFNQSV9HRVRGT05UU01PT1RISU5HLCAw
LCAmc21vb3RoaW5nX2VuYWJsZWQsIDApCisgICAgICAgICAmJiBzbW9vdGhpbmdfZW5hYmxlZAor
ICAgICAgICAgJiYgU3lzdGVtUGFyYW1ldGVyc0luZm8gKFNQSV9HRVRGT05UU01PT1RISU5HVFlQ
RSwgMCwgJnNtb290aGluZ190eXBlLCAwKQorICAgICAgICAgJiYgc21vb3RoaW5nX3R5cGUgPT0g
RkVfRk9OVFNNT09USElOR0NMRUFSVFlQRSk7CiAgIH0KIH0KIAo=

------_=_NextPart_001_01C82D1F.7AB72653--







reply via email to

[Prev in Thread] Current Thread [Next in Thread]