From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ot1-x32c.google.com (mail-ot1-x32c.google.com [IPv6:2607:f8b0:4864:20::32c]) by sourceware.org (Postfix) with ESMTPS id A5E053858C54 for ; Sat, 28 Jan 2023 00:43:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A5E053858C54 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ot1-x32c.google.com with SMTP id m18-20020a05683026d200b0068661404380so2770155otu.2 for ; Fri, 27 Jan 2023 16:43:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=SaJij+NS21HMKqSd9N8dyyAMd5p5SoRkS2rWUlqln+Y=; b=PyWQF8V29uSrm9hN7ft1XOebQrppqiR6N5aYhhZG2KFmOqfSxGDZ14ry4I/pQ5WPb3 oviENxYPFkxRAGBUB8i/WLmjbngsmRTXBDpGbxwpGFB2pZalJ3kbOLxbPKnAzIVloWiw b2VknHoXPpZc89aJFrsIy2aVbafmS7G7KcwMIErG88oIzZqARBU5ShP31cdS7Ay39MGi 6VV+LEHGd8zbzb4Adt58EbYrMKAE7UumP274XECnuFULrzX83w8WLwT9l7e5mqWXtaqB Ik4B22F3RYEW8GzHivIvjdZH3AMoSzj9UT8nhVs7o3+qvAm7SptovB/wHCkY7beV7+jP IDpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=SaJij+NS21HMKqSd9N8dyyAMd5p5SoRkS2rWUlqln+Y=; b=MTdNnYoHiJ9zA3TqaRPha3PcorbECvUCUF5bRkilJStHfLEyUlV1f1kHeiFUBnFmqm u0RfuKIqmFsEJ6JYHYHnPJ3eiVNgaIYnffq/pBR3Uq82j5Hmif+1pOGBDsCN/5cyfC6o 2nlpfjcEw2SVP1xInvcQeFLVEZlW7CUASk3hkbq1Gl819WbOUje72RWqOA5ps9aGm5RT 9KO/ETjimj8GYoHi2GcrYyzzJzSVIby1SdUlzmIbMEjLcDygpAb54ji1gH3GZVHyxTI+ Fckww81TnLV5I2Xo6PdhGLlPKCMKvb3o+mBEND9zRNZZ2iookQT9bxrbuBo0HG5qN4Yd w/6A== X-Gm-Message-State: AFqh2kohPX399n3t8IxZtYLUxT7MQvCBUZeq0nNvA8ev97lB+TE2uNEC z8v091EBruV4SPdcdIWNhsfwGrnUbKlwAguv46Jp1Xmf6e8= X-Google-Smtp-Source: AMrXdXuSPCqJ2IHxx9w365Snl133uuDUQEEuVhn6dYqDCqd/bq2ats1tW/CQud0DRUc5pWOPYHMdW+5DDnKkCGZKD7w= X-Received: by 2002:a05:6830:2656:b0:686:df23:4276 with SMTP id f22-20020a056830265600b00686df234276mr891339otu.148.1674866589805; Fri, 27 Jan 2023 16:43:09 -0800 (PST) MIME-Version: 1.0 From: strager Date: Fri, 27 Jan 2023 16:42:58 -0800 Message-ID: Subject: [PATCH] gdb/tui: add 'set tui mouse-events off' to restore mouse selection To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary="00000000000021fa8405f348449f" X-Spam-Status: No, score=-8.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --00000000000021fa8405f348449f Content-Type: text/plain; charset="UTF-8" >From 991bf4f7c3d58cb8d8858cf4284c360719843350 Mon Sep 17 00:00:00 2001 From: "Matthew \"strager\" Glazar" Date: Fri, 27 Jan 2023 16:19:45 -0800 Subject: [PATCH] gdb/tui: add 'set tui mouse-events off' to restore mouse selection Rationale: I use the mouse with my terminal to select and copy text. In gdb, I use the mouse to select a function name to set a breakpoint, or a variable name to print, for example. When gdb is compiled with ncurses mouse support, gdb's TUI mode intercepts mouse events. Left-clicking and dragging, which would normally select text, seems to do nothing. This means I cannot select text using my mouse anymore. This makes it harder to set breakpoints, print variables, etc. Solution: I tried to fix this issue by editing the 'mousemask' call to only enable buttons 4 and 5. However, this still caused my terminal (gnome-terminal) to not allow text to be selected. The only way I could make it work is by calling 'mousemask (0, NULL);'. But doing so disables the mouse code entirely, which other people might want. I therefore decided to make a setting in gdb called 'tui mouse-events'. If enabled (the default), the behavior is as it is now: terminal mouse events are given to gdb, disabling the terminal's default behavior. If disabled (opt-in), the behavior is as it was before the year 2020: terminal mouse events are not given to gdb, therefore the mouse can be used to select and copy text. Notes: I am not attached to the setting name or its description. Feel free to suggest better wording. Testing: I tested this change in gnome-terminal by performing the following steps manually: 1. Run: gdb --args ./myprogram 2. Enable TUI: press ctrl-x ctrl-a 3. Click and drag text with the mouse. Observe no selection. 4. Input: set tui mouse-events off 5. Click and drag text with the mouse. Observe that selection works now. 6. Input: set tui mouse-events on 7. Click and drag text with the mouse Observe no selection. --- gdb/NEWS | 7 +++++++ gdb/doc/gdb.texinfo | 13 +++++++++++++ gdb/tui/tui-io.c | 3 ++- gdb/tui/tui-win.c | 24 ++++++++++++++++++++++++ gdb/tui/tui-win.h | 3 +++ 5 files changed, 49 insertions(+), 1 deletion(-) diff --git gdb/NEWS gdb/NEWS index 2bc1672632a..c14158e41b5 100644 --- gdb/NEWS +++ gdb/NEWS @@ -17,6 +17,13 @@ maintenance print record-instruction [ N ] prints how GDB would undo the N-th previous instruction, and if N is positive, it prints how GDB will redo the N-th following instruction. +set tui mouse-events [on|off] +show tui mouse-events + When on (default), the TUI will interpret mouse clicks (including scroll wheel + presses), overwriting the terminal's default behavior (usually text + selection). When off, the TUI will preserve the terminal's default behavior + for mouse events. + * MI changes ** mi now reports 'no-history' as a stop reason when hitting the end of the diff --git gdb/doc/gdb.texinfo gdb/doc/gdb.texinfo index b5fad2cb16e..c36c24273d3 100644 --- gdb/doc/gdb.texinfo +++ gdb/doc/gdb.texinfo @@ -29867,6 +29867,19 @@ source text at the next tab stop; the compact display uses only as much space as is needed for the line numbers in the current file, and only a single space to separate the line numbers from the source. +@item set tui mouse-events @r{[}on@r{|}off@r{]} +@kindex set tui mouse-events +When on (default), the TUI will interpret mouse clicks (including scroll wheel +presses), overwriting the terminal's default behavior (usually text selection). +When off, the TUI will preserve the terminal's default behavior for mouse +events. + +Set whether the TUI source window is displayed in ``compact'' form. +The default display uses more space for line numbers and starts the +source text at the next tab stop; the compact display uses only as +much space as is needed for the line numbers in the current file, and +only a single space to separate the line numbers from the source. + @kindex set debug tui @item set debug tui @r{[}on|off@r{]} Turn on or off display of @value{GDBN} internal debug messages relating diff --git gdb/tui/tui-io.c gdb/tui/tui-io.c index a17cf38a1f2..45ef34aeab5 100644 --- gdb/tui/tui-io.c +++ gdb/tui/tui-io.c @@ -655,7 +655,8 @@ static void tui_prep_terminal (int notused1) { #ifdef NCURSES_MOUSE_VERSION - mousemask (ALL_MOUSE_EVENTS, NULL); + if (tui_enable_mouse) + mousemask (ALL_MOUSE_EVENTS, NULL); #endif } diff --git gdb/tui/tui-win.c gdb/tui/tui-win.c index 008189eb99b..5709bfcbac1 100644 --- gdb/tui/tui-win.c +++ gdb/tui/tui-win.c @@ -897,6 +897,17 @@ tui_show_compact_source (struct ui_file *file, int from_tty, gdb_printf (file, _("TUI source window compactness is %s.\n"), value); } +bool tui_enable_mouse = true; + +/* Implement 'show tui mouse-events'. */ + +static void +show_tui_mouse_events (struct ui_file *file, int from_tty, + struct cmd_list_element *c, const char *value) +{ + gdb_printf (file, _("TUI mouse events is %s.\n"), value); +} + /* Set the tab width of the specified window. */ static void tui_set_tab_width_command (const char *arg, int from_tty) @@ -1284,6 +1295,19 @@ position indicator is styled."), &style_set_list, &style_show_list); + add_setshow_boolean_cmd ("mouse-events", class_tui, + &tui_enable_mouse, _("\ +Set whether TUI mode handles mouse clicks."), _("\ +Show whether TUI mode handles mouse clicks."), _("\ +When on, the TUI will interpret mouse clicks (including scroll wheel presses),\n\ +overwriting the terminal's default behavior (usually text selection).\n\ +When off, the TUI will preserve the terminal's default behavior for mouse\n\ +events."), + + NULL, + show_tui_mouse_events, + &tui_setlist, &tui_showlist); + tui_border_style.changed.attach (tui_rehighlight_all, "tui-win"); tui_active_border_style.changed.attach (tui_rehighlight_all, "tui-win"); } diff --git gdb/tui/tui-win.h gdb/tui/tui-win.h index 4b33f1f2b54..039993fba34 100644 --- gdb/tui/tui-win.h +++ gdb/tui/tui-win.h @@ -51,6 +51,9 @@ struct cmd_list_element **tui_get_cmd_list (void); /* Whether compact source display should be used. */ extern bool compact_source; +/* Whether the TUI should intercept terminal mouse events. */ +extern bool tui_enable_mouse; + /* Whether to style the source and assembly code highlighted by the TUI's current position indicator. */ extern bool style_tui_current_position; -- 2.29.2 --00000000000021fa8405f348449f Content-Type: application/octet-stream; name="0001-gdb-tui-add-set-tui-mouse-events-off-to-restore-mous.patch" Content-Disposition: attachment; filename="0001-gdb-tui-add-set-tui-mouse-events-off-to-restore-mous.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ldf8ba9w0 RnJvbSA5OTFiZjRmN2MzZDU4Y2I4ZDg4NThjZjQyODRjMzYwNzE5ODQzMzUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiTWF0dGhldyBcInN0cmFnZXJcIiBHbGF6YXIiIDxzdHJhZ2Vy Lm5kc0BnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjcgSmFuIDIwMjMgMTY6MTk6NDUgLTA4MDAKU3Vi amVjdDogW1BBVENIXSBnZGIvdHVpOiBhZGQgJ3NldCB0dWkgbW91c2UtZXZlbnRzIG9mZicgdG8g cmVzdG9yZSBtb3VzZQogc2VsZWN0aW9uCgpSYXRpb25hbGU6CkkgdXNlIHRoZSBtb3VzZSB3aXRo IG15IHRlcm1pbmFsIHRvIHNlbGVjdCBhbmQgY29weSB0ZXh0LiBJbiBnZGIsIEkgdXNlCnRoZSBt b3VzZSB0byBzZWxlY3QgYSBmdW5jdGlvbiBuYW1lIHRvIHNldCBhIGJyZWFrcG9pbnQsIG9yIGEg dmFyaWFibGUKbmFtZSB0byBwcmludCwgZm9yIGV4YW1wbGUuCgpXaGVuIGdkYiBpcyBjb21waWxl ZCB3aXRoIG5jdXJzZXMgbW91c2Ugc3VwcG9ydCwgZ2RiJ3MgVFVJIG1vZGUKaW50ZXJjZXB0cyBt b3VzZSBldmVudHMuIExlZnQtY2xpY2tpbmcgYW5kIGRyYWdnaW5nLCB3aGljaCB3b3VsZApub3Jt YWxseSBzZWxlY3QgdGV4dCwgc2VlbXMgdG8gZG8gbm90aGluZy4gVGhpcyBtZWFucyBJIGNhbm5v dCBzZWxlY3QKdGV4dCB1c2luZyBteSBtb3VzZSBhbnltb3JlLiBUaGlzIG1ha2VzIGl0IGhhcmRl ciB0byBzZXQgYnJlYWtwb2ludHMsCnByaW50IHZhcmlhYmxlcywgZXRjLgoKU29sdXRpb246Ckkg dHJpZWQgdG8gZml4IHRoaXMgaXNzdWUgYnkgZWRpdGluZyB0aGUgJ21vdXNlbWFzaycgY2FsbCB0 byBvbmx5IGVuYWJsZQpidXR0b25zIDQgYW5kIDUuIEhvd2V2ZXIsIHRoaXMgc3RpbGwgY2F1c2Vk IG15IHRlcm1pbmFsIChnbm9tZS10ZXJtaW5hbCkKdG8gbm90IGFsbG93IHRleHQgdG8gYmUgc2Vs ZWN0ZWQuIFRoZSBvbmx5IHdheSBJIGNvdWxkIG1ha2UgaXQgd29yayBpcwpieSBjYWxsaW5nICdt b3VzZW1hc2sgKDAsIE5VTEwpOycuIEJ1dCBkb2luZyBzbyBkaXNhYmxlcyB0aGUgbW91c2UgY29k ZQplbnRpcmVseSwgd2hpY2ggb3RoZXIgcGVvcGxlIG1pZ2h0IHdhbnQuCgpJIHRoZXJlZm9yZSBk ZWNpZGVkIHRvIG1ha2UgYSBzZXR0aW5nIGluIGdkYiBjYWxsZWQgJ3R1aSBtb3VzZS1ldmVudHMn LgpJZiBlbmFibGVkICh0aGUgZGVmYXVsdCksIHRoZSBiZWhhdmlvciBpcyBhcyBpdCBpcyBub3c6 IHRlcm1pbmFsIG1vdXNlCmV2ZW50cyBhcmUgZ2l2ZW4gdG8gZ2RiLCBkaXNhYmxpbmcgdGhlIHRl cm1pbmFsJ3MgZGVmYXVsdCBiZWhhdmlvci4KSWYgZGlzYWJsZWQgKG9wdC1pbiksIHRoZSBiZWhh dmlvciBpcyBhcyBpdCB3YXMgYmVmb3JlIHRoZSB5ZWFyIDIwMjA6CnRlcm1pbmFsIG1vdXNlIGV2 ZW50cyBhcmUgbm90IGdpdmVuIHRvIGdkYiwgdGhlcmVmb3JlIHRoZSBtb3VzZSBjYW4gYmUKdXNl ZCB0byBzZWxlY3QgYW5kIGNvcHkgdGV4dC4KCk5vdGVzOgpJIGFtIG5vdCBhdHRhY2hlZCB0byB0 aGUgc2V0dGluZyBuYW1lIG9yIGl0cyBkZXNjcmlwdGlvbi4gRmVlbCBmcmVlIHRvCnN1Z2dlc3Qg YmV0dGVyIHdvcmRpbmcuCgpUZXN0aW5nOgpJIHRlc3RlZCB0aGlzIGNoYW5nZSBpbiBnbm9tZS10 ZXJtaW5hbCBieSBwZXJmb3JtaW5nIHRoZSBmb2xsb3dpbmcgc3RlcHMKbWFudWFsbHk6CgoxLiBS dW46IGdkYiAtLWFyZ3MgLi9teXByb2dyYW0KMi4gRW5hYmxlIFRVSTogcHJlc3MgY3RybC14IGN0 cmwtYQozLiBDbGljayBhbmQgZHJhZyB0ZXh0IHdpdGggdGhlIG1vdXNlLiBPYnNlcnZlIG5vIHNl bGVjdGlvbi4KNC4gSW5wdXQ6IHNldCB0dWkgbW91c2UtZXZlbnRzIG9mZgo1LiBDbGljayBhbmQg ZHJhZyB0ZXh0IHdpdGggdGhlIG1vdXNlLiBPYnNlcnZlIHRoYXQgc2VsZWN0aW9uIHdvcmtzIG5v dy4KNi4gSW5wdXQ6IHNldCB0dWkgbW91c2UtZXZlbnRzIG9uCjcuIENsaWNrIGFuZCBkcmFnIHRl eHQgd2l0aCB0aGUgbW91c2UgT2JzZXJ2ZSBubyBzZWxlY3Rpb24uCi0tLQogZ2RiL05FV1MgICAg ICAgICAgICB8ICA3ICsrKysrKysKIGdkYi9kb2MvZ2RiLnRleGluZm8gfCAxMyArKysrKysrKysr KysrCiBnZGIvdHVpL3R1aS1pby5jICAgIHwgIDMgKystCiBnZGIvdHVpL3R1aS13aW4uYyAgIHwg MjQgKysrKysrKysrKysrKysrKysrKysrKysrCiBnZGIvdHVpL3R1aS13aW4uaCAgIHwgIDMgKysr CiA1IGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYg LS1naXQgZ2RiL05FV1MgZ2RiL05FV1MKaW5kZXggMmJjMTY3MjYzMmEuLmMxNDE1OGU0MWI1IDEw MDY0NAotLS0gZ2RiL05FV1MKKysrIGdkYi9ORVdTCkBAIC0xNyw2ICsxNywxMyBAQCBtYWludGVu YW5jZSBwcmludCByZWNvcmQtaW5zdHJ1Y3Rpb24gWyBOIF0KICAgcHJpbnRzIGhvdyBHREIgd291 bGQgdW5kbyB0aGUgTi10aCBwcmV2aW91cyBpbnN0cnVjdGlvbiwgYW5kIGlmIE4gaXMKICAgcG9z aXRpdmUsIGl0IHByaW50cyBob3cgR0RCIHdpbGwgcmVkbyB0aGUgTi10aCBmb2xsb3dpbmcgaW5z dHJ1Y3Rpb24uCiAKK3NldCB0dWkgbW91c2UtZXZlbnRzIFtvbnxvZmZdCitzaG93IHR1aSBtb3Vz ZS1ldmVudHMKKyAgV2hlbiBvbiAoZGVmYXVsdCksIHRoZSBUVUkgd2lsbCBpbnRlcnByZXQgbW91 c2UgY2xpY2tzIChpbmNsdWRpbmcgc2Nyb2xsIHdoZWVsCisgIHByZXNzZXMpLCBvdmVyd3JpdGlu ZyB0aGUgdGVybWluYWwncyBkZWZhdWx0IGJlaGF2aW9yICh1c3VhbGx5IHRleHQKKyAgc2VsZWN0 aW9uKS4gV2hlbiBvZmYsIHRoZSBUVUkgd2lsbCBwcmVzZXJ2ZSB0aGUgdGVybWluYWwncyBkZWZh dWx0IGJlaGF2aW9yCisgIGZvciBtb3VzZSBldmVudHMuCisKICogTUkgY2hhbmdlcwogCiAqKiBt aSBub3cgcmVwb3J0cyAnbm8taGlzdG9yeScgYXMgYSBzdG9wIHJlYXNvbiB3aGVuIGhpdHRpbmcg dGhlIGVuZCBvZiB0aGUKZGlmZiAtLWdpdCBnZGIvZG9jL2dkYi50ZXhpbmZvIGdkYi9kb2MvZ2Ri LnRleGluZm8KaW5kZXggYjVmYWQyY2IxNmUuLmMzNmMyNDI3M2QzIDEwMDY0NAotLS0gZ2RiL2Rv Yy9nZGIudGV4aW5mbworKysgZ2RiL2RvYy9nZGIudGV4aW5mbwpAQCAtMjk4NjcsNiArMjk4Njcs MTkgQEAgc291cmNlIHRleHQgYXQgdGhlIG5leHQgdGFiIHN0b3A7IHRoZSBjb21wYWN0IGRpc3Bs YXkgdXNlcyBvbmx5IGFzCiBtdWNoIHNwYWNlIGFzIGlzIG5lZWRlZCBmb3IgdGhlIGxpbmUgbnVt YmVycyBpbiB0aGUgY3VycmVudCBmaWxlLCBhbmQKIG9ubHkgYSBzaW5nbGUgc3BhY2UgdG8gc2Vw YXJhdGUgdGhlIGxpbmUgbnVtYmVycyBmcm9tIHRoZSBzb3VyY2UuCiAKK0BpdGVtIHNldCB0dWkg bW91c2UtZXZlbnRzIEBye1t9b25Acnt8fW9mZkBye119CitAa2luZGV4IHNldCB0dWkgbW91c2Ut ZXZlbnRzCitXaGVuIG9uIChkZWZhdWx0KSwgdGhlIFRVSSB3aWxsIGludGVycHJldCBtb3VzZSBj bGlja3MgKGluY2x1ZGluZyBzY3JvbGwgd2hlZWwKK3ByZXNzZXMpLCBvdmVyd3JpdGluZyB0aGUg dGVybWluYWwncyBkZWZhdWx0IGJlaGF2aW9yICh1c3VhbGx5IHRleHQgc2VsZWN0aW9uKS4KK1do ZW4gb2ZmLCB0aGUgVFVJIHdpbGwgcHJlc2VydmUgdGhlIHRlcm1pbmFsJ3MgZGVmYXVsdCBiZWhh dmlvciBmb3IgbW91c2UKK2V2ZW50cy4KKworU2V0IHdoZXRoZXIgdGhlIFRVSSBzb3VyY2Ugd2lu ZG93IGlzIGRpc3BsYXllZCBpbiBgYGNvbXBhY3QnJyBmb3JtLgorVGhlIGRlZmF1bHQgZGlzcGxh eSB1c2VzIG1vcmUgc3BhY2UgZm9yIGxpbmUgbnVtYmVycyBhbmQgc3RhcnRzIHRoZQorc291cmNl IHRleHQgYXQgdGhlIG5leHQgdGFiIHN0b3A7IHRoZSBjb21wYWN0IGRpc3BsYXkgdXNlcyBvbmx5 IGFzCittdWNoIHNwYWNlIGFzIGlzIG5lZWRlZCBmb3IgdGhlIGxpbmUgbnVtYmVycyBpbiB0aGUg Y3VycmVudCBmaWxlLCBhbmQKK29ubHkgYSBzaW5nbGUgc3BhY2UgdG8gc2VwYXJhdGUgdGhlIGxp bmUgbnVtYmVycyBmcm9tIHRoZSBzb3VyY2UuCisKIEBraW5kZXggc2V0IGRlYnVnIHR1aQogQGl0 ZW0gc2V0IGRlYnVnIHR1aSBAcntbfW9ufG9mZkBye119CiBUdXJuIG9uIG9yIG9mZiBkaXNwbGF5 IG9mIEB2YWx1ZXtHREJOfSBpbnRlcm5hbCBkZWJ1ZyBtZXNzYWdlcyByZWxhdGluZwpkaWZmIC0t Z2l0IGdkYi90dWkvdHVpLWlvLmMgZ2RiL3R1aS90dWktaW8uYwppbmRleCBhMTdjZjM4YTFmMi4u NDVlZjM0YWVhYjUgMTAwNjQ0Ci0tLSBnZGIvdHVpL3R1aS1pby5jCisrKyBnZGIvdHVpL3R1aS1p by5jCkBAIC02NTUsNyArNjU1LDggQEAgc3RhdGljIHZvaWQKIHR1aV9wcmVwX3Rlcm1pbmFsIChp bnQgbm90dXNlZDEpCiB7CiAjaWZkZWYgTkNVUlNFU19NT1VTRV9WRVJTSU9OCi0gIG1vdXNlbWFz ayAoQUxMX01PVVNFX0VWRU5UUywgTlVMTCk7CisgIGlmICh0dWlfZW5hYmxlX21vdXNlKQorICAg IG1vdXNlbWFzayAoQUxMX01PVVNFX0VWRU5UUywgTlVMTCk7CiAjZW5kaWYKIH0KIApkaWZmIC0t Z2l0IGdkYi90dWkvdHVpLXdpbi5jIGdkYi90dWkvdHVpLXdpbi5jCmluZGV4IDAwODE4OWViOTli Li41NzA5YmZjYmFjMSAxMDA2NDQKLS0tIGdkYi90dWkvdHVpLXdpbi5jCisrKyBnZGIvdHVpL3R1 aS13aW4uYwpAQCAtODk3LDYgKzg5NywxNyBAQCB0dWlfc2hvd19jb21wYWN0X3NvdXJjZSAoc3Ry dWN0IHVpX2ZpbGUgKmZpbGUsIGludCBmcm9tX3R0eSwKICAgZ2RiX3ByaW50ZiAoZmlsZSwgXygi VFVJIHNvdXJjZSB3aW5kb3cgY29tcGFjdG5lc3MgaXMgJXMuXG4iKSwgdmFsdWUpOwogfQogCiti b29sIHR1aV9lbmFibGVfbW91c2UgPSB0cnVlOworCisvKiBJbXBsZW1lbnQgJ3Nob3cgdHVpIG1v dXNlLWV2ZW50cycuICAqLworCitzdGF0aWMgdm9pZAorc2hvd190dWlfbW91c2VfZXZlbnRzIChz dHJ1Y3QgdWlfZmlsZSAqZmlsZSwgaW50IGZyb21fdHR5LAorCQkgICAgICAgc3RydWN0IGNtZF9s aXN0X2VsZW1lbnQgKmMsIGNvbnN0IGNoYXIgKnZhbHVlKQoreworICBnZGJfcHJpbnRmIChmaWxl LCBfKCJUVUkgbW91c2UgZXZlbnRzIGlzICVzLlxuIiksIHZhbHVlKTsKK30KKwogLyogU2V0IHRo ZSB0YWIgd2lkdGggb2YgdGhlIHNwZWNpZmllZCB3aW5kb3cuICAqLwogc3RhdGljIHZvaWQKIHR1 aV9zZXRfdGFiX3dpZHRoX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZywgaW50IGZyb21fdHR5KQpA QCAtMTI4NCw2ICsxMjk1LDE5IEBAIHBvc2l0aW9uIGluZGljYXRvciBpcyBzdHlsZWQuIiksCiAJ CQkgICAmc3R5bGVfc2V0X2xpc3QsCiAJCQkgICAmc3R5bGVfc2hvd19saXN0KTsKIAorICBhZGRf c2V0c2hvd19ib29sZWFuX2NtZCAoIm1vdXNlLWV2ZW50cyIsIGNsYXNzX3R1aSwKKwkJCSAgICZ0 dWlfZW5hYmxlX21vdXNlLCBfKCJcCitTZXQgd2hldGhlciBUVUkgbW9kZSBoYW5kbGVzIG1vdXNl IGNsaWNrcy4iKSwgXygiXAorU2hvdyB3aGV0aGVyIFRVSSBtb2RlIGhhbmRsZXMgbW91c2UgY2xp Y2tzLiIpLCBfKCJcCitXaGVuIG9uLCB0aGUgVFVJIHdpbGwgaW50ZXJwcmV0IG1vdXNlIGNsaWNr cyAoaW5jbHVkaW5nIHNjcm9sbCB3aGVlbCBwcmVzc2VzKSxcblwKK292ZXJ3cml0aW5nIHRoZSB0 ZXJtaW5hbCdzIGRlZmF1bHQgYmVoYXZpb3IgKHVzdWFsbHkgdGV4dCBzZWxlY3Rpb24pLlxuXAor V2hlbiBvZmYsIHRoZSBUVUkgd2lsbCBwcmVzZXJ2ZSB0aGUgdGVybWluYWwncyBkZWZhdWx0IGJl aGF2aW9yIGZvciBtb3VzZVxuXAorZXZlbnRzLiIpLAorCisJCQkgICBOVUxMLAorCQkJICAgc2hv d190dWlfbW91c2VfZXZlbnRzLAorCQkJICAgJnR1aV9zZXRsaXN0LCAmdHVpX3Nob3dsaXN0KTsK KwogICB0dWlfYm9yZGVyX3N0eWxlLmNoYW5nZWQuYXR0YWNoICh0dWlfcmVoaWdobGlnaHRfYWxs LCAidHVpLXdpbiIpOwogICB0dWlfYWN0aXZlX2JvcmRlcl9zdHlsZS5jaGFuZ2VkLmF0dGFjaCAo dHVpX3JlaGlnaGxpZ2h0X2FsbCwgInR1aS13aW4iKTsKIH0KZGlmZiAtLWdpdCBnZGIvdHVpL3R1 aS13aW4uaCBnZGIvdHVpL3R1aS13aW4uaAppbmRleCA0YjMzZjFmMmI1NC4uMDM5OTkzZmJhMzQg MTAwNjQ0Ci0tLSBnZGIvdHVpL3R1aS13aW4uaAorKysgZ2RiL3R1aS90dWktd2luLmgKQEAgLTUx LDYgKzUxLDkgQEAgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQgKip0dWlfZ2V0X2NtZF9saXN0ICh2 b2lkKTsKIC8qIFdoZXRoZXIgY29tcGFjdCBzb3VyY2UgZGlzcGxheSBzaG91bGQgYmUgdXNlZC4g ICovCiBleHRlcm4gYm9vbCBjb21wYWN0X3NvdXJjZTsKIAorLyogV2hldGhlciB0aGUgVFVJIHNo b3VsZCBpbnRlcmNlcHQgdGVybWluYWwgbW91c2UgZXZlbnRzLiAgKi8KK2V4dGVybiBib29sIHR1 aV9lbmFibGVfbW91c2U7CisKIC8qIFdoZXRoZXIgdG8gc3R5bGUgdGhlIHNvdXJjZSBhbmQgYXNz ZW1ibHkgY29kZSBoaWdobGlnaHRlZCBieSB0aGUgVFVJJ3MKICAgIGN1cnJlbnQgcG9zaXRpb24g aW5kaWNhdG9yLiAgKi8KIGV4dGVybiBib29sIHN0eWxlX3R1aV9jdXJyZW50X3Bvc2l0aW9uOwot LSAKMi4yOS4yCgo= --00000000000021fa8405f348449f--