From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Pieter van Prooijen Newsgroups: gmane.emacs.bugs Subject: bug#54564: 29.0.50; [PATCH] Use gsettings font rendering entries for pgtk builds Date: Fri, 13 May 2022 13:38:16 +0200 Message-ID: References: <165c1dab82dbf3233ed5f9f481a008eb724aff31.camel@teloden.nl> <87o81t5x9o.fsf@yahoo.com> <83fsn5b6cj.fsf@gnu.org> <8735j55js6.fsf@yahoo.com> <83czi9b5gh.fsf@gnu.org> <87v8w143h6.fsf@yahoo.com> <87o81s2osr.fsf@yahoo.com> <88d833f72df4f4cbb5769f1a75057d3f957a812c.camel@teloden.nl> <87bkxnx1co.fsf@yahoo.com> <211c08916190ef05cc1677956a77fca0c6122eda.camel@teloden.nl> <87k0c9imvp.fsf@yahoo.com> <66a9a7d83ca545dd23c890d4aa97717f1796579f.camel@teloden.nl> <8735ioxy5e.fsf@yahoo.com> <04ae2baf0a2a974bb411820c4d294b82d86ddc92.camel@teloden.nl> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-Za+PJlPruPa6JdchbnKe" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22355"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.44.0-1ubuntu1 Cc: 54564@debbugs.gnu.org To: Po Lu Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Fri May 13 13:39:37 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1npTdv-0005Zd-Lr for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 13 May 2022 13:39:37 +0200 Original-Received: from localhost ([::1]:55810 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1npTdu-0007hr-8R for geb-bug-gnu-emacs@m.gmane-mx.org; Fri, 13 May 2022 07:39:34 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46194) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1npTdO-0007hc-UV for bug-gnu-emacs@gnu.org; Fri, 13 May 2022 07:39:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:49136) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1npTdO-0007Tl-LP for bug-gnu-emacs@gnu.org; Fri, 13 May 2022 07:39:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1npTdO-00053j-Fs for bug-gnu-emacs@gnu.org; Fri, 13 May 2022 07:39:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Pieter van Prooijen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 13 May 2022 11:39:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 54564 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 54564-submit@debbugs.gnu.org id=B54564.165244191219391 (code B ref 54564); Fri, 13 May 2022 11:39:02 +0000 Original-Received: (at 54564) by debbugs.gnu.org; 13 May 2022 11:38:32 +0000 Original-Received: from localhost ([127.0.0.1]:43033 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1npTcp-00052T-2K for submit@debbugs.gnu.org; Fri, 13 May 2022 07:38:31 -0400 Original-Received: from out2-smtp.messagingengine.com ([66.111.4.26]:52187) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1npTcn-00052H-Md for 54564@debbugs.gnu.org; Fri, 13 May 2022 07:38:26 -0400 Original-Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 86E375C0174; Fri, 13 May 2022 07:38:19 -0400 (EDT) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Fri, 13 May 2022 07:38:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=teloden.nl; h=cc :cc:content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm3; t=1652441899; x=1652528299; bh=+YfUBkv5de 6RftpjcsKj7McBlZ9+yaTnUvTBnWZAwSQ=; b=tcObS5JCQOnw1Jol9iG8WPY6q7 iLa1/cxMUBiRUhU9MStCxL5PDSDOml9Qts6zVBnCwlGol9HElhcum/LgEO7JhbCz mNzGU4abblOyFag0m2YmxtiCa3SvvrwhGVyDHnC2JTwfuRRW6W3jVflpzJL3M0BF BjAUEN7nqMM6a2j6QCWuWHDEuSUo63BuuKAq2fC3VF0V9fLe+Yb3UYrsb9vwsG6n GL3LMnf3gfg+CGAmxyA773G/kspRHsryhNZSObOx9Y5AlRf/UMSfM81qJpt0wHGb dJLb0REdm5DOsbJ5TC7KAK9k9wb4oqS1al+OVs16HtX2FpXPNgJkk3WB+Qgg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1652441899; x= 1652528299; bh=+YfUBkv5de6RftpjcsKj7McBlZ9+yaTnUvTBnWZAwSQ=; b=I oFxs+nzeACnxUPfsl93BdHVxdHXBOVW7dqHSCKgQBsvsK3tshlxcThPboDSfBXU6 518SiKNEL8eRtkaZzV2oMFQiW5qguTaT7mGLI7wqIuqe4vJ8UhE+F4sovbjww+w1 ko6xkaYNT+Ye4hAitiRcBSdIRmsB42hFMh/Noo+aGsw262kq69uSu65h9H0+apzp +5d1EYh6TtYRohAv5oi18t664KxgHVxNm/Ca7moCubGN13032Oc2WUXID/ssOT0s +dp1IkcwJmjMlrLlfCZwjW7fEN7EZCDuIMYAXGseAagqXjEX6cW+I1JRXGekTuY4 DfIL6gakyzKF+z8TDXPhA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrgeelgdegudcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepkffuhffvveffjghftggfggesmhdtre ertderjeenucfhrhhomheprfhivghtvghruchvrghnucfrrhhoohhijhgvnhcuoehpihgv thgvrhdrvhgrnhdrphhrohhoihhjvghnsehtvghlohguvghnrdhnlheqnecuggftrfgrth htvghrnhepudelvdffudegvdehueeftdfgfeejffdvhfehvdegffdtudevgfetvdduleek ffegnecuffhomhgrihhnpegtohhlrdhrvggupdgtohhlrdhgrhgvvghnpdgtohhlrdgslh huvgdpghhnuhdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgr ihhlfhhrohhmpehpihgvthgvrhdrvhgrnhdrphhrohhoihhjvghnsehtvghlohguvghnrd hnlh X-ME-Proxy: Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 13 May 2022 07:38:17 -0400 (EDT) In-Reply-To: <04ae2baf0a2a974bb411820c4d294b82d86ddc92.camel@teloden.nl> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:232120 Archived-At: --=-Za+PJlPruPa6JdchbnKe Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello All, The copyright assignment paperwork came through, is it possible to incorporate the gsetting font rendering changes? I've attached a patch against the current master, let me know if I need to change anything. Kind Regards, Pieter On Fri, 2022-04-08 at 20:44 +0200, Pieter van Prooijen wrote: > Hi, >=20 > Yes, your patch fixes the problem as well, and I don't see any > other=C2=A0side effects at a first glance. I've changed my patch to > incorporate it and revert the changes to ftcrfont_draw.=20 >=20 > Thanks, >=20 > Pieter >=20 >=20 > On Fri, 2022-04-08 at 07:38 +0800, Po Lu wrote: > > Pieter van Prooijen writes: > >=20 > > > Hi All,=C2=A0 > > >=20 > > > It took a fair bit of digging, but sub-pixel anti-aliasing on > > > pgtk > > > now > > > seems to work correctly. > > >=20 > > > The problem lies with the "source" operator set by pgtk when > > > drawing a > > > font, this will take a particular execution path in the cairo > > > glyph > > > compositor (using a mask image) which converts the colors created > > > by > > > freetype for the sub pixel effect to greys-cale. Using the > > > default > > > "over" operator takes a different path which preserves the > > > colors. > > > Note > > > that on small screens the difference between sub-pixel and grey- > > > scale > > > rendering is hard to see, it's more pronounced on larger > > > displays) > >=20 > > Ah thanks.=C2=A0 Does this fix the problem as well? > >=20 > > diff --git a/src/pgtkterm.c b/src/pgtkterm.c > > index b2816aa04a..5fbc56ae81 100644 > > --- a/src/pgtkterm.c > > +++ b/src/pgtkterm.c > > @@ -7037,8 +7037,11 @@ pgtk_set_cr_source_with_color (struct frame > > *f, unsigned long color, > > =C2=A0=C2=A0 pgtk_query_color (f, &col); > > =C2=A0 > > =C2=A0=C2=A0 if (!respects_alpha_background) > > -=C2=A0=C2=A0=C2=A0 cairo_set_source_rgb (FRAME_CR_CONTEXT (f), col.red= / 65535.0, > > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= col.green / 65535.0, col.blue / 65535.0); > > +=C2=A0=C2=A0=C2=A0 { > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cairo_set_source_rgb (FRAME_CR_CONTEXT = (f), col.red / > > 65535.0, > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 col.green / 65535.0, col.blue / > > 65535.0); > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cairo_set_operator (FRAME_CR_CONTEXT (f= ), > > CAIRO_OPERATOR_OVER); > > +=C2=A0=C2=A0=C2=A0 } > > =C2=A0=C2=A0 else > > =C2=A0=C2=A0=C2=A0=C2=A0 { > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cairo_set_source_rgba (FRAME_CR_CO= NTEXT (f), col.red / > > 65535.0, > >=20 > > > I've also fixed the indent error, but couldn't find the non- > > > breaking > > > space in the patch, it's perhaps caused by the mail program. > >=20 > > It was previously filled with non-breaking spaces, but the patch > > you > > attached looks fine now. > >=20 > > > Regarding the copyright assignment, I've had no response after > > > sending > > > in the questionnaire at > > > https://git.savannah.gnu.org/cgit/gnulib.git/plain/doc/Copyright/ > > > re > > > quest-assign.future > > > to assign@gnu.org > >=20 > > It takes a while; if you don't get a response in 2 weeks, you > > should > > contact Eli or Lars, and they will ask the folks at the FSF to > > expedite > > things. > >=20 > > > Do you get sent a paper form of some kind which has to be filled > > > in? > > > (I'm not at my home address atm so I will have missed that) > >=20 > > You get sent a document you have to print and fill in, I think, but > > that > > depends on the country you're in. > >=20 > > Thanks. >=20 --=-Za+PJlPruPa6JdchbnKe Content-Disposition: attachment; filename*0=0001-Use-gsettings-font-rendering-entries-for-pgtk-builds.pat; filename*1=ch Content-Type: text/x-patch; name="0001-Use-gsettings-font-rendering-entries-for-pgtk-builds.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA4NGQ0NDAxYTlhOWU2Mjg4MTVmYTMwMTQ3ZWUwOGQ0NTk3YWY1M2Q2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaWV0ZXIgdmFuIFByb29pamVuIDxwaWV0ZXIudmFuLnByb29p amVuQHRlbG9kZW4ubmw+CkRhdGU6IFN1biwgOCBNYXkgMjAyMiAxNjoyNzozOCArMDIwMApTdWJq ZWN0OiBbUEFUQ0hdIFVzZSBnc2V0dGluZ3MgZm9udCByZW5kZXJpbmcgZW50cmllcyBmb3IgcGd0 ayBidWlsZHMKCklmIHByZXNlbnQsIGFwcGx5IHRoZSBnc2V0dGluZ3MgZm9udCBoaW50aW5nIGFu ZCBhbnRpYWxpYXNpbmcKZW50cmllcyB3aGVuIGNyZWF0aW5nIGEgZm9udCBpbiBjYWlyby4gIERv IHRoaXMgYXQKaW5pdGlhbGl6YXRpb24gYW5kIHdoZW4gdGhlIGVudHJpZXMgY2hhbmdlLCByZS1y ZW5kZXJpbmcgdGhlCmZyYW1lcy4KCiogc3JjL2Z0Y3Jmb250LmMgKGZ0Y3Jmb250X29wZW4pOiBV c2UgdGhlIGZvbnRfb3B0aW9ucyBkZXJpdmVkCmZyb20gZ3NldHRpbmdzIHdoZW4gb3BlbmluZyBh IGZvbnQuCihmdGNyZm9udF9jYWNoZWRfZm9udF9vayk6IFJlcG9ydCBhIGNhY2hlZCBmb250IGFz IGludmFsaWQgaWYKaXRzIGZvbnQgb3B0aW9ucyBkaWZmZXIgZnJvbSB0aGUgY3VycmVudCBvcHRp b25zIGluc2lkZQpnc2V0dGluZ3MuCiogc3JjL3hzZXR0aW5ncy5jIChhcHBseV9nc2V0dGluZ3Nf Zm9udF9oaW50aW5nKQooYXBwbHlfZ3NldHRpbmdzX2ZvbnRfYWxpYXMsIGFwcGx5X2dzZXR0aW5n c19mb250X3JnYmFfb3JkZXIpOgpDb252ZXJ0IHRoZSBzZXR0aW5ncyBmcm9tIEdTZXR0aW5ncyB0 byB0aGUgY2Fpcm9fZm9udF9vcHRpb25zX3QKb2JqZWN0LgooaW5pdF9nc2V0dGluZ3MsIHNvbWV0 aGluZ19jaGFuZ2VkX2dzZXR0aW5nc0NCKTogSW52b2tlIHRoZQphcHBseSBmdW5jdGlvbnMgaWYg dGhlIHJlbGV2YW50IHNldHRpbmdzIGNoYW5nZWQuCihzdG9yZV9mb250X29wdGlvbnNfY2hhbmdl ZCk6IFN0b3JlIGFuIGV2ZW50IHRvIHJlLXJlbmRlciB0aGUKZm9udHMuCih4c2V0dGluZ19nZXRf Zm9udF9vcHRpb25zKQoqIHNyYy94c2V0dGluZ3MuaCAoeHNldHRpbmdzX2dldF9mb250X29wdGlv bnMpOiBOZXcgZnVuY3Rpb24uCi0tLQogc3JjL2Z0Y3Jmb250LmMgIHwgIDMzICsrKysrKysrKysr CiBzcmMveHNldHRpbmdzLmMgfCAxNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiBzcmMveHNldHRpbmdzLmggfCAgIDUgKysKIDMgZmlsZXMgY2hhbmdl ZCwgMTg1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9zcmMvZnRjcmZvbnQuYyBiL3NyYy9m dGNyZm9udC5jCmluZGV4IDk4YTI4YWY1ZjIuLjZiYjQxMTEwZDUgMTAwNjQ0Ci0tLSBhL3NyYy9m dGNyZm9udC5jCisrKyBiL3NyYy9mdGNyZm9udC5jCkBAIC0zNyw2ICszNyw5IEBACiAjaW5jbHVk ZSAiZm9udC5oIgogI2luY2x1ZGUgImZ0Zm9udC5oIgogI2luY2x1ZGUgInBkdW1wZXIuaCIKKyNp ZmRlZiBIQVZFX1BHVEsKKyNpbmNsdWRlICJ4c2V0dGluZ3MuaCIKKyNlbmRpZgogCiAjaWZkZWYg VVNFX0JFX0NBSVJPCiAjZGVmaW5lIFJFRF9GUk9NX1VMT05HKGNvbG9yKQkoKChjb2xvcikgPj4g MTYpICYgMHhmZikKQEAgLTE2OCw3ICsxNzEsMTIgQEAgZnRjcmZvbnRfb3BlbiAoc3RydWN0IGZy YW1lICpmLCBMaXNwX09iamVjdCBlbnRpdHksIGludCBwaXhlbF9zaXplKQogICBjYWlyb19tYXRy aXhfdCBmb250X21hdHJpeCwgY3RtOwogICBjYWlyb19tYXRyaXhfaW5pdF9zY2FsZSAoJmZvbnRf bWF0cml4LCBwaXhlbF9zaXplLCBwaXhlbF9zaXplKTsKICAgY2Fpcm9fbWF0cml4X2luaXRfaWRl bnRpdHkgKCZjdG0pOworCisjaWZkZWYgSEFWRV9QR1RLCisgIGNhaXJvX2ZvbnRfb3B0aW9uc190 ICpvcHRpb25zID0geHNldHRpbmdzX2dldF9mb250X29wdGlvbnMgKCk7CisjZWxzZQogICBjYWly b19mb250X29wdGlvbnNfdCAqb3B0aW9ucyA9IGNhaXJvX2ZvbnRfb3B0aW9uc19jcmVhdGUgKCk7 CisjZW5kaWYKICNpZmRlZiBVU0VfQkVfQ0FJUk8KICAgaWYgKGJlX3VzZV9zdWJwaXhlbF9hbnRp YWxpYXNpbmcgKCkpCiAgICAgY2Fpcm9fZm9udF9vcHRpb25zX3NldF9hbnRpYWxpYXMgKG9wdGlv bnMsIENBSVJPX0FOVElBTElBU19TVUJQSVhFTCk7CkBAIC02MjQsNiArNjMyLDI4IEBAIGZ0Y3Jm b250X2RyYXcgKHN0cnVjdCBnbHlwaF9zdHJpbmcgKnMsCiAgIHJldHVybiBsZW47CiB9CiAKKyNp ZmRlZiBIQVZFX1BHVEsKKy8qIERldGVybWluZSBpZiBGT05UX09CSkVDVCBpcyBhIHZhbGlkIGNh Y2hlZCBmb250IGZvciBFTlRJVFkgYnkKKyAgIGNvbXBhcmluZyB0aGUgb3B0aW9ucyB1c2VkIHRv IG9wZW4gaXQgd2l0aCB0aGUgdXNlcidzIGN1cnJlbnQKKyAgIHByZWZlcmVuY2VzIHNwZWNpZmll ZCB2aWEgR1NldHRpbmdzLiAgKi8KK3N0YXRpYyBib29sCitmdGNyZm9udF9jYWNoZWRfZm9udF9v ayAoc3RydWN0IGZyYW1lICpmLCBMaXNwX09iamVjdCBmb250X29iamVjdCwKKwkJCSBMaXNwX09i amVjdCBlbnRpdHkpCit7CisgIHN0cnVjdCBmb250X2luZm8gKmluZm8gPSAoc3RydWN0IGZvbnRf aW5mbyAqKSBYRk9OVF9PQkpFQ1QgKGZvbnRfb2JqZWN0KTsKKworICBjYWlyb19mb250X29wdGlv bnNfdCAqb3B0aW9ucyA9IGNhaXJvX2ZvbnRfb3B0aW9uc19jcmVhdGUgKCk7CisgIGNhaXJvX3Nj YWxlZF9mb250X2dldF9mb250X29wdGlvbnMgKGluZm8tPmNyX3NjYWxlZF9mb250LCBvcHRpb25z KTsKKyAgY2Fpcm9fZm9udF9vcHRpb25zX3QgKmdzZXR0aW5nc19vcHRpb25zID0geHNldHRpbmdz X2dldF9mb250X29wdGlvbnMgKCk7CisKKyAgYm9vbCBlcXVhbCA9IGNhaXJvX2ZvbnRfb3B0aW9u c19lcXVhbCAob3B0aW9ucywgZ3NldHRpbmdzX29wdGlvbnMpOworICBjYWlyb19mb250X29wdGlv bnNfZGVzdHJveSAob3B0aW9ucyk7CisgIGNhaXJvX2ZvbnRfb3B0aW9uc19kZXN0cm95IChnc2V0 dGluZ3Nfb3B0aW9ucyk7CisKKyAgcmV0dXJuIGVxdWFsOworfQorI2VuZGlmCisKICNpZmRlZiBI QVZFX0hBUkZCVVpaCiAKIHN0YXRpYyBMaXNwX09iamVjdApAQCAtNjk0LDYgKzcyNCw5IEBAIGZ0 Y3JoYmZvbnRfZW5kX2hiX2ZvbnQgKHN0cnVjdCBmb250ICpmb250LCBoYl9mb250X3QgKmhiX2Zv bnQpCiAjZW5kaWYKICAgLmZpbHRlcl9wcm9wZXJ0aWVzID0gZnRmb250X2ZpbHRlcl9wcm9wZXJ0 aWVzLAogICAuY29tYmluaW5nX2NhcGFiaWxpdHkgPSBmdGZvbnRfY29tYmluaW5nX2NhcGFiaWxp dHksCisjaWZkZWYgSEFWRV9QR1RLCisgIC5jYWNoZWRfZm9udF9vayA9IGZ0Y3Jmb250X2NhY2hl ZF9mb250X29rCisjZW5kaWYKICAgfTsKICNpZmRlZiBIQVZFX0hBUkZCVVpaCiBzdHJ1Y3QgZm9u dF9kcml2ZXIgZnRjcmhiZm9udF9kcml2ZXI7CmRpZmYgLS1naXQgYS9zcmMveHNldHRpbmdzLmMg Yi9zcmMveHNldHRpbmdzLmMKaW5kZXggNzFkMDJlNjE1Mi4uZTcxODg3ZTAzZCAxMDA2NDQKLS0t IGEvc3JjL3hzZXR0aW5ncy5jCisrKyBiL3NyYy94c2V0dGluZ3MuYwpAQCAtMjE1LDExICsyMTUs MTE2IEBAICNkZWZpbmUgR1NFVFRJTkdTX01PTk9fRk9OVCAgIm1vbm9zcGFjZS1mb250LW5hbWUi CiAjZGVmaW5lIEdTRVRUSU5HU19GT05UX05BTUUgICJmb250LW5hbWUiCiAjZW5kaWYKIAorI2lm ZGVmIEhBVkVfUEdUSworI2RlZmluZSBHU0VUVElOR1NfRk9OVF9BTlRJQUxJQVNJTkcgICJmb250 LWFudGlhbGlhc2luZyIKKyNkZWZpbmUgR1NFVFRJTkdTX0ZPTlRfUkdCQV9PUkRFUiAgICAiZm9u dC1yZ2JhLW9yZGVyIgorI2RlZmluZSBHU0VUVElOR1NfRk9OVF9ISU5USU5HICAgICAgICJmb250 LWhpbnRpbmciCisjZW5kaWYKIAogLyogVGhlIHNpbmdsZSBHU2V0dGluZ3MgaW5zdGFuY2UsIG9y IE5VTEwgaWYgbm90IGNvbm5lY3RlZCB0byBHU2V0dGluZ3MuICAqLwogCiBzdGF0aWMgR1NldHRp bmdzICpnc2V0dGluZ3NfY2xpZW50OwogCisjaWZkZWYgSEFWRV9QR1RLCisKKy8qIFRoZSBjYWly byBmb250X29wdGlvbnMgYXMgb2J0YWluZWQgdXNpbmcgZ3NldHRpbmdzLiAgKi8KK3N0YXRpYyBj YWlyb19mb250X29wdGlvbnNfdCAqZm9udF9vcHRpb25zOworCisvKiBTdG9yZSBhbiBldmVudCBm b3IgcmUtcmVuZGVyaW5nIG9mIHRoZSBmb250cy4gICovCitzdGF0aWMgdm9pZAorc3RvcmVfZm9u dF9vcHRpb25zX2NoYW5nZWQgKHZvaWQpCit7CisgIGlmIChkcHlpbmZvX3ZhbGlkIChmaXJzdF9k cHlpbmZvKSkKKyAgICBzdG9yZV9jb25maWdfY2hhbmdlZF9ldmVudCAoUWZvbnRfcmVuZGVyLAor CQkJCVhDQVIgKGZpcnN0X2RweWluZm8tPm5hbWVfbGlzdF9lbGVtZW50KSk7Cit9CisKKy8qIEFw cGx5IGNoYW5nZXMgaW4gdGhlIGhpbnRpbmcgc3lzdGVtIHNldHRpbmcuICAqLworc3RhdGljIHZv aWQKK2FwcGx5X2dzZXR0aW5nc19mb250X2hpbnRpbmcgKEdTZXR0aW5ncyAqc2V0dGluZ3MpCit7 CisgIEdWYXJpYW50ICp2YWwgPSBnX3NldHRpbmdzX2dldF92YWx1ZSAoc2V0dGluZ3MsIEdTRVRU SU5HU19GT05UX0hJTlRJTkcpOworICBpZiAodmFsKQorICAgIHsKKyAgICAgIGdfdmFyaWFudF9y ZWZfc2luayAodmFsKTsKKyAgICAgIGlmIChnX3ZhcmlhbnRfaXNfb2ZfdHlwZSAodmFsLCBHX1ZB UklBTlRfVFlQRV9TVFJJTkcpKQorCXsKKwkgIGNvbnN0IGNoYXIgKmhpbnRpbmcgPSBnX3Zhcmlh bnRfZ2V0X3N0cmluZyAodmFsLCBOVUxMKTsKKworCSAgaWYgKCFzdHJjbXAgKGhpbnRpbmcsICJm dWxsIikpCisJICAgIGNhaXJvX2ZvbnRfb3B0aW9uc19zZXRfaGludF9zdHlsZSAoZm9udF9vcHRp b25zLAorCQkJCQkgICAgICAgQ0FJUk9fSElOVF9TVFlMRV9GVUxMKTsKKwkgIGVsc2UgaWYgKCFz dHJjbXAgKGhpbnRpbmcsICJtZWRpdW0iKSkKKwkgICAgY2Fpcm9fZm9udF9vcHRpb25zX3NldF9o aW50X3N0eWxlIChmb250X29wdGlvbnMsCisJCQkJCSAgICAgICBDQUlST19ISU5UX1NUWUxFX01F RElVTSk7CisJICBlbHNlIGlmICghc3RyY21wIChoaW50aW5nLCAic2xpZ2h0IikpCisJICAgIGNh aXJvX2ZvbnRfb3B0aW9uc19zZXRfaGludF9zdHlsZSAoZm9udF9vcHRpb25zLAorCQkJCQkgICAg ICAgQ0FJUk9fSElOVF9TVFlMRV9TTElHSFQpOworCSAgZWxzZSBpZiAoIXN0cmNtcCAoaGludGlu ZywgIm5vbmUiKSkKKwkgICAgY2Fpcm9fZm9udF9vcHRpb25zX3NldF9oaW50X3N0eWxlIChmb250 X29wdGlvbnMsCisJCQkJCSAgICAgICBDQUlST19ISU5UX1NUWUxFX05PTkUpOworCX0KKyAgICAg IGdfdmFyaWFudF91bnJlZiAodmFsKTsKKyAgICB9Cit9CisKKy8qIEFwcGx5IGNoYW5nZXMgaW4g dGhlIGFudGlhbGlhc2luZyBzeXN0ZW0gc2V0dGluZy4gICovCitzdGF0aWMgdm9pZAorYXBwbHlf Z3NldHRpbmdzX2ZvbnRfYW50aWFsaWFzIChHU2V0dGluZ3MgKnNldHRpbmdzKQoreworICBHVmFy aWFudCAqdmFsID0gZ19zZXR0aW5nc19nZXRfdmFsdWUgKHNldHRpbmdzLCBHU0VUVElOR1NfRk9O VF9BTlRJQUxJQVNJTkcpOworICBpZiAodmFsKQorICAgIHsKKyAgICAgIGdfdmFyaWFudF9yZWZf c2luayAodmFsKTsKKyAgICAgIGlmIChnX3ZhcmlhbnRfaXNfb2ZfdHlwZSAodmFsLCBHX1ZBUklB TlRfVFlQRV9TVFJJTkcpKQorCXsKKwkgIGNvbnN0IGNoYXIgKmFudGlhbGlhcyA9IGdfdmFyaWFu dF9nZXRfc3RyaW5nICh2YWwsIE5VTEwpOworCisJICBpZiAoIXN0cmNtcCAoYW50aWFsaWFzLCAi bm9uZSIpKQorCSAgICBjYWlyb19mb250X29wdGlvbnNfc2V0X2FudGlhbGlhcyAoZm9udF9vcHRp b25zLAorCQkJCQkgICAgICBDQUlST19BTlRJQUxJQVNfTk9ORSk7CisJICBlbHNlIGlmICghc3Ry Y21wIChhbnRpYWxpYXMsICJncmF5c2NhbGUiKSkKKwkgICAgY2Fpcm9fZm9udF9vcHRpb25zX3Nl dF9hbnRpYWxpYXMgKGZvbnRfb3B0aW9ucywKKwkJCQkJICAgICAgQ0FJUk9fQU5USUFMSUFTX0dS QVkpOworCSAgZWxzZSBpZiAoIXN0cmNtcCAoYW50aWFsaWFzLCAicmdiYSIpKQorCSAgICBjYWly b19mb250X29wdGlvbnNfc2V0X2FudGlhbGlhcyAoZm9udF9vcHRpb25zLAorCQkJCQkgICAgICBD QUlST19BTlRJQUxJQVNfU1VCUElYRUwpOworCX0KKyAgICAgIGdfdmFyaWFudF91bnJlZiAodmFs KTsKKyAgICB9Cit9CisKKy8qIEFwcGx5IHRoZSBzZXR0aW5ncyBmb3IgdGhlIHJnYiBlbGVtZW50 IG9yZGVyaW5nLiAgKi8KK3N0YXRpYyB2b2lkCithcHBseV9nc2V0dGluZ3NfZm9udF9yZ2JhX29y ZGVyIChHU2V0dGluZ3MgKnNldHRpbmdzKQoreworICBHVmFyaWFudCAqdmFsID0gZ19zZXR0aW5n c19nZXRfdmFsdWUgKHNldHRpbmdzLAorCQkJCQlHU0VUVElOR1NfRk9OVF9SR0JBX09SREVSKTsK KyAgaWYgKHZhbCkKKyAgICB7CisgICAgICBnX3ZhcmlhbnRfcmVmX3NpbmsgKHZhbCk7CisgICAg ICBpZiAoZ192YXJpYW50X2lzX29mX3R5cGUgKHZhbCwgR19WQVJJQU5UX1RZUEVfU1RSSU5HKSkK Kwl7CisJICBjb25zdCBjaGFyICpyZ2JhX29yZGVyID0gZ192YXJpYW50X2dldF9zdHJpbmcgKHZh bCwgTlVMTCk7CisKKwkgIGlmICghc3RyY21wIChyZ2JhX29yZGVyLCAicmdiIikpCisJICAgIGNh aXJvX2ZvbnRfb3B0aW9uc19zZXRfc3VicGl4ZWxfb3JkZXIgKGZvbnRfb3B0aW9ucywKKwkJCQkJ CSAgIENBSVJPX1NVQlBJWEVMX09SREVSX1JHQik7CisJICBlbHNlIGlmICghc3RyY21wIChyZ2Jh X29yZGVyLCAiYmdyIikpCisJICAgIGNhaXJvX2ZvbnRfb3B0aW9uc19zZXRfc3VicGl4ZWxfb3Jk ZXIgKGZvbnRfb3B0aW9ucywKKwkJCQkJCSAgIENBSVJPX1NVQlBJWEVMX09SREVSX0JHUik7CisJ ICBlbHNlIGlmICghc3RyY21wIChyZ2JhX29yZGVyLCAidnJnYiIpKQorCSAgICBjYWlyb19mb250 X29wdGlvbnNfc2V0X3N1YnBpeGVsX29yZGVyIChmb250X29wdGlvbnMsCisJCQkJCQkgICBDQUlS T19TVUJQSVhFTF9PUkRFUl9WUkdCKTsKKwkgIGVsc2UgaWYgKCFzdHJjbXAgKHJnYmFfb3JkZXIs ICJ2YmdyIikpCisJICAgIGNhaXJvX2ZvbnRfb3B0aW9uc19zZXRfc3VicGl4ZWxfb3JkZXIgKGZv bnRfb3B0aW9ucywKKwkJCQkJCSAgIENBSVJPX1NVQlBJWEVMX09SREVSX1ZCR1IpOworCX0KKyAg ICAgIGdfdmFyaWFudF91bnJlZiAodmFsKTsKKyAgICB9Cit9CisjZW5kaWYgLyogSEFWRV9QR1RL ICovCisKIC8qIENhbGxiYWNrIGNhbGxlZCB3aGVuIHNvbWV0aGluZyBjaGFuZ2VkIGluIEdTZXR0 aW5ncy4gICovCiAKIHN0YXRpYyB2b2lkCkBAIC0yNzMsNiArMzc4LDIzIEBAIHNvbWV0aGluZ19j aGFuZ2VkX2dzZXR0aW5nc0NCIChHU2V0dGluZ3MgKnNldHRpbmdzLAogICAgICAgICB9CiAgICAg fQogI2VuZGlmIC8qIFVTRV9DQUlSTyB8fCBIQVZFX1hGVCAqLworI2lmZGVmIEhBVkVfUEdUSwor ICBlbHNlIGlmICghc3RyY21wIChrZXksIEdTRVRUSU5HU19GT05UX0FOVElBTElBU0lORykpCisg ICAgeworICAgICAgYXBwbHlfZ3NldHRpbmdzX2ZvbnRfYW50aWFsaWFzIChzZXR0aW5ncyk7Cisg ICAgICBzdG9yZV9mb250X29wdGlvbnNfY2hhbmdlZCAoKTsKKyAgICB9CisgIGVsc2UgaWYgKCFz dHJjbXAgKGtleSwgR1NFVFRJTkdTX0ZPTlRfSElOVElORykpCisgICAgeworICAgICAgYXBwbHlf Z3NldHRpbmdzX2ZvbnRfaGludGluZyAoc2V0dGluZ3MpOworICAgICAgc3RvcmVfZm9udF9vcHRp b25zX2NoYW5nZWQgKCk7CisgICAgfQorICBlbHNlIGlmICghc3RyY21wIChrZXksIEdTRVRUSU5H U19GT05UX1JHQkFfT1JERVIpKQorICAgIHsKKyAgICAgIGFwcGx5X2dzZXR0aW5nc19mb250X3Jn YmFfb3JkZXIgKHNldHRpbmdzKTsKKyAgICAgIHN0b3JlX2ZvbnRfb3B0aW9uc19jaGFuZ2VkICgp OworICAgIH0KKyNlbmRpZiAvKiBIQVZFX1BHVEsgKi8KIH0KIAogI2VuZGlmIC8qIEhBVkVfR1NF VFRJTkdTICovCkBAIC05MDAsNiArMTAyMiwxNiBAQCBpbml0X2dzZXR0aW5ncyAodm9pZCkKICAg ICAgICAgZHVwc3RyaW5nICgmY3VycmVudF9mb250LCBnX3ZhcmlhbnRfZ2V0X3N0cmluZyAodmFs LCBOVUxMKSk7CiAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKHZhbCk7CiAgICAgfQorCisgIC8qIE9u bHkgdXNlIHRoZSBnc2V0dGluZ3MgZm9udCBlbnRyaWVzIGZvciB0aGUgQ2Fpcm8gYmFja2VuZAor ICAgICBydW5uaW5nIG9uIFBHVEsuICAqLworI2lmZGVmIEhBVkVfUEdUSworICBmb250X29wdGlv bnMgPSBjYWlyb19mb250X29wdGlvbnNfY3JlYXRlICgpOworICBhcHBseV9nc2V0dGluZ3NfZm9u dF9hbnRpYWxpYXMgKGdzZXR0aW5nc19jbGllbnQpOworICBhcHBseV9nc2V0dGluZ3NfZm9udF9o aW50aW5nIChnc2V0dGluZ3NfY2xpZW50KTsKKyAgYXBwbHlfZ3NldHRpbmdzX2ZvbnRfcmdiYV9v cmRlciAoZ3NldHRpbmdzX2NsaWVudCk7CisjZW5kaWYgLyogSEFWRV9QR1RLICovCisKICNlbmRp ZiAvKiBVU0VfQ0FJUk8gfHwgSEFWRV9YRlQgKi8KIAogI2VuZGlmIC8qIEhBVkVfR1NFVFRJTkdT ICovCkBAIC0xMDIxLDYgKzExNTMsMTcgQEAgeHNldHRpbmdzX2dldF9zeXN0ZW1fbm9ybWFsX2Zv bnQgKHZvaWQpCiB9CiAjZW5kaWYKIAorI2lmZGVmIEhBVkVfUEdUSworLyogUmV0dXJuIHRoZSBj YWlybyBmb250IG9wdGlvbnMsIHVwZGF0ZWQgZnJvbSB0aGUgZ3NldHRpbmdzIGZvbnQKKyAgIGNv bmZpZyBlbnRyaWVzLiAgVGhlIGNhbGxlciBzaG91bGQgY2FsbCBjYWlyb19mb250X29wdGlvbnNf ZGVzdHJveQorICAgb24gdGhlIHJlc3VsdC4gICovCitjYWlyb19mb250X29wdGlvbnNfdCAqCit4 c2V0dGluZ3NfZ2V0X2ZvbnRfb3B0aW9ucyAodm9pZCkKK3sKKyAgcmV0dXJuIGNhaXJvX2ZvbnRf b3B0aW9uc19jb3B5IChmb250X29wdGlvbnMpOworfQorI2VuZGlmCisKIERFRlVOICgiZm9udC1n ZXQtc3lzdGVtLW5vcm1hbC1mb250IiwgRmZvbnRfZ2V0X3N5c3RlbV9ub3JtYWxfZm9udCwKICAg ICAgICBTZm9udF9nZXRfc3lzdGVtX25vcm1hbF9mb250LAogICAgICAgIDAsIDAsIDAsCkBAIC0x MDczLDYgKzEyMTYsMTAgQEAgc3ltc19vZl94c2V0dGluZ3MgKHZvaWQpCiAgIGdjb25mX2NsaWVu dCA9IE5VTEw7CiAgIFBEVU1QRVJfSUdOT1JFIChnY29uZl9jbGllbnQpOwogI2VuZGlmCisjaWZk ZWYgSEFWRV9QR1RLCisgIGZvbnRfb3B0aW9ucyA9IE5VTEw7CisgIFBEVU1QRVJfSUdOT1JFIChm b250X29wdGlvbnMpOworI2VuZGlmCiAKICAgREVGU1lNIChRbW9ub3NwYWNlX2ZvbnRfbmFtZSwg Im1vbm9zcGFjZS1mb250LW5hbWUiKTsKICAgREVGU1lNIChRZm9udF9uYW1lLCAiZm9udC1uYW1l Iik7CmRpZmYgLS1naXQgYS9zcmMveHNldHRpbmdzLmggYi9zcmMveHNldHRpbmdzLmgKaW5kZXgg Y2NhYTM2NDg5ZC4uNWU1ZGYzNzA2MiAxMDA2NDQKLS0tIGEvc3JjL3hzZXR0aW5ncy5oCisrKyBi L3NyYy94c2V0dGluZ3MuaApAQCAtMjMsNiArMjMsOCBAQCAjZGVmaW5lIFhTRVRUSU5HU19ICiAj aWZuZGVmIEhBVkVfUEdUSwogI2luY2x1ZGUgImRpc3BleHRlcm4uaCIKICNpbmNsdWRlIDxYMTEv WGxpYi5oPgorI2Vsc2UKKyNpbmNsdWRlIDxjYWlyby5oPgogI2VuZGlmCiAKIHN0cnVjdCB4X2Rp c3BsYXlfaW5mbzsKQEAgLTQxLDUgKzQzLDggQEAgI2RlZmluZSBYU0VUVElOR1NfSAogZXh0ZXJu IGNvbnN0IGNoYXIgKnhzZXR0aW5nc19nZXRfc3lzdGVtX25vcm1hbF9mb250ICh2b2lkKTsKICNl bmRpZgogCisjaWZkZWYgSEFWRV9QR1RLCitleHRlcm4gY2Fpcm9fZm9udF9vcHRpb25zX3QgKnhz ZXR0aW5nc19nZXRfZm9udF9vcHRpb25zICh2b2lkKTsKKyNlbmRpZgogCiAjZW5kaWYgLyogWFNF VFRJTkdTX0ggKi8KLS0gCjIuMzQuMQoK --=-Za+PJlPruPa6JdchbnKe--