From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: jared--- via "Emacs development discussions." Newsgroups: gmane.emacs.devel Subject: Re: Additional xterm-mouse cleanup Date: Tue, 02 Feb 2021 00:24:27 -0800 Message-ID: <4ab742d461a50a1b9a0debba781a18ad@finder.org> References: Reply-To: Jared Finder Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=_97fc64f5c29b400ccb2be4a59d5e82a6" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25121"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Roundcube Webmail/1.3.16 Cc: "jared--- via \"Emacs development discussions.\"" To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Feb 02 09:25:15 2021 Return-path: Envelope-to: ged-emacs-devel@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 1l6qzq-0006Pe-Ph for ged-emacs-devel@m.gmane-mx.org; Tue, 02 Feb 2021 09:25:14 +0100 Original-Received: from localhost ([::1]:35866 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l6qzp-0007ly-RP for ged-emacs-devel@m.gmane-mx.org; Tue, 02 Feb 2021 03:25:13 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:54412) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l6qzC-0007Kr-LM for emacs-devel@gnu.org; Tue, 02 Feb 2021 03:24:34 -0500 Original-Received: from greenhill.hpalace.com ([192.155.80.58]:50162) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l6qzA-0005px-69 for emacs-devel@gnu.org; Tue, 02 Feb 2021 03:24:34 -0500 Original-Received: from mail.finder.org (greenhill.hpalace.com [IPv6:2600:3c01::f03c:91ff:fe73:2daa]) by greenhill.hpalace.com (Postfix) with ESMTPSA id 52AE9BA5; Tue, 2 Feb 2021 08:24:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=finder.org; s=2018; t=1612254268; bh=MPiuMZGlE5U8O+/FMojaEOZWGdd133JoAjxHt8PKSLo=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=cmLDBybQsOXtM0VF49p4IveFef9+nVhTRT+pBSbUjPPFHLzChxMPFSPoL1YTOXZsr Fl43uA61ZeJ911kes0Pyb7Kk6TLCFbRiyMuIhiFp2o70eLkZGSHqNrb8t0/ZzFzOFm 2punqJ+CeSsTFE/bLSGMwK+n3xF4t4ACXlb/bSkBrX+B834YiTUhdBl4IrP2H0nClz 5++Mo6MCnrJ+QOlMWg2FRiMYNic+aFKLxZvD4uR2UEaBn9wBx9KiWcMh+sFrXOKz5I kpBdjVfqrOZjeSkDdZw+Jka+rFv4dDPujaD5O9dkd5INBBz6Vv2PCPauOnQkMzrGhm syfxBroyJYpmw== In-Reply-To: X-Sender: jared@finder.org Received-SPF: pass client-ip=192.155.80.58; envelope-from=jared@finder.org; helo=greenhill.hpalace.com X-Spam_score_int: 12 X-Spam_score: 1.2 X-Spam_bar: + X-Spam_report: (1.2 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_SBL_CSS=3.335, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:263708 Archived-At: --=_97fc64f5c29b400ccb2be4a59d5e82a6 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2021-01-28 6:25 am, Stefan Monnier wrote: >> - (while (or (memq char (append help-event-list >> - (cons help-char '(?? ?\C-v ?\s ?\177 delete backspace >> vertical-scroll-bar ?\M-v)))) >> + (while (or (memq (event-basic-type char) >> + (append help-event-list >> + (list help-char ?? >> ?\C-v ?\s ?\177 >> + 'delete >> 'backspace >> + >> 'vertical-scroll-bar >> + 'mouse-4 'mouse-5 >> ?\M-v))) > > LGTM, but it would be good to improve the code so it determine this set > of events automatically, e.g. by looking up local-map or something. I just went ahead and did a cleanup of the logic around here. Now there's a keymap for all the navigation commands. Also a simple cache of all help characters. Updated patch attached. >> Subject: [PATCH 3/4] Support 'mouse-autoselect-window' for GPM and >> xterm mouse > > I think this should be consolidated with the *very* similar code in > `src/msdos.c` and `src/w32inevt.c`. > > [ Ideally it should also be consolidated with the > `Vmouse_autoselect_window` > support in `src/xterm.c`, `src/nsterm.m`, and `src/w32term.c`. ] I completely agree. However, I don't have access to any of those platforms to test against, so I do not feel comfortable making any changes. Instead I added a fixme to all the different locations handling mouse movement. Updated patch attached. >> The function read_char normally clears the active echo area after >> reading any event. When xterm-mouse-mode is active the event can get >> discarded when input-decode-map is applied (example: a mouse movement >> escape sequence with 'track-mouse' set to nil) in which case the echo >> area should stay unchanged. Other translation keymaps are not >> intended to ever discard events so the restoring is only done for >> input-decode-map. > > Actually, I have had translations in `function-key-map` which end up > discarding the input (and I can't think of any reason why > `key-translation-map` wouldn't ever want to do that either, other than > the fact that it's virtually never used). Okay, this is easy enough to do. I'll just move the restoration to the replay_sequence tag in read_key_sequence. >> if (done) >> { >> mock_input = diff + max (t, mock_input); >> + >> + /* By this point the echo area was cleared by calls to >> + read_char. However, we may have completely thrown >> + out the input (for example if decoding a mouse move >> + event but `track-mouse' is nil) in which case the >> + echo area should be restored to its pristene >> + state. */ >> + echo_area_buffer[0] = echo_area_buffer[1]; >> goto replay_sequence; >> } > > [ Oh ... how I hate that echo area code. ] > > I think this needs a reproducible test case, ideally one we can run in > batch as part of our test suite. I can do this, but I'm not sure what is the right way to test here. Best I can see is to use current-message to read the current message string, set unread-command-events to simulate key presses, and then call read-key-sequence with a timeotu (like how read-key works). Does this sound right? > Also, I'm curious about a few things: > - How do we know that the echo area was cleared by calls to > `read_char`? > [ Do we even know for sure that `read_char` always clears it? ] read_char clears the echo area by calling "clear_message (1, 0)" if it encounters any event other than help-echo, switch-frame, or select-window in normal flow. See the comment "Now wipe the echo area, except for" in read_char. > - How do we know that this extra line has the effect of restoring it to > its pristine state? Isn't that what echo_area_buffer[1] is for? See echo_area_display. I could be missing something though, let me know if I have this wrong. It would be easy enough to add a local variable instead for the echo message when read_key_sequence is called. > I think I'd like it better if we could make those things clear in > the code. E.g. by having the "code that clears" set some variable > indicating that it's indeed been cleared and maybe also how it's been > cleared, and which we can then use here. > > Or alternatively, change the "code that clears" so that it doesn't > actually clear when called from `read_key_sequence` and let > `read_key_sequence` take care of clearing the echo area once it has > *really* read some input? I don't think these are feasible as read_char's modifications of the echo area can be dependent on waiting for user input. Specifically, it echos the dash (via echo_dash) while waiting for input after an idle timer activates. Pulling out read_char's existing code around idle timers to control all this will be a beast to pull out. Additionally, I don't see how read_key_sequence could know any better what to do as the translation maps are just translating individual character events that if typed slowly *should* be echoed. -- MJF --=_97fc64f5c29b400ccb2be4a59d5e82a6 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-Improve-behavior-for-make-help-screen.patch Content-Disposition: attachment; filename=0001-Improve-behavior-for-make-help-screen.patch; size=5445 RnJvbSAxMmU0NDIzMTc4NjJmMzJjMzVhOTkwMjkwZTBmZGRmMWRiMDVkNGZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXJlZCBGaW5kZXIgPGphcmVkQGZpbmRlci5vcmc+CkRhdGU6 IFRodSwgMyBEZWMgMjAyMCAyMjo0MjowNSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMS8zXSBJbXBy b3ZlIGJlaGF2aW9yIGZvciBgbWFrZS1oZWxwLXNjcmVlbicKCiogbGlzcC9oZWxwLW1hY3JvLmVs IChtYWtlLWhlbHAtc2NyZWVuKTogRG9uJ3QgcmVhZCBqdXN0IHRoZSBFU0MgaW4gYQp0ZXJtaW5h bCBlc2NhcGUgc2VxdWVuY2UuICBBZGQga2V5bWFwIHRvIGNvbnRyb2wgc2Nyb2xsaW5nIGxvZ2lj IGZvcgpoZWxwIHNjcmVlbi4gIFRoZW4gYWRkIG1vdXNlIHdoZWVsIHRvIHRoYXQga2V5bWFwLgot LS0KIGxpc3AvaGVscC1tYWNyby5lbCB8IDc1ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspLCAzNiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL2hlbHAtbWFjcm8uZWwgYi9saXNwL2hlbHAt bWFjcm8uZWwKaW5kZXggNzkxYjEwYTg3OC4uNTE5N2FlNDk2ZiAxMDA2NDQKLS0tIGEvbGlzcC9o ZWxwLW1hY3JvLmVsCisrKyBiL2xpc3AvaGVscC1tYWNyby5lbApAQCAtMTAzLDEwICsxMDMsMTQg QEAgbWFrZS1oZWxwLXNjcmVlbgogCSAgICh3aGVuIHRocmVlLXN0ZXAtaGVscAogCSAgICAgKG1l c3NhZ2UgIiVzIiBsaW5lLXByb21wdCkpCiAJICAgKGxldCogKChoZWxwLXNjcmVlbiAoZG9jdW1l bnRhdGlvbiAocXVvdGUgLGRvYy1mbikpKQorICAgICAgICAgICAgICAgICAgKGhlbHAtY2hhcnMg KGFwcGVuZCAobGlzdCA/PyBoZWxwLWNoYXIpIGhlbHAtZXZlbnQtbGlzdCkpCisgICAgICAgICAg ICAgICAgICA7OyBDb21tYW5kcyBpbiB0aGlzIG1hcCBhcmUgZXhlY3V0ZWQgd2l0aCBlcnJvcnMK KyAgICAgICAgICAgICAgICAgIDs7IGlnbm9yZWQuCisgICAgICAgICAgICAgICAgICAobmF2aWdh dGlvbi1tYXAgKG1ha2Utc3BhcnNlLWtleW1hcCkpCiAJCSAgOzsgV2UgYmluZCBvdmVycmlkaW5n LWxvY2FsLW1hcCBmb3IgdmVyeSBzbWFsbAogCQkgIDs7IHNlY3Rpb25zLCAqZXhjbHVkaW5nKiB3 aGVyZSB3ZSBzd2l0Y2ggYnVmZmVycwogCQkgIDs7IGFuZCB3aGVyZSB3ZSBleGVjdXRlIHRoZSBj aG9zZW4gaGVscCBjb21tYW5kLgotCQkgIChsb2NhbC1tYXAgKG1ha2Utc3BhcnNlLWtleW1hcCkp CisJCSAgKGxvY2FsLW1hcCAobWFrZS1jb21wb3NlZC1rZXltYXAgbmF2aWdhdGlvbi1tYXAgLGhl bHBlZC1tYXApKQogCQkgIChuZXctbWlub3ItbW9kZS1tYXAtYWxpc3QgbWlub3ItbW9kZS1tYXAt YWxpc3QpCiAJCSAgKHByZXYtZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkKIAkJICBjb25maWcgbmV3 LWZyYW1lIGtleSBjaGFyKQpAQCAtMTE3LDIyICsxMjEsMzIgQEAgbWFrZS1oZWxwLXNjcmVlbgog CQkJCSAgICB0IHQgaGVscC1zY3JlZW4pKSkKIAkgICAgICh1bndpbmQtcHJvdGVjdAogCQkgKGxl dCAoKG1pbm9yLW1vZGUtbWFwLWFsaXN0IG5pbCkpCi0JCSAgIChzZXRjZHIgbG9jYWwtbWFwICxo ZWxwZWQtbWFwKQogCQkgICAoZGVmaW5lLWtleSBsb2NhbC1tYXAgW3RdICd1bmRlZmluZWQpCi0J CSAgIDs7IE1ha2UgdGhlIHNjcm9sbCBiYXIga2VlcCB3b3JraW5nIG5vcm1hbGx5LgotCQkgICAo ZGVmaW5lLWtleSBsb2NhbC1tYXAgW3ZlcnRpY2FsLXNjcm9sbC1iYXJdCi0JCSAgICAgKGxvb2t1 cC1rZXkgZ2xvYmFsLW1hcCBbdmVydGljYWwtc2Nyb2xsLWJhcl0pKQotCQkgICAoaWYgdGhyZWUt c3RlcC1oZWxwCi0JCSAgICAgICAocHJvZ24KLQkJCSAoc2V0cSBrZXkgKGxldCAoKG92ZXJyaWRp bmctbG9jYWwtbWFwIGxvY2FsLW1hcCkpCi0JCQkJICAgICAocmVhZC1rZXktc2VxdWVuY2Ugbmls KSkpCi0JCQkgOzsgTWFrZSB0aGUgSEVMUCBrZXkgdHJhbnNsYXRlIHRvIEMtaC4KLQkJCSAoaWYg KGxvb2t1cC1rZXkgZnVuY3Rpb24ta2V5LW1hcCBrZXkpCi0JCQkgICAgIChzZXRxIGtleSAobG9v a3VwLWtleSBmdW5jdGlvbi1rZXktbWFwIGtleSkpKQotCQkJIChzZXRxIGNoYXIgKGFyZWYga2V5 IDApKSkKLQkJICAgICAoc2V0cSBjaGFyID8/KSkKLQkJICAgKHdoZW4gKG9yIChlcSBjaGFyID8/ KSAoZXEgY2hhciBoZWxwLWNoYXIpCi0JCQkgICAgIChtZW1xIGNoYXIgaGVscC1ldmVudC1saXN0 KSkKKyAgICAgICAgICAgICAgICAgICA7OyBNYWtlIHRlcm1pbmFsIGVzY2FwZSBzZXF1ZW5jZXMg YmUgZnVsbHkgcmVhZC4KKyAgICAgICAgICAgICAgICAgICAoZGVmaW5lLWtleSBsb2NhbC1tYXAg IlxlIiBuaWwpCisKKyAgICAgICAgICAgICAgICAgICA7OyBDdXN0b20gbmF2aWdhdGlvbiBjb21t YW5kcy4KKyAgICAgICAgICAgICAgICAgICAoZG9saXN0IChrZXkgJygiXEMtdiIgIlxzIikpCisg ICAgICAgICAgICAgICAgICAgICAoZGVmaW5lLWtleSBuYXZpZ2F0aW9uLW1hcCBrZXkgJ3Njcm9s bC11cCkpCisgICAgICAgICAgICAgICAgICAgKGRvbGlzdCAoa2V5ICcoIlxNLXYiICJcZCIgW2Rl bGV0ZV0gW2JhY2tzcGFjZV0pKQorICAgICAgICAgICAgICAgICAgICAgKGRlZmluZS1rZXkgbmF2 aWdhdGlvbi1tYXAga2V5ICdzY3JvbGwtZG93bikpCisgICAgICAgICAgICAgICAgICAgOzsgTmF2 aWdhdGlvbiBjb21tYW5kcyB0aGF0IGtlZXAgd29ya2luZyBub3JtYWxseS4KKyAgICAgICAgICAg ICAgICAgICAoZG9saXN0IChrZXkgJyg7OyBDbGlja3MgaW4gdGhlIHNjcm9sbGJhcgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2ZXJ0aWNhbC1zY3JvbGwtYmFyXQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IE1vdXNlIHdoZWVsIGV2ZW50cworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb3VzZS00XSBbbW91c2UtNV0gW2Rvd24tbW91 c2UtNF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZG93bi1tb3VzZS01XQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEZyYW1lIHN3aXRjaGluZworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzd2l0Y2gtZnJhbWVdKSkKKyAgICAgICAg ICAgICAgICAgICAgIChkZWZpbmUta2V5IG5hdmlnYXRpb24tbWFwIGtleQorICAgICAgICAgICAg ICAgICAgICAgICAobG9va3VwLWtleSBnbG9iYWwtbWFwIGtleSkpKQorCisgICAgICAgICAgICAg ICAgICAgKHNldHEga2V5IChpZiB0aHJlZS1zdGVwLWhlbHAKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsZXQgKChvdmVycmlkaW5nLWxvY2FsLW1hcCBsb2NhbC1tYXApKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVhZC1rZXktc2VxdWVuY2UtdmVjdG9y IG5pbCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWz8/XSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICBjaGFyIChhcmVmIGtleSAwKSkKKwkJICAgKHdoZW4gKG1lbXEgY2hhciBo ZWxwLWNoYXJzKQogCQkgICAgIChzZXRxIGNvbmZpZyAoY3VycmVudC13aW5kb3ctY29uZmlndXJh dGlvbikpCiAJCSAgICAgKHBvcC10by1idWZmZXIgIiAqTWV0YWhlbHAqIiBuaWwgdCkKIAkJICAg ICAoYW5kIChmYm91bmRwICdtYWtlLWZyYW1lKQpAQCAtMTQ4LDMyICsxNjIsMjEgQEAgbWFrZS1o ZWxwLXNjcmVlbgogCQkgICAgICAgKGhlbHAtbW9kZSkKIAkJICAgICAgIChzZXRxIG5ldy1taW5v ci1tb2RlLW1hcC1hbGlzdCBtaW5vci1tb2RlLW1hcC1hbGlzdCkpCiAJCSAgICAgKGdvdG8tY2hh ciAocG9pbnQtbWluKSkKLQkJICAgICAod2hpbGUgKG9yIChtZW1xIGNoYXIgKGFwcGVuZCBoZWxw LWV2ZW50LWxpc3QKLQkJCQkJCSAgIChjb25zIGhlbHAtY2hhciAnKD8/ID9cQy12ID9ccyA/XDE3 NyBkZWxldGUgYmFja3NwYWNlIHZlcnRpY2FsLXNjcm9sbC1iYXIgP1xNLXYpKSkpCi0JCQkJKGVx IChjYXItc2FmZSBjaGFyKSAnc3dpdGNoLWZyYW1lKQotCQkJCShlcXVhbCBrZXkgIlxNLXYiKSkK LQkJICAgICAgIChjb25kaXRpb24tY2FzZSBuaWwKLQkJCSAgIChjb25kCi0JCQkgICAgKChlcSAo Y2FyLXNhZmUgY2hhcikgJ3N3aXRjaC1mcmFtZSkKLQkJCSAgICAgKGhhbmRsZS1zd2l0Y2gtZnJh bWUgY2hhcikpCi0JCQkgICAgKChtZW1xIGNoYXIgJyg/XEMtdiA/XHMpKQotCQkJICAgICAoc2Ny b2xsLXVwKSkKLQkJCSAgICAoKG9yIChtZW1xIGNoYXIgJyg/XDE3NyA/XE0tdiBkZWxldGUgYmFj a3NwYWNlKSkKLQkJCQkgKGVxdWFsIGtleSAiXE0tdiIpKQotCQkJICAgICAoc2Nyb2xsLWRvd24p KSkKLQkJCSAoZXJyb3IgbmlsKSkKKyAgICAgICAgICAgICAgICAgICAgICh3aGlsZSAob3IgKG1l bXEgKGV2ZW50LWJhc2ljLXR5cGUgY2hhcikgaGVscC1jaGFycykKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxvb2t1cC1rZXkgbmF2aWdhdGlvbi1tYXAga2V5KSkKKyAgICAgICAg ICAgICAgICAgICAgICAgKGxldCAoKGJpbmRpbmcgKGxvb2t1cC1rZXkgbmF2aWdhdGlvbi1tYXAg a2V5KSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW4gYmluZGluZworICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbmRpdGlvbi1jYXNlIG5pbAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjb21tYW5kLWV4ZWN1dGUgYmluZGluZyBuaWwga2V5KQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoZXJyb3IgbmlsKSkpKQogCQkgICAgICAgKGxldCAoKGN1cnNv ci1pbi1lY2hvLWFyZWEgdCkKIAkJCSAgICAgKG92ZXJyaWRpbmctbG9jYWwtbWFwIGxvY2FsLW1h cCkpCi0JCQkgKHNldHEga2V5IChyZWFkLWtleS1zZXF1ZW5jZQorCQkJIChzZXRxIGtleSAocmVh ZC1rZXktc2VxdWVuY2UtdmVjdG9yCiAJCQkJICAgIChmb3JtYXQgIlR5cGUgb25lIG9mIHRoZSBv cHRpb25zIGxpc3RlZCVzOiAiCiAJCQkJCSAgICAoaWYgKHBvcy12aXNpYmxlLWluLXdpbmRvdy1w CiAJCQkJCQkgKHBvaW50LW1heCkpCiAJCQkJCQkiIiAiLCBvciBTUEFDRSBvciBERUwgdG8gc2Ny b2xsIikpKQotCQkJICAgICAgIGNoYXIgKGFyZWYga2V5IDApKSkKLQotCQkgICAgICAgOzsgSWYg dGhpcyBpcyBhIHNjcm9sbCBiYXIgY29tbWFuZCwganVzdCBydW4gaXQuCi0JCSAgICAgICAod2hl biAoZXEgY2hhciAndmVydGljYWwtc2Nyb2xsLWJhcikKLQkJCSAoY29tbWFuZC1leGVjdXRlIChs b29rdXAta2V5IGxvY2FsLW1hcCBrZXkpIG5pbCBrZXkpKSkpCisJCQkgICAgICAgY2hhciAoYXJl ZiBrZXkgMCkpKSkpCiAJCSAgIDs7IFdlIGRvbid0IG5lZWQgdGhlIHByb21wdCBhbnkgbW9yZS4K IAkJICAgKG1lc3NhZ2UgIiIpCiAJCSAgIDs7IE1vdXNlIGNsaWNrcyBhcmUgbm90IHBhcnQgb2Yg dGhlIGhlbHAgZmVhdHVyZSwKLS0gCjIuMjAuMQoK --=_97fc64f5c29b400ccb2be4a59d5e82a6 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0002-Support-mouse-autoselect-window-for-GPM-and-xterm-mo.patch Content-Disposition: attachment; filename=0002-Support-mouse-autoselect-window-for-GPM-and-xterm-mo.patch; size=4307 RnJvbSAwMjE5ZjhlMWFmMjQ4NDQxODliNmYzYWMzYWY3ZjExMzc5ZmQzYTk0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXJlZCBGaW5kZXIgPGphcmVkQGZpbmRlci5vcmc+CkRhdGU6 IFNhdCwgMjMgSmFuIDIwMjEgMTY6NTM6NDMgLTA4MDAKU3ViamVjdDogW1BBVENIIDIvM10gU3Vw cG9ydCAnbW91c2UtYXV0b3NlbGVjdC13aW5kb3cnIGZvciBHUE0gYW5kIHh0ZXJtIG1vdXNlCgoq IHNyYy9kaXNwbmV3LmMgKHVwZGF0ZV9tb3VzZV9wb3NpdGlvbik6IEdlbmVyYXRlIFNFTEVDVF9X SU5ET1dfRVZFTlQuCi0tLQogc3JjL2Rpc3BuZXcuYyAgfCAzMiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLQogc3JjL21zZG9zLmMgICAgfCAgMSArCiBzcmMvbnN0ZXJtLm0gICB8ICAx ICsKIHNyYy93MzJpbmV2dC5jIHwgIDEgKwogc3JjL3czMnRlcm0uYyAgfCAgMSArCiBzcmMveHRl cm0uYyAgICB8ICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvZGlzcG5ldy5jIGIvc3JjL2Rpc3BuZXcuYwppbmRl eCBlNjAzYzY3MTM2Li41ZGM0YWMyNGRiIDEwMDY0NAotLS0gYS9zcmMvZGlzcG5ldy5jCisrKyBi L3NyYy9kaXNwbmV3LmMKQEAgLTMzMzUsMTEgKzMzMzUsMzkgQEAgdXBkYXRlX2ZyYW1lX3dpdGhf bWVudSAoc3RydWN0IGZyYW1lICpmLCBpbnQgcm93LCBpbnQgY29sKQogaW50CiB1cGRhdGVfbW91 c2VfcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAqZiwgaW50IHgsIGludCB5KQogeworICBpbnQgZXZl bnRfY291bnQgPSAwOworCiAgIHByZXZpb3VzX2hlbHBfZWNob19zdHJpbmcgPSBoZWxwX2VjaG9f c3RyaW5nOwogICBoZWxwX2VjaG9fc3RyaW5nID0gUW5pbDsKIAogICBub3RlX21vdXNlX2hpZ2hs aWdodCAoZiwgeCwgeSk7CiAKKyAgLyogV2hlbiB0aGUgbW91c2UgbW92ZXMgb3ZlciBhIG5ldyB3 aW5kb3csIGdlbmVyYXRlIGEKKyAgICAgU0VMRUNUX1dJTkRPV19FVkVOVC4gICovCisgIGlmICgh TklMUCAoVm1vdXNlX2F1dG9zZWxlY3Rfd2luZG93KSkKKyAgICB7CisgICAgICBzdGF0aWMgTGlz cF9PYmplY3QgbGFzdF9tb3VzZV93aW5kb3c7CisgICAgICBMaXNwX09iamVjdCB3aW5kb3cgPSB3 aW5kb3dfZnJvbV9jb29yZGluYXRlcyAoZiwgeCwgeSwgMCwgMCwgMCk7CisKKyAgICAgIC8qIFdp bmRvdyB3aWxsIGJlIHNlbGVjdGVkIG9ubHkgd2hlbiBpdCBpcyBub3Qgc2VsZWN0ZWQgbm93IGFu ZAorCSBsYXN0IG1vdXNlIG1vdmVtZW50IGV2ZW50IHdhcyBub3QgaW4gaXQuICBNaW5pYnVmZmVy IHdpbmRvdworCSB3aWxsIGJlIHNlbGVjdGVkIG9ubHkgd2hlbiBpdCBpcyBhY3RpdmUuICAqLwor ICAgICAgaWYgKFdJTkRPV1AgKHdpbmRvdykKKwkgICYmICFFUSAod2luZG93LCBsYXN0X21vdXNl X3dpbmRvdykKKwkgICYmICFFUSAod2luZG93LCBzZWxlY3RlZF93aW5kb3cpKQorCXsKKwkgIHN0 cnVjdCBpbnB1dF9ldmVudCBldmVudDsKKwkgIEVWRU5UX0lOSVQgKGV2ZW50KTsKKwkgIGV2ZW50 LmtpbmQgPSBTRUxFQ1RfV0lORE9XX0VWRU5UOworCSAgZXZlbnQuZnJhbWVfb3Jfd2luZG93ID0g d2luZG93OworCSAga2JkX2J1ZmZlcl9zdG9yZV9ldmVudCAoJmV2ZW50KTsKKwkgICsrZXZlbnRf Y291bnQ7CisJfQorCisgICAgICAvKiBSZW1lbWJlciB0aGUgbGFzdCB3aW5kb3cgd2hlcmUgd2Ug c2F3IHRoZSBtb3VzZS4gICovCisgICAgICBsYXN0X21vdXNlX3dpbmRvdyA9IHdpbmRvdzsKKyAg ICB9CisKICAgLyogSWYgdGhlIGNvbnRlbnRzIG9mIHRoZSBnbG9iYWwgdmFyaWFibGUgaGVscF9l Y2hvX3N0cmluZwogICAgICBoYXMgY2hhbmdlZCwgZ2VuZXJhdGUgYSBIRUxQX0VWRU5ULiAgKi8K ICAgaWYgKCFOSUxQIChoZWxwX2VjaG9fc3RyaW5nKQpAQCAtMzM1MCwxMCArMzM3OCwxMCBAQCB1 cGRhdGVfbW91c2VfcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAqZiwgaW50IHgsIGludCB5KQogCiAg ICAgICBnZW5faGVscF9ldmVudCAoaGVscF9lY2hvX3N0cmluZywgZnJhbWUsIGhlbHBfZWNob193 aW5kb3csCiAgICAgICAgICAgICAgICAgICAgICAgaGVscF9lY2hvX29iamVjdCwgaGVscF9lY2hv X3Bvcyk7Ci0gICAgICByZXR1cm4gMTsKKyAgICAgICsrZXZlbnRfY291bnQ7CiAgICAgfQogCi0g IHJldHVybiAwOworICByZXR1cm4gZXZlbnRfY291bnQ7CiB9CiAKIERFRlVOICgiZGlzcGxheS0t dXBkYXRlLWZvci1tb3VzZS1tb3ZlbWVudCIsIEZkaXNwbGF5X191cGRhdGVfZm9yX21vdXNlX21v dmVtZW50LApkaWZmIC0tZ2l0IGEvc3JjL21zZG9zLmMgYi9zcmMvbXNkb3MuYwppbmRleCA1ZGEw MWM5ZTdjLi4wZGFiODlkOWRmIDEwMDY0NAotLS0gYS9zcmMvbXNkb3MuYworKysgYi9zcmMvbXNk b3MuYwpAQCAtMjYzOSw2ICsyNjM5LDcgQEAgZG9zX3Jhd2dldGMgKHZvaWQpCiAgICAgICAvKiBD aGVjayBmb3IgbW91c2UgbW92ZW1lbnQgKmJlZm9yZSogYnV0dG9ucy4gICovCiAgICAgICBtb3Vz ZV9jaGVja19tb3ZlZCAoKTsKIAorICAgICAgLyogRklYTUU6IENvbWJpbmUgdGhpcyBsb2dpYyB3 aXRoIHVwZGF0ZV9tb3VzZV9wb3NpdGlvbi4gICovCiAgICAgICAvKiBJZiB0aGUgbW91c2UgbW92 ZWQgZnJvbSB0aGUgc3BvdCBvZiBpdHMgbGFzdCBzaWdodGluZywgd2UKICAgICAgICAgIG1pZ2h0 IG5lZWQgdG8gdXBkYXRlIG1vdXNlIGhpZ2hsaWdodC4gICovCiAgICAgICBpZiAobW91c2VfbGFz dF94ICE9IG1vdXNlX3ByZXZfeCB8fCBtb3VzZV9sYXN0X3kgIT0gbW91c2VfcHJldl95KQpkaWZm IC0tZ2l0IGEvc3JjL25zdGVybS5tIGIvc3JjL25zdGVybS5tCmluZGV4IDFiMjMyODYyOGUuLjYw YWNkYTFiY2QgMTAwNjQ0Ci0tLSBhL3NyYy9uc3Rlcm0ubQorKysgYi9zcmMvbnN0ZXJtLm0KQEAg LTcwMzcsNiArNzAzNyw3IEBAIC0gKHZvaWQpIHNjcm9sbFdoZWVsOiAoTlNFdmVudCAqKXRoZUV2 ZW50CiB9CiAKIAorLyogRklYTUU6IENvbWJpbmUgdGhpcyBsb2dpYyB3aXRoIHVwZGF0ZV9tb3Vz ZV9wb3NpdGlvbi4gICovCiAvKiBUZWxsIGVtYWNzIHRoZSBtb3VzZSBoYXMgbW92ZWQuICAqLwog LSAodm9pZCltb3VzZU1vdmVkOiAoTlNFdmVudCAqKWUKIHsKZGlmZiAtLWdpdCBhL3NyYy93MzJp bmV2dC5jIGIvc3JjL3czMmluZXZ0LmMKaW5kZXggMWE4MGEwMDE5Ny4uMzgzMTY5YzNkMSAxMDA2 NDQKLS0tIGEvc3JjL3czMmluZXZ0LmMKKysrIGIvc3JjL3czMmluZXZ0LmMKQEAgLTQ3Myw2ICs0 NzMsNyBAQCBkb19tb3VzZV9ldmVudCAoTU9VU0VfRVZFTlRfUkVDT1JEICpldmVudCwKICAgc3dp dGNoIChmbGFncykKICAgICB7CiAgICAgY2FzZSBNT1VTRV9NT1ZFRDoKKyAgICAgIC8qIEZJWE1F OiBDb21iaW5lIHRoaXMgbG9naWMgd2l0aCB1cGRhdGVfbW91c2VfcG9zaXRpb24uICAqLwogICAg ICAgewogCXN0cnVjdCBmcmFtZSAqZiA9IGdldF9mcmFtZSAoKTsKIAlNb3VzZV9ITEluZm8gKmhs aW5mbyA9IE1PVVNFX0hMX0lORk8gKGYpOwpkaWZmIC0tZ2l0IGEvc3JjL3czMnRlcm0uYyBiL3Ny Yy93MzJ0ZXJtLmMKaW5kZXggMGVlODA1YTg1Mi4uN2U5YjY0MTQxNCAxMDA2NDQKLS0tIGEvc3Jj L3czMnRlcm0uYworKysgYi9zcmMvdzMydGVybS5jCkBAIC01MDgzLDYgKzUwODMsNyBAQCB3MzJf cmVhZF9zb2NrZXQgKHN0cnVjdCB0ZXJtaW5hbCAqdGVybWluYWwsCiAJICBicmVhazsKIAogCWNh c2UgV01fTU9VU0VNT1ZFOgorCSAgLyogRklYTUU6IENvbWJpbmUgdGhpcyBsb2dpYyB3aXRoIHVw ZGF0ZV9tb3VzZV9wb3NpdGlvbi4gICovCiAJICAvKiBJZ25vcmUgbm9uLW1vdmVtZW50LiAgKi8K IAkgIHsKIAkgICAgaW50IHggPSBMT1dPUkQgKG1zZy5tc2cubFBhcmFtKTsKZGlmZiAtLWdpdCBh L3NyYy94dGVybS5jIGIvc3JjL3h0ZXJtLmMKaW5kZXggNzQ0YjgwYzY4YS4uZDlmYjM4OWY4OSAx MDA2NDQKLS0tIGEvc3JjL3h0ZXJtLmMKKysrIGIvc3JjL3h0ZXJtLmMKQEAgLTg4MzAsNiArODgz MCw3IEBAIGhhbmRsZV9vbmVfeGV2ZW50IChzdHJ1Y3QgeF9kaXNwbGF5X2luZm8gKmRweWluZm8s CiAgICAgICBnb3RvIE9USEVSOwogCiAgICAgY2FzZSBNb3Rpb25Ob3RpZnk6CisgICAgICAvKiBG SVhNRTogQ29tYmluZSB0aGlzIGxvZ2ljIHdpdGggdXBkYXRlX21vdXNlX3Bvc2l0aW9uLiAgKi8K ICAgICAgIHsKICAgICAgICAgeF9kaXNwbGF5X3NldF9sYXN0X3VzZXJfdGltZSAoZHB5aW5mbywg ZXZlbnQtPnhtb3Rpb24udGltZSk7CiAgICAgICAgIHByZXZpb3VzX2hlbHBfZWNob19zdHJpbmcg PSBoZWxwX2VjaG9fc3RyaW5nOwotLSAKMi4yMC4xCgo= --=_97fc64f5c29b400ccb2be4a59d5e82a6--