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: Thu, 07 Apr 2022 21:24:28 +0200 Message-ID: <66a9a7d83ca545dd23c890d4aa97717f1796579f.camel@teloden.nl> 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> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-mmTeLzNAJeAK4lRU/qTZ" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="36767"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.40.4-1ubuntu2 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 Thu Apr 07 21:25:16 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 1ncXkm-0009GI-Ei for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 07 Apr 2022 21:25:15 +0200 Original-Received: from localhost ([::1]:37012 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ncXkl-0005Ia-5i for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 07 Apr 2022 15:25:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44116) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ncXkc-0005FV-Ar for bug-gnu-emacs@gnu.org; Thu, 07 Apr 2022 15:25:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:39507) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ncXkc-0000da-0v for bug-gnu-emacs@gnu.org; Thu, 07 Apr 2022 15:25:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ncXkb-00039t-RX for bug-gnu-emacs@gnu.org; Thu, 07 Apr 2022 15:25:01 -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: Thu, 07 Apr 2022 19:25:01 +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.164935948112107 (code B ref 54564); Thu, 07 Apr 2022 19:25:01 +0000 Original-Received: (at 54564) by debbugs.gnu.org; 7 Apr 2022 19:24:41 +0000 Original-Received: from localhost ([127.0.0.1]:33404 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ncXkG-00039C-6s for submit@debbugs.gnu.org; Thu, 07 Apr 2022 15:24:40 -0400 Original-Received: from out4-smtp.messagingengine.com ([66.111.4.28]:46805) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ncXkE-00038v-BX for 54564@debbugs.gnu.org; Thu, 07 Apr 2022 15:24:39 -0400 Original-Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 3959C5C023F; Thu, 7 Apr 2022 15:24:32 -0400 (EDT) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Thu, 07 Apr 2022 15:24:32 -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; bh=yGgyWb/jpkqX0zKnzoAqOlrJOW0ta8qaWp0T8g PWnS8=; b=fZ59lkl7nWGx3GsOIKHqGsnEnyRTj4HaWr3PHLltlB6gu3MpL9c10b PtOk3A/Mqh9uCYtf9QcIHn6JIVLCJAWI2A7cZwwrvjUNkKtP7smOD988rPSqOOHI esHICuZxe6tnGPw2yxpUCIXKiAeoNqPB3MRN4tpdx8egMXzw4Y1lVIkBf8ebLYEE zsFSK+MPJxMhaBO4qeb6CiUaqp1qAdITtbckPbw8H6gyJye6Hyiwlz+fb3TZ21p2 Uza9DoPwiyCeXzsV0+vhehZm4Lov2Tun3GW/QVw6roLgQ3vYY1NoVfXNEWBfq6JG XLfTPVRtzvVLIV5FGluDCfp+E/qkb3BQ== 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=fm3; bh=yGgyWb/jpkqX0zKnz oAqOlrJOW0ta8qaWp0T8gPWnS8=; b=WjZihsDmc3BPu/iWtddhKKY8OuppmV32D tFZUmbNhCL0uIjtMZvHcdfgv/C5eQR7aZ6pakOAGeqrCOZ/QnS/vie1TJGYe8eJf BWXn9hw497oeog4Bf+Sd0fMbx/OhMYSSq3R16IyekJzscIhKAC0CTNgOim39751Y NTgPInpWdv7mV/XMqMaIfP486Mbcns7Mle2MUghQOphxEIOg79mnmPwiKCoCj6fo jq2StdqTpv02RytqdngbGmW/xVmdmQGailsOt7I0iIT0hqds7qURarshqon70uw6 GCgqFJSnkkQZmMjYvmDnMTm7831HbTwfWI+t47gQn2j2y7q/g20aA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddrudejkedgudegtdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefkuffhvfffjghftggfggesmhdtreertderjeenucfhrhhomheprfhivght vghruchvrghnucfrrhhoohhijhgvnhcuoehpihgvthgvrhdrvhgrnhdrphhrohhoihhjvg hnsehtvghlohguvghnrdhnlheqnecuggftrfgrthhtvghrnheptdfghefgtefhueejhfef gfdvffefgfetkeetffevveefkeejudduleelfeejleegnecuffhomhgrihhnpehgnhhurd horhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhep phhivghtvghrrdhvrghnrdhprhhoohhijhgvnhesthgvlhhouggvnhdrnhhl X-ME-Proxy: Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 7 Apr 2022 15:24:30 -0400 (EDT) In-Reply-To: <87k0c9imvp.fsf@yahoo.com> 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:229537 Archived-At: --=-mmTeLzNAJeAK4lRU/qTZ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Hi All,  It took a fair bit of digging, but sub-pixel anti-aliasing on pgtk now seems to work correctly. 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) I've amended my gsettings patch with this change, only replacing the operator for anti-aliased fonts in ftcrfont_draw, because I'm not sure about its impact for non-anti-aliased fonts.    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. 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/request-assign.future to assign@gnu.org 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) Kind Regards, Pieter On Fri, 2022-04-01 at 10:00 +0800, Po Lu wrote: > Pieter van Prooijen writes: > > > Hi All, > > > > Thanks for the review, I've updated the commit message and other > > changes you mentioned in the attached patch (against > > c5af19cba5924de89a38e7a177c07f42fd3cd543) > > > > I've requested the form for the copyright assignment, but have not > > received it yet, will send it in as soon as it arrives. > > > > No progress yet on the problem with subpixel antialiasing, but it > > doesn't look like a fontconfig issue, as a non-pgtk build from the > > same > > source works correctly, will have to dig deeper to find out what is > > happening. > > Thanks. > > > > > +   on the result.  */ > > Hmm... Is there an actual non-breaking space character here, or is your > MUA munging the messages? > > > +  if (dpyinfo_valid (first_dpyinfo)) > > +      store_config_changed_event (Qfont_render, > > +                                  XCAR (first_dpyinfo- > > >name_list_element)); > > You got the indentation wrong here.  The "s" in > "store_config_changed_event" should be two spaces behind where it is > now. > > Otherwise, LGTM.  Hopefully the copyright paperwork can be finished > soon. --=-mmTeLzNAJeAK4lRU/qTZ 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 RnJvbSBiOWQ5NmE0N2M0YjMwMWUwNDQ1YTZkN2I4MGNmYjg4NzZjOTIxYzA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBQaWV0ZXIgdmFuIFByb29pamVuIDxwaWV0ZXIudmFuLnByb29p amVuQHRlbG9kZW4ubmw+CkRhdGU6IFRodSwgNyBBcHIgMjAyMiAxODo1MjoxNCArMDIwMApTdWJq ZWN0OiBbUEFUQ0hdIFVzZSBnc2V0dGluZ3MgZm9udCByZW5kZXJpbmcgZW50cmllcyBmb3IgcGd0 ayBidWlsZHMKCklmIHByZXNlbnQsIGFwcGx5IHRoZSBnc2V0dGluZ3MgZm9udCBoaW50aW5nIGFu ZCBhbnRpYWxpYXNpbmcKZW50cmllcyB3aGVuIGNyZWF0aW5nIGEgZm9udCBpbiBjYWlyby4gIERv IHRoaXMgYXQKaW5pdGlhbGl6YXRpb24gYW5kIHdoZW4gdGhlIGVudHJpZXMgY2hhbmdlLCByZS1y ZW5kZXJpbmcgdGhlCmZyYW1lcy4KCiogc3JjL2Z0Y3Jmb250LmMgKGZ0Y3Jmb250X29wZW4pOiBV c2UgdGhlIGZvbnRfb3B0aW9ucyBkZXJpdmVkCmZyb20gZ3NldHRpbmdzIHdoZW4gb3BlbmluZyBh IGZvbnQuCihmdGNyZm9udF9jYWNoZWRfZm9udF9vayk6IFJlcG9ydCBhIGNhY2hlZCBmb250IGFz IGludmFsaWQgaWYKaXRzIGZvbnQgb3B0aW9ucyBkaWZmZXIgZnJvbSB0aGUgY3VycmVudCBvcHRp b25zIGluc2lkZQpnc2V0dGluZ3MuCihmdGNyZm9udF9kcmF3KTogVXNlIGEgZGlmZmVyZW50IGNh aXJvIG9wZXJhdG9yIHdoZW4KZHJhd2luZyBzdWJwaXhlbCBhbnRpYWxpYXNlZCBmb250cy4KKiBz cmMveHNldHRpbmdzLmMgKGFwcGx5X2dzZXR0aW5nc19mb250X2hpbnRpbmcpCihhcHBseV9nc2V0 dGluZ3NfZm9udF9hbGlhcywgYXBwbHlfZ3NldHRpbmdzX2ZvbnRfcmdiYV9vcmRlcik6CkNvbnZl cnQgdGhlIHNldHRpbmdzIGZyb20gR1NldHRpbmdzIHRvIHRoZSBjYWlyb19mb250X29wdGlvbnNf dApvYmplY3QuCihpbml0X2dzZXR0aW5ncywgc29tZXRoaW5nX2NoYW5nZWRfZ3NldHRpbmdzQ0Ip OiBJbnZva2UgdGhlCmFwcGx5IGZ1bmN0aW9ucyBpZiB0aGUgcmVsZXZhbnQgc2V0dGluZ3MgY2hh bmdlZC4KKHN0b3JlX2ZvbnRfb3B0aW9uc19jaGFuZ2VkKTogU3RvcmUgYW4gZXZlbnQgdG8gcmUt cmVuZGVyIHRoZQpmb250cy4KKHhzZXR0aW5nX2dldF9mb250X29wdGlvbnMpCiogc3JjL3hzZXR0 aW5ncy5oICh4c2V0dGluZ3NfZ2V0X2ZvbnRfb3B0aW9ucyk6IE5ldyBmdW5jdGlvbi4KLS0tCiBz cmMvZnRjcmZvbnQuYyAgfCAgNDMgKysrKysrKysrKysrKysKIHNyYy94c2V0dGluZ3MuYyB8IDE0 NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy94 c2V0dGluZ3MuaCB8ICAgNSArKwogMyBmaWxlcyBjaGFuZ2VkLCAxOTUgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL3NyYy9mdGNyZm9udC5jIGIvc3JjL2Z0Y3Jmb250LmMKaW5kZXggOThhMjhh ZjVmMi4uZTYwNjdkMjVjNyAxMDA2NDQKLS0tIGEvc3JjL2Z0Y3Jmb250LmMKKysrIGIvc3JjL2Z0 Y3Jmb250LmMKQEAgLTM3LDYgKzM3LDkgQEAKICNpbmNsdWRlICJmb250LmgiCiAjaW5jbHVkZSAi ZnRmb250LmgiCiAjaW5jbHVkZSAicGR1bXBlci5oIgorI2lmZGVmIEhBVkVfUEdUSworI2luY2x1 ZGUgInhzZXR0aW5ncy5oIgorI2VuZGlmCiAKICNpZmRlZiBVU0VfQkVfQ0FJUk8KICNkZWZpbmUg UkVEX0ZST01fVUxPTkcoY29sb3IpCSgoKGNvbG9yKSA+PiAxNikgJiAweGZmKQpAQCAtMTY4LDcg KzE3MSwxMiBAQCBmdGNyZm9udF9vcGVuIChzdHJ1Y3QgZnJhbWUgKmYsIExpc3BfT2JqZWN0IGVu dGl0eSwgaW50IHBpeGVsX3NpemUpCiAgIGNhaXJvX21hdHJpeF90IGZvbnRfbWF0cml4LCBjdG07 CiAgIGNhaXJvX21hdHJpeF9pbml0X3NjYWxlICgmZm9udF9tYXRyaXgsIHBpeGVsX3NpemUsIHBp eGVsX3NpemUpOwogICBjYWlyb19tYXRyaXhfaW5pdF9pZGVudGl0eSAoJmN0bSk7CisKKyNpZmRl ZiBIQVZFX1BHVEsKKyAgY2Fpcm9fZm9udF9vcHRpb25zX3QgKm9wdGlvbnMgPSB4c2V0dGluZ3Nf Z2V0X2ZvbnRfb3B0aW9ucyAoKTsKKyNlbHNlCiAgIGNhaXJvX2ZvbnRfb3B0aW9uc190ICpvcHRp b25zID0gY2Fpcm9fZm9udF9vcHRpb25zX2NyZWF0ZSAoKTsKKyNlbmRpZgogI2lmZGVmIFVTRV9C RV9DQUlSTwogICBpZiAoYmVfdXNlX3N1YnBpeGVsX2FudGlhbGlhc2luZyAoKSkKICAgICBjYWly b19mb250X29wdGlvbnNfc2V0X2FudGlhbGlhcyAob3B0aW9ucywgQ0FJUk9fQU5USUFMSUFTX1NV QlBJWEVMKTsKQEAgLTU5OSw2ICs2MDcsMTYgQEAgZnRjcmZvbnRfZHJhdyAoc3RydWN0IGdseXBo X3N0cmluZyAqcywKICAgeF9zZXRfY3Jfc291cmNlX3dpdGhfZ2NfZm9yZWdyb3VuZCAoZiwgcy0+ Z2MsIGZhbHNlKTsKICNlbHNlCiAgIHBndGtfc2V0X2NyX3NvdXJjZV93aXRoX2NvbG9yIChmLCBz LT54Z2N2LmZvcmVncm91bmQsIGZhbHNlKTsKKworICAvKiBUaGUgQ0FJUk9fT1BFUkFUT1JfU09V UkNFIG9wZXJhdG9yIHNldCBieSBwZ3RrX3NldF9jcl9zb3VyY2Vfd2l0aF9jb2xvcgorICAgICBh Ym92ZSByZW5kZXJzIHN1Yi1waXhlbCBhbnRpLWFsaWFzZWQgZm9udHMgaW4gZ3JleS1zY2FsZSwg dXNlIHRoZQorICAgICBkZWZhdWx0IENBSVJPX09QRVJBVE9SX09WRVIgaW5zdGVhZC4gICovCisg IGNhaXJvX2ZvbnRfb3B0aW9uc190ICpvcHRpb25zID0gY2Fpcm9fZm9udF9vcHRpb25zX2NyZWF0 ZSAoKTsKKyAgY2Fpcm9fc2NhbGVkX2ZvbnRfZ2V0X2ZvbnRfb3B0aW9ucyAoZnRjcmZvbnRfaW5m by0+Y3Jfc2NhbGVkX2ZvbnQsCisJCQkJICAgICAgb3B0aW9ucyk7CisgIGlmIChjYWlyb19mb250 X29wdGlvbnNfZ2V0X2FudGlhbGlhcyAob3B0aW9ucykgPT0gQ0FJUk9fQU5USUFMSUFTX1NVQlBJ WEVMKQorICAgIGNhaXJvX3NldF9vcGVyYXRvciAoY3IsIENBSVJPX09QRVJBVE9SX09WRVIpOwor ICBjYWlyb19mb250X29wdGlvbnNfZGVzdHJveSAob3B0aW9ucyk7CiAjZW5kaWYKICNlbHNlCiAg IHVpbnQzMl90IGNvbCA9IGJlX2ZvcmVncm91bmQ7CkBAIC02MjQsNiArNjQyLDI4IEBAIGZ0Y3Jm b250X2RyYXcgKHN0cnVjdCBnbHlwaF9zdHJpbmcgKnMsCiAgIHJldHVybiBsZW47CiB9CiAKKyNp ZmRlZiBIQVZFX1BHVEsKKy8qIERldGVybWluZSBpZiBGT05UX09CSkVDVCBpcyBhIHZhbGlkIGNh Y2hlZCBmb250IGZvciBFTlRJVFkgYnkKKyAgIGNvbXBhcmluZyB0aGUgb3B0aW9ucyB1c2VkIHRv IG9wZW4gaXQgd2l0aCB0aGUgdXNlcidzIGN1cnJlbnQKKyAgIHByZWZlcmVuY2VzIHNwZWNpZmll ZCB2aWEgR1NldHRpbmdzLiAgKi8KK3N0YXRpYyBib29sCitmdGNyZm9udF9jYWNoZWRfZm9udF9v ayAoc3RydWN0IGZyYW1lICpmLCBMaXNwX09iamVjdCBmb250X29iamVjdCwKKwkJCSBMaXNwX09i amVjdCBlbnRpdHkpCit7CisgIHN0cnVjdCBmb250X2luZm8gKmluZm8gPSAoc3RydWN0IGZvbnRf aW5mbyAqKSBYRk9OVF9PQkpFQ1QgKGZvbnRfb2JqZWN0KTsKKworICBjYWlyb19mb250X29wdGlv bnNfdCAqb3B0aW9ucyA9IGNhaXJvX2ZvbnRfb3B0aW9uc19jcmVhdGUgKCk7CisgIGNhaXJvX3Nj YWxlZF9mb250X2dldF9mb250X29wdGlvbnMgKGluZm8tPmNyX3NjYWxlZF9mb250LCBvcHRpb25z KTsKKyAgY2Fpcm9fZm9udF9vcHRpb25zX3QgKmdzZXR0aW5nc19vcHRpb25zID0geHNldHRpbmdz X2dldF9mb250X29wdGlvbnMgKCk7CisKKyAgYm9vbCBlcXVhbCA9IGNhaXJvX2ZvbnRfb3B0aW9u c19lcXVhbCAob3B0aW9ucywgZ3NldHRpbmdzX29wdGlvbnMpOworICBjYWlyb19mb250X29wdGlv bnNfZGVzdHJveSAob3B0aW9ucyk7CisgIGNhaXJvX2ZvbnRfb3B0aW9uc19kZXN0cm95IChnc2V0 dGluZ3Nfb3B0aW9ucyk7CisKKyAgcmV0dXJuIGVxdWFsOworfQorI2VuZGlmCisKICNpZmRlZiBI QVZFX0hBUkZCVVpaCiAKIHN0YXRpYyBMaXNwX09iamVjdApAQCAtNjk0LDYgKzczNCw5IEBAIGZ0 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 VFRJTkdTX0ggKi8KLS0gCjIuMzIuMAoK --=-mmTeLzNAJeAK4lRU/qTZ--