From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: YAMAMOTO Mitsuharu Newsgroups: gmane.emacs.bugs Subject: bug#28236: 'configure --with-cairo' causes 'emacs -font' to fail Date: Tue, 04 Jun 2019 16:47:56 +0900 Organization: Faculty of Science, Chiba University Message-ID: References: <87a82npghk.fsf@quad> <015a4a19-4f91-f9f4-7f2f-1b332d36a5a7@yandex.ru> <83sgz41swe.fsf@gnu.org> <87o99rgdej.fsf@gmail.com> <835zvy22t1.fsf@gnu.org> <83wooezoo5.fsf@gnu.org> <83o99pzg7x.fsf@gnu.org> Mime-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: multipart/mixed; boundary="Multipart_Tue_Jun__4_16:47:56_2019-1" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="239136"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM/1.14.9 (=?UTF-8?Q?Goj=C5=8D?=) APEL/10.8 EasyPG/1.0.0 Emacs/25.3 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) Cc: 28236@debbugs.gnu.org, ari.roponen@gmail.com, andrei.elkin@pp.inet.fi, dgutov@yandex.ru To: Robert Pluim Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Jun 04 09:49:12 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hY4C0-00103E-3c for geb-bug-gnu-emacs@m.gmane.org; Tue, 04 Jun 2019 09:49:12 +0200 Original-Received: from localhost ([127.0.0.1]:47671 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hY4Bz-0008Ql-3v for geb-bug-gnu-emacs@m.gmane.org; Tue, 04 Jun 2019 03:49:11 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:50913) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hY4Br-0008Qa-Pe for bug-gnu-emacs@gnu.org; Tue, 04 Jun 2019 03:49:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hY4Bq-00034v-OF for bug-gnu-emacs@gnu.org; Tue, 04 Jun 2019 03:49:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58490) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hY4Bq-00033v-Jv for bug-gnu-emacs@gnu.org; Tue, 04 Jun 2019 03:49:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hY4Bq-0007qj-FX for bug-gnu-emacs@gnu.org; Tue, 04 Jun 2019 03:49:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: YAMAMOTO Mitsuharu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 04 Jun 2019 07:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 28236 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: help Original-Received: via spool by 28236-submit@debbugs.gnu.org id=B28236.155963448230088 (code B ref 28236); Tue, 04 Jun 2019 07:49:02 +0000 Original-Received: (at 28236) by debbugs.gnu.org; 4 Jun 2019 07:48:02 +0000 Original-Received: from localhost ([127.0.0.1]:43798 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hY4As-0007p6-8u for submit@debbugs.gnu.org; Tue, 04 Jun 2019 03:48:02 -0400 Original-Received: from mathmail.math.s.chiba-u.ac.jp ([133.82.132.2]:52967) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hY4Aq-0007om-0t for 28236@debbugs.gnu.org; Tue, 04 Jun 2019 03:48:01 -0400 Original-Received: from mathent.math.s.chiba-u.ac.jp (mathent [192.168.32.5]) by mathmail.math.s.chiba-u.ac.jp (Postfix) with ESMTP id 0D38CF08D5; Tue, 4 Jun 2019 16:47:57 +0900 (JST) (envelope-from mituharu@math.s.chiba-u.ac.jp) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:160097 Archived-At: --Multipart_Tue_Jun__4_16:47:56_2019-1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Thu, 13 Dec 2018 23:56:21 +0900, Robert Pluim wrote: >=20 > >> So xfns.c only initializes the xfont driver when not using Cairo. I > >> made the obvious changes there, and 'emacs -Q -fn 7x14' starts up, and > >> 'C-u C-x =3D' tells me: > >>=20 > >> x:-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1 (#x68) > >>=20 > >> Unfortunately *scratch* does not (re-)display properly > > > > Can you tell more details about this improper redisplay? >=20 > I see text for the menu-bar, but *scratch* looks empty (and there=CA=BCs = no > text displayed in the mode-line). The text is actually there in > *scratch*, though. >=20 > I don=CA=BCt think this is a viable path to look at, especially given Ari= 's > workaround of copying the required fonts. Previously the cairo drawing code does its own double-buffering using the image surface, where all the drawing should happen on the client side and not compatible with X core fonts that are drawn on the server side. Copying back the result of server side drawing is not impossible, but inefficient. Recently, I've made a change to the cairo drawing code in the master so it draws into Xlib surfaces instead of image ones if the X Double Buffer Extension is available. On top of that, it is rather straightforward to cope with X core fonts. I implemented both in the attached patch. The former corresponds to the case that the frame parameter `inhibit-double-buffering' is t, and the latter to nil. I think the latter is usable, but the former is not. The code for the former is not an total waste because we can use it for exporting displayed contents to bitmap images, i.e., (x-export-frames FRAME 'png). The same approach cannot be used for exporting to outline images (PDF or SVG), so characters in X core fonts are replaced with hollow boxes in such cases. YAMAMOTO Mitsuharu mituharu@math.s.chiba-u.ac.jp --Multipart_Tue_Jun__4_16:47:56_2019-1 Content-Type: application/octet-stream; type=patch; name="cairo-xfont.diff" Content-Disposition: attachment; filename="cairo-xfont.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCAwZjFmZDVkMjZl Zi4uOTBmMTNiOTlmYzMgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUu YWMKQEAgLTUyMjksNyArNTIyOSw3IEBAIEFDX0RFRlVOCiAgIFhPQko9Inh0ZXJtLm8geGZucy5v IHhzZWxlY3QubyB4cmRiLm8geHNtZm5zLm8geHNldHRpbmdzLm8iCiAgIEZPTlRfT0JKPXhmb250 Lm8KICAgaWYgdGVzdCAiJEhBVkVfQ0FJUk8iID0gInllcyI7IHRoZW4KLSAgICBGT05UX09CSj0i ZnRmb250Lm8gZnRjcmZvbnQubyIKKyAgICBGT05UX09CSj0iJEZPTlRfT0JKIGZ0Zm9udC5vIGZ0 Y3Jmb250Lm8iCiAgIGVsaWYgdGVzdCAiJEhBVkVfWEZUIiA9ICJ5ZXMiOyB0aGVuCiAgICAgRk9O VF9PQko9IiRGT05UX09CSiBmdGZvbnQubyB4ZnRmb250Lm8gZnR4Zm9udC5vIgogICBlbGlmIHRl c3QgIiRIQVZFX0ZSRUVUWVBFIiA9ICJ5ZXMiOyB0aGVuCmRpZmYgLS1naXQgYS9zcmMvZm9udC5j IGIvc3JjL2ZvbnQuYwppbmRleCA1Y2E4OWM5N2RjZi4uNTJiZjVkYWU5NWIgMTAwNjQ0Ci0tLSBh L3NyYy9mb250LmMKKysrIGIvc3JjL2ZvbnQuYwpAQCAtNTQ4OSwxMCArNTQ4OSwxMCBAQCBjYXVz ZSBYZnQgY3Jhc2hlcy4gIE9ubHkgaGFzIGFuIGVmZmVjdCBpbiBYZnQgYnVpbGRzLiAgKi8pOwog I2lmZGVmIEhBVkVfRlJFRVRZUEUKICAgc3ltc19vZl9mdGZvbnQgKCk7CiAjaWZkZWYgSEFWRV9Y X1dJTkRPV1MKKyAgc3ltc19vZl94Zm9udCAoKTsKICNpZmRlZiBVU0VfQ0FJUk8KICAgc3ltc19v Zl9mdGNyZm9udCAoKTsKICNlbHNlCi0gIHN5bXNfb2ZfeGZvbnQgKCk7CiAgIHN5bXNfb2ZfZnR4 Zm9udCAoKTsKICNpZmRlZiBIQVZFX1hGVAogICBzeW1zX29mX3hmdGZvbnQgKCk7CmRpZmYgLS1n aXQgYS9zcmMveGZucy5jIGIvc3JjL3hmbnMuYwppbmRleCA0MTk1OTgwZDMzZS4uMWRjYWQ2ZjNk YjEgMTAwNjQ0Ci0tLSBhL3NyYy94Zm5zLmMKKysrIGIvc3JjL3hmbnMuYwpAQCAtMzc4OCw4ICsz Nzg4LDggQEAgVGhpcyBmdW5jdGlvbiBpcyBhbiBpbnRlcm5hbCBwcmltaXRpdmUtLXVzZSBgbWFr ZS1mcmFtZScgaW5zdGVhZC4gICovKQogICByZWdpc3Rlcl9mb250X2RyaXZlciAoJmZ0eGZvbnRf ZHJpdmVyLCBmKTsKICNlbmRpZgkvKiBub3QgSEFWRV9YRlQgKi8KICNlbmRpZgkvKiBIQVZFX0ZS RUVUWVBFICovCi0gIHJlZ2lzdGVyX2ZvbnRfZHJpdmVyICgmeGZvbnRfZHJpdmVyLCBmKTsKICNl bmRpZgkvKiBub3QgVVNFX0NBSVJPICovCisgIHJlZ2lzdGVyX2ZvbnRfZHJpdmVyICgmeGZvbnRf ZHJpdmVyLCBmKTsKIAogICBpbWFnZV9jYWNoZV9yZWZjb3VudCA9CiAgICAgRlJBTUVfSU1BR0Vf Q0FDSEUgKGYpID8gRlJBTUVfSU1BR0VfQ0FDSEUgKGYpLT5yZWZjb3VudCA6IDA7CmRpZmYgLS1n aXQgYS9zcmMveHRlcm0uYyBiL3NyYy94dGVybS5jCmluZGV4IGNjYzg0ZGNjNzE2Li44YzRkZjRl ZmIwMSAxMDA2NDQKLS0tIGEvc3JjL3h0ZXJtLmMKKysrIGIvc3JjL3h0ZXJtLmMKQEAgLTM1Nyw2 ICszNTcsMjUgQEAgeF9jcl91cGRhdGVfc3VyZmFjZV9kZXNpcmVkX3NpemUgKHN0cnVjdCBmcmFt ZSAqZiwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIH0KIH0KIAorc3RhdGljIHZvaWQKK3hf Y3JfZ2NfY2xpcCAoY2Fpcm9fdCAqY3IsIHN0cnVjdCBmcmFtZSAqZiwgR0MgZ2MpCit7CisgIGlm IChnYykKKyAgICB7CisgICAgICBzdHJ1Y3QgeF9nY19leHRfZGF0YSAqZ2NfZXh0ID0geF9nY19n ZXRfZXh0X2RhdGEgKGYsIGdjLCAwKTsKKworICAgICAgaWYgKGdjX2V4dCAmJiBnY19leHQtPm5f Y2xpcF9yZWN0cykKKwl7CisJICBmb3IgKGludCBpID0gMDsgaSA8IGdjX2V4dC0+bl9jbGlwX3Jl Y3RzOyBpKyspCisJICAgIGNhaXJvX3JlY3RhbmdsZSAoY3IsIGdjX2V4dC0+Y2xpcF9yZWN0c1tp XS54LAorCQkJICAgICBnY19leHQtPmNsaXBfcmVjdHNbaV0ueSwKKwkJCSAgICAgZ2NfZXh0LT5j bGlwX3JlY3RzW2ldLndpZHRoLAorCQkJICAgICBnY19leHQtPmNsaXBfcmVjdHNbaV0uaGVpZ2h0 KTsKKwkgIGNhaXJvX2NsaXAgKGNyKTsKKwl9CisgICAgfQorfQorCiBjYWlyb190ICoKIHhfYmVn aW5fY3JfY2xpcCAoc3RydWN0IGZyYW1lICpmLCBHQyBnYykKIHsKQEAgLTM3OSwyMyArMzk4LDcg QEAgeF9iZWdpbl9jcl9jbGlwIChzdHJ1Y3QgZnJhbWUgKmYsIEdDIGdjKQogICAgICAgY2Fpcm9f c3VyZmFjZV9kZXN0cm95IChzdXJmYWNlKTsKICAgICB9CiAgIGNhaXJvX3NhdmUgKGNyKTsKLQot ICBpZiAoZ2MpCi0gICAgewotICAgICAgc3RydWN0IHhfZ2NfZXh0X2RhdGEgKmdjX2V4dCA9IHhf Z2NfZ2V0X2V4dF9kYXRhIChmLCBnYywgMCk7Ci0KLSAgICAgIGlmIChnY19leHQgJiYgZ2NfZXh0 LT5uX2NsaXBfcmVjdHMpCi0JewotCSAgaW50IGk7Ci0KLQkgIGZvciAoaSA9IDA7IGkgPCBnY19l eHQtPm5fY2xpcF9yZWN0czsgaSsrKQotCSAgICBjYWlyb19yZWN0YW5nbGUgKGNyLCBnY19leHQt PmNsaXBfcmVjdHNbaV0ueCwKLQkJCSAgICAgZ2NfZXh0LT5jbGlwX3JlY3RzW2ldLnksCi0JCQkg ICAgIGdjX2V4dC0+Y2xpcF9yZWN0c1tpXS53aWR0aCwKLQkJCSAgICAgZ2NfZXh0LT5jbGlwX3Jl Y3RzW2ldLmhlaWdodCk7Ci0JICBjYWlyb19jbGlwIChjcik7Ci0JfQotICAgIH0KKyAgeF9jcl9n Y19jbGlwIChjciwgZiwgZ2MpOwogCiAgIHJldHVybiBjcjsKIH0KQEAgLTQzNCw2ICs0MzcsMTI2 IEBAIHhfc2V0X2NyX3NvdXJjZV93aXRoX2djX2JhY2tncm91bmQgKHN0cnVjdCBmcmFtZSAqZiwg R0MgZ2MpCiAJCQljb2xvci5ncmVlbiAvIDY1NTM1LjAsIGNvbG9yLmJsdWUgLyA2NTUzNS4wKTsK IH0KIAorc3RhdGljIGNvbnN0IGNhaXJvX3VzZXJfZGF0YV9rZXlfdCB4bGliX3N1cmZhY2Vfa2V5 LCBzYXZlZF9kcmF3YWJsZV9rZXk7CisKK3N0YXRpYyB2b2lkCit4X2NyX2Rlc3Ryb3lfeGxpYl9z dXJmYWNlIChjYWlyb19zdXJmYWNlX3QgKnhsaWJfc3VyZmFjZSkKK3sKKyAgaWYgKHhsaWJfc3Vy ZmFjZSkKKyAgICB7CisgICAgICBYRnJlZVBpeG1hcCAoY2Fpcm9feGxpYl9zdXJmYWNlX2dldF9k aXNwbGF5ICh4bGliX3N1cmZhY2UpLAorCQkgICBjYWlyb194bGliX3N1cmZhY2VfZ2V0X2RyYXdh YmxlICh4bGliX3N1cmZhY2UpKTsKKyAgICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveSAoeGxpYl9z dXJmYWNlKTsKKyAgICB9Cit9CisKK3N0YXRpYyBib29sCit4X3RyeV9jcl94bGliX2RyYXdhYmxl IChzdHJ1Y3QgZnJhbWUgKmYsIEdDIGdjKQoreworICBjYWlyb190ICpjciA9IEZSQU1FX0NSX0NP TlRFWFQgKGYpOworICBpZiAoIWNyKQorICAgIHJldHVybiB0cnVlOworCisgIGNhaXJvX3N1cmZh Y2VfdCAqc3VyZmFjZSA9IGNhaXJvX2dldF90YXJnZXQgKGNyKTsKKyAgc3dpdGNoIChjYWlyb19z dXJmYWNlX2dldF90eXBlIChzdXJmYWNlKSkKKyAgICB7CisgICAgY2FzZSBDQUlST19TVVJGQUNF X1RZUEVfWExJQjoKKyAgICAgIGNhaXJvX3N1cmZhY2VfZmx1c2ggKHN1cmZhY2UpOworICAgICAg cmV0dXJuIHRydWU7CisKKyAgICBjYXNlIENBSVJPX1NVUkZBQ0VfVFlQRV9JTUFHRToKKyAgICAg IGJyZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg LyogRlJBTUVfQ1JfQ09OVEVYVCAoZikgaXMgYW4gaW1hZ2Ugc3VyZmFjZSB3ZSBjYW4gbm90IGRy YXcgZGlyZWN0bHkKKyAgICAgd2l0aCBYbGliLiAgU2V0IHVwIGEgUGl4bWFwIHNvIHdlIGNhbiBj b3B5IGJhY2sgdGhlIHJlc3VsdCBsYXRlcgorICAgICBpbiB4X2VuZF9jcl94bGliX2RyYXdhYmxl LiAgKi8KKyAgY2Fpcm9fc3VyZmFjZV90ICp4bGliX3N1cmZhY2UgPSBjYWlyb19nZXRfdXNlcl9k YXRhIChjciwgJnhsaWJfc3VyZmFjZV9rZXkpOworICBpbnQgd2lkdGggPSBGUkFNRV9DUl9TVVJG QUNFX0RFU0lSRURfV0lEVEggKGYpOworICBpbnQgaGVpZ2h0ID0gRlJBTUVfQ1JfU1VSRkFDRV9E RVNJUkVEX0hFSUdIVCAoZik7CisgIFBpeG1hcCBwaXhtYXA7CisgIGlmICh4bGliX3N1cmZhY2UK KyAgICAgICYmIGNhaXJvX3hsaWJfc3VyZmFjZV9nZXRfd2lkdGggKHhsaWJfc3VyZmFjZSkgPT0g d2lkdGgKKyAgICAgICYmIGNhaXJvX3hsaWJfc3VyZmFjZV9nZXRfaGVpZ2h0ICh4bGliX3N1cmZh Y2UpID09IGhlaWdodCkKKyAgICBwaXhtYXAgPSBjYWlyb194bGliX3N1cmZhY2VfZ2V0X2RyYXdh YmxlICh4bGliX3N1cmZhY2UpOworICBlbHNlCisgICAgeworICAgICAgcGl4bWFwID0gWENyZWF0 ZVBpeG1hcCAoRlJBTUVfWF9ESVNQTEFZIChmKSwgRlJBTUVfWF9SQVdfRFJBV0FCTEUgKGYpLAor CQkJICAgICAgd2lkdGgsIGhlaWdodCwKKwkJCSAgICAgIERlZmF1bHREZXB0aE9mU2NyZWVuIChG UkFNRV9YX1NDUkVFTiAoZikpKTsKKyAgICAgIHhsaWJfc3VyZmFjZSA9IGNhaXJvX3hsaWJfc3Vy ZmFjZV9jcmVhdGUgKEZSQU1FX1hfRElTUExBWSAoZiksCisJCQkJCQlwaXhtYXAsIEZSQU1FX1hf VklTVUFMIChmKSwKKwkJCQkJCXdpZHRoLCBoZWlnaHQpOworICAgICAgY2Fpcm9fc2V0X3VzZXJf ZGF0YSAoY3IsICZ4bGliX3N1cmZhY2Vfa2V5LCB4bGliX3N1cmZhY2UsCisJCQkgICAoY2Fpcm9f ZGVzdHJveV9mdW5jX3QpIHhfY3JfZGVzdHJveV94bGliX3N1cmZhY2UpOworICAgIH0KKworI2lm IDAJCQkJLyogVGhpcyBzZWVtcyB0byBiZSB1bm5lY2Vzc2FyeS4gICovCisgIGlmIChjYWlyb19p bWFnZV9zdXJmYWNlX2dldF9mb3JtYXQgKHN1cmZhY2UpID09IENBSVJPX0ZPUk1BVF9BUkdCMzIp CisgICAgeworICAgICAgY2Fpcm9fc3VyZmFjZV9mbHVzaCAoeGxpYl9zdXJmYWNlKTsKKyAgICAg IFhDb3B5QXJlYSAoRlJBTUVfWF9ESVNQTEFZIChmKSwgRlJBTUVfWF9SQVdfRFJBV0FCTEUgKGYp LCBwaXhtYXAsIGdjLAorCQkgMCwgMCwgd2lkdGgsIGhlaWdodCwgMCwgMCk7CisgICAgICBjYWly b19zdXJmYWNlX21hcmtfZGlydHkgKHhsaWJfc3VyZmFjZSk7CisgICAgfQorI2VuZGlmCisKKyAg Y2Fpcm9fdCAqYnVmID0gY2Fpcm9fY3JlYXRlICh4bGliX3N1cmZhY2UpOworICBjYWlyb19zZXRf c291cmNlX3N1cmZhY2UgKGJ1Ziwgc3VyZmFjZSwgMCwgMCk7CisgIGNhaXJvX21hdHJpeF90IG1h dHJpeDsKKyAgY2Fpcm9fZ2V0X21hdHJpeCAoY3IsICZtYXRyaXgpOworICBjYWlyb19wYXR0ZXJu X3NldF9tYXRyaXggKGNhaXJvX2dldF9zb3VyY2UgKGNyKSwgJm1hdHJpeCk7CisgIGNhaXJvX3Nl dF9vcGVyYXRvciAoYnVmLCBDQUlST19PUEVSQVRPUl9TT1VSQ0UpOworICB4X2NyX2djX2NsaXAg KGJ1ZiwgZiwgZ2MpOworICBjYWlyb19wYWludCAoYnVmKTsKKyAgY2Fpcm9fZGVzdHJveSAoYnVm KTsKKworICBjYWlyb19zZXRfdXNlcl9kYXRhIChjciwgJnNhdmVkX2RyYXdhYmxlX2tleSwKKwkJ ICAgICAgICh2b2lkICopICh1aW50cHRyX3QpIEZSQU1FX1hfUkFXX0RSQVdBQkxFIChmKSwgTlVM TCk7CisgIEZSQU1FX1hfUkFXX0RSQVdBQkxFIChmKSA9IHBpeG1hcDsKKyAgY2Fpcm9fc3VyZmFj ZV9mbHVzaCAoeGxpYl9zdXJmYWNlKTsKKworICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHZv aWQKK3hfZW5kX2NyX3hsaWJfZHJhd2FibGUgKHN0cnVjdCBmcmFtZSAqZiwgR0MgZ2MpCit7Cisg IGNhaXJvX3QgKmNyID0gRlJBTUVfQ1JfQ09OVEVYVCAoZik7CisgIGlmICghY3IpCisgICAgcmV0 dXJuOworCisgIERyYXdhYmxlIHNhdmVkX2RyYXdhYmxlCisgICAgPSAodWludHB0cl90KSBjYWly b19nZXRfdXNlcl9kYXRhIChjciwgJnNhdmVkX2RyYXdhYmxlX2tleSk7CisgIGNhaXJvX3N1cmZh Y2VfdCAqc3VyZmFjZSA9IChzYXZlZF9kcmF3YWJsZQorCQkJICAgICAgPyBjYWlyb19nZXRfdXNl cl9kYXRhIChjciwgJnhsaWJfc3VyZmFjZV9rZXkpCisJCQkgICAgICA6IGNhaXJvX2dldF90YXJn ZXQgKGNyKSk7CisgIHN0cnVjdCB4X2djX2V4dF9kYXRhICpnY19leHQgPSB4X2djX2dldF9leHRf ZGF0YSAoZiwgZ2MsIDApOworICBpZiAoZ2NfZXh0ICYmIGdjX2V4dC0+bl9jbGlwX3JlY3RzKQor ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZ2NfZXh0LT5uX2NsaXBfcmVjdHM7IGkrKykKKyAgICAg IGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eV9yZWN0YW5nbGUgKHN1cmZhY2UsIGdjX2V4dC0+Y2xp cF9yZWN0c1tpXS54LAorCQkJCQkgIGdjX2V4dC0+Y2xpcF9yZWN0c1tpXS55LAorCQkJCQkgIGdj X2V4dC0+Y2xpcF9yZWN0c1tpXS53aWR0aCwKKwkJCQkJICBnY19leHQtPmNsaXBfcmVjdHNbaV0u aGVpZ2h0KTsKKyAgZWxzZQorICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eSAoc3VyZmFjZSk7 CisgIGlmICghc2F2ZWRfZHJhd2FibGUpCisgICAgcmV0dXJuOworCisgIGNhaXJvX3NhdmUgKGNy KTsKKyAgY2Fpcm9fc2V0X3NvdXJjZV9zdXJmYWNlIChjciwgc3VyZmFjZSwgMCwgMCk7CisgIGNh aXJvX3NldF9vcGVyYXRvciAoY3IsIENBSVJPX09QRVJBVE9SX1NPVVJDRSk7CisgIHhfY3JfZ2Nf Y2xpcCAoY3IsIGYsIGdjKTsKKyAgY2Fpcm9fcGFpbnQgKGNyKTsKKyAgY2Fpcm9fcmVzdG9yZSAo Y3IpOworCisgIEZSQU1FX1hfUkFXX0RSQVdBQkxFIChmKSA9IHNhdmVkX2RyYXdhYmxlOworICBj YWlyb19zZXRfdXNlcl9kYXRhIChjciwgJnNhdmVkX2RyYXdhYmxlX2tleSwgTlVMTCwgTlVMTCk7 Cit9CisKIC8qIEZyaW5nZSBiaXRtYXBzLiAgKi8KIAogc3RhdGljIGludCBtYXhfZnJpbmdlX2Jt cCA9IDA7CkBAIC0xNzM5LDYgKzE4NjIsMzMgQEAgeF9kcmF3X2dseXBoX3N0cmluZ19mb3JlZ3Jv dW5kIChzdHJ1Y3QgZ2x5cGhfc3RyaW5nICpzKQogICBlbHNlCiAgICAgewogICAgICAgc3RydWN0 IGZvbnQgKmZvbnQgPSBzLT5mb250OworI2lmZGVmIFVTRV9DQUlSTworICAgICAgaWYgKEVRIChm b250LT5kcml2ZXItPnR5cGUsIFF4KQorCSAgJiYgIXhfdHJ5X2NyX3hsaWJfZHJhd2FibGUgKHMt PmYsIHMtPmdjKSkKKwl7CisJICAvKiBGYWxsYmFjayBmb3IgdGhlIGNhc2UgdGhhdCBubyBYbGli IERyYXdhYmxlIGlzIGF2YWlsYWJsZQorCSAgICAgZm9yIGRyYXdpbmcgdGV4dCB3aXRoIFggY29y ZSBmb250cy4gICovCisJICBpZiAoIShzLT5mb3Jfb3ZlcmxhcHMKKwkJfHwgKHMtPmJhY2tncm91 bmRfZmlsbGVkX3AgJiYgcy0+aGwgIT0gRFJBV19DVVJTT1IpKSkKKwkgICAgeworCSAgICAgIGlu dCBib3hfbGluZV93aWR0aCA9IG1heCAocy0+ZmFjZS0+Ym94X2xpbmVfd2lkdGgsIDApOworCisJ ICAgICAgeF9jbGVhcl9nbHlwaF9zdHJpbmdfcmVjdCAocywgcy0+eCwgcy0+eSArIGJveF9saW5l X3dpZHRoLAorCQkJCQkgcy0+YmFja2dyb3VuZF93aWR0aCwKKwkJCQkJIHMtPmhlaWdodCAtIDIg KiBib3hfbGluZV93aWR0aCk7CisJICAgIH0KKwkgIGZvciAoaSA9IDA7IGkgPCBzLT5uY2hhcnM7 ICsraSkKKwkgICAgeworCSAgICAgIHN0cnVjdCBnbHlwaCAqZyA9IHMtPmZpcnN0X2dseXBoICsg aTsKKwkgICAgICB4X2RyYXdfcmVjdGFuZ2xlIChzLT5mLAorCQkJCXMtPmdjLCB4LCBzLT55LCBn LT5waXhlbF93aWR0aCAtIDEsCisJCQkJcy0+aGVpZ2h0IC0gMSk7CisJICAgICAgeCArPSBnLT5w aXhlbF93aWR0aDsKKwkgICAgfQorCX0KKyAgICAgIGVsc2UKKwl7CisjZW5kaWYJLyogVVNFX0NB SVJPICovCiAgICAgICBpbnQgYm9mZiA9IGZvbnQtPmJhc2VsaW5lX29mZnNldDsKICAgICAgIGlu dCB5OwogCkBAIC0xNzUzLDYgKzE5MDMsMTEgQEAgeF9kcmF3X2dseXBoX3N0cmluZ19mb3JlZ3Jv dW5kIChzdHJ1Y3QgZ2x5cGhfc3RyaW5nICpzKQogCWZvbnQtPmRyaXZlci0+ZHJhdyAocywgMCwg cy0+bmNoYXJzLCB4LCB5LCB0cnVlKTsKICAgICAgIGlmIChzLT5mYWNlLT5vdmVyc3RyaWtlKQog CWZvbnQtPmRyaXZlci0+ZHJhdyAocywgMCwgcy0+bmNoYXJzLCB4ICsgMSwgeSwgZmFsc2UpOwor I2lmZGVmIFVTRV9DQUlSTworCSAgaWYgKEVRIChmb250LT5kcml2ZXItPnR5cGUsIFF4KSkKKwkg ICAgeF9lbmRfY3JfeGxpYl9kcmF3YWJsZSAocy0+Ziwgcy0+Z2MpOworCX0KKyNlbmRpZgkvKiBV U0VfQ0FJUk8gKi8KICAgICB9CiB9CiAKQEAgLTE3ODUsNyArMTk0MCwyMSBAQCB4X2RyYXdfY29t cG9zaXRlX2dseXBoX3N0cmluZ19mb3JlZ3JvdW5kIChzdHJ1Y3QgZ2x5cGhfc3RyaW5nICpzKQog CXhfZHJhd19yZWN0YW5nbGUgKHMtPmYsIHMtPmdjLCB4LCBzLT55LAogCQkJcy0+d2lkdGggLSAx LCBzLT5oZWlnaHQgLSAxKTsKICAgICB9Ci0gIGVsc2UgaWYgKCEgcy0+Zmlyc3RfZ2x5cGgtPnUu Y21wLmF1dG9tYXRpYykKKyAgZWxzZQorI2lmZGVmIFVTRV9DQUlSTworICAgIGlmIChFUSAoZm9u dC0+ZHJpdmVyLT50eXBlLCBReCkKKwkmJiAheF90cnlfY3JfeGxpYl9kcmF3YWJsZSAocy0+Ziwg cy0+Z2MpKQorICAgICAgeworCS8qIEZhbGxiYWNrIGZvciB0aGUgY2FzZSB0aGF0IG5vIFhsaWIg RHJhd2FibGUgaXMgYXZhaWxhYmxlCisJICAgZm9yIGRyYXdpbmcgdGV4dCB3aXRoIFggY29yZSBm b250cy4gICovCisJaWYgKHMtPmNtcF9mcm9tID09IDApCisJICB4X2RyYXdfcmVjdGFuZ2xlIChz LT5mLCBzLT5nYywgeCwgcy0+eSwKKwkJCSAgICBzLT53aWR0aCAtIDEsIHMtPmhlaWdodCAtIDEp OworICAgICAgfQorICAgIGVsc2UKKyAgICAgIHsKKyNlbmRpZgkvKiBVU0VfQ0FJUk8gKi8KKyAg aWYgKCEgcy0+Zmlyc3RfZ2x5cGgtPnUuY21wLmF1dG9tYXRpYykKICAgICB7CiAgICAgICBpbnQg eSA9IHMtPnliYXNlOwogCkBAIC0xODQ0LDYgKzIwMTMsMTEgQEAgeF9kcmF3X2NvbXBvc2l0ZV9n bHlwaF9zdHJpbmdfZm9yZWdyb3VuZCAoc3RydWN0IGdseXBoX3N0cmluZyAqcykKIAkgICAgZm9u dC0+ZHJpdmVyLT5kcmF3IChzLCBqLCBpLCB4ICsgMSwgeSwgZmFsc2UpOwogCX0KICAgICB9Cisj aWZkZWYgVVNFX0NBSVJPCisJaWYgKEVRIChmb250LT5kcml2ZXItPnR5cGUsIFF4KSkKKwkgIHhf ZW5kX2NyX3hsaWJfZHJhd2FibGUgKHMtPmYsIHMtPmdjKTsKKyAgICAgIH0KKyNlbmRpZgkvKiBV U0VfQ0FJUk8gKi8KIH0KIAogCg== --Multipart_Tue_Jun__4_16:47:56_2019-1--