Received: (at 75056) by debbugs.gnu.org; 26 Feb 2025 03:49:12 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Feb 25 22:49:12 2025 Received: from localhost ([127.0.0.1]:50144 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tn8Q3-0004uT-La for submit <at> debbugs.gnu.org; Tue, 25 Feb 2025 22:49:11 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:42482) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tn8Pz-0004tx-Cv for 75056 <at> debbugs.gnu.org; Tue, 25 Feb 2025 22:49:09 -0500 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-38f31f7732dso225640f8f.1 for <75056 <at> debbugs.gnu.org>; Tue, 25 Feb 2025 19:49:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740541741; x=1741146541; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=57Hs9E89Taoh+fI3RaFhviIbSvh22vK8PlDLXv5sbKY=; b=cu17MVN8iXVWgcvf23RWAKzpnDLr5eKRd34bldjA0SH7sBTtUJG4PnlI3YjseVaow1 BIuPJKPL3xYgKin6XslCuz8WJRvq9eR/uErt3In8h1gESfoRjG1cafexLQzgFGRZFZHv OF2jn34s+Ab61SONT8CfD9Mi+qeGWZLNd1hcgzW15y5d6tylXnkjv42CmBIEObrq5zMU uPNmBRK0oFVII6WP8uCSK3CUhmUhyNDcV5L42iHXyR95isnxk78dceCIJ1aGIxtT852W uP73hGHHjyOrIZ04V3SL+0AJMDK/EjvSRidem7Jcggz2QJDD8LrUyJ7YxvZZ40DRmDx1 FQ4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740541741; x=1741146541; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=57Hs9E89Taoh+fI3RaFhviIbSvh22vK8PlDLXv5sbKY=; b=rSBjLoT/M7J/k/2AwyqjwTTTaRw+ypEbxQLv96hJgXda0KXAXuM+M2JvbOGBAwMQRe 5PUWwDUb89MA1zjhCix67k7wuv7rg5SksshyJJyYddhyJvQu62b/scEPa/7ndB7x5fTx mPPLk9heR2vhxSxsl26Byt8jOusSWzOGoAnZzkYbgQCRNHjTqZYGpnnNfhFg62J2zIpF O5IKkl6DwNzo9rZJPjOdWwxni8HKxXPWzWJM84bdUs9jKntpgJ8GUVmR9Z7vB4RNdlnb nApvcEjXq7y/kjIbN4XHNWjtt/KrsYQ7NQrhnW3lAuCDsM7uSz3x6dtcSxlQy8uYxd68 IB+g== X-Forwarded-Encrypted: i=1; AJvYcCVoQkBTcd1Xs46fHATQACUIbx23K4PRUqRZ1m6d0FKZwYy5L1yjvx/BTxi6Ds0crA7NyAsajA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwvuwNoGsi/6rfmQqt0i2CamBf0i/TBP8bwWuTp8xyE+xmU8TE8 Q/eoXqWFqvjr/0G/lfS01CZ9nVLTjE9dMv+ImCrSeUoaw+lhqooz+aUHWQ== X-Gm-Gg: ASbGncvvRx/YwwCIdVWGO1ypYAZcC0hmMAL/qR9uWJd69OcxDWgF9yMicc6QnNn4Fyq UWmworXCkTnyzsfRIsoKDUMTly+KRGeKpEm+2W6c6YbyK4PUeLhoq066Hsy7LE3Fj18LDKw1i+r HEglZm2L5BFXDI97BL0J2w2uCH8q8J1bX3Uw4x6oG/gcgcOpp7ptAW+vUnS3fjJ7YRYfIV6w+C3 1H0Z7gG/o2m0C9iSqko2NZQ2tSxtW6Yf+XoiU7oeqskZn3N26Ey1qN5Wfsj+88zlUo9Au1YnrcR mfaA7+PRozBDipqaiTVxJPUyfxgJ9MTMazzygPfYNaqsJ+ihfwphirR4BG6aY6iERbCm0IH7tkZ VXKzo4x8Vhaw6udLqsKxVJvG9VqV4krtmYHU= X-Google-Smtp-Source: AGHT+IFK5UAZnlbwJ9FFErlX/IfwLUYp0jiT5Geydo/hBe5NScWkyCoHs9eXlq8FS5FcML37ANgtwg== X-Received: by 2002:a05:6000:2a5:b0:38d:d533:d9a2 with SMTP id ffacd0b85a97d-38f615be1bamr18782152f8f.13.1740541740609; Tue, 25 Feb 2025 19:49:00 -0800 (PST) Received: from pro2 (p200300e0b73c5b0069bab02423ae8cad.dip0.t-ipconnect.de. [2003:e0:b73c:5b00:69ba:b024:23ae:8cad]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390cd8fc1f9sm4051677f8f.88.2025.02.25.19.48.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Feb 2025 19:48:59 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <CAOGVwe=s2OHZh5-bQs+wGkKEr3eqKuiv7bGzFD=WE0PdxDoKJw@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <a886ab8d-516b-4158-aac4-5afac15a74b6@HIDDEN> <m21pwgyw4m.fsf@HIDDEN> <338e58ab-e2e1-46c4-9fdc-39214758b0d7@HIDDEN> <m2cyfpfup6.fsf@HIDDEN> <d541da16-0734-4488-b178-0feb4924be5b@HIDDEN> <871F7BC3-A6EB-485A-ABF7-30468945234A@HIDDEN> <CAOGVwe=s2OHZh5-bQs+wGkKEr3eqKuiv7bGzFD=WE0PdxDoKJw@HIDDEN> Date: Wed, 26 Feb 2025 04:48:57 +0100 Message-ID: <m2h64h4b86.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Martin Rudalics <rudalics@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Len Trigg <lenbok@HIDDEN> writes: > I thought I would check in and see if there was any changed behaviour > with respect to this bug, and things seem to be worse if anything. Which commit id is that?
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Feb 2025 02:29:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Feb 25 21:29:48 2025 Received: from localhost ([127.0.0.1]:49554 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tn7BE-0002kH-MY for submit <at> debbugs.gnu.org; Tue, 25 Feb 2025 21:29:48 -0500 Received: from mail-lf1-x12c.google.com ([2a00:1450:4864:20::12c]:56330) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tn7BC-0002k1-Km for 75056 <at> debbugs.gnu.org; Tue, 25 Feb 2025 21:29:47 -0500 Received: by mail-lf1-x12c.google.com with SMTP id 2adb3069b0e04-5454f00fc8dso5869617e87.0 for <75056 <at> debbugs.gnu.org>; Tue, 25 Feb 2025 18:29:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740536980; x=1741141780; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=73TLHLyJ9KJ/XOUNiIRaI+PqO/MUjxC6w/VzZtos2bY=; b=gEhVoLWfJ4UGSuG4yfBP42aEeVMCzq0hY0yEYX7B4KL9nvrRzQjdLJlvLVqrr9t9F3 9j0LXJWbP1B8wnxxwQBZCXNyurHDZBpxr2pGqhn1ZAjLfJyLuR7KCUYqSv+nLniX0MiS TFghQH5qgex9beQynfGsh9PFQVbd7uu7SLetoV7ClOvjq3xZKQ+Fp0xjmcjksOZMvsPj 90d3KlUXOYBGNS+3MwdoiggBTRoJP0c8X/xQb/ADvpEwIj9/tJytDBMXhzkowqkkmpS3 855PKTyzcV94n/AT+sHkvn2BAlCR1Cs8V+73K4EuahTtNHlUkFdqPGAZ51vyOeqkM3Kb peJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740536980; x=1741141780; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=73TLHLyJ9KJ/XOUNiIRaI+PqO/MUjxC6w/VzZtos2bY=; b=fv/cMDHDKVHUrh9729wxZVPT1HZyxIZOZ/vz/KHfi1HtiMSQtsa8TVJTrjsZu23/E3 vaPfCQ570/0Y/IEg/GDLQ8BnmSj4eqyUiFPxTTnwepAeLY/kR/0bqp0vTCENK6ZuLvEb p1aJynWB8UOKqSx7UzgqhtH1DvV1ydjXGf4rtntKj7sKneNFZNGSUWujO8ZPw6tAvC3A ISuYtaNPwU5MppL6cF5oFGCCU3+HEe7TPUvU3PtyBC7FJACSOD8/dXEwUgs/HRXhz20I kM1UQA66PnaBzZ+ICfobKYRlW7Xhw7VT5spZn/X94ntytSZSz2l3JaiHVyXx2VlNVCco nxnw== X-Forwarded-Encrypted: i=1; AJvYcCX/KdCmiK8qWKbghYs3uYih3ggNDSKIIZYoxw7+B1yqvqMFFhNsfNyw858g1Ezy2hmtO2/ikQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzaFYf2yUyrGi4EtRK2TPAtxv/znhUES0CAxAGBtF72qx+L10e3 aToS6hSIj55z++KumtICj+pUlUTzcwqffmcIVvByITfeHduW7FXpt3EOhYKzxWXSj9wS+8plcHB +gVVGTN6mfYG18FgQwWD8Nx0Z4M4= X-Gm-Gg: ASbGncsvaAABco6zrvEQqoTTZ4RU5UahxAbkHfUhzh/Fvc2c/3uqfdMLZDdp8paQWEN kjZUe44KlzOqbFUh4dv4MapC0QFy+UOdlScnCgWUnpuwfqg+hBAQWXOqMilQkIK+lgSKQ1QQNAf PbdaOYnmc= X-Google-Smtp-Source: AGHT+IH1jku6g/J2k5JoVDEontB2e8sZZs5M1ZPnL2JzbA4cUt4MTRBOFUe+RioYHQHDaBeXpdukcpcol8cizbAjcPM= X-Received: by 2002:a05:6512:1194:b0:545:3031:40aa with SMTP id 2adb3069b0e04-5493c570f6dmr1600365e87.9.1740536979540; Tue, 25 Feb 2025 18:29:39 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <a886ab8d-516b-4158-aac4-5afac15a74b6@HIDDEN> <m21pwgyw4m.fsf@HIDDEN> <338e58ab-e2e1-46c4-9fdc-39214758b0d7@HIDDEN> <m2cyfpfup6.fsf@HIDDEN> <d541da16-0734-4488-b178-0feb4924be5b@HIDDEN> <871F7BC3-A6EB-485A-ABF7-30468945234A@HIDDEN> In-Reply-To: <871F7BC3-A6EB-485A-ABF7-30468945234A@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Wed, 26 Feb 2025 15:29:21 +1300 X-Gm-Features: AWEUYZmUA7MP_VmAtVdsUuOi1WMYhdeLruV3rvUsf8qBgiJzHDT6T3e5H3_shrE Message-ID: <CAOGVwe=s2OHZh5-bQs+wGkKEr3eqKuiv7bGzFD=WE0PdxDoKJw@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Content-Type: multipart/related; boundary="000000000000629fdd062f025896" X-Debbugs-Envelope-To: 75056 Cc: Martin Rudalics <rudalics@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> --000000000000629fdd062f025896 Content-Type: multipart/alternative; boundary="000000000000629fdc062f025895" --000000000000629fdc062f025895 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I thought I would check in and see if there was any changed behaviour with respect to this bug, and things seem to be worse if anything. First up, even just with a single tty emacs (i.e. no emacsclient), the minibuffer behaviour has changed, so that now it seems the minibuffer appears in both the tty child frame as well as the main tty frame. Steps to reproduce (again, using my test init.el from OP): emacs -nw --init-directory=3D~/emacs-test M-x emacs-version RET (Note that when typing emacs-version, there are two visible minibuffers). Secondly, the two tty behaviour seems screwy, in that the first time a child frame is invoked on the second client, it doesn't get populated/drawn. Steps: emacs -nw --init-directory=3D~/emacs-test Switch to another terminal, side by side so you can see and switch between both easily emacsclient -nw M-x emacs-version RET (runs fine, other than the two-minibuffer issue mentioned above) Switch focus back to the first terminal M-x emacs-version (note the child frame appears with just the outside border drawn, as shown below) [image: image.png] Third, in a continuation of the two tty scenario, keyboard input (e.g. moving point) in one client instead takes effect in the other client! Steps= : emacs -nw --init-directory=3D~/emacs-test Switch to another terminal, side by side so you can see and switch between both easily emacsclient -nw M-x emacs-version RET (runs fine, other than the two-minibuffer issue mentioned above) Switch focus back to the first terminal M-x emacs-version RET (as above, the child frame isn't drawn, but the command itself runs) Switch focus back to the second client C-n C-f C-f (etc) Note that the cursor is moving within the first client. Similarly, M-x opens a tty child frame in the first client even though keyboard input is coming from the second client. On Sun, 16 Feb 2025 at 18:26, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> wrote: > > On 15. Feb 2025, at 19:20, martin rudalics <rudalics@HIDDEN> wrote: > > > Works perfectly, thanks! > > There's a problem with moving nested child frames out of their child > parents. Load the attached tty-child-frames.el do first M-l and then > C-M-l. You should see a grey child frame embedded in an orange child > frame. Now do > > (set-frame-parameter tty-3 'left (- 30)) > > > Yep, I can reproduce it. > > Could be a problem with copying glyphs from the child to the root's > desired matrix because the crash is from invalid glyph contents. When I > reproduced it, the glyph in question was completely zeroed, for example. > > I've made bug#76321 for this. Can take me a bit to fix, I'm afraid. > --000000000000629fdc062f025895 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>I thought I would check in and see if there was any c= hanged behaviour with respect to this bug, and things seem to be worse if a= nything.</div><div><br></div><div>First up, even just with a single tty ema= cs (i.e. no emacsclient), the minibuffer behaviour has changed, so that now= it seems the minibuffer appears in both the tty child frame as well as the= main tty frame. Steps to reproduce (again, using my test init.el from OP):= </div><div><br></div><div>emacs -nw --init-directory=3D~/emacs-test</div><d= iv>M-x emacs-version RET<br></div><div>(Note that when typing emacs-version= , there are two visible minibuffers).</div><div><br></div><div>Secondly, th= e two tty behaviour seems screwy, in that the first time a child frame is i= nvoked on the second client, it doesn't get populated/drawn. Steps:<br>= </div><div><br></div><div><div>emacs -nw --init-directory=3D~/emacs-test</d= iv><div>Switch to another terminal, side by side so you can see and switch = between both easily<br></div><div>emacsclient -nw<br></div><div>M-x emacs-v= ersion RET<br></div><div>(runs fine, other than the two-minibuffer issue me= ntioned above)</div><div>Switch focus back to the first terminal<br></div><= /div><div>M-x emacs-version<br></div><div>(note the child frame appears wit= h just the outside border drawn, as shown below)</div><div><br></div><div><= img src=3D"cid:ii_m7ladv760" alt=3D"image.png" width=3D"570" height=3D"286"= ><br></div><div><br></div><div>Third, in a continuation of the two tty scen= ario, keyboard input (e.g. moving point) in one client instead takes effect= in the other client! Steps:<br></div><div><br></div><div><div><div>emacs -= nw --init-directory=3D~/emacs-test</div><div>Switch to another terminal, si= de by side so you can see and switch between both easily</div><div>emacscli= ent -nw<br></div><div>M-x emacs-version RET<br></div><div>(runs fine, other= than the two-minibuffer issue mentioned above)</div><div>Switch focus back= to the first terminal<br></div></div><div>M-x emacs-version RET</div><div>= (as above, the child frame isn't drawn, but the command itself runs)</d= iv><div>Switch focus back to the second client</div><div>C-n C-f C-f=C2=A0 = (etc)</div><div>Note that the cursor is moving within the first client. Sim= ilarly, M-x opens a tty child frame in the first client even though keyboar= d input is coming from the second client.<br></div><div><br></div></div><di= v><br></div><div><br></div></div><br><div class=3D"gmail_quote gmail_quote_= container"><div dir=3D"ltr" class=3D"gmail_attr">On Sun, 16 Feb 2025 at 18:= 26, Gerd M=C3=B6llmann <<a href=3D"mailto:gerd.moellmann@HIDDEN">gerd= .moellmann@HIDDEN</a>> wrote:<br></div><blockquote class=3D"gmail_quo= te" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204= );padding-left:1ex"><div><br><div><blockquote type=3D"cite"><div>On 15. Feb= 2025, at 19:20, martin rudalics <<a href=3D"mailto:rudalics@HIDDEN" tar= get=3D"_blank">rudalics@HIDDEN</a>> wrote:</div><br><div><div>> Works= perfectly, thanks!<br><br>There's a problem with moving nested child f= rames out of their child<br>parents.=C2=A0 Load the attached tty-child-fram= es.el do first M-l and then<br>C-M-l.=C2=A0 You should see a grey child fra= me embedded in an orange child<br>frame.=C2=A0 Now do<br><br>(set-frame-par= ameter tty-3 'left (- 30))<br></div></div></blockquote></div><br><div>Y= ep, I can reproduce it.=C2=A0</div><div><br></div><div>Could be a problem w= ith copying glyphs from the child to the root's desired matrix because = the crash is from invalid glyph contents. When I reproduced it, the glyph i= n question was completely zeroed, for example.</div><div><br></div><div>I&#= 39;ve made=C2=A0<span style=3D"color:rgba(0,0,0,0.85);font-family:"Hel= vetica Neue"">bug#76321 for this. Can take me a bit to fix, I'm af= raid.=C2=A0</span></div></div></blockquote></div> --000000000000629fdc062f025895-- --000000000000629fdd062f025896 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: <ii_m7ladv760> X-Attachment-Id: ii_m7ladv760 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 ABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAa WhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGloc AAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAA GlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpa HAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwA ABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAa WhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGloc AAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAA GlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpa HAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwA ABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAa WhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGloc AAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAA GlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpaHAAAGlocAAAaWhwAABpa HAAAGlocAAAaWhwAABpDPeA/mKZpvf44nk/3273eAgAwU7vP3WazrVfMixZ/gXEcr9e//df+sXjU WwAAZmpYDZfLb71iXpbfh596AwAAvCN/cQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAA aGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGho cQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEA AGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABo aHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhx AABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAA aGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGho cQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEA AGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABoaHEAAGhocQAAaGhxAABo aHEAAGhocQAAaDwBAivVU6t5SV0AAAAASUVORK5CYII= --000000000000629fdd062f025896--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 16 Feb 2025 05:26:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 16 00:26:13 2025 Received: from localhost ([127.0.0.1]:59464 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tjXAT-00013c-3o for submit <at> debbugs.gnu.org; Sun, 16 Feb 2025 00:26:13 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:47341) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tjXAQ-00013C-El for 75056 <at> debbugs.gnu.org; Sun, 16 Feb 2025 00:26:11 -0500 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-4395dddb07dso34982965e9.2 for <75056 <at> debbugs.gnu.org>; Sat, 15 Feb 2025 21:26:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739683564; x=1740288364; darn=debbugs.gnu.org; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:from:to:cc:subject:date:message-id:reply-to; bh=zICRVGGJGehjy8XFF/k2bKqFwS/5o9MH7Ook8aWCmEA=; b=FbtTuC/+fnZYLj+Idq+WswFhphDv+8Ryv7ONjVolYnOk4D/za/MyCvqwCC2L+zqBLh KqXcEGe6ULN9C0QOOVezBeevBiIZE2uLWsnTMF5z5WruMTBAvOUptzSQNelTt2Mtitpf GsFPqkSJGmDFjplJ38wl3eAVzMBzOIAVw1vsQlsV2Fo77Y3H8b3WMAhRatliWqX4KPMI dtgoJvtT3yJLI356kykATJF5kysxr2NbojNpzaqOvqrsK8UYnVr/YczGjWsUGgkJkvvh jIP0VC8cSNDL6Q5GJXotX1RuGKqzv7mx5v4hX1vk16/tFUNsjFAVIFCWNfmnM8fa5xqN bl3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739683564; x=1740288364; h=references:to:cc:in-reply-to:date:subject:mime-version:message-id :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=zICRVGGJGehjy8XFF/k2bKqFwS/5o9MH7Ook8aWCmEA=; b=h8Z8TUKDgYdbXZHIBdbpQA51IJ70QZ3YOxePFqO6FOEUvSi12sGWLUuDt8GkG2cm0U IAw90W8YxvhE9yjiwWAsE/wKbpkcc2HZGLrxbvc3T9iLl2MkGPFSRS4lepmsicRkMa+X Hv+b8BO5sSk9ekGpUcboY8YCNmDFs6jVgeG9dO6G5piNukInHPQ0AwFGFKBlOr+soki5 T5ssmQqPJy9tD8fArk59llaBIzmZHbElXtUw/yz7kXrw3+9Nq3N70LxsfKC82bLJB3m2 3K0Zf4CfRaQOh/2u4QE8nk+4gCUJfhGIGKnhcbB6ibfOVLWYxacVBpLm5EofPv5gbtxP PTWA== X-Forwarded-Encrypted: i=1; AJvYcCXV6nqst6fVVaIWmwDrEcieHg3E7QW5JwYwlHuTnMZF/vUdHxV0UJa7by1feoGTRyKJA79U6g==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxnzY+E/X4vlCHysapxPwRR5XBZE1kP4JuLm/7Tkv+ESU/AfE5X BA4PcAvB/LSpJQ/y0Bg3GxDriO1LNDedKVMFg+nBQvKmeNYrZak3 X-Gm-Gg: ASbGncsi3fSTmXeBmk95pdr8a88nghe3YT6Z/4KgwHdmWKS6QCL4BHoXULNeZrcIqc8 bMwtDx8ltuquQzAhtQX7MBs15PZ9wWwEhH/t6fbHWANXJ2Bvb+A3bh/jMYLxIAV1KZbPZOcm8RD ztdOgLMsb63M24vS5AS0PeX7j6t93GXiEdaLzWTtcyirbKa5rYRa+zFCiFDBQqDeyzoO9acngZd 03cIdOEl8cLWVoOXyADqhikez6lwSGF7Cs3cEanQ2tT5rkE3xwH+FYXnoZvKsMXYa70ky8Mw+Xf HRd0KXG63TjsqihCMd56ngVkzhXA+rTX+T2RIUSvPwasWKiWmsGlJmFTKT/yroENSNjNguVXuos +xcgTG/dTBwesaAyVzyP2Rffvi+vm56flKqkn1Y7K X-Google-Smtp-Source: AGHT+IEfsN1jyELzBLepv9/uqpto3FYwImNn7o8e+978YqEajShedjOj3stodAzE/VkrJfPM9hkxYg== X-Received: by 2002:a5d:65c2:0:b0:38d:eb33:79c2 with SMTP id ffacd0b85a97d-38f33f51162mr4039185f8f.32.1739683564038; Sat, 15 Feb 2025 21:26:04 -0800 (PST) Received: from smtpclient.apple (p200300e0b71f65007071482f4a57a4f8.dip0.t-ipconnect.de. [2003:e0:b71f:6500:7071:482f:4a57:a4f8]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4396b0aa4e9sm48192075e9.16.2025.02.15.21.26.02 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 15 Feb 2025 21:26:02 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Message-Id: <871F7BC3-A6EB-485A-ABF7-30468945234A@HIDDEN> Content-Type: multipart/alternative; boundary="Apple-Mail=_73CBC9C2-6BA6-4D17-9F01-1799C1B2D99E" Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.400.131.1.6\)) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs Date: Sun, 16 Feb 2025 06:25:52 +0100 In-Reply-To: <d541da16-0734-4488-b178-0feb4924be5b@HIDDEN> To: Martin Rudalics <rudalics@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <a886ab8d-516b-4158-aac4-5afac15a74b6@HIDDEN> <m21pwgyw4m.fsf@HIDDEN> <338e58ab-e2e1-46c4-9fdc-39214758b0d7@HIDDEN> <m2cyfpfup6.fsf@HIDDEN> <d541da16-0734-4488-b178-0feb4924be5b@HIDDEN> X-Mailer: Apple Mail (2.3826.400.131.1.6) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --Apple-Mail=_73CBC9C2-6BA6-4D17-9F01-1799C1B2D99E Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii > On 15. Feb 2025, at 19:20, martin rudalics <rudalics@HIDDEN> wrote: >=20 > > Works perfectly, thanks! >=20 > There's a problem with moving nested child frames out of their child > parents. Load the attached tty-child-frames.el do first M-l and then > C-M-l. You should see a grey child frame embedded in an orange child > frame. Now do >=20 > (set-frame-parameter tty-3 'left (- 30)) Yep, I can reproduce it.=20 Could be a problem with copying glyphs from the child to the root's = desired matrix because the crash is from invalid glyph contents. When I = reproduced it, the glyph in question was completely zeroed, for example. I've made bug#76321 for this. Can take me a bit to fix, I'm afraid.=20= --Apple-Mail=_73CBC9C2-6BA6-4D17-9F01-1799C1B2D99E Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii <html><head><meta http-equiv=3D"content-type" content=3D"text/html; = charset=3Dus-ascii"></head><body style=3D"overflow-wrap: break-word; = -webkit-nbsp-mode: space; line-break: = after-white-space;"><br><div><blockquote type=3D"cite"><div>On 15. Feb = 2025, at 19:20, martin rudalics <rudalics@HIDDEN> wrote:</div><br = class=3D"Apple-interchange-newline"><div><div>> Works perfectly, = thanks!<br><br>There's a problem with moving nested child frames out of = their child<br>parents. Load the attached tty-child-frames.el do = first M-l and then<br>C-M-l. You should see a grey child frame = embedded in an orange child<br>frame. Now = do<br><br>(set-frame-parameter tty-3 'left (- = 30))<br></div></div></blockquote></div><br><div>Yep, I can reproduce = it. </div><div><br></div><div>Could be a problem with copying = glyphs from the child to the root's desired matrix because the crash is = from invalid glyph contents. When I reproduced it, the glyph in question = was completely zeroed, for example.</div><div><br></div><div>I've = made <span style=3D"color: rgba(0, 0, 0, 0.85); font-family: = "Helvetica Neue";">bug#76321 for this. Can take me a bit to = fix, I'm afraid. </span></div></body></html>= --Apple-Mail=_73CBC9C2-6BA6-4D17-9F01-1799C1B2D99E--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 15 Feb 2025 18:20:50 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 15 13:20:50 2025 Received: from localhost ([127.0.0.1]:57834 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tjMmY-000244-66 for submit <at> debbugs.gnu.org; Sat, 15 Feb 2025 13:20:50 -0500 Received: from mout.gmx.net ([212.227.15.19]:49757) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tjMmU-00023h-KH for 75056 <at> debbugs.gnu.org; Sat, 15 Feb 2025 13:20:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1739643639; x=1740248439; i=rudalics@HIDDEN; bh=p93sHm/sy05LJj+yltiQQpP8Jm1xpa6LgpH8ufK3F2s=; h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version: Subject:To:Cc:References:From:In-Reply-To:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=pMoPzqXC1m3XENyPOwGhbnfkTA29QaXkjPJ2rTS+a9+jundI/FuLOFDrUC+vyxv+ 1gwxvw7f/1U5i5hOVYa7Fj8ugtFnJ7To50vb/j/D8Zmn2Anqd0S/fOXD4t9GlW3Ap T6dztDxogMVE1kmfpIYS3mw/fGQKdSZPfpXLiJFic850hD9nj+QMEnrzR+6WbJ497 +N+jf/biwl2/Aom+r2DsEpB8v/X1XCSmF/Bu+P7oukqLMFHK+K/JXO6F0gSbcnpHI VUfEo13dQA7RxofZcwrmn/iS1RQmPm8UmiAiYdworTN3VslRSrvv17JC1TtO4N2ji oc0VhzwAlYB+OBgYLw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.97.148]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MhlGk-1t5c6p1qNs-00apu8; Sat, 15 Feb 2025 19:20:39 +0100 Content-Type: multipart/mixed; boundary="------------Q9wiigK2mheiPO49mq60dAzb" Message-ID: <d541da16-0734-4488-b178-0feb4924be5b@HIDDEN> Date: Sat, 15 Feb 2025 19:20:38 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <a886ab8d-516b-4158-aac4-5afac15a74b6@HIDDEN> <m21pwgyw4m.fsf@HIDDEN> <338e58ab-e2e1-46c4-9fdc-39214758b0d7@HIDDEN> <m2cyfpfup6.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2cyfpfup6.fsf@HIDDEN> X-Provags-ID: V03:K1:ZXxkYUeBUF8cJv16FC5aFRAJe9wjbAWBf9oCMof680jchDc60Ic Ycznx0bwjleNKQlbQjiaHm9J21fmN0oTP5qCzIAeqctKICa8v5nieB/tYSshqbG/lxZRsjh QDwtEs1X+6VJuqJXBeBJmr4/gfLmEysD2TcPeUt1UG0nbapyWn2BjhWdKMpV8GXNMpQV6ps /2h4kLDsLM2wBsTVFZcxg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:hGOBY5L6py4=;TjhMj2iKYamHoSc/nZKPVadqlKQ uqvbXoEKRTFzAZaMzn8XrSUSL4e82SWKfzm6Kw+djLpqgoZYAaOp//u4HBNNfEvOrGzgB+LNq cy6qYQCNoZOJJF9Jnf96PD0LnKAFZTaJmzD7xmdair8KsFjd7uHfXgFdmCORchRDyuyX3AvP3 cTEbwfOfn67mUILmY8P3ftFjs8ols7JHHDk2fkZ+zNRW8cL0MfCrJ6bEn84lporlgPegQt3yh bruJuFvHvPS2gMN9Z9/Y49CIRqMfPBObQO1zbeB0V5eKUlKRy8ggMJdORwoXwXCYhriu5N/LF kZQDht2uD+Yj606MyfKgfXCwNOkBkiQ4iQvl+TZhAJCdWD95uWBa12/s8PYPuNJi20iMUmhQ1 4+DF5xek/4sRhdGs4kP69q59pV703mSZXvixPHy+a1EjRyNB/OVdn00QSswpm8JGpXsYmc5s7 g7DZk1ZX5rsvXy28Z6f7IyDGKM75dxR/1rXE8oBG33q5wa1uP92bqlDNIexqfNQOkKmfx79wv RXknEuAVbe/27rGWoxDl9WTlC08YiOI/6F8MjIw/8kkt6vnigP4JGIUtbPSqVd3QG3rpe71HA vdIAni1FHUzfg4f7qN4fLEko03gFOhbn8w92gGT0XTQfV+dKbHJdbJPo2Xc92tABVD30t7M3r Wr79DMTYGyGE3prrn4JJ6b6CgF/O6IjYkukUN0GzEgeHswJxJGX1Tl4SvQyGkUY/UuWYu3fHu sQwgqmlRGaugBgouMy4Xfab/2YtQ/y5eauJz634tjHrvorCDig57pXIAJ+92n16JpPI2itIJK ehQ9zyHkS6DJA5s2Y0mnRRsO3RGzUcw9r5mQTe70rsweeeHkV0flrOFbTCvyeddeaiLl8btPl wMACxlP6JX3bL/INqQJlZhAx3NB2/twi/AT7QnOdM/BSTYihMYOYGJXo7w2oytP2vsODR+Ezs yynVidsMVJCtWiokUzd0qvk/FmNRtiObIPdZuUdBIvbHssTS+1l/y1VIrvAEEwINRT23xK140 UQtgyWZ0EddD2UDfkVT8jvYvBCp+S03LvtyoXqcbFTT3Y/qiRDxDmpdEy1hMnryIGTqGkJiMD w3NNFEgbJy5qD2A5rxwdOBQjRcmsC5jflIzezzKH9boA9cEcLhuNiGLsHH1Ch6A/LD6eh3GI7 1dYMoYLAuD8TMtVVElphHeRz7R8a2E5E/eRPNK3dMaTiIxe0yrZ3if7JHrv/5vrIngvT9hOdB 0KlHh0pagTo6Ddhu3zPhw+lzPwrhJ4atFHzPwlj09WGa8HN5MJBDd2gCEFO1LGbMKzOjpXw+p JhdgIlOwnSvLgulGhB3Y3Z1teXimunXZOpIMFxh+G8dnJDbALsuOxfnoEKGOKK7BqUV6enxMa X0YC3rKuosRMylk6D2XlRcgPXjJejzo8rqSYzhZrT438X8zoYOtw67am03aFGGlAZGuY4ajiS wxztkoA== X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) This is a multi-part message in MIME format. --------------Q9wiigK2mheiPO49mq60dAzb Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > Works perfectly, thanks! There's a problem with moving nested child frames out of their child parents. Load the attached tty-child-frames.el do first M-l and then C-M-l. You should see a grey child frame embedded in an orange child frame. Now do (set-frame-parameter tty-3 'left (- 30)) This gets me Program received signal SIGSEGV, Segmentation fault. 0x00000000005497d2 in FACE_FROM_ID (f=0xc383e60, id=0) at ../../src/frame.h:1631 1631 eassert (0 <= id && id < FRAME_FACE_CACHE (f)->used); (gdb) bt #0 0x00000000005497d2 in FACE_FROM_ID (f=0xc383e60, id=0) at ../../src/frame.h:1631 #1 0x000000000054bc11 in tty_write_glyphs (f=0xc2c9d30, string=0x7fb8f65f86e0, len=71) at ../../src/term.c:793 #2 0x00000000005571c2 in write_glyphs (f=0xc2c9d30, string=0x7fb8f65f84b0, len=71) at ../../src/terminal.c:182 #3 0x000000000042c80b in write_row (f=0xc2c9d30, vpos=12, updating_menu_p=false) at ../../src/dispnew.c:5917 #4 0x000000000042bd05 in write_matrix (f=0xc2c9d30, inhibit_id_p=false, updating_menu_p=false) at ../../src/dispnew.c:5698 #5 0x0000000000427544 in combine_updates_for_frame (f=0xc2c9d30, inhibit_scrolling=false) at ../../src/dispnew.c:4001 #6 0x0000000000427880 in combine_updates (roots=XIL(0x7fb8f3a6a0d3)) at ../../src/dispnew.c:4050 #7 0x0000000000483026 in redisplay_internal () at ../../src/xdisp.c:17613 #8 0x00000000004808db in redisplay () at ../../src/xdisp.c:16670 #9 0x00000000005f6708 in read_char (commandflag=1, map=XIL(0x7fb8f3a6ab83), prev_event=XIL(0), used_mouse_menu=0x7ffd6018477f, end_time=0x0) at ../../src/keyboard.c:2672 #10 0x000000000060a767 in read_key_sequence (keybuf=0x7ffd60184930, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false, disable_text_conversion_p=false) at ../../src/keyboard.c:10757 #11 0x00000000005f2a89 in command_loop_1 () at ../../src/keyboard.c:1424 #12 0x00000000006d02d5 in internal_condition_case (bfun=0x5f265a <command_loop_1>, handlers=XIL(0x90), hfun=0x5f1adc <cmd_error>) at ../../src/eval.c:1602 #13 0x00000000005f2221 in command_loop_2 (handlers=XIL(0x90)) at ../../src/keyboard.c:1163 #14 0x00000000006cf73f in internal_catch (tag=XIL(0x12390), func=0x5f21f7 <command_loop_2>, arg=XIL(0x90)) at ../../src/eval.c:1282 #15 0x00000000005f21b3 in command_loop () at ../../src/keyboard.c:1141 #16 0x00000000005f157e in recursive_edit_1 () at ../../src/keyboard.c:749 #17 0x00000000005f17aa in Frecursive_edit () at ../../src/keyboard.c:832 #18 0x00000000005ecf8c in main (argc=5, argv=0x7ffd60184f68) at ../../src/emacs.c:2558 Lisp Backtrace: "redisplay_internal (C function)" (0x0) If you see no simple way to fix this, we can disallow moving child frames outside their non-root parents. It's a bit inconsistent because the scenario works on GUIs and it works for tty child frames with a root parent. martin --------------Q9wiigK2mheiPO49mq60dAzb Content-Type: text/x-emacs-lisp; charset=UTF-8; name="tty-child-frames.el" Content-Disposition: attachment; filename="tty-child-frames.el" Content-Transfer-Encoding: base64 Ozs7ICAtKi0gbGV4aWNhbC1iaW5kaW5nOnQgLSotCihzdGFuZGFyZC1kaXNwbGF5LXVuaWNv ZGUtc3BlY2lhbC1nbHlwaHMpCjs7IChzZXRxICB0dHktbWVudS1vcGVuLXVzZS10bW0gdCkK KHVubGVzcyB3aW5kb3ctc3lzdGVtICh4dGVybS1tb3VzZS1tb2RlIDEpKQoKOzsgKHRhYi1i YXItbW9kZSAxKQo7OyAoc2V0cSBkaXNwbGF5LWxpbmUtbnVtYmVycyB0KQo7OyAoc2V0cSB0 cnVuY2F0ZS1saW5lcyB0KQo7OyAoc2V0cSBhdXRvLWhzY3JvbGwtbW9kZSB0KQo7OyAoc2V0 cSBhdXRvLWhzY3JvbGwtbW9kZSAnY3VycmVudC1saW5lKQoKKGRlZnZhciByb290LWZyYW1l IChzZWxlY3RlZC1mcmFtZSkpCihkZWZ2YXIgdHR5LTEgbmlsKQooZGVmdmFyIHR0eS0yIG5p bCkKKGRlZnZhciB0dHktMyBuaWwpCgooZGVmdW4gdHR5LTEgKCkKICAoaW50ZXJhY3RpdmUp CiAgKHNldHEgdHR5LTEKCShtYWtlLWZyYW1lCgkgYCgocGFyZW50LWZyYW1lIC4gLHJvb3Qt ZnJhbWUpCgkgICAobGVmdCAuIDYwKSAodG9wIC4gMTApCgkgICAod2lkdGggLiAxNSkgKGhl aWdodCAuIDEwKQoJICAgKHRvb2wtYmFyLWxpbmVzIC4gMCkKCSAgIChtZW51LWJhci1saW5l cyAuIDApCgkgICAobWluaWJ1ZmZlciAuIG5pbCkKCSAgIChkcmFnLWludGVybmFsLWJvcmRl ciAuIHQpCgkgICAoZHJhZy13aXRoLWhlYWRlci1saW5lIC4gdCkKCSAgIChkcmFnLXdpdGgt bW9kZS1saW5lIC4gdCkKCSAgIChpbnRlcm5hbC1ib3JkZXItd2lkdGggLiAyKQoJICAgKGJv cmRlci13aWR0aCAuIDApCgkgICAoYmFja2dyb3VuZC1jb2xvciAuICJ5ZWxsb3ciKSkpKQog IChsZXQgKCh3aW5kb3cgKGZyYW1lLXJvb3Qtd2luZG93IHR0eS0xKSkpCiAgICAoc2V0LXdp bmRvdy1wYXJhbWV0ZXIKICAgICB3aW5kb3cgJ2hlYWRlci1saW5lLWZvcm1hdCAnKCIgIiAo OmV2YWwgKGJ1ZmZlci1uYW1lKSkpKSkKICAoc2VsZWN0LWZyYW1lLXNldC1pbnB1dC1mb2N1 cyB0dHktMSkpCgooZGVmdW4gdHR5LTIgKCkKICAoaW50ZXJhY3RpdmUpCiAgKHNldHEgdHR5 LTIKCShtYWtlLWZyYW1lCgkgYCgocGFyZW50LWZyYW1lIC4gLHJvb3QtZnJhbWUpCgkgICAo bGVmdCAuIDQwKSAodG9wIC4gNSkKCSAgICh3aWR0aCAuIDMwKSAoaGVpZ2h0IC4gMjApCgkg ICAodG9vbC1iYXItbGluZXMgLiAwKQoJICAgKG1lbnUtYmFyLWxpbmVzIC4gMCkKCSAgICht aW5pYnVmZmVyIC4gbmlsKQoJICAgKGRyYWctaW50ZXJuYWwtYm9yZGVyIC4gdCkKCSAgIChk cmFnLXdpdGgtaGVhZGVyLWxpbmUgLiB0KQoJICAgKGRyYWctd2l0aC1tb2RlLWxpbmUgLiB0 KQoJICAgKGludGVybmFsLWJvcmRlci13aWR0aCAuIDIpCgkgICAoYm9yZGVyLXdpZHRoIC4g MCkKCSAgIChiYWNrZ3JvdW5kLWNvbG9yIC4gIm9yYW5nZSIpKSkpCiAgKGxldCAoKHdpbmRv dyAoZnJhbWUtcm9vdC13aW5kb3cgdHR5LTIpKSkKICAgIChzZXQtd2luZG93LXBhcmFtZXRl cgogICAgIHdpbmRvdyAnaGVhZGVyLWxpbmUtZm9ybWF0ICcoIiAiICg6ZXZhbCAoYnVmZmVy LW5hbWUpKSkpKQogIChzZWxlY3QtZnJhbWUtc2V0LWlucHV0LWZvY3VzIHR0eS0yKSkKCihk ZWZ1biB0dHktMyAoKQogIChpbnRlcmFjdGl2ZSkKICAoc2V0cSB0dHktMwoJKG1ha2UtZnJh bWUKCSBgKChwYXJlbnQtZnJhbWUgLiAsdHR5LTIpCgkgICAobGVmdCAuIDEwKSAodG9wIC4g NSkKCSAgICh3aWR0aCAuIDEwKSAoaGVpZ2h0IC4gNSkKCSAgICh0b29sLWJhci1saW5lcyAu IDApCgkgICAobWVudS1iYXItbGluZXMgLiAwKQoJICAgKG1pbmlidWZmZXIgLiBuaWwpCgkg ICAoZHJhZy1pbnRlcm5hbC1ib3JkZXIgLiB0KQoJICAgKGRyYWctd2l0aC1oZWFkZXItbGlu ZSAuIHQpCgkgICAoZHJhZy13aXRoLW1vZGUtbGluZSAuIHQpCgkgICAoaW50ZXJuYWwtYm9y ZGVyLXdpZHRoIC4gMikKCSAgIChib3JkZXItd2lkdGggLiAwKQoJICAgKGJhY2tncm91bmQt Y29sb3IgLiAid2hpdGUiKSkpKQogIChsZXQgKCh3aW5kb3cgKGZyYW1lLXJvb3Qtd2luZG93 IHR0eS0zKSkpCiAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIKICAgICB3aW5kb3cgJ2hlYWRl ci1saW5lLWZvcm1hdCAnKCIgIiAoOmV2YWwgKGJ1ZmZlci1uYW1lKSkpKSkKICAoc2VsZWN0 LWZyYW1lLXNldC1pbnB1dC1mb2N1cyB0dHktMykpCgooZGVmdW4gdHR5LXRvZ2dsZS0xICgp CiAgKGludGVyYWN0aXZlKQogIChpZiAoZnJhbWUtbGl2ZS1wIHR0eS0xKQogICAgICAoaWYg KGZyYW1lLXZpc2libGUtcCB0dHktMSkKCSAgKG1ha2UtZnJhbWUtaW52aXNpYmxlIHR0eS0x KQoJKG1ha2UtZnJhbWUtdmlzaWJsZSB0dHktMSkpCiAgICAodHR5LTEpKSkKCihkZWZ1biB0 dHktdG9nZ2xlLTIgKCkKICAoaW50ZXJhY3RpdmUpCiAgKGlmIChmcmFtZS1saXZlLXAgdHR5 LTIpCiAgICAgIChpZiAoZnJhbWUtdmlzaWJsZS1wIHR0eS0yKQoJICAobWFrZS1mcmFtZS1p bnZpc2libGUgdHR5LTIpCgkobWFrZS1mcmFtZS12aXNpYmxlIHR0eS0yKSkKICAgICh0dHkt MikpKQoKKGRlZnVuIHR0eS10b2dnbGUtMyAoKQogIChpbnRlcmFjdGl2ZSkKICAoaWYgKGZy YW1lLWxpdmUtcCB0dHktMykKICAgICAgKGlmIChmcmFtZS12aXNpYmxlLXAgdHR5LTMpCgkg IChtYWtlLWZyYW1lLWludmlzaWJsZSB0dHktMykKCShtYWtlLWZyYW1lLXZpc2libGUgdHR5 LTMpKQogICAgKHR0eS0zKSkpCgooZ2xvYmFsLXNldC1rZXkgWyhjb250cm9sIGwpXSAndHR5 LXRvZ2dsZS0xKQooZ2xvYmFsLXNldC1rZXkgWyhtZXRhIGwpXSAndHR5LXRvZ2dsZS0yKQoo Z2xvYmFsLXNldC1rZXkgWyhjb250cm9sIG1ldGEgbCldICd0dHktdG9nZ2xlLTMpCgo7OyAo bG9hZCAiL2hvbWUvbWFydGluL3RlbXAvdHR5LW1lbnUuZWwiKQo7OyAodHR5LW1lbnUtbW9k ZSkKKHNldHEgZGVidWctb24tZXJyb3IgdCkKOzsgKG1lbnUtYmFyLW9wZW4pCgo7OyAoZ2V0 LWJ1ZmZlci1jcmVhdGUgIipmb28qIikKCjs7IChkZWZ1biBmb28taXQgKCZyZXN0IHJlc3Qp Cjs7ICAgKHdpdGgtY3VycmVudC1idWZmZXIgKGdldC1idWZmZXItY3JlYXRlICIqZm9vKiIp Cjs7ICAgICAoZ290by1jaGFyIChwb2ludC1tYXgpKQo7OyAgICAgKHdoZW4gcmVzdAo7OyAg ICAgICAoaW5zZXJ0IChmb3JtYXQgIiVzIiAoY2FyIHJlc3QpKSkKOzsgICAgICAgKHNldHEg cmVzdCAoY2RyIHJlc3QpKQo7OyAgICAgICAod2hpbGUgcmVzdAo7OyAJKGluc2VydCAoZm9y bWF0ICIgLi4gJXMiIChjYXIgcmVzdCkpKQo7OyAJKHNldHEgcmVzdCAoY2RyIHJlc3QpKSkK OzsgICAgICAgKGluc2VydCAiXG4iKSkpKQoKOzsgKGRlZnVuIGZvby1pdC1lcmFzZSAoJnJl c3QgcmVzdCkKOzsgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAoZ2V0LWJ1ZmZlci1jcmVhdGUg Iipmb28qIikKOzsgICAgIChlcmFzZS1idWZmZXIpCjs7ICAgICAoZ290by1jaGFyIChwb2lu dC1tYXgpKQo7OyAgICAgKHdoZW4gcmVzdAo7OyAgICAgICAoaW5zZXJ0IChmb3JtYXQgIiVz IiAoY2FyIHJlc3QpKSkKOzsgICAgICAgKHNldHEgcmVzdCAoY2RyIHJlc3QpKQo7OyAgICAg ICAod2hpbGUgcmVzdAo7OyAJKGluc2VydCAoZm9ybWF0ICIgLi4gJXMiIChjYXIgcmVzdCkp KQo7OyAJKHNldHEgcmVzdCAoY2RyIHJlc3QpKSkKOzsgICAgICAgKGluc2VydCAiXG4iKSkp KQo= --------------Q9wiigK2mheiPO49mq60dAzb--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 10 Feb 2025 20:08:47 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 10 15:08:47 2025 Received: from localhost ([127.0.0.1]:52637 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tha5H-0000b3-Dv for submit <at> debbugs.gnu.org; Mon, 10 Feb 2025 15:08:47 -0500 Received: from mout.gmx.net ([212.227.17.21]:43475) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tha5E-0000am-0D for 75056 <at> debbugs.gnu.org; Mon, 10 Feb 2025 15:08:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1739218109; x=1739822909; i=rudalics@HIDDEN; bh=Ie3Jy9Y3KqDuC5XnosibvkHm5cfyXD+C27KOG1l2DH0=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=k16xQeV9DPAj2mzOw7s93olOWeO0Cx99fw5r+TOBh9s+k7ayr32GdBF/ptMGuSGs WdkFC7MxBE45JNHDUavs4jR0qbFbUbFc5ScHPWBCIyWDKOxfGxmPzVp7Y/UgJhRTg DvZEL58iBhkGwBJrvRtnsFHu+iyneRyMtJO/28HZKl1zH4EQeYebcUWkUVP+YYMRg HdMiceci8iPYGsjowgXFlca9niRTlLdB6aZDgfPQU4MBOyVgPxZlD/N+yLJc9JCTd 3WXsuVJhShFzVxT61NUUPHtzvgw7mfdrwjsq6lrQxLcSVWKvLWwM5z6uBf7aeD/zk GNsmKJAJq3kORjLX4w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.219]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M4s51-1tiP9v3SRb-009QOD; Mon, 10 Feb 2025 21:08:28 +0100 Message-ID: <5765dc6c-7802-4481-bbf1-6827533c13c3@HIDDEN> Date: Mon, 10 Feb 2025 21:08:25 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: Eli Zaretskii <eliz@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <a886ab8d-516b-4158-aac4-5afac15a74b6@HIDDEN> <m21pwgyw4m.fsf@HIDDEN> <338e58ab-e2e1-46c4-9fdc-39214758b0d7@HIDDEN> <86ldudy50g.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <86ldudy50g.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:1mZsi5IIRlmuSD8HGUOW792mrXEH01p+PStFyozgEnlxWUJWT0p /fl9SKQjP6/cFGPek4c2WB/OqHP46ZIiDTA8YSHPB5D/g1Qe5oOUnjPf19ywGx5zmXTjbBf o9qU6EVN/WdFam4HORapcGOzQHRwbw8UuWoTO7lpWgq8os8Ep1SAUr8xq/VypqWxUlxirUd 1vf5wSKnTnFdahaoPgLRQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:aWwmWcSzNRc=;o7Fd2OPRFCiCzloGWeMGcJAofk1 M0KB0VgpB/gr3TTJrqoF5gSZ2Jqr2m4Lo1nEOYBJXMTpfCeRx5tszOEN2aITaZsCN6phAmpvF oYb9PNADZ5OdmXWS3PXxhozc+kS3vPV+WXWGVx3alP40qg0RRyBvD3fgzzYZHvIxUtY4qvydF kroB3U0sf0qkBw1y1ZZd9zTFQw1qOYZqCK4WAHDqhRH2xF9Cg3wmzkY6XqxN+VUivjcNkQ0fT atRDMBRdhm0zkfcupwwjXvScJgZ1m8/UprjLQ05a0cWlaa9rm51a/38fymY/vDleqSU4l81vn r0LmPc5SwAm348v9IdtPqj6InsiGzwSKGgI3GWy6ktGaLafNVt0uixZd3KLz/QF99bPmOIxWg 5e8yIrIPEvZGuK4LLa+DOxa1/HIPaoIC+XY/uGS0uGoHJlxHjvQCmPP0wwz3v+oREdMwvCTQg vdzUXf7LKDYMqVcVLJiZWZsgpsqS4oLS4QeVMKFc+AIkkq7N670yp6rJqreSpIcNnKQpTIcEX HTJlAYh9OMVjA+cei/2d5m2GcnihBFePEAQkpU2eAVFOCQkC7IxFRpn6sR72zEUu3KKZiN2F6 rSio2vfME0APQJvJGxC5ndIj7+75l3zV60MbdD/ZLg5Hz6lhjB7/uQGxbJiRAnxwAJt23PKHy liNgcGZrcP7V2ov9sl+0oiaUK+qtTwHNnPwFu3U3+dVNMAuvy/D83z0rPxmmuLJpMTTqDtTwG 1qu0HbGyfp6xw1sCOT3xNFSR4Ge8N+DJJFiL53Y1jnGx75EfvZyx/UvTyeV/t5PAj2t4RaW0S vl5HKwvysuUd0RDGdGv67HiONEsBwEeyOYMa9XWHN3hk7ODFLu/du8hU4oKdAmObCPlqaPSOJ MvwwphRRI3A7YYSY1o1HKXZYO0LjEp5FL39SOkML+Ax0uqf9wgjyTB99BTfeJLG1YCyMIfC5X HToFu4fnj9CRg7wlTfBnJ0pDLKgOvYX1mUZZ4DMxToEnBiiaNZlOdNXe5xtK01IiVdaOfpFci T8tky4vqWt/gD9LpcLeSmmndkamlzLUir8cAC7ssX/5+0vEtg60StbSlCB3yLKuuTrWBJNgyI oy2+sSqmBdJffyE7vbRl3Swpdx3XXyjFzsZ4kbbCCT2dt354SDmNrimm+15wjBiH0H2RksING KPhSoYxo+MVBWLmysZattH6GBgiabJVstVBgSatKt5AFttr2TC+TzTCsMet6GWZES9+BzxXnU xWCJSjK/5MzjM0iACH1Ksobrlfp3sEK7NsGFbLvUx5gNTnbEZ3PtXajLOMTnvcPqV+WE97BoF 4uJ4rJQD4BMu2YgkDAX+bdp89JIvRhI6IAJour7cPU4/fsPQZu/43AbNALgsRQ0vXA4lt7UpF FiBabeCkwdxJDsRzdMvEWwsJxKPcEHHb4PqiOy5rRmguslNBN2gO2+t8tgM9+9t1qjUsXJNd3 IRavSOA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) >> I think I fixed that now - having coordinates start at 0 and lines and >> columns at 1 is a bit hard to grasp. Please have a look. > > Columns do start at zero. Right. My problem was that the right outer border of a frame which is 80 columns width and whose left outer border is at column -1 and whose left edge is at column 0 is at column 79 and not at column 80 as I thought. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 10 Feb 2025 19:47:47 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 10 14:47:46 2025 Received: from localhost ([127.0.0.1]:52597 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1thZkw-00084N-Ic for submit <at> debbugs.gnu.org; Mon, 10 Feb 2025 14:47:46 -0500 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]:47416) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1thZks-000845-2T for 75056 <at> debbugs.gnu.org; Mon, 10 Feb 2025 14:47:44 -0500 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-aaf900cc7fbso805142866b.3 for <75056 <at> debbugs.gnu.org>; Mon, 10 Feb 2025 11:47:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739216855; x=1739821655; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=gFz7q2gicgweO4xWfEEYO+vgvsHKFHQa8whd1/Y/m0c=; b=FkgXdTaLk12ZSSTJZ877bNr6rZ4y8E06XpQxmkFTQB4GfTZK9y8qsis1uqX7anf/MS Q8dehKv5hbL9SC49Ui0358dz1SJLaQqa+OIwHMPrtv14RdZu2o2ucNlVSXHgX++v51TO 00VvRmH/u8rfULHdmzCBCuCfmHsKJaIiBTHQ5t/eEeSsiwkfuJinRAL+gH8yYC96G4ju CiiDpbH57os3uoQkyLYhOz9EqSA7qY4FT8W5CRkv/uP1/V7854hKsDoiDy8YsSDfyAU1 smrqOyhxyRzCqva5yx7eAmTEWBTzcEAElHEkWKJl7DO2MUqe4FzN6RhsLEe/GVjA8N30 Dibw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739216855; x=1739821655; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=gFz7q2gicgweO4xWfEEYO+vgvsHKFHQa8whd1/Y/m0c=; b=jKnO8BhU9eEr3+mbbMrfjEEQofrukHf0/NS/1mS0287/KoHLx/7MJqOxNp0bF4dzjl xugI4Aq6Yc/rN4OZ5Th9A+C8Ed9/5GaSVaGaOtTL4J6l38P58Xcny0aUAnzDnysE6Dwy jOdxxAHCKof4nLLpI1EB4qahbBD2Gtua7nAqwbYKDodfDN3y2c4GfV9P8aWPWMPerjys DYU2RPGmhA0y9/1H7huTsjuHxrp7NJin2ddltw/nBeAcQo3EqYXz7vZI5IqfBG8eYRSE QSy1bTdYlxtn6WK3lcF5Pn4TZKe+fJVDOHRO9Cp7kdRlzIS+j9zoVM3u69gERcSN6ufw 0DnQ== X-Forwarded-Encrypted: i=1; AJvYcCU3wDDc+q0IVirQGnz9vXIz84IJCLgCVaGjy6ngHUANoK9Gh+kDlpwO5MLh2iAeYad8aj6b3Q==@debbugs.gnu.org X-Gm-Message-State: AOJu0Ywpkhgg+mItFz4r6VqZWOP0xlGIKyDnhJFGKbt5TX5JQikE5az2 RPfJO7wTHFPd1y1PUpeFrLSj4fUZUJ3woRLpUGxM3JpgIN2gWK7mDakl1g== X-Gm-Gg: ASbGncvKwrWjSOhXSMpKzgnCfgcEGzeaBbOKMvPY4kqcUpL28nF8L+sG6iMGQQuSlsB my0VqVPL7bDO5xxg0LA5MG9RgdCuhxMphQIJyUWBiQlGUFLHvVmGYZTwbjLmrp7cgA3plzAw36f R+40bZtP84wN/2S/ND9pb3TzvMh6ErK8BMVOII67aPjsCTeu+K3QcJj2eK6oTdtIY0D1ToCR5mG iA971FqBiWMt/r6VXSrXaD35H6QP7TzyktzZdgLXEfZPlzUGODbgHPH+HThabzqOd3Djt9hWD3z Zu0MqYzW8VSux3itQUyvAZF3uCo/S6izfnJOnqlIdHcAVvszXgJPYeH7eHPuXUWB+YXP9SmWwdm kHoWPuKlxyeCHg/kga6UcPkf/ X-Google-Smtp-Source: AGHT+IHoJcGJBmBIxFGSShGlPANIKe5xSo3lRg9YQbWedh/OBTlLUVwrSfNitW1Z1NXkLoTwmEOQUg== X-Received: by 2002:a17:907:c285:b0:ab6:32d2:16d4 with SMTP id a640c23a62f3a-ab789c35448mr1568553466b.56.1739216855069; Mon, 10 Feb 2025 11:47:35 -0800 (PST) Received: from pro2 (p200300e0b72ded006d97dc68cf4df393.dip0.t-ipconnect.de. [2003:e0:b72d:ed00:6d97:dc68:cf4d:f393]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab7dd77c151sm7370566b.57.2025.02.10.11.47.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 11:47:34 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <338e58ab-e2e1-46c4-9fdc-39214758b0d7@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <a886ab8d-516b-4158-aac4-5afac15a74b6@HIDDEN> <m21pwgyw4m.fsf@HIDDEN> <338e58ab-e2e1-46c4-9fdc-39214758b0d7@HIDDEN> Date: Mon, 10 Feb 2025 20:47:33 +0100 Message-ID: <m2cyfpfup6.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: > Please have a look. Works perfectly, thanks!
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 10 Feb 2025 19:27:41 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 10 14:27:41 2025 Received: from localhost ([127.0.0.1]:52569 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1thZRU-00077l-QG for submit <at> debbugs.gnu.org; Mon, 10 Feb 2025 14:27:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56434) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1thZRR-00077W-P5 for 75056 <at> debbugs.gnu.org; Mon, 10 Feb 2025 14:27:39 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1thZRM-0007cS-9U; Mon, 10 Feb 2025 14:27:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=HYC6HCNt7E5qZrNmPqSorRQZod6BWxi4t1b9O77yXFo=; b=MXKgSz20iU29 cEx3URG+J6g8zKb5SeKBlPbOiyLJejWzgEyokXcInrF0NY+lQUnKQiLq3/cQlkSRB05fPlx0IrPkZ jpo3Yk1tSqeLlJikVm3YzyKKImyHqM79RGxQrP1+G646hdk7AZxfwZs9weNv2UCaX67nbZYZT0Pnr QTWxL42+O8bRtnt4iVX3s8eLWRRAG3p20YkEz6hRe9x2gu03/iRjouDBdriCfw/AccnbqnnPNKZSK o5xf9cVPOzRkkPMyEm27c9gpYG8CYaexQ67GJzr1HLRNs3UHHX+P7/+6zfudE61nMnPMNKCKKvCSU xJqN20PWjyEAWCAZqeM+tA==; Date: Mon, 10 Feb 2025 21:27:27 +0200 Message-Id: <86ldudy50g.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: martin rudalics <rudalics@HIDDEN> In-Reply-To: <338e58ab-e2e1-46c4-9fdc-39214758b0d7@HIDDEN> (message from martin rudalics on Mon, 10 Feb 2025 18:51:09 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <a886ab8d-516b-4158-aac4-5afac15a74b6@HIDDEN> <m21pwgyw4m.fsf@HIDDEN> <338e58ab-e2e1-46c4-9fdc-39214758b0d7@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Date: Mon, 10 Feb 2025 18:51:09 +0100 > Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > From: martin rudalics <rudalics@HIDDEN> > > I think I fixed that now - having coordinates start at 0 and lines and > columns at 1 is a bit hard to grasp. Please have a look. Columns do start at zero.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 10 Feb 2025 17:51:33 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 10 12:51:33 2025 Received: from localhost ([127.0.0.1]:52341 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1thXwR-0007q0-Gp for submit <at> debbugs.gnu.org; Mon, 10 Feb 2025 12:51:33 -0500 Received: from mout.gmx.net ([212.227.17.22]:56703) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1thXwN-0007pg-86 for 75056 <at> debbugs.gnu.org; Mon, 10 Feb 2025 12:51:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1739209872; x=1739814672; i=rudalics@HIDDEN; bh=QPhm0rOOmTJNTf37QXsmKS9WxJIFCCwwi7C1FrnoXu4=; h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version: Subject:To:Cc:References:From:In-Reply-To:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=aQ9uyWeWjJw+QNLCSxCEW4RPnCooznEdMG3wcyf1a5rkDWEfh2WH9SZiEwBeChbb mPXA372W+84qluN7TGr17J+V1n+3P/sRmbWS6mJzC4PgfEzZe7Gf4umPMH4c1/pIi ip02oGlgmVPcBQutsPFblzBRHoVFERFy5J5kNH1COBb5F1wiCGPeSNVTzTWyWvqEb zRifa2mV3P6zeGVdQnjv7nKyBMPwsbgAhnVC3hpEmWGJMSASr3yUmlZzEaus+StuH vA6cfBSLJk8CYFAZdNQG1hRgKyXjUaUo6hLR5B0S1J2vM7knaLga2xPlbmilMvDzw Q7ECKjZHqAg5DQTa+w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.219]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MHXBp-1tdN5K3JSr-000Ppq; Mon, 10 Feb 2025 18:51:12 +0100 Content-Type: multipart/mixed; boundary="------------g10vPUGCcPR3uoc6XZn708Q0" Message-ID: <338e58ab-e2e1-46c4-9fdc-39214758b0d7@HIDDEN> Date: Mon, 10 Feb 2025 18:51:09 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <a886ab8d-516b-4158-aac4-5afac15a74b6@HIDDEN> <m21pwgyw4m.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m21pwgyw4m.fsf@HIDDEN> X-Provags-ID: V03:K1:dZucfOKXVoEAUaUd603ebkGkdpuZQjUW4vrfGiRoRDt/ObDn6Mw 29+0LQDGMZeWDP0Aixqhoq1fKEzhKxjvRb342vHcRasMQawZO5yCqdYvslsxN92XF+bSOrD r4yNgKOs+N4XxelBp2XJjsb666PPZyYPP8PpB3R6v3XbHUxNaGjqaaE8MJ9Vaqxqt1S0dpb m3ENOJRygJMKTVItuooeQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:MgrQtBIGyZg=;PcG493WFwlhKq96+2gHT7b9U4am w5ubVn17ePXop9kBiEFwmyehpBufOWZ5U81gIw+8pMfpHGvG+ufdQkpIGgZ30BHi7FBDV6Oeg FZefEuwgQB/e0k3QjMXNwZ6yyb6Dn0trunudU3WE8zGOfQ05PGSkjEtvyaEMj4cS94B8XCUCw WpE2e3x9SpC5H8SU9mjJtphB4MTRyta8ffmXR8ujCs13FLArKvLVumR59oGpCpxV2a42nj5EM XQotj9NGAxRDYq2AeJy6wruULZCpbAQqq7/JuX1k1VaJTCgPR0TUhJA4K9UW0wo9ykf23Z9Od o9Trwh/II5XFOhbQTh5u5/xzgDz8NYZxw+tCe9gcqNzpzpip39yci2T+PpT+jhiYvocalXlIM LLsqKLAygOXV2u5zv0AXZBZHmII9wjuhLehHn+bspQ8g/0iW22ypIazIqBDk5TY6eGfOxy4iG FKFsIFlsILVBJvCg1k6UNbOf5HhtFj12TXsLujCeeBcVKsSHUXix6fcO4+Y1dXxs95B7rzcKo u+6KLgjjNvtQhZYDqNJpTklEfDdOGIHt1pna6VHmH0b1a6cFrIUYIPVDtV0QxWX3pQ7p+RzRg kIo7PJhDLUgjX5/IjPZCe6I3NUwj8xZone3oP/p+v3cZKetxd8NZbCxp2gU3G4JlEOPkem7CG Kbzb+aX/K0m2ioZWCeN9OGhR3DjWUhP1hN20t1g8A793O2buZue22qzLUHe2T6MsDEIn7kOXJ o24//iWDvhTpkWxDJgqM+qYKvbrEBXvtZTj4EpcTu76cIfjV8RFbxR2uaTrBFW1Md1b3eUZdw Vjzn+NGttRv4KrMAvDwJJ5d5nMtQd5iSquVZXQmbPPBq6VeH6W6FSVum8rGSLV7rfkMQ8kHF5 IxInfDfiz7yn4rfRJ3bSNJQ2FpKP3RWhMd6g34cQbYOc630YFIKO2uquhIY43kPSVL0UNwMH4 /J8FmTHYP2UL7LVhUK7dn39LXf1ka3P8HFLoRTlmJp2jvp8Dry4pfBwOiwWCi6CeM6AcRMcwH w66RxVOkMe1Z8s1zZO1qYfzNEDBV2sNTXceL4cWd8vPndvM4oK346hZPAe14FPw2UV8bY5tUl gtYU8aSkfy/7/D0qKWRdX3PkMXXByBpCv57lhnYXCDkGHB0ywP5ebSF0Dv0CV5917zPvtboqF UDWY8sWj+nwqWoKCaagZIbpyNzMh+pg62Mc0mkMIGo8SMH1AEv2ghXp8hXMCMbcr5e1EYTYtD hvwAD1xT7ZzfYiFhTek9rBkPkH65IGQhmWHLl7pxHQvUAlmyDmVDmw/eADWm6gkqmtaQiGloY OztZ1GZXcJgPVzlBhI9V6ttjM7KoVeLMM4/5+8JBgKeACmVINbxKnU49Udj88kLA4Rcras+aC iCRyBg+kScev4IQvGbmTTNjcwQ0aNiA0xZemux7dkM2OLmtPEguDEAPHeQ6exqVSdke6PlhV2 /9NgJxA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) This is a multi-part message in MIME format. --------------g10vPUGCcPR3uoc6XZn708Q0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > Works well for me. Only dragging the edges of a child frame doesn't seem > to work like in a GUI. I think I fixed that now - having coordinates start at 0 and lines and columns at 1 is a bit hard to grasp. Please have a look. martin --------------g10vPUGCcPR3uoc6XZn708Q0 Content-Type: text/x-patch; charset=UTF-8; name="child-frame-menubar-drag-resize.diff" Content-Disposition: attachment; filename="child-frame-menubar-drag-resize.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvbWVudS1iYXIuZWwgYi9saXNwL21lbnUtYmFyLmVsCmluZGV4 IDEzOTExMTA5ZmQ3Li4xNDY5ZGY2MzE2ZiAxMDA2NDQKLS0tIGEvbGlzcC9tZW51LWJhci5l bAorKysgYi9saXNwL21lbnUtYmFyLmVsCkBAIC0yNjkxLDUzICsyNjkxLDc0IEBAIHBvcHVw LW1lbnUKIAkJCSAoZmlsdGVyICh3aGVuIChzeW1ib2xwIG1hcCkKIAkJCQkgICAocGxpc3Qt Z2V0IChnZXQgbWFwICdtZW51LXByb3ApIDpmaWx0ZXIpKSkpCiAJCSAgICAoaWYgZmlsdGVy IChmdW5jYWxsIGZpbHRlciAoc3ltYm9sLWZ1bmN0aW9uIG1hcCkpIG1hcCkpKSkpCi0JIChm cmFtZSAoc2VsZWN0ZWQtZnJhbWUpKQorCSAoc2VsZWN0ZWQtZnJhbWUgKHNlbGVjdGVkLWZy YW1lKSkKKwkgKGZyYW1lIChpZiAoYW5kIChlcSAoZnJhbWVwIHNlbGVjdGVkLWZyYW1lKSB0 KSAoZnJhbWUtcGFyZW50KQorCQkJIGZyb20tbWVudS1iYXIKKwkJCSAoemVyb3AgKG9yIChm cmFtZS1wYXJhbWV0ZXIgbmlsICdtZW51LWJhci1saW5lcykgMCkpKQorCQkgICAgOzsgSWYg dGhlIHNlbGVjdGVkIGZyYW1lIGlzIGEgdHR5IGNoaWxkIGZyYW1lCisJCSAgICA7OyB3aXRo b3V0IGl0cyBvd24gbWVudSBiYXIgYW5kIHdlIGFyZSBjYWxsZWQgZnJvbQorCQkgICAgOzsg dGhlIG1lbnUgYmFyLCB0aGUgbWVudSBiYXIgbXVzdCBiZSBvbiB0aGUgcm9vdAorCQkgICAg OzsgZnJhbWUgb2YgdGhlIHNlbGVjdGVkIGZyYW1lLgorCQkgICAgKGZyYW1lLXJvb3QtZnJh bWUpCisJCSAgKHNlbGVjdGVkLWZyYW1lKSkpCiAJIGV2ZW50IGNtZCkKLSAgICAoaWYgZnJv bS1tZW51LWJhcgotCShsZXQqICgoeHkgKHBvc24teC15IHBvc2l0aW9uKSkKLQkgICAgICAg KG1lbnUtc3ltYm9sIChtZW51LWJhci1tZW51LWF0LXgteSAoY2FyIHh5KSAoY2RyIHh5KSkp KQotCSAgKHNldHEgcG9zaXRpb24gKGxpc3QgbWVudS1zeW1ib2wgKGxpc3QgZnJhbWUgJyht ZW51LWJhcikKLQkJCQkJCSB4eSAwKSkpKQotICAgICAgKHNldHEgcG9zaXRpb24gKHBvcHVw LW1lbnUtbm9ybWFsaXplLXBvc2l0aW9uIHBvc2l0aW9uKSkpCi0gICAgOzsgVGhlIGxvb3Bp bmcgYmVoYXZpb3Igd2FzIHRha2VuIGZyb20gbG1lbnUncyBwb3B1cC1tZW51LXBvcHVwCi0g ICAgKHdoaWxlIChhbmQgbWFwIChzZXRxIGV2ZW50Ci0JCQkgIDs7IG1hcCBjb3VsZCBiZSBh IHByZWZpeCBrZXksIGluIHdoaWNoIGNhc2UKLQkJCSAgOzsgd2UgbmVlZCB0byBnZXQgaXRz IGZ1bmN0aW9uIGNlbGwKLQkJCSAgOzsgZGVmaW5pdGlvbi4KLQkJCSAgKHgtcG9wdXAtbWVu dSBwb3NpdGlvbiAoaW5kaXJlY3QtZnVuY3Rpb24gbWFwKSkpKQotICAgICAgOzsgU3RyYW5n ZWx5IHgtcG9wdXAtbWVudSByZXR1cm5zIGEgbGlzdC4KLSAgICAgIDs7IG1vdXNlLW1ham9y LW1vZGUtbWVudSB3YXMgdXNpbmcgYSB3ZWlyZDoKLSAgICAgIDs7IChrZXktYmluZGluZyAo YXBwbHkgJ3ZlY3RvciAoYXBwZW5kICcobWVudS1iYXIpIG1lbnUtcHJlZml4IGV2ZW50cykp KQotICAgICAgKHNldHEgY21kCi0JICAgIChjb25kCi0JICAgICAoKGFuZCBmcm9tLW1lbnUt YmFyCi0JCSAgIChjb25zcCBldmVudCkKLQkJICAgKG51bWJlcnAgKGNhciBldmVudCkpCi0J CSAgIChudW1iZXJwIChjZHIgZXZlbnQpKSkKLQkgICAgICAobGV0ICgoeCAoY2FyIGV2ZW50 KSkKLQkJICAgICh5IChjZHIgZXZlbnQpKQotCQkgICAgbWVudS1zeW1ib2wpCi0JCShzZXRx IG1lbnUtc3ltYm9sIChtZW51LWJhci1tZW51LWF0LXgteSB4IHkpKQotCQkoc2V0cSBwb3Np dGlvbiAobGlzdCBtZW51LXN5bWJvbCAobGlzdCBmcmFtZSAnKG1lbnUtYmFyKQotCQkJCQkJ IGV2ZW50IDApKSkKLQkJKHNldHEgbWFwCi0JCSAgICAgIChrZXktYmluZGluZyAodmVjdG9y ICdtZW51LWJhciBtZW51LXN5bWJvbCkpKSkpCi0JICAgICAoKGFuZCAobm90IChrZXltYXBw IG1hcCkpIChsaXN0cCBtYXApKQotCSAgICAgIDs7IFdlIHdlcmUgZ2l2ZW4gYSBsaXN0IG9m IGtleW1hcHMuICBTZWFyY2ggdGhlbSBhbGwKLQkgICAgICA7OyBpbiBzZXF1ZW5jZSB1bnRp bCBhIGZpcnN0IGJpbmRpbmcgaXMgZm91bmQuCi0JICAgICAgKGxldCAoKG1vdXNlLWNsaWNr IChhcHBseSAndmVjdG9yIGV2ZW50KSkKLQkJICAgIGJpbmRpbmcpCi0JCSh3aGlsZSAoYW5k IG1hcCAobnVsbCBiaW5kaW5nKSkKLQkJICAoc2V0cSBiaW5kaW5nIChsb29rdXAta2V5LWln bm9yZS10b28tbG9uZyAoY2FyIG1hcCkgbW91c2UtY2xpY2spKQotCQkgIChzZXRxIG1hcCAo Y2RyIG1hcCkpKQotICAgICAgICAgICAgICAgIGJpbmRpbmcpKQotCSAgICAgKHQKLQkgICAg ICA7OyBXZSB3ZXJlIGdpdmVuIGEgc2luZ2xlIGtleW1hcC4KLQkgICAgICAobG9va3VwLWtl eSBtYXAgKGFwcGx5ICd2ZWN0b3IgZXZlbnQpKSkpKQotICAgICAgOzsgQ2xlYXIgb3V0IGVj aG9pbmcsIHdoaWNoIHBlcmhhcHMgc2hvd3MgYSBwcmVmaXggYXJnLgotICAgICAgKG1lc3Nh Z2UgIiIpCi0gICAgICA7OyBNYXliZSB0cnkgYWdhaW4gYnV0IHdpdGggdGhlIHN1Ym1hcC4K LSAgICAgIChzZXRxIG1hcCAoaWYgKGtleW1hcHAgY21kKSBjbWQpKSkKKyAgICAod2l0aC1z ZWxlY3RlZC1mcmFtZSBmcmFtZQorICAgICAgKGlmIGZyb20tbWVudS1iYXIKKwkgIChsZXQq ICgoeHkgKHBvc24teC15IHBvc2l0aW9uKSkKKwkJIChtZW51LXN5bWJvbCAobWVudS1iYXIt bWVudS1hdC14LXkgKGNhciB4eSkgKGNkciB4eSkpKSkKKwkgICAgKHNldHEgcG9zaXRpb24g KGxpc3QgbWVudS1zeW1ib2wgKGxpc3QgZnJhbWUgJyhtZW51LWJhcikKKwkJCQkJCSAgIHh5 IDApKSkpCisJKHNldHEgcG9zaXRpb24gKHBvcHVwLW1lbnUtbm9ybWFsaXplLXBvc2l0aW9u IHBvc2l0aW9uKSkpCisKKyAgICAgIDs7IFRoZSBsb29waW5nIGJlaGF2aW9yIHdhcyB0YWtl biBmcm9tIGxtZW51J3MgcG9wdXAtbWVudS1wb3B1cAorICAgICAgKHdoaWxlIChhbmQgbWFw IChzZXRxIGV2ZW50CisJCQkgICAgOzsgbWFwIGNvdWxkIGJlIGEgcHJlZml4IGtleSwgaW4g d2hpY2ggY2FzZQorCQkJICAgIDs7IHdlIG5lZWQgdG8gZ2V0IGl0cyBmdW5jdGlvbiBjZWxs CisJCQkgICAgOzsgZGVmaW5pdGlvbi4KKwkJCSAgICAoeC1wb3B1cC1tZW51IHBvc2l0aW9u IChpbmRpcmVjdC1mdW5jdGlvbiBtYXApKSkpCisJOzsgU3RyYW5nZWx5IHgtcG9wdXAtbWVu dSByZXR1cm5zIGEgbGlzdC4KKwk7OyBtb3VzZS1tYWpvci1tb2RlLW1lbnUgd2FzIHVzaW5n IGEgd2VpcmQ6CisJOzsgKGtleS1iaW5kaW5nIChhcHBseSAndmVjdG9yIChhcHBlbmQgJyht ZW51LWJhcikgbWVudS1wcmVmaXggZXZlbnRzKSkpCisJKHNldHEgY21kCisJICAgICAgKGNv bmQKKwkgICAgICAgKChhbmQgZnJvbS1tZW51LWJhcgorCQkgICAgIChjb25zcCBldmVudCkK KwkJICAgICAobnVtYmVycCAoY2FyIGV2ZW50KSkKKwkJICAgICAobnVtYmVycCAoY2RyIGV2 ZW50KSkpCisJCShsZXQgKCh4IChjYXIgZXZlbnQpKQorCQkgICAgICAoeSAoY2RyIGV2ZW50 KSkKKwkJICAgICAgbWVudS1zeW1ib2wpCisJCSAgKHNldHEgbWVudS1zeW1ib2wgKG1lbnUt YmFyLW1lbnUtYXQteC15IHggeSkpCisJCSAgKHNldHEgcG9zaXRpb24gKGxpc3QgbWVudS1z eW1ib2wgKGxpc3QgZnJhbWUgJyhtZW51LWJhcikKKwkJCQkJCQkgZXZlbnQgMCkpKQorCQkg IChpZiAobm90IChlcSBmcmFtZSBzZWxlY3RlZC1mcmFtZSkpCisJCSAgICAgIDs7IElmIHdl IGFyZSB1c2luZyB0aGUgbWVudSBiYXIgZnJvbSB0aGUgcm9vdAorCQkgICAgICA7OyBmcmFt ZSwgbG9vayB1cCB0aGUga2V5IGJpbmRpbmcgaW4gdGhlIGtleW1hcHMKKwkJICAgICAgOzsg b2YgdGhlIGluaXRpYWxseSBzZWxlY3RlZCB3aW5kb3cncyBidWZmZXIgdG8KKwkJICAgICAg OzsgbWFrZSBzdXJlIHRoYXQgbmF2aWdhdGluZyB0aGUgbWVudSBiYXIgd2l0aCB0aGUKKwkJ ICAgICAgOzsga2V5Ym9hcmQgd29ya3MgYXMgaW50ZW5kZWQuCisJCSAgICAgIChzZXRxIG1h cAorCQkJICAgIChrZXktYmluZGluZyAodmVjdG9yICdtZW51LWJhciBtZW51LXN5bWJvbCkg bmlsIG5pbAorCQkJCQkgKGZyYW1lLXNlbGVjdGVkLXdpbmRvdyBzZWxlY3RlZC1mcmFtZSkp KQorCQkgICAgKHNldHEgbWFwCisJCQkgIChrZXktYmluZGluZyAodmVjdG9yICdtZW51LWJh ciBtZW51LXN5bWJvbCkpKSkpKQorCSAgICAgICAoKGFuZCAobm90IChrZXltYXBwIG1hcCkp IChsaXN0cCBtYXApKQorCQk7OyBXZSB3ZXJlIGdpdmVuIGEgbGlzdCBvZiBrZXltYXBzLiAg U2VhcmNoIHRoZW0gYWxsCisJCTs7IGluIHNlcXVlbmNlIHVudGlsIGEgZmlyc3QgYmluZGlu ZyBpcyBmb3VuZC4KKwkJKGxldCAoKG1vdXNlLWNsaWNrIChhcHBseSAndmVjdG9yIGV2ZW50 KSkKKwkJICAgICAgYmluZGluZykKKwkJICAod2hpbGUgKGFuZCBtYXAgKG51bGwgYmluZGlu ZykpCisJCSAgICAoc2V0cSBiaW5kaW5nIChsb29rdXAta2V5LWlnbm9yZS10b28tbG9uZyAo Y2FyIG1hcCkgbW91c2UtY2xpY2spKQorCQkgICAgKHNldHEgbWFwIChjZHIgbWFwKSkpCisJ CSAgYmluZGluZykpCisJICAgICAgICh0CisJCTs7IFdlIHdlcmUgZ2l2ZW4gYSBzaW5nbGUg a2V5bWFwLgorCQkobG9va3VwLWtleSBtYXAgKGFwcGx5ICd2ZWN0b3IgZXZlbnQpKSkpKQor CTs7IENsZWFyIG91dCBlY2hvaW5nLCB3aGljaCBwZXJoYXBzIHNob3dzIGEgcHJlZml4IGFy Zy4KKwkobWVzc2FnZSAiIikKKwk7OyBNYXliZSB0cnkgYWdhaW4gYnV0IHdpdGggdGhlIHN1 Ym1hcC4KKwkoc2V0cSBtYXAgKGlmIChrZXltYXBwIGNtZCkgY21kKSkpKQorCiAgICAgOzsg SWYgdGhlIHVzZXIgZGlkIG5vdCBjYW5jZWwgYnkgcmVmdXNpbmcgdG8gc2VsZWN0LAogICAg IDs7IGFuZCBpZiB0aGUgcmVzdWx0IGlzIGEgY29tbWFuZCwgcnVuIGl0LgogICAgICh3aGVu IChhbmQgKG51bGwgbWFwKSAoY29tbWFuZHAgY21kKSkKQEAgLTI4MDgsMTQgKzI4MjksMjcg QEAgbWVudS1iYXItb3BlbgogSWYgRlJBTUUgaXMgbmlsIG9yIG5vdCBnaXZlbiwgdXNlIHRo ZSBzZWxlY3RlZCBmcmFtZS4iCiAgIChpbnRlcmFjdGl2ZQogICAgKGxpc3QgbmlsIChwcmVm aXgtbnVtZXJpYy12YWx1ZSBjdXJyZW50LXByZWZpeC1hcmcpKSkKLSAgKGxldCAoKHR5cGUg KGZyYW1lcCAob3IgZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkpKSkKKyAgKGxldCogKCh0eXBl IChmcmFtZXAgKG9yIGZyYW1lIChzZWxlY3RlZC1mcmFtZSkpKSkKKwkgcm9vdAorCSAoZnJh bWUgKGlmIChhbmQgKGVxIHR5cGUgdCkgKGZyYW1lLXBhcmVudCBmcmFtZSkKKwkJCSAobnVs bCB0dHktbWVudS1vcGVuLXVzZS10bW0pCisJCQkgKHplcm9wIChvciAoZnJhbWUtcGFyYW1l dGVyIGZyYW1lICdtZW51LWJhci1saW5lcykgMCkpCisJCQkgKHNldHEgcm9vdCAoZnJhbWUt cm9vdC1mcmFtZSkpCisJCQkgKG5vdCAoemVyb3AKKwkJCSAgICAgICAob3IgKGZyYW1lLXBh cmFtZXRlciByb290ICdtZW51LWJhci1saW5lcykgMCkpKSkKKwkJICAgIDs7IElmIEZSQU1F IGlzIGEgdHR5IGNoaWxkIGZyYW1lIHdpdGhvdXQgaXRzIG93bgorCQkgICAgOzsgbWVudSBi YXIsICd0dHktbWVudS1vcGVuLXVzZS10bW0nIGlzIGZhbHNlIGFuZAorCQkgICAgOzsgRlJB TUUncyByb290IGZyYW1lIGhhcyBhIG1lbnUgYmFyLCB1c2UgdGhhdCByb290CisJCSAgICA7 OyBmcmFtZSdzIG1lbnUgYmFyLgorCQkgICAgcm9vdAorCQkgIGZyYW1lKSkpCiAgICAgKGNv bmQKICAgICAgKChlcSB0eXBlICd4KSAoeC1tZW51LWJhci1vcGVuIGZyYW1lKSkKICAgICAg KChlcSB0eXBlICd3MzIpICh3MzItbWVudS1iYXItb3BlbiBmcmFtZSkpCiAgICAgICgoZXEg dHlwZSAnaGFpa3UpIChoYWlrdS1tZW51LWJhci1vcGVuIGZyYW1lKSkKICAgICAgKChlcSB0 eXBlICdwZ3RrKSAocGd0ay1tZW51LWJhci1vcGVuIGZyYW1lKSkKICAgICAgKChhbmQgKG51 bGwgdHR5LW1lbnUtb3Blbi11c2UtdG1tKQotCSAgIChub3QgKHplcm9wIChvciAoZnJhbWUt cGFyYW1ldGVyIG5pbCAnbWVudS1iYXItbGluZXMpIDApKSkpCisJICAgKG5vdCAoemVyb3Ag KG9yIChmcmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ21lbnUtYmFyLWxpbmVzKSAwKSkpKQogICAg ICAgOzsgTWFrZSBzdXJlIHRoZSBtZW51IGJhciBpcyB1cCB0byBkYXRlLiAgT25lIHNpdHVh dGlvbiB3aGVyZQogICAgICAgOzsgdGhpcyBpcyBpbXBvcnRhbnQgaXMgd2hlbiB0aGlzIGZ1 bmN0aW9uIGlzIGludm9rZWQgYnkgbmFtZQogICAgICAgOzsgdmlhIE0teCwgaW4gd2hpY2gg Y2FzZSB0aGUgbWVudSBiYXIgaW5jbHVkZXMgdGhlICJNaW5pYnVmIgpAQCAtMjgzMSw3ICsy ODY1LDcgQEAgbWVudS1iYXItb3BlbgogICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50 LWxvY2FsLW1hcCkgKHZlY3RvciAnbWVudS1iYXIgbWVudSkpCiAJCSAgICAgKGNkYXIgKG1p bm9yLW1vZGUta2V5LWJpbmRpbmcgKHZlY3RvciAnbWVudS1iYXIgbWVudSkpKQogICAgICAg ICAgICAgICAgICAgICAgKG1vdXNlLW1lbnUtYmFyLW1hcCkpCi0JCSAgICAocG9zbi1hdC14 LXkgeCAwIG5pbCB0KSBuaWwgdCkpKQorCQkgICAgKHBvc24tYXQteC15IHggMCBmcmFtZSB0 KSBuaWwgdCkpKQogICAgICAodCAod2l0aC1zZWxlY3RlZC1mcmFtZSAob3IgZnJhbWUgKHNl bGVjdGVkLWZyYW1lKSkKICAgICAgICAgICAodG1tLW1lbnViYXIpKSkpKSkKIApkaWZmIC0t Z2l0IGEvbGlzcC9tb3VzZS5lbCBiL2xpc3AvbW91c2UuZWwKaW5kZXggMWYwY2E2YTUxYjYu LmUzZTEzZjAzZDliIDEwMDY0NAotLS0gYS9saXNwL21vdXNlLmVsCisrKyBiL2xpc3AvbW91 c2UuZWwKQEAgLTExMTEsNyArMTExMSwxMCBAQCBtb3VzZS1kcmFnLWZyYW1lLXJlc2l6ZQog CSAoZHJhZy1ib3R0b20gKG1lbXEgcGFydCAnKGJvdHRvbS1yaWdodCBib3R0b20gYm90dG9t LWxlZnQpKSkKIAkgOzsgSW5pdGlhbCAiZmlyc3QiIG1vdXNlIHBvc2l0aW9uLiAgV2hpbGUg ZHJhZ2dpbmcgd2UgYmFzZSBhbGwKIAkgOzsgY2FsY3VsYXRpb25zIGFnYWluc3QgdGhhdCBw b3NpdGlvbi4KLQkgKGZpcnN0LXgteSAobW91c2UtYWJzb2x1dGUtcGl4ZWwtcG9zaXRpb24p KQorCSAodHR5ICh0dHktdHlwZSBmcmFtZSkpCisJIChmaXJzdC14LXkgKGlmIHR0eQorCQkJ KG1vdXNlLXBvc2l0aW9uLWluLXJvb3QtZnJhbWUpCisJCSAgICAgIChtb3VzZS1hYnNvbHV0 ZS1waXhlbC1wb3NpdGlvbikpKQogICAgICAgICAgKGZpcnN0LXggKGNhciBmaXJzdC14LXkp KQogICAgICAgICAgKGZpcnN0LXkgKGNkciBmaXJzdC14LXkpKQogICAgICAgICAgKGV4aXRm dW4gbmlsKQpAQCAtMTExOSw3ICsxMTIyLDkgQEAgbW91c2UtZHJhZy1mcmFtZS1yZXNpemUK ICAgICAgICAgICAobGFtYmRhIChldmVudCkKICAgICAgICAgICAgIChpbnRlcmFjdGl2ZSAi ZSIpCiAgICAgICAgICAgICAod2hlbiAoY29uc3AgZXZlbnQpCi0gICAgICAgICAgICAgIChs ZXQqICgobGFzdC14LXkgKG1vdXNlLWFic29sdXRlLXBpeGVsLXBvc2l0aW9uKSkKKyAgICAg ICAgICAgICAgKGxldCogKChsYXN0LXgteSAoaWYgdHR5CisJCQkJICAgKG1vdXNlLXBvc2l0 aW9uLWluLXJvb3QtZnJhbWUpCisJCQkJIChtb3VzZS1hYnNvbHV0ZS1waXhlbC1wb3NpdGlv bikpKQogCQkgICAgIChsYXN0LXggKGNhciBsYXN0LXgteSkpCiAJCSAgICAgKGxhc3QteSAo Y2RyIGxhc3QteC15KSkKIAkJICAgICAobGVmdCAoLSBsYXN0LXggZmlyc3QteCkpCkBAIC0x MjI4LDEwICsxMjMzLDEzIEBAIG1vdXNlLWRyYWctZnJhbWUtbW92ZQogICAgICAgICAgKHBh cmVudC1ib3R0b20gKGFuZCBwYXJlbnQtZWRnZXMgKG50aCAzIHBhcmVudC1lZGdlcykpKQog CSA7OyBJbml0aWFsICJmaXJzdCIgbW91c2UgcG9zaXRpb24uICBXaGlsZSBkcmFnZ2luZyB3 ZSBiYXNlIGFsbAogCSA7OyBjYWxjdWxhdGlvbnMgYWdhaW5zdCB0aGF0IHBvc2l0aW9uLgot CSAoZmlyc3QteC15IChtb3VzZS1hYnNvbHV0ZS1waXhlbC1wb3NpdGlvbikpCi0gICAgICAg ICAoZmlyc3QteCAoY2FyIGZpcnN0LXgteSkpCi0gICAgICAgICAoZmlyc3QteSAoY2RyIGZp cnN0LXgteSkpCi0gICAgICAgICA7OyBgc25hcC13aWR0aCcgKG1heWJlIGFsc28gYSB5ZXQg dG8gYmUgcHJvdmlkZWQgYHNuYXAtaGVpZ2h0JykKKwkgKHR0eSAodHR5LXR5cGUgZnJhbWUp KQorCSAoZmlyc3QteC15IChpZiB0dHkKKwkJCShtb3VzZS1wb3NpdGlvbi1pbi1yb290LWZy YW1lKQorCQkgICAgICAobW91c2UtYWJzb2x1dGUtcGl4ZWwtcG9zaXRpb24pKSkKKwkgKGZp cnN0LXggKGNhciBmaXJzdC14LXkpKQorCSAoZmlyc3QteSAoY2RyIGZpcnN0LXgteSkpCisJ IDs7IGBzbmFwLXdpZHRoJyAobWF5YmUgYWxzbyBhIHlldCB0byBiZSBwcm92aWRlZCBgc25h cC1oZWlnaHQnKQogICAgICAgICAgOzsgY291bGQgYmVjb21lIGZsb2F0cyB0byBoYW5kbGUg cHJvcG9ydGlvbmFsaXR5IHdydCBQQVJFTlQuCiAgICAgICAgICA7OyBXZSBkb24ndCBkbyBh bnkgY2hlY2tzIG9uIHRoaXMgcGFyYW1ldGVyIHNvIGZhci4KICAgICAgICAgIChzbmFwLXdp ZHRoIChmcmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ3NuYXAtd2lkdGgpKQpAQCAtMTI0Nyw3ICsx MjU1LDkgQEAgbW91c2UtZHJhZy1mcmFtZS1tb3ZlCiAgICAgICAgICAgKGxhbWJkYSAoZXZl bnQpCiAgICAgICAgICAgICAoaW50ZXJhY3RpdmUgImUiKQogICAgICAgICAgICAgKHdoZW4g KGNvbnNwIGV2ZW50KQotICAgICAgICAgICAgICAobGV0KiAoKGxhc3QteC15IChtb3VzZS1h YnNvbHV0ZS1waXhlbC1wb3NpdGlvbikpCisgICAgICAgICAgICAgIChsZXQqICgobGFzdC14 LXkgKGlmIHR0eQorCQkJCSAgIChtb3VzZS1wb3NpdGlvbi1pbi1yb290LWZyYW1lKQorCQkJ CSAobW91c2UtYWJzb2x1dGUtcGl4ZWwtcG9zaXRpb24pKSkKIAkJICAgICAobGFzdC14IChj YXIgbGFzdC14LXkpKQogCQkgICAgIChsYXN0LXkgKGNkciBsYXN0LXgteSkpCiAJCSAgICAg KGxlZnQgKC0gbGFzdC14IGZpcnN0LXgpKQpkaWZmIC0tZ2l0IGEvbGlzcC94dC1tb3VzZS5l bCBiL2xpc3AveHQtbW91c2UuZWwKaW5kZXggMjUwZjRlZmViYjQuLjZmMzNjNjVmZjJhIDEw MDY0NAotLS0gYS9saXNwL3h0LW1vdXNlLmVsCisrKyBiL2xpc3AveHQtbW91c2UuZWwKQEAg LTMwNCwxOSArMzA0LDM2IEBAIHh0ZXJtLW1vdXNlLWV2ZW50CiAgICAgICAgICAgICAgKHgg KG9yIChudGggMSBmcmFtZS1hbmQteHkpIHgpKQogICAgICAgICAgICAgICh5IChvciAobnRo IDIgZnJhbWUtYW5kLXh5KSB5KSkKICAgICAgICAgICAgICAodyAod2luZG93LWF0IHggeSBm cmFtZSkpCi0gICAgICAgICAgICAgKGx0cmIgKHdpbmRvdy1lZGdlcyB3KSkKLSAgICAgICAg ICAgICAobGVmdCAobnRoIDAgbHRyYikpCi0gICAgICAgICAgICAgKHRvcCAobnRoIDEgbHRy YikpCi0gICAgICAgICAgICAgKHBvc24gKGlmIHcKLQkJICAgICAgIChwb3NuLWF0LXgteSAo LSB4IGxlZnQpICgtIHkgdG9wKSB3IHQpCi0JCSAgICAgKGFwcGVuZCAobGlzdCBuaWwgKGlm IChhbmQgdGFiLWJhci1tb2RlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAob3IgKG5vdCBtZW51LWJhci1tb2RlKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IFRoZSB0YWItYmFyIGlz IG9uIHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDs7IHNlY29uZCByb3cgYmVsb3cgbWVudS1iYXIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgeSAxKSkpCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhYi1iYXIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21lbnUtYmFyKSkKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKG50aGNkciAyIChwb3NuLWF0LXgteSB4IHkgKHNlbGVj dGVkLWZyYW1lKSkpKSkpCisgICAgICAgICAgICAgKHBvc24KKwkgICAgICAoaWYgdworCQkg IChsZXQqICgobHRyYiAod2luZG93LWVkZ2VzIHcpKQorCQkJIChsZWZ0IChudGggMCBsdHJi KSkKKwkJCSAodG9wIChudGggMSBsdHJiKSkpCisJCSAgICAocG9zbi1hdC14LXkgKC0geCBs ZWZ0KSAoLSB5IHRvcCkgdyB0KSkKKwkJKGxldCAoKGl0ZW0gKGNvbmQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKChhbmQgbWVudS1iYXItbW9kZSAoZXEgeSAwKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdtZW51LWJhcikKKwkJCSAgICAgKChhbmQgdGFi LWJhci1tb2RlCisJCQkJICAgKG9yIChhbmQgbWVudS1iYXItbW9kZQorCQkJCQkgICAgKGVx IHkgMSkpCisJCQkJICAgICAgIChlcSB5IDApKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICd0YWItYmFyKQorCQkJICAgICAoKGVxIHggLTEpCisJCQkgICAgICAoY29uZAor CQkJICAgICAgICgoZXEgeSAtMSkgJ3RvcC1sZWZ0LWNvcm5lcikKKwkJCSAgICAgICAoKGVx IHkgKGZyYW1lLWhlaWdodCBmcmFtZSkpICdib3R0b20tbGVmdC1jb3JuZXIpCisJCQkgICAg ICAgKHQgJ2xlZnQtZWRnZSkpKQorCQkJICAgICAoKGVxIHggKGZyYW1lLXdpZHRoIGZyYW1l KSkKKwkJCSAgICAgIChjb25kCisJCQkgICAgICAgKChlcSB5IC0xKSAndG9wLXJpZ2h0LWNv cm5lcikKKwkJCSAgICAgICAoKGVxIHkgKGZyYW1lLWhlaWdodCBmcmFtZSkpICdib3R0b20t cmlnaHQtY29ybmVyKQorCQkJICAgICAgICh0ICdyaWdodC1lZGdlKSkpCisJCQkgICAgICgo ZXEgeSAtMSkgJ3RvcC1lZGdlKQorCQkJICAgICAodCAnYm90dG9tLWVkZ2UpKSkpCisJCSAg KGFwcGVuZCAobGlzdCAodW5sZXNzIChtZW1xIGl0ZW0gJyhtZW51LWJhciB0YWItYmFyKSkK KwkJCQkgIGZyYW1lKQorCQkJCWl0ZW0pCisJCQkgIChudGhjZHIgMiAocG9zbi1hdC14LXkg eCB5IChzZWxlY3RlZC1mcmFtZSkpKSkpKSkKICAgICAgICAgICAgICAoZXZlbnQgKGxpc3Qg dHlwZSBwb3NuKSkpCiAgICAgICAgIChzZXRjYXIgKG50aGNkciAzIHBvc24pIHRpbWVzdGFt cCkKIApkaWZmIC0tZ2l0IGEvc3JjL2ZyYW1lLmMgYi9zcmMvZnJhbWUuYwppbmRleCAyY2Nk ZWM2ZmM0MS4uYzFhYTA3OWZkYzAgMTAwNjQ0Ci0tLSBhL3NyYy9mcmFtZS5jCisrKyBiL3Ny Yy9mcmFtZS5jCkBAIC0xNDgyLDE3ICsxNDgyLDM4IEBAIGdldF9mdXR1cmVfZnJhbWVfcGFy YW0gKExpc3BfT2JqZWN0IHBhcmFtZXRlciwKICNlbmRpZgogCiBpbnQKLXR0eV9jaGlsZF9w b3NfcGFyYW0gKHN0cnVjdCBmcmFtZSAqY2hpbGQsIExpc3BfT2JqZWN0IGtleSwKLQkJICAg ICBMaXNwX09iamVjdCBwYXJhbXMsIGludCBkZmx0KQordHR5X2NoaWxkX3Bvc19wYXJhbSAo c3RydWN0IGZyYW1lICpmLCBMaXNwX09iamVjdCBrZXksCisJCSAgICAgTGlzcF9PYmplY3Qg cGFyYW1zLCBpbnQgcG9zKQogeworICBzdHJ1Y3QgZnJhbWUgKnAgPSBYRlJBTUUgKGYtPnBh cmVudF9mcmFtZSk7CiAgIExpc3BfT2JqZWN0IHZhbCA9IEZhc3NxIChrZXksIHBhcmFtcyk7 CisKICAgaWYgKENPTlNQICh2YWwpKQogICAgIHsKICAgICAgIHZhbCA9IFhDRFIgKHZhbCk7 Ci0gICAgICBpZiAoRklYTlVNUCAodmFsKSkKLQlyZXR1cm4gWEZJWE5VTSAodmFsKTsKKwor ICAgICAgaWYgKFRZUEVfUkFOR0VEX0ZJWE5VTVAgKGludCwgdmFsKSkKKwl7CisJICBwb3Mg PSBYRklYTlVNICh2YWwpOworCisJICBpZiAocG9zIDwgMCkKKwkgICAgLyogSGFuZGxlIG5l Z2F0aXZlIHZhbHVlLiAqLworCSAgICBwb3MgPSBtYXggKEVRIChrZXksIFF0b3ApCisJCSAg ICAgICA/IHAtPnBpeGVsX2hlaWdodCAtIGYtPnBpeGVsX2hlaWdodCAtIHBvcworCQkgICAg ICAgOiBwLT5waXhlbF93aWR0aCAtIGYtPnBpeGVsX3dpZHRoIC0gcG9zLAorCQkgICAgICAg MCk7CisJfQorICAgICAgZWxzZSBpZiAoQ09OU1AgKHZhbCkgJiYgRVEgKFhDQVIgKHZhbCks IFFwbHVzKQorCSAgICAgICAmJiBDT05TUCAoWENEUiAodmFsKSkKKwkgICAgICAgJiYgVFlQ RV9SQU5HRURfRklYTlVNUCAoaW50LCBYQ0FSIChYQ0RSICh2YWwpKSkpCisJcG9zID0gWEZJ WE5VTSAoWENBUiAoWENEUiAodmFsKSkpOworICAgICAgZWxzZSBpZiAoQ09OU1AgKHZhbCkg JiYgRVEgKFhDQVIgKHZhbCksIFFtaW51cykKKwkgICAgICAgJiYgQ09OU1AgKFhDRFIgKHZh bCkpCisJICAgICAgICYmIFJBTkdFRF9GSVhOVU1QICgtSU5UX01BWCwgWENBUiAoWENEUiAo dmFsKSksIElOVF9NQVgpKQorCXBvcyA9IC0gWEZJWE5VTSAoWENBUiAoWENEUiAodmFsKSkp OwogICAgIH0KLSAgcmV0dXJuIGRmbHQ7CisKKyAgcmV0dXJuIHBvczsKIH0KIAogaW50CkBA IC0yODY2LDcgKzI4ODcsNyBAQCBERUZVTiAoImRlbGV0ZS1mcmFtZSIsIEZkZWxldGVfZnJh bWUsIFNkZWxldGVfZnJhbWUsIDAsIDIsICIiLAogICByZXR1cm4gZGVsZXRlX2ZyYW1lIChm cmFtZSwgIU5JTFAgKGZvcmNlKSA/IFF0IDogUW5pbCk7CiB9CiAMCi0jaWZkZWYgSEFWRV9X SU5ET1dfU1lTVEVNCisKIC8qKgogICogZnJhbWVfaW50ZXJuYWxfYm9yZGVyX3BhcnQ6CiAg KgpAQCAtMjg4OSw3ICsyOTEwLDExIEBAIERFRlVOICgiZGVsZXRlLWZyYW1lIiwgRmRlbGV0 ZV9mcmFtZSwgU2RlbGV0ZV9mcmFtZSwgMCwgMiwgIiIsCiBlbnVtIGludGVybmFsX2JvcmRl cl9wYXJ0CiBmcmFtZV9pbnRlcm5hbF9ib3JkZXJfcGFydCAoc3RydWN0IGZyYW1lICpmLCBp bnQgeCwgaW50IHkpCiB7Ci0gIGludCBib3JkZXIgPSBGUkFNRV9JTlRFUk5BTF9CT1JERVJf V0lEVEggKGYpOworICBpbnQgYm9yZGVyID0gKEZSQU1FX0lOVEVSTkFMX0JPUkRFUl9XSURU SCAoZikKKwkJPyBGUkFNRV9JTlRFUk5BTF9CT1JERVJfV0lEVEggKGYpCisJCTogKGlzX3R0 eV9jaGlsZF9mcmFtZSAoZikgJiYgIUZSQU1FX1VOREVDT1JBVEVEIChmKSkKKwkJPyAxCisJ CTogMCk7CiAgIGludCBvZmZzZXQgPSBGUkFNRV9MSU5FX0hFSUdIVCAoZik7CiAgIGludCB3 aWR0aCA9IEZSQU1FX1BJWEVMX1dJRFRIIChmKTsKICAgaW50IGhlaWdodCA9IEZSQU1FX1BJ WEVMX0hFSUdIVCAoZik7CkBAIC0yOTU4LDcgKzI5ODMsNyBAQCBmcmFtZV9pbnRlcm5hbF9i b3JkZXJfcGFydCAoc3RydWN0IGZyYW1lICpmLCBpbnQgeCwgaW50IHkpCiAKICAgcmV0dXJu IHBhcnQ7CiB9Ci0jZW5kaWYKKwogCiAvKiBSZXR1cm4gbW91c2UgcG9zaXRpb24gaW4gY2hh cmFjdGVyIGNlbGwgdW5pdHMuICAqLwogCkBAIC02NTEzLDYgKzY1MzgsMzYgQEAgREVGVU4g KCJmcmFtZS1wb2ludGVyLXZpc2libGUtcCIsIEZmcmFtZV9wb2ludGVyX3Zpc2libGVfcCwK ICAgcmV0dXJuIGRlY29kZV9hbnlfZnJhbWUgKGZyYW1lKS0+cG9pbnRlcl9pbnZpc2libGUg PyBRbmlsIDogUXQ7CiB9CiAKK0RFRlVOICgibW91c2UtcG9zaXRpb24taW4tcm9vdC1mcmFt ZSIsIEZtb3VzZV9wb3NpdGlvbl9pbl9yb290X2ZyYW1lLAorICAgICAgIFNtb3VzZV9wb3Np dGlvbl9pbl9yb290X2ZyYW1lLCAwLCAwLCAwLAorICAgICAgIGRvYzogLyogUmV0dXJuIG1v dXNlIHBvc2l0aW9uIGluIHNlbGVjdGVkIGZyYW1lJ3Mgcm9vdCBmcmFtZS4KK1JldHVybiB0 aGUgcG9zaXRpb24gb2YgYG1vdXNlLXBvc2l0aW9uJyBpbiBjb29yZGluYXRlcyBvZiB0aGUg cm9vdCBmcmFtZQorb2YgdGhlIGZyYW1lIHJldHVybmVkIGJ5ICdtb3VzZS1wb3NpdGlvbicu ICAqLykKKyAgKHZvaWQpCit7CisgIExpc3BfT2JqZWN0IHBvcyA9IG1vdXNlX3Bvc2l0aW9u ICh0cnVlKTsKKyAgTGlzcF9PYmplY3QgZnJhbWUgPSBYQ0FSIChwb3MpOworICBzdHJ1Y3Qg ZnJhbWUgKmYgPSBYRlJBTUUgKGZyYW1lKTsKKyAgaW50IHggPSBYRklYTlVNIChYQ0FSIChY Q0RSIChwb3MpKSkgKyBmLT5sZWZ0X3BvczsKKyAgaW50IHkgPSBYRklYTlVNIChYQ0RSIChY Q0RSIChwb3MpKSkgKyBmLT50b3BfcG9zOworCisgIGlmICghRlJBTUVQIChmcmFtZSkpCisg ICAgcmV0dXJuIFFuaWw7CisgIGVsc2UKKyAgICB7CisgICAgICBmID0gRlJBTUVfUEFSRU5U X0ZSQU1FIChmKTsKKworICAgICAgd2hpbGUgKGYpCisJeworCSAgeCA9IHggKyBmLT5sZWZ0 X3BvczsKKwkgIHkgPSB5ICsgZi0+dG9wX3BvczsKKwkgIGYgPSBGUkFNRV9QQVJFTlRfRlJB TUUgKGYpOworCX0KKworICAgICAgcmV0dXJuIEZjb25zIChtYWtlX2ZpeG51bSAoeCksIG1h a2VfZml4bnVtICh5KSk7CisgICAgfQorfQorCiBERUZVTiAoImZyYW1lLS1zZXQtd2FzLWlu dmlzaWJsZSIsIEZmcmFtZV9fc2V0X3dhc19pbnZpc2libGUsCiAgICAgICAgU2ZyYW1lX19z ZXRfd2FzX2ludmlzaWJsZSwgMiwgMiwgMCwKICAgICAgICBkb2M6IC8qIFNldCBGUkFNRSdz IHdhcy1pbnZpc2libGUgZmxhZyBpZiBXQVMtSU5WSVNJQkxFIGlzIG5vbi1uaWwuCkBAIC03 Mjg1LDYgKzczNDAsNyBAQCBmb2N1cyAod2hlcmUgYSBmcmFtZSBpbW1lZGlhdGVseSBsb3Nl cyBmb2N1cyB3aGVuIGl0J3MgbGVmdCBieSB0aGUgbW91c2UKICAgZGVmc3ViciAoJlNmcmFt ZV9wb3NpdGlvbik7CiAgIGRlZnN1YnIgKCZTc2V0X2ZyYW1lX3Bvc2l0aW9uKTsKICAgZGVm c3ViciAoJlNmcmFtZV9wb2ludGVyX3Zpc2libGVfcCk7CisgIGRlZnN1YnIgKCZTbW91c2Vf cG9zaXRpb25faW5fcm9vdF9mcmFtZSk7CiAgIGRlZnN1YnIgKCZTZnJhbWVfX3NldF93YXNf aW52aXNpYmxlKTsKICAgZGVmc3ViciAoJlNmcmFtZV93aW5kb3dfc3RhdGVfY2hhbmdlKTsK ICAgZGVmc3ViciAoJlNzZXRfZnJhbWVfd2luZG93X3N0YXRlX2NoYW5nZSk7CmRpZmYgLS1n aXQgYS9zcmMvZnJhbWUuaCBiL3NyYy9mcmFtZS5oCmluZGV4IGM5Y2M2NWU1OTdkLi5lMjcw MjFmYTI4MyAxMDA2NDQKLS0tIGEvc3JjL2ZyYW1lLmgKKysrIGIvc3JjL2ZyYW1lLmgKQEAg LTMxLDYgKzMxLDE5IEBAICNkZWZpbmUgRU1BQ1NfRlJBTUVfSAogICB2ZXJ0aWNhbF9zY3Jv bGxfYmFyX3JpZ2h0CiB9OwogCitlbnVtIGludGVybmFsX2JvcmRlcl9wYXJ0CisgIHsKKyAg IElOVEVSTkFMX0JPUkRFUl9OT05FLAorICAgSU5URVJOQUxfQk9SREVSX0xFRlRfRURHRSwK KyAgIElOVEVSTkFMX0JPUkRFUl9UT1BfTEVGVF9DT1JORVIsCisgICBJTlRFUk5BTF9CT1JE RVJfVE9QX0VER0UsCisgICBJTlRFUk5BTF9CT1JERVJfVE9QX1JJR0hUX0NPUk5FUiwKKyAg IElOVEVSTkFMX0JPUkRFUl9SSUdIVF9FREdFLAorICAgSU5URVJOQUxfQk9SREVSX0JPVFRP TV9SSUdIVF9DT1JORVIsCisgICBJTlRFUk5BTF9CT1JERVJfQk9UVE9NX0VER0UsCisgICBJ TlRFUk5BTF9CT1JERVJfQk9UVE9NX0xFRlRfQ09STkVSLAorICB9OworCiAjaWZkZWYgSEFW RV9XSU5ET1dfU1lTVEVNCiAKIGVudW0gZnVsbHNjcmVlbl90eXBlCkBAIC01MywxOSArNjYs NiBAQCAjZGVmaW5lIEVNQUNTX0ZSQU1FX0gKICAgel9ncm91cF9hYm92ZV9zdXNwZW5kZWQs CiB9OwogCi1lbnVtIGludGVybmFsX2JvcmRlcl9wYXJ0Ci0gIHsKLSAgIElOVEVSTkFMX0JP UkRFUl9OT05FLAotICAgSU5URVJOQUxfQk9SREVSX0xFRlRfRURHRSwKLSAgIElOVEVSTkFM X0JPUkRFUl9UT1BfTEVGVF9DT1JORVIsCi0gICBJTlRFUk5BTF9CT1JERVJfVE9QX0VER0Us Ci0gICBJTlRFUk5BTF9CT1JERVJfVE9QX1JJR0hUX0NPUk5FUiwKLSAgIElOVEVSTkFMX0JP UkRFUl9SSUdIVF9FREdFLAotICAgSU5URVJOQUxfQk9SREVSX0JPVFRPTV9SSUdIVF9DT1JO RVIsCi0gICBJTlRFUk5BTF9CT1JERVJfQk9UVE9NX0VER0UsCi0gICBJTlRFUk5BTF9CT1JE RVJfQk9UVE9NX0xFRlRfQ09STkVSLAotICB9OwotCiAjaWZkZWYgTlNfSU1QTF9DT0NPQQog ZW51bSBuc19hcHBlYXJhbmNlX3R5cGUKICAgewpAQCAtMTg2Miw3ICsxODYyLDYgQEAgI2Rl ZmluZSBFTUFDU19DTEFTUyAiRW1hY3MiCiBleHRlcm4gdm9pZCBzZXRfZnJhbWVfbWVudWJh ciAoc3RydWN0IGZyYW1lICpmLCBib29sIGRlZXBfcCk7CiBleHRlcm4gdm9pZCBmcmFtZV9z ZXRfbW91c2VfcGl4ZWxfcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAqZiwgaW50IHBpeF94LCBp bnQgcGl4X3kpOwogZXh0ZXJuIHZvaWQgZnJlZV9mcmFtZV9tZW51YmFyIChzdHJ1Y3QgZnJh bWUgKik7Ci1leHRlcm4gZW51bSBpbnRlcm5hbF9ib3JkZXJfcGFydCBmcmFtZV9pbnRlcm5h bF9ib3JkZXJfcGFydCAoc3RydWN0IGZyYW1lICpmLCBpbnQgeCwgaW50IHkpOwogCiAjaWYg ZGVmaW5lZCBIQVZFX1hfV0lORE9XUwogZXh0ZXJuIHZvaWQgeF93bV9zZXRfaWNvbl9wb3Np dGlvbiAoc3RydWN0IGZyYW1lICosIGludCwgaW50KTsKQEAgLTE4ODgsNiArMTg4Nyw4IEBA IGd1aV9zZXRfYml0bWFwX2ljb24gKHN0cnVjdCBmcmFtZSAqZikKICNlbmRpZiAvKiAhSEFW RV9OUyAqLwogI2VuZGlmIC8qIEhBVkVfV0lORE9XX1NZU1RFTSAqLwogCitleHRlcm4gZW51 bSBpbnRlcm5hbF9ib3JkZXJfcGFydCBmcmFtZV9pbnRlcm5hbF9ib3JkZXJfcGFydCAoc3Ry dWN0IGZyYW1lICpmLAorCQkJCQkJCSAgICAgaW50IHgsIGludCB5KTsKIGV4dGVybiBib29s IGZyYW1lX2FuY2VzdG9yX3AgKHN0cnVjdCBmcmFtZSAqYWYsIHN0cnVjdCBmcmFtZSAqZGYp OwogCiBJTkxJTkUgdm9pZApkaWZmIC0tZ2l0IGEvc3JjL2tleWJvYXJkLmMgYi9zcmMva2V5 Ym9hcmQuYwppbmRleCBiMjI4MTRkNzAyZC4uNTE2N2IzY2U1YWQgMTAwNjQ0Ci0tLSBhL3Ny Yy9rZXlib2FyZC5jCisrKyBiL3NyYy9rZXlib2FyZC5jCkBAIC01NTUzLDcgKzU1NTMsNiBA QCAjZGVmaW5lIElTT19GVU5DVElPTl9LRVlfT0ZGU0VUIDB4ZmUwMAogICBTWU1CT0xfSU5E RVggKFFyaWdodG1vc3QpLCBTWU1CT0xfSU5ERVggKFFlbmRfc2Nyb2xsKSwgU1lNQk9MX0lO REVYIChRcmF0aW8pCiB9OwogCi0jaWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVNCiAvKiBBbiBh cnJheSBvZiBzeW1ib2wgaW5kZXhlcyBvZiBpbnRlcm5hbCBib3JkZXIgcGFydHMsIGluZGV4 ZWQgYnkgYW4gZW51bQogICAgaW50ZXJuYWxfYm9yZGVyX3BhcnQgdmFsdWUuICBOb3RlIHRo YXQgUW5pbCBjb3JyZXNwb25kcyB0bwogICAgaW50ZXJuYWxfYm9yZGVyX3BhcnRfbm9uZSBh bmQgc2hvdWxkIG5vdCBhcHBlYXIgaW4gTGlzcCBldmVudHMuICAqLwpAQCAtNTU2NCw3ICs1 NTYzLDYgQEAgI2RlZmluZSBJU09fRlVOQ1RJT05fS0VZX09GRlNFVCAweGZlMDAKICAgU1lN Qk9MX0lOREVYIChRYm90dG9tX3JpZ2h0X2Nvcm5lciksIFNZTUJPTF9JTkRFWCAoUWJvdHRv bV9lZGdlKSwKICAgU1lNQk9MX0lOREVYIChRYm90dG9tX2xlZnRfY29ybmVyKQogfTsKLSNl bmRpZgogCiAvKiBBIHZlY3RvciwgaW5kZXhlZCBieSBidXR0b24gbnVtYmVyLCBnaXZpbmcg dGhlIGRvd24tZ29pbmcgbG9jYXRpb24KICAgIG9mIGN1cnJlbnRseSBkZXByZXNzZWQgYnV0 dG9ucywgYm90aCBzY3JvbGwgYmFyIGFuZCBub24tc2Nyb2xsIGJhci4KQEAgLTU1OTksNiAr NTU5Nyw5MCBAQCAjZGVmaW5lIElTT19GVU5DVElPTl9LRVlfT0ZGU0VUIDB4ZmUwMAogCiBz dGF0aWMgaW50IGRvdWJsZV9jbGlja19jb3VudDsKIAorZW51bSBmcmFtZV9ib3JkZXJfc2lk ZQoreworICBPTl9MRUZULAorICBPTl9UT1AsCisgIE9OX1JJR0hULAorICBPTl9CT1RUT00s CisgIE9OX05PTkUKK307CisKKy8qIEhhbmRsZSBtYWtlX2xpc3B5X2V2ZW50IHdoZW4gYSB0 dHkgY2hpbGQgZnJhbWUncyBkZWNvcmF0aW9ucyBzaGFsbCBiZQorICAgdXNlZCBpbiBsaWV1 IG9mIGludGVybmFsIGJvcmRlcnMuICBSIGRlbm90ZXMgdGhlIHJvb3QgZnJhbWUgdW5kZXIK KyAgIGludmVzdGlnYXRpb24sIE1YIGFuZCBNWSBhcmUgdGhlIHBvc2l0aW9ucyBvZiB0aGUg bW91c2UgcmVsYXRpdmUgdG8KKyAgIFIuICBXSU5ET1dfT1JfRlJBTUUgZGVub3RlcyB0aGUg ZnJhbWUgcHJldmlvdXNseSByZXBvcnRlZCBhcyB0aGUKKyAgIGZyYW1lIHVuZGVyIChNWCwg TVkpLiAgTm90ZTogVGhlIGRlY29yYXRpb25zIG9mIGEgY2hpbGQgZnJhbWUgYXJlCisgICBh bHdheXMgZHJhd24gb3V0c2lkZSB0aGUgY2hpbGQgZnJhbWUsIHNvIFdJTkRPV19PUl9GUkFN RSBpcyBjZXJ0YWlubHkKKyAgIG5vdCB0aGUgZnJhbWUgd2UgYXJlIGxvb2tpbmcgZm9yLiAg TmVpdGhlciBpcyBSLiAgQSBjYW5kaWRhdGUgZnJhbWUKKyAgIGlzIGFueSBmcmFtZSBidXQg V0lORE9XX09SX0ZSQU1FIGFuZCBSIHdob3NlIHJvb3QgaXMgUiwgd2hpY2ggaXMgbm90Cisg ICBkZWNvcmF0ZWQgYW5kIGhhcyBhICdkcmFnLWludGVybmFsLWJvcmRlcicgcGFyYW1ldGVy LiAgSWYgd2UgZmluZCBhCisgICBzdWl0YWJsZSBmcmFtZSwgc2V0IFdJTkRPV19PUl9GUkFN RSB0byBpdCBhbmQgUE9TTiB0byB0aGUgcGFydCBvZiB0aGUKKyAgIGludGVybmFsIGJvcmRl ciBjb3JyZXNwb25kaW5nIHRvIChNWCwgTVkpIG9uIHRoZSBmcmFtZSBmb3VuZC4gICovCisK K3N0YXRpYyB2b2lkCittYWtlX2xpc3B5X3R0eV9wb3NpdGlvbiAoc3RydWN0IGZyYW1lICpy LCBpbnQgbXgsIGludCBteSwKKwkJCSBMaXNwX09iamVjdCAqd2luZG93X29yX2ZyYW1lLCBM aXNwX09iamVjdCAqcG9zbikKK3sKKyAgZW51bSBmcmFtZV9ib3JkZXJfc2lkZSBzaWRlID0g T05fTk9ORTsKKyAgc3RydWN0IGZyYW1lICpmID0gTlVMTDsKKyAgTGlzcF9PYmplY3QgdGFp bCwgZnJhbWU7CisgIGludCBpeCwgaXkgPSAwOworCisgIEZPUl9FQUNIX0ZSQU1FICh0YWls LCBmcmFtZSkKKyAgICB7CisgICAgICBmID0gWEZSQU1FIChmcmFtZSk7CisKKyAgICAgIGlu dCBsZWZ0ID0gZi0+bGVmdF9wb3M7CisgICAgICBpbnQgdG9wID0gZi0+dG9wX3BvczsKKyAg ICAgIGludCByaWdodCA9IGxlZnQgKyBmLT5waXhlbF93aWR0aDsKKyAgICAgIGludCBib3R0 b20gPSB0b3AgKyBmLT5waXhlbF9oZWlnaHQ7CisKKyAgICAgIGlmIChyb290X2ZyYW1lIChm KSA9PSByICYmIGYgIT0gcgorCSAgJiYgIUZSQU1FX1VOREVDT1JBVEVEIChmKQorCSAgJiYg IU5JTFAgKGdldF9mcmFtZV9wYXJhbSAoZiwgUWRyYWdfaW50ZXJuYWxfYm9yZGVyKSkpCisJ eworCSAgaWYgKGxlZnQgPT0gbXggKyAxICYmIG15ID49IHRvcCAmJiBteSA8PSBib3R0b20p CisJICAgIHsKKwkgICAgICBzaWRlID0gT05fTEVGVDsKKwkgICAgICBpeCA9IC0xOworCSAg ICAgIGl5ID0gbXkgLSB0b3AgKyAxOworCSAgICAgIGJyZWFrOworCSAgICB9CisJICBlbHNl IGlmIChyaWdodCA9PSBteCAmJiBteSA+PSB0b3AgJiYgbXkgPD0gYm90dG9tKQorCSAgICB7 CisJICAgICAgc2lkZSA9IE9OX1JJR0hUOworCSAgICAgIGl4ID0gZi0+cGl4ZWxfd2lkdGg7 CisJICAgICAgaXkgPSBteSAtIHRvcCArIDE7CisJICAgICAgYnJlYWs7CisJICAgIH0KKwkg IGVsc2UgaWYgKHRvcCA9PSBteSArIDEgJiYgbXggPj0gbGVmdCAmJiBteCA8PSByaWdodCkK KwkgICAgeworCSAgICAgIHNpZGUgPSBPTl9UT1A7CisJICAgICAgaXggPSBteCAtIGxlZnQg KyAxOworCSAgICAgIGl5ID0gLTE7CisJICAgICAgYnJlYWs7CisJICAgIH0KKwkgIGVsc2Ug aWYgKGJvdHRvbSA9PSBteSAmJiBteCA+PSBsZWZ0ICYmIG14IDw9IHJpZ2h0KQorCSAgICB7 CisJICAgICAgc2lkZSA9IE9OX0JPVFRPTTsKKwkgICAgICBpeCA9IG14IC0gbGVmdCArIDE7 CisJICAgICAgaXkgPSBmLT5waXhlbF9oZWlnaHQ7CisJICAgICAgYnJlYWs7CisJICAgIH0K Kwl9CisgICAgfQorCisgIGlmIChzaWRlICE9IE9OX05PTkUpCisgICAgeworICAgICAgZW51 bSBpbnRlcm5hbF9ib3JkZXJfcGFydCBwYXJ0CisJPSBmcmFtZV9pbnRlcm5hbF9ib3JkZXJf cGFydCAoZiwgaXgsIGl5KTsKKworICAgICAgWFNFVEZSQU1FICgqd2luZG93X29yX2ZyYW1l LCBmKTsKKyAgICAgICpwb3NuID0gYnVpbHRpbl9saXNwX3N5bWJvbCAoaW50ZXJuYWxfYm9y ZGVyX3BhcnRzW3BhcnRdKTsKKyAgICB9Cit9CisKIC8qIFggYW5kIFkgYXJlIGZyYW1lLXJl bGF0aXZlIGNvb3JkaW5hdGVzIGZvciBhIGNsaWNrIG9yIHdoZWVsIGV2ZW50LgogICAgUmV0 dXJuIGEgTGlzcC1zdHlsZSBldmVudCBsaXN0LiAgKi8KIApAQCAtNTY3Nyw3ICs1NzU5LDE0 IEBAIG1ha2VfbGlzcHlfcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3Qg eCwgTGlzcF9PYmplY3QgeSwKICAgICAgIHdpbmRvd19vcl9mcmFtZSA9IFFuaWw7CS8qIHNl ZSBhYm92ZSAqLwogICAgIH0KIAotICBpZiAoV0lORE9XUCAod2luZG93X29yX2ZyYW1lKSkK KyAgaWYgKFdJTkRPV1AgKHdpbmRvd19vcl9mcmFtZSkgJiYgaXNfdHR5X2ZyYW1lIChmKQor ICAgICAgJiYgKGlzX3R0eV9yb290X2ZyYW1lX3dpdGhfdmlzaWJsZV9jaGlsZCAoZikKKwkg IHx8IGlzX3R0eV9jaGlsZF9mcmFtZSAoZikpKQorICAgIG1ha2VfbGlzcHlfdHR5X3Bvc2l0 aW9uIChyb290X2ZyYW1lIChmKSwgbXgsIG15LCAmd2luZG93X29yX2ZyYW1lLCAmcG9zbik7 CisKKyAgaWYgKCFOSUxQIChwb3NuKSkKKyAgICA7CisgIGVsc2UgaWYgKFdJTkRPV1AgKHdp bmRvd19vcl9mcmFtZSkpCiAgICAgewogICAgICAgLyogSXQncyBhIGNsaWNrIGluIHdpbmRv dyBXSU5ET1cgYXQgZnJhbWUgY29vcmRpbmF0ZXMgKFgsWSkgICovCiAgICAgICBzdHJ1Y3Qg d2luZG93ICp3ID0gWFdJTkRPVyAod2luZG93X29yX2ZyYW1lKTsKQEAgLTU4ODAsOSArNTk2 OSw3IEBAIG1ha2VfbGlzcHlfcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmpl Y3QgeCwgTGlzcF9PYmplY3QgeSwKICAgICAgIHhyZXQgPSBteDsKICAgICAgIHlyZXQgPSBt eTsKIAotI2lmZGVmIEhBVkVfV0lORE9XX1NZU1RFTQotICAgICAgaWYgKEZSQU1FX1dJTkRP V19QIChmKQotCSAgJiYgRlJBTUVfTElWRV9QIChmKQorICAgICAgaWYgKEZSQU1FX0xJVkVf UCAoZikKIAkgICYmIE5JTFAgKHBvc24pCiAJICAmJiBGUkFNRV9JTlRFUk5BTF9CT1JERVJf V0lEVEggKGYpID4gMAogCSAgJiYgIU5JTFAgKGdldF9mcmFtZV9wYXJhbSAoZiwgUWRyYWdf aW50ZXJuYWxfYm9yZGVyKSkpCkBAIC01ODkyLDcgKzU5NzksNiBAQCBtYWtlX2xpc3B5X3Bv c2l0aW9uIChzdHJ1Y3QgZnJhbWUgKmYsIExpc3BfT2JqZWN0IHgsIExpc3BfT2JqZWN0IHks CiAKIAkgIHBvc24gPSBidWlsdGluX2xpc3Bfc3ltYm9sIChpbnRlcm5hbF9ib3JkZXJfcGFy dHNbcGFydF0pOwogCX0KLSNlbmRpZgogICAgIH0KICAgZWxzZQogICAgIHsKQEAgLTEyNTcy LDcgKzEyNjU4LDkgQEAgREVGVU4gKCJwb3NuLWF0LXgteSIsIEZwb3NuX2F0X3hfeSwgU3Bv c25fYXRfeF95LCAyLCA0LCAwLAogICAgICBpbnRvIHRoZSBsZWZ0IGZyaW5nZS4gICovCiAg IGlmIChYRklYTlVNICh4KSAhPSAtMSkKICAgICBDSEVDS19GSVhOQVQgKHgpOwotICBDSEVD S19GSVhOQVQgKHkpOworICBDSEVDS19GSVhOVU0gKHkpOworICBpZiAoWEZJWE5VTSAoeSkg IT0gLTEpCisgICAgQ0hFQ0tfRklYTkFUICh5KTsKIAogICBpZiAoTklMUCAoZnJhbWVfb3Jf d2luZG93KSkKICAgICBmcmFtZV9vcl93aW5kb3cgPSBzZWxlY3RlZF93aW5kb3c7CmRpZmYg LS1naXQgYS9zcmMva2V5bWFwLmMgYi9zcmMva2V5bWFwLmMKaW5kZXggNTY5MWIzNGM0MGQu LmM5OGI4M2RiNjhkIDEwMDY0NAotLS0gYS9zcmMva2V5bWFwLmMKKysrIGIvc3JjL2tleW1h cC5jCkBAIC0xNjUyLDcgKzE2NTIsOCBAQCBERUZVTiAoImN1cnJlbnQtYWN0aXZlLW1hcHMi LCBGY3VycmVudF9hY3RpdmVfbWFwcywgU2N1cnJlbnRfYWN0aXZlX21hcHMsCiAgICAgICAg ZG9jOiAvKiBSZXR1cm4gYSBsaXN0IG9mIHRoZSBjdXJyZW50bHkgYWN0aXZlIGtleW1hcHMu CiBPTFAgaWYgbm9uLW5pbCBpbmRpY2F0ZXMgdGhhdCB3ZSBzaG91bGQgb2JleSBgb3ZlcnJp ZGluZy1sb2NhbC1tYXAnIGFuZAogYG92ZXJyaWRpbmctdGVybWluYWwtbG9jYWwtbWFwJy4g IFBPU0lUSU9OIGNhbiBzcGVjaWZ5IGEgY2xpY2sgcG9zaXRpb24KLWxpa2UgaW4gdGhlIHJl c3BlY3RpdmUgYXJndW1lbnQgb2YgYGtleS1iaW5kaW5nJy4gICovKQorbGlrZSBpbiB0aGUg cmVzcGVjdGl2ZSBhcmd1bWVudCBvZiBga2V5LWJpbmRpbmcnIG9yIGEgbGl2ZSB3aW5kb3cg d2hpY2gKK21lYW5zIHRvIHJldHVybiB0aGUgYWN0aXZlIG1hcHMgZm9yIHRoYXQgd2luZG93 J3MgYnVmZmVyLiAgKi8pCiAgIChMaXNwX09iamVjdCBvbHAsIExpc3BfT2JqZWN0IHBvc2l0 aW9uKQogewogICBzcGVjcGRsX3JlZiBjb3VudCA9IFNQRUNQRExfSU5ERVggKCk7CkBAIC0x NjgyLDYgKzE2ODMsMTYgQEAgREVGVU4gKCJjdXJyZW50LWFjdGl2ZS1tYXBzIiwgRmN1cnJl bnRfYWN0aXZlX21hcHMsIFNjdXJyZW50X2FjdGl2ZV9tYXBzLAogCSAgc2V0X2J1ZmZlcl9p bnRlcm5hbCAoWEJVRkZFUiAoWFdJTkRPVyAod2luZG93KS0+Y29udGVudHMpKTsKIAl9CiAg ICAgfQorICBlbHNlIGlmIChXSU5ET1dfTElWRV9QIChwb3NpdGlvbikpCisgICAgeworICAg ICAgaWYgKEJVRkZFUlAgKFhXSU5ET1cgKHBvc2l0aW9uKS0+Y29udGVudHMpCisJICAmJiBY QlVGRkVSIChYV0lORE9XIChwb3NpdGlvbiktPmNvbnRlbnRzKSAhPSBjdXJyZW50X2J1ZmZl cikKKwl7CisJICAvKiBTZWUgY29tbWVudCBhYm92ZS4gICovCisJICByZWNvcmRfdW53aW5k X2N1cnJlbnRfYnVmZmVyICgpOworCSAgc2V0X2J1ZmZlcl9pbnRlcm5hbCAoWEJVRkZFUiAo WFdJTkRPVyAocG9zaXRpb24pLT5jb250ZW50cykpOworCX0KKyAgICB9CiAKICAgaWYgKCFO SUxQIChvbHApCiAgICAgICAvKiBUaGUgZG9jIHNhaWQgdGhhdCBvdmVycmlkaW5nLXRlcm1p bmFsLWxvY2FsLW1hcCBzaG91bGQKZGlmZiAtLWdpdCBhL3NyYy90ZXJtLmMgYi9zcmMvdGVy bS5jCmluZGV4IGZkOTVlNzVhMDA3Li4yZWY3NjNkMGZmYyAxMDA2NDQKLS0tIGEvc3JjL3Rl cm0uYworKysgYi9zcmMvdGVybS5jCkBAIC0yNjU4LDEyICsyNjU4LDY4IEBAIHR0eV9mcmFt ZV9hdCAoaW50IHgsIGludCB5LCBpbnQgKmN4LCBpbnQgKmN5KQogICAgICAgTGlzcF9PYmpl Y3QgZnJhbWUgPSBGY2FyIChmcmFtZXMpOwogICAgICAgc3RydWN0IGZyYW1lICpmID0gWEZS QU1FIChmcmFtZSk7CiAgICAgICBpbnQgZngsIGZ5OworICAgICAgYm9vbCBvbl9ib3JkZXIg PSBmYWxzZTsKKwogICAgICAgcm9vdF94eSAoZiwgMCwgMCwgJmZ4LCAmZnkpOwogCi0gICAg ICBpZiAoKGZ4IDw9IHggJiYgeCA8IGZ4ICsgZi0+cGl4ZWxfd2lkdGgpCi0JICAmJiAoZnkg PD0geSAmJiB5IDwgZnkgKyBmLT5waXhlbF9oZWlnaHQpKQorICAgICAgaWYgKCFGUkFNRV9V TkRFQ09SQVRFRCAoZikgJiYgRlJBTUVfUEFSRU5UX0ZSQU1FIChmKSkKKwl7CisJICBpZiAo ZnkgLSAxIDw9IHkgJiYgeSA8PSBmeSArIGYtPnBpeGVsX2hlaWdodCArIDEpCisJICAgIHsK KwkgICAgICBpZiAoZnggPT0geCArIDEpCisJCXsKKwkJICAqY3ggPSAtMTsKKwkJICBvbl9i b3JkZXIgPSB0cnVlOworCQl9CisJICAgICAgZWxzZSBpZiAoZnggKyBmLT5waXhlbF93aWR0 aCA9PSB4KQorCQl7CisJCSAgKmN4ID0gZi0+cGl4ZWxfd2lkdGg7CisJCSAgb25fYm9yZGVy ID0gdHJ1ZTsKKwkJfQorCisJICAgICAgaWYgKG9uX2JvcmRlcikKKwkJeworCQkgICpjeSA9 IHkgLSBmeTsKKworCQkgIHJldHVybiBmcmFtZTsKKwkJfQorCSAgICB9CisKKwkgIGlmIChm eCAtIDEgPD0geCAmJiB4IDw9IGZ4ICsgZi0+cGl4ZWxfd2lkdGggKyAxKQorCSAgICB7CisJ ICAgICAgaWYgKGZ5ID09IHkgKyAxKQorCQl7CisJCSAgKmN5ID0gLTE7CisJCSAgb25fYm9y ZGVyID0gdHJ1ZTsKKwkJfQorCSAgICAgIGVsc2UgaWYgKGZ5ICsgZi0+cGl4ZWxfaGVpZ2h0 ID09IHkpCisJCXsKKwkJICAqY3kgPSBmLT5waXhlbF9oZWlnaHQ7CisJCSAgb25fYm9yZGVy ID0gdHJ1ZTsKKwkJfQorCisJICAgICAgaWYgKG9uX2JvcmRlcikKKwkJeworCQkgICpjeCA9 IHggLSBmeDsKKworCQkgIHJldHVybiBmcmFtZTsKKwkJfQorCSAgICB9CisKKworCSAgaWYg KChmeCA8PSB4ICYmIHggPD0gZnggKyBmLT5waXhlbF93aWR0aCkKKwkgICAgICAmJiAoZnkg PD0geSAmJiB5IDw9IGZ5ICsgZi0+cGl4ZWxfaGVpZ2h0KSkKKwkgICAgeworCSAgICAgIGNo aWxkX3h5IChYRlJBTUUgKGZyYW1lKSwgeCwgeSwgY3gsIGN5KTsKKworCSAgICAgIHJldHVy biBmcmFtZTsKKwkgICAgfQorCX0KKyAgICAgIGVsc2UgaWYgKChmeCA8PSB4ICYmIHggPD0g ZnggKyBmLT5waXhlbF93aWR0aCkKKwkgICAgICAgJiYgKGZ5IDw9IHkgJiYgeSA8PSBmeSAr IGYtPnBpeGVsX2hlaWdodCkpCiAJewogCSAgY2hpbGRfeHkgKFhGUkFNRSAoZnJhbWUpLCB4 LCB5LCBjeCwgY3kpOworCiAJICByZXR1cm4gZnJhbWU7CiAJfQogICAgIH0KQEAgLTI2NzMs NyArMjcyOSw3IEBAIHR0eV9mcmFtZV9hdCAoaW50IHgsIGludCB5LCBpbnQgKmN4LCBpbnQg KmN5KQogfQogCiBERUZVTiAoInR0eS1mcmFtZS1hdCIsIEZ0dHlfZnJhbWVfYXQsIFN0dHlf ZnJhbWVfYXQsIDIsIDIsIDAsCi0gICAgICAgZG9jIDogLyogUmV0dXJuIHR0eSBmcmFtZSBj b250YWluaW5nIGFic29sdXRlIHBpeGVsIHBvc2l0aW9uIChYLCBZKS4KKyAgICAgICBkb2M6 IC8qIFJldHVybiB0dHkgZnJhbWUgY29udGFpbmluZyBhYnNvbHV0ZSBwaXhlbCBwb3NpdGlv biAoWCwgWSkuCiBWYWx1ZSBpcyBuaWwgaWYgbm8gZnJhbWUgZm91bmQuICBPdGhlcndpc2Ug aXQgaXMgYSBsaXN0IChGUkFNRSBDWCBDWSksCiB3aGVyZSBGUkFNRSBpcyB0aGUgZnJhbWUg Y29udGFpbmluZyAoWCwgWSkgYW5kIENYIGFuZCBDWSBhcmUgWCBhbmQgWQogcmVsYXRpdmUg dG8gRlJBTUUuICAqLykKQEAgLTI2ODcsNiArMjc0Myw3IEBAIERFRlVOICgidHR5LWZyYW1l LWF0IiwgRnR0eV9mcmFtZV9hdCwgU3R0eV9mcmFtZV9hdCwgMiwgMiwgMCwKICAgTGlzcF9P YmplY3QgZnJhbWUgPSB0dHlfZnJhbWVfYXQgKFhGSVhOVU0gKHgpLCBYRklYTlVNICh5KSwg JmN4LCAmY3kpOwogICBpZiAoTklMUCAoZnJhbWUpKQogICAgIHJldHVybiBRbmlsOworCiAg IHJldHVybiBsaXN0MyAoZnJhbWUsIG1ha2VfZml4bnVtIChjeCksIG1ha2VfZml4bnVtIChj eSkpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvd2luZG93LmMgYi9zcmMvd2luZG93LmMKaW5k ZXggMzMwYTk1YTcxNmYuLjFhYzAwNGFmNWUwIDEwMDY0NAotLS0gYS9zcmMvd2luZG93LmMK KysrIGIvc3JjL3dpbmRvdy5jCkBAIC0xNzU4LDYgKzE3NTgsMTMgQEAgREVGVU4gKCJ3aW5k b3ctYXQiLCBGd2luZG93X2F0LCBTd2luZG93X2F0LCAyLCAzLCAwLAogewogICBzdHJ1Y3Qg ZnJhbWUgKmYgPSBkZWNvZGVfbGl2ZV9mcmFtZSAoZnJhbWUpOwogCisgIENIRUNLX0lOVEVH RVIgKHgpOworICBDSEVDS19JTlRFR0VSICh5KTsKKworICBpZiAoWEZJWE5VTSAoeCkgPCAw IHx8IFhGSVhOVU0gKHgpID4gRlJBTUVfUElYRUxfV0lEVEggKGYpCisgICAgICB8fCBYRklY TlVNICh5KSA8IDAgfHwgWEZJWE5VTSAoeSkgPiBGUkFNRV9QSVhFTF9IRUlHSFQgKGYpKQor ICAgIHJldHVybiBRbmlsOworCiAgIENIRUNLX05VTUJFUiAoeCk7CiAgIENIRUNLX05VTUJF UiAoeSk7CiAKZGlmZiAtLWdpdCBhL3NyYy94ZGlzcC5jIGIvc3JjL3hkaXNwLmMKaW5kZXgg YzliY2FmZTU3ZmQuLmM0NWFhOGExYmIwIDEwMDY0NAotLS0gYS9zcmMveGRpc3AuYworKysg Yi9zcmMveGRpc3AuYwpAQCAtMTE0Nyw3ICsxMTQ3LDcgQEAgI2RlZmluZSBUSElOX1NQQUNF X1dJRFRIIDEKIAkJCQkgc3RydWN0IGdseXBoX21hdHJpeCAqLCBwdHJkaWZmX3QsIHB0cmRp ZmZfdCwKIAkJCQkgaW50LCBpbnQpOwogc3RhdGljIGJvb2wgY3Vyc29yX3Jvd19mdWxseV92 aXNpYmxlX3AgKHN0cnVjdCB3aW5kb3cgKiwgYm9vbCwgYm9vbCwgYm9vbCk7Ci1zdGF0aWMg Ym9vbCB1cGRhdGVfbWVudV9iYXIgKHN0cnVjdCBmcmFtZSAqLCBib29sLCBib29sKTsKK3N0 YXRpYyBib29sIHVwZGF0ZV9tZW51X2JhciAoc3RydWN0IGZyYW1lICosIGJvb2wsIGJvb2ws IHN0cnVjdCB3aW5kb3cgKik7CiBzdGF0aWMgYm9vbCB0cnlfd2luZG93X3JldXNpbmdfY3Vy cmVudF9tYXRyaXggKHN0cnVjdCB3aW5kb3cgKik7CiBzdGF0aWMgaW50IHRyeV93aW5kb3df aWQgKHN0cnVjdCB3aW5kb3cgKik7CiBzdGF0aWMgdm9pZCBtYXliZV9wcm9kdWNlX2xpbmVf bnVtYmVyIChzdHJ1Y3QgaXQgKik7CkBAIC0xNDA2NCwxMyArMTQwNjQsMzIgQEAgcHJlcGFy ZV9tZW51X2JhcnMgKHZvaWQpCiAgICAgICAvKiBUcnVlIG1lYW5zIHRoYXQgdXBkYXRlX21l bnVfYmFyIGhhcyBydW4gaXRzIGhvb2tzCiAJIHNvIGFueSBmdXJ0aGVyIGNhbGxzIHRvIHVw ZGF0ZV9tZW51X2JhciBzaG91bGRuJ3QgZG8gc28gYWdhaW4uICAqLwogICAgICAgYm9vbCBt ZW51X2Jhcl9ob29rc19ydW4gPSBmYWxzZTsKKyAgICAgIHN0cnVjdCB3aW5kb3cgKnN3ID0g WFdJTkRPVyAoc2VsZWN0ZWRfd2luZG93KTsKKyAgICAgIHN0cnVjdCBmcmFtZSAqc2YgPSBX SU5ET1dfWEZSQU1FIChzdyk7CisgICAgICBzdHJ1Y3QgZnJhbWUgKnJmID0gTlVMTDsKKwor ICAgICAgaWYgKEZSQU1FX1BBUkVOVF9GUkFNRSAoc2YpICYmICFGUkFNRV9XSU5ET1dfUCAo c2YpCisJICAmJiBGUkFNRV9NRU5VX0JBUl9MSU5FUyAoc2YpID09IDAKKwkgICYmIEZSQU1F X01FTlVfQkFSX0xJTkVTIChyZiA9IHJvb3RfZnJhbWUgKHNmKSkgIT0gMAorCSAgJiYgTklM UCAoRmRlZmF1bHRfdmFsdWUgKFF0dHlfbWVudV9vcGVuX3VzZV90bW0pKSkKKwkvKiBJZiB0 aGUgc2VsZWN0ZWQgd2luZG93J3MgZnJhbWUgaXMgYSB0dHkgY2hpbGQgZnJhbWUgd2l0aG91 dAorCSAgIG1lbnUgYmFyLCB0aGF0IGZyYW1lJ3Mgcm9vdCBmcmFtZSBoYXMgYSBtZW51IGJh ciBhbmQKKwkgICAndHR5LW1lbnUtb3Blbi11c2UtdG1tJyBpcyBuaWwsIHVwZGF0ZSB0aGUg bWVudSBiYXIgb2YgdGhlCisJICAgcm9vdCBmcmFtZSBmcm9tIHRoZSBzZWxlY3RlZCB3aW5k b3cuICAqLworCXNmID0gcmY7CisgICAgICBlbHNlCisJeworCSAgc2YgPSBOVUxMOworCSAg c3cgPSBOVUxMOworCX0KIAogICAgICAgcmVjb3JkX3Vud2luZF9zYXZlX21hdGNoX2RhdGEg KCk7CiAKICAgICAgIEZPUl9FQUNIX0ZSQU1FICh0YWlsLCBmcmFtZSkKIAl7CiAJICBzdHJ1 Y3QgZnJhbWUgKmYgPSBYRlJBTUUgKGZyYW1lKTsKLQkgIHN0cnVjdCB3aW5kb3cgKncgPSBY V0lORE9XIChGUkFNRV9TRUxFQ1RFRF9XSU5ET1cgKGYpKTsKKwkgIHN0cnVjdCB3aW5kb3cg KncKKwkgICAgPSBzZiA9PSBmID8gc3cgOiBYV0lORE9XIChGUkFNRV9TRUxFQ1RFRF9XSU5E T1cgKGYpKTsKIAogCSAgLyogSWdub3JlIHRvb2x0aXAgZnJhbWUuICAqLwogCSAgaWYgKEZS QU1FX1RPT0xUSVBfUCAoZikpCkBAIC0xNDA4Miw4ICsxNDEwMSw4IEBAIHByZXBhcmVfbWVu dV9iYXJzICh2b2lkKQogCSAgICAgICYmICFYQlVGRkVSICh3LT5jb250ZW50cyktPnRleHQt PnJlZGlzcGxheSkKIAkgICAgY29udGludWU7CiAKLQkgIGlmICghRlJBTUVfUEFSRU5UX0ZS QU1FIChmKSkKLQkgICAgbWVudV9iYXJfaG9va3NfcnVuID0gdXBkYXRlX21lbnVfYmFyIChm LCBmYWxzZSwgbWVudV9iYXJfaG9va3NfcnVuKTsKKwkgIG1lbnVfYmFyX2hvb2tzX3J1bgor CSAgICA9IHVwZGF0ZV9tZW51X2JhciAoZiwgZmFsc2UsIG1lbnVfYmFyX2hvb2tzX3J1biwg dyk7CiAKIAkgIHVwZGF0ZV90YWJfYmFyIChmLCBmYWxzZSk7CiAjaWZkZWYgSEFWRV9XSU5E T1dfU1lTVEVNCkBAIC0xNDA5NSwxMCArMTQxMTQsMjEgQEAgcHJlcGFyZV9tZW51X2JhcnMg KHZvaWQpCiAgICAgfQogICBlbHNlCiAgICAgewotICAgICAgc3RydWN0IGZyYW1lICpzZiA9 IFNFTEVDVEVEX0ZSQU1FICgpOworICAgICAgc3RydWN0IHdpbmRvdyAqc3cgPSBYV0lORE9X IChzZWxlY3RlZF93aW5kb3cpOworICAgICAgc3RydWN0IGZyYW1lICpzZiA9IFdJTkRPV19Y RlJBTUUgKHN3KTsKKyAgICAgIHN0cnVjdCBmcmFtZSAqcmYgPSBOVUxMOwogCi0gICAgICBp ZiAoIUZSQU1FX1BBUkVOVF9GUkFNRSAoc2YpKQotCXVwZGF0ZV9tZW51X2JhciAoc2YsIHRy dWUsIGZhbHNlKTsKKyAgICAgIGlmIChGUkFNRV9QQVJFTlRfRlJBTUUgKHNmKSAmJiAhRlJB TUVfV0lORE9XX1AgKHNmKQorCSAgJiYgRlJBTUVfTUVOVV9CQVJfTElORVMgKHNmKSA9PSAw CisJICAmJiBGUkFNRV9NRU5VX0JBUl9MSU5FUyAocmYgPSByb290X2ZyYW1lIChzZikpICE9 IDAKKwkgICYmIE5JTFAgKEZkZWZhdWx0X3ZhbHVlIChRdHR5X21lbnVfb3Blbl91c2VfdG1t KSkpCisJLyogSWYgdGhlIHNlbGVjdGVkIHdpbmRvdydzIGZyYW1lIGlzIGEgdHR5IGNoaWxk IGZyYW1lIHdpdGhvdXQKKwkgICBtZW51IGJhciwgdGhhdCBmcmFtZSdzIHJvb3QgZnJhbWUg aGFzIGEgbWVudSBiYXIgYW5kCisJICAgJ3R0eS1tZW51LW9wZW4tdXNlLXRtbScgaXMgbmls LCB1cGRhdGUgdGhlIG1lbnUgYmFyIG9mIHRoZQorCSAgIHJvb3QgZnJhbWUgZnJvbSB0aGUg c2VsZWN0ZWQgd2luZG93LiAgKi8KKwlzZiA9IHJmOworCisgICAgICB1cGRhdGVfbWVudV9i YXIgKHNmLCB0cnVlLCBmYWxzZSwgc3cpOwogCiAgICAgICB1cGRhdGVfdGFiX2JhciAoc2Ys IHRydWUpOwogI2lmZGVmIEhBVkVfV0lORE9XX1NZU1RFTQpAQCAtMTQxMjAsMjAgKzE0MTUw LDE0IEBAIHByZXBhcmVfbWVudV9iYXJzICh2b2lkKQogICAgdXBkYXRlZCB2YWx1ZSBvZiB0 aGlzIGZsYWcsIHRvIHBhc3MgdG8gdGhlIG5leHQgY2FsbC4gICovCiAKIHN0YXRpYyBib29s Ci11cGRhdGVfbWVudV9iYXIgKHN0cnVjdCBmcmFtZSAqZiwgYm9vbCBzYXZlX21hdGNoX2Rh dGEsIGJvb2wgaG9va3NfcnVuKQordXBkYXRlX21lbnVfYmFyIChzdHJ1Y3QgZnJhbWUgKmYs IGJvb2wgc2F2ZV9tYXRjaF9kYXRhLCBib29sIGhvb2tzX3J1biwgc3RydWN0IHdpbmRvdyAq dykKIHsKLSAgTGlzcF9PYmplY3Qgd2luZG93OwotICBzdHJ1Y3Qgd2luZG93ICp3OwotCiAg IC8qIElmIGNhbGxlZCByZWN1cnNpdmVseSBkdXJpbmcgYSBtZW51IHVwZGF0ZSwgZG8gbm90 aGluZy4gIFRoaXMgY2FuCiAgICAgIGhhcHBlbiB3aGVuLCBmb3IgaW5zdGFuY2UsIGFuIGFj dGl2YXRlLW1lbnViYXItaG9vayBjYXVzZXMgYQogICAgICByZWRpc3BsYXkuICAqLwogICBp ZiAoaW5oaWJpdF9tZW51YmFyX3VwZGF0ZSkKICAgICByZXR1cm4gaG9va3NfcnVuOwogCi0g IHdpbmRvdyA9IEZSQU1FX1NFTEVDVEVEX1dJTkRPVyAoZik7Ci0gIHcgPSBYV0lORE9XICh3 aW5kb3cpOwotCiAgIGlmIChGUkFNRV9XSU5ET1dfUCAoZikKICAgICAgID8KICNpZmRlZiBI QVZFX0VYVF9NRU5VX0JBUgpAQCAtMjEwOTAsMjQgKzIxMTE0LDMzIEBAIHJlZGlzcGxheV93 aW5kb3cgKExpc3BfT2JqZWN0IHdpbmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAKICAg LyogV2hlbiB3ZSByZWFjaCBhIGZyYW1lJ3Mgc2VsZWN0ZWQgd2luZG93LCByZWRvIHRoZSBm cmFtZSdzIG1lbnUKICAgICAgYmFyLCB0b29sIGJhciwgdGFiLWJhciwgYW5kIHRoZSBmcmFt ZSdzIHRpdGxlLiAgKi8KLSAgaWYgKHVwZGF0ZV9tb2RlX2xpbmUKLSAgICAgICYmIEVRIChG UkFNRV9TRUxFQ1RFRF9XSU5ET1cgKGYpLCB3aW5kb3cpKQorICBpZiAodXBkYXRlX21vZGVf bGluZSAmJiBFUSAoRlJBTUVfU0VMRUNURURfV0lORE9XIChmKSwgd2luZG93KSkKICAgICB7 Ci0gICAgICBib29sIHJlZGlzcGxheV9tZW51X3A7Ci0KICAgICAgIGlmIChGUkFNRV9XSU5E T1dfUCAoZikpCiAJewogI2lmZGVmIEhBVkVfRVhUX01FTlVfQkFSCi0JICByZWRpc3BsYXlf bWVudV9wID0gRlJBTUVfRVhURVJOQUxfTUVOVV9CQVIgKGYpOworCSAgaWYgKEZSQU1FX0VY VEVSTkFMX01FTlVfQkFSIChmKSkKKwkgICAgZGlzcGxheV9tZW51X2JhciAodyk7CiAjZWxz ZQotCSAgcmVkaXNwbGF5X21lbnVfcCA9IEZSQU1FX01FTlVfQkFSX0xJTkVTIChmKSA+IDA7 CisJICBpZiAoRlJBTUVfTUVOVV9CQVJfTElORVMgKGYpID4gMCkKKwkgICAgZGlzcGxheV9t ZW51X2JhciAodyk7CiAjZW5kaWYKIAl9CiAgICAgICBlbHNlCi0gICAgICAgIHJlZGlzcGxh eV9tZW51X3AgPSBGUkFNRV9NRU5VX0JBUl9MSU5FUyAoZikgPiAwOworCXsKKwkgIHN0cnVj dCBmcmFtZSAqcmYgPSBOVUxMOwogCi0gICAgICBpZiAocmVkaXNwbGF5X21lbnVfcCkKLSAg ICAgICAgZGlzcGxheV9tZW51X2JhciAodyk7CisJICBpZiAoRlJBTUVfUEFSRU5UX0ZSQU1F IChmKQorCSAgICAgICYmIEZSQU1FX01FTlVfQkFSX0xJTkVTIChmKSA9PSAwCisJICAgICAg JiYgRlJBTUVfTUVOVV9CQVJfTElORVMgKHJmID0gcm9vdF9mcmFtZSAoZikpICE9IDAKKwkg ICAgICAmJiBOSUxQIChGZGVmYXVsdF92YWx1ZSAoUXR0eV9tZW51X29wZW5fdXNlX3RtbSkp KQorCSAgICAvKiBJZiBGIGlzIGEgdHR5IGNoaWxkIGZyYW1lIHdpdGhvdXQgbWVudSBiYXIs IHRoYXQgZnJhbWUncyByb290CisJICAgICAgIGZyYW1lIGhhcyBhIG1lbnUgYmFyIGFuZCAn dHR5LW1lbnUtb3Blbi11c2UtdG1tJyBpcyBuaWwsCisJICAgICAgIGRpc3BsYXkgdGhlIG1l bnUgYmFyIG9mIHRoZSByb290IGZyYW1lJ3Mgc2VsZWN0ZWQgd2luZG93LiAgKi8KKwkgICAg ZGlzcGxheV9tZW51X2JhciAoWFdJTkRPVyAoRlJBTUVfU0VMRUNURURfV0lORE9XIChyZikp KTsKKwkgIGVsc2UgaWYgKEZSQU1FX01FTlVfQkFSX0xJTkVTIChmKSA+IDApCisJICAgIGRp c3BsYXlfbWVudV9iYXIgKHcpOworCX0KIAogI2lmZGVmIEhBVkVfV0lORE9XX1NZU1RFTQog ICAgICAgaWYgKEZSQU1FX1dJTkRPV19QIChmKSkKQEAgLTI3MzQ5LDEwICsyNzM4MiwxOSBA QCBkaXNwbGF5X3R0eV9tZW51X2l0ZW0gKGNvbnN0IGNoYXIgKml0ZW1fdGV4dCwgaW50IHdp ZHRoLCBpbnQgZmFjZV9pZCwKIHsKICAgc3RydWN0IGl0IGl0OwogICBzdHJ1Y3QgZnJhbWUg KmYgPSBTRUxFQ1RFRF9GUkFNRSAoKTsKLSAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cg KGYtPnNlbGVjdGVkX3dpbmRvdyk7CiAgIHN0cnVjdCBnbHlwaF9yb3cgKnJvdzsKICAgc2l6 ZV90IGl0ZW1fbGVuID0gc3RybGVuIChpdGVtX3RleHQpOwogCisgIHN0cnVjdCBmcmFtZSAq cmYgPSBOVUxMOworCisgIGlmIChGUkFNRV9QQVJFTlRfRlJBTUUgKGYpICYmICFGUkFNRV9X SU5ET1dfUCAoZikKKyAgICAgICYmIEZSQU1FX01FTlVfQkFSX0xJTkVTIChmKSA9PSAwCisg ICAgICAmJiBGUkFNRV9NRU5VX0JBUl9MSU5FUyAocmYgPSByb290X2ZyYW1lIChmKSkgIT0g MAorICAgICAgJiYgTklMUCAoRmRlZmF1bHRfdmFsdWUgKFF0dHlfbWVudV9vcGVuX3VzZV90 bW0pKSkKKyAgICBmID0gcmY7CisKKyAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cgKGYt PnNlbGVjdGVkX3dpbmRvdyk7CisKICAgZWFzc2VydCAoRlJBTUVfVEVSTUNBUF9QIChmKSk7 CiAKICAgLyogRG9uJ3Qgd3JpdGUgYmV5b25kIHRoZSBtYXRyaXgncyBsYXN0IHJvdy4gIFRo aXMgY2FuIGhhcHBlbiBmb3IKQEAgLTM4NDY4LDYgKzM4NTEwLDcgQEAgc3ltc19vZl94ZGlz cCAodm9pZCkKICAgREVGU1lNIChRbmhkcmFnLCAibmhkcmFnIik7CiAgIERFRlNZTSAoUXZk cmFnLCAidmRyYWciKTsKICAgREVGU1lNIChRaG91cmdsYXNzLCAiaG91cmdsYXNzIik7Cisg IERFRlNZTSAoUXR0eV9tZW51X29wZW5fdXNlX3RtbSwgInR0eS1tZW51LW9wZW4tdXNlLXRt bSIpOwogfQogCiAK --------------g10vPUGCcPR3uoc6XZn708Q0--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 10 Feb 2025 15:51:36 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 10 10:51:36 2025 Received: from localhost ([127.0.0.1]:52064 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1thW4O-0007Lt-2a for submit <at> debbugs.gnu.org; Mon, 10 Feb 2025 10:51:36 -0500 Received: from mout.gmx.net ([212.227.17.20]:39107) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1thW4J-0007La-Rm for 75056 <at> debbugs.gnu.org; Mon, 10 Feb 2025 10:51:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1739202677; x=1739807477; i=rudalics@HIDDEN; bh=Ofvj1YU+avt7500OAMyJL2Rgdz1bT0NnT26VaBrWDwk=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=aR3QRel3PVpXsKDMg+2ASpM840rXUs3Ux42qWBLKK/NusShg2L1ra2HJF/mGfiEP qpWwCZfRZgO2yRxgJsaS1u3d6i07wSqVDwmZuB1C07hWKmBdqKv4X9sI9fbIAYaeh WzT6OFqQ7s7X4Ym1/ayiuuSAk0dfVORCfHuN3i80gbOXtlXi6pHW+cnRnai7XiE/I y4Orky2ViDHAWWzY7Pe/Ry6800vT5mn2xUe2VH/ZsP3jD+m6nNrGBu5XqK3A+pOyQ E/49eP7qmlJbT6/fzDDcoqc9hiWE15dya4+TLjqLTThjTITEiU6D927pQeJ7bBEML zCQBJoEW6Mw5Cz5ZIA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.219]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MLiCu-1tzBRN2gZk-00V3Ru; Mon, 10 Feb 2025 16:51:17 +0100 Message-ID: <c213226e-ef3c-4688-b0a7-8dcc6a5f9105@HIDDEN> Date: Mon, 10 Feb 2025 16:51:16 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> <m2seozjo3c.fsf@HIDDEN> <m2msf6ezfq.fsf@HIDDEN> <m2jz9zmlfg.fsf@HIDDEN> <m2frknml43.fsf@HIDDEN> <e4670861-a251-4250-b988-73b428a1b7e0@HIDDEN> <m234gnmjvi.fsf@HIDDEN> <31bd2acb-9523-4def-80c1-235807c4abc9@HIDDEN> <m2y0yfks1p.fsf@HIDDEN> <m2seonf0qr.fsf@HIDDEN> <9edd64ba-3e0d-4448-8384-3fd42d8279bb@HIDDEN> <m2v7tikk53.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2v7tikk53.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:q6+8aQqrLsEAHcC+Pt8tdjeBMjZbYMzHsjiHVPRxq+cZOdWGUFf GlcRYIwCly8Ruig46hSKmMCWmUDv3NSOWHPNZvchK365nicFHbNApUnkn9um06EGEYtXQJH LpRrB/ymchKRa/8eViW8DnuKHuKgVt/Gj7kuWAR+m6dnHJCV+IHGyDfCoOovzd7Q14Jb3K/ 9MG2BbW4pasCOtuG/pbQQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:mMtgaM7THrM=;5PS/qjTz+I2J8Nd9Hn09hySc5/h bdG89MqWwx1Xj87Wrmk36KkffRxPIDYu2PK3+aTh1WN19D/ZI160ML6GWkGK0dOhhOxkCR1u3 y4c83MaHtSaDFoWR6Wlp8nLdydlnRQdlpwNC29+rG/XBNiOLxlaNtVUHQUU/c5pTaWXYU+6PS M+z6oQ/wsHWly2LuY1d2/ptJB6+FnYQ5BjVrfDxfwQVkKUbIvlS3vB1rzZZp36EAJcceWN97c q3qXPGaBwqJIy9HUccvfmZMCrGqsEgv6JIUZV74kFDHYIrg66pY0eCStZ9Pw/bKUS+Zg4Y7wg R2sxe7XVwdV8OO6iZsZfTeQMFE/O8YXWlcO//Xl2e63Ei3Y1w8bJIcDvZda39rFQpy9RrStZg q8Cyl/MrFgUiRp6cxaVFp24rdBnV7btCYSlKEjc+xNQAalpXvqOvFOjB4QgI8nAyoOtVhhwlt Yxsg4HZvvmYqXsL8WLzmy5HIcVkr7kYVnouK4c82vXHXI6jXiG/FzNx0bqLGZ0QlPnf+q097t 8sJFWpr1g4a0OByQX5QD86MVPw1PEYAP9zrn1muik+xid9elsNF/aaU75yOn+2dpoPIIM6tEb JTtFMoSlV+T1dCUdzIiMMIAdNyGXdR3PIWP7v7ZXcJmS37sNrQesOgyKiE9JpkhOY3BrNo6mQ +JHDt6uA8oOuyqpP4GvHPu+8CtMytjQFvW/YAVELt+ytSBlkM5iZM7QGOaHj7pFVmkYTumibz NkW+9KTwTVLxNA8iYqJWkSgqdtAVBfVUXXd/UOsYrCpshD+HSASLR7872YlzFL8rW07bzzG/k XtHxuWDG54HM9/TD3vi4doOCPo0qJfeASiPOZAT0sQJ09HhWeE2VlJMMPjZ8N6bacbqbyy5qs o/Ophduhq+g51R5q9wUD0UgGzv/7sffzXo678BGInUivY2iadJVHJUR1RTQ63tzT4k+BKyZUz lk77IOadG3syCtnXY0GeoAD9f4diYo/MdPKtf2nu1MF1MagS/H8VbehX2PbD0zywxzr40Z2Oy +VdE3eWjOGoBDfWz2LNHvVcnLp1DHmMUVjB7/KzDQyc+ZAIONUYX2rBAhU9RkTFIC8MGSZnpI kpFnG/vcZB86abf0HuleQvg26j0Z0lEtVJ8JW0pSiMx05fHcAYZZlOjO2XBsNj9mvrGWfcMrV 1RLuTam/GlW7pvdMMC4ZAzS07RWwrp6/oaZQks6x+3dmoBfULdHwL/DMwg0G/nfeTl3iuPB+b 9vLV8dGqg3s93YQ9HRQagHwH/CjeZcsePE86WGSdcYpbmcbiLI+vVEEVk6Um3xQg7vtL+bJRB bAHbLzYmd5dr9DeAsLc1xKx14h9jY1K7Ya5qxY9e38p0U8be9B/GclqSD5/7u0UBWCkyjAlqG f3YMS7qFzPrHL4G9xPSluE1lpZiA2pPw30uZhiwB5WqQ8h9ODB5WWGLOLM0xCr2C508pKSAR0 tlVDREA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) From what I tried so far I can't enter submenus. But the fonts are>> Debugger entered--Lisp error: (void-function cond*) > > Is that an Emacs <= 30? In master, cond* is fboundp and autoloaded. Probably. It doesn't happen any more. > BTW, I made a branch here on my side today because things won't work > without a small addition to the C core, a hook that I called > x-popup-menu-function. Reason being that C calls x_popup_menu_1 which is > not exposed to Lisp. > > It's still a bit early, I'll holler when I think I have something > more or less usable. Thanks, martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 10 Feb 2025 13:24:35 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 10 08:24:35 2025 Received: from localhost ([127.0.0.1]:49580 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1thTm7-0007vo-0B for submit <at> debbugs.gnu.org; Mon, 10 Feb 2025 08:24:35 -0500 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]:45436) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1thTm4-0007vW-Q6 for 75056 <at> debbugs.gnu.org; Mon, 10 Feb 2025 08:24:33 -0500 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-ab7d3bcf1ceso51329366b.3 for <75056 <at> debbugs.gnu.org>; Mon, 10 Feb 2025 05:24:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739193866; x=1739798666; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=MeANa9IhX+7wHq07vJcXT9cRRTMvkA97a0K001D0eEE=; b=ekgU+etK+79vlJXjhuoFDrBPH9LxMS3fr3kcdb9LFkUKD4tIZqTFafkoTSLTHuWwo5 SZxVMGtF4vGyvs1JGD9Ys4oio3F6JDQ52o6A+68dBWAfBamFhWozKlLMh0bUcxJa3sqw hY4tLm+uZp1pT/O6b3ggTlYfo8VYVqPHLMcX6It7Jrh9VqWcXArXafnQpvdMVz/QnI5j OW+kYTo2oztE/8/8Ez9Ue56t43R/JqJGc3KwdQwU9EBcIn0iLMfLDbhAh6KKbptV0kOM jmficTu5AoWTNuTZhkReH/LYzg2isuY6BBJQqXoQHgZgFfz/NUs7IQmXWbsUt251xU+A 3VJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739193866; x=1739798666; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=MeANa9IhX+7wHq07vJcXT9cRRTMvkA97a0K001D0eEE=; b=tHMJjIqz0+rJP+0SGcba9ZrVBpnQOhR9TO0TOT2u2T5TsLwJBV8e7seTYEAmrtJegc CcDgDP2uHahvjvwZFZzSVm5KqT6GxZ3XYQ+IaMrCmALiRf2X5Jaiz0/+WJykCZG9HY5j 4vZfoLzDWDZgfplw4IT3vxhjZRRzo733zq8dqu7tLsLY/EIv72rH5zZDg814YUVVAwdK llDHR15cvacYqamPMmm8Qci0+FgnrlAyhl4FxYew/md8L7hxSrDB16gS01lgDCIYEnr6 UpWkblFhELxnRGxBM8JAH1vdNqwzKlez4M4Q740rBfLFWDFeWJQR/YkimBzcyrSxjFzR 3exQ== X-Forwarded-Encrypted: i=1; AJvYcCUhsFxP8eHkBKt9ap4aEz7qUiHklO0+QcXffwRj3AR8hwzPck5LC9ADuJ7ox3ewWv0+Z/wcZA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwTglVV05ALNdBspZWkgSUcZQGsez3HtP0ZdiS451PJFTtUEZaj jYHGDN8bTv1lGsUf9z0iXbC9Ik/JIyY02v9LmMRmCsJzZgI7RYTl3aqi6g== X-Gm-Gg: ASbGncupkXL3Z9iBedz9rolKZ8h3W1IVeLEhwT/dA+RCAKXxwkJO27p7wlrX927P337 f0zZcsAzuNz5MqKtkbOBkojAvGVoZJ4WVZHwe18dkYpRj6Dp8x2s6YBdzN+nkuHXKKvgANfXDeM FChXXbI/R2YIdmGP0zGgjkOwy83ykVrNfldo9Nf7pGOgRE2dHmJHHEP4kIvBakIa77BpTm96Hs3 08ZptALdNxV/FNwuBsCrp+rNLMbkkY1PdYwwqgaHUh3zswhSy4EV37CxuWt3P8e8I695Y20uqTW DgNqTZ0HP3ZkyxQQUPYWCf97wEmxO668MMXNki8xrwl1fKGhoxFSvVnov5NJ0V1dQxx0WUNFayO INuBXxGUoVeiCGYnpbUQ4xNvp X-Google-Smtp-Source: AGHT+IEtdxkPg6WbdJoEOC++fYD8QJF6vnqlFzyAbSWZzDihW8BbFhgly2A4iP6Gn/aZqHfxkeiarg== X-Received: by 2002:a17:907:9803:b0:ab6:d7c5:123 with SMTP id a640c23a62f3a-ab789c50a85mr1393536566b.51.1739193865872; Mon, 10 Feb 2025 05:24:25 -0800 (PST) Received: from pro2 (p200300e0b72ded006d97dc68cf4df393.dip0.t-ipconnect.de. [2003:e0:b72d:ed00:6d97:dc68:cf4d:f393]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab78e82cc0csm702391866b.12.2025.02.10.05.24.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 05:24:25 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <9edd64ba-3e0d-4448-8384-3fd42d8279bb@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> <m2seozjo3c.fsf@HIDDEN> <m2msf6ezfq.fsf@HIDDEN> <m2jz9zmlfg.fsf@HIDDEN> <m2frknml43.fsf@HIDDEN> <e4670861-a251-4250-b988-73b428a1b7e0@HIDDEN> <m234gnmjvi.fsf@HIDDEN> <31bd2acb-9523-4def-80c1-235807c4abc9@HIDDEN> <m2y0yfks1p.fsf@HIDDEN> <m2seonf0qr.fsf@HIDDEN> <9edd64ba-3e0d-4448-8384-3fd42d8279bb@HIDDEN> Date: Mon, 10 Feb 2025 14:24:24 +0100 Message-ID: <m2v7tikk53.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> This works better with the menu-bar, although the menu bar itself does >> strange stuff while the menu is open. Don't know what that is. > > Still can't test it with emacs -Q -nw > > Debugger entered--Lisp error: (void-function cond*) Is that an Emacs <= 30? In master, cond* is fboundp and autoloaded. BTW, I made a branch here on my side today because things won't work without a small addition to the C core, a hook that I called x-popup-menu-function. Reason being that C calls x_popup_menu_1 which is not exposed to Lisp. It's still a bit early, I'll holler when I think I have something more or less usable.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 10 Feb 2025 10:16:05 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 10 05:16:04 2025 Received: from localhost ([127.0.0.1]:48235 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1thQpf-0003RT-Df for submit <at> debbugs.gnu.org; Mon, 10 Feb 2025 05:16:04 -0500 Received: from mout.gmx.net ([212.227.15.15]:43421) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1thQpc-00038j-Gn for 75056 <at> debbugs.gnu.org; Mon, 10 Feb 2025 05:16:01 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1739182550; x=1739787350; i=rudalics@HIDDEN; bh=N0Zd4w2QI8ApxXsG2TAznrLK1C69mylbU8lvVl/0T08=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=qTWm4OOwTUcEGliU3OQz9OISNIDcdVo9v2PkLgDjWgkt2pzJTNmzHSLVepPr6fWL llLxb+QWjjXRvUNg3nFrlwGwnC/tkkCQoZSV4HGASCZPhcHpvedI7T1KMVWEbC5Vz nfQwH8qeu3FLMqlYp6vMFLlsA7ynUr9sfAu5lDHUJhSqTdLa22vjDWWSN6F19YTmL 2xDAHUgIEg/s/pSvQBhoIskmzNhGFLTJyTeijFpqpHjp62bw6EUbQmfvHSGuqb/so 2LMRQ5gpmdEqaUon6++OA40uyUA+L6FbkZ6h8vPxy7+PWbiqSfYa1TeSypq8PlMMN AWtabmYCzWNEr1mYTA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.219]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MAwXr-1tWCQp0OaH-00E3eY; Mon, 10 Feb 2025 11:15:50 +0100 Message-ID: <9edd64ba-3e0d-4448-8384-3fd42d8279bb@HIDDEN> Date: Mon, 10 Feb 2025 11:15:49 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> <m2seozjo3c.fsf@HIDDEN> <m2msf6ezfq.fsf@HIDDEN> <m2jz9zmlfg.fsf@HIDDEN> <m2frknml43.fsf@HIDDEN> <e4670861-a251-4250-b988-73b428a1b7e0@HIDDEN> <m234gnmjvi.fsf@HIDDEN> <31bd2acb-9523-4def-80c1-235807c4abc9@HIDDEN> <m2y0yfks1p.fsf@HIDDEN> <m2seonf0qr.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2seonf0qr.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:dSYoOObFn0TRyP+VX0+07sQFndwOMTtF6r4ht4TcUJBIOI54K0C 8zbSvwenP0fI/P54QsraEAy86A7u/RuCdxDYJLFgeiVRi8LKYpQzOZlYMx7tMWQyz1NokPX wYdxZUSTdxHzJM4SsPxOt4JhPN8qPuJ1te6tQAbbTEQkzFuGPfnXSdVWOSJC8JiDLUByoLP 6NOpE9SFDpY84oLjbDsPQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:1IElaP33hso=;wT4FYH+f6wVKDfD7zOVagw/TAP7 TPditjoAzwGT3sUD0aRV3+f079i7uGw051eOJ5Avn/EBOQ/QTcW+nPviiXk69yShYMDnPK+wk z461TSnzLoY++nl73TAfbBL97YQN/4TbyCMX9luiB8caupjBk3nflFozHwylMusUC++6QZl6k oOEYIGMHXBnrH6pL3ZJM6ZZLMaWfU6siqbnPPBigN9nTW6hvtuL9Hg5wGPdqOeVe5qAqM3oHL h/NeuLWcj9+tfwe/TIDWMafzOm5cNpe7mhjyO2aQPUQPzaOdJ/GuRutnLCdb41U+dXDSNV+IK /o5HT94TAGYRuWtPV/4bBWf2pETxuTOKW2gjLNqqZh010YSWDr/9IukuBwkpQQdr5lgmOMb0o Fs2si9zriE8Ct+WLUDulKAETkcTcCVkiBgNhZu0fq9JlFXAAJRr2p/DxpzPpmsvrgJbdahG2u znR96ADFwH5Pkpb9Q7Er3n5+hJ42sDyIR//eKwpTPKZI43VAfq41pDWDxC6V3t7e8dvzc1oUP TyVKpAQ4Lao9zEXM2FbqMPNVLxjFmGDxD5v87yknMzL0iC4JDf5cpY2CnI/DrhZLe5BXjZIUf 8mySO1Z2Um56u7SmSN1k+DHtceLPeWmlm11WBwRERYFp4O79ECC+5fip/yhe8p3uC7XSM235j RMIteBDELqxG8zCQYJ9+q9qC2Pf5IE5DNVXN+N48Z3Hpfl2uqw8UyjC56ElRO1hjrB21Kvc5J rnaZlOrwnNIQs0YdoFIEW/zJy9LWoOeyLktB0iBz9EYaMYw03UmkGn0Ix6DqaFWD3K4k6CnuI NtBbqMgr1tyUA4k8dc0ha4qUWWzrgapis8wNQs/b/o7Z/JeywbGSAWGIsV07+hHGFtS9l7WAC 38k8zazMVzOJ/9NbmH7fsPHec12YsDZZLpnYKLlCHpg1TWq8ft2uxl2snNOeiBCV+ssOgR8FS UzfLqk0qdeXMO8A1qJLjy4B9VxSOlxcyIbX2nA+dWmFRFB3BAL4iiAO+SsnVOiK0Fc2sFShvM pj3O45B86Wid35SMVhaW4NLMubmfkZ/WoEEBIKKaIvuqWvreNunKpx5YyBhqxkAxUPp4J7dEW WqQrmfuArlpLxafaWCCvH44MxO8NT32otyaV8ZwbhVL2v1n8pBUeTqtwy028PW7Fb4g24XCMJ JI7ENEcrTBdsgSOOyKPAM8uq7uOUzptv+VsduAsDXo5SD31eTfr3yuJQ0X8RrUo5sftvgYGNI s1QRV8fUl7aI7hQcu93f898q5cRKZdqMl5dBJ8+v/iR8dftZXafDgs2br7UZwP+lJIbnDvfi1 IzoC/hQvvGVwoqTrRy0WI57jOxecFKYArWW1JUYABi9r/TE6EgsSILajxFgwQvGU7+MISqZhG GZl/KTshqsw1hJ6Dj13K/FJ1k7+Un5N1lOGHMD96s9jKhmERKHLGl1JkXkv/fmO/PqvAM1iHb d0qiq/A== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) ID4gVGhpcyB3b3JrcyBiZXR0ZXIgd2l0aCB0aGUgbWVudS1iYXIsIGFsdGhvdWdoIHRoZSBt ZW51IGJhciBpdHNlbGYgZG9lcw0KID4gc3RyYW5nZSBzdHVmZiB3aGlsZSB0aGUgbWVudSBp cyBvcGVuLiBEb24ndCBrbm93IHdoYXQgdGhhdCBpcy4NCg0KU3RpbGwgY2FuJ3QgdGVzdCBp dCB3aXRoIGVtYWNzIC1RIC1udw0KDQpEZWJ1Z2dlciBlbnRlcmVkLS1MaXNwIGVycm9yOiAo dm9pZC1mdW5jdGlvbiBjb25kKikNCiAgIChjb25kKiAoKG1hdGNoKiAnbmlsIHBvcykgbmls KSAoKG1hdGNoKiAndCBwb3MpIChsZXQqICgoeSAobW91c2UtcG9zaXRpb24pKSAoZnJhbWUg KGlmIChjZHIgeSkgKGNhci1zYWZlIChwcm9nMSB5IC4uLikpIChzaWduYWwgJ3dyb25nLW51 bWJlci1vZi1hcmd1bWVudHMgKGxpc3QgLi4uIC4uLikpKSkgKHggKGNhci1zYWZlIChwcm9n MSB5IChzZXRxIHkgLi4uKSkpKSkgKGxpc3QgZnJhbWUgKG9yIHggMTApIChvciB5IDEwKSkp KSAoKG1hdGNoKiAoZXZlbnRwIGUpIHBvcykgKGxldCogKChlbmQgKGV2ZW50LWVuZCBlKSkg KHdpbiAocG9zbi13aW5kb3cgZW5kKSkgKHggKGNhciAocG9zbi14LXkgZW5kKSkpICh5IChj ZHIgKHBvc24teC15IGVuZCkpKSkgKGlmICh3aW5kb3dwIHdpbikgKGxldCogKCgtLWNsLXJl c3QtLSAod2luZG93LWVkZ2VzIHdpbiBuaWwgdCkpICh3eCAoaWYgLi4uIC4uLiAuLi4pKSAo d3kgKGNhci1zYWZlIC4uLikpIChfIChjYXItc2FmZSAuLi4pKSAoXyAoY2FyLXNhZmUgLS1j bC1yZXN0LS0pKSkgKGxpc3QgKHdpbmRvdy1mcmFtZSB3aW4pICgrIHd4IHgpICgrIHd5IHkp KSkgKGxldCAoKG1lbnUtYmFyLWxpbmVzIChmcmFtZS1wYXJhbWV0ZXIgd2luIC4uLikpKSAo bGlzdCB3aW4geCAoKyB5IG1lbnUtYmFyLWxpbmVzKSkpKSkpICgobWF0Y2gqIChjb25zIChj b25zIChudW1iZXJwIHgpIChudW1iZXJwIHkpKSAoY29ucyAod2luZG93cCB3aW4pIF8pKSBw b3MpIChsZXQqICgoLS1jbC1yZXN0LS0gKHdpbmRvdy1lZGdlcyB3aW4gbmlsIHQpKSAod3gg KGlmICg9IChsZW5ndGggLS1jbC1yZXN0LS0pIDQpIChjYXItc2FmZSAocHJvZzEgLS1jbC1y ZXN0LS0gLi4uKSkgKHNpZ25hbCAnd3JvbmctbnVtYmVyLW9mLWFyZ3VtZW50cyAobGlzdCAu Li4gLi4uKSkpKSAod3kgKGNhci1zYWZlIChwcm9nMSAtLWNsLXJlc3QtLSAoc2V0cSAtLWNs LXJlc3QtLSAuLi4pKSkpIChfIChjYXItc2FmZSAocHJvZzEgLS1jbC1yZXN0LS0gKHNldHEg LS1jbC1yZXN0LS0gLi4uKSkpKSAoXyAoY2FyLXNhZmUgLS1jbC1yZXN0LS0pKSkgKGxpc3Qg KHdpbmRvdy1mcmFtZSB3aW4pICgrIHd4IHgpICgrIHd5IHkpKSkpICgobWF0Y2gqIChjb25z IChsaXN0IChudW1iZXJwIHgpIChudW1iZXJwIHkpKSAoY29ucyAoZnJhbWVwIGZyYW1lKSBf KSkgcG9zKSAobGlzdCBmcmFtZSB4IHkpKSAoKG1hdGNoKiAoY29ucyAoY29ucyAobnVtYmVy cCB4KSAobnVtYmVycCB5KSkgKGNvbnMgKGZyYW1lcCBmcmFtZSkgXykpIHBvcykgKGxpc3Qg ZnJhbWUgeCB5KSkgKChtYXRjaCogKGNvbnMgKG51bWJlcnAgeCkgKG51bWJlcnAgeSkpIHBv cykgKGxpc3QgKHNlbGVjdGVkLWZyYW1lKSB4IHkpKSAodCAoZXJyb3IgIiVTIGRvZXMgbm90 IG1hdGNoIGluIHR0eS1tZW51LXBvc2l0aW9uIiBwb3MpKSkNCiAgIHR0eS1tZW51LXBvc2l0 aW9uKCh0b29scyAoIzxmcmFtZSBGMSAweDIxYjVjYWQwPiAobWVudS1iYXIpICgyNiAuIDAp IDApKSkNCiAgIChhbmQgdCAodHR5LW1lbnUtcG9zaXRpb24gcG9zaXRpb24pKQ0KICAgKGxl dCogKCh3aGVyZSAoYW5kIHQgKHR0eS1tZW51LXBvc2l0aW9uIHBvc2l0aW9uKSkpKSAoaWYg d2hlcmUgKGNvbmQgKChrZXltYXBwIG1lbnUpICh0dHktbWVudS1sb29wIG1lbnUgd2hlcmUp KSAoKGNvbnNwIG1lbnUpIChsZXQqICgob3V0ZXIgKG1ha2Utc3BhcnNlLWtleW1hcCAib3V0 ZXIiKSkgKC0tY2wtdmFyLS0gbWVudSkgKGtleW1hcCBuaWwpIChuYW1lIG5pbCkgKC0tY2wt dmFyLS0gdCkpICh3aGlsZSAoY29uc3AgLS1jbC12YXItLSkgKHNldHEga2V5bWFwIChjYXIg LS1jbC12YXItLSkpIChzZXRxIG5hbWUgKHR0eS1tZW51LWtleW1hcC1uYW1lIGtleW1hcCAi PyIpKSAoZGVmaW5lLWtleSBvdXRlciAodmVjdG9yIC4uLikga2V5bWFwKSAoc2V0cSAtLWNs LXZhci0tIChjZHIgLS1jbC12YXItLSkpIChzZXRxIC0tY2wtdmFyLS0gbmlsKSkgKHR0eS1t ZW51LWxvb3Agb3V0ZXIgd2hlcmUpIG5pbCkpICh0IChlcnJvciAiTm90IGEgbWVudTogJVMi IG1lbnUpKSkpKQ0KICAgdHR5LW1lbnUtcG9wdXAtbWVudSgodG9vbHMgKCM8ZnJhbWUgRjEg MHgyMWI1Y2FkMD4gKG1lbnUtYmFyKSAoMjYgLiAwKSAwKSkgKGtleW1hcCAoZ3JlcCBtZW51 LWl0ZW0gIlNlYXJjaCBGaWxlcyAoR3JlcCkuLi4iIGdyZXAgOmhlbHAgIlNlYXJjaCBmaWxl cyBmb3Igc3RyaW5ncyBvciByZWdleHBzICh3aXRoIEdyZXApIikgKHJncmVwIG1lbnUtaXRl bSAiUmVjdXJzaXZlIEdyZXAuLi4iIHJncmVwIDpoZWxwICJJbnRlcmFjdGl2ZWx5IGFzayBm b3IgcGFyYW1ldGVycyBhbmQgc2VhcmNoIHJlY3Vyc2l2ZWx5IikgKHNoZWxsLWNvbW1hbmRz IG1lbnUtaXRlbSAiU2hlbGwgQ29tbWFuZHMiIChrZXltYXAgLi4uIC4uLiAuLi4gLi4uIC4u LiAiU2hlbGwgQ29tbWFuZHMiKSkgKGNvbXBpbGUgbWVudS1pdGVtICJDb21waWxlLi4uIiBj b21waWxlIDpoZWxwICJJbnZva2UgY29tcGlsZXIgb3IgTWFrZSBpbiBjdXJyZW50IGJ1ZmZl cidzIGRpcmVjdG9yeSwgdmlldyBlcnJvcnMiKSAocHJvamVjdC1jb21waWxlIG1lbnUtaXRl bSAiQ29tcGlsZSBQcm9qZWN0Li4uIiBwcm9qZWN0LWNvbXBpbGUgOmhlbHAgIkludm9rZSBj b21waWxlciBvciBNYWtlIGZvciBjdXJyZW50IHByb2plY3QsIHZpZXcgZXJyb3JzIikgKGdk YiBtZW51LWl0ZW0gIkRlYnVnZ2VyIChHREIpLi4uIiBnZGIgOmhlbHAgIkRlYnVnIGEgcHJv Z3JhbSBmcm9tIHdpdGhpbiBFbWFjcyB3aXRoIEdEQiIpIChlZGUgbWVudS1pdGVtICJQcm9q ZWN0IFN1cHBvcnQgKEVERSkiIGdsb2JhbC1lZGUtbW9kZSA6aGVscCAiVG9nZ2xlIHRoZSBF bWFjcyBEZXZlbG9wbWVudCBFbnZpcm9ubWVudCAoR2xvYmFsIEVERSBtb2RlKSIgOmJ1dHRv biAoOnRvZ2dsZSBib3VuZC1hbmQtdHJ1ZS1wIGdsb2JhbC1lZGUtbW9kZSkpIChwcm9qZWN0 IG1lbnUtaXRlbSAiUHJvamVjdCIgKGtleW1hcCAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAu Li4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4u IC4uLiAiUHJvamVjdCIpKSAoZWdsb3QgbWVudS1pdGVtICJMYW5ndWFnZSBTZXJ2ZXIgU3Vw cG9ydCAoRWdsb3QpIiBlZ2xvdCA6aGVscCAiU3RhcnQgbGFuZ3VhZ2Ugc2VydmVyIHN1aXRh YmxlIGZvciB0aGlzIGJ1ZmZlcidzIG1ham9yLW1vZGUiKSAoc2VtYW50aWMgbWVudS1pdGVt ICJTb3VyY2UgQ29kZSBQYXJzZXJzIChTZW1hbnRpYykiIHNlbWFudGljLW1vZGUgOmhlbHAg IlRvZ2dsZSBhdXRvbWF0aWMgcGFyc2luZyBpbiBzb3VyY2UgY29kZSBidWZmZXJzIChTZW1h bnRpYyBtb2RlKSIgOmJ1dHRvbiAoOnRvZ2dsZSBib3VuZC1hbmQtdHJ1ZS1wIHNlbWFudGlj LW1vZGUpKSAoc2VwYXJhdG9yLXByb2cgIi0tIikgKHNwZWxsIG1lbnUtaXRlbSAiU3BlbGwg Q2hlY2tpbmciIGlzcGVsbC1tZW51LW1hcCkgKHNlcGFyYXRvci1zcGVsbCAiLS0iKSAoY29t cGFyZSBtZW51LWl0ZW0gIkNvbXBhcmUgKEVkaWZmKSIgbWVudS1iYXItZWRpZmYtbWVudSkg KGVkaWZmLW1lcmdlIG1lbnUtaXRlbSAiTWVyZ2UiIG1lbnUtYmFyLWVkaWZmLW1lcmdlLW1l bnUpIChlcGF0Y2ggbWVudS1pdGVtICJBcHBseSBQYXRjaCIgDQptZW51LWJhci1lcGF0Y2gt bWVudSkgKHNlcGFyYXRvci1jb21wYXJlICItLSIpICh2YyBtZW51LWl0ZW0gIlZlcnNpb24g Q29udHJvbCIgdmMtbWVudS1tYXAgOmZpbHRlciB2Yy1tZW51LW1hcC1maWx0ZXIpIChzZXBh cmF0b3ItdmMgIi0tIikgKGdudXMgbWVudS1pdGVtICJSZWFkIE5ldCBOZXdzIiBnbnVzIDpo ZWxwICJSZWFkIG5ldHdvcmsgbmV3cyBncm91cHMiKSAocm1haWwgbWVudS1pdGVtICJSZWFk IE1haWwiIG1lbnUtYmFyLXJlYWQtbWFpbCA6dmlzaWJsZSAoYW5kIHJlYWQtbWFpbC1jb21t YW5kIC4uLikgOmhlbHAgIlJlYWQgeW91ciBtYWlsIikgKGNvbXBvc2UtbWFpbCBtZW51LWl0 ZW0gIkNvbXBvc2UgTmV3IE1haWwiIGNvbXBvc2UtbWFpbCA6dmlzaWJsZSAoYW5kIG1haWwt dXNlci1hZ2VudCAuLi4pIDpoZWxwICJTdGFydCB3cml0aW5nIGEgbmV3IG1haWwgbWVzc2Fn ZSIpIChkaXJlY3Rvcnktc2VhcmNoIG1lbnUtaXRlbSAiRGlyZWN0b3J5IFNlcnZlcnMiIGV1 ZGMtdG9vbHMtbWVudSkgKGJyb3dzZS13ZWIgbWVudS1pdGVtICJCcm93c2UgdGhlIFdlYi4u LiIgYnJvd3NlLXdlYikgKHNlcGFyYXRvci1uZXQgIi0tIikgLi4uKSkNCiAgIGFwcGx5KHR0 eS1tZW51LXBvcHVwLW1lbnUgKCh0b29scyAoIzxmcmFtZSBGMSAweDIxYjVjYWQwPiAobWVu dS1iYXIpICgyNiAuIDApIDApKSAoa2V5bWFwIChncmVwIG1lbnUtaXRlbSAiU2VhcmNoIEZp bGVzIChHcmVwKS4uLiIgZ3JlcCA6aGVscCAiU2VhcmNoIGZpbGVzIGZvciBzdHJpbmdzIG9y IHJlZ2V4cHMgKHdpdGggR3JlcCkiKSAocmdyZXAgbWVudS1pdGVtICJSZWN1cnNpdmUgR3Jl cC4uLiIgcmdyZXAgOmhlbHAgIkludGVyYWN0aXZlbHkgYXNrIGZvciBwYXJhbWV0ZXJzIGFu ZCBzZWFyY2ggcmVjdXJzaXZlbHkiKSAoc2hlbGwtY29tbWFuZHMgbWVudS1pdGVtICJTaGVs bCBDb21tYW5kcyIgKGtleW1hcCAuLi4gLi4uIC4uLiAuLi4gLi4uICJTaGVsbCBDb21tYW5k cyIpKSAoY29tcGlsZSBtZW51LWl0ZW0gIkNvbXBpbGUuLi4iIGNvbXBpbGUgOmhlbHAgIklu dm9rZSBjb21waWxlciBvciBNYWtlIGluIGN1cnJlbnQgYnVmZmVyJ3MgZGlyZWN0b3J5LCB2 aWV3IGVycm9ycyIpIChwcm9qZWN0LWNvbXBpbGUgbWVudS1pdGVtICJDb21waWxlIFByb2pl Y3QuLi4iIHByb2plY3QtY29tcGlsZSA6aGVscCAiSW52b2tlIGNvbXBpbGVyIG9yIE1ha2Ug Zm9yIGN1cnJlbnQgcHJvamVjdCwgdmlldyBlcnJvcnMiKSAoZ2RiIG1lbnUtaXRlbSAiRGVi dWdnZXIgKEdEQikuLi4iIGdkYiA6aGVscCAiRGVidWcgYSBwcm9ncmFtIGZyb20gd2l0aGlu IEVtYWNzIHdpdGggR0RCIikgKGVkZSBtZW51LWl0ZW0gIlByb2plY3QgU3VwcG9ydCAoRURF KSIgZ2xvYmFsLWVkZS1tb2RlIDpoZWxwICJUb2dnbGUgdGhlIEVtYWNzIERldmVsb3BtZW50 IEVudmlyb25tZW50IChHbG9iYWwgRURFIG1vZGUpIiA6YnV0dG9uICg6dG9nZ2xlIGJvdW5k LWFuZC10cnVlLXAgZ2xvYmFsLWVkZS1tb2RlKSkgKHByb2plY3QgbWVudS1pdGVtICJQcm9q ZWN0IiAoa2V5bWFwIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAu Li4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uICJQcm9qZWN0Iikp IChlZ2xvdCBtZW51LWl0ZW0gIkxhbmd1YWdlIFNlcnZlciBTdXBwb3J0IChFZ2xvdCkiIGVn bG90IDpoZWxwICJTdGFydCBsYW5ndWFnZSBzZXJ2ZXIgc3VpdGFibGUgZm9yIHRoaXMgYnVm ZmVyJ3MgbWFqb3ItbW9kZSIpIChzZW1hbnRpYyBtZW51LWl0ZW0gIlNvdXJjZSBDb2RlIFBh cnNlcnMgKFNlbWFudGljKSIgc2VtYW50aWMtbW9kZSA6aGVscCAiVG9nZ2xlIGF1dG9tYXRp YyBwYXJzaW5nIGluIHNvdXJjZSBjb2RlIGJ1ZmZlcnMgKFNlbWFudGljIG1vZGUpIiA6YnV0 dG9uICg6dG9nZ2xlIGJvdW5kLWFuZC10cnVlLXAgc2VtYW50aWMtbW9kZSkpIChzZXBhcmF0 b3ItcHJvZyAiLS0iKSAoc3BlbGwgbWVudS1pdGVtICJTcGVsbCBDaGVja2luZyIgaXNwZWxs LW1lbnUtbWFwKSAoc2VwYXJhdG9yLXNwZWxsICItLSIpIChjb21wYXJlIG1lbnUtaXRlbSAi Q29tcGFyZSAoRWRpZmYpIiBtZW51LWJhci1lZGlmZi1tZW51KSAoZWRpZmYtbWVyZ2UgbWVu dS1pdGVtICJNZXJnZSIgbWVudS1iYXItZWRpZmYtbWVyZ2UtbWVudSkgKGVwYXRjaCBtZW51 LWl0ZW0gIkFwcGx5IFBhdGNoIiANCm1lbnUtYmFyLWVwYXRjaC1tZW51KSAoc2VwYXJhdG9y LWNvbXBhcmUgIi0tIikgKHZjIG1lbnUtaXRlbSAiVmVyc2lvbiBDb250cm9sIiB2Yy1tZW51 LW1hcCA6ZmlsdGVyIHZjLW1lbnUtbWFwLWZpbHRlcikgKHNlcGFyYXRvci12YyAiLS0iKSAo Z251cyBtZW51LWl0ZW0gIlJlYWQgTmV0IE5ld3MiIGdudXMgOmhlbHAgIlJlYWQgbmV0d29y ayBuZXdzIGdyb3VwcyIpIChybWFpbCBtZW51LWl0ZW0gIlJlYWQgTWFpbCIgbWVudS1iYXIt cmVhZC1tYWlsIDp2aXNpYmxlIChhbmQgcmVhZC1tYWlsLWNvbW1hbmQgLi4uKSA6aGVscCAi UmVhZCB5b3VyIG1haWwiKSAoY29tcG9zZS1tYWlsIG1lbnUtaXRlbSAiQ29tcG9zZSBOZXcg TWFpbCIgY29tcG9zZS1tYWlsIDp2aXNpYmxlIChhbmQgbWFpbC11c2VyLWFnZW50IC4uLikg OmhlbHAgIlN0YXJ0IHdyaXRpbmcgYSBuZXcgbWFpbCBtZXNzYWdlIikgKGRpcmVjdG9yeS1z ZWFyY2ggbWVudS1pdGVtICJEaXJlY3RvcnkgU2VydmVycyIgZXVkYy10b29scy1tZW51KSAo YnJvd3NlLXdlYiBtZW51LWl0ZW0gIkJyb3dzZSB0aGUgV2ViLi4uIiBicm93c2Utd2ViKSAo c2VwYXJhdG9yLW5ldCAiLS0iKSAoY2FsZW5kYXIgbWVudS1pdGVtICJDYWxlbmRhciIgY2Fs ZW5kYXIgOmhlbHAgIkludm9rZSB0aGUgRW1hY3MgYnVpbHQtaW4gY2FsZW5kYXIiKSAoY2Fs YyBtZW51LWl0ZW0gIlByb2dyYW1tYWJsZSBDYWxjdWxhdG9yIiBjYWxjIDpoZWxwICJJbnZv a2UgdGhlIEVtYWNzIGJ1aWx0LWluIGZ1bGwgc2NpZW50aWZpYyBjYWxjdWxhdG9yIikgKHNp bXBsZS1jYWxjdWxhdG9yIG1lbnUtaXRlbSAiU2ltcGxlIENhbGN1bGF0b3IiIGNhbGN1bGF0 b3IgOmhlbHAgIkludm9rZSB0aGUgRW1hY3MgYnVpbHQtaW4gcXVpY2sgY2FsY3VsYXRvciIp IChzZXBhcmF0b3ItZW5jcnlwdGlvbi1kZWNyeXB0aW9uICItLSIpIChlbmNyeXB0aW9uLWRl Y3J5cHRpb24gbWVudS1pdGVtICJFbmNyeXB0aW9uL0RlY3J5cHRpb24iIChrZXltYXAgLi4u IC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAu Li4gIkVuY3J5cHRpb24vRGVjcnlwdGlvbiIpKSAoc2VwYXJhdG9yLWdhbWVzICItLSIpIC4u LikpKQ0KICAgeC1wb3B1cC1tZW51KCh0b29scyAoIzxmcmFtZSBGMSAweDIxYjVjYWQwPiAo bWVudS1iYXIpICgyNiAuIDApIDApKSAoa2V5bWFwIChncmVwIG1lbnUtaXRlbSAiU2VhcmNo IEZpbGVzIChHcmVwKS4uLiIgZ3JlcCA6aGVscCAiU2VhcmNoIGZpbGVzIGZvciBzdHJpbmdz IG9yIHJlZ2V4cHMgKHdpdGggR3JlcCkiKSAocmdyZXAgbWVudS1pdGVtICJSZWN1cnNpdmUg R3JlcC4uLiIgcmdyZXAgOmhlbHAgIkludGVyYWN0aXZlbHkgYXNrIGZvciBwYXJhbWV0ZXJz IGFuZCBzZWFyY2ggcmVjdXJzaXZlbHkiKSAoc2hlbGwtY29tbWFuZHMgbWVudS1pdGVtICJT aGVsbCBDb21tYW5kcyIgKGtleW1hcCAuLi4gLi4uIC4uLiAuLi4gLi4uICJTaGVsbCBDb21t YW5kcyIpKSAoY29tcGlsZSBtZW51LWl0ZW0gIkNvbXBpbGUuLi4iIGNvbXBpbGUgOmhlbHAg Ikludm9rZSBjb21waWxlciBvciBNYWtlIGluIGN1cnJlbnQgYnVmZmVyJ3MgZGlyZWN0b3J5 LCB2aWV3IGVycm9ycyIpIChwcm9qZWN0LWNvbXBpbGUgbWVudS1pdGVtICJDb21waWxlIFBy b2plY3QuLi4iIHByb2plY3QtY29tcGlsZSA6aGVscCAiSW52b2tlIGNvbXBpbGVyIG9yIE1h a2UgZm9yIGN1cnJlbnQgcHJvamVjdCwgdmlldyBlcnJvcnMiKSAoZ2RiIG1lbnUtaXRlbSAi RGVidWdnZXIgKEdEQikuLi4iIGdkYiA6aGVscCAiRGVidWcgYSBwcm9ncmFtIGZyb20gd2l0 aGluIEVtYWNzIHdpdGggR0RCIikgKGVkZSBtZW51LWl0ZW0gIlByb2plY3QgU3VwcG9ydCAo RURFKSIgZ2xvYmFsLWVkZS1tb2RlIDpoZWxwICJUb2dnbGUgdGhlIEVtYWNzIERldmVsb3Bt ZW50IEVudmlyb25tZW50IChHbG9iYWwgRURFIG1vZGUpIiA6YnV0dG9uICg6dG9nZ2xlIGJv dW5kLWFuZC10cnVlLXAgZ2xvYmFsLWVkZS1tb2RlKSkgKHByb2plY3QgbWVudS1pdGVtICJQ cm9qZWN0IiAoa2V5bWFwIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4u LiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uICJQcm9qZWN0 IikpIChlZ2xvdCBtZW51LWl0ZW0gIkxhbmd1YWdlIFNlcnZlciBTdXBwb3J0IChFZ2xvdCki IGVnbG90IDpoZWxwICJTdGFydCBsYW5ndWFnZSBzZXJ2ZXIgc3VpdGFibGUgZm9yIHRoaXMg YnVmZmVyJ3MgbWFqb3ItbW9kZSIpIChzZW1hbnRpYyBtZW51LWl0ZW0gIlNvdXJjZSBDb2Rl IFBhcnNlcnMgKFNlbWFudGljKSIgc2VtYW50aWMtbW9kZSA6aGVscCAiVG9nZ2xlIGF1dG9t YXRpYyBwYXJzaW5nIGluIHNvdXJjZSBjb2RlIGJ1ZmZlcnMgKFNlbWFudGljIG1vZGUpIiA6 YnV0dG9uICg6dG9nZ2xlIGJvdW5kLWFuZC10cnVlLXAgc2VtYW50aWMtbW9kZSkpIChzZXBh cmF0b3ItcHJvZyAiLS0iKSAoc3BlbGwgbWVudS1pdGVtICJTcGVsbCBDaGVja2luZyIgaXNw ZWxsLW1lbnUtbWFwKSAoc2VwYXJhdG9yLXNwZWxsICItLSIpIChjb21wYXJlIG1lbnUtaXRl bSAiQ29tcGFyZSAoRWRpZmYpIiBtZW51LWJhci1lZGlmZi1tZW51KSAoZWRpZmYtbWVyZ2Ug bWVudS1pdGVtICJNZXJnZSIgbWVudS1iYXItZWRpZmYtbWVyZ2UtbWVudSkgKGVwYXRjaCBt ZW51LWl0ZW0gIkFwcGx5IFBhdGNoIiANCm1lbnUtYmFyLWVwYXRjaC1tZW51KSAoc2VwYXJh dG9yLWNvbXBhcmUgIi0tIikgKHZjIG1lbnUtaXRlbSAiVmVyc2lvbiBDb250cm9sIiB2Yy1t ZW51LW1hcCA6ZmlsdGVyIHZjLW1lbnUtbWFwLWZpbHRlcikgKHNlcGFyYXRvci12YyAiLS0i KSAoZ251cyBtZW51LWl0ZW0gIlJlYWQgTmV0IE5ld3MiIGdudXMgOmhlbHAgIlJlYWQgbmV0 d29yayBuZXdzIGdyb3VwcyIpIChybWFpbCBtZW51LWl0ZW0gIlJlYWQgTWFpbCIgbWVudS1i YXItcmVhZC1tYWlsIDp2aXNpYmxlIChhbmQgcmVhZC1tYWlsLWNvbW1hbmQgLi4uKSA6aGVs cCAiUmVhZCB5b3VyIG1haWwiKSAoY29tcG9zZS1tYWlsIG1lbnUtaXRlbSAiQ29tcG9zZSBO ZXcgTWFpbCIgY29tcG9zZS1tYWlsIDp2aXNpYmxlIChhbmQgbWFpbC11c2VyLWFnZW50IC4u LikgOmhlbHAgIlN0YXJ0IHdyaXRpbmcgYSBuZXcgbWFpbCBtZXNzYWdlIikgKGRpcmVjdG9y eS1zZWFyY2ggbWVudS1pdGVtICJEaXJlY3RvcnkgU2VydmVycyIgZXVkYy10b29scy1tZW51 KSAoYnJvd3NlLXdlYiBtZW51LWl0ZW0gIkJyb3dzZSB0aGUgV2ViLi4uIiBicm93c2Utd2Vi KSAoc2VwYXJhdG9yLW5ldCAiLS0iKSAuLi4pKQ0KICAgcG9wdXAtbWVudSgoa2V5bWFwIChn cmVwIG1lbnUtaXRlbSAiU2VhcmNoIEZpbGVzIChHcmVwKS4uLiIgZ3JlcCA6aGVscCAiU2Vh cmNoIGZpbGVzIGZvciBzdHJpbmdzIG9yIHJlZ2V4cHMgKHdpdGggR3JlcCkiKSAocmdyZXAg bWVudS1pdGVtICJSZWN1cnNpdmUgR3JlcC4uLiIgcmdyZXAgOmhlbHAgIkludGVyYWN0aXZl bHkgYXNrIGZvciBwYXJhbWV0ZXJzIGFuZCBzZWFyY2ggcmVjdXJzaXZlbHkiKSAoc2hlbGwt Y29tbWFuZHMgbWVudS1pdGVtICJTaGVsbCBDb21tYW5kcyIgKGtleW1hcCAuLi4gLi4uIC4u LiAuLi4gLi4uICJTaGVsbCBDb21tYW5kcyIpKSAoY29tcGlsZSBtZW51LWl0ZW0gIkNvbXBp bGUuLi4iIGNvbXBpbGUgOmhlbHAgIkludm9rZSBjb21waWxlciBvciBNYWtlIGluIGN1cnJl bnQgYnVmZmVyJ3MgZGlyZWN0b3J5LCB2aWV3IGVycm9ycyIpIChwcm9qZWN0LWNvbXBpbGUg bWVudS1pdGVtICJDb21waWxlIFByb2plY3QuLi4iIHByb2plY3QtY29tcGlsZSA6aGVscCAi SW52b2tlIGNvbXBpbGVyIG9yIE1ha2UgZm9yIGN1cnJlbnQgcHJvamVjdCwgdmlldyBlcnJv cnMiKSAoZ2RiIG1lbnUtaXRlbSAiRGVidWdnZXIgKEdEQikuLi4iIGdkYiA6aGVscCAiRGVi dWcgYSBwcm9ncmFtIGZyb20gd2l0aGluIEVtYWNzIHdpdGggR0RCIikgKGVkZSBtZW51LWl0 ZW0gIlByb2plY3QgU3VwcG9ydCAoRURFKSIgZ2xvYmFsLWVkZS1tb2RlIDpoZWxwICJUb2dn bGUgdGhlIEVtYWNzIERldmVsb3BtZW50IEVudmlyb25tZW50IChHbG9iYWwgRURFIG1vZGUp IiA6YnV0dG9uICg6dG9nZ2xlIGJvdW5kLWFuZC10cnVlLXAgZ2xvYmFsLWVkZS1tb2RlKSkg KHByb2plY3QgbWVudS1pdGVtICJQcm9qZWN0IiAoa2V5bWFwIC4uLiAuLi4gLi4uIC4uLiAu Li4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4uIC4uLiAuLi4gLi4u IC4uLiAuLi4gLi4uICJQcm9qZWN0IikpIChlZ2xvdCBtZW51LWl0ZW0gIkxhbmd1YWdlIFNl cnZlciBTdXBwb3J0IChFZ2xvdCkiIGVnbG90IDpoZWxwICJTdGFydCBsYW5ndWFnZSBzZXJ2 ZXIgc3VpdGFibGUgZm9yIHRoaXMgYnVmZmVyJ3MgbWFqb3ItbW9kZSIpIChzZW1hbnRpYyBt ZW51LWl0ZW0gIlNvdXJjZSBDb2RlIFBhcnNlcnMgKFNlbWFudGljKSIgc2VtYW50aWMtbW9k ZSA6aGVscCAiVG9nZ2xlIGF1dG9tYXRpYyBwYXJzaW5nIGluIHNvdXJjZSBjb2RlIGJ1ZmZl cnMgKFNlbWFudGljIG1vZGUpIiA6YnV0dG9uICg6dG9nZ2xlIGJvdW5kLWFuZC10cnVlLXAg c2VtYW50aWMtbW9kZSkpIChzZXBhcmF0b3ItcHJvZyAiLS0iKSAoc3BlbGwgbWVudS1pdGVt ICJTcGVsbCBDaGVja2luZyIgaXNwZWxsLW1lbnUtbWFwKSAoc2VwYXJhdG9yLXNwZWxsICIt LSIpIChjb21wYXJlIG1lbnUtaXRlbSAiQ29tcGFyZSAoRWRpZmYpIiBtZW51LWJhci1lZGlm Zi1tZW51KSAoZWRpZmYtbWVyZ2UgbWVudS1pdGVtICJNZXJnZSIgbWVudS1iYXItZWRpZmYt bWVyZ2UtbWVudSkgKGVwYXRjaCBtZW51LWl0ZW0gIkFwcGx5IFBhdGNoIiBtZW51LWJhci1l cGF0Y2gtbWVudSkgKHNlcGFyYXRvci1jb21wYXJlICItLSIpICh2YyBtZW51LWl0ZW0gIlZl cnNpb24gDQpDb250cm9sIiB2Yy1tZW51LW1hcCA6ZmlsdGVyIHZjLW1lbnUtbWFwLWZpbHRl cikgKHNlcGFyYXRvci12YyAiLS0iKSAoZ251cyBtZW51LWl0ZW0gIlJlYWQgTmV0IE5ld3Mi IGdudXMgOmhlbHAgIlJlYWQgbmV0d29yayBuZXdzIGdyb3VwcyIpIChybWFpbCBtZW51LWl0 ZW0gIlJlYWQgTWFpbCIgbWVudS1iYXItcmVhZC1tYWlsIDp2aXNpYmxlIChhbmQgcmVhZC1t YWlsLWNvbW1hbmQgLi4uKSA6aGVscCAiUmVhZCB5b3VyIG1haWwiKSAoY29tcG9zZS1tYWls IG1lbnUtaXRlbSAiQ29tcG9zZSBOZXcgTWFpbCIgY29tcG9zZS1tYWlsIDp2aXNpYmxlIChh bmQgbWFpbC11c2VyLWFnZW50IC4uLikgOmhlbHAgIlN0YXJ0IHdyaXRpbmcgYSBuZXcgbWFp bCBtZXNzYWdlIikgKGRpcmVjdG9yeS1zZWFyY2ggbWVudS1pdGVtICJEaXJlY3RvcnkgU2Vy dmVycyIgZXVkYy10b29scy1tZW51KSAoYnJvd3NlLXdlYiBtZW51LWl0ZW0gIkJyb3dzZSB0 aGUgV2ViLi4uIiBicm93c2Utd2ViKSAoc2VwYXJhdG9yLW5ldCAiLS0iKSAuLi4pICgjPHdp bmRvdyAxIG9uICpzY3JhdGNoKj4gMjcgKDI2IC4gMCkgMCBuaWwgMjcgKDI2IC4gMCkgbmls ICgwIC4gMCkgKDEgLiAwKSkgbmlsIHQpDQogICBtZW51LWJhci1vcGVuKG5pbCAyNikNCiAg IG1lbnUtYmFyLW9wZW4tbW91c2UoKG1vdXNlLTEgKG5pbCBtZW51LWJhciAoMjggLiAwKSA5 NjgpKSkNCiAgIGZ1bmNhbGwtaW50ZXJhY3RpdmVseShtZW51LWJhci1vcGVuLW1vdXNlICht b3VzZS0xIChuaWwgbWVudS1iYXIgKDI4IC4gMCkgOTY4KSkpDQogICBjYWxsLWludGVyYWN0 aXZlbHkobWVudS1iYXItb3Blbi1tb3VzZSBuaWwgbmlsKQ0KICAgY29tbWFuZC1leGVjdXRl KG1lbnUtYmFyLW9wZW4tbW91c2UpDQoNCm1hcnRpbg0K
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 9 Feb 2025 18:10:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 09 13:10:17 2025 Received: from localhost ([127.0.0.1]:46189 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1thBl3-0008D4-0n for submit <at> debbugs.gnu.org; Sun, 09 Feb 2025 13:10:17 -0500 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]:47305) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1thBkz-0008BE-E5 for 75056 <at> debbugs.gnu.org; Sun, 09 Feb 2025 13:10:14 -0500 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-aaeec07b705so590376166b.2 for <75056 <at> debbugs.gnu.org>; Sun, 09 Feb 2025 10:10:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739124607; x=1739729407; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=QnzhzdQhas+zYuwC2rYcrNfQNZg6viZ/FuMsYxBvl08=; b=EWQ71Z2r+FR39x4q1u7SMsmMwRLt0iVl4c3111Y7qnOk4Kws+kU4dtopt/nyiooPcz agbbmI+BhAhJBXP1t0koi8KboenK5YH71PllX8ARpNBBPbiEusaES3bHxMcrNVs2OL/Z i9mZPunsNIB3VPcBfsLNyNXVbChny+Wgr7fLIO1Savh/Gn4E8G+XIoT4rZDGYyGxV8EX hjZN3YWSkWoYHDzlJV42hcgX1L3tyBijJUB2vNssG81oae1HtmibDPYxNZI4Ff4Va/nC dOn1WKJYIn97lnkQUIzJRYIUvNvIqcDPOoMQuq9mWJzq0Y7xt+aKEA5wZjtrdKWuthiH FZ9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739124607; x=1739729407; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=QnzhzdQhas+zYuwC2rYcrNfQNZg6viZ/FuMsYxBvl08=; b=jpD11WQKSHwTO81QxIPEdMJcSjs/OSy+Jpd28Yu8q0jyjzxbBgA44Qn8e/SW19zeXf ky6XxZF396/Y9GfWAETlJXN5pvMrxIYlkiz6D2ozI/lSPsX8xw3hRwVwiqLeWN2+PcY1 AvmiCGUmYIhKrPW4v8KEleBY1/n2+wWsbLfv7XzqgMCDiPIl+iLbW1pRtxfbpXkKtyvv ii3aAgIRfDQtEg4kMMKRMJLKi59KJgg4ztkJDTNpoLCN+bj66n2UeDo9F3vsA99iJd9q I243xd472UUGs3QH2HCQKu1b+Bl0dK4PAv+vN2396cR0Ndog3WguWypY3ltTmqKl4ZKN q+Ew== X-Forwarded-Encrypted: i=1; AJvYcCXQNy0eJ7hbchC5P2Xnte+ArhwjyumDtras1Ho2YT6Ubt3gABKXAUmMRyCwdvd9HDIQXCMSRg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzbUID0BBTFsrqiX3PthWCBUHeBMDaxtwXFIIOiL11zLlAyAPMe aZEAJyBARXvTWyZQpM9WP7EiLGJhSbNXwKQMeHukejc41+H/fCaJbH7EXA== X-Gm-Gg: ASbGncvTGbktf66IMvhx0dF1D2WdgRrWregddlf8Cgo8tZWE49PZv3cZgMRJx2efjik noUSVwftx+jgoAhr1Qd/U9CkKw+S9h1GJhowK5OB+ffjtGPLF7Lg9D04ssQ7QbKf3qQir3oFbgq xc8uWqe3sxSjeTcel49xwgbFjAWFvcPS8YVpdhCQq8+hwtKKB2DSz1bS6gsGumIYFhxpvxEcjQx 3BLBCaSCgy/lRM1DKGRJWj8RS9O7C1WKZrZ361q8HFcNiaXbiqhDWIka6LMdmjGC6+OCMTD267h ym653nFqlRwIE6gN9VaHqd1oMXz2EJizMDX1gcEixYfIDXW/f+teBoiXsBs1QpERY8poWgQyROO BHD24x+Z1uPbFWMDzLs3nlc1i X-Google-Smtp-Source: AGHT+IEIqemKoOuhNoYNDeR0baJArTcg3lu8MJNhK2TRI0DpK0fuApLRRkSFbuw5UPU0WWcmwy1SAw== X-Received: by 2002:a17:907:9719:b0:aaf:8f8e:6bf4 with SMTP id a640c23a62f3a-ab789aeacc1mr1087002266b.26.1739124606345; Sun, 09 Feb 2025 10:10:06 -0800 (PST) Received: from pro2 (p200300e0b725cf0094296d0536d9d0d3.dip0.t-ipconnect.de. [2003:e0:b725:cf00:9429:6d05:36d9:d0d3]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab7809a2ec4sm639317266b.116.2025.02.09.10.10.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Feb 2025 10:10:05 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <m2y0yfks1p.fsf@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> <m2seozjo3c.fsf@HIDDEN> <m2msf6ezfq.fsf@HIDDEN> <m2jz9zmlfg.fsf@HIDDEN> <m2frknml43.fsf@HIDDEN> <e4670861-a251-4250-b988-73b428a1b7e0@HIDDEN> <m234gnmjvi.fsf@HIDDEN> <31bd2acb-9523-4def-80c1-235807c4abc9@HIDDEN> <m2y0yfks1p.fsf@HIDDEN> Date: Sun, 09 Feb 2025 19:10:04 +0100 Message-ID: <m2seonf0qr.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > martin rudalics <rudalics@HIDDEN> writes: > >>> Sachen gibt's :-/. >> >> Clicking with the mouse on an arbitrary menubar item gets me > > Yeah, I didn't do the integration with the rest of Emacs yet. Looks like > another dark and ancient corner of Emacs. Insofar, please disregard > tty-menu-mode at the moment. But the rest is kind of funny, help-echo, > C-s in menus :-). > > Wie auch immer. This works better with the menu-bar, although the menu bar itself does strange stuff while the menu is open. Don't know what that is. --=-=-= Content-Type: application/emacs-lisp Content-Disposition: attachment; filename=tty-menu.el Content-Transfer-Encoding: quoted-printable ;; -*- lexical-binding: t; symbol-packages: t -*- ;;; tty-menu.el --- A menu implementation in Lisp ;; Copyright (C) 2025 Gerd M=C3=B6llmann ;; This file is not part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. ;;; Commentary: ;;; Code: ;;; Todo ;; A mode: Open a sub-menu by moving the selection into the menu-item ;; for the sub-menu. Close it by moving the selection out. ;; Make cursor invisible somehow (is cursor-type not supposed to ;; work?) ;; menu-bar-menu doesn't work (list of keymaps?) (eval-when-compile (require 'cl-lib)) (require 'eieio) (defclass tty-menu-element () () :documentation "Base class for elements of a menu.") (defclass tty-menu-pane (tty-menu-element) ((items :initarg :items :initform nil :type t) (buffer :initarg :buffer :type buffer) (layout :type list)) :documentation "Class for menu panes.") (defclass tty-menu-item (tty-menu-element) ((name :initarg :name :type string) (enable :initarg :enable :initform t :type t) (help :initarg :help :initform nil :type t) (visible :initarg :visible :initform t :type t) (key-sequence :initarg :key-sequence :initform nil :type t) (keys :initarg :keys :initform nil :type t) (filter :initarg :filter :initform nil :type t) (button :initarg :button :initform nil :type t) (selected :initarg :selected :initform nil :type t) (binding :initarg :binding :initform nil :type t))) (defclass tty-menu-button (tty-menu-item) ()) (defclass tty-menu-radio (tty-menu-button) ()) (defclass tty-menu-checkbox (tty-menu-button) ()) (defclass tty-menu-separator (tty-menu-item) ((sep :initform "-" :type string :reader tty-menu-sep))) (cl-defmethod initialize-instance :after ((item tty-menu-separator) &rest) (with-slots (name sep enable) item (setf enable nil) (cl-multiple-value-bind (ch disp) (pcase name ("--space" (cl-values ?\s nil)) ("--double-line" (cl-values ?=3D 'box-double-horizontal)) (_ (cl-values ?- 'box-horizontal))) (setf sep (make-string 1 (or (and disp (let ((c (display-table-slot standard-display-table disp))) (and (characterp c) c))) ch)))))) (defvar tty-menu-left-border-format "%1s") (defvar tty-menu-right-border-format "%1s") (defvar tty-menu-button-format "%-4s") (defvar tty-menu-key-format "%10s") (defvar tty-menu-name-format "%s") (defvar tty-menu-triangle "=E2=96=B6") (defvar tty-menu-radio-on "=E2=97=8F") (defvar tty-menu-radio-off "=E2=97=AF") (defvar tty-menu-checkbox-on "=E2=9C=94") (defvar tty-menu-checkbox-off "=E2=96=A1") (defun tty-menu-selectable-p (item) (eval (slot-value item 'enable))) (defun tty-menu-visible-p (item) (eval (slot-value item 'visible))) (defun tty-menu-enabled-p (item) (eval (slot-value item 'enable))) (defun tty-menu-ninsert (n x) (cl-loop repeat n do (insert x))) (cl-defgeneric tty-menu-button-string (item) (:method ((_ tty-menu-item)) "") (:method ((r tty-menu-radio)) (format tty-menu-button-format (if (slot-value r 'selected) tty-menu-radio-on tty-menu-radio-off))) (:method ((c tty-menu-checkbox)) (format tty-menu-button-format (if (slot-value c 'selected) tty-menu-checkbox-on tty-menu-checkbox-off))) (:method ((_ tty-menu-separator)) "")) (cl-defgeneric tty-menu-name-string (item) (:method ((item tty-menu-item)) (format tty-menu-name-format (slot-value item 'name))) (:method ((_ tty-menu-separator)) "")) (cl-defgeneric tty-menu-key-string (item) (:method ((item tty-menu-item)) (format tty-menu-key-format (with-slots (binding) item (cond ((commandp binding) (key-description (where-is-internal binding nil t))) ((keymapp binding) tty-menu-triangle) (t ""))))) (:method ((_ tty-menu-separator)) "")) (cl-defgeneric tty-menu-draw-button (item pane) (:method ((_item tty-menu-item) pane) (with-slots (layout) pane (cl-destructuring-bind (_ button-width _ _ _) layout (tty-menu-ninsert button-width ?\s)))) (:method ((item tty-menu-button) _pane) (with-slots (selected button) item (cl-destructuring-bind (_ . form) button (setf selected (eval form)) (insert (tty-menu-button-string item))))) (:method ((item tty-menu-separator) pane) (with-slots (layout) pane (cl-destructuring-bind (_ button-width _ _ _) layout (tty-menu-ninsert button-width (tty-menu-sep item)))))) (cl-defgeneric tty-menu-draw-name (item pane) (:method ((item tty-menu-item) pane) (with-slots (layout) pane (cl-destructuring-bind (left-border button name-width _ _) layout (with-slots (name) item (insert (tty-menu-name-string item)) (indent-to (+ left-border button name-width)))))) (:method ((item tty-menu-separator) pane) (with-slots (layout) pane (cl-destructuring-bind (_ _ name-width _ _) layout (tty-menu-ninsert name-width (tty-menu-sep item)))))) (cl-defgeneric tty-menu-draw-key (item pane) (:method ((item tty-menu-item) pane) (with-slots (layout) pane (cl-destructuring-bind (left-border button name-width key-width _) la= yout (insert (tty-menu-key-string item)) (indent-to (+ left-border button name-width key-width))))) (:method ((item tty-menu-separator) pane) (with-slots (layout) pane (cl-destructuring-bind (_ _ _ key-width _) layout (tty-menu-ninsert key-width (tty-menu-sep item)))))) (cl-defgeneric tty-menu-draw-finish (item pane) (:method ((item tty-menu-item) _) (let* ((enabled (tty-menu-enabled-p item)) (face (if enabled 'tty-menu-enabled-face 'tty-menu-disabled-face))) (put-text-property (pos-bol) (pos-eol) 'tty-menu-selectable enabled) (put-text-property (pos-bol) (pos-eol) 'face face)) (when-let* ((help (slot-value item 'help))) (put-text-property (pos-bol) (pos-eol) 'help-echo help))) (:method ((_item tty-menu-separator) _) (put-text-property (pos-bol) (pos-eol) 'tty-menu-selectable nil) (put-text-property (pos-bol) (pos-eol) 'face 'tty-menu-enabled-face))) (cl-defgeneric tty-menu-layout (pane) (:method ((pane tty-menu-pane)) (with-slots (items layout) pane (cl-loop with left-border =3D (string-width (format tty-menu-left-border-form= at "")) with right-border =3D (string-width (format tty-menu-right-border-fo= rmat "")) for i in items maximize (string-width (tty-menu-button-string i)) into button maximize (string-width (tty-menu-name-string i)) into name maximize (string-width (tty-menu-key-string i)) into key finally (setq layout `(,left-border ,button ,name ,key ,right-border= )))))) (defun tty-menu-try-place-point (selectable old-line) (goto-char (point-min)) (if (nth old-line selectable) (forward-line old-line) (let ((next (cl-loop for i from (1+ old-line) to (1- (length selectable)) when (nth i selectable) return i)) (prev (cl-loop for i downfrom (1- old-line) to 0 when (nth i selectable) return i))) (cond (next (forward-line next)) (prev (forward-line prev)))))) (cl-defgeneric tty-menu-draw (item pane) (:method ((pane tty-menu-pane) line) (with-slots (buffer items) pane (with-current-buffer buffer (let ((old-line (or line (1- (line-number-at-pos))))) (erase-buffer) (tty-menu-layout pane) (let ((selectable (cl-loop for i in items when (tty-menu-visible-p i) do (tty-menu-draw i pane) and collect (tty-menu-selectable-p i)))) (tty-menu-try-place-point selectable old-line)))))) (:method :around ((item tty-menu-item) pane) (let ((start (point))) (insert (format tty-menu-left-border-format "")) (cl-call-next-method) (insert (format tty-menu-right-border-format "")) (tty-menu-draw-finish item pane) (insert ?\n) (put-text-property start (point) 'tty-menu-item item))) (:method ((item tty-menu-item) pane) (tty-menu-draw-button item pane) (tty-menu-draw-name item pane) (tty-menu-draw-key item pane))) (defvar-local tty-menu-selection-ov nil) (defvar-local tty-menu-pane-drawn nil) (cl-defgeneric tty-menu-select-item (item how) (:method ((item tty-menu-item) how) (when-let* ((enabled (tty-menu-enabled-p item))) (throw 'tty-menu-item-selected (cons item how)))) (:method ((_item tty-menu-separator) _)) (:method ((item tty-menu-button) _) (with-slots (binding) item (when (commandp binding) (call-interactively binding)) (tty-menu-draw tty-menu-pane-drawn nil)))) (defun tty-menu-create-buffer (pane) "Create a buffer named BUFFER for DRAW to fill. DRAW is called with no arguments and with current buffer being the buffer created. Value is (BUFFER WIDTH HEIGHT), where BUFFER is the buffer that was used, WIDTH is the maximum line width in the buffer, and HEIGHT is the number of lines in the buffer. " (with-slots (buffer) pane (with-current-buffer buffer (dolist (var '((mode-line-format . nil) (header-line-format . nil) (tab-line-format . nil) (tab-bar-format . nil) (frame-title-format . "") (truncate-lines . t) (cursor-in-non-selected-windows . nil) (cursor-type . nil) (show-trailing-whitespace . nil) (display-line-numbers . nil) (left-fringe-width . nil) (right-fringe-width . nil) (left-margin-width . 0) (right-margin-width . 0) (fringes-outside-margins . 0) (scroll-conservatively . 1))) (set (make-local-variable (car var)) (cdr var))) (let ((inhibit-modification-hooks t) (inhibit-read-only t) (indent-tabs-mode nil)) (setq tty-menu-selection-ov nil tty-menu-pane-drawn pane) (tty-menu-draw pane 0) (cl-flet ((line-width () (save-excursion (goto-char (point-min)) (goto-char (line-end-position)) (current-column)))) (list (current-buffer) (line-width) (count-lines (point-min) (point-max)))))))) (defun tty-menu-make-element (item) (cl-labels ((separator? (name) (string-prefix-p "--" name)) (button? (props) (plist-get props :button)) (radio? (props) (eq (car (button? props)) :radio)) (toggle? (props) (eq (car (button? props)) :toggle))) ;; COND* complains about unknown pattern (PREDICATE symbol) if ;; PREDICATE is a local function. Use (CONSTRAIN symbol (PRODICATE ;; symbol)) instead. (cond* ((match* (cons 'menu-item (cons (constrain name (separator? name)) props)) item) (apply #'make-instance 'tty-menu-separator (cl-list* :name name props= ))) ((match* (list 'menu-item name) item) (make-instance 'tty-menu-item :name name :enable nil)) ((match* (cons 'menu-item (cons name (cons binding (constrain props (radio? props))))) item) (apply #'make-instance 'tty-menu-radio (cl-list* :name name :binding binding props))) ((match* (cons 'menu-item (cons name (cons binding (constrain props (toggle? props))))) item) (apply #'make-instance 'tty-menu-checkbox (cl-list* :name name :binding binding props))) ((match* (cons 'menu-item (cons name (cons binding props))) item) (apply #'make-instance 'tty-menu-item (cl-list* :name name :binding binding props))) ((match* (cons (constrain name (separator? name)) _) item) (make-instance 'tty-menu-separator :name name)) ((match* (cons name (cons help binding)) item) (make-instance 'tty-menu-item :name name :binding binding :help help)) ((match* (cons name binding) item) (make-instance 'tty-menu-item :name name :binding binding)) (t (error "No match for menu item %S" item))))) (defun tty-menu-keymap-name (keymap) (let ((name (last keymap))) (and (stringp (car name)) (car name)))) (defun tty-menu-make-pane-buffer (keymap) (cl-labels ((pane-buffer-name () (if-let* ((name (tty-menu-keymap-name keymap))) (format " *tty-menu-%s*" name) (generate-new-buffer-name " *tty-menu--"))) (make-pane () (make-instance 'tty-menu-pane :buffer (get-buffer-create (pane-buffer-name)) :items (cl-loop for b being the key-bindings of keymap collect (tty-menu-make-element b))))) (tty-menu-create-buffer (make-pane)))) (defvar tty-menu-frame-parameters `((visibility . nil) (background-color . "grey20") (foreground-color . "white") (width . 0) (height . 0) (min-width . t) (min-height . t) (no-accept-focus . t) (no-focus-on-map . t) (border-width . 0) (child-frame-border-width . 1) (left-fringe . 0) (right-fringe . 0) (vertical-scroll-bars . nil) (horizontal-scroll-bars . nil) (tty-menu-bar-lines . 0) (tool-bar-lines . 0) (tab-bar-lines . 0) (no-other-frame . t) (no-other-window . t) (no-delete-other-windows . t) (unsplittable . t) (undecorated . t) (cursor-type . nil) (no-special-glyphs . t) (desktop-dont-save . t))) (defun tty-menu-frame-parameters () (let ((params (copy-sequence tty-menu-frame-parameters)) (fg (face-attribute 'tty-menu-enabled-face :foreground)) (bg (face-attribute 'tty-menu-enabled-face :background))) (when (stringp fg) (setf (alist-get 'foreground-color params) fg)) (when (stringp bg) (setf (alist-get 'background-color params) bg)) params)) (defun tty-menu-make-fully-visible (f1 f2 x y) (let* ((f1-edges (frame-edges f1)) (f1-width (frame-width f1)) (f1-height (frame-height f1)) (f1-x (nth 0 f1-edges)) (f1-y (nth 1 f1-edges)) (f2-width (frame-width f2)) (f2-height (frame-height f2)) (new-x (max f1-x (min (+ f1-x f1-width (- f2-width)) x))) (new-y (max f1-y (min (+ f1-y f1-height (- f2-height)) y)))) ;; Ensure F2 is fully contained within F1 (setq new-x (min new-x (+ f1-x f1-width (- f2-width)))) (setq new-y (min new-y (+ f1-y f1-height (- f2-height)))) ;; Move and resize F2 (set-frame-position f2 new-x new-y) (set-frame-size f2 f2-width f2-height))) (defun tty-menu-frame-absolute-position (frame x y) "Translate (X, Y) in FRAME to absolute coordinates relative to the root f= rame." (let ((current-frame frame) (abs-x x) (abs-y y)) (while (frame-parent current-frame) (let ((edges (frame-edges current-frame))) (setq abs-x (+ abs-x (nth 0 edges))) (setq abs-y (+ abs-y (nth 1 edges))) (setq current-frame (frame-parent current-frame)))) (cons abs-x abs-y))) (defun tty-menu-create-frame (keymap where) (cl-destructuring-bind (buffer width height) (tty-menu-make-pane-buffer keymap) (cl-destructuring-bind (parent-frame x y) where ;; We want to show the menu using a root frame as parent because ;; that doesn't clip the frame. Means that we have to translate ;; coordinates to absolute. (when (frame-parent parent-frame) (cl-destructuring-bind (ax . ay) (tty-menu-frame-absolute-position parent-frame x y) (setq x ax y ay) (setq parent-frame (frame-root-frame parent-frame)))) (setq height (min height (round (/ (frame-height parent-frame) 1.6)))) (let* ((minibuffer (minibuffer-window parent-frame)) (window-min-height 1) (window-min-width 1) (after-make-frame-functions nil) (frame (make-frame `((parent-frame . ,parent-frame) (name . ,(buffer-name buffer)) (minibuffer . ,minibuffer) ,@(tty-menu-frame-parameters)))) (win (frame-root-window frame))) (set-window-buffer win buffer) (set-window-dedicated-p win t) (set-frame-size frame width height) (set-frame-position frame x y) (tty-menu-make-fully-visible parent-frame frame x y) (make-frame-visible frame) (raise-frame frame) (select-frame-set-input-focus frame) frame)))) (defun tty-menu-mouse-select-item (event) (interactive "e") (let* ((end (event-end event)) (win (posn-window end))) (unless (eq (window-frame win) (tty-top-frame)) (throw 'tty-menu-item-selected nil)) (when-let* ((item (get-text-property (posn-point end) 'tty-menu-item))) (tty-menu-select-item item 'mouse)))) (defun tty-menu-key-select-item () (interactive) (when-let* ((item (get-text-property (point) 'tty-menu-item))) (tty-menu-select-item item 'key))) (defun tty-menu-key-select-item-if-subpane () (interactive) (when-let* ((item (get-text-property (point) 'tty-menu-item))) (with-slots (binding) item (when (keymapp binding) (tty-menu-select-item item 'key))))) (defun tty-menu-mouse-moved (event) (interactive "e") (let* ((end (event-end event)) (win (posn-window end))) (when (eq (window-frame win) (tty-top-frame)) (let ((item (get-text-property (posn-point end) 'tty-menu-item))) (when (and item (tty-menu-selectable-p item)) (goto-char (posn-point end))))))) (defun tty-menu-next-line () (interactive) (cl-loop for next =3D (next-single-property-change (point) 'tty-menu-item) then (next-single-property-change next 'tty-menu-item) while next for item =3D (get-text-property next 'tty-menu-item) until (tty-menu-selectable-p item) finally (when next (goto-char next)))) (defun tty-menu-previous-line () (interactive) (cl-loop for prev =3D (previous-single-property-change (point) 'tty-menu-item nil (point-min)) then (previous-single-property-change prev 'tty-menu-item nil (point-min)) while prev for item =3D (get-text-property prev 'tty-menu-item)=20 if (tty-menu-selectable-p item) do (goto-char prev) and return t else if (eq prev (point-min)) return t)) (defun tty-menu-close-pane () (interactive) (throw 'tty-menu-item-selected nil)) (defun tty-menu-isearch (forward) (isearch-mode forward nil nil) (while isearch-mode (let* ((key (read-key-sequence nil nil t nil nil nil))) (when-let* ((cmd (lookup-key isearch-mode-map key))) (if (and (eq cmd #'isearch-printing-char) (stringp key)) (isearch-printing-char (aref key 0)) (call-interactively cmd)))))) (defun tty-menu-isearch-forward () (interactive) (tty-menu-isearch t)) =20=20 (defun tty-menu-isearch-backward () (interactive) (tty-menu-isearch nil)) (defvar-keymap tty-menu-keymap :doc "Keymap for menu interaction." "<up>" #'tty-menu-previous-line "<down>" #'tty-menu-next-line "<left>" #'tty-menu-close-pane "<right>" #'tty-menu-key-select-item-if-subpane "C-b" #'tty-menu-close-pane "C-g" #'keyboard-quit "C-j" #'tty-menu-key-select-item "C-n" #'tty-menu-next-line "C-p" #'tty-menu-previous-line "C-r" #'tty-menu-isearch-backward "C-s" #'tty-menu-isearch-forward "RET" #'tty-menu-key-select-item "SPC" #'tty-menu-key-select-item "<return>" #'tty-menu-key-select-item "<mouse-movement>" #'tty-menu-mouse-moved "<mouse-1>" #'tty-menu-mouse-select-item) (defun tty-menu-show-selected-item () (unless tty-menu-selection-ov (setq tty-menu-selection-ov (make-overlay 1 1)) (overlay-put tty-menu-selection-ov 'face 'tty-menu-selected-face)) (move-overlay tty-menu-selection-ov (line-beginning-position) (line-end-p= osition))) (defun tty-menu-global-menu () (keymap-lookup global-map "<menu-bar>")) (defun tty-menu-position (pos) (interactive) (cond* ((match* 'nil pos) nil) ((match* 't pos) (cl-destructuring-bind (frame x . y) (mouse-position) ;; mouse-position sometimes returns nil for x and y which I ;; think should not happen. (list frame (or x 10) (or y 10)))) ((match* (eventp e) pos) (let* ((end (event-end e)) (win (posn-window end)) (x (car (posn-x-y end))) (y (cdr (posn-x-y end)))) ;; posn-window returns a frame when the event is not on a window, for ;; example, when clicking on a menu bar in a tty frame. (if (windowp win) (cl-destructuring-bind (wx wy _ _) (window-edges win nil t) (list (window-frame win) (+ wx x) (+ wy y))) (let ((menu-bar-lines (frame-parameter win 'menu-bar-lines))) (list win x (+ y menu-bar-lines)))))) ((match* (cons (cons (numberp x) (numberp y)) (cons (windowp win) _)) pos) (cl-destructuring-bind (wx wy _ _) (window-edges win nil t) (list (window-frame win) (+ wx x) (+ wy y)))) ((match* (cons (list (numberp x) (numberp y)) (cons (framep frame) _)) pos) (list frame x y)) ((match* (cons (cons (numberp x) (numberp y)) (cons (framep frame) _)) pos) (list frame x y)) ((match* (cons (numberp x) (numberp y)) pos) (list (selected-frame) x y)) (t (error "%S does not match in tty-menu-position" pos)))) (defun tty-menu-where (how) (cl-ecase how (mouse (tty-menu-position t)) (key (let* ((posn (posn-at-point (line-end-position))) (xy (posn-x-y posn)) (win (posn-window posn))) (tty-menu-position (list xy win)))))) (defun tty-menu-loop (keymap where) (let ((frame (tty-menu-create-frame keymap where))) (unwind-protect ;; Inner loop handling mouse movement over the pane, ;; moving with the keyboard on the pane. The loop is ;; left by a throw when a menu-item is selected. (cl-loop named outer-loop while t for res =3D (catch 'tty-menu-item-selected (while t (tty-menu-show-selected-item) (let* ((track-mouse t) (key (read-key-sequence nil)) (cmd (lookup-key tty-menu-keymap key))) (when (commandp cmd) (call-interactively cmd))))) do ;; If the selected item was for a sub-pane, call ourselves ;; recursively with the sub-pane. (cond* ((match* (cons selected how) res) (with-slots (binding) selected (if (keymapp binding) (tty-menu-loop binding (tty-menu-where how)) ;; Return a list because x-popup-menu does. (cl-return-from outer-loop (list binding))))) ((match* 'nil res) (cl-return-from outer-loop nil)))) (when frame (delete-frame frame))))) (defun frame-with-name (name) (cl-flet ((frame-name (frame) (frame-parameter frame 'name))) (cl-find-if (lambda (f) (equal (frame-name f) name)) (frame-list)))) (defun tty-menu-delete-menu-frames () (cl-flet ((frame-name (frame) (frame-parameter frame 'name))) (cl-loop for frame in (frame-list) when (string-prefix-p " *tty-menu-" (frame-name frame)) do (delete-frame frame)))) =20=20 (cl-defun tty-menu-popup-menu (position menu) (when-let* ((where (tty-menu-position position))) (cond ((keymapp menu) (tty-menu-loop menu where)) ((consp menu) (cl-loop with outer =3D (make-sparse-keymap "outer") for keymap in menu for name =3D (tty-menu-keymap-name keymap "?") do (define-key outer (vector (intern name)) keymap) finally (tty-menu-loop outer where))) (t (error "Not a menu: %S" menu))))) ;;;###autoload (define-minor-mode tty-menu-mode "Global minor mode for displaying menus with tty child frames." :global t :group 'menu (unless (display-graphic-p) (if tty-menu-mode (add-function :override (symbol-function 'x-popup-menu) #'tty-menu-popup-menu) (remove-function (symbol-function 'x-popup-menu) #'tty-menu-popup-menu)))) (provide 'tty-menu) ;;; Local Variables: ;;; fill-column: 80 ;;; End: --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 9 Feb 2025 16:21:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 09 11:21:34 2025 Received: from localhost ([127.0.0.1]:45942 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1thA3q-0005PP-5w for submit <at> debbugs.gnu.org; Sun, 09 Feb 2025 11:21:34 -0500 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]:55495) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1thA3n-0005P8-4f for 75056 <at> debbugs.gnu.org; Sun, 09 Feb 2025 11:21:31 -0500 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-5de64873d18so1572384a12.2 for <75056 <at> debbugs.gnu.org>; Sun, 09 Feb 2025 08:21:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739118084; x=1739722884; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=QNfxZlRywYwyBsmLmxf2rTkbUI3Ee0311Sh2JwIsLj0=; b=LG7WBSR4gCMYespanEORH2IQzSUsUY6zzjFyjYEtMMExuzpK/Tmf+8tqCd9FPOejhV RiEJWaq2/DB2AqOO2U2UyHbJSczoeDrS66QUSiiyPupkFjJn5MFSAGAmykKQhqbiR6tn UwYOJozIkLQyfSNNysvsHYhepocOxtzn4OaljFPcsBilDDKKMmhGUyu2V07631AcfNiZ QMrtxlGSxc1IpQbi5d/hmpEqkYNcyo1sZVMT4ZFb9T/YHvGqsEtIPtXJHK8Z/8zObgj9 vrZ5zHZgM9e8sdHy8fzDFYV+OBCL5mMdqYWGEIrK4andfzK800bmO0bQxEnT3qQLyBEa 1O2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739118084; x=1739722884; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=QNfxZlRywYwyBsmLmxf2rTkbUI3Ee0311Sh2JwIsLj0=; b=WzMGHXygU8Q/3rt+DDpU5XQs9UtaFjNds2WmArx2fjs3CGF0PVzVbhtyUprJBmDM+W NE+8kgLi3afitceKrG2mCuOkO/2b4GvQCkR7t2c3xxtbhn9aDZUscDmfQWr2cnoTJ/IW PP4S203h5dvuwv/oKw1yDl3tCUYeebrXpz9IMXRhSFHpN2g5f9TTq7c5nTdVPWFfbM01 7GSa66oeDXEJTEODoq5zxK2d+drdp9R4yGNidRNr6Lb2J6G0tLolyl1xB7CZLTxr/KoZ TqwCmXTTU95TdsAx0oZ4XeZcWikyFJcVIQRPqfjtxgQt8qFOFxSPaRGHSTtJFZwalJDk Oh6w== X-Forwarded-Encrypted: i=1; AJvYcCX4qmP2IH0wZX/mS6ChMcD2XdqfIxCrl7XOqn6Zuald1KfelLGUtLWQOmqzkxsXD7e1+M4odg==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yzf3PK7c1dCKS9VYXj5XggKwXhAyzIzLsMe2VHiLV+SxifVD5lx LsPiFbRZ718+PKvQL64nK3InFaqbqrnb+tA1Jg7/oxlGA5OdmcjKq/X0MA== X-Gm-Gg: ASbGncvjXElgp92Cml2rqkv/viutvgbHXI1TN4ET7/6A8l3bIDPU4C0ySb22OcTFIjB bFeUtHp3fU1kbPu2oE2ouRFh/TX8lPMOgYvq+ZG9HOv+1X4uH5YXfffNKaDVAomzj3NItYOSkTO SG69LCJu+OeTr5AXsQPPNS/0Trw/5AzQKAmFr0ibXtxqXTzGS27nrNCaf4syl7F2qSA22T8gaXk JqejcW16HhnfJ883tNoz6xgElLJ5QMTPu0TetRH+dg/JhIrLjN0K4nfbOJuQQnegoIX4BEdafbo 1+AyJpoy5GpKGVOQVP0CQhc5kKdbOvMYEPGmvdZdfaVXf+QO5B9vpqwN4hdQlji7ILsc4Sd14X7 GXM+Qi77IjmADdBGLPD5Sploa X-Google-Smtp-Source: AGHT+IH+GhYOEWXKME6Dqp2zCDc9uQKmTYvf2tKepnOlYjuWWvgJTvsJUS3QBsFVhByd5xrebjBnBw== X-Received: by 2002:a05:6402:42c8:b0:5dc:1f35:56a with SMTP id 4fb4d7f45d1cf-5de44feb976mr12606122a12.5.1739118084228; Sun, 09 Feb 2025 08:21:24 -0800 (PST) Received: from pro2 (p200300e0b725cf0094296d0536d9d0d3.dip0.t-ipconnect.de. [2003:e0:b725:cf00:9429:6d05:36d9:d0d3]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5de3ca503a2sm5616923a12.72.2025.02.09.08.21.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Feb 2025 08:21:23 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <31bd2acb-9523-4def-80c1-235807c4abc9@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> <m2seozjo3c.fsf@HIDDEN> <m2msf6ezfq.fsf@HIDDEN> <m2jz9zmlfg.fsf@HIDDEN> <m2frknml43.fsf@HIDDEN> <e4670861-a251-4250-b988-73b428a1b7e0@HIDDEN> <m234gnmjvi.fsf@HIDDEN> <31bd2acb-9523-4def-80c1-235807c4abc9@HIDDEN> Date: Sun, 09 Feb 2025 17:21:22 +0100 Message-ID: <m2y0yfks1p.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> Sachen gibt's :-/. > > Clicking with the mouse on an arbitrary menubar item gets me Yeah, I didn't do the integration with the rest of Emacs yet. Looks like another dark and ancient corner of Emacs. Insofar, please disregard tty-menu-mode at the moment. But the rest is kind of funny, help-echo, C-s in menus :-). Wie auch immer.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 9 Feb 2025 15:47:37 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 09 10:47:37 2025 Received: from localhost ([127.0.0.1]:45854 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1th9Wy-0003l9-EW for submit <at> debbugs.gnu.org; Sun, 09 Feb 2025 10:47:37 -0500 Received: from mout.gmx.net ([212.227.15.19]:39187) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1th9Wv-0003kr-89 for 75056 <at> debbugs.gnu.org; Sun, 09 Feb 2025 10:47:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1739116039; x=1739720839; i=rudalics@HIDDEN; bh=Iyqm+Ot7C9LzX1Ddx+KMImnoyAaBD2WP4Mp9vpb+0T4=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=W8KF8HPXKt3WgB43Blgc0wXUaFPRy7GkVI5AlQp2tryAsu+GNsqW5hmokJX0P2BB xfSk/WW4UexpzDvC05FdSISvnpEid2qOsPEgxjJi2ZBOfidf4IEAD74IYr+eUoO/u 3OYCfT7Mm4J/NeYiRGHMVTUfzBV+Cg/h6CRvihSyya3zHpBzq8H1MYNYx7ampYau5 LF9mzSVRPJsryTW5SzgGVYmKlZFyTS3dvdJ1lOAuEgy23bq9HNOP/zpfGFGqcPU8Q WucnIbxVYvhGtpjoQmW2MyDoQuGNes2uNCKaeLQliBsCxeiWW3pAzzRDaZCpINPgi bgLspCtGdM01i2PhPQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.97.220]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MMobO-1tzmL52Qj6-00MQ72; Sun, 09 Feb 2025 16:47:19 +0100 Message-ID: <31bd2acb-9523-4def-80c1-235807c4abc9@HIDDEN> Date: Sun, 9 Feb 2025 16:47:17 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> <m2seozjo3c.fsf@HIDDEN> <m2msf6ezfq.fsf@HIDDEN> <m2jz9zmlfg.fsf@HIDDEN> <m2frknml43.fsf@HIDDEN> <e4670861-a251-4250-b988-73b428a1b7e0@HIDDEN> <m234gnmjvi.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m234gnmjvi.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:iHUtu6TWF3O301kbCvlvI1MHqzD0CcJ7Z4aInAnI09DivsV52Sf Ivirn5rfywRvAev+zC/B6e66XmehGp080lySRSpI1bJ5wm1nH3EzfqwyY0ei7B7kuzholf0 SHSgDMzdndNQrOsl5MsjZxR4B9hE075CIPWzaBpb7XKvjAtpz4dxpKlCYvFOCmxPG2JOorR RxHkyOkQseBOcZXzIAP2w== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:c5QDSH6yr4g=;CZU1RZz9nNzCcK0fkljsNh4JRR3 ru0IcNywMF/5A9eXPdrvnk/I2Bx7JxBWuY6rdtNSydpAi4h8VAOyPfg0su78t5ypNnEKoF7IT GaKYHVWpZyw4irEMlPP9wK1Fa3WfcbxaB5kJ4+h+QPl7NF1Cw50maFTeOK+hhvXTIvNAf0xB/ kAJHNy3iHj6qVUnI5l4UhUaPi2QQSZw1im6w/SiNEbF/lLhE0j+++BhUPLZc8BDjgrj6f1t44 RDj2oIqmWOQ79RUY0h0nsoe/AU/s6zmssxi62NZ+1cdMKpfvatIiTLZ+6QbnyBTqysZJdNddX h8VvJIsSvEcWOE0ekLxOOW5zN1wAEszyFKTljMLhPvRjpbAnO5v/Vp7qmuFnxQGq3dWZb9Gqd LAN1jkdAEevo59uj0ywygB5fZ/NqZINHlDGpfuYpG8yPZMJlRTaouhLOvvW+3hXcEAcG622d+ +/g6qXetayVT5mqmSzjZA5u/Gbm9Jumox+or2HzLKN3ETjp52gqCY+YTICNBjLF271r6Du1vf 0gwIQccUQT2H+5KM+n2uiHMxy9ld2CEOmRLuzOZn+rCJh9/yVvByKSXqswE972GgUdTNc84hA cH2YZQpzgrYDzs7CGoDfl4R2o2AYQYenHWegCy9Ue0RpbJ0euvrZdwurJjY9/e/aKeJn1o3Dh tNKCSLFHY1m2yW+gK00P9uNFs1C92X7nw+ziLDJ+PLu5PUo9nZmng0wDgA/MC02j9YyaamxOc 4Oc/qDg36pBPxo0bOGw32rknc66S/2Dfki+xGAEAD3uwcw1Wt1qC+KDgPCqhefevD61y6GBAk WJPcv3cdt/cMxZIPEKDW/gkQK4c/Z3I3KEx7qw2a2HBukQoDvA3a0Jrhp4dPzzOLvmFncgO+U rRk/OmhOpXaKkN4RTzQ86K+YRe+/b5NoygfYaboJEjOQQY6ztxVZiYjun/ZCy6cjCt0rAvhVK GZkPoSV44N7Lgtd+urC638EtS581YGeER9DsBD1eohVC6QCNoNbg656vEVA3Yr0t6YdpuGb5w Qt+kAOlmN4bEZIJj9EgzW4NuX+/NEWMlQ5mmVPU0y8cbSrRZbKzn9GFKID7Tcy/zdz7MfQtg+ 3tJuqgPOcKWLGJZvGlR/x2gAMZpPfnkMic1NrfHFuzFDDPiIIBAdTmwCVCSWII8KL54JEAWIe lmkmD+lojM9GFp4SAl7ACDRxIk5oHlE3tvMKzSPhQxIJqV/kPTgueGEK7O0aImPWNqIINpjPI /5rwqyJ4XN5DwldLQWPPi7mvfAz/8bjP2O2trcRGFCFyiQPfS1TBdOxFvoZV06H1QlbCD8VWk WGI8frF3Q66MNYjZto304eVQwd+1jNWqpsaygJMzmwQQPdEwzlZDL/2ksr5tpeB6XvcdcoykR GIPucwKOMVa7jfje1IKEYL9lQGFb6eK0zEe8WShr6LUZPbIyFBiygRZpREhWcWfR0yITPm+dn X3ZBbhw== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) ID4gU2FjaGVuIGdpYnQncyA6LS8uDQoNCkNsaWNraW5nIHdpdGggdGhlIG1vdXNlIG9uIGFu IGFyYml0cmFyeSBtZW51YmFyIGl0ZW0gZ2V0cyBtZQ0KDQoNCkRlYnVnZ2VyIGVudGVyZWQt LUxpc3AgZXJyb3I6IChlcnJvciAiIzxmcmFtZSBGMSAweDEzOTA2ZDQwPiBpcyBub3QgYSB2 YWxpZCB3aW5kb3ciKQ0KICAgc2lnbmFsKGVycm9yICgiIzxmcmFtZSBGMSAweDEzOTA2ZDQw PiBpcyBub3QgYSB2YWxpZCB3aW5kb3ciKSkNCiAgIGVycm9yKCIlcyBpcyBub3QgYSB2YWxp ZCB3aW5kb3ciICM8ZnJhbWUgRjEgMHgxMzkwNmQ0MD4pDQogICB3aW5kb3ctbm9ybWFsaXpl LXdpbmRvdygjPGZyYW1lIEYxIDB4MTM5MDZkNDA+IG5pbCkNCiAgIHdpbmRvdy1lZGdlcygj PGZyYW1lIEYxIDB4MTM5MDZkNDA+IG5pbCB0KQ0KICAgKGxldCogKCgtLWNsLXJlc3QtLSAo d2luZG93LWVkZ2VzIHdpbiBuaWwgdCkpICh3eCAoaWYgKD0gKGxlbmd0aCAtLWNsLXJlc3Qt LSkgNCkgKGNhci1zYWZlIChwcm9nMSAtLWNsLXJlc3QtLSAoc2V0cSAtLWNsLXJlc3QtLSAo Y2RyIC0tY2wtcmVzdC0tKSkpKSAoc2lnbmFsICd3cm9uZy1udW1iZXItb2YtYXJndW1lbnRz IChsaXN0ICcod3ggd3kgXyBfKSAobGVuZ3RoIC0tY2wtcmVzdC0tKSkpKSkgKHd5IChjYXIt c2FmZSAocHJvZzEgLS1jbC1yZXN0LS0gKHNldHEgLS1jbC1yZXN0LS0gKGNkciAtLWNsLXJl c3QtLSkpKSkpIChfIChjYXItc2FmZSAocHJvZzEgLS1jbC1yZXN0LS0gKHNldHEgLS1jbC1y ZXN0LS0gKGNkciAtLWNsLXJlc3QtLSkpKSkpIChfIChjYXItc2FmZSAtLWNsLXJlc3QtLSkp KSAobGlzdCAod2luZG93LWZyYW1lIHdpbikgKCsgd3ggeCkgKCsgd3kgeSkpKQ0KICAgKGxl dCogKChlbmQgKGV2ZW50LWVuZCBlKSkgKHdpbiAocG9zbi13aW5kb3cgZW5kKSkgKHggKGNh ciAocG9zbi14LXkgZW5kKSkpICh5IChjZHIgKHBvc24teC15IGVuZCkpKSkgKGxldCogKCgt LWNsLXJlc3QtLSAod2luZG93LWVkZ2VzIHdpbiBuaWwgdCkpICh3eCAoaWYgKD0gKGxlbmd0 aCAtLWNsLXJlc3QtLSkgNCkgKGNhci1zYWZlIChwcm9nMSAtLWNsLXJlc3QtLSAoc2V0cSAt LWNsLXJlc3QtLSAuLi4pKSkgKHNpZ25hbCAnd3JvbmctbnVtYmVyLW9mLWFyZ3VtZW50cyAo bGlzdCAnLi4uIChsZW5ndGggLS1jbC1yZXN0LS0pKSkpKSAod3kgKGNhci1zYWZlIChwcm9n MSAtLWNsLXJlc3QtLSAoc2V0cSAtLWNsLXJlc3QtLSAoY2RyIC0tY2wtcmVzdC0tKSkpKSkg KF8gKGNhci1zYWZlIChwcm9nMSAtLWNsLXJlc3QtLSAoc2V0cSAtLWNsLXJlc3QtLSAoY2Ry IC0tY2wtcmVzdC0tKSkpKSkgKF8gKGNhci1zYWZlIC0tY2wtcmVzdC0tKSkpIChsaXN0ICh3 aW5kb3ctZnJhbWUgd2luKSAoKyB3eCB4KSAoKyB3eSB5KSkpKQ0KICAgKGxldCogKChlIGQx MikpIChsZXQqICgoZW5kIChldmVudC1lbmQgZSkpICh3aW4gKHBvc24td2luZG93IGVuZCkp ICh4IChjYXIgKHBvc24teC15IGVuZCkpKSAoeSAoY2RyIChwb3NuLXgteSBlbmQpKSkpIChs ZXQqICgoLS1jbC1yZXN0LS0gKHdpbmRvdy1lZGdlcyB3aW4gbmlsIHQpKSAod3ggKGlmICg9 IChsZW5ndGggLS1jbC1yZXN0LS0pIDQpIChjYXItc2FmZSAocHJvZzEgLS1jbC1yZXN0LS0g Li4uKSkgKHNpZ25hbCAnd3JvbmctbnVtYmVyLW9mLWFyZ3VtZW50cyAobGlzdCAuLi4gLi4u KSkpKSAod3kgKGNhci1zYWZlIChwcm9nMSAtLWNsLXJlc3QtLSAoc2V0cSAtLWNsLXJlc3Qt LSAuLi4pKSkpIChfIChjYXItc2FmZSAocHJvZzEgLS1jbC1yZXN0LS0gKHNldHEgLS1jbC1y ZXN0LS0gLi4uKSkpKSAoXyAoY2FyLXNhZmUgLS1jbC1yZXN0LS0pKSkgKGxpc3QgKHdpbmRv dy1mcmFtZSB3aW4pICgrIHd4IHgpICgrIHd5IHkpKSkpKQ0KICAgKGlmIChldmVudHAgZDEy KSAobGV0KiAoKGUgZDEyKSkgKGxldCogKChlbmQgKGV2ZW50LWVuZCBlKSkgKHdpbiAocG9z bi13aW5kb3cgZW5kKSkgKHggKGNhciAocG9zbi14LXkgZW5kKSkpICh5IChjZHIgKHBvc24t eC15IGVuZCkpKSkgKGxldCogKCgtLWNsLXJlc3QtLSAod2luZG93LWVkZ2VzIHdpbiBuaWwg dCkpICh3eCAoaWYgKD0gLi4uIDQpIChjYXItc2FmZSAuLi4pIChzaWduYWwgLi4uIC4uLikp KSAod3kgKGNhci1zYWZlIChwcm9nMSAtLWNsLXJlc3QtLSAuLi4pKSkgKF8gKGNhci1zYWZl IChwcm9nMSAtLWNsLXJlc3QtLSAuLi4pKSkgKF8gKGNhci1zYWZlIC0tY2wtcmVzdC0tKSkp IChsaXN0ICh3aW5kb3ctZnJhbWUgd2luKSAoKyB3eCB4KSAoKyB3eSB5KSkpKSkgKGxldCAo KGQxMSBwb3MpKSAoaWYgKGFuZCAoY29uc3AgZDExKSAoYW5kIChjb25zcCAoY2FyIGQxMSkp IChudW1iZXJwIChjYXIgKGNhciBkMTEpKSkgKG51bWJlcnAgKGNkciAoY2FyIGQxMSkpKSkg KGFuZCAoY29uc3AgKGNkciBkMTEpKSAod2luZG93cCAoY2FyIChjZHIgZDExKSkpKSkgKGxl dCogKCh3aW4gKGNhciAoY2RyIGQxMSkpKSAoeSAoY2RyIChjYXIgZDExKSkpICh4IChjYXIg KGNhciBkMTEpKSkpIChsZXQqICgoLS1jbC1yZXN0LS0gKHdpbmRvdy1lZGdlcyB3aW4gbmls IHQpKSAod3ggKGlmIC4uLiAuLi4gLi4uKSkgKHd5IChjYXItc2FmZSAuLi4pKSAoXyAoY2Fy LXNhZmUgLi4uKSkgKF8gKGNhci1zYWZlIC0tY2wtcmVzdC0tKSkpIChsaXN0ICh3aW5kb3ct ZnJhbWUgd2luKSAoKyB3eCB4KSAoKyB3eSB5KSkpKSAobGV0ICgoZDEwIHBvcykpIChpZiAo YW5kIChjb25zcCBkMTApIChhbmQgKGNvbnNwIC4uLikgKG51bWJlcnAgLi4uKSAoY29uc3Ag Li4uKSAobnVtYmVycCAuLi4pIChudWxsIC4uLikpIChhbmQgKGNvbnNwIC4uLikgKGZyYW1l cCAuLi4pKSkgKGxldCogKChmcmFtZSAuLi4pICh5IC4uLikgKHggLi4uKSkgKGxpc3QgZnJh bWUgeCB5KSkgKGxldCAoKGQ5IHBvcykpIChpZiAoYW5kIC4uLiAuLi4gLi4uKSAobGV0KiAu Li4gLi4uKSAobGV0IC4uLiAuLi4pKSkpKSkpKQ0KICAgKGxldCAoKGQxMiBwb3MpKSAoaWYg KGV2ZW50cCBkMTIpIChsZXQqICgoZSBkMTIpKSAobGV0KiAoKGVuZCAoZXZlbnQtZW5kIGUp KSAod2luIChwb3NuLXdpbmRvdyBlbmQpKSAoeCAoY2FyIChwb3NuLXgteSBlbmQpKSkgKHkg KGNkciAocG9zbi14LXkgZW5kKSkpKSAobGV0KiAoKC0tY2wtcmVzdC0tICh3aW5kb3ctZWRn ZXMgd2luIG5pbCB0KSkgKHd4IChpZiAuLi4gLi4uIC4uLikpICh3eSAoY2FyLXNhZmUgLi4u KSkgKF8gKGNhci1zYWZlIC4uLikpIChfIChjYXItc2FmZSAtLWNsLXJlc3QtLSkpKSAobGlz dCAod2luZG93LWZyYW1lIHdpbikgKCsgd3ggeCkgKCsgd3kgeSkpKSkpIChsZXQgKChkMTEg cG9zKSkgKGlmIChhbmQgKGNvbnNwIGQxMSkgKGFuZCAoY29uc3AgKGNhciBkMTEpKSAobnVt YmVycCAoY2FyIC4uLikpIChudW1iZXJwIChjZHIgLi4uKSkpIChhbmQgKGNvbnNwIChjZHIg ZDExKSkgKHdpbmRvd3AgKGNhciAuLi4pKSkpIChsZXQqICgod2luIChjYXIgLi4uKSkgKHkg KGNkciAuLi4pKSAoeCAoY2FyIC4uLikpKSAobGV0KiAoKC0tY2wtcmVzdC0tIC4uLikgKHd4 IC4uLikgKHd5IC4uLikgKF8gLi4uKSAoXyAuLi4pKSAobGlzdCAod2luZG93LWZyYW1lIHdp bikgKCsgd3ggeCkgKCsgd3kgeSkpKSkgKGxldCAoKGQxMCBwb3MpKSAoaWYgKGFuZCAoY29u c3AgZDEwKSAoYW5kIC4uLiAuLi4gLi4uIC4uLiAuLi4pIChhbmQgLi4uIC4uLikpIChsZXQq ICguLi4gLi4uIC4uLikgKGxpc3QgZnJhbWUgeCB5KSkgKGxldCAoLi4uKSAoaWYgLi4uIC4u LiAuLi4pKSkpKSkpKQ0KICAgKGlmIChlcSAndCBkMTMpIChwcm9nbiAobGV0KiAoKHkgKG1v dXNlLXBvc2l0aW9uKSkgKGZyYW1lIChpZiAoY2RyIHkpIChjYXItc2FmZSAocHJvZzEgeSAu Li4pKSAoc2lnbmFsICd3cm9uZy1udW1iZXItb2YtYXJndW1lbnRzIChsaXN0IC4uLiAuLi4p KSkpICh4IChjYXItc2FmZSAocHJvZzEgeSAoc2V0cSB5IC4uLikpKSkpIChsaXN0IGZyYW1l IChvciB4IDEwKSAob3IgeSAxMCkpKSkgKGxldCAoKGQxMiBwb3MpKSAoaWYgKGV2ZW50cCBk MTIpIChsZXQqICgoZSBkMTIpKSAobGV0KiAoKGVuZCAoZXZlbnQtZW5kIGUpKSAod2luIChw b3NuLXdpbmRvdyBlbmQpKSAoeCAoY2FyIC4uLikpICh5IChjZHIgLi4uKSkpIChsZXQqICgo LS1jbC1yZXN0LS0gLi4uKSAod3ggLi4uKSAod3kgLi4uKSAoXyAuLi4pIChfIC4uLikpIChs aXN0ICh3aW5kb3ctZnJhbWUgd2luKSAoKyB3eCB4KSAoKyB3eSB5KSkpKSkgKGxldCAoKGQx MSBwb3MpKSAoaWYgKGFuZCAoY29uc3AgZDExKSAoYW5kIChjb25zcCAuLi4pIChudW1iZXJw IC4uLikgKG51bWJlcnAgLi4uKSkgKGFuZCAoY29uc3AgLi4uKSAod2luZG93cCAuLi4pKSkg KGxldCogKCh3aW4gLi4uKSAoeSAuLi4pICh4IC4uLikpIChsZXQqICguLi4gLi4uIC4uLiAu Li4gLi4uKSAobGlzdCAuLi4gLi4uIC4uLikpKSAobGV0ICgoZDEwIHBvcykpIChpZiAoYW5k IC4uLiAuLi4gLi4uKSAobGV0KiAuLi4gLi4uKSAobGV0IC4uLiAuLi4pKSkpKSkpKQ0KICAg KGxldCAoKGQxMyBwb3MpKSAoaWYgKGVxICd0IGQxMykgKHByb2duIChsZXQqICgoeSAobW91 c2UtcG9zaXRpb24pKSAoZnJhbWUgKGlmIChjZHIgeSkgKGNhci1zYWZlIC4uLikgKHNpZ25h bCAuLi4gLi4uKSkpICh4IChjYXItc2FmZSAocHJvZzEgeSAuLi4pKSkpIChsaXN0IGZyYW1l IChvciB4IDEwKSAob3IgeSAxMCkpKSkgKGxldCAoKGQxMiBwb3MpKSAoaWYgKGV2ZW50cCBk MTIpIChsZXQqICgoZSBkMTIpKSAobGV0KiAoKGVuZCAuLi4pICh3aW4gLi4uKSAoeCAuLi4p ICh5IC4uLikpIChsZXQqICguLi4gLi4uIC4uLiAuLi4gLi4uKSAobGlzdCAuLi4gLi4uIC4u LikpKSkgKGxldCAoKGQxMSBwb3MpKSAoaWYgKGFuZCAoY29uc3AgZDExKSAoYW5kIC4uLiAu Li4gLi4uKSAoYW5kIC4uLiAuLi4pKSAobGV0KiAoLi4uIC4uLiAuLi4pIChsZXQqIC4uLiAu Li4pKSAobGV0ICguLi4pIChpZiAuLi4gLi4uIC4uLikpKSkpKSkpDQogICAoaWYgKGVxICdu aWwgZDE0KSAocHJvZ24gbmlsKSAobGV0ICgoZDEzIHBvcykpIChpZiAoZXEgJ3QgZDEzKSAo cHJvZ24gKGxldCogKCh5IChtb3VzZS1wb3NpdGlvbikpIChmcmFtZSAoaWYgLi4uIC4uLiAu Li4pKSAoeCAoY2FyLXNhZmUgLi4uKSkpIChsaXN0IGZyYW1lIChvciB4IDEwKSAob3IgeSAx MCkpKSkgKGxldCAoKGQxMiBwb3MpKSAoaWYgKGV2ZW50cCBkMTIpIChsZXQqICgoZSBkMTIp KSAobGV0KiAoLi4uIC4uLiAuLi4gLi4uKSAobGV0KiAuLi4gLi4uKSkpIChsZXQgKChkMTEg cG9zKSkgKGlmIChhbmQgLi4uIC4uLiAuLi4pIChsZXQqIC4uLiAuLi4pIChsZXQgLi4uIC4u LikpKSkpKSkpDQogICAobGV0ICgoZDE0IHBvcykpIChpZiAoZXEgJ25pbCBkMTQpIChwcm9n biBuaWwpIChsZXQgKChkMTMgcG9zKSkgKGlmIChlcSAndCBkMTMpIChwcm9nbiAobGV0KiAo KHkgLi4uKSAoZnJhbWUgLi4uKSAoeCAuLi4pKSAobGlzdCBmcmFtZSAob3IgeCAxMCkgKG9y IHkgMTApKSkpIChsZXQgKChkMTIgcG9zKSkgKGlmIChldmVudHAgZDEyKSAobGV0KiAoLi4u KSAobGV0KiAuLi4gLi4uKSkgKGxldCAoLi4uKSAoaWYgLi4uIC4uLiAuLi4pKSkpKSkpKQ0K ICAgdHR5LW1lbnUtcG9zaXRpb24oKGJ1ZmZlciAoIzxmcmFtZSBGMSAweDEzOTA2ZDQwPiAo bWVudS1iYXIpICgxOCAuIDApIDApKSkNCiAgIChhbmQgdCAodHR5LW1lbnUtcG9zaXRpb24g cG9zaXRpb24pKQ0KICAgKGxldCogKCh3aGVyZSAoYW5kIHQgKHR0eS1tZW51LXBvc2l0aW9u IHBvc2l0aW9uKSkpKSAoaWYgd2hlcmUgKGNvbmQgKChrZXltYXBwIG1lbnUpICh0dHktbWVu dS1sb29wIG1lbnUgd2hlcmUpKSAoKGNvbnNwIG1lbnUpIChsZXQqICgob3V0ZXIgKG1ha2Ut c3BhcnNlLWtleW1hcCAib3V0ZXIiKSkgKC0tY2wtdmFyLS0gbWVudSkgKGtleW1hcCBuaWwp IChuYW1lIG5pbCkgKC0tY2wtdmFyLS0gdCkpICh3aGlsZSAoY29uc3AgLS1jbC12YXItLSkg KHNldHEga2V5bWFwIChjYXIgLS1jbC12YXItLSkpIChzZXRxIG5hbWUgKHR0eS1tZW51LWtl eW1hcC1uYW1lIGtleW1hcCAiPyIpKSAoZGVmaW5lLWtleSBvdXRlciAodmVjdG9yIC4uLikg a2V5bWFwKSAoc2V0cSAtLWNsLXZhci0tIChjZHIgLS1jbC12YXItLSkpIChzZXRxIC0tY2wt dmFyLS0gbmlsKSkgKHR0eS1tZW51LWxvb3Agb3V0ZXIgd2hlcmUpIG5pbCkpICh0IChlcnJv ciAiTm90IGEgbWVudTogJVMiIG1lbnUpKSkpKQ0KICAgdHR5LW1lbnUtcG9wdXAtbWVudSgo YnVmZmVyICgjPGZyYW1lIEYxIDB4MTM5MDZkNDA+IChtZW51LWJhcikgKDE4IC4gMCkgMCkp IChrZXltYXAgIkJ1ZmZlcnMiIFsoIipzY3JhdGNoKiAgIiAuICNmKGNvbXBpbGVkLWZ1bmN0 aW9uICgpIChpbnRlcmFjdGl2ZSBuaWwpICM8Ynl0ZWNvZGUgLTB4MTY2MjNiZDEwMWZlMzU4 MD4pKSAoIipNZXNzYWdlcyogIColIiAuICNmKGNvbXBpbGVkLWZ1bmN0aW9uICgpIChpbnRl cmFjdGl2ZSBuaWwpICM8Ynl0ZWNvZGUgLTB4MTY2MjNiZDU0ZjM5MzU4MD4pKV0gKGNvbW1h bmQtc2VwYXJhdG9yICItLSIpIChuZXh0LWJ1ZmZlciBtZW51LWl0ZW0gIk5leHQgQnVmZmVy IiBuZXh0LWJ1ZmZlciA6aGVscCAiU3dpdGNoIHRvIHRoZSBcIm5leHRcIiBidWZmZXIgaW4g YSBjeWNsaWMgb3JkZXIiKSAocHJldmlvdXMtYnVmZmVyIG1lbnUtaXRlbSAiUHJldmlvdXMg QnVmZmVyIiBwcmV2aW91cy1idWZmZXIgOmhlbHAgIlN3aXRjaCB0byB0aGUgXCJwcmV2aW91 c1wiIGJ1ZmZlciBpbiBhIGN5Y2xpYyBvcmRlciIpIChzZWxlY3QtbmFtZWQtYnVmZmVyIG1l bnUtaXRlbSAiU2VsZWN0IE5hbWVkIEJ1ZmZlci4uLiIgc3dpdGNoLXRvLWJ1ZmZlciA6aGVs cCAiUHJvbXB0IGZvciBhIGJ1ZmZlciBuYW1lLCBhbmQgc2VsZWN0IHRoYXQgYnVmZmVyIGlu IHRoZSBjdXJyZW50IHdpbmRvdyIpIChsaXN0LWFsbC1idWZmZXJzIG1lbnUtaXRlbSAiTGlz dCBBbGwgQnVmZmVycyIgbGlzdC1idWZmZXJzIDpoZWxwICJQb3AgdXAgYSB3aW5kb3cgbGlz dGluZyBhbGwgRW1hY3MgYnVmZmVycyIpIChzZWxlY3QtYnVmZmVyLWluLXByb2plY3QgbWVu dS1pdGVtICJTZWxlY3QgQnVmZmVyIEluIFByb2plY3QuLi4iIHByb2plY3Qtc3dpdGNoLXRv LWJ1ZmZlciA6aGVscCAiUHJvbXB0IGZvciBhIGJ1ZmZlciBiZWxvbmdpbmcgdG8gY3VycmVu dCBwcm9qZWN0LCBhbmQgc3dpdGNoIHRvIGl0IikgKGxpc3QtYnVmZmVycy1pbi1wcm9qZWN0 IG1lbnUtaXRlbSAiTGlzdCBCdWZmZXJzIEluIFByb2plY3QuLi4iIHByb2plY3QtbGlzdC1i dWZmZXJzIDpoZWxwICJQb3AgdXAgYSB3aW5kb3cgbGlzdGluZyBhbGwgRW1hY3MgYnVmZmVy cyBiZWxvbmdpbmcgdG8gY3VycmVudCBwcm9qZWN0IikpKQ0KICAgYXBwbHkodHR5LW1lbnUt cG9wdXAtbWVudSAoKGJ1ZmZlciAoIzxmcmFtZSBGMSAweDEzOTA2ZDQwPiAobWVudS1iYXIp ICgxOCAuIDApIDApKSAoa2V5bWFwICJCdWZmZXJzIiBbKCIqc2NyYXRjaCogICIgLiAjZihj b21waWxlZC1mdW5jdGlvbiAoKSAoaW50ZXJhY3RpdmUgbmlsKSAjPGJ5dGVjb2RlIC0weDE2 NjIzYmQxMDFmZTM1ODA+KSkgKCIqTWVzc2FnZXMqICAqJSIgLiAjZihjb21waWxlZC1mdW5j dGlvbiAoKSAoaW50ZXJhY3RpdmUgbmlsKSAjPGJ5dGVjb2RlIC0weDE2NjIzYmQ1NGYzOTM1 ODA+KSldIChjb21tYW5kLXNlcGFyYXRvciAiLS0iKSAobmV4dC1idWZmZXIgbWVudS1pdGVt ICJOZXh0IEJ1ZmZlciIgbmV4dC1idWZmZXIgOmhlbHAgIlN3aXRjaCB0byB0aGUgXCJuZXh0 XCIgYnVmZmVyIGluIGEgY3ljbGljIG9yZGVyIikgKHByZXZpb3VzLWJ1ZmZlciBtZW51LWl0 ZW0gIlByZXZpb3VzIEJ1ZmZlciIgcHJldmlvdXMtYnVmZmVyIDpoZWxwICJTd2l0Y2ggdG8g dGhlIFwicHJldmlvdXNcIiBidWZmZXIgaW4gYSBjeWNsaWMgb3JkZXIiKSAoc2VsZWN0LW5h bWVkLWJ1ZmZlciBtZW51LWl0ZW0gIlNlbGVjdCBOYW1lZCBCdWZmZXIuLi4iIHN3aXRjaC10 by1idWZmZXIgOmhlbHAgIlByb21wdCBmb3IgYSBidWZmZXIgbmFtZSwgYW5kIHNlbGVjdCB0 aGF0IGJ1ZmZlciBpbiB0aGUgY3VycmVudCB3aW5kb3ciKSAobGlzdC1hbGwtYnVmZmVycyBt ZW51LWl0ZW0gIkxpc3QgQWxsIEJ1ZmZlcnMiIGxpc3QtYnVmZmVycyA6aGVscCAiUG9wIHVw IGEgd2luZG93IGxpc3RpbmcgYWxsIEVtYWNzIGJ1ZmZlcnMiKSAoc2VsZWN0LWJ1ZmZlci1p bi1wcm9qZWN0IG1lbnUtaXRlbSAiU2VsZWN0IEJ1ZmZlciBJbiBQcm9qZWN0Li4uIiBwcm9q ZWN0LXN3aXRjaC10by1idWZmZXIgOmhlbHAgIlByb21wdCBmb3IgYSBidWZmZXIgYmVsb25n aW5nIHRvIGN1cnJlbnQgcHJvamVjdCwgYW5kIHN3aXRjaCB0byBpdCIpIChsaXN0LWJ1ZmZl cnMtaW4tcHJvamVjdCBtZW51LWl0ZW0gIkxpc3QgQnVmZmVycyBJbiBQcm9qZWN0Li4uIiBw cm9qZWN0LWxpc3QtYnVmZmVycyA6aGVscCAiUG9wIHVwIGEgd2luZG93IGxpc3RpbmcgYWxs IEVtYWNzIGJ1ZmZlcnMgYmVsb25naW5nIHRvIGN1cnJlbnQgcHJvamVjdCIpKSkpDQogICB4 LXBvcHVwLW1lbnUoKGJ1ZmZlciAoIzxmcmFtZSBGMSAweDEzOTA2ZDQwPiAobWVudS1iYXIp ICgxOCAuIDApIDApKSAoa2V5bWFwICJCdWZmZXJzIiBbKCIqc2NyYXRjaCogICIgLiAjZihj b21waWxlZC1mdW5jdGlvbiAoKSAoaW50ZXJhY3RpdmUgbmlsKSAjPGJ5dGVjb2RlIC0weDE2 NjIzYmQxMDFmZTM1ODA+KSkgKCIqTWVzc2FnZXMqICAqJSIgLiAjZihjb21waWxlZC1mdW5j dGlvbiAoKSAoaW50ZXJhY3RpdmUgbmlsKSAjPGJ5dGVjb2RlIC0weDE2NjIzYmQ1NGYzOTM1 ODA+KSldIChjb21tYW5kLXNlcGFyYXRvciAiLS0iKSAobmV4dC1idWZmZXIgbWVudS1pdGVt ICJOZXh0IEJ1ZmZlciIgbmV4dC1idWZmZXIgOmhlbHAgIlN3aXRjaCB0byB0aGUgXCJuZXh0 XCIgYnVmZmVyIGluIGEgY3ljbGljIG9yZGVyIikgKHByZXZpb3VzLWJ1ZmZlciBtZW51LWl0 ZW0gIlByZXZpb3VzIEJ1ZmZlciIgcHJldmlvdXMtYnVmZmVyIDpoZWxwICJTd2l0Y2ggdG8g dGhlIFwicHJldmlvdXNcIiBidWZmZXIgaW4gYSBjeWNsaWMgb3JkZXIiKSAoc2VsZWN0LW5h bWVkLWJ1ZmZlciBtZW51LWl0ZW0gIlNlbGVjdCBOYW1lZCBCdWZmZXIuLi4iIHN3aXRjaC10 by1idWZmZXIgOmhlbHAgIlByb21wdCBmb3IgYSBidWZmZXIgbmFtZSwgYW5kIHNlbGVjdCB0 aGF0IGJ1ZmZlciBpbiB0aGUgY3VycmVudCB3aW5kb3ciKSAobGlzdC1hbGwtYnVmZmVycyBt ZW51LWl0ZW0gIkxpc3QgQWxsIEJ1ZmZlcnMiIGxpc3QtYnVmZmVycyA6aGVscCAiUG9wIHVw IGEgd2luZG93IGxpc3RpbmcgYWxsIEVtYWNzIGJ1ZmZlcnMiKSAoc2VsZWN0LWJ1ZmZlci1p bi1wcm9qZWN0IG1lbnUtaXRlbSAiU2VsZWN0IEJ1ZmZlciBJbiBQcm9qZWN0Li4uIiBwcm9q ZWN0LXN3aXRjaC10by1idWZmZXIgOmhlbHAgIlByb21wdCBmb3IgYSBidWZmZXIgYmVsb25n aW5nIHRvIGN1cnJlbnQgcHJvamVjdCwgYW5kIHN3aXRjaCB0byBpdCIpIChsaXN0LWJ1ZmZl cnMtaW4tcHJvamVjdCBtZW51LWl0ZW0gIkxpc3QgQnVmZmVycyBJbiBQcm9qZWN0Li4uIiBw cm9qZWN0LWxpc3QtYnVmZmVycyA6aGVscCAiUG9wIHVwIGEgd2luZG93IGxpc3RpbmcgYWxs IEVtYWNzIGJ1ZmZlcnMgYmVsb25naW5nIHRvIGN1cnJlbnQgcHJvamVjdCIpKSkNCiAgIHBv cHVwLW1lbnUoKGtleW1hcCAiQnVmZmVycyIgWygiKnNjcmF0Y2gqICAiIC4gI2YoY29tcGls ZWQtZnVuY3Rpb24gKCkgKGludGVyYWN0aXZlIG5pbCkgIzxieXRlY29kZSAtMHgxNjYyM2Jk MTAxZmUzNTgwPikpICgiKk1lc3NhZ2VzKiAgKiUiIC4gI2YoY29tcGlsZWQtZnVuY3Rpb24g KCkgKGludGVyYWN0aXZlIG5pbCkgIzxieXRlY29kZSAtMHgxNjYyM2JkNTRmMzkzNTgwPikp XSAoY29tbWFuZC1zZXBhcmF0b3IgIi0tIikgKG5leHQtYnVmZmVyIG1lbnUtaXRlbSAiTmV4 dCBCdWZmZXIiIG5leHQtYnVmZmVyIDpoZWxwICJTd2l0Y2ggdG8gdGhlIFwibmV4dFwiIGJ1 ZmZlciBpbiBhIGN5Y2xpYyBvcmRlciIpIChwcmV2aW91cy1idWZmZXIgbWVudS1pdGVtICJQ cmV2aW91cyBCdWZmZXIiIHByZXZpb3VzLWJ1ZmZlciA6aGVscCAiU3dpdGNoIHRvIHRoZSBc InByZXZpb3VzXCIgYnVmZmVyIGluIGEgY3ljbGljIG9yZGVyIikgKHNlbGVjdC1uYW1lZC1i dWZmZXIgbWVudS1pdGVtICJTZWxlY3QgTmFtZWQgQnVmZmVyLi4uIiBzd2l0Y2gtdG8tYnVm ZmVyIDpoZWxwICJQcm9tcHQgZm9yIGEgYnVmZmVyIG5hbWUsIGFuZCBzZWxlY3QgdGhhdCBi dWZmZXIgaW4gdGhlIGN1cnJlbnQgd2luZG93IikgKGxpc3QtYWxsLWJ1ZmZlcnMgbWVudS1p dGVtICJMaXN0IEFsbCBCdWZmZXJzIiBsaXN0LWJ1ZmZlcnMgOmhlbHAgIlBvcCB1cCBhIHdp bmRvdyBsaXN0aW5nIGFsbCBFbWFjcyBidWZmZXJzIikgKHNlbGVjdC1idWZmZXItaW4tcHJv amVjdCBtZW51LWl0ZW0gIlNlbGVjdCBCdWZmZXIgSW4gUHJvamVjdC4uLiIgcHJvamVjdC1z d2l0Y2gtdG8tYnVmZmVyIDpoZWxwICJQcm9tcHQgZm9yIGEgYnVmZmVyIGJlbG9uZ2luZyB0 byBjdXJyZW50IHByb2plY3QsIGFuZCBzd2l0Y2ggdG8gaXQiKSAobGlzdC1idWZmZXJzLWlu LXByb2plY3QgbWVudS1pdGVtICJMaXN0IEJ1ZmZlcnMgSW4gUHJvamVjdC4uLiIgcHJvamVj dC1saXN0LWJ1ZmZlcnMgOmhlbHAgIlBvcCB1cCBhIHdpbmRvdyBsaXN0aW5nIGFsbCBFbWFj cyBidWZmZXJzIGJlbG9uZ2luZyB0byBjdXJyZW50IHByb2plY3QiKSkgKCM8d2luZG93IDEg b24gKnNjcmF0Y2gqPiAxOSAoMTggLiAwKSAwIG5pbCAxOSAoMTggLiAwKSBuaWwgKDAgLiAw KSAoMSAuIDApKSBuaWwgdCkNCiAgIG1lbnUtYmFyLW9wZW4obmlsIDE4KQ0KICAgbWVudS1i YXItb3Blbi1tb3VzZSgobW91c2UtMSAobmlsIG1lbnUtYmFyICgyMSAuIDApIDI0MjQpKSkN CiAgIGZ1bmNhbGwtaW50ZXJhY3RpdmVseShtZW51LWJhci1vcGVuLW1vdXNlIChtb3VzZS0x IChuaWwgbWVudS1iYXIgKDIxIC4gMCkgMjQyNCkpKQ0KICAgY2FsbC1pbnRlcmFjdGl2ZWx5 KG1lbnUtYmFyLW9wZW4tbW91c2UgbmlsIG5pbCkNCiAgIGNvbW1hbmQtZXhlY3V0ZShtZW51 LWJhci1vcGVuLW1vdXNlKQ0KDQoNCm1hcnRpbg0K
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 9 Feb 2025 11:35:09 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 09 06:35:08 2025 Received: from localhost ([127.0.0.1]:43382 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1th5ae-0005AL-L7 for submit <at> debbugs.gnu.org; Sun, 09 Feb 2025 06:35:08 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:42335) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1th5ac-00055W-8a for 75056 <at> debbugs.gnu.org; Sun, 09 Feb 2025 06:35:07 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-43934d6b155so4356065e9.1 for <75056 <at> debbugs.gnu.org>; Sun, 09 Feb 2025 03:35:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739100899; x=1739705699; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=7JWVbj6LPKQGYJaX9zOXQjKNPZmY4c8R3Mni9krWQPs=; b=ZTJUnqyCgWTCJD10FSyOVpBesZqg0UPv0tbZBnUcaGjdGd1j+gmQbgTEuemj1FGO4J l/S0MC5cDasQETLgLCPioErTZH22dTXXt5F3xQEZ2NONLnjKEXcEb/e9bLiGEZNUt94Z HaO2osTQ7DLHRLmOC+YVVjl1A0ty9m9V5QwPc0ZTE0EfNMJveq66cr2m29rOJt6SE6fQ segaDvcT+5HmOssF9D+mMGUXGmYuBx/+bcFALPI2kMjS7Y98yqorUFSEC/BibOPeRizU m28BNx9jKlQRwgj8/ENKZRWCfMqiRcs4hH6DMIUNM+cZ3K4dYZI12F3cSxgAIGKo8RoO rmIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739100899; x=1739705699; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=7JWVbj6LPKQGYJaX9zOXQjKNPZmY4c8R3Mni9krWQPs=; b=A0FOeafc9K5O1iUKBxL3sWPopcKn/A9+42mw2390N3gJUyUr2h42kIeBbDg0unQ13/ QXsgH4kxgN7Uprf7F0gJ8zxN6wqt6pCPahZ7rHh0KmohK7GmReLLirsAkwjmO9poT2pt AwOYyb28243hg433CcNhuUHmcsCCAIGeAUC8YZ98deNfu5Lcz8s81xZPlSrZKpRydpWi A5rwdVe68vYIna2mtSUGnFqgx4KuOV1yCbdGOjMV1xe++txSt1KOeEQl3p/M1U6y8KvL JOgNvxVBAy+iUulRHEz/kXDsjzj51Mvec1VxFSrZzCq+QLQl+40VVQczR3wfeMDMtVEM +/Lg== X-Forwarded-Encrypted: i=1; AJvYcCXujyFRSo5ZKn1DND8OFPUdOcTEToNGzrKocb5FwdMoDKUrKA9u5hEAN9+PNEpwRQoaCMywSw==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yw1YbciCWuLklaDLhXmvAgzy26BZdkg86IRxB2MVBzKhIb6w1M6 Y4ffkYmBn0pPmPsloKKqt8rlBevKFrwOMt2GXAxVFCSAlVqHv0dtXIqB+A== X-Gm-Gg: ASbGncvGda5SPsbUo7iM1OuJOlBFQX4fFFsKtI7r/B6F245ymT/zJWMjLh263GKuMCS 47mRWQ7qG4AsiE3ePcpy9+MAp7lSfKMEmWoDauVOf9jyNX+7p9qc5mTko3jdgrkfwu/xVdYyga0 Xo+SJi7hPbfL2a6B72k/glAFOCwCq4hvFLkTx01z078gr1ZgDACpqkOwLBRPtFgxg87TQ2oI8GC zt0mJIMP/B4a3bfxwjTvaz+rLVS6Va84E22v40jd1z5vZ8sAJXPcEQHkRjPXnqkQUA5yAz+6sCZ ADLHVq15atEm7gK7w4D1M9vN1Ar9Zddow3z0eKFN8lZbTK5VhxN4b4aoIy0kh+gx41FFoNHij7t UQqXfuaAcjF9MIhuJUF1HsAtX X-Google-Smtp-Source: AGHT+IFNoLZk+aeH19YYljQeUWW8VoTjoTZoL93SjkkOGIvOGFqAh0wmr97plu3SSYBHTwLGVI5pEg== X-Received: by 2002:a05:600c:c7:b0:434:e65e:457b with SMTP id 5b1f17b1804b1-43912d0f1eemr102199825e9.3.1739100898861; Sun, 09 Feb 2025 03:34:58 -0800 (PST) Received: from pro2 (p200300e0b725cf0094296d0536d9d0d3.dip0.t-ipconnect.de. [2003:e0:b725:cf00:9429:6d05:36d9:d0d3]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4390d94d40csm146644255e9.9.2025.02.09.03.34.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Feb 2025 03:34:58 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <e4670861-a251-4250-b988-73b428a1b7e0@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> <m2seozjo3c.fsf@HIDDEN> <m2msf6ezfq.fsf@HIDDEN> <m2jz9zmlfg.fsf@HIDDEN> <m2frknml43.fsf@HIDDEN> <e4670861-a251-4250-b988-73b428a1b7e0@HIDDEN> Date: Sun, 09 Feb 2025 12:34:57 +0100 Message-ID: <m234gnmjvi.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain martin rudalics <rudalics@HIDDEN> writes: >> Wrong version. Please use this one: > > Can you send me one I can load with emacs -Q -nw? > Here it complains about a void defclass. Sorry, I would never have expected that defclass requires eieio, and is not autoloaded. Sachen gibt's :-/. --=-=-= Content-Type: application/emacs-lisp Content-Disposition: attachment; filename=tty-menu.el Content-Transfer-Encoding: quoted-printable ;; -*- lexical-binding: t; symbol-packages: t -*- ;;; tty-menu.el --- A menu implementation in Lisp ;; Copyright (C) 2025 Gerd M=C3=B6llmann ;; This file is not part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. ;;; Commentary: ;;; Code: ;;; Todo ;; A mode: Open a sub-menu by moving the selection into the menu-item ;; for the sub-menu. Close it by moving the selection out. ;; Make cursor invisible somehow (is cursor-type not supposed to ;; work?) ;; menu-bar-menu doesn't work (list of keymaps?) (eval-when-compile (require 'cl-lib)) (require 'eieio) (defclass tty-menu-element () () :documentation "Base class for elements of a menu.") (defclass tty-menu-pane (tty-menu-element) ((items :initarg :items :initform nil :type t) (buffer :initarg :buffer :type buffer) (layout :type list)) :documentation "Class for menu panes.") (defclass tty-menu-item (tty-menu-element) ((name :initarg :name :type string) (enable :initarg :enable :initform t :type t) (help :initarg :help :initform nil :type t) (visible :initarg :visible :initform t :type t) (key-sequence :initarg :key-sequence :initform nil :type t) (keys :initarg :keys :initform nil :type t) (filter :initarg :filter :initform nil :type t) (button :initarg :button :initform nil :type t) (selected :initarg :selected :initform nil :type t) (binding :initarg :binding :initform nil :type t))) (defclass tty-menu-button (tty-menu-item) ()) (defclass tty-menu-radio (tty-menu-button) ()) (defclass tty-menu-checkbox (tty-menu-button) ()) (defclass tty-menu-separator (tty-menu-item) ((sep :initform "-" :type string :reader tty-menu-sep))) (cl-defmethod initialize-instance :after ((item tty-menu-separator) &rest) (with-slots (name sep enable) item (setf enable nil) (cl-multiple-value-bind (ch disp) (pcase name ("--space" (cl-values ?\s nil)) ("--double-line" (cl-values ?=3D 'box-double-horizontal)) (_ (cl-values ?- 'box-horizontal))) (setf sep (make-string 1 (or (and disp (let ((c (display-table-slot standard-display-table disp))) (and (characterp c) c))) ch)))))) (defvar tty-menu-left-border-format "%1s") (defvar tty-menu-right-border-format "%1s") (defvar tty-menu-button-format "%-4s") (defvar tty-menu-key-format "%10s") (defvar tty-menu-name-format "%s") (defvar tty-menu-triangle "=E2=96=B7") (defvar tty-menu-radio-on "=E2=9C=94") (defvar tty-menu-radio-off "") (defvar tty-menu-checkbox-on "=E2=9C=94") (defvar tty-menu-checkbox-off "=F0=90=84=82") (defun tty-menu-selectable-p (item) (eval (slot-value item 'enable))) (defun tty-menu-visible-p (item) (eval (slot-value item 'visible))) (defun tty-menu-enabled-p (item) (eval (slot-value item 'enable))) (defun tty-menu-ninsert (n x) (cl-loop repeat n do (insert x))) (cl-defgeneric tty-menu-button-string (item) (:method ((_ tty-menu-item)) "") (:method ((r tty-menu-radio)) (format tty-menu-button-format (if (slot-value r 'selected) tty-menu-radio-on tty-menu-radio-off))) (:method ((c tty-menu-checkbox)) (format tty-menu-button-format (if (slot-value c 'selected) tty-menu-checkbox-on tty-menu-checkbox-off))) (:method ((_ tty-menu-separator)) "")) (cl-defgeneric tty-menu-name-string (item) (:method ((item tty-menu-item)) (format tty-menu-name-format (slot-value item 'name))) (:method ((_ tty-menu-separator)) "")) (cl-defgeneric tty-menu-key-string (item) (:method ((item tty-menu-item)) (format tty-menu-key-format (with-slots (binding) item (cond ((commandp binding) (key-description (where-is-internal binding nil t))) ((keymapp binding) tty-menu-triangle) (t (format "?? %S" binding)))))) (:method ((_ tty-menu-separator)) "")) (cl-defgeneric tty-menu-draw-button (item pane) (:method ((_item tty-menu-item) pane) (with-slots (layout) pane (cl-destructuring-bind (_ button-width _ _ _) layout (tty-menu-ninsert button-width ?\s)))) (:method ((item tty-menu-button) _pane) (with-slots (selected button) item (cl-destructuring-bind (_ . form) button (setf selected (eval form)) (insert (tty-menu-button-string item))))) (:method ((item tty-menu-separator) pane) (with-slots (layout) pane (cl-destructuring-bind (_ button-width _ _ _) layout (tty-menu-ninsert button-width (tty-menu-sep item)))))) (cl-defgeneric tty-menu-draw-name (item pane) (:method ((item tty-menu-item) pane) (with-slots (layout) pane (cl-destructuring-bind (left-border button name-width _ _) layout (with-slots (name) item (insert (tty-menu-name-string item)) (indent-to (+ left-border button name-width)))))) (:method ((item tty-menu-separator) pane) (with-slots (layout) pane (cl-destructuring-bind (_ _ name-width _ _) layout (tty-menu-ninsert name-width (tty-menu-sep item)))))) (cl-defgeneric tty-menu-draw-key (item pane) (:method ((item tty-menu-item) pane) (with-slots (layout) pane (cl-destructuring-bind (left-border button name-width key-width _) la= yout (insert (tty-menu-key-string item)) (indent-to (+ left-border button name-width key-width))))) (:method ((item tty-menu-separator) pane) (with-slots (layout) pane (cl-destructuring-bind (_ _ _ key-width _) layout (tty-menu-ninsert key-width (tty-menu-sep item)))))) (cl-defgeneric tty-menu-draw-finish (item pane) (:method ((item tty-menu-item) _) (let* ((enabled (tty-menu-enabled-p item)) (face (if enabled 'tty-menu-enabled-face 'tty-menu-disabled-face))) (put-text-property (pos-bol) (pos-eol) 'tty-menu-selectable enabled) (put-text-property (pos-bol) (pos-eol) 'face face)) (when-let* ((help (slot-value item 'help))) (put-text-property (pos-bol) (pos-eol) 'help-echo help))) (:method ((_item tty-menu-separator) _) (put-text-property (pos-bol) (pos-eol) 'tty-menu-selectable nil) (put-text-property (pos-bol) (pos-eol) 'face 'tty-menu-enabled-face))) (cl-defgeneric tty-menu-layout (pane) (:method ((pane tty-menu-pane)) (with-slots (items layout) pane (cl-loop with left-border =3D (string-width (format tty-menu-left-border-form= at "")) with right-border =3D (string-width (format tty-menu-right-border-fo= rmat "")) for i in items maximize (string-width (tty-menu-button-string i)) into button maximize (string-width (tty-menu-name-string i)) into name maximize (string-width (tty-menu-key-string i)) into key finally (setq layout `(,left-border ,button ,name ,key ,right-border= )))))) (defun tty-menu-try-place-point (selectable old-line) (goto-char (point-min)) (if (nth old-line selectable) (forward-line old-line) (let ((next (cl-loop for i from (1+ old-line) to (1- (length selectable)) when (nth i selectable) return i)) (prev (cl-loop for i downfrom (1- old-line) to 0 when (nth i selectable) return i))) (cond (next (forward-line next)) (prev (forward-line prev)))))) (cl-defgeneric tty-menu-draw (item pane) (:method ((pane tty-menu-pane) line) (with-slots (buffer items) pane (with-current-buffer buffer (let ((old-line (or line (1- (line-number-at-pos))))) (erase-buffer) (tty-menu-layout pane) (let ((selectable (cl-loop for i in items when (tty-menu-visible-p i) do (tty-menu-draw i pane) and collect (tty-menu-selectable-p i)))) (tty-menu-try-place-point selectable old-line)))))) (:method :around ((item tty-menu-item) pane) (let ((start (point))) (insert (format tty-menu-left-border-format "")) (cl-call-next-method) (insert (format tty-menu-right-border-format "")) (tty-menu-draw-finish item pane) (insert ?\n) (put-text-property start (point) 'tty-menu-item item))) (:method ((item tty-menu-item) pane) (tty-menu-draw-button item pane) (tty-menu-draw-name item pane) (tty-menu-draw-key item pane))) (defvar-local tty-menu-selection-ov nil) (defvar-local tty-menu-pane-drawn nil) (cl-defgeneric tty-menu-select-item (item how) (:method ((item tty-menu-item) how) (when-let* ((enabled (tty-menu-enabled-p item))) (throw 'tty-menu-item-selected (cons item how)))) (:method ((_item tty-menu-separator) _)) (:method ((item tty-menu-button) _) (with-slots (binding) item (when (commandp binding) (call-interactively binding)) (tty-menu-draw tty-menu-pane-drawn nil)))) (defun tty-menu-create-buffer (pane) "Create a buffer named BUFFER for DRAW to fill. DRAW is called with no arguments and with current buffer being the buffer created. Value is (BUFFER WIDTH HEIGHT), where BUFFER is the buffer that was used, WIDTH is the maximum line width in the buffer, and HEIGHT is the number of lines in the buffer. " (with-slots (buffer) pane (with-current-buffer buffer (dolist (var '((mode-line-format . nil) (header-line-format . nil) (tab-line-format . nil) (tab-bar-format . nil) (frame-title-format . "") (truncate-lines . t) (cursor-in-non-selected-windows . nil) (cursor-type . nil) (show-trailing-whitespace . nil) (display-line-numbers . nil) (left-fringe-width . nil) (right-fringe-width . nil) (left-margin-width . 0) (right-margin-width . 0) (fringes-outside-margins . 0) (scroll-conservatively . 1))) (set (make-local-variable (car var)) (cdr var))) (let ((inhibit-modification-hooks t) (inhibit-read-only t) (indent-tabs-mode nil)) (setq tty-menu-selection-ov nil tty-menu-pane-drawn pane) (tty-menu-draw pane 0) (cl-flet ((line-width () (save-excursion (goto-char (point-min)) (goto-char (line-end-position)) (current-column)))) (list (current-buffer) (line-width) (count-lines (point-min) (point-max)))))))) (defun tty-menu-make-element (item) (cl-labels ((separator? (name) (string-prefix-p "--" name)) (button? (props) (plist-get props :button)) (radio? (props) (eq (car (button? props)) :radio)) (toggle? (props) (eq (car (button? props)) :toggle))) ;; COND* complains about unknown pattern (PREDICATE symbol) if ;; PREDICATE is a local function. Use (CONSTRAIN symbol (PRODICATE ;; symbol)) instead. (cond* ((match* (cons 'menu-item (cons (constrain name (separator? name)) props)) item) (apply #'make-instance 'tty-menu-separator (cl-list* :name name props= ))) ((match* (list 'menu-item name) item) (make-instance 'tty-menu-item :name name :enable nil)) ((match* (cons 'menu-item (cons name (cons binding (constrain props (radio? props))))) item) (apply #'make-instance 'tty-menu-radio (cl-list* :name name :binding binding props))) ((match* (cons 'menu-item (cons name (cons binding (constrain props (toggle? props))))) item) (apply #'make-instance 'tty-menu-checkbox (cl-list* :name name :binding binding props))) ((match* (cons 'menu-item (cons name (cons binding props))) item) (apply #'make-instance 'tty-menu-item (cl-list* :name name :binding binding props))) ((match* (cons (constrain name (separator? name)) _) item) (make-instance 'tty-menu-separator :name name)) ((match* (cons name (cons help binding)) item) (make-instance 'tty-menu-item :name name :binding binding :help help)) ((match* (cons name binding) item) (make-instance 'tty-menu-item :name name :binding binding)) (t (error "No match for menu item %S" item))))) (defun tty-menu-keymap-name (keymap default) (let ((name (last keymap))) (or (and (stringp (car name)) (car name)) default))) (defun tty-menu-make-pane-buffer (keymap) (cl-labels ((pane-buffer-name () (format " *tty-menu-%s*" (tty-menu-keymap-name keymap "<no-name>"))) (make-pane () (make-instance 'tty-menu-pane :buffer (get-buffer-create (pane-buffer-name)) :items (cl-loop for b being the key-bindings of keymap collect (tty-menu-make-element b))))) (tty-menu-create-buffer (make-pane)))) (defvar tty-menu-frame-parameters `((visibility . nil) (background-color . "grey20") (foreground-color . "white") (width . 0) (height . 0) (min-width . t) (min-height . t) (no-accept-focus . t) (no-focus-on-map . t) (border-width . 0) (child-frame-border-width . 1) (left-fringe . 0) (right-fringe . 0) (vertical-scroll-bars . nil) (horizontal-scroll-bars . nil) (tty-menu-bar-lines . 0) (tool-bar-lines . 0) (tab-bar-lines . 0) (no-other-frame . t) (no-other-window . t) (no-delete-other-windows . t) (unsplittable . t) (undecorated . t) (cursor-type . nil) (no-special-glyphs . t) (desktop-dont-save . t))) (defun tty-menu-frame-parameters () (let ((params (copy-sequence tty-menu-frame-parameters)) (fg (face-attribute 'tty-menu-enabled-face :foreground)) (bg (face-attribute 'tty-menu-enabled-face :background))) (when (stringp fg) (setf (alist-get 'foreground-color params) fg)) (when (stringp bg) (setf (alist-get 'background-color params) bg)) params)) (defun tty-menu-make-fully-visible (f1 f2 x y) (let* ((f1-edges (frame-edges f1)) (f1-width (frame-width f1)) (f1-height (frame-height f1)) (f1-x (nth 0 f1-edges)) (f1-y (nth 1 f1-edges)) (f2-width (frame-width f2)) (f2-height (frame-height f2)) (new-x (max f1-x (min (+ f1-x f1-width (- f2-width)) x))) (new-y (max f1-y (min (+ f1-y f1-height (- f2-height)) y)))) ;; Ensure F2 is fully contained within F1 (setq new-x (min new-x (+ f1-x f1-width (- f2-width)))) (setq new-y (min new-y (+ f1-y f1-height (- f2-height)))) ;; Move and resize F2 (set-frame-position f2 new-x new-y) (set-frame-size f2 f2-width f2-height))) (defun tty-menu-frame-absolute-position (frame x y) "Translate (X, Y) in FRAME to absolute coordinates relative to the root f= rame." (let ((current-frame frame) (abs-x x) (abs-y y)) (while (frame-parent current-frame) (let ((edges (frame-edges current-frame))) (setq abs-x (+ abs-x (nth 0 edges))) (setq abs-y (+ abs-y (nth 1 edges))) (setq current-frame (frame-parent current-frame)))) (cons abs-x abs-y))) (defun tty-menu-create-frame (keymap where) (cl-destructuring-bind (buffer width height) (tty-menu-make-pane-buffer keymap) (cl-destructuring-bind (parent-frame x y) where ;; We want to show the menu using a root frame as parent because ;; that doesn't clip the frame. Means that we have to translate ;; coordinates to absolute. (when (frame-parent parent-frame) (cl-destructuring-bind (ax . ay) (tty-menu-frame-absolute-position parent-frame x y) (setq x ax y ay) (setq parent-frame (frame-root-frame parent-frame)))) (let* ((minibuffer (minibuffer-window parent-frame)) (window-min-height 1) (window-min-width 1) (after-make-frame-functions nil) (frame (make-frame `((parent-frame . ,parent-frame) (name . ,(buffer-name buffer)) (minibuffer . ,minibuffer) ,@(tty-menu-frame-parameters)))) (win (frame-root-window frame))) (set-window-buffer win buffer) (set-window-dedicated-p win t) (set-frame-size frame width height) (set-frame-position frame x y) (tty-menu-make-fully-visible parent-frame frame x y) (make-frame-visible frame) (raise-frame frame) (select-frame-set-input-focus frame) frame)))) (defun tty-menu-mouse-select-item (event) (interactive "e") (let* ((end (event-end event)) (win (posn-window end))) (unless (eq (window-frame win) (tty-top-frame)) (throw 'tty-menu-item-selected nil)) (when-let* ((item (get-text-property (posn-point end) 'tty-menu-item))) (tty-menu-select-item item 'mouse)))) (defun tty-menu-key-select-item () (interactive) (when-let* ((item (get-text-property (point) 'tty-menu-item))) (tty-menu-select-item item 'key))) (defun tty-menu-mouse-moved (event) (interactive "e") (let* ((end (event-end event)) (win (posn-window end))) (when (eq (window-frame win) (tty-top-frame)) (let ((item (get-text-property (posn-point end) 'tty-menu-item))) (when (and item (tty-menu-selectable-p item)) (goto-char (posn-point end))))))) (defun tty-menu-next-line () (interactive) (cl-loop for next =3D (next-single-property-change (point) 'tty-menu-item) then (next-single-property-change next 'tty-menu-item) while next for item =3D (get-text-property next 'tty-menu-item) until (tty-menu-selectable-p item) finally (when next (goto-char next)))) (defun tty-menu-previous-line () (interactive) (cl-loop for prev =3D (previous-single-property-change (point) 'tty-menu-item nil (point-min)) then (previous-single-property-change prev 'tty-menu-item nil (point-min)) while prev for item =3D (get-text-property prev 'tty-menu-item)=20 if (tty-menu-selectable-p item) do (goto-char prev) and return t else if (eq prev (point-min)) return t)) (defun tty-menu-close-pane () (interactive) (throw 'tty-menu-item-selected nil)) (defun tty-menu-isearch (forward) (isearch-mode forward nil nil) (while isearch-mode (let* ((key (read-key-sequence nil nil t nil nil nil))) (when-let* ((cmd (lookup-key isearch-mode-map key))) (if (and (eq cmd #'isearch-printing-char) (stringp key)) (isearch-printing-char (aref key 0)) (call-interactively cmd)))))) (defun tty-menu-isearch-forward () (interactive) (tty-menu-isearch t)) =20=20 (defun tty-menu-isearch-backward () (interactive) (tty-menu-isearch nil)) (defvar-keymap tty-menu-keymap :doc "Keymap for menu interaction." "<up>" #'tty-menu-previous-line "<down>" #'tty-menu-next-line "<left>" #'tty-menu-close-pane "C-b" #'tty-menu-close-pane "C-g" #'keyboard-quit "C-j" #'tty-menu-key-select-item "C-n" #'tty-menu-next-line "C-p" #'tty-menu-previous-line "C-r" #'tty-menu-isearch-backward "C-s" #'tty-menu-isearch-forward "RET" #'tty-menu-key-select-item "SPC" #'tty-menu-key-select-item "<return>" #'tty-menu-key-select-item "<mouse-movement>" #'tty-menu-mouse-moved "<mouse-1>" #'tty-menu-mouse-select-item) (defun tty-menu-show-selected-item () (unless tty-menu-selection-ov (setq tty-menu-selection-ov (make-overlay 1 1)) (overlay-put tty-menu-selection-ov 'face 'tty-menu-selected-face)) (move-overlay tty-menu-selection-ov (line-beginning-position) (line-end-p= osition))) (defun tty-menu-global-menu () (keymap-lookup global-map "<menu-bar>")) (defun tty-menu-position (pos) (interactive) (cond* ((match* 'nil pos) nil) ((match* 't pos) (cl-destructuring-bind (frame x . y) (mouse-position) ;; mouse-position sometimes returns nil for x and y which I ;; think should not happen. (list frame (or x 10) (or y 10)))) ((match* (eventp e) pos) (let* ((end (event-end e)) (win (posn-window end)) (x (car (posn-x-y end))) (y (cdr (posn-x-y end)))) (cl-destructuring-bind (wx wy _ _) (window-edges win nil t) (list (window-frame win) (+ wx x) (+ wy y))))) ((match* (cons (cons (numberp x) (numberp y)) (cons (windowp win) _)) pos) (cl-destructuring-bind (wx wy _ _) (window-edges win nil t) (list (window-frame win) (+ wx x) (+ wy y)))) ((match* (cons (list (numberp x) (numberp y)) (cons (framep frame) _)) pos) (list frame x y)) ((match* (cons (cons (numberp x) (numberp y)) (cons (framep frame) _)) pos) (list frame x y)) ((match* (cons (numberp x) (numberp y)) pos) (list (selected-frame) x y)) (t (error "%S does not match in tty-menu-position" pos)))) (defun tty-menu-where (how) (cl-ecase how (mouse (tty-menu-position t)) (key (let* ((posn (posn-at-point (line-end-position))) (xy (posn-x-y posn)) (win (posn-window posn))) (tty-menu-position (list xy win)))))) (defun tty-menu-loop (keymap where) (let ((frame (tty-menu-create-frame keymap where))) (unwind-protect ;; Inner loop handling mouse movement over the pane, ;; moving with the keyboard on the pane. The loop is ;; left by a throw when a menu-item is selected. (cl-loop named outer-loop while t for res =3D (catch 'tty-menu-item-selected (while t (tty-menu-show-selected-item) (let* ((track-mouse t) (key (read-key-sequence nil)) (cmd (lookup-key tty-menu-keymap key))) (when (commandp cmd) (call-interactively cmd))))) do ;; If the selected item was for a sub-pane, call ourselves ;; recursively with the sub-pane. (cond* ((match* (cons selected how) res) (with-slots (binding) selected (if (keymapp binding) (tty-menu-loop binding (tty-menu-where how)) ;; Return a list because x-popup-menu does. (cl-return-from outer-loop (list binding))))) ((match* 'nil res) (cl-return-from outer-loop nil)))) (when frame (delete-frame frame))))) (defun frame-with-name (name) (cl-flet ((frame-name (frame) (frame-parameter frame 'name))) (cl-find-if (lambda (f) (equal (frame-name f) name)) (frame-list)))) (defun tty-menu-delete-menu-frames () (cl-flet ((frame-name (frame) (frame-parameter frame 'name))) (cl-loop for frame in (frame-list) when (string-prefix-p " *tty-menu-" (frame-name frame)) do (delete-frame frame)))) =20=20 (cl-defun tty-menu-popup-menu (position menu) (when-let* ((where (tty-menu-position position))) (cond ((keymapp menu) (tty-menu-loop menu where)) ((consp menu) (cl-loop with outer =3D (make-sparse-keymap "outer") for keymap in menu for name =3D (tty-menu-keymap-name keymap "?") do (define-key outer (vector (intern name)) keymap) finally (tty-menu-loop outer where))) (t (error "Not a menu: %S" menu))))) ;;;###autoload (define-minor-mode tty-menu-mode "Global minor mode for displaying menus with tty child frames." :global t :group 'menu (unless (display-graphic-p) (if tty-menu-mode (remove-function (symbol-function 'x-popup-menu) #'tty-menu-popup-menu)) (add-function :override (symbol-function 'x-popup-menu) #'tty-menu-popup-menu))) (provide 'tty-menu) ;;; Local Variables: ;;; fill-column: 80 ;;; End: --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 9 Feb 2025 11:27:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 09 06:27:08 2025 Received: from localhost ([127.0.0.1]:43353 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1th5Su-0004ke-8w for submit <at> debbugs.gnu.org; Sun, 09 Feb 2025 06:27:08 -0500 Received: from mout.gmx.net ([212.227.15.19]:43237) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1th5Sr-0004jy-Or for 75056 <at> debbugs.gnu.org; Sun, 09 Feb 2025 06:27:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1739100416; x=1739705216; i=rudalics@HIDDEN; bh=ad1GqqGEz/V/VliK40LUx68MwUaj4UvBcPru1J6g6cI=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=AzQMH3c4alq0z9eBsn/N5XeSYEayQVtY7M7c+Ch3nvKu9tr/CgsYIo0DkuetwPYC nvdKBvYsR3jW8ynf1vBTNIP2TucLtBE55h4GcvTYcyu5YfVzW2jXfZx4rORrBnSpb aoQSQ0B23hZIEqgD6K2DFYnJCWajyzjPtLT0AikNvf0Z8lFH8IDNriDOmyDlNav/5 YU5080VAMZ+XxJLLm+/aiwhPOBa++30kXS0HC1RP52SnnxEc9JKAo2IRr7tEB0xma qYhc6DZHZnhk2W7/I0LWBLVyGCQuHdbSd38/pN2FE27+9/V/+5b06/0abHPkCo6Rv vCXZDWuAtBkv5h6imQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.97.220]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MulqD-1tQFKl1MYt-00wr94; Sun, 09 Feb 2025 12:26:56 +0100 Message-ID: <e4670861-a251-4250-b988-73b428a1b7e0@HIDDEN> Date: Sun, 9 Feb 2025 12:26:55 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> <m2seozjo3c.fsf@HIDDEN> <m2msf6ezfq.fsf@HIDDEN> <m2jz9zmlfg.fsf@HIDDEN> <m2frknml43.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2frknml43.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:u6yab7u6fkmIdnKEPnF7aBZW3+VnOL7agI3GXhM05oiKvzZqru7 d4p5ebiuF1KOAFD4TI8ekhHaC5FitAgM6CPBAXr4zGU5SE+PqU1Ii9qeZfqdJEBhBk/jseA 7qsj/A7EA1Xbotum10iwYdIw6XlGzZzgGySKy8TlorAYKtv+zlOibQGZ6nVMYtRVWitmqtd eX1irIVn0apuZdDLwN18g== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:oGk5YOF1AAU=;1hiKD19WQQNSclWicvJR9mbTbR7 OlF7vv+gPppoQdgieZm9qZ8/DzbQkwsU+G+L5AQlGw1JQOHtrhrsVZYsYM12oCdu0MMXUSn6b I47S5zti7UL5iXswFiGwDth7HryV10Zn104SwX7vic8I9CP1LaIvUMzEcBmuJtjWPYK5tBBHC TMqJiZ/eaydMh0gBDdWuLPZEg0xtoioZdbJSEbKatXNKvfNplkgOh/NOPdjhapeIyH3yD39ZI N59NS1J5swc0dYfYFuNUdZ/KJ4feXNsGKg1KoFGUm+lw6OLwUj59H8jskQpCVYcOPTAQHpaml OBU8Ec1n1TLLbzDzoVVc5J9bzivqzKfH0sK0lV5inFfSCjETGj/Yn+pek2PNX7akILn3ieiCs MSxkw4lCka9+i1fPuMHgDrccm10+JmzUhefFSl8yrYfV2n0BZQNf5bRvksC5fjts3oVKnvXAZ lrW60vwCI+S2BRWhngx/gVT7Rza0ECPzgyCz4i9x3sfNi3YOD0J+fozNOmRPnb99Tf8XDt7aC 6Zm6oFEAv8tOLTbZia1rVMAgZRlrKITM6oJBT52DPX+qdbYauBPw6b4WKZS7mf7hHcKTwVZ0w Xtl5XOqBJ8abrxjNWGAmHJJCMWdTHGP9wc9JWPhHY3MRGha+uxPsHhHXTy4fiNnFyB4SZXBL8 RQC8Rh3+1Y77JxUuOsh+dDAOHKCXjAcHMF7GMmyDltg+crlhbGbeGFfhb5ER/ExNuzviBz24S 2xTIdmsfWLyhToRuhwdHvdqK1ReBxAR0liyn9yqZRLEww6J7C3WMqhqiLmXRz9MR74co/ZQxP D05jOukkRl0yELj0xi+n1/+pRF2dfSGoUSZaQofzhuvGE4/R+FFVkHinU1NuUF+vkInwEkm2W 8dq1Lk7VWEvsrHL76GZCNw+Ygl5SaglCCk8v+q96NEGeR8NAoRP7JLZA9ruzcm1/CuBCAmSuu OlIlC6Uuj3ESbUhVzA/A9j/OadAAi+8bHMV1PRw2uZAezuRiMVA8gAFbrjCtnrPZ4YxuEMBlN jaU3EVmmVBQBodimVKHtyenhNb7fM4bXhrslG5tcK89U/00rKUpxNFt/RJwooPSLeGGMAK5IZ vdwc+4cL1IxYRpPAXF+toI3mElHuHHLQqtym/gS/yQoUwhdUQy/aO5c1BiKznJBtPNHWfg292 5UWWjjbN6Ky2vN/SFuQlSlHxjxC5p+aCgYZqxVcFW7TWbe+pkRDStiFybWQxFml7kw9Mqaz5b VRy2anM0s8JXJ8kSWhL4mHDqqZipJglc2j2xO0j4M+chtrcYAtDAwYU8xC5CVBVv5j637pq/U dZFMz7yHahuvhbs4xMZJBESDkBKVKW1pBwx5p0VYVL4Xc532D/MtQAdX60LI+H9I0AsxtwFji 85hW6Z6hLn+uRWmfHSNFzXFr2PgBtCLsgZfWyDdKdxWFkvuItjP7twAE/5LEkktRPla9LzXnF ZiuKFSg== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > Wrong version. Please use this one: Can you send me one I can load with emacs -Q -nw? Here it complains about a void defclass. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 9 Feb 2025 11:08:24 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 09 06:08:24 2025 Received: from localhost ([127.0.0.1]:43316 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1th5Am-0003o5-6r for submit <at> debbugs.gnu.org; Sun, 09 Feb 2025 06:08:24 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:52250) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1th5Aj-0003no-LQ for 75056 <at> debbugs.gnu.org; Sun, 09 Feb 2025 06:08:22 -0500 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-4363ae65100so40858215e9.0 for <75056 <at> debbugs.gnu.org>; Sun, 09 Feb 2025 03:08:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739099295; x=1739704095; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=apZJnunvGoGDxHdOWip0zrjVdSBDc4/2d3yVwnuy+Mc=; b=YYApe+E+0uJdHyQ0d1A1sNPnI6X05Yil9zyhY1EEjv3KHRwnTvLFSjIzyznOYeqGhK 5e/FAftgxv9r4ohG/wkIMHvDi+Umjmqf4d2DbrONo1/sQHdfcIs7P+aI9yPRRy6ySy4k m99cjlqHEoIS35xo4Z0cJa2BS/kFxV1BnkYUaJoSmk+ntYbG2EQQijJ/tH0HJvikMMt9 cZqk6qgsJKrl63lMN9kj9pWExLG9SpgYJMsfRUH9atqOC3UvUa+cdmPV9BJixjvbuZHw yKmMhL6UbXEOk08PY8m135DQ2mR9ewaF2ss7oayVZJvFgM1HnnDDMbNIDzckDQj4CTr/ 7RBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739099295; x=1739704095; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=apZJnunvGoGDxHdOWip0zrjVdSBDc4/2d3yVwnuy+Mc=; b=Vs8bhvFtNbmCooPii6gBi78XNjXOyGNcT9Z2sXUxaWX5LY2KTrsc1zhPNwwkJH6uYg oMiUIfWQzNDn0OyJjZjCMGPcYyFaHIe4ocysKt36WSWvnnmDlfOYvjXSnKgfDD0NzgOo v8OR26Ff/zpLKam8tfz5TqqdP9mLbDHAdEex3HDRIIJ3sicCCnn3DVPdUgvlsLYxvlu6 XIIqh/ZabcjbG/jQgoj6uLQuI2TBiL0coU5oGNw7+9SNj0vu6nSkyNRFpHeu0AmAwDXM d8mTViI/vmNKpjsQpHN58Hi+yMq+xPwenttvEnbXMIEZLz7yg5IPRHe4Bi8Dv7NNq0iX BBZg== X-Forwarded-Encrypted: i=1; AJvYcCU+fdFe+evU0WOBiZEpJJAK5/wdlMJ1bng/u70YULubdq1VvcMRA08OiZvsOhUSPdFGZWfrvQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwjzgjJpBYLUbfv7X9GxT7sekJPFlcLYhgkLNzwqcLLEdAgyCam aYi0HTDs/A7+VHK/IJeVtgzl8AaWTd9Fw4ILYRD5fCCpopn63aQdA4COFA== X-Gm-Gg: ASbGnctl0V1+i33hWnZ3h35soRBNH1eRQRmId/bYmXCFm7eErF37oi6vEjWRjBB5rv5 XCCK28oNCu64YLBhOegWqAHWze+DYj5zX8yD7e/EYfOflF7uywsV+5lrit6750Oug9HV5PSJW12 XF1coJAr2RSJBKieTBv44rOdqtxF9ObpijywwyuPF9qDpUAtBYMeGkgk/cxI1hy609Uo3gs5abM nK6vilauH/WCPgCMmb1OElIyiMG1lMJCP92p+dEOTdtRb0Kugw9bPPRTW2kcTe1j7pS9XKBsHDz sYq4MRS6FxE7P5E+0YqgMPBaR/JWtaF8mUeBfXz3jdKngXq76ILWS/aUDnpoKrJIBDX7wr1jgCQ eNkWEtrMhKIWD0qWMkcfu91p9 X-Google-Smtp-Source: AGHT+IEYBvv2iKB2lfGXar6+jdgIDUvVOfqP0DOOlEmWoHu5eLL4yH1VZfbj+kGFuVSCmiAMyGBx0A== X-Received: by 2002:a5d:64af:0:b0:38d:d371:e01d with SMTP id ffacd0b85a97d-38dd371e466mr3644773f8f.49.1739099294702; Sun, 09 Feb 2025 03:08:14 -0800 (PST) Received: from pro2 (p200300e0b725cf0094296d0536d9d0d3.dip0.t-ipconnect.de. [2003:e0:b725:cf00:9429:6d05:36d9:d0d3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38dc3a10fffsm8457403f8f.12.2025.02.09.03.08.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Feb 2025 03:08:14 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <m2jz9zmlfg.fsf@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> <m2seozjo3c.fsf@HIDDEN> <m2msf6ezfq.fsf@HIDDEN> <m2jz9zmlfg.fsf@HIDDEN> Date: Sun, 09 Feb 2025 12:08:12 +0100 Message-ID: <m2frknml43.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > >> Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: >> >>> I take everything back. I think it would be much much better to do that >>> all in Lisp. >> >> FWIW, a proof-of-concept, only showing a frame with a menu. 200 loc with >> half of it copied from tty-tip.el. > > I'm not sure if it's worth it, but I did a bit more. You can try it out > with something like > > (tty-menu-popup-menu t menu-bar-file-menu) Wrong version. Please use this one: --=-=-= Content-Type: application/emacs-lisp Content-Disposition: attachment; filename=tty-menu.el Content-Transfer-Encoding: quoted-printable ;; -*- lexical-binding: t; symbol-packages: t -*- ;;; tty-menu.el --- A menu implementation in Lisp ;; Copyright (C) 2025 Gerd M=C3=B6llmann ;; This file is not part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. ;;; Commentary: ;;; Code: ;;; Todo ;; A mode: Open a sub-menu by moving the selection into the menu-item ;; for the sub-menu. Close it by moving the selection out. ;; Make cursor invisible somehow (is cursor-type not supposed to ;; work?) ;; menu-bar-menu doesn't work (list of keymaps?) (eval-when-compile (require 'cl-lib)) (defclass tty-menu-element () () :documentation "Base class for elements of a menu.") (defclass tty-menu-pane (tty-menu-element) ((items :initarg :items :initform nil :type t) (buffer :initarg :buffer :type buffer) (layout :type list)) :documentation "Class for menu panes.") (defclass tty-menu-item (tty-menu-element) ((name :initarg :name :type string) (enable :initarg :enable :initform t :type t) (help :initarg :help :initform nil :type t) (visible :initarg :visible :initform t :type t) (key-sequence :initarg :key-sequence :initform nil :type t) (keys :initarg :keys :initform nil :type t) (filter :initarg :filter :initform nil :type t) (button :initarg :button :initform nil :type t) (selected :initarg :selected :initform nil :type t) (binding :initarg :binding :initform nil :type t))) (defclass tty-menu-button (tty-menu-item) ()) (defclass tty-menu-radio (tty-menu-button) ()) (defclass tty-menu-checkbox (tty-menu-button) ()) (defclass tty-menu-separator (tty-menu-item) ((sep :initform "-" :type string :reader tty-menu-sep))) (cl-defmethod initialize-instance :after ((item tty-menu-separator) &rest) (with-slots (name sep enable) item (setf enable nil) (cl-multiple-value-bind (ch disp) (pcase name ("--space" (cl-values ?\s nil)) ("--double-line" (cl-values ?=3D 'box-double-horizontal)) (_ (cl-values ?- 'box-horizontal))) (setf sep (make-string 1 (or (and disp (let ((c (display-table-slot standard-display-table disp))) (and (characterp c) c))) ch)))))) (defvar tty-menu-left-border-format "%1s") (defvar tty-menu-right-border-format "%1s") (defvar tty-menu-button-format "%-4s") (defvar tty-menu-key-format "%10s") (defvar tty-menu-name-format "%s") (defvar tty-menu-triangle "=E2=96=B7") (defvar tty-menu-radio-on "=E2=9C=94") (defvar tty-menu-radio-off "") (defvar tty-menu-checkbox-on "=E2=9C=94") (defvar tty-menu-checkbox-off "=F0=90=84=82") (defun tty-menu-selectable-p (item) (eval (slot-value item 'enable))) (defun tty-menu-visible-p (item) (eval (slot-value item 'visible))) (defun tty-menu-enabled-p (item) (eval (slot-value item 'enable))) (defun tty-menu-ninsert (n x) (cl-loop repeat n do (insert x))) (cl-defgeneric tty-menu-button-string (item) (:method ((_ tty-menu-item)) "") (:method ((r tty-menu-radio)) (format tty-menu-button-format (if (slot-value r 'selected) tty-menu-radio-on tty-menu-radio-off))) (:method ((c tty-menu-checkbox)) (format tty-menu-button-format (if (slot-value c 'selected) tty-menu-checkbox-on tty-menu-checkbox-off))) (:method ((_ tty-menu-separator)) "")) (cl-defgeneric tty-menu-name-string (item) (:method ((item tty-menu-item)) (format tty-menu-name-format (slot-value item 'name))) (:method ((_ tty-menu-separator)) "")) (cl-defgeneric tty-menu-key-string (item) (:method ((item tty-menu-item)) (format tty-menu-key-format (with-slots (binding) item (cond ((commandp binding) (key-description (where-is-internal binding nil t))) ((keymapp binding) tty-menu-triangle) (t (format "?? %S" binding)))))) (:method ((_ tty-menu-separator)) "")) (cl-defgeneric tty-menu-draw-button (item pane) (:method ((_item tty-menu-item) pane) (with-slots (layout) pane (cl-destructuring-bind (_ button-width _ _ _) layout (tty-menu-ninsert button-width ?\s)))) (:method ((item tty-menu-button) _pane) (with-slots (selected button) item (cl-destructuring-bind (_ . form) button (setf selected (eval form)) (insert (tty-menu-button-string item))))) (:method ((item tty-menu-separator) pane) (with-slots (layout) pane (cl-destructuring-bind (_ button-width _ _ _) layout (tty-menu-ninsert button-width (tty-menu-sep item)))))) (cl-defgeneric tty-menu-draw-name (item pane) (:method ((item tty-menu-item) pane) (with-slots (layout) pane (cl-destructuring-bind (left-border button name-width _ _) layout (with-slots (name) item (insert (tty-menu-name-string item)) (indent-to (+ left-border button name-width)))))) (:method ((item tty-menu-separator) pane) (with-slots (layout) pane (cl-destructuring-bind (_ _ name-width _ _) layout (tty-menu-ninsert name-width (tty-menu-sep item)))))) (cl-defgeneric tty-menu-draw-key (item pane) (:method ((item tty-menu-item) pane) (with-slots (layout) pane (cl-destructuring-bind (left-border button name-width key-width _) la= yout (insert (tty-menu-key-string item)) (indent-to (+ left-border button name-width key-width))))) (:method ((item tty-menu-separator) pane) (with-slots (layout) pane (cl-destructuring-bind (_ _ _ key-width _) layout (tty-menu-ninsert key-width (tty-menu-sep item)))))) (cl-defgeneric tty-menu-draw-finish (item pane) (:method ((item tty-menu-item) _) (let* ((enabled (tty-menu-enabled-p item)) (face (if enabled 'tty-menu-enabled-face 'tty-menu-disabled-face))) (put-text-property (pos-bol) (pos-eol) 'tty-menu-selectable enabled) (put-text-property (pos-bol) (pos-eol) 'face face)) (when-let* ((help (slot-value item 'help))) (put-text-property (pos-bol) (pos-eol) 'help-echo help))) (:method ((_item tty-menu-separator) _) (put-text-property (pos-bol) (pos-eol) 'tty-menu-selectable nil) (put-text-property (pos-bol) (pos-eol) 'face 'tty-menu-enabled-face))) (cl-defgeneric tty-menu-layout (pane) (:method ((pane tty-menu-pane)) (with-slots (items layout) pane (cl-loop with left-border =3D (string-width (format tty-menu-left-border-form= at "")) with right-border =3D (string-width (format tty-menu-right-border-fo= rmat "")) for i in items maximize (string-width (tty-menu-button-string i)) into button maximize (string-width (tty-menu-name-string i)) into name maximize (string-width (tty-menu-key-string i)) into key finally (setq layout `(,left-border ,button ,name ,key ,right-border= )))))) (defun tty-menu-try-place-point (selectable old-line) (goto-char (point-min)) (if (nth old-line selectable) (forward-line old-line) (let ((next (cl-loop for i from (1+ old-line) to (1- (length selectable)) when (nth i selectable) return i)) (prev (cl-loop for i downfrom (1- old-line) to 0 when (nth i selectable) return i))) (cond (next (forward-line next)) (prev (forward-line prev)))))) (cl-defgeneric tty-menu-draw (item pane) (:method ((pane tty-menu-pane) line) (with-slots (buffer items) pane (with-current-buffer buffer (let ((old-line (or line (1- (line-number-at-pos))))) (erase-buffer) (tty-menu-layout pane) (let ((selectable (cl-loop for i in items when (tty-menu-visible-p i) do (tty-menu-draw i pane) and collect (tty-menu-selectable-p i)))) (tty-menu-try-place-point selectable old-line)))))) (:method :around ((item tty-menu-item) pane) (let ((start (point))) (insert (format tty-menu-left-border-format "")) (cl-call-next-method) (insert (format tty-menu-right-border-format "")) (tty-menu-draw-finish item pane) (insert ?\n) (put-text-property start (point) 'tty-menu-item item))) (:method ((item tty-menu-item) pane) (tty-menu-draw-button item pane) (tty-menu-draw-name item pane) (tty-menu-draw-key item pane))) (defvar-local tty-menu-selection-ov nil) (defvar-local tty-menu-pane-drawn nil) (cl-defgeneric tty-menu-select-item (item how) (:method ((item tty-menu-item) how) (when-let* ((enabled (tty-menu-enabled-p item))) (throw 'tty-menu-item-selected (cons item how)))) (:method ((_item tty-menu-separator) _)) (:method ((item tty-menu-button) _) (with-slots (binding) item (when (commandp binding) (call-interactively binding)) (tty-menu-draw tty-menu-pane-drawn nil)))) (defun tty-menu-create-buffer (pane) "Create a buffer named BUFFER for DRAW to fill. DRAW is called with no arguments and with current buffer being the buffer created. Value is (BUFFER WIDTH HEIGHT), where BUFFER is the buffer that was used, WIDTH is the maximum line width in the buffer, and HEIGHT is the number of lines in the buffer. " (with-slots (buffer) pane (with-current-buffer buffer (dolist (var '((mode-line-format . nil) (header-line-format . nil) (tab-line-format . nil) (tab-bar-format . nil) (frame-title-format . "") (truncate-lines . t) (cursor-in-non-selected-windows . nil) (cursor-type . nil) (show-trailing-whitespace . nil) (display-line-numbers . nil) (left-fringe-width . nil) (right-fringe-width . nil) (left-margin-width . 0) (right-margin-width . 0) (fringes-outside-margins . 0) (scroll-conservatively . 1))) (set (make-local-variable (car var)) (cdr var))) (let ((inhibit-modification-hooks t) (inhibit-read-only t) (indent-tabs-mode nil)) (setq tty-menu-selection-ov nil tty-menu-pane-drawn pane) (tty-menu-draw pane 0) (cl-flet ((line-width () (save-excursion (goto-char (point-min)) (goto-char (line-end-position)) (current-column)))) (list (current-buffer) (line-width) (count-lines (point-min) (point-max)))))))) (defun tty-menu-make-element (item) (cl-labels ((separator? (name) (string-prefix-p "--" name)) (button? (props) (plist-get props :button)) (radio? (props) (eq (car (button? props)) :radio)) (toggle? (props) (eq (car (button? props)) :toggle))) ;; COND* complains about unknown pattern (PREDICATE symbol) if ;; PREDICATE is a local function. Use (CONSTRAIN symbol (PRODICATE ;; symbol)) instead. (cond* ((match* (cons 'menu-item (cons (constrain name (separator? name)) props)) item) (apply #'make-instance 'tty-menu-separator (cl-list* :name name props= ))) ((match* (list 'menu-item name) item) (make-instance 'tty-menu-item :name name :enable nil)) ((match* (cons 'menu-item (cons name (cons binding (constrain props (radio? props))))) item) (apply #'make-instance 'tty-menu-radio (cl-list* :name name :binding binding props))) ((match* (cons 'menu-item (cons name (cons binding (constrain props (toggle? props))))) item) (apply #'make-instance 'tty-menu-checkbox (cl-list* :name name :binding binding props))) ((match* (cons 'menu-item (cons name (cons binding props))) item) (apply #'make-instance 'tty-menu-item (cl-list* :name name :binding binding props))) ((match* (cons (constrain name (separator? name)) _) item) (make-instance 'tty-menu-separator :name name)) ((match* (cons name (cons help binding)) item) (make-instance 'tty-menu-item :name name :binding binding :help help)) ((match* (cons name binding) item) (make-instance 'tty-menu-item :name name :binding binding)) (t (error "No match for menu item %S" item))))) (defun tty-menu-keymap-name (keymap default) (let ((name (last keymap))) (or (and (stringp (car name)) (car name)) default))) (defun tty-menu-make-pane-buffer (keymap) (cl-labels ((pane-buffer-name () (format " *tty-menu-%s*" (tty-menu-keymap-name keymap "<no-name>"))) (make-pane () (make-instance 'tty-menu-pane :buffer (get-buffer-create (pane-buffer-name)) :items (cl-loop for b being the key-bindings of keymap collect (tty-menu-make-element b))))) (tty-menu-create-buffer (make-pane)))) (defvar tty-menu-frame-parameters `((visibility . nil) (background-color . "grey20") (foreground-color . "white") (width . 0) (height . 0) (min-width . t) (min-height . t) (no-accept-focus . t) (no-focus-on-map . t) (border-width . 0) (child-frame-border-width . 1) (left-fringe . 0) (right-fringe . 0) (vertical-scroll-bars . nil) (horizontal-scroll-bars . nil) (tty-menu-bar-lines . 0) (tool-bar-lines . 0) (tab-bar-lines . 0) (no-other-frame . t) (no-other-window . t) (no-delete-other-windows . t) (unsplittable . t) (undecorated . t) (cursor-type . nil) (no-special-glyphs . t) (desktop-dont-save . t))) (defun tty-menu-frame-parameters () (let ((params (copy-sequence tty-menu-frame-parameters)) (fg (face-attribute 'tty-menu-enabled-face :foreground)) (bg (face-attribute 'tty-menu-enabled-face :background))) (when (stringp fg) (setf (alist-get 'foreground-color params) fg)) (when (stringp bg) (setf (alist-get 'background-color params) bg)) params)) (defun tty-menu-make-fully-visible (f1 f2 x y) (let* ((f1-edges (frame-edges f1)) (f1-width (frame-width f1)) (f1-height (frame-height f1)) (f1-x (nth 0 f1-edges)) (f1-y (nth 1 f1-edges)) (f2-width (frame-width f2)) (f2-height (frame-height f2)) (new-x (max f1-x (min (+ f1-x f1-width (- f2-width)) x))) (new-y (max f1-y (min (+ f1-y f1-height (- f2-height)) y)))) ;; Ensure F2 is fully contained within F1 (setq new-x (min new-x (+ f1-x f1-width (- f2-width)))) (setq new-y (min new-y (+ f1-y f1-height (- f2-height)))) ;; Move and resize F2 (set-frame-position f2 new-x new-y) (set-frame-size f2 f2-width f2-height))) (defun tty-menu-frame-absolute-position (frame x y) "Translate (X, Y) in FRAME to absolute coordinates relative to the root f= rame." (let ((current-frame frame) (abs-x x) (abs-y y)) (while (frame-parent current-frame) (let ((edges (frame-edges current-frame))) (setq abs-x (+ abs-x (nth 0 edges))) (setq abs-y (+ abs-y (nth 1 edges))) (setq current-frame (frame-parent current-frame)))) (cons abs-x abs-y))) (defun tty-menu-create-frame (keymap where) (cl-destructuring-bind (buffer width height) (tty-menu-make-pane-buffer keymap) (cl-destructuring-bind (parent-frame x y) where ;; We want to show the menu using a root frame as parent because ;; that doesn't clip the frame. Means that we have to translate ;; coordinates to absolute. (when (frame-parent parent-frame) (cl-destructuring-bind (ax . ay) (tty-menu-frame-absolute-position parent-frame x y) (setq x ax y ay) (setq parent-frame (frame-root-frame parent-frame)))) (let* ((minibuffer (minibuffer-window parent-frame)) (window-min-height 1) (window-min-width 1) (after-make-frame-functions nil) (frame (make-frame `((parent-frame . ,parent-frame) (name . ,(buffer-name buffer)) (minibuffer . ,minibuffer) ,@(tty-menu-frame-parameters)))) (win (frame-root-window frame))) (set-window-buffer win buffer) (set-window-dedicated-p win t) (set-frame-size frame width height) (set-frame-position frame x y) (tty-menu-make-fully-visible parent-frame frame x y) (make-frame-visible frame) (raise-frame frame) (select-frame-set-input-focus frame) frame)))) (defun tty-menu-mouse-select-item (event) (interactive "e") (let* ((end (event-end event)) (win (posn-window end))) (unless (eq (window-frame win) (tty-top-frame)) (throw 'tty-menu-item-selected nil)) (when-let* ((item (get-text-property (posn-point end) 'tty-menu-item))) (tty-menu-select-item item 'mouse)))) (defun tty-menu-key-select-item () (interactive) (when-let* ((item (get-text-property (point) 'tty-menu-item))) (tty-menu-select-item item 'key))) (defun tty-menu-mouse-moved (event) (interactive "e") (let* ((end (event-end event)) (win (posn-window end))) (when (eq (window-frame win) (tty-top-frame)) (let ((item (get-text-property (posn-point end) 'tty-menu-item))) (when (and item (tty-menu-selectable-p item)) (goto-char (posn-point end))))))) (defun tty-menu-next-line () (interactive) (cl-loop for next =3D (next-single-property-change (point) 'tty-menu-item) then (next-single-property-change next 'tty-menu-item) while next for item =3D (get-text-property next 'tty-menu-item) until (tty-menu-selectable-p item) finally (when next (goto-char next)))) (defun tty-menu-previous-line () (interactive) (cl-loop for prev =3D (previous-single-property-change (point) 'tty-menu-item nil (point-min)) then (previous-single-property-change prev 'tty-menu-item nil (point-min)) while prev for item =3D (get-text-property prev 'tty-menu-item)=20 if (tty-menu-selectable-p item) do (goto-char prev) and return t else if (eq prev (point-min)) return t)) (defun tty-menu-close-pane () (interactive) (throw 'tty-menu-item-selected nil)) (defun tty-menu-isearch (forward) (isearch-mode forward nil nil) (while isearch-mode (let* ((key (read-key-sequence nil nil t nil nil nil))) (when-let* ((cmd (lookup-key isearch-mode-map key))) (if (and (eq cmd #'isearch-printing-char) (stringp key)) (isearch-printing-char (aref key 0)) (call-interactively cmd)))))) (defun tty-menu-isearch-forward () (interactive) (tty-menu-isearch t)) =20=20 (defun tty-menu-isearch-backward () (interactive) (tty-menu-isearch nil)) (defvar-keymap tty-menu-keymap :doc "Keymap for menu interaction." "<up>" #'tty-menu-previous-line "<down>" #'tty-menu-next-line "<left>" #'tty-menu-close-pane "C-b" #'tty-menu-close-pane "C-g" #'keyboard-quit "C-j" #'tty-menu-key-select-item "C-n" #'tty-menu-next-line "C-p" #'tty-menu-previous-line "C-r" #'tty-menu-isearch-backward "C-s" #'tty-menu-isearch-forward "RET" #'tty-menu-key-select-item "SPC" #'tty-menu-key-select-item "<return>" #'tty-menu-key-select-item "<mouse-movement>" #'tty-menu-mouse-moved "<mouse-1>" #'tty-menu-mouse-select-item) (defun tty-menu-show-selected-item () (unless tty-menu-selection-ov (setq tty-menu-selection-ov (make-overlay 1 1)) (overlay-put tty-menu-selection-ov 'face 'tty-menu-selected-face)) (move-overlay tty-menu-selection-ov (line-beginning-position) (line-end-p= osition))) (defun tty-menu-global-menu () (keymap-lookup global-map "<menu-bar>")) (defun tty-menu-position (pos) (interactive) (cond* ((match* 'nil pos) nil) ((match* 't pos) (cl-destructuring-bind (frame x . y) (mouse-position) ;; mouse-position sometimes returns nil for x and y which I ;; think should not happen. (list frame (or x 10) (or y 10)))) ((match* (eventp e) pos) (let* ((end (event-end e)) (win (posn-window end)) (x (car (posn-x-y end))) (y (cdr (posn-x-y end)))) (cl-destructuring-bind (wx wy _ _) (window-edges win nil t) (list (window-frame win) (+ wx x) (+ wy y))))) ((match* (cons (cons (numberp x) (numberp y)) (cons (windowp win) _)) pos) (cl-destructuring-bind (wx wy _ _) (window-edges win nil t) (list (window-frame win) (+ wx x) (+ wy y)))) ((match* (cons (list (numberp x) (numberp y)) (cons (framep frame) _)) pos) (list frame x y)) ((match* (cons (cons (numberp x) (numberp y)) (cons (framep frame) _)) pos) (list frame x y)) ((match* (cons (numberp x) (numberp y)) pos) (list (selected-frame) x y)) (t (error "%S does not match in tty-menu-position" pos)))) (defun tty-menu-where (how) (cl-ecase how (mouse (tty-menu-position t)) (key (let* ((posn (posn-at-point (line-end-position))) (xy (posn-x-y posn)) (win (posn-window posn))) (tty-menu-position (list xy win)))))) (defun tty-menu-loop (keymap where) (let ((frame (tty-menu-create-frame keymap where))) (unwind-protect ;; Inner loop handling mouse movement over the pane, ;; moving with the keyboard on the pane. The loop is ;; left by a throw when a menu-item is selected. (cl-loop named outer-loop while t for res =3D (catch 'tty-menu-item-selected (while t (tty-menu-show-selected-item) (let* ((track-mouse t) (key (read-key-sequence nil)) (cmd (lookup-key tty-menu-keymap key))) (when (commandp cmd) (call-interactively cmd))))) do ;; If the selected item was for a sub-pane, call ourselves ;; recursively with the sub-pane. (cond* ((match* (cons selected how) res) (with-slots (binding) selected (if (keymapp binding) (tty-menu-loop binding (tty-menu-where how)) ;; Return a list because x-popup-menu does. (cl-return-from outer-loop (list binding))))) ((match* 'nil res) (cl-return-from outer-loop nil)))) (when frame (delete-frame frame))))) (defun frame-with-name (name) (cl-flet ((frame-name (frame) (frame-parameter frame 'name))) (cl-find-if (lambda (f) (equal (frame-name f) name)) (frame-list)))) (defun tty-menu-delete-menu-frames () (cl-flet ((frame-name (frame) (frame-parameter frame 'name))) (cl-loop for frame in (frame-list) when (string-prefix-p " *tty-menu-" (frame-name frame)) do (delete-frame frame)))) =20=20 (cl-defun tty-menu-popup-menu (position menu) (when-let* ((where (tty-menu-position position))) (cond ((keymapp menu) (tty-menu-loop menu where)) ((consp menu) (cl-loop with outer =3D (make-sparse-keymap "outer") for keymap in menu for name =3D (tty-menu-keymap-name keymap "?") do (define-key outer (vector (intern name)) keymap) finally (tty-menu-loop outer where))) (t (error "Not a menu: %S" menu))))) ;;;###autoload (define-minor-mode tty-menu-mode "Global minor mode for displaying menus with tty child frames." :global t :group 'menu (unless (display-graphic-p) (if tty-menu-mode (remove-function (symbol-function 'x-popup-menu) #'tty-menu-popup-menu)) (add-function :override (symbol-function 'x-popup-menu) #'tty-menu-popup-menu))) (provide 'tty-menu) ;;; Local Variables: ;;; fill-column: 80 ;;; End: --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 9 Feb 2025 11:01:36 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 09 06:01:36 2025 Received: from localhost ([127.0.0.1]:43294 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1th54B-0003W0-Ks for submit <at> debbugs.gnu.org; Sun, 09 Feb 2025 06:01:35 -0500 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:59679) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1th548-0003VW-8M for 75056 <at> debbugs.gnu.org; Sun, 09 Feb 2025 06:01:33 -0500 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-38dc962f1b9so1184592f8f.3 for <75056 <at> debbugs.gnu.org>; Sun, 09 Feb 2025 03:01:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739098886; x=1739703686; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=khmS/yNzQU9dOK+jDT55XTorzDw6FTCft8aIu7I099k=; b=LPzKfPnd0MDwm9sQd+5hRMtUUh2ALCAh8CiTiKEvYmYvBFcQG3ZlcT1tj3IuTq+Z64 CRXKAfwGs4QOjAJq3dSgzOqVvbmcutJfFZAPQ/mWF+bYnDyZfBBLAwEba9eQ0kERlWDE us9DwE7X2VpusvRnb9gxMtOAB8iDlfSzeex/QcTnhybLDOZtEVE0NpI4D6zq5udRdNRL cFEyfPH0XU/2gaYwYqVef/z1exBUiCif1EbiemgwkI1iw/yEmCqLwSo3wGZmqmeztDsc PbBG558bfS31QW71nMWBYW9OeTZSKdgnYPXotnqRIkDq3AdJKHtOofWwWyuaJ+bzwqlJ gDbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739098886; x=1739703686; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=khmS/yNzQU9dOK+jDT55XTorzDw6FTCft8aIu7I099k=; b=bm5MwmVz/qSUoPP5skKAkJrD6w8vyzlLnPn/DeBYRxnEP32xtRXXzr95ME3WCHH/HF 130GYvmZH+w3AQCQ+mFXM13AcaGt0ZFUi8eZuqUvXkrhB2LPS/QxHvcR29hmtTupb82q miRLKU5ItNe4V3DIEZw6AhF9bo6ixMIDwNdJEhQLvlfFVNqKFPSLhFyp8vSazkE4Cxu+ 72+qRM637mGrh4YsnsiGA12/WZHCJ9+EHV8qvVV0h8p6xGmpByDrQmo4YqB8sD9qv2s2 4/6ZudgBBwmJnwajKQSmxKV0QcxgIpHAteGONQQbr8mAF+Q2yk3wt3GXLK+S15ROvNfw 0oXg== X-Forwarded-Encrypted: i=1; AJvYcCVdyFvSuHjjRJ3hhOC1mVfdF5t/RS9g8xLU8cmQjgYvzbVvqkoIT6XYbrgor8Ne+0QmBdnLVg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YydAlowrS8uKSLUZm0XE/qP7Rpku0S49kjy9WgLr7ugywjBZM5T CDfzMeX6CsqeylpaiXP9ao0SPGTnv4dq2Bz91IktNn5vEXjcxE/04GhfpA== X-Gm-Gg: ASbGncsMFHKU2RrUqYbP60oNsF98rfJn1FsijGqIJV76V/9F1wmxTHAyAdVOlj3d52o IznPNgzFNBh7X9a3s1bJcCQR+hwmqKaIaFcV+WkGERQZv4eCPJg9/U5VcPiQgBOJGPFUooNf4Ts gS6Obp3kkyJA1jtspI+cg05DiWENvQZ4O10hfpTTjd1IQ2E01mKnK/Cq+TNVFHH9WCdmvGRYFzA XFgD5C92poe78CeuGzOtG2aYwCzO7cSzsHUF8aSWQUjavrsBESm5Ao7xKJHwfdvNys04xBXOsZx qTlVhZWH6z6KhvW5NCBZfNy9rYyxx6OYJLQEF/fGAAcqxGxsT823EfnjKVJs3r89JZROfzZ6oNx b6ZrN3h4YJdbcJJkssAhNVho1 X-Google-Smtp-Source: AGHT+IE/3MB+GmHYaOGziTymJEYGlkmGbiewoC0lDgdD3EhoygMqu41qFUgdFxUXft4t7/+Ie9dNMQ== X-Received: by 2002:adf:e981:0:b0:385:f7d2:7e9b with SMTP id ffacd0b85a97d-38dc90e1758mr5434384f8f.30.1739098885337; Sun, 09 Feb 2025 03:01:25 -0800 (PST) Received: from pro2 (p200300e0b725cf0094296d0536d9d0d3.dip0.t-ipconnect.de. [2003:e0:b725:cf00:9429:6d05:36d9:d0d3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38dbde1dfaesm9503067f8f.90.2025.02.09.03.01.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 09 Feb 2025 03:01:24 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <m2msf6ezfq.fsf@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> <m2seozjo3c.fsf@HIDDEN> <m2msf6ezfq.fsf@HIDDEN> Date: Sun, 09 Feb 2025 12:01:23 +0100 Message-ID: <m2jz9zmlfg.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > >> I take everything back. I think it would be much much better to do that >> all in Lisp. > > FWIW, a proof-of-concept, only showing a frame with a menu. 200 loc with > half of it copied from tty-tip.el. I'm not sure if it's worth it, but I did a bit more. You can try it out with something like (tty-menu-popup-menu t menu-bar-file-menu) --=-=-= Content-Type: application/emacs-lisp Content-Disposition: attachment; filename=tty-menu.el Content-Transfer-Encoding: quoted-printable ;; -*- lexical-binding: t; symbol-packages: t -*- ;;; tty-menu.el --- A menu implementation in Lisp ;; Copyright (C) 2025 Gerd M=C3=B6llmann ;; This file is not part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. ;;; Commentary: ;;; Code: ;;; Todo ;; A mode: Open a sub-menu by moving the selection into the menu-item ;; for the sub-menu. Close it by moving the selection out. ;; Make cursor invisible somehow (is cursor-type not supposed to ;; work?) ;; menu-bar-menu doesn't work (list of keymaps?) (eval-when-compile (require 'cl-lib)) (defclass tty-menu-element () () :documentation "Base class for elements of a menu.") (defclass tty-menu-pane (tty-menu-element) ((items :initarg :items :initform nil :type t) (buffer :initarg :buffer :type buffer) (layout :type list)) :documentation "Class for menu panes.") (defclass tty-menu-item (tty-menu-element) ((name :initarg :name :type string) (enable :initarg :enable :initform t :type t) (help :initarg :help :initform nil :type t) (visible :initarg :visible :initform t :type t) (key-sequence :initarg :key-sequence :initform nil :type t) (keys :initarg :keys :initform nil :type t) (filter :initarg :filter :initform nil :type t) (button :initarg :button :initform nil :type t) (selected :initarg :selected :initform nil :type t) (binding :initarg :binding :initform nil :type t))) (defclass tty-menu-button (tty-menu-item) ()) (defclass tty-menu-radio (tty-menu-button) ()) (defclass tty-menu-checkbox (tty-menu-button) ()) (defclass tty-menu-separator (tty-menu-item) ((sep :initform "-" :type string :reader tty-menu-sep))) (cl-defmethod initialize-instance :after ((item tty-menu-separator) &rest) (with-slots (name sep enable) item (setf enable nil) (cl-multiple-value-bind (ch disp) (pcase name ("--space" (cl-values ?\s nil)) ("--double-line" (cl-values ?=3D 'box-double-horizontal)) (_ (cl-values ?- 'box-horizontal))) (setf sep (make-string 1 (or (and disp (let ((c (display-table-slot standard-display-table disp))) (and (characterp c) c))) ch)))))) (defvar tty-menu-left-border-format "%1s") (defvar tty-menu-right-border-format "%1s") (defvar tty-menu-button-format "%-4s") (defvar tty-menu-key-format "%10s") (defvar tty-menu-name-format "%s") (defvar tty-menu-triangle "=E2=96=B7") (defvar tty-menu-radio-on "=E2=9C=94") (defvar tty-menu-radio-off "") (defvar tty-menu-checkbox-on "=E2=9C=94") (defvar tty-menu-checkbox-off "=F0=90=84=82") (defun tty-menu-selectable-p (item) (eval (slot-value item 'enable))) (defun tty-menu-visible-p (item) (eval (slot-value item 'visible))) (defun tty-menu-enabled-p (item) (eval (slot-value item 'enable))) (defun tty-menu-ninsert (n x) (cl-loop repeat n do (insert x))) (cl-defgeneric tty-menu-button-string (item) (:method ((_ tty-menu-item)) "") (:method ((r tty-menu-radio)) (format tty-menu-button-format (if (slot-value r 'selected) tty-menu-radio-on tty-menu-radio-off))) (:method ((c tty-menu-checkbox)) (format tty-menu-button-format (if (slot-value c 'selected) tty-menu-checkbox-on tty-menu-checkbox-off))) (:method ((_ tty-menu-separator)) "")) (cl-defgeneric tty-menu-name-string (item) (:method ((item tty-menu-item)) (format tty-menu-name-format (slot-value item 'name))) (:method ((_ tty-menu-separator)) "")) (cl-defgeneric tty-menu-key-string (item) (:method ((item tty-menu-item)) (format tty-menu-key-format (with-slots (binding) item (cond ((commandp binding) (key-description (where-is-internal binding nil t))) ((keymapp binding) tty-menu-triangle) (t (format "?? %S" binding)))))) (:method ((_ tty-menu-separator)) "")) (cl-defgeneric tty-menu-draw-button (item pane) (:method ((_item tty-menu-item) pane) (with-slots (layout) pane (cl-destructuring-bind (_ button-width _ _ _) layout (tty-menu-ninsert button-width ?\s)))) (:method ((item tty-menu-button) _pane) (with-slots (selected button) item (cl-destructuring-bind (_ . form) button (setf selected (eval form)) (insert (tty-menu-button-string item))))) (:method ((item tty-menu-separator) pane) (with-slots (layout) pane (cl-destructuring-bind (_ button-width _ _ _) layout (tty-menu-ninsert button-width (tty-menu-sep item)))))) (cl-defgeneric tty-menu-draw-name (item pane) (:method ((item tty-menu-item) pane) (with-slots (layout) pane (cl-destructuring-bind (left-border button name-width _ _) layout (with-slots (name) item (insert (tty-menu-name-string item)) (indent-to (+ left-border button name-width)))))) (:method ((item tty-menu-separator) pane) (with-slots (layout) pane (cl-destructuring-bind (_ _ name-width _ _) layout (tty-menu-ninsert name-width (tty-menu-sep item)))))) (cl-defgeneric tty-menu-draw-key (item pane) (:method ((item tty-menu-item) pane) (with-slots (layout) pane (cl-destructuring-bind (left-border button name-width key-width _) la= yout (insert (tty-menu-key-string item)) (indent-to (+ left-border button name-width key-width))))) (:method ((item tty-menu-separator) pane) (with-slots (layout) pane (cl-destructuring-bind (_ _ _ key-width _) layout (tty-menu-ninsert key-width (tty-menu-sep item)))))) (cl-defgeneric tty-menu-draw-finish (item pane) (:method ((item tty-menu-item) _) (let* ((enabled (tty-menu-enabled-p item)) (face (if enabled 'tty-menu-enabled-face 'tty-menu-disabled-face))) (put-text-property (pos-bol) (pos-eol) 'tty-menu-selectable enabled) (put-text-property (pos-bol) (pos-eol) 'face face)) (when-let* ((help (slot-value item 'help))) (put-text-property (pos-bol) (pos-eol) 'help-echo help))) (:method ((_item tty-menu-separator) _) (put-text-property (pos-bol) (pos-eol) 'tty-menu-selectable nil) (put-text-property (pos-bol) (pos-eol) 'face 'tty-menu-enabled-face))) (cl-defgeneric tty-menu-layout (pane) (:method ((pane tty-menu-pane)) (with-slots (items layout) pane (cl-loop with left-border =3D (string-width (format tty-menu-left-border-form= at "")) with right-border =3D (string-width (format tty-menu-right-border-fo= rmat "")) for i in items maximize (string-width (tty-menu-button-string i)) into button maximize (string-width (tty-menu-name-string i)) into name maximize (string-width (tty-menu-key-string i)) into key finally (setq layout `(,left-border ,button ,name ,key ,right-border= )))))) (defun tty-menu-try-place-point (selectable old-line) (goto-char (point-min)) (if (nth old-line selectable) (forward-line old-line) (let ((next (cl-loop for i from (1+ old-line) to (1- (length selectable)) when (nth i selectable) return i)) (prev (cl-loop for i downfrom (1- old-line) to 0 when (nth i selectable) return i))) (cond (next (forward-line next)) (prev (forward-line prev)))))) (cl-defgeneric tty-menu-draw (item pane) (:method ((pane tty-menu-pane) line) (with-slots (buffer items) pane (with-current-buffer buffer (let ((old-line (or line (1- (line-number-at-pos))))) (erase-buffer) (tty-menu-layout pane) (let ((selectable (cl-loop for i in items when (tty-menu-visible-p i) do (tty-menu-draw i pane) and collect (tty-menu-selectable-p i)))) (tty-menu-try-place-point selectable old-line)))))) (:method :around ((item tty-menu-item) pane) (let ((start (point))) (insert (format tty-menu-left-border-format "")) (cl-call-next-method) (insert (format tty-menu-right-border-format "")) (tty-menu-draw-finish item pane) (insert ?\n) (put-text-property start (point) 'tty-menu-item item))) (:method ((item tty-menu-item) pane) (tty-menu-draw-button item pane) (tty-menu-draw-name item pane) (tty-menu-draw-key item pane))) (defvar-local tty-menu-selection-ov nil) (defvar-local tty-menu-pane-drawn nil) (cl-defgeneric tty-menu-select-item (item how) (:method ((item tty-menu-item) how) (when-let* ((enabled (tty-menu-enabled-p item))) (throw 'tty-menu-item-selected (cons item how)))) (:method ((_item tty-menu-separator) _)) (:method ((item tty-menu-button) _) (with-slots (binding) item (when (commandp binding) (call-interactively binding)) (tty-menu-draw tty-menu-pane-drawn nil)))) (defun tty-menu-create-buffer (pane) "Create a buffer named BUFFER for DRAW to fill. DRAW is called with no arguments and with current buffer being the buffer created. Value is (BUFFER WIDTH HEIGHT), where BUFFER is the buffer that was used, WIDTH is the maximum line width in the buffer, and HEIGHT is the number of lines in the buffer. " (with-slots (buffer) pane (with-current-buffer buffer (dolist (var '((mode-line-format . nil) (header-line-format . nil) (tab-line-format . nil) (tab-bar-format . nil) (frame-title-format . "") (truncate-lines . t) (cursor-in-non-selected-windows . nil) (cursor-type . nil) (show-trailing-whitespace . nil) (display-line-numbers . nil) (left-fringe-width . nil) (right-fringe-width . nil) (left-margin-width . 0) (right-margin-width . 0) (fringes-outside-margins . 0) (scroll-conservatively . 1))) (set (make-local-variable (car var)) (cdr var))) (let ((inhibit-modification-hooks t) (inhibit-read-only t) (indent-tabs-mode nil)) (setq tty-menu-selection-ov nil tty-menu-pane-drawn pane) (tty-menu-draw pane 0) (cl-flet ((line-width () (save-excursion (goto-char (point-min)) (goto-char (line-end-position)) (current-column)))) (list (current-buffer) (line-width) (count-lines (point-min) (point-max)))))))) (defun tty-menu-make-element (item) (cl-labels ((separator? (name) (string-prefix-p "--" name)) (button? (props) (plist-get props :button)) (radio? (props) (eq (car (button? props)) :radio)) (toggle? (props) (eq (car (button? props)) :toggle))) ;; COND* complains about unknown pattern (PREDICATE symbol) if ;; PREDICATE is a local function. Use (CONSTRAIN symbol (PRODICATE ;; symbol)) instead. (cond* ((match* (cons 'menu-item (cons (constrain name (separator? name)) props)) item) (apply #'make-instance 'tty-menu-separator (cl-list* :name name props= ))) ((match* (list 'menu-item name) item) (make-instance 'tty-menu-item :name name :enable nil)) ((match* (cons 'menu-item (cons name (cons binding (constrain props (radio? props))))) item) (apply #'make-instance 'tty-menu-radio (cl-list* :name name :binding binding props))) ((match* (cons 'menu-item (cons name (cons binding (constrain props (toggle? props))))) item) (apply #'make-instance 'tty-menu-checkbox (cl-list* :name name :binding binding props))) ((match* (cons 'menu-item (cons name (cons binding props))) item) (apply #'make-instance 'tty-menu-item (cl-list* :name name :binding binding props))) ((match* (cons (constrain name (separator? name)) _) item) (make-instance 'tty-menu-separator :name name)) ((match* (cons name (cons help binding)) item) (make-instance 'tty-menu-item :name name :binding binding :help help)) ((match* (cons name binding) item) (make-instance 'tty-menu-item :name name :binding binding)) (t (error "No match for menu item %S" item))))) (defun tty-menu-keymap-name (keymap default) (let ((name (last keymap))) (or (and (stringp (car name)) (car name)) default))) (defun tty-menu-make-pane-buffer (keymap) (cl-labels ((pane-buffer-name () (format " *tty-menu-%s*" (tty-menu-keymap-name keymap "<no-name>"))) (make-pane () (make-instance 'tty-menu-pane :buffer (get-buffer-create (pane-buffer-name)) :items (cl-loop for b being the key-bindings of keymap collect (tty-menu-make-element b))))) (tty-menu-create-buffer (make-pane)))) (defvar tty-menu-frame-parameters `((visibility . nil) (background-color . "grey20") (foreground-color . "white") (width . 0) (height . 0) (min-width . t) (min-height . t) (no-accept-focus . t) (no-focus-on-map . t) (border-width . 0) (child-frame-border-width . 1) (left-fringe . 0) (right-fringe . 0) (vertical-scroll-bars . nil) (horizontal-scroll-bars . nil) (tty-menu-bar-lines . 0) (tool-bar-lines . 0) (tab-bar-lines . 0) (no-other-frame . t) (no-other-window . t) (no-delete-other-windows . t) (unsplittable . t) (undecorated . t) (cursor-type . nil) (no-special-glyphs . t) (desktop-dont-save . t))) (defun tty-menu-frame-parameters () (let ((params (copy-sequence tty-menu-frame-parameters)) (fg (face-attribute 'tty-menu-enabled-face :foreground)) (bg (face-attribute 'tty-menu-enabled-face :background))) (when (stringp fg) (setf (alist-get 'foreground-color params) fg)) (when (stringp bg) (setf (alist-get 'background-color params) bg)) params)) (defun tty-menu-make-fully-visible (f1 f2 x y) (let* ((f1-edges (frame-edges f1)) (f1-width (frame-width f1)) (f1-height (frame-height f1)) (f1-x (nth 0 f1-edges)) (f1-y (nth 1 f1-edges)) (f2-width (frame-width f2)) (f2-height (frame-height f2)) (new-x (max f1-x (min (+ f1-x f1-width (- f2-width)) x))) (new-y (max f1-y (min (+ f1-y f1-height (- f2-height)) y)))) ;; Ensure F2 is fully contained within F1 (setq new-x (min new-x (+ f1-x f1-width (- f2-width)))) (setq new-y (min new-y (+ f1-y f1-height (- f2-height)))) ;; Move and resize F2 (set-frame-position f2 new-x new-y) (set-frame-size f2 f2-width f2-height))) (defun tty-menu-frame-absolute-position (frame x y) "Translate (X, Y) in FRAME to absolute coordinates relative to the root f= rame." (let ((current-frame frame) (abs-x x) (abs-y y)) (while (frame-parent current-frame) (let ((edges (frame-edges current-frame))) (setq abs-x (+ abs-x (nth 0 edges))) (setq abs-y (+ abs-y (nth 1 edges))) (setq current-frame (frame-parent current-frame)))) (cons abs-x abs-y))) (defun tty-menu-create-frame (keymap where) (cl-destructuring-bind (buffer width height) (tty-menu-make-pane-buffer keymap) (cl-destructuring-bind (parent-frame x y) where ;; We want to show the menu using a root frame as parent because ;; that doesn't clip the frame. Means that we have to translate ;; coordinates to absolute. (when (frame-parent parent-frame) (cl-destructuring-bind (ax . ay) (tty-menu-frame-absolute-position parent-frame x y) (setq x ax y ay) (setq parent-frame (frame-root-frame parent-frame)))) (let* ((minibuffer (minibuffer-window parent-frame)) (window-min-height 1) (window-min-width 1) (after-make-frame-functions nil) (frame (make-frame `((parent-frame . ,parent-frame) (name . ,(buffer-name buffer)) (minibuffer . ,minibuffer) ,@(tty-menu-frame-parameters)))) (win (frame-root-window frame))) (set-window-buffer win buffer) (set-window-dedicated-p win t) (set-frame-size frame width height) (set-frame-position frame x y) (tty-menu-make-fully-visible parent-frame frame x y) (make-frame-visible frame) (raise-frame frame) (select-frame-set-input-focus frame) frame)))) (defun tty-menu-mouse-select-item (event) (interactive "e") (let* ((end (event-end event)) (win (posn-window end))) (unless (eq (window-frame win) (tty-top-frame)) (throw 'tty-menu-item-selected nil)) (when-let* ((item (get-text-property (posn-point end) 'tty-menu-item))) (tty-menu-select-item item 'mouse)))) (defun tty-menu-key-select-item () (interactive) (when-let* ((item (get-text-property (point) 'tty-menu-item))) (tty-menu-select-item item 'key))) (defun tty-menu-mouse-moved (event) (interactive "e") (let* ((end (event-end event)) (win (posn-window end))) (when (eq (window-frame win) (tty-top-frame)) (let ((item (get-text-property (posn-point end) 'tty-menu-item))) (when (and item (tty-menu-selectable-p item)) (goto-char (posn-point end))))))) (defun tty-menu-next-line () (interactive) (cl-loop for next =3D (next-single-property-change (point) 'tty-menu-item) then (next-single-property-change next 'tty-menu-item) while next for item =3D (get-text-property next 'tty-menu-item) until (tty-menu-selectable-p item) finally (when next (goto-char next)))) (defun tty-menu-previous-line () (interactive) (cl-loop for prev =3D (previous-single-property-change (point) 'tty-menu-item nil (point-min)) then (previous-single-property-change prev 'tty-menu-item nil (point-min)) while prev for item =3D (get-text-property prev 'tty-menu-item)=20 if (tty-menu-selectable-p item) do (goto-char prev) and return t else if (eq prev (point-min)) return t)) (defun tty-menu-close-pane () (interactive) (throw 'tty-menu-item-selected nil)) (defun tty-menu-isearch (forward) (isearch-mode forward nil nil) (while isearch-mode (let* ((key (read-key-sequence nil nil t nil nil nil))) (when-let* ((cmd (lookup-key isearch-mode-map key))) (if (and (eq cmd #'isearch-printing-char) (stringp key)) (isearch-printing-char (aref key 0)) (call-interactively cmd)))))) (defun tty-menu-isearch-forward () (interactive) (tty-menu-isearch t)) =20=20 (defun tty-menu-isearch-backward () (interactive) (tty-menu-isearch nil)) (defvar-keymap tty-menu-keymap :doc "Keymap for menu interaction." "<up>" #'tty-menu-previous-line "<down>" #'tty-menu-next-line "<left>" #'tty-menu-close-pane "C-b" #'tty-menu-close-pane "C-g" #'keyboard-quit "C-j" #'tty-menu-key-select-item "C-n" #'tty-menu-next-line "C-p" #'tty-menu-previous-line "C-r" #'tty-menu-isearch-backward "C-s" #'tty-menu-isearch-forward "RET" #'tty-menu-key-select-item "SPC" #'tty-menu-key-select-item "<return>" #'tty-menu-key-select-item "<mouse-movement>" #'tty-menu-mouse-moved "<mouse-1>" #'tty-menu-mouse-select-item) (defun tty-menu-show-selected-item () (unless tty-menu-selection-ov (setq tty-menu-selection-ov (make-overlay 1 1)) (overlay-put tty-menu-selection-ov 'face 'tty-menu-selected-face)) (move-overlay tty-menu-selection-ov (line-beginning-position) (line-end-p= osition))) (defun tty-menu-global-menu () (keymap-lookup global-map "<menu-bar>")) (defun tty-menu-position (pos) (interactive) (cond* ((match* 'nil pos) nil) ((match* 't pos) (cl-destructuring-bind (frame x . y) (mouse-position) ;; mouse-position sometimes returns nil for x and y which I ;; think should not happen. (list frame (or x 10) (or y 10)))) ((match* (eventp e) pos) (let* ((end (event-end e)) (win (posn-window end)) (x (car (posn-x-y end))) (y (cdr (posn-x-y end)))) (cl-destructuring-bind (wx wy _ _) (window-edges win nil t) (list (window-frame win) (+ wx x) (+ wy y))))) ((match* (cons (cons (numberp x) (numberp y)) (cons (windowp win) _)) pos) (cl-destructuring-bind (wx wy _ _) (window-edges win nil t) (list (window-frame win) (+ wx x) (+ wy y)))) ((match* (cons (list (numberp x) (numberp y)) (cons (framep frame) _)) pos) (list frame x y)) ((match* (cons (numberp x) (numberp y)) pos) (list (selected-frame) x y)) (t (error "%S does not match in tty-menu-position" pos)))) (defun tty-menu-where (how) (cl-ecase how (mouse (tty-menu-position t)) (key (let* ((posn (posn-at-point (line-end-position))) (xy (posn-x-y posn)) (win (posn-window posn))) (tty-menu-position (list xy win)))))) (defun tty-menu-loop (keymap where) (let ((frame (tty-menu-create-frame keymap where))) (unwind-protect ;; Inner loop handling mouse movement over the pane, ;; moving with the keyboard on the pane. The loop is ;; left by a throw when a menu-item is selected. (cl-loop named outer-loop while t for res =3D (catch 'tty-menu-item-selected (while t (tty-menu-show-selected-item) (let* ((track-mouse t) (key (read-key-sequence nil)) (cmd (lookup-key tty-menu-keymap key))) (when (commandp cmd) (call-interactively cmd))))) do ;; If the selected item was for a sub-pane, call ourselves ;; recursively with the sub-pane. (cond* ((match* (cons selected how) res) (with-slots (binding) selected (if (keymapp binding) (tty-menu-loop binding (tty-menu-where how)) ;; Return a list because x-popup-menu does. (cl-return-from outer-loop (list binding))))) ((match* 'nil res) (cl-return-from outer-loop nil)))) (when frame (delete-frame frame))))) (defun frame-with-name (name) (cl-flet ((frame-name (frame) (frame-parameter frame 'name))) (cl-find-if (lambda (f) (equal (frame-name f) name)) (frame-list)))) (defun tty-menu-delete-menu-frames () (cl-flet ((frame-name (frame) (frame-parameter frame 'name))) (cl-loop for frame in (frame-list) when (string-prefix-p " *tty-menu-" (frame-name frame)) do (delete-frame frame)))) =20=20 (cl-defun tty-menu-popup-menu (position menu) (when-let* ((where (tty-menu-position position))) (cond ((keymapp menu) (tty-menu-loop menu where)) ((consp menu) (cl-loop with outer =3D (make-sparse-keymap "outer") for keymap in menu for name =3D (tty-menu-keymap-name keymap "?") do (define-key outer (vector (intern name)) keymap) finally (tty-menu-loop outer where))) (t (error "Not a menu: %S" menu))))) ;;;###autoload (define-minor-mode tty-menu-mode "Global minor mode for displaying menus with tty child frames." :global t :group 'menu (unless (display-graphic-p) (if tty-menu-mode (remove-function (symbol-function 'x-popup-menu) #'tty-menu-popup-menu)) (add-function :override (symbol-function 'x-popup-menu) #'tty-menu-popup-menu))) (provide 'tty-menu) ;;; Local Variables: ;;; fill-column: 80 ;;; End: --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 3 Feb 2025 08:33:16 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 03 03:33:16 2025 Received: from localhost ([127.0.0.1]:37668 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tertM-0006D7-IA for submit <at> debbugs.gnu.org; Mon, 03 Feb 2025 03:33:16 -0500 Received: from mout.gmx.net ([212.227.17.22]:58925) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tertJ-0006Cm-Mk for 75056 <at> debbugs.gnu.org; Mon, 03 Feb 2025 03:33:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738571586; x=1739176386; i=rudalics@HIDDEN; bh=hSwzX4crwrlkljMB/auKTsoFn4ufk8inMSuOBe3f/aE=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=Pc4vWlNLiqdfSuqJy3DHfB0/WtOid3Fk8IIZEX6p8oC540MoWBDw3mr57/FdPVqr ubDT7zNltg1vkQIeHAoBxzWPYi4lfJtLl9Quw4MH/Fs4NIfduLKDwPXOZGDV1F0cO UfQroK6uYmWa3wXg3qHoKp55rwE1sVjT1WwBhHVAzPOZbIvTl4M44TXlCkZDy0qzQ J1l9L2fpcc17aVtj/tb19EnX5Jrbb/2F3nPLSzLh2gDBHETLA9i7Tucyx4facCTPE BEWFURuKUWXU34jfCdiDlwB3z8gYL5KvEWuFSoP1up4V9oXXs/8N30+Bm/vxG/Jv0 derDRMnRvYiV5+hXzg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([46.125.249.108]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MDQic-1tXg600iAA-009dvu; Mon, 03 Feb 2025 09:33:06 +0100 Message-ID: <fa5ab88b-9aaf-46e2-a7a0-7482ad151ac5@HIDDEN> Date: Mon, 3 Feb 2025 09:33:03 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m2tt9dkl7x.fsf@HIDDEN> <e2bbcb31-c65c-4af7-b787-2125469cb078@HIDDEN> <m2o6zjy5go.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2o6zjy5go.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:SMIloIGtzdnyNu0GZ+andwi+tVtrfAJKOMfKe4NvYwlyuVRITfR k7Zr+39ecK88Wn3Tl5GbpVu3raysDQBeimivcXMV19pLQeoDpmhUE0AbDcb3wj3cmptEizI Q2zL934M89pI9BJoOVuXXZwRYivwGbz0n657n4WxNAdfZ7SiBtIOxHin+0s7xy24zYy/Vyq mCHYqn318H5Rqv7AJhGNg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:etnVwVT9i8E=;Zfr9zrPn/Xu1GweeIoqec3ZOMSz jp9SbkGFHPQNkFLnz1RXWT0nxsMAKvQKJw6Siy/F8T5EhAoZIdcSeWxpiFnoKZ8mo1IsHxVkJ KRV2/PQ/Rv1kQyHVmvbFL9WdWB6aKTD1WPAOmqvswWTT+SZcUOQq9C/k53mTAJ5oW0WGxVe1N CZ1otAa7BkfRB8ooUTpN+DJIVFOTDp46PsJi6NuB5SlhruVv3achl9RhkwKvcudav8ALQBTIi slWZVDozAqywmp7vCEKz605/GxyUDXSklr9lcmn8RdPy5LxDmnayc6VgeNLeSQ1jX/9/zfjRk XN007AeRrOOmSb6BJgR2kFLYB28zkzhoEtdVZAtaEFEjByZr7Kg+b9YHLy4bVVxh/tRFzmzBk wsBFQB7c2HxKVeM1Z0P25KTP0/j3WkuCFlykLrftG0MdimIjTLcFYYSbzAb5lUinKp0D9jAEd ZGPH7S9ie2zz0OdUNWRPQfgUPYN3yGwIrxVHt03ReKYZ6UYamByE1FKX85ripMQ5MTHFZG7Pk iiTb6hJYWXPT01VxPf5xt382bLDFujW8FDs+EZXGoWhdi45zeXLfH9Ld5r7JSdRjxo/gHptMQ X4P00Ru3TOcflwfBnpQITPZTI+Wk5Y/vGuVM/DQyt4Vgnjiuo/oWtTrf1HdtBavWEpyeTT9Ir fUlLAvHxaLSAu9kQrmMbAB93u4ABleT6s8TKH5niWQ/3AyhRPmqWxB4cFvbPyLomEy6qV0ma8 48NXXAuj2i2Zvs1DMa+e5+FyOQOsctjcb1gOIIgELZYh/uBo6EDN/JdqKdH+K6Zay5GV4dokk mBCZ/xqE1vmEVr0w/t9rrXTi2jSZBZ30QTJ3VVc3eGgiXCgy45mRRXIHLFLimYfTkiEgWuf3Z YDrizjCkKLj0usSDnBj/7L76RLELdBKer7Tz0bQWDVCOoKapkPIIGyffAIznToImDXHE8ECX2 upofgt8B0e2iand94HMbtRgQYOT/pLTNpexyKByw1fvYYKZeJFvAOjIIrGShXr9MKZiWwDomo oB7g9MS6FbmAf19HvYHWqUmwTj8ELRzifRzXeCjK/PyBr2rqjehr42rszKGiMp0yRekfrYSRw aPoh8p7XXCE3umdwM88wMsW3qsLg4CrsWZGQeQOAj8Ut303GGJBDBd5a0HsiajEkjtpi7JJIx wE0ibkNYvWNU2xxKXbxA6qpWe7+9noUaJDJaju41N2rcvVIuPQP822npytez47bnPIdUVYK+s YSU0z0SsNHcrmxPunn2qj3rC/d/+9ILuPeKoMZypUqx+TsjyLpo9XShs3IljqxqTHsYroL8ku QCavdhYbQHHvtJJTIbekF820Kvqcp4bdHL8Z1zfkIx2kVDvQFPnIaBfI2QITND8G3Gp X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > Fix pushed to master. Thanks. I won't check it because I probably could not reproduce it anyway. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 3 Feb 2025 05:15:16 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 03 00:15:15 2025 Received: from localhost ([127.0.0.1]:37252 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1teonj-00022D-M8 for submit <at> debbugs.gnu.org; Mon, 03 Feb 2025 00:15:15 -0500 Received: from mail-ej1-x62e.google.com ([2a00:1450:4864:20::62e]:55569) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1teong-0001xa-6H for 75056 <at> debbugs.gnu.org; Mon, 03 Feb 2025 00:15:13 -0500 Received: by mail-ej1-x62e.google.com with SMTP id a640c23a62f3a-ab6ed8a5a04so638325366b.3 for <75056 <at> debbugs.gnu.org>; Sun, 02 Feb 2025 21:15:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738559706; x=1739164506; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=OuL0Kpb8YJ+D6JZQpAlbq+88jNkNzogasw9TWj7d5nY=; b=Glj/0iDckBu50W+trln1r3QP8xlrn8R+kqs8whi9kujsnEY2jzpXLL69WznMVTonAS jGaxRq3WMdbEenINy75Ec42EjRADHqJRofiS174wbXC7AARZ6MIkePwSOYtTwz5tQt2D ek8Hm7abRYigwi2Jy9su+AnlukGxwPclutKmwPy1GQCmmCFezHjOX5gdJhFHa8eqvfYg uJUYQ2R9O/kthZ85C77khOMFr9qRVGab1R0QTaJ7pliwXmepYGPNMNgUK1B460Aoccon ROEI7YPYKM8KABeWHVycMff5wD5uoQPyyHBRE5ugc7gzB4WDwLk7KiLW8Zwp0d6whllT woRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738559706; x=1739164506; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=OuL0Kpb8YJ+D6JZQpAlbq+88jNkNzogasw9TWj7d5nY=; b=e8lYFeQ+GZBDXAunsCEzjNdcp0ofCPv8CTAsO9A39hHhzG53ZkHcijsvR3g8sAjI86 OkNxwwVrm/wA8iI9aHDZuYi5HnheLn2vO5T+yB5KInEF3hL1Hmj2J7oBRfBiQp9bOEpR GrE9BkEytH2/SP4eBYHXnuvnYmcDue4dIgR73xagmwtXDuRssQ7xAEuUlAkdKursRLzU OQ4MjibiDHtqIs7OiXemIToQDqtOrSFpKFyvjjudCeKvQGzHVSDlhsNyGAkGVzzUJ0jL +WSuUKgRm+AyUVn+zCkDRNkn/fF7VYuI8//6+UDc5OnC6wucwdGijn5NBKQr3LzfGRmW yA7w== X-Forwarded-Encrypted: i=1; AJvYcCU/Ye7oqUxU+hVzvSm/yNd2zNfl7OjXA5D0ooOLZFoRx8t5s4I/R3W1V3Nf2Y3x6WWrjm77ZA==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yzcsk2Lzb5IKLR56ZeonPz0N1qyP7GUiiQYLxkvrel/DckwM2Pe 8VyNsqUIUsr4uNP4zKq0SmE5Y7Mo1bu0X1sVlQya0JG6S1t4qvrGcTI/rw== X-Gm-Gg: ASbGncvu4srmCVs4YeBluj7AeszD5svCdUfZGadbGc7JojrI2/v1EGzer5GiuPo9hAo SGIZKquJ2rXtYrzEnCPrrWKIXZ9lnEMDM8mabLCVGsgIZ4K4WLY0cif0AlrcKoEaGkWtZ2DPkWN nVftpWLSGD8YK/Ejk43MmbNYUxCyRD253QN6v2p1IDURFv8rel/AtcJQGsQSNnH5vL1YDxV0azU 8TqEI4h9H2iZleTku7uiGaDPSkLlSqiSxep5mZ/cE4YyAAdCv8mYLKsAdfOa0dvWJomNS088mKn pdFYGQvFfSkXXo10R93AzLty7nz9/LQ+SPYDZ9PWGkUaS8Jv0etLlOKRxCMApgKyys2PMu6vg14 DK3SS7q0bECXU7+0Ls1Qbj2Zs X-Google-Smtp-Source: AGHT+IHaBzt6mRbmjiakSuGvwTVspL9mlsqgjNmRRNL0eXk9Bec4oV5PnK+cXFdGK7Yd5J5dPaAx2A== X-Received: by 2002:a17:907:940f:b0:ab7:b7d:62b with SMTP id a640c23a62f3a-ab70b7d06b9mr868148266b.6.1738559705401; Sun, 02 Feb 2025 21:15:05 -0800 (PST) Received: from pro2 (p200300e0b7285e007cabc7148d4ef104.dip0.t-ipconnect.de. [2003:e0:b728:5e00:7cab:c714:8d4e:f104]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e47f18e8sm683279866b.76.2025.02.02.21.15.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 02 Feb 2025 21:15:04 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <e2bbcb31-c65c-4af7-b787-2125469cb078@HIDDEN> (martin rudalics's message of "Sun, 2 Feb 2025 09:53:12 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m2tt9dkl7x.fsf@HIDDEN> <e2bbcb31-c65c-4af7-b787-2125469cb078@HIDDEN> Date: Mon, 03 Feb 2025 06:15:03 +0100 Message-ID: <m2o6zjy5go.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> Fix pushed to master. > > Confirmed, thanks. > > Next issue: Please look at how the mode line of the orange window > overlaps the yellow window in the attached screenshot. It happened > after I mouse-clicked the mode line of the yellow window to bring it to > foreground. > > Schon wieder was passiert, martin Fix pushed to master.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 2 Feb 2025 19:39:16 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 02 14:39:16 2025 Received: from localhost ([127.0.0.1]:36374 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tefoK-0002Wi-8z for submit <at> debbugs.gnu.org; Sun, 02 Feb 2025 14:39:16 -0500 Received: from mail-ed1-x530.google.com ([2a00:1450:4864:20::530]:43071) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tefoH-0002WL-Gw for 75056 <at> debbugs.gnu.org; Sun, 02 Feb 2025 14:39:14 -0500 Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-5d9837f201aso8915922a12.0 for <75056 <at> debbugs.gnu.org>; Sun, 02 Feb 2025 11:39:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738525147; x=1739129947; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=O+vN5Da1g85hHQmrxt9sgUqwWBzvw0tQsuhBP7VX750=; b=lbAkQ+9ol71CSwxRTBzPwG1sgXeAPzQgsetf7tvqI7+cnniLP0Ott8e3F5z/VdB7Uw 6oBFcYwpCsDfTOIXPkVdHMuY5HGrhi8WP8U+eLeTTieGFcaNdIUbLDbYzw5mWYcHv/aT ib8lOjuLapxQNJTfvTh2I9TaPRngP4Sdsw4X9IgIpozrovbHS+Yudw57SprxzgV4HIwk rXI27/9Lqt4wM+7b2F0+4MP6Z8Bw2WTC87/ppL0+yYA/sc3avTp+Obd7+zeXLatKDUT0 L+YGutL5XDcAgzW0/iYY+MjXobpz6G8bwYsqaABd2qm2DDvoJ4xn20H3ZEQ7/PoPvVZS ekJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738525147; x=1739129947; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=O+vN5Da1g85hHQmrxt9sgUqwWBzvw0tQsuhBP7VX750=; b=ImjSLnpU9ZHiaGTGE8DVs0Bvqd4JzZ5to3equ0kqcLWCERe2/j1uV+32zNjFGcuKaD 8ZEZdPxqgWUjesMhPvpKgvKY8sZ+yFBYd9sUz/DmywhnbBWwfaKho7NQiOW+GDlCxRp+ byaE8bRm4MIR/yyqtZ0YSNbQhoYh72tED1ZdE6vMHMuHP7KQFX1PyMfScZvx+UV/9Rqc +fJR/nBgFQDLrr98MlGASwjimSCjVisq4mk4mX14Aa1Ci8QfeBY9Kae0MWvNJBF2gVDC w1xHA1tp023m6L/yJK5vHJqWuguGEiKxJYm2GfGVl3s4YYNRaUg0mW0hE831t9m9fLYg VLcg== X-Forwarded-Encrypted: i=1; AJvYcCV9w19mRSfTNocBZR3U2ThB1ydUvlvctDbfQOEufyLyhrYcjkWQYVRjaumNpwCwCsign0wI9w==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwDIYAeDzEcCD3Ge2yfiYihz8qD6XlGgsmjxOp/xU9u+E4ZXV+E OEz+OuYaFZat4aX32YU+pvKv9fajNZ1u7JetWgodRuvTXdrhPPjdspHNEQ== X-Gm-Gg: ASbGncs9avXZSFPz6zu2wyjt5zSbFTTKTdeGtf6dwS8CazuXwRwjtdAgaYjvUIkvj2V nCbn8U7m+UNmaAb8znD/LnfJph7VLE+k3mzdszsZNC3/WDBUNw/en7Tmx9fSsun+MqAOB5eOQtP P738cQI5a828HBTms2MwLuGr5VLXozCqY368rd7YWySlI2meagyxn4gTumIRXuuh4Cbni8XClfi ziMXllpnyQhq0K1k4UgwvYje8Be9mQVf2CmrI9i7TfTT5alnk5oz9ueEoktzqwhUAJ8XkGIRazM t/XN8TXbb/JRv4+GEqFLREuOCnOohHxW3WWXlpI7Yw4b7K10pjG+dJwNUvASdCslclToQTIjQLH mZ+FGmXzkafX/IQJX4VCOPmnr X-Google-Smtp-Source: AGHT+IHq66nLiSHQ5j3B+i4gWMLkcNehVI+u+46PAx/zn2eSSxgJljsE9hJ6QmuJs/bbs80HjROdjg== X-Received: by 2002:a17:906:6a09:b0:aab:8311:951f with SMTP id a640c23a62f3a-ab6e0bc1e0fmr1858225066b.6.1738525146493; Sun, 02 Feb 2025 11:39:06 -0800 (PST) Received: from pro2 (p200300e0b71e2e00b17d1337b17de790.dip0.t-ipconnect.de. [2003:e0:b71e:2e00:b17d:1337:b17d:e790]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e4a562f2sm630496666b.173.2025.02.02.11.39.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 02 Feb 2025 11:39:06 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <a886ab8d-516b-4158-aac4-5afac15a74b6@HIDDEN> (martin rudalics's message of "Sun, 2 Feb 2025 18:37:46 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <a886ab8d-516b-4158-aac4-5afac15a74b6@HIDDEN> Date: Sun, 02 Feb 2025 20:39:05 +0100 Message-ID: <m21pwgyw4m.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> Also, moving child frames is pretty nice too! > > The attached patch now also resizes child frames by dragging their edges > or corners. One thing that does not work is that when another child > frame is beneath an edge, Emacs selects the child frame beneath the edge > before I can start dragging. I think that frame/child frame selection > with the mouse is not perfect in the current state in three regards: > > - When I do down-mouse-1 in the non-selected root frame, Emacs does > 'mouse-set-point' there. I think it should do so only for a mouse-1 > so I can back out before releasing the mouse button and obviously use > the down-mouse-1 for dragging. > > - When I have two overlapping child frames and do down-mouse-1 on a > border of the frame above and that border covers the frame beneath, > Emacs should never select the frame beneath here. Not even after I > release the button. > > - Clicking into a child frame anywhere but on a bar does not select it. > This is uncomfortable and at least does not mimic the behavior of GUI > frames on all window managers I know. > > I'll look into these tomorrow. Pointers welcome. Thanks! Works well for me. Only dragging the edges of a child frame doesn't seem to work like in a GUI. With the mouse bindings I'm afraid I can't help much. I agree that the current use of down-mouse-N is generally not such a great idea. Example: menus on the mode-line. The default binding of down-mouse-1 for opening the menu is a PITA for trackpad users using tap-to-click, and prevents keyboard interaction with the menu because lifting the finger closes the menu. Likewise, it would be nice if one could drag the child frames without having to hold the finger pressed on the trackpad. (In contrast to dragging a region, which can be done with a 3-finger drag.) Very inconvenient, and a bit inconsistent. How that all is currently wired is a bit of a mystery to me. There are a number of keymaps involved, and it is unclear to me which exact purpose each one has, and where mouse key bindings are exactly put in and why: input-decode-map, function-key-map, key-translation-map, global-map, maybe others?
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 2 Feb 2025 17:38:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 02 12:38:08 2025 Received: from localhost ([127.0.0.1]:36109 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tedv4-0001yP-Sj for submit <at> debbugs.gnu.org; Sun, 02 Feb 2025 12:38:08 -0500 Received: from mout.gmx.net ([212.227.17.22]:46239) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tedv0-0001xq-U7 for 75056 <at> debbugs.gnu.org; Sun, 02 Feb 2025 12:38:04 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738517868; x=1739122668; i=rudalics@HIDDEN; bh=0MKRhyfLSuj1oz5sI4LFoQM5dmSyWf/7Q5Yk4Ps5EF8=; h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version: Subject:To:Cc:References:From:In-Reply-To:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=JTCTo73XhnlyjhWp/WMGcv2vZ4Zykzqmu7Yv0R+VClAX1eAyro6POSlMd7sG7Go0 9+1fTVyvbXl13H6C4VsUOCi8qJDt03eNxNFAO5n2JFj560rMtmPMgfapemmQJoeiv zE30ZC5rP1NT5kp9oS7EhtJjt4QXb6VTqq/txOLVpaDPS4rqTWsFbgbCaL5GHQn3u CX52zTDBwIB8EaLSMKlvBmR/YcOuGuxDu1XlKt1uVyDuQ4WWWxc1FfNk77LLzPS7e 2YYhvXwS4UWVxBlJbxTkRZwYjgBeBe16DWxbOzTR0fn+TgudHBgZdNTQBqd5RFn0P 06duIPNsS/eInEwIMA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.97.190]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MoO6C-1t7Twx3HVA-00q7fF; Sun, 02 Feb 2025 18:37:47 +0100 Content-Type: multipart/mixed; boundary="------------OonywoDpVCk8BD8QQlfCUFVy" Message-ID: <a886ab8d-516b-4158-aac4-5afac15a74b6@HIDDEN> Date: Sun, 2 Feb 2025 18:37:46 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m28qqrlkyg.fsf@HIDDEN> X-Provags-ID: V03:K1:tkpHil7sAe7FsDPlv6R0HNAYlBiMIdl6ZfSrJHtFxXWXKoGwryU Ge3dKHHvJqO71cl4ZS06686shiiFe3QkuxDc/Hxj9NCs7ibiqMV7scalsyRYT2CTIee5TS+ tKyon4SsA/6lwJT4ZVSbxHnkmPrdxMkJsgY1M2EUjzA6tijUhz+pIx8A/Q1NSlVOAaTvukg wB8ye6fqf4ELF540qZOZg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:Cgsjpg3dY4s=;ecLdNIXJEueaJsKEnYk1fq8BV2u f5v744wmTpOSzudjW4Wc+fzbIf06f8UH9FC3gdzjH4SCvCHf22yKBhoujXxwXzLQwBWxMHWv8 2yvmljXo9ndAZj7KI3qfZz8A/T0nAy2wLyvSXHJY5eeZQGT0J75wyzih2WkMo3gLI0HVe3rXN B+DEACEaMaHOkA4cwNTAtzkde9thJatcqxpC2avv+4Trpw47ZmoOGQeQSx6LH5D2uZ4pHStNA vjuftXboxauc1D3PpbvdiqHZlc7sQHnElf+vGyT8Q8Gmk2g9G7J4nQNrS8g+7YYHZO3Yd0lZd RnHNfn8qQiqo6ojcm1nGWzruYEDf9vNsp1Dg5zr5zglO4yDrMQmA9ZoPvvADf8VzzX1nLy9eJ vMuY3GGyxLFj+cdcSLJan6fCd9uOxMMmRmkvQfjdUOz8BS2MK8mvIXDvpK7Umlkyp/pKC5HpX UdxNa5+5ODiHFDwXaK6r5DjfiCJEEnKEBoEIMF+845jXx7rCiOd/KYTkaJHcmQk3M/hORPOeW bRH1ETQXwJlovKZ0ZqlWcYm3sSEFVp6VUxPk1RF/fYwuz0uo5AlsgUjKq0Udct5EsvbEj59mE nBXy4TfJakv2iqH0m2mWTC64syI+7r5aBYp62Tj3vi8Cl31ACrRbPVrcyBujjXm3g5u7C7of7 pJO+dR4qJRFfe8QMLZNTJDhy6tt+j+5w6FU5Lup699FO4fbQ7FBcawN2NOWs+XZvXxDeWRQ7V NR2FDxAyZmjn9JrSNZnYQQpbiZNVEjkgi3cfqCj6+sH2/Mlrnbo8V4PuSGl+VyJf/yo0hi2zY L6jDiVLVCMwM5UBwvh4E/Bpc425y1jluRz0AoEqODnSenv0QxXSCjuKn4VtiZKbCfH2qXdMZf 6WaSUaJoCd0oRU+4hmL+GmNz2Se5DSk+jGicYmzFKJJwwX2chHb7a42y+VGLsOzmya6kx8RWA nKPqapUd5Ysb7E5Jt/be9TFMaSpG3j8hKko4kk/HnaHldylf9/hg+BJ/iNBb1UKwTee7XYbti hQJDPrXIhPKZLhywLs3dnD99Izkv0Jyd1f5ewB/2wtuA2z50aYiUk9aDP8BI+ihL0/oaZUnKl PuU0CFrFFBKe14uxAFz12EoqbzhzUnw8XGkvprsp6QG4BtY+lt+K9jfnn/Np5qzZ/jJFYg9CN cPOQrYDes3URALRwZ2onqBNhLcf8aVS3jyb1kV5NRFOh/9J6Agp66hw4gLRNY7B7iZxBgtEPD BIKw0GIzSx/GfsXStDq+WI1+e+NEWDIy2xho+JRoxUjq20K3XeTh2tZBvapyBqAMpiDf0zHkX Fxe+vsf0Ozbnc77sGoUdDaW3c0DRP880ASsISINVGQ5IgAG4f9mkU0Rt8Tdojzzt8Nt X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) This is a multi-part message in MIME format. --------------OonywoDpVCk8BD8QQlfCUFVy Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > Also, moving child frames is pretty nice too! The attached patch now also resizes child frames by dragging their edges or corners. One thing that does not work is that when another child frame is beneath an edge, Emacs selects the child frame beneath the edge before I can start dragging. I think that frame/child frame selection with the mouse is not perfect in the current state in three regards: - When I do down-mouse-1 in the non-selected root frame, Emacs does 'mouse-set-point' there. I think it should do so only for a mouse-1 so I can back out before releasing the mouse button and obviously use the down-mouse-1 for dragging. - When I have two overlapping child frames and do down-mouse-1 on a border of the frame above and that border covers the frame beneath, Emacs should never select the frame beneath here. Not even after I release the button. - Clicking into a child frame anywhere but on a bar does not select it. This is uncomfortable and at least does not mimic the behavior of GUI frames on all window managers I know. I'll look into these tomorrow. Pointers welcome. martin --------------OonywoDpVCk8BD8QQlfCUFVy Content-Type: text/x-patch; charset=UTF-8; name="child-frame-menubar-drag-resize.diff" Content-Disposition: attachment; filename="child-frame-menubar-drag-resize.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvbWVudS1iYXIuZWwgYi9saXNwL21lbnUtYmFyLmVsCmluZGV4 IDEzOTExMTA5ZmQ3Li4xNDY5ZGY2MzE2ZiAxMDA2NDQKLS0tIGEvbGlzcC9tZW51LWJhci5l bAorKysgYi9saXNwL21lbnUtYmFyLmVsCkBAIC0yNjkxLDUzICsyNjkxLDc0IEBAIHBvcHVw LW1lbnUKIAkJCSAoZmlsdGVyICh3aGVuIChzeW1ib2xwIG1hcCkKIAkJCQkgICAocGxpc3Qt Z2V0IChnZXQgbWFwICdtZW51LXByb3ApIDpmaWx0ZXIpKSkpCiAJCSAgICAoaWYgZmlsdGVy IChmdW5jYWxsIGZpbHRlciAoc3ltYm9sLWZ1bmN0aW9uIG1hcCkpIG1hcCkpKSkpCi0JIChm cmFtZSAoc2VsZWN0ZWQtZnJhbWUpKQorCSAoc2VsZWN0ZWQtZnJhbWUgKHNlbGVjdGVkLWZy YW1lKSkKKwkgKGZyYW1lIChpZiAoYW5kIChlcSAoZnJhbWVwIHNlbGVjdGVkLWZyYW1lKSB0 KSAoZnJhbWUtcGFyZW50KQorCQkJIGZyb20tbWVudS1iYXIKKwkJCSAoemVyb3AgKG9yIChm cmFtZS1wYXJhbWV0ZXIgbmlsICdtZW51LWJhci1saW5lcykgMCkpKQorCQkgICAgOzsgSWYg dGhlIHNlbGVjdGVkIGZyYW1lIGlzIGEgdHR5IGNoaWxkIGZyYW1lCisJCSAgICA7OyB3aXRo b3V0IGl0cyBvd24gbWVudSBiYXIgYW5kIHdlIGFyZSBjYWxsZWQgZnJvbQorCQkgICAgOzsg dGhlIG1lbnUgYmFyLCB0aGUgbWVudSBiYXIgbXVzdCBiZSBvbiB0aGUgcm9vdAorCQkgICAg OzsgZnJhbWUgb2YgdGhlIHNlbGVjdGVkIGZyYW1lLgorCQkgICAgKGZyYW1lLXJvb3QtZnJh bWUpCisJCSAgKHNlbGVjdGVkLWZyYW1lKSkpCiAJIGV2ZW50IGNtZCkKLSAgICAoaWYgZnJv bS1tZW51LWJhcgotCShsZXQqICgoeHkgKHBvc24teC15IHBvc2l0aW9uKSkKLQkgICAgICAg KG1lbnUtc3ltYm9sIChtZW51LWJhci1tZW51LWF0LXgteSAoY2FyIHh5KSAoY2RyIHh5KSkp KQotCSAgKHNldHEgcG9zaXRpb24gKGxpc3QgbWVudS1zeW1ib2wgKGxpc3QgZnJhbWUgJyht ZW51LWJhcikKLQkJCQkJCSB4eSAwKSkpKQotICAgICAgKHNldHEgcG9zaXRpb24gKHBvcHVw LW1lbnUtbm9ybWFsaXplLXBvc2l0aW9uIHBvc2l0aW9uKSkpCi0gICAgOzsgVGhlIGxvb3Bp bmcgYmVoYXZpb3Igd2FzIHRha2VuIGZyb20gbG1lbnUncyBwb3B1cC1tZW51LXBvcHVwCi0g ICAgKHdoaWxlIChhbmQgbWFwIChzZXRxIGV2ZW50Ci0JCQkgIDs7IG1hcCBjb3VsZCBiZSBh IHByZWZpeCBrZXksIGluIHdoaWNoIGNhc2UKLQkJCSAgOzsgd2UgbmVlZCB0byBnZXQgaXRz IGZ1bmN0aW9uIGNlbGwKLQkJCSAgOzsgZGVmaW5pdGlvbi4KLQkJCSAgKHgtcG9wdXAtbWVu dSBwb3NpdGlvbiAoaW5kaXJlY3QtZnVuY3Rpb24gbWFwKSkpKQotICAgICAgOzsgU3RyYW5n ZWx5IHgtcG9wdXAtbWVudSByZXR1cm5zIGEgbGlzdC4KLSAgICAgIDs7IG1vdXNlLW1ham9y LW1vZGUtbWVudSB3YXMgdXNpbmcgYSB3ZWlyZDoKLSAgICAgIDs7IChrZXktYmluZGluZyAo YXBwbHkgJ3ZlY3RvciAoYXBwZW5kICcobWVudS1iYXIpIG1lbnUtcHJlZml4IGV2ZW50cykp KQotICAgICAgKHNldHEgY21kCi0JICAgIChjb25kCi0JICAgICAoKGFuZCBmcm9tLW1lbnUt YmFyCi0JCSAgIChjb25zcCBldmVudCkKLQkJICAgKG51bWJlcnAgKGNhciBldmVudCkpCi0J CSAgIChudW1iZXJwIChjZHIgZXZlbnQpKSkKLQkgICAgICAobGV0ICgoeCAoY2FyIGV2ZW50 KSkKLQkJICAgICh5IChjZHIgZXZlbnQpKQotCQkgICAgbWVudS1zeW1ib2wpCi0JCShzZXRx IG1lbnUtc3ltYm9sIChtZW51LWJhci1tZW51LWF0LXgteSB4IHkpKQotCQkoc2V0cSBwb3Np dGlvbiAobGlzdCBtZW51LXN5bWJvbCAobGlzdCBmcmFtZSAnKG1lbnUtYmFyKQotCQkJCQkJ IGV2ZW50IDApKSkKLQkJKHNldHEgbWFwCi0JCSAgICAgIChrZXktYmluZGluZyAodmVjdG9y ICdtZW51LWJhciBtZW51LXN5bWJvbCkpKSkpCi0JICAgICAoKGFuZCAobm90IChrZXltYXBw IG1hcCkpIChsaXN0cCBtYXApKQotCSAgICAgIDs7IFdlIHdlcmUgZ2l2ZW4gYSBsaXN0IG9m IGtleW1hcHMuICBTZWFyY2ggdGhlbSBhbGwKLQkgICAgICA7OyBpbiBzZXF1ZW5jZSB1bnRp bCBhIGZpcnN0IGJpbmRpbmcgaXMgZm91bmQuCi0JICAgICAgKGxldCAoKG1vdXNlLWNsaWNr IChhcHBseSAndmVjdG9yIGV2ZW50KSkKLQkJICAgIGJpbmRpbmcpCi0JCSh3aGlsZSAoYW5k IG1hcCAobnVsbCBiaW5kaW5nKSkKLQkJICAoc2V0cSBiaW5kaW5nIChsb29rdXAta2V5LWln bm9yZS10b28tbG9uZyAoY2FyIG1hcCkgbW91c2UtY2xpY2spKQotCQkgIChzZXRxIG1hcCAo Y2RyIG1hcCkpKQotICAgICAgICAgICAgICAgIGJpbmRpbmcpKQotCSAgICAgKHQKLQkgICAg ICA7OyBXZSB3ZXJlIGdpdmVuIGEgc2luZ2xlIGtleW1hcC4KLQkgICAgICAobG9va3VwLWtl eSBtYXAgKGFwcGx5ICd2ZWN0b3IgZXZlbnQpKSkpKQotICAgICAgOzsgQ2xlYXIgb3V0IGVj aG9pbmcsIHdoaWNoIHBlcmhhcHMgc2hvd3MgYSBwcmVmaXggYXJnLgotICAgICAgKG1lc3Nh Z2UgIiIpCi0gICAgICA7OyBNYXliZSB0cnkgYWdhaW4gYnV0IHdpdGggdGhlIHN1Ym1hcC4K LSAgICAgIChzZXRxIG1hcCAoaWYgKGtleW1hcHAgY21kKSBjbWQpKSkKKyAgICAod2l0aC1z ZWxlY3RlZC1mcmFtZSBmcmFtZQorICAgICAgKGlmIGZyb20tbWVudS1iYXIKKwkgIChsZXQq ICgoeHkgKHBvc24teC15IHBvc2l0aW9uKSkKKwkJIChtZW51LXN5bWJvbCAobWVudS1iYXIt bWVudS1hdC14LXkgKGNhciB4eSkgKGNkciB4eSkpKSkKKwkgICAgKHNldHEgcG9zaXRpb24g KGxpc3QgbWVudS1zeW1ib2wgKGxpc3QgZnJhbWUgJyhtZW51LWJhcikKKwkJCQkJCSAgIHh5 IDApKSkpCisJKHNldHEgcG9zaXRpb24gKHBvcHVwLW1lbnUtbm9ybWFsaXplLXBvc2l0aW9u IHBvc2l0aW9uKSkpCisKKyAgICAgIDs7IFRoZSBsb29waW5nIGJlaGF2aW9yIHdhcyB0YWtl biBmcm9tIGxtZW51J3MgcG9wdXAtbWVudS1wb3B1cAorICAgICAgKHdoaWxlIChhbmQgbWFw IChzZXRxIGV2ZW50CisJCQkgICAgOzsgbWFwIGNvdWxkIGJlIGEgcHJlZml4IGtleSwgaW4g d2hpY2ggY2FzZQorCQkJICAgIDs7IHdlIG5lZWQgdG8gZ2V0IGl0cyBmdW5jdGlvbiBjZWxs CisJCQkgICAgOzsgZGVmaW5pdGlvbi4KKwkJCSAgICAoeC1wb3B1cC1tZW51IHBvc2l0aW9u IChpbmRpcmVjdC1mdW5jdGlvbiBtYXApKSkpCisJOzsgU3RyYW5nZWx5IHgtcG9wdXAtbWVu dSByZXR1cm5zIGEgbGlzdC4KKwk7OyBtb3VzZS1tYWpvci1tb2RlLW1lbnUgd2FzIHVzaW5n IGEgd2VpcmQ6CisJOzsgKGtleS1iaW5kaW5nIChhcHBseSAndmVjdG9yIChhcHBlbmQgJyht ZW51LWJhcikgbWVudS1wcmVmaXggZXZlbnRzKSkpCisJKHNldHEgY21kCisJICAgICAgKGNv bmQKKwkgICAgICAgKChhbmQgZnJvbS1tZW51LWJhcgorCQkgICAgIChjb25zcCBldmVudCkK KwkJICAgICAobnVtYmVycCAoY2FyIGV2ZW50KSkKKwkJICAgICAobnVtYmVycCAoY2RyIGV2 ZW50KSkpCisJCShsZXQgKCh4IChjYXIgZXZlbnQpKQorCQkgICAgICAoeSAoY2RyIGV2ZW50 KSkKKwkJICAgICAgbWVudS1zeW1ib2wpCisJCSAgKHNldHEgbWVudS1zeW1ib2wgKG1lbnUt YmFyLW1lbnUtYXQteC15IHggeSkpCisJCSAgKHNldHEgcG9zaXRpb24gKGxpc3QgbWVudS1z eW1ib2wgKGxpc3QgZnJhbWUgJyhtZW51LWJhcikKKwkJCQkJCQkgZXZlbnQgMCkpKQorCQkg IChpZiAobm90IChlcSBmcmFtZSBzZWxlY3RlZC1mcmFtZSkpCisJCSAgICAgIDs7IElmIHdl IGFyZSB1c2luZyB0aGUgbWVudSBiYXIgZnJvbSB0aGUgcm9vdAorCQkgICAgICA7OyBmcmFt ZSwgbG9vayB1cCB0aGUga2V5IGJpbmRpbmcgaW4gdGhlIGtleW1hcHMKKwkJICAgICAgOzsg b2YgdGhlIGluaXRpYWxseSBzZWxlY3RlZCB3aW5kb3cncyBidWZmZXIgdG8KKwkJICAgICAg OzsgbWFrZSBzdXJlIHRoYXQgbmF2aWdhdGluZyB0aGUgbWVudSBiYXIgd2l0aCB0aGUKKwkJ ICAgICAgOzsga2V5Ym9hcmQgd29ya3MgYXMgaW50ZW5kZWQuCisJCSAgICAgIChzZXRxIG1h cAorCQkJICAgIChrZXktYmluZGluZyAodmVjdG9yICdtZW51LWJhciBtZW51LXN5bWJvbCkg bmlsIG5pbAorCQkJCQkgKGZyYW1lLXNlbGVjdGVkLXdpbmRvdyBzZWxlY3RlZC1mcmFtZSkp KQorCQkgICAgKHNldHEgbWFwCisJCQkgIChrZXktYmluZGluZyAodmVjdG9yICdtZW51LWJh ciBtZW51LXN5bWJvbCkpKSkpKQorCSAgICAgICAoKGFuZCAobm90IChrZXltYXBwIG1hcCkp IChsaXN0cCBtYXApKQorCQk7OyBXZSB3ZXJlIGdpdmVuIGEgbGlzdCBvZiBrZXltYXBzLiAg U2VhcmNoIHRoZW0gYWxsCisJCTs7IGluIHNlcXVlbmNlIHVudGlsIGEgZmlyc3QgYmluZGlu ZyBpcyBmb3VuZC4KKwkJKGxldCAoKG1vdXNlLWNsaWNrIChhcHBseSAndmVjdG9yIGV2ZW50 KSkKKwkJICAgICAgYmluZGluZykKKwkJICAod2hpbGUgKGFuZCBtYXAgKG51bGwgYmluZGlu ZykpCisJCSAgICAoc2V0cSBiaW5kaW5nIChsb29rdXAta2V5LWlnbm9yZS10b28tbG9uZyAo Y2FyIG1hcCkgbW91c2UtY2xpY2spKQorCQkgICAgKHNldHEgbWFwIChjZHIgbWFwKSkpCisJ CSAgYmluZGluZykpCisJICAgICAgICh0CisJCTs7IFdlIHdlcmUgZ2l2ZW4gYSBzaW5nbGUg a2V5bWFwLgorCQkobG9va3VwLWtleSBtYXAgKGFwcGx5ICd2ZWN0b3IgZXZlbnQpKSkpKQor CTs7IENsZWFyIG91dCBlY2hvaW5nLCB3aGljaCBwZXJoYXBzIHNob3dzIGEgcHJlZml4IGFy Zy4KKwkobWVzc2FnZSAiIikKKwk7OyBNYXliZSB0cnkgYWdhaW4gYnV0IHdpdGggdGhlIHN1 Ym1hcC4KKwkoc2V0cSBtYXAgKGlmIChrZXltYXBwIGNtZCkgY21kKSkpKQorCiAgICAgOzsg SWYgdGhlIHVzZXIgZGlkIG5vdCBjYW5jZWwgYnkgcmVmdXNpbmcgdG8gc2VsZWN0LAogICAg IDs7IGFuZCBpZiB0aGUgcmVzdWx0IGlzIGEgY29tbWFuZCwgcnVuIGl0LgogICAgICh3aGVu IChhbmQgKG51bGwgbWFwKSAoY29tbWFuZHAgY21kKSkKQEAgLTI4MDgsMTQgKzI4MjksMjcg QEAgbWVudS1iYXItb3BlbgogSWYgRlJBTUUgaXMgbmlsIG9yIG5vdCBnaXZlbiwgdXNlIHRo ZSBzZWxlY3RlZCBmcmFtZS4iCiAgIChpbnRlcmFjdGl2ZQogICAgKGxpc3QgbmlsIChwcmVm aXgtbnVtZXJpYy12YWx1ZSBjdXJyZW50LXByZWZpeC1hcmcpKSkKLSAgKGxldCAoKHR5cGUg KGZyYW1lcCAob3IgZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkpKSkKKyAgKGxldCogKCh0eXBl IChmcmFtZXAgKG9yIGZyYW1lIChzZWxlY3RlZC1mcmFtZSkpKSkKKwkgcm9vdAorCSAoZnJh bWUgKGlmIChhbmQgKGVxIHR5cGUgdCkgKGZyYW1lLXBhcmVudCBmcmFtZSkKKwkJCSAobnVs bCB0dHktbWVudS1vcGVuLXVzZS10bW0pCisJCQkgKHplcm9wIChvciAoZnJhbWUtcGFyYW1l dGVyIGZyYW1lICdtZW51LWJhci1saW5lcykgMCkpCisJCQkgKHNldHEgcm9vdCAoZnJhbWUt cm9vdC1mcmFtZSkpCisJCQkgKG5vdCAoemVyb3AKKwkJCSAgICAgICAob3IgKGZyYW1lLXBh cmFtZXRlciByb290ICdtZW51LWJhci1saW5lcykgMCkpKSkKKwkJICAgIDs7IElmIEZSQU1F IGlzIGEgdHR5IGNoaWxkIGZyYW1lIHdpdGhvdXQgaXRzIG93bgorCQkgICAgOzsgbWVudSBi YXIsICd0dHktbWVudS1vcGVuLXVzZS10bW0nIGlzIGZhbHNlIGFuZAorCQkgICAgOzsgRlJB TUUncyByb290IGZyYW1lIGhhcyBhIG1lbnUgYmFyLCB1c2UgdGhhdCByb290CisJCSAgICA7 OyBmcmFtZSdzIG1lbnUgYmFyLgorCQkgICAgcm9vdAorCQkgIGZyYW1lKSkpCiAgICAgKGNv bmQKICAgICAgKChlcSB0eXBlICd4KSAoeC1tZW51LWJhci1vcGVuIGZyYW1lKSkKICAgICAg KChlcSB0eXBlICd3MzIpICh3MzItbWVudS1iYXItb3BlbiBmcmFtZSkpCiAgICAgICgoZXEg dHlwZSAnaGFpa3UpIChoYWlrdS1tZW51LWJhci1vcGVuIGZyYW1lKSkKICAgICAgKChlcSB0 eXBlICdwZ3RrKSAocGd0ay1tZW51LWJhci1vcGVuIGZyYW1lKSkKICAgICAgKChhbmQgKG51 bGwgdHR5LW1lbnUtb3Blbi11c2UtdG1tKQotCSAgIChub3QgKHplcm9wIChvciAoZnJhbWUt cGFyYW1ldGVyIG5pbCAnbWVudS1iYXItbGluZXMpIDApKSkpCisJICAgKG5vdCAoemVyb3Ag KG9yIChmcmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ21lbnUtYmFyLWxpbmVzKSAwKSkpKQogICAg ICAgOzsgTWFrZSBzdXJlIHRoZSBtZW51IGJhciBpcyB1cCB0byBkYXRlLiAgT25lIHNpdHVh dGlvbiB3aGVyZQogICAgICAgOzsgdGhpcyBpcyBpbXBvcnRhbnQgaXMgd2hlbiB0aGlzIGZ1 bmN0aW9uIGlzIGludm9rZWQgYnkgbmFtZQogICAgICAgOzsgdmlhIE0teCwgaW4gd2hpY2gg Y2FzZSB0aGUgbWVudSBiYXIgaW5jbHVkZXMgdGhlICJNaW5pYnVmIgpAQCAtMjgzMSw3ICsy ODY1LDcgQEAgbWVudS1iYXItb3BlbgogICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50 LWxvY2FsLW1hcCkgKHZlY3RvciAnbWVudS1iYXIgbWVudSkpCiAJCSAgICAgKGNkYXIgKG1p bm9yLW1vZGUta2V5LWJpbmRpbmcgKHZlY3RvciAnbWVudS1iYXIgbWVudSkpKQogICAgICAg ICAgICAgICAgICAgICAgKG1vdXNlLW1lbnUtYmFyLW1hcCkpCi0JCSAgICAocG9zbi1hdC14 LXkgeCAwIG5pbCB0KSBuaWwgdCkpKQorCQkgICAgKHBvc24tYXQteC15IHggMCBmcmFtZSB0 KSBuaWwgdCkpKQogICAgICAodCAod2l0aC1zZWxlY3RlZC1mcmFtZSAob3IgZnJhbWUgKHNl bGVjdGVkLWZyYW1lKSkKICAgICAgICAgICAodG1tLW1lbnViYXIpKSkpKSkKIApkaWZmIC0t Z2l0IGEvbGlzcC9tb3VzZS5lbCBiL2xpc3AvbW91c2UuZWwKaW5kZXggYjA1MTE1YjIzN2Qu LjVkNGQzMGFmNWU3IDEwMDY0NAotLS0gYS9saXNwL21vdXNlLmVsCisrKyBiL2xpc3AvbW91 c2UuZWwKQEAgLTExMDYsNyArMTEwNiwxMCBAQCBtb3VzZS1kcmFnLWZyYW1lLXJlc2l6ZQog CSAoZHJhZy1ib3R0b20gKG1lbXEgcGFydCAnKGJvdHRvbS1yaWdodCBib3R0b20gYm90dG9t LWxlZnQpKSkKIAkgOzsgSW5pdGlhbCAiZmlyc3QiIG1vdXNlIHBvc2l0aW9uLiAgV2hpbGUg ZHJhZ2dpbmcgd2UgYmFzZSBhbGwKIAkgOzsgY2FsY3VsYXRpb25zIGFnYWluc3QgdGhhdCBw b3NpdGlvbi4KLQkgKGZpcnN0LXgteSAobW91c2UtYWJzb2x1dGUtcGl4ZWwtcG9zaXRpb24p KQorCSAodHR5ICh0dHktdHlwZSBmcmFtZSkpCisJIChmaXJzdC14LXkgKGlmIHR0eQorCQkJ KG1vdXNlLXBvc2l0aW9uLWluLXJvb3QtZnJhbWUpCisJCSAgICAgIChtb3VzZS1hYnNvbHV0 ZS1waXhlbC1wb3NpdGlvbikpKQogICAgICAgICAgKGZpcnN0LXggKGNhciBmaXJzdC14LXkp KQogICAgICAgICAgKGZpcnN0LXkgKGNkciBmaXJzdC14LXkpKQogICAgICAgICAgKGV4aXRm dW4gbmlsKQpAQCAtMTExNCw3ICsxMTE3LDkgQEAgbW91c2UtZHJhZy1mcmFtZS1yZXNpemUK ICAgICAgICAgICAobGFtYmRhIChldmVudCkKICAgICAgICAgICAgIChpbnRlcmFjdGl2ZSAi ZSIpCiAgICAgICAgICAgICAod2hlbiAoY29uc3AgZXZlbnQpCi0gICAgICAgICAgICAgIChs ZXQqICgobGFzdC14LXkgKG1vdXNlLWFic29sdXRlLXBpeGVsLXBvc2l0aW9uKSkKKyAgICAg ICAgICAgICAgKGxldCogKChsYXN0LXgteSAoaWYgdHR5CisJCQkJICAgKG1vdXNlLXBvc2l0 aW9uLWluLXJvb3QtZnJhbWUpCisJCQkJIChtb3VzZS1hYnNvbHV0ZS1waXhlbC1wb3NpdGlv bikpKQogCQkgICAgIChsYXN0LXggKGNhciBsYXN0LXgteSkpCiAJCSAgICAgKGxhc3QteSAo Y2RyIGxhc3QteC15KSkKIAkJICAgICAobGVmdCAoLSBsYXN0LXggZmlyc3QteCkpCkBAIC0x MjIzLDEwICsxMjI4LDEzIEBAIG1vdXNlLWRyYWctZnJhbWUtbW92ZQogICAgICAgICAgKHBh cmVudC1ib3R0b20gKGFuZCBwYXJlbnQtZWRnZXMgKG50aCAzIHBhcmVudC1lZGdlcykpKQog CSA7OyBJbml0aWFsICJmaXJzdCIgbW91c2UgcG9zaXRpb24uICBXaGlsZSBkcmFnZ2luZyB3 ZSBiYXNlIGFsbAogCSA7OyBjYWxjdWxhdGlvbnMgYWdhaW5zdCB0aGF0IHBvc2l0aW9uLgot CSAoZmlyc3QteC15IChtb3VzZS1hYnNvbHV0ZS1waXhlbC1wb3NpdGlvbikpCi0gICAgICAg ICAoZmlyc3QteCAoY2FyIGZpcnN0LXgteSkpCi0gICAgICAgICAoZmlyc3QteSAoY2RyIGZp cnN0LXgteSkpCi0gICAgICAgICA7OyBgc25hcC13aWR0aCcgKG1heWJlIGFsc28gYSB5ZXQg dG8gYmUgcHJvdmlkZWQgYHNuYXAtaGVpZ2h0JykKKwkgKHR0eSAodHR5LXR5cGUgZnJhbWUp KQorCSAoZmlyc3QteC15IChpZiB0dHkKKwkJCShtb3VzZS1wb3NpdGlvbi1pbi1yb290LWZy YW1lKQorCQkgICAgICAobW91c2UtYWJzb2x1dGUtcGl4ZWwtcG9zaXRpb24pKSkKKwkgKGZp cnN0LXggKGNhciBmaXJzdC14LXkpKQorCSAoZmlyc3QteSAoY2RyIGZpcnN0LXgteSkpCisJ IDs7IGBzbmFwLXdpZHRoJyAobWF5YmUgYWxzbyBhIHlldCB0byBiZSBwcm92aWRlZCBgc25h cC1oZWlnaHQnKQogICAgICAgICAgOzsgY291bGQgYmVjb21lIGZsb2F0cyB0byBoYW5kbGUg cHJvcG9ydGlvbmFsaXR5IHdydCBQQVJFTlQuCiAgICAgICAgICA7OyBXZSBkb24ndCBkbyBh bnkgY2hlY2tzIG9uIHRoaXMgcGFyYW1ldGVyIHNvIGZhci4KICAgICAgICAgIChzbmFwLXdp ZHRoIChmcmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ3NuYXAtd2lkdGgpKQpAQCAtMTI0Miw3ICsx MjUwLDkgQEAgbW91c2UtZHJhZy1mcmFtZS1tb3ZlCiAgICAgICAgICAgKGxhbWJkYSAoZXZl bnQpCiAgICAgICAgICAgICAoaW50ZXJhY3RpdmUgImUiKQogICAgICAgICAgICAgKHdoZW4g KGNvbnNwIGV2ZW50KQotICAgICAgICAgICAgICAobGV0KiAoKGxhc3QteC15IChtb3VzZS1h YnNvbHV0ZS1waXhlbC1wb3NpdGlvbikpCisgICAgICAgICAgICAgIChsZXQqICgobGFzdC14 LXkgKGlmIHR0eQorCQkJCSAgIChtb3VzZS1wb3NpdGlvbi1pbi1yb290LWZyYW1lKQorCQkJ CSAobW91c2UtYWJzb2x1dGUtcGl4ZWwtcG9zaXRpb24pKSkKIAkJICAgICAobGFzdC14IChj YXIgbGFzdC14LXkpKQogCQkgICAgIChsYXN0LXkgKGNkciBsYXN0LXgteSkpCiAJCSAgICAg KGxlZnQgKC0gbGFzdC14IGZpcnN0LXgpKQpAQCAtMTM3Myw3ICsxMzgzLDggQEAgbW91c2Ut ZHJhZy1mcmFtZS1tb3ZlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgt IHBhcmVudC1ib3R0b20gbmF0aXZlLWhlaWdodCkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG1pbiAobWF4IHRvcCBwYXJlbnQtdG9wKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKC0gcGFyZW50LWJvdHRvbSBwYXIpKSkpKSkKLSAgICAgICAgICAgICAg ICA7OyBVc2UgYG1vZGlmeS1mcmFtZS1wYXJhbWV0ZXJzJyBzaW5jZSBgbGVmdCcgYW5kIGB0 b3AnCisKKwkJOzsgVXNlICdtb2RpZnktZnJhbWUtcGFyYW1ldGVycycgc2luY2UgJ2xlZnQn IGFuZCAndG9wJwogICAgICAgICAgICAgICAgIDs7IG1heSB3YW50IHRvIG1vdmUgRlJBTUUg b3V0IG9mIGl0cyBQQVJFTlQuCiAgICAgICAgICAgICAgICAgKG1vZGlmeS1mcmFtZS1wYXJh bWV0ZXJzIGZyYW1lIGAoKGxlZnQgLiAoKyAsbGVmdCkpICh0b3AgLiAoKyAsdG9wKSkpKSkp KSkKIAkgKG9sZC10cmFjay1tb3VzZSB0cmFjay1tb3VzZSkpCmRpZmYgLS1naXQgYS9zcmMv ZnJhbWUuYyBiL3NyYy9mcmFtZS5jCmluZGV4IGNhYzliMGE0YWNkLi5iOWE2OWY5YzFiMSAx MDA2NDQKLS0tIGEvc3JjL2ZyYW1lLmMKKysrIGIvc3JjL2ZyYW1lLmMKQEAgLTE0NDksMTcg KzE0NDksMzggQEAgZ2V0X2Z1dHVyZV9mcmFtZV9wYXJhbSAoTGlzcF9PYmplY3QgcGFyYW1l dGVyLAogI2VuZGlmCiAKIGludAotdHR5X2NoaWxkX3Bvc19wYXJhbSAoc3RydWN0IGZyYW1l ICpjaGlsZCwgTGlzcF9PYmplY3Qga2V5LAotCQkgICAgIExpc3BfT2JqZWN0IHBhcmFtcywg aW50IGRmbHQpCit0dHlfY2hpbGRfcG9zX3BhcmFtIChzdHJ1Y3QgZnJhbWUgKmYsIExpc3Bf T2JqZWN0IGtleSwKKwkJICAgICBMaXNwX09iamVjdCBwYXJhbXMsIGludCBwb3MpCiB7Cisg IHN0cnVjdCBmcmFtZSAqcCA9IFhGUkFNRSAoZi0+cGFyZW50X2ZyYW1lKTsKICAgTGlzcF9P YmplY3QgdmFsID0gRmFzc3EgKGtleSwgcGFyYW1zKTsKKwogICBpZiAoQ09OU1AgKHZhbCkp CiAgICAgewogICAgICAgdmFsID0gWENEUiAodmFsKTsKLSAgICAgIGlmIChGSVhOVU1QICh2 YWwpKQotCXJldHVybiBYRklYTlVNICh2YWwpOworCisgICAgICBpZiAoVFlQRV9SQU5HRURf RklYTlVNUCAoaW50LCB2YWwpKQorCXsKKwkgIHBvcyA9IFhGSVhOVU0gKHZhbCk7CisKKwkg IGlmIChwb3MgPCAwKQorCSAgICAvKiBIYW5kbGUgbmVnYXRpdmUgdmFsdWUuICovCisJICAg IHBvcyA9IG1heCAoRVEgKGtleSwgUXRvcCkKKwkJICAgICAgID8gcC0+cGl4ZWxfaGVpZ2h0 IC0gZi0+cGl4ZWxfaGVpZ2h0IC0gcG9zCisJCSAgICAgICA6IHAtPnBpeGVsX3dpZHRoIC0g Zi0+cGl4ZWxfd2lkdGggLSBwb3MsCisJCSAgICAgICAwKTsKKwl9CisgICAgICBlbHNlIGlm IChDT05TUCAodmFsKSAmJiBFUSAoWENBUiAodmFsKSwgUXBsdXMpCisJICAgICAgICYmIENP TlNQIChYQ0RSICh2YWwpKQorCSAgICAgICAmJiBUWVBFX1JBTkdFRF9GSVhOVU1QIChpbnQs IFhDQVIgKFhDRFIgKHZhbCkpKSkKKwlwb3MgPSBYRklYTlVNIChYQ0FSIChYQ0RSICh2YWwp KSk7CisgICAgICBlbHNlIGlmIChDT05TUCAodmFsKSAmJiBFUSAoWENBUiAodmFsKSwgUW1p bnVzKQorCSAgICAgICAmJiBDT05TUCAoWENEUiAodmFsKSkKKwkgICAgICAgJiYgUkFOR0VE X0ZJWE5VTVAgKC1JTlRfTUFYLCBYQ0FSIChYQ0RSICh2YWwpKSwgSU5UX01BWCkpCisJcG9z ID0gLSBYRklYTlVNIChYQ0FSIChYQ0RSICh2YWwpKSk7CiAgICAgfQotICByZXR1cm4gZGZs dDsKKworICByZXR1cm4gcG9zOwogfQogCiBpbnQKQEAgLTI4MzgsNyArMjg1OSw3IEBAIERF RlVOICgiZGVsZXRlLWZyYW1lIiwgRmRlbGV0ZV9mcmFtZSwgU2RlbGV0ZV9mcmFtZSwgMCwg MiwgIiIsCiAgIHJldHVybiBkZWxldGVfZnJhbWUgKGZyYW1lLCAhTklMUCAoZm9yY2UpID8g UXQgOiBRbmlsKTsKIH0KIAwKLSNpZmRlZiBIQVZFX1dJTkRPV19TWVNURU0KKwogLyoqCiAg KiBmcmFtZV9pbnRlcm5hbF9ib3JkZXJfcGFydDoKICAqCkBAIC0yODYxLDcgKzI4ODIsMTEg QEAgREVGVU4gKCJkZWxldGUtZnJhbWUiLCBGZGVsZXRlX2ZyYW1lLCBTZGVsZXRlX2ZyYW1l LCAwLCAyLCAiIiwKIGVudW0gaW50ZXJuYWxfYm9yZGVyX3BhcnQKIGZyYW1lX2ludGVybmFs X2JvcmRlcl9wYXJ0IChzdHJ1Y3QgZnJhbWUgKmYsIGludCB4LCBpbnQgeSkKIHsKLSAgaW50 IGJvcmRlciA9IEZSQU1FX0lOVEVSTkFMX0JPUkRFUl9XSURUSCAoZik7CisgIGludCBib3Jk ZXIgPSAoRlJBTUVfSU5URVJOQUxfQk9SREVSX1dJRFRIIChmKQorCQk/IEZSQU1FX0lOVEVS TkFMX0JPUkRFUl9XSURUSCAoZikKKwkJOiAoaXNfdHR5X2NoaWxkX2ZyYW1lIChmKSAmJiAh RlJBTUVfVU5ERUNPUkFURUQgKGYpKQorCQk/IDEKKwkJOiAwKTsKICAgaW50IG9mZnNldCA9 IEZSQU1FX0xJTkVfSEVJR0hUIChmKTsKICAgaW50IHdpZHRoID0gRlJBTUVfUElYRUxfV0lE VEggKGYpOwogICBpbnQgaGVpZ2h0ID0gRlJBTUVfUElYRUxfSEVJR0hUIChmKTsKQEAgLTI5 MzAsNyArMjk1NSw3IEBAIGZyYW1lX2ludGVybmFsX2JvcmRlcl9wYXJ0IChzdHJ1Y3QgZnJh bWUgKmYsIGludCB4LCBpbnQgeSkKIAogICByZXR1cm4gcGFydDsKIH0KLSNlbmRpZgorCiAK IC8qIFJldHVybiBtb3VzZSBwb3NpdGlvbiBpbiBjaGFyYWN0ZXIgY2VsbCB1bml0cy4gICov CiAKQEAgLTY0NzgsNiArNjUwMywzNyBAQCBERUZVTiAoImZyYW1lLXBvaW50ZXItdmlzaWJs ZS1wIiwgRmZyYW1lX3BvaW50ZXJfdmlzaWJsZV9wLAogICByZXR1cm4gZGVjb2RlX2FueV9m cmFtZSAoZnJhbWUpLT5wb2ludGVyX2ludmlzaWJsZSA/IFFuaWwgOiBRdDsKIH0KIAorREVG VU4gKCJtb3VzZS1wb3NpdGlvbi1pbi1yb290LWZyYW1lIiwgRm1vdXNlX3Bvc2l0aW9uX2lu X3Jvb3RfZnJhbWUsCisgICAgICAgU21vdXNlX3Bvc2l0aW9uX2luX3Jvb3RfZnJhbWUsIDAs IDAsIDAsCisgICAgICAgZG9jOiAvKiBSZXR1cm4gbW91c2UgcG9zaXRpb24gaW4gc2VsZWN0 ZWQgZnJhbWUncyByb290IGZyYW1lLgorCitSZXR1cm4gdGhlIHBvc2l0aW9uIG9mIGBtb3Vz ZS1wb3NpdGlvbicgaW4gY29vcmRpbmF0ZXMgb2YgdGhlIHJvb3QgZnJhbWUKK29mIHRoZSBm cmFtZSByZXR1cm5lZCBieSAnbW91c2UtcG9zaXRpb24nLiAgKi8pCisgICh2b2lkKQorewor ICBMaXNwX09iamVjdCBwb3MgPSBtb3VzZV9wb3NpdGlvbiAodHJ1ZSk7CisgIExpc3BfT2Jq ZWN0IGZyYW1lID0gWENBUiAocG9zKTsKKyAgc3RydWN0IGZyYW1lICpmID0gWEZSQU1FIChm cmFtZSk7CisgIGludCB4ID0gWEZJWE5VTSAoWENBUiAoWENEUiAocG9zKSkpICsgZi0+bGVm dF9wb3M7CisgIGludCB5ID0gWEZJWE5VTSAoWENEUiAoWENEUiAocG9zKSkpICsgZi0+dG9w X3BvczsKKworICBpZiAoIUZSQU1FUCAoZnJhbWUpKQorICAgIHJldHVybiBRbmlsOworICBl bHNlCisgICAgeworICAgICAgZiA9IEZSQU1FX1BBUkVOVF9GUkFNRSAoZik7CisKKyAgICAg IHdoaWxlIChmKQorCXsKKwkgIHggPSB4ICsgZi0+bGVmdF9wb3M7CisJICB5ID0geSArIGYt PnRvcF9wb3M7CisJICBmID0gRlJBTUVfUEFSRU5UX0ZSQU1FIChmKTsKKwl9CisKKyAgICAg IHJldHVybiBGY29ucyAobWFrZV9maXhudW0gKHgpLCBtYWtlX2ZpeG51bSAoeSkpOworICAg IH0KK30KKwogREVGVU4gKCJmcmFtZS0tc2V0LXdhcy1pbnZpc2libGUiLCBGZnJhbWVfX3Nl dF93YXNfaW52aXNpYmxlLAogICAgICAgIFNmcmFtZV9fc2V0X3dhc19pbnZpc2libGUsIDIs IDIsIDAsCiAgICAgICAgZG9jOiAvKiBTZXQgRlJBTUUncyB3YXMtaW52aXNpYmxlIGZsYWcg aWYgV0FTLUlOVklTSUJMRSBpcyBub24tbmlsLgpAQCAtNzI1MCw2ICs3MzA2LDcgQEAgZm9j dXMgKHdoZXJlIGEgZnJhbWUgaW1tZWRpYXRlbHkgbG9zZXMgZm9jdXMgd2hlbiBpdCdzIGxl ZnQgYnkgdGhlIG1vdXNlCiAgIGRlZnN1YnIgKCZTZnJhbWVfcG9zaXRpb24pOwogICBkZWZz dWJyICgmU3NldF9mcmFtZV9wb3NpdGlvbik7CiAgIGRlZnN1YnIgKCZTZnJhbWVfcG9pbnRl cl92aXNpYmxlX3ApOworICBkZWZzdWJyICgmU21vdXNlX3Bvc2l0aW9uX2luX3Jvb3RfZnJh bWUpOwogICBkZWZzdWJyICgmU2ZyYW1lX19zZXRfd2FzX2ludmlzaWJsZSk7CiAgIGRlZnN1 YnIgKCZTZnJhbWVfd2luZG93X3N0YXRlX2NoYW5nZSk7CiAgIGRlZnN1YnIgKCZTc2V0X2Zy YW1lX3dpbmRvd19zdGF0ZV9jaGFuZ2UpOwpkaWZmIC0tZ2l0IGEvc3JjL2ZyYW1lLmggYi9z cmMvZnJhbWUuaAppbmRleCBmZWE4YmFhNzMzMi4uNmJhY2YyYTNjNDkgMTAwNjQ0Ci0tLSBh L3NyYy9mcmFtZS5oCisrKyBiL3NyYy9mcmFtZS5oCkBAIC0zMSw2ICszMSwxOSBAQCAjZGVm aW5lIEVNQUNTX0ZSQU1FX0gKICAgdmVydGljYWxfc2Nyb2xsX2Jhcl9yaWdodAogfTsKIAor ZW51bSBpbnRlcm5hbF9ib3JkZXJfcGFydAorICB7CisgICBJTlRFUk5BTF9CT1JERVJfTk9O RSwKKyAgIElOVEVSTkFMX0JPUkRFUl9MRUZUX0VER0UsCisgICBJTlRFUk5BTF9CT1JERVJf VE9QX0xFRlRfQ09STkVSLAorICAgSU5URVJOQUxfQk9SREVSX1RPUF9FREdFLAorICAgSU5U RVJOQUxfQk9SREVSX1RPUF9SSUdIVF9DT1JORVIsCisgICBJTlRFUk5BTF9CT1JERVJfUklH SFRfRURHRSwKKyAgIElOVEVSTkFMX0JPUkRFUl9CT1RUT01fUklHSFRfQ09STkVSLAorICAg SU5URVJOQUxfQk9SREVSX0JPVFRPTV9FREdFLAorICAgSU5URVJOQUxfQk9SREVSX0JPVFRP TV9MRUZUX0NPUk5FUiwKKyAgfTsKKwogI2lmZGVmIEhBVkVfV0lORE9XX1NZU1RFTQogCiBl bnVtIGZ1bGxzY3JlZW5fdHlwZQpAQCAtNTMsMTkgKzY2LDYgQEAgI2RlZmluZSBFTUFDU19G UkFNRV9ICiAgIHpfZ3JvdXBfYWJvdmVfc3VzcGVuZGVkLAogfTsKIAotZW51bSBpbnRlcm5h bF9ib3JkZXJfcGFydAotICB7Ci0gICBJTlRFUk5BTF9CT1JERVJfTk9ORSwKLSAgIElOVEVS TkFMX0JPUkRFUl9MRUZUX0VER0UsCi0gICBJTlRFUk5BTF9CT1JERVJfVE9QX0xFRlRfQ09S TkVSLAotICAgSU5URVJOQUxfQk9SREVSX1RPUF9FREdFLAotICAgSU5URVJOQUxfQk9SREVS X1RPUF9SSUdIVF9DT1JORVIsCi0gICBJTlRFUk5BTF9CT1JERVJfUklHSFRfRURHRSwKLSAg IElOVEVSTkFMX0JPUkRFUl9CT1RUT01fUklHSFRfQ09STkVSLAotICAgSU5URVJOQUxfQk9S REVSX0JPVFRPTV9FREdFLAotICAgSU5URVJOQUxfQk9SREVSX0JPVFRPTV9MRUZUX0NPUk5F UiwKLSAgfTsKLQogI2lmZGVmIE5TX0lNUExfQ09DT0EKIGVudW0gbnNfYXBwZWFyYW5jZV90 eXBlCiAgIHsKQEAgLTE4NzUsNyArMTg3NSw2IEBAICNkZWZpbmUgRU1BQ1NfQ0xBU1MgIkVt YWNzIgogZXh0ZXJuIHZvaWQgc2V0X2ZyYW1lX21lbnViYXIgKHN0cnVjdCBmcmFtZSAqZiwg Ym9vbCBkZWVwX3ApOwogZXh0ZXJuIHZvaWQgZnJhbWVfc2V0X21vdXNlX3BpeGVsX3Bvc2l0 aW9uIChzdHJ1Y3QgZnJhbWUgKmYsIGludCBwaXhfeCwgaW50IHBpeF95KTsKIGV4dGVybiB2 b2lkIGZyZWVfZnJhbWVfbWVudWJhciAoc3RydWN0IGZyYW1lICopOwotZXh0ZXJuIGVudW0g aW50ZXJuYWxfYm9yZGVyX3BhcnQgZnJhbWVfaW50ZXJuYWxfYm9yZGVyX3BhcnQgKHN0cnVj dCBmcmFtZSAqZiwgaW50IHgsIGludCB5KTsKIAogI2lmIGRlZmluZWQgSEFWRV9YX1dJTkRP V1MKIGV4dGVybiB2b2lkIHhfd21fc2V0X2ljb25fcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAq LCBpbnQsIGludCk7CkBAIC0xOTAxLDYgKzE5MDAsOCBAQCBndWlfc2V0X2JpdG1hcF9pY29u IChzdHJ1Y3QgZnJhbWUgKmYpCiAjZW5kaWYgLyogIUhBVkVfTlMgKi8KICNlbmRpZiAvKiBI QVZFX1dJTkRPV19TWVNURU0gKi8KIAorZXh0ZXJuIGVudW0gaW50ZXJuYWxfYm9yZGVyX3Bh cnQgZnJhbWVfaW50ZXJuYWxfYm9yZGVyX3BhcnQgKHN0cnVjdCBmcmFtZSAqZiwKKwkJCQkJ CQkgICAgIGludCB4LCBpbnQgeSk7CiBleHRlcm4gYm9vbCBmcmFtZV9hbmNlc3Rvcl9wIChz dHJ1Y3QgZnJhbWUgKmFmLCBzdHJ1Y3QgZnJhbWUgKmRmKTsKIAogSU5MSU5FIHZvaWQKZGlm ZiAtLWdpdCBhL3NyYy9rZXlib2FyZC5jIGIvc3JjL2tleWJvYXJkLmMKaW5kZXggMmQ4YzQ1 YzA1ZWUuLjIzNDk2OWExNmYwIDEwMDY0NAotLS0gYS9zcmMva2V5Ym9hcmQuYworKysgYi9z cmMva2V5Ym9hcmQuYwpAQCAtNTU1Miw3ICs1NTUyLDYgQEAgI2RlZmluZSBJU09fRlVOQ1RJ T05fS0VZX09GRlNFVCAweGZlMDAKICAgU1lNQk9MX0lOREVYIChRcmlnaHRtb3N0KSwgU1lN Qk9MX0lOREVYIChRZW5kX3Njcm9sbCksIFNZTUJPTF9JTkRFWCAoUXJhdGlvKQogfTsKIAot I2lmZGVmIEhBVkVfV0lORE9XX1NZU1RFTQogLyogQW4gYXJyYXkgb2Ygc3ltYm9sIGluZGV4 ZXMgb2YgaW50ZXJuYWwgYm9yZGVyIHBhcnRzLCBpbmRleGVkIGJ5IGFuIGVudW0KICAgIGlu dGVybmFsX2JvcmRlcl9wYXJ0IHZhbHVlLiAgTm90ZSB0aGF0IFFuaWwgY29ycmVzcG9uZHMg dG8KICAgIGludGVybmFsX2JvcmRlcl9wYXJ0X25vbmUgYW5kIHNob3VsZCBub3QgYXBwZWFy IGluIExpc3AgZXZlbnRzLiAgKi8KQEAgLTU1NjMsNyArNTU2Miw2IEBAICNkZWZpbmUgSVNP X0ZVTkNUSU9OX0tFWV9PRkZTRVQgMHhmZTAwCiAgIFNZTUJPTF9JTkRFWCAoUWJvdHRvbV9y aWdodF9jb3JuZXIpLCBTWU1CT0xfSU5ERVggKFFib3R0b21fZWRnZSksCiAgIFNZTUJPTF9J TkRFWCAoUWJvdHRvbV9sZWZ0X2Nvcm5lcikKIH07Ci0jZW5kaWYKIAogLyogQSB2ZWN0b3Is IGluZGV4ZWQgYnkgYnV0dG9uIG51bWJlciwgZ2l2aW5nIHRoZSBkb3duLWdvaW5nIGxvY2F0 aW9uCiAgICBvZiBjdXJyZW50bHkgZGVwcmVzc2VkIGJ1dHRvbnMsIGJvdGggc2Nyb2xsIGJh ciBhbmQgbm9uLXNjcm9sbCBiYXIuCkBAIC01NTk4LDYgKzU1OTYsOTQgQEAgI2RlZmluZSBJ U09fRlVOQ1RJT05fS0VZX09GRlNFVCAweGZlMDAKIAogc3RhdGljIGludCBkb3VibGVfY2xp Y2tfY291bnQ7CiAKK2VudW0gZnJhbWVfYm9yZGVyX3NpZGUKK3sKKyAgT05fTEVGVCwKKyAg T05fVE9QLAorICBPTl9SSUdIVCwKKyAgT05fQk9UVE9NLAorICBPTl9OT05FCit9OworCisv KiBIYW5kbGUgbWFrZV9saXNweV9ldmVudCB3aGVuIGEgdHR5IGNoaWxkIGZyYW1lJ3MgZGVj b3JhdGlvbnMgc2hhbGwgYmUKKyAgIHVzZWQgaW4gbGlldSBvZiBpbnRlcm5hbCBib3JkZXJz LiAgUiBkZW5vdGVzIHRoZSByb290IGZyYW1lIHVuZGVyCisgICBpbnZlc3RpZ2F0aW9uLCBN WCBhbmQgTVkgYXJlIHRoZSBwb3NpdGlvbnMgb2YgdGhlIG1vdXNlIHJlbGF0aXZlIHRvCisg ICBSLiAgV0lORE9XX09SX0ZSQU1FIGRlbm90ZXMgdGhlIGZyYW1lIHByZXZpb3VzbHkgcmVw b3J0ZWQgYXMgdGhlCisgICBmcmFtZSB1bmRlciAoTVgsIE1ZKS4gIE5vdGU6IFRoZSBkZWNv cmF0aW9ucyBvZiBhIGNoaWxkIGZyYW1lIGFyZQorICAgYWx3YXlzIGRyYXduIG91dHNpZGUg dGhlIGNoaWxkIGZyYW1lLCBzbyBXSU5ET1dfT1JfRlJBTUUgaXMgY2VydGFpbmx5CisgICBu b3QgdGhlIGZyYW1lIHdlIGFyZSBsb29raW5nIGZvci4gIE5laXRoZXIgaXMgUi4gIEEgY2Fu ZGlkYXRlIGZyYW1lCisgICBpcyBhbnkgZnJhbWUgYnV0IFdJTkRPV19PUl9GUkFNRSBhbmQg UiB3aG9zZSByb290IGlzIFIsIHdoaWNoIGlzIG5vdAorICAgZGVjb3JhdGVkIGFuZCBoYXMg YSAnZHJhZy1pbnRlcm5hbC1ib3JkZXInIHBhcmFtZXRlci4gIElmIHdlIGZpbmQgYQorICAg c3VpdGFibGUgZnJhbWUsIHNldCBXSU5ET1dfT1JfRlJBTUUgdG8gaXQgYW5kIFBPU04gdG8g dGhlIHBhcnQgb2YgdGhlCisgICBpbnRlcm5hbCBib3JkZXIgY29ycmVzcG9uZGluZyB0byAo TVgsIE1ZKSBvbiB0aGUgZnJhbWUgZm91bmQuICAqLworCitzdGF0aWMgdm9pZAorbWFrZV9s aXNweV90dHlfcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAqciwgaW50IG14LCBpbnQgbXksCisJ CQkgTGlzcF9PYmplY3QgKndpbmRvd19vcl9mcmFtZSwgTGlzcF9PYmplY3QgKnBvc24pCit7 CisgIGVudW0gZnJhbWVfYm9yZGVyX3NpZGUgc2lkZSA9IE9OX05PTkU7CisgIC8qIFdJTkRP V19PUl9GUkFNRSBpcyB0aGUgd2luZG93IHdoZXJlIChNWCwgTVkpIGlzIGxvY2F0ZWQ6IEl0 cyBmcmFtZQorICAgICBOIGlzIGNlcnRhaW5seSBub3QgdGhlIGZyYW1lIHdlIGNhbiBkcmFn IGJlY2F1c2UgdGhlIHBvc2l0aW9uIGlzCisgICAgIGluc2lkZS4gIEl0IGNhbiBiZSBhbiBh cmJpdHJhcnkgZnJhbWUgd2hvc2Ugcm9vdCBpcyBSLiAgKi8KKyAgc3RydWN0IGZyYW1lICpu ID0gV0lORE9XX1hGUkFNRSAoWFdJTkRPVyAoKndpbmRvd19vcl9mcmFtZSkpOworICBzdHJ1 Y3QgZnJhbWUgKmYgPSBOVUxMOworICBMaXNwX09iamVjdCB0YWlsLCBmcmFtZTsKKyAgaW50 IGl4LCBpeSA9IDA7CisKKyAgRk9SX0VBQ0hfRlJBTUUgKHRhaWwsIGZyYW1lKQorICAgIHsK KyAgICAgIGYgPSBYRlJBTUUgKGZyYW1lKTsKKworICAgICAgaW50IGxlZnQgPSBmLT5sZWZ0 X3BvczsKKyAgICAgIGludCB0b3AgPSBmLT50b3BfcG9zOworICAgICAgaW50IHJpZ2h0ID0g bGVmdCArIGYtPnBpeGVsX3dpZHRoOworICAgICAgaW50IGJvdHRvbSA9IHRvcCArIGYtPnBp eGVsX2hlaWdodDsKKworICAgICAgaWYgKHJvb3RfZnJhbWUgKGYpID09IHIgJiYgZiAhPSBu ICYmIGYgIT0gcgorCSAgJiYgIUZSQU1FX1VOREVDT1JBVEVEIChmKQorCSAgJiYgIU5JTFAg KGdldF9mcmFtZV9wYXJhbSAoZiwgUWRyYWdfaW50ZXJuYWxfYm9yZGVyKSkpCisJeworCSAg aWYgKGxlZnQgPT0gbXggKyAxICYmIG15ID49IHRvcCAmJiBteSA8PSBib3R0b20pCisJICAg IHsKKwkgICAgICBzaWRlID0gT05fTEVGVDsKKwkgICAgICBpeCA9IDA7CisJICAgICAgaXkg PSBteSAtIHRvcCArIDE7CisJICAgICAgYnJlYWs7CisJICAgIH0KKwkgIGVsc2UgaWYgKHJp Z2h0ID09IG14ICYmIG15ID49IHRvcCAmJiBteSA8PSBib3R0b20pCisJICAgIHsKKwkgICAg ICBzaWRlID0gT05fUklHSFQ7CisJICAgICAgaXggPSBmLT5waXhlbF93aWR0aCAtIDE7CisJ ICAgICAgaXkgPSBteSAtIHRvcCArIDE7CisJICAgICAgYnJlYWs7CisJICAgIH0KKwkgIGVs c2UgaWYgKHRvcCA9PSBteSArIDEgJiYgbXggPj0gbGVmdCAmJiBteCA8PSByaWdodCkKKwkg ICAgeworCSAgICAgIHNpZGUgPSBPTl9UT1A7CisJICAgICAgaXggPSBteCAtIGxlZnQgKyAx OworCSAgICAgIGl5ID0gMDsKKwkgICAgICBicmVhazsKKwkgICAgfQorCSAgZWxzZSBpZiAo Ym90dG9tID09IG15ICYmIG14ID49IGxlZnQgJiYgbXggPD0gcmlnaHQpCisJICAgIHsKKwkg ICAgICBzaWRlID0gT05fQk9UVE9NOworCSAgICAgIGl4ID0gbXggLSBsZWZ0ICsgMTsKKwkg ICAgICBpeSA9IGYtPnBpeGVsX2hlaWdodCAtIDE7CisJICAgICAgYnJlYWs7CisJICAgIH0K Kwl9CisgICAgfQorCisgIGlmIChzaWRlICE9IE9OX05PTkUpCisgICAgeworICAgICAgZW51 bSBpbnRlcm5hbF9ib3JkZXJfcGFydCBwYXJ0CisJPSBmcmFtZV9pbnRlcm5hbF9ib3JkZXJf cGFydCAoZiwgaXgsIGl5KTsKKworICAgICAgWFNFVEZSQU1FICgqd2luZG93X29yX2ZyYW1l LCBmKTsKKyAgICAgICpwb3NuID0gYnVpbHRpbl9saXNwX3N5bWJvbCAoaW50ZXJuYWxfYm9y ZGVyX3BhcnRzW3BhcnRdKTsKKyAgICB9Cit9CisKIC8qIFggYW5kIFkgYXJlIGZyYW1lLXJl bGF0aXZlIGNvb3JkaW5hdGVzIGZvciBhIGNsaWNrIG9yIHdoZWVsIGV2ZW50LgogICAgUmV0 dXJuIGEgTGlzcC1zdHlsZSBldmVudCBsaXN0LiAgKi8KIApAQCAtNTY3Niw3ICs1NzYyLDE0 IEBAIG1ha2VfbGlzcHlfcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3Qg eCwgTGlzcF9PYmplY3QgeSwKICAgICAgIHdpbmRvd19vcl9mcmFtZSA9IFFuaWw7CS8qIHNl ZSBhYm92ZSAqLwogICAgIH0KIAotICBpZiAoV0lORE9XUCAod2luZG93X29yX2ZyYW1lKSkK KyAgaWYgKFdJTkRPV1AgKHdpbmRvd19vcl9mcmFtZSkgJiYgaXNfdHR5X2ZyYW1lIChmKQor ICAgICAgJiYgKGlzX3R0eV9yb290X2ZyYW1lX3dpdGhfdmlzaWJsZV9jaGlsZCAoZikKKwkg IHx8IGlzX3R0eV9jaGlsZF9mcmFtZSAoZikpKQorICAgIG1ha2VfbGlzcHlfdHR5X3Bvc2l0 aW9uIChyb290X2ZyYW1lIChmKSwgbXgsIG15LCAmd2luZG93X29yX2ZyYW1lLCAmcG9zbik7 CisKKyAgaWYgKCFOSUxQIChwb3NuKSkKKyAgICA7CisgIGVsc2UgaWYgKFdJTkRPV1AgKHdp bmRvd19vcl9mcmFtZSkpCiAgICAgewogICAgICAgLyogSXQncyBhIGNsaWNrIGluIHdpbmRv dyBXSU5ET1cgYXQgZnJhbWUgY29vcmRpbmF0ZXMgKFgsWSkgICovCiAgICAgICBzdHJ1Y3Qg d2luZG93ICp3ID0gWFdJTkRPVyAod2luZG93X29yX2ZyYW1lKTsKQEAgLTU4NzksOSArNTk3 Miw3IEBAIG1ha2VfbGlzcHlfcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmpl Y3QgeCwgTGlzcF9PYmplY3QgeSwKICAgICAgIHhyZXQgPSBteDsKICAgICAgIHlyZXQgPSBt eTsKIAotI2lmZGVmIEhBVkVfV0lORE9XX1NZU1RFTQotICAgICAgaWYgKEZSQU1FX1dJTkRP V19QIChmKQotCSAgJiYgRlJBTUVfTElWRV9QIChmKQorICAgICAgaWYgKEZSQU1FX0xJVkVf UCAoZikKIAkgICYmIE5JTFAgKHBvc24pCiAJICAmJiBGUkFNRV9JTlRFUk5BTF9CT1JERVJf V0lEVEggKGYpID4gMAogCSAgJiYgIU5JTFAgKGdldF9mcmFtZV9wYXJhbSAoZiwgUWRyYWdf aW50ZXJuYWxfYm9yZGVyKSkpCkBAIC01ODkxLDcgKzU5ODIsNiBAQCBtYWtlX2xpc3B5X3Bv c2l0aW9uIChzdHJ1Y3QgZnJhbWUgKmYsIExpc3BfT2JqZWN0IHgsIExpc3BfT2JqZWN0IHks CiAKIAkgIHBvc24gPSBidWlsdGluX2xpc3Bfc3ltYm9sIChpbnRlcm5hbF9ib3JkZXJfcGFy dHNbcGFydF0pOwogCX0KLSNlbmRpZgogICAgIH0KICAgZWxzZQogICAgIHsKZGlmZiAtLWdp dCBhL3NyYy9rZXltYXAuYyBiL3NyYy9rZXltYXAuYwppbmRleCA1NjkxYjM0YzQwZC4uYzk4 YjgzZGI2OGQgMTAwNjQ0Ci0tLSBhL3NyYy9rZXltYXAuYworKysgYi9zcmMva2V5bWFwLmMK QEAgLTE2NTIsNyArMTY1Miw4IEBAIERFRlVOICgiY3VycmVudC1hY3RpdmUtbWFwcyIsIEZj dXJyZW50X2FjdGl2ZV9tYXBzLCBTY3VycmVudF9hY3RpdmVfbWFwcywKICAgICAgICBkb2M6 IC8qIFJldHVybiBhIGxpc3Qgb2YgdGhlIGN1cnJlbnRseSBhY3RpdmUga2V5bWFwcy4KIE9M UCBpZiBub24tbmlsIGluZGljYXRlcyB0aGF0IHdlIHNob3VsZCBvYmV5IGBvdmVycmlkaW5n LWxvY2FsLW1hcCcgYW5kCiBgb3ZlcnJpZGluZy10ZXJtaW5hbC1sb2NhbC1tYXAnLiAgUE9T SVRJT04gY2FuIHNwZWNpZnkgYSBjbGljayBwb3NpdGlvbgotbGlrZSBpbiB0aGUgcmVzcGVj dGl2ZSBhcmd1bWVudCBvZiBga2V5LWJpbmRpbmcnLiAgKi8pCitsaWtlIGluIHRoZSByZXNw ZWN0aXZlIGFyZ3VtZW50IG9mIGBrZXktYmluZGluZycgb3IgYSBsaXZlIHdpbmRvdyB3aGlj aAorbWVhbnMgdG8gcmV0dXJuIHRoZSBhY3RpdmUgbWFwcyBmb3IgdGhhdCB3aW5kb3cncyBi dWZmZXIuICAqLykKICAgKExpc3BfT2JqZWN0IG9scCwgTGlzcF9PYmplY3QgcG9zaXRpb24p CiB7CiAgIHNwZWNwZGxfcmVmIGNvdW50ID0gU1BFQ1BETF9JTkRFWCAoKTsKQEAgLTE2ODIs NiArMTY4MywxNiBAQCBERUZVTiAoImN1cnJlbnQtYWN0aXZlLW1hcHMiLCBGY3VycmVudF9h Y3RpdmVfbWFwcywgU2N1cnJlbnRfYWN0aXZlX21hcHMsCiAJICBzZXRfYnVmZmVyX2ludGVy bmFsIChYQlVGRkVSIChYV0lORE9XICh3aW5kb3cpLT5jb250ZW50cykpOwogCX0KICAgICB9 CisgIGVsc2UgaWYgKFdJTkRPV19MSVZFX1AgKHBvc2l0aW9uKSkKKyAgICB7CisgICAgICBp ZiAoQlVGRkVSUCAoWFdJTkRPVyAocG9zaXRpb24pLT5jb250ZW50cykKKwkgICYmIFhCVUZG RVIgKFhXSU5ET1cgKHBvc2l0aW9uKS0+Y29udGVudHMpICE9IGN1cnJlbnRfYnVmZmVyKQor CXsKKwkgIC8qIFNlZSBjb21tZW50IGFib3ZlLiAgKi8KKwkgIHJlY29yZF91bndpbmRfY3Vy cmVudF9idWZmZXIgKCk7CisJICBzZXRfYnVmZmVyX2ludGVybmFsIChYQlVGRkVSIChYV0lO RE9XIChwb3NpdGlvbiktPmNvbnRlbnRzKSk7CisJfQorICAgIH0KIAogICBpZiAoIU5JTFAg KG9scCkKICAgICAgIC8qIFRoZSBkb2Mgc2FpZCB0aGF0IG92ZXJyaWRpbmctdGVybWluYWwt bG9jYWwtbWFwIHNob3VsZApkaWZmIC0tZ2l0IGEvc3JjL3Rlcm0uYyBiL3NyYy90ZXJtLmMK aW5kZXggZjMwN2Q3MDkzMTYuLmNmNDhmYTVhNzM0IDEwMDY0NAotLS0gYS9zcmMvdGVybS5j CisrKyBiL3NyYy90ZXJtLmMKQEAgLTI2MjAsNyArMjYyMCw3IEBAIHR0eV9mcmFtZV9hdCAo aW50IHgsIGludCB5LCBpbnQgKmN4LCBpbnQgKmN5KQogfQogCiBERUZVTiAoInR0eS1mcmFt ZS1hdCIsIEZ0dHlfZnJhbWVfYXQsIFN0dHlfZnJhbWVfYXQsIDIsIDIsIDAsCi0gICAgICAg ZG9jIDogLyogUmV0dXJuIHR0eSBmcmFtZSBjb250YWluaW5nIGFic29sdXRlIHBpeGVsIHBv c2l0aW9uIChYLCBZKS4KKyAgICAgICBkb2M6IC8qIFJldHVybiB0dHkgZnJhbWUgY29udGFp bmluZyBhYnNvbHV0ZSBwaXhlbCBwb3NpdGlvbiAoWCwgWSkuCiBWYWx1ZSBpcyBuaWwgaWYg bm8gZnJhbWUgZm91bmQuICBPdGhlcndpc2UgaXQgaXMgYSBsaXN0IChGUkFNRSBDWCBDWSks CiB3aGVyZSBGUkFNRSBpcyB0aGUgZnJhbWUgY29udGFpbmluZyAoWCwgWSkgYW5kIENYIGFu ZCBDWSBhcmUgWCBhbmQgWQogcmVsYXRpdmUgdG8gRlJBTUUuICAqLykKZGlmZiAtLWdpdCBh L3NyYy94ZGlzcC5jIGIvc3JjL3hkaXNwLmMKaW5kZXggMzZlODJmODczYWIuLjdkNTEzMTJm NWM3IDEwMDY0NAotLS0gYS9zcmMveGRpc3AuYworKysgYi9zcmMveGRpc3AuYwpAQCAtMTE0 Nyw3ICsxMTQ3LDcgQEAgI2RlZmluZSBUSElOX1NQQUNFX1dJRFRIIDEKIAkJCQkgc3RydWN0 IGdseXBoX21hdHJpeCAqLCBwdHJkaWZmX3QsIHB0cmRpZmZfdCwKIAkJCQkgaW50LCBpbnQp Owogc3RhdGljIGJvb2wgY3Vyc29yX3Jvd19mdWxseV92aXNpYmxlX3AgKHN0cnVjdCB3aW5k b3cgKiwgYm9vbCwgYm9vbCwgYm9vbCk7Ci1zdGF0aWMgYm9vbCB1cGRhdGVfbWVudV9iYXIg KHN0cnVjdCBmcmFtZSAqLCBib29sLCBib29sKTsKK3N0YXRpYyBib29sIHVwZGF0ZV9tZW51 X2JhciAoc3RydWN0IGZyYW1lICosIGJvb2wsIGJvb2wsIHN0cnVjdCB3aW5kb3cgKik7CiBz dGF0aWMgYm9vbCB0cnlfd2luZG93X3JldXNpbmdfY3VycmVudF9tYXRyaXggKHN0cnVjdCB3 aW5kb3cgKik7CiBzdGF0aWMgaW50IHRyeV93aW5kb3dfaWQgKHN0cnVjdCB3aW5kb3cgKik7 CiBzdGF0aWMgdm9pZCBtYXliZV9wcm9kdWNlX2xpbmVfbnVtYmVyIChzdHJ1Y3QgaXQgKik7 CkBAIC0xNDA2MiwxMyArMTQwNjIsMzIgQEAgcHJlcGFyZV9tZW51X2JhcnMgKHZvaWQpCiAg ICAgICAvKiBUcnVlIG1lYW5zIHRoYXQgdXBkYXRlX21lbnVfYmFyIGhhcyBydW4gaXRzIGhv b2tzCiAJIHNvIGFueSBmdXJ0aGVyIGNhbGxzIHRvIHVwZGF0ZV9tZW51X2JhciBzaG91bGRu J3QgZG8gc28gYWdhaW4uICAqLwogICAgICAgYm9vbCBtZW51X2Jhcl9ob29rc19ydW4gPSBm YWxzZTsKKyAgICAgIHN0cnVjdCB3aW5kb3cgKnN3ID0gWFdJTkRPVyAoc2VsZWN0ZWRfd2lu ZG93KTsKKyAgICAgIHN0cnVjdCBmcmFtZSAqc2YgPSBXSU5ET1dfWEZSQU1FIChzdyk7Cisg ICAgICBzdHJ1Y3QgZnJhbWUgKnJmID0gTlVMTDsKKworICAgICAgaWYgKEZSQU1FX1BBUkVO VF9GUkFNRSAoc2YpICYmICFGUkFNRV9XSU5ET1dfUCAoc2YpCisJICAmJiBGUkFNRV9NRU5V X0JBUl9MSU5FUyAoc2YpID09IDAKKwkgICYmIEZSQU1FX01FTlVfQkFSX0xJTkVTIChyZiA9 IHJvb3RfZnJhbWUgKHNmKSkgIT0gMAorCSAgJiYgTklMUCAoRmRlZmF1bHRfdmFsdWUgKFF0 dHlfbWVudV9vcGVuX3VzZV90bW0pKSkKKwkvKiBJZiB0aGUgc2VsZWN0ZWQgd2luZG93J3Mg ZnJhbWUgaXMgYSB0dHkgY2hpbGQgZnJhbWUgd2l0aG91dAorCSAgIG1lbnUgYmFyLCB0aGF0 IGZyYW1lJ3Mgcm9vdCBmcmFtZSBoYXMgYSBtZW51IGJhciBhbmQKKwkgICAndHR5LW1lbnUt b3Blbi11c2UtdG1tJyBpcyBuaWwsIHVwZGF0ZSB0aGUgbWVudSBiYXIgb2YgdGhlCisJICAg cm9vdCBmcmFtZSBmcm9tIHRoZSBzZWxlY3RlZCB3aW5kb3cuICAqLworCXNmID0gcmY7Cisg ICAgICBlbHNlCisJeworCSAgc2YgPSBOVUxMOworCSAgc3cgPSBOVUxMOworCX0KIAogICAg ICAgcmVjb3JkX3Vud2luZF9zYXZlX21hdGNoX2RhdGEgKCk7CiAKICAgICAgIEZPUl9FQUNI X0ZSQU1FICh0YWlsLCBmcmFtZSkKIAl7CiAJICBzdHJ1Y3QgZnJhbWUgKmYgPSBYRlJBTUUg KGZyYW1lKTsKLQkgIHN0cnVjdCB3aW5kb3cgKncgPSBYV0lORE9XIChGUkFNRV9TRUxFQ1RF RF9XSU5ET1cgKGYpKTsKKwkgIHN0cnVjdCB3aW5kb3cgKncKKwkgICAgPSBzZiA9PSBmID8g c3cgOiBYV0lORE9XIChGUkFNRV9TRUxFQ1RFRF9XSU5ET1cgKGYpKTsKIAogCSAgLyogSWdu b3JlIHRvb2x0aXAgZnJhbWUuICAqLwogCSAgaWYgKEZSQU1FX1RPT0xUSVBfUCAoZikpCkBA IC0xNDA4MCw4ICsxNDA5OSw4IEBAIHByZXBhcmVfbWVudV9iYXJzICh2b2lkKQogCSAgICAg ICYmICFYQlVGRkVSICh3LT5jb250ZW50cyktPnRleHQtPnJlZGlzcGxheSkKIAkgICAgY29u dGludWU7CiAKLQkgIGlmICghRlJBTUVfUEFSRU5UX0ZSQU1FIChmKSkKLQkgICAgbWVudV9i YXJfaG9va3NfcnVuID0gdXBkYXRlX21lbnVfYmFyIChmLCBmYWxzZSwgbWVudV9iYXJfaG9v a3NfcnVuKTsKKwkgIG1lbnVfYmFyX2hvb2tzX3J1bgorCSAgICA9IHVwZGF0ZV9tZW51X2Jh ciAoZiwgZmFsc2UsIG1lbnVfYmFyX2hvb2tzX3J1biwgdyk7CiAKIAkgIHVwZGF0ZV90YWJf YmFyIChmLCBmYWxzZSk7CiAjaWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVNCkBAIC0xNDA5Mywx MCArMTQxMTIsMjEgQEAgcHJlcGFyZV9tZW51X2JhcnMgKHZvaWQpCiAgICAgfQogICBlbHNl CiAgICAgewotICAgICAgc3RydWN0IGZyYW1lICpzZiA9IFNFTEVDVEVEX0ZSQU1FICgpOwor ICAgICAgc3RydWN0IHdpbmRvdyAqc3cgPSBYV0lORE9XIChzZWxlY3RlZF93aW5kb3cpOwor ICAgICAgc3RydWN0IGZyYW1lICpzZiA9IFdJTkRPV19YRlJBTUUgKHN3KTsKKyAgICAgIHN0 cnVjdCBmcmFtZSAqcmYgPSBOVUxMOwogCi0gICAgICBpZiAoIUZSQU1FX1BBUkVOVF9GUkFN RSAoc2YpKQotCXVwZGF0ZV9tZW51X2JhciAoc2YsIHRydWUsIGZhbHNlKTsKKyAgICAgIGlm IChGUkFNRV9QQVJFTlRfRlJBTUUgKHNmKSAmJiAhRlJBTUVfV0lORE9XX1AgKHNmKQorCSAg JiYgRlJBTUVfTUVOVV9CQVJfTElORVMgKHNmKSA9PSAwCisJICAmJiBGUkFNRV9NRU5VX0JB Ul9MSU5FUyAocmYgPSByb290X2ZyYW1lIChzZikpICE9IDAKKwkgICYmIE5JTFAgKEZkZWZh dWx0X3ZhbHVlIChRdHR5X21lbnVfb3Blbl91c2VfdG1tKSkpCisJLyogSWYgdGhlIHNlbGVj dGVkIHdpbmRvdydzIGZyYW1lIGlzIGEgdHR5IGNoaWxkIGZyYW1lIHdpdGhvdXQKKwkgICBt ZW51IGJhciwgdGhhdCBmcmFtZSdzIHJvb3QgZnJhbWUgaGFzIGEgbWVudSBiYXIgYW5kCisJ ICAgJ3R0eS1tZW51LW9wZW4tdXNlLXRtbScgaXMgbmlsLCB1cGRhdGUgdGhlIG1lbnUgYmFy IG9mIHRoZQorCSAgIHJvb3QgZnJhbWUgZnJvbSB0aGUgc2VsZWN0ZWQgd2luZG93LiAgKi8K KwlzZiA9IHJmOworCisgICAgICB1cGRhdGVfbWVudV9iYXIgKHNmLCB0cnVlLCBmYWxzZSwg c3cpOwogCiAgICAgICB1cGRhdGVfdGFiX2JhciAoc2YsIHRydWUpOwogI2lmZGVmIEhBVkVf V0lORE9XX1NZU1RFTQpAQCAtMTQxMTgsMjAgKzE0MTQ4LDE0IEBAIHByZXBhcmVfbWVudV9i YXJzICh2b2lkKQogICAgdXBkYXRlZCB2YWx1ZSBvZiB0aGlzIGZsYWcsIHRvIHBhc3MgdG8g dGhlIG5leHQgY2FsbC4gICovCiAKIHN0YXRpYyBib29sCi11cGRhdGVfbWVudV9iYXIgKHN0 cnVjdCBmcmFtZSAqZiwgYm9vbCBzYXZlX21hdGNoX2RhdGEsIGJvb2wgaG9va3NfcnVuKQor dXBkYXRlX21lbnVfYmFyIChzdHJ1Y3QgZnJhbWUgKmYsIGJvb2wgc2F2ZV9tYXRjaF9kYXRh LCBib29sIGhvb2tzX3J1biwgc3RydWN0IHdpbmRvdyAqdykKIHsKLSAgTGlzcF9PYmplY3Qg d2luZG93OwotICBzdHJ1Y3Qgd2luZG93ICp3OwotCiAgIC8qIElmIGNhbGxlZCByZWN1cnNp dmVseSBkdXJpbmcgYSBtZW51IHVwZGF0ZSwgZG8gbm90aGluZy4gIFRoaXMgY2FuCiAgICAg IGhhcHBlbiB3aGVuLCBmb3IgaW5zdGFuY2UsIGFuIGFjdGl2YXRlLW1lbnViYXItaG9vayBj YXVzZXMgYQogICAgICByZWRpc3BsYXkuICAqLwogICBpZiAoaW5oaWJpdF9tZW51YmFyX3Vw ZGF0ZSkKICAgICByZXR1cm4gaG9va3NfcnVuOwogCi0gIHdpbmRvdyA9IEZSQU1FX1NFTEVD VEVEX1dJTkRPVyAoZik7Ci0gIHcgPSBYV0lORE9XICh3aW5kb3cpOwotCiAgIGlmIChGUkFN RV9XSU5ET1dfUCAoZikKICAgICAgID8KICNpZmRlZiBIQVZFX0VYVF9NRU5VX0JBUgpAQCAt MjEwODgsMjQgKzIxMTEyLDMzIEBAIHJlZGlzcGxheV93aW5kb3cgKExpc3BfT2JqZWN0IHdp bmRvdywgYm9vbCBqdXN0X3RoaXNfb25lX3ApCiAKICAgLyogV2hlbiB3ZSByZWFjaCBhIGZy YW1lJ3Mgc2VsZWN0ZWQgd2luZG93LCByZWRvIHRoZSBmcmFtZSdzIG1lbnUKICAgICAgYmFy LCB0b29sIGJhciwgdGFiLWJhciwgYW5kIHRoZSBmcmFtZSdzIHRpdGxlLiAgKi8KLSAgaWYg KHVwZGF0ZV9tb2RlX2xpbmUKLSAgICAgICYmIEVRIChGUkFNRV9TRUxFQ1RFRF9XSU5ET1cg KGYpLCB3aW5kb3cpKQorICBpZiAodXBkYXRlX21vZGVfbGluZSAmJiBFUSAoRlJBTUVfU0VM RUNURURfV0lORE9XIChmKSwgd2luZG93KSkKICAgICB7Ci0gICAgICBib29sIHJlZGlzcGxh eV9tZW51X3A7Ci0KICAgICAgIGlmIChGUkFNRV9XSU5ET1dfUCAoZikpCiAJewogI2lmZGVm IEhBVkVfRVhUX01FTlVfQkFSCi0JICByZWRpc3BsYXlfbWVudV9wID0gRlJBTUVfRVhURVJO QUxfTUVOVV9CQVIgKGYpOworCSAgaWYgKEZSQU1FX0VYVEVSTkFMX01FTlVfQkFSIChmKSkK KwkgICAgZGlzcGxheV9tZW51X2JhciAodyk7CiAjZWxzZQotCSAgcmVkaXNwbGF5X21lbnVf cCA9IEZSQU1FX01FTlVfQkFSX0xJTkVTIChmKSA+IDA7CisJICBpZiAoRlJBTUVfTUVOVV9C QVJfTElORVMgKGYpID4gMCkKKwkgICAgZGlzcGxheV9tZW51X2JhciAodyk7CiAjZW5kaWYK IAl9CiAgICAgICBlbHNlCi0gICAgICAgIHJlZGlzcGxheV9tZW51X3AgPSBGUkFNRV9NRU5V X0JBUl9MSU5FUyAoZikgPiAwOworCXsKKwkgIHN0cnVjdCBmcmFtZSAqcmYgPSBOVUxMOwog Ci0gICAgICBpZiAocmVkaXNwbGF5X21lbnVfcCkKLSAgICAgICAgZGlzcGxheV9tZW51X2Jh ciAodyk7CisJICBpZiAoRlJBTUVfUEFSRU5UX0ZSQU1FIChmKQorCSAgICAgICYmIEZSQU1F X01FTlVfQkFSX0xJTkVTIChmKSA9PSAwCisJICAgICAgJiYgRlJBTUVfTUVOVV9CQVJfTElO RVMgKHJmID0gcm9vdF9mcmFtZSAoZikpICE9IDAKKwkgICAgICAmJiBOSUxQIChGZGVmYXVs dF92YWx1ZSAoUXR0eV9tZW51X29wZW5fdXNlX3RtbSkpKQorCSAgICAvKiBJZiBGIGlzIGEg dHR5IGNoaWxkIGZyYW1lIHdpdGhvdXQgbWVudSBiYXIsIHRoYXQgZnJhbWUncyByb290CisJ ICAgICAgIGZyYW1lIGhhcyBhIG1lbnUgYmFyIGFuZCAndHR5LW1lbnUtb3Blbi11c2UtdG1t JyBpcyBuaWwsCisJICAgICAgIGRpc3BsYXkgdGhlIG1lbnUgYmFyIG9mIHRoZSByb290IGZy YW1lJ3Mgc2VsZWN0ZWQgd2luZG93LiAgKi8KKwkgICAgZGlzcGxheV9tZW51X2JhciAoWFdJ TkRPVyAoRlJBTUVfU0VMRUNURURfV0lORE9XIChyZikpKTsKKwkgIGVsc2UgaWYgKEZSQU1F X01FTlVfQkFSX0xJTkVTIChmKSA+IDApCisJICAgIGRpc3BsYXlfbWVudV9iYXIgKHcpOwor CX0KIAogI2lmZGVmIEhBVkVfV0lORE9XX1NZU1RFTQogICAgICAgaWYgKEZSQU1FX1dJTkRP V19QIChmKSkKQEAgLTI3MzQ3LDEwICsyNzM4MCwxOSBAQCBkaXNwbGF5X3R0eV9tZW51X2l0 ZW0gKGNvbnN0IGNoYXIgKml0ZW1fdGV4dCwgaW50IHdpZHRoLCBpbnQgZmFjZV9pZCwKIHsK ICAgc3RydWN0IGl0IGl0OwogICBzdHJ1Y3QgZnJhbWUgKmYgPSBTRUxFQ1RFRF9GUkFNRSAo KTsKLSAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cgKGYtPnNlbGVjdGVkX3dpbmRvdyk7 CiAgIHN0cnVjdCBnbHlwaF9yb3cgKnJvdzsKICAgc2l6ZV90IGl0ZW1fbGVuID0gc3RybGVu IChpdGVtX3RleHQpOwogCisgIHN0cnVjdCBmcmFtZSAqcmYgPSBOVUxMOworCisgIGlmIChG UkFNRV9QQVJFTlRfRlJBTUUgKGYpICYmICFGUkFNRV9XSU5ET1dfUCAoZikKKyAgICAgICYm IEZSQU1FX01FTlVfQkFSX0xJTkVTIChmKSA9PSAwCisgICAgICAmJiBGUkFNRV9NRU5VX0JB Ul9MSU5FUyAocmYgPSByb290X2ZyYW1lIChmKSkgIT0gMAorICAgICAgJiYgTklMUCAoRmRl ZmF1bHRfdmFsdWUgKFF0dHlfbWVudV9vcGVuX3VzZV90bW0pKSkKKyAgICBmID0gcmY7CisK KyAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cgKGYtPnNlbGVjdGVkX3dpbmRvdyk7CisK ICAgZWFzc2VydCAoRlJBTUVfVEVSTUNBUF9QIChmKSk7CiAKICAgLyogRG9uJ3Qgd3JpdGUg YmV5b25kIHRoZSBtYXRyaXgncyBsYXN0IHJvdy4gIFRoaXMgY2FuIGhhcHBlbiBmb3IKQEAg LTM4NDY2LDYgKzM4NTA4LDcgQEAgc3ltc19vZl94ZGlzcCAodm9pZCkKICAgREVGU1lNIChR bmhkcmFnLCAibmhkcmFnIik7CiAgIERFRlNZTSAoUXZkcmFnLCAidmRyYWciKTsKICAgREVG U1lNIChRaG91cmdsYXNzLCAiaG91cmdsYXNzIik7CisgIERFRlNZTSAoUXR0eV9tZW51X29w ZW5fdXNlX3RtbSwgInR0eS1tZW51LW9wZW4tdXNlLXRtbSIpOwogfQogCiAK --------------OonywoDpVCk8BD8QQlfCUFVy--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 2 Feb 2025 16:13:20 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 02 11:13:20 2025 Received: from localhost ([127.0.0.1]:35936 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tecb1-0006FA-Qt for submit <at> debbugs.gnu.org; Sun, 02 Feb 2025 11:13:20 -0500 Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d]:47150) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tecay-0006Eu-Ry for 75056 <at> debbugs.gnu.org; Sun, 02 Feb 2025 11:13:17 -0500 Received: by mail-ej1-x62d.google.com with SMTP id a640c23a62f3a-aaeec07b705so578142366b.2 for <75056 <at> debbugs.gnu.org>; Sun, 02 Feb 2025 08:13:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738512790; x=1739117590; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=g8XVo99/06dSvX/41vne722OBTTniXuN+35jXCHly7w=; b=DpImTL0ynPYT9O5hGRLL4hy4QNeIR6hsXx/d0DTKjo8Zs0WgLOxet7xwMsHV7Dc/cc Opf7qEuSlvNKhh5R9saMtj9FB8WQz3pgmx0cQb7Xo04pvR9yv0MTD+Zp0BBmcWrLZbRb m0ZJV5zjYrnopNHAYKak7SWv3rZczTBJzLt0lod/zsUotTOSTP4chZjkqzqC5HRYJPxe MnbiNAkQJUgTAl+xjvTdYJeI4w/x4McEIfFJw8CDSGTPuwHaHfibuJSpEskW0GKFQnYx /IqdgFmhlfAhjVPmoh8cuP8lin7Oo8KMBBlw46XgAB7q35weAVybdLT6S13gGsn6BFfQ ydJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738512790; x=1739117590; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=g8XVo99/06dSvX/41vne722OBTTniXuN+35jXCHly7w=; b=QL1MDzo6EyXPK3j1QHVCJYybcZF7PQL/OIsoUJuBmyDHRr+GXO/hKHML65TgXabU8e 5ab/+j8iUwWmFHBwIS6WiCgFbF+0IphIgRJB0V2AZj6NnNcUVwffMC/uoV3VFm2KYUSS LZvWngsqT7oqL9wouKf+LMsul2hy1wRWJHFf+pD/e5IbhqkE1D0zFFXzJmwvkGv/RGd4 +Ke9SEw6vDBtvncj6fJ/8fLZm5MC3zTwZKB2c4tcRqr1Kh//kZGXn+fGrVu/lskHl2rG +96+YQw3pZcEGpmQJimliDv+JnAN9OGnWLVLkzF58Le1u98iMgs/vLcuNOcoPwnOSqQY aNaQ== X-Forwarded-Encrypted: i=1; AJvYcCVkoPsqOVH0JKwpuATqxvnUCJ4zGpx/q7wPV8zZGnKv/WJTNPlmhAKQkXs9QkPIx4dwgEeBWw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YynT9HxORp7xtmDfdwhw4VolcPTCnTS/NdDCWUwfegLtgAJpy/8 gyj/VyazeyLjMiEbIrSmnbeLOfhli3W9YlNuUuNZ2fUPHzYud3yv1fopGg== X-Gm-Gg: ASbGnctrc4HKE7f0sWcJ8AHn0GkGNJjvO77pRcGSwRGBtUbD5yRlSsIiCVnEz19zZ8C hRzygzgVgSj2ID6T9kaCnSecKWtmzLDR8w5Af/DM2Lq/ajtIGxxZVonoTJzaeU1wVlG0Wce053O gQkjVwbi5v3t071OGLMK+th1JIvzRMagH+QHv5YcxyaQ5paHSQ+HHxjfTihOvBy5A0STrW5aFqn VlRmJdgvmnQT3weiJQhpz1UXsflmJg9SpUkyp4ozyJ67SbKpXgbJq0rfWJpS6SdZpCpvCMkFLUj RCzLGgEUjsPDY9MOsv3Ob7A4xtSBcXfmRtVaweJvgAfnvYuvYcdOMLtDrvYG/qmeQHomk90quoX 9SXigaf7FnwwaYm/fMpVmqOmD X-Google-Smtp-Source: AGHT+IGuFRTB4o8W/dl82yhWJReiAp5ktxbq+N3yWCIL9AslK+yP2P7RD2ofpGZcpba9mkUiaduNLw== X-Received: by 2002:a17:906:730a:b0:ab3:a4f6:7549 with SMTP id a640c23a62f3a-ab6cfdbdcd9mr2210162066b.45.1738512790279; Sun, 02 Feb 2025 08:13:10 -0800 (PST) Received: from pro2 (p200300e0b71e2e00b17d1337b17de790.dip0.t-ipconnect.de. [2003:e0:b71e:2e00:b17d:1337:b17d:e790]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc723efc45sm5983487a12.32.2025.02.02.08.13.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 02 Feb 2025 08:13:09 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <5f9f18dd-4272-4b8d-a929-1d3967197696@HIDDEN> (martin rudalics's message of "Sun, 2 Feb 2025 10:43:41 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m2tt9dkl7x.fsf@HIDDEN> <e2bbcb31-c65c-4af7-b787-2125469cb078@HIDDEN> <m2jza8vh0y.fsf@HIDDEN> <5f9f18dd-4272-4b8d-a929-1d3967197696@HIDDEN> Date: Sun, 02 Feb 2025 17:13:09 +0100 Message-ID: <m2ikpss4tm.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: > The "All" on the mode line has the final "l" never covered, not even on > GUI frames. For the "All" not being displayed correctly I've submitted bug#76014. Seems to be broken in master for a longer time, and before tty child frames. Maybe the bug rings a bell for someone.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 2 Feb 2025 10:08:21 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 02 05:08:21 2025 Received: from localhost ([127.0.0.1]:33204 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1teWto-0002MH-VI for submit <at> debbugs.gnu.org; Sun, 02 Feb 2025 05:08:21 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:61942) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1teWtn-0002Lz-0w for 75056 <at> debbugs.gnu.org; Sun, 02 Feb 2025 05:08:19 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-4368a293339so40133625e9.3 for <75056 <at> debbugs.gnu.org>; Sun, 02 Feb 2025 02:08:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738490892; x=1739095692; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=mwXMZQeVFx58sBK6jeTr6xdHZjo4SuyfO7fiZmskiqs=; b=flLQHlNcsqKmZZUVa3rWdFs1raRrADfeFYzjGhX5A4iMkIJDhIjfz+Otqw+DM5UjJb S7VuoWqtiFl3Xs4vmS/h4W27bhqI7smEVKX/N8sXgA9FRTqhdGc5Xs9uJPI2P/Y/DHEO 1RRx4xQD+of8w3BHtFxZ0Nx40mXyjQ/tprQna+6RdczuUrpoH3sAQz+yS7izOQnYChYw j/fdD/VJknW+6yKrtjgZSdppjO32fU4zpuPWWdlEWdjJhhFyz7KDpz4o+ZA8xK/13IxS FaQT3AoCtnlUZfn85eOcQ9xyJtehmKUrHC5LxmIx6q+3igH/dyspaD+WYKyqr94GTf87 8+Dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738490892; x=1739095692; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=mwXMZQeVFx58sBK6jeTr6xdHZjo4SuyfO7fiZmskiqs=; b=mgWXCJVPE1SFnItIZq9GZa5jhNtAqHSX+qs0nblpQ6WlWUJM/n1MRfQGzJMtdfg5cM I5CpxK/vL0Me38j5hWu10bNSDA7u7d/HCms9MOVT/UppMVRLEwGIWVfBk9wYcCG0UWJL xcQBBWxVYxM/dWPBoIUeMAkWBZaDyMuPHm8lP4I9pfVAZarjUXGhZ0oQhte1prnivTyL +g8sHCJ2rzrhjv7qh13KnNJa5YcEIVsKAuPVn3MPFAFW2K+pm75nJ4kdch7HEzp/Qapd 5bZ3yvT9inUjCcBCE09WgVXUCdJYwztsFuwp43gEobdcBxPeeMQ8oudCUK6blD3m1pEw dW7A== X-Forwarded-Encrypted: i=1; AJvYcCV51EdLY2zGdDaAJZmI4DXIc1mnNEvLsyNTBE1tPWjVDRWJnuZcdm1CqSMiO/pmvEIPTExlFA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxgiYMaVctz7pQrQAki/h2A9VMpoQQpKc+S/0togRD/wltJSi6M EtvaJ1V2yWiRyZ2RMljjzIq6uyZV8rjhA6Wg1i5OcA6Sytdu7EuH28D8tw== X-Gm-Gg: ASbGnct9fX4imRqzs36n1syrkxqexpFvCxwQSv8gnBcvBfjBKSMN03XMZI6lwBUEveQ DTMziiWJaB9GRb9yOEZmEYzxsOYG7Y8exiHsuyY/4GGteNrXXsnbVyN2TnFnRdyYf0GEv34wBEG ZnKKmbF0IbO1XhnmLxnHBdye0xOByfaicFX0hzFcO6b2Y8gc96ehgLpHvCR+9ORMnp2FTkEmO6x kCeJLrrfTBO1W/20VSen1q+t+wC/hZ5du7wc6jaOmM0wv4uM4BjbqLDPc6FfSNiOh5ltwwEMRQ4 Kqy7GBLluZi4Es+zgXphFtApYUahbTcIYD/e2Zi8XRQ9fSuR8ia5sjf509kZDvTdeOkJTKH1tH7 gZ+pGWc5HJYN12z+vP2k92CWv X-Google-Smtp-Source: AGHT+IEgvB2JDpv1HR6u+Dr5F+bgHmIZxEfq9BONXBvUYh/vE4MmO2yLrz/ypsu7qFi84+mSnNwGPQ== X-Received: by 2002:a5d:5989:0:b0:38c:2745:2dd8 with SMTP id ffacd0b85a97d-38c51e8e124mr13973824f8f.37.1738490892347; Sun, 02 Feb 2025 02:08:12 -0800 (PST) Received: from pro2 (p200300e0b71e2e00b17d1337b17de790.dip0.t-ipconnect.de. [2003:e0:b71e:2e00:b17d:1337:b17d:e790]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c5c1cf53asm9386722f8f.87.2025.02.02.02.08.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 02 Feb 2025 02:08:11 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <5f9f18dd-4272-4b8d-a929-1d3967197696@HIDDEN> (martin rudalics's message of "Sun, 2 Feb 2025 10:43:41 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m2tt9dkl7x.fsf@HIDDEN> <e2bbcb31-c65c-4af7-b787-2125469cb078@HIDDEN> <m2jza8vh0y.fsf@HIDDEN> <5f9f18dd-4272-4b8d-a929-1d3967197696@HIDDEN> Date: Sun, 02 Feb 2025 11:08:10 +0100 Message-ID: <m2bjvkveut.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> Okay, pretty strange, I don't have an idea what that could be yet. >> I could reproduce it once here, though. > > I was able to reproduce it once here only. It might be connected to > mouse hovering. That was a good clue, it's mouse-highlighting! Move the top-most child frame so that it obscures a part of the mode-line of the other child that has mouse-face, then move the mouse into that mode-line part.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 2 Feb 2025 09:43:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 02 04:43:57 2025 Received: from localhost ([127.0.0.1]:33151 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1teWWD-0006bl-2M for submit <at> debbugs.gnu.org; Sun, 02 Feb 2025 04:43:57 -0500 Received: from mout.gmx.net ([212.227.15.15]:39893) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1teWWA-0006bU-Da for 75056 <at> debbugs.gnu.org; Sun, 02 Feb 2025 04:43:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738489427; x=1739094227; i=rudalics@HIDDEN; bh=VT58xpWXhmIHKmoTdRdrFPg2i/IMrCE65DomY0F5h1E=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=sKcf+app6XrmEbVGurqaPWWERVp471DUnqhwl2e6FUPHOSU31t5CZTawIacEmpOb 0ItwFymSGXAQWaGAgbH7mZ9vF4vpybEFDTYLS6/GeGqsWKi4mrd1C+7mcKJ58N5/b Dty6fChF/RXhVgssiZjTI9Y24FM6Sd9fHP797koz9djDmnD/EPHo6h6p/VWRcZbVW 5ci+E9tSmP3au8Lh/Akpf26KJhxbaTRE5BqYbeJGxh4qOw6LnVdmNhUH3Uv5BWdtS jW1F0fI6sGkcgXYTqi9UudTygGPxwoPANnFOimN98VtxwjuxsKX+YO5h2K26ezyWy Myd+7S875ANc5QO+8g== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.97.190]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M6Db0-1tXtk30K3E-00BiAz; Sun, 02 Feb 2025 10:43:47 +0100 Message-ID: <5f9f18dd-4272-4b8d-a929-1d3967197696@HIDDEN> Date: Sun, 2 Feb 2025 10:43:41 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m2tt9dkl7x.fsf@HIDDEN> <e2bbcb31-c65c-4af7-b787-2125469cb078@HIDDEN> <m2jza8vh0y.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2jza8vh0y.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:YwbKP1hWBp9jeitWpdmUfa+DG0VqOB5n+e6Ec9XEcgTELDgOF+S YLD1Yw6QqteKr6hrYO6fVNpFzCSu+IMDVCzD4A3RSPA5DyGKKMJQefISmdyFoXvz21mnGkA 3wImHQaxYylL4/EeYo+tPoIZWxuOSlT45EIfGPkYtFM49fkjFdt4PU2dgPDfN8xwiVUOBrq YPBzwpRpTfaCc5iVRuScg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:yS5knWy/bSg=;wn+9kiac3G9B7lsjAbQ2vN6wcwE JrqX4tuK8+H0lnKhA75x+ofdLT8+JSgQ+/JmpT/gdfNH5vMNve5HbyS2YG6eHyglAxedS79s9 tjaRWqzmS8iKj7PAJa/Yhj+XNrtFXcQqGxbbWekqMm1JpvRkD27tW9c9Zvdw2mp0Oi3/vNzrI Zt5yri2MUDjs12amhiQjqhVohX9f23wyyfuPYPcAx9UVxUxHzCHLtvjEImSN4fM7SgVdl+sZT XTCIrCLWMma73ISoWJ5NIXbKrJRt4aWKkTjwMHUkiuG00KrN08DyI/8ycK0RcJi0qvOGRMKQQ ImBQX22iHNqf77yn+2hkEvBayhd1tCQx8R+N25/3LJJBnpgFM3ns/7DB0fCAgquQe75FeyaJQ MjhNM+/tVSbRg6vbY8ilAsazgIqfvulRIU49NK/nSVpKnNbXE57awAR92s8hs2iEBFHOvXhlK RNH8O0DIIWYwkeW2fSe4g0jfMHio7Dq8Cvztp/w7jIZ8vBA6hEaB02SEwHkETxoyMD/e4+mF2 RNkSOdtwTbPWy4ATPqNvvqTz4tkFBGJC6a4z6rv26o3iD5cLN0DDyT4Mmyn3zd/9Ui3KpJKlz n+Y99PEYk4UKW2CrROAoxakTO4yy6ndhF+s1ZwiwiL8jft6siL250juIy6HdmivPFeJPAqlBP QK/1tEyZDxX6BeF0TOmLusXCQqQyVnhoaPUG6NylQuMQGGltWeykEbNPMqWoeKfkGgkeVp+9/ XHzb0mQNUqXRIOmzJHY5qLs63qNrn9A30dSIdiR7vvp8F/tVwkpChch9w/yCK3C3p5mTDaawy SmPgN31XzpUHn1Z+RDrmxd0D5d7sRhdaDFuw9mGKeZaXqXNGZPkaI+NME8qaEky5nLUCy/eZl qj7PgmqNpNmEQbF7kfhcT68NGlNmwybauSaig+0IJVWaB3A6KzpMt1UnFA9vnvZ8VJAs2/6m+ 5J6kRLxDoOYBeNtLnVSafg4qWDdqWKIBDqEbdF337NpVJj1KJx75fJbXIregtliatpt3suZEi O796B/JfA35GWiEGYKbdNVlOi7PYX/Zn9lp5QJkT8BZuxlOofbgsl3HoZ2SPp/diZ6/6rnun5 AXZt4GIGU2CyI79aaXtaafBp3Pyjx9RwgMleinA0DYcTr+7U5w4If3/K30R+Fhm3TgNncOEMN axyYEkGrl6EXeJJ8OD3EaDazAgndy1M5NUOuGqHPiY4SSEYUrvLoN7SlqnAhANSSMx821R3YG Bm0mf+CEC313CaKspNS3RaP5C1dUW+nHxARJy9nV/xe8FAlqcrLFvIfB4f1B3SZQ7bNyBPZfk WFYVZ8LhoyBG3z7kIj4nYuDzJ+PXVx6nnAy7PZjYzaMdfM= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) ID4gT2theSwgcHJldHR5IHN0cmFuZ2UsIEkgZG9uJ3QgaGF2ZSBhbiBpZGVhIHdoYXQgdGhh dCBjb3VsZCBiZSB5ZXQuDQogPiBJIGNvdWxkIHJlcHJvZHVjZSBpdCBvbmNlIGhlcmUsIHRo b3VnaC4NCg0KSSB3YXMgYWJsZSB0byByZXByb2R1Y2UgaXQgb25jZSBoZXJlIG9ubHkuICBJ dCBtaWdodCBiZSBjb25uZWN0ZWQgdG8NCm1vdXNlIGhvdmVyaW5nLg0KDQogPiBBcmUgdGhl IGJsYWNrIHN0cmlwZXMgb24gdGhlIG1vZGUtbGluZSBpbiB5b3VyIGltYWdlIG5vcm1hbCB3 aXRoIHlvdXINCiA+IGNvbG9ycz8gSSd2ZSBjaGFuZ2VkIHRoZSBjb2xvcnMgdG8gd2hpbGUg b24gc3RlaW5ncmF1IGFuZCBtYXVzZ3JhdQ0KID4gYmVjYXVzZSBJIHdhcyBibGluZGVkIGJ5 IHRoZSBicmlnaHQgY29sb3JzLiBXaGVuIEkgcmVwcm9kdWNlZCBpdCwgSQ0KID4gY291bGQg c2VlIG9uZSBtb2RlLWxpbmUgYmVpbmcgZHJhd24gcGFydGlhbGx5ICJpbnRvIiB0aGUgb3Ro ZXIgY2hpbGQsDQogPiBidXQgdGhlIGNvbG9ycyBsb29rZWQgb2theS4NCg0KSUlVQyB0aGVz ZSBhcmUgdGhlIGhvdmVyaW5nIGNvbG9ycyBmb3IgdGhlIG1vdXNlLCBJIG5ldmVyIGNoYW5n ZWQgdGhlbS4NClRoZSAiQWxsIiBvbiB0aGUgbW9kZSBsaW5lIGhhcyB0aGUgZmluYWwgImwi IG5ldmVyIGNvdmVyZWQsIG5vdCBldmVuIG9uDQpHVUkgZnJhbWVzLg0KDQogPiBpY2ggd29s bHRlIGRvY2ggbnVyIGVpbiBiaXNzY2hlbiBDb3JmdSwgbWltaW1pLg0KDQpGw7xyIFNpc3N5 IHdhciBLb3JmdSBpbW1lciBub2NoIGJlc3NlciBhbHMgZGVyIEdlbmZlciBTZWUsIG1hcnRp bg0K
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 2 Feb 2025 09:21:28 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 02 04:21:28 2025 Received: from localhost ([127.0.0.1]:33090 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1teWAR-0005aB-PE for submit <at> debbugs.gnu.org; Sun, 02 Feb 2025 04:21:28 -0500 Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]:52233) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1teWAQ-0005Zy-1E for 75056 <at> debbugs.gnu.org; Sun, 02 Feb 2025 04:21:26 -0500 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-ab68a4ab074so426156466b.0 for <75056 <at> debbugs.gnu.org>; Sun, 02 Feb 2025 01:21:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738488079; x=1739092879; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=Tnq+L+s2uktEIGB8HzJyiAq5lCjLUOG0E5Cq2pmw8PE=; b=MbWrlsSGgALihrPE6XlnK9NEmV8wrbPCgm4Moqrq0lSWRAVreu62RvnEZP8xQ3s5Sz LbU2HvdBFIHI3yAfRvGd5UsJL7PyhHsSRewXdBMgM9cXdzrvJXgdYiVZDAI9ALh+QLPL IE/pJLfEM7MbTB3dhyoHp2urRgcFJd9E0n0yZQTqIJEUTIWJkdRQFZ0BpWzooVtzi5Oc 4OzCvDZm2yg/xtvh2ieEF8TWGrfROHW2xHBuBhNSP8VAaDtZEsBeJtv/ksv0ES5GEVN3 aqsGvEGxBwo94cVtW3UvGAh/bIWYZAY54tQVVJQCKsRGGVZ2l2mxVBdanWBcJ0NMtK0T pKcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738488079; x=1739092879; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Tnq+L+s2uktEIGB8HzJyiAq5lCjLUOG0E5Cq2pmw8PE=; b=qHpvf4CiLqRXz36NHvK+ZNPl0w9fXMVpE3FDey0yWBkC7qF9dnHgjoHT030XLfJQfX A2oD7vCufmQJJ0zMd6txlpM0yytPiRl1exfqdNVYx4XKck/ok3Epw3tV962m5dD2u99a aTLTl9Fx7cmNOUUW/HD72h+dIEFYpLcYfiVQaADDhkcIbkYl3/6c4NXO0XUv2Z/Fhl4P cKW+2SskJYSWVrSTsGwPQbdpVOJH3b42UbvBj//45Z2juKQxQ4vWLNAw1TJptKJovQEs SL4I3dCFvdf5BRfR/snJaKmhd4ZJHYtCWLKMxYmK47wlttWnIegCxJH3MPBZzDIHG7Es /44Q== X-Forwarded-Encrypted: i=1; AJvYcCX6U7RTPt81BbJzyq+DRurwkcdZu+4qVgF172nZXFqH5HRLkk2VYncfuXhAH6D1SWplQpCXFA==@debbugs.gnu.org X-Gm-Message-State: AOJu0Ywf27y3tjRgTKfllJkfXzY0NQjKqfkeUgf1RYGy9rp66+vagF3o KbGfc1MwQtGKydKJn2Hv0acReOyTZPOIjnR3GpHtmNNrYVok5RbEwPW37Q== X-Gm-Gg: ASbGncvXtRpS79AAsLFd6SNlgS2ZWzDPoocLSx4H0x/mUmCj27LK6t/QYhJrms8I9YI izRXcChTBHZxnPA5waxRJ7O5LQpvUrTxzoxSO//LwLpPhtFLBA7186tpBzH4rqAcqr7Gk1bPi4F gIueTafQHsSLOTLfAoSN4M0fceQ62iTWC094oeynftwWgqO3LoGwkeR2L6wiQRdFWu5PBUn7Zgl QR9zDHrHaCXR4xbxWfJXCulzR9YguUUXO2m2Hw8EZ1k1NpYMcbG8KwKk+cfj/eypwbHs94TEaEv AVhvqn/156vDwGnTluYU7yLD09D686CtTgBa5tCTDGfDc5o1dpEpvTGOqYF1DnBBR4k61ZDqfCn 1posDO41pEmOAqMrrjKjCOJqa X-Google-Smtp-Source: AGHT+IHarJbhkBsAePyG2E6gITVRpdiKPdwPqRVKhz4N6kkgTqgiDX4ncYZx+T1ezLTwacc8UiBWpg== X-Received: by 2002:a05:6402:524b:b0:5d9:ad1:dafc with SMTP id 4fb4d7f45d1cf-5dc5efec0c7mr43047255a12.25.1738488079220; Sun, 02 Feb 2025 01:21:19 -0800 (PST) Received: from pro2 (p200300e0b71e2e00b17d1337b17de790.dip0.t-ipconnect.de. [2003:e0:b71e:2e00:b17d:1337:b17d:e790]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e4a5a26bsm548699466b.183.2025.02.02.01.21.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 02 Feb 2025 01:21:18 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <e2bbcb31-c65c-4af7-b787-2125469cb078@HIDDEN> (martin rudalics's message of "Sun, 2 Feb 2025 09:53:12 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m2tt9dkl7x.fsf@HIDDEN> <e2bbcb31-c65c-4af7-b787-2125469cb078@HIDDEN> Date: Sun, 02 Feb 2025 10:21:17 +0100 Message-ID: <m2jza8vh0y.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> Fix pushed to master. > > Confirmed, thanks. > > Next issue: Please look at how the mode line of the orange window > overlaps the yellow window in the attached screenshot. It happened > after I mouse-clicked the mode line of the yellow window to bring it to > foreground. > > Schon wieder was passiert, martin Okay, pretty strange, I don't have an idea what that could be yet. I could reproduce it once here, though. Are the black stripes on the mode-line in your image normal with your colors? I've changed the colors to while on steingrau and mausgrau because I was blinded by the bright colors. When I reproduced it, I could see one mode-line being drawn partially "into" the other child, but the colors looked okay. ich wollte doch nur ein bisschen Corfu, mimimi.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 2 Feb 2025 08:53:23 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 02 03:53:23 2025 Received: from localhost ([127.0.0.1]:33043 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1teVjG-0004Fp-M2 for submit <at> debbugs.gnu.org; Sun, 02 Feb 2025 03:53:22 -0500 Received: from mout.gmx.net ([212.227.17.20]:57081) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1teVjD-0004Fb-HB for 75056 <at> debbugs.gnu.org; Sun, 02 Feb 2025 03:53:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738486393; x=1739091193; i=rudalics@HIDDEN; bh=IzkA+Z3qV39mYts/TTx+W1nQG8K6n34jl4jHcPuCOg8=; h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version: Subject:To:Cc:References:From:In-Reply-To:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=fcbiBOfJupev9y9ZqYSH1k+MV8DHy5gJvRUuJEJyZrmawzaYqj68OKxBf7IKyYtE Xpn3E9YnKwZ89ixYMSZXGGTvepwFaV0zK9SjaMmv6hQEQctwFsocmv1yCzKirEqIs 1RtjRRkUQ57bAB9QAohKqeCPlKCVVTdh5pwsfkG4NQ5z6v15WsWox3j3/JnCU9NyV 00R0kJNkNBHTvhZB8Bkh5DYUcmyK6R6HX0Of/vqIyvm+tARV4P4V1nZsetivup/Bk geevpYqG9tAs+2heUsGIllV00dtIog16/0bD0vXl/JJ+QVnISCUZLv9qO9kRz4adg dLj/ju1dJW+G2iP6Mg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.97.190]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M4Jqb-1teEkC0I77-00DiCN; Sun, 02 Feb 2025 09:53:13 +0100 Content-Type: multipart/mixed; boundary="------------B2qoq2pME5vsFCjCIrAhMNGZ" Message-ID: <e2bbcb31-c65c-4af7-b787-2125469cb078@HIDDEN> Date: Sun, 2 Feb 2025 09:53:12 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m2tt9dkl7x.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2tt9dkl7x.fsf@HIDDEN> X-Provags-ID: V03:K1:737+3bOFz3l6Ue/iGWFt03/QHexOyhBU+6XOCS/vsyhSEw4OsDy ip7TK4B21m0tBXCRndWcFNhMKBJmEwld5ilTQTmfTLColqkiFs9lJ7w0+cyvE/wFBPEcsXr 0NpBFFzGu3BIDBqy7S6WsS16dYiE5FNVghyL8L0q93bS+bA0vae5Eqg98RVcxfXXxDGbtOG Zxpxc5ZgDbYT+Nfbnggpg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:Tls/FYHb7Es=;xCf/oB/KlxSXjF+mLUoQ7FYsr7M MadviLPZkOzu6+G2WdpAv0bM+tHmxlyz5nVRlyK3s6+s9YLjqYWlQAS3yefXQn0jFDbKzX1dT jfcGWIEb93M23RZ0BKdKLYtoDli4Mc6RoyQSiU7mVdndjAF5/vrR60DZyMjeR8gclW2ziZVT3 rbmkLHrXl+K+pS0d55GWYi+k4oSGhnkf6XjswYoiTQbYd7+FEE2M3C1vlDz15lFul/56dCaru 7dODzfEP5FnXav3MeSSWsB/Rzxr2YbnZOv48GlDqFoDdluOvzS1Yy0JiOdlRyf1z6S0Ke6EZj 7pYry35W7oZ0QswHSBy4mjvS3ROlrC0hVUJ6SpPwE6rdiGm/bXDFfDSVE6V0qPhjANF8PHXDr r964B+XMmukrXd3avbYAmzG2ZZgi/2UnH391WlNjHgwZ/VVgCctAQHxZ7Ma7DFgoHO8qC0qwc VD8xlcCsfsVN2/SZoisUoyb73sNeh7ifJ0pBGraK3eImJFf/ykBkmESrKGQl9xV1lOqnfkmeN 6VE/9zyyBcnQn4JamJeBi0UYPznOTTbnWNmNN2VX2NmmXtzKIku+Pwm9vkMfYmivIz1wdxhdC fDWH7iZ3GNqD9Uk4uKVt9c45vErgj64ExkmAiWCRk7qNxKGM/NzDCAl1HpPtrdjswM51qj5f9 ONIcdT0Q7DWTTAYzhle0/2zkgldgd1BfQ0LU3h2CPPpLAro7mbIsGWY3/kLLEvaicb/wBVz0f YfHyQQ+MfjoWLIovwJLEENJeR2xK3dbI+96bTz5A8rN85/GiA1quWkz8b+lugmFtll3tIZ9LD cMDsSG+r5IQy4FfWuSwNHwjcYlYK+iIdH3kMw1ugBpJKLMPxeP9XU//qpGZC/GVmBVVv5eeQi sOErTFpq0ESaSR57OOyLyivjwsa5YSrlHHDNZBolfVArCJ7upQON6lz/bHgAe3dvLw0vbo30D HDlmpxrgzyjlyhO/uItyxjdA240kr3wtxTZu47A5CiSbkM6GAcdHhUHT351+sOC80GEMj/+Ug OC3IRZ7iOpcOYDmVAtjLHq8Chi0ngWjBggE5WFXK7FgHgzfrX1fxJn8gw2t9fpbCBlytjMJSQ eLxsYUTzyMPRrXf1CYwntikverCcmFrdaDVNVM6PV0ERKjsvyqUPsMCfSnchVpbMwe59srw73 LEGh+AxrWnCkvbY89t2k5ialDbWmYVXhHGQdtfUxPbZQ4kEbRjl9SAr+UqcB+DaSNbmhmOqQO sNg0zIoFKrmpQfuimy7G3wZYwePAA8XfElm0Hfd0ibeiSp6gFF3+56JvUlWJGyKkfC+M6W/Ne /wTs09mg4M3QVjz0zHhA/9rt61uRrrVCRThzWnncI/WovnzrXKlCY8nC3NMIt7C9D5j X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) This is a multi-part message in MIME format. --------------B2qoq2pME5vsFCjCIrAhMNGZ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit > Fix pushed to master. Confirmed, thanks. Next issue: Please look at how the mode line of the orange window overlaps the yellow window in the attached screenshot. It happened after I mouse-clicked the mode line of the yellow window to bring it to foreground. Schon wieder was passiert, martin --------------B2qoq2pME5vsFCjCIrAhMNGZ Content-Type: image/png; name="mode-line.png" Content-Disposition: attachment; filename="mode-line.png" Content-Transfer-Encoding: base64 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 4fT6d82GKn3uffV64oY2jaVsbe9O6vfOqtbzn+4oqDOXr4vo+U+36zfag/rZ4QnVhrz639e1 Lrp8Tq9rTspXju8Zp9+XTpS6fE7rfaWuk5LzelXKfIvZX6ffR8W4sC2oxz7Wpp6xjN7sT+vP fzOmf/uDVfJ7pv/OP7axpuCcSWYO5p+9szYf2EjOrxtO01Wi3mMZNW+60r7tX3L2+Nho/iVp 1uvspoD9kdOr5vzZYtI5ffV99jT7Sx9omPNn/+fjq+zXbl5th3xW/rPf3lBl21vX21eeHik6 r0s7Q7a9db295V0xR+lvuqjWtreut3/0iVW215r987++otHu+a+n2c1V3vxnm1oCdu7zs8vn 81gF7z9+bo2d+/x6O+K3Zm33uU932I9c1zpvuYrJ1+mrmPI5fa2v99v21vX2VWcsXF8e+k+t 9kt/0rFgunuvbLJ337Zm2Y6Lk9d/31xvH/3MaQV15OPn1tiZz62326q9c/7Oifa3K+az7a3r 7Q+vd15mJ8dvoXq1mNdy5ftn76y1u7d02ZLs02J+e/S/rbUfndzmh9dH7Mzn1ttB7+y6Wory /X+fWGXbW9fbm7vC+c+uPD1i21vX2x9aW7569fbta+x7PtxU0m3+7Uea7O4tXXZjxGv/8flR O/mX6+wL24IrpnxScdeNUr2cXP+m6sF5LdPHa+o7Zeb15Wd/2mm/deuagu+tv76i0ba3rrd/ 58zi98npdc1p+aZepf6eWej7sthXKctXTL1f7utkseetVPk63d/FfB+d6DW1vzOP/3tWh217 63r7k5tq8p9t/8+d9nd+t2XOssz1d+T0urFQukrXe16Fr5df/Im9Y8cO+/Nf+GJRrx07dhTE Pbf9S85u3nSl7fg2wy97U/rBWwsPQ3Cabqn8HksfWhvW/3p1RBMzhmJ8/80xHRoxd+eL9eHT qzSRsXXvz4YXTjzDXc8OzjmX5bqzq/Vvb4+rucqrjc0BbWwO5JeavLQzXJA2k7PlsaT2Gp82 tQSUtW1Z1vRyv8UoJl+nSlm+SinHcXHi27+Iq6Xaqw+cNn1X6/qN1frRnnEdGS3+LvqReFb7 hzP60gca9K6Oxd+NO5X8qi+lthqfqgMeXXl6RAOJnH5rXURBr6UzGwPaO5Qu60TZtwbS+vGM Hp2fHkpKMr1U5VLl95R8iPKf/6hPveNZPXJdq75xRaM++3S/Xj6SXDHlqxSn179f9aX0i57p 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 AMBohCIAAAAARiMUAQAAADAaoQgAAACA0QhFAAAAAIxGKAIAAABgNEIRAAAAAKMRigAAAAAY jVAEAAAAwGiEIgAAAABGIxQBAAAAMBqhCAAAAIDRCEUAAAAAjEYoAgAAAGA0QhEAAAAAoxGK AAAAABiNUAQAAADAaIQiAAAAAEYjFAEAAAAwGqEIAAAAgNEIRQAAAACMRigCAAAAYDRCEQAA AACjEYoAAAAAGI1QBAAAAMBohCIAAAAARiMUAQAAADAaoQgAAACA0QhFAAAAAIxGKAIAAABg NEIRAAAAAKMRigAAAAAYjVAEAAAAwGiEIgAAAABGIxQBAAAAMBqhCAAAAIDRCEUAAAAAjEYo AgAAAGA0QhEAAAAAoxGKAAAAABiNUAQAAADAaIQiAAAAAEYjFAEAAAAwGqEIAAAAgNEIRQAA AACMRigCAAAAYDRCEQAAAACjEYoAAAAAGI1QBAAAAMBohCIAAAAARiMUAQAAADAaoQgAAACA 0QhFAAAAAIxGKAIAAABgNEIRAAAAAKMRigAAAAAYjVAEAAAAwGiEIgAAAABGIxQBAAAAMBqh CAAAAIDRCEUAAAAAjEYoAgAAAGA0QhEAAAAAoxGKAAAAABiNUAQAAADAaIQiAAAAAEYjFAEA AAAwGqEIAAAAgNEIRQAAAACMRigCAAAAYDRCEQAAAACjEYoAAAAAGI1QBAAAAMBohCIAAAAA RiMUAQAAADAaoQgAAACA0QhFAAAAAIxGKAIAAABgNEIRAAAAAKMRigAAAAAYjVAEAAAAwGiE IgAAAABGIxQBAAAAMBqhCAAAAIDRCEUAAAAAjEYoAgAAAGA0QhEAAAAAoxGKAAAAABiNUAQA AADAaIQiAAAAAEYjFAEAAAAwGqEIAAAAgNEIRQAAAACMRigCAAAAYDRCEQAAAACjEYoAAAAA GI1QBAAAAMBohCIAAAAARiMUAQAAADAaoQgAAACA0QhFAAAAAIxGKAIAAABgNEIRAAAAAKMR igAAAAAYjVAEAAAAwGiEIgAAAABGIxQBAAAAMBqhCAAAAIDRCEUAAAAAjEYoAgAAAGA0QhEA AAAAoxGKAAAAABiNUAQAAADAaIQiAAAAAEYjFAEAAAAwGqEIAAAAgNEIRQAAAACMRigCAAAA YDRCEQAAAACjEYoAAAAAGI1QBAAAAMBohCIAAAAARiMUAQAAADAaoQgAAACA0QhFAAAAAIxG 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 kSMlXdgers+2i+sXFham0tJS1dfX+1TntnA6nfLz82syZJeUlDRa3/bazi61tbUdPlpbSEiI ezRKX9a3Ne3h6sLbXJdGb3XV+Rrlrs5y7anFULR3714dP37cY9qlQ0jW1tbK4XB4zthuV2Bg oMdJYnuX84U369ER5bzV0NBw1Y9C5uputmPHDo0dO1ZjxoxRTEyM7rrrLj3//PPu56FcV6gu beOWNNX2drtds2fPlr+/v7Zu3arU1FTV1NRo/vz5Gj58eKvWw9f6efPFrWi9a6+9VufPn9eB Awfc0/Ly8pSSkqKoqCgjv8iwZ8+e6tevn8LCwnT//fdL+r8TkUWLFikvL6/NAxFcqWpraxtd Xe9opaWl+tvf/qbo6GhNmDBBixYt0s6dOxs9Y9hUvYKCgjr8Qfz2en7Dsiw1NDRo27Zt2r59 u09/29zJ85QpUzR48GCtWrXKfWEoLi5ODzzwQKO/d13Y6iyu7tBNncQHBQU1+ky/2p6TcQ3s s2/fPkm+rW9r2sO1/7e1a2tXna9R7uos155aDEV5eXktprJz58559FmV5H5/8dWj9i7nC2/W oyPKmSQpKUn5+fkqKSnR1q1bdeDAAf3kJz+R3W5XfHy8OxTl5eUpPj5eI0aM0Ndff+2+6tuv Xz+dOnXKpytTUVFR7mFZ09PTVVNTo+DgYCUmJjZZ/uLvb+nZs2eTQbQ964e2S05OVnp6usdw xP7+/ho+fLiuvfZa7dixowtr1zVKS0v197//3WNaZGSkYmJilJGRcdVfYLmc0tJSxcbGdsmy z507p40bN0q6MLDMpaEoLi5Odrvd48JKVFSUDh482Ol1bU59fX2zo15alqWcnBwNHDjQ51DU nH79+ungwYPuQCRdePbqUmfOnFFKSorXzwpebj28VVNTo8LCQg0YMMBjdLbQ0FDFxsZq7969 bZp/V7vlllsUHBzsXjdf1tfX9pD+705ic89Ce6urztcod3WWa0/t8kzR/v37tXDhQt12223a v3+/HA6Hpk2bppKSEo+U197lXBwOh5YtW6bDhw8b0S0pMDDQfaXH6XSqsrLyiuhqN27cOA0c OFAVFRUqLS11HyAbGho8wmxqaqpGjBghh8Oh5cuXq6ioSE6nUw6HQ0899ZR7dKcJEyZ4fOP3 vHnzlJ2drbS0NGVlZUm6cMu/trZWAQEBWrJkiXJzc9W7d+9mu6uUl5ersLBQMTExuv322zVh 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 g4P1zDPP6IMPPlBYWJiCgoLUv39/nwKRJD366KPq0aOHAgMD9dJLL7VYvqamRl988UWjk+yr za9+9Sv94Q9/aPN8fN1+ne3JJ5/UggULGk1/5plnNH369FbP90rfD6729u3Zs6f+8Ic/6Npr r71sue52XLuSzZw5U9988402bdqkp556qtOWe8MNNygrK0svvviixo8fr8mTJ+vFF1/U73// +w5b5pV+XAOA7iqxT4L3ZROaL9ti97mKiopuc7WrV69ecjqdeuedd1RZWSlJOnPmTJvmWe/F 7br6+nrNnj27Tcu5EowZM0b2y9x2bA1vtl93caXvBya1b3c6rl2pbrzxRq1fv14rV67Utm3b 9M///M+dstzIyEht3LhR+/bt08KFC1VcfOHqocPhUFBQUKfU4Urd7wGgO7qmb1+dOHlSJefP X7ZcRES4+vXt2+zv2+UM6IEHHtDRo0eVn5+vZcuWqU+fPjpy5IieeeYZZWdne5S94YYbdO+9 9yohIUGZmZl6/fXX27TshIQE/eQnP9GIESNUWlqqDRs26O2335ZlWe4y99xzj3r16qUBAwa4 3996662SpI8//lgffvhhm+rQnClTpuj22293v8/KytL//M//NCrny/YLCQnRfffdp4kTJyog IECffvqpXnrpJZ/vdrnExsZq6dKlGj16tIKCgnT8+HH97W9/0/bt2yVJTqdTP/7xj9WnTx/d fPPNqqio0AsvvOD++wcffFANDQ3q0aOHHn/8cT377LM6evSoxzKWLVumoKAgPf/88z7Xz5f1 DQwM1AsvvKDt27frjTfe8HlZvvK23bzZD/z8/PTkk08qOzvb4ypzZGSkfvvb3+rvf/+7Nm3a 5HMdu1P7Xs369u2ru+++W9u2bdNPf/pTpaWladWqVfqv//ovSdIjjzyis2fPust7c1x75JFH lJ+fr1WrVrmnRUdH68knn9Qrr7yi/fv3u6e3tB+4tGd77NixQ9dcc41yc3P18MMPt1i+vf5/ ly5dqvDwcC1evNgdiCSpsrLSfTGsNfvznDlzNG/ePPXs2VNnzpzRli1btGbNGjU0NPhcR1P2 ewDoDP7+fvreuBv0Veo3Ki4pabJMRES4vnfDDfLza76TXLuMPjd37lw9/vjj2rBhg8rLy7Vr 1y7Nnz9fO3bsUGjo//Xdmzp1qnbs2KEbbrhBqampioiI0N/+9rdWL3fo0KHau3evZs2apT17 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 /cDX9rhSj5OS9P7772vBggWaOXNmiyM2erM/p6ena+nSpUpOTtbhw4fbVLerbb8HgKuFZVkt fh2Cv7+/bDZbs79vsY+Pv7+/pk+f3ujV3BXJy3nttdd0xx136K677lJUVJTGjx+vxx9/3Of5 uPzud7/TD37wAz344IOKjY3V0KFD9eabb6qoqMhjmNqOEBoaqv79+ys2NlZBQUFKSkpq8mpi WFiY+vfvr8jISDmdTg0cOLDVVx1/+9vf6qabbtILL7ygQYMGKTw8XMOGDdO//Mu/aNiwYT7P b+zYsbr//vt1zTXXKDQ0VMOGDdP3vvc9ffvtt02WT09P180336xJkybJ6XQqMTFR4eHhjcq9 +OKLmj9/vubMmdNs1ypvtp+v6xsTE6NTp061amjoi7355psaPXq0nnrqKV177bWaOHGi/vjH P+rkyZP65JNPWjVPb/aDMWPG6Pe//70eeeQRHThwQP/6r/+qnJwcrV69ulXd8bpb+3pr4sSJ jbr8XhoefLVnzx5lZWV5NYpaW3l7XEtLS9Ott96qqVOnKjw8XBMnTtSjjz7aaH7e7gcd1R6h oaEKDw+Xn5+fYmNjm92G7fX/u3btWm3fvl2rV6/WQw89pLFjx2rChAl64IEHNHLkyEblW9qf 165dq3Pnzuntt9/W1KlTlZCQoBEjRri73V26rl213wOAyWw2m6qrq1VWXt7kq8qbrzxoafS5 5kycONFd7qOPPrI++ugjjxEhQkNDLcuyrGXLlrmnBQQEWC+//LJVW1trWZZlFRUVWQsXLrTO nTvXqtHnJFk/+9nPrDNnzrjr9fXXX1sjR45ssmx7jT63cePGZrfL66+/7nM5b7efJGvmzJnW gQMH3PNpaGiwUlNTrUGDBvm8HmPHjrWOHz/uUa/t27dbAwYMaLJ8jx49rM8++8yqr693L/vG G29sVC4gIMDKy8trdvQlb7eLr+vbq1cvq6qqylq3bl2bRzT5zW9+Y50/f9693LS0NGv48OEe ZbxtN2/WNywszDpy5Ii1YcMGj/kNGTLEKi8vtx5//HHj27ell2v0uaZcfLx67LHHrLKyMq/n GxISYtXX1zequ69tYVmWFRsba0myDh48aD388MOWdGFktr1793qU9+a4Fhsba23bts1dJj8/ 35ozZ4519uxZj+OpL/tBe7aHJCszM7NRWzQ0NFhz5szp0P/fsLAw609/+pNVUVHhXm5BQYE1 fvx4n/dnSdaYMWOsr7/+2mM99u3bd0Xs97x48eJl6qup0ee2b99uffLppx6vz7dvt9LS0loc fc4WP3KmdcdvN+rpqRVycYZcvgtNW4WFhSk2NlY5OTnt8vCqv7+/+vTpo/LychUWFrZDDa98 MTExioiIUH5+fqPnXHwVHR2tiIgIFRQUuJ9puJzg4GD16tVLZ8+eVWlpaZNlMjIytHr1aj35 5JNtqpuLt+sbERGh0tLSVn1/yKUCAgLUu3dvlZeXe3yx5tWmO7VvV7j55pv12WefaerUqdq8 eXOnLdfb41pERISioqJ06tSpy3Yd8GU/6Kr2aM//X+nCNuzVq5fq6+uVn5/f7Hy93Z+jo6MV GRmps2fP6nwL35zujSt5vweAK13azs9lC2qcWcrLy1X7/5/5ttvtCnE6G3WbGzpksPvnRz92 au2/z1aXhCJ0b5MnT9amTZs0YMAAZWdnd3V10M5Ma99f//rXuu+++zR48ODLjkyIq5Np+zMA dBfNhSLpQjCypCYDkdR0KOq0gRbQ/d1yyy2KiorSM888o1WrVnGC0c2Y2r7vvPOO3n33XQJR N2Pq/gwAJnA6nZJ02YEVLkUoQrt5+eWXFRISoi1btuihhx7q6uqgnZnavkePHu3qKqADmLo/ A4AJfAlDLoQitJuhQ4d2dRXQgWhfdCfszwCAi/k+zi8AAAAAdCNN3imqKG95hCoAAAAA6A64 UwQAAADAaH6SVFPZ9HeRAAAAAEB35cpBdknK+maj/sU2VwHBIV1aKQAAAADoDLVV5cr6ZqMk ySZJ8SNn8gUcAAAAAIxzZv8m2/8DIhWWEolHEfMAAAAASUVORK5CYII= --------------B2qoq2pME5vsFCjCIrAhMNGZ--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 2 Feb 2025 04:46:23 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 01 23:46:23 2025 Received: from localhost ([127.0.0.1]:60840 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1teRsE-0000sh-MF for submit <at> debbugs.gnu.org; Sat, 01 Feb 2025 23:46:22 -0500 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]:60864) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1teRsD-0000sR-2t for 75056 <at> debbugs.gnu.org; Sat, 01 Feb 2025 23:46:21 -0500 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-5d90a5581fcso5810659a12.1 for <75056 <at> debbugs.gnu.org>; Sat, 01 Feb 2025 20:46:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738471574; x=1739076374; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=plIY+3vQdPkru6Sg8qUFd0VX74geYUnau4p7DCRz8yc=; b=DoI0rdimCpWztJsiOhttS0dGeoUWJf0Y+qFMnZlXBZcc2aoT1aqju+v5Pz58Ceqm1p sPpftB1W/XzuybMU9jqBNI7AcT94IOSwlicse04ZTYMQRw4xxSnm1W+m8rIVfZnbYY7O X5GZOpGOz8yF73XSpMFzcgsH/HmpnNXrdNrRBLKiZA+B2Lphj6xmensM/relBsC3aQyt sn2rNaczLIoDCxauPsVaUNqJ/n07hYmPG+xML2iTck/CD8QcY5yi4jKhm8A1lRPNef12 TH9p3ztnga6k26vevuE/+oMWDcOCkNowSPHggRBaOvKSjakmjJvHrqBmvJQ5QOnxDWBm TOPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738471574; x=1739076374; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=plIY+3vQdPkru6Sg8qUFd0VX74geYUnau4p7DCRz8yc=; b=fuK94M7Eqo5qPliemQsT8L5VndktMcB7C52AyIAky4429hDNHwNjGGIuZOJ/ns0k+F qHcs77n3UYZzeocAxzONWAkQA1gh3RTedtvskb0BHn2V9NjJxE3PP51r11m3AGX/SpTO gLY7KEasi830ZQn9Ch05mgpZuoFhZf4TvVk410CEnecIbwunUrLcU76Mv1PqgPNNGMRL rq0Tj15yI6sf/Tz9Er/7N3fIvzIpNp5COpWcI5H1ZAL2JqK2pmf1kMMwK+xFFCK6Mupe TjDIg8gHMvVj2aJw6sR0RVJXI6fA9eGB/g/vckrqhPeZ6wcaY/fUMTZKiq9wvWNI02Tl 7h4g== X-Forwarded-Encrypted: i=1; AJvYcCUUHHzsXLXR1EHzAWaLejGK0q2XIP/1XgO4LVB6aqEFoLxJROIUB0qu3hCSiUeV0R9Ocar0Og==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxStsWFdfm547n1q3tgA3J77PK18de+KZayKyUDDner6ls0DNaV QOg8cuT8D0O2toYscqWbigQJ94nRZ1Rjcfs6efimbbaZJ7sKv1O70hSVew== X-Gm-Gg: ASbGncvcoTcw94Q+klnOX9DIgmUylo8DA3RvRPVE67DOUwh6HtKvaZD+uKBVl/H8h15 XInj/C+9S992kIa+aqOWIgBAoEoFJeeVLPfaIltge3nq9G3l15Ffysc/OLDu5+BVTxXj9UcbRHJ /XFYefrHiGboMtgL9PuWKawWXE5H6UcxmG8ti9C8IeNEKznOm85NA/itYfYBISs/K0rTDudseOS eTGQCowDJFEiZ7URTZbsJjnDxlOKEAzgl4NQCAOlyULucx6Lhs0OvOyPQnHqwaVvR0PPE0K5Bg0 nF8LEKTbXtsAoxdo6d54AFV7+EcrXSuvTfoEt54mwZfYp/7Xv4DP9m0vYk7K+HRxiRUMNEM2OH/ jnR8K0g3BOXyE62YtOGcL/yma X-Google-Smtp-Source: AGHT+IH2EaQHsiF2AhdIlrV3/LLc+Uiws9/BcRWDF4Yw/aKHXU7g5GrPA+FVIRZsvVeu+5Bxw0J2Yw== X-Received: by 2002:a17:907:3e0b:b0:ab3:a3b4:f91c with SMTP id a640c23a62f3a-ab6cfd0c96amr1786883266b.34.1738471573739; Sat, 01 Feb 2025 20:46:13 -0800 (PST) Received: from pro2 (p200300e0b71e2e00b17d1337b17de790.dip0.t-ipconnect.de. [2003:e0:b71e:2e00:b17d:1337:b17d:e790]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e47a7dc4sm524053766b.16.2025.02.01.20.46.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Feb 2025 20:46:12 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> (martin rudalics's message of "Thu, 30 Jan 2025 19:00:01 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> Date: Sun, 02 Feb 2025 05:46:10 +0100 Message-ID: <m2tt9dkl7x.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: > One bug I noted now is the following. Do C-l and M-l and drag the > yellow and orange frames somehow as in before.png with the cursor in the > yellow frame right before the left edge of the orange frame. Do C-f - > the cursor appears on top of the left edge of the orange frame as in > middle.png. Another C-f moves it into the orange frame as in after.png. > Fix pushed to master.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 1 Feb 2025 10:23:31 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 01 05:23:31 2025 Received: from localhost ([127.0.0.1]:56478 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1teAex-0006Rg-Hg for submit <at> debbugs.gnu.org; Sat, 01 Feb 2025 05:23:31 -0500 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]:51342) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1teAev-0006RQ-MM for 75056 <at> debbugs.gnu.org; Sat, 01 Feb 2025 05:23:30 -0500 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-ab2aea81cd8so497587066b.2 for <75056 <at> debbugs.gnu.org>; Sat, 01 Feb 2025 02:23:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738405403; x=1739010203; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=415b3b6ok3FTbh8VoB2xwBT7ILSw2G3zMVHPgcWNACw=; b=RZf8pm8wiDHQ/hHAMuTf7YPBezw3es+WYgrPf8JIEJhm47Zyv3n+aF+4cHSuo8q7lV 32HhoEEljh7QCNbPnvPn1KZnAwv9qJ6ETPPq2MWZRlc7hSPMAlPCnCz1kYkX8R6XOxH/ aeNblE5XDBQoLeSWRFJkZQ4xX1CLqddyDYIsjd9yo3RFEwDVyP9hEfrpAG2B68U9KJmN Sque1Dr3by/UbEALRpSvyU5wGQWwbDnXqk9hO5kfn5IxlZbT6c6EDNYF6OaridxW4l2c JVWBVxF2nXIV5UeZyIi+lNGmVL3YXgNQDOGsiq9Mm6FcxmFzeH2alQd14Sr9lJ7Xp8tX q4zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738405403; x=1739010203; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=415b3b6ok3FTbh8VoB2xwBT7ILSw2G3zMVHPgcWNACw=; b=LbjHWapuBFiuvZb7+DPqQb7Hzdarq7YHB91BIah2KHgHSN1Cl12z1JvWWQpX4VhGWt YbYMugxzioaIfy95+qnNlOK+Ghr+6gIrn+KXC7ExDqs5aW7IKJY77BccVPeTgS3+b/XS PCGBVgh6e2aow+1NR1P2da0J46oov/KF0iAT0g/30kz/iYQEaODwH8oilgW+bQmKNukI exwlY3Z5A5QJvO661y9C8S71mhw5/0qgqEQpv1tpSjXx7zWEuif4rrP0BLHen5d6Kr1Z 4uT9Al/tej9uLLd8LoQJZ4l7huBaQPN3QeGCDXCNWZWy68rkDj3OtLFjSho8We9PwVaU LAJg== X-Forwarded-Encrypted: i=1; AJvYcCWC0tvDyd9spO+7nzXBy6NAE/yVzBS+8VFwmT9lPBJqUBZQ1Ryd7b/ubWQTIZ3sIyg4lCceow==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyeNB9V1OWWwOdtskXd0PFrDFwwyZLA0WDARS3e0Lke21miSOoK 5/KP8uwtX2aC5L8S0+50XP6qyLPUkqLSx32JOsDeQbmxR9d1Zjziet4I3g== X-Gm-Gg: ASbGncsID5FJtvm7x92kGO20Ktl2S7L4cOhOCY8qGAhQagovD3E8IbdCCw1cJXWilAL qBPGk3qpdL3q7VqZzuNAydeI2ufJDUou5XsK1BsVUJ1MB1K8beT7HwOWz1g/2J1VgkQy87gZxf5 SNSvaOdS03TDOZmE2pTf4aMrbRwccg8ZWPuo8W1Qx3dWAVgdb3MSifYt013QfSTeZzTAE9HlWki yxVIc8LAq7t+oett6+9vVk8xXMUZEWhykp3jP1bjGlCFkjFsGnKKCAZLgq46/GtXzdh1G9wB2sm 7m4jrg3/bHGjvix/f8NGE37TTtfz1r1SdzPQfE5YEBTcdZySSa5el0r+OROp3RbwK/YXWioaGgG 45TSXxJ559rzqZPVk6rOkTsbo X-Google-Smtp-Source: AGHT+IEqo0RkaP58r1NU8NI8rXxD5CXxVfLUtvzAsd8BL6XlroczCedZSKPFlfbkTvRxLh/Tb+Hz+A== X-Received: by 2002:a17:907:1ca7:b0:aa6:becf:b26a with SMTP id a640c23a62f3a-ab6cfcc67f1mr1627814166b.9.1738405402745; Sat, 01 Feb 2025 02:23:22 -0800 (PST) Received: from pro2 (p200300e0b713f400f072b6ab134acb58.dip0.t-ipconnect.de. [2003:e0:b713:f400:f072:b6ab:134a:cb58]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e4a2fe78sm422689266b.125.2025.02.01.02.23.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Feb 2025 02:23:22 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <m2seozjo3c.fsf@HIDDEN> ("Gerd =?utf-8?Q?M=C3=B6llmann=22'?= =?utf-8?Q?s?= message of "Fri, 31 Jan 2025 11:04:55 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> <m2seozjo3c.fsf@HIDDEN> Date: Sat, 01 Feb 2025 11:23:21 +0100 Message-ID: <m2msf6ezfq.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > I take everything back. I think it would be much much better to do that > all in Lisp. FWIW, a proof-of-concept, only showing a frame with a menu. 200 loc with half of it copied from tty-tip.el. --=-=-= Content-Type: application/emacs-lisp Content-Disposition: attachment; filename=tty-menu.el Content-Transfer-Encoding: quoted-printable ;; -*- lexical-binding: t -*- (require 'cl-generic) (defclass tty-menu--item () ((name :initarg :name :initform nil :type t) (key :initarg :key :initform nil :type t) (binding :initarg :binding :initform nil :type t) (props :initarg :props :initform nil :type t))) (defclass tty-menu--separator (tty-menu--item) ((kind :initarg :kind :initform nil :type t))) (defclass tty-menu--button (tty-menu--item) ((type :initarg :type :initform nil :type t) (selected :initarg :selected :initform nil :type t))) (cl-defmethod cl-print-object ((obj tty-menu--item) stream) (princ "<item " stream) (with-slots (name) obj (cl-print-object name stream)) (princ ">" stream)) (cl-defmethod cl-print-object ((obj tty-menu--separator) stream) (princ "<separator " stream) (with-slots (kind) obj (cl-print-object kind stream)) (princ ">" stream)) (cl-defmethod cl-print-object ((obj tty-menu--button) stream) (princ "<button " stream) (with-slots (type) obj (cl-print-object type stream)) (princ ">" stream)) (cl-defgeneric tty-menu--button-width (item) (:method ((item tty-menu--button)) 5) 0) (cl-defgeneric tty-menu--width (item) (:method ((item tty-menu--separator)) 0) (length (slot-value item 'name))) (cl-defgeneric tty-menu--insert (item button-width max-width) (:method ((item tty-menu--separator) button-width max-width) (insert " " (make-string (1- (+ button-width max-width)) ?\-) " \n")) (:method ((item tty-menu--button) button-width max-width) (with-slots (type selected) item (if (eq type :toggle) (insert " [" (if selected "x" " ") "]") (insert " (" (if selected "*" " ") ")")) (insert " " (slot-value item 'name) " \n"))) (:method ((item tty-menu--item) button-width max-width) (let ((start (point))) (insert (make-string button-width ?\s)) (insert (string-pad (slot-value item 'name) max-width) " \n") (with-slots (props) item (when-let* ((help (plist-get props :help))) (put-text-property start (1- (point)) 'help-echo help))))) (:method :around (item button-width max-sidth) (let ((start (point))) (cl-call-next-method) (put-text-property start (1- (point)) 'face 'menu) (put-text-property start (1- (point)) 'mouse-face 'hl-line)))) (defun tty-menu--item-list (keymap) (cl-labels ((filter-binding (b) (pcase b (`(menu-item ,name ,bind . ,props) (if-let* ((filter (plist-get props :filter))) `(menu-item ,name ,(funcall filter bind) . ,props) b)))) (normalize (b) (pcase b (`(menu-item . ,_) b) (`(,name ,h . ,b) `(menu-item ,name ,b :help ,h)) (`(,name . ,b) `(menu-item ,name ,b)))) (make-separator (name props) (make-instance 'tty-menu--separator :kind name )) (make-button (name binding props) (let* ((button (plist-get props :button)) (type (car button)) (selected (eval (cdr button)))) (make-instance 'tty-menu--button :name name :props props :binding binding :type type :selected selected))) (make-item (name binding props) (make-instance 'tty-menu--item :name name :props props :binding binding)) (item (b) (cl-destructuring-bind (kind name &optional binding &rest props) b (cl-assert (eq 'menu-item kind)) (cond ((string-prefix-p "--" name) (make-separator name props)) ((plist-get props :button) (make-button name binding props)) (t (make-item name binding props)))))) (cl-loop for b being the key-bindings of keymap collect (item (filter-binding (normalize b)))))) (defvar tty-menu-frame-parameters `((visibility . nil) (background-color . "lightyellow") (foreground-color . "black") (width . 0) (height . 0) (min-width . t) (min-height . t) (no-accept-focus . t) (no-focus-on-map . t) (border-width . 0) (child-frame-border-width . 1) (left-fringe . 0) (right-fringe . 0) (vertical-scroll-bars . nil) (horizontal-scroll-bars . nil) (menu-bar-lines . 0) (tool-bar-lines . 0) (tab-bar-lines . 0) (no-other-frame . t) (no-other-window . t) (no-delete-other-windows . t) (unsplittable . t) (undecorated . t) (cursor-type . nil) (no-special-glyphs . t) (desktop-dont-save . t))) (defun tty-menu--make-buffer (keymap) (with-current-buffer (get-buffer-create " *tty-menu*") ;; Use an empty keymap. ;;(use-local-map (make-keymap)) (dolist (var '((mode-line-format . nil) (header-line-format . nil) (tab-line-format . nil) (tab-bar-format . nil) ;; Emacs 28 tab-bar-format (frame-title-format . "") (truncate-lines . t) (cursor-in-non-selected-windows . nil) (cursor-type . nil) (show-trailing-whitespace . nil) (display-line-numbers . nil) (left-fringe-width . nil) (right-fringe-width . nil) (left-margin-width . 0) (right-margin-width . 0) (fringes-outside-margins . 0) (buffer-read-only . t))) (set (make-local-variable (car var)) (cdr var))) (let* ((inhibit-modification-hooks t) (inhibit-read-only t) (items (tty-menu--item-list keymap)) (button-width (apply #'max (mapcar #'tty-menu--button-width items))) (max-width (apply #'max (mapcar #'tty-menu--width items)))) (erase-buffer) (cl-loop for item in items do (tty-menu--insert item button-width max-width)) (goto-char (point-min)) (hl-line-mode 1) (list (current-buffer) (count-lines (point-min) (point-max)) (+ button-width max-width 2))))) (defun tty-menu--frame-parameters () (let ((params (copy-sequence tty-menu-frame-parameters)) (fg (face-attribute 'menu :foreground)) (bg (face-attribute 'menu :background))) (when (stringp fg) (setf (alist-get 'foreground-color params) fg)) (when (stringp bg) (setf (alist-get 'background-color params) bg)) params)) (defvar tty-menu--frame nil) (defun tty-menu--create-frame (keymap) (cl-destructuring-bind (buffer height width) (tty-menu--make-buffer keymap) (let* ((minibuffer (minibuffer-window (window-frame))) (window-min-height 1) (window-min-width 1) after-make-frame-functions) (setq tty-menu--frame (make-frame `((parent-frame . ,(selected-frame)) (minibuffer . ,minibuffer) ,@(tty-menu--frame-parameters)))) (let ((win (frame-root-window tty-menu--frame))) (set-window-buffer win buffer) (set-window-dedicated-p win t) (set-frame-size tty-menu--frame width height) (set-frame-position tty-menu--frame 10 10) (make-frame-visible tty-menu--frame))))) (tty-menu--create-frame menu-bar-file-menu) (provide 'tty-menus) --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 15:14:07 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 31 10:14:07 2025 Received: from localhost ([127.0.0.1]:53758 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdsid-0005E8-1M for submit <at> debbugs.gnu.org; Fri, 31 Jan 2025 10:14:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58934) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tdsia-0005DT-H8 for 75056 <at> debbugs.gnu.org; Fri, 31 Jan 2025 10:14:05 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tdsiS-0004sw-Tz; Fri, 31 Jan 2025 10:13:58 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=2cvOwNYeeqNQl5REpZnSeFzrVrZueNJKlVo0RQ2dZTE=; b=AAMTW7Mh0AE6 YJ7X0b0lvd4MrGbS+9Nsa6mFB+JI/X1HUmc3MjUOqIgVoKeXU6X5qSNbYMZXS+T1OOX8YD4UdqtCb Ei1i7ve9d0Q++Zush3n0VF90zPlyeg4AavfQpFLKAoa7vItDg6CvvOOr3V5ndfbfxKg5voVc6wulI 90OIfUnrn0mWiZzFrCaAnERYUPcW8gj0nv1DiY8BKaICAqBILB0tE2OI/75Mz6y2BE9XSvrv8+t45 z/A/GDF8L0kB41ql3RRexTlvmtapEXY6iynUIvWCPL0YJUlzmAm0xaycXgtxMsQiXlxMa50+Gmx4O V6Q9MjZewL+dvPOTbIUSgg==; Date: Fri, 31 Jan 2025 17:13:55 +0200 Message-Id: <86h65fhv7w.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: martin rudalics <rudalics@HIDDEN> In-Reply-To: <4d472bb3-1e3f-4703-b820-2ec6b52ad729@HIDDEN> (message from martin rudalics on Fri, 31 Jan 2025 15:41:19 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <m24j1fl6yt.fsf@HIDDEN> <eaf6a496-3877-4222-94d8-98c6d24dc9c9@HIDDEN> <86seozi4j2.fsf@HIDDEN> <4d472bb3-1e3f-4703-b820-2ec6b52ad729@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Date: Fri, 31 Jan 2025 15:41:19 +0100 > Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > From: martin rudalics <rudalics@HIDDEN> > > > What's "a painter's algorithm"? > > I meant what Wikipedia formulates as > > The name "painter's algorithm" refers to the technique > employed by many painters where they begin by painting distant parts of > a scene before parts that are nearer, thereby covering some areas of > distant parts. > > As for the menu bar it would mean that we draw the (distant) normal > windows first and then cover them with the (nearer) menu bar items. The TTY menus are drawn by writing the text directly to the desired matrix, thus overwriting the characters produced from text displayed in the frame's windows. If that means we are using the painter's algorithm, then yes.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 14:41:33 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 31 09:41:33 2025 Received: from localhost ([127.0.0.1]:50692 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdsD6-0008Qm-P4 for submit <at> debbugs.gnu.org; Fri, 31 Jan 2025 09:41:33 -0500 Received: from mout.gmx.net ([212.227.17.20]:48813) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tdsD3-0008QT-HV for 75056 <at> debbugs.gnu.org; Fri, 31 Jan 2025 09:41:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738334482; x=1738939282; i=rudalics@HIDDEN; bh=SnwiWPD08SCoMnkxWwLETqQivN24yfKlNztqC1+waZo=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=hxpK6wJvc4UhsJJ0Xwh89UdCK/tYIMo1vDD7Y7kpu+1TJQL1Hh37pkxLVhtIzz/3 LsEm6ncwTJgAHdgeWZNnoOEgyfzSMSksT1FNeHYJXkGg/YjQKhTVgBvzTPECOAIDM dWXoYSET6kbmriW5kDRIKApXdZJuLAR2sQAr6X68N4OfrQXmVjfgkEbjoPjeopBBJ Rr9KrsdBAqCWSMX/MUNvnXx3N9dHB2XlvX9v3WGx+vZQEdyiwvaPODXjTWCKDHWYe K3OMzUY6DcMTnRRTuMQFQGbfUOmnDTj6cXQGigUuSsCKlQh+fn/IMUa2UlaWV3pYQ X4H9KXR6ShcUG0Yoyg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.96.175]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MPGVx-1to0ZL1hiH-00U6zK; Fri, 31 Jan 2025 15:41:22 +0100 Message-ID: <4d472bb3-1e3f-4703-b820-2ec6b52ad729@HIDDEN> Date: Fri, 31 Jan 2025 15:41:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: Eli Zaretskii <eliz@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <m24j1fl6yt.fsf@HIDDEN> <eaf6a496-3877-4222-94d8-98c6d24dc9c9@HIDDEN> <86seozi4j2.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <86seozi4j2.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:+MdmwDNV2SQ/sRqCY3XOLkWTo3rC10dmODKUpY9v0Kzp7Z7uaRw ALtKAWq5KjqZsB56u1UkyaReK5Ju5fVdIRkACYAU3Hw95hhQxZtoQqp8j1YaqfnB9CleAG8 YQCY4hWhvGpZc7OQD9WIFuhJSZhwrcTYKmXf8sjEM+Drd/WtV6aCBSa4ijlVSMYj7GzcWb7 T8Zq3H/OjvX/K6qfjbHBA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:PiVbXGmxlSE=;p6ggsh28X31PG55Pmgqy1TywoC4 ZVeWAfY+v2WZuh0oGm2icDGJFlgXcoJkmIq/mtygg8NehTbvDgaabCJU0gKPwaEn9WM6NAxO8 JIqtZshnuYJsDR/i/5yEuRFBQvV/w8iwCaHdY5KMp07HnZT0nT8deVmSVUoco3ypnvNuf+31m zvK6k5dXtl8O410rukyFVnkA5HWmxUP16ZLGaqyVIw6EhBlDd9Tann3zhx8wLKwBDAlaPn/Ra v2lIZtEcsAkmoufGR1UQj226DLDERKJbae4jIuGnkWP/6+T1oegDO3HlAGnQbURzU0dbbtbh6 qGG9omZD/ZP/Xg8ZDeVYSrtSnY5x/D5jtXrjwDDT9GakpSQk++7MIi6EDfA1WyHnVq4PBJIC7 MatxeDg45aPt/Ob0PIiXnKn3Wux6aqdKNL8nqcwopkK0dVmAEIlX3oNC8ylbnSYLa2pKW6EZZ 0VuwiHjXYC6qkMe8p3eV8sjmUOOUIBFfy4PKKMoroaL4lgBM1250otqPRPpy1hftSpsBc+2q/ +GHNeqIHU5nTvxodKBGaOk0/tiyo3P9yt8suHnHn1FXkjkUW7bgCUOx6UkKnCtJVhUfwsn6s7 2QdV2b9AL1oY798Lo7Xqpk89rJC3ziH+8tMsYhBzWh5s/ayc9GgWHMAmTScTQdvT4w16g997x mDoX+tSMXYWRprTd4S5Emzf0HHM/iIVPcSY33c9jGHsMIFFiSaCDSlOrwPxUfyp2K0VCQYAXP LR62+GfAarM93T8vi/XZI6vRnfZH4+koFpOZKkFUnZ4QT7RFvyhDcCKh/DvIF5Ba1PNwSdXSx O97VQd3C48xvEXUeWi2aeYtcPgUOUVfQTksjpYxKDVVJL840hzN14inyBqaC2jz/wYojPe78U NJErV02NOAAWTBVAkrqaCSEcBfj7/8CrLJGYXYmhBDCWvR1a066Gohpj3tC0qADsiSk4dP0O5 LFBSsm02BPBqwJbZFqYBykXWMgny3tBPaYvIuw2D25MgPzPlVb2/zD3iNCql0nornXTAEFvBq oY+I+3YnQewfH7lrwBU2jTB+HwRHM1ZWXXdi2Kr3qQi5f8gW7mmA0TBD/Vw7ltBRP//fNIvYk Q2fMGtW7VEVg9Tm/pLOvV/dfDfzFDMJeTei0htPq5Y4IP96pZ+yV/GdS9dqRxAU2k7KVS6aLy dUAoahcoZ/swwP1CnRcYA/ICmm5xJKvmA/Lxmq7Khe0kz88jM9k5J4fiptjfAE7c0VkC5yXOP qa5RZjlfR/d9SgHZFdi0xPxXUbCq2TbsAEuCCQkma8kAzfkkRvi3aBzm/+J9mrUfg/NCPzWrI OxGK55KkeKT89t/Q5fwcMbrkA1zIQCgb3XLKYsoyb7OhjM= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > What's "a painter's algorithm"? I meant what Wikipedia formulates as The name "painter's algorithm" refers to the technique employed by many painters where they begin by painting distant parts of a scene before parts that are nearer, thereby covering some areas of distant parts. As for the menu bar it would mean that we draw the (distant) normal windows first and then cover them with the (nearer) menu bar items. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 12:03:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 31 07:03:17 2025 Received: from localhost ([127.0.0.1]:50308 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdpjw-000682-LD for submit <at> debbugs.gnu.org; Fri, 31 Jan 2025 07:03:17 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:46230) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tdpjt-00067f-SF for 75056 <at> debbugs.gnu.org; Fri, 31 Jan 2025 07:03:14 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tdpjn-00077D-O8; Fri, 31 Jan 2025 07:03:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=yAMfoYYLHnaBLAXcUUOJBGvNN0OrKR6DPq1m9ANiVbE=; b=bzqlDRz1vzAN0BR+aL81 sCnOo7qCIxRgikwgapVJK49RitxldTOTX0qoSVy5OxfmMUj9lsDgyVLGLxJFQg00Mkf0xaI1oCCE2 o7V4hgL2O8woX6FpVZFPPSaKyuZG66SXieLLNpgAViC+BWkJN/MPuu0D256CmljcTGp/io54noJK3 LwZ3DSDLvYAJyKgLxH+sCSK+9yjST2uZZu7WRWfqJZRygttOzwsAJtY4gUN6tudIVDTo6lxgAd9xn BFoJpOtBQ4jdPyfCARLIa24JB0I5IIk3hoM5JZhBJ8rHfRKR+EBjQSMgo353pSKtMJAEeD5Nc/p6y mZoexy3z2JAQzw==; Date: Fri, 31 Jan 2025 14:03:02 +0200 Message-Id: <86r04ji421.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?iso-8859-1?Q?M=F6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2o6znjn0c.fsf@HIDDEN> (message from Gerd =?iso-8859-1?Q?M=F6llmann?= on Fri, 31 Jan 2025 11:28:19 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <m24j1fl6yt.fsf@HIDDEN> <eaf6a496-3877-4222-94d8-98c6d24dc9c9@HIDDEN> <m2o6znjn0c.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: rudalics@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > Date: Fri, 31 Jan 2025 11:28:19 +0100 > > martin rudalics <rudalics@HIDDEN> writes: > > >> Just came to my mind that one could re-implemented tty menus in Lisp > >> using child frames. > > > > I have never looked into the menu bar drawing code. Does it use a > > painter's algorithm? > > The menu bar itself, the stripe at the top of a frame is pretty special. > On GUIs without external, i.e. toolkit, menu bar, a window is used to > display it, on ttys not IIRC. It's not a window on TTY frames, indeed. See the commentary to display_menu_bar: /* Redisplay the menu bar in the frame for window W. The menu bar of X frames that don't have X toolkit support is displayed in a special window W->frame->menu_bar_window. The menu bar of terminal frames is treated specially as far as glyph matrices are concerned. Menu bar lines are not part of windows, so the update is done directly on the frame matrix rows for the menu bar. */ And the corresponding code: else #endif /* not USE_X_TOOLKIT and not USE_GTK */ { /* This is a TTY frame, i.e. character hpos/vpos are used as pixel x/y. */ init_iterator (&it, w, -1, -1, f->desired_matrix->rows, MENU_FACE_ID); it.first_visible_x = 0; it.last_visible_x = FRAME_COLS (f); } > The menus themselves are drawn, simplifying, in these steps > > 1. Save away the frame's whole current matrix > > 2. Produce a desired matrix that contains the menu > > 3. Update the display. Maybe loop for highlighting item. > > 4. In the end, restore the display from the current matrix saved in the > first step. > > That's save_and_enable_current_matrix, tty_menu_display, > restore_desired_matrix and alike. The event loop is somewhere in > tty_menu_activate IIRC. Right.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 11:53:01 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 31 06:53:01 2025 Received: from localhost ([127.0.0.1]:50281 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdpa1-0005ch-EZ for submit <at> debbugs.gnu.org; Fri, 31 Jan 2025 06:53:01 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:59158) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tdpZy-0005cO-37 for 75056 <at> debbugs.gnu.org; Fri, 31 Jan 2025 06:52:59 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tdpZs-0003LS-Fp; Fri, 31 Jan 2025 06:52:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Af+3NQr0r7yYRE4jsIXrCW9VJUsY9eQNClaB563Lb9o=; b=XN3XixStDGd1 DK6bX3oqVEkHIdwvKTRqyb46/m8/DgkFPtlu0ws8cAjKDJQzkBC8VUJEAbF3zgqCJMafQfXMuYKaX nF4GDBqGpudk6bQszsTMITY7xQeCLzb6WhlcJIoY8GLHv1wlP7b+IB/gtCo5V4brIW9uWlme0Ebj6 X+Dvs3f0UYuSIsR1bNY2B5+ggxNU4ECWMkBniwE+vXlCAoO0SNxhoUzFGAChzjKpObjgKAyKfVzGp SZwrxjMZ2TYo9o9US0N1wTSUEOGQJFhcAe06zH54vjmMuD/dXpaYowt5sRFzDjli9LH+D5+Ocq6Ip /xI99w9lEkpwkZbgydOnIA==; Date: Fri, 31 Jan 2025 13:52:49 +0200 Message-Id: <86seozi4j2.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: martin rudalics <rudalics@HIDDEN> In-Reply-To: <eaf6a496-3877-4222-94d8-98c6d24dc9c9@HIDDEN> (message from martin rudalics on Fri, 31 Jan 2025 10:44:17 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <m24j1fl6yt.fsf@HIDDEN> <eaf6a496-3877-4222-94d8-98c6d24dc9c9@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Date: Fri, 31 Jan 2025 10:44:17 +0100 > Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > From: martin rudalics <rudalics@HIDDEN> > > > Just came to my mind that one could re-implemented tty menus in Lisp > > using child frames. > > I have never looked into the menu bar drawing code. Does it use a > painter's algorithm? What's "a painter's algorithm"?
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 10:28:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 31 05:28:30 2025 Received: from localhost ([127.0.0.1]:50112 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdoGD-0001Ul-Uu for submit <at> debbugs.gnu.org; Fri, 31 Jan 2025 05:28:30 -0500 Received: from mail-ej1-x636.google.com ([2a00:1450:4864:20::636]:46488) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tdoGB-0001UU-3c for 75056 <at> debbugs.gnu.org; Fri, 31 Jan 2025 05:28:28 -0500 Received: by mail-ej1-x636.google.com with SMTP id a640c23a62f3a-a9e44654ae3so297380666b.1 for <75056 <at> debbugs.gnu.org>; Fri, 31 Jan 2025 02:28:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738319300; x=1738924100; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=lM/kGB4JL4Ov00QQWXvRKa8omrZ3shYiCJVbDtyiVcI=; b=Sf6ID3UG18eOpw/daYJFhp/P2Sa1uh2nXQaNzYnE+iJ+/9Wefwsg8SbrurK8bOgiUN 8Yoqd6JvFnM6M+bvDB5JTDXbgr10Hf3OD+1jHmpq96lLrSwivBxfsC9s4Ejju6lpI/h3 bJX/NVGaRdd8QAZYW8gU2+8j7ZFhP5smSqa5W+FhjO5rwrdK2DsXMFgLWqM7Dil8+7Ta xWmVDMcuJMNAffeKucGUc/uZzHOBFS7EbeUaDZvYx082zxGZ1GMqpfgDTI5M11MXUCeK jO9VTN5Em8egJewaHnUxxNJTgeAcKyW0FTuthyTtDF0Y/Sc9cqiHoD4fFS+b2pWocS+k 2sEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738319300; x=1738924100; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=lM/kGB4JL4Ov00QQWXvRKa8omrZ3shYiCJVbDtyiVcI=; b=N48e10u3mBZVObWBiJWSaFh7CJlZpfQ3w3H73+iYclYzA+7VVIZMkmjDcjNJvZqenf fHNNAXoxkwhn/48nz0XP77JzkmgLDksS+vp1K+JN7tO1IE63NbW2/2MzH+ngT36ffhKu bcV92PcaT5dGT4EC6PggxZaO5cFaDQQXwpV5hCyfKpbhK3xYP2kBwa0oFZjV8SJ28a3x uA4t2M5mqU+JwiRPEjYQa7a7HFH5iUwYvZqfzL3MeFMKKdm54L0yQISHKN5xe7q/+9AQ dxgoOJDWHxEHJjrquady5oTZpXjHclYAqY3BVzqmDl1YYg3CR3XxU9UF4gVoB8oK6yX5 9GQw== X-Forwarded-Encrypted: i=1; AJvYcCW9MB3bwuahPylmtDQoC9pUgzdBQrKnLUIOwjW6A0RDJpDR7TpTCXUpHFyHZ13pzJburAKh0w==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yx+sLSyL+rAhjzEdyvvRMyfbsmh0v1gz0DklrBzIMun+yCTC2JH F6USkFEKp83EKXhG0GfIWOAVKw9/s1vDW8/I+6a1J2C9UQCgr3/4KUlx1A== X-Gm-Gg: ASbGncuhukIz75raMN8hWqOYdPl+vJxdC335IiAWEUga5OEx7EUDN+RZDZA1Tx365np 3Q2iBTJNcC2W1OTMk2wASxkfW0FMF/MK0yua3GLkFaed8oTRsYqwhVamyTFHUD1wxjzy0zHwztp zUS9RipA7p+4s5VPPcUSjzTNBOqzyCLAtJGjDapKCTEP1lYjdGqXC5zlGJT0wXQq7p4YNzVQn5J QDZLXpHdvt71rl+RqNfCBDUJ0rG0ASuOCN4GSdLMVjn5NNyWXoaTROQ+CfwlDZd+aeFmc9FiX/N pk/jBCvgXH1fo+W7gXd89gAxefrDAaoSCIo7ONc2cEcb7Gx+PSbKgGujdonCCedFX4I/LNpqRYX qe2xdDQbZgdjdAl5LkrPhYr03 X-Google-Smtp-Source: AGHT+IH8UsW+gSWU0gDMLuJ9paO/ah+WblA0BlM2Fca1L8W88NMVW8PfK3DpHL87uT1d+9L48hd2kg== X-Received: by 2002:a17:906:e218:b0:ab6:dd6b:2a3 with SMTP id a640c23a62f3a-ab6dd6b0549mr587430966b.22.1738319300290; Fri, 31 Jan 2025 02:28:20 -0800 (PST) Received: from pro2 (p200300e0b70975002d7f5749bbacbd35.dip0.t-ipconnect.de. [2003:e0:b709:7500:2d7f:5749:bbac:bd35]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e47d0f7fsm273798366b.56.2025.01.31.02.28.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Jan 2025 02:28:19 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <eaf6a496-3877-4222-94d8-98c6d24dc9c9@HIDDEN> (martin rudalics's message of "Fri, 31 Jan 2025 10:44:17 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <m24j1fl6yt.fsf@HIDDEN> <eaf6a496-3877-4222-94d8-98c6d24dc9c9@HIDDEN> Date: Fri, 31 Jan 2025 11:28:19 +0100 Message-ID: <m2o6znjn0c.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> Just came to my mind that one could re-implemented tty menus in Lisp >> using child frames. > > I have never looked into the menu bar drawing code. Does it use a > painter's algorithm? The menu bar itself, the stripe at the top of a frame is pretty special. On GUIs without external, i.e. toolkit, menu bar, a window is used to display it, on ttys not IIRC. Let's ignore that for a moment. The menus themselves are drawn, simplifying, in these steps 1. Save away the frame's whole current matrix 2. Produce a desired matrix that contains the menu 3. Update the display. Maybe loop for highlighting item. 4. In the end, restore the display from the current matrix saved in the first step. That's save_and_enable_current_matrix, tty_menu_display, restore_desired_matrix and alike. The event loop is somewhere in tty_menu_activate IIRC. I think we could save a lot of complexity with an implementation in Lisp: Prepare a buffer displaying a menu keymap in a suitable form, with help-echo, local-map properties and so on, show the buffer in a child frame, enter an event loop or something and so on. But it's just an idea I had when thinking of how easy tooltips were to add in pure Lisp using child frames.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 10:05:05 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 31 05:05:05 2025 Received: from localhost ([127.0.0.1]:50072 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdntZ-0000Jw-6I for submit <at> debbugs.gnu.org; Fri, 31 Jan 2025 05:05:05 -0500 Received: from mail-ej1-x629.google.com ([2a00:1450:4864:20::629]:54726) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tdntX-0000JF-2U for 75056 <at> debbugs.gnu.org; Fri, 31 Jan 2025 05:05:03 -0500 Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-ab6f636d821so174218566b.1 for <75056 <at> debbugs.gnu.org>; Fri, 31 Jan 2025 02:05:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738317897; x=1738922697; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=C4PSnN6xnCWWn75leX+HE95JEmwn8FkBYObwqNiD35c=; b=nOX8k8mzk3HtM9oNbDlTsj9RUq4450ylOjfqjNJSbFWIbgQBXcrF7/OGqXFzkWvXB6 APbNkSkc+DweRQAfjXhpjpbxgpa3NFcLYZuAne07Of8CusqpsUp3lQasWP2v1vQMfKx/ vsgZoL4UEkio6gNvWzrZp3BGwVdJUTtNwMaOJ95rx2jD0HVH9Lbn4B5BGmBnC110okrl cwFvRb/kxHNOlkWWFKgQi/Adv6ThoL5cqhR/3nZW7haj1QFPCMhfy9SLzcBBzwD55CgL AOgc3DZySH7Be7o8CaSv4+97h6uw3a4IOX73s4byi5mxhMCsT5cwoTuwGCKaX5zDP7IL ZOkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738317897; x=1738922697; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=C4PSnN6xnCWWn75leX+HE95JEmwn8FkBYObwqNiD35c=; b=MsRAi/eC9Ma/grZJfNy8Pwr/c5shCyl7YfPGs75Rc8zFOSIFcacqbTg6zQH09hUAO4 OWYMokyXy41L49mMSMEaGqG+NQfSGQkscfvKjpQTRJfWY+Y1idULxtAQZqpFJ9SxtRsl FS+uC5A59gFFMjKkSdFlpDYF9PZ42uNuI2cm7kv73EX2dvSIBO1C2UTsBkfuYlVTjyFW PqLvCo4VLiZuj9UsRXdMGTKSu8ZeVuZkjzB1hjKlvhcYSqgtVA2hwN6gVrL1cL+7ln9U L25IuwDowrrhP+gm9z/YHPYsIIMAd1WEPr85iuuFgjYxhHIB8+lFRG02sAaZ5yIvCD4W 5c0A== X-Forwarded-Encrypted: i=1; AJvYcCU01IJ8usVnps+jvIpvrbDVj7bfT8vgH7NFqO99dD4JiMYxqECkj+d0mTQkNKuenoRKkDpyXg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyMwO/9Tyq5DHDepmjd2NrxbVgHoRse0Yim3aw0l5xQSuwYJVv6 Gl9Wqehvr7uK1ns0KQKfa+nWLsxjd4s85snJVYzAqQaha1CJhtPfR/wONA== X-Gm-Gg: ASbGncuhX355P7zTPfhtD4CBPHc9k4dZ+MZ7DYcjYKfgezZnORV9NoEPkfQc9/yu/4V 9jIw0tgTvkeA5Dz9B9CadW7JNVMKE3aIcyBnUQLFdURaYrJ6HuKGGUxUNcoZS5x+2rHMDlWu4xi xfi3rHmD3R9NmyqQ+JZ9nL4IfyseZeuPfb9xvhyB6WWGaKjoQK3feyXPcFenny+dWMmPhASjXJF EAkcGSpH5qLC5oJgCncesxBJzqGE5cFQQG5xDB7mImYpDuc3i18fzVkxQfZdLSGm6Rju5N7hGdh KidcvpMrOITZesrj0ESfAOymP24Qib+RhRVB1lWi6ovs9fPLXrNSn23pkKKpLOceS2XUoCFCJG7 tr7bReAZX5s0EhshVDV+jngsS X-Google-Smtp-Source: AGHT+IFWBtnOlZagy+XKT+jcuEpgCTPWdZQugPnkmHpLQ1ViD/CuNlDwI3CRd3LwQlwiIwsgZCSL/A== X-Received: by 2002:a17:907:7f90:b0:aa6:9461:a186 with SMTP id a640c23a62f3a-ab6cfda43e1mr1035067166b.46.1738317896432; Fri, 31 Jan 2025 02:04:56 -0800 (PST) Received: from pro2 (p200300e0b70975002d7f5749bbacbd35.dip0.t-ipconnect.de. [2003:e0:b709:7500:2d7f:5749:bbac:bd35]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e47a8485sm266824066b.9.2025.01.31.02.04.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Jan 2025 02:04:56 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> (martin rudalics's message of "Fri, 31 Jan 2025 10:44:09 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> Date: Fri, 31 Jan 2025 11:04:55 +0100 Message-ID: <m2seozjo3c.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> Could you make sub-menus display and behave more like on a GUI? For >> example, when I choose Tools -> Spell from the menu bar, the Spell menu >> replaces the Tools menu on the screen. On a GUI it would display on top >> of the parent and one could navigate back to the parent with the mouse. > > That would be nice but cascading menus on a tty is non-trivial - there > are already some some very clever hacks to make sure that each menu is > always drawn in its containing frame. BTW, GTK builds can even enlarge > the Emacs frame when the menubar gets longer. Note also that GUI builds > without toolkit cannot cascade menus either. > >> Similarly for context menus. > > Same difficulties - one might have to move the menu to fit it into its > frame. Not that it cannot be done but on a GUI context menus (or a > tooltip) can be easily drawn outside their owning frame when they get > too large. > >> Also the first line of the menu "Spell >" looks weird. > > In what sense? > >> And keyboard navigation back from a sub-menu to its parent would be >> nice. > > Hmm... via backspace? I take everything back. I think it would be much much better to do that all in Lisp.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 10:02:12 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 31 05:02:12 2025 Received: from localhost ([127.0.0.1]:50067 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdnqm-0000E2-7f for submit <at> debbugs.gnu.org; Fri, 31 Jan 2025 05:02:12 -0500 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:52327) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tdnqj-0000De-Nu for 75056 <at> debbugs.gnu.org; Fri, 31 Jan 2025 05:02:10 -0500 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-3862ca8e0bbso1504275f8f.0 for <75056 <at> debbugs.gnu.org>; Fri, 31 Jan 2025 02:02:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738317723; x=1738922523; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=F9Fwx/Ga/pjbL6AKhKelvsnbyCZiKXtzLZ6ieKmTPZo=; b=BCCoySpliQwqru/qU5DRSwL82JjthKVUqHmDyAKxuOTau0hXyg3D0prOLbHDu6Iovl fG2DIvEnUPLAYeO6B4AqBqkwv9Cf6JiPkAp7oKtXq/GT68wN/KHT/OPbDknqS/yKX6X6 pcz1bJ+cKePcLOiCKo89arXDHgWP7OaCiKV4JNcgQV6tX/6OMjxJ9iAzFXavTPA860v6 y5/FxMsDboiey1jDIESNlx1c+YhgYott0ZNqDhZ+ACOT/OGUOQSnOZvYzkt902B8hpbo keFhoUO0NKP741DMvrAlq9Na9ont3+NTTzsgkebPh0BMvsQ7Zfxm/GLdTdD1yha1e7B1 QYQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738317723; x=1738922523; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=F9Fwx/Ga/pjbL6AKhKelvsnbyCZiKXtzLZ6ieKmTPZo=; b=hnnC5lFuFEYNjhXsK5VIye4B5/myReM98yvqwwJQJ/SCoXlYkuDmSqe07ZmyN3za6/ uwvknFnotOzlThAid71MunLZluli63cPEiHtxApGRVO1xw9lfooyiLuNQEH4yEnlAqyf jTKU64RRdjfCsTqYqBf21/vlE4EQ2et/6v1mpDYHN9LLaeqWftbGRGz+q8EGrW/js7YB V9q3A0ioQja/mFb3qgtvar1XY11SUE6Lq0jjv85ZKhtCUSo5yFyy9h2vq77o8pYM4nO/ tNThs6Nhi0IKGj8XkF5RnhBhPoKq4uTbBC2ENCHDwOP2JS5NDrTfMeFZ81zYXYzzfhi4 WhOw== X-Forwarded-Encrypted: i=1; AJvYcCUEpDnopSQtFCAPki+4e87qWZue4SNAspf7bqzcWMcnx3rs+QC35s4M9ok9gHhUbkQxX2W+YA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzyEU/SO+sCr7yccd4iEvq39NVWP3zi3qGGhncnXaWq+gMlgXns IZjVA5+SZDqCTQmn3HqVt/m3sSw/ftuaZebOtscw8zbbr95n07+btEuQZQ== X-Gm-Gg: ASbGncvTFqf3sQYQi2LQOifNuwVqc8F+nAfVGM3SMWptPYo4S6MBQAvP+IFktJ0qnT5 PqTiWJIYN2kJZoaC5LpeZEjclE+MHLkJqof9eUqcQJhwIWjEat7QneZ6xhewfE3ZDGg60mC08sk tncVvYjX+wexaOn/6MAR8zfWsSGWnF6hJh/wS6LlplsBKYbZ6HG9Z2sn9T+how6GBXby4Ita95f 5kYNp4/Q8QvjyernTc+KkHEqOJck0Z9pmg8Tzoc/+si8uqBCDzKNjpAmQr8iLB6pd/SEYbpIpNc nR1CNt/BZY6AMxgpM3x7ubTEyliE3VZc4JhNl9c+HUUvRN9zkFKbEo6CYK2UZhT7jeOJHogAGSQ 7pXUOXVfuUaD68SyRf4my0a+/ X-Google-Smtp-Source: AGHT+IGRcUBboGo4dvgVeMUFz2UnROEGse85zZRKbnONxt6FRJRs3dA8gN826JysdgJpK+XfVS0eQQ== X-Received: by 2002:a5d:6da8:0:b0:38c:5d42:1501 with SMTP id ffacd0b85a97d-38c5d4217eemr5236569f8f.9.1738317722913; Fri, 31 Jan 2025 02:02:02 -0800 (PST) Received: from pro2 (p200300e0b70975002d7f5749bbacbd35.dip0.t-ipconnect.de. [2003:e0:b709:7500:2d7f:5749:bbac:bd35]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6e47a7fd9sm268461066b.34.2025.01.31.02.02.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Jan 2025 02:02:02 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <3b83f1e5-1f42-42b5-9dbf-db74a5503456@HIDDEN> (martin rudalics's message of "Fri, 31 Jan 2025 10:43:01 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m2jzackufc.fsf@HIDDEN> <3b83f1e5-1f42-42b5-9dbf-db74a5503456@HIDDEN> Date: Fri, 31 Jan 2025 11:02:01 +0100 Message-ID: <m2zfj7jo86.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> There is little chance that I can change how the borders are drawn, I'm >> afraid. I started with trying to give tty frames a border_width, and >> failed spectacularly. It was so bad that I git reset --hard in a rage, >> which is a really rare event. > > What were the problems? TTY frames not having borders seems to be an implicit assumption "everywhere", frame matrix sub-allocation, mouse, menus, you name it. That was simply too much for me after hours of trying. Maybe someone else with more patience could try again. >>> Looks good. But _where_ on earth (that is, in the code) do you that and >>> how is it related to the width of the internal border? >> >> See copy_child_glyphs. > [...] >> The code is not related to an internal border, and I'm relatively sure >> tty frames don't have one right now. At least as far as redisplay is >> concerned, don't know about the frame parameters/values. It's like for >> border_width. > > I see. Your approach is simple but relies on the fact that you draw > frames using a painter's algorithm. The decoration of a frame above (in > z-order) obscures the contents (and maybe also decorations) of the > frames beneath. Right. Simple. dumb, good :-) > Basically, what you do is to draw an outer border. Yes, I'm playing the window manager. > For mouse-resizing frames we can easily expose that outer border to > Elisp. But the problem is with the coordinates. An outer border should > belong to its frame and not the parent. Clicking an outer border with > the mouse should activate its frame and not the parent. We can fix > these as well but it will be a bit contrived. No comparison with introducing borders for tty frames :-). >>> One bug I noted now is the following. Do C-l and M-l and drag the >>> yellow and orange frames somehow as in before.png with the cursor in the >>> yellow frame right before the left edge of the orange frame. Do C-f - >>> the cursor appears on top of the left edge of the orange frame as in >>> middle.png. Another C-f moves it into the orange frame as in >>> after.png. > > Note that this is a bug in the cursor setting method. I'm not sure > whether it's been there ever since or was introduced by your recent > changes. In either case, please have a look. You don't need my changes > to reproduce it but it's much easier when you can drag child frames > around. I'll take a look, need to find some time.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 09:44:29 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 31 04:44:29 2025 Received: from localhost ([127.0.0.1]:50032 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdnZd-0007j3-Bh for submit <at> debbugs.gnu.org; Fri, 31 Jan 2025 04:44:29 -0500 Received: from mout.gmx.net ([212.227.17.22]:56835) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tdnZb-0007ii-GG for 75056 <at> debbugs.gnu.org; Fri, 31 Jan 2025 04:44:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738316659; x=1738921459; i=rudalics@HIDDEN; bh=OSHuGhseV55F12/1QqJhLASXq1TFCxGJtj/dJTGa2Z8=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=BqJW3spgnCWJj/YtiCMKwgd66fQvcB214/navj3HxnfQ9fI92JQ7hKbcbXDdu3lT QTIeUPxLDE5ifIeCDUlJ/Xr3/5PS0W5xH64XT2S+Usv5RK1JJX4Ii3MNsbwgWrYt+ LpcVh9kJjjPgB7kcFYKuIZRdcqNp/6kkmXpLrKtOda1mHQVOLjNLilSa7X8uEsui/ +njmsYXApzHS2LSEQ5yKT/2QK/J5N+yGD0WKiSzhl3kN6FXlLEVWs2ZVZHYTS7f99 cR1dt82x0ZiuiTQzC+5hKj6yjS10TH2rGcX0SMOWr9rpAHIMWAwhNHMEOjRYlfn0l jwOW2/i969r5BgcWOw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.157]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MkYbu-1tAXca36Vi-00lBOX; Fri, 31 Jan 2025 10:44:18 +0100 Message-ID: <eaf6a496-3877-4222-94d8-98c6d24dc9c9@HIDDEN> Date: Fri, 31 Jan 2025 10:44:17 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> <m24j1fl6yt.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m24j1fl6yt.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:1UUJqLG7JtGYqUCjjyIj7AKi/maOb3wdDJxfD/HICa52KdgRovN 7f4sBoB/k4JRSdmAV5Xc2WZ5O1X0EmIRVJWNxtLHYq1cgyEluHsYOTheyz3lqs2bVdmkdG+ ExIV7HFpGWKvzEsa6NEW4r4byKZq1ZP6G2Lfr+oc2wWHW3j7FsJ4Or6xt7OEDmnfAT0HRn/ pKj6m9VQ7/aJC0U/rG9Yg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:0es37IlEfaE=;OS3N87pyRSp/vXGetGv1AdUI0Xv ZApFqHcKfVdF8Deo+UJKmFdNerVjTCpLZoQO+2YGtdVfhI33rFpZ5ZBBJ9+9s5QTQhfzrjP1D UNc8jinxgmtAN4FiZL5jRmnIOktkerjfVWQZdATqTkw9HJ4Ad5z9+hGE6gK+Ki/onJYb/jfEe 3fHey5tZ31whEPS0223tn3l2ZAmK9+67Ph3vyyzTEK2iCKW3tsqXD2D5yLDPGB6v/5ErH8YGJ JUM5GGk/CoN+IUaZ6HTZiAukz7RNlblyk7juDBg/Bms/vO2/esE9KSy0SY00oMsJSY5DzTlXw eoRuDYNI5CAA8JE93qJcCSVMKLuaEsLUsvkHon6zReYxFSBvNix6P6URivREdTTqmKhqMjzrb wwqrhLHLtwxD+YucpEIp8x5wCFcTJOFngSjbgMOC0g8a4nlx0jt/Cs5753dnCAPmYCpwzSC33 lI5pQbCaC5r9/pewIvKnjp0wz+LhvD0M1Pmnhl7TfG3N4wOk9TWCa8UMBJv1T8aLzJg+BKFB0 EIlExIgazQTcz2znKly0xausKKqFRhJ+NshEQiGclXmeBQBmuWUV6X6hyn5dt6HIwquWAOCV0 SblxhYzAR6sSh6bj11a5vPz5DqQg/qrNxzU6YzzKkgrNyss6bLI4ldb0ClarOcYt5BXctZwvf i9cR9nWSVYP+z1FerolOeTQeM1077xi6PHTGoLT+sAzRI3V8LUu52tQmuw3DB3G+uRLMuyqE+ 5grQjadpS0wp2Z5FuiYO7ln9wrom32VNtACnJ8EUTTGfT8TGihcmBm7lBfUBkqvf78bShXynE zFteVS7+vUcZuxoiO6pUrKbin1kQwz1KSvzSTX6Djl8ahPKCrKGtTSiSotben3CpzU03c7Ct6 m9Rstu71TS3FSWXCfnyB+gJGDkypifWjla9VrMlrUIvbMR7ixVyinvZ1IO6bOrLBwX7YpJfPb uvm0UT2duekXiWk1Sq5b49M4AmFmF7xXnA7fmPZs5re4Lov+wnis1nteZ+xhBE6oV5xarq6Ob LhHI/ZPaSBpgF+ziOvuFDmTJ5XOWh8fcM0PNl+R8gByhNGpN4djhzr+SA6cdOBiJme2ngKLde H4fb0Kyx36HAhPCZ1eMSaYXSxuIiU55KEHsSQ1oVVXDrLB5QaXUwiD3f4ax3e1KVKHsV4143T wItHEQWqtPjdlqC/iJIDSKSBfFlmBmG3cgea9NBJjXCv9wN8lO9re7hA9BRgrKUTiu/xTXFBa qvZWuGd09Gkes+10WxMWKpMCU6ynLx6RMukFQ+apcTIVBhLvIv/xyfxQ6cjXoVuaHlIqPyVrh JKcd0Y/o0FqzYNCjD1BgfNpUAoe4xJ2uZqPrIxDtCrwvzs= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > Just came to my mind that one could re-implemented tty menus in Lisp > using child frames. I have never looked into the menu bar drawing code. Does it use a painter's algorithm? martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 09:44:19 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 31 04:44:19 2025 Received: from localhost ([127.0.0.1]:50029 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdnZS-0007iX-T0 for submit <at> debbugs.gnu.org; Fri, 31 Jan 2025 04:44:19 -0500 Received: from mout.gmx.net ([212.227.17.21]:50171) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tdnZR-0007iI-4W for 75056 <at> debbugs.gnu.org; Fri, 31 Jan 2025 04:44:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738316650; x=1738921450; i=rudalics@HIDDEN; bh=7NprMe+nQi0qv1jo2wexNhy8ucMw17cb9v/lnkFUHV8=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=Q2HpsHE8XOPWHJq4SJEnhGr8c/DgkhvCql+tAJ+49xgpLPkWlrzLz0716YbR70BU MYECgYN9ZUMVzjRTnHUq/DvGZUWr5wRiSb/G6e5RPZEc1WT2RvL5aclJUr7wstK8f zWSKjENXw+qnRs5b+s24lHnSjuLb/9jdVJgbXWeUptu96Cwq2wXqrbnoxWmH45UXK M5s2ssyzODULadfRkp/gfpIhfZPdCs6K4maGMTF9d9DWTxIjAyZT1od0maKwr7S9o g2cGkwkQJCK3uVY9AelYgG6pRnHhHUEDS1uueLbhL6PdSwjSP6rj9Euc+64fx8xQ+ mjCtfzbJNuQViAaVwA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.157]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mj8qj-1szE1n2Wo9-00jRwD; Fri, 31 Jan 2025 10:44:10 +0100 Message-ID: <9e4b43eb-3021-4d21-a154-8ea857dd9aed@HIDDEN> Date: Fri, 31 Jan 2025 10:44:09 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m28qqrlkyg.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:xGr4xmSQYxXp6csqdYYHWXRl8/jZz0P0F8DrqYn8af5o2Kkr5PP I8hyGozpYjLDJBgMqRApQkSwCwnKG52ZeKbapk4S+w4I2UrqfkZex9uBf/7PuDoISf/F5U/ 4zgqV+mpZNqZmfYszuHCg6RfhvhW6XW6w1sK4FQp7oUP4X/DEFkBXPhK1svE/GPn03VrnNS iXVsAN96hMlCYVYs4ua6Q== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:CpEXbzKPvM8=;PB+h2aEZhYPal04z1ArUI9g6m5x /mAZyORlGARxdCs0WGHknawhdb1DC4YeS1miK0mUR49IrPL5F+fhq1IepRwr8i01O7b8UvXYo 3hJjAdJsTXAZPQNd1babUfl7nLfUCIxd6vBP19pAtc1B984JfVmOrLvC8QjDTT88X2w9wkSQb moVoZ2ggcuthNkl9/bEZMYkYoxvUpIE2wKkqY3os+dcjkO49Qck+LL8YWk4ONYg7h9qy4HjaD RZe0U6p9MiKv5Q/bkcG/+xK1jqxJVUmU60Z37dhK/mCVq6r5uP4SM6FjTK0JRCf7leD7n1yIA tZDVV4Vr4szAGCT7RZgtD/9yYzjo8huM4MKVLmAcxBX/BFWxM7+hZHMItOLv6+4aqX3q4ZYmp LfKffVqBoDbT2duTlTVhczjl+Ay1S2E7z+e49n/FA9o7RaeWNYxZvaJeumpf7Xc8JTqzlANic mgM8E4/RJDuPfxgRgE7P2Q8Llj6arauI4vEKJdV/FjTkiwlo759k90E7Hocxb/YzgHQmk5aNB eu8Suq+Y3bo1ReFy3dtMI0yPJQNx6/JKCcbJ0xxpE8OPOnHFjtmj6Rg2XMASYCLrUzRs7r3TW i5ORKySXyZ+nzXIwV5JW5FZE36ZzUPWcAfjNYsIf1TfAiYsKqbH4D80s9d4PgyWoVOTu5u8lY EhI+IvjwJjZFeKx3/9lrem8oEZzY/XXM0OW/dYxM0NUsKWfNnYoQJR5Z8bja4/FuwmkfY6oOw eNGWbh1rTejWQhVfVHA8CfEEuIAdegFw0sUKE8lvIc8vWzXokta6gtn1TnedqLR5MFH5ADRq0 Yqg8/bDk56cG5aJ4h1Qy6HFRzHBB39F7kmqdzAL2HiEq8T3PX/PxGF9O3pCLzjBXfMuYOov9f pPfsAeEtiHuwYfBLSpocnXfRrnJw/WaMr4d+g+cOm8R8DqzuC2npEECFTNuRKCZyWLb6OrdyS /6IIaUQmHyTl0Hv1eMjYBfACtxF+BiGh22ae57Uiw0Rz5+TFAYBn0C4RHo1ygvOKm67u3WBHc 7iIqZTvGUZcTuOgrxU4/aaHguYqC/tp8RDdMj5gFd7jEzJTmTruwuhhRLIdKqhRHzSqPuYUwB uFmsuigRTx1i2veT/7d/4A0lHx7yG18eBC/Qf3ufZ7ub90W21TAWkViw7PSmQJD+iOq6Jhf09 kC0Pugd+EU1Dl9QxZFn1salu9Cv2hz+IURICsw1q8DeqL1KLEQnl76iwGyvL4yepIpcU/AZCS ZJ3RqS40t1L9/rLGNRl65eEkiG66YmHNZgCM+WimhdQDyhKucl+hBpem/CxlALSCpoDSruDRz 0Xl8U6y8sDbq7EDEPZU3Q+XtB2W+a4nppBcTOspRIPtgzw= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > Could you make sub-menus display and behave more like on a GUI? For > example, when I choose Tools -> Spell from the menu bar, the Spell menu > replaces the Tools menu on the screen. On a GUI it would display on top > of the parent and one could navigate back to the parent with the mouse. That would be nice but cascading menus on a tty is non-trivial - there are already some some very clever hacks to make sure that each menu is always drawn in its containing frame. BTW, GTK builds can even enlarge the Emacs frame when the menubar gets longer. Note also that GUI builds without toolkit cannot cascade menus either. > Similarly for context menus. Same difficulties - one might have to move the menu to fit it into its frame. Not that it cannot be done but on a GUI context menus (or a tooltip) can be easily drawn outside their owning frame when they get too large. > Also the first line of the menu "Spell >" looks weird. In what sense? > And keyboard navigation back from a sub-menu to its parent would be > nice. Hmm... via backspace? > Also, moving child frames is pretty nice too! In particular when debugging child frame behavior. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 09:43:26 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 31 04:43:26 2025 Received: from localhost ([127.0.0.1]:50024 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdnYc-0007gU-9l for submit <at> debbugs.gnu.org; Fri, 31 Jan 2025 04:43:26 -0500 Received: from mout.gmx.net ([212.227.17.22]:42607) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tdnYa-0007gE-3l for 75056 <at> debbugs.gnu.org; Fri, 31 Jan 2025 04:43:24 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738316594; x=1738921394; i=rudalics@HIDDEN; bh=P4k0FyLDuGemityU4p1SG9qSoOPdLzJYY7Y+C4BuySA=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=kQx+12wCuSrhTFMcJ1JaMm5x7p2vIxeXAW2pUv22WfNBLeewx8R8Rs0mOZ/6aQQF 7VpJCku57wqnmUgZPfuLJx/F+V7RDacpMzMRXm09c3RbBq8w8qYrWXkqE/3A1b0F0 qLsh3K3bAAtQ5jLp82VgiQwimVEgWFpxxhT6KPPoHiKaMWeSHufP3olwsc94A1gPN G8xzdl58btXTHxKiLJ8lKlpCvtXYNuLc4SGaqVBY868jP337acvJ13jo9zmrC13Fl x2Kpd5kuRTOu0AdYdn+SonAFZtxAfLko3Ql48rNcCgggodTPpnqpN0QEzJMF/LHHi kNZyaJh+7xkwcPS/cA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.157]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MCKBm-1tnBCq2F86-005Duf; Fri, 31 Jan 2025 10:43:14 +0100 Message-ID: <acc56a39-c247-4d92-8428-e56a5e9fea4a@HIDDEN> Date: Fri, 31 Jan 2025 10:43:13 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m2cyg4kou2.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2cyg4kou2.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:RbQWI6/bxvKIWlv7x0YKEpXYAbJ8+CzXeNp1C8vrR9EZCpkFCN7 /LMmVmMnJTjeEz7EWUkDrkGaetHyeVhknvp18RKNWTalIA96khnWH9ioXHbGgZgGAadLuZk v9hwu45ZhZvG74I5vbWEq4iiq4bFMFKE6PzrZHFLQ+SAU33VaQosAEhywL6KRl8jx6BZ8zw vTblg7KJCOe9ov5nW/a0g== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:FrplHoOwxn0=;yPzFbHm3Fdmt9+guhhn0bsbv9GR /4jP0O73GnLlbRqfiyS4SCNgPNxuJoS02d57AdET/1HnAfrIsxZ3tANALjr2N4MC7Mcdw4yeI 4cJYqCukzdKzg2ulaPgiEZDJJ0K7+4ZAmG9QK/r6/TZDF/ArY7ED2C8f7/tjM8pTfhnmQbn2N oJD3uzSy7TGqXrHMhsoULp8ja1Y6HBg1Xd/o/avmYDK8ZItP39BlecFgE6m+3XnzLggLA1ZTI OJwyhJ8kuXNcgTAt0PSgEG3vXjQqZlaTCpJcsf4jrPa0/Cz7yd+oG6zMTLwYkTd/WX9IZ7d3p h6txHtrPo0jiq/NJFqyq/1Hwqs/I6y/wxJJK4hKuT3xdf6Qt7XFqOOJBUrBNIHUjF1bKNtPF6 2+WXv5CneMEhIMHEpPeb6C0saAW7VCZ8M3UaN3hBVun/DEKeDowvkgnS03C3eDUS7T3gd8MR1 EZ64rC6qkNZgePfs/RcALzNsvk+p7iNH6C+wZMZm6o1dBRCa7ABxhDB1J2CGmdPbIvxzDbg0e L9ThXVvXUQij4Y9zjg0TNsB8WiUrFmvAA3OAhBq52G+wVOTXVC6aK/wMSqsgbytm/NKntEBL/ zlWvry4P6ZPsOgOy35mhxqzVUmv/g2Ut10FkEUDzdb0WRm+ZA5DJuGJn/otgaIaodqKYaF+FZ gXlujC8GyhN0BQVmtXHXN26DHdBJDHPPKOgJAcYjcyiOY+C8W2aYIPzCNP23KrUcggDr0+FxG dQ/tdebwGt71lJN/1RMrz5UVj08KUDBvVgegx6pT+Ixk5MvRQZkxINM1Cfw1hDvvIY8XhCgxL YXgTKXjSVc2nOhX4A43/PQhn/GfEC6tKSXbE+1eRJvbYpvnB8HFds2Q1Lb2GP8JLtYWiz+JEX kJHgyCwvIykGU1lqcbF8aI4Wwgdg+h25NRUx8cAKH28JEdnZMX+lEGJW3rCbqJ+bV5lgfayEj Yt69FsCXicGdDxQ6kVkFZNx/HMMxf2tXpT7Pk5mlxTP1oyxQNSX2fHIv5ErSQ+Q44WQH7UooI 21Pp0AfPaq31tR9ECKLTSW+OLYWs/rAqpWkJQrR5yD8vd9AmboQm9z+2TR2EClX8BVAXWunDR twaJ9Y2TPAXsvOZTxO5TnU4uhbqrNR42rbezhUKMt1aAk003BCbWBWvYspqYwiY1s1AtCuWxS OuQ3rN/B+iMyOa9ASm/o955Pya8MXdzwaxcZo0sL2MNPvFtUr06SK+Fp/QWomhc9YU7n/+yEa Z1J+N7Q5xYHcuWbCEwMmR0BCGP6c/lOHwOEgieGWKVKUR4oLFEvv3nTR0pJNHXa7Dzd1Uth7j jbVRZcWo1W7yYBRn2mrM3lrK8eNzJNm6iMTvqsSYFJ00bY= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) >> I attach my latest achievements both in the menu bar and mouse drag >> child frame departments. > > Please find a patch attached that makes it build without window-system, > which also shows that internal borders are new in the tty world. Thanks. I tried my recent changes with a GTK build only so I can check immediately whether they negatively affect the behavior on the GUI. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 09:43:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 31 04:43:13 2025 Received: from localhost ([127.0.0.1]:50021 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdnYO-0007g0-QT for submit <at> debbugs.gnu.org; Fri, 31 Jan 2025 04:43:13 -0500 Received: from mout.gmx.net ([212.227.17.20]:34793) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tdnYM-0007fh-OU for 75056 <at> debbugs.gnu.org; Fri, 31 Jan 2025 04:43:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738316583; x=1738921383; i=rudalics@HIDDEN; bh=nNBF/JvD5K4rDIDp5rVWb6HeVtibyk5DzVnIrWHmHxk=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=dZb+i3Ti/KLbJiZBsHmQO/VoMezQ3NE3pWmi9WkfM8iUb9ybT8O8wzM85A6yB5Wy RhEkzOdAqyk/i1eubbz/jZpw795/6aq/LnlmWBdOlNkTUCwmuHvsTkrlF8Mko25Un 4tkm4Q4xRb3d1xrEtjcQ1vLfNHKA6q983AiwBK+kqwu6e+ozF8dIKYEko3sMikFpT qkdc5lOjGikB5cMQcyh+6wK1Ik9cil6QdyYdWm5hlG19LeBSxZyD5Csw1LaYEpDLt g+fEjzL2ItTdOzWwWF/tI0wm/y+Ynqkq4UhJJVmWQv5oHUb4kPdNTM5qTmiTaVRLv 023VxdCvflyleDaxkA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.157]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MJVHU-1ttG2R1I08-00LJCi; Fri, 31 Jan 2025 10:43:03 +0100 Message-ID: <3b83f1e5-1f42-42b5-9dbf-db74a5503456@HIDDEN> Date: Fri, 31 Jan 2025 10:43:01 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m2jzackufc.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2jzackufc.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:q4kgKyo31cVn4egArAWHBw89pdViThuC8kMj18GpX0pSm6rDsbZ HA9lDPGDwFCns8mvHoUAG872nsQFwndWk5zGx+BeM+YvPZjlFp40uX49OO0imEKcWhLlzIn hixbFQ0BQ+SJIo85BTWNtaB0r3qAxBA5gj077hJZcVBR040eYPuYHF8dROMuhqHtYYWWBOW ToYlnk0dvAt+wRZHNvkhw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:4gXaQqFGSKE=;wDIVz9RL2OzxclXfoz83bECE2cs ziqIc2oFmdpTfFu9I87ZVhFlACfKysUQW0IBqIu7KjCGBZh8LMjtpwka56VfKx3OCp9C+TsfX A6ff9CoZi25I4xtArE+nnzE0abOIsPvrSJRZuTwngC38N7GIx9vQyt4V0G+OI0OrbkaDSpWq7 rJrPvJNCD+WKM3h1KOuX1AAk2rJPytGuDxV8CVxMslN3uS8RO5Gqwkivfp0N7FAxoxAq1Vk3C 54N5Z1a4+NCcqLoRmH7UylEG243TupR2mYnpxQrCTAZqT/ulx9044FeTp9vm9doq5D0b0O4yX nQ3yahRXicpX8plBcuOqdJU728S76hgmYd8OlTg53rLp4tOOtWFA9rAVyOrMx19+aNsYBwm6l vJAlA6VbHjWb84mI1+YxAqVQPI+G3FkU3Dx0eCUQ+NE5J2drte9oGl4HDJkdtX+EE+SR+l0ZL BWeu7aJL2VjRmyozkp6BI7Pr4igfHdF4G6nRk8ngBJsymPLojDEaed50iCI32bxFGTPTaH3f9 kPJInVVD7VjhPCbYd3HBtuNUGhRzdYUxuLGPfDrvggVNmqLBkFlSNoNGXnoj8gqzwBPtbmoS/ fIkIwZBHGTX0tFsvZ+pRViTqeLEDLRiZp9GianSVhSJTf9jcmsq8P46T3WGwqPiG/eSUb8+3I V/8WTiQpzy6/GrnxUdNcBnrwZVJhjhS3cd7TA1CvdH6ksFm5iDMPZnT8pP9EKAHvuANCbvtpW LbrtDp5k7/EuEBXk8x0mRBgeDjP7oau+mmFGO8nUcRuSH5hUEYXrXGXNw4pI63I+J/FvoMqZj 5hYolykH7cM7ZlD1xN33pbBNgzxGZjO6eRTw2oMG25K4UZ5aaz4ii+FADbHF2KjCGRUr39yto tQrKmleyibVOlsOOJ55Yocjs/RXV3tosHUsGVVwd5kht7Dt2K9/ZZSJHJ7lmN8eBk/AdCaqN/ hcsLR62GNYDtVWjX+0/Fh/pMMUGt8IU+NgjTIIgFYAc2gbQy+38bpZyXikL3rPDcVnXjRpNAI uPHF08CJvk6akDDMjfuRoaYIhw7pPYmzhrlpGfT1nNuwdc9VB5WHGUVP1cQkrwYgkDr9OZcIG sSGaUY7Jm4JrgafB1OtTDoc+8eMWA8DzIMl8bFAMZjqE04RIqK7wA8PYA+k4JSISYqPgeMZps t9xDCZjaxNtjQn6LKXFJspSgDdlpEi9gWUgtTeT62Nl7XgodhNRX/on6l7yfZ5YaxrnA51W8s nMHRfxZkiK+uuEKmHWX0O56bPyGUX1x+XFI6ERUmOWH4Aa+ZnPdPn+ZScTmrXui5aOMn3Y0nQ pgVd83L8HCS6alHz7jyZa4+vyIy6fI3CSutZwCi9jacyWs= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > There is little chance that I can change how the borders are drawn, I'm > afraid. I started with trying to give tty frames a border_width, and > failed spectacularly. It was so bad that I git reset --hard in a rage, > which is a really rare event. What were the problems? >> Looks good. But _where_ on earth (that is, in the code) do you that and >> how is it related to the width of the internal border? > > See copy_child_glyphs. [...] > The code is not related to an internal border, and I'm relatively sure > tty frames don't have one right now. At least as far as redisplay is > concerned, don't know about the frame parameters/values. It's like for > border_width. I see. Your approach is simple but relies on the fact that you draw frames using a painter's algorithm. The decoration of a frame above (in z-order) obscures the contents (and maybe also decorations) of the frames beneath. Basically, what you do is to draw an outer border. For mouse-resizing frames we can easily expose that outer border to Elisp. But the problem is with the coordinates. An outer border should belong to its frame and not the parent. Clicking an outer border with the mouse should activate its frame and not the parent. We can fix these as well but it will be a bit contrived. >> One bug I noted now is the following. Do C-l and M-l and drag the >> yellow and orange frames somehow as in before.png with the cursor in the >> yellow frame right before the left edge of the orange frame. Do C-f - >> the cursor appears on top of the left edge of the orange frame as in >> middle.png. Another C-f moves it into the orange frame as in >> after.png. Note that this is a bug in the cursor setting method. I'm not sure whether it's been there ever since or was introduced by your recent changes. In either case, please have a look. You don't need my changes to reproduce it but it's much easier when you can drag child frames around. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 08:32:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 31 03:32:11 2025 Received: from localhost ([127.0.0.1]:49858 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdmRf-00043k-1C for submit <at> debbugs.gnu.org; Fri, 31 Jan 2025 03:32:11 -0500 Received: from mail-ed1-x532.google.com ([2a00:1450:4864:20::532]:54555) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tdmRX-00042p-PS for 75056 <at> debbugs.gnu.org; Fri, 31 Jan 2025 03:32:04 -0500 Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-5dc10fe4e62so3219445a12.1 for <75056 <at> debbugs.gnu.org>; Fri, 31 Jan 2025 00:32:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738312317; x=1738917117; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PlN+4lLvCZ8EaPlw0XsePn/hGvlCNxbaOIV+WwRbKPY=; b=dG1673fNZUGV9mK5ptsJhSWcG72UwdeQa0XLUWnmDrrT0+lezQk9QO0et5iETnSA5H DOTXe+A7jw5Te8VOUj65Z1NM4guqKIR+YuWNGDw3YudoPXH8V3tnwISZziEy5BQrDb14 Rj0IpbDJlibVTU4iGupa9xySaAHSTI8jEQ6GV96gKfTtrYkqi+YJEBSDq7bqdTeCnp9U rSP7dTxo+2I4ZbF/gPuI1oXO9uMlwzDX7EfkDiVRy38GkdNWkn8oR7Zsq1QlUgrOWTWb oMrDqTpGjA8TkPibm/CbvF4WHtnUh6NCu1t0Jd7PpLspokcNfvITKZ2Y9JX8SkvZrgJ2 xF0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738312317; x=1738917117; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=PlN+4lLvCZ8EaPlw0XsePn/hGvlCNxbaOIV+WwRbKPY=; b=USdpk1Hq07+NTGEDBh8gA6ZwR7wuohHZiYiZ1GZpsOFDrP0fBxN3/CNANXN/+nx6yn i663gaMlNWr15cIh6YGQ2Wn7MBwGSR8SnVlV6OQyfC/mpx48IvVW5GxVIQI9Ws1TxwxT eUGgoOTMeV3CRleknEwgarJoxA3ZUdTY4TZvmJ3U0Yrcn59XqFTBSJrqZ8ZSarGEolwR hmMbFwI8mJHCT0PCRpehHRy9THtN/XFh/1DFwyfo4RCAp6SXRyVVz+pfWW67gVOmis/m fywCkbc734WN0RhIY1jqqBqb5GiBbvpxUjcxQAMG38Lz9tCHmc5mzNheUD2jgUnuzHbZ oSxw== X-Forwarded-Encrypted: i=1; AJvYcCUUqa6K1Uf7F9qZ28DOnFrhMlm0WJXSeKYyMjYTDpbvppmrTDcLyF8XSGU7PgBiZtFL+YXm9g==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yx+GMviCSzCPdBkIKwrA7D781vSkGSvKBMxMuRwYf8ByEUrNXJR iawgWjT3hcWvugNU7TVXc0jp3IzzqD0wkzUZy6TVQ7kzjIfKF+NzafZegQ== X-Gm-Gg: ASbGncs9oygnpBW6dJNO5PwgQCuDTeWPqcV4ux37vWs2qXvTcZrAW4axq0tcGRJEKKt LbBOKBsij4htZImqfMplh4fs3F3+oeHVzd959GOFhEXJesV1YCHsotUUGpY9rEgNKM0Yrx9P5au ThsfxSHQrHrtSaoJu7Mxg5+0XAxk/n4Y1AUKTc/zey36qCUOmtuz/dOHIMWGYB45lauMEkjJVO/ JG+FUbB/jAn0eprd3oMC09qnoDWcHclD+wb8S74VigYYCDlhI/JdlD3Bg0I/y5/GEBG70yn/c01 LZhaWI4v+s3gywHo6lBRNInM6BU3ll+6Qd7h/m3T5QcLWOLGXzPaSWzNXPX9+cXFR/TWUAExbDy Dni2NnGgPsv4n1q5AzOaQ1C7u X-Google-Smtp-Source: AGHT+IE2nfdWNoQr5houEHcNNjyoNd7eQV9xUkPWmUiHfOIAuLnblnOMEvbq+HDAlXNOqa0Dgrd9Gw== X-Received: by 2002:a05:6402:5023:b0:5dc:7b59:445b with SMTP id 4fb4d7f45d1cf-5dc7b594606mr3622276a12.28.1738312316631; Fri, 31 Jan 2025 00:31:56 -0800 (PST) Received: from pro2 (p200300e0b70975002d7f5749bbacbd35.dip0.t-ipconnect.de. [2003:e0:b709:7500:2d7f:5749:bbac:bd35]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc724aa0a8sm2353430a12.55.2025.01.31.00.31.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Jan 2025 00:31:55 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <m28qqrlkyg.fsf@HIDDEN> ("Gerd =?utf-8?Q?M=C3=B6llmann=22'?= =?utf-8?Q?s?= message of "Fri, 31 Jan 2025 04:29:43 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> <m28qqrlkyg.fsf@HIDDEN> Date: Fri, 31 Jan 2025 09:31:54 +0100 Message-ID: <m24j1fl6yt.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > If you are looking for ideas: Just came to my mind that one could re-implemented tty menus in Lisp using child frames.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 31 Jan 2025 03:29:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 30 22:29:57 2025 Received: from localhost ([127.0.0.1]:48778 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdhjB-00085F-1d for submit <at> debbugs.gnu.org; Thu, 30 Jan 2025 22:29:57 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]:53599) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tdhj7-000850-Do for 75056 <at> debbugs.gnu.org; Thu, 30 Jan 2025 22:29:54 -0500 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-4361f796586so16633965e9.3 for <75056 <at> debbugs.gnu.org>; Thu, 30 Jan 2025 19:29:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738294186; x=1738898986; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GOVZu42/re+XXRGeObBAwE0nQC4hX5SVZHKNzdkjGPQ=; b=W2XgtDPHr49VXNqhlyVbq+jfEwOMDB6kgIdf2VVCzmCBSPq+TH6lcbxSsuzRDSOLub Zmiy7Uml54b+2RgkhD87Iyb6ipJGMe5o+YSUst3tzGZULn6ttLINeLUnC/8O/YfHTcOA 9P3XB12dANqlmWph956Jq/9tXyvCkd5oJ2pcVad8ONpkYwtCMDbhGq+sgoC703lQ3xrh bNK0e6foSt0qizcJHWF+r2Eb/9ZQeFRBZ+euXE8icI0jcIegZpOeJ1/85bDWo3XnVTp2 hKy5GU6OYdgd8ty61W6RrPBvMnOkvb+BxgyCMnEFbFx1MJl/SjcsRAzgY6KPBeGdteTN 55Cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738294186; x=1738898986; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=GOVZu42/re+XXRGeObBAwE0nQC4hX5SVZHKNzdkjGPQ=; b=mK79BbmxDfOY/EXtYRAb2whxR5DatNpoT+SZ2vUvVxPs/ZahoXj98Pgwqogn38KIzo DGcqQuj7SjMqVB8JCmbxcnosg53yzZVBygLRla2MgGxbPVtJFi5CBHxyyRjekSunTW9u cZiIhWjjMq78UB3FdC63263M1jYTJp+MkR6aDv/OHRpeYcEHUshsrizE40sgcce8rdTL GoXVRlGiKhHXu1AhuhWvUN77sNSe8wkjqhKftun6zzI1iiyByYo7ItwbmJjhb734//Cw w7QBpmUX9sQQjFOdbPCb2dd6mFaq6oeNTLVFIx/UfQzfsnFZ7ETYEWB0/TV7l83OH2Bf ezrQ== X-Forwarded-Encrypted: i=1; AJvYcCVjtqfN1uHzFni8acIONZisMG1XfOnnJG+Q8cb5x84PULC3dVv4koYIAD/x1khSWSou5am/XA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxkRe5Kx2/UoyM8VKhvKFSrTHIoJDYh7JA/+VQTjryJx1Cmn7W+ Tcf0+7yJdKTYd1Ue2zYDN9766B4CNSyuyBjeNWxveQRznnjdT3HC4o8nUQ== X-Gm-Gg: ASbGncsjo+yaEcEfhqnFOKGQd8A6VrVqnek2MVf3mllciAHv2xHX5Qva7pyD/J1Dwji 9C5C4jVd5synYeoDrsuSBjjSUcqEkiptoSlKKNB1+awYN4aBr2ilVeqCj6MhDfI6nQb0f/1Vpz3 ZBIv2jF170oTL0GwlHv6S/W4ETIQQoBJylFN8fa9xETCMqGs5Jyyj9h75y92T2C9p5n0QIZRmWB LeiXsCsI0tSxRrmcPx9z3e0DPrMq8ofKhwwHrTCXHvdIKIZ+ex/zNDv4FwUfzub/5FTfQcNNMxI 6HdW/cj/oZIt03kx4yjhMNSB+nYW5ch2aO8HG5v1aNUaJ0IZBsVpUB3Ia8gup7d9lowmtnhob6r mb9nG+fa9CHEGzvYDywug4i5S X-Google-Smtp-Source: AGHT+IGMhz54z+ON+mr8DQ2KelOce/6Pf6R4/O6ImWtoXQuxKApeaE1nvixafdLtBz9irNtDQvKkMw== X-Received: by 2002:a05:600c:3488:b0:434:f5c0:329f with SMTP id 5b1f17b1804b1-438dc3cb2a8mr104210805e9.14.1738294186043; Thu, 30 Jan 2025 19:29:46 -0800 (PST) Received: from pro2 (p200300e0b70975002d7f5749bbacbd35.dip0.t-ipconnect.de. [2003:e0:b709:7500:2d7f:5749:bbac:bd35]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438dcc2e239sm76214885e9.18.2025.01.30.19.29.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jan 2025 19:29:44 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> (martin rudalics's message of "Thu, 30 Jan 2025 19:00:01 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> Date: Fri, 31 Jan 2025 04:29:43 +0100 Message-ID: <m28qqrlkyg.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: > I attach my latest achievements both in the menu bar and mouse drag > child frame departments. Menu bars now accept navigation with the > keyboard which was pretty non-trivial to do. Mouse dragging works with > header and mode lines - the attached tty-child-frames.el should provide > the necessary ingredients via C-l and M-l. Congratulations, impressive! And quite funny to see something like that on a terminal =F0=9F=98=82. If you are looking for ideas: Could you make sub-menus display and behave more like on a GUI? For example, when I choose Tools -> Spell from the menu bar, the Spell menu replaces the Tools menu on the screen. On a GUI it would display on top of the parent and one could navigate back to the parent with the mouse. Similarly for context menus.=20 Also the first line of the menu "Spell >" looks weird. And keyboard navigation back from a sub-menu to its parent would be nice. Unbelievable =F0=9F=98=82 Nice! Also, moving child frames is pretty nice too!
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 30 Jan 2025 20:51:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 30 15:51:30 2025 Received: from localhost ([127.0.0.1]:48137 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdbVZ-00049D-Oh for submit <at> debbugs.gnu.org; Thu, 30 Jan 2025 15:51:30 -0500 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:50681) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tdbVW-00048y-TH for 75056 <at> debbugs.gnu.org; Thu, 30 Jan 2025 15:51:27 -0500 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-436a39e4891so9116565e9.1 for <75056 <at> debbugs.gnu.org>; Thu, 30 Jan 2025 12:51:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738270280; x=1738875080; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=oBwyAJX/hb7B5Qof28FPKqUGAZZqG+Z19CgtlNY/hHU=; b=E+1X15X5Ndgbwk7QCls6hMaGgxbsl8NZwT7G6lKxvfUIb8Ax68lmF4IAgQgYqVRFqJ laFC2PdH+0YZtKtBMmE4nFg9MM3B1phXt6S1IfzGBEZ1YYOqEYOctZFivD3COHpY0aFf CmqD9cSiXjdPYtdRZDHdz3MnJldhuQbiSjZBb4SR74ouGYKOhr/I+KvqRNVNVX2LU951 bs/DeNUEn7xBFlte1s50LcnwQgJn9o1obzHOSZbHmVSkNO3XHPbX4S1/U+qbS2ENQ7QU CSg4CRH2vantAJaMryc4tTRCl+UjKlphvwdctj0cbqoLN5QJhcpF7otCLJDW40J2igUK mQGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738270280; x=1738875080; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=oBwyAJX/hb7B5Qof28FPKqUGAZZqG+Z19CgtlNY/hHU=; b=IBKPVXhQRmJintjijr6QaS8naH7vCNspsVR4D2Tul4Olnge9v3++5/V7J/VIy0zxgy Aye27m60olPeOnFAVlcwMiOWKgHknyzRHVDtpl6q5lpqS2ovPoD3BFfU2WUHDu/Ghihd 6ae2lddhU4WO1UzxJbkO1/uQeA6zaZj4OjPhqLNGD8CWp7HWxmfq0laqXacbVlWiSaop xk+lPGw/8t8WyVYQR9VNQscYuUCFg9t13bdCCSpIvBjaX+nXKOzAC8PGVDPxZGQia+NN kaPn8mLh/LmYN60XKdv4n+h1Y4O2Tcb/lGKyeAOsYFOToV/02elGXTIntjgJWeXacGbx 53IA== X-Forwarded-Encrypted: i=1; AJvYcCXb6ZxxmEIbvkbOe8LHJC/xc36vNWzeqLPOJb8ZC6He/RzGTYm2dCIsYgyPgWEe1uVY9x22NA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzewErddZtJwqHUWi6nFqLoeA2fSZ5t0HiHFO9dzQdXTa+FoB7a erACTqHOuZNrB4gN4h9XcFdqAV4j+ifP9nfUdgUlJpciaRa/skoQChabQg== X-Gm-Gg: ASbGncu5tuLanf5so7PEa0o2T6PdrmYklRQqyofFBjSHx3gwXJu24T2cYsewzaLPWni mraAb4Clpka3wD0DFc0MAWGm6w+d8ndnJ50GEnHWWm1i/wzL0tFL7Mpzl3h0+npMvFkYyrUbVIo pzL2PCqBCC2dhKdB1+UoLQ5vRnAhnF32l62GLsP/stnVUyrUvGyx7EnvCLHynU+TK05ZELlZ0h6 Rlj9zW0bi3e6ahum8m55dplSrC0AjWq7IpE8yuNn7UrJcl7xtHON6e2PO2FEw3jJZ8Xc7pJjgIj 64lKBYB2SyHExdTG+yC1c+BTU/ghQMvgOJ2BrTr63FC24c+CcNkCWyY29PtEPgZ8f844L6mkYJa P+DVHbbkGT1/JQe6IxrUChxwI X-Google-Smtp-Source: AGHT+IGF+/bzo5gdGLL0DoHLOVSbOZeooZHRvJIDUZGeUdkA4buxLvMl0nYxSizOPaBXwS4hmS/nTQ== X-Received: by 2002:a05:6000:1563:b0:385:ee40:2d75 with SMTP id ffacd0b85a97d-38c51960d9amr7412880f8f.20.1738270279813; Thu, 30 Jan 2025 12:51:19 -0800 (PST) Received: from pro2 (p200300e0b720a900dc01849cb197321a.dip0.t-ipconnect.de. [2003:e0:b720:a900:dc01:849c:b197:321a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c5c1cf571sm2883277f8f.82.2025.01.30.12.51.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jan 2025 12:51:19 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> (martin rudalics's message of "Thu, 30 Jan 2025 19:00:01 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> Date: Thu, 30 Jan 2025 21:51:17 +0100 Message-ID: <m2cyg4kou2.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain martin rudalics <rudalics@HIDDEN> writes: > I attach my latest achievements both in the menu bar and mouse drag > child frame departments. Please find a patch attached that makes it build without window-system, which also shows that internal borders are new in the tty world. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Make-it-compile-without-window-system.patch From 3300c540eb4d94701af9f7dedb1b3bf7f9100553 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerd=20M=C3=B6llmann?= <gerd@HIDDEN> Date: Thu, 30 Jan 2025 21:45:03 +0100 Subject: [PATCH] Make it compile without window system --- src/frame.c | 4 ++-- src/frame.h | 29 +++++++++++++++-------------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/frame.c b/src/frame.c index 23cf096ed30..022936c5699 100644 --- a/src/frame.c +++ b/src/frame.c @@ -2859,7 +2859,7 @@ DEFUN ("delete-frame", Fdelete_frame, Sdelete_frame, 0, 2, "", return delete_frame (frame, !NILP (force) ? Qt : Qnil); } -#ifdef HAVE_WINDOW_SYSTEM + /** * frame_internal_border_part: * @@ -2951,7 +2951,7 @@ frame_internal_border_part (struct frame *f, int x, int y) return part; } -#endif + /* Return mouse position in character cell units. */ diff --git a/src/frame.h b/src/frame.h index 90524e5eb2b..e2f0a2dd754 100644 --- a/src/frame.h +++ b/src/frame.h @@ -31,6 +31,19 @@ #define EMACS_FRAME_H vertical_scroll_bar_right }; +enum internal_border_part + { + INTERNAL_BORDER_NONE, + INTERNAL_BORDER_LEFT_EDGE, + INTERNAL_BORDER_TOP_LEFT_CORNER, + INTERNAL_BORDER_TOP_EDGE, + INTERNAL_BORDER_TOP_RIGHT_CORNER, + INTERNAL_BORDER_RIGHT_EDGE, + INTERNAL_BORDER_BOTTOM_RIGHT_CORNER, + INTERNAL_BORDER_BOTTOM_EDGE, + INTERNAL_BORDER_BOTTOM_LEFT_CORNER, + }; + #ifdef HAVE_WINDOW_SYSTEM enum fullscreen_type @@ -53,19 +66,6 @@ #define EMACS_FRAME_H z_group_above_suspended, }; -enum internal_border_part - { - INTERNAL_BORDER_NONE, - INTERNAL_BORDER_LEFT_EDGE, - INTERNAL_BORDER_TOP_LEFT_CORNER, - INTERNAL_BORDER_TOP_EDGE, - INTERNAL_BORDER_TOP_RIGHT_CORNER, - INTERNAL_BORDER_RIGHT_EDGE, - INTERNAL_BORDER_BOTTOM_RIGHT_CORNER, - INTERNAL_BORDER_BOTTOM_EDGE, - INTERNAL_BORDER_BOTTOM_LEFT_CORNER, - }; - #ifdef NS_IMPL_COCOA enum ns_appearance_type { @@ -1848,6 +1848,8 @@ #define FRAME_SMALLEST_FONT_HEIGHT(f) \ Frame Parameters ***********************************************************************/ +extern enum internal_border_part frame_internal_border_part (struct frame *f, int x, int y); + #ifdef HAVE_WINDOW_SYSTEM /* The class of this X application. */ @@ -1893,7 +1895,6 @@ #define EMACS_CLASS "Emacs" extern void set_frame_menubar (struct frame *f, bool deep_p); extern void frame_set_mouse_pixel_position (struct frame *f, int pix_x, int pix_y); extern void free_frame_menubar (struct frame *); -extern enum internal_border_part frame_internal_border_part (struct frame *f, int x, int y); #if defined HAVE_X_WINDOWS extern void x_wm_set_icon_position (struct frame *, int, int); -- 2.48.1 --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 30 Jan 2025 18:50:45 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 30 13:50:45 2025 Received: from localhost ([127.0.0.1]:47811 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdZci-0003mb-Qf for submit <at> debbugs.gnu.org; Thu, 30 Jan 2025 13:50:45 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:44367) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tdZce-0003mF-M6 for 75056 <at> debbugs.gnu.org; Thu, 30 Jan 2025 13:50:42 -0500 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-43618283d48so9243455e9.1 for <75056 <at> debbugs.gnu.org>; Thu, 30 Jan 2025 10:50:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738263034; x=1738867834; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=plflhmZn8jeHHkPp1Rcr0EoMsy/Elm4e+Lo0ctwjASk=; b=Ka1ceAijQXics9C7oTPLgjfyKi55VQjp0S9Yy4ZqEeiim7mHHK5KFWSxjj/X98BnLg WH2O7fZ/GlAv4ao3nZWrPB6dm+lE3YlflHeUIzpqeq1BaTBxrpYS5OqORVoRu3IsR1YG 3K5d7qEgYmViS0Esv/u9nH4jeIj/DjSU83tdHdFSQly3/Q8jXYei2JR0AkTqDf+l3uPI oV8lfCtbdn7LbtIf+JwMsZRdDYY7EtXCAtG2Pd3AOBXNeFbIp2nbPUXwt35jsyIwE2sv 6XAgDICTDpTxGabyh0MAxM0bQqECG3Ya36W5oQrsJT95vYMXicCEMoVUiTIY5DRE1KhH Q2uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738263034; x=1738867834; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=plflhmZn8jeHHkPp1Rcr0EoMsy/Elm4e+Lo0ctwjASk=; b=hAOg1IIgLMKgG7CCpMdsbOhzdawNYN1c12nUL4IlFoiG0Z17aCakuBeEXahyqprv83 G8y/GxmifLxbO17V4WY0iAPPMNkyC0GPorc/IXyX05aeDpQS7kXrpgfv9l6g6CslCybX wxY3D+VHYBrfZb5rH+PUa1ak2X/x1cC6+hv/ztDKU1XPvCUdLkGDdGPuNNA/vAqBaqBt UCZAqTq1wMK6fUxvtivrsJ95Y6BJGB4HUOVgpP/rzHkGcFERsrFhM3HzZMoRgGjLUyRj rr9FFwEyOWwQjweB8lfZMwDtCDla3OM2cr6eJh1step3QQWjL8BYzMj02FhG+SqafIxK MgSA== X-Forwarded-Encrypted: i=1; AJvYcCU00CEdEgSSQVkrXPK8hKfhNhjoDP4G/fojP935kyAvky2HNWwqRH2O9qFHHKFxvRMg+38d9w==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxedZM32Ky5AvX8+MIha0HksoqE+5cM3AI2KMwEErdBZ7FMYiCU /YrW5tRvkX0gUao3B3YcGVKbJAp88r7/Gf2atY18iA8hxqcZeGEhYa5B0WGZ X-Gm-Gg: ASbGncv8sksgzYSk0v+qvuYEjpvv1jtX1ZkBzDAy6KYL6WYz8fIahwaMt89mANKbA9d d0XDdd3zVKIbAK34nD3/IR1fX9hGinhIQw4NC+uixplOkFCEVZPxOZ2KDJxDAoYnU1iqueOk3Pb dqWm2NUEVBtsbIItYjWLgiTzxD9Sr9JSaa3BcDk8URG0owE98tnug4wOHGT6zm7r4/pTcTpkE3v PbLhfTEmzAvtNkOQgsN5j7Wm4+deSRTHP8fxu9q3vpuEKob2fCavHOW/zP9sql1Y8d4EotBMr+T sX1C/iVqQNbRzeJCg5EgTWkhf+P4MjBXfdBm614JcQRmvxr51S9UWjh88GioBDO0rbgR2+7PMqG 6ENbZZTbUuwCQFoian4jAVhG7 X-Google-Smtp-Source: AGHT+IFqK2PMUK6l0cqyiNXED9rA/5+2nrDPLLR6YPIc9ysxE85o9eolGIUyZKD2bXYWsVVAjVj0Ag== X-Received: by 2002:a05:600c:1f18:b0:436:1b08:4c78 with SMTP id 5b1f17b1804b1-438dc43093cmr81980365e9.31.1738263033498; Thu, 30 Jan 2025 10:50:33 -0800 (PST) Received: from pro2 (p200300e0b720a900dc01849cb197321a.dip0.t-ipconnect.de. [2003:e0:b720:a900:dc01:849c:b197:321a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438dcc26b15sm67454655e9.11.2025.01.30.10.50.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jan 2025 10:50:32 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> (martin rudalics's message of "Thu, 30 Jan 2025 19:00:01 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> Date: Thu, 30 Jan 2025 19:50:31 +0100 Message-ID: <m2jzackufc.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >>>>> Also when I want to move a child frame to the left of its parent via >>>>> >>>>> (modify-frame-parameters nil '((left . 0))) >>>>> >>>>> the left border disappears. Is that intended? >>>> >>>> If I understand that correctly, then probably yes. The borders are dra= wn >>>> around the frame, so the left border is at left - 1, the right at left= + >>>> width + 1, and so on. >>> >>> I see. >>> >>>> Whatever is outside of the terminal is clipped. > > Troublesome. Please revise that. When I want to resize a child frame > with the mouse, I have to drag its internal border. But as it stands, > the internal border is part of the underlying or root frame and the > whole make_lispy_position mechanism is broken on ttys. You drag a child frame with the mouse, what the heck? :-) There is little chance that I can change how the borders are drawn, I'm afraid. I started with trying to give tty frames a border_width, and failed spectacularly. It was so bad that I git reset --hard in a rage, which is a really rare event. >> _Much_ nicer than the default IMO. I still wished Emacs would do that by >> default, but here were objections. > > Looks good. But _where_ on earth (that is, in the code) do you that and > how is it related to the width of the internal border? See copy_child_glyphs. dispnew.c: 3729 /* Draw borders around the child frame. */ 3730 if (!FRAME_UNDECORATED (child)) 3731 { 3732 /* Horizontal line above. */ 3733 if (r.y > 0) 3734 produce_box_line (root, child, r.x, r.y - 1, r.w, true); 3735=20 3736 for (int y =3D r.y; y < r.y + r.h; ++y) 3737 { 3738 struct glyph_row *root_row =3D prepare_desired_root_row (ro= ot, y); 3739 if (root_row) 3740 produce_box_sides (BOX_VERTICAL, BOX_VERTICAL, root_row, = r.x, r.w, 3741 root, child); 3742 } 3743=20 3744 /* Horizontal line below. */ 3745 if (r.y + r.h < root->desired_matrix->matrix_h) 3746 produce_box_line (root, child, r.x, r.y + r.h, r.w, false); 3747 } The code is not related to an internal border, and I'm relatively sure tty frames don't have one right now. At least as far as redisplay is concerned, don't know about the frame parameters/values. It's like for border_width. > I attach my latest achievements both in the menu bar and mouse drag > child frame departments. Menu bars now accept navigation with the > keyboard which was pretty non-trivial to do. Mouse dragging works with > header and mode lines - the attached tty-child-frames.el should > provide the necessary ingredients via C-l and M-l. =F0=9F=91=8D > One bug I noted now is the following. Do C-l and M-l and drag the > yellow and orange frames somehow as in before.png with the cursor in the > yellow frame right before the left edge of the orange frame. Do C-f - > the cursor appears on top of the left edge of the orange frame as in > middle.png. Another C-f moves it into the orange frame as in > after.png. Thanks.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 30 Jan 2025 18:00:14 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 30 13:00:14 2025 Received: from localhost ([127.0.0.1]:47679 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdYpq-0006tB-J7 for submit <at> debbugs.gnu.org; Thu, 30 Jan 2025 13:00:14 -0500 Received: from mout.gmx.net ([212.227.15.15]:34201) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tdYpn-0006nB-HY for 75056 <at> debbugs.gnu.org; Thu, 30 Jan 2025 13:00:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738260004; x=1738864804; i=rudalics@HIDDEN; bh=6JPlwbHVZ6Jk3ulxNZjGb9hQH6o8SKz8/PQHJcMvGZs=; h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version: Subject:To:Cc:References:From:In-Reply-To:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=YqOpGYPZi+8y+d4Sj5AX1ZYwzYjrJy9ZawaHlmEY6o/gwc+oPPD5SnQ8Et9cZIzN 5VM5kO+cHBOZ9actNhTa8RSv55gQnWfYkrqQo3huL7PLJBirGto3LBU8I9vAARG8x ZQkNkmzSqSscup6fCU5lvHL7z3zZOfxY0itVrOh93RQdGqcDxD4UAc7zusRaTGhuj 3Dzx+gXpnz0R+GZsGmkbLTW8ng1/MofaW/HKhuOGT6ejns4LZdhJe9cpxViyMaBdt ZfxmREOhaiLoeDICVzRWK8ICjDXf+Hv63J31LzsXdCqjk75PxmMisrP7gRqk9Y91b 1wXPnLnLYSwFWdLHQA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.131]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MJE6L-1tsC6b2Yv5-00Seg7; Thu, 30 Jan 2025 19:00:03 +0100 Content-Type: multipart/mixed; boundary="------------pcXrWObKEpuSLXjwgerBofRu" Message-ID: <ac43577a-2401-4af9-872d-7e32a67a0d76@HIDDEN> Date: Thu, 30 Jan 2025 19:00:01 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> <m2ed0k8zkw.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2ed0k8zkw.fsf@HIDDEN> X-Provags-ID: V03:K1:5Tvluu+nXbzsdtyR52V8c+UkpvJpQ/mIULQy/71rJ48jpWkd6Hs II5Rasgh9mRORrOwC3N61AjsR1FOkgpW28VB0iAkwrBrnk3I67cba/451148mXd2iNwnPOy f9szr8VW4T628/SJDoeu5Ef2VssUUMX8qcHJXumT7y5KtmUgMi2c64ia6iUlGqRaX7JBfAp 8sCJCOoq6zog/Po6M4D/A== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:qjjDpr7NV+0=;yyO3PNQbJUr4eAcO+rYG+dJNfF/ tm8NT/BFfVGwL7Z+IsTYuVlKr121IDDheLkMgs9YXuQbKC11IcC4xvL2TFlwdE0ojQl0rE1BR R2qmZ3Zm73aMPRefFEP0V1XFVwdWhBT8iLlho28TgqK6SVF9ngRhOXvhC2QBKtLSH9nD4EpvH KKY/dBFfKSOyUmgqUJw01pMGosydhgDuk8t+k1eVE4J/5Xv1qwQBXFYT/XFL6P1Gdbc6Oq1s9 5A5T5jgcoPf/MvtQVo2SqlqhfC3r2OfCrbc1mpVMjKneVs4BIHmxKnhNs4zUK9Cs318NjmkVe ArqVGQ3SZNGmLFso6WuNolXX5qGLrGEx9IxXKnCoyiwaQ7ZXJ+c1A1tExQPDmlap8Ktyv2StD tCv8QO2OB9oCfffZ3+0HhLk9B8yQSqUHkvR+G/C6jsuv/C3Fhe2c0aa+duLDEbLVKSjHXxgP6 MMiqb/VoM2OI29J5NOoRWpLWvmA8/MvKnvDp9q0ut7YtLNxiwosee6MxfhsS1ZVUMHpoGEkxR VSAoEm1Xqzz06caaqBVBqeqyAOkzw/ri2y88wJP03MejdNzynEr/FbNui0GOl35YFxwru0g+O qDHJMfLMuYUvafQOhLrXVWlZY2LhnkjR3IMDGfmDOZG0jWkiuxmIh0JFFeAA4mW7CrnEsLGxQ ZJ9n3dYw5XoC88lNa5RJClshSxXWFyr4136IY7Woge7ET6r7hAec9P74KvigncEJBe00E5d/b 9i7f6N0GueLYg2Ddzd29qA8U8KD7/X+dk3Eff58Rh9wP3urARJDBGdHZ1e1//CKkLLtFtEtXs 79WWd7fjw1hm1JHAcJXorzGWXmPDli9JCOV4/qOkyEuBJ8JvEp107ddqxV0FvaClllvB4le0q sWBAIaMOHtje/YWwHg/YhdXUrSWwLik5qMpMXF5/RG/6+JXKFC9XmtdnKll4ZjT5NlEDEUzmF kxB2cIEuyQl8Lb4oeJU5C4RP+5P0KO425oFUQvuIlxWf/GLgU8kW9WQpVTL/Bh+YYOKud39aZ NZtetl7vrq3SouzyboGCFD5yeUEqU8DlCq5TXbOULjRHA2+GsxAm2Q1j66dRh5nSOPhIkKvOK KaHMrwHZncme8YsEPLjxLONDanTGxYcaklhbkydnELkzG5WPjCFAV87PaoZfdSJ0DHJiryUpn 2m4S41EGYKRgH6iIO5v5VIRee7TCq+BR8+TgBRTq1jGQ6lW11XDrOsz8iroztbTeVF0yYhOJz 3lmTY8YyKISVl9oS7T+2kRzmDBPEkJ3hePTqOXU9YVHl+P+47NcMlkOL4fKCD06B10c8ierSo 6h8pX/39pQ6Cni1L3EDwvCluowKq2vqeTkK1a2moZS4MMo= X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> This is a multi-part message in MIME format. --------------pcXrWObKEpuSLXjwgerBofRu Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit >>>> Also when I want to move a child frame to the left of its parent via >>>> >>>> (modify-frame-parameters nil '((left . 0))) >>>> >>>> the left border disappears. Is that intended? >>> >>> If I understand that correctly, then probably yes. The borders are drawn >>> around the frame, so the left border is at left - 1, the right at left + >>> width + 1, and so on. >> >> I see. >> >>> Whatever is outside of the terminal is clipped. Troublesome. Please revise that. When I want to resize a child frame with the mouse, I have to drag its internal border. But as it stands, the internal border is part of the underlying or root frame and the whole make_lispy_position mechanism is broken on ttys. > _Much_ nicer than the default IMO. I still wished Emacs would do that by > default, but here were objections. Looks good. But _where_ on earth (that is, in the code) do you that and how is it related to the width of the internal border? I attach my latest achievements both in the menu bar and mouse drag child frame departments. Menu bars now accept navigation with the keyboard which was pretty non-trivial to do. Mouse dragging works with header and mode lines - the attached tty-child-frames.el should provide the necessary ingredients via C-l and M-l. One bug I noted now is the following. Do C-l and M-l and drag the yellow and orange frames somehow as in before.png with the cursor in the yellow frame right before the left edge of the orange frame. Do C-f - the cursor appears on top of the left edge of the orange frame as in middle.png. Another C-f moves it into the orange frame as in after.png. martin --------------pcXrWObKEpuSLXjwgerBofRu Content-Type: text/x-patch; charset=UTF-8; name="tty-menubar-and-drag.diff" Content-Disposition: attachment; filename="tty-menubar-and-drag.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvbWVudS1iYXIuZWwgYi9saXNwL21lbnUtYmFyLmVsCmluZGV4 IDI4YWI2MGYxZDJkLi5mMWY2N2NjMGJmYyAxMDA2NDQKLS0tIGEvbGlzcC9tZW51LWJhci5l bAorKysgYi9saXNwL21lbnUtYmFyLmVsCkBAIC0yNjkxLDUzICsyNjkxLDc0IEBAIHBvcHVw LW1lbnUKIAkJCSAoZmlsdGVyICh3aGVuIChzeW1ib2xwIG1hcCkKIAkJCQkgICAocGxpc3Qt Z2V0IChnZXQgbWFwICdtZW51LXByb3ApIDpmaWx0ZXIpKSkpCiAJCSAgICAoaWYgZmlsdGVy IChmdW5jYWxsIGZpbHRlciAoc3ltYm9sLWZ1bmN0aW9uIG1hcCkpIG1hcCkpKSkpCi0JIChm cmFtZSAoc2VsZWN0ZWQtZnJhbWUpKQorCSAoc2VsZWN0ZWQtZnJhbWUgKHNlbGVjdGVkLWZy YW1lKSkKKwkgKGZyYW1lIChpZiAoYW5kIChlcSAoZnJhbWVwIHNlbGVjdGVkLWZyYW1lKSB0 KSAoZnJhbWUtcGFyZW50KQorCQkJIGZyb20tbWVudS1iYXIKKwkJCSAoemVyb3AgKG9yIChm cmFtZS1wYXJhbWV0ZXIgbmlsICdtZW51LWJhci1saW5lcykgMCkpKQorCQkgICAgOzsgSWYg dGhlIHNlbGVjdGVkIGZyYW1lIGlzIGEgdHR5IGNoaWxkIGZyYW1lCisJCSAgICA7OyB3aXRo b3V0IGl0cyBvd24gbWVudSBiYXIgYW5kIHdlIGFyZSBjYWxsZWQgZnJvbQorCQkgICAgOzsg dGhlIG1lbnUgYmFyLCB0aGUgbWVudSBiYXIgbXVzdCBiZSBvbiB0aGUgcm9vdAorCQkgICAg OzsgZnJhbWUgb2YgdGhlIHNlbGVjdGVkIGZyYW1lLgorCQkgICAgKGZyYW1lLXJvb3QtZnJh bWUpCisJCSAgKHNlbGVjdGVkLWZyYW1lKSkpCiAJIGV2ZW50IGNtZCkKLSAgICAoaWYgZnJv bS1tZW51LWJhcgotCShsZXQqICgoeHkgKHBvc24teC15IHBvc2l0aW9uKSkKLQkgICAgICAg KG1lbnUtc3ltYm9sIChtZW51LWJhci1tZW51LWF0LXgteSAoY2FyIHh5KSAoY2RyIHh5KSkp KQotCSAgKHNldHEgcG9zaXRpb24gKGxpc3QgbWVudS1zeW1ib2wgKGxpc3QgZnJhbWUgJyht ZW51LWJhcikKLQkJCQkJCSB4eSAwKSkpKQotICAgICAgKHNldHEgcG9zaXRpb24gKHBvcHVw LW1lbnUtbm9ybWFsaXplLXBvc2l0aW9uIHBvc2l0aW9uKSkpCi0gICAgOzsgVGhlIGxvb3Bp bmcgYmVoYXZpb3Igd2FzIHRha2VuIGZyb20gbG1lbnUncyBwb3B1cC1tZW51LXBvcHVwCi0g ICAgKHdoaWxlIChhbmQgbWFwIChzZXRxIGV2ZW50Ci0JCQkgIDs7IG1hcCBjb3VsZCBiZSBh IHByZWZpeCBrZXksIGluIHdoaWNoIGNhc2UKLQkJCSAgOzsgd2UgbmVlZCB0byBnZXQgaXRz IGZ1bmN0aW9uIGNlbGwKLQkJCSAgOzsgZGVmaW5pdGlvbi4KLQkJCSAgKHgtcG9wdXAtbWVu dSBwb3NpdGlvbiAoaW5kaXJlY3QtZnVuY3Rpb24gbWFwKSkpKQotICAgICAgOzsgU3RyYW5n ZWx5IHgtcG9wdXAtbWVudSByZXR1cm5zIGEgbGlzdC4KLSAgICAgIDs7IG1vdXNlLW1ham9y LW1vZGUtbWVudSB3YXMgdXNpbmcgYSB3ZWlyZDoKLSAgICAgIDs7IChrZXktYmluZGluZyAo YXBwbHkgJ3ZlY3RvciAoYXBwZW5kICcobWVudS1iYXIpIG1lbnUtcHJlZml4IGV2ZW50cykp KQotICAgICAgKHNldHEgY21kCi0JICAgIChjb25kCi0JICAgICAoKGFuZCBmcm9tLW1lbnUt YmFyCi0JCSAgIChjb25zcCBldmVudCkKLQkJICAgKG51bWJlcnAgKGNhciBldmVudCkpCi0J CSAgIChudW1iZXJwIChjZHIgZXZlbnQpKSkKLQkgICAgICAobGV0ICgoeCAoY2FyIGV2ZW50 KSkKLQkJICAgICh5IChjZHIgZXZlbnQpKQotCQkgICAgbWVudS1zeW1ib2wpCi0JCShzZXRx IG1lbnUtc3ltYm9sIChtZW51LWJhci1tZW51LWF0LXgteSB4IHkpKQotCQkoc2V0cSBwb3Np dGlvbiAobGlzdCBtZW51LXN5bWJvbCAobGlzdCBmcmFtZSAnKG1lbnUtYmFyKQotCQkJCQkJ IGV2ZW50IDApKSkKLQkJKHNldHEgbWFwCi0JCSAgICAgIChrZXktYmluZGluZyAodmVjdG9y ICdtZW51LWJhciBtZW51LXN5bWJvbCkpKSkpCi0JICAgICAoKGFuZCAobm90IChrZXltYXBw IG1hcCkpIChsaXN0cCBtYXApKQotCSAgICAgIDs7IFdlIHdlcmUgZ2l2ZW4gYSBsaXN0IG9m IGtleW1hcHMuICBTZWFyY2ggdGhlbSBhbGwKLQkgICAgICA7OyBpbiBzZXF1ZW5jZSB1bnRp bCBhIGZpcnN0IGJpbmRpbmcgaXMgZm91bmQuCi0JICAgICAgKGxldCAoKG1vdXNlLWNsaWNr IChhcHBseSAndmVjdG9yIGV2ZW50KSkKLQkJICAgIGJpbmRpbmcpCi0JCSh3aGlsZSAoYW5k IG1hcCAobnVsbCBiaW5kaW5nKSkKLQkJICAoc2V0cSBiaW5kaW5nIChsb29rdXAta2V5LWln bm9yZS10b28tbG9uZyAoY2FyIG1hcCkgbW91c2UtY2xpY2spKQotCQkgIChzZXRxIG1hcCAo Y2RyIG1hcCkpKQotICAgICAgICAgICAgICAgIGJpbmRpbmcpKQotCSAgICAgKHQKLQkgICAg ICA7OyBXZSB3ZXJlIGdpdmVuIGEgc2luZ2xlIGtleW1hcC4KLQkgICAgICAobG9va3VwLWtl eSBtYXAgKGFwcGx5ICd2ZWN0b3IgZXZlbnQpKSkpKQotICAgICAgOzsgQ2xlYXIgb3V0IGVj aG9pbmcsIHdoaWNoIHBlcmhhcHMgc2hvd3MgYSBwcmVmaXggYXJnLgotICAgICAgKG1lc3Nh Z2UgIiIpCi0gICAgICA7OyBNYXliZSB0cnkgYWdhaW4gYnV0IHdpdGggdGhlIHN1Ym1hcC4K LSAgICAgIChzZXRxIG1hcCAoaWYgKGtleW1hcHAgY21kKSBjbWQpKSkKKyAgICAod2l0aC1z ZWxlY3RlZC1mcmFtZSBmcmFtZQorICAgICAgKGlmIGZyb20tbWVudS1iYXIKKwkgIChsZXQq ICgoeHkgKHBvc24teC15IHBvc2l0aW9uKSkKKwkJIChtZW51LXN5bWJvbCAobWVudS1iYXIt bWVudS1hdC14LXkgKGNhciB4eSkgKGNkciB4eSkpKSkKKwkgICAgKHNldHEgcG9zaXRpb24g KGxpc3QgbWVudS1zeW1ib2wgKGxpc3QgZnJhbWUgJyhtZW51LWJhcikKKwkJCQkJCSAgIHh5 IDApKSkpCisJKHNldHEgcG9zaXRpb24gKHBvcHVwLW1lbnUtbm9ybWFsaXplLXBvc2l0aW9u IHBvc2l0aW9uKSkpCisKKyAgICAgIDs7IFRoZSBsb29waW5nIGJlaGF2aW9yIHdhcyB0YWtl biBmcm9tIGxtZW51J3MgcG9wdXAtbWVudS1wb3B1cAorICAgICAgKHdoaWxlIChhbmQgbWFw IChzZXRxIGV2ZW50CisJCQkgICAgOzsgbWFwIGNvdWxkIGJlIGEgcHJlZml4IGtleSwgaW4g d2hpY2ggY2FzZQorCQkJICAgIDs7IHdlIG5lZWQgdG8gZ2V0IGl0cyBmdW5jdGlvbiBjZWxs CisJCQkgICAgOzsgZGVmaW5pdGlvbi4KKwkJCSAgICAoeC1wb3B1cC1tZW51IHBvc2l0aW9u IChpbmRpcmVjdC1mdW5jdGlvbiBtYXApKSkpCisJOzsgU3RyYW5nZWx5IHgtcG9wdXAtbWVu dSByZXR1cm5zIGEgbGlzdC4KKwk7OyBtb3VzZS1tYWpvci1tb2RlLW1lbnUgd2FzIHVzaW5n IGEgd2VpcmQ6CisJOzsgKGtleS1iaW5kaW5nIChhcHBseSAndmVjdG9yIChhcHBlbmQgJyht ZW51LWJhcikgbWVudS1wcmVmaXggZXZlbnRzKSkpCisJKHNldHEgY21kCisJICAgICAgKGNv bmQKKwkgICAgICAgKChhbmQgZnJvbS1tZW51LWJhcgorCQkgICAgIChjb25zcCBldmVudCkK KwkJICAgICAobnVtYmVycCAoY2FyIGV2ZW50KSkKKwkJICAgICAobnVtYmVycCAoY2RyIGV2 ZW50KSkpCisJCShsZXQgKCh4IChjYXIgZXZlbnQpKQorCQkgICAgICAoeSAoY2RyIGV2ZW50 KSkKKwkJICAgICAgbWVudS1zeW1ib2wpCisJCSAgKHNldHEgbWVudS1zeW1ib2wgKG1lbnUt YmFyLW1lbnUtYXQteC15IHggeSkpCisJCSAgKHNldHEgcG9zaXRpb24gKGxpc3QgbWVudS1z eW1ib2wgKGxpc3QgZnJhbWUgJyhtZW51LWJhcikKKwkJCQkJCQkgZXZlbnQgMCkpKQorCQkg IChpZiAobm90IChlcSBmcmFtZSBzZWxlY3RlZC1mcmFtZSkpCisJCSAgICAgIDs7IElmIHdl IGFyZSB1c2luZyB0aGUgbWVudSBiYXIgZnJvbSB0aGUgcm9vdAorCQkgICAgICA7OyBmcmFt ZSwgbG9vayB1cCB0aGUga2V5IGJpbmRpbmcgaW4gdGhlIGtleW1hcHMKKwkJICAgICAgOzsg b2YgdGhlIGluaXRpYWxseSBzZWxlY3RlZCB3aW5kb3cncyBidWZmZXIgdG8KKwkJICAgICAg OzsgbWFrZSBzdXJlIHRoYXQgbmF2aWdhdGluZyB0aGUgbWVudSBiYXIgd2l0aCB0aGUKKwkJ ICAgICAgOzsga2V5Ym9hcmQgd29ya3MgYXMgaW50ZW5kZWQuCisJCSAgICAgIChzZXRxIG1h cAorCQkJICAgIChrZXktYmluZGluZyAodmVjdG9yICdtZW51LWJhciBtZW51LXN5bWJvbCkg bmlsIG5pbAorCQkJCQkgKGZyYW1lLXNlbGVjdGVkLXdpbmRvdyBzZWxlY3RlZC1mcmFtZSkp KQorCQkgICAgKHNldHEgbWFwCisJCQkgIChrZXktYmluZGluZyAodmVjdG9yICdtZW51LWJh ciBtZW51LXN5bWJvbCkpKSkpKQorCSAgICAgICAoKGFuZCAobm90IChrZXltYXBwIG1hcCkp IChsaXN0cCBtYXApKQorCQk7OyBXZSB3ZXJlIGdpdmVuIGEgbGlzdCBvZiBrZXltYXBzLiAg U2VhcmNoIHRoZW0gYWxsCisJCTs7IGluIHNlcXVlbmNlIHVudGlsIGEgZmlyc3QgYmluZGlu ZyBpcyBmb3VuZC4KKwkJKGxldCAoKG1vdXNlLWNsaWNrIChhcHBseSAndmVjdG9yIGV2ZW50 KSkKKwkJICAgICAgYmluZGluZykKKwkJICAod2hpbGUgKGFuZCBtYXAgKG51bGwgYmluZGlu ZykpCisJCSAgICAoc2V0cSBiaW5kaW5nIChsb29rdXAta2V5LWlnbm9yZS10b28tbG9uZyAo Y2FyIG1hcCkgbW91c2UtY2xpY2spKQorCQkgICAgKHNldHEgbWFwIChjZHIgbWFwKSkpCisJ CSAgYmluZGluZykpCisJICAgICAgICh0CisJCTs7IFdlIHdlcmUgZ2l2ZW4gYSBzaW5nbGUg a2V5bWFwLgorCQkobG9va3VwLWtleSBtYXAgKGFwcGx5ICd2ZWN0b3IgZXZlbnQpKSkpKQor CTs7IENsZWFyIG91dCBlY2hvaW5nLCB3aGljaCBwZXJoYXBzIHNob3dzIGEgcHJlZml4IGFy Zy4KKwkobWVzc2FnZSAiIikKKwk7OyBNYXliZSB0cnkgYWdhaW4gYnV0IHdpdGggdGhlIHN1 Ym1hcC4KKwkoc2V0cSBtYXAgKGlmIChrZXltYXBwIGNtZCkgY21kKSkpKQorCiAgICAgOzsg SWYgdGhlIHVzZXIgZGlkIG5vdCBjYW5jZWwgYnkgcmVmdXNpbmcgdG8gc2VsZWN0LAogICAg IDs7IGFuZCBpZiB0aGUgcmVzdWx0IGlzIGEgY29tbWFuZCwgcnVuIGl0LgogICAgICh3aGVu IChhbmQgKG51bGwgbWFwKSAoY29tbWFuZHAgY21kKSkKQEAgLTI4MDgsMTQgKzI4MjksMjcg QEAgbWVudS1iYXItb3BlbgogSWYgRlJBTUUgaXMgbmlsIG9yIG5vdCBnaXZlbiwgdXNlIHRo ZSBzZWxlY3RlZCBmcmFtZS4iCiAgIChpbnRlcmFjdGl2ZQogICAgKGxpc3QgbmlsIChwcmVm aXgtbnVtZXJpYy12YWx1ZSBjdXJyZW50LXByZWZpeC1hcmcpKSkKLSAgKGxldCAoKHR5cGUg KGZyYW1lcCAob3IgZnJhbWUgKHNlbGVjdGVkLWZyYW1lKSkpKSkKKyAgKGxldCogKCh0eXBl IChmcmFtZXAgKG9yIGZyYW1lIChzZWxlY3RlZC1mcmFtZSkpKSkKKwkgcm9vdAorCSAoZnJh bWUgKGlmIChhbmQgKGVxIHR5cGUgdCkgKGZyYW1lLXBhcmVudCBmcmFtZSkKKwkJCSAobnVs bCB0dHktbWVudS1vcGVuLXVzZS10bW0pCisJCQkgKHplcm9wIChvciAoZnJhbWUtcGFyYW1l dGVyIGZyYW1lICdtZW51LWJhci1saW5lcykgMCkpCisJCQkgKHNldHEgcm9vdCAoZnJhbWUt cm9vdC1mcmFtZSkpCisJCQkgKG5vdCAoemVyb3AKKwkJCSAgICAgICAob3IgKGZyYW1lLXBh cmFtZXRlciByb290ICdtZW51LWJhci1saW5lcykgMCkpKSkKKwkJICAgIDs7IElmIEZSQU1F IGlzIGEgdHR5IGNoaWxkIGZyYW1lIHdpdGhvdXQgaXRzIG93bgorCQkgICAgOzsgbWVudSBi YXIsICd0dHktbWVudS1vcGVuLXVzZS10bW0nIGlzIGZhbHNlIGFuZAorCQkgICAgOzsgRlJB TUUncyByb290IGZyYW1lIGhhcyBhIG1lbnUgYmFyLCB1c2UgdGhhdCByb290CisJCSAgICA7 OyBmcmFtZSdzIG1lbnUgYmFyLgorCQkgICAgcm9vdAorCQkgIGZyYW1lKSkpCiAgICAgKGNv bmQKICAgICAgKChlcSB0eXBlICd4KSAoeC1tZW51LWJhci1vcGVuIGZyYW1lKSkKICAgICAg KChlcSB0eXBlICd3MzIpICh3MzItbWVudS1iYXItb3BlbiBmcmFtZSkpCiAgICAgICgoZXEg dHlwZSAnaGFpa3UpIChoYWlrdS1tZW51LWJhci1vcGVuIGZyYW1lKSkKICAgICAgKChlcSB0 eXBlICdwZ3RrKSAocGd0ay1tZW51LWJhci1vcGVuIGZyYW1lKSkKICAgICAgKChhbmQgKG51 bGwgdHR5LW1lbnUtb3Blbi11c2UtdG1tKQotCSAgIChub3QgKHplcm9wIChvciAoZnJhbWUt cGFyYW1ldGVyIG5pbCAnbWVudS1iYXItbGluZXMpIDApKSkpCisJICAgKG5vdCAoemVyb3Ag KG9yIChmcmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ21lbnUtYmFyLWxpbmVzKSAwKSkpKQogICAg ICAgOzsgTWFrZSBzdXJlIHRoZSBtZW51IGJhciBpcyB1cCB0byBkYXRlLiAgT25lIHNpdHVh dGlvbiB3aGVyZQogICAgICAgOzsgdGhpcyBpcyBpbXBvcnRhbnQgaXMgd2hlbiB0aGlzIGZ1 bmN0aW9uIGlzIGludm9rZWQgYnkgbmFtZQogICAgICAgOzsgdmlhIE0teCwgaW4gd2hpY2gg Y2FzZSB0aGUgbWVudSBiYXIgaW5jbHVkZXMgdGhlICJNaW5pYnVmIgpAQCAtMjgzMSw3ICsy ODY1LDcgQEAgbWVudS1iYXItb3BlbgogICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50 LWxvY2FsLW1hcCkgKHZlY3RvciAnbWVudS1iYXIgbWVudSkpCiAJCSAgICAgKGNkYXIgKG1p bm9yLW1vZGUta2V5LWJpbmRpbmcgKHZlY3RvciAnbWVudS1iYXIgbWVudSkpKQogICAgICAg ICAgICAgICAgICAgICAgKG1vdXNlLW1lbnUtYmFyLW1hcCkpCi0JCSAgICAocG9zbi1hdC14 LXkgeCAwIG5pbCB0KSBuaWwgdCkpKQorCQkgICAgKHBvc24tYXQteC15IHggMCBmcmFtZSB0 KSBuaWwgdCkpKQogICAgICAodCAod2l0aC1zZWxlY3RlZC1mcmFtZSAob3IgZnJhbWUgKHNl bGVjdGVkLWZyYW1lKSkKICAgICAgICAgICAodG1tLW1lbnViYXIpKSkpKSkKIApkaWZmIC0t Z2l0IGEvbGlzcC9tb3VzZS5lbCBiL2xpc3AvbW91c2UuZWwKaW5kZXggNmZlNjkxNjkzYjQu LmVhNjg5MDkxNDZlIDEwMDY0NAotLS0gYS9saXNwL21vdXNlLmVsCisrKyBiL2xpc3AvbW91 c2UuZWwKQEAgLTExMDYsNyArMTEwNiwxMCBAQCBtb3VzZS1kcmFnLWZyYW1lLXJlc2l6ZQog CSAoZHJhZy1ib3R0b20gKG1lbXEgcGFydCAnKGJvdHRvbS1yaWdodCBib3R0b20gYm90dG9t LWxlZnQpKSkKIAkgOzsgSW5pdGlhbCAiZmlyc3QiIG1vdXNlIHBvc2l0aW9uLiAgV2hpbGUg ZHJhZ2dpbmcgd2UgYmFzZSBhbGwKIAkgOzsgY2FsY3VsYXRpb25zIGFnYWluc3QgdGhhdCBw b3NpdGlvbi4KLQkgKGZpcnN0LXgteSAobW91c2UtYWJzb2x1dGUtcGl4ZWwtcG9zaXRpb24p KQorCSAodHR5ICh0dHktdHlwZSBmcmFtZSkpCisJIChmaXJzdC14LXkgKGlmIHR0eQorCQkJ KG1vdXNlLXBvc2l0aW9uLWluLXJvb3QtZnJhbWUpCisJCSAgICAgIChtb3VzZS1hYnNvbHV0 ZS1waXhlbC1wb3NpdGlvbikpKQogICAgICAgICAgKGZpcnN0LXggKGNhciBmaXJzdC14LXkp KQogICAgICAgICAgKGZpcnN0LXkgKGNkciBmaXJzdC14LXkpKQogICAgICAgICAgKGV4aXRm dW4gbmlsKQpAQCAtMTExNCw3ICsxMTE3LDkgQEAgbW91c2UtZHJhZy1mcmFtZS1yZXNpemUK ICAgICAgICAgICAobGFtYmRhIChldmVudCkKICAgICAgICAgICAgIChpbnRlcmFjdGl2ZSAi ZSIpCiAgICAgICAgICAgICAod2hlbiAoY29uc3AgZXZlbnQpCi0gICAgICAgICAgICAgIChs ZXQqICgobGFzdC14LXkgKG1vdXNlLWFic29sdXRlLXBpeGVsLXBvc2l0aW9uKSkKKyAgICAg ICAgICAgICAgKGxldCogKChsYXN0LXgteSAoaWYgdHR5CisJCQkJICAgKG1vdXNlLXBvc2l0 aW9uLWluLXJvb3QtZnJhbWUpCisJCQkJIChtb3VzZS1hYnNvbHV0ZS1waXhlbC1wb3NpdGlv bikpKQogCQkgICAgIChsYXN0LXggKGNhciBsYXN0LXgteSkpCiAJCSAgICAgKGxhc3QteSAo Y2RyIGxhc3QteC15KSkKIAkJICAgICAobGVmdCAoLSBsYXN0LXggZmlyc3QteCkpCkBAIC0x MjIzLDEwICsxMjI4LDEzIEBAIG1vdXNlLWRyYWctZnJhbWUtbW92ZQogICAgICAgICAgKHBh cmVudC1ib3R0b20gKGFuZCBwYXJlbnQtZWRnZXMgKG50aCAzIHBhcmVudC1lZGdlcykpKQog CSA7OyBJbml0aWFsICJmaXJzdCIgbW91c2UgcG9zaXRpb24uICBXaGlsZSBkcmFnZ2luZyB3 ZSBiYXNlIGFsbAogCSA7OyBjYWxjdWxhdGlvbnMgYWdhaW5zdCB0aGF0IHBvc2l0aW9uLgot CSAoZmlyc3QteC15IChtb3VzZS1hYnNvbHV0ZS1waXhlbC1wb3NpdGlvbikpCi0gICAgICAg ICAoZmlyc3QteCAoY2FyIGZpcnN0LXgteSkpCi0gICAgICAgICAoZmlyc3QteSAoY2RyIGZp cnN0LXgteSkpCi0gICAgICAgICA7OyBgc25hcC13aWR0aCcgKG1heWJlIGFsc28gYSB5ZXQg dG8gYmUgcHJvdmlkZWQgYHNuYXAtaGVpZ2h0JykKKwkgKHR0eSAodHR5LXR5cGUgZnJhbWUp KQorCSAoZmlyc3QteC15IChpZiB0dHkKKwkJCShtb3VzZS1wb3NpdGlvbi1pbi1yb290LWZy YW1lKQorCQkgICAgICAobW91c2UtYWJzb2x1dGUtcGl4ZWwtcG9zaXRpb24pKSkKKwkgKGZp cnN0LXggKGNhciBmaXJzdC14LXkpKQorCSAoZmlyc3QteSAoY2RyIGZpcnN0LXgteSkpCisJ IDs7IGBzbmFwLXdpZHRoJyAobWF5YmUgYWxzbyBhIHlldCB0byBiZSBwcm92aWRlZCBgc25h cC1oZWlnaHQnKQogICAgICAgICAgOzsgY291bGQgYmVjb21lIGZsb2F0cyB0byBoYW5kbGUg cHJvcG9ydGlvbmFsaXR5IHdydCBQQVJFTlQuCiAgICAgICAgICA7OyBXZSBkb24ndCBkbyBh bnkgY2hlY2tzIG9uIHRoaXMgcGFyYW1ldGVyIHNvIGZhci4KICAgICAgICAgIChzbmFwLXdp ZHRoIChmcmFtZS1wYXJhbWV0ZXIgZnJhbWUgJ3NuYXAtd2lkdGgpKQpAQCAtMTI0Miw3ICsx MjUwLDkgQEAgbW91c2UtZHJhZy1mcmFtZS1tb3ZlCiAgICAgICAgICAgKGxhbWJkYSAoZXZl bnQpCiAgICAgICAgICAgICAoaW50ZXJhY3RpdmUgImUiKQogICAgICAgICAgICAgKHdoZW4g KGNvbnNwIGV2ZW50KQotICAgICAgICAgICAgICAobGV0KiAoKGxhc3QteC15IChtb3VzZS1h YnNvbHV0ZS1waXhlbC1wb3NpdGlvbikpCisgICAgICAgICAgICAgIChsZXQqICgobGFzdC14 LXkgKGlmIHR0eQorCQkJCSAgIChtb3VzZS1wb3NpdGlvbi1pbi1yb290LWZyYW1lKQorCQkJ CSAobW91c2UtYWJzb2x1dGUtcGl4ZWwtcG9zaXRpb24pKSkKIAkJICAgICAobGFzdC14IChj YXIgbGFzdC14LXkpKQogCQkgICAgIChsYXN0LXkgKGNkciBsYXN0LXgteSkpCiAJCSAgICAg KGxlZnQgKC0gbGFzdC14IGZpcnN0LXgpKQpAQCAtMTM3Myw3ICsxMzgzLDggQEAgbW91c2Ut ZHJhZy1mcmFtZS1tb3ZlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgt IHBhcmVudC1ib3R0b20gbmF0aXZlLWhlaWdodCkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG1pbiAobWF4IHRvcCBwYXJlbnQtdG9wKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKC0gcGFyZW50LWJvdHRvbSBwYXIpKSkpKSkKLSAgICAgICAgICAgICAg ICA7OyBVc2UgYG1vZGlmeS1mcmFtZS1wYXJhbWV0ZXJzJyBzaW5jZSBgbGVmdCcgYW5kIGB0 b3AnCisKKwkJOzsgVXNlIGBtb2RpZnktZnJhbWUtcGFyYW1ldGVycycgc2luY2UgYGxlZnQn IGFuZCBgdG9wJwogICAgICAgICAgICAgICAgIDs7IG1heSB3YW50IHRvIG1vdmUgRlJBTUUg b3V0IG9mIGl0cyBQQVJFTlQuCiAgICAgICAgICAgICAgICAgKG1vZGlmeS1mcmFtZS1wYXJh bWV0ZXJzIGZyYW1lIGAoKGxlZnQgLiAoKyAsbGVmdCkpICh0b3AgLiAoKyAsdG9wKSkpKSkp KSkKIAkgKG9sZC10cmFjay1tb3VzZSB0cmFjay1tb3VzZSkpCmRpZmYgLS1naXQgYS9zcmMv ZnJhbWUuYyBiL3NyYy9mcmFtZS5jCmluZGV4IDRmM2MxZWZjNGE3Li5jODRkYTNiYjQ5OCAx MDA2NDQKLS0tIGEvc3JjL2ZyYW1lLmMKKysrIGIvc3JjL2ZyYW1lLmMKQEAgLTE0NDksMTcg KzE0NDksMzggQEAgZ2V0X2Z1dHVyZV9mcmFtZV9wYXJhbSAoTGlzcF9PYmplY3QgcGFyYW1l dGVyLAogI2VuZGlmCiAKIGludAotdHR5X2NoaWxkX3Bvc19wYXJhbSAoc3RydWN0IGZyYW1l ICpjaGlsZCwgTGlzcF9PYmplY3Qga2V5LAotCQkgICAgIExpc3BfT2JqZWN0IHBhcmFtcywg aW50IGRmbHQpCit0dHlfY2hpbGRfcG9zX3BhcmFtIChzdHJ1Y3QgZnJhbWUgKmYsIExpc3Bf T2JqZWN0IGtleSwKKwkJICAgICBMaXNwX09iamVjdCBwYXJhbXMsIGludCBwb3MpCiB7Cisg IHN0cnVjdCBmcmFtZSAqcCA9IFhGUkFNRSAoZi0+cGFyZW50X2ZyYW1lKTsKICAgTGlzcF9P YmplY3QgdmFsID0gRmFzc3EgKGtleSwgcGFyYW1zKTsKKwogICBpZiAoQ09OU1AgKHZhbCkp CiAgICAgewogICAgICAgdmFsID0gWENEUiAodmFsKTsKLSAgICAgIGlmIChGSVhOVU1QICh2 YWwpKQotCXJldHVybiBYRklYTlVNICh2YWwpOworCisgICAgICBpZiAoVFlQRV9SQU5HRURf RklYTlVNUCAoaW50LCB2YWwpKQorCXsKKwkgIHBvcyA9IFhGSVhOVU0gKHZhbCk7CisKKwkg IGlmIChwb3MgPCAwKQorCSAgICAvKiBIYW5kbGUgbmVnYXRpdmUgdmFsdWUuICovCisJICAg IHBvcyA9IG1heCAoRVEgKGtleSwgUXRvcCkKKwkJICAgICAgID8gcC0+cGl4ZWxfaGVpZ2h0 IC0gZi0+cGl4ZWxfaGVpZ2h0IC0gcG9zCisJCSAgICAgICA6IHAtPnBpeGVsX3dpZHRoIC0g Zi0+cGl4ZWxfd2lkdGggLSBwb3MsCisJCSAgICAgICAwKTsKKwl9CisgICAgICBlbHNlIGlm IChDT05TUCAodmFsKSAmJiBFUSAoWENBUiAodmFsKSwgUXBsdXMpCisJICAgICAgICYmIENP TlNQIChYQ0RSICh2YWwpKQorCSAgICAgICAmJiBUWVBFX1JBTkdFRF9GSVhOVU1QIChpbnQs IFhDQVIgKFhDRFIgKHZhbCkpKSkKKwlwb3MgPSBYRklYTlVNIChYQ0FSIChYQ0RSICh2YWwp KSk7CisgICAgICBlbHNlIGlmIChDT05TUCAodmFsKSAmJiBFUSAoWENBUiAodmFsKSwgUW1p bnVzKQorCSAgICAgICAmJiBDT05TUCAoWENEUiAodmFsKSkKKwkgICAgICAgJiYgUkFOR0VE X0ZJWE5VTVAgKC1JTlRfTUFYLCBYQ0FSIChYQ0RSICh2YWwpKSwgSU5UX01BWCkpCisJcG9z ID0gLSBYRklYTlVNIChYQ0FSIChYQ0RSICh2YWwpKSk7CiAgICAgfQotICByZXR1cm4gZGZs dDsKKworICByZXR1cm4gcG9zOwogfQogCiBpbnQKQEAgLTY0NzgsNiArNjQ5OSwzNyBAQCBE RUZVTiAoImZyYW1lLXBvaW50ZXItdmlzaWJsZS1wIiwgRmZyYW1lX3BvaW50ZXJfdmlzaWJs ZV9wLAogICByZXR1cm4gZGVjb2RlX2FueV9mcmFtZSAoZnJhbWUpLT5wb2ludGVyX2ludmlz aWJsZSA/IFFuaWwgOiBRdDsKIH0KIAorREVGVU4gKCJtb3VzZS1wb3NpdGlvbi1pbi1yb290 LWZyYW1lIiwgRm1vdXNlX3Bvc2l0aW9uX2luX3Jvb3RfZnJhbWUsCisgICAgICAgU21vdXNl X3Bvc2l0aW9uX2luX3Jvb3RfZnJhbWUsIDAsIDAsIDAsCisgICAgICAgZG9jOiAvKiBSZXR1 cm4gbW91c2UgcG9zaXRpb24gaW4gc2VsZWN0ZWQgZnJhbWUncyByb290IGZyYW1lLgorCitS ZXR1cm4gdGhlIHBvc2l0aW9uIG9mIGBtb3VzZS1wb3NpdGlvbicgaW4gY29vcmRpbmF0ZXMg b2YgdGhlIHJvb3QgZnJhbWUKK29mIHRoZSBmcmFtZSByZXR1cm5lZCBieSAnbW91c2UtcG9z aXRpb24nLiAgKi8pCisgICh2b2lkKQoreworICBMaXNwX09iamVjdCBwb3MgPSBtb3VzZV9w b3NpdGlvbiAodHJ1ZSk7CisgIExpc3BfT2JqZWN0IGZyYW1lID0gWENBUiAocG9zKTsKKyAg c3RydWN0IGZyYW1lICpmID0gWEZSQU1FIChmcmFtZSk7CisgIGludCB4ID0gWEZJWE5VTSAo WENBUiAoWENEUiAocG9zKSkpICsgZi0+bGVmdF9wb3M7CisgIGludCB5ID0gWEZJWE5VTSAo WENEUiAoWENEUiAocG9zKSkpICsgZi0+dG9wX3BvczsKKworICBpZiAoIUZSQU1FUCAoZnJh bWUpKQorICAgIHJldHVybiBRbmlsOworICBlbHNlCisgICAgeworICAgICAgZiA9IEZSQU1F X1BBUkVOVF9GUkFNRSAoZik7CisKKyAgICAgIHdoaWxlIChmKQorCXsKKwkgIHggPSB4ICsg Zi0+bGVmdF9wb3M7CisJICB5ID0geSArIGYtPnRvcF9wb3M7CisJICBmID0gRlJBTUVfUEFS RU5UX0ZSQU1FIChmKTsKKwl9CisKKyAgICAgIHJldHVybiBGY29ucyAobWFrZV9maXhudW0g KHgpLCBtYWtlX2ZpeG51bSAoeSkpOworICAgIH0KK30KKwogREVGVU4gKCJmcmFtZS0tc2V0 LXdhcy1pbnZpc2libGUiLCBGZnJhbWVfX3NldF93YXNfaW52aXNpYmxlLAogICAgICAgIFNm cmFtZV9fc2V0X3dhc19pbnZpc2libGUsIDIsIDIsIDAsCiAgICAgICAgZG9jOiAvKiBTZXQg RlJBTUUncyB3YXMtaW52aXNpYmxlIGZsYWcgaWYgV0FTLUlOVklTSUJMRSBpcyBub24tbmls LgpAQCAtNzI1MCw2ICs3MzAyLDcgQEAgZm9jdXMgKHdoZXJlIGEgZnJhbWUgaW1tZWRpYXRl bHkgbG9zZXMgZm9jdXMgd2hlbiBpdCdzIGxlZnQgYnkgdGhlIG1vdXNlCiAgIGRlZnN1YnIg KCZTZnJhbWVfcG9zaXRpb24pOwogICBkZWZzdWJyICgmU3NldF9mcmFtZV9wb3NpdGlvbik7 CiAgIGRlZnN1YnIgKCZTZnJhbWVfcG9pbnRlcl92aXNpYmxlX3ApOworICBkZWZzdWJyICgm U21vdXNlX3Bvc2l0aW9uX2luX3Jvb3RfZnJhbWUpOwogICBkZWZzdWJyICgmU2ZyYW1lX19z ZXRfd2FzX2ludmlzaWJsZSk7CiAgIGRlZnN1YnIgKCZTZnJhbWVfd2luZG93X3N0YXRlX2No YW5nZSk7CiAgIGRlZnN1YnIgKCZTc2V0X2ZyYW1lX3dpbmRvd19zdGF0ZV9jaGFuZ2UpOwpk aWZmIC0tZ2l0IGEvc3JjL2tleWJvYXJkLmMgYi9zcmMva2V5Ym9hcmQuYwppbmRleCA4NTBi NWUwNjQ4MC4uOGRlNjFmOGMwMmEgMTAwNjQ0Ci0tLSBhL3NyYy9rZXlib2FyZC5jCisrKyBi L3NyYy9rZXlib2FyZC5jCkBAIC01NTUyLDcgKzU1NTIsNiBAQCAjZGVmaW5lIElTT19GVU5D VElPTl9LRVlfT0ZGU0VUIDB4ZmUwMAogICBTWU1CT0xfSU5ERVggKFFyaWdodG1vc3QpLCBT WU1CT0xfSU5ERVggKFFlbmRfc2Nyb2xsKSwgU1lNQk9MX0lOREVYIChRcmF0aW8pCiB9Owog Ci0jaWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVNCiAvKiBBbiBhcnJheSBvZiBzeW1ib2wgaW5k ZXhlcyBvZiBpbnRlcm5hbCBib3JkZXIgcGFydHMsIGluZGV4ZWQgYnkgYW4gZW51bQogICAg aW50ZXJuYWxfYm9yZGVyX3BhcnQgdmFsdWUuICBOb3RlIHRoYXQgUW5pbCBjb3JyZXNwb25k cyB0bwogICAgaW50ZXJuYWxfYm9yZGVyX3BhcnRfbm9uZSBhbmQgc2hvdWxkIG5vdCBhcHBl YXIgaW4gTGlzcCBldmVudHMuICAqLwpAQCAtNTU2Myw3ICs1NTYyLDYgQEAgI2RlZmluZSBJ U09fRlVOQ1RJT05fS0VZX09GRlNFVCAweGZlMDAKICAgU1lNQk9MX0lOREVYIChRYm90dG9t X3JpZ2h0X2Nvcm5lciksIFNZTUJPTF9JTkRFWCAoUWJvdHRvbV9lZGdlKSwKICAgU1lNQk9M X0lOREVYIChRYm90dG9tX2xlZnRfY29ybmVyKQogfTsKLSNlbmRpZgogCiAvKiBBIHZlY3Rv ciwgaW5kZXhlZCBieSBidXR0b24gbnVtYmVyLCBnaXZpbmcgdGhlIGRvd24tZ29pbmcgbG9j YXRpb24KICAgIG9mIGN1cnJlbnRseSBkZXByZXNzZWQgYnV0dG9ucywgYm90aCBzY3JvbGwg YmFyIGFuZCBub24tc2Nyb2xsIGJhci4KQEAgLTU4NzksOSArNTg3Nyw3IEBAIG1ha2VfbGlz cHlfcG9zaXRpb24gKHN0cnVjdCBmcmFtZSAqZiwgTGlzcF9PYmplY3QgeCwgTGlzcF9PYmpl Y3QgeSwKICAgICAgIHhyZXQgPSBteDsKICAgICAgIHlyZXQgPSBteTsKIAotI2lmZGVmIEhB VkVfV0lORE9XX1NZU1RFTQotICAgICAgaWYgKEZSQU1FX1dJTkRPV19QIChmKQotCSAgJiYg RlJBTUVfTElWRV9QIChmKQorICAgICAgaWYgKEZSQU1FX0xJVkVfUCAoZikKIAkgICYmIE5J TFAgKHBvc24pCiAJICAmJiBGUkFNRV9JTlRFUk5BTF9CT1JERVJfV0lEVEggKGYpID4gMAog CSAgJiYgIU5JTFAgKGdldF9mcmFtZV9wYXJhbSAoZiwgUWRyYWdfaW50ZXJuYWxfYm9yZGVy KSkpCkBAIC01ODkxLDcgKzU4ODcsNiBAQCBtYWtlX2xpc3B5X3Bvc2l0aW9uIChzdHJ1Y3Qg ZnJhbWUgKmYsIExpc3BfT2JqZWN0IHgsIExpc3BfT2JqZWN0IHksCiAKIAkgIHBvc24gPSBi dWlsdGluX2xpc3Bfc3ltYm9sIChpbnRlcm5hbF9ib3JkZXJfcGFydHNbcGFydF0pOwogCX0K LSNlbmRpZgogICAgIH0KICAgZWxzZQogICAgIHsKZGlmZiAtLWdpdCBhL3NyYy9rZXltYXAu YyBiL3NyYy9rZXltYXAuYwppbmRleCA5OTI5MWU3MmIzZi4uNmNiZTJmZWJkZDEgMTAwNjQ0 Ci0tLSBhL3NyYy9rZXltYXAuYworKysgYi9zcmMva2V5bWFwLmMKQEAgLTE2NTksNyArMTY1 OSw4IEBAIERFRlVOICgiY3VycmVudC1hY3RpdmUtbWFwcyIsIEZjdXJyZW50X2FjdGl2ZV9t YXBzLCBTY3VycmVudF9hY3RpdmVfbWFwcywKICAgICAgICBkb2M6IC8qIFJldHVybiBhIGxp c3Qgb2YgdGhlIGN1cnJlbnRseSBhY3RpdmUga2V5bWFwcy4KIE9MUCBpZiBub24tbmlsIGlu ZGljYXRlcyB0aGF0IHdlIHNob3VsZCBvYmV5IGBvdmVycmlkaW5nLWxvY2FsLW1hcCcgYW5k CiBgb3ZlcnJpZGluZy10ZXJtaW5hbC1sb2NhbC1tYXAnLiAgUE9TSVRJT04gY2FuIHNwZWNp ZnkgYSBjbGljayBwb3NpdGlvbgotbGlrZSBpbiB0aGUgcmVzcGVjdGl2ZSBhcmd1bWVudCBv ZiBga2V5LWJpbmRpbmcnLiAgKi8pCitsaWtlIGluIHRoZSByZXNwZWN0aXZlIGFyZ3VtZW50 IG9mIGBrZXktYmluZGluZycgb3IgYSBsaXZlIHdpbmRvdyB3aGljaAorbWVhbnMgdG8gcmV0 dXJuIHRoZSBhY3RpdmUgbWFwcyBmb3IgdGhhdCB3aW5kb3cncyBidWZmZXIuICAqLykKICAg KExpc3BfT2JqZWN0IG9scCwgTGlzcF9PYmplY3QgcG9zaXRpb24pCiB7CiAgIHNwZWNwZGxf cmVmIGNvdW50ID0gU1BFQ1BETF9JTkRFWCAoKTsKQEAgLTE2ODksNiArMTY5MCwxNiBAQCBE RUZVTiAoImN1cnJlbnQtYWN0aXZlLW1hcHMiLCBGY3VycmVudF9hY3RpdmVfbWFwcywgU2N1 cnJlbnRfYWN0aXZlX21hcHMsCiAJICBzZXRfYnVmZmVyX2ludGVybmFsIChYQlVGRkVSIChY V0lORE9XICh3aW5kb3cpLT5jb250ZW50cykpOwogCX0KICAgICB9CisgIGVsc2UgaWYgKFdJ TkRPV19MSVZFX1AgKHBvc2l0aW9uKSkKKyAgICB7CisgICAgICBpZiAoQlVGRkVSUCAoWFdJ TkRPVyAocG9zaXRpb24pLT5jb250ZW50cykKKwkgICYmIFhCVUZGRVIgKFhXSU5ET1cgKHBv c2l0aW9uKS0+Y29udGVudHMpICE9IGN1cnJlbnRfYnVmZmVyKQorCXsKKwkgIC8qIFNlZSBj b21tZW50IGFib3ZlLiAgKi8KKwkgIHJlY29yZF91bndpbmRfY3VycmVudF9idWZmZXIgKCk7 CisJICBzZXRfYnVmZmVyX2ludGVybmFsIChYQlVGRkVSIChYV0lORE9XIChwb3NpdGlvbikt PmNvbnRlbnRzKSk7CisJfQorICAgIH0KIAogICBpZiAoIU5JTFAgKG9scCkKICAgICAgIC8q IFRoZSBkb2Mgc2FpZCB0aGF0IG92ZXJyaWRpbmctdGVybWluYWwtbG9jYWwtbWFwIHNob3Vs ZApkaWZmIC0tZ2l0IGEvc3JjL3hkaXNwLmMgYi9zcmMveGRpc3AuYwppbmRleCBhODAxY2Fh ZTA2Zi4uYjQ0ZmYzZDU2MmMgMTAwNjQ0Ci0tLSBhL3NyYy94ZGlzcC5jCisrKyBiL3NyYy94 ZGlzcC5jCkBAIC0xMTQ3LDcgKzExNDcsNyBAQCAjZGVmaW5lIFRISU5fU1BBQ0VfV0lEVEgg MQogCQkJCSBzdHJ1Y3QgZ2x5cGhfbWF0cml4ICosIHB0cmRpZmZfdCwgcHRyZGlmZl90LAog CQkJCSBpbnQsIGludCk7CiBzdGF0aWMgYm9vbCBjdXJzb3Jfcm93X2Z1bGx5X3Zpc2libGVf cCAoc3RydWN0IHdpbmRvdyAqLCBib29sLCBib29sLCBib29sKTsKLXN0YXRpYyBib29sIHVw ZGF0ZV9tZW51X2JhciAoc3RydWN0IGZyYW1lICosIGJvb2wsIGJvb2wpOworc3RhdGljIGJv b2wgdXBkYXRlX21lbnVfYmFyIChzdHJ1Y3QgZnJhbWUgKiwgYm9vbCwgYm9vbCwgc3RydWN0 IHdpbmRvdyAqKTsKIHN0YXRpYyBib29sIHRyeV93aW5kb3dfcmV1c2luZ19jdXJyZW50X21h dHJpeCAoc3RydWN0IHdpbmRvdyAqKTsKIHN0YXRpYyBpbnQgdHJ5X3dpbmRvd19pZCAoc3Ry dWN0IHdpbmRvdyAqKTsKIHN0YXRpYyB2b2lkIG1heWJlX3Byb2R1Y2VfbGluZV9udW1iZXIg KHN0cnVjdCBpdCAqKTsKQEAgLTE0MDYyLDEzICsxNDA2MiwzMiBAQCBwcmVwYXJlX21lbnVf YmFycyAodm9pZCkKICAgICAgIC8qIFRydWUgbWVhbnMgdGhhdCB1cGRhdGVfbWVudV9iYXIg aGFzIHJ1biBpdHMgaG9va3MKIAkgc28gYW55IGZ1cnRoZXIgY2FsbHMgdG8gdXBkYXRlX21l bnVfYmFyIHNob3VsZG4ndCBkbyBzbyBhZ2Fpbi4gICovCiAgICAgICBib29sIG1lbnVfYmFy X2hvb2tzX3J1biA9IGZhbHNlOworICAgICAgc3RydWN0IHdpbmRvdyAqc3cgPSBYV0lORE9X IChzZWxlY3RlZF93aW5kb3cpOworICAgICAgc3RydWN0IGZyYW1lICpzZiA9IFdJTkRPV19Y RlJBTUUgKHN3KTsKKyAgICAgIHN0cnVjdCBmcmFtZSAqcmYgPSBOVUxMOworCisgICAgICBp ZiAoRlJBTUVfUEFSRU5UX0ZSQU1FIChzZikgJiYgIUZSQU1FX1dJTkRPV19QIChzZikKKwkg ICYmIEZSQU1FX01FTlVfQkFSX0xJTkVTIChzZikgPT0gMAorCSAgJiYgRlJBTUVfTUVOVV9C QVJfTElORVMgKHJmID0gcm9vdF9mcmFtZSAoc2YpKSAhPSAwCisJICAmJiBOSUxQIChGZGVm YXVsdF92YWx1ZSAoUXR0eV9tZW51X29wZW5fdXNlX3RtbSkpKQorCS8qIElmIHRoZSBzZWxl Y3RlZCB3aW5kb3cncyBmcmFtZSBpcyBhIHR0eSBjaGlsZCBmcmFtZSB3aXRob3V0CisJICAg bWVudSBiYXIsIHRoYXQgZnJhbWUncyByb290IGZyYW1lIGhhcyBhIG1lbnUgYmFyIGFuZAor CSAgICd0dHktbWVudS1vcGVuLXVzZS10bW0nIGlzIG5pbCwgdXBkYXRlIHRoZSBtZW51IGJh ciBvZiB0aGUKKwkgICByb290IGZyYW1lIGZyb20gdGhlIHNlbGVjdGVkIHdpbmRvdy4gICov CisJc2YgPSByZjsKKyAgICAgIGVsc2UKKwl7CisJICBzZiA9IE5VTEw7CisJICBzdyA9IE5V TEw7CisJfQogCiAgICAgICByZWNvcmRfdW53aW5kX3NhdmVfbWF0Y2hfZGF0YSAoKTsKIAog ICAgICAgRk9SX0VBQ0hfRlJBTUUgKHRhaWwsIGZyYW1lKQogCXsKIAkgIHN0cnVjdCBmcmFt ZSAqZiA9IFhGUkFNRSAoZnJhbWUpOwotCSAgc3RydWN0IHdpbmRvdyAqdyA9IFhXSU5ET1cg KEZSQU1FX1NFTEVDVEVEX1dJTkRPVyAoZikpOworCSAgc3RydWN0IHdpbmRvdyAqdworCSAg ICA9IHNmID09IGYgPyBzdyA6IFhXSU5ET1cgKEZSQU1FX1NFTEVDVEVEX1dJTkRPVyAoZikp OwogCiAJICAvKiBJZ25vcmUgdG9vbHRpcCBmcmFtZS4gICovCiAJICBpZiAoRlJBTUVfVE9P TFRJUF9QIChmKSkKQEAgLTE0MDgwLDggKzE0MDk5LDggQEAgcHJlcGFyZV9tZW51X2JhcnMg KHZvaWQpCiAJICAgICAgJiYgIVhCVUZGRVIgKHctPmNvbnRlbnRzKS0+dGV4dC0+cmVkaXNw bGF5KQogCSAgICBjb250aW51ZTsKIAotCSAgaWYgKCFGUkFNRV9QQVJFTlRfRlJBTUUgKGYp KQotCSAgICBtZW51X2Jhcl9ob29rc19ydW4gPSB1cGRhdGVfbWVudV9iYXIgKGYsIGZhbHNl LCBtZW51X2Jhcl9ob29rc19ydW4pOworCSAgbWVudV9iYXJfaG9va3NfcnVuCisJICAgID0g dXBkYXRlX21lbnVfYmFyIChmLCBmYWxzZSwgbWVudV9iYXJfaG9va3NfcnVuLCB3KTsKIAog CSAgdXBkYXRlX3RhYl9iYXIgKGYsIGZhbHNlKTsKICNpZmRlZiBIQVZFX1dJTkRPV19TWVNU RU0KQEAgLTE0MDkzLDEwICsxNDExMiwyMSBAQCBwcmVwYXJlX21lbnVfYmFycyAodm9pZCkK ICAgICB9CiAgIGVsc2UKICAgICB7Ci0gICAgICBzdHJ1Y3QgZnJhbWUgKnNmID0gU0VMRUNU RURfRlJBTUUgKCk7CisgICAgICBzdHJ1Y3Qgd2luZG93ICpzdyA9IFhXSU5ET1cgKHNlbGVj dGVkX3dpbmRvdyk7CisgICAgICBzdHJ1Y3QgZnJhbWUgKnNmID0gV0lORE9XX1hGUkFNRSAo c3cpOworICAgICAgc3RydWN0IGZyYW1lICpyZiA9IE5VTEw7CiAKLSAgICAgIGlmICghRlJB TUVfUEFSRU5UX0ZSQU1FIChzZikpCi0JdXBkYXRlX21lbnVfYmFyIChzZiwgdHJ1ZSwgZmFs c2UpOworICAgICAgaWYgKEZSQU1FX1BBUkVOVF9GUkFNRSAoc2YpICYmICFGUkFNRV9XSU5E T1dfUCAoc2YpCisJICAmJiBGUkFNRV9NRU5VX0JBUl9MSU5FUyAoc2YpID09IDAKKwkgICYm IEZSQU1FX01FTlVfQkFSX0xJTkVTIChyZiA9IHJvb3RfZnJhbWUgKHNmKSkgIT0gMAorCSAg JiYgTklMUCAoRmRlZmF1bHRfdmFsdWUgKFF0dHlfbWVudV9vcGVuX3VzZV90bW0pKSkKKwkv KiBJZiB0aGUgc2VsZWN0ZWQgd2luZG93J3MgZnJhbWUgaXMgYSB0dHkgY2hpbGQgZnJhbWUg d2l0aG91dAorCSAgIG1lbnUgYmFyLCB0aGF0IGZyYW1lJ3Mgcm9vdCBmcmFtZSBoYXMgYSBt ZW51IGJhciBhbmQKKwkgICAndHR5LW1lbnUtb3Blbi11c2UtdG1tJyBpcyBuaWwsIHVwZGF0 ZSB0aGUgbWVudSBiYXIgb2YgdGhlCisJICAgcm9vdCBmcmFtZSBmcm9tIHRoZSBzZWxlY3Rl ZCB3aW5kb3cuICAqLworCXNmID0gcmY7CisKKyAgICAgIHVwZGF0ZV9tZW51X2JhciAoc2Ys IHRydWUsIGZhbHNlLCBzdyk7CiAKICAgICAgIHVwZGF0ZV90YWJfYmFyIChzZiwgdHJ1ZSk7 CiAjaWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVNCkBAIC0xNDExOCwyMCArMTQxNDgsMTQgQEAg cHJlcGFyZV9tZW51X2JhcnMgKHZvaWQpCiAgICB1cGRhdGVkIHZhbHVlIG9mIHRoaXMgZmxh ZywgdG8gcGFzcyB0byB0aGUgbmV4dCBjYWxsLiAgKi8KIAogc3RhdGljIGJvb2wKLXVwZGF0 ZV9tZW51X2JhciAoc3RydWN0IGZyYW1lICpmLCBib29sIHNhdmVfbWF0Y2hfZGF0YSwgYm9v bCBob29rc19ydW4pCit1cGRhdGVfbWVudV9iYXIgKHN0cnVjdCBmcmFtZSAqZiwgYm9vbCBz YXZlX21hdGNoX2RhdGEsIGJvb2wgaG9va3NfcnVuLCBzdHJ1Y3Qgd2luZG93ICp3KQogewot ICBMaXNwX09iamVjdCB3aW5kb3c7Ci0gIHN0cnVjdCB3aW5kb3cgKnc7Ci0KICAgLyogSWYg Y2FsbGVkIHJlY3Vyc2l2ZWx5IGR1cmluZyBhIG1lbnUgdXBkYXRlLCBkbyBub3RoaW5nLiAg VGhpcyBjYW4KICAgICAgaGFwcGVuIHdoZW4sIGZvciBpbnN0YW5jZSwgYW4gYWN0aXZhdGUt bWVudWJhci1ob29rIGNhdXNlcyBhCiAgICAgIHJlZGlzcGxheS4gICovCiAgIGlmIChpbmhp Yml0X21lbnViYXJfdXBkYXRlKQogICAgIHJldHVybiBob29rc19ydW47CiAKLSAgd2luZG93 ID0gRlJBTUVfU0VMRUNURURfV0lORE9XIChmKTsKLSAgdyA9IFhXSU5ET1cgKHdpbmRvdyk7 Ci0KICAgaWYgKEZSQU1FX1dJTkRPV19QIChmKQogICAgICAgPwogI2lmZGVmIEhBVkVfRVhU X01FTlVfQkFSCkBAIC0yMTA4OCwyNCArMjExMTIsMzMgQEAgcmVkaXNwbGF5X3dpbmRvdyAo TGlzcF9PYmplY3Qgd2luZG93LCBib29sIGp1c3RfdGhpc19vbmVfcCkKIAogICAvKiBXaGVu IHdlIHJlYWNoIGEgZnJhbWUncyBzZWxlY3RlZCB3aW5kb3csIHJlZG8gdGhlIGZyYW1lJ3Mg bWVudQogICAgICBiYXIsIHRvb2wgYmFyLCB0YWItYmFyLCBhbmQgdGhlIGZyYW1lJ3MgdGl0 bGUuICAqLwotICBpZiAodXBkYXRlX21vZGVfbGluZQotICAgICAgJiYgRVEgKEZSQU1FX1NF TEVDVEVEX1dJTkRPVyAoZiksIHdpbmRvdykpCisgIGlmICh1cGRhdGVfbW9kZV9saW5lICYm IEVRIChGUkFNRV9TRUxFQ1RFRF9XSU5ET1cgKGYpLCB3aW5kb3cpKQogICAgIHsKLSAgICAg IGJvb2wgcmVkaXNwbGF5X21lbnVfcDsKLQogICAgICAgaWYgKEZSQU1FX1dJTkRPV19QIChm KSkKIAl7CiAjaWZkZWYgSEFWRV9FWFRfTUVOVV9CQVIKLQkgIHJlZGlzcGxheV9tZW51X3Ag PSBGUkFNRV9FWFRFUk5BTF9NRU5VX0JBUiAoZik7CisJICBpZiAoRlJBTUVfRVhURVJOQUxf TUVOVV9CQVIgKGYpKQorCSAgICBkaXNwbGF5X21lbnVfYmFyICh3KTsKICNlbHNlCi0JICBy ZWRpc3BsYXlfbWVudV9wID0gRlJBTUVfTUVOVV9CQVJfTElORVMgKGYpID4gMDsKKwkgIGlm IChGUkFNRV9NRU5VX0JBUl9MSU5FUyAoZikgPiAwKQorCSAgICBkaXNwbGF5X21lbnVfYmFy ICh3KTsKICNlbmRpZgogCX0KICAgICAgIGVsc2UKLSAgICAgICAgcmVkaXNwbGF5X21lbnVf cCA9IEZSQU1FX01FTlVfQkFSX0xJTkVTIChmKSA+IDA7CisJeworCSAgc3RydWN0IGZyYW1l ICpyZiA9IE5VTEw7CiAKLSAgICAgIGlmIChyZWRpc3BsYXlfbWVudV9wKQotICAgICAgICBk aXNwbGF5X21lbnVfYmFyICh3KTsKKwkgIGlmIChGUkFNRV9QQVJFTlRfRlJBTUUgKGYpCisJ ICAgICAgJiYgRlJBTUVfTUVOVV9CQVJfTElORVMgKGYpID09IDAKKwkgICAgICAmJiBGUkFN RV9NRU5VX0JBUl9MSU5FUyAocmYgPSByb290X2ZyYW1lIChmKSkgIT0gMAorCSAgICAgICYm IE5JTFAgKEZkZWZhdWx0X3ZhbHVlIChRdHR5X21lbnVfb3Blbl91c2VfdG1tKSkpCisJICAg IC8qIElmIEYgaXMgYSB0dHkgY2hpbGQgZnJhbWUgd2l0aG91dCBtZW51IGJhciwgdGhhdCBm cmFtZSdzIHJvb3QKKwkgICAgICAgZnJhbWUgaGFzIGEgbWVudSBiYXIgYW5kICd0dHktbWVu dS1vcGVuLXVzZS10bW0nIGlzIG5pbCwKKwkgICAgICAgZGlzcGxheSB0aGUgbWVudSBiYXIg b2YgdGhlIHJvb3QgZnJhbWUncyBzZWxlY3RlZCB3aW5kb3cuICAqLworCSAgICBkaXNwbGF5 X21lbnVfYmFyIChYV0lORE9XIChGUkFNRV9TRUxFQ1RFRF9XSU5ET1cgKHJmKSkpOworCSAg ZWxzZSBpZiAoRlJBTUVfTUVOVV9CQVJfTElORVMgKGYpID4gMCkKKwkgICAgZGlzcGxheV9t ZW51X2JhciAodyk7CisJfQogCiAjaWZkZWYgSEFWRV9XSU5ET1dfU1lTVEVNCiAgICAgICBp ZiAoRlJBTUVfV0lORE9XX1AgKGYpKQpAQCAtMjczNDcsMTAgKzI3MzgwLDE5IEBAIGRpc3Bs YXlfdHR5X21lbnVfaXRlbSAoY29uc3QgY2hhciAqaXRlbV90ZXh0LCBpbnQgd2lkdGgsIGlu dCBmYWNlX2lkLAogewogICBzdHJ1Y3QgaXQgaXQ7CiAgIHN0cnVjdCBmcmFtZSAqZiA9IFNF TEVDVEVEX0ZSQU1FICgpOwotICBzdHJ1Y3Qgd2luZG93ICp3ID0gWFdJTkRPVyAoZi0+c2Vs ZWN0ZWRfd2luZG93KTsKICAgc3RydWN0IGdseXBoX3JvdyAqcm93OwogICBzaXplX3QgaXRl bV9sZW4gPSBzdHJsZW4gKGl0ZW1fdGV4dCk7CiAKKyAgc3RydWN0IGZyYW1lICpyZiA9IE5V TEw7CisKKyAgaWYgKEZSQU1FX1BBUkVOVF9GUkFNRSAoZikgJiYgIUZSQU1FX1dJTkRPV19Q IChmKQorICAgICAgJiYgRlJBTUVfTUVOVV9CQVJfTElORVMgKGYpID09IDAKKyAgICAgICYm IEZSQU1FX01FTlVfQkFSX0xJTkVTIChyZiA9IHJvb3RfZnJhbWUgKGYpKSAhPSAwCisgICAg ICAmJiBOSUxQIChGZGVmYXVsdF92YWx1ZSAoUXR0eV9tZW51X29wZW5fdXNlX3RtbSkpKQor ICAgIGYgPSByZjsKKworICBzdHJ1Y3Qgd2luZG93ICp3ID0gWFdJTkRPVyAoZi0+c2VsZWN0 ZWRfd2luZG93KTsKKwogICBlYXNzZXJ0IChGUkFNRV9URVJNQ0FQX1AgKGYpKTsKIAogICAv KiBEb24ndCB3cml0ZSBiZXlvbmQgdGhlIG1hdHJpeCdzIGxhc3Qgcm93LiAgVGhpcyBjYW4g aGFwcGVuIGZvcgpAQCAtMzg0NjUsNiArMzg1MDcsNyBAQCBzeW1zX29mX3hkaXNwICh2b2lk KQogICBERUZTWU0gKFFuaGRyYWcsICJuaGRyYWciKTsKICAgREVGU1lNIChRdmRyYWcsICJ2 ZHJhZyIpOwogICBERUZTWU0gKFFob3VyZ2xhc3MsICJob3VyZ2xhc3MiKTsKKyAgREVGU1lN IChRdHR5X21lbnVfb3Blbl91c2VfdG1tLCAidHR5LW1lbnUtb3Blbi11c2UtdG1tIik7CiB9 CiAKIAo= --------------pcXrWObKEpuSLXjwgerBofRu Content-Type: text/x-emacs-lisp; charset=UTF-8; name="tty-child-frames.el" Content-Disposition: attachment; filename="tty-child-frames.el" Content-Transfer-Encoding: base64 Ozs7ICAtKi0gbGV4aWNhbC1iaW5kaW5nOnQgLSotCihzdGFuZGFyZC1kaXNwbGF5LXVuaWNv ZGUtc3BlY2lhbC1nbHlwaHMpCjs7IChzZXRxICB0dHktbWVudS1vcGVuLXVzZS10bW0gdCkK KHVubGVzcyB3aW5kb3ctc3lzdGVtICh4dGVybS1tb3VzZS1tb2RlIDEpKQoKOzsgKHRhYi1i YXItbW9kZSAxKQo7OyAoc2V0cSBkaXNwbGF5LWxpbmUtbnVtYmVycyB0KQo7OyAoc2V0cSB0 cnVuY2F0ZS1saW5lcyB0KQo7OyAoc2V0cSBhdXRvLWhzY3JvbGwtbW9kZSB0KQo7OyAoc2V0 cSBhdXRvLWhzY3JvbGwtbW9kZSAnY3VycmVudC1saW5lKQoKKGRlZnZhciByb290LWZyYW1l IChzZWxlY3RlZC1mcmFtZSkpCihkZWZ2YXIgdHR5LTEgbmlsKQooZGVmdmFyIHR0eS0yIG5p bCkKCihkZWZ1biB0dHktMSAoKQogIChpbnRlcmFjdGl2ZSkKICAoc2V0cSB0dHktMQoJKG1h a2UtZnJhbWUKCSBgKChwYXJlbnQtZnJhbWUgLiAscm9vdC1mcmFtZSkKCSAgIChsZWZ0IC4g NDApICh0b3AgLiAxMCkKCSAgICh3aWR0aCAuIDAuMykgKGhlaWdodCAuIDAuNSkKCSAgICh0 b29sLWJhci1saW5lcyAuIDApCgkgICAobWVudS1iYXItbGluZXMgLiAwKQoJICAgKG1pbmli dWZmZXIgLiBuaWwpCgkgICAoZHJhZy1pbnRlcm5hbC1ib3JkZXIgLiB0KQoJICAgKGRyYWct d2l0aC1oZWFkZXItbGluZSAuIHQpCgkgICAoZHJhZy13aXRoLW1vZGUtbGluZSAuIHQpCgkg ICAoaW50ZXJuYWwtYm9yZGVyLXdpZHRoIC4gMikKCSAgIChib3JkZXItd2lkdGggLiAwKQoJ ICAgKGJhY2tncm91bmQtY29sb3IgLiAieWVsbG93IikpKSkKICAobGV0ICgod2luZG93IChm cmFtZS1yb290LXdpbmRvdyB0dHktMSkpKQogICAgKHNldC13aW5kb3ctcGFyYW1ldGVyCiAg ICAgd2luZG93ICdoZWFkZXItbGluZS1mb3JtYXQgJygiICIgKDpldmFsIChidWZmZXItbmFt ZSkpKSkpCiAgKHNlbGVjdC1mcmFtZS1zZXQtaW5wdXQtZm9jdXMgdHR5LTEpKQoKKGRlZnVu IHR0eS0yICgpCiAgKGludGVyYWN0aXZlKQogIChzZXRxIHR0eS0yCgkobWFrZS1mcmFtZQoJ IGAoKHBhcmVudC1mcmFtZSAuICxyb290LWZyYW1lKQoJICAgKGxlZnQgLiAxMCkgKHRvcCAu IDEwKQoJICAgKHdpZHRoIC4gMC42KSAoaGVpZ2h0IC4gMC4zKQoJICAgKHRvb2wtYmFyLWxp bmVzIC4gMCkKCSAgIChtZW51LWJhci1saW5lcyAuIDApCgkgICAobWluaWJ1ZmZlciAuIG5p bCkKCSAgIChkcmFnLWludGVybmFsLWJvcmRlciAuIHQpCgkgICAoZHJhZy13aXRoLWhlYWRl ci1saW5lIC4gdCkKCSAgIChkcmFnLXdpdGgtbW9kZS1saW5lIC4gdCkKCSAgIChpbnRlcm5h bC1ib3JkZXItd2lkdGggLiAyKQoJICAgKGJvcmRlci13aWR0aCAuIDApCgkgICAoYmFja2dy b3VuZC1jb2xvciAuICJvcmFuZ2UiKSkpKQogIChsZXQgKCh3aW5kb3cgKGZyYW1lLXJvb3Qt d2luZG93IHR0eS0yKSkpCiAgICAoc2V0LXdpbmRvdy1wYXJhbWV0ZXIKICAgICB3aW5kb3cg J2hlYWRlci1saW5lLWZvcm1hdCAnKCIgIiAoOmV2YWwgKGJ1ZmZlci1uYW1lKSkpKSkKICAo c2VsZWN0LWZyYW1lLXNldC1pbnB1dC1mb2N1cyB0dHktMikpCgooZGVmdW4gdHR5LXRvZ2ds ZS0xICgpCiAgKGludGVyYWN0aXZlKQogIChpZiAoZnJhbWUtbGl2ZS1wIHR0eS0xKQogICAg ICAoaWYgKGZyYW1lLXZpc2libGUtcCB0dHktMSkKCSAgKG1ha2UtZnJhbWUtaW52aXNpYmxl IHR0eS0xKQoJKG1ha2UtZnJhbWUtdmlzaWJsZSB0dHktMSkpCiAgICAodHR5LTEpKSkKCihk ZWZ1biB0dHktdG9nZ2xlLTIgKCkKICAoaW50ZXJhY3RpdmUpCiAgKGlmIChmcmFtZS1saXZl LXAgdHR5LTIpCiAgICAgIChpZiAoZnJhbWUtdmlzaWJsZS1wIHR0eS0yKQoJICAobWFrZS1m cmFtZS1pbnZpc2libGUgdHR5LTIpCgkobWFrZS1mcmFtZS12aXNpYmxlIHR0eS0yKSkKICAg ICh0dHktMikpKQoKKGdsb2JhbC1zZXQta2V5IFsoY29udHJvbCBsKV0gJ3R0eS10b2dnbGUt MSkKKGdsb2JhbC1zZXQta2V5IFsobWV0YSBsKV0gJ3R0eS10b2dnbGUtMikK --------------pcXrWObKEpuSLXjwgerBofRu Content-Type: image/png; name="before.png" Content-Disposition: attachment; filename="before.png" Content-Transfer-Encoding: base64 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 CBaLhZzcXEJDQpwjqCXupnqBvVnrcw15bEidrQ9vb28MBgNjr76ahYuX8NHcT3j0oQebrp6f A86nvAghhBDnqgZNOWW1WjGVl5OWns7vq9dyz/QHiYmO4aYbrgegvNyEXqdDo6nYzfoNGzh+ 4oR9+0BDIMdPnrR/jo9rRdfOnfnP7A8pLy8HoKSklJTUtIYks1Y2m1KRD5OJg4eS+O7H/zGw fz9V6akrf7VZuHQZRSUlACz77TeKCgvpl9jX7TJoCWVY1bIVK2nXti1dOnfC39/P/jf+mtEs XvYrVmvdd2uysrLIzc0DICAggK6dO1Nmcnw0KSE+nvbt2vLRp59jPfMuUUbGKVVprF5mjaW5 j4UrDamzDfX4ww/z088LSDp8+Jyv5550PuVFCCGEOFc1aFD02ZdfcelVo7j59jv55IsvGDni Sua8+5b9Zf2B/fvTuWNHrr1pEtdPuoVFS39l7OjR9u0nTbieBYuXMmHyrXz5zbcA/POlF8g4 dYqrxoxn7A03Mfb6CWz/66+GJLNWn86bx5DhV3HZyNE88benSUzs6/Byc23pqSt/NdLAhGvH MfHW27nm+ht56933eeHZv9sfl3KnDFpCGVa1YPESxo0e5bR86MWDUWw2NmzaVGccaekZTLzt dq6bOJnrJk7m9zVrue/uu5zC/eOlF9h/4ABXXD2GK68Zxwv/+IeqNLoqs8bSnMfClXrXWQ/o 3Kkjo0eN5F9vvo2iKOd0Pfe08ykvQgghxLlIE9lrtDLpxUW8OqKk0XaSm5uHTq9zOb1s5SNQ 4WFhDi/KFxYWUVpWSkhwMF5eXo2WNrVqS09t+auN2WwmPz+fsLAwl490qS2Dc6UM3WG12cjN zcVLr8dY5f0YV3Jz87DarISFhqp+NK6mMmssLe1Y1LfONoYLuZ5Xdz7lRQghhDgXPLXcn2+f H9M0gyIhhBBCCCGEaGkqB0WN/xW5EEIIIYQQQrRgMigSQgghhBBCXNBkUCSEEEIIIYS4oMmg SAghhBBCCHFBk0GREEIIIYQQ4oKmd7UwIyOjqdMhhBBCCCGEEI0uOjraaZnLQVG79h0aPTFC CCGEEEIIUR/bNq5F42Oo17aqB0UAiqLUaydCCCGEEEII0Vg0Go3H45R3ioQQQgghhBAXNBkU CSGEEEIIIc4biqK4/dSbDIqEEEIIIYQQ542SkhKKS0rcGhjJoEgIIYRtwIhGAAAgAElEQVQQ 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 hiUQUnCH1hgcjDHGNtgYb9iSvMiWbUnPH6puEBJGNpIF/r5e5/jY+t2v7v3e35Wu7/v+llvf e3nViL5jB6LnhAb9bbUaMb7/WBpM/f38jRibtG078fe92/PVYBmK30vgXdl9Dhgexw4koyb1 XjbxfXzIZsu67gPxxy0+8bgpH0teu+enL9STpPHCU7/dk9H8QveHWr79z9GW03PbnUf7npSg oit5638N7mfrDHQ9D/Rx63HC+3GStn6n+zib6Z9Kzv6F5PX73nFGuSFYL0nS8mL3Llrn/GIy 69PJ1r/+aWh8GLTv7T6ua9KlvZef6u/vsQPduwdOu6b38vqzknELe+/aNhQmXNQ78EZO7D7W p+Unvec4mM9XAzJEP39Av0QRMDz2re4+E9dZ13Wfxanpo8mS3z3163v9vuTovuSj3+m+zoaZ 3e/Ez3/Hbklt27pffI2e073bzqyfTy76f/q/ztoxyZhzusdVj+p+odTfu8oDHTdQI8Z2X9/I xqSmIRkz9/1vTWld1x0qU6/uPiakYVb3eu/xk99Pmq7qPv3z2Pndl40/L1n8v3f/3aOqpvts Vj277vSMfaeBrueBPm4DvR/JwNff0ZbuLUMLf6v7Z3Hzf+s7ZqDrJTm5n4ONf5rMvi2ZeUv/ t9tj1KTk1m3J8q+8+5iBqqpJzrqh759T2eLx6re6j8E69xe7dz2cfHmy9N+f+txe+sPuXcQW /mb3+hu3qPvMc0ebe58GeyjUjkk+8hfdP0ujZyeXfSPp7Oh9u4P9fDVQg/17Cbwru88Bw+Ol LyeTLkk+8T+7vz6yO/lfX+o+De+paN+T/PDa7jMv9Vxn0v35IRv//Kdfr/k/kqv+Jvm5LT+9 /JnPJ9f+uPf1Xb2yewvC292ysfvvzf/tp2c/G+i4gerv+n721VO/vh4v/t/dJzv45OP/fGxI V/fxTHue7r5856PJj27pPjX0gl//52/qSvb+0093KauqST57tPcxQdc/2/33S3+UPP9//nT5 QNfzQB+3gd6Pk11/m/9b9/fsf7n3Vq0eA1kv73a7J/o52Pbd7mPMjjYne/6+7+32qB6Z1DV1 bzV5v2rqkk/8Xd/lj1514jn058U/6D7m5rJvJZfXdgfms7/SHRenYvPd3XGy9N//NAD3Ptv9 s9H+1qld50Ct/3+7g+jnXuv+mTr8ZvLj23rvtjfYz1cDNdi/l8C7qppywU1dn/39lfnydT89 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 Z87MtGnTTriFtLOzc0DXOdBxH0QNDQ1JkrvvvrvfN1TOZNdcc0127NiRDRs29Lmss7Mzra2t mTt3buWNmPnz51f2EqAMoggoUk1NTW688cZs3bo1a9eu7XXZiBEjcuzYsSTJ0aNHM3LkyCxf vjwHDhzo825z25ED6eg8lvPmXpG5sy7IjKlzs3XHy9nTvC21NSNO25ajd7Nv377s27ev8nVX V1e2bduW+fPnp6qqasi2JBw4cCAtLS1ZtGhRamtrM3PmzOzZsyevvfZaRowY0Wvs3r17M23a tEycODFTp07N0aNHc/DgwYwePbrXuOnTp+eKK67ItGnT0tXVlTfeeCNPPfVUnxd35513XpYt W5YJEybk+PHjaW1tzebNm7NmzZocOXLkpMY1NTXloosuyowZMzJ27NgcOXIkO3bsyKpVq7J3 797KddXU1OQTn/hEFi1alM7Ozjz33HPZuHFjbrrpprz55pt5/PHHh+R+nMx6Lk1VVVUWLlyY J598MqNGjcrixYtP226jH1Q9UfT23WtLMHbs2CxZsiQPPPBAv5dXV1dXnhdXr16dcePGpamp KS+88EKampp6jR05cmQuvvjizJ49OzU1NdmyZUtWr17d542choaGLF++PNOmTUtNTU1aW1vz 0ksv5fXXXz/pcVVVVZk7d27mzp2bCRMmpL29PVu3bs2aNWs+1JH+QSOKgCKNHTs2y5cvz+TJ k/tE0datW3Peeefl8OHDOfvss7N+/frccMMNfbYSJckbuzbmjV0bc81ln82r257PjCnz8+yL /zPbd286XXflpNTU1GTRokV57bXXhnTXqmeeeSbPPvtsvvSlL6WzszNjx47N888/n2eeeabP 2P3792fatGmZNGlSpk6dmj179qSxsbHXmLPPPjuf//znU1tbm6NHj6a6ujpNTU2ZP39+/uIv /qLyIu/888/Pbbfd1ut7m5qaMnv27Dz33HOVZQMdN2PGjFx55ZVJut9Nrq6uzvTp07N06dL8 +Z//eeVg+xUrVuTyyy+vfN/111+fyy67LI2Njb1etAz2/TiZ9Vyas88+Ow0NDXnllVcyfvz4 LF68OE888cRwT2tYjR49OkeOHCluS+y8efNSVVXV7y6UPV577bXccMMNqa6uzvz587N79+4c OnSoVxSNGjUqd911V+rr6/PCCy+kq6srV111VebNm5dvf/vblXFVVVX5pV/6pVRXV2f9+vXp 6Oio/P6+M3YGMq6hoSG33nprNm7cmO3bt6ehoSHXXnttZs+e/a6hx8kTRUCRWlpacu+99/Z6 t7/HypUrc+ONN+b222/PP/7jP2bs2LH9biXqsWjOJVm26JP5xnf/r1yw4Krc+olfz91/+3tp O7J/SO9DVVVVxo0b12tZV1dXDhw40GtZfX19rrrqqowaNSpnn3123nrrrTz00ENDOrek+9iL qVOn5tvf/nYuu+yyrFixItu3b+/zTmlLS0u6uroyefLkTJkyJa+88kqmTZvW64XbDTfckNra 2qxduzbf//73U11dnTvuuCNz587NZZddVtkS03Piht27d+e//tf/WomOMWPG9Do5xkDH/eQn P0lHR0e2bNmSgwcPZty4cfmlX/qlTJgwIeeff35+/OMfp66uLsuXL0+SrFu3Lg8//HAaGxtz 55139lkng30/TmY9l2bx4sXZsWNH9u/fn5dffjkf/ehH09TUVPQuUQ0NDRk5cmR+53d+J3V1 dTl48GDWrVuXJ554IkePDu9W7aHUswX1RGdmfOONN9LV1ZXZs2dn7ty52bhxY2pqanqN+cQn PpHRo0fnz/7szyrH761bty6/+qu/mvnz51f+jxg/fnyampry7W9/u7Lrcn8GOu7QoUP54z/+ 415vsOzYsSO33nprVq5cWdmzgfdHFAHFeuWVV/pd3traWjmDV21tbX7zN38zK1euzLhx4zJ+ /Pjs2LGj1wv213esz0M//v/SevCtPPviwzlwaF8Otw/97ikjRozIv/23/7bXsvb29nz5y1/u tay2tjZTp07NyJEjM2rUqIwcOTKNjY194mmw/dM//VOOHTuWV199NQcPHszevXv73X2ppqYm +/bty+zZszN69Ojs27cvNTU1lXU8evToTJs2LUn3SSTOOeecJN0vCubOnZuZM2dWrqtny01T U1M+9alP5bnnnsuWLVv6bBUb6LiOjo5s3LgxZ511VubPn5/a2tocPnw4EyZMqOyK1NTUVNlV 7fHHH8/BgwcrLzYvueSSynUNxf04mfVckqqqqixevDj/9E//lCR58803c/DgwSxevLjoKHru uefS2tqalpaWVFVV5ZxzzsnHPvaxTJ48udeWjjPNuHHjTngCiqT7DaVNmzZl4cKFOffcc/MP //APWbJkSa8x5513XrZs2ZLRo0dXdu/teSNq1qxZlSg6ePBgWlpa8slPfjLt7e3Ztm1bv7c5 0HFJ95bqqqqqjB07tnL6/Z43xvp7c4+TJ4qAQXfDDTdUTqvc4+677x7wC7WB7tY12OP6s2zZ shw4cCAjRozIr/zKr2TXrl0ZP358vvWtb1XGHG4/lJc2/68kSfvRw3l+w4/6va73u17e6fjx 4/nmN7/Za1l/9/XAgQP5q7/6qyTdAXLdddflC1/4Qr7+9a9n//6h25q1ffv2bN++PUmyc+fO PPzww/2Oq6ury86dOysvQN75+S9jxoyp/PvGG2/s8/0jR46s/Pvpp5+u7Bp53nnn5bzzzsve vXvzve99L2+88cZJj7voooty4403Vm6jo6Mj1dXdn3teVVWVpHtXzB5vPy7onS/ChuJ+JANf zyXpOQbsggsuyIIFC5J0v4mwePHiPPXUU8M8u+HT3t6el156qfL19u3bc/z48Vx//fWZNGnS Gfviuq6urtexle/mlVdeyc0335xjx45l27ZtvaKouro6Y8aMqfw+vtPbnweOHz+ev/zLv8wN N9yQX/7lX8727dvz93//931O8jDQcbW1tbn++utzwQUXJOmOqZ7n+p7nId4/UQQMuueffz6v vfZar2XvPIj82LFjqa+v77WstrY2I0eO7LUrwGCPOxm1tbX5mZ/5mfzgBz/INddck4cffjgv vvhivvCFL+Siiy7K82/2v6Xp3QxkvZyMzs7Okz67WEdHR1atWpWPfOQjmT17dl588cVTvv3B UltbmzfeeKPyQuOdUfT2XV6+//3vV3Zb6fH2kyd0dnbmBz/4QZ5++ulccsklWbZsWSZNmpRf /MVfzFe+8pXKMTsDGVdbW5ubb745NTU1efzxx/Pss8/m6NGjue2223L++edXbvPw4cOVf9fX 16etrS1J+pzoYCjuB/1bsmRJ9u/fn5/85CeVZTt37szy5cszYcIEH7z6Nj2RPX78+DM2io4d O9brw3ffTc8uc+vXr+/zBlNXV1c6Ozvz5JNP5sc//vF7XteBAwfyP/7H/8jEiRNz5ZVX5o47 7siqVavy6KOPnvS4a6+9NgsWLMh//+//vfIGSFNTU37t135tIHefARJFwKDbuXPne2792Ldv X6ZMmdJrWc/Xb7311pCNOxnLli3LoUOHsmHDhtx6662Vd/7379+f8ePHJwP/6KMkA1svp0PP cUgflP3Qa2pqsnbt2rz11lvp6urqFRlJdzi2tLSksbExc+bM6bUP/ciRI3ttgZk3b1527dqV 1tbWPP744/nJT36Sf/Nv/k1qa2szZcqUSkwMZNyECRMqxxSsW7cuR48eTV1dXWbNmtVrfnv3 7k1XV1eqqqpy8cUX5+mnn05tbW0WLlw45PeD/i1evDjr1q3Lj3700622NTU1Of/887NkyZI8 /fTTwzi7D5bJkycn6btl80xy4MCByv08kba2tnzta1/r9QZFj66urmzfvj1z584dUBT12Ldv X1auXJmk+wQq74yigYybM2dOXnzxxUoQJal8fAGDRxQBw2Lt2rW5/fbbc80112Tt2rWpr6/P 9ddfn9bW1l5bUwZ7XI/6+vr863/9r7N+/fp+dzfq2UrUc0KCvXv3ZsqUKdm2bVuampry/PPP D/YqGRLXXXdddu7cmd27d+fYsWNpamrKihUrsn///g/UhzXu37+/sivfxIkT+1z++OOP57bb bssFF1yQhQsXZu/evRkxYkQmTpyYZ599No888kiS5LLLLqt8Cv2BAwcqu7R0dnb2iuOBjGtt bc2xY8cyYsSI3HXXXdmxY0emT59eOZbo7XPfuHFjFixYkBUrVuTCCy9MQ0NDn3FDcT/oa/r0 6WlsbOyzC1JHR0deffXVPlE0cuTIyuNVU1OTiRMn5uDBg31OPDDQccNp9uzZvXbDTLo/kLTn jYarrroqe/furRxXNXv27FxzzTV59dVXz9itREn3MWXnnXdeamtr3/PMeyfaivjkk0/m85// fG688cY8++yzlZOvzJs3L6+++mplvU6fPj1nnXVWNm3alLa2towfPz6zZs3q87s70HGtra2Z M2dOGhsbc/To0Zx99tm55pprTnFt8G5EETAsXnrppfzwhz/MRz/60Xz0ox9N0n3A+T333NPr P63BHtejpqYmDQ0NvfYDf7uLL744bW1tlZMxPPLII/n0pz+dK6+8MgcPHszzzz+f2umDsy6G UmdnZ2666aaMGjUqSfe7nZs3b87f/d3ffWC2FA3Eiy++mGPHjuXqq6/OtGnTMn1698rfv39/ 3nzzp5vsdu7cWTlhQ8+B0Hv37s3jjz/e6/ipgYw7evRoVq5cmU996lMZM2ZM5s6dm7Vr1+aN N97IzTff3Gt+Dz30UEaPHp0ZM2akqakpmzZtyuHDh3vtZjcU94O+Fi9enMOHD2fr1q19Llu/ fn0+/elPp7GxMS0tLbnzzjszf/78XmN+4zd+I0nywgsv5Hvf+16SDHjccLvqqqv6LLv77rsr 66Krqyu33HJLZVeyo0eP5rnnnjvjT1W+adOm3HDDDTnnnHNOeFru97J58+bce++9WbFiRT7y kY8k6V6nO3bs6HPino9+9KO9nie2bt1a2RJ0suMeffTR3H777fmt3/qtJMmuXbvywAMP5Jd/ +ZdP+b7QV9WUC27q+uzvr8yXr2urLGwYPeYE3wJ9/fMHQFcsW9a9L+5zzzkA8Eyw7OV3LLjz n/e1vqf34/uz991y0tddXV2dcePG5ejRo5VjMU7HuKT7MyeOHj064BMxVFdXp76+vnIsSN3s vi+6+nNk6+wBjRsqVVVVGTNmTGpqanLo0KEPVQz1p66uLvX19ZXH+J2PX1VVVUaPHp0RI0ak ra3tXU/DO9BxPT9TbW1t77lVYOzYsens7MyhQ4fymc98JosXL8769evz13/910N2P+Bk9Pxc JWV9iOu//Jf/MsePH88999wzKNdXX1+furq6HDp06F2fF+rr6zNq1Kj3fO4Y6LieXWz7e9y+ /9l3fI7eu/w/XfW5d736D53Vq55K1agx+d6DfWPzRG695eYsWrig8vXvPtKQ+/7DzbYUAcOr s7NzQCcbGOxxSU76RWbPi90Pm/4+u+jD7MiRI/3u89+jq6trQC/2BjpuID9TV111VVpbW7Nz 584cPXo0S5curWxZePsWoLcbrPsBJ6PUn6tHH300d911V2bOnNnnDI6n4vDhw32OfzyVMScz rsTH7XQSRQDwPs2dOzdnn312n+UtLS1Z/c5N6cBpt2PHjnzve9/LpEmTBiWKOPOIIgB4n154 4YV0dXWlsbExtbW1OXDgQDZv3pxnnnlmQO8AA0Nv3bp1wz0FPsBEEQC8T2vWrMmaNWuGexoA nCJRBAyaPgd60u3KF4Z7BgDACVQP9wQAAACGkygCAACKJooAAICiiSIAAKBooggAACiaKAIA AIomigAAgKKJIgAAoGiiCAAAKFrtcE8A+BC7s2u4ZwAA8L7ZUgQAABTNliLg5N1TNdwzAAAY NLYUAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUT RQAAQNFqh3sCwAffc4uGewZ8EC1b1pUkee65ql7Lly8fjtkAwKmzpQgAACiaKAIAAIomigAA gKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBo oggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigC AACKVjvcE6As+/c/MdxTAE7RuHGfGO4pAMCQsKUIAAAomigCAACKJooAAICiiSIAAKBooggY dkeOHMmxY8eGexrDrrOzM83NzWlubk5HR8eAv8/6A4D3x9nn+MB65JFHctZZZ2Xp0qW9lq9c uTLz58/PwoULh2TcmWLDhg156aWX+r3sYx/7WCZNmlT5uqWlJT/60Y+yY8eONDY25oorrsjZ Z599WuZ5+PDh3H333ZkzZ05uuumm03KbH1SHDh3KvffemyT59Kc/nSlTprzn91h/APD+2VLE B9Zf/uVf5kc/+lGf5X/yJ3+SZ599dsjGnSmeffbZfO1rX8vf/M3f9Pmzd+/eyrgnnngiX/jC F/JXf/VX2bx5cx566KHcddddeeyxx4Z0fp2dnUmS+vr6JElDQ0OSnNQWkg+SJ554InfffXda WlpOy+2daesPAIaTLUVwBhs1alS+/e1vn3DM9OnT87nPfS633357ampq0tXVlT/4gz/In/zJ n2TFihVDNrdVq1Zly5YtmTlzZmpqarJv376sXLkyb775Zm677bZeW7I+DHbu3JnDhw9XYuX9 qq4+8XtWZ9r6A4DhJIrgXRw/fjxf+cpXsnTp0lx33XXDPZ0hs3Dhwl67DlZVVeXyyy/Pk08+ mQMHDmTs2LFDcrujR4/O2LFjs2XLlnR0dGTnzp2ZMGFCpk+f3mdrx8aNG/Pyyy+ntbU1tbW1 GTNmTGbNmpVFixZl1KhRlXHt7e1Zs2ZNtm3blvb29owaNSpTp07NJZdcUtmS8sgjj+TIkSNJ kgkTJuSKK67IqlWrsm3bttTU1OS6667LhAkT0tzcnPXr12f37t05dOhQRo0alcmTJ+eiiy5K Y2Njku6fkVdeeSU7d+6sbCF64oknMmLEiCTJkiVLMm/evJOa39vHPvbYY9m1a1fq6+uzaNGi LFmy5JTWHwBwYqII3sVbb72VlStXZtu2bWd0FPVn165dGTlyZMaMGTNkt3HRRRfl/PPPz3e/ +91UVVWlra0tixcvzkUXXdRr3KuvvppHH32017J9+/blzTff7BUJR48ezd/8zd+ktbW119jm 5uZceeWVla937dqVAwcOJOneutPa2pqtW7cmSWpraysRuGvXrjz//PNJurfatLa2Zvfu3dm4 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 ewoAAHBCthQBAABFs6WIIfHcc1XDPQUAABgQW4oAAICiiSIAAKBooggAACiaKAIAAIomigAA gKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaLXDPQHODMuXD/cMAADg1NhSBAAAFE0U AQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAA QNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0 UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQB AABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA 0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRR BAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEA AEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDR RBEAAFA0UQQAABRNFCE2sskAACAASURBVAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNF AABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAA UDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRN FAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UA AEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQ NFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0U AQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAA QNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0 UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQB AABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA 0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRR BAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEA AEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDR RBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEE AAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAA RRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFE EQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQA ABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABF E0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQR AABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAA FE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUT RQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEA AFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAU TRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNF AABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAA UDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRN FAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UA AEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQ NFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0U AQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEUTRQAA QNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQBAABFE0UAAEDRRBEAAFA0 UQQAABRNFAEAAEUTRQAAQNFEEQAAUDRRBAAAFE0UAQAARRNFAABA0UQRAABQNFEEAAAUTRQB AABFE0UAAEDRat/tgltuueV0zgMAAOA9Pfjgg4N+nbYUAQAARRNFAABA0UQRAABQNFEEAAAU 7V1PtADvVFVVlfr6+nR0dKS9vX24pzOsqqurM3HixCRJS0tLjh8//p7fY/0NrTFjxqSurq7y dUdHR5qbm095HOUYOXJkjh8/ns7OzuGeCkPgw/z4er6C02dQoujCCy9Mc3Nztm7d2mv58uXL s2PHjrz55ptDMu5MMX369MyYMaPfy9avX5+DBw/2WT5v3ryMHTs2a9asGerpVTQ0NOS3f/u3 s2HDhtx3332n7XY/iMaNG5df//VfT5J885vfHNDPpPX3/lRXV+eKK67I7t27s3Hjxj6XX375 5bnoootSX1+f6urqNDc356tf/eopjxsudXV1Wbp0aV555ZW0trYO+PsWLVqUKVOm5B//8R9z +PDhIZzhB8OcOXNSV1eXl19+udfyk11/tbW1+Xf/7t9l3759+cY3vjFU0z1pY8aMyeLFi/ss b29vz9q1a4dhRh9OH9THd6D/7w/0+erCCy/MyJEjU1VVlba2tuzatSt79uwZ0vvQY9SoUbng gguybt26tLW1nZbbhKEwKFF09dVXZ8OGDX0i5rrrrsvTTz9decE42OPOFPPmzcvVV1+dlpaW Ppdt3769VxTNnz8/V199daZPn55Dhw6dliiqqalJR0dH2tra0tXVlUOHDiXp/s+mo6MjXV1d Qz6HwfSzP/uzWbBgQe6+++7s3bt3yG/vTFt/w+Xcc8/NihUr0tzc3G8UPfbYY3nssceSJJ/6 1Kcyd+7cfq9noOOGy5gxY3LTTTelubl5wFE0YcKE3Hbbbamtrc2LL754xkdRY2NjfuEXfiH3 339/n8tOdv11dHRk69at2bdv31BM9ZSNGDEiM2fOzNixYzNnzpzs378/u3btys6dO9/X9V55 5ZVpbGzMD37wg0Ga6fAY6P34oD6+A/1/f6DPV1dffXVGjRqVgwcPpqGhIaNHj86WLVty//33 9/vG6mBqb2/P/Pnzc8455+Sv//qvh/S2YCjZfe4D4tixY+/5bvWsWbPy2c9+NmvWrMlrr72W Cy+88LTMbcWKFVm4cGE2b96cjo6OTJkyJXfeeWfmzJmTb33rW9m9e/dpmcdgmTVrVkaPHp2a mppBub73ipozbf0Nl8WLF+eNN97IzJkzM23atBO+OBzobjIfxt1p+nPjjTfm9ddf/8AF3lC5 5pprsmPHjmzYsOF9X1dXV1fuueeeQZjV4Gpubs4DDzyQJPnd3/3drFmzJj/60Y/e9/WeddZZ g/bcN5wGej8+qI9vMrD/99/uvZ6v1q5dm4cffjhJ9/9z/+Jf/It8/vOfzze+8Y0hf6579NFH 82u/9ms599xzs3nz5iG9LRgqZ0QU1dTU5MYbb8zWrVvP6N0Ktm3blv/yX/5LDh48mCuvvPK0 3e6BAwfS0tKSRYsWpba2NjNnzsyePXvy2muvZcSIEb3GnnfeeVm2bFkmTJiQ48ePp7W1NZs3 b86aNWty5MiRyrj6+vpceeWVOffcc9PQ0JC2tra8+eabeeqpp3LgwIEkye23317Zl3rPnj15 /PHHc+211+bcc8/NsWPHcv/992fPnj1pamrKRRddlBkzZmTs2LE5cuRIduzYkVWrVlW2BI0Y MSJLly7NrFmzMmnSpCTdH1B89OjRJMnq1avz0ksvndT8etTV1eXnf/7nM3PmzLS1teX555/P 6tWrT2n90b+qqqosXLgwTz75ZEaNGpXFixe/73fMzxSLFy/OrFmzcv/99xcRRWPHjs2SJUsq wXCqzj333CxcuLDydUtLS1atWtXv2IaGhixfvjzTpk1LTU1NWltb89JLL+X111+vjLn00kvT 0tKSw4cP59JLL019fX3eeOON/MM//EPleWYoXHrppWlubs7BgwdzySWXZOzYsdm3b19WrVqV /fv3J+l+/lu+fHllq9OxY8dy4403Vq7j4Ycf7vXmzsiRI3PxxRdn9uzZqampyZYtW7J69epe x05edtllvY6rXL16dT7+8Y+nqakpLS0tefTRR3Ps2LFUVVVl7ty5mTt3biZMmJD29vZs3bo1 a9as6feF+sKFC7No0aKMHj06hw4dypYtW/KTn/wkXV1dJ3U/TubxHTduXC655JJMmTIlR48e zYYNG/LSSy/1WicDWc8fJNu2bct3vvOd/Oqv/mouvPDCXnuVDOT+9jjR4/F2e/bsydatW3Pp pZeKIj60zogoGjt2bJYvX57Jkyef0VGUpLIZvKqq6rTd5jPPPJNnn302X/rSl9LZ2ZmxY8fm +eefzzPPPNNr3Pnnn5/bbrut17KmpqbMnj07zz33XGXZqFGj8sUvfrESJ0n37jCTJ0/Oo48+ Wlk2ffr0NDY2JklmzpyZiRMnZv78+UmS48ePVw42nTFjRiUSOzs7U11dnenTp2fp0qX58z// 8zQ3N2f8+PG55ZZbes1t5syZlX9v2rTppOfX49Zbb824ceOSJBMnTvz/2zv3sKiq/f+/ZxiY YZhhuF9UEJGLCKEFJ0vRNES5mVbeOponSY9YiXVOHj3nmN8nTyfLjLQ6ZpbhNbXsCZXjSdG8 IKkkCo6oBATqcBcDmeE+s35/8Jsdmxlgb5hhVNbredbzMIvP3uuz1l77s/dnXT4bQ4YMQVNT E/Ly8ni1H6Vrhg4dCqlUil9++QUKhQJBQUE4efKkpdWyONbW1pg6dSp+/PFH1qDDw4yfnx8E AoHRJZR8aGpqQkNDA2xtbREQEICGhgajL80CgQAvvfQShEIhrl+/Dq1Wy9i1jk5RQEAAsyle qVRCrVbjiSeeQEBAAL766iuzjdQHBARALBZDoVAgLy8P5eXlGD16NIKCgrB582a0tLRAJBLB w8ODqY9AIIBYLDZ6PrFYjISEBNja2iI3NxeEEIwfPx5+fn7Ys2cPI6fRaCCXy+Hl5YWAgAB4 eXlBoVBApVJBLpejtbUVQLtDOWPGDBQUFKC0tBRSqRRRUVHw9vY2cGzj4+MRFhaGX3/9FVVV VZBKpQgPD2ee63zqwfX6uri4ICEhAXV1dcjPz4ednR1mzJiBwMBA1vJMLu18v1FRUYGysjIE BgYyThHX+gI9X4/O5OfnY9KkSRAKhQ/NLDxlYPFQOEW1tbXYu3dvv+wPMRcCgYB5sdZDCDGY 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 ETUgin4dPAAAAABJRU5ErkJggg== --------------pcXrWObKEpuSLXjwgerBofRu Content-Type: image/png; name="middle.png" Content-Disposition: attachment; filename="middle.png" Content-Transfer-Encoding: base64 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 uaxfvx6z2cxll13GtGnTvP6t+qZNm/joo49ITU2lQ4cO3H777U5h1OS3tLSUDz74gLS0NNau XUtgYCAPPPCAff3bb7+NVuvePBeffPIJEydOdHjc6/777+fZZ5/ls88+s1+gvvfeeyQlJREW FsacOXPIzc1l4MCBPPzwwwQHB7udPneOb2pqKrNnz2bXrl32x/smTpzocBfmvffeo3379sTE xDBnzhzS0tLo2LEjjz76KAkJCQ7xZWdn8/7777N9+3ZMJhNt2rThhhtuYNiwYW6VnSsajYab b76ZJ554gvT0dPvyV199lZiYGIc7H7m5uTz77LPcc8899OrVC6g8HhkZGRw5csT+edWqVQCM GDGCcePGuRUO1NX7t956i5SUFKDyWEybNo0XXniBPXv2kJSUxKuvvkpgYKDXy68uauqBO+HU ao78unN+qEmfmvPXG9Scl+62a56szzabjRUrVvDzzz9z5MgRDAYDl156KbfffrvLd3wWLlzI jz/+SGZmJtHR0VxxxRXcdNNNaLXac6b98zRP9qvNVU+FEMJbPDL7XFhYGNHR0eh0OpYuXcp3 333XqPgKCgoYNGgQr7zyCh06dKB79+689NJLXHvttZ5Ibq2WL1/OkCFD2LRpEwMGDKCgoIAb brjBKZya/JpMJrZv305WVhZWqxWLxUJxcbH9z11HjhwhKyuL4cOHOyz38/Nj4MCB/PHHH/Zl CxYs4KmnnuLmm28mMTGRrl278tZbb3HFFVdgNpvdTp/a47t//3769OnD4sWL6du3L0ajkalT p3LLLbc4hFuwYAGzZs1i7NixBAUF0a9fP3744QeGDBnisG9FUbj00kuZN28eHTt2pG/fvmRm ZrJu3Tq3y682mzdvBuCiiy6yL/vmm29Yvny5Q7jCwkLeffdd+8CmatuDBw+Sl5cHVD4eV1V+ JpPJ7XBq631sbCwGg4EdO3bwzjvvcNttt/Hrr7/Srl07MjMz7QOipig/V9TWA7Xh1Gqu/Ko9 P9SmT8356w1qzkt32g1P1+ecnBymTJlCXl4eAwYMICoqipkzZ3LnnXc65WXatGmMGzeOkydP 0rlzZywWC++++659oHMutH+e5ul+tbnqqRBCeE10r9HKQ/NtSmlJsf0PUBRFUWbNmqUEBgYq J0+edPhLS0tTajNx4kRl4MCBta6vcv/99yvt27d3uW7GjBlKdHS0curUKfuyHTt2KBqNRlm8 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 xqCIiIiIiIiWNQZFRERERES0rDEoIiIiIiKiZY1BERERERERLWsMioiIiIiIaFljUERERERE RMsagyIiIiIiIlrWGBQREREREdGyxqCIiIiIiIiWNQZFRERERES0rDEoIiIiIiKiZY1BERER ERERLWsMioiIiIiIaFljUERERERERMsagyKqG1mVsOmZHnQeCNa7KkRERES0jDEooroR8oCc laBkpXpXhYiIiIiWMbneFaDlK2fTsf/a49DlfL2rQkRERETLGIMiqitdYUBERERERPXF4XNE RERERLSsMSgiIiIiIqJljUEREREREREta5xTRERz2nK43jWgRemwAADYMuVl44e1rwoREc1N +PN612DxYk8REREREREtawyKiIiIiIhoWWNQREREREREyxqDIiIiIiIiWtYYFBERERER0bLG 1edoWbCkZXhHnLP+XZfzCHfGa1gjIiIiIlosGBTRsmBJKWg65ituW1MKdDkPzaIDAHJ2bdkH Rc29DbCkZQxsGq93VYiIiIhqikERLQsJfxoHr+4vbm/+5XmYOC+G4fNDdazV4uKIWiEY9a4F ERERUe0xKKK68p/wwBmxYmDTBIxztMjNpqsWJS0j2OeFPW6BLuURbUlisi0BCJXn6R1xwjfi hJyRoVk1xINphNvjxTybjvlgTSoAANWRw3h3FK1vNMIWt0C1axjaMIG8VNh3URMQOOGFK2yD YAiI+9MY747CkM46NgbgGXfAM+4o9IxJeST8aYQ64zDEU/noAgL9XihpGa4JG/Kygc4DwWIW AxvH57XPREREREsBgyKqq0C/B85JG06unkTOrs07XTXYEhas2d2OnENDpDkJWZXQ/UozvCNO 9G0drSjPrv1BBPq8iAVTyHhUyFkJwT4vwh1nhuzlrBqUrARnyA7vqBPOSRssKQXJxgyUtFQM iKSciDXPdkDOiQh1FIKqljca4Bl3oHfbcDE/WZXQ80ozok1JJH0ZyFkJ7QcDcIXt6LuosB+C LsAetRb+DwGCAYiaifVXPsIuJSIiokXv3/jLplkMiqiu+i8cgzWlzBnomE1XDR0HA8jZdBy5 chD5Uz0qsWAKK//YisnOOKJNqbLyc4VtCPR5MbhhAmMrI7Omm2xPYLI9gUCfF137g8g4RRy5 cgDGlPtZ65FGKKqEQ1edgGbVT703jnW7uuAdcxTrp1l1HLimr6RnLeXLomdfM05sHkNeMqBb 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 g3ub7xVdB5K973Byh/btg/eE9Hi280B+br0Gcj8G22Bul8lLklFnJWu/+s5jB/vfx2Dq3DO4 UdrTdfhZ7U6WjtZ3PsZvKB6vBmowf/+Aw4giADhZJn6gstJwyV9Wjlk50umgATjpRBEAnCzv +2JSOyrZ8kjy1L8d7tkA8CZRBAAny4NnD/cMADgCp+QGAACKJooAAICiiSIAAKBooggAACia KAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooA AICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACg aKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJoo AgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAA gKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBo oggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigC AACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACA ookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGii CAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIA AIomigAAgKKJIgAAoGiiCAAAKFrtcE8AOH38yrduG+4pDIr6GesH9foOrJ8xqNcHAIf6/sce GO4pvOdZKQIAAIomigAAgKKJIgAAoGiiCAAAKJoTLQAwZKqqqtLQ0JCurq60t7cP93ROW7bz iRk9enTq6+v7Pu/q6srOnTtPeBzw3iWKgGFx4YUXZufOnVm/vv+Z3hYtWpTNmzdn06ZNQzJu IKqqqnPO7MUZ23RGXnrlqbzRWvnempoRuXD+1Vnx8pNp79h/2PfdedMf5pmXfp4VLz854Ns6 UVOmTMnUqVOP+LWVK1dm7969fZ+PGzcu8+fPz9ixY7Nv3768/PLL2bJly5DPMUkaGxvzB3/w B1m1alW+9a1v9fvahAkTMnv27CTJ/v378/zzz6e2tjYXX3xxkqS7uztPPfXUSZnne92xtnPJ qqurc8UVV2Tr1q1ZvXr1YV+//PLLc9FFF6WhoSHV1dXZuXNnPve5z53wuOFSX1+f888/Py+9 9FJ27dp11HE1NTW55JJLDrt8+/btWbt27VBO8ZQwa9as1NfX58UXX+y7bNSoUTnnnHNy8ODB LF++vO/y8ePHZ86cOWlra8uKFSuGY7qcZKIIGBbXXHNNVq1adVjEXH/99Xn88cf7Imawxw3E h973kZx5xuy8/Noz+fVb/vd8/YE/yc7dW3PRgg/k3DmXZ9nKHx/x+7q6u9J5sGPAt/NuzJ07 N9dcc01aW1sP+9rGjRv7ouiKK67Iddddl507d2bHjh1ZsGBBrr322jzwwAP9ngAMtpqamnR1 daWtrS09PT3Zt29fkqS2tjZdXV3p6enJ1KlTc/PNNydJ2tra8vzzz6elpaXvsvb2dlH0Dgay nUs2e/bsLFmyJDt37jxiFD3yyCN55JFHkiS33HJL5syZc8TrGei44TJ69OjcfPPN2blz5zGj qKmpKTfffHN2796drq6uvstffPHF0z6Kmpub8/GPfzz3339/v8vHjh3b95izbt26vsfURYsW 5corr8ymTZtEUSFEEcDbLDxrcR746Zfy6uaVmTJxTs6edVmWrvhRLj//pvzD43/bb+z8mZdk 5pnn5LUtL6ar62BGN47N+87Xa2SCAAAgAElEQVS7MbOmnJPv/vjzQxpJnZ2d7/hq9apVq7Jt 27asWbMmSWU3q49+9KP50Ic+NKRRtGTJkixYsCBr165NV1dXJk6cmDvvvDOzZs3KV77ylWzd urXf/WhsbExDQ0MmTZqUJDl48OCQze10cjzbuUQLFy7Mhg0bMm3atEyePPmYK6Td3d0Dus6B jjsVNTY2Jkm+9rWvHfEFldPZtddem82bN2fVqlWHfa27uzu7du3KnDlz+l6ImTdvXrZt23ay p8kwEkVAkWpqanLTTTdl/fr1efbZZ/t9bUTtyHR2VWKm82B7Royoy0ULPpC9ba1Zu+G5fmPb DuxJV3dnzp1zReZMvyBTJ83J+s0vZtvO11JbM+KkrRwdzY4dO7Jjx46+z3t6evLaa69l3rx5 qaqqGrKVhD179qS1tTVnn312amtrM23atGzbti2vvPJKRowY0W/s9u3bM3ny5IwfPz6TJk1K R0dH9u7dm1GjRvUbN2XKlFxxxRWZPHlyenp6smHDhvzsZz877Mndueeem0suuSTjxo3LwYMH s2vXrqxduzbLly/PgQMHjmtcS0tLLrrookydOjVNTU05cOBANm/enCeffDLbt2/vu66ampp8 8IMfzNlnn53u7u4sW7Ysq1evzs0335xNmzbl0UcfHZL7cTzbuTRVVVVZsGBBHnvssdTV1WXh woUnbbfRU1VvFB26e20Jmpqacs455+S73/3uEb9eXV3d97j41FNPZcyYMWlpackzzzyTlpaW fmNHjhyZiy++ODNmzEhNTU3WrVuXp5566rAXchobG7No0aJMnjw5NTU12bVrV1544YW8+uqr xz2uqqoqc+bMyZw5czJu3Li0t7dn/fr1Wb58+Xs60k81oggoUlNTUxYtWpQzzjjjsCjasHV1 Fs66LPsP7M30SfOz6pWnsmTxx/PDJ/7usOvZ8PrqbHh9da5d/LGsee3pTJ04L0uf/8ds3Pry yborx6WmpiZnn312XnnllSHdteqJJ57I0qVL81u/9Vvp7u5OU1NTnn766TzxxBOHjd29e3cm T56cCRMmZNKkSdm2bVuam5v7jZk5c2buuuuu1NbWpqOjI9XV1Wlpacm8efPyxS9+se9J3nnn nZc77rij3/e2tLRkxowZWbZsWd9lAx03derUXHnllUkqryZXV1dnypQpOf/88/M3f/M3fQfb L1myJJdffnnf991www1ZvHhxmpub+z1pGez7cTzbuTQzZ85MY2NjXnrppYwdOzYLFy7MT37y k+Ge1rAaNWpUDhw4UNxK7Ny5c1NVVXXEXSh7vfLKK7nxxhtTXV2defPmZevWrdm3b1+/KKqr q8vdd9+dhoaGPPPMM+np6cnVV1+duXPn5t577+0bV1VVlU9+8pOprq7OypUr09XV1ffv9+2x M5BxjY2Nuf3227N69eps3LgxjY2Nue666zJjxoyjhh7HTxQBRWptbc03v/nNfq/29/rHx7+e JZf/em7/4O9k2cofZ3Rjc/a0tebl1549wjUlZ8+6NJec/aF86b//H7lg/tW5/YO/l6/9f/9X 2g7sHtL7UFVVlTFjxvS7rKenJ3v27Ol3WUNDQ66++urU1dVl5syZeeONN/LQQw8N6dySyrEX kyZNyr333pvFixdnyZIl2bhx42GvlLa2tqanpydnnHFGJk6cmJdeeimTJ0/u98TtxhtvTG1t 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 tddem2effTYNDQ254YYbsmvXrn6rKYM9rldDQ0N++7d/OytXrjzi7kZ9q0RP/tckyY5dW3LG uKnZuPXlTGiekudWvzeeVF1//fXZsmVLtm7dms7OzrS0tGTJkiXZvXv3KfVmjbt37+7blW/8 +PGHff3RRx/NHXfckQsuuCALFizI9u3bM2LEiIwfPz5Lly7Nj370oyTJ4sWL+96Ffs+ePX27 tHR3d/eL44GM27VrVzo7OzNixIjcfffd2bx5c6ZMmdJ3LNGhc1+9enXmz5+fJUuW5MILL0xj Y+Nh44bifnC4KVOmpLm5+bBdkLq6urJmzZrDomjkyJF9P6+ampqMHz8+e/fuPezEAwMdN5xm zJjRbzfMpPKGpL0vNFx99dXZvn1733FVM2bMyLXXXps1a9actqtESeWYsnPPPTe1tbXveOa9 Y60iPvbYY7nrrrty0003ZenSpX0nX5k7d27WrFnTt12nTJmSM888My+//HLa2toyduzYTJ8+ /bB/uwMdt2vXrsyaNSvNzc3p6OjIzJkzc+21157g1uBoRBEwLF544YX8+Mc/zlVXXZWrrroq SeWA8/vuu6/ff1qDPa5XTU1NGhsb++0HfqgL5l+d/e17s+a1p5MkP/nn7+RXr/ntLD7vpuzb vyvPr3lvRFF3d3duvvnm1NXVJam82rl27dr8wz/8wymzUjQQzz//fDo7O3PNNddk8uTJmTJl SpJKkGzatKlv3JYtW/pO2NB7IPT27dvz6KOP9jt+aiDjOjo68uCDD+aWW27J6NGjM2fOnDz7 7LPZsGFDbr311n7ze+ihhzJq1KhMnTo1LS0tefnll7N///5+u9kNxf3gcAsXLsz+/fuzfv36 w762cuXK/Nqv/Vqam5vT2tqaO++8M/Pmzes35t/8m3+TJHnmmWfyve99L0kGPG64XX311Ydd 9rWvfa1vW/T09OS2227r25Wso6Mjy5YtO+1PVf7yyy/nxhtvzFlnnXXM03K/k7Vr1+ab3/xm lixZkve9731JKtt08+bNh52456qrrur3OLF+/fq+laDjHffwww/nwx/+cH7/938/SfL666/n u9/9bn7zN3/zhO8Lh6uaeMHNPR/7zw/mM9e39V3YOGr0Mb4FDvfmG0D3ueSSyr64y5Y5APB0 cMmLb7vgzjf3tb6v/8/3V75123Ffd3V1dcaMGZOOjo6+YzFOxrik8p4THR0dh+07Xj/j8CdT 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 QhRxSrvrrrvysY99LNu3b099fX3Gjh17UsYlyYQJE/Ld7343jY1H2WXqFPeJT3win/jEJ95x 3Le+9a2TMJt3YfQblY/umspJD6q7jn7igbp9lY+jja3f0/+U1sdSv7tyWu7uN9+4tfd6Dn0D 1UPVHqicnrununL7R5rnO82vujOZeITVuVFvVD4AgCEhijjl1dbWZtKko7w6P4TjksrpqzlF VHcl6XrHYcc99liq0v/03QP6nu6k5h1OkjBY8wMABoVjigAAgKKJIgAAoGiiCAAAKJpjijip xoz54HBPgVPAH9093DMAAHiLlSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJoo AgAAiiaKAACAookiAACgaLXDPQFOb5dc0jPcUwAAgGOyUgQAABTNShFDYtmyquGeAgAADIiV IgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggA ACha7XBPgNPDokXDPQMAADgxVooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGii CAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIA AIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICi iSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKII AAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAA iiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJ IgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggA ACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACK JooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAooki AACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAA KJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIom igAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIA AKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAo migCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaK AACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAA oGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACia KAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooA AICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACg aKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJoo AgAAiiaKAACAookiAPRBcjsAACAASURBVACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggA ACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACK JooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAooki AACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAA KJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIom igAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIA AKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAo migCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaK AACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAA oGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACia KAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooA AICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACg aKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJoo AgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAA gKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBo oggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigC AACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACA ookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGii CAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIA AIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICi iSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKFrt0b5w2223ncx5AAAAvKMHHnhg 0K/TShEAAFA0UQQAABRNFAEAAEUTRQAAQNGOeqIFeLuqqqo0NDSkq6sr7e3twz2dYVVdXZ3x 48cnSVpbW3Pw4MF3/B7bb2iNHj069fX1fZ93dXVl586dJzyOcowcOTIHDx5Md3f3cE+FIfBe /vl6vIKTZ1Ci6MILL8zOnTuzfv36fpcvWrQomzdvzqZNm4Zk3OliypQpmTp16hG/tnLlyuzd u/ewy+fOnZumpqYsX758qKfXp7GxMX/wB3+QVatW5Vvf+tZJu91T0ZgxY/J7v/d7SZIvf/nL A/qdtP3enerq6lxxxRXZunVrVq9efdjXL7/88lx00UVpaGhIdXV1du7cmc997nMnPG641NfX 5/zzz89LL72UXbt2Dfj7zj777EycODH//M//nP379w/hDE8Ns2bNSn19fV588cV+lx/v9qut rc2///f/Pjt27MiXvvSloZrucRs9enQWLlx42OXt7e159tlnh2FG702n6s93oP/vD/Tx6sIL L8zIkSNTVVWVtra2vP7669m2bduQ3odedXV1ueCCC7JixYq0tbWdlNuEoTAoUXTNNddk1apV h0XM9ddfn8cff7zvCeNgjztdzJ07N9dcc01aW1sP+9rGjRv7RdG8efNyzTXXZMqUKdm3b99J iaKampp0dXWlra0tPT092bdvX5LKfzZdXV3p6ekZ8jkMpl/5lV/J/Pnz87WvfS3bt28f8ts7 3bbfcJk9e3aWLFmSnTt3HjGKHnnkkTzyyCNJkltuuSVz5sw54vUMdNxwGT16dG6++ebs3Llz wFE0bty43HHHHamtrc3zzz9/2kdRc3NzPv7xj+f+++8/7GvHu/26urqyfv367NixYyimesJG jBiRadOmpampKbNmzcru3bvz+uuvZ8uWLe/qeq+88so0NzfnBz/4wSDNdHgM9H6cqj/fgf6/ P9DHq2uuuSZ1dXXZu3dvGhsbM2rUqKxbty7333//EV9YHUzt7e2ZN29ezjrrrHznO98Z0tuC oWT3uVNEZ2fnO75aPX369HzsYx/L8uXL88orr+TCCy88KXNbsmRJFixYkLVr16arqysTJ07M nXfemVmzZuUrX/lKtm7delLmMVimT5+eUaNGpaamZlCu752i5nTbfsNl4cKF2bBhQ6ZNm5bJ kycf88nhQHeTeS/uTnMkN910U1599dVTLvCGyrXXXpvNmzdn1apV7/q6enp6ct999w3CrAbX zp07893vfjdJ8kd/9EdZvnx5fvrTn77r6z3zzDMH7bFvOA30fpyqP99kYP/vH+qdHq+effbZ /PCHP0xS+X/uX/7Lf5m77rorX/rSl4b8se7hhx/O7/7u72b27NlZu3btkN4WDJXTIopqampy 0003Zf369af1bgWvvfZa/st/+S/Zu3dvrrzyypN2u3v27Elra2vOPvvs1NbWZtq0adm2bVte eeWVjBgxot/Yc889N5dccknGjRuXgwcPZteuXVm7dm2WL1+eAwcO9I1raGjIlVdemdmzZ6ex sTFtbW3ZtGlTfvazn2XPnj1Jkg9/+MN9+1Jv27Ytjz76aK677rrMnj07nZ2duf/++7Nt27a0 tLTkoosuytSpU9PU1JQDBw5k8+bNefLJJ/tWgkaMGJHzzz8/06dPz4QJE5JU3qC4o6MjSfLU U0/lhRdeOK759aqvr8+/+Bf/ItOmTUtbW1uefvrpPPXUUye0/TiyqqqqLFiwII899ljq6uqy cOHCd/2K+eli4cKFmT59eu6///4ioqipqSnnnHNOXzCcqNmzZ2fBggV9n7e2tubJJ5884tjG xsYsWrQokydPTk1NTXbt2pUXXnghr776at+Yyy67LK2trdm/f38uu+yyNDQ0ZMOGDfnFL37R 9zgzFC677LLs3Lkze/fuzaWXXpqmpqbs2LEjTz75ZHbv3p2k8vi3aNGivlWnzs7O3HTTTX3X 8cMf/rDfizsjR47MxRdfnBkzZqSmpibr1q3LU0891e/YycWLF/c7rvKpp57KBz7wgbS0tKS1 tTUPP/xwOjs7U1VVlTlz5mTOnDkZN25c2tvbs379+ixfvvyIT9QXLFiQs88+O6NGjcq+ffuy bt26PPfcc+np6Tmu+3E8P98xY8bk0ksvzcSJE9PR0ZFVq1blhRde6LdNBrKdTyWvvfZavv3t b+fTn/50Lrzwwn57lQzk/vY61s/jUNu2bcv69etz2WWXiSLes06LKGpqasqiRYtyxhlnnNZR lKRvGbyqquqk3eYTTzyRpUuX5rd+67fS3d2dpqamPP3003niiSf6jTvvvPNyxx139LuspaUl M2bMyLJly/ouq6ury6c+9am+OEkqu8OcccYZefjhh/sumzJlSpqbm5Mk06ZNy/jx4zNv3rwk ycGDB/sONp06dWpfJHZ3d6e6ujpTpkzJ+eefn7/5m7/Jzp07M3bs2Nx222395jZt2rS+v7/8 8svHPb9et99+e8aMGZMkGT9+fKZNm5YDBw5kxYoVx7X9OLqZM2emsbExL730UsaOHZuFCxfm Jz/5yXBPa9iNGDEiN9xwQ3784x/3e9HhdDZ37txUVVUdcRfK43HgwIG0tbWloaEh8+fPT1tb 2xGfNFdVVeWTn/xkqqurs3LlynR1dfU9rh0aRfPnz+87KP65557L3r17c/nll2f+/Pn56le/ OmSv1M+fPz91dXUZO3ZsVqxYkc2bN+eiiy7KwoUL84UvfCEdHR2pra3N5MmT++5PVVVV6urq jnh9dXV1ufvuu9PQ0JBnnnkmPT09ufrqqzN37tzce++9feP27duXpqamTJ8+PfPnz8/06dMz duzYbNiwIU1NTens7ExSCcrbb789q1evzsaNG9PY2JjrrrsuM2bMOCxsb7311ixatChr167N 1q1b09jYmEsvvbTv//XjuR8D/fmeccYZufvuu7Nr166sWrUqo0aNyu23354FCxb02z1zINv5 VLNly5Zs2rQpCxYs6Iuigd7f5J1/Hm+3atWqfPCDH0x1dfVpswpPWU6LKGptbc03v/nNk3J8 yFCpqqrqe2Ldq6en57BViUPHn0y33HJLJk2alHvvvTeLFy/OkiVLsnHjxn5PCmbPnp0k2bp1 a/72b/821dXVaWlpyejRo/udbW3x4sWZMGFCuru784Mf/CBr1qxJQ0NDmpqa+v3H8rnPfS6T Jk3Kpz/96YwcOTJz587NP//zP2fDhg3p6enpe9XyueeeS1dXV9atW5e9e/dmzJgx+eQnP5lx 48blvPPOy89//vO0trbmi1/8Ypqbm/PRj340SfKd73ynL6wO3c4DnV+vtra2fP3rX0+S3HXX XWlubs65557bF0UD3X4c3cKFC7N58+bs3r07L774Yq666qq0tLSctAOJT1Uf+MAHsn///vzy l7/sF/mns96V1nd7BsdNmzb1HZ86atSojBs37ojjxo4dm5aWltx7771Zs2bNMa9z0qRJueee e/oeV1asWJF//a//dc4777whfcFu+vTp+eIXv9i3evryyy/n7rvvzsyZM7N69er8/+2de1xU Zf7HP3MBhmFguImggqhcRBAt2SxFVyWVm5fKW6u5q9mKlVi7me6u+XvltllmpFtbruWSl0rL XqGybopuKpJKoijiJSFQuQooxAzXmXl+f7Bz4jADnAMzjMr3/Xo9rxfz8D3n+T7Pec73nO9z +Z76+nqkpKQAABYvXgyNRsP9bsvEiRPh5OSEjz76iNv/mJubi6VLlyIwMJBzRi9duoRLly4h IiICcXFxqKqqwieffGIyg6DVapGUlMR7SS4tLcXMmTORmprKOU++vr4YNWoUDh8+3O6Mjph6 CL2+U6dORW1tLbZt28Y9U/Ly8jBv3jzk5OTwnO/O2lkscrkc06dP5+U1NzfjP//5j+hztUdl ZSW8vLy430LrK+R6tOXmzZuc4/qg7f0megcPhFMEAD/++KOtVegWdnZ2ePnll3l5jY2NeOut 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 ffGg5P8BkaBGWBh3kagAAAAASUVORK5CYII= --------------pcXrWObKEpuSLXjwgerBofRu Content-Type: image/png; name="after.png" Content-Disposition: attachment; filename="after.png" Content-Transfer-Encoding: base64 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 uaxfvx6z2cxll13GtGnTvP6t+qZNm/joo49ITU2lQ4cO3H777U5h1OS3tLSUDz74gLS0NNau XUtgYCAPPPCAff3bb7+NVuvePBeffPIJEydOdHjc6/777+fZZ5/ls88+s1+gvvfeeyQlJREW FsacOXPIzc1l4MCBPPzwwwQHB7udPneOb2pqKrNnz2bXrl32x/smTpzocBfmvffeo3379sTE xDBnzhzS0tLo2LEjjz76KAkJCQ7xZWdn8/7777N9+3ZMJhNt2rThhhtuYNiwYW6VnSsajYab b76ZJ554gvT0dPvyV199lZiYGIc7H7m5uTz77LPcc8899OrVC6g8HhkZGRw5csT+edWqVQCM GDGCcePGuRUO1NX7t956i5SUFKDyWEybNo0XXniBPXv2kJSUxKuvvkpgYKDXy68uauqBO+HU ao78unN+qEmfmvPXG9Scl+62a56szzabjRUrVvDzzz9z5MgRDAYDl156KbfffrvLd3wWLlzI jz/+SGZmJtHR0VxxxRXcdNNNaLXac6b98zRP9qvNVU+FEMJbPDL7XFhYGNHR0eh0OpYuXcp3 333XqPgKCgoYNGgQr7zyCh06dKB79+689NJLXHvttZ5Ibq2WL1/OkCFD2LRpEwMGDKCgoIAb brjBKZya/JpMJrZv305WVhZWqxWLxUJxcbH9z11HjhwhKyuL4cOHOyz38/Nj4MCB/PHHH/Zl CxYs4KmnnuLmm28mMTGRrl278tZbb3HFFVdgNpvdTp/a47t//3769OnD4sWL6du3L0ajkalT p3LLLbc4hFuwYAGzZs1i7NixBAUF0a9fP3744QeGDBnisG9FUbj00kuZN28eHTt2pG/fvmRm ZrJu3Tq3y682mzdvBuCiiy6yL/vmm29Yvny5Q7jCwkLeffdd+8CmatuDBw+Sl5cHVD4eV1V+ JpPJ7XBq631sbCwGg4EdO3bwzjvvcNttt/Hrr7/Srl07MjMz7QOipig/V9TWA7Xh1Gqu/Ko9 P9SmT8356w1qzkt32g1P1+ecnBymTJlCXl4eAwYMICoqipkzZ3LnnXc65WXatGmMGzeOkydP 0rlzZywWC++++659oHMutH+e5ul+tbnqqRBCeE10r9HKQ/NtSmlJsf0PUBRFUWbNmqUEBgYq J0+edPhLS0tTajNx4kRl4MCBta6vcv/99yvt27d3uW7GjBlKdHS0curUKfuyHTt2KBqNRlm8 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 gBHWtavyMZQ6d1Q+3s6BLUN7m+8V3QeSve9wcoeO7UP3hPRYtvNgfm59BnM/htpQbpcpS5Km M5O1X33nsUP972Mode0Z2ijt7T78rHYnSmfbOx/jNxyPV4M1lL9/wGFEEQCcKJM+UFlpuPgv K8esHOl00ACccKIIAE6U930xqW1KtjycPPlvR3o2ALxBFAHAifLAWSM9AwCOwCm5AQCAooki AACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAA KJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIom igAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIA AKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAo migCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaK AACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAA oGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACia KAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooA AICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACg aKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIpWO9ITAE4dv/KtW0d6CkOifub6 Ib2+A+tnDun1AcChvv+x+0d6Cu95VooAAICiiSIAAKBooggAACiaKAIAAIrmRAsADJuqqqo0 NDSku7s7HR0dIz2dU5btfHzGjBmT+vr6/s+7u7uzc+fO4x4HvHeJImBEXHDBBdm5c2fWrx94 prdFixZl8+bN2bRp07CMG4yqquqcPXtxxjWflhdffjKvt1W+t6ZmVC6Yf1VWvPREOjr3H/Z9 d9z4h3n6xZ9nxUtPDPq2jtfUqVMzbdq0I35t5cqV2bt3b//n48ePz/z58zNu3Ljs27cvL730 UrZs2TLsc0ySxsbG/MEf/EFWrVqVb33rWwO+NnHixMyePTtJsn///jz33HOpra3NRRddlCTp 6enJk08+eULm+V73dtu5ZNXV1bn88suzdevWrF69+rCvX3bZZbnwwgvT0NCQ6urq7Ny5M5/7 3OeOe9xIqa+vz3nnnZcXX3wxu3btOuq4mpqaXHzxxYddvn379qxdu3Y4p3hSmDVrVurr6/PC Cy/0X9bU1JSzzz47Bw8ezPLly/svnzBhQubMmZP29vasWLFiJKbLCSaKgBFx9dVXZ9WqVYdF zHXXXZfHHnusP2KGetxgfOh9H8npp83OS68+nV+/+X/P1+//k+zcvTUXLvhAzplzWZat/PER v6+7pztdBzsHfTvvxty5c3P11Venra3tsK9t3LixP4ouv/zyXHvttdm5c2d27NiRBQsW5Jpr rsn9998/4AnAUKupqUl3d3fa29vT29ubffv2JUlqa2vT3d2d3t7eTJs2LTfddFOSpL29Pc89 91xaW1v7L+vo6BBF72Aw27lks2fPzpIlS7Jz584jRtHDDz+chx9+OEly8803Z86cOUe8nsGO GyljxozJTTfdlJ07d75tFDU3N+emm27K7t27093d3X/5Cy+8cMpHUUtLSz7+8Y/nvvvuG3D5 uHHj+h9z1q1b1/+YumjRolxxxRXZtGmTKCqEKAJ4i4VnLs79P/1SXtm8MlMnzclZsy7N0hU/ ymXn3Zh/eOxvB4ydf8bFOeMFR5yuAAAgAElEQVT0s/PqlhfS3X0wYxrH5X3n3pBZU8/Od3/8 +WGNpK6urnd8tXrVqlXZtm1b1qxZk6Sym9VHP/rRfOhDHxrWKFqyZEkWLFiQtWvXpru7O5Mm Tcodd9yRWbNm5Stf+Uq2bt064H40NjamoaEhkydPTpIcPHhw2OZ2KjmW7VyihQsXZsOGDZk+ fXqmTJnytiukPT09g7rOwY47GTU2NiZJvva1rx3xBZVT2TXXXJPNmzdn1apVh32tp6cnu3bt ypw5c/pfiJk3b162bdt2oqfJCBJFQJFqampy4403Zv369XnmmWcGfG1U7eh0dVdiputgR0aN qsuFCz6Qve1tWbvh2QFj2w/sSXdPV86Zc3nmzDg/0ybPyfrNL2TbzldTWzPqhK0cHc2OHTuy Y8eO/s97e3vz6quvZt68eamqqhq2lYQ9e/akra0tZ511VmprazN9+vRs27YtL7/8ckaNGjVg 7Pbt2zNlypRMmDAhkydPTmdnZ/bu3ZumpqYB46ZOnZrLL788U6ZMSW9vbzZs2JCf/exnhz25 O+ecc3LxxRdn/PjxOXjwYHbt2pW1a9dm+fLlOXDgwDGNa21tzYUXXphp06alubk5Bw4cyObN m/PEE09k+/bt/ddVU1OTD37wgznrrLPS09OTZcuWZfXq1bnpppuyadOmPPLII8NyP45lO5em qqoqCxYsyKOPPpq6urosXLjwhO02erLqi6JDd68tQXNzc84+++x897vfPeLXq6ur+x8Xn3zy yYwdOzatra15+umn09raOmDs6NGjc9FFF2XmzJmpqanJunXr8uSTTx72Qk5jY2MWLVqUKVOm pKamJrt27crzzz+fV1555ZjHVVVVZc6cOZkzZ07Gjx+fjo6OrF+/PsuXL39PR/rJRhQBRWpu bs6iRYty2mmnHRZFG7auzsJZl2b/gb2ZMXl+Vr38ZJYs/nh++PjfHXY9G15bnQ2vrc41iz+W Na8+lWmT5mXpc/+YjVtfOlF35ZjU1NTkrLPOyssvvzysu1Y9/vjjWbp0aX7rt34rPT09aW5u zlNPPZXHH3/8sLG7d+/OlClTMnHixEyePDnbtm1LS0vLgDFnnHFG7rzzztTW1qazszPV1dVp bW3NvHnz8sUvfrH/Sd65556b22+/fcD3tra2ZubMmVm2bFn/ZYMdN23atFxxxRVJKq8mV1dX Z+rUqTnvvPPyN3/zN/0H2y9ZsiSXXXZZ//ddf/31Wbx4cVpaWgY8aRnq+3Es27k0Z5xxRhob G/Piiy9m3LhxWbhwYX7yk5+M9LRGVFNTUw4cOFDcSuzcuXNTVVV1xF0o+7z88su54YYbUl1d nXnz5mXr1q3Zt2/fgCiqq6vLXXfdlYaGhjz99NPp7e3NVVddlblz5+aee+7pH1dVVZVPfvKT qa6uzsqVK9Pd3d3/7/etsTOYcY2NjbntttuyevXqbNy4MY2Njbn22mszc+bMo4Yex04UAUVq a2vLN7/5zQGv9vf5x8e+niWX/Xpu++DvZNnKH2dMY0v2tLflpVefOcI1JWfNuiQXn/WhfOm/ /x85f/5Vue2Dv5ev/X//V9oP7B7W+1BVVZWxY8cOuKy3tzd79uwZcFlDQ0Ouuuqq1NXV5Ywz zsjrr7+eBx98cFjnllSOvZg8eXLuueeeLF68OEuWLMnGjRsPe6W0ra0tvb29Oe200zJp0qS8 +OKLmTJlyoAnbjfccENqa2vzzDPP5Pvf/36qq6vz0Y9+NHPmzMnixYv7V2L6TtywdevW/O3f /m1/dIwZM2bAWdkGO+7ZZ59Nd3d31q1bl71792bs2LH55Cc/mfHjx+fcc8/Nz3/+89TX12fR okVJkhUrVuSHP/xhWlpacscddxy2TYb6fhzLdi7NwoULs3nz5uzevTsvvPBCrrzyyrS2tha9 S1RjY2NGjx6dP/zDP0x9fX327t2bFStW5Cc/+Uk6O0d2VXs49a2gvt2ZGTds2JDe3t7MnDkz c+bMyerVq1NTUzNgzAc/+ME0NTXlr//6r/uP31uxYkU+/elPZ968ef3RNW7cuLS2tuaee+7p 33X5SAY7bt++ffnLv/zLAS+wbN68ObfddlseeOCBdHV1DWo78PZEEVCsF1988YiX7963I/c9 cneSpLZmVD79a5/JPz7+9TQ3js/YMROyZfv6dHe/+Z/QK5tX5sGf/7/Ztff1LH3uh9mzb0f2 dwz/7imjRo3Kv/t3/27AZR0dHfnMZz4z4LLa2tpMnjw5o0ePTl1dXUaPHp2WlpbD4mmo/fKX v0xXV1fWrFmTvXv3Zvv27UfcfammpiY7duzIzJkz09TUlB07dqSmpqY/ipqamjJlypQklZNI nHnmmUkqTwrmzJmT6dOn919X38pNa2trbr755ixbtizr1q07bFVssOO6u7uzevXqnH766Zk3 b15qa2uzf//+jB8/vn9XpNbW1v5d1R555JHs3bu3/8nmJZdc0n9dw3E/jmU7l6SqqioLFy7M L3/5yyTJpk2bsnfv3ixcuLDoKFq2bFl27dqVtra2VFVV5cwzz8z73//+nHbaaQNWOk41Y8eO fdsTUCSVF5ReeumlLFiwILNnz84vfvGLnH322QPGnHPOOVm3bl2ampr6d+/teyFqxowZ/VG0 d+/etLW15UMf+lA6Ojry6quvHvE2BzsuqaxUV1VVpbm5uf/0+30vjB3pxT2OnSgChtwNN9zQ f1rlPl/72tcG/URtsLt1DfW4I7lg/vuzt70to2rr8slf/T+zdceGjG2akG888Kc50NmeJNnf sS/Pr/0fSZKOzv15atVPj3hd73a7vNXBgwfz5S9/ecBlR7qve/bsyTe+8Y0klQC57rrr8olP fCKf//zns3v38K1mbdy4MRs3bkySbNmyJT/84Q+POK6+vj5btmzpfwLy1vd/GTNmTP/fb7zx xsO+f/To0f1/f+yxx/p3jTznnHNyzjnnZPv27fne976XDRs2HPO4Cy+8MDfeeGP/bXR3d6e6 uvK+51VVVUkqu2L2OfS4oLc+CRuO+5EMfjuXpO8YsPPPPz/z589PUnkRYeHChfnZz342wrMb OR0dHXn++ef7P9+4cWMOHjyY66+/PhMnTjxln1zX19cPOLbyaF588cXccsst6erqyquvvjog iqqrqzNmzJj+f49vdejjwMGDB/PVr341N9xwQ37zN38zGzduzD/90z8ddpKHwY6rra3N9ddf n/PPPz9JJab6Huv7Hod490QRMOSeeuqpvPzyywMue+tB5F1dXWloaBhwWW1tbUaPHj1gV4Ch HncsamtGZfF5N+ZHv/iv+cCi2/PwL76ZleuW5qPX/4ecO+9/yi9XPHRM1zeY7XIsenp6jvns Yt3d3XniiSfyvve9LzNnzsxzzz133Lc/VGpra7Nhw4b+JxpvjaJDd3n5/ve/37/bSp9DT57Q 09OTH/zgB3nsscdyySWX5OKLL87EiRPzG7/xG/nsZz/bf8zOYMbV1tbmlltuSU1NTR555JEs Xbo0nZ2duf3223Puuef23+b+/W++Z1VDQ0Pa2yux/NYTHQzH/eDIzj777OzevTvPPvvmiVG2 bNmSRYsWZfz48d549RB9kT1u3LhTNoq6uroGvPnu0fTtMrdy5crDXmDq7e1NT09PHn300fz8 5z9/x+vas2dP/tt/+2+ZMGFCrrjiinz0ox/NE088kYceeuiYx1177bWZP39+vv71r/e/ANLa 2prf/d3fHczdZ5BEETDktmzZ8o6rHzt27MikSZMGXNb3+euvvz5s447FBfPfn/YDu7Nm/VO5 +apPZfe+yhOGPft2ZFzTxGO+vsFslxOh7zikk2U/9JqamjzzzDN5/fXX09vbOyAykko4trW1 paWlJbNmzRqwD/3o0aMHrMDMnTs3r732Wnbt2pVHHnkkzz77bH7nd34ntbW1mTRpUn9MDGbc +PHj+48pWLFiRTo7O1NfX58ZM2YMmN/27dvT29ubqqqqXHTRRXnsscdSW1ubBQsWDPv94MgW LlyYFStW5Kc/fXPVtqamJueee27OPvvsPPbYYyM4u5PLaaedluTwlc1TyZ49e/rv59tpb2/P 3XffPeAFij69vb3ZuHFj5syZM6go6rNjx4488MADSSonUHlrFA1m3KxZs/Lcc8/1B1GS/rcv YOiIImBEPPPMM/nwhz+ca665Js8880waGhpy/fXXZ9euXQNWU4Z6XJ+Ghob89m//dlauXHnE 3Y36V4me+K9Jkh27tuS08dOycetLmdgyNc+ufm88qbruuuuyZcuWbN26NV1dXWltbc2SJUuy e/fuk+rNGnfv3t2/K9+ECRMO+/ojjzyS22+/Peeff34WLFiQ7du3Z9SoUZkwYUKWLl2aH/3o R0mSxYsX978L/Z49e/p3aenp6RkQx4MZt2vXrnR1dWXUqFG56667snnz5kydOrX/WKJD5756 9erMnz8/S5YsyQUXXJDGxsbDxg3H/eBwU6dOTUtLy2G7IHV3d2fNmjWHRdHo0aP7f141NTWZ MGFC9u7de9iJBwY7biTNnDlzwG6YSeUNSfteaLjqqquyffv2/uOqZs6cmWuuuSZr1qw5ZVeJ ksoxZeecc05qa2vf8cx7b7eK+Oijj+bOO+/MjTfemKVLl/affGXu3LlZs2ZN/3adOnVqTj/9 9Lz00ktpb2/PuHHjMmPGjMP+7Q523K5duzJr1qy0tLSks7MzZ5xxRq655prj3BocjSgCRsTz zz+fH//4x7nyyitz5ZVXJqkccH7vvfcO+E9rqMf1qampSWNj44D9wA91/vyrsr9jb9a8+lSS 5Cf//J386tW/ncXn3ph9+3fluTXvjSjq6enJTTfdlLq6uiSVVzvXrl2bf/iHfzhpVooG47nn nktXV1euvvrqTJkyJVOnTk1SCZJNmzb1j9uyZUv/CRv6DoTevn17HnnkkQHHTw1mXGdnZx54 4IHcfPPNGTNmTObMmZNnnnkmGzZsyC233DJgfg8++GCampoybdq0tLa25qWXXsr+/fsH7GY3 HPeDwy1cuDD79+/P+vXrD/vaypUr82u/9mtpaWlJW1tb7rjjjsybN2/AmH/zb/5NkuTpp5/O 9773vSQZ9LiRdtVVVx122de+9rX+bdHb25tbb721f1eyzs7OLFu27JQ/VflLL72UG264IWee eebbnpb7naxduzbf/OY3s2TJkrzvfe9LUtmmmzdvPuzEPVdeeeWAx4n169f3rwQd67iHHnoo H/7wh/P7v//7SZLXXnst3/3ud/Obv/mbx31fOFzVpPNv6v3Yf34gn7muvf/CxqYxb/MtcLg3 3gC638UXV/bFXbbMAYCngotfeMsFd7yxr/W9A3++v/KtW4/5uqurqzN27Nh0dnb2H4txIsYl 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 O1hX+UhvUnfICtJg5gcAjAhRxEntzjvvzMc+9rFs37499fX1GTdu3AkZlyQTJ07Md7/73TQ2 HmWXqZPcJz7xiXziE594x3Hf+ta3TsBs3oUxr1c+emoqJz2o7j76iQfq9lU+jja2fs/AU1q/ nfrdldNy97zxxq1913PoG6geqvZA5fTcvdWV2z/SPN9pftVdyaQjrM41vV75AACGhSjipFdb W5vJk4/y6vwwjksqp6/mJFHdnaT7HYcd89i3U5WBp+8e1Pf0JDXvcJKEoZofADAkHFMEAAAU TRQBAABFE0UAAEDRHFPECTV27AdHegqcBP7orpGeAQDAm6wUAQAARRNFAABA0UQRAABQNFEE AAAUTRQBAABFE0UAAEDRRBEAAFA0UQQAABRNFAEAAEWrHekJcGq7+OLekZ4CAAC8LStFAABA 0awUMSyWLasa6SkAAMCgWCkCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAA oGiiCAAAKJooAgAAiiaKAACAotWO9AQ4NSxaNNIzAACA42OlCAAAKJooAgAAiiaKAACAooki AACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAA KJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIom igAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIA AKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAo migCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaK AACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAA oGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACia KAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooA AICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACg aKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJoo AgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAA gKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBo oggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigC AACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACA ookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGii CAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIA AIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICi iSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKII AAAomigCAACKJooAAAVO/I0AACAASURBVICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAA oGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACia KAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooA AICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACg aKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJoo AgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAA gKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBo oggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigC AACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACA ookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGii CAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIA AIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICi iSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKII AAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAA iiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJ IgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggA ACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACK JooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAooki AACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIomigAAgKKJIgAAoGiiCAAA KJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICiiSIAAKBooggAACiaKAIAAIom igAAgKKJIgAAoGiiCAAAKJooAgAAiiaKAACAookiAACgaKIIAAAomigCAACKJooAAICi1R7t C7feeuuJnAcAAMA7uv/++4f8Oq0UAQAARRNFAABA0UQRAABQNFEEAAAU7agnWoC3qqqqSkND Q7q7u9PR0THS0xlR1dXVmTBhQpKkra0tBw8efMfvsf2G15gxY1JfX9//eXd3d3bu3Hnc4yjH 6NGjc/DgwfT09Iz0VBgG7+Wfr8crOHGGJIouuOCC7Ny5M+vXrx9w+aJFi7J58+Zs2rRpWMad KqZOnZpp06Yd8WsrV67M3r17D7t87ty5aW5uzvLly4d7ev0aGxvzB3/wB1m1alW+9a1vnbDb PRmNHTs2v/d7v5ck+fKXvzyo30nb792prq7O5Zdfnq1bt2b16tWHff2yyy7LhRdemIaGhlRX V2fnzp353Oc+d9zjRkp9fX3OO++8vPjii9m1a9egv++ss87KpEmT8s///M/Zv3//MM7w5DBr 1qzU19fnhRdeGHD5sW6/2tra/Pt//++zY8eOfOlLXxqu6R6zMWPGZOHChYdd3tHRkWeeeWYE ZvTedLL+fAf7//5gH68uuOCCjB49OlVVVWlvb89rr72Wbdu2Det96FNXV5fzzz8/K1asSHt7 +wm5TRgOQxJFV199dVatWnVYxFx33XV57LHH+p8wDvW4U8XcuXNz9dVXp62t7bCvbdy4cUAU zZs3L1dffXWmTp2affv2nZAoqqmpSXd3d9rb29Pb25t9+/Ylqfxn093dnd7e3mGfw1D6lV/5 lcyfPz9f+9rXsn379mG/vVNt+42U2bNnZ8mSJdm5c+cRo+jhhx/Oww8/nCS5+eabM2fOnCNe z2DHjZQxY8bkpptuys6dOwcdRePHj8/tt9+e2traPPfcc6d8FLW0tOTjH/947rvvvsO+dqzb r7u7O+vXr8+OHTuGY6rHbdSoUZk+fXqam5sza9as7N69O6+99lq2bNnyrq73iiuuSEtLS37w gx8M0UxHxmDvx8n68x3s//uDfby6+uqrU1dXl71796axsTFNTU1Zt25d7rvvviO+sDqUOjo6 Mm/evJx55pn5zne+M6y3BcPJ7nMnia6urnd8tXrGjBn52Mc+luXLl+fll1/OBRdccELmtmTJ kixYsCBr165Nd3d3Jk2alDvuuCOzZs3KV77ylWzduvWEzGOozJgxI01NTampqRmS63unqDnV tt9IWbhwYTZs2JDp06dnypQpb/vkcLC7ybwXd6c5khtvvDGvvPLKSRd4w+Waa67J5s2bs2rV qnd9Xb29vbn33nuHYFZDa+fOnfnud7+bJPmjP/qjLF++PD/96U/f9fWefvrpQ/bYN5IGez9O 1p9vMrj/9w/1To9XzzzzTH74wx8mqfw/9y//5b/MnXfemS996UvD/lj30EMP5Xd/93cze/bs rF27dlhvC4bLKRFFNTU1ufHGG7N+/fpTereCV199Nf/lv/yX7N27N1dcccUJu909e/akra0t Z511VmprazN9+vRs27YtL7/8ckaNGjVg7DnnnJOLL74448ePz8GDB7Nr166sXbs2y5cvz4ED B/rHNTQ05Iorrsjs2bPT2NiY9vb2bNq0KT/72c+yZ8+eJMmHP/zh/n2pt23blkceeSTXXntt Zs+ena6urtx3333Ztm1bWltbc+GFF2batGlpbm7OgQMHsnnz5jzxxBP9K0GjRo3Keeedlxkz ZmTixIlJKm9Q3NnZmSR58skn8/zzzx/T/PrU19fnX/yLf5Hp06envb09Tz31VJ588snj2n4c WVVVVRYsWJBHH300dXV1Wbhw4bt+xfxUsXDhwsyYMSP33XdfEVHU3Nycs88+uz8Yjtfs2bOz YMGC/s/b2tryxBNPHHFsY2NjFi1alClTpqSmpia7du3K888/n1deeaV/zKWXXpq2trbs378/ l156aRoaGrJhw4b84he/6H+cGQ6XXnppdu7cmb179+aSSy5Jc3NzduzYkSeeeCK7d+9OUnn8 W7RoUf+qU1dXV2688cb+6/jhD3844MWd0aNH56KLLsrMmTNTU1OTdevW5cknnxxw7OTixYsH HFf55JNP5gMf+EBaW1vT1taWhx56KF1dXamqqsqcOXMyZ86cjB8/Ph0dHVm/fn2WL19+xCfq CxYsyFlnnZWmpqbs27cv69aty7PPPpve3t5juh/H8vMdO3ZsLrnkkkyaNCmdnZ1ZtWpVnn/+ +QHbZDDb+WTy6quv5tvf/nY+/elP54ILLhiwV8lg7m+ft/t5HGrbtm1Zv359Lr30UlHEe9Yp EUXNzc1ZtGhRTjvttFM6ipL0L4NXVVWdsNt8/PHHs3Tp0vzWb/1Wenp60tzcnKeeeiqPP/74 gHHnnntubr/99gGXtba2ZubMmVm2bFn/ZXV1dfnUpz7VHydJZXeY0047LQ899FD/ZVOnTk1L S0uSZPr06ZkwYULmzZuXJDl48GD/wabTpk3rj8Senp5UV1dn6tSpOe+88/I3f/M32blzZ8aN G5dbb711wNymT5/e//eXXnrpmOfX57bbbsvYsWOTJBMmTMj06dNz4MCBrFix4pi2H0d3xhln pLGxMS+++GLGjRuXhQsX5ic/+clIT2vEjRo1Ktdff31+/OMfD3jR4VQ2d+7cVFVVHXEXymNx 4MCBtLe3p6GhIfPnz097e/sRnzRXVVXlk5/8ZKqrq7Ny5cp0d3f3P64dGkXz58/vPyj+2Wef zd69e3PZZZdl/vz5+epXvzpsr9TPnz8/dXV1GTduXFasWJHNmzfnwgsvzMKFC/OFL3whnZ2d qa2tzZQpU/rvT1VVVerq6o54fXV1dbnrrrvS0NCQp59+Or29vbnqqqsyd+7c3HPPPf3j9u3b l+bm5syYMSPz58/PjBkzMm7cuGzYsCHNzc3p6upKUgnK2267LatXr87GjRvT2NiYa6+9NjNn zjwsbG+55ZYsWrQoa9euzdatW9PY2JhLLrmk///1Y7kfg/35nnbaabnrrruya9eurFq1Kk1N TbntttuyYMGCAbtnDmY7n2y2bNmSTZs2ZcGCBf1RNNj7m7zzz+OtVq1alQ9+8IOprq4+ZVbh KcspEUVtbW355je/eUKODxkuVVVV/U+s+/T29h62KnHo+BPp5ptvzuTJk3PPPfdk8eLFWbJk STZu3DjgScHs2bOTJFu3bs3f/u3fprq6Oq2trRkzZsyAs60tXrw4EydOTE9PT37wgx9kzZo1 aWhoSHNz84D/WD73uc9l8uTJ+fSnP53Ro0dn7ty5+ed//uds2LAhvb29/a9aPvvss+nu7s66 deuyd+/ejB07Np/85Cczfvz4nHvuufn5z3+etra2fPGLX0xLS0s++tGPJkm+853v9IfVodt5 sPPr097enq9//etJkjvvvDMtLS0555xz+qNosNuPo1u4cGE2b96c3bt354UXXsiVV16Z1tbW E3Yg8cnqAx/4QPbv359f/vKXAyL/VNa30vpuz+C4adOm/uNTm5qaMn78+COOGzduXFpbW3PP PfdkzZo1b3udkydPzt13393/uLJixYr863/9r3PuuecO6wt2M2bMyBe/+MX+1dOXXnopd911 1//f3rnHRVXmf/wzF2AYBoabCCqIykUE0ZLtouhqpHLzUnlrNXc1W7ESazfT3TV/r9w2y4x0 a8u1XPJSadkrVNZN0U1FUkkURbwEBCpXAYWY4Tozz+8Pdk4cZoBzYIZR+b5fr+f1Yh6+5zzf 5znP+Z7zfS7fg8GDByMvLw8NDQ1ISUkBACxevBgajYb73Z5JkybByckJH330Ebf/MTc3F0uX LkVgYCDnjF66dAmXLl1CREQE4uLiUF1djU8++cRkBkGr1SIpKYn3klxWVoaZM2ciNTWVc558 fX0xZswYHD58uMMZHTH1EHp9p06dirq6Omzbto17puTn52PevHnIycnhOd9dtbNY5HI5pk+f zstraWnBf/7zH9Hn6oiqqip4eXlxv4XWV8j1aM+NGzc4x/V+2/tN9A3uC6cIAH788Udbq9Aj 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 --------------pcXrWObKEpuSLXjwgerBofRu--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 30 Jan 2025 08:40:10 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 30 03:40:10 2025 Received: from localhost ([127.0.0.1]:44248 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdQ5q-0002yj-7n for submit <at> debbugs.gnu.org; Thu, 30 Jan 2025 03:40:10 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:49353) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tdQ5n-0002yG-Np for 75056 <at> debbugs.gnu.org; Thu, 30 Jan 2025 03:40:08 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-438a39e659cso3081175e9.2 for <75056 <at> debbugs.gnu.org>; Thu, 30 Jan 2025 00:40:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738226401; x=1738831201; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6L6S+3GYhyvBMaDFTE+yvQ8wMmwRxTpdi77mqv0kq1w=; b=e+tA4GSJzfO54/5RbSWZ2PQ/aSgFtj202StvXU4+WBe69dPBE5gwPcMU8osAuCm8HX RS+Dtl9AtMbjWpyqFwprw29g+fadenrg622s6nLcriOVztqkD2RAtmhWnOQGpCiVU5FR Xf2lhfTDhejKSpC3uhk1hfly+f8RJXDfGo/TmrVaYGi6yosBOC9zC7wuPH6CJddI1A7L eEXfbYzjYDiuBM3vu9mxB9nWEjhpokKOUKjwXLcNIVlkC40nanunR62g63zCnt8kjHC0 wO7qSHRZ+7D2LkVwpgecXO9e3os9st/PK4bhRZKWh693CwieaQPSt7Io3RuaJxe2qnWv l9vQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738226401; x=1738831201; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6L6S+3GYhyvBMaDFTE+yvQ8wMmwRxTpdi77mqv0kq1w=; b=pZ+7Zg/ApZz/67xp5sEsDHCZOj3cdO8oippoUdswoYcCV2GcMtsGDFTZMxk3PkY0HM S27+kArHJHNZ3KEUgisKJTAuHHzvY33x9T/cV0xSBinhrTykE2nIb58kcMSoWbFr4koy zir6O3CgIIUenm4n1AflbhvSDC9UhkDT24ntQllNIAUa4JblqSG+99UcjeyN9AQzmtyq LIvT/DZnWWKa1H2S0gKJaPgi/5HS2mUUHkEn3OODIk8qGvI7CbKB3woTU9m2S1xaSjih mzXBZN34NTEpU9gyJx4InnFPlugs9VzBJuK6AmqQ6TXoMC9J5Am3FQ8iCfQ/sBeUlkf3 zjCw== X-Forwarded-Encrypted: i=1; AJvYcCVnOn3gxZrOObiBMMrlLzfIEO68a9Pll/5sFth2Ee2HZQK/nYsrjmIYd20dU1tDbfa824P4qA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwQF8co700g7YWLXcXC0spfIUVNPcD3jLtMH8G0wFR5i+h/h/s/ cc7gBxkzUdqAArQtsA8y63t5/rN843GrsNESZBw1wWjp1MM2zF1h0TP/Zr8J X-Gm-Gg: ASbGncshhKhH6rujoVUDrnFmdzbCBsoR9pMuSZ1g2OBp9gzvsihLl8k8SL6YGlpEFKk UHVMrYbNG4z88Xvr6BvhHKnWjoElZM9eaUC4rgTTDEzS4cfrQnKCBXbz+siQGUFfb8+bd8VMg+8 BR2GL2byQpHp3SFWko3xmLYhbFQMEjT2hLuabFWajxK3QmADVPJBW3LOt5zcAv88fBshEdmQcFn AI1cQUD2IAFPnOTAJj/o3mGDlIOborXJaArcRM32qPunabKzcZiS4+XjdPIl/ib4B6WinytYZZR Sz9pAW9D+Gr2XwGbPj+2N6YmU9ZgrnJX3Lm89zM8zx6pwh+1s0fAV+iqAX5CxWw58vacVRp83Ju luO4HA5Gv3Eys40mGhHWoy2m6 X-Google-Smtp-Source: AGHT+IGFgIFRR/VeC7khXWpDOgRICROQ+fj8d2sdnyzhvr4cXcRC5NssUmdaBPzg0YHtz/6dzIXT9Q== X-Received: by 2002:a05:600c:45c5:b0:434:e2ea:fc94 with SMTP id 5b1f17b1804b1-438dc3c3292mr66529065e9.11.1738226400999; Thu, 30 Jan 2025 00:40:00 -0800 (PST) Received: from pro2 (p200300e0b720a900dc01849cb197321a.dip0.t-ipconnect.de. [2003:e0:b720:a900:dc01:849c:b197:321a]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c5c1d1d03sm1295028f8f.99.2025.01.30.00.40.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jan 2025 00:40:00 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> (martin rudalics's message of "Thu, 30 Jan 2025 09:32:25 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> Date: Thu, 30 Jan 2025 09:39:59 +0100 Message-ID: <m2ed0k8zkw.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> It has no inherent special purpose, and probably has a bug as you >> describe. Like perhaps the one for the size. Both are an attempt to >> mimic what is done for window-system frames, while being depressed that >> that cannot be easily reused, and being too lazy to rewrite the whole >> frame parameter department =F0=9F=99=82. > > The position handling is inherently broken on window-system frames too > because we translate negative values to positive ones after the window > manager has processed them. But I'd like to handle values like (+ 10) > to make child frame dragging work so I'll implement that next. =F0=9F=91=8D > >>> Also when I want to move a child frame to the left of its parent via >>> >>> (modify-frame-parameters nil '((left . 0))) >>> >>> the left border disappears. Is that intended? >> >> If I understand that correctly, then probably yes. The borders are drawn >> around the frame, so the left border is at left - 1, the right at left + >> width + 1, and so on. > > I see. > >> Whatever is outside of the terminal is clipped. > > Didn't you once mention that borders can be displayed more nicely? I > obviously forgot how to do that. In either case I'd like to resize > child frames by dragging their borders with the mouse. > Yes, now even documented: NEWS: 50 +++ 51 ** 'standard-display-table' now has more extra slots. 52 'standard-display-table' has been extended to allow specifying glyphs 53 that are used for borders around child frames and menu separators on = TTY 54 frames. 55=20 56 Call the function 'standard-display-unicode-special-glyphs' to set up 57 the 'standard-display-table's extra slots with Unicode characters. 58 Please see the documentation of that function to see which slots of t= he 59 display table it changes. _Much_ nicer than the default IMO. I still wished Emacs would do that by default, but here were objections.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 30 Jan 2025 08:32:36 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 30 03:32:36 2025 Received: from localhost ([127.0.0.1]:44227 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdPyV-0002fj-Qr for submit <at> debbugs.gnu.org; Thu, 30 Jan 2025 03:32:36 -0500 Received: from mout.gmx.net ([212.227.15.18]:51179) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tdPyS-0002fU-TE for 75056 <at> debbugs.gnu.org; Thu, 30 Jan 2025 03:32:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738225946; x=1738830746; i=rudalics@HIDDEN; bh=QkqZYarrDvJ0AWWX21uEkoAgiraxeviAcchIlm5gkow=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=LoeBaZ7aU/ipR/NzjGORIZcr+EoLySQt49lkylglnFyzOlTY3kt1gyV2JABYLwyX /QK7fphi3X6wwecX8n9gbPhSeIUq3lVP21Pq/kd0ripwiz20XJIMqtQRK+G1GU7H0 001HSN/RtMyvGeR/wtpy96ySNVFJmfuGXH9VqdbH+/WdbUC9JSA2vYlB6x118m0UL x79VflMixke9EQcP8hAIXkpYEoGGODKFY6E47OWyZ1nbLIdcr0+uXAYxVWaOzhfut PjYPaR/Mh0Ev45n6VwZuOqKO7zZUpo4n4yD6E+NE6IZm6jtWo/96DH5BE9X1ieg5y aXfPpnTe5eMQJFGDxg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.131]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Mdeb5-1t459f1erJ-00nDsr; Thu, 30 Jan 2025 09:32:26 +0100 Message-ID: <56c17d3a-7cbd-4e1d-85e4-4f54be4ce237@HIDDEN> Date: Thu, 30 Jan 2025 09:32:25 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2zfj91loi.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2zfj91loi.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:pKtm7T2gFwQ3WhFv0WwQmbNZq8g3mLX/ffy+3hXgHjCOBW0jekl wxqhyOFy7Jnzvu83NKWalGXva3SZ2JTMin7t4UI2wxAurvIITzb2mVYSyXh2M8Uriqmz4gx UMq1HFyfowQGObeA7uM6cKGrCYVRdqQyOSk3RZJdjamxzQcR1l6Og51kds71fqKj6dypYmU tpqTI/k/G1y/u+YZ99nkA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:L8CApGxGSIE=;fh9EVADCvKahaZdjh/d0ebNKhI1 hCcqWU/SAqxS4PYIcJvuQJ8linOANW09pkgplqrGmTiuliQhVKW1nTGZN8EPPyzphBIN0/95Z UXT2xUCM7V47hQKbQJvaPhz7URqoUe6t1nYKiL/bZL1r8aj8C4gwh55sLd7HZUf9jP5Wi2Rzv uJ7QudjQboYzRM9jZBOuSOeukonfSw38GP77EMEwF6PjvnoFv2XOZXyh3KjQCz+IC64xY1tbV 4IOiGsWv9SFFeva6wG7dD7qxE/GF3M9dbi3mYPIXn3cCBFxx2zXTkXfabvpeQavtzgNsZVhG4 dFFDUhP+p4xKTttfilv32H1+S+BTPwajQ52lig36wO7rjXbmp4k6YIN0H7fLyiQ65rZxBZwUr 7wGkZ3yEXAIwd681gNb+abZHsTzfIz5LXPTA02znyFxvpSi+o1wFJNXuFV6Rnrk1Ok2L0EZK2 w3h/4oCkG8QLieTLvKpSdOFCfhsUa48FQ4646gBO9xLxFzHYanXYANzEwX2yTX97BuOzwSztg qYEnWHCAula/srEUjw7T78SUwZpbpOII3FfKv6Qe9RshK7DnaVL9+HQUEMySeIFEo5CVYqURU o+F/xUSthgYSiHn/ccQKfVbZaCcs75wQdhBnGzlPidb4y1tfdcNM5Wq13rS3dVPnxMWRNp/+h 1LRfvgKKzh0wmM16+NkCDwOcZJ3ayGm/dCMdRyrUlFX8pFmey8efs8hRM9cc8YlJaYpIkXKf1 E6YRBcT2McqjFT8wC18udNJ77HeKRqIEaJO9pL7sBbm6qa9xdz04sbb8p3mxisT6JVikUQNAf b17pcAodC6QVGYIV+gfChZ5yWaDdp7kRNb2ecgroOb/Hqup7yuKUd+OOUmsEhJQWPiKpiXqYO RV+XGb+XyWa//BbUBNEPJ9Yxw8c80z3OS2iHJ3pE4GIK1pSK+BpWU6RelEM7OkDjWbzsddJWD SC8GHl4aT3NOegFApv5Y6pZsIshnulnaTtbAbAPG5ock0ROUdHlYfF4wjZh7kTncEM0pwWPs2 kIlD2XTWXOAekQTmBJvseoUasYuAPtAVNeVkq0WhqmXg0PqFunc/yPd4qL8TBXirgIwGIWAWJ vLnkfYP+xnSXntZVlvG44KFZpadfbU3vuPbpIKBzqV9niXVioudbPK2TJCuXIcUNxyv54ZKSS KO8MUdwEmRqTemmcjxtUDISEFlUyr/RonR8HWa4134qlBrM8o7/NFUSiq+is8pYpt1ZlFYMmC z7fg+7u3HFBJWPGUc0Uh83iT9YreWnx2w4J45SQXgRIEwOL4/7NNE4iLJ3tNl/oBm3qexW47K 56WXNQLUODekDH5EQrlPpJJpEDnrj2y/AKxrSYgtUfOAZ0= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) ID4gSXQgaGFzIG5vIGluaGVyZW50IHNwZWNpYWwgcHVycG9zZSwgYW5kIHByb2JhYmx5IGhh cyBhIGJ1ZyBhcyB5b3UNCiA+IGRlc2NyaWJlLiBMaWtlIHBlcmhhcHMgdGhlIG9uZSBmb3Ig dGhlIHNpemUuIEJvdGggYXJlIGFuIGF0dGVtcHQgdG8NCiA+IG1pbWljIHdoYXQgaXMgZG9u ZSBmb3Igd2luZG93LXN5c3RlbSBmcmFtZXMsIHdoaWxlIGJlaW5nIGRlcHJlc3NlZCB0aGF0 DQogPiB0aGF0IGNhbm5vdCBiZSBlYXNpbHkgcmV1c2VkLCBhbmQgYmVpbmcgdG9vIGxhenkg dG8gcmV3cml0ZSB0aGUgd2hvbGUNCiA+IGZyYW1lIHBhcmFtZXRlciBkZXBhcnRtZW50IPCf mYIuDQoNClRoZSBwb3NpdGlvbiBoYW5kbGluZyBpcyBpbmhlcmVudGx5IGJyb2tlbiBvbiB3 aW5kb3ctc3lzdGVtIGZyYW1lcyB0b28NCmJlY2F1c2Ugd2UgdHJhbnNsYXRlIG5lZ2F0aXZl IHZhbHVlcyB0byBwb3NpdGl2ZSBvbmVzIGFmdGVyIHRoZSB3aW5kb3cNCm1hbmFnZXIgaGFz IHByb2Nlc3NlZCB0aGVtLiAgQnV0IEknZCBsaWtlIHRvIGhhbmRsZSB2YWx1ZXMgbGlrZSAo KyAxMCkNCnRvIG1ha2UgY2hpbGQgZnJhbWUgZHJhZ2dpbmcgd29yayBzbyBJJ2xsIGltcGxl bWVudCB0aGF0IG5leHQuDQoNCiA+PiBBbHNvIHdoZW4gSSB3YW50IHRvIG1vdmUgYSBjaGls ZCBmcmFtZSB0byB0aGUgbGVmdCBvZiBpdHMgcGFyZW50IHZpYQ0KID4+DQogPj4gICAgKG1v ZGlmeS1mcmFtZS1wYXJhbWV0ZXJzIG5pbCAnKChsZWZ0IC4gMCkpKQ0KID4+DQogPj4gdGhl IGxlZnQgYm9yZGVyIGRpc2FwcGVhcnMuICBJcyB0aGF0IGludGVuZGVkPw0KID4NCiA+IElm IEkgdW5kZXJzdGFuZCB0aGF0IGNvcnJlY3RseSwgdGhlbiBwcm9iYWJseSB5ZXMuIFRoZSBi b3JkZXJzIGFyZSBkcmF3bg0KID4gYXJvdW5kIHRoZSBmcmFtZSwgc28gdGhlIGxlZnQgYm9y ZGVyIGlzIGF0IGxlZnQgLSAxLCB0aGUgcmlnaHQgYXQgbGVmdCArDQogPiB3aWR0aCArIDEs IGFuZCBzbyBvbi4NCg0KSSBzZWUuDQoNCiA+IFdoYXRldmVyIGlzIG91dHNpZGUgb2YgdGhl IHRlcm1pbmFsIGlzIGNsaXBwZWQuDQoNCkRpZG4ndCB5b3Ugb25jZSBtZW50aW9uIHRoYXQg Ym9yZGVycyBjYW4gYmUgZGlzcGxheWVkIG1vcmUgbmljZWx5PyAgSQ0Kb2J2aW91c2x5IGZv cmdvdCBob3cgdG8gZG8gdGhhdC4gIEluIGVpdGhlciBjYXNlIEknZCBsaWtlIHRvIHJlc2l6 ZQ0KY2hpbGQgZnJhbWVzIGJ5IGRyYWdnaW5nIHRoZWlyIGJvcmRlcnMgd2l0aCB0aGUgbW91 c2UuDQoNCm1hcnRpbg0K
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 30 Jan 2025 07:04:29 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 30 02:04:29 2025 Received: from localhost ([127.0.0.1]:44036 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdObF-0003ni-0Q for submit <at> debbugs.gnu.org; Thu, 30 Jan 2025 02:04:29 -0500 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]:55734) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tdObA-0003nP-KY for 75056 <at> debbugs.gnu.org; Thu, 30 Jan 2025 02:04:27 -0500 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-4361dc6322fso2396815e9.3 for <75056 <at> debbugs.gnu.org>; Wed, 29 Jan 2025 23:04:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738220658; x=1738825458; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=IIO4DEuym2b4m/xILaXnma2EHa1MoIUCBPurAVilh5U=; b=AvhJ2pQIxIuamvwsdQVBAZhwqQKk7jcS6D28I07oqEum1cdbPaP36Uz4Bz0eAs0ibJ SXpsIOJG32SlYzPHGG2fDvH9kV2yRbeBJMy8vRAgKVKuBXm3EYiKckgR8mdmgnF/aW1D LOlYvuoWkVtFIZZk21+Uc5aF/TcpNfN4MzzUGv120DGJ4Q0hrkqbzjTnq53GrHYmt+YY OKgF88fxxx4/at995dJEh05KIp+0Y8zb9sDh0p7GS+Ta+mZREZYwyolx0ZXq58S6MRbY kpEwa6XwEuW67UVfzsCgiqkYuzdo5ouqPEJ4d2bzk+ydLZegw3uZjDLKHc4MgwXnIF/D BWNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738220658; x=1738825458; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=IIO4DEuym2b4m/xILaXnma2EHa1MoIUCBPurAVilh5U=; b=o5HGHZcWcbRCrFx7gGQA2yRsPq4wBJYRc7MsoqkkQ4i5WBWv8hduzsv+zf+ECCEXd2 YZIxrMc5m0R+B8bzGh6Cujwl9IcJFBRxJ7MWmT/m+JQ1ejctMMSAr3hnB3/QFo9nZRrD 4CW5ZK6adPJ+ppPCP+oDuoVASYAmhBIIM6h3JQ9C6U6ZVJsREnvnSIv3hWqjN6FgPsPA OLDjwflyrZ5qTkdXCnkqYyvm9GZeoGJpIKkpH4x8MFVLwPq8jdjNhxlJXg3qdpoovTPS rNF5bmd5UszDRq5rE5f+Q6vRXEvHH6CW6f1fS1Y4BuE8g3TsXjyDWzQVeMjykXUVHrrE Ootw== X-Forwarded-Encrypted: i=1; AJvYcCVrrQ5/i32HL5QiBem46N/6qLwdVzmJjERWSUTMavvs8S27r7aPyzuggmdTt/HFGB5R3beTlw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyT5KyExJzDgGYJa0FWsGjmuIBjATgp50xsdlKLfj//PxqVkUCd 3MDPjlfNt6IyEF5IsOzAUSMbFZJ4H/EDUeUroY5hy0F0yn9wX+RKzMlpUvZU X-Gm-Gg: ASbGncsdIlFo/6brf5Zg3YA+FxBHTmBc7Zmi+WFZ9fkPUUpdzAL2MEL1dKn1X8tgX12 H5z3tpvLJccdqkB+OR6Rd5dON//dFmUXrfD0QVl8BxFtK6vzBwkqDqQiMtpn5neekS5S20VOFcZ TqH6hf+Kw3r8lpYx542i82iqKcUGQjeB92S2rk4+j5NPn71AJ92cdvYgvKcg1Bze2ZGxnjEGeTN yNdmz0lEyb3wLjG2gwxr/U83yGk1kK66l2kLma4xoEB92auPRXrVEBiIsEdU7jq48LBs6jYZ+vZ X+5cTulLv6+IsuREdWuRExvxxmfqQb4FKlsdCFCU2ysJX5WLwfj5YTfpj+Hkq1LLSGfOS9l3EB/ DFnAc6Lvz2GO9KoRvETlUuQQ3 X-Google-Smtp-Source: AGHT+IHtX0VxS2NDLhBfnnvQ1Fwx9di/opshFcULYNaK1/wsugU4XikW+XE+kVnygprH1nuw2rvoXA== X-Received: by 2002:a05:600c:4e09:b0:436:1c04:aa8e with SMTP id 5b1f17b1804b1-438dc3c8200mr55510095e9.16.1738220657798; Wed, 29 Jan 2025 23:04:17 -0800 (PST) Received: from pro2 (p200300e0b720a900dc01849cb197321a.dip0.t-ipconnect.de. [2003:e0:b720:a900:dc01:849c:b197:321a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438dcc2ede0sm48001375e9.21.2025.01.29.23.04.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jan 2025 23:04:16 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <CAOGVwenHzi9KaPX20UBpmOiKHHNmmT9yWS0ofDk6WjWb8TEWaQ@HIDDEN> (Len Trigg's message of "Thu, 30 Jan 2025 18:57:20 +1300") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2v7twdi6n.fsf@HIDDEN> <CAOGVwenHzi9KaPX20UBpmOiKHHNmmT9yWS0ofDk6WjWb8TEWaQ@HIDDEN> Date: Thu, 30 Jan 2025 08:04:14 +0100 Message-ID: <m2msf8dbpt.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: martin rudalics <rudalics@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Len Trigg <lenbok@HIDDEN> writes: > I just rebuilt from master and tested it out with my two tty terminals. We do still have the original > problem where the second tty child frame reappears when focus is switched to the other terminal, > blocking that other terminal. Given the discussion about cursor setting, note that when the tty child > frame reappears on the deselected terminal, the cursor in the selected/focused terminal is drawn at the > coordinates corresponding to where the tty child frame is in the deselected terminal (not sure if that > has always been the case). Thanks. I still think this is related to the mini_frame thing we had some days ago: the mini_frame that was invisible and was displayed nevertheless, which lead to an assertion with checking enabled, and a SEGV without. What I added to combined_updates_for_frame must be considered a workaround to let it not crash. That is lands there with an invisible frame is the bug that should be investigated. Nothing for me though, I*m afraid.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 30 Jan 2025 05:57:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 30 00:57:48 2025 Received: from localhost ([127.0.0.1]:43946 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdNYi-0000Te-9Y for submit <at> debbugs.gnu.org; Thu, 30 Jan 2025 00:57:48 -0500 Received: from mail-lj1-x234.google.com ([2a00:1450:4864:20::234]:61567) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tdNYf-0000TK-9H for 75056 <at> debbugs.gnu.org; Thu, 30 Jan 2025 00:57:46 -0500 Received: by mail-lj1-x234.google.com with SMTP id 38308e7fff4ca-30227ccf803so2892761fa.2 for <75056 <at> debbugs.gnu.org>; Wed, 29 Jan 2025 21:57:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738216659; x=1738821459; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=78POv8meLff12ndgJ/mzIPlje2PntvIZnuGSiCIBw4c=; b=Nz96MdsaZORxLUZJA6Aa4PaMNSylPLFKMSuzAn9SAMmNk+ZG5Swz9zfW1erJVgtP3p iKB5BjjS7eGeemT3BgpxLSp5iGzmwVE7ge/1bnZVMfsqWhga7K5k1ch6ufwJr1FJ/Cbv uARaiDAMzAb4KIWsCi/I2o6LGgnbNHh4tnY631gF0gt9bQqEoE5Q7414vMtN24ZotGYY 5hZl9dp+gCkjH165Onf89yISo4CVLK8GwbnToXeMnTezZcpJHbovMDbtchGif7a7DHVF O3hdn/MwG9QrGGaKEqhSqirtmpPBRu8YHMpQWTRtbWeM9zFKomEaiHdkuH68wdMtbdNw ZwYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738216659; x=1738821459; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=78POv8meLff12ndgJ/mzIPlje2PntvIZnuGSiCIBw4c=; b=erxhqMAJsmznj8hV8GTiB7MKbNdXBSqEgoNdHUBDt1mQWTZ1UQ/jvDneMYQhHX3Agt g2fVhB+eJJbFoTI4iV3RoAtp3os4aLkB9HKhkumF4RSXouZBYNMcinnBqLYtw6A8aArw cgYhfnYt1kWf6jtUbq5Nktz6nsnu3wgRWq9a3KyKwgyhVBFl8TB+yy3k3MpCfe65yYfq S4HO5d9PM73uWvzClScHm6VFHbwEYDmKCeVjkgO8N7O70K0BnsD2LVau7wVA9HlKsrDW SStcrL9y++vW9mP/pB9o6SIDF5OeTO+Da9H29RxatdtZsvhPIxAj7MgsXf/85++Lke7M w2zg== X-Forwarded-Encrypted: i=1; AJvYcCVyd/0DCdSTvX5EcJoYadyt5P0uzuFNLZy96L78VHfweBS7+s4C+9HQKeXrV96rypaDG5FF2A==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yy8ruH1Z/rIg3mswRIeqlGLSWJKMyjBaMZeNQ5qH4n2XlIfcDHe xCCCduVfdEncL80RseTzXm7wmK/US6PGdpGS4fiaQOVOed5D7OgF9jxKbS+HqAL0qdC4c2PA+fU JNnT1Gm/9mtUyI2d3ysORHc5FPc4= X-Gm-Gg: ASbGncv0DVICsT5vSX05FdqxB5t2YSSwVwml192Kp6ZK5VsM14ILLF+tW6HJD/saVHl kNekp/VFKfkajf56mVtR3QOHgzB+Rc2Zz/IVWGCMXZyZaAudEMa6LZQkfTQ8FmISlFTA3Ddk= X-Google-Smtp-Source: AGHT+IGit4SogsfdZYtV/Nm2lzfTFfRtvdzWWy97hSv4+MT5R4zbm60k1JyzkE8+gBtlilanWjjaJaWwVKvDlTa9dlw= X-Received: by 2002:a05:651c:12c3:b0:300:5c57:5242 with SMTP id 38308e7fff4ca-30796811e7fmr22028021fa.7.1738216657747; Wed, 29 Jan 2025 21:57:37 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> <m2v7twdi6n.fsf@HIDDEN> In-Reply-To: <m2v7twdi6n.fsf@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Thu, 30 Jan 2025 18:57:20 +1300 X-Gm-Features: AWEUYZkO-W0JMm_ZLvisKytoPJ96mfyHvDC7CahgC5h_DRRt7AB6UoYK6lXoSog Message-ID: <CAOGVwenHzi9KaPX20UBpmOiKHHNmmT9yWS0ofDk6WjWb8TEWaQ@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Content-Type: multipart/related; boundary="0000000000006dc942062ce61a34" X-Debbugs-Envelope-To: 75056 Cc: martin rudalics <rudalics@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> --0000000000006dc942062ce61a34 Content-Type: multipart/alternative; boundary="0000000000006dc93c062ce61a33" --0000000000006dc93c062ce61a33 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I just rebuilt from master and tested it out with my two tty terminals. We do still have the original problem where the second tty child frame reappears when focus is switched to the other terminal, blocking that other terminal. Given the discussion about cursor setting, note that when the tty child frame reappears on the deselected terminal, the cursor in the selected/focused terminal is drawn at the coordinates corresponding to where the tty child frame is in the deselected terminal (not sure if that has always been the case). [image: image.png] On Thu, 30 Jan 2025 at 17:44, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> wrote: > martin rudalics <rudalics@HIDDEN> writes: > > >> Back from the drawing board, please find now 3 patches attached. > > > > Works pretty well so far. I'll do some further experiments with it. > > Now pushed to master. > --0000000000006dc93c062ce61a33 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>I just rebuilt from master and tested it out with my = two tty terminals. We do still have the original problem where the second t= ty child frame reappears when focus is switched to the other terminal, bloc= king that other terminal. Given the discussion about cursor setting, note t= hat when the tty child frame reappears on the deselected terminal, the curs= or in the selected/focused terminal is drawn at the coordinates correspondi= ng to where the tty child frame is in the deselected terminal (not sure if = that has always been the case).</div><div><br></div><div><img src=3D"cid:ii= _m6ix5fk60" alt=3D"image.png" width=3D"570" height=3D"337"><br><br></div><d= iv><br></div></div><br><div class=3D"gmail_quote gmail_quote_container"><di= v dir=3D"ltr" class=3D"gmail_attr">On Thu, 30 Jan 2025 at 17:44, Gerd M=C3= =B6llmann <<a href=3D"mailto:gerd.moellmann@HIDDEN">gerd.moellmann@gm= ail.com</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"= margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-lef= t:1ex">martin rudalics <<a href=3D"mailto:rudalics@HIDDEN" target=3D"_bl= ank">rudalics@HIDDEN</a>> writes:<br> <br> >> Back from the drawing board, please find now 3 patches attached.<b= r> ><br> > Works pretty well so far.=C2=A0 I'll do some further experiments w= ith it.<br> <br> Now pushed to master.<br> </blockquote></div> --0000000000006dc93c062ce61a33-- --0000000000006dc942062ce61a34 Content-Type: image/png; name="image.png" Content-Disposition: inline; filename="image.png" Content-Transfer-Encoding: base64 Content-ID: <ii_m6ix5fk60> X-Attachment-Id: ii_m6ix5fk60 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 0tMEAgGO4ywWS6FQZOdkLy9beav2Xr/dt89qtRYVF6emXvfelEql9KoY9t+cTQ5yuey5559/+Wev Pv83P5554gMIBAK53fgCfl/A7/V7MQRnMdhcJp+Dh8tRI8MjXq9XrpAjCEJH6bDb7UODgzGxsUwm s6O9Y7YXPXL4sNFgrKisXFZaKpPLaPlWJBIlJSeXlZeHegbfWurr6rxe79r16+MTEgiC4HA4aQvS ly9fHvZOaahvGOjvT0pOXrdhg1QqxXFcLJGsLC/Lysk2m8xVVVWzuqjH7a46edLj8Wy6d1NuXp5I JGIwGARBSGWyBRkLVpaXzdZjaWxsrKO9IyYmpnBRYUdHh8vl0vX1BfyBjffe43K5zrS2Tvmrzo5O DMPWV2wI6mvhwagDAZPRSFFURmamRqulX/Tz8RieIR6Px2wyMRiMzOwslVpNX3eeXlxWq9VsMgmF wpIlSxTKcGVcG60tWbw4OiaGx+PhOE4QhDY6WhOlIUlSPzR0x3PK0Bl5y8rLJRIJnbA5fcGCio2V DCYDx7DZ+qL19fY21NXLZLL7Nm9OSk6ib5nNZqtUqvyCguUrV0z+yZKlS7Y//PD6ioqfvvzSNG6O M2RkZMRut2ujYzKzsqQyGa2FTd5S6L1ype1iW0RkZOmKFQ67o6XpBr6wFLVuw/oojYbJZNIBjVPT 0qxWK22bBwA0NzaeP3c+fUH65i0PRMdEs9lsHMe5XG6URlOyZPGy0tLZtn9gYODE8eMMBuP+zZsX FhYqlAoulysSieITEspWl0dPil81PSiKFhQWbn1wm8lofPftdwwGw5XLl3d+/CmCIo8/+UR0dPTN q7ieleVlhYsKo2OiJVKpUChUqpR5+flPP/csj8drPd3a1dk1q9r8fn/NqWqXy5W/sGBhYaFAIODx eJnZ2cXFxV6Pp76u/s5Gn4JAIBAIBAKZDcjV/6X/uwU5d8kD+/cXFhUlJCb+5KUXD+4/6Pf7Slcs T89Y0NnRefTw4dsUv9Tn832+a1daelpOXu6LL/306JGjFEWuWbdOo9VcOHfu1FTaqWFk5OD+AyvL Vr78s1erT1U77A6n07F3z55R83WBpDweT82pU5lZmavXrhGKREaDEQBw/NhRWuf3er1/fve9KI1m aekyJpN56mQVzsArNm4UioTNjU2NDdfiNPbr+t1ut1yh+OqLL2h58cC3+zdUVjAYjPa2ttl2y/lz 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 KMe1DAmg+eyTzxCFdu/adfr06aLiIpPJ7Pf5mpqa9uza7Q95QuLM6dO/+s//njx1SmRkJMZ4cNB2 9syZkydO1NfVN9Q32If3q6rq+++9l5WdExUdbTToEUX5fN7Ojs6DBw7abLZLNAGOHj5it9kLCguM JpN28YQGP5IovvnGG2fOnE5NTTOajAiQ2+PuaG8/evjIOMp2N23YwLKXnNtVG336zOnT69et7xqe onXrli2Vxyu1bMzr8W74cMPA8JM3He3tv/31b2bMnBltjaIQ5XA4amtqjh45mpiU5HQ4W5qbg1vG qnpg//6enp7SslJrTAzLcrIsDQ4Mnj1zxhPy0MmuioqBgYH4hHiLJYxlOUWRBwf6q05VVZ2qutae avbt2dPc1NxY3xC68NjRo396512TyUhRF6b4/fqrrxqbGgsKCyMiIniOD8iS0+lqamisHvO2ibHH 7UYIffzRptEviqL43rp1WVlZkVFRBoMBIeT1ejva2g4ePOhxu8ds566dFV2dXekZGQaDgaIRADgd Fz3l0NbSun7d+ubmpsv392TliV/8679NmTbNGmNlGdbv97W2th3Yvz8YZ2qOHz3qdDi1YDuosaHh 7TfejI2LDwRkrUoVY3xg376e7q5JpaVRUVE8r1OUgMvlbm1pGfHeq6Sq6u7du7u6u0pKS6KjrQzL ybLU3zdw5vTp0NNAVdX3173XUF+fmZVlNBoxVm02W9XJU1WnqoLnfFtb+/p164O3mn179jQ3NQXD 3U0bPvJ4vQBgt9vXr1vf0d6uXVO1NTXr162vOz90k9myeYvRaBwcHNR2+ud33m1ubMrJy9ULgihK nZ0dhw4e6u7ufn/de9aY2OBwypXHj3vcnhGfQHd31/p163t7e6ThEB1jvHP7DqfDmV+YbzFbRFFq bGzYs3vP5ClTYmNjQ4/vJ5s2nT93LjYu1mg0Mgwr+sXe3p5jR481NTaO40MmCIIgrg8OKdXV/sAc zygpBEEQBEEQBEEQBHEnCA6eGpwH8EKAl5aWFvy3b/r0m9QCTFFYLwCikCgirXT18ivrdMDQoKrI L6Kx6vkwQ2OeB5oGFSPRjwK3aPBDzNBYEABj5PMh5aq/LBiaCxODOip+pihVxwPDgKxQPu+Nfb4c 0xQgCgCQIl+0ZYpSBR1QNJJEJElXuVNMUVpHkKqCqvJVpy6qMCbuThzHabPVBmRZEsUxh1nW6XQM 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 GhqUFy7Qw0Oe4uKRf/lX5+bNget1btpkv/XW8Xvusd91F/J6FfX1yOcbf+ihsW8+JanV/qVhtQqr VVihAIQAIVAqr0xRq4Bjr7RyOMSwMPtdd7vWrg3cLoyQq6TEefPNwoIFQColfmmFh0eEhYfzPH+p ufl62g8NDl04d75o6ZKU1NTPum/XT61Rr1lbduttt+YvLOjo7NTqdd98+umHvvYIAtRx+XJmdtZj TzyumbjcVpetue/++/QGY3dXV211dXtbW0hoyA9+/MOHHnnYFBQUuNjsnOwnvvnEo499nVMoW1pa qi9eHB0dWVxUdM999waWpS0oKPjxz35asnLFQP9A9cXqxoZGp9O1vGR5YmLijW1OwcKFTz3z9EOP PExRVHNzc01Njc1mK1m58qbNmyjqyn2YZdk1a9b8f//yT4uLlvSYe+tqaq1W66bNm779ve8WFi2W 23AcV7xs2eatW0pWruzs7ACMH370a498/dHg4ODmpubY2Ngf/PAfjCaT3NhkMt15913f/t53IiIj 2y9frquttdlst95+27e+8+209HR/3xiGWVNW9uOf/TQtI6Ojo+PixarmpmYA2Lxlc1h42Lw2U63R bNqyOTc3d8a5NEOvXFVatm6tTqeb2BxWpVKqVMoNGzesXbc28BD4KZQKpVKpVCoZhgUAmmGUARBM ujkjhNaUrbn19ttFUWxuanY4HDdt3vTY49/wr3G+br71FkDoxLHjtvHxy5cvKxSKrJzsyeucgcFo WLhoEQBUV9fIU3ie93g8DMMULCxQ++/Y0yCE0jMyAKCuZlLcy+VyWUYtFEVFRUX5T5ivBq/X++rL L/f09m7ZujUrOzs4JPiJp74JGN7a9lb3LK9zXc8y39v+rlanW1ayfMYGKpUqJDQUY9zT0xM4vbe3 VxJFnU4XGRkx4wdnNDwy7PV4IyMj5UNzx513/Pw/f/EPP/qRfPkEhwQDgGV01B8l1el0qWlpAi/U 19WdO3fObrcvKlqsDfjjYTYsy9I0JUkSP0tNAhnDMCzHAoB7IpVcFhYeHhMb47A7Lre3nzxx0ul0 rihdMePZ2NbS1t7evrykJCo6+nr3wizGrGPvv/e+IIr3PXC/KciUlpFesnLF0ODgR7s+JGm7BEF8 dlgly7GsgmZVlC+QLQYAACAASURBVEoDaj3o9HCDfwkQBEEQBEEQBEEQxBfQNTJ3+eRkYFl6oJ+6 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 88/VutqpHZE40K/U1QbnzhvdvNl+6BAzDSJSKisnVcUr9vY69uwZ3fzI0LPPuhVZHB42ExKGv/u9 C3n8dW3OGsVWVqYXFY08/e34t98Whga5atML8kcffYwFAlZ8vOl2T3qFx4+NfvOb/rVrHXu/Ent6 SJICixcbqSkxiylnz+q5uaNPPOH66CNhZITb7VpRkX/jRhYKcVkeH8ALgYBaURFcsMB3zz1if194 HLLU3i5eKCr1r1lLxKXmZnFgkOkaVxRt+gwzJUVqbxd7eqb03Fw3oVDo4IEDS5cvW7VmTfnp0/X1 9ZZlZWZl3XPvvaFQ6OCBg5Ey0/7+/u6u7sVLlni9ozXVNaZpHj189L4HHkhOSelo75hyrDI8PNzY 0JCXn79+w/qTZSc1TSPi/f0DAxe6kR87erSttbV0xoxv3H/fgf0HdE1LSEx8aPPm+Pj4w4cONzZM 7qeyv79/71d7v/nE4w889GBba1t3dzcjmj5z+vo7NwwODu7etWuy+79n9+5vffupRYsX333PpvLT 5bqup6WnPfXtb2shzWa/GOk1NTZ+8fkX9933jae/821OvKe7OxQKybIS744vKChIz8h48T9+NdlN Xz3TNJevXHHnxrsqzp41TTMrK/vRx7850D/w/jvvXstqd+3aNXf+vHvvu6+9vd076iXO+/v7e6Z0 Sg8NDjU1NmVlZ224667Kygpd04l4b29fpDJ7z+49K1etXrtuXVNjY9mJMp/PS0QOhzM1NWXGzJn7 9u6tOldFRPv37mtsbJx3x/x7vnHvqbKToVAoLS3tW089pWma/RJ3D1wXRw4fKZ0+/f4HHxgdGR0c HBBFKSsr85lnn/X7/Q6HIybpvxq1tbXBYHDGjBnLV61sbGgQBaGoqHjauLnsJ8vKCouKnnjyifff fW9oaFhRlOyc7Ee/+c1gIGi3290TvUlWnq1Yv2HD+jvXN9TXjY6MElFPT0//hR+3uXPnJqckNzc3 Dw4MaJomSVJOXl5eXt7w8HDrJHtX3AhHDh/eeM/d8++446677z518qRhGB6P5/4HH5Bl+fixY903 ONz1+/2NDY05ubkrV632+wOhUIiIj456u7o6J/VrsLqqasf2HRs2rH/m2e+//eZbPT09uq4ripKQ 4C4sKk5JSf71jXk3mDt/3p133bXtyy/bWltHR72madrttpzcvM2PPOLz+j758OOvs4wY4P9wcaLD YLJhGbqhqaIYtCSNpjhsGwAAAAAAAOCm45yI2IWoiNNVtmW+POeXX2ol0wIbNgz81S/U8nIyTW3m TDMx0fnZZ85tX7JJ9hFlppnw7/9GlhlYslTPy1Nqa1koxF0uPTfHTEh0fvHFte/whFxffB5csiSw bNnAX/1CqavjomhkZws+n+v990e+/309N89yOITJtPqUGxudX3zhffjhoeees508SYyZyclqVZU2 tgYr7v33Q/Pn+detMz0euaGRq6qRkyN1tNuOHBl5+mk9Nze6T2+YrazMuX2bf9Xqgb/+a6mjk4hc X34R98474a+aiZ6h558Xe3uVxgY2MsJVVSuZZiUluT77zH7wAE2ef/16rbjEsWuneurUlZe+Eqm9 PX7LluGnnh597Jta6XTB59XzC4zsLMeePQm/eZFNcrqnoGnuV14xEz3+jRvN1FSpq8t0x1tJybZj x/ybNkUvqZaXx7/yiu+hh4af/UFg9Wqxp4eYYKYka/kF4vCwc9u2KR+RODDg+mCrGRc/8vTTgRUr wuNj057/6aRuaxA0Le6dd8zExNDceQO/+Guxp4c7HMJAv1pZEVi5iqba7fmK4rZu1aZN827ebGRl SW2t3OnSc3OVc5VKba33gQeM7GzO2KR+hO2HDtn37QusWtX/n/9GqanhNtWyOxz79g2XTItezPXh Vr2gYPTxx/WCArGz03In6Lk5thMnpI4O/9q145tRM113fv6ZVlISWLpEz8oUh0eIyP3yS479+8ML GNnZo489Jra3y62tLODnDmdw7lxxYCBu61a5o+PanqTr4MC+/aXTS9esWfvcnz5/9sxZ0zSKS6Yl pyTv3rlr+5fbIpf7/X5/W2trQWFBefnp0dFRIjp18qTX601ISNi7d69lTvE0MAzjDy+/8q2nn378 W99auny53+8n4ju279j+xZfhBVqaW957572HNj/0+LeeKJ0xI+DzZefklJROO3706B9eenmyLY45 5+++/U5ycvLyFSte+PlfVFdVMcbmzJ2ja9qXO3aeKpt019nh4eG3trz55NNP/fAnPz55oiwQCGTn 5nR1dpqmOWPmjOjtvvzb34mCsHzF8j//y5/X1dR4vV673ZGekZ6SklpWdmKy250UTdMO7j/wxJPf aqhvMAx9xsxZkih9+vHHp6OGi0/B7p27FixYsGTp0j//y5/39fZyi+/cvuOTjz+eQoNuXddfe/XV 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 7JVXHCnJgs5OhDHr6+dITGBCQrW/+bW4ru7RtPe+oIeGVJ98PPrDH40deIEJCBS2tzEGg2VdPmCs PHxI5BGm8j6RXb6kOL7QumrVyI9/Ii0pEfT1YQqxAQGO5BQskUiu18DAwFzrdEVEjLz6Q6BpVqvl tFoAUJz4WvXeezNljVV89ZUjJcW4Z48rPJwaGQEA9dtvC/vm4KtKDw2pf/979q/+2vjc8864OPHN m8hm4xRKV2SEIyFRVHdbeWxc5hfX1qrfe29s/4HRV37gSEwSNTYih4Px97enpytOn5JUT8oxjDhO Ulpq3rLFlpUFGNP9fYjDlMWsfvdd5HQCAD08rPrgg9Gf/cy4/wBrCBC2NLM6vWXdOqBpxeHD4ptz U7nuXtflkp8+Y3x2D6fX0/390qKi+dXzDYfjuIvnz2cuyUxOSXnlBz+orKxkWTY1NTUyKupGzfWL 5y94+cxZLJbEpMR9Bw60NDcrFIrclSsFAsGhzz5va2vjCwwNDX3w3vs/+smPd+3eFRMb01BXb7fb FUplREREdEzMjes1586cfaQtam1tbWxozMzMsNpsR48c8QoEarPZPvnok+CQkNyVK8Viya3aWpqm s5ZmGwICKssriq/eHeXWlta627eTk5P37d8XFxeLKCo+Pp6i6JlcJx8z7W1tZ0+f3vr008/tez4k JGR4eDgkNHTV6jyTyfjRBx/M1VfP4XAcP3osMjIybUGaWqOpqa4eHh4Wi8WGgICExESr1XLq6xNz Cizc3t7+1fHj23fueOkHr0TFxIyNjkbHxCQnJ3e0t4eFh0/7FpvddvnSpZCQkN17no1LiLdZbQDw +m9/N0uS3an09vZ+9umnL7x4cM/evbFxca3NzQzDqFSqqJjoyMiokydOlJWU8iXLSkq/Ov7V5i2b X3jxYGJiYndXN8acwWBIW7DgP379G69YzQ6H48L5CxGRkRs2btDrdEajkc+Zeu7MWb5buru6T548 uWPnzr37ng8KCRkcGAgKDspbvcZqtf7p4087OzrvvwmeWK3WLw8fXvCLfxIIBOVl5W0e2aO9cNgd Q4NDGq1G7+8fERHRe+eBwgxYzJYTX321ZevW5w8cuF5zzWqxYoDiq0U118bzqV+vuX6loHBZ7vL9 L7wQGRlltVojoyOX5+b29/V9cejQXFPG2my2Tz76OCg4ZMWqlRKJe1Uu9Q8wVJaXF0+591osltVr 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 t+m0WrFYHBU9TglgXW2tQqFYmJe3+rnnRkaGWYYxGIzjzqc8c+pMWnr6xs2bDAaD2WhiETs6Klcq 7ncM3rBpY3ZuTk93t0qp9M9QEUIdbe3eg2pULtdqNBEREStWVTQ1NLndbolUsqKiAmPkcrmCg4Mx xv5tVx0OR093d/6i/NLSUpVSZbVavR25+3p7x3Znraut3Wp4IS8/f/mKFWq1mmUZi8Xa1dmJEFLI 5efPnl2/YcO2HdtNJpNCLidJKnfhgpLSktHR0QsXxmux8JRUrKywWqwDAwN6vd7lcgkFgvk5OTw+ v+1eq6922Ww2nz9zNjUlZd369WqNpq+nx2KxkCQpkUhj42IT5iT+6Y9v+Q9eZRimr6/P5XLlLVrU 0tys1xu8tbwd7R0BpeEjw8NqlSolJWXl6lXDQ8PeysWOjg73mJJ0t9vd2NhYsXLlC9u3Xb54yel0 oDFH6RNZLJYzp07v2rt71949LMsqVUqJWPL8pg3MmNfwktJSmkP39/VpNFqX08nhctMz0kNCQoaH h9Uq9eS3OFZV5d3n1q0tLCluqG/Q6/UsyxiNJu8ZDJNXW1NTWVmZk5Pz8u7dp06cVCqVLpdTKBTF xcdzuZwTx44H3C0qpaq9vT0vP3/turUSqcTldCKEuru6zQ/aSNy+eTs9I+Pl3bvtNptOp5dIJKuf W+OwPzIhQqvV3rl9e2fizrXr1mo1Gp1Ox+NxS5csCQkNmWBXz5w6nZaetmnLJqPR96wcVSqUk7+x Lpfr2JGj87Pnr1hZ0dPd3dfbxyI2Ly//frOEGTQrHRwcNBqNmfOyypcvUyoUDMMihNrb2z2TKIZ+ nBvXb8TFx+/as/uwQGCz2hBiuzq7vOX4NE2v3/C8Qq6Qj8q97f2Dg4OWLC3HCF+/dm0aZbtZWVlz kpJ6e3pVKpXDYacoOj4hPjU11Wg0dnd3+xZTq9SXLlzctnPHC9tecDocAwMDdruNw+FGRUcVlRT/ 73//ckpTk7UazelTp/fu27d561az2Tw0OGi12miKkgYFxScmxMTE/PZXv/YuefXyleKSktIlZYOD gzVV1SajEWEkEonhB/14AAAgAElEQVSjoqLSMtIvnDvfNl77BADAGCxU8QIAAAAAAAAAeKZ5e4J6 vzD31gJNFO6SFov07bcIs9m2aJHrL/+SGhjEHo8nLNQdFc2/+bAKitvUJDx50rJmje4nP6Hb2xFF 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 dfxER3s7h8PNzs3ZvGXz7n17Wlvv+Ya8ikQisVgcMO2Pw+WIxWIel+t/4cWLF2trqhFC//of/87O bCShUCh8effLeYvyL5w/f+v6TY1WExUVtXb9utS5c6e9zqq7dy1Wy/Qqxqbt6pUr87LnL1myZG1H x4fvvc8wzNy5c7ft3E6S5KnjJ/r77vcYHxwYuHTh4oqKFS9s33771i2DwSASiTLnZUVERNy6ebO+ rt67mEwmo2jaaDQlJSfl5OQmJCYKhEK9Ttfb21tVefdeS8tUJ0HOz85GCHV2dFSsWpmdnRMeHo4Q UigUba2t165cDeg8P3/+/A2bNt6+eau+to6kZjT9kSQJsVicnpHB5fGOHT3a290jEAgKCoueW7/2 te+8/k//+P/4Jv4mJSft278/MSnp9KnTDXV1GrUGIRQbFzs/O5sgiJnsw8Q0Gs2Xhw7RFLVm7dol 5fHcRw91H4FAEBISUrF6VU11dWN9g9FoSElNfWnXrrIlS06fPOXLg2maFovF3oa3fncCKRKJSJIg H9yQutraSxcv7t6z56VdL//mV79WKZXhEeEv79mdnJz85aHDd27fnmq4m5iY+Mrrr4olkhPHjtfW 1LiczuSUlBUrV8pkMg3xcLuYIERi8ZykJJPRdP7suf7+Pr5AUFRctHb9+t1791RXV7seRLneHsiY eORbYy6XKxaLH3cXzRCfz4+JiWFZtqe7++muOTwivKS0ZOPmTe1t7W//8a221ranu/6x2lpb7XZ7 bFxsUFCQQqHwXjh37lyKotpa20wPRsZyuNztO3cuW77sxrVrt27cGhkZoTl0elr6uo3Pv/L6qwP9 /Z1+Nb48Hk8sFq+oWIEwvnj+wvDQsMPhCA0LTUlN9b0aREZFvfL6q4yH+eLgwZbmFpvVKhAI4uLj 5iQlBby5tN5r9T7WP/2bv5ZKpSQ5zj+cSJLcvHXripUVjQ0N58+eG+jvF0skiwsKNmza+NLuXU1N jd4nKUKIx+dLg6RLy8tra6rrauv0On18YsKOHTsWFxbmLMg9f/bc9O7G+Ph4iURCcejg4OCFeXki sfj6tWvtbU/h4SNJMjs3hyTJ1pZ7/jXiNIezas2qBXl5b//hzeHh4ZmHuxKpZNOWLUaD8dDBQzbr Y0+Aa2lufuuPbzU3Ns5wcwCAWc7DIuxBLEIII4JAmEEshLsAAAAAAAAAAJ553rbM6HGVuxwORygS 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 DCiKyuSydenrUtam6nW6G1evz33JwcOH1qWvIwjCgeOu/bQpGzdt2n/wgN1h7+8f8PXz9fXzdT5l sVrbW9tMJpPFYnFtsUARiyUAALvdNjgwMKGaAHMcOnw4KTnZarXMzswW37nj+tTs7OzcDjHUI3q9 3u1c6uPjExYeTn1YqZb1cQnxQqEAAKBWq7u7ut2OnPyCzatWr3Y4HL09vTDchaDvDk+B1oHT7Tjq cKAWB2p3IGYcASu56Q6CIAiCIAiCIAiCvkaofJckyQXDXZIkS4rvBgYFZmVnHzl+dHXcarVazeVy Y2JjLFZLS0vzIuPq1T6qmZpUO8ehpPT29NwtKs7OyT5+8vVVq1cbjUZvb+/k1JTx8bE7t27PLfJY osTExKDAwLmP/+yffrqscLe8rCw9Mz0xOQlBkc6ODgyjRURGcDnckqLiHbt3+fr5MZlMqkywr7fv s08+3bVnz97CvcEhwUMDgw4c9/X1jY6N+Y9ff156IhKLCvfvoy41Tk9NMRiMqJiYyMjI+rq6yoqK 5W4mn88v2LIlJye3r7d3ZnYGkMBb5hMdHW02maqrHpSXPjeC757CPWFh4QAAFpuNYRiPxzt24jg1 qvE//+znbuEuh8uVSCQsNtvbx2febONucfHq+Li0deve/v73mpqbvDw916al9XR3X7l0mdohbmRy GZ/Pd/aSdZO6dm1AYGBfb+/kxKTdbvfy9oqLjzcYDPdKyy5duIi7DJFYdKcoMjoqIWHNW997u7W1 NSDAPyU1tb2t7dLFiyvub9nc0KiZnU1JTRUKhYsEYNNTU1qt5vDRI10dnSw2OzsnG0WxG9euu4bZ 5ffKN+bnx8XHv/X9t3u6ewQCoY/M58H9+3sKCxeabXFRUXRsTFZ2tqeXJ1XT+eH7Hww9Pyqh0Wi8 deOGWCzZtDnf19eXqp48e/o0dXVbo9Gc/vjUm2+/efDQQU8vz8mJSX9/P5lc3vrkSWJS0sr2SVJK cuG+fdTfVNf0vfv32SxWAMCd27eHBgddL5TjON7R3g4AEhwSHBQUtLIliiXiPYV7w8LCbt+6XVle QT04pZ469+lnQcHBu/fu6evtLb9XDgCorakpvlOUlr7uxMnXQ8NCVUqVWCLOzMpEUaziXvnd4mLn PO+VlSUmJ2VkZn7/r/+qvq7ebrevSVzj6+tbW1NTVlKy3DUkCOLGtesymSx3wwaRUDQ0OCgSi3M3 5BpNptult9rb2la24Uuk1+s5HPbxk6/3dHXxeLzsDblarfbS+QuK0c9PL81NzdevXM3fUnDw8OHQ 8HCVUokiSFBwcGhY2NVLV1a8aM3s7IXPzu3as2f/4YMxq2KpwbBPf/zxmMK9L2tPV1fp3ZLUtWtf f/ON/r5+3OHQaXW//c1vlpXzjSnGHlU/zNu08eCRQ9QdBiGhITPT066nbg6Hs2Xb1twNGx63PL5w 7jx1+jIYDJ+cORsRGZmzIbenp+fyhYuL1xm76e3tvXD+/OaCgsL9+6NiYkxGo0wuGx1VREVHkSS5 gky0tKR0fXZ22rp1drtjcGBAKpV6eHg8qKrasXPnvNN3d3eHdXYGBgZKPT34fP7Kwl2CIO7cui2X +67LSD9+4kR8fIJGM8vn82NXr9LpdK2PnyxrnyyksaGhrKR0777CXXt2d7S1d3Z0uD470D9w7fLV rucHx10ZnVbX1dkZExvD4XKnp6bnZodajfazTz45fPRI/pbNgUGB/X19DodDJBZHRkV6eXuf+nD+ Ma0X4eXldfjokcHBwZ7ubs2shsVirYqL8/P3e/igurFh/rt/qiors3OyV8Wt/t5f/xV1X1dDXf3N GzeoscDPnj4tFImyN+SyOZzuri6RWJyVkz07O3v75s2hJY8+u1wSqWTXnj2a2dmBgUGdVouiaGBQ YERExMTEZPWDqtqaeYag9pHLuDwegiBisXhuE5HM9ZkisUin0+Xn54P8fNenpqanf/WLf3OOTbBc PjIfDpfDYrOom89WLGZV7Mk33qBuAWFzOACAXXt2W80WAEBNTU1vT6/bWaijvYPJYgUHB/sHfHXj F0AQ9MpJBNM4znDgmMOB2XGaA8esDhSGuxAEQRAEQRAEQdA3lzPWpf75eedksVj8+VQoAgDAcXxg YGBqakqv04vFIplMxmazBwcHKysqb12/OT42BgBAMYzJYHR3d9fX1jqbKNpsNpzAxxVjne0dNY8e UUV4NpttZGRkdnbWarP6+Mi8vL0JkmhsaLhbVFxcVLyCPqI8Hk+lVA4ODKjm09jQaDAYaHQaiiCN jY1ULsLlcqfVUzWPHlGppEgk6u7qbm5qAgDodLrJyUmDwSCWiP38/Hk8Xn9ff9HtOzUPH+E4Pjw8 3Pak1bmSw8Mj0+oprVYrFIoCggK9vb2tFmtjQ0NDXb1B/zSWIAnSarPa7Q5vH5/gkGAvL2+9Xl/9 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 zVZ85w5Jknn5+Uajsb+vb2RkJCY2dv7CBW63+17xXf8G4xMS3tj/Zvbs2UUXis6fO8/zvH9rKrXK XwubmpYmPbvAsAxN0yzLmkymLVtfiYyK6unueVD2YFp7IYriw7IHTqczLSM9KTnZ5/N1dnRotdol eUsYln386LE04bSEpmn/VSR9a/xXqdQkeepkMllWdrbRZFQqlQzD0DQtk8mMJlPBmkIAaG9rcz2d mreqsqqjvSM0LCx3SS7LsvV19SzLrli5wmw219XW1Qf0HkAIIYQQQhMiDUAagTICaQTCAKSBIJ/T ZQohhBBCCCGEEPrFkpJdKd2V/vuibZkB4EFZ2dnTp1cXFu5/+61rV6729vb6fD6NRhMTGzvQ3//V sXbpU69fv56UkvzaG69bzJbBwUG5Qh4XH79k6ZKuzs4oqzUkZJx/b9fV1jY2NMbGxe3YuaO5uUng RY7nzp05O62JJ0vu368or0hNS929d+/9e/e9Xo/JbN64aZMoiufPnevu7p7BLouieO3K1X1vvJ63 LC88IuJucXFnZ2fQClcuXc7MzFqwcMHIyGuVFRU2m40AQqvVRkRGRFmtH3/4kcNun2j74yooLJTJ 5a2trUODgz6vV6FUpqalqTWa4jvFE7WTvXLpSkJi4t7XXgsLC3M5XQBw7epVaeXKisp7d+/lr1i+ 7/XXb1y7bnfYDQbDqoLVSqXy3Jmz9fX1MzgsU5SVlZWRmSH9npXJAGB1YUFOfw4APHjw4EFpWeDK SqVyzbq1oWFh0TExRw8dHndPC9YUStdPRmYmAISHh2/ZtlXq3Hvk0GGpJPTihQtJyUl5+fn9/QNN jY0cx+m0uvwVyzVa7e2bt5oaGoO2aTabVxcW6A16a7T1j394P2g+V0EQvjhyNDklJW/5svaO9qbG RoZhluXna7Ta8+fO1dVMWGGZk5NDkmR5ebnbPdVC1UC9Pb1ff/X17n17Xt//hlqr6e3pkclkc+bO TU5JeVj24NrVqzPY5lSkZ2bs3rtHo9UMDw1lz87Onp0d+OrDBw+lnuSiKJ47c3bu/Pmzc2bv3re3 tqYGAObMm2uNjn5QVlZaUuJ/S+HaNfMXLHA6nKyMXb9hfeDW3G73xfMXpDbja9auUSgUbW1tw8PD HMfJWNYaHb1+40a73X7qm5PdYyL55yp//PjWzVvL8pft2rP71s2bPp8vOjp6cW5uc1PTuTNnAxsp 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 oSAIS5flBXYGtoRaIq1RHMfN+GKQ6uAVCvlERYrVlVWiIC5fsSIyMvLs6dMtzS1dXV35K5ZHRkba bLbOjifTckshfWdnZ2CyGx0TnZKaCgAy+fTmghUEoaqyiiCIpcuWjR2YQqH4kRr8ulwuaY8ysjL9 Z5wgiKzsLJIku7q6nE9bi/M873Q6ZXJ5YNF5RGSk0WSawecODQ0NDAzIFYq4uDj/Qo1GExcXH7Sm 1Ca9taU18CY8Ky1VbzAQAMyYYyX1QjcYDM/N1wWedzgcSqXSPxNwoLq6OlEU58+fH3itxicmaLXa 0dHRvomfh3iuxUty33r3nTff2p+QmPj8tX8SXq+3qrKSIIjZOTlSO/RA417MKpVq+YoVm195ZVZq 6k8yRoQQQui3QuBB4J784jngORDGmV0FIYQQQgghhBD6lZow3BVF8atjXzY2NMydN3fHrp0ZmRk6 nU6tVkdHR69YtXLt+nXSag67425xMUVRK1avnJ0zWyaTMQyTlp6+fsMGQRDuFd8N6lZK0/SGTZti 42IpitJoNCtWrkhMTOzr7Xv04GHQAC6cO9/X27th44aEpMS7xcVNjU0vvrdXL18lSfKVrVtnpaaG hoVZQkMVTzOtvt7eG9euq1Sqfa+/PjtntsViSZk1a8fOnSaz+UU+0e129/X2yWSy+QsWWKOjDQaD Xq9XT9xXeXJNDY12m81kNhmNE4Y9ZSWlVy5fsVgse/buXZqXZ7FYlEqlxWKZN3/exk2bxmaHEq1O Gx4R7na5GurqZjAwlUq1ccumXXt222y2e3fu6g2G2Tk5/l+BeXltdU1TY5PRZNq4ebPJbGZZNi09 feOmjUql8vKlyz09T8rsYuPi3ti/Py0jvaaqurOzMyMzM3CDltAnpW+RkZEbNm+cv2BBlNWq1+vN FnNGZsb2nTtSZs0aGhwsvnNnBvvyEvm83stFl7xe76Ytm/PylxkMBpIkaZq2hIbmLlmyfsN6f4ft ogsXm5qaVhcUrN+0McpqpWmaJEmdTpeZlbXplS2p04x21CrV5le2bNqyJWt2tslkkqK19Iz0Hbt3 yWSy2tra0aeTv94tvjvQ35+dM3vV6tVarZYkyYjIyI2bN0dGRjY1NtZUVc9sx4eHhwcGBgxGY17+ soiICL1er9frA2P41tZWh8OxODdXEMRHjx45nc7bN29lZmWZzeburu6BgQFpNWkAuUuXSHcMhmFm pabufe01tUYNomjQT6/ttiAIl4uKXC7Xps2b8lcsN5qMJElSFGWxWBYtXrxh00a9IThyeyncLtfd 4mKCIPKXL587b65cLmcYJmXWrHUbNwBA6f0S/7zRbperu7uboqjVawp1Op1MLk9OSXll6yuKaab7 koH+/orycqVSuWb92ojISIqitFrtqoLVcfHB4W5TUxMArNuw3myxAIBKrV64aNH6DRsYhiEpauyU wF1dXS6XKzklec7cOSazWTq/4wa9bo+7taWVYZi169dFx0RbQkMtoaH+Ne8V33E6nQsXL85dukSp VFIUFRMbu2HTRo1GU1VRGdgKYrpe2bZ1/caNW7ZuXb5yxXQrvP0oisrMenLnUapUABAeHu6/C013 KmJRFG9cu97S3JyZnbXt1e2JSUlyuZwkSYPBkLt0SXZ29ti3zEpNfe8vfveXf/1Xb7791o838zFC CCH0GyRKyS4PggAiD4IPBP7570IIIYQQQgghhH6RxKBZHYmJ59wFgMaGhqNHjr65/831GzckJCU2 NzcLHG80mZKSk3p7eg8d/BwAeJ6/eOHinLlzU1Jnvf3uu48fP+Y5PjUtLTUttbKi4sL5Cxz3zFPS o6Oj8Qnx+995u7W5RalSLc5dTBDw5dEvxtYI9vb0PCgrW7Nu3f/P3n3Ht3Gd+cJ/zgwq0Umw915U qN6LVV1VbNmW5e4kN9lsee973/ferXffvZvcbEt2U26STXHiOO5FvffeG6lGimLvJAiAJEiABDBz 3j9GgmASpChZxaR/348/8hA4mDkoh9LgN+c5/f39e3fvvS/Fjbdv3Tp95oyFix6z2qzODifnfN/e vefPnlPu3bxxY0Zm5uw5s2PsMY0NjVabNSkp+VJp6fwFC+756IFA4OCBA+MmjF+w6DGrzebp7uZE 9XV1mzZsDJ+MOEItLS1Xr1ydNWd2VlZWXW1txDZut/vd379jNBknTZmckJhw7do1T7fHZDJlZWfp dPp9e/d6PBGKnaakpMbHx7e0tFRVVd1tr4jIZrMte/xxpeD2sseXDbi34nrFz37yU+U1dDgcmzZs /NZ3/svTK562Rds83d25efkTJ028cO78hs/Xhz4t06ZPmzNnDjGKi4tb+9LaATvcsnnL7p27iCgh IWHdy6+43a7GhkaPx6NSq5KSkvLy8/v6+rZt2Vo2xCLND40sy0ePHMkvKJi3YP4bb711+dIll9Mp iqI9NjY3L5dzfuL4CWWZ4YaGhs8/+fT1t958ce3awsLCpsZGSZLMFktmVmZKSuoH77138cKFkR9X pVZPmTolISGxoaG+vq6+t7dXo9Gkp6cXFBa2trZu3bQlNJ++uqpq965dK1evXvfqyxlZmR6PJyUl efbcuR0Oxwd/fL+9feCSySPk7fVu3rjxueeff+mVl4snTVIWEj56+PC5W2Otvb2ts7MzJTVl/959 yuq/+/bseemVdWq1+vLly6ErQvbu2Tv/sYVz581Tiaqa6mpBFLNzctIz0g/s2//4E48npyarVKoB v2GGd+rEyS2btyxZsvj1N9+cNHmy0+kUGLPHxubk5qpU4vlz54apnn3PZFk+fPDQjFkzi8aNe+ub 3ywtKQkGpfyC/IkTJ1aUX9+1c2fo+Xq93jOnTmdmZq55fk1iYoLP15eWlmq12ZqamrIGJbJ35PV6 t27eUlhUNH/hQpWoam5uNhiNE4sntrQ0x9hjwlvu27OvoLDw+ReeT0hIaGluNpnNRUVFjNG1q9cm TJwweN5wW0vrxQsXJk2e/NY3v1lXV6e8Bb/51a97B63Y3efrO7B/f2pa6poXXygsKlKWb//Jv/+H 8gm8eOHikUOH586f99obbxQWFfX39aVnZsyYObOhrn7D5+sj/qYaobbWNrfTabXZsrKyBiw5PHI6 ne61N98wREURkVJLedr06SkpKcq9/+///f8oM9RHrqa6+o9/ePe1N15Xwt3ampr+/v7omJiCosIT R4+dPXN2wF80iUmJ6RkZKpVqypTJ9xxRAwAAfB1JQWKMSCYuExOI6OafAAAAAAAAAKPW7a+POb9d hvQLhSIFRkSc88b6hu6ubn8gYIu2ZWZkpqanRRkMLU3Np06eDCVn3V1dTU1NRGSLtuXm5WVmZRDn pSUlWzZuKrlYEvq2Oj4+fuXqVc3NzVs2bc7JySkcPy4lJdnh6Dh44ODnn346YIKvcvSk5OQZM2c2 1Nd/8N77g2MDIrJZrVEGQ2lJSXnZiGK8zs7O3t4eWZYNBoPVYjVbzFU3KmtvpaQup8vldAUCAa1O Z7VYe3p6jhw65HZ3zpg5o+TCxdA00MysTIej48SxY53u28tYWm1Ww82eDJzs2NLcEgwG+/v6zWaz xWa1Wqx9fX0XL1y8hyrTsix7e72Lliwm4sMshOx2u5ubmoLBgEajTU1Ny8rKjI6J6en2lJaUnD93 LuLKtU+vXDFrzuzPPv701MmTd9srItJHRaWmpba3t7tcrkAwOOA/h6MjlKBzzhvq6wPBgEpUZWZl ZmRmMMYuXri44fPPw1+6tPR0tUbd2NDg8/kG77DiekVNdTURaXW6uLg4nV4fHx+fmpYaFxfHGKus uHH44KHNmzZ1ha0zOnIJCQmSLF0uvXz1ypXhWyqHO3f2XG3NkNPKfT5fxfXrkiRptZr0zIz8/PyM zAyD0dDW2lZaUlJaUurv77/1sjT09vRwLiclJ+Xm52fnZMfY7b09PWXXrp49c9Zxl2vEajSaYDAY FRWVmpaamZmZkJjIiV8vL9+/d+/+vftC4W4gEGhqapIlSa3R5OTk5OTmGE2myhs3du/cvXPHjsEf UcZYekZGR4fjwL79/mFXdK6tqeWcZEkyWyw2q9VisdTV1tbceqEC/kBcfFxXZ9e+vfuUt7KzszM1 NbW1tXXHtu2h1ZpdLpfP51OJquSUlOzcnMTExC63+8D+/YcOHjSZze3t7efOng2Fu3Z7rEqtunD+ fFXlkBco9PX13ai4EQgGNWp1ekZGfn5eRmaW0Wh0tLdfKi0tuViipI8jZ7ZYzGZzZcWNE8ePD9PM 4/E01DcQI4vVkpuXl5mVKQjipdLSLZs2nTt7LvRLUpZlt8ul1Wr1UVEZGZlx8XGuDue2rVs7O7t8 Pu+xo0fdbrfSMjc/r6G+Yf++feFHiY2LFQTh7JkzoUWL21pbvV6vSq1KS8/Izsk2W8zXrlw9eOCg WqO+VFJ67eo1pZnD4eBc1qg16RkZ2TnZFoulsaFx+9atNVXVao264npF+Jq4RBQMBl0ul7+/X1Sp rFar1Wq1WCxHDh/u7xv4keCct7W1ypLMZdlisVisFrPFvHf3HuVd8/l8jQ2NnHOD0ZCbm5eVna3X 669dvbZ967Yjhw+HJ515Bfn1tXUH9x8I33lSclJ/f//J4ycGr6Dc3tbW1dU1ecqUurq6gwcO3NvV OWq1eubsWcRYIBhsbWmpr6tzu92h30IH9x8IffZy8/Ma6usP7T8YfqmB8oE8d/ZcbU1t6NWoqa7x enuJWFxcXE5eblZ2ttlsbm1pOXPqVEN9w4AOKPXVPZ7u06dOHz967B6eAgAAwNdI2F/3bq+GiBFX wl0i4sRle9bthSqk1kd8DSgAAAAAAADA8MSEotC269oxuhXusrA/iYi+MDNMvH1psyAICYmJ8Qlx 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 L/b19dfV1vp8PlEUY+PiioqKjh45Elq/cPKUKf6Av6W5pauzMxgMarXaxMREgTGPxzO4w3ek1Won TJzodDodjvbenl4islgsCYmJjKiuti5U6+/82XPXrl0bN27cMytXnD1zpr2tPRAIaLQamy06NTVV q9MeP3pMaZmZlWW1WZubml1Op9/vV6lUcXHxUVFRwWCws/N26UWTyZRfUOBwtHc4Onp7ewVBsNls cXFxRNTQ0BheYzCkvrZOluWsnOz8goLWlhZZlmXOPd3dd/uUAQAAAADg64AxEgWBMUJFZgAAAAAA ABgbwqeSDhfuPr/2RZvVRkQJiYlEZLVa1736SsAfIKKf//RnDofjQXTu2JGjz6xYMXv27IDf39Lc zBhLSEyYMnXq3j17nnjyibT0dEEQIkaA98vK1au6BwWHbpf7t7/+9VCLiQ4my/LJEyeyc3Jeff21 wnFFnm6P0WjMy88TVWJrS0tMTIzRaFRacs63bNqSlp4+a85stUZTdaPS6/OqRDEhMXHc+PGnT50K hbuLly5JTkluqG9wuVwBv18fFZWfn28ym3ft3NnZ2Xm3T1Ov1z+/9oWAP9DS0uzp9nCimJiYKVOn eL3eP/7hD6GPSHt7+3t/ePc73/2TN7/x1rjx41uam/2BgFartdvt6RkZDkd7KNydWFy87PHlDfX1 jvb2vr4+tVqdnpGRX1BQeePG1cu3172zRdvWvfKyx+NpbW31eDyCINjt9hkzZnR1dq3/7LOI62Fd uXKltKS0oLDgzW+81dzcLMtyT0/PH9/5Q/jydUTk9/uPHjkSemEBAAAAYDCfz3fk8GFRHO4sAGBU 45xLksSVJYgYI8KquwAAAAAAADDK3bp+WZnFO9zXOqmpqbGxcUrT6qoqziklJVW5S61RD27f2tpa VVnp8Xi+TPcqrle8/8f3lj3++PQZ0zmRFAy63e6DBw7u27MnMSlJr9cZjUYlfG1uaqqy2QYczuPx VFVWtrW23cOhq6uq9XqdPdY+uIywwdAmiiLnvL2tvaqysq+vj4iCwWB9XZ1SNJiIvF5vdVVVe1sb EXHOd+3cFRcXX1BYuHT5Mjko9fX1Nbc0b/h8ffHkSXPmzjUaTaGdl5eVvfP271c/tzo9IyMzM5MJ TJYkr9dbU/2F2tSNDY05uTlTp01VazSMGCfe5/Pt2bX7808+G3nqHBIMBrs6O/PyC3Jyc9VqFeck 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 6XSrnnt21epVWq22ra3N6/WlpqbOnTs3Oyfnd7/5bWNjY2iH8QnxL728bsHChUTU3t7u7fXa42KL JxXn5eedP3s7uC0oLHzrm9/Mzc1pb293OV1JFsvsObOnTJ3CiZ8+eUppEx0Ts3L16oSExHNnzoZP 3tXpdGvXrYuxx2zdvFW5Ra1WL3hs4bpXXrbb7Y52h6enJ06vnzZt+sRJxb//7W8vlV4KBahRUVFP rXimx9PT3d31zMqV0dE2n88niiqj0WC2WI4fOzbycFet0eQXFAiiqNVoVSoV5zwrK9PrS1Du7ezs GtCeMbb6uWeLJ03y+XxGozElJXnqtKkdDseJsBg1xh6z7tVXFi1e5PH0ONodMpfy8vPmzZ9ni4l+ /933Bq+SO7zY+HjlgxQXG0tEZrM5v6BA5jIRdXd1i6IYaqnX6fILCvR6XVxcfIw9JuAPINwFAAAA AIDh6fSSkuxyWZYl4kTyV3i1GgAAAAAAAIA7Yre3GBsm3D1z6lRtTS0R5eblFhQUNDY0fPT+h6F7 3S53aCczZ81a98orLpdr/Wefl5eVS7KUl5e35oUXnlvzXFVl1fZtW7k8cL7wHbrImE6nM5lNTz79 VHd39+aNm1paWmVJssfa0zMylCBQEIR5C+a/8tqr3V3d6z/7vPLGjd5eb1xc3MLFixYvXdLY0Pi7 3/5W2Zter1+xatWzzz13/fr1A/v219bU9PT0mkzGrOzs+ISE0EFVKtXal9ZOnzH90IED+/cdaGtt jY6Jnj1n9opVq1557dUb1yuUlPp6+XXOeWFRYWxsbENDQ+jhk6ZMzsnNuXD+fOOtG3Pz8t765jei Y2K2bdlaerGku7vbYDTMmj1r9XPPvbB2bV1tXWdnp9JSEFhUVJTRaFzzwvPNTc0H9u1ztDsEUYiP j1fqaI/8pevxeD7+8CPGhOhoW0ZmhizLO7Ztb2lpVe51tLcN2JtOp0tJTd2yaVNLc4ter583f94z q1a+/tabZ8+cVTJvlUq1+rnnnnz6qSuXrxw8cKC+tk6W5bT0tCeffvq5NWsqyiuOHR04g3l4F8+f b2ttJaLZc2alZ2TU1dV98tFHwaBERAG/P7witNPp/PzTT1Wi6umVK9LS0zQazV0dCAAAAAAAvoa0 epnLMueyLMmcM865LN3dCSkAAAAAAADAVwvnxBgxpiy6O2S4W1VZVVVZRUSBgJ+IXE7XyePHBzfT 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 TIz2ZJuGbTu0/MZvZdLxqcmBTGrSGHFLqpvabtLaO7x3y8XXc76I0YFDiemR6vqllu0k46Ojg7NH Dg+e3N17+IPOlXev2fT4wIldqcSEiHHCJWUVTZW1nd17X5uODVz+0ylRq5bd3FDXdqq/e2S83/My ISfU2bbGccLpTKqr+4vzPuqjba90tq++89ZvhcNuIhETI13Hdp3q7xaR4dFTn+98645bv3X/15+o rW6OTY2WRCvWrLi1oqJ2556tR47tvrq3BQAAAAEWsW0jIqIsLcZYWhmWewEAAAAABIYh3MV1IjbR t2/78/Hpseb2m2obV/leSkRsJ6KUGh3syqSmRcQY7WVSvp/Ohqla+14mpf2Zqa6+n/a9lNZaRGJj J/d99syKDd9ZvOobyfiEiBalRvsPde1+uayiqaxqUWlF49REn4j4Xqrry5cymcSS1fctXfdQOjml jW/bISXWkX2v5mb9GtGhcElz5y2+l/a9pDESCpfYdujwnle7971x1a86MT16ovvjZeseFpHhvv3x 2NCsHdLJ2KGdf0snJ1sW31pZ2+llEiJi2WHLsmPjJ5KJsfydfS/jZVL6wms1a2OO9e6vLK/rbF+9 uH2tEW0py4hMTA5/sff9Xfs+PO+jDh7Z8e5Hf/3KxgfvvOWRtJcSI4nUVDbcFZH3P3lRKbXxhq9/ /fbvp9KJsBMpLa3cvuvtdz78cyqdyB0kk0ml0zP/dc4U7HvpdNI7Z8FqAAAABFgkHBIlRoujlTbG 1/oKZ7AAAAAAALCAKDp3cZ0yenTgUGJqZGyoq6yyxXEiIuJlEtOxwdGBQ9OxIRFJJSb3fvaHxPSI 76VFZGTg4O5Pnh7q25s9wNEDb/X37sh2smqdOXrgH+nUdE3jCicc1X5mOjbY37N9auLUvm3Pl1Y0 5SegycT44T1bpicHKms7Q+ESpVQmnZia6B84sSP38+j7ma4vXxru3++WVDuhqCjLyySmJ/pO9Xye nB69lpfdvff1xNRI9uWcO5dXxEyM9uzb/vzYcHdlTbsTiooo30vGp4bHhg6PDx/N7ed76aP73+zv /WJyrPciT/fxti29p7qqqxpK3DLHCRtjUunEyGjfvq7PxidmR8tZ6XTyg0//Pjxyqqa6ybZsERkY Op67d2jkxFtbn+sfPF5b3RQOu56Xnpgc3nvos/x9ROSdD/8cdUtHx8/qM+45sf+lN3994tTsfmUA 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 T1ldXZ0fHzl8pOvazPyhZ/7QzglbZ7buu+++BVUHAHBZuOap16ysbK/DfPXVV7dt27TN7l+ZNjc2 jx8/vqDqYL9lE1EZtb0XUWakcBcAAIDxEO6yxH7nd//xs5/znPlx102uuPLKyWTy3/3L/37nhLvv uvt//Z//l4h4+rXXvuwXf7Hr2u99k+PHj3/0r/56/rBDRLz+DW84cuTwnpd759vf0ff9/PhXX/lr 11xzzZ6n/dVH/vL++++fHz/vuute9OIX7bkQ3Dfv/ObNn/zk/Hgymdzw+tcdPHhwzzd8x5+9fRiG +fGrX/uaq666as/T3vfeP19fX58fP/8Fz3/+C16w52lf/vKXv/j5L8yPjxw9+qpXvWp1bfV7T5tO p+9+100735bXvu51V1xxbM833P1tedFLXnzdddftedpnP/OZr9/+9fnxU655ystf8YrJZPK9pz38 8IkPf/CDuz6OG48cOfJ9r/vyV7zi2mdcu+dp//5v/t977713fvysZz/rpS/9+abd4+7ePd++5+Mf +9j8upl54xvfcOjQoT3fcPfH8apXv/rJT37Snqd98C8+cOLEifnxj/74j73whS/c87Tbb7/91s98 dn588ODB61/zmgMH1r7vdV9zw2uvvMD20u96xztns9n8+Gde+MIf+/Ef2/O0L/zt57/yla/Mj6+6 6qpf+bVf3bnpv9vp0+vvf9/7dj6O173+9UePHd3zDXd/HD//spc9+9nP2vO0T/6HT971zW/Oj6+9 9tpfuNCo/O7xj/71uVF54xvfcPjw38eovPPOO2/55M3z48nKyg2vu+HvaVR+6Utf/MIX58dHjx19 5Sv3HpVbW9P33PQDj8oXv+TFz7vQqPz0Z77+9bOj8qnXvPzlL7/AqHz4wx/80A88Kn/5Fdde+3hG 5bNf+tKXXmBUfvvjH/v4rlH5xkOHvv/H8Rij8gN/8YGTj2dUfu1rt3721vnxwYMHr3/taw6s7TEq q+Kdb79ko/JJV/3Kr45jVL7ymmuesudpf/mRv3zg7Ki87rrrfu5Co/KOO2+5eXtUrqys3PD61x04 cGDPN3yco/LP3/PejY2N+fHzX/CC57/g+Xue9uX/9KUvfnFnVB575Stfua+j8iXPu+55e572mU9/ 5u/OjsprnvrUX3r5L+3LqGzb9nd//z/7oR/ajnJXV1ePHjuWmbt/ZfraV2/7N//qX+/5JrB82i6q YpgPuoxMG+8CAAAwDvN7aMJdltiBAwd3bi63bdc0TWbuvt188OD2LeCnP/3pv/Fbv7m6useN8q9+ 5at/89cf3XVn9oanPnXvfOimd920c2f2Fb/8yxe6I/z5v/3bnRjpuc997m+96U175haf+NjHb7n5 5vl1J5PJ62688UlP2vtO9Lve+a6dG9a/9spXXuiO8F9+5C93YqQf/4mfeNM/+O09T2ve/Z6dcPfo 0aM3/vobjh7dIxhYX19/73ve258NJK5/9fXPfNYz93zD99z07p1vy8/+7M9e/5pX73nagw8+eC7c fcpTfv03f2PPG/Tf/OY3P/KhD1dtv+FrXvvapz39aXu+4bt3fRwv+8WXveglL97ztNtuu20nRvqh Zz7zN9/0W91kj3/v3frZWz/x8XMx0g2vf93VV1+95xve9KiP49d++Ed+eM/T/sMnPrET7v7Ij/zI hT6OD3/wQ5/77K3z6x44cODGN9x4xZVX7Hnmu97xzp3rvvL6Vz3n7GMN53nvu9+zEyO94Kd/6o2/ /sY9T9vY2NyJka686qo3/Pob98xpjt9//wfe//6d7/P1r331M57xjD3f8N27fgxe8tKXvPwVL9/z tLvvvnsnRnr6tRcelV/+yt98dNeovOGGa57YqPzcrZ87Nyqf99zf+u03Nc0eo/Lj//5jn7r5lvl1 V/ZlVH74Izuj8id+8icvOCqb5ly4e+FRefr0+p+/9wcelS/8uZ+7/tXX73naAw88cC7cfYxReed8 VG5/HI97VP7ii178oj1P++pXv7ozKp/5GKPyM5/9xMc/Mb9u0zQ3vP6GJzgqP/HxT5w8Nyp/9EIf x4c+8MHP3fq57VF58MCNb7jxiiv2GJVVddM7f+BR+VM//VNvuOCo3Nj9yMUbfuPXD+/1iMnx48cf 76jc9XG89KUv+aULjMq77rpr16i89kKj8isXNSp/+Vd++Sef/5N7nnbrrbc+cG5UPu+xRuUt26Ny sjJ53Y2vv1Bq+zhH5Uc+9OGdcPcnfvKC/63MzHPh7mONytOPGpWvuf6Zz3wc/6180c++6vq9R+X9 9z/wd49jVN55x50/6Kg8ePDcr0wrKyuZed6vTBdKzWEpNV3M23ZriAhtuwAAAIyMcJcl9u533XT4 8Pa970OHDv/L//F/OHL06L/53/7Vzgnrp7djlbvvvvutb35Lu1c30oMPPrhzezQi3nvTTQcv0LK5 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 l/638kU99+XEc12+fHmapmefffbcuXPP+xJiKenChQvdfdfLlStXrrzzne/89re//e1vf/tllAfA vaqOk91K+rmnE73UX+UVr3aXx190tbt8nZrn+dlnn315pe675U/ghd57elVYVffff//y1f/o6OiZ Z565R75FcLLkvGu5urzCXx6/R0plTy3PsXmer1271nfuWVmtVu985ztPvt+S5F//9V9/8HzD/R55 5JE3v/nNJ3d/+MMffu1rX+t7aQfM8lfm+vXrR0dHP/kjDw4Orly5cv78+dVqdXh4ePXq1ef9Btpg 1uv1e9/73mefffapp566a8m2/NE99xlyslJ+3oUSP5Xlb9lLWZyu1+uDg4Ojo6PT3xRdnHyL+65X F5cvX37iiSe+973vfetb33p1ygdgKK803L3vvvs+8YlPHBwcPPnkk9///vdPHr98+fIf/MEfbDab z3zmM0sA+ZGPfOThhx/+0pe+dPqb8qvV6td//dcfe+yxf/iHf/jHf/zHJI8//vjjjz/+rW996y/+ 4i9O/0a/+Iu/+Ju/+ZvXr1//9Kc//VNVeP78+Xe84x2PPPLI9evX/+mf/un0q9tz58594AMf+Na3 vvWd73znta997RNPPHHx4sXvfe97//zP/3w6NH300Ud/6Zd+6a/+6q9epddA73//+0+/tj7tf//3 f5988sm7Xgc8+OCDH/vYx65cufLUU0996UtfejVKel7r9fry5cu3bt167uuSEw8//PAHP/jBBx98 8ODgYAlrr1279tRTT335y1/O8bMiSXd/5Stf+cpXvrJ81gMPPPDxj3/80qVL3/zmN7/whS9cuXLl d37ndy5fvpzkz/7sz04/r5ZPPzw8/PznP/+9733vpRf/vve9721ve9sLvfdv//Zvv/a1r730X+1e sFqtLl++fHR09H9h9XLhwoWPfexjDz300LVr1/74j//4uTs/3vWud126dGm5nqbpO9/5zvPGSI89 9th73/veJKvVarVaffnLX76nwt0LFy584hOfeOCBBz73uc/9hJzp4ODg3e9+95ve9KbLly+fP3++ qpZdFH//93//9a9//WdZ8M/e29/+9g996EN/+Zd/+bzvfeyxxz784Q+/0Oc++eST3/3ud1+typ7j rW996+OPP/79739/78Ldhx9++N3vfve//Mu/vJKw86X/rXxR99133+///u+vVqvPfOYzL/RV+JOf /OTBwcEf/dEfvfWtb33Xu971X//1X1/4whdOZ/lV9dGPfvT1r3/9d77znS984Qun1883btx485vf /I53vONTn/rU/4UdEgD/N1Qq6SXWnU8FvT+1+++//7d/+7fPnz//5JNPnl5Inqx2P/3pTy9fPpbV 7l3LivV6/Ru/8RtveMMbvvzlL3/1q19N8sQTT7z97W//xje+8cUvfvH0b/TGN77xgx/84NWrVz/7 2c++vFJf1MWLFx966KFnn332pX9FvnLlyq1bt342Xx/f8pa3/Nqv/doLvfdP//RPf/CDH0zT9Ja3 vOWJJ564//77l/XmsvXz3/7t3/7mb/7mZ1Dk4v777+/u535n/wMf+MCyru/uL37xi9/85jeXx3/v 935vWdveunXrD//wD39mde618+fPX7p06fr16/fgdvYd+vCHP/yGN7zh5s2bTz755F2rjNVq9Su/ 8iuve93rcvzy+0c/+tHzhrsPP/zw+973viTTNK3X669//etf//rXf5a7YH+yaZp+67d+66GHHvri F7/4jW984yd85O/+7u8+9NBDS7PEstXj2rVr//7v//53f/d3L5oK77Vf/dVf/dCHPvTXf/3Xzw34 P/7xj7/mNa+5efPmn//5n5/+p/4973nP29/+9iTf/va3P/e5z/2sKx7IhQsXPvnJT547d+7Tn/70 C31rdFmcfvazn33sscfe//73//d///fnP//5uzZ+feQjH3n00Uf/53/+5/Of//zpf+Vu3rz5xje+ 8fHHH//Upz7lXz8AXky90nB3vV6//vWvv3jx4l1tkavV6pFHHtlsNicHGr32ta995JFHTm8kTFJV P//zP//oo4/+x3/8x/LIAw888Mgjjzz99NN3/UaXLl165JFHftqNzNM0ffSjH/3lX/7lZ555Zkl5 /+RP/uQkzvn/2XvP7jauLGu4CpnIOWeABMGcRFEURSpnOXS7u1enmem15v0y/2P+xvR0P22327Jk yVaWJStQYlBgzgFMIAAiECByqno/nHF1NZIgKlrGXl5eUOGy6qLq1r1n33POPmazubOzMx6P0+n0 s2fP4jieTCatVqtSqbx27RrYSWw2++DBgxwO59mzZ2/CuYuiqFgs1mg0yWQy//yJRCKnIhSLxTp6 9GhNTQ2Kom/TUYEgiFarPXv27Nzc3O3btws20Ol0Z86ckUgk0GcURXEcx3FcIBA8f/4cx3EYFdA4 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 D0JgoxZBrLQgAAAAAElFTkSuQmCC --0000000000006dc942062ce61a34--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 30 Jan 2025 04:44:44 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 29 23:44:44 2025 Received: from localhost ([127.0.0.1]:43841 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdMQ0-0005VB-B1 for submit <at> debbugs.gnu.org; Wed, 29 Jan 2025 23:44:44 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:51422) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tdMPy-0005Ut-2Q for 75056 <at> debbugs.gnu.org; Wed, 29 Jan 2025 23:44:42 -0500 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-43621d27adeso1793935e9.2 for <75056 <at> debbugs.gnu.org>; Wed, 29 Jan 2025 20:44:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738212275; x=1738817075; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=jL/mqddK0FRlsnZ4JfznpyMPHW++RTW56PHddGgxHN4=; b=jXW2Glofrmnmp3tY0cM7b/5Xj4KLmB0nErXegdE9/WjJaL9a85Gn4+cuNPHr14UbEb ZtbgxA81xTk0rgXCxAn7j0q7uyHae+TbCvi+u8MaZjwTcp/IfRPCQo5sUKX6tYkTbSQ5 P3W9HnqMgBC6a+KHIn5rd5jExtKyy84KXdH0mkE28Prup3C1Vjp8/SNgMppZyc1j9pSn /sY4o8Nk0b/9g2jsP6G30UV5scLg5lAwiISyPDVRDvVQkOHw043aFFdf11uo1ao3y6Am eTSCUJqe9PIlgk7wzHkELG+2byJTxyCkGTDbzTupzMDGu2gcVp1IFtaHrzTW+/P0KWPo 9lpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738212275; x=1738817075; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jL/mqddK0FRlsnZ4JfznpyMPHW++RTW56PHddGgxHN4=; b=GeIZAXG0FvponV6OlW9MkbyWdRrmjpogKbJqUQHVkP5rUIiEUoRJpYHn6P8iaKwR18 rvJbPSOFtwzcT0waMgr9lTrqFVq6oYzAVLGW/29OxL998lBnZZ2NQ/jfbMiSr3tDCnAm k7hAPAqtXZna0bVyis6zmLdTkiZeILPaE7DQyIpt6JV4cTcMg+VJ9dhEqyZAz/mcoLu8 BY5qiDhhk0YucqXjsTSQWypvMXL+qdbOr/9z535o9zLllXRyxQ5D1HGYapTLrVOIzoP4 hCF/dv6oRHBgY6hvpMDQdZyQeR4hvhsoN+F9qFvc3os0h3kaPn1N7rETkn4zCRmvhdQ2 R2LQ== X-Forwarded-Encrypted: i=1; AJvYcCXiCuEmnaBP9EkeJBRO8KRWkCAVCleia+ZGu4lNTR8DF7m2KHx7Wbv2BvR6fCNdT4UFkZXCHQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxUxZ2aBcmOlJ14JdR84mUTUzkgYshm6HhCd7RDRs+rluRvys4j h5E/ljynsm2qvyppOuY8nnYquacgMmB0lWhjDXzOcOYF30ScZnKbboseFA== X-Gm-Gg: ASbGncvAywvbqteRCnIcaFKa23XGe/CGPUZHsjP0kcii3EZCHHH7qH3Fxo1biAORFht bhhMXucrL8Lj6yB3QgzR9hscHaWNaJFidMBdNdfBy+IG4Z9KmfHC8y9IouIO9AMTwuuPDGVDNef BZcHvrwx0nPR7OQN973QyzAKc1rIVFJwm5JaAY/5M5eJehrFyUl24t9S6BqXzd9DK3CY+d+JB7l mx6unTqnIwpkeQJ9QYNPDyHCZFCVASXGKdEHtFXK77aTTVHHTGAFFb+267K0nm7dusq43QB3eKD Cy0/B8bcuqQmted6mD9aXyLBURktGFXeodD8wR+rpbQtjGlmLm70VJDy+Zjm2ki9LQ6R+juFAqu rZOPUVCFvK+g3sEKW5IdMK6GQ X-Google-Smtp-Source: AGHT+IG3Hd3eyre6U+9j1NIxk8pSvGTR0HLvpLBepeGvVCdrH0aeUZZHtpZcngrTqlo2Jf456bUtQg== X-Received: by 2002:a05:600c:c12:b0:431:5aea:95f with SMTP id 5b1f17b1804b1-438dc3cc378mr51802815e9.16.1738212275288; Wed, 29 Jan 2025 20:44:35 -0800 (PST) Received: from pro2 (p200300e0b720a900dc01849cb197321a.dip0.t-ipconnect.de. [2003:e0:b720:a900:dc01:849c:b197:321a]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438e23deddcsm8681765e9.14.2025.01.29.20.44.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jan 2025 20:44:34 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> (martin rudalics's message of "Wed, 29 Jan 2025 19:03:21 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> Date: Thu, 30 Jan 2025 05:44:32 +0100 Message-ID: <m2v7twdi6n.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> Back from the drawing board, please find now 3 patches attached. > > Works pretty well so far. I'll do some further experiments with it. Now pushed to master.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 29 Jan 2025 19:10:01 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 29 14:10:01 2025 Received: from localhost ([127.0.0.1]:43072 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdDRo-0005aC-Ob for submit <at> debbugs.gnu.org; Wed, 29 Jan 2025 14:10:01 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:42134) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tdDRm-0005Zv-0C for 75056 <at> debbugs.gnu.org; Wed, 29 Jan 2025 14:09:59 -0500 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-43635796b48so7915285e9.0 for <75056 <at> debbugs.gnu.org>; Wed, 29 Jan 2025 11:09:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738177791; x=1738782591; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=tcG19iHuY5rJ3Vfqg9+chUwQzu92H4AsNgruXo+sudc=; b=NApgePFhj1pJ4B1QZmlEOBUjHlqkyqu4oW7WHJj8Dv4ECojBo9KpdYphUPlmwc9eSn jfarkzA60phhwL0kcU4S/HCMWyLMwvlNFjXFWUv2ZZQ0Un99+FekqGC+bEmW1wiVCmd+ t78vMUvyBccJSXfEfw5qND7m9t+nLEYGklmfXhrXIhKy+u0wk84ZWxEleAjUAnGrGwvB Nfae3ool2FbEatbmZqLLLxjCrIyHkMKFYikGbj0jgmuAe7Z9Km87gfcvK152AuLEYRr+ x2QcmK2GwjRmjWx1cuSsNL8/gu01lPgrn2tKeEPlkvnzG/5rUvKwkHpixSnZLKivpDgl OhjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738177791; x=1738782591; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=tcG19iHuY5rJ3Vfqg9+chUwQzu92H4AsNgruXo+sudc=; b=kW0qwL+B6LTGFM/Q7+QO1zizr7iaW4lfRYNdvfuegMwAi6wWuAT+ek4ykLVnMb0x+4 Tz5cvEPWGfYaCx4dVbMmBWRueUbBqRHIfUGPcwzhGy2NEgWHT0AlwLq+8grpTVgbTxrt jO/7yWYQSJvyYp438nTj/VQWwoI6S2RnvZGnKX/yyH0lGL29tLY+7ukOv9UBmfKehZGm NstcmJfA4IdJsz5I+nFzPMS4xxY7k80DnYbsZv05GIQNJcdywGl1qksMElNnnICGSLSx vU2KBAkmWDgaKqzYv4HuqqrcOKHkF9K/CvKLq3Ugcg9U40gFRISzdS/13j/v2R4qe8/X MlEQ== X-Forwarded-Encrypted: i=1; AJvYcCVc14LVEZqexD+YMDVtYTx9cC5trA+C3NYeLqTH1PgMO/RUCVZFoZfoXB577ofs+ykQYCMd7A==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyRUQzs0KFO2LHOpK+9onwYVIlwVCku7rmM6/0TI33SmO3Nia2p oDPo2NyGfsqApU3ThY+8cNZlElXQFV10CnJ/IGRYDJcthPyhK9BUjozHJw== X-Gm-Gg: ASbGncsXXNaUoW85UTIoRyUnK/rb9TcJUfaxFksPy//Zzxyoal6s5opDwPfRUFDPCyY pxzwAeXw4DffRm2QD4IBEPD7d5U04RizVsb5pg7fFXttLcKMXqvIMMlvkQXt9s8shlB1cjH2vsk 1KbJy/aZkpNMn0apKIEpxqyS5xbQZjqNp7zN7h29z4lhPTKt+oXL2KcbYMrFEvcIUpHiPy8TMl2 hIFdCXzJZuD7/XkJI3rtvny33ljJpEd73OnNnX6/ZHjDPCvMuJ5pXX8pJ+Z5QgLkVTIUGBHfLnE 71X8NFHegH8Xf8ntC5S/0kbvgmsGA/Z/9BS6QY2IFMmMcWLNBXmib4wvd0FLuesqt8ig559rwFI 7dLswBxHKpFihSfONGi4YHao6 X-Google-Smtp-Source: AGHT+IGLLFJBD9uOsjASpJNmMJOodnL0c8dJTsEQZ7j2236rGhXYTTg9aknWNcZEZ4Fic/YBmlT7+w== X-Received: by 2002:a05:600c:4710:b0:436:1af3:5b13 with SMTP id 5b1f17b1804b1-438e171a60fmr4320485e9.15.1738177791220; Wed, 29 Jan 2025 11:09:51 -0800 (PST) Received: from pro2 (p200300e0b70d1c004d3b680a62916f26.dip0.t-ipconnect.de. [2003:e0:b70d:1c00:4d3b:680a:6291:6f26]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438dcc27125sm31706535e9.15.2025.01.29.11.09.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jan 2025 11:09:50 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> (martin rudalics's message of "Wed, 29 Jan 2025 19:03:21 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> Date: Wed, 29 Jan 2025 20:09:49 +0100 Message-ID: <m2zfj91loi.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> Back from the drawing board, please find now 3 patches attached. > > Works pretty well so far. I'll do some further experiments with it. Thanks! > Next question: What is the special purpose of 'tty_child_pos_param'? > With a negative value it makes a frame disappear on the left of the > parent which is not bad per se. But the manual says: > > A negative integer relates the right frame edge to the right edge of the > display or parent frame. > > So > > (modify-frame-parameters nil '((left . -5))) > > on a GUI child frame moves the right edge of the child frame by 5 pixels > left of the right edge of the parent. Inherently, negative positions > are deprecated on GUIs. You mean this one (nice copy function I pilfered from the Internetz): frame.c: 1451 int 1452 tty_child_pos_param (struct frame *child, Lisp_Object key, 1453 Lisp_Object params, int dflt) 1454 { 1455 Lisp_Object val = Fassq (key, params); 1456 if (CONSP (val)) 1457 { 1458 val = XCDR (val); 1459 if (FIXNUMP (val)) 1460 return XFIXNUM (val); 1461 } 1462 return dflt; 1463 } 1464 It has no inherent special purpose, and probably has a bug as you describe. Like perhaps the one for the size. Both are an attempt to mimic what is done for window-system frames, while being depressed that that cannot be easily reused, and being too lazy to rewrite the whole frame parameter department :-). > > Also when I want to move a child frame to the left of its parent via > > (modify-frame-parameters nil '((left . 0))) > > the left border disappears. Is that intended? If I understand that correctly, then probably yes. The borders are drawn around the frame, so the left border is at left - 1, the right at left + width + 1, and so on. Whatever is outside of the terminal is clipped.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 29 Jan 2025 18:03:35 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 29 13:03:35 2025 Received: from localhost ([127.0.0.1]:42922 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tdCPX-0002az-31 for submit <at> debbugs.gnu.org; Wed, 29 Jan 2025 13:03:35 -0500 Received: from mout.gmx.net ([212.227.15.19]:39939) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tdCPT-0002ak-Tg for 75056 <at> debbugs.gnu.org; Wed, 29 Jan 2025 13:03:33 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738173802; x=1738778602; i=rudalics@HIDDEN; bh=qDI7RzPhfrIb0p5WWzFox07zm/cCt9fdYH4yfgcTVvQ=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=uK1NSXhBbOLsMb4qS/Q5Od82D2NW4xFX1cUnavlfz/CceP/0IcJvRob+naI29iyy SjBrG+U6GcFkfTXVcihF3POMP2dNxdCcGOoHCGI+jTzK75fiOgZZqvm8b304pyhtn PS7Vg3GZ/ex3nEMQj0StKMos4Set9KUSTDAyNnYfUehI6bW6RVyxWNxqEuP7nehl1 9Zqso0ZLRqKpUatcThrAD2hsHJFFQFA+Ru9SJoAtZ+JI3vrclJZoss1AHg7loudZy MdSkDEyfWKl5WxG7jy82yW2Y7xuxJ0V80Ho0NtAKbJS4kd2v6KxejdQSRwtPJj4QU lR6MxHosJTmYBm15yQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.251]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MvsIv-1tMUVJ2Kxz-010tTR; Wed, 29 Jan 2025 19:03:22 +0100 Message-ID: <ed11ae11-e792-43ed-b246-7edc00dd27f0@HIDDEN> Date: Wed, 29 Jan 2025 19:03:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> <m24j1h3h6d.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m24j1h3h6d.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:vIHQE6yT5US1TE146XJ93l5WsNHBZTBpMXV+1U0Fm9wO7sdYEeU tA9+e2VyMeNAexhDGoVpk05xTrArzfJzRxEzGDilzNgIjvViMlu6gQ/Wj+lIeRBDYooD5Cj zHNkNowxrQYPphbOpdZPQDIKUOVc1OK8hs7TPRt7Kgjnw7HHy44oV3LrT++xfnh6hh8N6Jw jMx5TZqeT55i2TC9h03yg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:rrCWYHPm5s0=;EUAu07VKx+PBgRrEX60Fz9qjIBh tzaosvHUkVwlUlqjZ7d8OMpMNzoo/gXYmMubyJDCkrNElNGTUhKRR0njwVCCehrhbkWks8/6U smt9M/8LDHh+G3ZZ6EHutym0sPB0Nklc7ih0m+1OyThZLyuC6qFlP562bb9+Q7I2hSh7X5B7s ky3N2PKOT5nZ95gZxxypj8jGsNqVj4YnHZaUPRTaeOjxeFUslDSVOWpeRvZlitb6HcRqVR+XF 9fptudDmqsuIP9d2gHLAENruGADJQFHJO0oc5GzXUjtPOhpyfKjM5jrHmGhGp+RyxWXhcJIAG 3bH7yfSOMgqYTW0IY+sHs5gr2HBmbda6jfsZSdkYDzReuOr+WB69YVWV9u+ERvJzI1fLH0WsW 8PYlDAAJnNLGizzpZlk1h3ZozK59CV0FD/7iKat6lirVaKng76enCQQ5pQbObZ3Lng4EVioLR GwlygVJVyWoNKVOnj8o+5VBNAFbpgxx7q44819oBmOPI120Hm92IVSRXE1zmZcnU8hg41wa7g UXYsFOlG9uxac5XxYHWsK9kyvvzhwOe1xuUi8P6FQeRAOKh3DgLrlwb63+HvgDzvLAHeU5fHr Qj2/bvAarA+NcvL4S3cCwUw9qzT7pEAHixVpD4SnHLczg//cE8f8vUmVhc7jjdjYEILJWXdVz jBBN0pTwGvlzvBxz9dumCZglnp67zskumwC6qPgZ8QSCpVW+EjvIIWjFXWMrAfwvAWqKtHSLI OZNyZsV3JyvhXxYkOlS9wL5jyC0KywNAiNFrUvpDMON2STRKaYtLBT+oJDsxSKxNYIV8QgIYj mLjTbtzeeWwKorFND3mB+nPx1nx9Yj9gawhfj+N6HfjS4J4Cs4sRzxiUdascidmfeEUzaB+W3 ZNC3kBU3g2bF7sBXmRDW6rfIGUNyMLQCE5IWK0FJrI0gHWqFZzyU8KEX3yQY4XYtiTZ8pi+lq LIIPy8Koy+IyIQJPe6OlQFiR6TVbjJtJIKMXAnFHMH+PzmlnuhvWkgA0n9WWVlJy1AFoFegU9 fgB2Ddh5B/gBS2ikzdrVFGfSn/I5oTJ1XqP1t66XghDTZ84+THbQeN0a+awyQapkgo9HDmO4N aXwOdsvU6FHcEU8FX8c2PfdGW3rqmebQjUrwq2s66nfOivH3VWLSBtd9KY1iUqT5rvRhelye6 WL/6FqP4Top6xStxMdRD4YTKvvmMynAHA5i7i4KFoQw== X-Spam-Score: 2.9 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > Back from the drawing board, please find now 3 patches attached. Works pretty well so far. I'll do some further experiments with it. Next question: What is the special purpose of 'tty_child_pos_param'? With a negative value it makes a frame disappear on the left of the parent which is not bad per se. But the manual says: Content analysis details: (2.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record 0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.15.19 listed in wl.mailspike.net] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.15.19 listed in list.dnswl.org] 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [212.95.5.251 listed in zen.spamhaus.org] 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.19 listed in sa-accredit.habeas.com] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.19 listed in bl.score.senderscore.com] X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 1.9 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > Back from the drawing board, please find now 3 patches attached. Works pretty well so far. I'll do some further experiments with it. Next question: What is the special purpose of 'tty_child_pos_param'? With a negative value it makes a frame disappear on the left of the parent which is not bad per se. But the manual says: Content analysis details: (1.9 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.15.19 listed in wl.mailspike.net] 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [212.95.5.251 listed in zen.spamhaus.org] 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.19 listed in sa-accredit.habeas.com] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.15.19 listed in list.dnswl.org] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.19 listed in bl.score.senderscore.com] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager > Back from the drawing board, please find now 3 patches attached. Works pretty well so far. I'll do some further experiments with it. Next question: What is the special purpose of 'tty_child_pos_param'? With a negative value it makes a frame disappear on the left of the parent which is not bad per se. But the manual says: A negative integer relates the right frame edge to the right edge of the display or parent frame. So (modify-frame-parameters nil '((left . -5))) on a GUI child frame moves the right edge of the child frame by 5 pixels left of the right edge of the parent. Inherently, negative positions are deprecated on GUIs. Also when I want to move a child frame to the left of its parent via (modify-frame-parameters nil '((left . 0))) the left border disappears. Is that intended? martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 29 Jan 2025 13:04:24 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 29 08:04:23 2025 Received: from localhost ([127.0.0.1]:40262 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1td7jy-0001KH-Bv for submit <at> debbugs.gnu.org; Wed, 29 Jan 2025 08:04:23 -0500 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:61502) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1td7jv-0001K3-6V for 75056 <at> debbugs.gnu.org; Wed, 29 Jan 2025 08:04:20 -0500 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-385de59c1a0so3962670f8f.2 for <75056 <at> debbugs.gnu.org>; Wed, 29 Jan 2025 05:04:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738155852; x=1738760652; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=cMRSNx2Df3vq7OiXwZ11+15/t/NGjioNO6UddmwFks8=; b=gdOqdFiHQYLUr3ZhavsOEbE9ZeJRUDiQURssGRzO2Zqw/8Um0FfCeL1jR11RusMR6Q y/rbHK4yWkWlcx4c+XyAZEOeBYNwQ1Aw4ruR+nxJ65m4ffOT4GinFXhiYBb4SPkSHJG7 OJsqtXSPknKyMICmJwnllwwgUPuIWCfV4fiP4660bfKG9wrSJFjTDhz33Sm3uPNGsuuS whLPP+OWU9J563oLWaruYVjWoU4IalUESyh+wb7t9hHvrQVAEq0DG5vekx3Cd6xkTFdW bEdD0KLtc6nNEpty+nym9izMn7ri5Y/AnS5bFi+lMh+LHXI1ZxSfRBL6Gl1yb1DykdMP H2aQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738155852; x=1738760652; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=cMRSNx2Df3vq7OiXwZ11+15/t/NGjioNO6UddmwFks8=; b=pAdDsYrjP9vVaVgJYxnMoQbYF0Vx3854t5eqZJyDgyQmnQHhypZvthf/lM6wG6q3iD cZ2/fGbQbVfQkUFAwVwLdNk56XTkbvmK6tX2nq8vZhc+P7eIrzQS4AhVqjvAavUiyvJH J2kTwBzjvf/cf5f4E9rRIWoghGQquq2WjlNjystXepplJdX/5xAfmq9XxygAV5Hsnl5Z rDF155BvbkAqMDE0nhvUk0LZgOCip/ghky0IhtZPxnc/XYadZv2EL41rfkc3TjsIxIK6 QF+5vV5HF0kntpc4lropxqp2g5T77Qb9F+AAPH3VHxFDrspwiBBBSp+5Sf1KV5IFaspY VB9g== X-Forwarded-Encrypted: i=1; AJvYcCWhsGD/IVUNufIQBpo3i2Q2G+tqilftnW/diMaiy5C4bVVoPUx/ZTuj7DVOrF3L3/7hbWUgEA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxptfOA3MxL5VfbfSa1CXt0iOdggDgBH0yAkJ/de7sF24gE+pOi 9uiT0PBwuyzl+vxvmIfJxWBzC1vLbIqdpbRO5bK/71D3pfViHxlEofQjtg== X-Gm-Gg: ASbGncsJGFXjqiXP0i+0AfIGi0DgsS/0ROjZO4FUtAhBjQw5Q57ZVrWjuOj/EgSGbHj UGL3XYwS3/SIDpIqdi4zJNlrC/icpn+dwV9MJVR03rr3/MDR+1oxQDpr17NwrbzqGy/i8zpmtM1 6eLTDGAeBm9inF3RMO5JsOefUxdvwfmzp0vftQliz0xpO01zOjMPolnf25bK4axBbVIw03QuW50 9cSfwpPSDCOCDXqS96x2/6HbLifzOrMjyPt3QE5YM4pcrBAPWVV0wLQTKDGb+2rvWaZsv8yD7GK HCsarK8FLcDQXshIexF3beTptHrLYdn5vm00swwlNIzWfVfuHcQYQ6h1sNup+GInMGWmijd3iqz m/ts9RlBH+mFLF2C2ercdG6UA X-Google-Smtp-Source: AGHT+IF2cDsK2vaF5ebcqIdb1cLZjAPHKYxnYTb/8Ed/ZTO8Dd971Bmn3gV9PaaqIsjGrnNHq+anhQ== X-Received: by 2002:a5d:6c66:0:b0:38b:d7d2:12f6 with SMTP id ffacd0b85a97d-38c51932163mr2502709f8f.2.1738155851972; Wed, 29 Jan 2025 05:04:11 -0800 (PST) Received: from pro2 (p200300e0b70d1c004d3b680a62916f26.dip0.t-ipconnect.de. [2003:e0:b70d:1c00:4d3b:680a:6291:6f26]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c2a188bf5sm17309996f8f.50.2025.01.29.05.04.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jan 2025 05:04:11 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> (martin rudalics's message of "Wed, 29 Jan 2025 11:18:52 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> Date: Wed, 29 Jan 2025 14:04:10 +0100 Message-ID: <m24j1h3h6d.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain martin rudalics <rudalics@HIDDEN> writes: >> But it seemed to work on the release branch. Anyway, with your patches >> I don't see the assertion violation any more so you should check them >> in. > > Spoke to early. Now setting the cursor in a C-l child frame doesn't > work any more. Back from the drawing board, please find now 3 patches attached. Idea was right, only that something was missing: the selected frame is insofar related to the update that if it is part of the z-order on the root being updated, it determines which frame in the z-order has the cursor. Sounds a bit complicated, but fixes the problem :-). I have rebased to include a comment fix you mentioned in one of the old commits. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Don-t-use-selected-frame-in-tty_set_cursor.patch From 026fce0c4d74f98d3cb1bc7648a77e7996fe6719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerd=20M=C3=B6llmann?= <gerd@HIDDEN> Date: Wed, 29 Jan 2025 08:28:58 +0100 Subject: [PATCH 1/3] Don't use selected frame in tty_set_cursor * src/dispnew.c (tty_set_cursor): Add frmae parameter. (write_matrix): Pass to the updated frame to tty_set_cursor. --- src/dispnew.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/dispnew.c b/src/dispnew.c index 1b4c5eb37cf..7242849509d 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -5618,10 +5618,8 @@ scrolling_window (struct window *w, int tab_line_p) ************************************************************************/ static void -tty_set_cursor (void) +tty_set_cursor (struct frame *f) { - struct frame *f = SELECTED_FRAME (); - if ((cursor_in_echo_area /* If we are showing a message instead of the mini-buffer, show the cursor for the message instead of for the @@ -5683,7 +5681,7 @@ tty_set_cursor (void) else { /* We have only one cursor on terminal frames. Use it to - display the cursor of the selected window. */ + display the cursor of the selected window of the frame. */ struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f)); if (w->cursor.vpos >= 0 /* The cursor vpos may be temporarily out of bounds @@ -5736,7 +5734,7 @@ write_matrix (struct frame *f, bool inhibit_id_p, /* Now just clean up termcap drivers and set cursor, etc. */ if (set_cursor_p) - tty_set_cursor (); + tty_set_cursor (f); } /* Do line insertions/deletions on frame F for frame-based redisplay. */ -- 2.48.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-Replace-two-macros-with-functions-in-dispnew.c.patch From 524e4e060c13d1b9d3fe24b3d8ca56903233e84e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerd=20M=C3=B6llmann?= <gerd@HIDDEN> Date: Wed, 29 Jan 2025 08:34:43 +0100 Subject: [PATCH 2/3] Replace two macros with functions in dispnew.c * src/dispnew.c (WINDOW_TO_FRAME_VPOS, WINDOW_TO_FRAME_VPOS): Macros removed. (window_to_frame_vpos, window_to_frame_vpos): Always define, and use them instead of the removed macros. --- src/dispnew.c | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/src/dispnew.c b/src/dispnew.c index 7242849509d..0eba863fea3 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -140,11 +140,6 @@ check_rows (struct frame *f) #ifdef GLYPH_DEBUG -static int window_to_frame_vpos (struct window *, int); -static int window_to_frame_hpos (struct window *, int); -#define WINDOW_TO_FRAME_VPOS(W, VPOS) window_to_frame_vpos (W, VPOS) -#define WINDOW_TO_FRAME_HPOS(W, HPOS) window_to_frame_hpos (W, HPOS) - /* One element of the ring buffer containing redisplay history information. */ @@ -236,11 +231,6 @@ DEFUN ("dump-redisplay-history", Fdump_redisplay_history, } -#else /* not GLYPH_DEBUG */ - -#define WINDOW_TO_FRAME_VPOS(W, VPOS) ((VPOS) + WINDOW_TOP_EDGE_LINE (W)) -#define WINDOW_TO_FRAME_HPOS(W, HPOS) ((HPOS) + WINDOW_LEFT_EDGE_COL (W)) - #endif /* GLYPH_DEBUG */ @@ -3194,8 +3184,6 @@ check_matrix_pointers (struct glyph_matrix *window_matrix, VPOS and HPOS translations **********************************************************************/ -#ifdef GLYPH_DEBUG - /* Translate vertical position VPOS which is relative to window W to a vertical position relative to W's frame. */ @@ -3222,9 +3210,6 @@ window_to_frame_hpos (struct window *w, int hpos) return hpos; } -#endif /* GLYPH_DEBUG */ - - /********************************************************************** Redrawing Frames @@ -3906,8 +3891,8 @@ abs_cursor_pos (struct frame *f, int *x, int *y) a new cursor position has been computed. */ && w->cursor.vpos < WINDOW_TOTAL_LINES (w)) { - int wx = WINDOW_TO_FRAME_HPOS (w, w->cursor.hpos); - int wy = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos); + int wx = window_to_frame_hpos (w, w->cursor.hpos); + int wy = window_to_frame_vpos (w, w->cursor.vpos); wx += max (0, w->left_margin_cols); @@ -5691,8 +5676,8 @@ tty_set_cursor (struct frame *f) a new cursor position has been computed. */ && w->cursor.vpos < WINDOW_TOTAL_LINES (w)) { - int x = WINDOW_TO_FRAME_HPOS (w, w->cursor.hpos); - int y = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos); + int x = window_to_frame_hpos (w, w->cursor.hpos); + int y = window_to_frame_vpos (w, w->cursor.vpos); x += max (0, w->left_margin_cols); cursor_to (f, y, x); -- 2.48.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0003-Further-fixes-for-cursor-positioning.patch From cd04f99c823122fe1ca6daf520a8f33c45114b35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerd=20M=C3=B6llmann?= <gerd@HIDDEN> Date: Wed, 29 Jan 2025 13:42:40 +0100 Subject: [PATCH 3/3] Further fixes for cursor positioning * src/dispnew.c (write_matrix): Don't set the cursor here. Parameter to set the cursor or not removed. (combine_updates_for_frame): Call tty_set_cursor here, depending on whether or not the selected frame is related to the updated frame. (update_frame_with_menu): Adapt to change of write_matrix. --- src/dispnew.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/dispnew.c b/src/dispnew.c index 0eba863fea3..4b1a8b2e1f2 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -96,12 +96,14 @@ Copyright (C) 1985-1988, 1993-1995, 1997-2025 Free Software Foundation, static void mirror_line_dance (struct window *, int, int, int *, char *); static void update_window_tree (struct window *); static void update_window (struct window *); -static void write_matrix (struct frame *, bool, bool, bool); +static void write_matrix (struct frame *, bool, bool); static void scrolling (struct frame *); static void set_window_cursor_after_update (struct window *); static void adjust_frame_glyphs_for_window_redisplay (struct frame *); static void adjust_frame_glyphs_for_frame_redisplay (struct frame *); static void set_window_update_flags (struct window *w, bool on_p); +static void tty_set_cursor (struct frame *f); + #if 0 /* Please leave this in as a debugging aid. */ static void @@ -4021,10 +4023,19 @@ combine_updates_for_frame (struct frame *f, bool inhibit_scrolling) } update_begin (root); - write_matrix (root, inhibit_scrolling, 1, false); + write_matrix (root, inhibit_scrolling, false); make_matrix_current (root); update_end (root); + /* The selected frame determines where the cursor on ttys goes, except + when it is a frame that is completely unrelated to the frame being + displayed. This can happen with multi-tty, when the selected frame + can be a window-system frame. */ + if (frame_ancestor_p (root, SELECTED_FRAME ())) + tty_set_cursor (SELECTED_FRAME ()); + else + tty_set_cursor (root); + /* If a child is displayed, and the cursor is displayed in another frame, the child might lay above the cursor, so that it appears to "shine through" the child. Avoid that because it's confusing. */ @@ -4093,22 +4104,20 @@ update_frame (struct frame *f, bool inhibit_scrolling) update_frame_with_menu (struct frame *f, int row, int col) { struct window *root_window = XWINDOW (f->root_window); - bool cursor_at_point_p; eassert (FRAME_TERMCAP_P (f)); /* Update the display. */ update_begin (f); - cursor_at_point_p = !(row >= 0 && col >= 0); - /* Do not stop due to pending input, and do not try scrolling. This - means that write_glyphs will always return false. */ - write_matrix (f, 1, cursor_at_point_p, true); + write_matrix (f, true, true); make_matrix_current (f); clear_desired_matrices (f); /* ROW and COL tell us where in the menu to position the cursor, so that screen readers know the active region on the screen. */ - if (!cursor_at_point_p) + if (row >= 0 && col >= 0) cursor_to (f, row, col); + else + tty_set_cursor (f); update_end (f); flush_terminal (f); @@ -5685,13 +5694,12 @@ tty_set_cursor (struct frame *f) } } -/* Write desired matix of tty frame F and make it current. +/* Write desired matrix of tty frame F and make it current. INHIBIT_ID_P means that scrolling by insert/delete should not be tried. - SET_CURSOR_P false means do not set cursor at point in selected window. */ + UPDATING_MENU_P true means we are called for updating a tty menu. */ static void -write_matrix (struct frame *f, bool inhibit_id_p, - bool set_cursor_p, bool updating_menu_p) +write_matrix (struct frame *f, bool inhibit_id_p, bool updating_menu_p) { /* If we cannot insert/delete lines, it's no use trying it. */ if (!FRAME_LINE_INS_DEL_OK (f)) @@ -5716,10 +5724,6 @@ write_matrix (struct frame *f, bool inhibit_id_p, for (int i = first_row; i < last_row; ++i) if (MATRIX_ROW_ENABLED_P (f->desired_matrix, i)) write_row (f, i, updating_menu_p); - - /* Now just clean up termcap drivers and set cursor, etc. */ - if (set_cursor_p) - tty_set_cursor (f); } /* Do line insertions/deletions on frame F for frame-based redisplay. */ -- 2.48.1 --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 29 Jan 2025 12:54:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 29 07:54:34 2025 Received: from localhost ([127.0.0.1]:40249 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1td7aT-0000rk-Nf for submit <at> debbugs.gnu.org; Wed, 29 Jan 2025 07:54:34 -0500 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]:47480) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1td7aP-0000rK-AF for 75056 <at> debbugs.gnu.org; Wed, 29 Jan 2025 07:54:31 -0500 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-4364a37a1d7so69328335e9.3 for <75056 <at> debbugs.gnu.org>; Wed, 29 Jan 2025 04:54:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738155263; x=1738760063; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=e7TzXKQ5vybGoXL7amKQjyt5gtKBrsFOQYhk9QCnlGo=; b=Hs9AvOZrmxLH26BgyYuQ/mn3HVGLmjEmSRWgxAOdYkBEBguhyygDBQ3YMy+2B2j8MN 0sBfrjbOOL5+fIDHdxbtcJJx65sGEe1PU4ynOaST+dYDpuG2E5k3IkGMbb3wkr2/bjKY vzSpJa6zPxFN/S1nw+sh4T8Ya9hR+HJzaC03eNNsncSUFHMk62xa4lZ8pWr1c9qv2ae1 ZEFQINXbUhpaRQHzsIidYPO6MAtn3wCjRJhIHPcd0rLVBYIrd8VkbY+DqouQb6m8LH1e zpcVU7Ckr8WBP2y3PVX2t2SoqgU08EQu06SmL29MVNoQu25PM/fdKYeEErYTT2i8tjQt 7Ekw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738155263; x=1738760063; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=e7TzXKQ5vybGoXL7amKQjyt5gtKBrsFOQYhk9QCnlGo=; b=Pludaaxuye6khW7piSCPp+RbRgmbtBo4Gd6OeO3k7n46lqN8/7wAYvHsLqp11DyLWw 2/F1YlVeB/hxhiwIzZiHep0dxqX2YCrccbye/ZBMLP4ILP7IveMJjEhRkhks+gtErKrU T9yazy4phg9uwUP9oemcOzUxhqG1YZ+Wuql3Mmk+/T646UYCQnE5VPs8q2QdXQmg4vNS OV4EzjR73RbVcqc7Uwep8yMibNGMGML3eZzpE7kd/PU99MZ6nSSBzgvRnIoTlbJb5HwT O6rOOffDrlGLs+REaCJEmZue7EptVwM/Lb+G7c657f9RejFOGStjO4U5hWQ61jflFgRx L2Nw== X-Forwarded-Encrypted: i=1; AJvYcCWw7xc7v3D4McU0bnLQ8y087NUkwScunDMh09ezHxsLNc5b9HfDMhSyEGD8VBFt/ED2KGfzzg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxGpFFWIfF6ENyQOZ1gfA0VD+Nddj2BIfiJimFgQBwJklzWcLnj TRBlF0kZlvTPiuXsHFrw2j5YPr+2k7mtQmGJSJN5G0aQ4PnOEI3KziCU/g== X-Gm-Gg: ASbGncsCv3AqqSbCvpQSChVoSLu9hALQlX6ZtmDbyxiN926s60/KbRX0bdEDU4V84Ib 5YwoTNWE5jv26P79X+qKRQpdJx6MTuobpaVwvaNCvACIv599xF/stms2smH3MChkpZQVa1m4N9y p4fPb8EX+yM/syct83o9GR1oyUlvn5RVobtdjghZ74gkoe9O1tQMocaeIX3irqMknHKBW04SfTH Houjl1N72iHaPxp/jHIBKKaJ2Ty/m2PPgRrqmW2P4z7Blt+ZEoGD67YzzcgPbOGXhN7loOKCKAc hMAFFyf6X0fANIw/wCfZbb7K+RAyi24faDIAyXIj5ZImI/pnqtv0SXGjIfQKOZ5n4sEkkfbWV1q Ma4TxQo8ZeCc8gTVymEwMdtMv X-Google-Smtp-Source: AGHT+IEEpvCNa0q6XDVINQRqRWZ4pAblpjdZ0phm2b6TWPxSwmBWZDlC7ctQasXFqIoXLcJHEpq/WQ== X-Received: by 2002:a05:600c:1c93:b0:435:9ed3:5698 with SMTP id 5b1f17b1804b1-438dc41d1cbmr23984565e9.24.1738155262391; Wed, 29 Jan 2025 04:54:22 -0800 (PST) Received: from pro2 (p200300e0b70d1c004d3b680a62916f26.dip0.t-ipconnect.de. [2003:e0:b70d:1c00:4d3b:680a:6291:6f26]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c2a188c33sm17324375f8f.53.2025.01.29.04.54.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jan 2025 04:54:21 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> (martin rudalics's message of "Wed, 29 Jan 2025 10:05:51 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> Date: Wed, 29 Jan 2025 13:54:21 +0100 Message-ID: <m28qqt3hmq.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> Taking a closer look at tty_set_cursor, using the selected frame here >> doesn't make sense to me. I don't see a good reason why the selected >> frame has to have anything to do with where to place the cursor in an >> updated frame. That looks more like a left-over from times before >> multi-tty. > > But it seemed to work on the release branch. Anyway, with your patches > I don't see the assertion violation any more so you should check them > in. Maybe you should also adapt the comment > > SET_CURSOR_P false means do not set cursor at point in selected window. */ > > at the beginning of write_matrix. I've removed that parameter, see other mail. >> Could you please try the attached, Martin? The first one is what I think >> it the fix. The second one is a cleanup that leads to more checks >> without having GLYPH_DEBUG. If this also work for you, I'll put that in >> master. > > If my build with GLYPH_DEBUG works, wouldn't it also work without? > >> (I see a "flicker" of the tty frame after the make-frame. That is also >> the case in Emacs 30.) > > Absolutely no flicker here but the "icon" of the new frame on my > desktop's "tool bar" is blinking and the new frame is not "active" (I > have no idea whatever the equivalents of these on your ns desktop are). > After I click into the new frame the blinking stops. This is distinct > from what happens with 'make-frame' on a GUI frame here, where the new > frame gets input focus and is selected. But it looks to me like a good > solution for the case at hand here. The flickering looks as if someone calls clear_frame or redraw-frame or something like that. Maybe Like C-x 5 2 had been called to create another tty root frame. Wrt the GUI frame I see nothing unusual. The icon in the dock looks totally normal, no blinking or anything. When doing the make-frame, the tty frame first flickers, then the GUI window opens behind the terminal window. The tty frame stays selected, I can enter text there and so on.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 29 Jan 2025 10:19:03 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 29 05:19:03 2025 Received: from localhost ([127.0.0.1]:40031 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1td59y-0004em-RX for submit <at> debbugs.gnu.org; Wed, 29 Jan 2025 05:19:03 -0500 Received: from mout.gmx.net ([212.227.15.15]:42749) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1td59v-0004eE-LB for 75056 <at> debbugs.gnu.org; Wed, 29 Jan 2025 05:19:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738145933; x=1738750733; i=rudalics@HIDDEN; bh=wYrMHaoO7OEQ4NWqkR7I98m+ov0CboCNa2qnZrf74pU=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:From:To: Cc:References:In-Reply-To:Content-Type:Content-Transfer-Encoding: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=MHmo36MLG+mzcFxVWQBc+iLp4jqBelZtUAHwiZ4dA5SOdIQ2irAkUJ7qaj96ogsp 5T9pYUOdy5OtTK2L1jNqBg8ehvHIRVuMwWLh00Zg1LxV3kB2byo2uwTXMvvCx9OP/ iQwsAGZbR/X8NEiezxeSQAURxDi0AneIrJA7XKlaNGSn7pVoXd+/SpQ1Pir1NQH2j 1UlUfr8M30T/+ZlIvFmzS6c/Je2XB1+dNldDLLZOlTYVe1t7XZjzse4MocyjtkyLw DmTvPwFZzwsSkzc/8RAXZARrxHoCDERKJIzpnBuYHsjzIuKoX2icEEMDUAetgyYCC /XpfDJ/G2bNIVFhYUw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.96.245]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1M7b6l-1tXtA00zoD-00HDdE; Wed, 29 Jan 2025 11:18:53 +0100 Message-ID: <68f8f234-a3be-4620-b135-fade538b3ecd@HIDDEN> Date: Wed, 29 Jan 2025 11:18:52 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs From: martin rudalics <rudalics@HIDDEN> To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> Content-Language: en-US In-Reply-To: <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:ryi9C8AUOZUKzI0DM12AzgcX6kRrFrFiV6yDUXEn8dT/mPARv+K laPcvt9UphWgbYldayypXDMIWHCoJR0ct/uy8m7DYWr0bZIVtwoDKfFY2kAWdn5J+KJ4exX zcT4JUSSu/Yye2JkBjxJzF4a5Gm4wi361WtDaMyyYg2H5KvhUx2yk6yECdBhsTHHiKczUdh JCrpw2+mxswamx0x5ZhcA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:JqrxojZ9O+g=;Sa9WryqCC8uRFSjNzwia4oTKfb6 y6yJxG8yO+qyFJZXo3OJvfkWm1IJfxwK/qO+JrDkiDF9mgnioE+HP9wsmHhwer/KjHy6oESLI zDNX7hl/j50o5HO4eN4YiB6X2FLnXV7aPd8Kpsli0Ms80rl6wkXs5BMTWxtQmCyq8mI9tPAZL vPjT4nQ1+wN3bwWHZiUxe/CXrORO3QfzhslkRwjkmv0iK07WwgV4bvd6rdgEIU4A/EyL0GcUO IbU4XAln8kj1ssVA4M0cSxNATrGq+O3Ideux6NQfLQyiiZV1jnUrwTj1+zlsAlfpkskSj+Ok9 FWx6wehtwIHmcjJv/vu5mKaSFAtQgAlLffyq6RJIYH/eq6omYB7FMQr3eLA+df8vTZSLAD3NF un+o+rlRvKqKOY9Db8vNbsicB/btbYnQQOYZmjWaBWs9uXFtiSYIDT/zkU7rajzQe6XBYw7tG Ze2DEtoRaG671IGpp3lDBhEihFATv7y3N62NYkE8JM9b26B7aC6xcygkVwwRCIIds5UIlWaiz hurzfgi6f5rm1Nwukq/nZaB8FA/42tCDa7WBa/yAfSV6k4gSJfaoTX+fLeMqEmvd/K2bzupxd 6b/Ob80g1r+Myqz1TmLEBUVRm7k7CAz6I/lFs8FnYkFabeHe+T9MfEcJRgurTM7dlHF/wdM7O F7fKyUBVu8GXg6HjZAYlDPzDuLTYzh45ChyYM5J66J1b+fFhqJlYN/19HgpN3qYr1NlT+lPBS +5WE/uP2eOO8Xk7Bgqy7K9HD2J92n+gS+0xAeIWHFuwqYvnEgr8Y80XjBBf7E2S8Zjrk+Bszz eFsAWWYqgQhGwaz8iGQrZQRnHcZ3RoiCboZMZdmT34W2YM8RpoJjMs63mAbGrRfqb/obpiZbj 0ERPaoLMTBkT7N0D4EpzyHlEsGisNC9+WsKB0M7MjdA7iTidXgVD57djAr9yPOV+3IpMs/IO4 AcN7hNQBcqDPc1ZIks1RxOimJq4gC3HcJ05VbES5BzDl9u4kTspPc7aWD6qr+lHV/lxhMNcza J2JdubPR9SA3IG3uW5/TooZddnNMcYSLZMppZfoDXkpap7rff53VEBQ0yg8ClHjVwj2QCNs8Z cc9dn35rDnSE71iJX6WVLIgSXoFLqK7mACoDJj/06dA/ie6n21O5zS/FaIhjXQKl+q4V78YWk T7bIpbakd5JHkkVZNP3HJ2Nh9oG3TpOQe3Wb26SqjdQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > But it seemed to work on the release branch. Anyway, with your patches > I don't see the assertion violation any more so you should check them > in. Spoke to early. Now setting the cursor in a C-l child frame doesn't work any more. Sorry, martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 29 Jan 2025 09:06:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 29 04:06:17 2025 Received: from localhost ([127.0.0.1]:39914 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1td41Y-0001Ag-WB for submit <at> debbugs.gnu.org; Wed, 29 Jan 2025 04:06:17 -0500 Received: from mout.gmx.net ([212.227.15.19]:46273) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1td41W-0001AR-3K for 75056 <at> debbugs.gnu.org; Wed, 29 Jan 2025 04:06:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738141555; x=1738746355; i=rudalics@HIDDEN; bh=JDyPfiukjp7KXpygLfFeOU0dVDBJzIHUShbB/HDKTjk=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=ZB9vxd8yLF41jdLb5VrWyBcwuA+7fUFY7SsqdGavSAOBMau55F8eEEp4ketGbyKd wRwKNCyxUxBxr2QR0CkZW0o1QzPPBAY6GuWjZnsc3wQYOsANMCswn7ANDzYukYlv+ j85ODDCf/x1nLFAlvTokaYkOsLyK6L/OFIljF0cO+MWtEAvDx46D+Gol7usDQPRuy uTM0JXuGxmYcm9nmWLfAngVKv4WNsEH+PQpjK+HajLpyD3LELuHaI7NCMcFXHDFGb 2w8K1TBiP47RQMzevBgXARnVRnBkE+6XBJq8pmIw34+TRErbh6OB1udRDozlY/m/G REPmPq6CgBhQDQjLGg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.96.245]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MORAa-1tpe7Z2D9C-00Ybnm; Wed, 29 Jan 2025 10:05:55 +0100 Message-ID: <528f64d8-6440-4e1a-b115-0e3483e09a58@HIDDEN> Date: Wed, 29 Jan 2025 10:05:51 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> <m234h22h7b.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m234h22h7b.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:iQCVezxO4+xbExPSGacNHaRxA6rsqCbwGHds+KwsTBX4B/kFyp4 h2bX/k86MFr+acxu3r1Tk3sG4aUSTb8QYZcP89Rwa1+zrLQHNRu9w1eHypO263MzuAvzySn VFsj1otH/zO2pve2tjzWo6loMBsiBHgKACPkUTeIepRNYoNGM5r1nXRfD9anYaHdb/ix5UF sHsxOp3okn/tZYvU0JeYw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:J/A/7oVVuOg=;ZpZQCvSiji+WuMeSKuo5pSF8qf7 hLuJpbtGtCYqa0ANiDcWb/gtbzLEzoxdcg/f7MrDwyQtmgTHjLHXHtl5itO3zZIJWtenWHENG hUCjroNsN2H0LuullDLj15lIUYZ+u/mkWbopQQ+5JSTGCxAYrZdj9H+a+iAJ8IbgJDjY8F8Ao CRSee7b+MdnVoIbOw2QqJSJlr6twfCv/1oCuevOztT2bAxcNkDLbP8Z1s40FYgGNr/iC5Jz4/ DdVU321DoUybmN5r5T09PUyINaJ/fk8YglXT7T2KACDjtKzytjAmSaxTuBfHs8D5repW3y7KH HT8edELOYzM+ZXw1kABtfx5EwBYU//QFonVfCDIFijfqvjyHWVql3b6ZNOaqmEDtaZpYx12/7 z7KVuc0/YcXlTJpOtlyPd0q/qZXY0aXg/e13scb+eWNSQqZeOe5CjbUC6Oy3g2Bzi2jcvrfGv +5+59TeA15xjRo+3dk8rVbk2pbBj3EPnLEBWYid85QLzuUat8cqhL9BOcAJ0f0V3fLO15kyHP McDAn3v/1G6XSCD69xTaiCIr7wC07zsF5CIWjs8gW1jRPzIG3fBhhJ/uEJ1tL14aPIpnJUrN8 jfTM1EkTjs4+sUtEWOpXUJe8PwIXgub9oFqaj5uz4sM5tC6iR0jwn/S2PFVqiElzbluMbbwAJ hJLECUuYHKMZ0YsbobtnlsK5F2IOSdlPj53PAmLIBS4/Hj/WL+QvLRrAnwpELr1Mb3elmaQa+ JYHpGZZynDn+LdoBf3BOIIWzDIh1O1+WLbd2gXM8WbpIOnCRKIiZIXmL5xik2tLKsugU1e75b dNhbg/I/j6Fp3Drd7p7n5Oqgndx7PrLd7s9rILaEM7TZcxx1XjD9MtLU35N5awFBIiy8Q7Uv0 bVcnPB4tvPOYpVlcDdToIZDW1V4eW8bZlZhhWJpYeKY6zSuv3mdoAqEkW3WwDvAdguQqhtTvz fc8uC2AX03I/QBeR3narOUOleJYlKpRP115U88vMn0p3MAFXCzEPWhEGZGtoJsEol0zsrEwFD S9hAl4uU2905rGQ6neUBV0Gsy3VJ/kg4wZX+D38XV7JM8YZyP6ON4L6JEbj1q0tBXA/eSvtvB RqZwmM61nqJsT5FxUK0+WMtRc0sMEYv/ptnu96H+H8hbcn0Pij9rmED2+U07J/17tXT4pjnlm T4W69vzI1rqUb+AVEToDFJ4pFxezYXo68xrxeSe+6GA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > Taking a closer look at tty_set_cursor, using the selected frame here > doesn't make sense to me. I don't see a good reason why the selected > frame has to have anything to do with where to place the cursor in an > updated frame. That looks more like a left-over from times before > multi-tty. But it seemed to work on the release branch. Anyway, with your patches I don't see the assertion violation any more so you should check them in. Maybe you should also adapt the comment SET_CURSOR_P false means do not set cursor at point in selected window. */ at the beginning of write_matrix. > Could you please try the attached, Martin? The first one is what I think > it the fix. The second one is a cleanup that leads to more checks > without having GLYPH_DEBUG. If this also work for you, I'll put that in > master. If my build with GLYPH_DEBUG works, wouldn't it also work without? > (I see a "flicker" of the tty frame after the make-frame. That is also > the case in Emacs 30.) Absolutely no flicker here but the "icon" of the new frame on my desktop's "tool bar" is blinking and the new frame is not "active" (I have no idea whatever the equivalents of these on your ns desktop are). After I click into the new frame the blinking stops. This is distinct from what happens with 'make-frame' on a GUI frame here, where the new frame gets input focus and is selected. But it looks to me like a good solution for the case at hand here. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 29 Jan 2025 07:49:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 29 02:49:08 2025 Received: from localhost ([127.0.0.1]:39763 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1td2ot-0005hm-D0 for submit <at> debbugs.gnu.org; Wed, 29 Jan 2025 02:49:07 -0500 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]:58391) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1td2oq-0005hD-JG for 75056 <at> debbugs.gnu.org; Wed, 29 Jan 2025 02:49:05 -0500 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-385eed29d17so3373271f8f.0 for <75056 <at> debbugs.gnu.org>; Tue, 28 Jan 2025 23:49:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738136938; x=1738741738; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=hbOU8EeSHrbL68wvLF830GXusoEXy+21he4p6Np4L1g=; b=CMWNffon0p1GR5tzXMX9kQef3La12UESNPG1+zs2ti+eDykQ5+XLdn3cwLIdkVHZ2+ e4dNndMo8suPcvKP2+x7iCcRo8KWgMB+NyNGVfyroQs0e2VXV6ow3TkjQMwt1mn+vYLQ cEih7kYU7dumlrVPzCcGJB+pJQz+l1UfThyw3fuB03Po5hyaJYYDp4nDio6fC/cW5amf 2VtiYIcM+PDcFklTtGBRYNdlsSBt6c8dY6y7ObOI09Y9m7ZhbERq48q3Qp/E7sFtCyfE lvR5pC+W8TZbMS6H5VuSrV3FfxwHfnYyET51LTb9b8AqokgjF2+d7SeEQj5bdZVG1v/5 31/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738136938; x=1738741738; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=hbOU8EeSHrbL68wvLF830GXusoEXy+21he4p6Np4L1g=; b=Y65s11HV9196JN6rXMuTBXdOVKoFJ9bPSZMO7jlhTbm0fKlU8H449GM3TzHahFnUt+ 8h4x1VTB9JKJTcWnLuwKt+Ini7NwLmFzVwJsJoW0UXPUVfXTq4Hdh9RQzO2cJxHaFvml 8CNyn491ZlhBB++QMv6afj6Llrg0PE72yT9xWED0YEaE8ASNv2EUKb9QGl0tKxrKyXKw YhRETGcR+cR4PEOGl3iKC65ylkDBN/+0SnfGFKl3paAQLnSAqevP+ZWS99z2XUcYc1tk U+axtDC4Pb3Z3twV73wtcKkYitWPckZQSsopY2qzIQuXwnDeFLXmp21D463eZeBm1Hxo TWiw== X-Forwarded-Encrypted: i=1; AJvYcCX6RvZhdCnQxs68V+qXk8y7kGAIA69PbPBb+IlGSntb93Tjx8a0OeSD1wbSZVw5XDSDbvkGIA==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yw+Ha+FNvPhxwAbOyS3RNC43enytBgj9PFCyRm6pDTvy7CmHKqt c6aX5y+Fr1LerLTBRPHrAF2/4WDI3+cq+K/thofIcO7AzOLSXItcxgEcVA== X-Gm-Gg: ASbGncvNu35dR+WjxFMHDOZ7vMVEJ/Szvu1GCdVZ1I+yemF8eVyxLg5xj+UkHYUllhQ PudrOuw0ZOb6VGDaVvZSOap2tmXKUKeKJ7kkBm60y5Oh6xHvn+ja0X/QXnumuElsClc4PhW6uIy hZ/diAhVWR2c5wKh8OM1GfrBekLRUlyO+Y/6sCNe8qjNgVfdsYyDHsJxY2HVUAGJ77I6FtOgs71 UEz0iAp1Jx4Yg36QpVNpBQcSFQcYPbtCfi/wP19g81oaK78VCo8de9NzT5fZyx/Ln16nzBTr3xn mVEFYRgbPEUGwpWgLC1+sfxLL1wjvK1mM+ovg6kXktqHHBNZXnf84pDfdM4t/fYzy76Ct8U/gRA fUpMJ/oDjrM4PKFcx0o6xYZ/N X-Google-Smtp-Source: AGHT+IG5E6XnoYfiCeW1udWCzowNj0RTt73x3dSvCBxL3APE3lJ5AsLtimhIk16NT5ItrTrjM83K5g== X-Received: by 2002:a05:6000:4013:b0:385:f631:612 with SMTP id ffacd0b85a97d-38c5195f2e5mr1572613f8f.17.1738136937535; Tue, 28 Jan 2025 23:48:57 -0800 (PST) Received: from pro2 (p200300e0b70d1c004d3b680a62916f26.dip0.t-ipconnect.de. [2003:e0:b70d:1c00:4d3b:680a:6291:6f26]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438dcc2b231sm12717725e9.24.2025.01.28.23.48.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 23:48:56 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <m27c6e2m54.fsf@HIDDEN> ("Gerd =?utf-8?Q?M=C3=B6llmann=22'?= =?utf-8?Q?s?= message of "Wed, 29 Jan 2025 07:02:15 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> Date: Wed, 29 Jan 2025 08:48:56 +0100 Message-ID: <m234h22h7b.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: >>> (make-frame '((window-system . x))) >>> >>> move to the graphical and back to the tty frame I get a crash like >>> >>> #0 terminate_due_to_signal (sig=3D6, backtrace_limit=3D2147483647) at = ../../src/emacs.c:432 > > FWIW, I tried the equivalent with (window-system . ns) here, and > couldn't provoke the assertion. Using the right worktree helped. Taking a closer look at tty_set_cursor, using the selected frame here doesn't make sense to me. I don't see a good reason why the selected frame has to have anything to do with where to place the cursor in an updated frame. That looks more like a left-over from times before multi-tty. Could you please try the attached, Martin? The first one is what I think it the fix. The second one is a cleanup that leads to more checks without having GLYPH_DEBUG. If this also work for you, I'll put that in master. (I see a "flicker" of the tty frame after the make-frame. That is also the case in Emacs 30.) --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Don-t-use-selected-frame-in-tty_set_cursor.patch From 105f818c4c1479f1ef60b9d0cdb2b4375021f3ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerd=20M=C3=B6llmann?= <gerd@HIDDEN> Date: Wed, 29 Jan 2025 08:28:58 +0100 Subject: [PATCH 1/2] Don't use selected frame in tty_set_cursor * src/dispnew.c (tty_set_cursor): Add frmae parameter. (write_matrix): Pass to the updated frame to tty_set_cursor. --- src/dispnew.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/dispnew.c b/src/dispnew.c index 1b4c5eb37cf..4b09282121a 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -5618,10 +5618,8 @@ scrolling_window (struct window *w, int tab_line_p) ************************************************************************/ static void -tty_set_cursor (void) +tty_set_cursor (struct frame *f) { - struct frame *f = SELECTED_FRAME (); - if ((cursor_in_echo_area /* If we are showing a message instead of the mini-buffer, show the cursor for the message instead of for the @@ -5736,7 +5734,7 @@ write_matrix (struct frame *f, bool inhibit_id_p, /* Now just clean up termcap drivers and set cursor, etc. */ if (set_cursor_p) - tty_set_cursor (); + tty_set_cursor (f); } /* Do line insertions/deletions on frame F for frame-based redisplay. */ -- 2.48.1 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0002-Replace-two-macros-with-functions-in-dispnew.c.patch From 0e95d664ee498ffd96c372d0d635e1e14fef540c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerd=20M=C3=B6llmann?= <gerd@HIDDEN> Date: Wed, 29 Jan 2025 08:34:43 +0100 Subject: [PATCH 2/2] Replace two macros with functions in dispnew.c * src/dispnew.c (WINDOW_TO_FRAME_VPOS, WINDOW_TO_FRAME_VPOS): Macros removed. (window_to_frame_vpos, window_to_frame_vpos): Always define, and use them instead of the removed macros. --- src/dispnew.c | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/src/dispnew.c b/src/dispnew.c index 4b09282121a..c2c41cb5af8 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -140,11 +140,6 @@ check_rows (struct frame *f) #ifdef GLYPH_DEBUG -static int window_to_frame_vpos (struct window *, int); -static int window_to_frame_hpos (struct window *, int); -#define WINDOW_TO_FRAME_VPOS(W, VPOS) window_to_frame_vpos (W, VPOS) -#define WINDOW_TO_FRAME_HPOS(W, HPOS) window_to_frame_hpos (W, HPOS) - /* One element of the ring buffer containing redisplay history information. */ @@ -236,11 +231,6 @@ DEFUN ("dump-redisplay-history", Fdump_redisplay_history, } -#else /* not GLYPH_DEBUG */ - -#define WINDOW_TO_FRAME_VPOS(W, VPOS) ((VPOS) + WINDOW_TOP_EDGE_LINE (W)) -#define WINDOW_TO_FRAME_HPOS(W, HPOS) ((HPOS) + WINDOW_LEFT_EDGE_COL (W)) - #endif /* GLYPH_DEBUG */ @@ -3194,8 +3184,6 @@ check_matrix_pointers (struct glyph_matrix *window_matrix, VPOS and HPOS translations **********************************************************************/ -#ifdef GLYPH_DEBUG - /* Translate vertical position VPOS which is relative to window W to a vertical position relative to W's frame. */ @@ -3222,9 +3210,6 @@ window_to_frame_hpos (struct window *w, int hpos) return hpos; } -#endif /* GLYPH_DEBUG */ - - /********************************************************************** Redrawing Frames @@ -3906,8 +3891,8 @@ abs_cursor_pos (struct frame *f, int *x, int *y) a new cursor position has been computed. */ && w->cursor.vpos < WINDOW_TOTAL_LINES (w)) { - int wx = WINDOW_TO_FRAME_HPOS (w, w->cursor.hpos); - int wy = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos); + int wx = window_to_frame_hpos (w, w->cursor.hpos); + int wy = window_to_frame_vpos (w, w->cursor.vpos); wx += max (0, w->left_margin_cols); @@ -5691,8 +5676,8 @@ tty_set_cursor (struct frame *f) a new cursor position has been computed. */ && w->cursor.vpos < WINDOW_TOTAL_LINES (w)) { - int x = WINDOW_TO_FRAME_HPOS (w, w->cursor.hpos); - int y = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos); + int x = window_to_frame_hpos (w, w->cursor.hpos); + int y = window_to_frame_vpos (w, w->cursor.vpos); x += max (0, w->left_margin_cols); cursor_to (f, y, x); -- 2.48.1 --=-=-=--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 29 Jan 2025 07:08:42 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 29 02:08:42 2025 Received: from localhost ([127.0.0.1]:39724 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1td2Bm-0003yB-Bq for submit <at> debbugs.gnu.org; Wed, 29 Jan 2025 02:08:42 -0500 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]:49546) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1td2Bk-0003xu-DC for 75056 <at> debbugs.gnu.org; Wed, 29 Jan 2025 02:08:40 -0500 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-4361e89b6daso42819795e9.3 for <75056 <at> debbugs.gnu.org>; Tue, 28 Jan 2025 23:08:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738134514; x=1738739314; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=yJNdFnhvOs4h32vlN1zb229+aDziMrfBDpuBcPGQRsE=; b=bS8EKh2dkelpT2i3t3edhrwto6oOLDkGhX//4T3Wbi/w1n+HOcGOjgkOZy1RQopSDN RBb3xErn6oAgii4Gr4hxiZVbTre2T3fYhl7PHCPm/yRkwl2QrOE8ZG7tO8baWOvNZIV2 D0wdbpm7zI5UFl7pXVTtRNanVUZCsdg6BNLaFwsqO2n+ApbNMS04JrVyiSf4SxOdFX7b cEmrbfa8OcrPay2gOq/GKJpYh3Hvqf7Ogzz/P6FxG0JfBUlZynpxh5Gri7X5k4KP4lCQ paKsn2C6geV9jnYHE54yCY0W/uptuiJyfde6Y9/wL5UejzpjXEWR7kc18UKmhM4JFzLX ofwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738134514; x=1738739314; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=yJNdFnhvOs4h32vlN1zb229+aDziMrfBDpuBcPGQRsE=; b=MtfvAVexIqqUGWLmB9c+3g7NAfceDuHKpj2YPGtmuABtxnbFwbRhZ80uTtyHx7Wm+Q cO821zmldA9jCb7s0Ustb/+kC7oJoXHKA3E2dXuGMsvDcRF4YQ+nVtlOczYXGujY9tuz py5/VHjQBXNzWjJ7qHXQJHEDb3QT+hGPyKLrBY3K4IxSk7DpDqequoHvYQXrhkfu+kma GhUCdMrr9IXjS+NhwkrSIQTNGkVBxFTVJYU2qRJ9Mrxk2eNMMon5qcSk0A1rx2vWRwla NbEQ4cEEGm3eh1PvbQYGerwk5li0KwTPpOSgkuJrI51amlZTGc2/KAWNY5arh9GMV00t 0sVw== X-Forwarded-Encrypted: i=1; AJvYcCUCac71OoqedowcmQ85dNyhhot/RxLmy0sPnWPULz2OjsCqcU5InCawagrmYZybqkWB6nkh9g==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzDxSqQRzcmd/CcryoRNVEunJBATq57nUkNChBP68P9NFiLZ7Dz 37+ds5YYXjzSa6hsASUYrd8ozH7HTlMJ6InbWr9Hp5EacWAOqXdp X-Gm-Gg: ASbGncupyMVI6AIYPhGumZ+mH0lJmrVXzkBdAd1kP04sZ+7KAvrA0KHuxoenUjYsRsB sfsvCw9ei+gINMW7uXGLGDfcAEsy4t4lLq2vNKqu6+EaKgcShan22FtrMzYaf4ZXmCQgH8INNgb KKkgy2AstN9aeZQeDPcd3HlJBpfyc7qcHLqHX25bRbW8I33MtBuuzq1MhRutth3w2oOpIu4Ybar zca/AZPGwvVCJxbgndeOmo8DyC8n3lbeQ87VeW6EQCbV17uLN1lJ1cK7EiCwtPC2L9xfjHbkaAh w0tc9/u+NYu8lFs1QdYDMiHs4GaIsRyGEakNhdQK36aUcanB9yua9RuSUU8okEzAmdufElr+WHb 3KXb2egiZf6cYpBPop1fTfDuLFFWb3fZwZdTsY70L X-Google-Smtp-Source: AGHT+IGDgQ6a17WWBGWU5NhV1JYdWRBlOUQv9e6OGBJp+ffGLRYqaxk1BgTdWQrTkS2fdcwcvpW4Bw== X-Received: by 2002:a05:600c:5023:b0:436:5fc9:309d with SMTP id 5b1f17b1804b1-438dc4346eemr14637105e9.30.1738134513902; Tue, 28 Jan 2025 23:08:33 -0800 (PST) Received: from smtpclient.apple (p200300e0b70d1c004d3b680a62916f26.dip0.t-ipconnect.de. [2003:e0:b70d:1c00:4d3b:680a:6291:6f26]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438dcc51672sm11456375e9.36.2025.01.28.23.08.33 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 28 Jan 2025 23:08:33 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.400.131.1.6\)) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m27c6e2m54.fsf@HIDDEN> Date: Wed, 29 Jan 2025 08:08:22 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <7A049520-261A-4234-89D9-899463E58286@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> <m27c6e2m54.fsf@HIDDEN> To: Martin Rudalics <rudalics@HIDDEN> X-Mailer: Apple Mail (2.3826.400.131.1.6) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) > On 29. Jan 2025, at 07:02, Gerd M=C3=B6llmann = <gerd.moellmann@HIDDEN> wrote: >=20 >>> (make-frame '((window-system . x))) >>>=20 >>> move to the graphical and back to the tty frame I get a crash = like >>>=20 >>> #0 terminate_due_to_signal (sig=3D6, backtrace_limit=3D2147483647) = at ../../src/emacs.c:432 >=20 > FWIW, I tried the equivalent with (window-system . ns) here, and=20 > couldn't provoke the assertion. Correction: I've managed to get one, but I don't know what I did = differently.=
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 29 Jan 2025 06:02:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 29 01:02:27 2025 Received: from localhost ([127.0.0.1]:39651 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1td19f-0000rk-CI for submit <at> debbugs.gnu.org; Wed, 29 Jan 2025 01:02:27 -0500 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:43462) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1td19d-0000rV-80 for 75056 <at> debbugs.gnu.org; Wed, 29 Jan 2025 01:02:25 -0500 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-3863703258fso176355f8f.1 for <75056 <at> debbugs.gnu.org>; Tue, 28 Jan 2025 22:02:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738130538; x=1738735338; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=92q2lFWW51w6IQrs0YSi/4KkEJioPaoY9h+U1PuUfvw=; b=h7DZSO7YXkPinqlgnTarzYOusZxKju+3jQjaJ9P25KzefFf+SfKy+pf2ZswAVS+jqM gkuB/dUJw3CMTBHvUtCMRwO9YWkdM+Hz3/wdz6r57sHSveKr0cNn1VUPbwgl4fhFzvRy Va8nuKJvF9Dfdhjk+aVeKdqsRvBpX5xOkWMfavH81ZpPBgdUN83RSCb+4WvoTqMR6R9r s2heR62jlJE2w0hGadFaRy9gK6PZ7HSgn15IKwa3Q73gbAXSA+DfUhIv15IP9ynbEcPz SAtCzcvHKXmD8K2Ghbsb1NWPFhdZZrrd3EehXq7AqMpAToe+VT3E5lrxACsGJ+OqbGyU TjAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738130538; x=1738735338; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=92q2lFWW51w6IQrs0YSi/4KkEJioPaoY9h+U1PuUfvw=; b=i4jBtLq7CMyOUQlNW/+gTVmltB14P2q9CF4f+YdxrIVnVfZPJHQ0gOd1EXT2ep29m8 Jf8JLzMwYcykIgJ6ILKMsdqSTN65MOypAMuJ6mKqeivBbtw+9HsizIv3pPUdtpe402bW hWV6M6hpNYVqa9S3t900d3qD2TBI4BJ8ScFYIhN9t6toDY2Vctd6MPiuPz1IbkOQuxTr ZUJIy6O1F/6REmZTDpUtB3vshEARtSUHZ+cPPw2/eE4TBzeikcQMaeEWgpavT1KuapzI r/CqtSUMayonzkZoQfSWh4T3SWnI+PHIbJmKAWBtCqBlUrcAOxNkKDeLW2bIXOFc1+/w iOUw== X-Forwarded-Encrypted: i=1; AJvYcCX4uYhoUyMpMIOTkcDRwB2KF16OQdHPlKy7LlVB1tDmCmxTyoIGvPdHRJ0eAyJGxIu24eqRvg==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yw8aqmF/XR+vIBmAvupq3ywE1a/SQj4tCQA+CDKsnBtHFyQ847a ZTR5ti5U7kCULb2nJg+FjX3abU95GMF5qqZ3cJxSGBXMvQ7EmVtHcLaVXA== X-Gm-Gg: ASbGncvFNchqVuSGqEysdCaV/qYZp/5YfHDdIX3iicvidIuTgBWtZmJ3p/IUkWpL27e yIQj2LAP3sacAVegs/LCnHvPrJX6NGEOzN6sHewdlrm9ftwYo8AgfEB2nnRU2gy/2ECZLKOvAQS Eq58LX2vnAnVnYvEsLAImSbrJRtobz8ffUKlRyHrHgUuTnsg0+P6Jt8aWstAOsozU71mXJCOM/I pTINAgvjw6pfX6qId1JdInT/8kQTBBNi7vxt/JZskzOjJbdyW06bYSGKe1OW0LOt/Q2nLPd06pE 8hEvpkpe27hapPoh6K0DZwi86CShRaimcTtAb2zc1mA/pHjTxZ9USV8SHaKiYIvwAuPQBhXMdTH kPM+HD0xdBAc56H+NMfSJWXJu X-Google-Smtp-Source: AGHT+IFfAeCdj8Tx3lzS2RPEe0aSZqH8dA4nKXoYMTURWxmzWniVfay7J4+/AnSKdsx71xboX14JNg== X-Received: by 2002:a05:6000:1847:b0:385:e328:8908 with SMTP id ffacd0b85a97d-38c51079cacmr1362634f8f.29.1738130537469; Tue, 28 Jan 2025 22:02:17 -0800 (PST) Received: from pro2 (p200300e0b70d1c004d3b680a62916f26.dip0.t-ipconnect.de. [2003:e0:b70d:1c00:4d3b:680a:6291:6f26]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c2a188a77sm16320353f8f.51.2025.01.28.22.02.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 22:02:17 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <m2frl23gmj.fsf@HIDDEN> ("Gerd =?utf-8?Q?M=C3=B6llmann=22'?= =?utf-8?Q?s?= message of "Tue, 28 Jan 2025 20:03:48 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> <m2frl23gmj.fsf@HIDDEN> Date: Wed, 29 Jan 2025 07:02:15 +0100 Message-ID: <m27c6e2m54.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) >> (make-frame '((window-system . x))) >> >> move to the graphical and back to the tty frame I get a crash like >> >> #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../src/emacs.c:432 FWIW, I tried the equivalent with (window-system . ns) here, and couldn't provoke the assertion.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 28 Jan 2025 19:03:59 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 28 14:03:59 2025 Received: from localhost ([127.0.0.1]:38593 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tcqsR-0000fD-7k for submit <at> debbugs.gnu.org; Tue, 28 Jan 2025 14:03:59 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:50515) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tcqsO-0000ev-Er for 75056 <at> debbugs.gnu.org; Tue, 28 Jan 2025 14:03:57 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-436a39e4891so40813055e9.1 for <75056 <at> debbugs.gnu.org>; Tue, 28 Jan 2025 11:03:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738091030; x=1738695830; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=8imJ+nMLivjPL0yxcvdGNiG6dlBXGsR54uRzr535tKY=; b=Bzgx4D/yhJZLLwWahXHxHA4k0Diopi45jG58yblUkii/7gilL+QHglqBbVH4fUeXXA p5BoDKZa/0/vXawHt1rYL8JNxyjVTTZAuJGVwy6XdbDG6LzLLsxiWvPiIAlQWE4BIiLK j1UGyTP+RQchbwQUUdmuDuruYJefkwIyDOhl8Gupxug+X6J189xN3MOV4guMqER0ERrv axm/TLMKyWYw5vfD43lXxEzSpAqtjUucC0I3Qb0EBhJKk0xacVmI4BNPJE8sc70ZXCYS oPbdNsXcXnVuffExGi5shpFv+xALdJlx3sShrOzgXocW2oBnWMTTvx1BSsNmJlxJW4Tt eu7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738091030; x=1738695830; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=8imJ+nMLivjPL0yxcvdGNiG6dlBXGsR54uRzr535tKY=; b=AVLmtfv+S0HZhyCG7okFXM0Kt/o9ZrP3J71vWNcwmxcVd1KbHuJMHirQSy09KDmN54 wbkIB1fOcwuurs8K81deqYCKICmzcYePt0UAx4lBjYMPWLToR/NDY6NMDWM/7F9Fadjw GViplmumwyyiR7OVNSO7F5ASFMZ2XgljOcj2ipdJjiPMpKUBWTESMwmFUPe8tKiBWllt aZtfItyQpqUf6jqKSFlnGTcOiziXtrX3ZLG/Ivj1KRGuwxkISYyLQYgsgrk7IY0LWiNX 7klmKSSoOUwNqVpS7QmhS2I4JPNwlJofQB47/8yFtpJKghfRG+CQxw8sodDxuWwTZUHX zG3Q== X-Forwarded-Encrypted: i=1; AJvYcCVXfPzBzDSKYHKLh/DLK3xf7w6MGTfkuSJm8+f+zaW4c+jbB1nw5zSdjwP8hqI/TqRkQ4Y1QA==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yw7Pq+tacbAOzI5w8esjUHDZMi5TH1RszV3nOj1olOmvlCUQgmd 6U2K+eJFMHreCSeiQQBXPcN+NVw9uChKBG5JUVgjF3dLehpwQH745M6CRiX/AqY= X-Gm-Gg: ASbGncvgL9kIlcIIvqlZsgI/aqJpeInrDKScrEnWQjhEF++nhASypuH8zoq9OB9kqiu ha9x4ivEDi6mGcCy+Ij/H33ODBzvluHhuDARSzt5R2xNNBrdhmcDyDamGLwX8csd7Uq/sr8g9dJ cGHPbQIdgpzTthgLmAXwOjUfovHpVnXzviJ+VB6XyPauC/gvjvC5nTKhgsuRZUXrTwUZ4cga+CU 9aSfJEsQA4loe3vPl9/3I4bNAIJTB3404bGGDXP/l3ls2xdHFDqRHesfgFXB6/irzXGD+mmW9N3 wfhywB02gtlM5/TLm+wPdtP4PGERHsP3D4U47QEeTtxRdj4ULBuIW2EXPWYIpyP089FwKCi+lFP UPd1XXL6MKIlG+Abq0Jm0msk8 X-Google-Smtp-Source: AGHT+IHmcoRcY8GxhZkgswytRQoeE9IgH7aNMY3vPnho+22fwVfC8rkM1e0pF4ioL0utiuEXde8RMg== X-Received: by 2002:a05:6000:4010:b0:385:f398:3e2 with SMTP id ffacd0b85a97d-38c52096217mr154971f8f.37.1738091029503; Tue, 28 Jan 2025 11:03:49 -0800 (PST) Received: from pro2 (p200300e0b713ec00d5ef8a94c682d95e.dip0.t-ipconnect.de. [2003:e0:b713:ec00:d5ef:8a94:c682:d95e]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c2a176519sm14700034f8f.2.2025.01.28.11.03.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 11:03:49 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> (martin rudalics's message of "Tue, 28 Jan 2025 19:10:37 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> Date: Tue, 28 Jan 2025 20:03:48 +0100 Message-ID: <m2frl23gmj.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >>> But maybe it's only the >>> >>> eassert (FRAME_VISIBLE_P (root)); >>> >>> assertion there that would have to be adapted. >> >> I seem to have missed that, sorry I'm bit distracted ATM. Or was that >> the one in combine_updates_for_frame with multi-tty? I think I committed >> a workaround/fix for that to master. Also for the root frame always >> returning t in frame-visible-p. > > Forget it. I was in the wrong branch. Just to verify one thing: When > in a tty frame I do > > (make-frame '((window-system . x))) > > move to the graphical and back to the tty frame I get a crash like > > #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../src/emacs.c:432 > #1 0x000000000069abc9 in die (msg=0x7e0a28 "!FRAME_WINDOW_P (XFRAME > (w->frame))", file=0x7e029f "../../src/dispnew.c", line=3193) at > ../../src/alloc.c:7989 > #2 0x000000000042539b in window_to_frame_hpos (w=0xbcccb98, hpos=0) at ../../src/dispnew.c:3193 > #3 0x000000000042b9e5 in tty_set_cursor () at ../../src/dispnew.c:5669 > #4 0x000000000042bba5 in write_matrix (f=0xb83fd40, > inhibit_id_p=false, set_cursor_p=true, updating_menu_p=false) at Hm, new fun with multi-tty. I can see the following We're doing a normal update of a tty root frame. At the end of writing to the terminal (write_matrix), we try to set the cursor (tty_set_cursor). tty_set_cursor begins dispnew.c: 5620 static void 5621 tty_set_cursor (void) 5622 { 5623 struct frame *f = SELECTED_FRAME (); and further down, when the cursor is not in the echo area, and so on dispnew.c: 5685 /* We have only one cursor on terminal frames. Use it to 5686 display the cursor of the selected window. */ 5687 struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f)); 5688 if (w->cursor.vpos >= 0 5689 /* The cursor vpos may be temporarily out of bounds 5690 in the following situation: There is one window, 5691 with the cursor in the lower half of it. The window 5692 is split, and a message causes a redisplay before 5693 a new cursor position has been computed. */ 5694 && w->cursor.vpos < WINDOW_TOTAL_LINES (w)) 5695 { 5696 int x = WINDOW_TO_FRAME_HPOS (w, w->cursor.hpos); 5697 int y = WINDOW_TO_FRAME_VPOS (w, w->cursor.vpos); Means that the selected frame at the time of the update is the X frame. The redisplay happens from command_loop_1 which tries to get input: > #8 0x0000000000480825 in redisplay () at ../../src/xdisp.c:16668 > #9 0x00000000005f68ac in read_char (commandflag=1, > map=XIL(0x7f4b28c2f623), prev_event=XIL(0), > used_mouse_menu=0x7fff72a5a8ef, end_time=0x0) at > ../../src/keyboard.c:2672 > #10 0x000000000060a7da in read_key_sequence (keybuf=0x7fff72a5aaa0, > prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, > fix_current_buffer=true, prevent_redisplay=false, > disable_text_conversion_p=false) at ../../src/keyboard.c:10746 > #11 0x00000000005f2c2d in command_loop_1 () at ../../src/keyboard.c:1424 I would say something in the switching to X and then back to tty is not working, and the culprit could be do_switch_frame. But at the same time this would be strange because combine_udpates has frame.c: 1833 /* After setting `selected_frame`, we're temporarily in an inconsistent 1834 state where (selected-window) != (frame-selected-window). Until this 1835 invariant is restored we should be very careful not to run ELisp code. 1836 (bug#58343) */ 1837 selected_frame = frame; 1838 So it should have set the selected_frame to the tty frame. Except when another switch-frame event or a call to select-frame happens in the other direction, after a do_switch_frame to the tty frame. Which is a long way of saying I don't know what's happening. Maybe you could add "fprintf (stderr" in do_switch_frame in line 1837 so that one could see if that hypothesis holds water?
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 28 Jan 2025 18:10:54 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 28 13:10:54 2025 Received: from localhost ([127.0.0.1]:38451 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tcq33-0006Y6-MS for submit <at> debbugs.gnu.org; Tue, 28 Jan 2025 13:10:54 -0500 Received: from mout.gmx.net ([212.227.15.15]:59547) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tcq31-0006Xm-Js for 75056 <at> debbugs.gnu.org; Tue, 28 Jan 2025 13:10:52 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738087841; x=1738692641; i=rudalics@HIDDEN; bh=br3yQJ2Xrh2Tj8jW/3pPK6dNrsGEGWgY2CUgToCJZ1A=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=kXXOIHXUJNGXxZhsETxzS1KgsJ+x6zDY9zvNRm6yP28gSTUmZpGkh1nnHscyszNd VtuLxF+Gg6CsLqtoRt99qJJV9ZINGZbxvaXg9AuIUQMjIbj7kQbDuT4nbTmG//lo3 QRx8HG6CgSMAGZ/gv91XsOlEXDiVRf/yzi+s32LkeRs8K54KiUGw2Py2+h1ExbR9U esCLzg0rKjYk19NlwsX2aNhmOt3AEg8byD8+CU2dsBKdt03FOBlf6FxJxb2Z+98aR iwp+wHzZd4TvkmNGLpb8L0PYyojKSzgnEBR0gZH6aLfsacCWyweGVf8ahlDVFloS9 L6vbbHGOSFMd3KoJpA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.36]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MbRk3-1t1IEr3UwT-00klCE; Tue, 28 Jan 2025 19:10:40 +0100 Message-ID: <ac35e126-2c73-4143-a40a-20292913565b@HIDDEN> Date: Tue, 28 Jan 2025 19:10:37 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> <m2jzae3kr2.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2jzae3kr2.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:t4F/un9Wu8B9DQWN5ZD3ljHV4SCjEV6aQVwCWPa4K/EUdAeFoop HwURyITaCG45He+P+5geqdr52OaBbdJeVPqkOLDKloUtRR12ubrVcZp0uuXjA/N6AzJnCeT zT/D3RQhUcmoeNe6cjVPgal7GM9dTH73PHgJ0oso4IP7d78SHO/7uYSmofwtkp+hDpYIIOz 4Xy0q5K/LXHQEL4ZHTscQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:nlxA5+YfxAM=;Q5uzGomnM9x/FalwA7zg0Yr1Rzc B6RaT6lgplYOSqaMZt7SKktlpUe/Hn+q8F/NgRX+qix1OWTyIqQ1w9HeAF+Roe/Lo+Zj8aYBX 3ofoH1u0pD8QX2Ct2zoeUXuQ7qKiMZl4fYcjmGN4TdbLG65aulNnvATvoLBHRCC7bxbUoEFj4 g4zx9G2wjsLe9NoL0ZTfUFo6BPMgGLL/CuZMdZR99WDf5O7lKQTPC9YGr5zYLKA6ueO9a50C0 3uKcS6YqFbps4o3SEe+39rOfh0/iv4ps/ncAbhf1uAuUHTRNymhu6rnxbADEOlyLlWHmbHAK2 fsLokqAkB9wOoVPw8l469WIKtJaodbyjMfpN0yM1EdE7pTRQad4FMfPnd5XTnH1C2DV0r2NuL W41+GwWmdNQGA1Y7XB6sv+wp/tVODbPlBXcDgfpDbF6qErz8jsB6DJ3YYFChuT3bVhaNn8SLA Blw5iv22gSpFLQCggGeRRq8zsU0xp0FfwM+sjEOuBz8xDnawa0ngWEo/eMwgT/qZi1tEuN6hV IyAzu7QQU4RraSjoEIVLmjUd0P0fKfpld4aouQ0vKdxBxTQbvvz10WzQLchg2CuH3VpsuWYXF kORAsvsP/ILzHNJgE5vw4WVDpN0YfpJwJGJuq1cZpfFN/sjRbqjeqeXvzBLG88M++3v9Ey3Lg Kxf1lDfTFNRRVx1AbJVuoemfPEypH4JizDMAe8UzNGXbKb7qOcq6MR7TNdhHRyi0m5fFWwG/Y 4pFd+1GkTmE75V+FCFz/tRbBUSctaGw2VSeYBZDPT6UaEhaSXkj+7kgXymdunLjjtrrzqh2Jy L/ACdbULBo3AeCe3Fd8tQpxHe+qUOzhMF4/weR8g41Z3Ip04m7hvzXt99yjjCo0/xiiBiPi4R y4pyRTQnCIGjEII+GddeIPfGeWq3pvu8p8S0aR6DizgeOdLkvgQ8ck0kwyR/YNki+fzyrpALJ IZ8ceLJGvAt61uv1E2NuYZrH8wfpvhrn2pKMGfvDsd/hoOPdc0hHWDAtX+uJ11LA1xW1we/CW mzIfH+88X769JM0f/v83fq3ydtL+Bg6lxsyhD4gdfziAP9wIPQuWQxomAnfBAsLoSMkV5mUva CjCi26h5SubmWdebBU0wheoIriadhcTmPZ0ydHe0M6ij1dOkMjRV8hmXJGsWX7p5O/MttKWr0 ffl+6Mi8fDJ5s3nvZ+PwXTEXA3SFVgqWGVbtUycsrcA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) >> But maybe it's only the >> >> eassert (FRAME_VISIBLE_P (root)); >> >> assertion there that would have to be adapted. > > I seem to have missed that, sorry I'm bit distracted ATM. Or was that > the one in combine_updates_for_frame with multi-tty? I think I committed > a workaround/fix for that to master. Also for the root frame always > returning t in frame-visible-p. Forget it. I was in the wrong branch. Just to verify one thing: When in a tty frame I do (make-frame '((window-system . x))) move to the graphical and back to the tty frame I get a crash like #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at ../../src/emacs.c:432 #1 0x000000000069abc9 in die (msg=0x7e0a28 "!FRAME_WINDOW_P (XFRAME (w->frame))", file=0x7e029f "../../src/dispnew.c", line=3193) at ../../src/alloc.c:7989 #2 0x000000000042539b in window_to_frame_hpos (w=0xbcccb98, hpos=0) at ../../src/dispnew.c:3193 #3 0x000000000042b9e5 in tty_set_cursor () at ../../src/dispnew.c:5669 #4 0x000000000042bba5 in write_matrix (f=0xb83fd40, inhibit_id_p=false, set_cursor_p=true, updating_menu_p=false) at ../../src/dispnew.c:5712 #5 0x0000000000427483 in combine_updates_for_frame (f=0xb83fd40, inhibit_scrolling=false) at ../../src/dispnew.c:4012 #6 0x0000000000427622 in combine_updates (roots=XIL(0x7f4b28c21193)) at ../../src/dispnew.c:4052 #7 0x00000000004830cf in redisplay_internal () at ../../src/xdisp.c:17611 #8 0x0000000000480825 in redisplay () at ../../src/xdisp.c:16668 #9 0x00000000005f68ac in read_char (commandflag=1, map=XIL(0x7f4b28c2f623), prev_event=XIL(0), used_mouse_menu=0x7fff72a5a8ef, end_time=0x0) at ../../src/keyboard.c:2672 #10 0x000000000060a7da in read_key_sequence (keybuf=0x7fff72a5aaa0, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false, disable_text_conversion_p=false) at ../../src/keyboard.c:10746 #11 0x00000000005f2c2d in command_loop_1 () at ../../src/keyboard.c:1424 #12 0x00000000006d1779 in internal_condition_case (bfun=0x5f27fe <command_loop_1>, handlers=XIL(0x90), hfun=0x5f1c80 <cmd_error>) at ../../src/eval.c:1607 #13 0x00000000005f23c5 in command_loop_2 (handlers=XIL(0x90)) at ../../src/keyboard.c:1163 #14 0x00000000006d0bcf in internal_catch (tag=XIL(0x12390), func=0x5f239b <command_loop_2>, arg=XIL(0x90)) at ../../src/eval.c:1286 #15 0x00000000005f2357 in command_loop () at ../../src/keyboard.c:1141 #16 0x00000000005f1722 in recursive_edit_1 () at ../../src/keyboard.c:749 #17 0x00000000005f194e in Frecursive_edit () at ../../src/keyboard.c:832 #18 0x00000000005ed1ac in main (argc=3, argv=0x7fff72a5b0d8) at ../../src/emacs.c:2628 Lisp Backtrace: "redisplay_internal (C function)" (0x0) Any ideas? martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 28 Jan 2025 17:34:53 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 28 12:34:52 2025 Received: from localhost ([127.0.0.1]:38399 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tcpUC-0004gU-Gy for submit <at> debbugs.gnu.org; Tue, 28 Jan 2025 12:34:52 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:48522) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tcpU9-0004gD-J8 for 75056 <at> debbugs.gnu.org; Tue, 28 Jan 2025 12:34:50 -0500 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-436ce2ab251so39664385e9.1 for <75056 <at> debbugs.gnu.org>; Tue, 28 Jan 2025 09:34:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738085683; x=1738690483; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=Lg/pVeTxIkFA3PK3+xQc0KfAZeHIhp3GtOEbKeV4TBI=; b=SEj4D7gQ2UpLPnFHjp/n3zDSowkPRph3mDlvAS/bNQ4bK303N3w0a8Hzp8ky6Hxpbn LUoYMz/2kz3Wi7hakQ16b+Z0XQQF40ersvzmIzbeISN4k+LtrMPLVJ6d07s9mTnEl1vV 3TbJdvYEkdnQ+g3tll6z7yRGNuilSckCwQUjBywa8DncT+iynywd5TkFu4xaXBcmTpyQ OvmTuczh+YlQ3gfo3OotU6OO3B49p0dnon2qaemNclpotmIYh0PkclqtAIBLDFGO4Xs3 7KWlvpH3ndtgMr0hah147bxWkns03hvpwURIFgNaWZWEQWv9jEuzpYDRjGdvinv0yFmz 3tZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738085683; x=1738690483; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Lg/pVeTxIkFA3PK3+xQc0KfAZeHIhp3GtOEbKeV4TBI=; b=FFrh+iFogiO0c07Pnmo6ZzT8RYQ/k0Nk8xw2cqbpKi1qaQatIVEKjsZ22piUgkdbpH LAY7la0mBfHjVCaxILE19ed9/xH+YWrP38f4BkjR7igv+3xjrLMsPkl8hITOBF6PMGTg XwgLGJJw8Ow+vDp9mN134GYY+1Y/LG7/TLCIUnimMc3wvOEF9NS3O2tcRBD4awSmsiiA PKhMgvXyXgTzhDygy0KHLNVA0q54QHwWxe/GdyKFSyewZnTAZtZRmHwjVuJ7KTTE/uI7 QNzpfXnfwJLUGZb8Wc0oYZnYs8hUjHtGtM2KRMbq/P07GV4qwuzsw6Bc7ff0u2nhIs9y YeZQ== X-Forwarded-Encrypted: i=1; AJvYcCVbIccvcD7HQo3WxhaV/SIEAli0nsrQwj81o4pod+vfOE52CyFMJOom510dGz5B3W9Wr912fw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyPjO0i4iTohOI8E9GqpV1razxgKaOzAm2gW+bxjirs3O74n3oe REkxMRhuL9T0ylHrzlxtaSrnyfodUZK7vum5VRbVLtdx6IHmGP+NOtzLi7i8aWQ= X-Gm-Gg: ASbGnctY9zKhYW5OgGS13WvjLdCHDWCfNRQXDWcRXyYuZjB7wyrYK8vi4yo/snXRliQ CsdAXYJ/y0eoBy1ZvpvEIPO59XTCr4BRPUTI+56RVSymV8KwGsiz7SeZYwwblXqVkG24hloVsaz +YFsJ/RGpG7D/NKRJPJAItzxT/6AB/90QCwKxP1ASgugTOleRq9zglEPbxltU75rIeEcWoMxr1M d6/vOFLRR//hCSsN2jnRYrcwd2dqc+6Q8weGu8fzNnWQ5vnf0UTuPO56sGO5baIC3UY40SXfstZ rZD6MO+6REsh8BltANgTZHZhZxDaETK8aDj2NbSIY7kHrvbkL55SqJZZXcDq0oY+m8hlVSvcVGM bOQYt1/v4nIRzWtI2TgY= X-Google-Smtp-Source: AGHT+IGNBWbYjW0v2MMmbjpLKXU5t9wRcLxvs1OGt6SWvkrAOTaJgdPTv1inT2/nkPq89hvCwI4wYw== X-Received: by 2002:a05:600c:34d0:b0:434:fbda:1f44 with SMTP id 5b1f17b1804b1-4389142e805mr390303595e9.19.1738085682894; Tue, 28 Jan 2025 09:34:42 -0800 (PST) Received: from pro2 (p200300e0b713ec00d5ef8a94c682d95e.dip0.t-ipconnect.de. [2003:e0:b713:ec00:d5ef:8a94:c682:d95e]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438bd54c0d1sm179062825e9.26.2025.01.28.09.34.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 09:34:42 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> (martin rudalics's message of "Tue, 28 Jan 2025 18:19:13 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> Date: Tue, 28 Jan 2025 18:34:41 +0100 Message-ID: <m2jzae3kr2.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >> Okay, understood. Changing the C code would be quite a challenge anyway >> :-). It took me at least 10x the time to get to what is there now >> frame-wise, so to speak, compared to what I needed to add to redisplay. > > Don't worry. Nobody really knows what do_switch_frame does but everyone > calls it. :-) >> Will you continue to work on this? >> >> I'm asking because I'm considering to phase down my involvement in >> Emacs, at least for some time. I'll continue to be available per mail, >> of course, but I don't plan to commit changes. > > I can try to look into the frame.c related issues. I'm certainly not > able to work on dispnew.c. Thanks! I can do the redisplay stuff of course, just tell me. > But maybe it's only the > > eassert (FRAME_VISIBLE_P (root)); > > assertion there that would have to be adapted. I seem to have missed that, sorry I'm bit distracted ATM. Or was that the one in combine_updates_for_frame with multi-tty? I think I committed a workaround/fix for that to master. Also for the root frame always returning t in frame-visible-p.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 28 Jan 2025 17:19:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 28 12:19:27 2025 Received: from localhost ([127.0.0.1]:38346 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tcpFH-0003t5-2S for submit <at> debbugs.gnu.org; Tue, 28 Jan 2025 12:19:27 -0500 Received: from mout.gmx.net ([212.227.15.18]:36267) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tcpFE-0003sn-1a for 75056 <at> debbugs.gnu.org; Tue, 28 Jan 2025 12:19:24 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738084754; x=1738689554; i=rudalics@HIDDEN; bh=YQxRhwCVp2UhJAnearLT1+ZmCAA1cZW5smdsxsCtaw0=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=k/9yXjHuHgFdq4J6oaqXnwFJ5c2xWnGvk5SkoR0GrNy+dsTixq9dKOIP5kuKOSF6 wufwFxSHLHmEUl72cWChEkP22u7aXlqkn4A3A2dEvOOhV+9uEtF2T6Q7ht8fwQ/ls qYAAa0y64Ervdu8iMGCjIoTmCtRRIUX6PcjkeT2EsUlPUBpSn/xsS1x5T1MPSPX3a j6MbUBGbN2Taue98ruItEZHd11Q+ODKzDVKBwvpW95iWjYEZAl/ufgGAaTqvNJmpG 8GU+YEyJpxm8KtzetYQ0iMv8l7/UGvdxaKDo4I5dr5gAv0htrhbB0ydR0a4hVZs6U xzZr47IqU+6/myUOrw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.36]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MWAOW-1txGsS2IDS-00Ok6t; Tue, 28 Jan 2025 18:19:14 +0100 Message-ID: <824b531c-b00e-4b08-815f-1e13a144c8aa@HIDDEN> Date: Tue, 28 Jan 2025 18:19:13 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> <m2cyg76ry8.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2cyg76ry8.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:QqAKn3nBIX3pZYspUET0HaXcZz84gP2Ivak4Y2WfAgyclNYQQUs h7uasE80qyzIzSufbT7wZf9hVQYvGU9k3wZqhiv42LaY8obohZ9SVpkg/DU7F4yW3xCfToS 7XsA7dpwlzD+T0cJdYIuhQfYah0Sejvl2SDOt6FW8WPeGmOWJg/EJRCjz3VjJsnGFIiUcuT sxOQmibZf3iN3y2n4uBMg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:s4pa9i6UEfg=;zWSfvPQDqcMn6pOtmqb0ndVMncB afeNOKNAR0lwlyXbw1pERA8YcOJGYVTEZ/zFKtpPIbBDki+6nP7sjtIzF+XJ7kQAuojODWaql vSaH0lz6bMyHnFBsUBsKIhdpUDKX7RY0UFJOzRrG8Pb7NEnGEofLmFBo1HIgbiWuOqBpFqoVR 9ZSw3KXtbKQApvP4BT6uGoVpe5iQfN+ju2q8Oz8Pizg5vwOPls4PrSPDgxsO2aoPFbXq4Lwr/ WG07jKYi/Zos08gHOnqDlClE9jw0AZt3V4fRFU58ULhI2QxNi7vemlVSBOamCyE56MrxKyrcg JTYmrdnJRy86ZGpjsgHCBNCZbdZDVFy0j35be+pY30ytkgrq/bU5lhThJNn25T1idIw4P0OgT bkmCa7EZWWvth6tyUjFGFivkOwhPIrfJll1Z11z+wyMQD/RyRLRRTG4cuF8C6rjVzYJxq8XPM 2OTOtYVbdJaO6nen4Wfowy7fpHsVpzD2Rc9c81MfKRNM6a/GINrsovzJ/ST0QnpC5RBSqxBsX XXGNnvV/oDgGydYgMosbKR5OtwJlsWaAhqnhbgc5/U6qjE1oU+WKoQC5P4/ssf6RmO4WLAkoY z0QxG3BvBIrHdx+aiJweXGLq29MsAMXHn6dfHIxqGthtDuk6ebM7DCM7LCxgfPC5CAON8jNif kzTQptSTuJBsPBfeycUQpsfOY5zhJ84IuVYsfRIgzu+JOMkBu3yoqvlGyB9AUfqbs5Kl9JUao mhdwkSGb29444Hi9sn9ZggdRhPi7vFgNCqgAc/9modTegWZfQEFT/dbeq82xYp6CgPyfxA6ht U5bcpucJ/8fWzMj5GYiqj+WWybYF5OBoV0uM0X+yEE+cygX9eGl2mHnbaAKC/i7XfC7GEgVtk G0eG9fLR9vqazxhMXzmnG5fajn8auL/J6cjTxyZewK/DK4qudOy5sKZqAqfqEPKMSOVmpyQJw 132Niy7VayOo3s4kkQC+WvlcrbOB+eQjVwpW5Fk66RY1YOwGx2N+5fdsGoeSrW/+XVCM6DtDB IqBTJiR1tsV2szIDCn6pVy0ltBEC0vMOhA2KZdMY0ipx6rnuGejAN+ZvlTgwxL5fNNj5eg3kt b5NVY9WrR2NF4hx8bSu3t9p/BM/dazYitMzkZsnEPapMPalrVV7Fk0yxEwVT33TwuWx+xCrbv ewcfG+eJiSszk6ZuigEkwaa6m9n7b+TBL+riaF7lOBbgzjb97BugSwcS5zwA+JHpgIbqg4GqL vI2hAn6n3L7/HpIMtbXMFP1NhDgykwvqLsLCDTyWlsaLTlSpq2S/gmKvGe09gUG80PtKswreZ +RK2eHBp8eqPEOqFrNt/qA0GurROkzNUGvnMdxekWakFu0= X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > Okay, understood. Changing the C code would be quite a challenge anyway > :-). It took me at least 10x the time to get to what is there now > frame-wise, so to speak, compared to what I needed to add to redisplay. Don't worry. Nobody really knows what do_switch_frame does but everyone calls it. > Will you continue to work on this? > > I'm asking because I'm considering to phase down my involvement in > Emacs, at least for some time. I'll continue to be available per mail, > of course, but I don't plan to commit changes. I can try to look into the frame.c related issues. I'm certainly not able to work on dispnew.c. But maybe it's only the eassert (FRAME_VISIBLE_P (root)); assertion there that would have to be adapted. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 28 Jan 2025 12:31:07 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 28 07:31:07 2025 Received: from localhost ([127.0.0.1]:35836 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tckkE-00085E-IM for submit <at> debbugs.gnu.org; Tue, 28 Jan 2025 07:31:07 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:54406) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tckkB-0007ng-Gy for 75056 <at> debbugs.gnu.org; Tue, 28 Jan 2025 07:31:04 -0500 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-385f06d0c8eso3068186f8f.0 for <75056 <at> debbugs.gnu.org>; Tue, 28 Jan 2025 04:31:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738067457; x=1738672257; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=O8Kj5HBYkFNmV41uULtdJQ2iEeqsnbOdR6BaHN1YPPM=; b=FR5j1fQ7nhN7rd94pYDlOCKCBsKgjybmMxxlYb54T7lbvWhNPukm3eV2T8KVybWI9L Pnk1bWAQr+N6adfBHCgblJXMPmclDbVfaJNvS6JT4tzaIVX2j5zFaYH7Ea2nWAUOAyxD Ipi52o0oG2h81T/BHPmcNGgZSymW20no50p73r1T8KK/byKkpgKrhx6iv0D2Nuo99kRP URZrUE7mVla2QSHohzzLdexNXjnk9Vha6rGgE7h94Lm3rpqrKSg402XBycGn8lHuPzgJ s7o2WjuwB/dztXBKk3iCLScp2c1vR0sC00fz2vxgv877vudOocWY7K+R1oEyHc917vvx 2mbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738067457; x=1738672257; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=O8Kj5HBYkFNmV41uULtdJQ2iEeqsnbOdR6BaHN1YPPM=; b=novB9SOt356+bSKPks8n9doLJ/A8vrH1R/x+95W0QweOCdJGpJsWHQOCZicaLXHIS/ jCu912kakXofxMAQgrhN08I0s0Y5xg+KZC/QcFD0BOH7oHfVrPm4IpLVTzropG181bhU 8y2gFNjevd6a7up2pn3Pnug5nGY8FP2tWzc84F99Tvs+Vc4DY13g0FSNANYJZ4H16Cb/ SNrEPuS5wvbL/KFpZrjcjvnM1Izf4eOCNjOuAIJ0bkKpfG+/f8V/eSEH8HeLuMmutgmr KCTFvOOU68OqZV9Ge5G3JkhkNaXFdklvhAkQMGp/JGn+csRs8oPW5MCFKuDvG2DR+4oL qEkA== X-Forwarded-Encrypted: i=1; AJvYcCWscGUEVWnkej/ngXzipZPHja+77gQ5SQIHN7f0MrkOG6WU+/lyM4NG/e+YsbCcAKwbiFNQuQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwTzu+j/szuKAJ4CTrkN2ZVohWDRtsphaFozCXfGC5gFNa22au+ MtlT3aWUsbRmh0t4oVZ4dFtBKMwmK13Zn4+c2RULGl+qQ6ZqVtrgxlEH6g== X-Gm-Gg: ASbGncs8xZoYKltTBhYg0L2ua1fZ8RD5r7Ey6CG9eU1+NlK1INF5FUrL8jm9lwy+bsm 7eVZBJ+41LQTDK8QiLKr7vmTWAkmTIoqp68/K5zjgT/AoF6aznL+yx9cQwlvFW8uM7PSOV7kQHb 4FhhLjYtZNpBtFrIRAexrwWlLn9rkL8STt1YR2z+vmY2Kv6O8KfpJ0Q52KGTv6fa2W1MiDcCD9w g0hRmPptxkr8wIfJp9sdMz12KAHbq7uO9DAR5Ljc4U2rYCiFoSm8UOroe1lCxcq7okdXYEngmX4 8Uk1cUqh1cY3KNGi0vntVLKuvdmybLBdDimbOkMIsYXEWi3mA4vC5041lymNqMwFq+jOcoaod5R QyUQz7+eGX3i0i08ieMxJASFh X-Google-Smtp-Source: AGHT+IEZpkcMXPxiOy4bPojyqijhkx2UJqgyqnjKeRngbURK1SjP4PyvdmiGOhcx1YiytKk3HziLmQ== X-Received: by 2002:adf:f702:0:b0:385:f7ef:a57f with SMTP id ffacd0b85a97d-38bf578a95emr33312512f8f.27.1738067456643; Tue, 28 Jan 2025 04:30:56 -0800 (PST) Received: from pro2 (p200300e0b713ec002c00b80fe3536eed.dip0.t-ipconnect.de. [2003:e0:b713:ec00:2c00:b80f:e353:6eed]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c2a188c33sm14287234f8f.53.2025.01.28.04.30.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 04:30:56 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> (martin rudalics's message of "Tue, 28 Jan 2025 12:01:19 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> Date: Tue, 28 Jan 2025 13:30:55 +0100 Message-ID: <m2cyg76ry8.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >>> The root_frame of the old top frame is the old top frame itself. Or am >>> I missing something? >> >> Maybe. Make a child with M-l, then in the child >> >> (frame-parent (tty-top-frame) >> => F1 >> >> It's 1:1 the display info's top_frame. IOW, I left the setting of >> top_frame as is was before, only that there are now child frames to >> which it gets set. > > What I meant was that currently with > > (setq F1 (selected-frame)) > (setq F2 (make-frame)) > (next-frame) > (frame-visible-p F1) > > the last form evaluates to t. But if we change 'frame-visible-p' to not > always return t if the argument frame is a tty frame, the above will > give nil IIUC. And that's not what happens on a GUI. > >>> I think we should use the metaphor of a top frame on a tty as that of a >>> maximized frame on a GUI. Such a frame hides all other normal frames on >>> that workspace but does not render them invisible or iconified (I ignore >>> z-order and groups here). >> >> That's not so in the current code. And why should it be so complicated? >> Either I can see a frame or not. > > Be aware that it will change the current behavior for top frames and > make tty frame handling different from what it is on a GUI. > >> It's much easier for me to think about if this second concept of being >> obscured does not exist. And it's easier in redisplay: If it's visible >> display it, otherwise don't. > > The question is not whether to display it if it's not visible. The > question is whether Lisp code should consider it as visible. > Okay, understood. Changing the C code would be quite a challenge anyway :-). It took me at least 10x the time to get to what is there now frame-wise, so to speak, compared to what I needed to add to redisplay. Will you continue to work on this? I'm asking because I'm considering to phase down my involvement in Emacs, at least for some time. I'll continue to be available per mail, of course, but I don't plan to commit changes.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 28 Jan 2025 11:01:33 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 28 06:01:33 2025 Received: from localhost ([127.0.0.1]:35694 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tcjLZ-0001Yw-1E for submit <at> debbugs.gnu.org; Tue, 28 Jan 2025 06:01:33 -0500 Received: from mout.gmx.net ([212.227.17.22]:53323) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tcjLX-0001Yh-8G for 75056 <at> debbugs.gnu.org; Tue, 28 Jan 2025 06:01:31 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738062080; x=1738666880; i=rudalics@HIDDEN; bh=38Uj72aNaQde5TvJBhRMEqNUvpJguyvV2C73l/i5TbQ=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=Vy5D0+2U/Evv5icZVsFmsoG0L9x3WlJFVJ+IL/KOBS6qmnOVtqQ2xbhmOVNr1A3t TUfbU6LZG3e3JRge52O5O2QQTkS2551LZUIM+ygsXKOY3wL+JMTtUIy++Dy/un7oO hb/9rM1rsxeYDrEZHgDHTmFO0dybY0aqK4AjO17uUuvyq8pooGjT3Q3my3ux0tGqP w9TVhmDyAWv2HfvMKt7tt33ttsUd267e1aeqYKeKWlaxCk7gTBxt3fsNWsZfU6RLH D/GF6bQdSY27wvZLivJ9VpGQEI6anzmIB+nN9b41+FZbqPKT2XnJ3BQg8ZJxgc4A7 TRRgcLxr9Otjh/j19w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.36]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MdefJ-1t3fZh2Fkn-00mmEn; Tue, 28 Jan 2025 12:01:20 +0100 Message-ID: <fb1d85a7-5a74-4d2a-9097-064e86dbd0c4@HIDDEN> Date: Tue, 28 Jan 2025 12:01:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> <m2lduv6yrm.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2lduv6yrm.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:oztiwyHgSHdRxJeDaDRO4nEgmoQrOh6GrZy55PRaOYO4SSPIImG NOWpkLf1H9hi4onPUOuT0c+gSJWW57I3B1+1KPGqgu/lnu2R8ff+4AZaGzXL/8qnVHWvXlY sRBkiO7g1VmcLWSsVseNDWNZzced9GAanOgAiAbiznR4MIBISAw1cRkLf2LoP8HER4M1unu MlZYKlAAsXrWSDhrgjEnw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:AGCRbYAPIoU=;NuohjxjSbzKnLTCYDwX8OSHdqvQ iqVtmHYidLMOSzwIJ3UVSMhselpQcto0X/jpvJlV8LcqGjZ0NosyEWQSp0bMNnoynAgdouhBf cv0BQCOMPK5Ac2O76VyzdapbfN9/CH5Wyo8UfWbBEpIczBbn1uArV9xpnJpkVBa8knCttXEBC xg0agXm18MC9iXCklukpX9H+EXzXQAZtLmfkFZ72/nzkJMk0Ox9VIC8+YlRYyqmjpgY7HIVYu C3VQciaZIznmSf6euPGgSTxt0dsHoIBN85OU7mbz33w8fPJcIZq7Ye5jyTdlKZ36CXHgaq8Tc qVuGUIvK0sJYY4kRGqqbC2ADWQJigVrWUrQDZgftbNpOmy1RucAY4P8ep+N4izMc8HbHukN7a I3QT3gBjkhRKeL0hfLr7PNE5gakgbMTxRSBREylG8/NMNwW2x0oG04U2THm4lST2PTPVQRG2V OHrLoJLGjNVuo9TZoWv4I82+HNBQOvrGtgNmRo8kIxt0yrLSOEkH2KPAZQmVnX+isNQe2OGKN VxdQb9GUJc3O1s8CB8SRe++fJxaoI6L/qDAj0qWEuaZ5auCbUl0hn20qux9+bBBvihM8f6i12 vUFz2xr14/u9EE5oWiZlRdCRwLQ+T6dxu0y3fybas1AAlTlc1HGai8lBx49dOscy/PsqT90kw 642515KpnRrVSLLBc4UfgwiWgEkbEcBxroFFGzGaUfsfK6oG1/OwcxLitZv7uY5PVw5rGhRPe h+depGqijj7xSw2qWQOgIgvKowu8xAJ317S+uEPn3U/ZQYu22YH61ZZBKozUhaxYP2owWnahT 9agPOWAcohdTKwX3W1yL5HjNeR3qLzOhURMutjrScyqspk8Ji3Sc5xj93SzRyQlS9dhZDuGcZ 0oKD8avesiScSCECauxaBup8J6G/OnVllauDNiINb437xh8Fv0ozVi2zE1h45jmpRVSVMA0nY AcVgh4RxLUCv8pE0r6khdJJpf+FJWRcR6vkqm9AAavhc6PQg1alAumSh0Q6n1k9KhAFuY0nZF 74yRB+QLpMI6mnbXv9EkXx2Pyy5Ft0RQ9euDCGlcxkPnTvzpperonjR04QVwsgfO5WtQam5Pr 3mvrzgvLXNMi53yvDBvoMudPisBuosh19LB9p7RPjGWvY93UqIO68t8sdOvfpB+SwMC4Bomk+ HGlUzxRTID4rJp4iuTUdQDtOvNsm0NgzRyFTS7wVpzQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) >> The root_frame of the old top frame is the old top frame itself. Or am >> I missing something? > > Maybe. Make a child with M-l, then in the child > > (frame-parent (tty-top-frame) > => F1 > > It's 1:1 the display info's top_frame. IOW, I left the setting of > top_frame as is was before, only that there are now child frames to > which it gets set. What I meant was that currently with (setq F1 (selected-frame)) (setq F2 (make-frame)) (next-frame) (frame-visible-p F1) the last form evaluates to t. But if we change 'frame-visible-p' to not always return t if the argument frame is a tty frame, the above will give nil IIUC. And that's not what happens on a GUI. >> I think we should use the metaphor of a top frame on a tty as that of a >> maximized frame on a GUI. Such a frame hides all other normal frames on >> that workspace but does not render them invisible or iconified (I ignore >> z-order and groups here). > > That's not so in the current code. And why should it be so complicated? > Either I can see a frame or not. Be aware that it will change the current behavior for top frames and make tty frame handling different from what it is on a GUI. > It's much easier for me to think about if this second concept of being > obscured does not exist. And it's easier in redisplay: If it's visible > display it, otherwise don't. The question is not whether to display it if it's not visible. The question is whether Lisp code should consider it as visible. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 28 Jan 2025 10:03:53 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 28 05:03:53 2025 Received: from localhost ([127.0.0.1]:35601 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tciRl-0007Os-7x for submit <at> debbugs.gnu.org; Tue, 28 Jan 2025 05:03:53 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]:54735) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tciRi-0007Oa-BX for 75056 <at> debbugs.gnu.org; Tue, 28 Jan 2025 05:03:51 -0500 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-4361815b96cso36099645e9.1 for <75056 <at> debbugs.gnu.org>; Tue, 28 Jan 2025 02:03:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738058623; x=1738663423; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=tS4Z6EVfcU3IBFcecKlfRsug8tIoyyKaVvNSr4eEsnA=; b=OYrs9Uug64StdwlUiHo/zwQ87wFZt9b/kSDCEGfg+g2x8+JxfLsW4xph+/B4CAVtn4 F9RReg+LnIKtApXYiVpENTlZqNqJbR7kDGGnfOQv4/W4nYRPwJK1A10pKzMYRuyuOk6r 5KGlfdiYOs1X2xYrTvjKvLKfAF0GwgcU+fCmOVin2SovSFFDsYMP93hJv1pwBpqnf8BG LX6iHZQX69WPPN40FrXvg0fSqED7lMfU7jatc2fsHw5OYvO6sEjJX7+MvChCnhT6T4IT uShZ9q8vh/E9uuR5qh1L7gwGZ9KXS2RZBlwEisWOlem6yBx1QGVPA9ORG7ei8V/7Rb5H c9FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738058623; x=1738663423; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=tS4Z6EVfcU3IBFcecKlfRsug8tIoyyKaVvNSr4eEsnA=; b=of3FNzhPuM/VwfLe0wVg/5D/ucgm/svwqx9aV9xive0dxRDyl38x5svqm6Lat07Ibh RCPaare4U5uZgu54vpFl02+SJG3yaRHXCIG8+mQQv8GRdYGWPZOS75xh3Iab28nkI0zf mg12hTg+A+Sb7JYpFlXxWmUxBYDMzYnI3A+P2KdS6zrfkt0E+YAMTW99KhcupXTOIRbH NxMtKmXzP/N1HXd2Ob07ouI5BliHcpMGtLz+YhxoWnz6LrB6rC+MKWTBiJjhCb1laScH zYz8brBIoiNDrFQ2uyLekm4gN2D1P8s1wichPzGupy/Iy995sZhLjs+DPpOZuDCvcIF+ gZ6w== X-Forwarded-Encrypted: i=1; AJvYcCUcB7/7icPSzb7ZMzSljk8OjedADsPbLeCJi39fCrg0EgW/681VWt2UZ2wTYnWDgovA5LphJA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzyHNrd58Xig4o9k7XGMAF397ULueyYaKKt159iCyIHlrXVaJXu 7xFLWHnTuKzzZD43frfq/ZM6Bz/zgcdrnL5DXs30N+n39/9yh+oXKBpWVg== X-Gm-Gg: ASbGncsbrYOAsK+4/BQ5m2Abx80HuJCbcuaNhQ2PUyXcqotGgHgxkp6o1xzwqb2qipX JkPqfmZb4M0OzyUFEykG4sAs6syKsHUg1yzWP1VJNRxwXJGTzXF0jbUsodLC6ShFNlCI/Li9Yc1 T6rMLmitj6JP9I7ORaQIyUtMZNjP+m1rPTAmzfbDy4d9JQkfWNfyf/IRg7TIRzihcCwE7i1dFVX AeWZr4BjEH3h2MSnnTqpbynI14nX1zjEyxv1z7xGQEDITJP2NvQBliabltg3JYq0tlY16Nf7S1R OVIjgH57qQ4nEyL6GLQ8YleNdgOKiAp/XhL+W3IRIJBBDeFvd7s+V63TSFTh9dQ8h5U2UGect4L QF3z0gFhnsQv/RZ9/NDne2XQT X-Google-Smtp-Source: AGHT+IE+DL0+f6fFppk65swIr4rzf7jZ3ZptcGaxa6rr9nrlDP6SANryU7Qz4GTIQDnJpAMa1vu8gA== X-Received: by 2002:a05:600c:1ca7:b0:431:44fe:fd9f with SMTP id 5b1f17b1804b1-4389142776dmr382278785e9.23.1738058623141; Tue, 28 Jan 2025 02:03:43 -0800 (PST) Received: from pro2 (p200300e0b713ec002c00b80fe3536eed.dip0.t-ipconnect.de. [2003:e0:b713:ec00:2c00:b80f:e353:6eed]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438bd48ae29sm168638685e9.22.2025.01.28.02.03.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 02:03:41 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> (martin rudalics's message of "Tue, 28 Jan 2025 10:29:11 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> Date: Tue, 28 Jan 2025 11:03:41 +0100 Message-ID: <m2lduv6yrm.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >>> (2) do_switch_frame now has this >>> >>> if (FRAMEP (top_frame)) >>> { >>> struct frame *top = XFRAME (top_frame); >>> struct frame *old_root = root_frame (top); >>> if (old_root != new_root) >>> SET_FRAME_VISIBLE (old_root, false); >>> } >>> >>> This is wrong because it will set the visibility of the old top frame to >>> nil. >> >> I don't understand that one. It doesn't, or shouldn't change, the >> visibility of the top_frame, but the visibility of its root. Can you >> please explain? > > The root_frame of the old top frame is the old top frame itself. Or am > I missing something? Maybe. Make a child with M-l, then in the child (frame-parent (tty-top-frame) => F1 It's 1:1 the display info's top_frame. IOW, I left the setting of top_frame as is was before, only that there are now child frames to which it gets set. > >> My idea is that root windows on ttys become invisible/invisible when >> they are displayed on the terminal or not. Child windows on these roots >> keep their visibility. They are automatically not displayed when the >> root is not displayed, that's inherently the case when >> combine_updates_for frame is not called for invisible root frames. > > I think we should use the metaphor of a top frame on a tty as that of a > maximized frame on a GUI. Such a frame hides all other normal frames on > that workspace but does not render them invisible or iconified (I ignore > z-order and groups here). That's not so in the current code. And why should it be so complicated? Either I can see a frame or not. > If you want to optimize redisplay, then the old concept of obscured > frames will be better suited IMO. It's much easier for me to think about if this second concept of being obscured does not exist. And it's easier in redisplay: If it's visible display it, otherwise don't.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 28 Jan 2025 09:29:20 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 28 04:29:20 2025 Received: from localhost ([127.0.0.1]:35553 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tchuK-0005o0-8E for submit <at> debbugs.gnu.org; Tue, 28 Jan 2025 04:29:20 -0500 Received: from mout.gmx.net ([212.227.17.21]:46735) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tchuH-0005nm-UH for 75056 <at> debbugs.gnu.org; Tue, 28 Jan 2025 04:29:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1738056552; x=1738661352; i=rudalics@HIDDEN; bh=p8hCiCssk22E/dHvlS9ttPSkTAw6TIMLZ0eyX9OKdpI=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:From:Subject:To: Cc:References:In-Reply-To:Content-Type:Content-Transfer-Encoding: cc:content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=FpJNckpfMq8WhxeOaDVZGpe+99eenuVrbFI072hviGnHa0Q+DsQbQEJuYdILUiOu vZVtKG4kzIhUEvvSktJaEm8bRUzI8RxQ/CP7ZD/GitGMHsFHbGi3utC6iOLmJBtPe MzCFqY+wGkMKLwwonHNYbf/RojaXx9kQJrp9NXkl00Rl7EPhghXQ/NoCqTwHUmB3U 8gIj6k4+bTEy/33rrvVivgFF4n3pJwl+htNWn8fxEUS54JdlC1tkQdGaMuWkBJwmj CU71tu/hXw3bN7+E/z+qU5j/pPf7pd32gR986Go3wmoa2fEAQheADAiAtHecXFAhy bH/6jXyA5d7v0QvjsA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.36]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mgeo8-1sxu2t3BV6-00lQjT; Tue, 28 Jan 2025 10:29:11 +0100 Message-ID: <c898281e-f5f3-4ad4-9d18-972638ae5d42@HIDDEN> Date: Tue, 28 Jan 2025 10:29:11 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> <m234h4oyty.fsf@HIDDEN> Content-Language: en-US In-Reply-To: <m234h4oyty.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:5PdQ2ZSZHElVUVxNFTomhcs+5U6J0ASXHvtC/Rk8jDDIqjoHjQb QqxVsSVAKdij3caGRq+K50+U8gdM9mYlhNDZyxj4s6fK7E/QJVCUuFwhpsy/SXjvMHXsMDY EtpP1CBgOZtpOQsT/T48cy1KDJAjNN7DyJz6b3Aup+MIGgfenwC877lWZy3Pr7vL7W5Q2YZ wjLVMlmWRkFyOAypk7+1w== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:Ij9LHVzt/SA=;mywPEvmQ1FASb95hFNa00giAZel dOP2s9pCjRK1MeA9RdP1OGOjwf9vQczz/OrmPnTojEvRri51HFfOqgaZkEunZTAvpI+Jz/YCq sOX+U64dkPga38yxt3dDSfhRFs06zSidryT5Cbtz/70nbop+lrDXXkepgBMFmwJGZig0dxAK9 WZuUKjx4hf0KEHZOUOaNIUQQBXsYH49bJ09Uo20pbPvjInfKwsFAzbok16TkvocnPZ5xgG+9v oFYpFRUDk64bScBDDV2Z3hOM4FxhrVy5aTUzuRlExrtFg9OEbcJWNkDqvBn9Lv/kWgby7Smvn ZXDrywEkD7W7tpW1cdG4ubhn/Tx3vpGbTRFWnffuwX8KdavoAGJQZkhKkaeeSPkwLSmwFnuu8 H1oZIhJkJwNDpe8BvKE58azTHXCzE/Ao26d3S1LXoy3bYEX4NWesBtHhSTmoa7cjeUrcCF2Vc icotKUd6cZPmyr9GRZtpR9gwRngLIt00BKYXZ+NuCjaRp1wh6/Fy+98YyfjaO9nE7c4kmCevI +55/Ke/QcJyky1pZxDkYZ2sSWVx8XSYFBH7qyx7V3EWsNLuO6Vg3s7dYhH8fkP0nwIG2Tbxiy Fq8EQY47hwd+dzM1uBxffmfPSPnEhvBMSyZvnSMYdU2/aBQIEMru4oydV7hyAHpsTia6FDNDU PBWc/nusqhA+UlC1zIaiOny0kEGO+I3QLClpCk7fva87mpRhPQkie8Q2vIbulw+6Et2U7VCNA CDdUncz/NiwNh7pVLA11dUYrTa7uxUqtXsOJ3fq7HkU75YrPMM/tHlwiYr25rb4fVa4+fFI+0 8psE/UlTLGtuo/kmNtXv/CuJ2XXLNUaz1zoflL1gtXIKX6JFOXS5FyO+i0ODxcDk6WMQRBVXj AIKIUqsTOW0h32ihxsZo77pZ7i73ERV1CqmJloS31xBSjJYXH7byIt3l65X636EZeYuvSwzf2 yVwptSO+xMnN7H037iFsSgANgGI5vJX153HKKORGEcAFa7CJKEIk2wDl4lSOczGx69L9ij9rh Cp5G7M2nOhjgK0C0NqUxAodOJDnjrvj4fM/+6l/t5I0leF6Exjt1nVMfQJNmbEFSLwWvbrgg+ 2s3IQAsRvJd7hBuKd+lskZNQwjL8EfcRoCh9ByYEZwpb0pw8+091WFO9mzCdNjjez+V8+q2dc 647KtpFDuHPH3m0wmVYFo5IziLHlgVWtQ5IYRyn1crQ== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) >> (2) do_switch_frame now has this >> >> if (FRAMEP (top_frame)) >> { >> struct frame *top = XFRAME (top_frame); >> struct frame *old_root = root_frame (top); >> if (old_root != new_root) >> SET_FRAME_VISIBLE (old_root, false); >> } >> >> This is wrong because it will set the visibility of the old top frame to >> nil. > > I don't understand that one. It doesn't, or shouldn't change, the > visibility of the top_frame, but the visibility of its root. Can you > please explain? The root_frame of the old top frame is the old top frame itself. Or am I missing something? > My idea is that root windows on ttys become invisible/invisible when > they are displayed on the terminal or not. Child windows on these roots > keep their visibility. They are automatically not displayed when the > root is not displayed, that's inherently the case when > combine_updates_for frame is not called for invisible root frames. I think we should use the metaphor of a top frame on a tty as that of a maximized frame on a GUI. Such a frame hides all other normal frames on that workspace but does not render them invisible or iconified (I ignore z-order and groups here). If you want to optimize redisplay, then the old concept of obscured frames will be better suited IMO. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Jan 2025 19:12:52 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 27 14:12:52 2025 Received: from localhost ([127.0.0.1]:34479 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tcUXU-0003Vz-01 for submit <at> debbugs.gnu.org; Mon, 27 Jan 2025 14:12:52 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:59857) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tcUXS-0003Vm-8j for 75056 <at> debbugs.gnu.org; Mon, 27 Jan 2025 14:12:51 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-436281c8a38so33987995e9.3 for <75056 <at> debbugs.gnu.org>; Mon, 27 Jan 2025 11:12:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738005164; x=1738609964; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=vJzFo9pBJfadtmRIcsFk6FUGYMB0c69aU580sbfvzXc=; b=WBCJuyYj+CS57hX18+4J+/LmC+YIghO/XBq3clcpJrOcHY8aF53kEciG5X7wAa+Of2 iF936PTe6HkGX+eB2zEWfUAFFIHg8+LBOM9fcKq3nLujjaDs8+BGVY+li+Y7udy/yLt+ e5WUSncaAUloOb+JxNVjwAh+NxSy8gmKEmL/6/rZIWDj4zA0DL57slMi8X+5x43E068w nvfHrGE33eY7BXYO0GIkHPgi376k8mthXSw6ByPypM8qXDg++O4EiopJ3hRTHyUFRtZV 8T6k0pNIOeutTA644mDdnWX5OQdhgO/flXnf7i4bzMBy1ziSp73N3uELGafunMhOrc0b UePw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738005164; x=1738609964; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=vJzFo9pBJfadtmRIcsFk6FUGYMB0c69aU580sbfvzXc=; b=eCaG9l9fAtdsSpnJ1Fl9GT+LbthyFwEzHYE0+33Tpr9LyEZ0Y17FrQw5ZhihoQjyx+ GWLkrRSp7my51c3hUReyXwi5rRXNkcxJM1LnjyZe+vs/SYJix6jAd/RyyAHQM9LUQTDH EZqf68i59OWnJ/PNturcWTMnKz5BtKq5Xv9+s0o99GSzmAFJbe2UEXXIkdE7X1zDDI/a QRD1mYEowumW7R/k5yXxCTm/uTTiAlvau0w5FDkPmihNjcR5DFCeLvI0roWVEqDkCa08 JiUUMrpRnUOggMwz0YzU1Me6rwhvBgFZdpDVAEpdBqkdkTzuhtZA/Dki7L2GyXPJzAn6 9Y3A== X-Forwarded-Encrypted: i=1; AJvYcCWpWXjZCo+U+uqXycbvEROJ7nZtg7D11D8uj4DZwbQkOTA1UWoSf4b9330h01k2DgwaWRf6JA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzrNvJiQd37FUHJqRpxZV7Mg2FAm6WPGLJIDJTb8mHY2G3FU4oL 08P7uzFTxfRygCLNKNJ/+IffTjiVTcw9YTHF4VjZlkHpTKdrIFtYFSPlKg== X-Gm-Gg: ASbGncvF0fAf7Y4EU8yw2mqasT/jL0QgQJUOJxeivBX0bknHuLl3YHO4lOMPByu1jZX ZUZ4Chm54uQfgsXFc7jzKdq1SMHc1Nz2oDqyoab53heI8E/9tg1fEdinII2HowzVk5yioQC7Mdi O8ev7YfM3whAOrqgvFxeJggfMjkxwKg4WrU99VKhYsYTQIPvQRjbzer+B0JL5EJ/nXlwh6zC4yn y9dI/itITi/1D8Upi7hcVG8qrQGxGvT6TutmDQcCIcerya9NupmsgB/12KII6XNpkE5GA++ZEFb fAzwn1dKcXLqgg1ldAuQD1QugKFPs5JOiOQpildT8ES6P1uEIdG9UNtUN13JgRfBTyVjwVL0CVL Q2abMypGSc4Ityw== X-Google-Smtp-Source: AGHT+IElCDvqXqlBFHj6rAn9gqYd8wyungtg8zJJn2zV/lHhocG4ryi6FqYjOIen/F1O9Mz0PrWdYw== X-Received: by 2002:a05:600c:1e21:b0:434:eb86:aeca with SMTP id 5b1f17b1804b1-438913d2d6emr428739275e9.10.1738005163425; Mon, 27 Jan 2025 11:12:43 -0800 (PST) Received: from pro2 (p200300e0b74c5b0091beae7ba24add4f.dip0.t-ipconnect.de. [2003:e0:b74c:5b00:91be:ae7b:a24a:dd4f]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438b1cc8571sm143341565e9.1.2025.01.27.11.12.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 Jan 2025 11:12:43 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> (martin rudalics's message of "Mon, 27 Jan 2025 08:59:59 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> Date: Mon, 27 Jan 2025 20:12:41 +0100 Message-ID: <m234h4oyty.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: > (4) As noted elsewhere, the documentation must be rewritten. > >> Can't talk for w32, but I've removed the "obscuring" fromt the ttys >> because it plainly went against the rest with tty child frames. > > You could have left it in to handle invisible top frames but maybe > that's really not needed any more. Whatever you decide here, the > following issues must be resolved: > > (1) Fframe_visible_p has this > > else if (is_tty_root_frame (f)) > return Qt; > > where is_tty_root_frame is defined as > > return !FRAME_PARENT_FRAME (f) && is_tty_frame (f); > > This is wrong because it will return t even if F has been explicitly > made invisible. > Thanks. That's 100% bug. > (2) do_switch_frame now has this > > if (FRAMEP (top_frame)) > { > struct frame *top = XFRAME (top_frame); > struct frame *old_root = root_frame (top); > if (old_root != new_root) > SET_FRAME_VISIBLE (old_root, false); > } > > This is wrong because it will set the visibility of the old top frame to > nil. I don't understand that one. It doesn't, or shouldn't change, the visibility of the top_frame, but the visibility of its root. Can you please explain? > This will change the behavior of many functions that check the > visibility of frames, notably here in candidate_window_p in window.c > > else if (EQ (all_frames, Qvisible)) > { > candidate_p = FRAME_VISIBLE_P (f) > && (FRAME_TERMINAL (XFRAME (w->frame)) > == FRAME_TERMINAL (XFRAME (selected_frame))); > > } Would have to be changed then. My idea is that root windows on ttys become invisible/invisible when they are displayed on the terminal or not. Child windows on these roots keep their visibility. They are automatically not displayed when the root is not displayed, that's inherently the case when combine_updates_for frame is not called for invisible root frames. > where a window on the prior top frame will be no more considered as > eligible. > > (3) I have not checked whether it's needed but I strongly suppose we now > need a frame_visible_invisible_hook for ttys too. Okay.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Jan 2025 08:00:33 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 27 03:00:32 2025 Received: from localhost ([127.0.0.1]:59177 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tcK2q-0003HS-KL for submit <at> debbugs.gnu.org; Mon, 27 Jan 2025 03:00:32 -0500 Received: from mout.gmx.net ([212.227.17.20]:53221) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tcK2d-0003Gq-SX for 75056 <at> debbugs.gnu.org; Mon, 27 Jan 2025 03:00:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1737964814; x=1738569614; i=rudalics@HIDDEN; bh=qrHylg4XPQGueFCY7XTm4ad4DtDgQ0DmKiv45D5Yzdk=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=pDDIOeJqaigx+j+FjWXyZZBanWwJXPJtCKONL0SnwQx2hdJ5V6DN0acYddGFXCSE ZOFSq/6txl8GZEOFiTmnVWQ74L+nPVb4WsaQXM+Nq20h5Si/1zTNvs4CebDhG+EI4 QDGawYbCe1J2CzMvuqeBeZ+gYxHfC9PxkKh7MVWBrBP8ILGp0KeRC7TBnqLXkHjog S3WoY3VcnifD6UO0441uNaK4pvgJ4+9b2oXrJdZIb3f5HRaLy4EebROj9bsaEZ83P Za+omGQjIlvTr7UPZJhaOjIiBrHzcOdCVBPSdyvPSRUbDOK4MVeXO+QjyB1dpA3aw tLykmj65tcUVgMEUdg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([46.125.249.32]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N8obG-1tNcux3kko-00sT5i; Mon, 27 Jan 2025 09:00:13 +0100 Message-ID: <f012afe4-f59a-4773-8ae6-0e1f7b106073@HIDDEN> Date: Mon, 27 Jan 2025 09:00:13 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: Eli Zaretskii <eliz@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <86plk9qtte.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <86plk9qtte.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:iAvD/bksug6zX7HdrJGBTT4bLwiFMMIEVMo5nQH/vRMpeyI0HLf JoOnfbP2UHb0HxrctWI6+EuGOeQB5/JjGx65NhBIHXyAnxLnQ4OHNhKhPKmQoHd9vDSfgj5 Tem5yslF8ZmhamWHN+CTrdtOfRlznzES0b5Pu8pYQ9S+MI3rXFXAR+UvM/7FYWwlUacPqi6 4LYMZgVDZmbDUT4d7kvVw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:kOA6irm2x0U=;P6KnULU+n97jEGEDmivRV3ZMAhP SBgrNLCi9bJiJ5ZWvR/w49tzoki4CrdVpNOxKTf7wK2bs6HbYcPcfBueJx5U+VvNmU2gyyaYr a2Cl+rNRR9BxRZG0Ygv630Z/gO9YVzmRUkuw2hyW+SGDUYFvP6Oyr0/nz9G2F/GJJ4ftE3uTh B/4Ma+fajXy4FMZ6xWr9Gb4LD+mAyGXs15tViRoJIQJiyMosba5Z39PYah+1bKcyZqQR+nIRI IgQ7ovmfYAUgd65hsTceBel8nfC4F1vgRZ3B3f3G9DJWKvB91e09XPWxUSPgNlFIhDoXz3LYQ 6zMq838SoY/tTmAuAHSTAayaI215VnHwhKkVcj4qk7YmOpt/a9X2G3DzhiHGwIzKahEG5oAVI PfPmnKu9Ni/KWx4dtGX41cY9fFHLzNP6JxqG+qSLhffd4oK9Ce8cAgOOUeQrpaWMGtT+ImYzb VE/PcLJEhMCpm/eFI8C9T2r2GaKX6AL10CBzkDa/wp47MRQu8cuoEyyhjzaW+3alh2l0uvWYq w98HJtlIwVjrBErE7pUf/3CnXPV/oGVCWNBGggbedFigNsRxxGhoIVjW/hVJ58D0rACA5oILM IFhfku1rk9wjJTv4ntgrYM8UEzKbvCZfTCMyxgbnC3HjT/hlSsA/vbfaw8FbEGvlrwufYeXiD 9rGJAx0rYplE19sInZqxOlQWypPt8qJ5bNdvxY6L5OPbcU7KaXdyAbgJJnSFGJBvaKxEOFXhR 40n1gfE4aodA6D6khhlJeKTZjJ9Ev5gukVmN34NrTP1jKP5L65a68SrwLKledBEv5eBfvhVPe Ca4A4YVNiOJqEysevOdRUM+INbGQl+q9lJiHG/eCx4cbO1Ok0tsEIcAzrtUPx4FujZnW6lCQ0 wl8XHTSK4QQabSrWjzHSr9w758fYmqs2MhRH0LDvPzq+fxziw1tOm9bWfBKLJBw3X08RtOiCP MSvsdla6wRdU7OIOqLa78mQRUaD1IACNyURo+cevlFvYrAofrVaSoZUxiqpz6wcNywW0yzCNv bOokrIOTvnqT6aNNq8O+KuPo3e40yxY+ZXyuEJ+fkuJSm1LFRVzkytY1jWZwa6k/dSJwbvVPM eKfFa9Kj+Gk2mjB8TIFAypHso6Rt8UMUudXV8TR6F8/OvalUohHnQLIj7LRUn8P9Sxhb7Ez+1 Ao2DzWZSlWP3btsoGpU0qWZl2ljERx8qAOgiZUCDFTTgw79iRLgbQfmJl40XqFPc9XynCOZvS 87+rOjMhpptg5JnnaJ8LD1fggNYecPSwCLe0RD5PkkBIfBcmfUGxXRg7IBLAN3XzkYZVP/Px/ mUieMurxKiRCryaCl6/pBWDbGMZDLgwhDn0JRUmIDyGwM8= X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: > Gerd decided to remove that as part of the TTY child frames changeset. > He said it was an optimization that is not worth keeping. > > Why are you asking? did you see any problems caused by that? I wondered whether we did need it on the Windows GUI. Apparently not. Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [46.125.249.32 listed in zen.spamhaus.org] -1.0 RCVD_IN_MSPIKE_H5 RBL: Excellent reputation (+5) [212.227.17.20 listed in wl.mailspike.net] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.17.20 listed in list.dnswl.org] 0.0 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.17.20 listed in sa-trusted.bondedsender.org] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.17.20 listed in bl.score.senderscore.com] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 0.8 (/) > Gerd decided to remove that as part of the TTY child frames changeset. > He said it was an optimization that is not worth keeping. > > Why are you asking? did you see any problems caused by that? I wondered whether we did need it on the Windows GUI. Apparently not. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Jan 2025 08:00:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 27 03:00:13 2025 Received: from localhost ([127.0.0.1]:59174 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tcK2W-0003Gg-Jn for submit <at> debbugs.gnu.org; Mon, 27 Jan 2025 03:00:12 -0500 Received: from mout.gmx.net ([212.227.17.22]:39435) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tcK2U-00039o-0n for 75056 <at> debbugs.gnu.org; Mon, 27 Jan 2025 03:00:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1737964801; x=1738569601; i=rudalics@HIDDEN; bh=x57m+Jr/QswrarbiwSYf0FYt9FYXbPV6eni9xHb9Mmk=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=DD0aMdjOUQrXSJNhSLGA1H3SGMz+h2KI99MXko81lYbNhikLA+IupJrSV3SfLIdr WgjjKQM6TK20+iMeY6jQmBD1z2YFD8R5gLk8MvtpxoKQGjWZzaKrQp/mfy2KIdso1 q2UtRwEh1rNkQikmBpzHJLyMkWBoYsysMv2q00iJ6aSgVDXJfD76ucPRGNi2g4GEh jhGweMdzb/ZXzCtq6s5PWWamlXAL8KkrzLDj5xPMdDNfPRBoOsNjsRqRM/fTs8Zpa n+YUqinaggbqUfpoD84d+FFkSloxybKE5HyjKUVqydWZsqb/X6qeCTzG/m+vBtUf6 1bzXnOLvZaARd3tnQw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([46.125.249.32]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MkYbu-1tCZDC43yw-00lBUE; Mon, 27 Jan 2025 09:00:01 +0100 Message-ID: <4350632b-b8a0-4ee5-b08c-1edcd8a5115b@HIDDEN> Date: Mon, 27 Jan 2025 08:59:59 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:dRf1v+gMUbRI6eX6Qm72H9lc/etYTIG2iYNnjE1mgSV2mNGqkWC Oqk7WDHYWoVqjfLr68prhwc04JFzhvPFjmWJCurH0WrWqq7aYunZRsIphjBNiPBE4VYj563 +e882bi43JCuGbZolOpBHjD0ucBG8KteTN4O2MBd2HuNVex9coAdQahA1PkU0QKOJHOCCPt tfkk/b0WTfFwTHVN16UNg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:k9uhV37Rrqw=;yZPHSuIcejQ//hzUo75Yqb7hxGe T+HHNF2dds/GRBrfQIy7bzzTC0H9otX1RtXcAD3YCinAE33KASPvcjB/eewmRJnqJNYvbq/8i kZmyxQneTb0MubkesCjBUTvwo76LnU0ioPL8kNAP2792ha8I8qWAcK6UUfnB+a/adK5s3a3SA aw3wUCiUV8wj+O0Psv0gUqN2TjBnxok5WWywQMl68sZw/opuzaRGMAXrXqqnlSCjJyOqiPDN1 /XV6OpJdh+PEclCP76K6DUdjzKHqEUebqyvoVoVWHJQciiUtAHRVlGMAmAGpL5RHaNrbP++Ls uN/bff50BCHxgzVSzOvVwwsaXsmQHGFeY2e6P8W/Xx0L0dJbrcAyLD7s9cFZZyHaZZjC1nF/E QBp4ISb1OqIE5LVLS6yLjz6QMP6bNvL8zswH4iQg9OoylTSUPdEJRHsbvlSpc1LxAcEOLS/uh rRastRSUmLR6SQkvIjRA8WmWyZvTPPtYilahhJ8T7Ut+BHAlA5TcScvZ+ZY0sz7+gTkReNrH8 3iFG3mv6U04M14wNc1EKTUMP149kLXpe0uSuMvNLojiWujEnyDzIUEUMOV5wlXexBlcwKUW2N mnlzxJ9vL0xKu7eGBsLImOcYEkqrFdftXmnbYJteY2EZQQGsNXLEE6TGVoQUvIM6XegGnyTES dMiLDKUGDLxpfNKb6WPZUWdF9q269EYX8IhzOqcAQTqSaep/FGrKGHiwgp0d4y0hAmwPgbaPz BsFZbWlDGkDfYUDn2sy4qsXHZvs+BM+JTOw5A8C/zVgDtn7gGQB8lDQi87RyEeFrq7rswbg/z UnzSsztFHIer5oWiDR8Zgh5QQcZQihCWkbNdD32MabF2Bi44bd7sg1IKk2oOj+qFzl+FKXAto GyhFuj5YJmarC2n8/ovWyCoyIDrmV8F4UuQYRQYBet1/rXFcA+YoTDY8Kpe9IlOgrqZ7pEKJ6 64IFzPDfSXd9LVW2IqijfvXWtx7TOeUXyfe3HqfnbvbDi0g6ZKYNNrCcfu2QIwiUI7t6ybFt2 evt49DUKwXL4o/R3sQzcrLZhADmgrJl3Z5agEK6xlj6UAUp8sa/PSOYSA4wLbOX0ZDg4B5KX/ nQZJB48mkJ1OBMiNzY40qRSK7T8nVC0jNelX7w4vNOsTcJojXsPMbyI9su1Qacpy7LUuvD/k6 jMh+a2m2xr/EcZQI2zHDefoEmq4ACWozilGlM7XhDHQ== X-Spam-Score: 2.8 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: (4) As noted elsewhere, the documentation must be rewritten. > Can't talk for w32, but I've removed the "obscuring" fromt the ttys > because it plainly went against the rest with tty child frames. You could have left it in to handle invisible top frames but maybe that's really not needed any more. Whatever you decide here, the following issues must be resolved: Content analysis details: (2.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.17.22 listed in sa-trusted.bondedsender.org] 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [46.125.249.32 listed in zen.spamhaus.org] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.17.22 listed in bl.score.senderscore.com] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [212.227.17.22 listed in wl.mailspike.net] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.17.22 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: (4) As noted elsewhere, the documentation must be rewritten. > Can't talk for w32, but I've removed the "obscuring" fromt the ttys > because it plainly went against the rest with tty child frames. You could have left it in to handle invisible top frames but maybe that's really not needed any more. Whatever you decide here, the following issues must be resolved: Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [46.125.249.32 listed in zen.spamhaus.org] 0.0 RCVD_IN_VALIDITY_SAFE_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.17.22 listed in sa-trusted.bondedsender.org] -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [212.227.17.22 listed in wl.mailspike.net] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.17.22 listed in bl.score.senderscore.com] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.17.22 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager (4) As noted elsewhere, the documentation must be rewritten. > Can't talk for w32, but I've removed the "obscuring" fromt the ttys > because it plainly went against the rest with tty child frames. You could have left it in to handle invisible top frames but maybe that's really not needed any more. Whatever you decide here, the following issues must be resolved: (1) Fframe_visible_p has this else if (is_tty_root_frame (f)) return Qt; where is_tty_root_frame is defined as return !FRAME_PARENT_FRAME (f) && is_tty_frame (f); This is wrong because it will return t even if F has been explicitly made invisible. (2) do_switch_frame now has this if (FRAMEP (top_frame)) { struct frame *top = XFRAME (top_frame); struct frame *old_root = root_frame (top); if (old_root != new_root) SET_FRAME_VISIBLE (old_root, false); } This is wrong because it will set the visibility of the old top frame to nil. This will change the behavior of many functions that check the visibility of frames, notably here in candidate_window_p in window.c else if (EQ (all_frames, Qvisible)) { candidate_p = FRAME_VISIBLE_P (f) && (FRAME_TERMINAL (XFRAME (w->frame)) == FRAME_TERMINAL (XFRAME (selected_frame))); } where a window on the prior top frame will be no more considered as eligible. (3) I have not checked whether it's needed but I strongly suppose we now need a frame_visible_invisible_hook for ttys too. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 19:06:02 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 14:06:02 2025 Received: from localhost ([127.0.0.1]:57889 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tc7xK-0006mG-2y for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 14:06:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56328) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tc7xH-0006lh-Sr for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 14:06:00 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tc7xB-0004Xl-I6; Sun, 26 Jan 2025 14:05:53 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=Yrlgt62jvRybU03I6E6eUn2wQD4jm9pwvE5t6yXDl8A=; b=dPDgPs65Cked RMiMds1w88cyDNPWmm0xsPoTwVvStvEi0CgDnwzvd2me6j8SNmBmaD+5BsgTA1ryS46THP7YjJ10U 3Gs4Ucga5EWiERvyb9RFGdM7yJuROLMyEDCRNvJ1ysd9g9qOU5ECFox2yW2wNGMilArpqH4qFfvBJ z2SOesj+3ForUX/G2f5r2Z5bqS1riHZTp7ogb3IX9eVoVZPjs6wkMwvZ0P9AoTbEFDOQEUkBwJ9ZR hY6Zg1hE3JYF4BdP47pcBOewDhdFYiMp1mB7fT6Ksg8wST5sU8SMK7d9/8paIDseLjju1mPyxf1qw NNNjO6fY1RPjQ1jVyYdGBg==; Date: Sun, 26 Jan 2025 21:05:49 +0200 Message-Id: <86plk9qtte.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: martin rudalics <rudalics@HIDDEN> In-Reply-To: <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> (message from martin rudalics on Sun, 26 Jan 2025 17:44:39 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Date: Sun, 26 Jan 2025 17:44:39 +0100 > Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > From: martin rudalics <rudalics@HIDDEN> > > > I just described what factually happens: > > > > emacs -Q -nw > > C-x 5 b RET > > M-: (frame-visible-p (next-frame)) RET > > => t > > That's what 'frame-visible-p' does. I wondered what happened to > FRAME_OBSCURED_P in w32_read_socket. Has that become obsolete? Gerd decided to remove that as part of the TTY child frames changeset. He said it was an optimization that is not worth keeping. Why are you asking? did you see any problems caused by that?
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 17:19:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 12:19:33 2025 Received: from localhost ([127.0.0.1]:57744 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tc6IH-0001Re-EF for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 12:19:33 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:42333) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tc6IE-0001RN-LD for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 12:19:31 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-4361b6f9faeso23208085e9.1 for <75056 <at> debbugs.gnu.org>; Sun, 26 Jan 2025 09:19:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737911964; x=1738516764; darn=debbugs.gnu.org; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=7Z9Sp4hpYx6otF6jo0MX2hbq0zhjhBOFFxO32qsiBRA=; b=j1fsni54oJE61WyET4TXpLpLOPs4ZCorDDbhq25VcbkvN7EmbGxvzEyBNBEnGC3ubU +fTk9Bvf3t7ROxBVSP5pJ+RbQ6TMfhsvXhnCm0Dny65J2axDbyNTnCPGq+DNaMeRAxMa PTAWwMbtQ1e/bUMo04bCdVmDaO2gKWRHdqNWd5L1GEfQcPjyLjNphD1vFzSaBKihuSbo ZdsTdZjUacJ7QBdx4PDp7fs/X8H+M8bl8eqthOeC4Y1MOg8tW6XRqcOOGyfVr17bktK5 QlX3y9jIzUcaq8uInc3JaUTwUJCxx8dtH7yi4/L5fDB0KNQdPmURWubZixHQZS0dXnIw 7ePw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737911964; x=1738516764; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7Z9Sp4hpYx6otF6jo0MX2hbq0zhjhBOFFxO32qsiBRA=; b=sNJYvaIIDTOau3m9A4janMiFTBf2S8Y+EcKIQMCwOuXXNBHMGqbOX3EO/YlrLNavtF KodYYuQNMRkni2nG+SqZvEs2DXOk2O+TpIveXe9h9Dv26mcJsKgEK8lIANfJG256COtc bILJSOF2TvIHVa5NM8QrYWYLb72+AY80QmIB81/2pKTXt8VZUzII6zOJI1yl4mQnYk/m JWCBZHB8Irmimh+81Xj5R/HAJFM8vB8oUL/HG4eIb+nJSTn0pRn2/cozxSGyPG5a4/vl wC/km3Ez120bk5W9Hguv+/rgpY7obILZiMtIoNs8w+Nq6gkCYX82XQQJhZq/eNZqk5KD TjDg== X-Forwarded-Encrypted: i=1; AJvYcCWppDZtMB3nagfaEBRreEnlS9nNXTXH86yG7d3xFRBb5l7hj6y0ipaGuJuiQSG1U1+I+TQqHg==@debbugs.gnu.org X-Gm-Message-State: AOJu0Ywz8XkgtfsuANpGZepN9LiFyuyrQSJ8x4HdSkFNlTbfjTM1gp0o GTlW780U4CVvkbnHPW5iPAJakpWRKRX6TofOxk56MBzoqlpQc2XB X-Gm-Gg: ASbGncvwysXjXNvDWnk1CIOzYIj+a/42GdmaWTWqTEvfSdX0JaPI+AWmh+mXHDgorVn /gwBP3X2O+BHdixkwDC4mnF3XEkT1ZdNELoNcbFt4jUnb5xFVJL9Skbma9nkGg6rdo2RUUzHGjE AaiT1xWyu+EuIhdUcArepzD6607AxXsnhVrNMEHpDAos2Q7OYedjuiM0WhuFJwbMbczEGukaFNN fd++vSbYeJAYdeL/l4553ssDSuQD51/cb0G9tozhIj0zctGNwsGGlNQuXxioZTOI+p65uLSSLYM lgQmAUKehtvILr9RgGycJ0Q96VMfer7QqgcwxnHRKLiQ+3G47fwdmPTu/oWM6+0bXNtEetcOE/K A2r/4m7jArAnrHWnV3nH70ybUSBgC5A== X-Google-Smtp-Source: AGHT+IGm6a0bbRktUdtyJBfCZI6bORK4rlW5Qps7r6wXsJnJzENu+KWLwzzWD10cYliqvcwHlISQdg== X-Received: by 2002:a05:600c:3ba7:b0:434:e69c:d338 with SMTP id 5b1f17b1804b1-438b885127dmr118771525e9.5.1737911964305; Sun, 26 Jan 2025 09:19:24 -0800 (PST) Received: from smtpclient.apple (p200300e0b73e84005db9294b38aae576.dip0.t-ipconnect.de. [2003:e0:b73e:8400:5db9:294b:38aa:e576]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438bd501c2dsm99570125e9.13.2025.01.26.09.19.22 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jan 2025 09:19:23 -0800 (PST) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.300.87.4.3\)) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> Date: Sun, 26 Jan 2025 18:19:12 +0100 Content-Transfer-Encoding: quoted-printable Message-Id: <81779B72-5DB9-486B-9EAB-77DCA2C39596@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> To: Martin Rudalics <rudalics@HIDDEN> X-Mailer: Apple Mail (2.3826.300.87.4.3) X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Can't talk for w32, but I've removed the "obscuring" fromt the ttys = because it plainly went against the rest with tty child frames. > On 26. Jan 2025, at 17:44, martin rudalics <rudalics@HIDDEN> wrote: >=20 > > I just described what factually happens: > > > > emacs -Q -nw > > C-x 5 b RET > > M-: (frame-visible-p (next-frame)) RET > > =3D> t >=20 > That's what 'frame-visible-p' does. I wondered what happened to > FRAME_OBSCURED_P in w32_read_socket. Has that become obsolete? >=20 > martin >=20
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 16:44:51 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 11:44:51 2025 Received: from localhost ([127.0.0.1]:57680 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tc5kh-00059r-0s for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 11:44:51 -0500 Received: from mout.gmx.net ([212.227.17.22]:51765) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tc5ke-00059X-3U for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 11:44:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1737909881; x=1738514681; i=rudalics@HIDDEN; bh=IIBTWgXrzK6odAfTUNG/D0ggeUq+T1olHyQHfUaERbE=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=mLmQOsmiGg9sLot1Lq+ybZQvtgsBIfbFXN/TaLWlWdBK3rxXyNKmKAx+YGZqjQOF hEGV6vs2oaZs2C/vfsAs+PDnqBfZ4KxwWkEkDQ4DVA7trHkqKWFBVvTU9mWYM0Y2X EAJg1PDYaH3VbIjmqEXY6v1s5LH8TLsEwbh00sXUAcKyyWriGfi9kyMbo8kbGx1HV yDS+BZo2wl48xwK3AJEWF1uho4FsE1OpHvlti+At+Bljbw9qNwm/NeR9nLfssSsnd vlCCvc2rlVR7uYMU0FiMCMnFQOjzlU3aVf5kXG5lzhW991fWpR+4/kN3c3g4kii0u bvzUyxOWQFVx8gRTCw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([212.95.5.142]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Ma24y-1twtqP1RbQ-00V9bw; Sun, 26 Jan 2025 17:44:41 +0100 Message-ID: <b01828d6-67f0-46ec-bce9-9dcaa036b3db@HIDDEN> Date: Sun, 26 Jan 2025 17:44:39 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: Eli Zaretskii <eliz@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> <86frl5sttc.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <86frl5sttc.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:OMtltoujukVIeuk43yMGTdTwmN3FMqsrtS7/RAp9PZgPOLOLYXt aPwqBr9SnZdtRsaT+Pccw2tGMw23EMyyHJHp9zq7bxIl1xUg1j0c4CmArxx/xVgKZLCak9n xAf3fnqcL7zbxDRvtcqM7MT7yWWeAP7sXgeQUZlA1euZMw4m9hCJjkR8mHdXMyEitu5XcKk lhRfdKUYr+QY91fYZ8s3A== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:eCFaGILha0c=;lPyvAal0bVlzKRsErf36QpJcmdR g5gYNuQLsVU7rWYnUPLtHAWcNbmidZd2ndy+H8Eg6qrwbGWrq9D4nP65Yixlm/bfTJ4zN+jgE pWHaTjTqpIJmWKEB22//NtMrMe/s22PnLZGGIEgyoNXCwDTtcmtP7S1Frm16BfEU4b/+DX5wS 4XZoPL7UNG84hQJYuBRPr1z6HVH+T5D6BvAtsgdPtNsMv6de5C044Ti1EDGtCbdqqYTnacvfO FcdPgk4bYTjQ86hi555dltzmkl9FK42R6KYRGbF4uZtlBpa44VjncIVNDWueipsUyWrm+ZNQu mWMjG+tMaLsgqFDwgVZsSn4Q437wDWRrgNLqcDrXw8+IeTAdYN8PjJeKw7OVDcuGhMtAxdLne BLoAdhcn78SmvaTiZ8aIzUuj+2hZ2xJ1ImXNAJUkF8MJv9hIdPYJ9DSkiYL81eMsnKTgoV9gP 5e+ciqVvJ0HjZVSaK3/Lv/AX9SS1g5hbW+c/mPCCQ/X07k74AJ/PeHPYdSjr/ewsZHcrgyco7 HE0eBlFPe7DjlyK3Hwa4+V+f48Rh2w6ONtPr28rWciUidC9zJOn7pquZLGU2lmNBPegq52s5d cAbJLrkNRGK6VZ7Eh2priLxpGY1ATEfQjPswX9F+NIDrJ5k0y8NbWLB95loLwWFL18G5fHgOZ 2IUtA5Qxk2dBSS73AmiCT6IxpD+JFnt+Qyl8eeX29NG0Q/ZUrfDOsnNRQwALJmFV914VjPsI4 bY4oz9duQzOv3Ec8xXPaMBKCeIq/LBT272Q9Iu/5eO+Hg8cegu8wH23UW92caHmuu1jB6aMY9 DGvZV+fqYLve7S/pVOStqALmH7vjwiNRVpzbu90C3TK1SQQboTKn5KDT6fA5EtalvYuWorala QWADhx45l1X4JkUqRJXZ1WlF2gmM7S9A01PumpHy6wv8rqP87rNJ1JnBxIqrYt/Yfh5DSwFwA VQbdZJq2osKhlrW+nU7bDBLwz4T4T/73it4l9aI9d3egs9njLoZ0o/V0p1rjh40qb5lpqn7Ip HlgqhIIYt27DOp7K0LOmYtIm5zohXD7FZfD9Fvv0K4lJvcmpxKWE3qEHi9vCeR72lXOYow5NT OGgP0IHdhIt2JFr/qNIoFwGp+O5qMhzusO8V3zPHfKVfyUsRw9PAGQc4MsDiyO+VemolM/zE9 khtPYH1eYScXzVtCQOvIQWRIleCf81vBT76diiLBXTA== X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > I just described what factually happens: > > emacs -Q -nw > C-x 5 b RET > M-: (frame-visible-p (next-frame)) RET > => t That's what 'frame-visible-p' does. I wondered what happened to FRAME_OBSCURED_P in w32_read_socket. Has that become obsolete? martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 11:23:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 06:23:11 2025 Received: from localhost ([127.0.0.1]:54913 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tc0jP-0001gW-9d for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 06:23:11 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:52592) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tc0jK-0001fn-QD for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 06:23:09 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tc0jE-0007Mg-Ao; Sun, 26 Jan 2025 06:23:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=paNxAfn6DTq4aIgLdo8eh5G+fwoPmAT+KF0CjcX0OVM=; b=cih+4xqZIB0h XK2PTxYQxJo3MhjAPPgMIxDvMceSDI8TyHKMD7cUBZAUxrCCiM75mgcHTmHTs7iY6FRusWkdcg5xr i5YVCm/vKS8XziAGsmmwNs632eqWwBtwoD2TQDuN0/1zOH8dRxebQVuu4Pz41OwIKpPDgRSHyWNeB PM8zhgveGPCQvLfP6lxIGh0D6uVa8Za1UbMdqLFgvb99pjWgCpInNduNxMXjQdLe1bll+XBmeoBd/ hH8of+W4FagXTne0MZi+gTX1OJAyXJT1F6tgIXMQ1TIMeLL8kzfvYBQagY6t9Vrvr6HkmS+eWhWnR qNBfo0DhnoHrpTOt5ZtBew==; Date: Sun, 26 Jan 2025 13:22:55 +0200 Message-Id: <86frl5sttc.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: martin rudalics <rudalics@HIDDEN> In-Reply-To: <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> (message from martin rudalics on Sun, 26 Jan 2025 12:04:56 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Date: Sun, 26 Jan 2025 12:04:56 +0100 > Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > From: martin rudalics <rudalics@HIDDEN> > > >> I still wonder what happened to the "when one frame completely obscures > >> another" visibility state issue. Has that vanished? > > > > No, we still ignore that on TTYs, for non-child frames. See my other > > message. > > Are you sure? frame.h now has > > /* Nonzero if the frame is currently displayed; we check > it to see if we should bother updating the frame's contents. */ > unsigned visible : 1; > > where it formerly had > > /* Nonzero if the frame is currently displayed; we check > it to see if we should bother updating the frame's contents. > > On ttys and on Windows NT/9X, to avoid wasting effort updating > visible frames that are actually completely obscured by other > windows on the display, we bend the meaning of visible slightly: > if equal to 2, then the frame is obscured - we still consider > it to be "visible" as seen from lisp, but we don't bother > updating it. */ > unsigned visible : 2; I just described what factually happens: emacs -Q -nw C-x 5 b RET M-: (frame-visible-p (next-frame)) RET => t
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 11:05:09 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 06:05:09 2025 Received: from localhost ([127.0.0.1]:54882 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tc0Rx-0000oU-15 for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 06:05:09 -0500 Received: from mout.gmx.net ([212.227.15.15]:49187) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tc0Rr-0000jU-Jx for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 06:05:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1737889497; x=1738494297; i=rudalics@HIDDEN; bh=x2O48h/MY+ZZXhchrrJ7bUHKnE6a3hqIcabl1JxiCco=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=Np7aQf2aICg0oDaLtZuOgQh15h+9ldJGg47IoNmzlYhhm4AogXMVxLXPFL1kGcqU Emlcji2t60UKUswfpqNXFcOTRyfYiJbwoNV88cHwjZ7rB6fPza5HkGe9yMHs94sFI PFBpDE4FsemZny8DZCgiIJcSGDxErstUAYVjIfBUoSGAS3JLv/3Stc2cMB2iuUYNP aviWyA2PKxwP2wur4h6JUbPvNkm6RWuKkDTuz9LZ42UGlM3jy6Uho+4azGdENaHyg FcfwpX2OAgZwvQEIqWfxImOhKShHtz5kDUVQBE/1faYRIMKlRTuciQwZP0UGrmh6g snuE8WXb0V/RdbfzXg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([46.125.249.106]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MZTmO-1twQz10Vra-00NdZw; Sun, 26 Jan 2025 12:04:57 +0100 Message-ID: <9ea867ef-df0a-4ebb-b296-42f6b77fbd4e@HIDDEN> Date: Sun, 26 Jan 2025 12:04:56 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: Eli Zaretskii <eliz@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <86sep6rlec.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:RgBTwOQPgBOUIz2jyBhzT2P5Lc3MAg0/IqOZP7OxQPoHDzkA8eY aPUplIYO8rEG7c5Ggp17aPeMy92quOCGkeBOHlP75pm81Fau0XPpceuK/em3rqETkex4MfL JxV4peZrnyOhLvcAPdxPUOjpuWDyIXsYUndXJTkSkZMA/c1IeoB8UP/VMzYowqGz69kUzwK jvx+bid6vXF+zRAAoRXnA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:uGiEolRgwbw=;UO4eovTNqtEFAwYafkn1MOjWclx YKYgp5QX3kk+d8x7Gc5QxpOcQmJWgLxP9cG19uQHceVQbf/cJfiOdXYvhogYTlkyyrWJ9oD5T bhgAmduzfksqUn67LIoiNFjnbBKMR0FDHIOctm2vILGs6Rc6w4cBun14/MuWMz7d0qo3lSKOc X28V+GWBtjUJz39ZHX2WiqTIJS1siGSTx/mVZeG1Mw6dcmAaqs3AafAttBZ5ww13mv7M1ejGh ffE6Zmq68DWnSleK4C8HYwO3I9rdRGUK4HglEiJavezFtJR6PTwVEwHT71lI5T5TmxZ+zIAC9 OgqENj6ESsJTPDzUyfx62scD1RRnQCOkio9CoTJMQrS14IUECB4ccPu/kZ6QWLt5orLtn6unj yjdn7lIyVwcRrPt802ZkNQ2NRVyfISZMTDP0yeBeFNzau+DGW3csSHaQB1CDq416z0fMZbhH8 P8SDUGnYwOTHc+9imEajMjZ6Grnj0KVc9MNeumRv7F0ohZGP99nY/IngKQdL6Cu0UD+jntuKS TZx8u3tQwAJeb63ucnp4zM+0N02cW/BO+PCNIIxv1ufhAzGCBx28X3rA6K66xknSbFrZJckOi gMj/BZFxUblHiOpnQzJ1Z3i7/XCyJJP7blC4wevKq16S/O9zvt8a8YQ3WIZvlsgEMQ3B8YyZr l+lvYsJbxJxayIuvHl5Rx/6b8+r2V+pSEWPJWxHBpo0tljGhqlwLZHZLWUTV3GorMakquKzF5 CkrjGOY6V/lBZppURscLGUcF+nB5ey4TT93FDz152M39+fYbekMpJdPso2mAC6DtAt6nyI6HO 6lQQ7VQ1w6SXbYVSy4bHMOQcWdgdx+WdzjIsROdOAwKCfDW8BYRnpMmbc7fgxoYIiS6fqZ6cT KIObrWSaHfG/HDHtrwvqPhgS4Q9tTV24BElC3VopyUZDVjAiFpHL6CAYm1ps0xFhtDWjkmQXn O9KpEd5a80fqi06VPzpr2B13kWgM2qIY/Aj1U+9i5Ko4LDTwYAMZbcmFozMVB+wD8AL9MzGED 14pHFJ1Jlnwv6UEqS41v95mEHp+79lEqgmU9m6dTKbVrsnDrNDuSfGfvqkGkZsFACfGoBOR34 qApajWU89r/JIv21tA0Gs/EyTD7TZcWkbZROgif/o5/KepVrhyEji+mpNANDWD9Y++G0NhywB ZWXW7r7XeBJ4CJRhcrODQ4qNfbkh3H1FCV9wQDchOVw== X-Spam-Score: 2.8 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: >> I still wonder what happened to the "when one frame completely obscures >> another" visibility state issue. Has that vanished? > > No, we still ignore that on TTYs, for non-child frames. See my ot [...] Content analysis details: (2.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [46.125.249.106 listed in zen.spamhaus.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in sa-trusted.bondedsender.org] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.15.15 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.15.15 listed in wl.mailspike.net] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in bl.score.senderscore.com] -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: >> I still wonder what happened to the "when one frame completely obscures >> another" visibility state issue. Has that vanished? > > No, we still ignore that on TTYs, for non-child frames. See my ot [...] Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in sa-trusted.bondedsender.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.15.15 listed in wl.mailspike.net] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in bl.score.senderscore.com] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.15.15 listed in list.dnswl.org] 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [46.125.249.106 listed in zen.spamhaus.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager >> I still wonder what happened to the "when one frame completely obscures >> another" visibility state issue. Has that vanished? > > No, we still ignore that on TTYs, for non-child frames. See my other > message. Are you sure? frame.h now has /* Nonzero if the frame is currently displayed; we check it to see if we should bother updating the frame's contents. */ unsigned visible : 1; where it formerly had /* Nonzero if the frame is currently displayed; we check it to see if we should bother updating the frame's contents. On ttys and on Windows NT/9X, to avoid wasting effort updating visible frames that are actually completely obscured by other windows on the display, we bend the meaning of visible slightly: if equal to 2, then the frame is obscured - we still consider it to be "visible" as seen from lisp, but we don't bother updating it. */ unsigned visible : 2; martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 10:37:23 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 05:37:23 2025 Received: from localhost ([127.0.0.1]:54809 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tc015-0007nV-HN for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 05:37:23 -0500 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]:56528) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tc013-0007nH-B3 for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 05:37:22 -0500 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-4361b0ec57aso36937055e9.0 for <75056 <at> debbugs.gnu.org>; Sun, 26 Jan 2025 02:37:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737887835; x=1738492635; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=psLEMcGss5ni0aIscxP2EZuMz+i56OdWfCt52zs2ADk=; b=Aqhf04WnMkd9NR8JPHJ3b5b0SEjxZ8o4HAfSmhUpcp/IhSiA9vd7c4y4fCD6DxGw9k i8vXxGpqJqFezKPqu+AfBDz1dKpOz8/i3nmDvZUlb9sPLimOzqXQ6MSWN64VToO4wJMG ZhqSgfix2VbjBOzDskV15X59xhxOEfxN5KtpRwq7TIbuueEup4TZCfdFmaq0IT+kci2x 8rAa9tyX38GEGJcPUFB+7/5zFFrgmG6imeHy49+TSSXLakyI/3msdXkIZpFuMkYCGiuM upxMb/6HTpz1haPd+hGKXUps0aaZYTAjWHO9liBoEomaduyKtFqaueWBqiolYZT1HW46 C9LQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737887835; x=1738492635; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=psLEMcGss5ni0aIscxP2EZuMz+i56OdWfCt52zs2ADk=; b=mX2Bsk9SqBxslyZp+Kgh/1qHhIBOfG6Gv9Sr8PXdQ7Vejd/itcvZbzKjI1a28RWO+m UfCvSrorpEogcD7kAFm0XHr4TFfJs2RHtRn3GyqVgQXIrfk3Q8y/rr+5y8T6y9gZOJXm iur5+PaIMNd+mbA4O44/b1gSe2D20qLYe5Jhe9TMZJIA9py2Y5V8Js+CYQ0Hl7dFEyo1 OJ4V8W0MMRm/g0WSMvqMbyPMgwyiuTEqrxUCklAAVxjlcP9Yfi+IyGCexPMWbgdoxOho GhC848c1DIiIoO0SWFw29hzRMZ2PGVnQkraJrtSJgyv7bvIxLISrn7T0F8Ow/sdXyepX rTog== X-Forwarded-Encrypted: i=1; AJvYcCU4NYoOczPJtVEO997whxFET4EFmo224kP/VJGMVQYVa1kEx7Pr4PL98BIHuOM18N7dJZq4xw==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yw7uz6+XCo3Eh+EJNbzoKp/OOST0NtFHqmiRrBMiMSz0sWWBv/1 iMYFNtWIxc/8eRZPYpgfX529YkyUpTX14s1zUqslbwcyOezL1cRCMNNSrQ== X-Gm-Gg: ASbGnctWLCimJMWJvX2l+xR/Qmx0J8ynVYaYLXDfULa32G8SJ9Zwf75BRAPOdSA+8uK +6ksYpEITKbvTbHdu5z6La9gdAwpQaFTsMMhzxwA/C4W2vq5BBfO/JpqNfqANI/Ovr4S4rxJyJT x0baQXd9MtsU9blAxkw6/c62tBhrjQqqILsnY9t6dd7g6yL5JTdKwczql+RLi/bqggv2acHHBcg b3/SE/Qdd8eIFgZ4qR/m4Z5ip/q9jWCJT0RXkObpT2nWu4m4LsuVxwmFWebjRHnHu25gxK8QVDF fjj1n52jMPMNhyeMcNaG1+lvqGV2X6/chIqUItYYZBD4Nv691napWgjUPvXHiEycluKhNTM4KHx wGQrf3Xw68KAfqQ== X-Google-Smtp-Source: AGHT+IEz8eGz8stigBTW7//ELPLBCxwWY3/MmcCBMJ2zIEKRdof4OWIPfroOmDWcvAY9MfncIyXrgw== X-Received: by 2002:a05:600c:468e:b0:436:5165:f1ec with SMTP id 5b1f17b1804b1-4389143145bmr356649415e9.30.1737887834464; Sun, 26 Jan 2025 02:37:14 -0800 (PST) Received: from pro2 (p200300e0b73e84005db9294b38aae576.dip0.t-ipconnect.de. [2003:e0:b73e:8400:5db9:294b:38aa:e576]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438b1cc8571sm109760405e9.1.2025.01.26.02.37.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Jan 2025 02:37:14 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <86jzahsx0f.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 26 Jan 2025 12:13:52 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <CAOGVwe=coO-8NxNV141G2hMgv4k9v--XoDFrw=5EA+sY6e-X2w@HIDDEN> <m2msfe18hp.fsf@HIDDEN> <867c6it4fa.fsf@HIDDEN> <m2sep6qaix.fsf@HIDDEN> <861pwqt2nt.fsf@HIDDEN> <86wmeirlty.fsf@HIDDEN> <m2v7u1q5f2.fsf@HIDDEN> <86jzahsx0f.fsf@HIDDEN> Date: Sun, 26 Jan 2025 11:37:13 +0100 Message-ID: <m2r04pq2sm.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> Can you please submit a bug for this? I'm forgetting things. > > Done (two bug reports about two problems, not sure they are the same > problem). Thanks! >> Not sure, but I think this could be explained by frame-visible-p of >> other non-top root frames returning t. > > I meant only the incorrect cursor position. That's the second bug I > submitted. Okay, thanks!
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 10:14:09 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 05:14:09 2025 Received: from localhost ([127.0.0.1]:54758 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbzeb-0006ae-71 for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 05:14:09 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39166) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tbzeZ-0006aG-5m for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 05:14:07 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tbzeT-0000jo-9z; Sun, 26 Jan 2025 05:14:01 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=8novJSKhLZKHy2yEn/GhpD6EkQdWP7obOCtx3ZcAF4s=; b=adDulza+NdafClCoYc18 AnEZdwomzHfyEjhUfiWLn2NtfOWAkKWneCLpEJb3H0EaGJGGZStT1T+nbKveXmcD4WxB9+Y+8nAlK x4SK5CUPY2clg7E3qoEsofwfip/49/Xa9gFnAeGYtZYV9esuokP5KTlYfbujQT7W7NC85nM4AQVYj yJ6Ll8/H10dGRx0CTPRH7zZRq49dsHZzXqG8Z7REvVbuJVVBDzk+tFFMBitSoWjnoznDtAt0VwSSD q/3Kt1Ww/HiuvpSVz2uml4HT/hnrwnPlZ/09ftDipb0qMEDhMC62Q/o9suwbJKZvPdpJoCb7F6vC2 IXrqLGboaeVmNw==; Date: Sun, 26 Jan 2025 12:13:52 +0200 Message-Id: <86jzahsx0f.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?iso-8859-1?Q?M=F6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2v7u1q5f2.fsf@HIDDEN> (message from Gerd =?iso-8859-1?Q?M=F6llmann?= on Sun, 26 Jan 2025 10:40:33 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <CAOGVwe=coO-8NxNV141G2hMgv4k9v--XoDFrw=5EA+sY6e-X2w@HIDDEN> <m2msfe18hp.fsf@HIDDEN> <867c6it4fa.fsf@HIDDEN> <m2sep6qaix.fsf@HIDDEN> <861pwqt2nt.fsf@HIDDEN> <86wmeirlty.fsf@HIDDEN> <m2v7u1q5f2.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > Date: Sun, 26 Jan 2025 10:40:33 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > Btw, when I do that on the current master branch, I see some > > unexplained cursor movements. Recipe: > > > > $ emacs -Q -nw > > M-x server-start RET > > > > Now on another TTY display: > > > > $ ./lib/src/emacsclient -t ./src/dispnew.c > > > > Now observe how the cursor on the first display (where we started > > "emacs -Q -nw") is positioned at the left edge of the mode line, > > instead of keeping its previous position. > > > > Now switch back to the fist TTY display and press some key. The > > cursor is moved to its correct position, but now the cursor on the > > second TTY display is a the beginning of the mini-window! > > > > Now switch to the second TTY display and press down-arrow: the cursor > > on that display is now correct, but the cursor on the first display is > > now at the beginning of the mini-window. > > Can you please submit a bug for this? I'm forgetting things. Done (two bug reports about two problems, not sure they are the same problem). > > Here's another problem with cursor movement, which doesn't involve > > multy-tty at all: > > > > $ emacs -Q -nw > > C-x 5 b RET > > M-: (frame-visible-p (next-frame)) > > > > After typing the last line above into the minibuffer, don't press RET. > > Instead, move the cursor left one character with C-b and type "C-x > > C-e". This should evaluate the (next-frame) part and show the result > > in the echo-area. But note that, while showing the result of the > > evaluation, the cursor is not at the end of the value returned by > > next-frame, but several places to the right, after some empty space. > > This doesn't happen in Emacs 30. > > Not sure, but I think this could be explained by frame-visible-p of > other non-top root frames returning t. I meant only the incorrect cursor position. That's the second bug I submitted.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 10:06:35 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 05:06:35 2025 Received: from localhost ([127.0.0.1]:54720 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbzXH-0006E9-IS for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 05:06:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:60132) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tbzXF-0006Dr-1B for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 05:06:33 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tbzX9-0000F1-7j; Sun, 26 Jan 2025 05:06:27 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=XvsNp0crZYvhvNgnHBHMIQObslCKSmgWFevA8hwnfgA=; b=o4yMbxF7gyOu S/OD++OhhSh7Lz9W/zMdVQ4lqPn31NbGAqqaHb0fSw1SMc3lA/tSQgml3Q4W4Cr9BUiCyOc/QuuxG zdd8uz50TBa+pF7sDksMYcJBGisKY2D12Hxv9K6VLkr7kY9QCol4JBZDofu9WRnBE4Wyj9/7t1cSd Xn4awAdjZQOVHeFWo5tiHGPNankZvwY0oD391Fd/tiluSkG/lCVwLtKonH4m4DR4afwP5g9fN3kgi Zz8aVrdcjDzgpyKq0FxnONB1wyt4bvMsrMzQkMYPhIACa+Xb3yreOUagvBvAgTygSLPV1M7miOfbo 2f7VldGuUhCcqQVOTn2ajg==; Date: Sun, 26 Jan 2025 12:06:20 +0200 Message-Id: <86o6ztsxcz.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: martin rudalics <rudalics@HIDDEN> In-Reply-To: <8b45999e-744c-4ee7-8734-755e884a58e8@HIDDEN> (message from martin rudalics on Sun, 26 Jan 2025 10:38:44 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> <8b45999e-744c-4ee7-8734-755e884a58e8@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Date: Sun, 26 Jan 2025 10:38:44 +0100 > Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > From: martin rudalics <rudalics@HIDDEN> > > >> What is the "top root frame"? Have we defined it somewhere? > > > > See tty-top-frame. > > So it has nothing to do with "root" frames. BTW this apparently changed > now. If in the currently visible frame I do > > (tty-top-frame) -> F1 > (make-frame) -> F2 > (tty-top-frame) -> F1 > (previous-frame) -> F2 > (raise-frame (previous-frame)) -> F2 > (tty-top-frame) -> F1 > > What I see is F2. Sounds like a bug. Works as expected in Emacs 30.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 09:40:43 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 04:40:43 2025 Received: from localhost ([127.0.0.1]:54664 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbz8F-0004tp-4I for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:40:43 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]:45474) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbz8D-0004tW-4G for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:40:41 -0500 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-4361c705434so24144445e9.3 for <75056 <at> debbugs.gnu.org>; Sun, 26 Jan 2025 01:40:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737884434; x=1738489234; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=vp6nlEYe+ra01mQSrcTrz6J+y7k8B3NEHw5IkyCK1Ak=; b=fHDV1zoAuvrKZbtrqrvNWSzbjKLGM4VKCtReTEizFMrCzeMl3qb9OWLSuMIycaxOd1 +q6FWild8AfSeksxd+/q0NF7SCV5YgI1XPjIRuxxAhsURz2lvZjH2kaofbpYIHW8eqbT Z3/cn1Fkmt4ItAg8/KkojwLGoBl4l+HnKM91l74hI7IPDAIa+GYRenzxEFUvT7MThM8+ /HPsvkYLle6Dm3YvFrKNODRiGdrB5LzYuRVICHVV2YGJvmX6r1rQ9tdoU3ZAhip8QEgo tvRFbgOkQaRG+PTvPzBK8VXxcD52F2u5gTuk9HwfM1Z8ZjncllerJoticmyTPCuwKC8S r3IA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737884434; x=1738489234; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=vp6nlEYe+ra01mQSrcTrz6J+y7k8B3NEHw5IkyCK1Ak=; b=elb1TAqXfwdZ5kEezD+FiFkEmY9e53nY5cXgTCx5t5UrESE8QDsoUN7L86BscCv+Ig g1ytmUIuCjEoUEDHv60dLni6FjUhdXoNJptNuPN383bIK8oSalwSIjT6XrAv/dHTYvxE h/m2dSMsYO3xLZTwYxAXRQDfFpN+7eHZmNB+JtB8s+nP4NCjJfGOO5UCZbeqk2N4Lowz t4sUR2v6ciy0PUUV+95jgDM48Tj3NSQuo5urLFwMZhCuYn4lSpSWkSjAN3cEsGCvBAPx DMABpGzhjYnjcJURm7ANj7W6Jt4cI/VOx9QAnL8YSK5bNfG2shWrHZhlDRcQIH9p5ymZ d8sw== X-Forwarded-Encrypted: i=1; AJvYcCX4hotoD2LPbc73Xz8A/opdij5nRJ1s3sIvCFH+kUy2gQroMR8tcIwZ3JxJD0AXo3GL5xIDDQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyqiT+/3HV51p6lB9XIUqhUi5HIZHNY+h6IurTr754JyO/pYAyR Fa44YnTe17KHvTc8ujUwi2677si5OreAUeAu6SIwBiEcEEk2D0jxz+fvxw== X-Gm-Gg: ASbGncuaWpYCZADx9ENtNhy6R7oOeJfvt8nL3ZtzIb8iIg2pb7f4H8LZfcaksqN0Zw7 3BXLgH9ryG+0ETXU5OaJWVhbad+a96LljV+y7hyMLPwYpWcgfgt3G2YY2S2dwfpFEWtWcK/koBP R71rgnsdgBHYs9SFwQrV8KenMeCqo+6iKITL1LF6D+iFHq1Oj9tbX/Wg/ETGqto7AGuwJK1KJKV qnCX99dDc2u2HQPh9m6v7jVFsChpSOHGSaUqcTey3AkptqWymKBGNwoUGyA9jPKC7zCSfhcJX3M PyZjcFe1GZ30HNY9oTkwx7qaB9RmCbtkC9K/OeLZBrfC+NS3UHPFajdCpag7u70bTk5EQme3nSE b8DcIYveWIaz+cg== X-Google-Smtp-Source: AGHT+IE9/MYQD5/GAY1MmDU2FGL/GO0U7+l9kBXNNBnS76t+/aY8tjkP1vWM5awiJB4OKmMj1/3h/Q== X-Received: by 2002:a5d:6d07:0:b0:38c:3fab:3df5 with SMTP id ffacd0b85a97d-38c3fab4161mr669269f8f.46.1737884434444; Sun, 26 Jan 2025 01:40:34 -0800 (PST) Received: from pro2 (p200300e0b73e84005db9294b38aae576.dip0.t-ipconnect.de. [2003:e0:b73e:8400:5db9:294b:38aa:e576]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c2a1c402esm7781884f8f.97.2025.01.26.01.40.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Jan 2025 01:40:34 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <86wmeirlty.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 26 Jan 2025 11:00:41 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <CAOGVwe=coO-8NxNV141G2hMgv4k9v--XoDFrw=5EA+sY6e-X2w@HIDDEN> <m2msfe18hp.fsf@HIDDEN> <867c6it4fa.fsf@HIDDEN> <m2sep6qaix.fsf@HIDDEN> <861pwqt2nt.fsf@HIDDEN> <86wmeirlty.fsf@HIDDEN> Date: Sun, 26 Jan 2025 10:40:33 +0100 Message-ID: <m2v7u1q5f2.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: > Btw, when I do that on the current master branch, I see some > unexplained cursor movements. Recipe: > > $ emacs -Q -nw > M-x server-start RET > > Now on another TTY display: > > $ ./lib/src/emacsclient -t ./src/dispnew.c > > Now observe how the cursor on the first display (where we started > "emacs -Q -nw") is positioned at the left edge of the mode line, > instead of keeping its previous position. > > Now switch back to the fist TTY display and press some key. The > cursor is moved to its correct position, but now the cursor on the > second TTY display is a the beginning of the mini-window! > > Now switch to the second TTY display and press down-arrow: the cursor > on that display is now correct, but the cursor on the first display is > now at the beginning of the mini-window. Can you please submit a bug for this? I'm forgetting things. > Here's another problem with cursor movement, which doesn't involve > multy-tty at all: > > $ emacs -Q -nw > C-x 5 b RET > M-: (frame-visible-p (next-frame)) > > After typing the last line above into the minibuffer, don't press RET. > Instead, move the cursor left one character with C-b and type "C-x > C-e". This should evaluate the (next-frame) part and show the result > in the echo-area. But note that, while showing the result of the > evaluation, the cursor is not at the end of the value returned by > next-frame, but several places to the right, after some empty space. > This doesn't happen in Emacs 30. Not sure, but I think this could be explained by frame-visible-p of other non-top root frames returning t.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 09:39:00 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 04:39:00 2025 Received: from localhost ([127.0.0.1]:54653 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbz6a-0004jo-Hr for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:39:00 -0500 Received: from mout.gmx.net ([212.227.15.15]:35213) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tbz6X-0004jU-9F for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:38:58 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1737884326; x=1738489126; i=rudalics@HIDDEN; bh=fl26W5MQqE5HjJ/sHrBU2sgFMHHBOTWgf7lzesEjY84=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=BG8dP9hVgyMytdHzwI8CioQjx8rVLbHqPoEmUgkvNclGNQLothKzsrBDPBf0bcMn lVKRA1g5JeXed0A33RO5CQI6I1XSUhWZb5VUFnlZKIJME9hzwj+sgKrBu5dA8lRSy eM2ouz0ZeJ12Svbt/HfGRZncMCwBKMyopk8EHzsN0YYvAApVH/b0tcDxeHpdIZa6i A4JpttQcSyheeBs6VC3dzQEEz7e1WLcKOu0hSiVPaesPCqPnC2C2MlENeKLWjElCW R1CTUcFYpsFFVBpiUpfwAUFhcM252QgftFuUDKKJW7wcN7+9OMNAxrL8BVz+vGQjm djlM0SMAT/ru+eneyA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.97.103]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MfYPi-1t0kXu1dvs-00kziQ; Sun, 26 Jan 2025 10:38:46 +0100 Message-ID: <8b45999e-744c-4ee7-8734-755e884a58e8@HIDDEN> Date: Sun, 26 Jan 2025 10:38:44 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: Eli Zaretskii <eliz@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> <86sep6rlec.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <86sep6rlec.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:ieAql8hC6PxYO9KwlVm9dOVzQgu3MqblUUmUUolMWFptKZSGG1r O6HwKAd//yJncRxoQYZ1QplZvNxNDRayrC/yCBqelUWxXsHt4bdnR2rjARAzYFZX11qVUNh qpQYRdhUUepJAV2t3Y8poNw/J4Xo7gBR2LsI8d4CAhNOk1x1LnPseJAT4fmoR2KnD34yteq bo5sKx2qJBD1RSHp+ITuA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:UhyHzRzkwKA=;5XMuSPdkgohZU5US+rqmbEfT+Da eQ+cDztHD3aKc/TjpzT0ktizSLiHSpaBtVu3g85XBRDinc6uP2HXNDsn6tJYbVNwetKY2rHHW VmthGJBvEJsBzhauKVxCNjjIWOe8Q2orenJBh6pwmnPNxUvMXQEThoKLo9VGNkjzA5KZC16hg PFaY1hzsPdEldxuYYRmehfYRn6VHhzps4sECMbECTZJDNtPONRgY0MiiuPECHXK3lwApFolZf AFiucXqrcXnn/uvkufp1/OtGcsTxN31FfHcFJBg7hRv6WSvSuUk9gVVbgR9s8Yz3dS9nwRAm1 ms2bKZEbLBXEnrDR70zkmcn7LdXf/jiu06iwoeozYT7xVU2jgnse5Wd8IthUFS2up23vubvnn tjsQKD5TG0JN0cbfjzvFuO8uMLWDBDSMyZFqiAaa+vrhGNeDOiykeBfNkY1dILidWxtT6X3k6 ui2R+UINCcGRL8zEKUEx39x35CbhNW7UFav1y1BYAbUpv+byNMxIZ0YQD6dBkkJzTgAnx5wVB ApGWhzJqRKfl0UkdTQCHvKjDlFtubheHk6FBkGU/2df4Jvr75pm47NNw3MLTnPHZkcUh+LLnr MFG+vfc57l2eaCRidpKbaS2BbNSFovIhOAqLyqgcSGm//6zmJQn27+4DcyRYDF8k2Oul13c9l MlEZO0fr8nRjjXReTxYBjEPNYeWObyiCejZNYwF2lly0DL5MS/gH3GF75VWuJ85sU/qhgYDas bKmFmhEt2UMTzmlOLAU2vuZWW72tek9JIKHa+0RVgqAdq8AwvyJp3mM5dW3oIa/Uiz0qBj7dX k6StRKqbPHA2PU3cgHBQS61k2HyecTj9SoSlPK4h5OwvcdTHfVYCniQGJmbCTD1gk4iMMOOaz Gu9zvY2qIkADInj8IhdsOHvyEe8dsmcwicu1Oiwgzyp3orOosUH1WWX5/ij6Zdqjmkq2i74y4 1XGIVFvJZU9ifW2mhmnTB9aWjP7cYuerYoyEyBH6tsL/bT93tjqA/bcaSps+1OgHe4gLt+sfk 3Yl2DNhqXhtfbNhpT10V0r0TS/mT7TUf+PzlkRKkvRIEZDm787nvwaaYfYR2MH+oXlEYzlNRk w0gaYNyuDF3JfiSO4DDqPYz1DnY4yl3jzxBXuVExd8eBsrN890B3+rp14RBuEsCdiotmYOPW9 YBH+hnBCdXutYvM/RK5fq8pG/kFbO5ea4ugEQCRrZTA== X-Spam-Score: 2.8 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: >> >> Martin mentioned in passing that he thinks iconifying frames on ttys >> >> should perhaps do something. So it's maybe a "not yet". >> > >> > What could that "something" possibly be? Martin? >> [...] Content analysis details: (2.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [213.142.97.103 listed in zen.spamhaus.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in sa-accredit.habeas.com] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.15.15 listed in wl.mailspike.net] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.15.15 listed in list.dnswl.org] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in bl.score.senderscore.com] -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: >> >> Martin mentioned in passing that he thinks iconifying frames on ttys >> >> should perhaps do something. So it's maybe a "not yet". >> > >> > What could that "something" possibly be? Martin? >> [...] Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in sa-trusted.bondedsender.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.15.15 listed in wl.mailspike.net] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in bl.score.senderscore.com] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.15.15 listed in list.dnswl.org] 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [213.142.97.103 listed in zen.spamhaus.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager >> >> Martin mentioned in passing that he thinks iconifying frames on ttys >> >> should perhaps do something. So it's maybe a "not yet". >> > >> > What could that "something" possibly be? Martin? >> >> See the option 'iconify-child-frame'. We have to explain its semantics >> for tty child frames: The two obvious choices are to either do nothing >> or make the child frame invisible. > > OK, but then this is only relevant to child frames on a TTY. Yes. >> What is the "top root frame"? Have we defined it somewhere? > > See tty-top-frame. So it has nothing to do with "root" frames. BTW this apparently changed now. If in the currently visible frame I do (tty-top-frame) -> F1 (make-frame) -> F2 (tty-top-frame) -> F1 (previous-frame) -> F2 (raise-frame (previous-frame)) -> F2 (tty-top-frame) -> F1 What I see is F2. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 09:24:43 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 04:24:43 2025 Received: from localhost ([127.0.0.1]:54494 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbysk-0003oM-Uf for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:24:43 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:44262) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbysi-0003nk-2A for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:24:41 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-436345cc17bso24259805e9.0 for <75056 <at> debbugs.gnu.org>; Sun, 26 Jan 2025 01:24:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737883473; x=1738488273; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yswVkxm4zouQYQnMD5bJ3oJIeYpvIFMHQZtrHDC/G9w=; b=e0ysbKptxL19Gz5o+wmf0dgga+HycVelfKgkRijKgiNVt/Givt4FVWmRsPJEZ4lxLS 7sOnudQS63Iyx9gVt6jPnuXWRH0/+D1yZJ1TDQA+42msHBm/dRbslYiVQw7g4JuUGsHA eEBcQaViTeNhiJ/Rb/V5aDcPpaE8xTn4yGS2/Z32kFgd7ymYleVZu8xFAUSiFgXK1UV7 K1DdwxXkv2NMGuRpdkfyOBr/8BsFyoyNZWAMp0wyGvjgqGThJJIdx5WF1gcISLt3kD8W jvgGBCknLb1FxggWDC802MGtrvssnQxeje2wpPNTW3BQtauifKH/o6HwFJuvh62Bs6qA Y44Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737883473; x=1738488273; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=yswVkxm4zouQYQnMD5bJ3oJIeYpvIFMHQZtrHDC/G9w=; b=LAhRqkPsjHI70qhZN3cixoZORK3v64QuFpfyJpkJMVMZiiaPaa8QnwKxd0RA4XKyKB brdgJdSsLi25xZ2KpojzcH/oqjRfpF9cEk/0TFW88KaoGl14tjLy3yxmxm9uYZOzpt/T va1mi84k8uHGJqqZnPuERYFys2Rj/M9Vgv1+kpYXgNV+hrhS/o92mR73Sd/NqytOAQMs VSDfLGBMYuJ1tM744Yejl3IjAMKvP9DMTlI1dvAZZO0y/uhn/7eIIWu5412UgFgS978D UFtCKbMXSPEdB+c06Y7U/iXBKSJom8f7VVmidomByP99rf9jXqmm7RiLxZQokGTanP+h IG0A== X-Forwarded-Encrypted: i=1; AJvYcCVJW1accG73bVkxLQi6EHsXEL7bkFFxD+fQtE73F6asROf0aQwXVOqMwfCk/7J45vLYXrSK+w==@debbugs.gnu.org X-Gm-Message-State: AOJu0YywNw88dx5WcguYlmXF3rtYsm8Hh+cU7UBZLAbz67V4Qyasxi0t AGCDHhNr6wsDF1rHoUSQANxsFLpOk3pDnz5g2SI6NdpkCtFri1OPgCXOTw== X-Gm-Gg: ASbGncuDOYALHSHs2LTK8o25GBYc/9vE8vlM5fO5Ezd9QDqeaADCP8HyDZ1839Zs9SZ xR7x+tEB4uCtQqYssleyPvmjRxo/2cenqMV9of6Bq+xOEAgvjf5FTfPY5I8IN/i6QudJs54+VmY 6txyknMksniPj6hvTz5OjZpSgxNhdy5Q++hdD9jDPgp3neLNJ4i0xYJl+M5xyM3596qQZD2l7ZH LvoyYeK2gkKj9tay1vnU0H8Fhm2+9WQYrYng5JSlgO47q/8VZIblIFoCA5tgtpjisZGtk/J06wj tM5q7m8boOzO26YG4iyRrgXrduG8Ps1di7L+5SYacRZ8Brc++wdWyT6ielkPvvZr7yNf/C7cdn6 8kY71YQYDNUggAw== X-Google-Smtp-Source: AGHT+IG50wNtqFwoFizBKIE1K2UjxXsnXYYmH2sgOtknGfQX7u0WO6+k5COb0HBF5H7RV6S/IghuHQ== X-Received: by 2002:a05:600c:5486:b0:434:f1e9:afae with SMTP id 5b1f17b1804b1-438913bfa0fmr303225975e9.1.1737883473185; Sun, 26 Jan 2025 01:24:33 -0800 (PST) Received: from pro2 (p200300e0b73e84005db9294b38aae576.dip0.t-ipconnect.de. [2003:e0:b73e:8400:5db9:294b:38aa:e576]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438bd575468sm87408495e9.39.2025.01.26.01.24.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Jan 2025 01:24:32 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <86plkarl9d.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 26 Jan 2025 11:13:02 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <m2o6zuq9i6.fsf@HIDDEN> <86zfjernal.fsf@HIDDEN> <m2frl6q7hn.fsf@HIDDEN> <86plkarl9d.fsf@HIDDEN> Date: Sun, 26 Jan 2025 10:24:31 +0100 Message-ID: <m2zfjeorlc.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 75056 Cc: rudalics@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> >> Cc: rudalics@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org >> Date: Sun, 26 Jan 2025 09:55:48 +0100 >>=20 >> Eli Zaretskii <eliz@HIDDEN> writes: >>=20 >> >> (Where "top" in that case is not a z-order thing, but all root frames= on >> >> a tty are just part of the frame lists in parallel to each other, like >> >> before child frames. AFAIR, something in tty_display_info >> >> says who owns the terminal.) >> > >> > So it is still true that a frame other than the top frame returns t >> > from frame-visible-p, right? Here's the recipe: >> > >> > emacs -Q -nw >> > C-x 5 b RET >> > M-: (frame-visible-p (next-frame)) RET >> > =3D> t >> > >> > This is different from GUI frames, in that z-order is not considered >> > on TTYs. >>=20 >> That looks like a bug to me. I think it should return nil. (Although I'm >> never 100% sure with the frame code.) Opinions? > > It's the way Emacs behaved until now with TTY frames. We can decide > we want to change that in Emacs 31, of course, but then we need to > update the documentation accordingly. E.g., see "Raising and > Lowering" in the ELisp manual, and the functions mentioned there. I'd vote for changing this. I find things easier to understand when there are as few as possible exceptions. BTW, what does (frame-visible-p F) say, when F is a frame on another terminal? Out of interest. I would find it natural if that returned t if F is the top frame of that terminal, and nil if not.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 09:19:15 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 04:19:15 2025 Received: from localhost ([127.0.0.1]:54462 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbynT-0003Nj-2y for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:19:15 -0500 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]:46501) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbynR-0003NT-Gb for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:19:14 -0500 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-438a3216fc2so35632865e9.1 for <75056 <at> debbugs.gnu.org>; Sun, 26 Jan 2025 01:19:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737883147; x=1738487947; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=ls0I8JzQN20RhULaxV43+Hw3+E/zEb2LYEOPmtGdTEc=; b=h+kH7quXL9DSQMW8XnRolWKijfEfxB3K2DAvlBFrvEWqEWBQbmwCV65EbBJNQDDD5C /ZnUuuWghpZLDStyD+EtTD9gV7T5M0dwulClgEobe0flVHp0DcVlZSjS9mwcdtex5Kk0 yZ0nuncaRC1KfBKCmd0ObQFsnK5yrKGY03bcHraD9ITneDZqIR54VLPkIceixw6WuHw0 VYn0m1pogWaHEJ0OrdAnyZH0+HC0Ml5VdGO/zcOrKIXo4Mc7ENAMAf9P8iOCEhjEU9ki A8ll+NFI5ToZs8/EpS+iigf5YRW9/cI998403Gg0WTjnkFEIRCuhm+H5kSGKAVBeFTnr terg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737883147; x=1738487947; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ls0I8JzQN20RhULaxV43+Hw3+E/zEb2LYEOPmtGdTEc=; b=NHXf5kgPyEWCMFcaIf/vceBEdnmjp+hJFwERAtw3i0hMiE4wfiI3iAoPXfOCkI8Ztv jTAW0T0pS3w4+V6ovHO0FF0gmrM/p83WTyfClHlg6FRc8T4JRKL7Hz/x4if6ajQx6KvY QgvZ/SguuGQxREdwaIALkeftMyTJ2MHLYDDTrrJ5pK19+WyeurEJeVORD9VFnrQWNTV+ cmDGlsh8LVZ+z5jqpjfL2Dw4UH/IWCvHq/liAAWE/nyaE2UE3XyXVSo97UkaF8kkL22a D0StLD9M4Wjvccvaa1ZODatFKkhZIHtoHgdFPkpriZ07VLqkLthdXLW3v66qzJbOAhNJ 4CLQ== X-Forwarded-Encrypted: i=1; AJvYcCUaJ1u5OmNikbFCEKtK7oIU8eZASj97FI/D6Cw0Ohph/njMDzk2yAc2xKq3WurnCK8TjGbTOw==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz90ibG7SSNAHuneFWYeUzoNAEO3Vh6ufxuNt3dhgcRsSv22+eY oAPn96L+FE71OaG4NQM+z34rDI5x/00zXVpLU50IcshhK+ELsSOBI6uYBw== X-Gm-Gg: ASbGncuwcfKM68v1IucpTJsHn4YqpbeqGtu2tBXSsyxb+OgCBBlsX7gVi1Ex1FaGE5A W6NvIbYXCIZkyUkb5U4eMt2dbnG871zYWBfmHljdINRjEQ2QAjYOdzPiCD0WV/hlqm7iRrWZ8vj Ab9360Rcnp4KDWdljDbGnKOv81lQzuXzryRlqVm2Q3OWpJsBQgncqv03VuBKoTOAdkCYYjjr3fO Q2O50unNusJOq5uDlbPLJtaEPMgk5QAwrcqqsJU6hLe6P/DQoUMkSlhGucXfL2Ku9+qIpKie/Iu XO8fM2Jgi7t3RThwhSKb7kjt4wQkIrZScGdESO61+/GN58g4Jz94jPOIQLpvCd8FNAGVaAx2XQq tz7mrvDylU7blxQ== X-Google-Smtp-Source: AGHT+IFsd9XtWe7TcTfxNKEpi4+Rw1QttHDznhQrjyfAcgM6fB5Me16qFfGMemzcg6Jj6qL/1wHXJQ== X-Received: by 2002:a05:600c:350b:b0:431:58cd:b259 with SMTP id 5b1f17b1804b1-438914671fdmr377139405e9.31.1737883146742; Sun, 26 Jan 2025 01:19:06 -0800 (PST) Received: from pro2 (p200300e0b73e84005db9294b38aae576.dip0.t-ipconnect.de. [2003:e0:b73e:8400:5db9:294b:38aa:e576]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438b1cc8151sm103176095e9.1.2025.01.26.01.19.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Jan 2025 01:19:06 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <eefd1bb1-3670-428b-ae6f-adb374299c29@HIDDEN> (martin rudalics's message of "Sun, 26 Jan 2025 10:13:37 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <m2o6zuq9i6.fsf@HIDDEN> <86zfjernal.fsf@HIDDEN> <m2frl6q7hn.fsf@HIDDEN> <eefd1bb1-3670-428b-ae6f-adb374299c29@HIDDEN> Date: Sun, 26 Jan 2025 10:19:05 +0100 Message-ID: <m24j1mq6eu.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: >>> So it is still true that a frame other than the top frame returns t >>> from frame-visible-p, right? Here's the recipe: >>> >>> emacs -Q -nw >>> C-x 5 b RET >>> M-: (frame-visible-p (next-frame)) RET >>> => t >>> >>> This is different from GUI frames, in that z-order is not considered >>> on TTYs. >> >> That looks like a bug to me. I think it should return nil. (Although I'm >> never 100% sure with the frame code.) Opinions? > > The doc-string of 'make-frame-invisible' says that > > This function has no effect on text terminal frames. Such frames are > always considered visible, whether or not they are currently being > displayed in the terminal. > > martin Should we make a bug for that so that is doesn't get forgotten? Probably also a lot of other doc strings need fixing. make-frame-visible is also not right. And another one I changed recently.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 09:13:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 04:13:48 2025 Received: from localhost ([127.0.0.1]:54418 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbyiB-00032h-NX for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:13:47 -0500 Received: from mout.gmx.net ([212.227.15.15]:39807) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tbyi8-00032M-Vu for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:13:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1737882818; x=1738487618; i=rudalics@HIDDEN; bh=dWaiIB/zd9N+iPh+mniYvFS7Pa2wnF4zQZVMin7K5aI=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=BHl1W8+Xd5zKCEb7LZcUyqymhE2djN8ICVbsQudggkyo57TyNih2MqhHJE7/snGI j+CE3YkNQdKLovp4KmuEBYilwgY0Sb1b5K+wTcU73xFPotqCCC0TvXlQSjPcMOhd8 BT1lExFsJ2AsY+0drsYcBpHD6NBdLHQ1aE21wN4xLBn+A+B2zwumsRiaJMAAI2/8t 6u4vfim8kexAXWU0u9hOHXdi3zp9dtOw1AYFxEI8XUWfaKpI8lCoSfRT6dejLxPTz Pxcs3X2mzVhU/PlGRB+ODSRjK3FhDPKd2+RSdPfCECeJ+kfnW3k3tTKsnEqkh9snP BJfyLgkaY5b8BrsmZQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.97.103]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MAwbz-1tmf1v0cMz-002vhV; Sun, 26 Jan 2025 10:13:38 +0100 Message-ID: <eefd1bb1-3670-428b-ae6f-adb374299c29@HIDDEN> Date: Sun, 26 Jan 2025 10:13:37 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>, Eli Zaretskii <eliz@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <m2o6zuq9i6.fsf@HIDDEN> <86zfjernal.fsf@HIDDEN> <m2frl6q7hn.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2frl6q7hn.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:ZkHYBkdr/tCRztuowZYlLcNbVubiMcs/ne7r5vwW6G+zbOACpST a8kOUnGyhK0mp3aJPSqWxL8WNrQ48BCDce7uFH/LnzhxEL2ZmCCFKLuOH2o7gDwb2KQioId /E6uWAtvyo/iDwcRnc0ciD0XfZiNSMhIKyxoSqBrupGqX8tPLBZSmiOPpEOM0Hsw3Oi34V0 1cKDEyl4dAQqjg+CuTIBA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:VAQcR1wAWA4=;43vqKSvNAz9Ul0Y1edTC43GZT5z dJQMplO0jvVTeGVv7p4dNM8DlH+lVG5t4+IuSbGK8lOTwNEz54CrwJr+wS5XTkcKkTRHkj/Lj kJ/M9sX+J8MSAUzSywWnfM4N07Nru3xfao1be6WFsC7Ym3Y2Ozf093RMPdOm6wbrSP+2M5lzQ TJS30J++hXcfwHAW+FbZWfHUIDje09j3Ix5A94BGyRvKNkD/PiObnlElxqGZ5mTfUdlXba2II 4+EYErhCBBqL4xKZgpzVXTGcSoM+3f1TpTL1cdhuEel6HYmLt39KRBc22gT+i98ie2ylcqudB 1pasLu5O47Kqf+IapKkjfTWkKnzouGgL10YIYAmNC/uWM+XNIxs2Sbb6F502hliucKFlM7z4u upcnO8FlebKEuGZR46Vd55EhfjYLPHayKjqSiLqVub+7S/N4YU9yxH7jBfl34U+4PdQFV08RU MhCpNsuuJMnLQ+xVubMmODDY1o8pFIHn2xisfjodGwOMPkyoyxlxDedMLIYiVDNlWTV/mkpyh Mr77x/4U+ceCBEXTdll9gACjKARNt4GVhR8WlQ2VTW/e+4EW2Z6+duTy+TcLpuLKT/oXl0fXA 0TjtcajwokBXYAZQAYFZ6OKnhiOQiZcgV3t5F5O+iRnIoNel4Cpzc2RIrDcGMqrA6TVBk2IU4 uVy+Iv+YnH+3lyDF16epniEDc0wGbVbbMqZGZUJeRqy+SLd3gIdEh2odBC0FReRcJbSiTaULQ 0wmuLNBK6stXovo0iWis+3hKTLwz8UAKOLlA3dHK0jFg+UV9WZfr5oyhlpBqfNsIxaqvWi2vP QbU2up68qvPUC3xbexyCijihZ62TY+ySy4D8JULTrZ2Y4+Pxjqg2PYhG6GBYvV1Me2c28CXB8 TiLREtS/w14KCfh52SYSdhs03lx06L0AxpRarzz/laZsz08O7/WxiV4hQS1EuhpxXMAh02Ye+ 8iP124H8jxfGS6AIfRB9/Y3ETc5w4z+7AwYAWQ4JPe1fSt6ufTMMgFG2tkXV3VQSEGMlbtPN6 A8IXOCYoHLQ/g3NmsBt3qUoaIng2JbFtLPEHUpvmYP/CSrUWrPXRmqrxkx6Rz0ded0dCZg6yW SqqTxHWtrHpMEn/OMp6kcJEyXSJ6il81mkepI4QtU5vGX25sf6U8CvngvNW11v8P8dfm/QtYj zfFvNBpV8CoHl8tjz9qYOrDjz8+TevCs2pjSBkedCzA== X-Spam-Score: 2.8 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: >> So it is still true that a frame other than the top frame returns t >> from frame-visible-p, right? Here's the recipe: >> >> emacs -Q -nw >> C-x 5 b RET >> M-: (frame-visible-p (next-frame)) RET > [...] Content analysis details: (2.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in sa-trusted.bondedsender.org] 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [213.142.97.103 listed in zen.spamhaus.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.15.15 listed in list.dnswl.org] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in bl.score.senderscore.com] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.15.15 listed in wl.mailspike.net] -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: >> So it is still true that a frame other than the top frame returns t >> from frame-visible-p, right? Here's the recipe: >> >> emacs -Q -nw >> C-x 5 b RET >> M-: (frame-visible-p (next-frame)) RET > [...] Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in sa-trusted.bondedsender.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.15.15 listed in wl.mailspike.net] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in bl.score.senderscore.com] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.15.15 listed in list.dnswl.org] 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [213.142.97.103 listed in zen.spamhaus.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager >> So it is still true that a frame other than the top frame returns t >> from frame-visible-p, right? Here's the recipe: >> >> emacs -Q -nw >> C-x 5 b RET >> M-: (frame-visible-p (next-frame)) RET >> => t >> >> This is different from GUI frames, in that z-order is not considered >> on TTYs. > > That looks like a bug to me. I think it should return nil. (Although I'm > never 100% sure with the frame code.) Opinions? The doc-string of 'make-frame-invisible' says that This function has no effect on text terminal frames. Such frames are always considered visible, whether or not they are currently being displayed in the terminal. martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 09:13:16 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 04:13:16 2025 Received: from localhost ([127.0.0.1]:54412 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbyhg-00031P-8B for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:13:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42450) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tbyhd-00030z-1I for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:13:14 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tbyhW-0007Vf-N6; Sun, 26 Jan 2025 04:13:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=/RUI/U7mMa53LaSMlkYQuXFKji/p890RP3+3ko0joZo=; b=ZfbZA0LjJY3f36H5SwyR bW9X9KA7jOlAvIaYdfkJwgYtIGDvAuz4oh9XXhx/LQrKluVgG7mVRD7O7baWg4yg0ndxc8cNIFPPn 893qQk96KpXu5ysf9gNbfoKskn+gkor70lsxpV77tfieBYB/J6qohYIPPnLUchY11oIySIf2M4v1C qQWHY6YpMUMUDfTlGyl+s+mM8ZIGcnFFCrdOL6SJYdr3EM1ha1+1WcdDHvXEMROIb4V2AzcaN4DOm GnN2qPt8IwEfklpCbtRtEyiD1AbPndvfu/dU8pG4G0WG9KKSwIqvzJPv4aEJQ37eHs34Yvt1XMbyv sSLMOls7q/xL7Q==; Date: Sun, 26 Jan 2025 11:13:02 +0200 Message-Id: <86plkarl9d.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?iso-8859-1?Q?M=F6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2frl6q7hn.fsf@HIDDEN> (message from Gerd =?iso-8859-1?Q?M=F6llmann?= on Sun, 26 Jan 2025 09:55:48 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <m2o6zuq9i6.fsf@HIDDEN> <86zfjernal.fsf@HIDDEN> <m2frl6q7hn.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: rudalics@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: rudalics@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > Date: Sun, 26 Jan 2025 09:55:48 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > >> (Where "top" in that case is not a z-order thing, but all root frames on > >> a tty are just part of the frame lists in parallel to each other, like > >> before child frames. AFAIR, something in tty_display_info > >> says who owns the terminal.) > > > > So it is still true that a frame other than the top frame returns t > > from frame-visible-p, right? Here's the recipe: > > > > emacs -Q -nw > > C-x 5 b RET > > M-: (frame-visible-p (next-frame)) RET > > => t > > > > This is different from GUI frames, in that z-order is not considered > > on TTYs. > > That looks like a bug to me. I think it should return nil. (Although I'm > never 100% sure with the frame code.) Opinions? It's the way Emacs behaved until now with TTY frames. We can decide we want to change that in Emacs 31, of course, but then we need to update the documentation accordingly. E.g., see "Raising and Lowering" in the ELisp manual, and the functions mentioned there.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 09:10:29 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 04:10:29 2025 Received: from localhost ([127.0.0.1]:54398 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbyew-0002uj-5p for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:10:29 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:53273) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbyem-0002ta-0n for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:10:16 -0500 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-43624b2d453so37163985e9.2 for <75056 <at> debbugs.gnu.org>; Sun, 26 Jan 2025 01:10:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737882610; x=1738487410; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=sak7u54HA1xQug3hfcz16ImvY1eylAYi/SD2gRjFpj8=; b=JE+qulfQGyfkumX6IJOmzxk+EPDLivnzm6w6ImoGji0Y0OaPfK6/tyOr287b80ug5s PLUDVPCmr0+wvREEWzoLNUbb20nMVhb6WF1/yCqk1f0gaBtgpCLfHGIQlv6uqFoxb8p/ GHn+WO0dZwQ/4vS6veynAW4jFB64hxsmlFg6DD8hvhtUjekYB79QPkoMxeyPdCGwrMV1 kfnqcA6jPxTHWJz7ZrntY7YE2QYXGBf1Xq8nmL+ywMhKFVsz9y/q5+JDF9X/ZmW5eYSM JT8B5FKd4DiBHkhg+cGNIcNwHVxnqd62nmzcdSjJegBRANIr+jjceKo3wrwwynXG6QWS Kdcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737882610; x=1738487410; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=sak7u54HA1xQug3hfcz16ImvY1eylAYi/SD2gRjFpj8=; b=Xjv1kk7J4zEZI14kXBTohvbjiPZVyMK4DY+vNs4vAzrerAlpP1CNe8aEswQf4Uu8Z/ Ihw+fyFDz8D1BO3aQ2rytE1pDX7XhYPwP3Oxsljh/yTOuecRRSxWqUbfheX6z0hOYnIg iYjWg9jAposYYQfdMk+nknp8u1c3Ibg3eGPw7qY6FGa7/noT5hUKsWRLIwN6PEyX64Sb 2hjGDy2f5pFuzNSlhp+a6SaFGppk9n7yvWspnlX5HP72y4zZpPI56aKSQ5wIB2zQGqAn glZTIb/OAEZh3Y3mKNBw0hkt8Z/aHPTyEq5ApFOYyPy2w0heA+ED+iNSYQeaW8Nw4f60 mGcA== X-Forwarded-Encrypted: i=1; AJvYcCWznBioUKuFC1H2IgGcZLFkXqVrkWogciuy0e0nrPirANYUzoXEVQtBnY6DBprrfAuNlMmyTg==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yx49RiUqV1vzeFJJ9VMTYiiJN86LdrsuVcvXagNveGe6Bfs+Fnv A6OA4SOkA9HBF7p+mwcNufEMJtggX9Lnq8SJgm8a45jpO1Rc8i7Y4fKGOw== X-Gm-Gg: ASbGncuOsASBmRZU1OCu7dFX64ZFsMfRnZC5y6DJck6kYC/HFUDXiHjAQbnk5T6Dn6F 2G/jNEWgS9VW24ckw6C17g8Tfnc7rJf7RykJlD7GjiFg2ueYkyu4zxX29UItcYRM6rXOCtUCzIB JUPlW6Kz6HjUM3mkjUrH0BWmR2W46gF0xclljMsbRUvgwnSAOhM6s4NVxEzv5vUVD8PjyzzMWym wioz8hmaq4FDRws1rzbdzSsTDT9xjPYVLn3HZkt3oJW45G9xTHLUolVCB5tEI7hoBIfTlIT12iM kgjwHinuCUHT06E6N1qqmo6I32XfThSpQ0ZwB4BDDPUNUxIxb9ovlLRmuVSLRRSr2yNQrMHdQug Q0YroNpIRu+8hGw== X-Google-Smtp-Source: AGHT+IF1/+HQBweb65RcjoTDNLrO8gQPeW2mQXoL36uRYv/4v6mP8naob5QRvY1MGuLS12PNfcJyHA== X-Received: by 2002:a05:600c:3d86:b0:436:e751:e436 with SMTP id 5b1f17b1804b1-4389143b372mr315595805e9.19.1737882609520; Sun, 26 Jan 2025 01:10:09 -0800 (PST) Received: from pro2 (p200300e0b73e84005db9294b38aae576.dip0.t-ipconnect.de. [2003:e0:b73e:8400:5db9:294b:38aa:e576]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438bd485007sm89298165e9.12.2025.01.26.01.10.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Jan 2025 01:10:09 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: martin rudalics <rudalics@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> (martin rudalics's message of "Sun, 26 Jan 2025 09:53:19 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> Date: Sun, 26 Jan 2025 10:10:08 +0100 Message-ID: <m28qqyq6tr.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) martin rudalics <rudalics@HIDDEN> writes: > I still wonder what happened to the "when one frame completely obscures > another" visibility state issue. Has that vanished? IIUC it would make > a child frame (and possible even a root frame) practically invisible > when no part of its drawn by redisplay. On a GUI the WM would decide > that and we don't have to care (IIRC we did care on Windows in the past > - at least when debugging). I can't claim that I understand completely what the problem was/is, but here is the situation on ttys: On ttys, child frames which are invisible are not copied to the frame's desired matrix, so they disappear. If children are obscured by others is handled by copying in reverse z-order, from bottom to top. No smartness invested in determining if we can avoid copying a child because it is obscured by another. Above combine_updates, in the glyph generating code, child frames are handled completely independent of each other, as if they were the sole frame on their own terminals. So no obscuring, nothing of that sort.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 09:10:15 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 04:10:15 2025 Received: from localhost ([127.0.0.1]:54395 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbyel-0002uA-84 for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:10:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:41854) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tbyei-0002rF-2Y for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:10:12 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tbyec-0007I7-AJ; Sun, 26 Jan 2025 04:10:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=6mdjZPNwzkpPQcvcPvrCg/kkDxwYIRrWv2Ws4ZQaxBo=; b=mmt7O6iOe58i v0JQUrEhiC2cYnhvNmwyj1nO81eWuTnRkKCLRmG5kNBy38ycCs2oG98DhQZcSxmKjYT/+6KDrZ5EO 1BaZZ/mOGl8xI48lWuA4SmSprS1zsGD0Ug1+oG+HiBL1odn5vGbbqZkk6Dr0rQRzWulOvTPtjjJqg gGeOwhWcx2Jq9vmM9OpTZWIs+QQICyKl1DfHf1nAjOLs4dolL2v2ig43KXGlQnJ2HrS0ZV/uFKM9q YlRT96ICXNDXyfGT8FwjAjlzY6FPiWZlov3iBkOdywjB/EXu1bWDhmLqFYIsnGWyafpYu2gV2TkWv qtw8DQE2lk6Dd+XC5Iv7iA==; Date: Sun, 26 Jan 2025 11:10:03 +0200 Message-Id: <86sep6rlec.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: martin rudalics <rudalics@HIDDEN> In-Reply-To: <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> (message from martin rudalics on Sun, 26 Jan 2025 09:53:19 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Date: Sun, 26 Jan 2025 09:53:19 +0100 > Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > From: martin rudalics <rudalics@HIDDEN> > > >> Martin mentioned in passing that he thinks iconifying frames on ttys > >> should perhaps do something. So it's maybe a "not yet". > > > > What could that "something" possibly be? Martin? > > See the option 'iconify-child-frame'. We have to explain its semantics > for tty child frames: The two obvious choices are to either do nothing > or make the child frame invisible. OK, but then this is only relevant to child frames on a TTY. > >> Yes. C-x 5 2 can make a new root frame, and only one is visible on > >> the display. > > > > So only the top root frame now returns visible = t? > > What is the "top root frame"? Have we defined it somewhere? See tty-top-frame. > >> raise-frame is make-frame-visible + changing z-order, make-frame-visible > >> and make-frame-invisible change the "visible" flag. (Just notices > >> make-frame-visible talks about "X window", hm.). > >> > >> Did you mean these doc strings should be changed, too, or did you mean > >> something else? > > > > I wanted first to understand what happens with this on TTY frames. > > Then we'd need to update the doc strings and also the manuals. > > I still wonder what happened to the "when one frame completely obscures > another" visibility state issue. Has that vanished? No, we still ignore that on TTYs, for non-child frames. See my other message.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 09:00:54 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 04:00:54 2025 Received: from localhost ([127.0.0.1]:54332 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbyVh-0002NA-JV for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:00:53 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:41860) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tbyVf-0002Mt-Hm for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 04:00:52 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tbyVa-000653-7R; Sun, 26 Jan 2025 04:00:46 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=MJmMJkLkNt5w/5sY2IKfGeurG4Xm3jZdks2iQKvMWd0=; b=ZQrbN4seW4d+Uvqu4Q0g 0D11O/cd5SFTgrovmrGcatg77Ewz3TUCcXpUSWmWNbo8uA78cOHCkju+jXzLKJDQMr+E13ntyIUPC PJmijjZS1mhXkakYJFYwy+ZuQcVsC54qlrR8w3z/WPtbEoH9aiAwwwGJueFloY4VA4FJ5NadqqQCG a8r4r1vzw/EFLxax6W8wk0rlOG0sCAj3XY9yc4j91NDSTi+TGW7b5ueKzr6cd0BFTgrXUxU8uj3Og DNqgsBztLBrULHS6E41/exKkiDVC5Kpm6qi/09iwm+Y1Y+HPWq0vNQFhJx6c6YeLU474moR/ZSrEf YzPrlk/bdNE3Fw==; Date: Sun, 26 Jan 2025 11:00:41 +0200 Message-Id: <86wmeirlty.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> In-Reply-To: <861pwqt2nt.fsf@HIDDEN> (message from Eli Zaretskii on Sun, 26 Jan 2025 10:11:50 +0200) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <CAOGVwe=coO-8NxNV141G2hMgv4k9v--XoDFrw=5EA+sY6e-X2w@HIDDEN> <m2msfe18hp.fsf@HIDDEN> <867c6it4fa.fsf@HIDDEN> <m2sep6qaix.fsf@HIDDEN> <861pwqt2nt.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > Date: Sun, 26 Jan 2025 10:11:50 +0200 > From: Eli Zaretskii <eliz@HIDDEN> > > > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > > Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > > Date: Sun, 26 Jan 2025 08:50:14 +0100 > > > > Eli Zaretskii <eliz@HIDDEN> writes: > > > > > What happens in this case is that F2 cannot be communicated with: > > > typing anything there gets no response, until we exit the minibuffer > > > on F1. Then everything you typed on F2 gets processed. > > > > > >> Find in the code what actually happens when switching from F1 to F2 and > > >> compare that with admin/notes/multi-tty has to say about that. Does that > > >> document say something about what we've seen the code doing? Open issues > > >> maybe? Or general considerations? > > > > > > What the code does when Emacs enters a minibuffer is switch to a > > > "single-keyboard mode", whereby it only processes keyboard input from > > > the frame which entered the minibuffer. This is because Emacs has > > > only one input queue. > > > > I would perhaps check how that switching to single-kboard is done. That > > is, which C functions do that, what does do_switch_frame do and so on. > > See temporarily_switch_to_single_kboard in keyboard.c. Btw, when I do that on the current master branch, I see some unexplained cursor movements. Recipe: $ emacs -Q -nw M-x server-start RET Now on another TTY display: $ ./lib/src/emacsclient -t ./src/dispnew.c Now observe how the cursor on the first display (where we started "emacs -Q -nw") is positioned at the left edge of the mode line, instead of keeping its previous position. Now switch back to the fist TTY display and press some key. The cursor is moved to its correct position, but now the cursor on the second TTY display is a the beginning of the mini-window! Now switch to the second TTY display and press down-arrow: the cursor on that display is now correct, but the cursor on the first display is now at the beginning of the mini-window. Here's another problem with cursor movement, which doesn't involve multy-tty at all: $ emacs -Q -nw C-x 5 b RET M-: (frame-visible-p (next-frame)) After typing the last line above into the minibuffer, don't press RET. Instead, move the cursor left one character with C-b and type "C-x C-e". This should evaluate the (next-frame) part and show the result in the echo-area. But note that, while showing the result of the evaluation, the cursor is not at the end of the value returned by next-frame, but several places to the right, after some empty space. This doesn't happen in Emacs 30.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 08:55:59 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 03:55:59 2025 Received: from localhost ([127.0.0.1]:54317 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbyQx-000251-3Q for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 03:55:59 -0500 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:53715) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbyQu-00024i-Kv for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 03:55:57 -0500 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-38a88ba968aso3411279f8f.3 for <75056 <at> debbugs.gnu.org>; Sun, 26 Jan 2025 00:55:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737881750; x=1738486550; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=+ZcEj3EWmj+EGQb3ZrUbUIclwGQRX8kXKBkKJQHunG0=; b=lPeYuzZXgkYF9ZvCNrPig6KWrSBzYvDf26XVEXaRs4fvw/wwRQX74ByHvdx8ahH4LX ApWks7yIUeNYL0yVQeSQ2n/yfl53pXl1vfeLMs0U2WKwraPeZo0mY8a6SrcmJcIP4SQP NMvyXmkMF2UAaQGSucB0WoQ4q4pvutq36pHQ3vSsxzLqYGf407z5BdLShWBcBS+MKiJ0 vYBHkOQIGi5Zvb3gj8zvPu3bV6Xc2ZYxXWeAZjlziDjubnylzmfk6gT955uraq31A5CY mT+8INxHyyjVMb82ucoVo3MzxbDE+wnEKnZcinTK/dGeQ1qdd2fsqUVLuXHhvdm6Ku/N +RtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737881750; x=1738486550; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=+ZcEj3EWmj+EGQb3ZrUbUIclwGQRX8kXKBkKJQHunG0=; b=PPfM7+2WDlLdzYdctHAx1eePTAB00+29xjGthej8odATOLQZOt29RZhkfttTi1wUS8 amVUopZI6qJJGYCxGjCMhrysTgf+iw3g1Jdi8w9p00CQpqgGW4zWMo3ml6v7RgbEyT6+ pgf9mGBt/32GmU6OQ0QtRCeuMGlrtnImzTW2CsFaEjOlyPzEnP6a84DMp6oRycEBkU9n Fu2sFUIT6a7S3ktdt/FgzCZ+gfgu+nZe8cuydsaRXO0eNdWudV4WN4kZtDSH6U3BkWTj FLCcKg4oY8CeTMuXBGncYmWBaPlP6+j37lWTay2+OdeXlJxtNgE5fnHjCiwGz+PUGuKq //Dw== X-Forwarded-Encrypted: i=1; AJvYcCV15icisSreKK6scH6TBiZNmggIPO3Nrf6bhtKxl/P3RlnJ3d09wvtKvGXpL0XmEt/6HXymBg==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz2UpoCwCzgkvfS/bDUmYgDfZlUFZaQs5k9GnNxZP3haSbVAbwY k7XM6y81gd8t7MQsK3TuvUoiLAHrVJxy3a/I9sKJVvw4FH7mJmuP0R8YHQ== X-Gm-Gg: ASbGnct0Ddsptxz2Eos6/woZWKG85SiMoNeVfgPdvC/dIytUGPaZsyBx/hvQ08upkSO k2sw5w8e29o9Wy75AQGO/pbbYzC2Wd7Z5rt7RlkrdSHZfqKfY+TOVwjqklgTokVAXSv6o7pjjhY 3osx/qunMB7UnfC41/rvhKYLSmhvBzcKHWKU/5BZRLgN8wQHF7F6bZxYxapSK5ErmyGBLHkFOTi ZS4aGoQQUp4jbbTdsR6CiEHfKILUoh9IRhQFNvNCnF4PKfILWdBK0K4oQTTv4RLAvdWpyQRK1nB AMP8PWKrh4jyVgBkgu2Pk/4HaURl/q5nW0RjPakcsIq1JcJvcseOnVvY5kbCwZjZ+O8DH/bGdUv 6mhvr0Cj7ZzIIsw== X-Google-Smtp-Source: AGHT+IEXbIXMXbZ0wZ3Uvam7VLaa5i7lPKIW0QE6TC+iMP6y3vipUUH1rUGFHgbdVhjtW+t3unUSrw== X-Received: by 2002:a05:6000:1562:b0:38c:3f12:64be with SMTP id ffacd0b85a97d-38c3f126762mr1013845f8f.35.1737881750008; Sun, 26 Jan 2025 00:55:50 -0800 (PST) Received: from pro2 (p200300e0b73e84005db9294b38aae576.dip0.t-ipconnect.de. [2003:e0:b73e:8400:5db9:294b:38aa:e576]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c2a1c403asm7718989f8f.93.2025.01.26.00.55.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Jan 2025 00:55:49 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <86zfjernal.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 26 Jan 2025 10:29:06 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <m2o6zuq9i6.fsf@HIDDEN> <86zfjernal.fsf@HIDDEN> Date: Sun, 26 Jan 2025 09:55:48 +0100 Message-ID: <m2frl6q7hn.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: rudalics@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> (Where "top" in that case is not a z-order thing, but all root frames on >> a tty are just part of the frame lists in parallel to each other, like >> before child frames. AFAIR, something in tty_display_info >> says who owns the terminal.) > > So it is still true that a frame other than the top frame returns t > from frame-visible-p, right? Here's the recipe: > > emacs -Q -nw > C-x 5 b RET > M-: (frame-visible-p (next-frame)) RET > => t > > This is different from GUI frames, in that z-order is not considered > on TTYs. That looks like a bug to me. I think it should return nil. (Although I'm never 100% sure with the frame code.) Opinions?
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 08:53:32 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 03:53:32 2025 Received: from localhost ([127.0.0.1]:54310 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbyOa-0001uP-9W for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 03:53:32 -0500 Received: from mout.gmx.net ([212.227.15.15]:37051) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <rudalics@HIDDEN>) id 1tbyOX-0001u0-8v for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 03:53:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1737881600; x=1738486400; i=rudalics@HIDDEN; bh=g+MjdGDDWJNIq/flaXXt4VaLsLWZoayrZr/K13SWXSM=; h=X-UI-Sender-Class:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To:Content-Type: Content-Transfer-Encoding:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=Gitf0BeCLBUUdu7HV+FFlmQhf+ojCfdgw4rdodSJse2S9jlSPi8Fxj4qu/ZSm5tb JZP2TJ0Ql2VCUy2LLUPnOYQg/+m7oMmxj+06wKfHl5+Xvog989UuAc1d7hVsTf4BN 4vR926DAIRKi3+cliRbNLEnmNteTUjW4pqg+8LVnqTLWRuu79Od9+skaiDURj4oZu cURe21lbY9DRonm6yje6PYXPcftZWEEASqw3eXmtlq3qw9LBtsYw/Lvriqzm2ELuD TvFfgFmLZzofqMeRUdO5z/bkNX6WBerjk4iX6mr1ADlTEDSpbyMqVzM7ZbGqX710P 1yfBpRppxBW/rbgf2A== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.31.113] ([213.142.97.103]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N6KUd-1tQR0D1MZl-00tx5H; Sun, 26 Jan 2025 09:53:20 +0100 Message-ID: <52e10bc6-7281-47a0-974a-53922d710006@HIDDEN> Date: Sun, 26 Jan 2025 09:53:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: Eli Zaretskii <eliz@HIDDEN>, =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> Content-Language: en-US From: martin rudalics <rudalics@HIDDEN> In-Reply-To: <8634h6t3bm.fsf@HIDDEN> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K1:Iqo6MEDtbH22YCkUzLgoOKeX8NGLmS3O/JLk3ErrRpbhB9oLRms 7s9Q/viy1KmXzAQN5FCXJ6FN+6E+09zn434TkbfAv+1OPiv4BqQw7TfYrFZyX662+pTzyyn l7AO6DnGoIjdByPzK15jj9d/aqdLju5dlHuuFvqcmTDYhJvfEO0RF1Qgxr4Ct4PQnH6848g Q+xVpsSgsk74cOA3mDIxA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:oBmLfmt6NSM=;6R4CqbnCAos0eYQWwEzIL0+87+y naHitKz/cDQr6A1jWRStPKhdc0J/O+tqfHegfyvzUB+zEtQvchi28AGraFn3AS7e+JB/ix7v0 4Sf+FoLfedHwrCcPz8IyhpHHYt9Ahf59wCK/MW+ZpOJI68geTahdm5qRGFiwUewDW9pD6YKgU IXHMNx5mYIiTqku0qs1b0F+ykcfIHyc96SJJXNVvL/ZWtOeUVwALb3/hPdvLAy4kvWNXU1Hjg 62ZzJcOBgkCT0k/0TcIvX3wJmZmE/Xj3Z66P0AvAz6vMYIcuKQm3zB0y+/SefM/FSPgLW//wO 0O5Q/ZpyeP2r7YJRD93RVsHn4M1lae2ah4XX5x0tHhdwHs6i4AvCRMKdnFdT7tP5QGXlrL/Ou x3sQU3VwImEwPUpSLXACuPfYHUGU5jpCXQERPxKy2g0IqvT7ZFyp1//g0avpp17NGJDKF/U6S E57Zxm4uWRSYvQqB7qxutyA2ZYbi2Z6476ih0lZs8UZStIUvFnTKVKEcq7ZbaL+72Ie/D272r 5CRt8+husUuzhB26dc6wNGCZ4v3fqo2+olks0AQBPbThUU6C2jNHJIt/BxSs2fVhAfNnJ7m/g y2mj8iombNcSYtQ4XuJ3GcCYOpJGuIoxKxmLlupvQ5ee66gcxXThqyeLJSw0QJIOnFP5MQDzM aT+ichPiupys4K+QoGphfk46h6LeI7tSz8rcf8Mid56mBt39oTy0m15rmEyUff+IGwAtPs5+9 qUpA3RsLz5+IwXIUqcovs24wmIx99SkM2hXMLmXYmUA97vlDEo2wXfNb9+mVby7WcrdK9SETM /CoDgPhwJdHmd3lVn/ygXy1KYoSsJb+nEdH1WhTbTW8KdiCw++7EqVFzwJaSGRSPjHRiTc1Tf L5c8BZyc5F0Zy2om7PYQahyalzr+Emf4DLHLpN/pkXKQ0SDH7V+7yuam+ph2is0twy49Oog0D ubDwheOJQmZJYZia3yHyrLfRiwoUcUs3Of3SidBw37L0s+tGbFyu2/LYjv8tjmzvfJKZSY/0/ 9bDXkQwPfv9QzJ//yxZIfLaT6gwyBNU7zT1PMHXT/U3bInHxYhMSnRUM60baubyKBBs2Vtcjy 2l8DJWlHLbqtmu8Ujbtaps+Q1tI5aIXGdMORpKIHtBvRj+ZvVoD/Y3H6M8YmflpiuAYcyZN9x iNVJ7OXM2Izb3hiLVypZT9XF/wXVLL6LeqyO8IM0Epw== X-Spam-Score: 2.8 (++) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: >> Martin mentioned in passing that he thinks iconifying frames on ttys >> should perhaps do something. So it's maybe a "not yet". > > What could that "something" possibly be? Martin? See the option 'iconify-child-frame'. We have to explain its semantics for tty child frames: The two obvious choices are to either do nothing or make the child frame invisible. Content analysis details: (2.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [213.142.97.103 listed in zen.spamhaus.org] 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in sa-accredit.habeas.com] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.15.15 listed in wl.mailspike.net] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in bl.score.senderscore.com] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.15.15 listed in list.dnswl.org] -0.0 T_SCC_BODY_TEXT_LINE No description available. X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: 1.8 (+) X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: >> Martin mentioned in passing that he thinks iconifying frames on ttys >> should perhaps do something. So it's maybe a "not yet". > > What could that "something" possibly be? Martin? See the option 'iconify-child-frame'. We have to explain its semantics for tty child frames: The two obvious choices are to either do nothing or make the child frame invisible. Content analysis details: (1.8 points, 10.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in sa-trusted.bondedsender.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [212.227.15.15 listed in wl.mailspike.net] 0.0 RCVD_IN_VALIDITY_RPBL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. [212.227.15.15 listed in bl.score.senderscore.com] -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [212.227.15.15 listed in list.dnswl.org] 3.6 RCVD_IN_SBL_CSS RBL: Received via a relay in Spamhaus SBL-CSS [213.142.97.103 listed in zen.spamhaus.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (rudalics[at]gmx.at) -0.0 T_SCC_BODY_TEXT_LINE No description available. -1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list manager >> Martin mentioned in passing that he thinks iconifying frames on ttys >> should perhaps do something. So it's maybe a "not yet". > > What could that "something" possibly be? Martin? See the option 'iconify-child-frame'. We have to explain its semantics for tty child frames: The two obvious choices are to either do nothing or make the child frame invisible. >> Yes. C-x 5 2 can make a new root frame, and only one is visible on >> the display. > > So only the top root frame now returns visible = t? What is the "top root frame"? Have we defined it somewhere? >> raise-frame is make-frame-visible + changing z-order, make-frame-visible >> and make-frame-invisible change the "visible" flag. (Just notices >> make-frame-visible talks about "X window", hm.). >> >> Did you mean these doc strings should be changed, too, or did you mean >> something else? > > I wanted first to understand what happens with this on TTY frames. > Then we'd need to update the doc strings and also the manuals. I still wonder what happened to the "when one frame completely obscures another" visibility state issue. Has that vanished? IIUC it would make a child frame (and possible even a root frame) practically invisible when no part of its drawn by redisplay. On a GUI the WM would decide that and we don't have to care (IIRC we did care on Windows in the past - at least when debugging). martin
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 08:41:21 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 03:41:20 2025 Received: from localhost ([127.0.0.1]:54271 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbyCm-0001KK-Fe for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 03:41:20 -0500 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:58479) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbyCi-0001Jr-J8 for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 03:41:18 -0500 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-385eed29d17so1784874f8f.0 for <75056 <at> debbugs.gnu.org>; Sun, 26 Jan 2025 00:41:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737880869; x=1738485669; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=g3ZcV/LWrYSfq8ADXPQn7c6n0fRkEWSNLWROMRtn9Rk=; b=AEr3zKMt5DvSXwvsXix4hVhLyjENhMRyiqHdAUBVcnND8i21XhtBuOpN+pSYjiF0fK Jw4JAbBw4G3vsktJFBDkkFkz3lG5bzb85/j1Lpfc8HxRZWAEu3TMabLeouJ9CoDQSAz0 os7wMr5A/xN3ObknpTZG8Y+e7Rri3N+S1hvpjpWVzqKb+42fxSGo/fUBIhbthZIuerQ4 dPU+lQMnRW9RAqZww6heB7ksB7bVO54vF/Q++56wJ1Bqec8kRlAc2CTFBZwQBHwx+gsy aMHU+Z7SegAVk4psKafpqagarS2Kwan++jZcZsBrXpK7WypXqlxjB5sSftOcO7gMV374 rweA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737880869; x=1738485669; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=g3ZcV/LWrYSfq8ADXPQn7c6n0fRkEWSNLWROMRtn9Rk=; b=NhJqSCTV7gxQFMTuCgOL/MwsD4kwU8hJGj3j5FYT4/5fOYUx02XQ95Wk08XVwPekbX RbekHSHzGPaZz6oipHTbirbFr9Oe5YeFPDBXzj/fYJpkl8dFh3t6ar1J1K/8wZGR3FXb dT9qXPDped9PZXU+QdFuqaAUR5qc0PDjlYnLFevDDskR6jaLn0bFOGSOkbPrBoPjhgjl Qwx1ZKJWmK+oi4/LQtZGfF5Rbf61XySkDW4PaW84Aey33OBn/kA2l2CdscP1V5HSdY/G U62mSG7KvJKsjc5LzSbbBEa6rCLB0it40etLES5mRJMrwXQ+PtR/ASpn7HCcWxpRUdFN rjRg== X-Forwarded-Encrypted: i=1; AJvYcCUEFsW/2UFMUHezX1P8TIHkGydt8cLmNtJe/uI8ONobI3Huy+dRb4ZkUX1e/vJGmtb+GZTUeg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyITeI9Z748QHqSvz6SiX2p0Ctq1biHbX+UvGQX8pYcdVAz+cZ4 Rovvo/uZlU+sniMXwb5sv5Puk4btteUMtpmbT8lQkkClLfrhekdQ3a959g== X-Gm-Gg: ASbGncvyFs6eq3pFst8H0Nt0lVsXc2OXVqvSpAYNWCo2wdvPIfHygrYAOxelwLwW1b0 0jlccxrKTYp3C3jl6T+X48jpuS3LKlJ7riD1xEVohWHusPN0rJ3EUKgsb9VQTthBIqq+9IlS0iq fMiMnLWukNPw2dONR/QxXLfoPZ5H7wG9eoKPcX0plNaS/NDHoj6kCdWL3Pv96sP+O9/e1D90VbM hr87urazhCYVD06/aL8qRWgZclgkS/RtZVWJ9dOqmXhnfElycW75F4EGGI2lZ4Yhs/sAqydQPi+ SIXU5IDxQjcYu8j03V3CZATWyx9jIHQHuBzXBzipzfNPiyDZo7d4qLHljdkXc7s49mJDklgnDxF 14q+svLkZJaR6Sg== X-Google-Smtp-Source: AGHT+IELvmnzQefvvCBzd3q0eXh+iohYWFMwd9mJRWJNImof4RhEuvoV3pqPdufsTrpkhkOaksu/EA== X-Received: by 2002:a5d:5f54:0:b0:38a:4184:151a with SMTP id ffacd0b85a97d-38bf57a662bmr30340495f8f.37.1737880869136; Sun, 26 Jan 2025 00:41:09 -0800 (PST) Received: from pro2 (p200300e0b73e84005db9294b38aae576.dip0.t-ipconnect.de. [2003:e0:b73e:8400:5db9:294b:38aa:e576]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c2a1885besm7470670f8f.49.2025.01.26.00.41.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Jan 2025 00:41:08 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <861pwqt2nt.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 26 Jan 2025 10:11:50 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <CAOGVwe=coO-8NxNV141G2hMgv4k9v--XoDFrw=5EA+sY6e-X2w@HIDDEN> <m2msfe18hp.fsf@HIDDEN> <867c6it4fa.fsf@HIDDEN> <m2sep6qaix.fsf@HIDDEN> <861pwqt2nt.fsf@HIDDEN> Date: Sun, 26 Jan 2025 09:41:07 +0100 Message-ID: <m2jzaiq864.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> I would perhaps check how that switching to single-kboard is done. That >> is, which C functions do that, what does do_switch_frame do and so on. > > See temporarily_switch_to_single_kboard in keyboard.c. After reading admin/notes/multi-tty, I don't want to go down that rabbit hole :-). > >> And why does the mini_frame in redisplay_internal end up invisible? Is >> F1 invisible now, and if so why? > > I don't think I follow: what mini_frame are you talking about? AFAIU, > the scenario described in > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75056#92 > > said that the child frame (which is the minibuffer frame in this > scenario, right?) was dismissed, so the fact that it becomes invisible > is explained by that? (In message #77 I mention the mini_frame in redisplay_internal which was invisible for some reason, and that led to a crash in combine_updates_for_frame.) In #92 I think Len means disappeared from the screen. As far as I know, if Len is using Vertico-Posframe, this means the Posframe child frame has been made invisible (not deleted). Everything normal up to this point. Then he switches to the other frame and strange things happen. Apparently someone somewhere gets confused. The Posframe that was just made invisible is made visible (why?) and the mini_frame was invisible (why?), although in another case. From what I've read so far, I can't explain that. That's why I came up with my description of how I would try to understand this, without child frames first. (I don't want to debug this, sorry.) > Or maybe I didn't understand what was described there, since, > unfortunately, this uses Corfu without telling enough about what's > going on for people who are unfamiliar with Corfu. AFAIU, the scenario > described there was talking about child frames, and the problem was > that the child frame got displayed although it was dismissed before. It's Posframe. It does things to display the minibuffer in a child frame. without having a minibuffer. Also involved is Vertico which is a completion framework that also does complicated things. As I said, I would start to try understanding this from the ground up, and add the complicated stuff step by step. First without anything, then add Vertico, then add Posframe.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 08:29:19 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 03:29:19 2025 Received: from localhost ([127.0.0.1]:54247 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tby19-0000dR-JN for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 03:29:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33418) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tby16-0000d8-Se for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 03:29:17 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tby11-0002KS-0Z; Sun, 26 Jan 2025 03:29:11 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=t3dtuFsE2Q7JQGMZoCxXplFh00TPj1NKvRbfVTiKdRc=; b=lcd57gJRCSBtpHdgmc1O P2SIT/G0Lamf9yoPSRqEKYKU/h7aIa8Tc0igWgXprchnNL9IFeVyusTvqsh5ifKev8HH2PHqY0WPH ETGaWEdAbuy0XWld3J1fHRnoI4VNAr1/Xhxf4bT59bJ7hCVp6z7SMPk1meb+KmqMcCcYD5aNG+Tx0 WxioqpsuUQBDGASJIte8QwgrYCwFJYQqE22GkRL3NvbZEbGaNbRM1vpf/Gm7RZeLOrzhjP1aEuV4i 9e+FCGMBlJPikcHVcTcpOlIsTxzGTPKeLnnMrwDNolOiAxjnoGMmVVTIAaStFCHfROKhMCT6cprx+ 0ugQlORSQ1VwVg==; Date: Sun, 26 Jan 2025 10:29:06 +0200 Message-Id: <86zfjernal.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?iso-8859-1?Q?M=F6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2o6zuq9i6.fsf@HIDDEN> (message from Gerd =?iso-8859-1?Q?M=F6llmann?= on Sun, 26 Jan 2025 09:12:17 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> <m2o6zuq9i6.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: rudalics@HIDDEN, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: martin rudalics <rudalics@HIDDEN>, lenbok@HIDDEN, > 75056 <at> debbugs.gnu.org > Date: Sun, 26 Jan 2025 09:12:17 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > >> Yes. C-x 5 2 can make a new root frame, and only one is visible on > >> the display. > > > > So only the top root frame now returns visible = t? > > Yes. > > (Where "top" in that case is not a z-order thing, but all root frames on > a tty are just part of the frame lists in parallel to each other, like > before child frames. AFAIR, something in tty_display_info > says who owns the terminal.) So it is still true that a frame other than the top frame returns t from frame-visible-p, right? Here's the recipe: emacs -Q -nw C-x 5 b RET M-: (frame-visible-p (next-frame)) RET => t This is different from GUI frames, in that z-order is not considered on TTYs.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 08:12:29 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 03:12:29 2025 Received: from localhost ([127.0.0.1]:54205 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbxkq-0008Eb-Rt for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 03:12:29 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]:53720) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbxkn-0008EI-Iq for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 03:12:26 -0500 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-4361f796586so36874745e9.3 for <75056 <at> debbugs.gnu.org>; Sun, 26 Jan 2025 00:12:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737879139; x=1738483939; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=uJFmfzAXrXGAkw9u81dlFQE5NGsS5MEHyqM7YaGVbN8=; b=Mllo9GJ3PyCzK2cT+eLqRIEdLO0ZWLIvuc04b0VMJYVQPOeBPTF6cN5gl2Fg7gjhL/ /KbBevFkBDrqgLhR2TZzH5AEHtpYoJiTr7kpxz1oWgymgcuw+SAFSxefqveYjBTUAZwR BWxf37HPc3rfP8Eg2tXau0s0d+fwGNIg5RTkgkfKeRBBiKLGcyG8hv3Y7rsD5aIF5hXa 4WE4z9WkzNSc1+ezXH0BvtJmEvTEz0DFXp7pq2C6IsjQVx3uuqODaSwnRlVA9Xo0GUpp rKUBcluOchQu0aFbtbKPPeN31mt/hllkyXEOD2C5n+34ogwzkqcYaoil7/22q29ik6XM tXCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737879139; x=1738483939; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=uJFmfzAXrXGAkw9u81dlFQE5NGsS5MEHyqM7YaGVbN8=; b=hctY6skb5qSVuX05x6oggfNa1tnPC5jXOeTgDhlX/Co7SHHT5Jfyjy24MkSdaGCeGr 07WwADx1PlMtDjyorcIkHieXz80it3erihkpb3Ahqvn/g6OGfVO4H6UqW1hwzOFxic6L OXM1+I0mYMrrt59Gmhx3nQQPcGOwA7PUWjqb1MWMBhBn62U95b9/tUJqwhtnRINFOPXh nzq8cY5Xncu1bbSx3q2Ky1fy6NhQOgAleQLyailn1vAuEJtnYskJsRZvVgktuKm94vw3 H2AcbNJzFuL9oMW1G2xaz39xj0piadn/y6YOfJS9TjiMtoYuG34gqR4BPUc5LX2/CNq5 Frnw== X-Forwarded-Encrypted: i=1; AJvYcCXHfUc6y4DfqkMYymfrbuq2aFl3xxzyH9QUY/RghaVskX1SXRFi5AXG2WLW87fLEkcMaBR4XA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzAud0UPO+006q7CMaewHVkr+zvALFIHiNeddKVRnlmfMsNLy+E Uyt/rN4GY15ENZUK9C+ReFTNgR7StU/0AvYrYYhdKhVVMKAVrzwVAZDVeQ== X-Gm-Gg: ASbGncu8y2RmHjTDTvgWjmYNjmQzoLiRYCtzddtpSABrHahnxW0T+6cgGUV+9rT0dXp Qlu3RuFZovepfxXxsLKoCLFIwur9RxaS9Di7U0XmDRceQe3fqmGBg+2mcI+Yu2KAPr8lM7Suz6f 7BTsVzDTmwKwkFupbUCcYjlFo1Vvi8FwYEqFAkuuZyFFYB7KRw8EKkjDipBc4eivCZ+6fy6XjhC Zl8nBaxga2Jw8OHDnlZpncEh2bwFXKSc1eeJqjEQRMq/6iGZ7xoo49RCBHnQ2XsTMm/s2ZTClbd gp18ixhZS4eH5qtJXYrTkY3wNFDWc3SYzLYjVacuReRRKlp1lGavL0Gm7RprSxuV8Vw/KcEMeO1 1HBGLCK82ovwhSw== X-Google-Smtp-Source: AGHT+IHGiD23ZVuMwE5bGtei37RQdNq7T2g/Ayov8/MF2ModgfXRhDM7A0UOiTew/QovXVtpGetnaQ== X-Received: by 2002:a05:600c:4253:b0:436:18d0:aa6e with SMTP id 5b1f17b1804b1-43894744f5amr356757935e9.5.1737879138817; Sun, 26 Jan 2025 00:12:18 -0800 (PST) Received: from pro2 (p200300e0b73e84005db9294b38aae576.dip0.t-ipconnect.de. [2003:e0:b73e:8400:5db9:294b:38aa:e576]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438bd4d2c0esm86364535e9.33.2025.01.26.00.12.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Jan 2025 00:12:18 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <8634h6t3bm.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 26 Jan 2025 09:57:33 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> <8634h6t3bm.fsf@HIDDEN> Date: Sun, 26 Jan 2025 09:12:17 +0100 Message-ID: <m2o6zuq9i6.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: martin rudalics <rudalics@HIDDEN>, lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> Yes. C-x 5 2 can make a new root frame, and only one is visible on >> the display. > > So only the top root frame now returns visible = t? Yes. (Where "top" in that case is not a z-order thing, but all root frames on a tty are just part of the frame lists in parallel to each other, like before child frames. AFAIR, something in tty_display_info says who owns the terminal.) ... >> Did you mean these doc strings should be changed, too, or did you mean >> something else? > > I wanted first to understand what happens with this on TTY frames. > Then we'd need to update the doc strings and also the manuals. Okay. Maybe we should wait a bit to see how far Martin goes. AFAIU, minibuffer-only child frames are possible now, for example.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 08:12:02 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 03:12:02 2025 Received: from localhost ([127.0.0.1]:54201 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbxkQ-0008Df-6y for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 03:12:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:59318) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tbxkN-0008D4-RR for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 03:12:00 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tbxkI-0000k2-83; Sun, 26 Jan 2025 03:11:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=wbMaAWn0BKcpeNe2PdzRwV0wUC2yPXwQjRyenT1YKkc=; b=SkHtNJuzZIIqc8R40y57 cXQ+bCCK9U9q36JyqZdi5xehlbqPJfYyPWcXTLVI5cTeQk7eJflFfsiJLDt2J9Fo8zoNs84NVeQDb AeI3BY4j2iK25/w0V6THPHPPVi5KYeGXm4cSwBDB0mvhdQIBFNDvXGcCjTjXZphLS+MzlvdifHgyj j7lVBeonDbFMNl6cx8Cpws9oOb9wHlmNR8nvPAJgxHKFhafLdMv5HeNQ33/6KN3u1zrUy4gnk1eBc v6mNaCmc4hv73+UsUYjjPXBLDkUdYYFwV1Qsruv+S7FPpfwYOoB/58dQ5W8fokbi+hyN7KwHB0ojp udsYT7WYP8CPYg==; Date: Sun, 26 Jan 2025 10:11:50 +0200 Message-Id: <861pwqt2nt.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?iso-8859-1?Q?M=F6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2sep6qaix.fsf@HIDDEN> (message from Gerd =?iso-8859-1?Q?M=F6llmann?= on Sun, 26 Jan 2025 08:50:14 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <CAOGVwe=coO-8NxNV141G2hMgv4k9v--XoDFrw=5EA+sY6e-X2w@HIDDEN> <m2msfe18hp.fsf@HIDDEN> <867c6it4fa.fsf@HIDDEN> <m2sep6qaix.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > Date: Sun, 26 Jan 2025 08:50:14 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > What happens in this case is that F2 cannot be communicated with: > > typing anything there gets no response, until we exit the minibuffer > > on F1. Then everything you typed on F2 gets processed. > > > >> Find in the code what actually happens when switching from F1 to F2 and > >> compare that with admin/notes/multi-tty has to say about that. Does that > >> document say something about what we've seen the code doing? Open issues > >> maybe? Or general considerations? > > > > What the code does when Emacs enters a minibuffer is switch to a > > "single-keyboard mode", whereby it only processes keyboard input from > > the frame which entered the minibuffer. This is because Emacs has > > only one input queue. > > I would perhaps check how that switching to single-kboard is done. That > is, which C functions do that, what does do_switch_frame do and so on. See temporarily_switch_to_single_kboard in keyboard.c. > And why does the mini_frame in redisplay_internal end up invisible? Is > F1 invisible now, and if so why? I don't think I follow: what mini_frame are you talking about? AFAIU, the scenario described in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=75056#92 said that the child frame (which is the minibuffer frame in this scenario, right?) was dismissed, so the fact that it becomes invisible is explained by that? Or maybe I didn't understand what was described there, since, unfortunately, this uses Corfu without telling enough about what's going on for people who are unfamiliar with Corfu. AFAIU, the scenario described there was talking about child frames, and the problem was that the child frame got displayed although it was dismissed before.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 07:57:48 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 02:57:48 2025 Received: from localhost ([127.0.0.1]:54145 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbxWe-0007Rv-0f for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 02:57:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53566) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tbxWa-0007Ra-KO for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 02:57:46 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tbxWU-0007lR-UV; Sun, 26 Jan 2025 02:57:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=IwkU+5SKYar7aHg9cXEkD65gK51wFsXJiFP75+rHIF4=; b=D6K+MbusWvWG7xJy0FHw bAkyHahgg4ruMwd+U3+GBvpWEu/2APTvSpIMddyMzMUOwab1bZ3dwf1Uc+8LJjwPZXMCQAtM4taDE GSGuu+X7Eey4Su7nHH/76XDem3mF3LG+AJenqaKqt3i3NfyHy9rp/4JjWPun11hmL0pPQtHyB6+b+ 9m0QELVnYGH7jzxFcQ6TYVC7IvLv98xWsfvchQeBXwSHnaMcDYJu6Dl1FpdT67+uJnIH7MHmJborZ 496fSebgxeRF00buH1vgwm5tSULuJlCbJ85y9eTjwEC8q3pCW1rFq96zsP+AxZmuxGBUU3I8/npS0 5ttwS9Vf6vwTFg==; Date: Sun, 26 Jan 2025 09:57:33 +0200 Message-Id: <8634h6t3bm.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?iso-8859-1?Q?M=F6llmann?= <gerd.moellmann@HIDDEN>, martin rudalics <rudalics@HIDDEN> In-Reply-To: <m2ed0q1475.fsf@HIDDEN> (message from Gerd =?iso-8859-1?Q?M=F6llmann?= on Sun, 26 Jan 2025 07:26:06 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> <m2ed0q1475.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > Date: Sun, 26 Jan 2025 07:26:06 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > First, there's no "iconified" frames on TTYs, right? so this function > > can never return 'icon' in that case, correct? And I presume > > iconify-frame is a no-op for TTY frames? > > Martin mentioned in passing that he thinks iconifying frames on ttys > should perhaps do something. So it's maybe a "not yet". What could that "something" possibly be? Martin? > > More importantly, what frames could have this function return nil? > > E.g., can a non-child frame return nil? > > Yes. C-x 5 2 can make a new root frame, and only one is visible on > the display. So only the top root frame now returns visible = t? > > Also, what do make-frame-visible and raise-frame do with TTY frames > > for which frame-visible-p returns nil, and what does > > make-frame-invisible do for those TTY frames for which this function > > returns non-nil? > > raise-frame is make-frame-visible + changing z-order, make-frame-visible > and make-frame-invisible change the "visible" flag. (Just notices > make-frame-visible talks about "X window", hm.). > > Did you mean these doc strings should be changed, too, or did you mean > something else? I wanted first to understand what happens with this on TTY frames. Then we'd need to update the doc strings and also the manuals.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 07:50:25 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 02:50:25 2025 Received: from localhost ([127.0.0.1]:54135 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbxPU-00075s-GR for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 02:50:24 -0500 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:43176) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbxPS-00075b-7t for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 02:50:22 -0500 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-4363dc916ceso28264585e9.0 for <75056 <at> debbugs.gnu.org>; Sat, 25 Jan 2025 23:50:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737877816; x=1738482616; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=NDVfybWdUjH0Rt8pmGOlgUY8v8nW94N2mPsWKKzIU/s=; b=P0XwNA3xOkgXWkVPSDltn8bYD9kYjHUd4/hv/r/XfXPuN/9gfUs1RRvDnTyVeA7Fek efbheIbuD+wvtn7VKJRV9D1ftpFqc/PCBgOBTXLxM2AJF4AQpHH0fs1KHdUZvTg7ODXY jSjZyYD2fO5Jva6lCjJVo5SADCmaNnDrJOAEh8cdQYrirof2Q/cj/UlYMXboHGH0XQtE mXVjlDJisrEVdOXCiRhFyTDhTVlNhhJrlpXEgG+PvxkZKz+yXHaqnZ4ZFP/pnsrWWdSL IUs5I/bpAHK42ZhRqt6Wbk9IKdfGBI9cJnDqu9LfACqmIVDlU4EoDThmenp+2AajiiMj M06g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737877816; x=1738482616; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=NDVfybWdUjH0Rt8pmGOlgUY8v8nW94N2mPsWKKzIU/s=; b=P51T1C7HS/Lo42ch1anPUqVCgG6UhQxsCxvwPJD70oGdpwjrURTjv05lya9+TSc8Mo lXJmk6RIyiOa/nB3K4FMutn4wTp5g6qXg1QpUNL/jGJ5mthJ/hKH+p8lmnPsKWhZHdV2 J1BX/24BWkyUcQDLc9upFcwG/P5XLm3LUioWLjPVmiDVhmKW3kUshugXQNNAEKl4QmCF L+y2YXDUL2HG3bLQ5UWHawsdN2l9Db8RBOHyBlHbf6sRVlLeaUBpT5bZTFgFSU5knU7f hiRK7GIMqiSb7qUsQN/JzlAMY8xBssWIyKHq9ntguUA/8gBd11TMXMrGwsqrVeCtcOyt VkxQ== X-Forwarded-Encrypted: i=1; AJvYcCUqSXarGwgIeIzAuqw02FR6mwJ6qCeCqUOmPn6vPLZYhdKJTURXGwnz1uw+eve/sXydmPtOfw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyG/Cpg2/JFrRL0eKyjeIPKF4nUvpb30VwLLcCNiV9xE7NvVpp+ 8e7AY0lECeEy6R0VPpqAkr/QGn4lmPOLm4ca1ogZl227xtDcFj9ekMakYA== X-Gm-Gg: ASbGncsScZwzEp+u4WAKe37bhjIj69nSUjNR6NQxbRs6H4yjJWCZ4OFwFjK2fghYSXQ ite+mvjaKzODLOQ/yrwUHMLrtou1dxD3XSAcAG/svqMxEvzaAv5HZFFRmPgq8NLJk0K0tyd6aqr 9VNCsVxRtL9Jc5fmTeKe5x710U2wuI2gNh9QWYmeAwzzSQ7MxSMHW8dnIxTBINUYItbJENlU09w Dyq4EEcfSgFcJGf9rX83IdUYzFN0fMcw32LTgXYUHDGaSkeRTvtwymhilK/SuCoSNhiinseR/r7 NBap4/54FVyiakVVAhFlo++IRTO7wiFEwfoOD1IfE2MIC9Ev4JZdcAkNG9b+N+ZLq3ob/3vr21D TJwFHuM00H9kQog== X-Google-Smtp-Source: AGHT+IFDF/Oq9M1RPTgiY9aRAdRBvNu7IZRa5oMLv07GXvq5lPFs5OpajMIisd3a8+3FAaLeu0ebhg== X-Received: by 2002:a05:600c:3b87:b0:436:2155:be54 with SMTP id 5b1f17b1804b1-438bd052e25mr78288065e9.1.1737877815595; Sat, 25 Jan 2025 23:50:15 -0800 (PST) Received: from pro2 (p200300e0b73e84005db9294b38aae576.dip0.t-ipconnect.de. [2003:e0:b73e:8400:5db9:294b:38aa:e576]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438bd4857c3sm85957645e9.10.2025.01.25.23.50.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 25 Jan 2025 23:50:15 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <867c6it4fa.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 26 Jan 2025 09:33:45 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <CAOGVwe=coO-8NxNV141G2hMgv4k9v--XoDFrw=5EA+sY6e-X2w@HIDDEN> <m2msfe18hp.fsf@HIDDEN> <867c6it4fa.fsf@HIDDEN> Date: Sun, 26 Jan 2025 08:50:14 +0100 Message-ID: <m2sep6qaix.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> I would first try to find out what does multi-tty Emacs do when Posframe >> is not involved. Say we have two frames F1 and F2 on different ttys. On >> F1, I enter the minibuffer with C-x C-b for example, and open a >> completion window. > > I guess you meant "C-x b TAB". "C-x C-b" doesn't activate the > minibuffer. Right, sorry, I forgot that I have consult-buffer on C-x b. >> At that point, I switch to F2. >> >> What would a user then expect? > > What happens in this case is that F2 cannot be communicated with: > typing anything there gets no response, until we exit the minibuffer > on F1. Then everything you typed on F2 gets processed. > >> Find in the code what actually happens when switching from F1 to F2 and >> compare that with admin/notes/multi-tty has to say about that. Does that >> document say something about what we've seen the code doing? Open issues >> maybe? Or general considerations? > > What the code does when Emacs enters a minibuffer is switch to a > "single-keyboard mode", whereby it only processes keyboard input from > the frame which entered the minibuffer. This is because Emacs has > only one input queue. I would perhaps check how that switching to single-kboard is done. That is, which C functions do that, what does do_switch_frame do and so on. And why does the mini_frame in redisplay_internal end up invisible? Is F1 invisible now, and if so why? And then see if that all is what admin/notes/multi-tty says is intended, if there are open issues, and so on. Something like that, maybe.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 07:33:58 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 02:33:57 2025 Received: from localhost ([127.0.0.1]:54093 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbx9Z-00069r-GQ for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 02:33:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42826) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tbx9V-00069a-Un for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 02:33:55 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tbx9Q-0005ZG-Fj; Sun, 26 Jan 2025 02:33:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=fbULLZaAuJ56tLtbrgPOVN1S4tp0rm+RQKePNjoQjSk=; b=KRi7rUbGl1Ce0J/Xd7HI 56l4xBxkSb2BlsitCVRJ2bKts41I3QSJWgLw5yhHwi0bFf7jsyfWvsI5JZOUSYP+A6q/OzYQmNY1u HKP0RRj/Wy1zr3msScvqYENY6/xeGA12aA62iznPU+KzWwFpuVPts0HHEAnI/aeTgOscDbeeR10QQ f15IT2oY4Dj0BXmmi0im5a8SkvSxjHYouwi48z8SSIpyPT2YcwHQ5Znm9Bbk9yeoVgXlzz6F6XaPo l/Ij2u3i6HbWp18kOAEVUFzQH8r7h1PXtZxzoxHgSjEfbNll3G6ho8JaCZzvsqAT1Xzx8PcLQHfXq mf/mdcEwwFZ/SA==; Date: Sun, 26 Jan 2025 09:33:45 +0200 Message-Id: <867c6it4fa.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2msfe18hp.fsf@HIDDEN> (message from Gerd =?utf-8?Q?M?= =?utf-8?Q?=C3=B6llmann?= on Sun, 26 Jan 2025 05:53:22 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <CAOGVwe=coO-8NxNV141G2hMgv4k9v--XoDFrw=5EA+sY6e-X2w@HIDDEN> <m2msfe18hp.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org > Date: Sun, 26 Jan 2025 05:53:22 +0100 > > Len Trigg <lenbok@HIDDEN> writes: > > > OK, so would I be correct that our current understanding of this bug > > is now best described as "something is setting previously invisible > > tty child frames as visible when focus changes to an alternative tty > > client"? (Possibly some part of the multi-tty code that still assumes > > that all tty frames are always visible). This then causes the > > non-focused client to display the tty child frame with minibuffer that > > then blocks input from other clients due to the existing single-kboard > > limitation. > > "Understanding" is a bit much said, as far as I am concerned. If I > wanted to debug this, which I don't :-), my start hypotheses would be > that this has to do with the minibuffer, yes. > > I would first try to find out what does multi-tty Emacs do when Posframe > is not involved. Say we have two frames F1 and F2 on different ttys. On > F1, I enter the minibuffer with C-x C-b for example, and open a > completion window. I guess you meant "C-x b TAB". "C-x C-b" doesn't activate the minibuffer. > At that point, I switch to F2. > > What would a user then expect? What happens in this case is that F2 cannot be communicated with: typing anything there gets no response, until we exit the minibuffer on F1. Then everything you typed on F2 gets processed. > Find in the code what actually happens when switching from F1 to F2 and > compare that with admin/notes/multi-tty has to say about that. Does that > document say something about what we've seen the code doing? Open issues > maybe? Or general considerations? What the code does when Emacs enters a minibuffer is switch to a "single-keyboard mode", whereby it only processes keyboard input from the frame which entered the minibuffer. This is because Emacs has only one input queue.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 06:26:21 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 01:26:21 2025 Received: from localhost ([127.0.0.1]:53966 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbw69-0002MP-0g for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 01:26:21 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:48310) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbw64-0002M5-B3 for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 01:26:18 -0500 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-3862b40a6e0so2440512f8f.0 for <75056 <at> debbugs.gnu.org>; Sat, 25 Jan 2025 22:26:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737872770; x=1738477570; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=fNT585kcEnhHVOKOC2hnxNDJnEI9/OF0ZL/RFz1tOG8=; b=IHC0w+N8hn+8jv3RK+9r44S8QaY9TjqHa41anM0O8GdOJgAlv5+IqJEgz9HCgl/3E1 Wpmo8Uq9kpZcueztOqPEef5lUlbJf10Z+DbPXFAHgcWjpyc5Iq1uLxYeyaL8PNN+Ik+i SvFfz5bW7j3hWi2MZgiApRhgoeHIx+GqtZ9FxVafYzmAH1RJV6TPsGiAbVUQpaMscf4N TlNXxhT1YDDaE/X3GRK16c56zMY6w452YGfHML0ukCiSaYCc4wNArUKk56DD7WbEMKXc 7HyO6rPJiw8sbh+1LzX++76Z0bJ/M4zzf0fDo868YsJRmkAMd8+ag6pbqVopaOQ6w6RF Eagg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737872770; x=1738477570; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=fNT585kcEnhHVOKOC2hnxNDJnEI9/OF0ZL/RFz1tOG8=; b=jdryagkPG46de1+itTCSjZjWayutZ7P1Bplk3CxrBh+NGJbRVdF7ZTSaGErR1hUCck 9FMbso3rGwd6it9BqGp5QiR3Mh2P4JiK+DGDT0qLIApVfIA/D0j2JExGVg1JrvVs2Fkg tzvYM0fs/Qh4C206T26uQJoo1fu5reMhnS6/xEBkQ5yFXHAzTxHZMt+EDRS4mItI1Mlb 7Xj5YQOIJ/QvmVRPMhnZ9+yVP0FwzuKBh6f/yM7awzh5xpKR0yYNBZTcxMXjJM8guXiO qX26NcvPj8cAImcoT9SN1OKPYVKHZP2gNbVIju4llMJU/Co6fRJ5eKOJRukDrTLgusVf 0nsQ== X-Forwarded-Encrypted: i=1; AJvYcCX4w2ctL0Ihei2/CEDlimro7J4qbzZjc5DsSdlMWtk6St11JSWauGUIf9xhESYjFH/i6vJYfw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxJSLbz8bwiq2tDhWUYeblz4invky7pKZnarTM14BEm2jghriUi jqkO0QG9p9WQ7a5qgqMT6D2AmIqZDm0V16VJTcZSlm+bNQPGsFrMkbuewA== X-Gm-Gg: ASbGncuj/q9swx6MIHfiVyP7lJrF2U6sIdhYGstSwa4q0qNTY5M7bgi2MjJe1h3rvvc TK5F7ilAB0MHN/Gn5j44wV4AXgaEP4KuesnmfazN1kHN1Ui3moaAshXVtuotM5V9+SEzcp2ZXTO Y/lzytzDIDUCeltF/d2dW+nJU7fFOcqE+sgusQpvyL7du1jIGbfEx655Z5Dz+o520k9ld1keCD0 dfIpSVq2JDN9vO8F7/3es8LZxuTki13UVSIVHdGKUPjrPzIvaYNIWHB5EnjlnBhVAd+myzzLG90 bwh2FKQLSCNqa6vGRQv836D1kf54OCyQWsOAAgzK0AoCJFCGWLJ0GF/sT495BFQ6EMPza2BOstZ JRPaQg1viu4eOuw== X-Google-Smtp-Source: AGHT+IElVpPe0DTofNIEjWT2MJXcKUz7ThNGhH1XN3V1FkRHD0vCvStzReLf9qZRaZt15HoGz94tqQ== X-Received: by 2002:a5d:64ec:0:b0:38a:88ac:ed15 with SMTP id ffacd0b85a97d-38bf564d6aemr28568087f8f.4.1737872769479; Sat, 25 Jan 2025 22:26:09 -0800 (PST) Received: from pro2 (p200300e0b73e84005db9294b38aae576.dip0.t-ipconnect.de. [2003:e0:b73e:8400:5db9:294b:38aa:e576]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c2a17630asm7369962f8f.6.2025.01.25.22.26.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 25 Jan 2025 22:26:08 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <86msfet8d4.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 26 Jan 2025 08:08:39 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <86msfet8d4.fsf@HIDDEN> Date: Sun, 26 Jan 2025 07:26:06 +0100 Message-ID: <m2ed0q1475.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: > First, there's no "iconified" frames on TTYs, right? so this function > can never return 'icon' in that case, correct? And I presume > iconify-frame is a no-op for TTY frames? Martin mentioned in passing that he thinks iconifying frames on ttys should perhaps do something. So it's maybe a "not yet". > More importantly, what frames could have this function return nil? > E.g., can a non-child frame return nil? Yes. C-x 5 2 can make a new root frame, and only one is visible on the display. > Also, what do make-frame-visible and raise-frame do with TTY frames > for which frame-visible-p returns nil, and what does > make-frame-invisible do for those TTY frames for which this function > returns non-nil? raise-frame is make-frame-visible + changing z-order, make-frame-visible and make-frame-invisible change the "visible" flag. (Just notices make-frame-visible talks about "X window", hm.). Did you mean these doc strings should be changed, too, or did you mean something else?
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 06:08:49 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 26 01:08:49 2025 Received: from localhost ([127.0.0.1]:53934 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbvpB-0001N1-6T for submit <at> debbugs.gnu.org; Sun, 26 Jan 2025 01:08:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:42638) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tbvp8-0001Mn-GK for 75056 <at> debbugs.gnu.org; Sun, 26 Jan 2025 01:08:48 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tbvp3-0006R3-6n; Sun, 26 Jan 2025 01:08:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=By/UMQb3YXclo8RixwqXqEYytys3PEK+86pAYNeUxPU=; b=f/UrEa16hDzQZFHP4dny WFG7UPWCFy3xMWZmSPKG33Lfmgn45EyVD00+aIkUB2F1Rc5sByhGKg1OAm499jqWbcQ9JHgIfitTl BT4KkwA5RablPIYGma61aqi8sJvZ/MJGPFyOCmMJg8Mbl3QDMU6aXeuw9Lty0s88xMbiDKhCrKW7x y6pDt/5Mn7/Q4/Q1vlhuEaB2RfCeqwc/egYpqTbrVG8SbGBoY59AyCJpaGD9jfsmKnDHvteT9/4u5 sxltaRxSARtxGrWSqixLXDKf8fSH0tBCn+iikYfWs3hQJRrndFh1WgXr/kXKmYSKRvHXFSS1cIg6+ ip+lfx2bpM5tGg==; Date: Sun, 26 Jan 2025 08:08:39 +0200 Message-Id: <86msfet8d4.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?iso-8859-1?Q?M=F6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2r04q1wrz.fsf@HIDDEN> (message from Gerd =?iso-8859-1?Q?M=F6llmann?= on Sat, 25 Jan 2025 21:08:48 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org > Date: Sat, 25 Jan 2025 21:08:48 +0100 > > Len Trigg <lenbok@HIDDEN> writes: > > > Thanks, so far I haven't been able to produce that segfault, so > > hopefully fixed. > > Good to know, thanks for testing! > > > I noticed that the documentation for frame-visible-p says: > > > > "If FRAME is a text terminal frame, this always returns t. > > Such frames are always considered visible, whether or not they are > > currently being displayed on the terminal." > > > > I could see that prior to tty child frames that was necessarily true, > > but now we have tty child frames shouldn't that documentation be > > updated? (I'm assuming at the code level it's no longer true since > > posframe hides it's frames by simply making them invisible). > > Yes, that's right, The visibility thing on ttys is now more like on > GUIs. We have to change the documentation. I see you already changed the doc string, by deleting the special-casing text about TTY frames. But I'm not sure the situation on TTY frames is identical to GUI frames, so maybe we still need some special text about that. Also, there are other functions related to frame visibility. First, there's no "iconified" frames on TTYs, right? so this function can never return 'icon' in that case, correct? And I presume iconify-frame is a no-op for TTY frames? More importantly, what frames could have this function return nil? E.g., can a non-child frame return nil? Also, what do make-frame-visible and raise-frame do with TTY frames for which frame-visible-p returns nil, and what does make-frame-invisible do for those TTY frames for which this function returns non-nil? Thanks.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 26 Jan 2025 04:53:36 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 25 23:53:36 2025 Received: from localhost ([127.0.0.1]:53804 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbueN-0005kD-Ov for submit <at> debbugs.gnu.org; Sat, 25 Jan 2025 23:53:36 -0500 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:51479) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbueK-0005jX-8x for 75056 <at> debbugs.gnu.org; Sat, 25 Jan 2025 23:53:33 -0500 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-388cae9eb9fso1868856f8f.3 for <75056 <at> debbugs.gnu.org>; Sat, 25 Jan 2025 20:53:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737867206; x=1738472006; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+5zphUyptayFBa0lDjDXty3VBJsixL+wniIQxw9P6xY=; b=IeXQUOuAI7xjRrNgmFUfEnHvfOQtpwDkDanm351yWUUa4+CFHwLQWGf2ScQV/zTOf/ oF6nClfrFmo2XN80FhrvLawqRuC4BwRasPWp/xrXZw14pkJYj01RxhbTA/Y50HDbVxpO H9UL+RvNEfzYF6N3TNSb3huO2qgDGr6a9rkEe8LO0vdh19CRNoT7yR4zJgrbcjGjDJKZ g19KuuBC188EEaz6pwgGpojkl986nvrM/+Jw+9HeWnfi8aDWRAWqRJEZ1UD8vvf4tYXE tpx1Lf13hR/h5uJyqTJD+rAxpbwtU9d9kTG2170AB5TzN0Efq47NBURL8AAZ5WuSgG+w UwOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737867206; x=1738472006; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+5zphUyptayFBa0lDjDXty3VBJsixL+wniIQxw9P6xY=; b=WuT6IdbV0TkWV0FzgK6UYUOBAa2ZHq1Ewi8D1bsjt2+ebkQdgRS52wxnp+4txUNG+0 LwoJE9mwPtCWPPdz6XCQUw4et7o7ZiuzvG9EoAwH9yvEwqC3phSm6g2R6Y5EcYAC0Gkv Mi3I/W+oJHogMCM4B4Ln+WEt+EoqBKF/GUI1BHn2Exr8R/rQFD5NxjK0rLBp94n07b8c qT4QrPkwZYs8Tx5aJ8cRdz+gUALtx56OUSznh9Ih3H2OyJmzEB90nDDbE0zui0PFsz8p p5cY5c1g1c1szDC5WjsKZ7d487vQ7gIZSmfmjVkktHCZCVq9j8GtBZXjqvRTqBkdWcJ8 5v6g== X-Forwarded-Encrypted: i=1; AJvYcCV5Dc24cQSdn9DzWNqVGfHZQCfDc1LOudv+3N4grlDJcxyYT5wPkahm4GEJNwWftvU6iXuC9w==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwDw7zVQ9eCG7K5qIsiSsW5lR6TMlKr9NqRylwZJr7oF5044jMx 5Ey9cbxyRUVSyolU7yFiuJdaRoEG6ukUy1SSfOmEKA1lq/YwtUIyToj+bA== X-Gm-Gg: ASbGncubOwL2csUMmtLM32z9GQacswvJpe+Qq9n4az/phmUqD1Ny8IVe6lbD6H5fG5v M5u4Z9iNgt8u2mH2+PdB9wTUrbcTWhEXBedeQF71fe8YceW5DkcFs5nMRW9xD00JZH7gw8OzK/Y jIxKNvjfPfNmo8QGk/imWBaWhDymqBVTM9Sb+4A+IeZj1JDj8SJ93MVxgJXnk/s0RVyAYhwik/L ohlbGSLU8ByLFyCpDhznZexasBCNBl+VtcSaax1fs5aqp2e8fnLJy58KHrc+dNBJUNXhSdI22yI kHOjdfdoNz1CimgYMhkb87ixxEJYe7++mSp7Sa6bAaYBeR+BfwULKrIFQobkO2PyxbbPX1GU89s 3UOl6YA3XVEwrdg== X-Google-Smtp-Source: AGHT+IGJXzJ8gYBCukDc+CPc9ZM2O/t1S60M5d6v25qoBt1PU+hxAak5JKdxVmeAlqoIFjC6ojAEFg== X-Received: by 2002:a5d:5f50:0:b0:382:49f9:74bb with SMTP id ffacd0b85a97d-38bf57a9a6bmr37203721f8f.35.1737867205472; Sat, 25 Jan 2025 20:53:25 -0800 (PST) Received: from pro2 (p200300e0b73e84005db9294b38aae576.dip0.t-ipconnect.de. [2003:e0:b73e:8400:5db9:294b:38aa:e576]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c2a1144f6sm7148320f8f.0.2025.01.25.20.53.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 25 Jan 2025 20:53:24 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <CAOGVwe=coO-8NxNV141G2hMgv4k9v--XoDFrw=5EA+sY6e-X2w@HIDDEN> (Len Trigg's message of "Sun, 26 Jan 2025 11:39:33 +1300") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> <CAOGVwe=coO-8NxNV141G2hMgv4k9v--XoDFrw=5EA+sY6e-X2w@HIDDEN> Date: Sun, 26 Jan 2025 05:53:22 +0100 Message-ID: <m2msfe18hp.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Len Trigg <lenbok@HIDDEN> writes: > On Sun, 26 Jan 2025 at 09:08, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN= m> wrote: > > > I could see that prior to tty child frames that was necessarily true, > > but now we have tty child frames shouldn't that documentation be > > updated? (I'm assuming at the code level it's no longer true since > > posframe hides it's frames by simply making them invisible). > > Yes, that's right, The visibility thing on ttys is now more like on > GUIs. We have to change the documentation. > > OK, so would I be correct that our current understanding of this bug > is now best described as "something is setting previously invisible > tty child frames as visible when focus changes to an alternative tty > client"? (Possibly some part of the multi-tty code that still assumes > that all tty frames are always visible). This then causes the > non-focused client to display the tty child frame with minibuffer that > then blocks input from other clients due to the existing single-kboard > limitation. "Understanding" is a bit much said, as far as I am concerned. If I wanted to debug this, which I don't :-), my start hypotheses would be that this has to do with the minibuffer, yes. I would first try to find out what does multi-tty Emacs do when Posframe is not involved. Say we have two frames F1 and F2 on different ttys. On F1, I enter the minibuffer with C-x C-b for example, and open a completion window. At that point, I switch to F2. What would a user then expect? I can't really answer that question because it's not a use-case I'm familiar with. Maybe the minibuffer should somehow be "migrated" from F1 to F2? Including the completions buffer? Or should Emacs display an error when we select F2 and maybe try to switch back to F1? No idea. If the minibuffer is migrated to F2, what would I expect to happen on F1? Closing the completions window, leaving the minibuffer? Then see admin/notes/multi-tty. What does it say about things? Or maybe Elisp Info. Then look at what really happens, and compare. Find in the code what actually happens when switching from F1 to F2 and compare that with admin/notes/multi-tty has to say about that. Does that document say something about what we've seen the code doing? Open issues maybe? Or general considerations? I think only if that all works as expected, including Vertico and others which play with the minibuffer, only then I would bring Posframe into play.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 25 Jan 2025 22:39:58 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 25 17:39:58 2025 Received: from localhost ([127.0.0.1]:53025 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbooo-0000Bc-D0 for submit <at> debbugs.gnu.org; Sat, 25 Jan 2025 17:39:58 -0500 Received: from mail-lj1-x233.google.com ([2a00:1450:4864:20::233]:49572) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tboom-0000BK-Ab for 75056 <at> debbugs.gnu.org; Sat, 25 Jan 2025 17:39:56 -0500 Received: by mail-lj1-x233.google.com with SMTP id 38308e7fff4ca-30613037309so33010381fa.3 for <75056 <at> debbugs.gnu.org>; Sat, 25 Jan 2025 14:39:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737844790; x=1738449590; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=YvzGjEfpn2mNCnplSywLoKTftx5G4reFwysyJZdvaH8=; b=aful9u//My1hXFmryQV//HrwiZcUx/5Z18UoNCpU29nXgmuDxrQ24pekQEVyDMszc3 keRWOWZyMc9a8YoXUjLlZb36aY8pnQlG9yzqeSE15idOrDAzej+qPkOzBms63TZ2pVlL ezXRh1ZvPD+V0tn5cMD/BfFfruwOR8wNVTt1Mdcunaln98PQUXsSPm8oZ6C/F3X8LhZf 10rnJNdd4wGT/auUTlXDVvnukOKClfBDkLPuOEqxh1iUJI9wcyRLNNJeob/5OhGf69X9 wq1v4WRN1b1xUAj8sVBH+3ujSlzmiKgPLpQ018ayOGSWLlrcjKU5tWwtaXFd/OL7AhyR GX2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737844790; x=1738449590; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=YvzGjEfpn2mNCnplSywLoKTftx5G4reFwysyJZdvaH8=; b=SdyNAou/vppoDH2eSBO1tC81W8OnjrBDYxTRgAsVeYCV4av1oInqBDtxS37mVfw8yN 9fJMllUOz3C//TWSCIRWWpGd6eeQsETGvKi8vRKRTzFXe9BPspbbKufnnDN9Q8aYyIhl /I5ocQH65ENtgLbGvNKuwny58affXgoZtxvD4k2eMJnkoYBlIvnC0YgKrLouCzj1yOVe RrCWTS1oH/fSoxfnyYW3TSWScQhtQvOqp5QuY7ah2pfYwL5GuFgMfKAaatuCZ5ovutwS ID+tK/kMfHVD6WqEpMRXYNnfyMCQfeOVQegs8NZoycJMBjWftQHoGWDDzXzZ5rrRV3Bc KAqA== X-Forwarded-Encrypted: i=1; AJvYcCXghJlwEFrZlcKhACKWve4pVd3+tCgSNxvHjE9StfgP1ebT4w1OAkU5EHc+Dop/4PUgyXVuIg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzOJE1SunwKxzbpQF7amdG/mBZJTsk+xR9HoaBynAiG4FOT1J0r dPBsAo1vDJfoxhivD9UbK8Fgf/FTlm7niPzdfNH4oF17CKX7NwecGDXgK6Ll+8vd5bZS6H83e0d +kmi8j3jso0vw7zVMGgbHgrx385M= X-Gm-Gg: ASbGncuw2K6ZRFs8iqnybOYKrPPOlu8k2xtiUCbdJbdexlqY2VbvpD81sUgG1n8Vwhp vL1cdpwWyBKvs1Tp4+DFvqq5iqm91M4oiU1vFdLrTU2OfZwWrdaKAf4FdH5Sv X-Google-Smtp-Source: AGHT+IHefos89uZPnp97ZeWpAEznygz7GPVBy3DzpC1Ie/6J8lEU70dzfxxBmCa4esJip0a1k6rDZyjni45OtUSbn5Q= X-Received: by 2002:a05:6512:485c:b0:540:2122:fae9 with SMTP id 2adb3069b0e04-5439c2859d1mr9371186e87.46.1737844789536; Sat, 25 Jan 2025 14:39:49 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> <m2r04q1wrz.fsf@HIDDEN> In-Reply-To: <m2r04q1wrz.fsf@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Sun, 26 Jan 2025 11:39:33 +1300 X-Gm-Features: AWEUYZmtnhSZUr0tNTfUrEDfzO3mNTL1rpga_DEcy6A-5eXYXC0ie_8G-WYFFRw Message-ID: <CAOGVwe=coO-8NxNV141G2hMgv4k9v--XoDFrw=5EA+sY6e-X2w@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Content-Type: multipart/alternative; boundary="0000000000005aef1b062c8f85be" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --0000000000005aef1b062c8f85be Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, 26 Jan 2025 at 09:08, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> wrote: > > I could see that prior to tty child frames that was necessarily true, > > but now we have tty child frames shouldn't that documentation be > > updated? (I'm assuming at the code level it's no longer true since > > posframe hides it's frames by simply making them invisible). > > Yes, that's right, The visibility thing on ttys is now more like on > GUIs. We have to change the documentation. > OK, so would I be correct that our current understanding of this bug is now best described as "something is setting previously invisible tty child frames as visible when focus changes to an alternative tty client"? (Possibly some part of the multi-tty code that still assumes that all tty frames are always visible). This then causes the non-focused client to display the tty child frame with minibuffer that then blocks input from other clients due to the existing single-kboard limitation. Cheers, Len. --0000000000005aef1b062c8f85be Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote g= mail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Sun, 26 Jan = 2025 at 09:08, Gerd M=C3=B6llmann <<a href=3D"mailto:gerd.moellmann@gmai= l.com">gerd.moellmann@HIDDEN</a>> wrote:<br></div><blockquote class= =3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rg= b(204,204,204);padding-left:1ex"> > I could see that prior to tty child frames that was necessarily true,<= br> > but now we have tty child frames shouldn't that documentation be<b= r> > updated? (I'm assuming at the code level it's no longer true s= ince<br> > posframe hides it's frames by simply making them invisible).<br> <br> Yes, that's right, The visibility thing on ttys is now more like on<br> GUIs. We have to change the documentation.<br></blockquote><div><br></div><= div>OK, so would I be correct that our current understanding of this bug is= now best described as "something is setting previously invisible tty = child frames as visible when focus changes to an alternative tty client&quo= t;? (Possibly some part of the multi-tty code that still assumes that all t= ty frames are always visible). This then causes the non-focused client to d= isplay the tty child frame with minibuffer that then blocks input from othe= r clients due to the existing single-kboard limitation.<br></div><div><br><= /div><div>Cheers,</div><div>Len.</div><div><br></div><div><br></div><div>= =C2=A0</div></div></div> --0000000000005aef1b062c8f85be--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 25 Jan 2025 20:09:00 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 25 15:09:00 2025 Received: from localhost ([127.0.0.1]:52803 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbmSh-0001A2-Um for submit <at> debbugs.gnu.org; Sat, 25 Jan 2025 15:09:00 -0500 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]:42133) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbmSf-00019g-O2 for 75056 <at> debbugs.gnu.org; Sat, 25 Jan 2025 15:08:58 -0500 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-3862d16b4f5so1952302f8f.0 for <75056 <at> debbugs.gnu.org>; Sat, 25 Jan 2025 12:08:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737835731; x=1738440531; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=ZM4blquCb6uvAuMD/9LtpFYTUCDuoG+fmFTg0KVuJwY=; b=ZumtJ9Rd6tPJMRWrSBLgBK6xgk5uLzKGHN52bjT6j8bRjUiJXs5yLUe2l4VnbLl0W/ ylQc6CWRm6M/f8WJCuSN8Cpz7Mrrt5c2j32csA950z2bIWRhqGhKLbudj1MrXnCdBvcc TbXqR7CMxJuL/e++Ak/DLBcDzu7HsPFVQNBswcl9sDXsz/6VhbjEnEz9RKDJdkN5n1+y Hs52HX6nbHGsSoEXOXbLRr3J+DhHOcIJs+e4kanW46Hwl8nbQtX2TSFeBpX4dJIbRfle etds88Ge14TnbEGzYYubBhftkbNFiJkjOT5E+09NRyBZlv74Qqjp+wNwSPwPDvcZtPWB GEaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737835731; x=1738440531; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ZM4blquCb6uvAuMD/9LtpFYTUCDuoG+fmFTg0KVuJwY=; b=jeQ7QnkDr2tXQuyrj4hQi2IVJREuCyGYsOY1LEhQiNM419af2mthxTn8mosgAFrTq/ JS77lzQsXBFE9cBGNDpsjjmM1cVnLwUrN3Z8yCObLCYKgDR7vOzxz4j4QeYn3H1M8bZv j764uySI0w7rgfDebNrSag6uCqBfBua6g6dUANZkMidHpEwBHg1zH4zG5J7mK22izOrq WisgZUM+Gnb0hECrpALQOV9wCin58frCAzLb8pRZP2mgHkRMh+dYwDvVWvN5invcqfKK iT85y3G/p6sioVdx3q/N0OyaEfC278JOCVaK5iaX5bbpOlaz+ep3yhK5LpA9tdtdH3wz dmLQ== X-Forwarded-Encrypted: i=1; AJvYcCXLOGXA6fRKUawX4W+b1y4KEf/uDZnHEoZGnhYORtllAadq81JvJD0GNoADIZGyjbIpyNBgEQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yw0++JH2VOL1vJ79t+LPnpuj0lJc/4QzMjKrIHxZ0DuUQqjeHL9 wnbX49qxfGLDW7FJGnKlBBewGpe1q2ZZzoi4pMMVIbpkqStFSxF0iquHlg== X-Gm-Gg: ASbGncujWAN/qMakdbuzl3AC8cQRgr+rg6khswiXueFXvlm1EUwZ9G0eP/pjx6zp3gt hp0DeS4GYaOiv1O/wtkofpcFGAFup6nIPOvDc6K8olAN9TWV/xS3J+G+HnyeOyzWbqqaHScUyuU vwb0h0fCSUscUp6JkusTpUrnJ+KEfminZEL9tg9gbjbwBtej6MCwnCTIL+jdXnoE39JvubbW0+N lhOn/J6mQ/8HZjP0WxrKCSuuzS9ZUb4h4rJWR6OziGU2vquxz1t0PpH4ogA/nsXMfY0aXdZZM6W ysrWTk9ytm8ve3X/Td2J4WGJIxTv1DdQ6+km00pl6iOJYQBvLKbOlVyS5P28XNOfKcACaEDUwi6 WFge3v6DAPmCJEtRUC9sIQnfv X-Google-Smtp-Source: AGHT+IFilcilFdJjbhgrP3R7trNeW9hU7OK9KcxwRa8Pd/uy83ohwlSFZzdjfNJELcevZoMftxc6lA== X-Received: by 2002:a5d:59a3:0:b0:38c:2745:2ddb with SMTP id ffacd0b85a97d-38c27453024mr12577531f8f.2.1737835730734; Sat, 25 Jan 2025 12:08:50 -0800 (PST) Received: from pro2 (p200300e0b72d4b00903defc95002bea3.dip0.t-ipconnect.de. [2003:e0:b72d:4b00:903d:efc9:5002:bea3]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38c2a17d6e2sm6331484f8f.23.2025.01.25.12.08.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 25 Jan 2025 12:08:50 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> (Len Trigg's message of "Sun, 26 Jan 2025 08:24:50 +1300") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> Date: Sat, 25 Jan 2025 21:08:48 +0100 Message-ID: <m2r04q1wrz.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Len Trigg <lenbok@HIDDEN> writes: > Thanks, so far I haven't been able to produce that segfault, so > hopefully fixed. Good to know, thanks for testing! > I noticed that the documentation for frame-visible-p says: > > "If FRAME is a text terminal frame, this always returns t. > Such frames are always considered visible, whether or not they are > currently being displayed on the terminal." > > I could see that prior to tty child frames that was necessarily true, > but now we have tty child frames shouldn't that documentation be > updated? (I'm assuming at the code level it's no longer true since > posframe hides it's frames by simply making them invisible). Yes, that's right, The visibility thing on ttys is now more like on GUIs. We have to change the documentation.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 25 Jan 2025 19:25:45 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 25 14:25:45 2025 Received: from localhost ([127.0.0.1]:52670 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tblmq-0004PE-TP for submit <at> debbugs.gnu.org; Sat, 25 Jan 2025 14:25:45 -0500 Received: from mail-lj1-x229.google.com ([2a00:1450:4864:20::229]:52440) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tblmM-0004La-1F for 75056 <at> debbugs.gnu.org; Sat, 25 Jan 2025 14:25:16 -0500 Received: by mail-lj1-x229.google.com with SMTP id 38308e7fff4ca-306007227d3so31286121fa.0 for <75056 <at> debbugs.gnu.org>; Sat, 25 Jan 2025 11:25:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737833107; x=1738437907; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=cKXI2v5DW1Xs9FACU4oc8tkNIBisfho88a3m/okugmg=; b=GKGlDoU/NJ07g/puFkbY95ewblkS0LD+vNP/2nJso/V6vMvGDKsqCQNktrBJXZoG2r P8DTXPxCiwzBsZzg5LE6Q302WGew90QiH4RLhV8/UISWxftM2wT5Tw2PeMAUIf9/gVvI fgM+s3XKLXm1crSevmbo8nwOtD33SkxFf0upQfXKWk4liSTpoSgdxsA4kgUbAzKNer+B p0xu09YHK1rv7kCkpq628rPIwdk+2tqueNoDoehpyxmIpz6Vbwp335zoGfPIkTaCDwWD 2P0JvuHrRO6umqnieN4BWQ0woYLTEnPtCEl06d4P1ydLxSoWx7r23be2w9ORmErtA0rD OauA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737833107; x=1738437907; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cKXI2v5DW1Xs9FACU4oc8tkNIBisfho88a3m/okugmg=; b=l+ob0HJdcDqtch0/jmyKQxjjDH0WEEXP3h3mkE+I/hy1bMM4GxH9LXQC1TYaeh7kCb lbYiFJKihFB5pzbsitHNK4ov5Jrmmu0SrqwT+axVOn6SVefX14J3H0ssqfG9XYzJHyTg zsnLSXygMYkPonaQ8jhFKJ47PgRzfS0NUC+yqan7h13FMmhghpQqbA0V4E3OsGW+X20V eLGozen3ooRWeRP9sx7bWSuPdglcHXt+HJzLDYL6xJ71pWWMPZFxl+F8t6l4IVl0cI6a N56/F/08lUIVvF9vhTbv9vXml7grnb8VBDMJdFPmXKTzWLyjA6mixcZGcbHnI5EZGvFo apDA== X-Forwarded-Encrypted: i=1; AJvYcCWIyf6XUb5lrlYsoAQAohUdcKStEdrGo9136FksqcPgEgSdtTjFw/pPVdVCgWfveFbKEBt7sA==@debbugs.gnu.org X-Gm-Message-State: AOJu0Ywjhjc+FLoSDOE9VDZ0gzFNnbv8HWgdX0R+ts9EN8oDthGs9RDx qEuVXhmJPg6+c6BgwiCrmzO7EyEgNVT+aHydBkPakyy0jJHCkdLW2TXQd+pwWXRgrcxKlgWP0DQ OOtN4dPcnvJIWKc2knr09t6RrvHg= X-Gm-Gg: ASbGncsO4d+bsWly+gIQ3sH67OKCfqK5zqR+F6OPVi6B3oihFcRCTlnEoN8/jlusLJ4 YoS6zVjgamKG1yPSy3iP2uj7rmYtqljQi2+PqrEEOnhnMEU4hNVMnELw+y3VC X-Google-Smtp-Source: AGHT+IHBBE0WEY5vPsVCjxXzHP7lU0PxhFayLIH9hPPiGRtEYD3DPJQFp9rQqZmAUSIFwDxjxvwkJ5HyCyqb/KkaV4k= X-Received: by 2002:a05:651c:b0e:b0:2ff:df01:2b43 with SMTP id 38308e7fff4ca-3072ca9abd3mr159021881fa.18.1737833107187; Sat, 25 Jan 2025 11:25:07 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> <m2lduz9f9f.fsf@HIDDEN> In-Reply-To: <m2lduz9f9f.fsf@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Sun, 26 Jan 2025 08:24:50 +1300 X-Gm-Features: AWEUYZkpB6IoiPQc6jMxGRAUPWKYh5kUo9nCUR62GXeKq9_b2TGdvLo35tZiORg Message-ID: <CAOGVwe=fKsr4fW_-7N+wP53ci+cZj1OBbq-OKn49V-ucRhJDEg@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000086fdd062c8ccd1c" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --000000000000086fdd062c8ccd1c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks, so far I haven't been able to produce that segfault, so hopefully fixed. I noticed that the documentation for frame-visible-p says: "If FRAME is a text terminal frame, this always returns t. Such frames are always considered visible, whether or not they are currently being displayed on the terminal." I could see that prior to tty child frames that was necessarily true, but now we have tty child frames shouldn't that documentation be updated? (I'm assuming at the code level it's no longer true since posframe hides it's frames by simply making them invisible). Cheers, Len. On Sun, 26 Jan 2025 at 02:47, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> wrote: > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > > > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > > > >> Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > >> > >>> You either have a very wide display (x=3D...), or the selected frame = at > >>> this point is a GUI frame. I guess I can fix that over the weekend. > >> > >> I've pushed something to master for the crash. Please give it a try. > > > > I had to revert that for now because I have introduced a bug somewhere, > > and can't fix this fast enough, sorry. > > Fix now on master. > --000000000000086fdd062c8ccd1c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>Thanks, so far I haven't been able to produce tha= t segfault, so hopefully fixed.</div><div><br></div><div>I noticed that the= documentation for frame-visible-p says:</div><div><br></div><div>"If = FRAME is a text terminal frame, this always returns t.<br>Such frames are a= lways considered visible, whether or not they are<br>currently being displa= yed on the terminal."</div><div><br></div><div>I could see that prior = to tty child frames that was necessarily true, but now we have tty child fr= ames shouldn't that documentation be updated? (I'm assuming at the = code level it's no longer true since posframe hides it's frames by = simply making them invisible).</div><div><br></div><div>Cheers,</div><div>L= en.</div><div><br></div><div><br></div><div><br></div><div><br></div><div><= br></div><div><br></div><div><br></div><div><br></div><div><br></div></div>= <br><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class= =3D"gmail_attr">On Sun, 26 Jan 2025 at 02:47, Gerd M=C3=B6llmann <<a hre= f=3D"mailto:gerd.moellmann@HIDDEN">gerd.moellmann@HIDDEN</a>> wrot= e:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0= .8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Gerd M=C3=B6l= lmann <<a href=3D"mailto:gerd.moellmann@HIDDEN" target=3D"_blank">ger= d.moellmann@HIDDEN</a>> writes:<br> <br> > Gerd M=C3=B6llmann <<a href=3D"mailto:gerd.moellmann@HIDDEN" tar= get=3D"_blank">gerd.moellmann@HIDDEN</a>> writes:<br> ><br> >> Gerd M=C3=B6llmann <<a href=3D"mailto:gerd.moellmann@HIDDEN"= target=3D"_blank">gerd.moellmann@HIDDEN</a>> writes:<br> >><br> >>> You either have a very wide display (x=3D...), or the selected= frame at<br> >>> this point is a GUI frame. I guess I can fix that over the wee= kend.<br> >><br> >> I've pushed something to master for the crash. Please give it = a try.<br> ><br> > I had to revert that for now because I have introduced a bug somewhere= ,<br> > and can't fix this fast enough, sorry.<br> <br> Fix now on master.<br> </blockquote></div> --000000000000086fdd062c8ccd1c--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 25 Jan 2025 13:47:53 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 25 08:47:53 2025 Received: from localhost ([127.0.0.1]:48981 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbgVt-0000Rk-CB for submit <at> debbugs.gnu.org; Sat, 25 Jan 2025 08:47:53 -0500 Received: from mail-ej1-x630.google.com ([2a00:1450:4864:20::630]:48296) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbgVo-0000RI-Qe for 75056 <at> debbugs.gnu.org; Sat, 25 Jan 2025 08:47:51 -0500 Received: by mail-ej1-x630.google.com with SMTP id a640c23a62f3a-ab2c9b8aecaso541017766b.0 for <75056 <at> debbugs.gnu.org>; Sat, 25 Jan 2025 05:47:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737812862; x=1738417662; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=G3bUHoNUvu60/qW9rOrjnF74J3Xopw2J4Q+yVQzpTBI=; b=cA48NR2KcupEjMMmd6IRrTYHmK1hiL5aUoShQKygZ+PW+tnqO1qblQvhn7NP1fUlu7 5kyxejJ2rMAVRc4DWDEmeUf9Rta4dJCW3PLScwjs+lijCRXz+6YfinHLX+7Mt+AA37kt 9xYs0Y3YsQCx5FXDz17PlVjhVJryQmvCcWqI8t/oMMpMP+zeAet1X5dRJEMtfiNigzzD GXFae/SunuNqvyCEcOSmN07gnZagYiS6HVl/5OmtmV3jFVBJx03dG7zd4k75dH71Wkh9 Mjg5ki0hlKeF8jZVeetQ0sRXCXyZ57eorOd4pY1BSGNgUAfmdlA1EumPJiitutYS4GG1 a6bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737812862; x=1738417662; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=G3bUHoNUvu60/qW9rOrjnF74J3Xopw2J4Q+yVQzpTBI=; b=DBdJRxXFE3NGxDyw3XLtH98PVdwjVolCEVSEbTOmPkjkJoF8vUSQSHzwHFhqsRtAv4 cumr5imOa7MpbIhze6Daslx6cJL4IdaBTmr6duqyDvqKv1Lfo2CvUF6NesfnRp8lESTq pt5P8zaUN/aaefDwjDpKslf+N2XhvZG/F8AcJBZQBc28doWVmpVYsIRpqQqvIOvS03NL T92l8CnFhVOSsj7PAeQUd+lK1ZmqsXtK/IawostodfUg1u6cY5rPlnFG2LTQqkT+4h12 kH3vBEAK4oNU18mgpE4S6b0iW8LE9bSB/awn8oGqYbDMPqR95+x9/RrBNYbyYXctPu4f PI9w== X-Forwarded-Encrypted: i=1; AJvYcCWPpR1ufjKFSVpVBPgFhUBoa3noCWglNQe1HWfEdVDpXcjDZLKLRZLqKHSmDfaS9TdDjOXNRg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyE3HgfInjMdkdvKmRkjMRoawOXyWML9kt5mn28g+01nllKpx+I 1Of3YHaHfRwCQGtEPzQcqbxmi/UM8DO6sFLQ7FuNBf0EGqougsnNSCL6yQ== X-Gm-Gg: ASbGncvBJASGMS3b4eIBnn56CQS9J8pRoKQjl2kihnUmC+ssTsR//5PXh2kjj5KrocN 4nUYfdT4c0K3F8w/pi+T/egj5buUt3fCf5h5kPwnlfKCPVfeljX6Bj+byJWLjhvl7d8bUIudYEN +QwFcgprWU1D3nIZvk29LCKTeRd91bRAsk0RzAQkuAOVmUlLu6n25QpXqkVlm5LRQJ9IhekYOez Q0LxWHdP7+md5DOhuG/eylQMJl3e8GfM2UWsDAWQMJjoAuFi8Yq413oFnXnErfzlz/s7CrHdjbA 6vSy6dAYQ6LDWnwEYLkUlg7yJNK3T8cOlsdTmu5rO9R74B8czCxFVXeuAsQ/9EtvWACKgYROt7K NZ3LG03zt/1+2Cg== X-Google-Smtp-Source: AGHT+IGfERNGK4r7ytCE7pe/sRy2m66saIZoJ0aAPSuKkvrIEjYA89ULuV3B0CVZB8cVOmP8MRbTbA== X-Received: by 2002:a17:906:c143:b0:aab:9842:71f9 with SMTP id a640c23a62f3a-ab38b10ffbfmr2914246466b.22.1737812862013; Sat, 25 Jan 2025 05:47:42 -0800 (PST) Received: from pro2 (p200300e0b72d4b00903defc95002bea3.dip0.t-ipconnect.de. [2003:e0:b72d:4b00:903d:efc9:5002:bea3]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab69179d7c7sm56908566b.112.2025.01.25.05.47.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 25 Jan 2025 05:47:41 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <m2h65ni8rk.fsf@HIDDEN> ("Gerd =?utf-8?Q?M=C3=B6llmann=22'?= =?utf-8?Q?s?= message of "Sat, 25 Jan 2025 09:43:11 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> <m2h65ni8rk.fsf@HIDDEN> Date: Sat, 25 Jan 2025 14:47:40 +0100 Message-ID: <m2lduz9f9f.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > >> Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: >> >>> You either have a very wide display (x=3D...), or the selected frame at >>> this point is a GUI frame. I guess I can fix that over the weekend. >> >> I've pushed something to master for the crash. Please give it a try. > > I had to revert that for now because I have introduced a bug somewhere, > and can't fix this fast enough, sorry. Fix now on master.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 25 Jan 2025 08:43:22 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 25 03:43:22 2025 Received: from localhost ([127.0.0.1]:48368 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbblC-0001B8-4C for submit <at> debbugs.gnu.org; Sat, 25 Jan 2025 03:43:22 -0500 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]:50218) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbblA-0001Ao-Jz for 75056 <at> debbugs.gnu.org; Sat, 25 Jan 2025 03:43:21 -0500 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-5d3cf094768so5382938a12.0 for <75056 <at> debbugs.gnu.org>; Sat, 25 Jan 2025 00:43:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737794594; x=1738399394; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=8gqcYGIIcijlTNHIKd6PUKKnJ/O97jhhZm20+e+R76g=; b=KfMXPeE3fTckZ6WYzFL10cn4DY8sq13z0ohcsvmCs27FcQP1QGMfZ36FNG6qY9D+xS a0xbPsE0Pfm9rc5rn1lNct+e4Av0gASUKdLRargCx5tCIHIWZQYtAnKJryQJWygTz0JC ZuvdVVVS7w8lCMiMVOq2GYam+L2BgAXYphT1wBj6rsjbxN0pBj3w2bfbpY2MLxxHV2o6 JmGFhK3HXWmpSu0lJv7XB0g8gggLlLYP+qwYI1a793OMmberARYmqoeQIy54iTSSMbYt +rXC7WS86DKYUNoSJsZdzLMxxchsu6vhY3XbG+Vt00YXVT+VbnHadBEIO9ajxOit8TIH HFFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737794594; x=1738399394; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=8gqcYGIIcijlTNHIKd6PUKKnJ/O97jhhZm20+e+R76g=; b=wTMPfzFq7oL3lzDd+9kcldyJIsBPDt/yLLgEmkGNEW3LECevdrMN2Jt3J/YpzJtElp JFYW6kgH4YNGHdW8v0SsIOhaJBePmLey7CgeUL1KlbXCfByEwef2XMUO3xhso6fv2SVi 1syWRX/ZUT8DedPcbN7tw1zjY0whrn0p4RvzMwPnhSSwJKApnbhu670kkrLMUifgfygh Xm4J9YWsxrj24MjkGTLeHjpXNjngZyJ0K+r5ue5w/aypacs0aJ+dSl/VECVnQrmB2B3n 1HgqW7B6og9j4uwFYMoYM88lK8YcAdUtRmZgFK1z2RtUcJo+fuX3xF/tfpzR68BINrgU l2cA== X-Forwarded-Encrypted: i=1; AJvYcCWL+fmi47RiFRkiMJ5pU8b/2LSONtzL+AFo6o/yIVgeq0R0k7AiYy5OkAjpGtNlyTL0NF6g3g==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwKTfse/HuqDche8tOJ6utws5vlV/IU9pGHp4XyM1TMoiXSUbX3 cvb44cvQGYVg9e7tpTqm4YlwT670x1Au+CJA9hvoVx7a3JgUMM+qJC3B3g== X-Gm-Gg: ASbGncvMI/PZuz7VBWEVjzjxk1IbXAdpt6fkPwOWi1EZBS9EdNjqsbwxGlZyvbYrFKN ZsYvsAkllMgEfv0rCIr+Ds5kwj14B3Wdzp6Qgl5Fg46bjhBxR5nWTPPmc9uzYnqoqVXGnzxc6gV /3cAunsrNOmL21EtQcR9xol94WTE1eGu3G8bvbzx5qFuOKP/b36qjSAHBLQcuPut7R/Fy9jN/wm AbIxenpqGWtmqH6EzYfu7dRG7CllEgglYMZiBlLvNNN7Y3GqVTJKxk++WXVrTCYM7Q1f128EDXH V9XK0ATgqlm5JNWG4GAqa8oEew/jpuPpwYSnCyK9H7wmY4D1Ke9xSk7GfKEx/lHsHjP3sNeEr13 EimZGp78jPnuhtw== X-Google-Smtp-Source: AGHT+IElBT5+igQ7hAfqpPaQi4vINBkjjdLCgZcoHVVaqw8j4nmQopSR5tDtS87G0HDO72ljMQ80kA== X-Received: by 2002:a05:6402:2552:b0:5d9:f9b8:e7fb with SMTP id 4fb4d7f45d1cf-5db7d8272fbmr30021446a12.22.1737794594124; Sat, 25 Jan 2025 00:43:14 -0800 (PST) Received: from pro2 (p200300e0b72d4b00903defc95002bea3.dip0.t-ipconnect.de. [2003:e0:b72d:4b00:903d:efc9:5002:bea3]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc18638ed2sm2286900a12.36.2025.01.25.00.43.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 25 Jan 2025 00:43:12 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <m2v7u3nzpi.fsf@HIDDEN> ("Gerd =?utf-8?Q?M=C3=B6llmann=22'?= =?utf-8?Q?s?= message of "Sat, 25 Jan 2025 08:02:17 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <m2v7u3nzpi.fsf@HIDDEN> Date: Sat, 25 Jan 2025 09:43:11 +0100 Message-ID: <m2h65ni8rk.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > >> You either have a very wide display (x=3D...), or the selected frame at >> this point is a GUI frame. I guess I can fix that over the weekend. > > I've pushed something to master for the crash. Please give it a try. I had to revert that for now because I have introduced a bug somewhere, and can't fix this fast enough, sorry.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 25 Jan 2025 07:02:29 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 25 02:02:29 2025 Received: from localhost ([127.0.0.1]:48217 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbaBZ-0004h2-4f for submit <at> debbugs.gnu.org; Sat, 25 Jan 2025 02:02:29 -0500 Received: from mail-ej1-x62e.google.com ([2a00:1450:4864:20::62e]:58517) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbaBW-0004gi-GW for 75056 <at> debbugs.gnu.org; Sat, 25 Jan 2025 02:02:27 -0500 Received: by mail-ej1-x62e.google.com with SMTP id a640c23a62f3a-aa68b513abcso591872966b.0 for <75056 <at> debbugs.gnu.org>; Fri, 24 Jan 2025 23:02:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737788540; x=1738393340; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uhohBCOfPaurDVR3nKMfkAlCRPw8k7Pg+AVeY+W20sg=; b=HbCpmT2SCENzOQcC1+i7U5X/8JqIbotHQiXj7kxU4QXMQp60EWPfmA0vTF0tKN/z0a 9C0V1N+ITUfnawDieOVaXv/XubMGjiJSWar9Bcehk8vKc3FNc72L4piz6mtpAYdrxObK yUyZtKETT7gatpJKJLzu3tsAAnPY1tA5WQoC78XzZps0dMNa6ZvPWrP/kIyIV1JEl4i0 ozoLmaJcyc+Dry5S/pWSQE3uXKHVl2bjnNtXi4zDJKE+DiT8YVC/fOJD09X9Z7UO6w2x gUQZaQiovp7IZ+gmnyeK8Zm59PMUxO5bw0qwy2oV3KXQYazAzsFnHM38vPfB6WLD1Q20 Lzqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737788540; x=1738393340; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=uhohBCOfPaurDVR3nKMfkAlCRPw8k7Pg+AVeY+W20sg=; b=mCFk3TC9mrOUomK4LQ1tB73VvBoR6qrbHM13WaIaDaZIvK+PD8xxk4cNX05pPzEJyo AYdBKjva9o/VGKLF1TTkN9rrIdPve4PEDdb2O8XmMTmZg6lXAsZzz/2aVUjkkZLgar7Y UyF0/Q9Nq3vPPEzEvs975CvzlUERTZ6AOHBfcyjn0FSz+XbN0MbYmYiRXg29e94JRQjD J9Y2Pr3sJTyD2Krm7d/Oent98MdPTf4MkZA4FPqtH3VHnBpEVLV8a5qfdiLBqUBryCDD nqFe0pnH9lIdK4rwBC4LuRRpbJLHzCabGZrnnFZ/x0BpDQBE4bjA0L1lJx1bQGKn/iHd jymA== X-Forwarded-Encrypted: i=1; AJvYcCUBvVA1VkVq70mUUTDjvmNih0K3boruN3YwBKsw90r+jjZgBnQ5JDljDAfKSVOD73gk66ALog==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yy9PaJH4O2ri8SCXbYKFxv/WImE+1Et4k/9dXLEi0b/5IpSTx6z q+j7ly1WnBJxKZY/EAPIzzCojzjstVy1ASvHfeo6ay6NSF1MzYH2DLgHKQ== X-Gm-Gg: ASbGncsRlTsxogrw2seKFU7x/t1ECbb8EGSnVbvQRPH+c6kOGQkM+pCiFrsuh4Sb/IN /XXslNyO/Ee6UPZbqPcBBWDmIvENCG2VpdYYxRO5qGCm0h7JJpNRX0OLM4x/ILpyr85/zCMCnX0 F+D9o0iu87lu8ld0g++bVyE42kbyEQeezwTfbQRH/dFnEDM07u0vwaOV8MQzzo57IlICTB43EIU hB6+rrvkq8Il2f9GOZEHiwutbysnltWPGYq72fSMkzqUSKegYp9wvirTJm8Qlsa/jbUlSRnYCiM QV8X9QChRahmKyCFHj5HswgNZ7DegaqoGF/6lyNIBTwydWJoqO2X8/OiBbHE+7Ws/O2nC/3xhPJ On/SVmQ7aEK+3Sw== X-Google-Smtp-Source: AGHT+IGOCEz6kBUXdRHfBBDW5XIXugU/QS1hqcDaPdHL4Sad0N8gLmIxxloaHp+TYM664Voxnpgv6Q== X-Received: by 2002:a17:907:1b1c:b0:ab2:c0ba:519e with SMTP id a640c23a62f3a-ab38b3701d1mr2890634566b.35.1737788539619; Fri, 24 Jan 2025 23:02:19 -0800 (PST) Received: from pro2 (p200300e0b72d4b00903defc95002bea3.dip0.t-ipconnect.de. [2003:e0:b72d:4b00:903d:efc9:5002:bea3]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6760ab31dsm238014166b.89.2025.01.24.23.02.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jan 2025 23:02:18 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <m2frl8ouco.fsf@HIDDEN> ("Gerd =?utf-8?Q?M=C3=B6llmann=22'?= =?utf-8?Q?s?= message of "Fri, 24 Jan 2025 21:00:23 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> Date: Sat, 25 Jan 2025 08:02:17 +0100 Message-ID: <m2v7u3nzpi.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > You either have a very wide display (x=3D...), or the selected frame at > this point is a GUI frame. I guess I can fix that over the weekend. I've pushed something to master for the crash. Please give it a try.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 25 Jan 2025 03:46:35 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 22:46:35 2025 Received: from localhost ([127.0.0.1]:47992 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbX7z-0003Ty-GN for submit <at> debbugs.gnu.org; Fri, 24 Jan 2025 22:46:35 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:55503) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbX7w-0003Td-Lk for 75056 <at> debbugs.gnu.org; Fri, 24 Jan 2025 22:46:33 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-436a03197b2so18332375e9.2 for <75056 <at> debbugs.gnu.org>; Fri, 24 Jan 2025 19:46:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737776786; x=1738381586; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=uhNjKveV0K28l0IFAizvJdnfEz0pCEql7Q+WZ9hHzWQ=; b=H5W2eCe6lVreRVgkXm+jIxe2FOd0E55GFdO1UBCyGMEKK72XGwWuqDnhhsKaacqGrg VIxhwQsRQycA8jgUUx2VeR83dZq+CGUHEYo4/KJ5IiU9fkBUF5iprWYF95j08zNlMXK6 Op9h+vTSfdAQ3BOxzuPuYsPia0KRh402w7+xXU9OVgpOuNPKUegFlZdg25RTXcyQ+PzT 0gvwEp3EHzD1dSJBfX53EgfVd7Gi55ZrL0SSvhyFSzPpwqJVmjdnwJur4Ummrihw0E76 iLuuZiCONxwQDTQ0nuglxfOYYT3fq48Pw/KSMlmUd+A0ae8T3EnZjmwo4w0u57nACZot cAQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737776786; x=1738381586; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=uhNjKveV0K28l0IFAizvJdnfEz0pCEql7Q+WZ9hHzWQ=; b=TmGG+SaoLyXHOOz8GZdOREY8qGwoPklbKH+Ux54J5rVcQMnrLjyaey4f2oAIzIAl+r PulsvPF+1QbW/s/C4unIdT388f9Bptlr2dk0Fzy88Pf0z7OMhfcMhy8+prJ6L1g3/CKt bXKuFYPjQOovSClvTSnACWPrgYuyoVeX7Unw7TTCtExvT92+J4uXAikfhGjq8rvh1EV7 cTZRrIG1h1TQEGuQAaQLi0n+thygMAnmnsM0O5fEgqaZOT4Nl9y0UlwZ+ZtENMaCIQqz +BiTmveImy1IYIFdi+x0Le4c/Fz6Wst55atnCq4RVUNffc1CerDtC12xnW4DE7XH5ZNO oWTw== X-Forwarded-Encrypted: i=1; AJvYcCXQ4yxa0hC1NyNTyKvslMfLQj1dKuB2aqzsIW25B0kFeCHHiNR4pk84vvPZYrmxxXgn03XCxw==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz3kObth9gMJns5nqUlENsJM9VPYm0ALPnHvZSEaglrmRlYtRpi BNGz6BQ+Cu8RQ5ucBQSiKYmf/sesGKa9p+3ySarZg4jDg5IrEts+mNTaEw== X-Gm-Gg: ASbGnctUpoPWi7TTABGtHZ5lmZ4kmM0cTl1gjcgMyaBYrlxU11gGur1R2cn8Iha4d0B qv6s4r2fZEfs0Cdr5ETshnZnlitDrzHNSeM76UVZ5UcLbMB3ztKzigjBBgI0VFsAzvqQ9CDPq1e CBujOZY8r0pt7sgWY4xX0DqdHdRa2RpVIiyQxm/sPa1cNmrpkU1vV4DCjCWkEflE4540IYgEjMX OWS4IFla6wSWKxNBDU4ocYroXFSntM7/0AJqNog6Q0JL5IHF7V4HVB2qpw6bMIkp+WF7vekcKws S9BQmfn3mVuAo2b4eGmO5o4pmFF4QZouKmucD2xC0NlhTlNlH7F/4FZiWjrM9baHpvOcIGUelkF EimuxI3sQEA2rLQ== X-Google-Smtp-Source: AGHT+IFQwo77BTEgivUwVvXXjT4gCT9zceHVMKRYRdxKQ+6DQ+8KP6Zf2xFBc4cUDkmLlW1mLxwZIQ== X-Received: by 2002:a05:600c:1c93:b0:42a:a6d2:3270 with SMTP id 5b1f17b1804b1-43891426ebcmr250083245e9.21.1737776785626; Fri, 24 Jan 2025 19:46:25 -0800 (PST) Received: from pro2 (p200300e0b72d4b00903defc95002bea3.dip0.t-ipconnect.de. [2003:e0:b72d:4b00:903d:efc9:5002:bea3]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-438bd4857cesm46166255e9.13.2025.01.24.19.46.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jan 2025 19:46:24 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <CAOGVwenb1-sfnGeNiudsLUVHZFiXouO0zcE8vXGQL6WE27VtNw@HIDDEN> (Len Trigg's message of "Sat, 25 Jan 2025 09:40:27 +1300") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> <CAOGVwenb1-sfnGeNiudsLUVHZFiXouO0zcE8vXGQL6WE27VtNw@HIDDEN> Date: Sat, 25 Jan 2025 04:46:22 +0100 Message-ID: <m2bjvvpnch.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Len Trigg <lenbok@HIDDEN> writes: > On Sat, 25 Jan 2025 at 09:00, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN= m> wrote: > > You either have a very wide display (x=3D...), or the selected frame at > this point is a GUI frame. > >=20=20 > Or possibly both? (My monitor is 3440x1440, and I had it with the GUI ema= csclient frame in the > rightmost third). At that point in the code, pixels =3D=3D characters, so if that were a tty frame, you'd need something like sub-pixel eyesight :-).
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 24 Jan 2025 20:40:53 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 15:40:53 2025 Received: from localhost ([127.0.0.1]:47212 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbQU1-0007ZG-DZ for submit <at> debbugs.gnu.org; Fri, 24 Jan 2025 15:40:53 -0500 Received: from mail-lj1-x22c.google.com ([2a00:1450:4864:20::22c]:56706) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tbQTy-0007Yy-W4 for 75056 <at> debbugs.gnu.org; Fri, 24 Jan 2025 15:40:51 -0500 Received: by mail-lj1-x22c.google.com with SMTP id 38308e7fff4ca-3003c0c43c0so25380791fa.1 for <75056 <at> debbugs.gnu.org>; Fri, 24 Jan 2025 12:40:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737751244; x=1738356044; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=QlAaj9J0PgpD58inKNl6WB+nklIxR/TpND3x3ojw8DU=; b=JKLOFKSr04/ZXjakhReRCpcc4kImEaRk1TNIGhEjb3osKEFo4DjrfDP3g2aik2MFXA IIUbK/myKR3glFcJafO96k2YFjFE87vK1DE6kT8gt9R1ovqO+2bixHcEgwy4hKCFYRid lBsv9/IB2yAo0qmnhsxR0tdZf0ZMawkUMXjCHAhH2nOuAuDgLk1sZK6SbTYeOIuuyRxV g3G3qaoebk4ZZPdZRnc0UL4HbDMpRE4WTZ7T43Ll9CKb2qWaEny0GOV59nU32I+LvcBN ApjHegGl65C1Oy4VYzp6j4dft3fM7PciCDwfMRFSmI4VcfLNXSliLEYTxLliAqfEBNLT IlCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737751244; x=1738356044; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=QlAaj9J0PgpD58inKNl6WB+nklIxR/TpND3x3ojw8DU=; b=HmJurjMDHJkClDt2ZaG+OeqFmcGsB+ttiSPnFvco7sePJrh5LEPeEVScQYS08fzFsV +lHjrhRMZu7/36sclGCktZL9MA/CIv4QvAeiZQMOA5o1eokMfGKHrXTnFxnpxVZmmVp3 yO6WtlL4nLJbiKdPnT08yFVz/uh9mdCyYzUiltxhjCEb8nMfotR2FHksqlxzgQNHqzOA m+7kMc+0hvSL6a94I6ACNVIi2xotWmb8vSBYh9eCsEAHk+nCoZ1ZkRBHTaspviaNWAB2 0WFKD35QwDWihAA4M0pJktS87JJnnDnSQ0sysZaYny/Dj8O3C1qDgQje7vtJoYKPXOFb q5/g== X-Forwarded-Encrypted: i=1; AJvYcCVc4QJ85vTDcvt/8TX6ba+T+Wf22t/mb7fJG5/ukI1gSPN5T3+yrxIOGgte+TSXHQe+NV+//Q==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwHs2uAYx+ub69II6MDya+4dxH3W6jBIRUpl56+hSU8Noh4YnLX hi0ovUJUX8tEUBhoDmDSf2OzQwZZl1VqVp0HtzHfEBAB5RN1XOsSpLfL1kytxKfE762E2fJuHWD sNjCtUJQ7rbmiIInpyCIHByN9bqY= X-Gm-Gg: ASbGncvuyXBxb/ifIvpaXrPAF6Ph3Bde3Wjn0ytPyovPWdMX48qY8kR6HRrogNPfxjE 3n0lKmMHTexijx3Mor8BtUESGBorD9gcNQJlP/HalF4qA+6iCTdT1TfbEcNFY X-Google-Smtp-Source: AGHT+IG7JRi3F1UjdFV/6Oi8fcwsfvDvXS7TdCAv2cmtoSttsZHYhTS5HOTq6ItHMpN/jnQ/34qnzrG7Vc06WPt6JWY= X-Received: by 2002:ac2:4463:0:b0:540:1f75:1b05 with SMTP id 2adb3069b0e04-5439c229169mr9095289e87.19.1737751243971; Fri, 24 Jan 2025 12:40:43 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> <m2frl8ouco.fsf@HIDDEN> In-Reply-To: <m2frl8ouco.fsf@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Sat, 25 Jan 2025 09:40:27 +1300 X-Gm-Features: AWEUYZlaJuzR3hbsHpN-rA2hdqo1r9szdrXFxCPq5OaKl8lHQUiWCPF0M4Dq2Q0 Message-ID: <CAOGVwenb1-sfnGeNiudsLUVHZFiXouO0zcE8vXGQL6WE27VtNw@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Content-Type: multipart/alternative; boundary="0000000000009ae501062c79bdea" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --0000000000009ae501062c79bdea Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, 25 Jan 2025 at 09:00, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> wrote: > You either have a very wide display (x=3D...), or the selected frame at > this point is a GUI frame. > Or possibly both? (My monitor is 3440x1440, and I had it with the GUI emacsclient frame in the rightmost third). Thanks, Len. --0000000000009ae501062c79bdea Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div class=3D"gmail_quote gmail_quote_container"><div dir= =3D"ltr" class=3D"gmail_attr">On Sat, 25 Jan 2025 at 09:00, Gerd M=C3=B6llm= ann <<a href=3D"mailto:gerd.moellmann@HIDDEN">gerd.moellmann@HIDDEN= m</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin= :0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"= >You either have a very wide display (x=3D...), or the selected frame at<br= > this point is a GUI frame.<br></blockquote><div>=C2=A0</div><div>Or possibl= y both? (My monitor is 3440x1440, and I had it with the GUI emacsclient fra= me in the rightmost third).=C2=A0</div><div><br></div><div>Thanks,</div><di= v>Len.<br></div></div></div> --0000000000009ae501062c79bdea--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 24 Jan 2025 20:00:36 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 15:00:36 2025 Received: from localhost ([127.0.0.1]:47181 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbPr1-0005du-To for submit <at> debbugs.gnu.org; Fri, 24 Jan 2025 15:00:36 -0500 Received: from mail-ed1-x52e.google.com ([2a00:1450:4864:20::52e]:51376) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbPqy-0005dd-LH for 75056 <at> debbugs.gnu.org; Fri, 24 Jan 2025 15:00:33 -0500 Received: by mail-ed1-x52e.google.com with SMTP id 4fb4d7f45d1cf-5d7e3f1fc01so5002185a12.2 for <75056 <at> debbugs.gnu.org>; Fri, 24 Jan 2025 12:00:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737748826; x=1738353626; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=jjavkk9/2FlSQCMLp2OayqkkLlt4FB94R1+gbUdteu0=; b=Hobqg44odWcRNcNY0d2a5zUQWI7eut7A8XBoQvQ/lphJSken0/l1Jr7enJYnB/gw5/ K3LsrgebO9md3ebQU8qj4odIu/GBR/FdJgvqdXTE9zfh2P5cOutbC3PqqVg9S2Dj4Sh8 dMxENOD/MLvVR7Zs2ICKOdmXLxQ9NCCkh6MMbqhyF8cRkszvIGJbuSK3hstR5gzzvfss CTXz66U9izQdmaD4+D5MTZTQTR9nurJ74D7vFit0sUFkWRb73/skm1mm3Ojwain3MANf 4MgP6Q/JGe1f1Hm+lnmYDIpmN6mgZjAlgQMT4D9TwNvgi1Qbik/qdaGykvTX/KO4L359 glzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737748826; x=1738353626; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jjavkk9/2FlSQCMLp2OayqkkLlt4FB94R1+gbUdteu0=; b=lo3WTk3mAxdENSOEsV3afX6YAsa48OxsUu+1m3C4tI7WoW752xfPtDVILvwu8ahLbj 1/ZM5Zll7C9FIN0Ui/mv915N7fJ5JDyuw0BRPVqrwMMP9BWVVcHTJT9vnGJh472JNWIs rcErHrhHwy/YxZuaJRhneOwSOlvIRevseMgqTej8Wb0j6dNhtGsseRgbZ/TXWOhXJOnz Mqoxhu9nxeGQ5KmhwQpNkCck9HXXaFJRlKfZ44R7bpJf15/Z2egKuUTOEiWjM9vMAaC+ XgIHV0GioAgrU+g/ydXC5/HXwHs2VOmHr4bBxYmKDv8+Z/ySel2n1hzN+MCxNDNySLJR +7BA== X-Forwarded-Encrypted: i=1; AJvYcCW28Jn3UAQ6ZHaIavMZfBlxZA0BwvW0Ecq/AGBcbJlPtnTmQ3GpuFcmYJ1jsIiYFaTbugf1iw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxQmXi1Sptp+/bNckwUC8Q3ddFhAQeQEzS0glBxe9IPOsVK0Alo FRC1HQS3MliIWUi5Y8dO1dV39bry52Sio41Msrr7SRdvkUlMDWHxgmgbSw== X-Gm-Gg: ASbGncvIw3A8WlntJjud8c2eKiqaB0bh2mymU0UpGB6KxJhA93FRoHh67QeIkIjG66V OpwRcP7VZmqguh1/H5Ys3ZNhVQA04uqrQ+Eli7ofzUfKn+ql2g4gx5WVz7RIUhBqEDeAuxUx3JZ feivUD+oMrbaGmSYtXCfAjI7h7hu+G8GXkgfFUdUrO2onZwehCwkMiG/hnew3RSZCkMaFleZ/Kg 0nWb/ljFrT+tseV7YAx10jqG8jjYdORAC4a3ia3olbUjURjPsB6NpNrLOE/L3iNE6droe9BKLer md20j31FjVTEYGz/fG9CvUTBmAkdiqd+WmN/7NrAeDFyA32E3OXojxS3SE7+jYkNSBMte6a5BuL bmPEZcqWSyrD3Wg== X-Google-Smtp-Source: AGHT+IHTEK6PtVUbhimEV6WcTqj7Z/w/Rq52DzGFWpLoFxZ8HVey2xDa+lZn5wiA8VMk7RSEU9Z4UA== X-Received: by 2002:a05:6402:1ed4:b0:5db:69ee:9149 with SMTP id 4fb4d7f45d1cf-5db7d2fc229mr31324779a12.11.1737748825763; Fri, 24 Jan 2025 12:00:25 -0800 (PST) Received: from pro2 (p200300e0b71e1a00b5c722abfa07c989.dip0.t-ipconnect.de. [2003:e0:b71e:1a00:b5c7:22ab:fa07:c989]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc1f15b6ecsm785175a12.47.2025.01.24.12.00.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jan 2025 12:00:24 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> (Len Trigg's message of "Sat, 25 Jan 2025 08:19:20 +1300") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> Date: Fri, 24 Jan 2025 21:00:23 +0100 Message-ID: <m2frl8ouco.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Len Trigg <lenbok@HIDDEN> writes: > BTW, I triggered another segfault (this time I had two terminal clients and one gui client and was cycling focus between > them): > > 0x00005555555bdf65 in is_in_matrix (y=48, x=2297, f=0x555556f60048) at dispnew.c:3893 > 3893 if (x < 0 || x >= root->current_matrix->matrix_w || y < 0 > (gdb) where > #0 0x00005555555bdf65 in is_in_matrix (y=48, x=2297, f=0x555556f60048) at dispnew.c:3893 > #1 is_cursor_obscured () at dispnew.c:3913 Thanks for the report. You either have a very wide display (x=...), or the selected frame at this point is a GUI frame. I guess I can fix that over the weekend.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 24 Jan 2025 19:48:07 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 14:48:07 2025 Received: from localhost ([127.0.0.1]:47167 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbPew-0004zJ-KK for submit <at> debbugs.gnu.org; Fri, 24 Jan 2025 14:48:06 -0500 Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]:50412) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbPet-0004yk-VJ for 75056 <at> debbugs.gnu.org; Fri, 24 Jan 2025 14:48:04 -0500 Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-5d3cf094768so4722421a12.0 for <75056 <at> debbugs.gnu.org>; Fri, 24 Jan 2025 11:48:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737748077; x=1738352877; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=erL4WzUclSTF21aLGX0WugIXJIe3ixm+xiHZ4kTNoaI=; b=AHjzk2VHJt7R1cgu+bZ2tEDccPsgtCfO0m14CTFj6hEYgaAg/6ood9ATb+hPIbFbxO BOgaj/GT0LliM6a0RWbgb7WUhiNtAxfbuyCE46a5MW/u2lRnoQntwV/0o/HZFKUltwPo BwF9kibEj4eXb3OyQI5Qk6zC/eX+mxmO/qQPZdOH9i5CTxNQJS7f7B1gw9C98qpSBD0R NGNIWFBZU2DK2n4vQ5daLBoVjvHsc6qqJLI74jqrWWel5kHfz5QsOZ/5g0Dm5KUNCRr3 7No3tZ6L79IPCzu9FKC3azO8o9iOFByPWUH5/uaut3Tf80eo8tWRTP5VpgmsSjB2OoAI Wltg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737748077; x=1738352877; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=erL4WzUclSTF21aLGX0WugIXJIe3ixm+xiHZ4kTNoaI=; b=uHvtXvOI45XosXrhJpgazlx2yJhvvW0lJjzomypvYeJiVPCc3XQUPzokVs+AGYKu8p Hnmpkr9aUltgwyFRU2dn7lnjRA81eTCN+RhdbfhIF21HAdMjYOMIbJQJqPLtwIZgSKHn BEShs111IFLdwbqxIefqCeP2vvn2cp03j+dMVGpjWwcqNZh+kl7gowz/e4iRNtxjdTZj oAgEeSaBperRneb3Eo9+nBiRfcMqBFQFsm72MK7TxJWXTSE/I2CCP4fYZr/m2tq5h8TE mql57XhcsD+cW97mSBggXDlZN0cPFjxmDqoO06ach0h65R0iQJ51V+/5PuPO47ytF0jE ed7w== X-Forwarded-Encrypted: i=1; AJvYcCUrLtzMt2/2pe17L9IU3IKNMfAtlYTIgh/LKklxBEq7W6mqhwrXk+klemvvCgY2dwYWcIIXog==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzA82GIVTg7gpUFMB7VxLzlD76NXKHOYn6XY94j4DX01iKoy5xL yEau+KPxPnTgYvWRJUxB/fQ+SG9XOR/oyHapCgMViEIbN+6Di1f27b/WfA== X-Gm-Gg: ASbGnctheR39TJYjPkVPkK5cszw7+ZhZkWrTKvBejjSmg0mY0TxlT8ZXQJXwwnmKW6k sbd21ri03NYkL93wDo8hr1AJ5kilDL4qYC9g9QpkyoBn9riimgKNTd9tf0iWurYgyxELZhvQorR gqUQam3r+gDLzOmkPxfoKxfydclCOQ8fcxDyXdTEbjC3vhGDKB8PsmXhamNOtmgthZONlrfn6zZ YGcbZmrxtCPmKm0iVwQB4bK29Pfh8vpjYhPtlUXCBj5Cv8lEWyh40BLgeN/tB7nTT7sTfZd6v8N EdUYmbUgu4MRyAr8wRs5iUCJnlRQpHla75dPtCXoFYiNz6m2TphIoFzDrny4A1z/fcrfivsigl8 YrSl8uYhf3UsWJA== X-Google-Smtp-Source: AGHT+IGYFcNdRRou8XNhMD4O7552CRyUJg7zeixwkJFbOmg/XQV1TnOuafWoWnGs0CKl/f3rY1e1ow== X-Received: by 2002:a17:907:7ea7:b0:aaf:5c9:19f9 with SMTP id a640c23a62f3a-ab38b1627damr3100159466b.27.1737748077229; Fri, 24 Jan 2025 11:47:57 -0800 (PST) Received: from pro2 (p200300e0b71e1a00b5c722abfa07c989.dip0.t-ipconnect.de. [2003:e0:b71e:1a00:b5c7:22ab:fa07:c989]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab675e12512sm175724466b.19.2025.01.24.11.47.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jan 2025 11:47:56 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <CAOGVwemYKXrZLZ-F6CZ69Kg+GgM_2PDQr4sQBqJqX1nbappxsw@HIDDEN> (Len Trigg's message of "Sat, 25 Jan 2025 08:06:40 +1300") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> <CAOGVwemYKXrZLZ-F6CZ69Kg+GgM_2PDQr4sQBqJqX1nbappxsw@HIDDEN> Date: Fri, 24 Jan 2025 20:47:55 +0100 Message-ID: <m2jzakouxg.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Len Trigg <lenbok@HIDDEN> writes: > On Fri, 24 Jan 2025 at 22:32, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN= m> wrote: > > I think the rest of the behavior is somehow multi-tty. We talked about > that already. I don't think I'll tackle that, sorry. > > You mentioned in the earlier email about single-kboard mode being a > limitation too big to address, but I'm confused as to why the child > tty frame (minibuffer?) that the user had actually dismissed then > magically reappears when the focus was moved to another terminal. Is > it that the child tty frame needs to be fully destroyed upon > dismissal? (Is that something posframe could do?) Could you please > provide a description of what you think is actually happening? I don't want to go down the rabbit hole of finding out what exactly is happening, because that would mean I would begin to debug multi-tty, which I wouldn't poke with a 2 meter stick after reading admin/notes/multi-tty :-) I have only one hint: the crash was because mini_frame in redisplay_internal was invisible, and we updated it in combined_update_for_frame. Updating an invisible frame logically makes no sense, why is it invisible then? When that mini_frame is invisible, is there another frame visible now that _should_ have been invisible instead of mini_frame? If so, which one? And could it be that child frames of that frame are now displayed? Possibly. Question upon questions :-)
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 24 Jan 2025 19:19:47 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 14:19:47 2025 Received: from localhost ([127.0.0.1]:47081 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbPDW-0003YZ-E2 for submit <at> debbugs.gnu.org; Fri, 24 Jan 2025 14:19:47 -0500 Received: from mail-lf1-x12b.google.com ([2a00:1450:4864:20::12b]:43098) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tbPDT-0003YF-Gz for 75056 <at> debbugs.gnu.org; Fri, 24 Jan 2025 14:19:44 -0500 Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-54287a3ba3cso3308921e87.0 for <75056 <at> debbugs.gnu.org>; Fri, 24 Jan 2025 11:19:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737746377; x=1738351177; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=e7oWQTaXLCNBWUHhVoz5cWKH87hGPBh08tbdzhoFwdk=; b=gCV6etsNuUQDpC32ZlmitrFMB6+E8BhcTDsOQ83ls++yfYiYcZ+CeK28QFjFNEAqpK 2+cuE2YgRoy7hVZnrRZ+zJoSIgiU1zZluOEj79BtcezaPf0mkz9ScIlHTg8WFZO17Gvt Z8Zs0RNcJuZbP7uIcFk8EyDZywXYRt/Wihg4KHlVd60KTbMzZaGge8WbEh+zL2YIdZKQ dlP2KFPdjaUVBW28nqX+4UGs1jrAai4pgnN/MxRI/67ZNnwq8thHCs1sr0qCxUO344Dn kjULnCG7Kq1bwCFifxhzdHpySBB08nuC4QIhnl5mND84ixiE9zvFFd1f0NqNF1qxrCa3 E/Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737746377; x=1738351177; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=e7oWQTaXLCNBWUHhVoz5cWKH87hGPBh08tbdzhoFwdk=; b=Hqz8wTYMOuGYnwqI3ZOlM6DYnfaRqZCN3K/7almIL7IVG7Ogw/9bwMzTA6F4iT9QwP loPeSn4LrEMRilFXGHSXFKxapskEIHYokv0WD2lp5+ANKZWEuPhfWzrAD1uzFbucuP6v DacipYF4rFaH5aiEzA14eDjlFnxcsrZcqpwKGugN410uAIMLiveQ6iZwoZiTuYL5fZch n7VZDrmaA7XFdsGijvesmn9/kC0SNbT4GV/d3s3MJkX+NurUXL+OHObTGLTru435Mv8s tcHU5A4oNUHVGgdlYlpOkVo3ei/H49bOGZehI+FiJcpd4KMbBkUqmiFvYf9WrIkSD1UH yfpg== X-Forwarded-Encrypted: i=1; AJvYcCXFoFNpjOQER5F2wksVsDZume96Wq+qoTg2PPepghtebBvinvGuyOdgdnRND3B2gpeK9VtI1g==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwVj4yyJBZvTlR2DEBgD5zO6T4icX/eEYXZYhHY5A4M1VsNTpZr kJC8cTX4FvC3CDxdGdTINOPYtfracgDLLa5RCzZiwBeYE2dl8b8AlrGDccH1hZ2tMajO6rNU1LW X7POOAQPCY2+7xtt2jOBtWrUUxZ7paKeR8uw= X-Gm-Gg: ASbGnctJfbFaoSoQA3R71ZfC5cSU8fnrZkHTRQZzyh/qhcq5axUS0wx0GQFX+mRIUiw il/y3Vz6xKg4C8NIR5RCWBEGWZtrq/I016lh/AQUNbnXh87nduzet/Onf5VnH X-Google-Smtp-Source: AGHT+IHe7SlI1FDhCCKQy9ApMjhmKPHE+sBBZLDwl92YKUHH2VhuBImDGWsQUi98mfjmECcFO0U241fm25Z2X27x72M= X-Received: by 2002:a05:6512:3b94:b0:543:bae7:eada with SMTP id 2adb3069b0e04-543c221cc0amr3423976e87.14.1737746376827; Fri, 24 Jan 2025 11:19:36 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> In-Reply-To: <m2frl8muao.fsf@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Sat, 25 Jan 2025 08:19:20 +1300 X-Gm-Features: AWEUYZkkucP7Gp0kskgvZ7AtQjOk5eDkQLL3ho6-u6jCcUCN83GDc9LbFOdt4h8 Message-ID: <CAOGVwe=cNc=AkY8SCYwUko2XAoOe3BfJSxm7Gcyj3C641tzkrg@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000802c58062c789b81" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --000000000000802c58062c789b81 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable BTW, I triggered another segfault (this time I had two terminal clients and one gui client and was cycling focus between them): 0x00005555555bdf65 in is_in_matrix (y=3D48, x=3D2297, f=3D0x555556f60048) a= t dispnew.c:3893 3893 if (x < 0 || x >=3D root->current_matrix->matrix_w || y < 0 (gdb) where #0 0x00005555555bdf65 in is_in_matrix (y=3D48, x=3D2297, f=3D0x555556f6004= 8) at dispnew.c:3893 #1 is_cursor_obscured () at dispnew.c:3913 #2 terminal_cursor_magic (topmost_child=3D0x555556c1e900, root=3D0x555556bacd08) at dispnew.c:3932 #3 combine_updates_for_frame (f=3D<optimized out>, inhibit_scrolling=3Dinhibit_scrolling@entry=3Dfalse) at dispnew.c:3997 #4 0x00005555555be0f3 in combine_updates (roots=3Droots@entry=3D0x7fffec96= 0b33) at dispnew.c:4023 #5 0x00005555556054f6 in redisplay_internal () at xdisp.c:17599 #6 0x0000555555606fe9 in redisplay () at xdisp.c:16656 #7 0x00005555556f25ba in read_char (commandflag=3D1, map=3Dmap@entry=3D0x7fffec962463, prev_event=3D0x0, used_mouse_menu=3Dused_mouse_menu@entry=3D0x7fffffffc6ab, end_time=3Dend_time@entry=3D0x0) at keyboard.c:2672 #8 0x00005555556f5ad7 in read_key_sequence (keybuf=3Dkeybuf@entry=3D0x7fffffffc800, prompt=3Dprompt@entry=3D0x0, dont_downcase_last=3Ddont_downcase_last@entry=3Dfalse, can_return_switch_frame=3Dcan_return_switch_frame@entry=3Dtrue, fix_current_buffer=3Dfix_current_buffer@entry=3Dtrue, prevent_redisplay=3Dprevent_redisplay@entry=3Dfalse, disable_text_conversion_p=3Dfalse) at keyboard.c:10746 #9 0x00005555556f7734 in command_loop_1 () at keyboard.c:1424 #10 0x0000555555775607 in internal_condition_case (bfun=3Dbfun@entry=3D0x5555556f7570 <command_loop_1>, handlers=3Dhandlers@entry=3D0x90, hfun=3Dhfun@entry=3D0x5= 555556eb190 <cmd_error>) at eval.c:1607 #11 0x00005555556e2cfe in command_loop_2 (handlers=3Dhandlers@entry=3D0x90)= at keyboard.c:1163 #12 0x0000555555775549 in internal_catch (tag=3Dtag@entry=3D0x12360, func=3Dfunc@entry=3D0x5555556e2cd0 <command_loop_2>, arg=3Darg@entry=3D0x90= ) at eval.c:1286 #13 0x00005555556e2c91 in command_loop () at keyboard.c:1141 #14 0x00005555556ead05 in recursive_edit_1 () at keyboard.c:749 #15 0x00005555556eb0a4 in Frecursive_edit () at keyboard.c:832 #16 0x00005555555b4e3f in main (argc=3D3, argv=3D<optimized out>) at emacs.c:2628 On Fri, 24 Jan 2025 at 22:32, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> wrote: > Len Trigg <lenbok@HIDDEN> writes: > > > OK, that's fixed the crash, but my original problem persists, with a > > new artifact. This time slightly different repro steps to make things > > more visible: > > Okay, that's what I intended to fix. Thanks for the feedback. > > I think the rest of the behavior is somehow multi-tty. We talked about > that already. I don't think I'll tackle that, sorry. > > > > > - Open two terminal windows side by side > > > - In the first terminal: emacs -nw --init-directory=3D~/emacs-test > > (using the original init.el I sent) > > > - In the second terminal: emacsclient -nw, followed by C-x b C-n RET > > (to switch buffers using tty child frame, leaving the cursor in > > *Messages* and the tty child frame has been dismissed) > > > - Back to the first terminal: C-x b C-n RET (as above, this switches > > buffers using the tty child frame, leaving the cursor in *Messages* > > and the tty child frame has been dismissed. > > > - Now, notice that immediately upon switching focus back to the second > > terminal (I use focus follows mouse) we find the emacsclient "hung", > > but back on the first terminal the tty child frame has magically > > represented itself even though it had been dismissed!!! > > > - If we move the mouse focus back to the first terminal, the tty child > > frame disappears. > > > > On Fri, 24 Jan 2025 at 18:26, Gerd M=C3=B6llmann <gerd.moellmann@gmail.= com> > wrote: > > > > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > > > > > Anyway. I'll develop a fix for that immediate problem tomorrow. I > think > > > I'll just make it not crash for now, and perform the update anyway, > > > which I guess 30 would do. > > > > Pushed to master. > --000000000000802c58062c789b81 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>BTW, I triggered another segfault (this time I had tw= o terminal clients and one gui client and was cycling focus between them):<= /div><div><br></div><div>0x00005555555bdf65 in is_in_matrix (y=3D48, x=3D22= 97, f=3D0x555556f60048) at dispnew.c:3893<br>3893 =C2=A0 =C2=A0 =C2=A0if (x= < 0 || x >=3D root->current_matrix->matrix_w || y < 0<br>(g= db) where<br>#0 =C2=A00x00005555555bdf65 in is_in_matrix (y=3D48, x=3D2297,= f=3D0x555556f60048) at dispnew.c:3893<br>#1 =C2=A0is_cursor_obscured () at= dispnew.c:3913<br>#2 =C2=A0terminal_cursor_magic (topmost_child=3D0x555556= c1e900, root=3D0x555556bacd08) at dispnew.c:3932<br>#3 =C2=A0combine_update= s_for_frame (f=3D<optimized out>, inhibit_scrolling=3Dinhibit_scrolli= ng@entry=3Dfalse) at dispnew.c:3997<br>#4 =C2=A00x00005555555be0f3 in combi= ne_updates (roots=3Droots@entry=3D0x7fffec960b33) at dispnew.c:4023<br>#5 = =C2=A00x00005555556054f6 in redisplay_internal () at xdisp.c:17599<br>#6 = =C2=A00x0000555555606fe9 in redisplay () at xdisp.c:16656<br>#7 =C2=A00x000= 05555556f25ba in read_char (commandflag=3D1, map=3Dmap@entry=3D0x7fffec9624= 63, prev_event=3D0x0, used_mouse_menu=3Dused_mouse_menu@entry=3D0x7fffffffc= 6ab, end_time=3Dend_time@entry=3D0x0)<br>=C2=A0 =C2=A0 at keyboard.c:2672<b= r>#8 =C2=A00x00005555556f5ad7 in read_key_sequence<br>=C2=A0 =C2=A0 (keybuf= =3Dkeybuf@entry=3D0x7fffffffc800, prompt=3Dprompt@entry=3D0x0, dont_downcas= e_last=3Ddont_downcase_last@entry=3Dfalse, can_return_switch_frame=3Dcan_re= turn_switch_frame@entry=3Dtrue, fix_current_buffer=3Dfix_current_buffer@ent= ry=3Dtrue, prevent_redisplay=3Dprevent_redisplay@entry=3Dfalse, disable_tex= t_conversion_p=3Dfalse) at keyboard.c:10746<br>#9 =C2=A00x00005555556f7734 = in command_loop_1 () at keyboard.c:1424<br>#10 0x0000555555775607 in intern= al_condition_case (bfun=3Dbfun@entry=3D0x5555556f7570 <command_loop_1>= ;, handlers=3Dhandlers@entry=3D0x90, hfun=3Dhfun@entry=3D0x5555556eb190 <= ;cmd_error>) at eval.c:1607<br>#11 0x00005555556e2cfe in command_loop_2 = (handlers=3Dhandlers@entry=3D0x90) at keyboard.c:1163<br>#12 0x000055555577= 5549 in internal_catch (tag=3Dtag@entry=3D0x12360, func=3Dfunc@entry=3D0x55= 55556e2cd0 <command_loop_2>, arg=3Darg@entry=3D0x90) at eval.c:1286<b= r>#13 0x00005555556e2c91 in command_loop () at keyboard.c:1141<br>#14 0x000= 05555556ead05 in recursive_edit_1 () at keyboard.c:749<br>#15 0x00005555556= eb0a4 in Frecursive_edit () at keyboard.c:832<br>#16 0x00005555555b4e3f in = main (argc=3D3, argv=3D<optimized out>) at emacs.c:2628<br><br></div>= <div><br></div></div><br><div class=3D"gmail_quote gmail_quote_container"><= div dir=3D"ltr" class=3D"gmail_attr">On Fri, 24 Jan 2025 at 22:32, Gerd M= =C3=B6llmann <<a href=3D"mailto:gerd.moellmann@HIDDEN">gerd.moellmann= @gmail.com</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style= =3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding= -left:1ex">Len Trigg <<a href=3D"mailto:lenbok@HIDDEN" target=3D"_bla= nk">lenbok@HIDDEN</a>> writes:<br> <br> > OK, that's fixed the crash, but my original problem persists, with= a<br> > new artifact. This time slightly different repro steps to make things<= br> > more visible:<br> <br> Okay, that's what I intended to fix. Thanks for the feedback.<br> <br> I think the rest of the behavior is somehow multi-tty. We talked about<br> that already. I don't think I'll tackle that, sorry.<br> <br> ><br> > - Open two terminal windows side by side<br> <br> > - In the first terminal: emacs -nw --init-directory=3D~/emacs-test<br> > (using the original init.el I sent)<br> <br> > - In the second terminal: emacsclient -nw, followed by C-x b C-n RET<b= r> > (to switch buffers using tty child frame, leaving the cursor in<br> > *Messages* and the tty child frame has been dismissed)<br> <br> > - Back to the first terminal: C-x b C-n RET (as above, this switches<b= r> > buffers using the tty child frame, leaving the cursor in *Messages*<br= > > and the tty child frame has been dismissed.<br> <br> > - Now, notice that immediately upon switching focus back to the second= <br> > terminal (I use focus follows mouse) we find the emacsclient "hun= g",<br> > but back on the first terminal the tty child frame has magically<br> > represented itself even though it had been dismissed!!!<br> <br> > - If we move the mouse focus back to the first terminal, the tty child= <br> > frame disappears.<br> ><br> > On Fri, 24 Jan 2025 at 18:26, Gerd M=C3=B6llmann <<a href=3D"mailto= :gerd.moellmann@HIDDEN" target=3D"_blank">gerd.moellmann@HIDDEN</a>&g= t; wrote:<br> ><br> >=C2=A0 Gerd M=C3=B6llmann <<a href=3D"mailto:gerd.moellmann@HIDDEN= m" target=3D"_blank">gerd.moellmann@HIDDEN</a>> writes:<br> ><br> >=C2=A0 > Anyway. I'll develop a fix for that immediate problem t= omorrow. I think<br> >=C2=A0 > I'll just make it not crash for now, and perform the up= date anyway,<br> >=C2=A0 > which I guess 30 would do.<br> ><br> >=C2=A0 Pushed to master.<br> </blockquote></div> --000000000000802c58062c789b81--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 24 Jan 2025 19:07:07 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 14:07:07 2025 Received: from localhost ([127.0.0.1]:47070 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbP1G-000300-VX for submit <at> debbugs.gnu.org; Fri, 24 Jan 2025 14:07:07 -0500 Received: from mail-lf1-x12f.google.com ([2a00:1450:4864:20::12f]:54333) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tbP1E-0002zQ-TH for 75056 <at> debbugs.gnu.org; Fri, 24 Jan 2025 14:07:05 -0500 Received: by mail-lf1-x12f.google.com with SMTP id 2adb3069b0e04-53e3778bffdso2650179e87.0 for <75056 <at> debbugs.gnu.org>; Fri, 24 Jan 2025 11:07:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737745618; x=1738350418; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=dc5EwbZoHxDGGS5P5Ag233RhkDpW8h0hIfM2+VQC210=; b=gcYZavoVG+w8VqqLT8b1X5mFkPAWbJ/lehes/2t6eUp6LmANW1I9FIe2JsPR3cbb8t qlWilN2QXEAqMY6itD1dy1HpW/Q9J2N5u1TdfSs0Fw/nI96eAwGdcPdIM1RRW11q59L+ DScrFMlwuIU53JHCMOFNMp7arNEvwiirG5cJB4wRNyBi9bquk9mxoPNrPj7Li6yv/GCy E5sB6ujRPn5svvZf/WkC3kuKXTc90SCBZd21543cLG40f5WTm3c/YAG5I/BEsLs48u7o LoUZ3+mHnPo6z59lJqd7zZQbeatIY31Rlyino+gJefTBKxoO4RETN0tznJUO2FgieDFT rxBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737745618; x=1738350418; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=dc5EwbZoHxDGGS5P5Ag233RhkDpW8h0hIfM2+VQC210=; b=cpSMU6IJH+wbInpfDeiaxGwCoL8SFGzp5gFLRdw+vYX1LeZn1zyM3urBEAxvNm6lK2 OZVrFcJfaX1MjjKdz9cm5OZwFWJ9FEcxMOJN3v+y9MUlf8zicC1a8/lCgKufEZMPiuF6 d4ESrAfG3zVj9TafEOk7wWzRv77CO0xJHI5NiYeFDBy37R5Sllnm5wCbCw387M342Ymt rf2nOgiM9CUdnmpRkWHKu+iik5FtIBbGtO42eZ5ibfkH+OiyxWKKyTkRCBIHQ07xbDsk p88V15O2e2ouMY77y6GgGwEkrrsU26qD3UhjoRe98lhXrB2dMHMewbseQG6XATqG7WNY Rg4A== X-Forwarded-Encrypted: i=1; AJvYcCWHvwwXKfoWX1n1A1WAeCFbFMiwAVchNzswwh5WXDaeOo4BMf7H4DKmICWYl0G43eQPzUHt9A==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxyESyUp33dBNbmCKpjfCorIW1vxSo/bGAR9lslFXiQEZnEAB8G fa+Xn7rPrQuSDEn0E2ZD/knCeChzM1spso2XYlxit7ytgNFKB/A1siYYL/Q4cn/ZD0j5EEzS5F/ ixf0+ecNFCQenPnN4hKEqKEpza+w= X-Gm-Gg: ASbGncs8vla5UZhgobLZdVxY0a/iZ1k9eLNAKHmof9mU+UMISDOw0sQ9KsJESyOqTF/ cswdz2Uro1Qdu5YaXgf2mt1AoVP+ZPTk/pO+1D6RuriJdA31/4Ai8vVsJKsKn X-Google-Smtp-Source: AGHT+IHtIi2GNwU1RLPWhEP7Wd14dGYPme8Y78ST/KcahRArqI5dkfLjw1sudtbPe0nL9Tmk5LfZUnrN/uzhiVs05ho= X-Received: by 2002:ac2:54b5:0:b0:542:249c:215f with SMTP id 2adb3069b0e04-5439c22a8f6mr10066905e87.4.1737745617486; Fri, 24 Jan 2025 11:06:57 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> <m2frl8muao.fsf@HIDDEN> In-Reply-To: <m2frl8muao.fsf@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Sat, 25 Jan 2025 08:06:40 +1300 X-Gm-Features: AWEUYZndGsL_wIKXLMgoqTU4foJO1plpk0fmVQfvfHnAGPjRLk9sHERr5MZ45AQ Message-ID: <CAOGVwemYKXrZLZ-F6CZ69Kg+GgM_2PDQr4sQBqJqX1nbappxsw@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Content-Type: multipart/alternative; boundary="0000000000003d8c9e062c786e0d" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --0000000000003d8c9e062c786e0d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 24 Jan 2025 at 22:32, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> wrote: > I think the rest of the behavior is somehow multi-tty. We talked about > that already. I don't think I'll tackle that, sorry. > You mentioned in the earlier email about single-kboard mode being a limitation too big to address, but I'm confused as to why the child tty frame (minibuffer?) that the user had actually dismissed then magically reappears when the focus was moved to another terminal. Is it that the child tty frame needs to be fully destroyed upon dismissal? (Is that something posframe could do?) Could you please provide a description of what you think is actually happening? Cheers, Len. --0000000000003d8c9e062c786e0d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><br></div><div class=3D"gmail_quote gmail= _quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, 24 Jan 2025= at 22:32, Gerd M=C3=B6llmann <<a href=3D"mailto:gerd.moellmann@HIDDEN= m">gerd.moellmann@HIDDEN</a>> wrote:<br></div><blockquote class=3D"gm= ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,= 204,204);padding-left:1ex">I think the rest of the behavior is somehow mult= i-tty. We talked about<br> that already. I don't think I'll tackle that, sorry.<br></blockquot= e><div><br></div><div>You mentioned in the earlier email about single-kboar= d mode being a limitation too big to address, but I'm confused as to wh= y the child tty frame (minibuffer?) that the user had actually dismissed th= en magically reappears when the focus was moved to another terminal. Is it = that the child tty frame needs to be fully destroyed upon dismissal? (Is th= at something posframe could do?) Could you please provide a description of = what you think is actually happening?</div><div><br></div><div>Cheers,</div= ><div>Len.</div><div><br></div><div><br></div></div></div> --0000000000003d8c9e062c786e0d--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 24 Jan 2025 09:32:26 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 04:32:26 2025 Received: from localhost ([127.0.0.1]:43691 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbG38-0008OJ-3C for submit <at> debbugs.gnu.org; Fri, 24 Jan 2025 04:32:26 -0500 Received: from mail-ej1-x632.google.com ([2a00:1450:4864:20::632]:52534) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbG35-0008O4-00 for 75056 <at> debbugs.gnu.org; Fri, 24 Jan 2025 04:32:23 -0500 Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-aaedd529ba1so277633966b.1 for <75056 <at> debbugs.gnu.org>; Fri, 24 Jan 2025 01:32:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737711136; x=1738315936; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rxpFttSNUZxSabdt1bfcc/8/4vjphOs77ue0tCKMTSE=; b=DFIQgHUW5xXU2Fle1zknp3cnIwuq+ytkeLEU7AmMkb9kcWyYrm/H3EZQuKPWZqgT2d 1wl5y2o4eZSusIHGR83plRwdSwg18cR7QRNEeLJE3fYhZc7VcxPOkcws6D7fJoALxE9W dFqzkd2MjMqO27hYt8svl1qbr/pLGrEGWxLMQ9jgjzMzTc0pFLomEHTkteZTrDJhBR1L +KTx1CvDUQDETWJ1dMlp5hxEKYpRMswILkQQICv08sOsSHrRLS36zu7GZMA45sjWA4XA +8GWHL6Plt3EOfbk2pktlTWghOZjnmANqQWc/FlEUqmD9FH+9px/8vS+K+YcYQ1C6VcD MoFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737711136; x=1738315936; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rxpFttSNUZxSabdt1bfcc/8/4vjphOs77ue0tCKMTSE=; b=X8ATjjomHzQkdtFBF6a8ssg2lGSwk5wMo0SIxPpczE8xmUyzbwnzTX0WAWxo3910YQ ziYoAGb/N67+/yzxZM0kyZAjt9Mx4BwDD08nrBTRTlvxdDtFY/gJa4LViVHPTarfHxVt RdqxwSsHgYdqlfCbBNF9dnQttfDwUDM/KQK4VEwFCEejnUYx3Aajho83B5fZMvuIAt3/ cQWxgyxkDgYWIPVpTKi4Hg7U5MLgbrSU3ykO3HrHqCihccbELC9Jx1IISmrqoOF3KgyT AsO3jJcPnj0uQfnZcDl92Y9zyTazIlB8teLStaHugFGV0JbH0imHoBnJONfo8wS1sww6 mCLg== X-Forwarded-Encrypted: i=1; AJvYcCXRFwWd2uVZcmNqMTTNSoG53lgtIyjG+ATNunb/OXhOrT8NcbukDtAdbgtWBlqYQGdWMR2bSQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxPBugq9OCxYYnA7ln/29fpEkfTHO7oKoq1gmQkHWqGcsMmH82o WHOaerF5PHVyMNg8dK4W5ZYt4mCXrCkwghRMfQglStmSXWeLGF7FFz/V/A== X-Gm-Gg: ASbGncvsF1mOQLKb0JqdgUSi/KJO6srMq24xNSDp/2lfBYuxUINIs+LVdEh8/Goo2tS 49BaaMH0jHFMCdAnq1cwRqOiGP4/RN2Q02ugRY0jfI+ax6IniE9DGWPeUWkebBxdq8hUhktZ9vd HJ58FvpoQheS+f6enzvwltQ8KqB//nIYQVbXxCdXKiclnD2AZ/idDhgdLjcoJZPQXoDXJbAatLj rLGGVB1K3pZmgiIOl0BI6AGTOtZQ68wbKF5lqsHh2Sg9u5dfX15LjJngiGnjuBO/ZS8Hi40ZgG5 ASlKToVJX6kgq/oe2M7rvy4d0hWiwmzF0Rwtq1VJ4sHJX471xSi1/kG0ohB9TYcFtSm0cC2AFzz ABZw8e136wlr2Mw== X-Google-Smtp-Source: AGHT+IECLnVA6u8fkWOUSowZQPce5c6o3TxZTkzxt2+xTeNMGfi2JGQ9cYnoPovny2LcO7QYF8sNXQ== X-Received: by 2002:a05:6402:3587:b0:5dc:100c:1560 with SMTP id 4fb4d7f45d1cf-5dc100c1768mr12511847a12.18.1737711136273; Fri, 24 Jan 2025 01:32:16 -0800 (PST) Received: from pro2 (p200300e0b71e1a00b5c722abfa07c989.dip0.t-ipconnect.de. [2003:e0:b71e:1a00:b5c7:22ab:fa07:c989]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab6760ab363sm97649166b.114.2025.01.24.01.32.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jan 2025 01:32:15 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> (Len Trigg's message of "Fri, 24 Jan 2025 22:25:56 +1300") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> Date: Fri, 24 Jan 2025 10:32:15 +0100 Message-ID: <m2frl8muao.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Len Trigg <lenbok@HIDDEN> writes: > OK, that's fixed the crash, but my original problem persists, with a > new artifact. This time slightly different repro steps to make things > more visible: Okay, that's what I intended to fix. Thanks for the feedback. I think the rest of the behavior is somehow multi-tty. We talked about that already. I don't think I'll tackle that, sorry. > > - Open two terminal windows side by side > - In the first terminal: emacs -nw --init-directory=3D~/emacs-test > (using the original init.el I sent) > - In the second terminal: emacsclient -nw, followed by C-x b C-n RET > (to switch buffers using tty child frame, leaving the cursor in > *Messages* and the tty child frame has been dismissed) > - Back to the first terminal: C-x b C-n RET (as above, this switches > buffers using the tty child frame, leaving the cursor in *Messages* > and the tty child frame has been dismissed. > - Now, notice that immediately upon switching focus back to the second > terminal (I use focus follows mouse) we find the emacsclient "hung", > but back on the first terminal the tty child frame has magically > represented itself even though it had been dismissed!!! > - If we move the mouse focus back to the first terminal, the tty child > frame disappears. > > On Fri, 24 Jan 2025 at 18:26, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN= m> wrote: > > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > > > Anyway. I'll develop a fix for that immediate problem tomorrow. I think > > I'll just make it not crash for now, and perform the update anyway, > > which I guess 30 would do. > > Pushed to master.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 24 Jan 2025 09:26:25 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 04:26:25 2025 Received: from localhost ([127.0.0.1]:43681 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbFxJ-00087k-Cy for submit <at> debbugs.gnu.org; Fri, 24 Jan 2025 04:26:25 -0500 Received: from mail-lj1-x22f.google.com ([2a00:1450:4864:20::22f]:60709) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tbFxE-00087K-Q4 for 75056 <at> debbugs.gnu.org; Fri, 24 Jan 2025 04:26:23 -0500 Received: by mail-lj1-x22f.google.com with SMTP id 38308e7fff4ca-30737db1aa9so17489571fa.1 for <75056 <at> debbugs.gnu.org>; Fri, 24 Jan 2025 01:26:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737710774; x=1738315574; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=fJhjucgKVwJvaAE05gfrRk2OwEvkxgi1j3qbHWbrLyE=; b=XmKjv2hAGo1PxBdAqSRHMjVmIns0ojIP8m0ACVkSHzDA1A5n17lUS0jdUvZrkEjJ3T Pbpsa59fCyPnzDh3xHCmYDg5cyWC54njgG/e94jhNUozGCUWc3299QLacxyxBFtbF4rN N42hIX4AfVv8abOep4SWcMQgdJCg/GldUS6ZK9JOOMvU0e1tS5L6hxTt5Bn+xkBHpuGb WXTf/IK5cUEYj1mYp4gZ2yC73MfSbAjMI3lfTlIOxTt0wJc0wme8lBxLekneUGhMvuCc DwlxShZnd6FIE4u6A+RZ+XroYb1f82siTNmOFx6tK9t/RO6Pauf+o9WH+TUJN5NldhAl XNDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737710774; x=1738315574; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fJhjucgKVwJvaAE05gfrRk2OwEvkxgi1j3qbHWbrLyE=; b=FQxn8w5BGENmlcUoOtWPG2PCH7/5MD2NpiTqLml5H2oSJuJjfo/zcErWtSODE3kr3d 2kPfMk3bDlkCWskpT4XWsoIslR0ilzW4k52M/Krn6ZnRl6RtBlOjzKVvieDbWdXqbUHx CSl5+yxbevkp+xsbDEo6bFfuEj+5XIq/1LgT4DNLM/IH30kQHuAitiUxpotEtF9wlNqW KB+Y2/AMixlgjS54fbJHwP/98HYsi/qIyarYRxwrjAs8QLl7ZE9BuGU6Vd4YMTib2Eu2 Wb5Sdg6Fq20logzXTgAn4NYfoil+1ZrXQst3cJRw8/e3V7uc6hjBzoxWsNuF+Ggb7rdq YsNQ== X-Forwarded-Encrypted: i=1; AJvYcCWp91B4Ja0ffNEEmw9uskRsWDDZ+AFkmR+M7ugY4vHJylsU25/x43kon5IqmzfDnzjvWyeYbA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwLCFrCvXIl1ErVMFAdewH4bCNj+lV9p/3rhB2qL+VJ/NPjN0yf LSRh3vdAHU3tvZqyGnclV2kvKYri3vPGVbp9zeHkiRS7YsMM+XGQMeLROiGUJ0/+VfIc/qGLVzR IDhBgMAkFu+idjeKtjDjDkG0k6Nk= X-Gm-Gg: ASbGncvosCKlIztIoD/lLcvkWOAmrQhTBFkBBzAPDkTI0EGQkxJBqQSS6aHBDZyrxb5 kkWaqdTsot3Gu2BHWL6q/OTQceFJgFn3FdGKAXMzbMN5qypBd47aq6zxE4lA7 X-Google-Smtp-Source: AGHT+IHYWscwDv9UGLjKprCEIK8jNg8Hs9/oanNBDwRw62nFXupucAIm7rlODySH7w3F2facsk5U4yJzhrPY9BZRzJg= X-Received: by 2002:a2e:a544:0:b0:302:40ec:a1bb with SMTP id 38308e7fff4ca-3072ca99b57mr120811201fa.21.1737710773829; Fri, 24 Jan 2025 01:26:13 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> <m25xm4eq97.fsf@HIDDEN> In-Reply-To: <m25xm4eq97.fsf@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Fri, 24 Jan 2025 22:25:56 +1300 X-Gm-Features: AWEUYZkrJWTzXyQHR4vO-7AmXPKYqMLZV4CGTPBboc6TvSp3rkzcnDnlrHHoMYo Message-ID: <CAOGVwem22KKca2rZmjH2Z7JYa97zs67pqwtipurbiQZYuvkHuw@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000658878062c7051b7" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --000000000000658878062c7051b7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable OK, that's fixed the crash, but my original problem persists, with a new artifact. This time slightly different repro steps to make things more visible: - Open two terminal windows side by side - In the first terminal: emacs -nw --init-directory=3D~/emacs-test (using the original init.el I sent) - In the second terminal: emacsclient -nw, followed by C-x b C-n RET (to switch buffers using tty child frame, leaving the cursor in *Messages* and the tty child frame has been dismissed) - Back to the first terminal: C-x b C-n RET (as above, this switches buffers using the tty child frame, leaving the cursor in *Messages* and the tty child frame has been dismissed. - Now, notice that immediately upon switching focus back to the second terminal (I use focus follows mouse) we find the emacsclient "hung", but back on the first terminal the tty child frame has magically represented itself even though it had been dismissed!!! - If we move the mouse focus back to the first terminal, the tty child frame disappears. On Fri, 24 Jan 2025 at 18:26, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> wrote: > Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > > > Anyway. I'll develop a fix for that immediate problem tomorrow. I think > > I'll just make it not crash for now, and perform the update anyway, > > which I guess 30 would do. > > Pushed to master. > > --000000000000658878062c7051b7 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>OK, that's fixed the crash, but my original probl= em persists, with a new artifact. This time slightly different repro steps = to make things more visible:</div><div><br></div><div>- Open two terminal w= indows side by side</div><div>- In the first terminal: emacs -nw --init-dir= ectory=3D~/emacs-test=C2=A0 (using the original init.el I sent)</div><div>-= In the second terminal: emacsclient -nw, followed by C-x b C-n RET (to swi= tch buffers using tty child frame, leaving the cursor in *Messages* and the= tty child frame has been dismissed)</div><div>- Back to the first terminal= : C-x b C-n RET (as above, this switches buffers using the tty child frame,= leaving the cursor in *Messages* and the tty child frame has been dismisse= d.</div><div>- Now, notice that immediately upon switching focus back to th= e second terminal (I use focus follows mouse) we find the emacsclient "= ;hung", but back on the first terminal the tty child frame has magical= ly represented itself even though it had been dismissed!!!</div><div>- If w= e move the mouse focus back to the first terminal, the tty child frame disa= ppears.<br></div><div><br></div><div><br></div><div><br></div></div><br><di= v class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gma= il_attr">On Fri, 24 Jan 2025 at 18:26, Gerd M=C3=B6llmann <<a href=3D"ma= ilto:gerd.moellmann@HIDDEN">gerd.moellmann@HIDDEN</a>> wrote:<br><= /div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo= rder-left:1px solid rgb(204,204,204);padding-left:1ex">Gerd M=C3=B6llmann &= lt;<a href=3D"mailto:gerd.moellmann@HIDDEN" target=3D"_blank">gerd.moell= mann@HIDDEN</a>> writes:<br> <br> > Anyway. I'll develop a fix for that immediate problem tomorrow. I = think<br> > I'll just make it not crash for now, and perform the update anyway= ,<br> > which I guess 30 would do.<br> <br> Pushed to master.<br> <br> </blockquote></div> --000000000000658878062c7051b7--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 24 Jan 2025 05:26:58 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 24 00:26:58 2025 Received: from localhost ([127.0.0.1]:43226 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tbCDZ-0002HG-UF for submit <at> debbugs.gnu.org; Fri, 24 Jan 2025 00:26:58 -0500 Received: from mail-ej1-x634.google.com ([2a00:1450:4864:20::634]:42266) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tbCDW-0002H0-6y for 75056 <at> debbugs.gnu.org; Fri, 24 Jan 2025 00:26:56 -0500 Received: by mail-ej1-x634.google.com with SMTP id a640c23a62f3a-ab2e308a99bso326222566b.1 for <75056 <at> debbugs.gnu.org>; Thu, 23 Jan 2025 21:26:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737696408; x=1738301208; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eu+9Rw33gocdNYMYESwticq1hlyZlgzje11affCaLrM=; b=UqfStnvi5rQdcc55uAG7q8rNA6JWDrbC4YAy+fT4HX5QKgDAmhHkG4go/OyHJHiWZQ CPQTEcYfBDg47dUnro70xbzGwdw5zlZ0+/7v9x/FpNhMSCanY8nU5+ja66pSk+7NWX94 0voIYtuPlVFbrTi41vjhpzTEeaoQgZu7GQq0Fic48JCbnzYyU519UmzFxHSsFCHX/brd tRtp5ma+W4Ybn3D5R9CmyIotL74CcfOgIZaxgsoqT+sMMJNu1rHxXYTXmH/4wjpGyBEs LQ4YQpJUa/xOlvuL0ze4Lmv1eARLFngGedHpjthaNtUmXxUdRZaVdtXD0d1yo3XXixuw kZLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737696408; x=1738301208; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=eu+9Rw33gocdNYMYESwticq1hlyZlgzje11affCaLrM=; b=CkC0JgUsvmaEtJ0JOj2TCYZ2YHPL8munutRk2DmJCENelcqntIo0sVart4M7gESPLl Tcu05HdM8zcUN7KFOidk93XRR2YE543FBh3+qBqQfYxfFlZaJao8Yg2Gghmie799MFWR 4gEHOL2m1jq5zoeGBWKpDT9QtUr0PobgnqAaKBUo91K2HdZBZpWvHGc1h9zqaKO2dmKL wak9fJJc9I21n28eun7/KLifwZd2ohV/qZ0L5+2oDytUKJHaRZXRFROb8h57Qz9x9ryy WLE9u6Bqr6YgVqBRuH+KN6Sxd6thsE4TKJlnCPXGuUY+h9mL05L2BFJXobgY9TRVR6JA gbpQ== X-Forwarded-Encrypted: i=1; AJvYcCXT6cLI2FOJmr6rmvp7z+7g04OM0F+by/WJLLMjaZ7Yaewb3DcK0IhOZB37jtZyB+LBHSYJmg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyPG6/Zq/KeBkTAeBgEGMsRbCCZ5hda6hELWiEPPM9SCXnthw0R Xn7gZz7aBVvKeXQW5CN0jZv1syEfjtFmk/3+eggsM3HT9m8a0tu2NLhxiQ== X-Gm-Gg: ASbGncue2zF9hFoau+Q2S5d2GzksjwIMSX+mwgr8noDAyEaIxS7uGxrfyyeDc3QelSe spo4X1LzNczvyOe2BpzeM5Af0KkzfI4490UcCT2BCOlpLFmIXdHYf2ANEbsJ+BnrmFckL7V72Kr 1vyAwsAhu/wJCjp/Gfg2cIY4Gcgy5CHpgGGoZ73J7QxODSGJIAiQocB40pksQgp7xQrp1XAvDpp EwlGdCywVAAPvq47Xp8Td3qmg5bwtK72VhvByqhvXP/cLaghOSTpYomx8HyC48xvNhDjEjCJV+M mPz/PVFfgQs7TwtV5EVSlcPN2pIeqaN2/RRXfp/UnJxHz4RNU+mLDS7ecVbTrHSL7kbTb1dZCPT ipTF5nbZjgg2UyA== X-Google-Smtp-Source: AGHT+IFlaRXuM+tT6H1kIqEl5FQxw3D2QArb7/TIWhnOEnEyYYkfq8GoYYETk49bAnrcbly+0/5o2w== X-Received: by 2002:a17:907:3da2:b0:ab6:362a:3fd9 with SMTP id a640c23a62f3a-ab67457b6f5mr224759366b.1.1737696407518; Thu, 23 Jan 2025 21:26:47 -0800 (PST) Received: from pro2 (p200300e0b71e1a00b5c722abfa07c989.dip0.t-ipconnect.de. [2003:e0:b71e:1a00:b5c7:22ab:fa07:c989]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab676117b80sm65850766b.183.2025.01.23.21.26.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jan 2025 21:26:46 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <m2a5bhe2wy.fsf@HIDDEN> ("Gerd =?utf-8?Q?M=C3=B6llmann=22'?= =?utf-8?Q?s?= message of "Thu, 23 Jan 2025 20:38:37 +0100") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> <m2a5bhe2wy.fsf@HIDDEN> Date: Fri, 24 Jan 2025 06:26:44 +0100 Message-ID: <m25xm4eq97.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> writes: > Anyway. I'll develop a fix for that immediate problem tomorrow. I think > I'll just make it not crash for now, and perform the update anyway, > which I guess 30 would do. Pushed to master.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 23 Jan 2025 20:00:47 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 23 15:00:47 2025 Received: from localhost ([127.0.0.1]:42496 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tb3Ne-0001ba-RC for submit <at> debbugs.gnu.org; Thu, 23 Jan 2025 15:00:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:35526) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tb3Nc-0001bJ-M5 for 75056 <at> debbugs.gnu.org; Thu, 23 Jan 2025 15:00:45 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tb3NW-0001g1-Hi; Thu, 23 Jan 2025 15:00:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=V7O8qTHJujXQpPb9zKSlwhenUfeysNBtTyp2haaeMcE=; b=CXX4pQzGukec4ynSPxYX Qkqi1huD9kIGMyqnl6jteL9At34kQQ0K/wT1DrXSn499kjx6GYlJNR3EBkoB5SlGJN2/4jiGbb2e3 lhzE8hiqugLNSnRD5RZAaImrSMo7kQnyK9hok/Cn2892fl0Q4RnEsfdqhaCkM92QZrX8KCvVJmZDB kGhPSKEfcl44uk28oswatF5bXDD9mQLsXyLhsOHxVWDnTa7Dsjx1ojR7Epeh7rE069vb62lNOynv7 SREux2nW58poxO3L6hl4aZo2w6ZFWdLE8bADAX/3LH/A97sX2nd1VhLaAEUr/3EDqS7VsjTx/Z/AK +vH2FbnlJXAmVg==; Date: Thu, 23 Jan 2025 22:00:31 +0200 Message-Id: <868qr1z4f4.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Len Trigg <lenbok@HIDDEN> In-Reply-To: <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> (message from Len Trigg on Fri, 24 Jan 2025 08:31:10 +1300) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Len Trigg <lenbok@HIDDEN> > Date: Fri, 24 Jan 2025 08:31:10 +1300 > Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org > > On Fri, 24 Jan 2025 at 06:34, Gerd Möllmann <gerd.moellmann@HIDDEN> wrote: > > Eli Zaretskii <eliz@HIDDEN> writes: > > > What is the value of z_order? > > Len, can you please print > > p root->visible > > (gdb) p root->visible > $1 = 0 > (gdb) p z_order > $2 = (Lisp_Object) 0x0 So the crash is because we don't verify z_order is a cons cell before we take its cdr.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 23 Jan 2025 19:38:47 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 23 14:38:47 2025 Received: from localhost ([127.0.0.1]:42450 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tb32N-0000QN-Bm for submit <at> debbugs.gnu.org; Thu, 23 Jan 2025 14:38:47 -0500 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]:49525) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tb32K-0000Q5-S4 for 75056 <at> debbugs.gnu.org; Thu, 23 Jan 2025 14:38:45 -0500 Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-5da135d3162so2220462a12.3 for <75056 <at> debbugs.gnu.org>; Thu, 23 Jan 2025 11:38:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737661118; x=1738265918; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CRWM6Q0JGSaRAaMTrmysESocrwka9+iYMahF8pXxPtI=; b=XZBQ9yrDu7ebbqeeX6RrEqX5LNUVPcOlZXrOBHeJSC3MUBubNUXuGAFrTi2iPq0BnA of5gBXEweQdQA/G7L2a7sTuZmUQUUn6jOgs2JUVGPg0aFnw4iRp6nKlwKX9LtOHAThSI YpajsI4brhlscTDs32sJ8ahO7jlkpxEDB87YONwOJmzJoYWkvN6M+ijjeI2c8YGDcqZZ 0EzYDLMVz6jIKunSy2Io2wX+eHD5At1VhBYiy9Tm4CJfq5XTium1tj3ex6JWsHHNdYUq 5CwLmVnz5iiDGMO/rxHofrBS1YLZXl5h3vdMMNjLzioTnM/LYEtkhgnxWB78kOnqyGs9 NOhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737661118; x=1738265918; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=CRWM6Q0JGSaRAaMTrmysESocrwka9+iYMahF8pXxPtI=; b=k3Jlvv7RIHMzNluT5ErUJhIZsREBw6XWL3zFcIMuYzg+nH4uoRBm4vCpkqgfJr8LTC CVQ49ww+UzJhkrgL2VLcqfpazwqbTC+jkV3NuvhxFN07+oyKB28aAkBjRMosoE3pkOET H36ff52lW+8Ovl2Ghdvdp2x10P2hOcwVrFA6F96hJx7dPsmWs1lPiyGzkBuLvPPutinr nRRuw4sGLKsLoSbZ0KwXCd1kcUA6JsN+NQK+fTrg9HQbrMBokdD4+R52/6S0iarVgCvk mvDC8eoCKceucuv1j4Tgbo3uYrftSxAW1hhwvdBFodVvvfA356cG+mB4kBmiZ9a/R9Zb +V2A== X-Forwarded-Encrypted: i=1; AJvYcCUpb3Q1hURO77XNr4Y9si5NDOMjeyAKVbw3DcCLP2uLrmw6xMxs81rHuLzEXsJRb9WpCOLFug==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yyuy6Fu18UzcfNIymrXehjuMUAQGdoS28L+q3rjzDsGUPFnuqJB 3JgIbDKNmZJuNENl0iK55KztF88qEf42qRveGOifEbiXOTPUfpRtrFUkbg== X-Gm-Gg: ASbGncvUHnxK0mZyh2Olj/fgbXa6NjhKP2ebbGD2ziE0lwu64In+r5/AoFvZYb2LJHm MdczSff6NidKAJw3VjxyEmkCkgehTDmDa5BsnfPwUVmm3UdF1Sb8Bixl1kbne2Jhwz4tdIhdZQ8 wdAgT/0XoACkKF4rA+Di4BhW9qO6FsyRno9scR+pXQOUsOIce40BD6DwFjM63Hdwvt7kizrvcAo CibiDvvLRtADUk2nUoltiJHR33+AlUMOzRBjPQgubXOjGNtmZpoiogEEGZyKjwFZYfKd4ev9L+w s5Ja4Ge3erSTB6KWE8o6FdB2/9no3z1oMhkVwJviKD6hscXlh2xg6zrKZox1rLj4ntjUZ1LTR0W kZKr1nNShzjJi X-Google-Smtp-Source: AGHT+IHtlXZQJyEyvTjzg8dO/7NljDzNAVTN0dIxSg93DWivarO5pIgjNyAEBS6k9aVrPW/ClAF+ug== X-Received: by 2002:a05:6402:1d52:b0:5dc:1289:7f1c with SMTP id 4fb4d7f45d1cf-5dc1289800bmr2388151a12.29.1737661118257; Thu, 23 Jan 2025 11:38:38 -0800 (PST) Received: from pro2 (p200300e0b70b3c00a9b60a97a92ff44f.dip0.t-ipconnect.de. [2003:e0:b70b:3c00:a9b6:a97:a92f:f44f]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5dc186d8c3esm71865a12.80.2025.01.23.11.38.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jan 2025 11:38:37 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> (Len Trigg's message of "Fri, 24 Jan 2025 08:31:10 +1300") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> Date: Thu, 23 Jan 2025 20:38:37 +0100 Message-ID: <m2a5bhe2wy.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Len Trigg <lenbok@HIDDEN> writes: > On Fri, 24 Jan 2025 at 06:34, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN= m> wrote: > > Eli Zaretskii <eliz@HIDDEN> writes: > > > What is the value of z_order? > > Len, can you please print > > p root->visible > > (gdb) p root->visible > $1 =3D 0 > (gdb) p z_order > $2 =3D (Lisp_Object) 0x0 Thanks, that explains the crash. I would never had expected that we try to update invisible frames, hence the assert with --enable-checking at the start of the function. Now, the $1000 question is why is mini_frame in redisplay_internal invisible? Pretty sure it has something to do with multi-tty. Anyway. I'll develop a fix for that immediate problem tomorrow. I think I'll just make it not crash for now, and perform the update anyway, which I guess 30 would do. Thanks!
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 23 Jan 2025 19:32:01 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 23 14:32:01 2025 Received: from localhost ([127.0.0.1]:42422 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tb2vj-000060-2j for submit <at> debbugs.gnu.org; Thu, 23 Jan 2025 14:32:01 -0500 Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]:48193) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tb2va-00005U-DD for 75056 <at> debbugs.gnu.org; Thu, 23 Jan 2025 14:31:47 -0500 Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-54024ecc33dso1358356e87.0 for <75056 <at> debbugs.gnu.org>; Thu, 23 Jan 2025 11:31:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737660688; x=1738265488; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=d7M5ummjgO5Sz34bzKPeBrf2tCefUVBP8n/KfMG4bVA=; b=jbDgd7PPtDODJrrwbywFeKk7HvDNObOYCbh2ibbLHtqrGNMk+MRAIuW6ljjVPOyvnf 4OwMUdpkHFmVqhXvdwMloTWrUyKgrX5hmXFo4v9/p5URPiow2Eurmz38Kk7jSo25YcPX zbJ2UnqQchpNIigXU3mS6LeWMQDZX3oN8b91iWtXQX4xOUsdU4zqnVwfMqG6NUDTgAN6 QHRpJAiN7SV7XGjR372x06i01nivdVcMbND1x71BVqCGlyc2gzXn2z+tCAalWnBGWtLZ bKRcmpApUAwvo2+e/1guGHzudVO4GawClPBaQg1sqhSFeK3kocYYEUGjdiCpHYTGWWMj gChw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737660688; x=1738265488; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=d7M5ummjgO5Sz34bzKPeBrf2tCefUVBP8n/KfMG4bVA=; b=V5/0sRkONway7Svn6qHasWnAXeXkAWtER07bFJ4XvVwjszKRRwqIDZZVz7d6P+Zmgz KJKgbZhfYe+WE+h0yztt6t8WXxle/JFJ5nybwC+r/Hk3eKb4huFEHpWe4UBawR0Wx9A5 eUFVwFlwFDy+D2wcWtzlG0ZadudavVpTy179Tg6SL9oFDcC/S1Wa1RpcsiAfjxhaCXvi E6Jfyl9qfb6i32qaGlSpDDLo8miqseolbzQcJkRNASPbEoTzcjjwd1hdoVTf4dCpCe+4 PfCfs/rhNZUBg0/WEMkFa665fHAdwnuLnd9xErDecEikf0D9Fjp7VJF9JBE1lh0T/Sgv OuuQ== X-Forwarded-Encrypted: i=1; AJvYcCWTK5rASEVqw/yOxhkIDtUxolmDeqOPPMj/7MzTK0N/gyhxAlgnjnj9W/54vUK0sUiyWrsmzg==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz1Nh19phSpTLZIPRFLx3xWjJ9fqiuv3KIc7Md1FHOGXH+hmTeA loyFsgyQkGI1st7l4mFeiW3im4eFda8ZHKSofSYpgKeSsUFnGUf9MYTBn23Si8MQ03tBlYmAevO TE889CECRRsDR3dh4bd3BHCM8J4c= X-Gm-Gg: ASbGncsQ48vq61mHq9xG8iFsyjx6n+H/BRoRxxVqNo6yA2lyb8TChafTAdhPdvAbyz1 48kfetfFlGu2SJljuvWVxFOALGfrWXLP8pQ66dYvbK7Q3r3Hart/i1vqiez20 X-Google-Smtp-Source: AGHT+IFg8IpXtDCWWnTxjefjm8KZNKf7xI2H+0DtbzpoypJHuVaUNjvM5eyVnd29caF7sniU7nBvjgEM2HIewIx3+h8= X-Received: by 2002:ac2:485c:0:b0:540:1cb9:850b with SMTP id 2adb3069b0e04-5439c2483bemr9090280e87.31.1737660687217; Thu, 23 Jan 2025 11:31:27 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> <m2ed0te8ny.fsf@HIDDEN> In-Reply-To: <m2ed0te8ny.fsf@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Fri, 24 Jan 2025 08:31:10 +1300 X-Gm-Features: AbW1kvYqTVk44M-_Zd2981uHqYfZ_uX2rbHM_1JlT3qhMcifIg1IGUFc8SEAlDA Message-ID: <CAOGVwenYec4TCkA9vLXA2kXpOtpjANQP95nLVDvMaH3YFFtg3g@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000008106062c64a880" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Eli Zaretskii <eliz@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --000000000000008106062c64a880 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 24 Jan 2025 at 06:34, Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> wrote: > Eli Zaretskii <eliz@HIDDEN> writes: > > > What is the value of z_order? > > Len, can you please print > > p root->visible > (gdb) p root->visible $1 =3D 0 (gdb) p z_order $2 =3D (Lisp_Object) 0x0 --000000000000008106062c64a880 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><br><div class=3D"gmail_quote gmail_quote_container"><div = dir=3D"ltr" class=3D"gmail_attr">On Fri, 24 Jan 2025 at 06:34, Gerd M=C3=B6= llmann <<a href=3D"mailto:gerd.moellmann@HIDDEN">gerd.moellmann@gmail= .com</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"mar= gin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1= ex">Eli Zaretskii <<a href=3D"mailto:eliz@HIDDEN" target=3D"_blank">eli= z@HIDDEN</a>> writes:<br> <br> > What is the value of z_order?<br> <br> Len, can you please print<br> <br> =C2=A0 p root->visible<br></blockquote><div><br></div><div><div dir=3D"l= tr"><div><br></div><div>(gdb) p root->visible</div>$1 =3D 0<br>(gdb) p z= _order<br>$2 =3D (Lisp_Object) 0x0<br><div><br></div><div><br></div></div><= /div></div></div> --000000000000008106062c64a880--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 23 Jan 2025 17:34:37 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 23 12:34:36 2025 Received: from localhost ([127.0.0.1]:42173 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tb16C-0002ke-FS for submit <at> debbugs.gnu.org; Thu, 23 Jan 2025 12:34:36 -0500 Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]:50327) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tb169-0002kN-AF for 75056 <at> debbugs.gnu.org; Thu, 23 Jan 2025 12:34:34 -0500 Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-aa69107179cso262442466b.0 for <75056 <at> debbugs.gnu.org>; Thu, 23 Jan 2025 09:34:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737653667; x=1738258467; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=ywLWij9JtOSEksvFA4XEonNTLrw4imvE61OebADxWts=; b=QtIp3ZVuDditPH4fuoAv48izH136h5nzUtrWZ1Sh74JOxaa+914goxVlg1pi9Lm2WP oiFsY/RXbzJPp+Rrb9LKXKYmFD+zsAkG7fIP21umrd/t/ZRyjJMrEiURfeQNoXdWJbsJ bUGUs4FftNXloHwwx0XJarWngPhZthI1bejAludyWCf0wN7MePcOo4hDsNchl8d0QJTn HYAvUh3eT4zai8I7qZtJQO7OfG7685LKXmvC7RQOatic5Oeo3+dYE7ZAgxcJSsj8PWtz izaK/6AgJCCgrtObYAuZlOXsNiTKrcu8V8M1mRwohY23si4XMzoa/Mw2Iz6E8PbdQr0U la+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737653667; x=1738258467; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ywLWij9JtOSEksvFA4XEonNTLrw4imvE61OebADxWts=; b=klipYdmp2pDlzzjmqRugVIT5dPywG3S3W3i2H+XXo8ezgIpK/ulkJ7M0IhXodxjRup 5gk4/PCIgb2+4xgSV65iduTYiwwdBeE5DelcnO0L3PXeSS0idYv8h7rfQ4ryJgpdraBW VOSGfvABGFjAc0OGFr/YaEvRHhafit+yhNU8+7Z6Fj9IyGNdUYXHffMn1XO6OdQlwJLq ZplrLwL0vnSL3BRshz3QNF7nt8V8JoYCA6vqevoTSjrEeezrPMo9lE8uwblnn818Jda5 JXbW6u+zw+OLLKsXW2GMyRMu2H4Y0zKeDcj7g26HSyqf//3iZEU4WZCeP6V8VIR2tJrh 66fg== X-Forwarded-Encrypted: i=1; AJvYcCUK6RligQXm7ZuD3jy9vK23RwIKqy6GZOAixfX51fUwZubAGljEehtxAya6ihZMHP4RQWcWEQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0Ywd7CqCl5Yi9EQko59MZPEtfn8zJ70kdF3kk+bmcMh9JnzqCTDJ uj56Pthk5I6tSZCp4oDrb7ZCJWTxFdZIZqmD8S7yVf7olbGWHv7UK6e4Dg== X-Gm-Gg: ASbGncvljkhi7WpjdWk7iDh0swfwDcudl8sSOBiHtny01MhHNXI7irbxeHTOli1gRud /xrXA9W7+npPFJQkOdwor5uOGcau2sZMtLCn9P0KCQ7v89OTAbneNOef4tS8G37Ug2fzwjuHszi M9+CkM9rZU60250gkQ+SZJ/JTbNzw3UxCUQXgh65RJQAoRKbKErfp77yMio+LyUSkL3yz+Gitv9 poBM/Qqn2ta1sTrxcC5yViQ6rxpUlfr8bnXs13Nf+hZm/5eq1kEIUuNbYrSLRtNcEkSutUpXQBn 8i341sqMVWLMtvsO2SIGZpHlqGVvpE9G9m+7PYOA2PGulibBQF9e4fxuo1/Oek1SQGnDiNcDYsC sgYM9rhcjjkx8 X-Google-Smtp-Source: AGHT+IGm7K5nG7DlM2X0YXZLxUKP79EwFvUlgUhtGSI/BilPKw0C30WDrZJnJduaSuYKECGz32hCsA== X-Received: by 2002:a17:907:9729:b0:aa6:92de:ddae with SMTP id a640c23a62f3a-ab38b104bcdmr2199530166b.16.1737653666478; Thu, 23 Jan 2025 09:34:26 -0800 (PST) Received: from pro2 (p200300e0b70b3c00a9b60a97a92ff44f.dip0.t-ipconnect.de. [2003:e0:b70b:3c00:a9b6:a97:a92f:f44f]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab384f87065sm1097320366b.133.2025.01.23.09.34.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jan 2025 09:34:26 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <86v7u5zdrv.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 23 Jan 2025 18:38:28 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> <86v7u5zdrv.fsf@HIDDEN> Date: Thu, 23 Jan 2025 18:34:25 +0100 Message-ID: <m2ed0te8ny.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Len Trigg <lenbok@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: Len Trigg <lenbok@HIDDEN> >> Date: Fri, 24 Jan 2025 05:00:33 +1300 >> Cc: gerd.moellmann@HIDDEN, 75056 <at> debbugs.gnu.org >> >> #0 combine_updates_for_frame (f=f@entry=0x555556ca8d58, >> inhibit_scrolling=inhibit_scrolling@entry=false) at dispnew.c:3973 > > The crash is here: > > for (Lisp_Object tail = XCDR (z_order); CONSP (tail); tail = XCDR (tail)) > { > topmost_child = XFRAME (XCAR (tail)); > copy_child_glyphs (root, topmost_child); > } > > What is the value of z_order? Len, can you please print p root->visible I have a suspicion that it might not be FRAME_VISIBLE_P. Alternatively, you could configure with --enable-checking in which case we would see an abort in combine_updates_for_frame. The place in redisplay_internal where it is called is if (mini_frame != sf) { XWINDOW (mini_window)->must_be_updated_p = true; update_frame (mini_frame, false); if (is_tty_frame (mini_frame)) combine_updates_for_frame (mini_frame, false); mini_frame->cursor_type_changed = false; There is no check for mini_frame being visible. At least not with a quick look.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 23 Jan 2025 16:38:41 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 23 11:38:40 2025 Received: from localhost ([127.0.0.1]:42064 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tb0E4-000053-Hx for submit <at> debbugs.gnu.org; Thu, 23 Jan 2025 11:38:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56384) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tb0E1-0008WS-FF for 75056 <at> debbugs.gnu.org; Thu, 23 Jan 2025 11:38:38 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tb0Dw-0005U1-2T; Thu, 23 Jan 2025 11:38:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=zzI5nc5ECS0jl+csXG1YKlNAmZ9xkk03ZIZ2ioDSJgY=; b=EJgkVC0dSh03 Ug1z1+gdQSV5PsXLG9Nd9Y6QankEAhEWGpR5FQ6ga+ZoZtsUsr5uTAJbadh77x/QGtyHDFrWU3vr3 /CePb8dsVdysYz6RHsAgpBhmXdOMTib7CjXwW3g21tKUo8hCyRJs58imezLQTEqSnhOXBGla1kDEA cDDh8AmvRlQxEXmZn6C9l9liaNDgY9Z36F8IvLbqx3uk4qAhmvJQanok+UDCKzzCNDChNY3l1mr8B yJsgBxBH8JV9SU33b8RkDwdT1EKDN2zYNBg4TlXzZTofJQ5K85qni9DAGGZIT58XM389RA5lys2Hz fEiHiAa4FxVZUajPHDUyHw==; Date: Thu, 23 Jan 2025 18:38:28 +0200 Message-Id: <86v7u5zdrv.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Len Trigg <lenbok@HIDDEN> In-Reply-To: <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> (message from Len Trigg on Fri, 24 Jan 2025 05:00:33 +1300) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Len Trigg <lenbok@HIDDEN> > Date: Fri, 24 Jan 2025 05:00:33 +1300 > Cc: gerd.moellmann@HIDDEN, 75056 <at> debbugs.gnu.org > > #0 combine_updates_for_frame (f=f@entry=0x555556ca8d58, > inhibit_scrolling=inhibit_scrolling@entry=false) at dispnew.c:3973 The crash is here: for (Lisp_Object tail = XCDR (z_order); CONSP (tail); tail = XCDR (tail)) { topmost_child = XFRAME (XCAR (tail)); copy_child_glyphs (root, topmost_child); } What is the value of z_order?
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 23 Jan 2025 16:01:00 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 23 11:01:00 2025 Received: from localhost ([127.0.0.1]:41982 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tazdb-0006Xi-Gf for submit <at> debbugs.gnu.org; Thu, 23 Jan 2025 11:01:00 -0500 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]:46571) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tazdY-0006XL-OK for 75056 <at> debbugs.gnu.org; Thu, 23 Jan 2025 11:00:57 -0500 Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-53f22fd6832so1179705e87.1 for <75056 <at> debbugs.gnu.org>; Thu, 23 Jan 2025 08:00:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737648050; x=1738252850; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=fJDQjoNJI1Z8ZDeLjtIrrIMV0Rjls+XVWeTgR7/aMjU=; b=LvgxJhbSsd+fMVCmEY9SkFtidNcvYe4mUJjiozworI7DE4OmeE6tfy3R36e7yzpy24 J3XQZEunNNoGsboZCDMiLk10FVTWHF6LcYBMO0iMxK3zsal8ez1VRtTitD+T3EiZm039 hCkQez6THLZxaq0e0+vTkUPQSFEeCpSAZGeZHLOTcT3+L++aIQH95firzAesGJRGm6DX NbKtqvWqO2PbCIHYMGcdWVXRpL09ZpO2oC3SDCOiq/y381ycUS4bYkMUmsdOrvIphNjn xqJ9MyPpG4uarlqBpf5lvDwJuH9bNvMx/88moWxskhXwzhJ8L8Nih0z45vGRBkcwgCXG tZ6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737648050; x=1738252850; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fJDQjoNJI1Z8ZDeLjtIrrIMV0Rjls+XVWeTgR7/aMjU=; b=FfnTqOqXrUbQWZ/7oWBYcntD4PvLgIq3SVgBp+FzgKxNZY2xke7GbZ/szCvtZR+4pY jFz9iZAByOJoqhjTNrGDblpwiqLpUB4fBEJ8B1X+/pdv+/uXnfKOk/B/qBcbUUZ/7j9c 8BZus/QaX7LnzTEqt0Dc7Lxy9fFlYz698m3LyKn65rLwu1hLaQkkVSdORS3x68ejddFk 5LUOvlG8aDTTibwDpSpFvauzHEZc50e/tvNbIbme0FvArd52fwDq20NSvpue+HWZpdsq LKP06R2plKEuVBDW80Yuz6I15NFowQU9ERZIxhfEZEf6sJgzbn/8GZXOQEhaoW2X10TI ODuQ== X-Forwarded-Encrypted: i=1; AJvYcCX8+0Wi3l0HkWrcw4NORAzvCghgpdWRav6eEAQznThiSFvHT8hb/fd1MHzKGhWrG+d/kdZ2CA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxmRZ440p3vwZ5J2FxkBn1KvwHJ3gtgJgSJ4ujmYQW0ugQeKxxk /jNs+qZVSj853S1o1qxxuv/lfpLMgyapgtnsJ+RD0tzn7OwZEjU82tPce8WDfuyY/JazQ1xRFWH 6jzeS/tzi82nZolViY3YH24OoYsg= X-Gm-Gg: ASbGncvYtlvPjCV4L8sayVjPjb3KmEgbupiwKQF9yULdlIjblmWEsmns24k+n6Rs0gk uAcVORyhuoJjG/C+UA2FBbhHLLyQN7JJttVAs6t2AdwVUsFXbTrne+8iBND72 X-Google-Smtp-Source: AGHT+IHdWIpz27VYxtvSHc3Syc/RfBTkdFvj6yjcri+bkknMHrSk0XPoqHY4s4nvuI/VoyIiEUk8KghDzhNgpWfuWIk= X-Received: by 2002:a05:6512:e8d:b0:542:9883:263 with SMTP id 2adb3069b0e04-5439c246370mr8883589e87.14.1737648049599; Thu, 23 Jan 2025 08:00:49 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> In-Reply-To: <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Fri, 24 Jan 2025 05:00:33 +1300 X-Gm-Features: AbW1kvaBtAkuif1kFjEUxx4h4AH3Rexv5XqrzHJl-5vVgoEjMBXF38BuI57VPgo Message-ID: <CAOGVwekn3NgGjTGsb-5L9-dk1=0A62qQ5UdrvrPdCPwSRs3C6A@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: Eli Zaretskii <eliz@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000bdbd63062c61b651" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --000000000000bdbd63062c61b651 Content-Type: text/plain; charset="UTF-8" On Fri, 24 Jan 2025 at 04:45, Len Trigg <lenbok@HIDDEN> wrote: > Fatal error 11: Segmentation fault > Backtrace: > emacs(+0x1b1e12)[0x64b571445e12] > emacs(+0x57927)[0x64b5712eb927] > emacs(+0x57e6a)[0x64b5712ebe6a] > emacs(+0x1aff58)[0x64b571443f58] > emacs(+0x1affdd)[0x64b571443fdd] > /lib/x86_64-linux-gnu/libc.so.6(+0x45320)[0x726c12045320] > emacs(+0x699ef)[0x64b5712fd9ef] > emacs(+0xb192b)[0x64b57134592b] > emacs(+0xb309d)[0x64b57134709d] > emacs(+0x1a569e)[0x64b57143969e] > emacs(+0x286cc6)[0x64b57151acc6] > emacs(+0x6d004)[0x64b571301004] > emacs(+0x1a074b)[0x64b57143474b] > emacs(+0x1a1ab7)[0x64b571435ab7] > emacs(+0x1a3714)[0x64b571437714] > emacs(+0x221547)[0x64b5714b5547] > emacs(+0x18ecde)[0x64b571422cde] > emacs(+0x221489)[0x64b5714b5489] > emacs(+0x18ec71)[0x64b571422c71] > emacs(+0x196ce5)[0x64b57142ace5] > emacs(+0x197084)[0x64b57142b084] > emacs(+0x60e3f)[0x64b5712f4e3f] > /lib/x86_64-linux-gnu/libc.so.6(+0x2a1ca)[0x726c1202a1ca] > /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b)[0x726c1202a28b] > emacs(+0x613e5)[0x64b5712f53e5] > Segmentation fault (core dumped) > I'm really not familiar with C debugging, but I managed to run my case under gdb and trigger the crash. "where" shows: #0 combine_updates_for_frame (f=f@entry=0x555556ca8d58, inhibit_scrolling=inhibit_scrolling@entry=false) at dispnew.c:3973 #1 0x000055555560592b in redisplay_internal () at xdisp.c:17702 #2 0x000055555560709d in redisplay_preserve_echo_area (from_where=from_where@entry=8) at xdisp.c:17842 #3 0x00005555556f969e in detect_input_pending_run_timers (do_display=do_display@entry=true) at keyboard.c:11579 #4 0x00005555557dacc6 in wait_reading_process_output (time_limit=time_limit@entry=30, nsecs=nsecs@entry=0, read_kbd=read_kbd@entry=-1, do_display=do_display@entry=true, wait_for_cell=wait_for_cell@entry=0x0, wait_proc=wait_proc@entry=0x0, just_wait_proc=0) at process.c:5862 #5 0x00005555555c1004 in sit_for (timeout=timeout@entry=0x7a, reading=reading@entry=true, display_option=display_option@entry=1) at dispnew.c:6894 #6 0x00005555556f474b in read_char (commandflag=1, map=map@entry=0x7fffecb615b3, prev_event=0x0, used_mouse_menu=used_mouse_menu@entry=0x7fffffffc6cb, end_time=end_time@entry=0x0) at keyboard.c:2925 #7 0x00005555556f5ab7 in read_key_sequence (keybuf=keybuf@entry=0x7fffffffc820, prompt=prompt@entry=0x0, dont_downcase_last=dont_downcase_last@entry=false, can_return_switch_frame=can_return_switch_frame@entry=true, fix_current_buffer=fix_current_buffer@entry=true, prevent_redisplay=prevent_redisplay@entry=false, disable_text_conversion_p=false) at keyboard.c:10746 #8 0x00005555556f7714 in command_loop_1 () at keyboard.c:1424 #9 0x0000555555775547 in internal_condition_case (bfun=bfun@entry=0x5555556f7550 <command_loop_1>, handlers=handlers@entry=0x90, hfun=hfun@entry=0x5555556eb170 <cmd_error>) at eval.c:1607 #10 0x00005555556e2cde in command_loop_2 (handlers=handlers@entry=0x90) at keyboard.c:1163 #11 0x0000555555775489 in internal_catch (tag=tag@entry=0x12360, func=func@entry=0x5555556e2cb0 <command_loop_2>, arg=arg@entry=0x90) at eval.c:1286 #12 0x00005555556e2c71 in command_loop () at keyboard.c:1141 #13 0x00005555556eace5 in recursive_edit_1 () at keyboard.c:749 #14 0x00005555556eb084 in Frecursive_edit () at keyboard.c:832 #15 0x00005555555b4e3f in main (argc=3, argv=<optimized out>) at emacs.c:2628 --000000000000bdbd63062c61b651 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote g= mail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Fri, 24 Jan = 2025 at 04:45, Len Trigg <<a href=3D"mailto:lenbok@HIDDEN">lenbok@gma= il.com</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"m= argin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left= :1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>Fatal error 11: Segm= entation fault<br>Backtrace:<br>emacs(+0x1b1e12)[0x64b571445e12]<br>emacs(+= 0x57927)[0x64b5712eb927]<br>emacs(+0x57e6a)[0x64b5712ebe6a]<br>emacs(+0x1af= f58)[0x64b571443f58]<br>emacs(+0x1affdd)[0x64b571443fdd]<br>/lib/x86_64-lin= ux-gnu/libc.so.6(+0x45320)[0x726c12045320]<br>emacs(+0x699ef)[0x64b5712fd9e= f]<br>emacs(+0xb192b)[0x64b57134592b]<br>emacs(+0xb309d)[0x64b57134709d]<br= >emacs(+0x1a569e)[0x64b57143969e]<br>emacs(+0x286cc6)[0x64b57151acc6]<br>em= acs(+0x6d004)[0x64b571301004]<br>emacs(+0x1a074b)[0x64b57143474b]<br>emacs(= +0x1a1ab7)[0x64b571435ab7]<br>emacs(+0x1a3714)[0x64b571437714]<br>emacs(+0x= 221547)[0x64b5714b5547]<br>emacs(+0x18ecde)[0x64b571422cde]<br>emacs(+0x221= 489)[0x64b5714b5489]<br>emacs(+0x18ec71)[0x64b571422c71]<br>emacs(+0x196ce5= )[0x64b57142ace5]<br>emacs(+0x197084)[0x64b57142b084]<br>emacs(+0x60e3f)[0x= 64b5712f4e3f]<br>/lib/x86_64-linux-gnu/libc.so.6(+0x2a1ca)[0x726c1202a1ca]<= br>/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b)[0x726c1202a28b]<= br>emacs(+0x613e5)[0x64b5712f53e5]<br>Segmentation fault (core dumped)</div= ></div></div></blockquote><div><br></div><div>I'm really not familiar w= ith C debugging, but I managed to run my case under gdb and trigger the cra= sh. "where" shows:</div></div><div class=3D"gmail_quote gmail_quo= te_container"><br>#0 =C2=A0combine_updates_for_frame (f=3Df@entry=3D0x55555= 6ca8d58, inhibit_scrolling=3Dinhibit_scrolling@entry=3Dfalse) at dispnew.c:= 3973<br>#1 =C2=A00x000055555560592b in redisplay_internal () at xdisp.c:177= 02<br>#2 =C2=A00x000055555560709d in redisplay_preserve_echo_area (from_whe= re=3Dfrom_where@entry=3D8) at xdisp.c:17842<br>#3 =C2=A00x00005555556f969e = in detect_input_pending_run_timers (do_display=3Ddo_display@entry=3Dtrue) a= t keyboard.c:11579<br>#4 =C2=A00x00005555557dacc6 in wait_reading_process_o= utput<br>=C2=A0 =C2=A0 (time_limit=3Dtime_limit@entry=3D30, nsecs=3Dnsecs@e= ntry=3D0, read_kbd=3Dread_kbd@entry=3D-1, do_display=3Ddo_display@entry=3Dt= rue, wait_for_cell=3Dwait_for_cell@entry=3D0x0, wait_proc=3Dwait_proc@entry= =3D0x0, just_wait_proc=3D0) at process.c:5862<br>#5 =C2=A00x00005555555c100= 4 in sit_for (timeout=3Dtimeout@entry=3D0x7a, reading=3Dreading@entry=3Dtru= e, display_option=3Ddisplay_option@entry=3D1) at dispnew.c:6894<br>#6 =C2= =A00x00005555556f474b in read_char<br>=C2=A0 =C2=A0 (commandflag=3D1, map= =3Dmap@entry=3D0x7fffecb615b3, prev_event=3D0x0, used_mouse_menu=3Dused_mou= se_menu@entry=3D0x7fffffffc6cb, end_time=3Dend_time@entry=3D0x0) at keyboar= d.c:2925<br>#7 =C2=A00x00005555556f5ab7 in read_key_sequence<br>=C2=A0 =C2= =A0 (keybuf=3Dkeybuf@entry=3D0x7fffffffc820, prompt=3Dprompt@entry=3D0x0, d= ont_downcase_last=3Ddont_downcase_last@entry=3Dfalse, can_return_switch_fra= me=3Dcan_return_switch_frame@entry=3Dtrue, fix_current_buffer=3Dfix_current= _buffer@entry=3Dtrue, prevent_redisplay=3Dprevent_redisplay@entry=3Dfalse, = disable_text_conversion_p=3Dfalse) at keyboard.c:10746<br>#8 =C2=A00x000055= 55556f7714 in command_loop_1 () at keyboard.c:1424<br>#9 =C2=A00x0000555555= 775547 in internal_condition_case<br>=C2=A0 =C2=A0 (bfun=3Dbfun@entry=3D0x5= 555556f7550 <command_loop_1>, handlers=3Dhandlers@entry=3D0x90, hfun= =3Dhfun@entry=3D0x5555556eb170 <cmd_error>) at eval.c:1607<br>#10 0x0= 0005555556e2cde in command_loop_2 (handlers=3Dhandlers@entry=3D0x90) at key= board.c:1163<br>#11 0x0000555555775489 in internal_catch (tag=3Dtag@entry= =3D0x12360, func=3Dfunc@entry=3D0x5555556e2cb0 <command_loop_2>, arg= =3Darg@entry=3D0x90) at eval.c:1286<br>#12 0x00005555556e2c71 in command_lo= op () at keyboard.c:1141<br>#13 0x00005555556eace5 in recursive_edit_1 () a= t keyboard.c:749<br>#14 0x00005555556eb084 in Frecursive_edit () at keyboar= d.c:832<br>#15 0x00005555555b4e3f in main (argc=3D3, argv=3D<optimized o= ut>) at emacs.c:2628<br><br><div><br></div><div>=C2=A0<br></div></div></= div> --000000000000bdbd63062c61b651--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 23 Jan 2025 15:46:23 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 23 10:46:23 2025 Received: from localhost ([127.0.0.1]:41966 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tazPS-0005pY-O2 for submit <at> debbugs.gnu.org; Thu, 23 Jan 2025 10:46:23 -0500 Received: from mail-lf1-x131.google.com ([2a00:1450:4864:20::131]:47528) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tazPQ-0005pH-QI for 75056 <at> debbugs.gnu.org; Thu, 23 Jan 2025 10:46:21 -0500 Received: by mail-lf1-x131.google.com with SMTP id 2adb3069b0e04-5426fcb3c69so940766e87.3 for <75056 <at> debbugs.gnu.org>; Thu, 23 Jan 2025 07:46:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737647174; x=1738251974; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=xrs+fbfybr+JSiG0Sw1/j8N3xU3NItOPsHnJjQy7ttA=; b=fEiwhYswtPL+5h8sdLFDkDsgiITwQbJMvWwB9ObZ5LkCBjDI8BZ4Dlf+eM3hS+Sobl rdB83wAQSNAum3dWeA8+IyMW/5r1X6YOwF4zQhY1zTBsL/Lv/e4DcBBw+FDAnhm7feXl o/2Xk1kpx5QbwqO7JZGtQx9YR4QoH75qpUpTsJ/ST2164G5P7t8UOahiW79tueApuiTv BkMjxHPzG5+DXtLZJU7wFMHG+poluzCHxRmCNfxAegZgII3tto+AoMcKEv9iSWX/ueIL PzltM7RW2u+lbJ6A7Nf3DxUlJK36AFM5iHrHk4dqw2tp7/TA+F8rvMp49I7jVr7ahEXT dEiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737647174; x=1738251974; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=xrs+fbfybr+JSiG0Sw1/j8N3xU3NItOPsHnJjQy7ttA=; b=VQ2lf3HWGrG/hjLRlmFKiw1c3QaJSdqoKtHzXvFdSRZDny/uFiA9YtagbNUd/L5k71 CHJ/xP/up+leV2S60LKa46HeIaEpWaHMK8DgXpNckQKqvGUXd7mLybJt5xmCvxKvh6nc sT/iqARHrA77x4bIyEIuZ51lwWm3+rxXLcN0lUGDJP1kuEsKHVJVi2BDduc5aozicluy ZlyjT2ZrJ02A2MdThuD5TlJaNtMAjPmB+GmV9J9nEzTDeyGzeqO6FD9FBD0qlU1akU0e yTr7GuXLTaHhZ02gM4FDso9DT9Gt4yvqyqD9VAHN9YUzLwUSv8NMbK16slHdHiO6pTm3 0CJA== X-Forwarded-Encrypted: i=1; AJvYcCWC6o6pNHCkB7C7nWrGuLhqCtGU5RLYpVVJLnWukQNgEL0bsCgqVxD8WxbFCYe6/M5TF9AEJg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzA7VJg5XRRwFY8WHvIm6uM204GGCB0YuuGEWTJsi9pY1z6Ezbm CKN2r9R+Qo+lkzGolJrKakrCdn5+tauCPMfDwxjpdwjNMtfXMviM0cqz1OvM/R9QERwOpj/5kbY KFdaDUrWcTRLVw3zymmf5KCXKY54= X-Gm-Gg: ASbGnctcWlvD4NqwPdPZIUC11VqSm6wVytc31S95QfSxSHWQm/MUz/KltJM36RvcQ1f bq2x5bzmhrIm/SokgbxFityLgIWzngksJySANW+9pxviNV/ZZ0w+hhtOFPjya X-Google-Smtp-Source: AGHT+IGaK6n9YBgc057NlcEm6DraZlOuD6WKE7JPxFihEvDEl7bakLYaVc4iI478d749Gbitani3o/IPWtE74qKBfDw= X-Received: by 2002:ac2:5e9d:0:b0:540:1abe:d6d2 with SMTP id 2adb3069b0e04-5439c2824b4mr7846193e87.35.1737647173939; Thu, 23 Jan 2025 07:46:13 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> In-Reply-To: <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Fri, 24 Jan 2025 04:45:57 +1300 X-Gm-Features: AbW1kvYls88a9bWJNBwoClJJBU4Vg-Hp0qS2TeKU26nZo76r2jFJmSNjmUpThXo Message-ID: <CAOGVwekT7hvVK9E77bHfgk2814sHWgs9i-0Q4eZ5cYmQJX+6HQ@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: Eli Zaretskii <eliz@HIDDEN> Content-Type: multipart/alternative; boundary="0000000000008c3aad062c61822a" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --0000000000008c3aad062c61822a Content-Type: text/plain; charset="UTF-8" On Wed, 8 Jan 2025 at 07:05, Len Trigg <lenbok@HIDDEN> wrote: > Eli, thanks for taking another look. AFAIK, posframe needs to be newer > than what is released in ELPA. You can get the latest from < > https://github.com/tumashu/posframe> > > I also think that if you had the older version you would not have seen a > tty-child-frame at all and so not have triggered the bug I see - In your > test did C-x b bring up a tty child frame in the center of the window, or a > regular minibuffer at the bottom of the screen? > > (You are correct that I did not switch away from the selector in my repro > steps, I selected the buffer and exited normally with RET). > I am back home from travelling and I see that emacs master has had several changes related to tty child frames, so I rebuilt (as at commit d83d090de11) and tried my test case again. Now rather than "blocking", emacs segfaults with: Fatal error 11: Segmentation fault Backtrace: emacs(+0x1b1e12)[0x64b571445e12] emacs(+0x57927)[0x64b5712eb927] emacs(+0x57e6a)[0x64b5712ebe6a] emacs(+0x1aff58)[0x64b571443f58] emacs(+0x1affdd)[0x64b571443fdd] /lib/x86_64-linux-gnu/libc.so.6(+0x45320)[0x726c12045320] emacs(+0x699ef)[0x64b5712fd9ef] emacs(+0xb192b)[0x64b57134592b] emacs(+0xb309d)[0x64b57134709d] emacs(+0x1a569e)[0x64b57143969e] emacs(+0x286cc6)[0x64b57151acc6] emacs(+0x6d004)[0x64b571301004] emacs(+0x1a074b)[0x64b57143474b] emacs(+0x1a1ab7)[0x64b571435ab7] emacs(+0x1a3714)[0x64b571437714] emacs(+0x221547)[0x64b5714b5547] emacs(+0x18ecde)[0x64b571422cde] emacs(+0x221489)[0x64b5714b5489] emacs(+0x18ec71)[0x64b571422c71] emacs(+0x196ce5)[0x64b57142ace5] emacs(+0x197084)[0x64b57142b084] emacs(+0x60e3f)[0x64b5712f4e3f] /lib/x86_64-linux-gnu/libc.so.6(+0x2a1ca)[0x726c1202a1ca] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x8b)[0x726c1202a28b] emacs(+0x613e5)[0x64b5712f53e5] Segmentation fault (core dumped) Cheers, Len. --0000000000008c3aad062c61822a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><br><div class=3D"gmail_quote gmail_quote_container"><div = dir=3D"ltr" class=3D"gmail_attr">On Wed, 8 Jan 2025 at 07:05, Len Trigg <= ;<a href=3D"mailto:lenbok@HIDDEN">lenbok@HIDDEN</a>> wrote:<br></d= iv><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bord= er-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div dir=3D"auto"= >Eli, thanks for taking another look. AFAIK, posframe needs to be newer tha= n what is released in ELPA. You can get the latest from <<a href=3D"http= s://github.com/tumashu/posframe" target=3D"_blank">https://github.com/tumas= hu/posframe</a>><br><br>I also think that if you had the older version y= ou would not have seen a tty-child-frame at all and so not have triggered t= he bug I see - In your test did C-x b bring up a tty child frame in the cen= ter of the window, or a regular minibuffer at the bottom of the screen? <br= ><br>(You are correct that I did not switch away from the selector in my re= pro steps, I selected the buffer and exited normally with RET).<br></div></= div></blockquote><div><br></div><div>I am back home from travelling and I s= ee that emacs master has had several changes related to tty child frames, s= o I rebuilt (as at commit d83d090de11) and tried my test case again.=C2=A0 = Now rather than "blocking", emacs segfaults with:</div><div><br><= /div><div>Fatal error 11: Segmentation fault<br>Backtrace:<br>emacs(+0x1b1e= 12)[0x64b571445e12]<br>emacs(+0x57927)[0x64b5712eb927]<br>emacs(+0x57e6a)[0= x64b5712ebe6a]<br>emacs(+0x1aff58)[0x64b571443f58]<br>emacs(+0x1affdd)[0x64= b571443fdd]<br>/lib/x86_64-linux-gnu/libc.so.6(+0x45320)[0x726c12045320]<br= >emacs(+0x699ef)[0x64b5712fd9ef]<br>emacs(+0xb192b)[0x64b57134592b]<br>emac= s(+0xb309d)[0x64b57134709d]<br>emacs(+0x1a569e)[0x64b57143969e]<br>emacs(+0= x286cc6)[0x64b57151acc6]<br>emacs(+0x6d004)[0x64b571301004]<br>emacs(+0x1a0= 74b)[0x64b57143474b]<br>emacs(+0x1a1ab7)[0x64b571435ab7]<br>emacs(+0x1a3714= )[0x64b571437714]<br>emacs(+0x221547)[0x64b5714b5547]<br>emacs(+0x18ecde)[0= x64b571422cde]<br>emacs(+0x221489)[0x64b5714b5489]<br>emacs(+0x18ec71)[0x64= b571422c71]<br>emacs(+0x196ce5)[0x64b57142ace5]<br>emacs(+0x197084)[0x64b57= 142b084]<br>emacs(+0x60e3f)[0x64b5712f4e3f]<br>/lib/x86_64-linux-gnu/libc.s= o.6(+0x2a1ca)[0x726c1202a1ca]<br>/lib/x86_64-linux-gnu/libc.so.6(__libc_sta= rt_main+0x8b)[0x726c1202a28b]<br>emacs(+0x613e5)[0x64b5712f53e5]<br>Segment= ation fault (core dumped)</div><div><br></div><div><br></div><div>Cheers,</= div><div>Len.</div><div><br></div></div></div> --0000000000008c3aad062c61822a--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 7 Jan 2025 18:05:09 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 07 13:05:09 2025 Received: from localhost ([127.0.0.1]:44534 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tVDwy-0004xV-D3 for submit <at> debbugs.gnu.org; Tue, 07 Jan 2025 13:05:09 -0500 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:51680) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tVDws-0004t7-Ch for 75056 <at> debbugs.gnu.org; Tue, 07 Jan 2025 13:05:03 -0500 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-388cae9eb9fso8396273f8f.3 for <75056 <at> debbugs.gnu.org>; Tue, 07 Jan 2025 10:05:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736273101; x=1736877901; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:message-id:references :in-reply-to:user-agent:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to; bh=hVmOUGfMnjv10RY+QJWsrjOiZG8dHoRDI21Gj/qPmOA=; b=EQ4R8ggYHccmBscVE6T5j7P+OCD7fHfdUzZo2BnA1PE1u+Ix58QPn2+n7wgWPlZeH5 hv9AtQNtFKyN9ERkwkN4LoQa3tktzl9Q+ji7TxJdq2dpSP2scsnLXVHSM5KPH9SIFyD5 fTnAMhnCx+0H3ooHwnraTTksJu9+q0MRw/SULcIR3imAK/lF26AnEaJCs1GBX2hD929a 4vAf/MMaEsFTmNLB5GB8o2Q1TXj8IfMA/VBZuZfU35jSo98zDzhWBXf5E13og57M8nH4 UonV3PsNOhEoLn4XYUMrpPI5fe7tqUYcXmS8i+TwrwaMr4Ezzs/Y7Dhcs6dKhe0gakYT IyWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736273101; x=1736877901; h=content-transfer-encoding:mime-version:message-id:references :in-reply-to:user-agent:subject:cc:to:from:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=hVmOUGfMnjv10RY+QJWsrjOiZG8dHoRDI21Gj/qPmOA=; b=LoJ60nD2sWRc0Q/szAc1vF35cqVqbJKaCf8gUkL7Mf/gTjl9Egbx1ZgcfQzcoqXZ0/ f8Z/mHRjCAvJMnw6X/+49GD8H9d+KDsb7CKdIThL3ijpJPYGTJTqQtM5oANlgURwD4c1 D7CIK8SwAx65Hu3uO5XrjPM6FluiRVD60sHrSsX4auKWnfwPLHamtRWrhy1jAn8zep85 EvFjPmIAEz6j25zZFebErZFiMWWGVNkn53U7sckyVMMx+q4AN10OFtr6rIWLHaWxxy3B xDlDWoTcz9/QdI3slxjAYDrdeMikkdbMxScwxv6+pr8TqJwffX6dN61WryUKBsH/r2D+ WsAA== X-Forwarded-Encrypted: i=1; AJvYcCVZLG5KqtzTVwAYhId4sERFTtX6w3n6dFVkYXka8wtaBH/Qttj0psv17bTmjeQ8YuiLUKAiVA==@debbugs.gnu.org X-Gm-Message-State: AOJu0Ywu79xZFL+Vx315hKcAjrWvGGNsHNDHeiXHjBccmL/J5/rV1/fI Ib8AZwlDLofrd5zMmNq4fq7rsG2qFryeQgdy6xE+oS3THWJoYv3l X-Gm-Gg: ASbGnctotQVL3rsRankPaRJDmDteHxEwmxXT3SmwzilqVVQmuJmsTCUOT2RbILPTW9T GiCzrbrkq5tFuzja80IJYsdU3JOOtzkGbKpG1cULD8HdiQ3tS0SuQ1ga9c9X69o/f1+a/pLIemc ad5O7CQAYisFQPGII/yLV4jqZKPn9MUy8o8Hh/e4Em1T+u9nl+J/4daf0OJkvGy4+P2SCSA+eSl ZOkp++SbvOmX2RZLBB5trmo/paBf6buoOM1KaQ/iy0TiIa7+w== X-Google-Smtp-Source: AGHT+IEZ0hZM8B8ML5TO/yYdVWMTOohzzxiZuDfqF5uwJw/YKP7GQS09UWJiPgmkPfUJK92AIbLsLw== X-Received: by 2002:a5d:6da1:0:b0:386:4a0c:fe17 with SMTP id ffacd0b85a97d-38a2220039fmr52024397f8f.27.1736273100778; Tue, 07 Jan 2025 10:05:00 -0800 (PST) Received: from [127.0.0.1] ([145.224.95.92]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4365d116d8fsm612374935e9.17.2025.01.07.10.04.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 07 Jan 2025 10:05:00 -0800 (PST) Date: Tue, 07 Jan 2025 20:04:57 +0200 From: Len Trigg <lenbok@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: =?US-ASCII?Q?Re=3A_bug=2375056=3A_31=2E0=2E50=3B_tty-child-frames_wi?= =?US-ASCII?Q?th_server_/_multiple_clients_possible_hangs?= User-Agent: K-9 Mail for Android In-Reply-To: <86v7ut6wno.fsf@HIDDEN> References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> <86v7ut6wno.fsf@HIDDEN> Message-ID: <CED82A40-26F1-464C-9531-333482BED691@HIDDEN> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary=----QK5XDGEW991SNXWE349W7CXWJOFQYK Content-Transfer-Encoding: 7bit X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) ------QK5XDGEW991SNXWE349W7CXWJOFQYK Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Please excuse the top reply, I am traveling and my phone email client is li= mited=2E=20 Eli, thanks for taking another look=2E AFAIK, posframe needs to be newer t= han what is released in ELPA=2E You can get the latest from <https://github= =2Ecom/tumashu/posframe> I also think that if you had the older version you would not have seen a t= ty-child-frame at all and so not have triggered the bug I see - In your tes= t did C-x b bring up a tty child frame in the center of the window, or a re= gular minibuffer at the bottom of the screen?=20 (You are correct that I did not switch away from the selector in my repro = steps, I selected the buffer and exited normally with RET)=2E Cheers,=20 Len=2E On 5 January 2025 6:41:15=E2=80=AFpm GMT+02:00, Eli Zaretskii <eliz@gnu=2E= org> wrote: >> From: Len Trigg <lenbok@gmail=2Ecom> >> Date: Sun, 29 Dec 2024 08:55:51 +1300 >> Cc: gerd=2Emoellmann@gmail=2Ecom, 75056@debbugs=2Egnu=2Eorg >>=20 >> On Sat, 28 Dec 2024 at 20:52, Eli Zaretskii <eliz@gnu=2Eorg> wrote: >>=20 >> Could you please extend your recipe so it starts from "emacs -nw -Q"? >> See, I don't have posframe or elpaca installed and don't use them, and >> don't want to install them just to reproduce and debug this problem=2E >>=20 >> Unless there's something I'm missing, the init file and startup command= I provided did the installation of those >> files for you into a temporary directory, so I thought that was the eas= iest self-contained path to reproducing=2E >> Let me assume you've run it once that way initially in order to fetch t= he packages (otherwise you can >> manually download the files if you want and adjust the paths in the bel= ow command line, but be aware that >> you need new enough versions of posframe that understands tty child fra= me)=2E Then to get a "emacs -nw -Q" >> initialization you can use the attached test=2Eel to do: >>=20 >> emacs -nw -Q --init-directory=3D~/emacs-test -l ~/emacs-test/elpaca/rep= os/vertico/vertico=2Eel -l ~ >> /emacs-test/elpaca/repos/vertico/extensions/vertico-multiform=2Eel -l ~ >> /emacs-test/elpaca/repos/posframe/posframe=2Eel -l ~ >> /emacs-test/elpaca/repos/vertico-posframe/vertico-posframe=2Eel test= =2Eel >>=20 >> Then manually "eval" the remaining commands in test=2Eel >> (in another terminal) emacsclient -nw >> Then invoke the child frame pop up: (C-x b and C-n to select *Messages*= and RET)=2E Now we're no longer in >> a minibuffer=2E >> Switch back to the original emacs terminal >> Invoke the child frame pop up: (C-x b and C-n to select *Messages* and = RET)=2E Now we're no longer in a >> minibuffer=2E >> Swap to the emacsclient terminal, and note that the client is "hung"=2E >> =20 >> I think this gives a specific enough recipe to minimally reproduce=2E >>=20 >> (vertico-mode) >>=20 >> (push '(tty-non-selected-cursor =2E t) vertico-posframe-parameters) >> (push '(undecorated =2E nil) vertico-posframe-parameters) >> (vertico-posframe-mode) >>=20 >> (server-start) > >I tried this now, but I don't think I see the problem you describe=2E > >I donwloaded vertico, posframe, and vertico-posframe packages from GNU >ELPA -- are the versions available there new enough to reproduce the >problem? If not, where should I download these packages from? > >Anyway, I can only observe a "hung" client if I forcibly switch from >an active minibuffer=2E That is, after "C-x b" I don't select a buffer, >I simply type "C-x o" to switch out of the mini-window=2E Then only the >client where I switched out of the mini-window can accept keyboard >input, the other one is "hung"=2E > >However, I can see the same situation even without these two packages: >if I start emacsclient, type "C-x b" there, and then "C-x o" to switch >away from the mini-window, Emacs on the other frame will stop responding >to keyboard input=2E This is expected: when Emacs has an active >minibuffer on some display, Emacs temporarily switches to the >"single-keyboard mode"=2E > >But I suspect this is not what you see, so I wonder what did I not do >to reproduce the problem you see=2E > ------QK5XDGEW991SNXWE349W7CXWJOFQYK Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable <html><head></head><body><div dir=3D"auto">Please excuse the top reply, I a= m traveling and my phone email client is limited=2E <br><br>Eli, thanks for= taking another look=2E AFAIK, posframe needs to be newer than what is rele= ased in ELPA=2E You can get the latest from <<a href=3D"https://github= =2Ecom/tumashu/posframe">https://github=2Ecom/tumashu/posframe</a>><br><= br>I also think that if you had the older version you would not have seen a= tty-child-frame at all and so not have triggered the bug I see - In your t= est did C-x b bring up a tty child frame in the center of the window, or a = regular minibuffer at the bottom of the screen? <br><br>(You are correct th= at I did not switch away from the selector in my repro steps, I selected th= e buffer and exited normally with RET)=2E<br><br>Cheers, <br>Len=2E<br></di= v><br><br><div class=3D"gmail_quote"><div dir=3D"auto">On 5 January 2025 6:= 41:15=E2=80=AFpm GMT+02:00, Eli Zaretskii <eliz@gnu=2Eorg> wrote:</di= v><blockquote class=3D"gmail_quote" style=3D"margin: 0pt 0pt 0pt 0=2E8ex; b= order-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"> <pre class=3D"k9mail"><blockquote class=3D"gmail_quote" style=3D"margin: 0= pt 0pt 1ex 0=2E8ex; border-left: 1px solid #729fcf; padding-left: 1ex;"><di= v dir=3D"auto">From: Len Trigg <lenbok@gmail=2Ecom><br>Date: Sun, 29 = Dec 2024 08:55:51 +1300<br>Cc: gerd=2Emoellmann@gmail=2Ecom, 75056@debbugs= =2Egnu=2Eorg<br><br>On Sat, 28 Dec 2024 at 20:52, Eli Zaretskii <eliz@gn= u=2Eorg> wrote:<br><br> Could you please extend your recipe so it starts= from "emacs -nw -Q"?<br> See, I don't have posframe or elpaca installed an= d don't use them, and<br> don't want to install them just to reproduce and = debug this problem=2E<br><br>Unless there's something I'm missing, the init= file and startup command I provided did the installation of those<br>files= for you into a temporary directory, so I thought that was the easiest self= -contained path to reproducing=2E<br>Let me assume you've run it once that = way initially in order to fetch the packages (otherwise you can<br>manually= download the files if you want and adjust the paths in the below command l= ine, but be aware that<br>you need new enough versions of posframe that und= erstands tty child frame)=2E Then to get a "emacs -nw -Q"<br>initialization= you can use the attached test=2Eel to do:<br><br>emacs -nw -Q --init-direc= tory=3D~/emacs-test -l ~/emacs-test/elpaca/repos/vertico/vertico=2Eel -l ~<= br>/emacs-test/elpaca/repos/vertico/extensions/vertico-multiform=2Eel -l ~<= br>/emacs-test/elpaca/repos/posframe/posframe=2Eel -l ~<br>/emacs-test/elpa= ca/repos/vertico-posframe/vertico-posframe=2Eel test=2Eel<br><br>Then manu= ally "eval" the remaining commands in test=2Eel<br>(in another terminal) em= acsclient -nw<br>Then invoke the child frame pop up: (C-x b and C-n to sele= ct *Messages* and RET)=2E Now we're no longer in<br>a minibuffer=2E<br>Swit= ch back to the original emacs terminal<br>Invoke the child frame pop up: (C= -x b and C-n to select *Messages* and RET)=2E Now we're no longer in a<br>m= inibuffer=2E<br>Swap to the emacsclient terminal, and note that the client = is "hung"=2E<br> <br>I think this gives a specific enough recipe to minimal= ly reproduce=2E<br><br>(vertico-mode)<br><br>(push '(tty-non-selected-curso= r =2E t) vertico-posframe-parameters)<br>(push '(undecorated =2E nil) verti= co-posframe-parameters)<br>(vertico-posframe-mode)<br><br>(server-start)<br= ></div></blockquote><div dir=3D"auto"><br>I tried this now, but I don't thi= nk I see the problem you describe=2E<br><br>I donwloaded vertico, posframe,= and vertico-posframe packages from GNU<br>ELPA -- are the versions availab= le there new enough to reproduce the<br>problem? If not, where should I do= wnload these packages from?<br><br>Anyway, I can only observe a "hung" clie= nt if I forcibly switch from<br>an active minibuffer=2E That is, after "C-= x b" I don't select a buffer,<br>I simply type "C-x o" to switch out of the= mini-window=2E Then only the<br>client where I switched out of the mini-w= indow can accept keyboard<br>input, the other one is "hung"=2E<br><br>Howev= er, I can see the same situation even without these two packages:<br>if I s= tart emacsclient, type "C-x b" there, and then "C-x o" to switch<br>away fr= om the mini-window, Emacs on the other frame will stop responding<br>to key= board input=2E This is expected: when Emacs has an active<br>minibuffer on= some display, Emacs temporarily switches to the<br>"single-keyboard mode"= =2E<br><br>But I suspect this is not what you see, so I wonder what did I n= ot do<br>to reproduce the problem you see=2E<br><br></div></pre></blockquot= e></div></body></html> ------QK5XDGEW991SNXWE349W7CXWJOFQYK--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 5 Jan 2025 16:41:28 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 05 11:41:28 2025 Received: from localhost ([127.0.0.1]:34955 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tUTgt-0004lP-Ux for submit <at> debbugs.gnu.org; Sun, 05 Jan 2025 11:41:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:60066) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tUTgp-0004l6-TN for 75056 <at> debbugs.gnu.org; Sun, 05 Jan 2025 11:41:26 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tUTgk-0005HU-EJ; Sun, 05 Jan 2025 11:41:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=DPBoBxlS0975DqnVMt9NhO1U+JuFp+6H/mHUxxYhjXE=; b=W7uIAz4unfVJ ORyql2EmyPsqHZ82xTi1I+yAQ75FCV/ZQaD0ZpV6Ih0y1dzo4h1Y9yNQBBghStxXlP8se4uxYHCXe L5oaUapcuWxamZlNKu5JokzItprx4b0a4sH0FzbUcyugKTZaVt9mPX+T1QvRvN/zgfVf3YwW5SB83 /r2ntFIf922AlBMPOSYSbBoIzTFP9spTBBEcu3Y3brlbNchpXkCzDHc2r6NTjXbce2QLF+9ZXIb4h qGxlVgtfscuXpbBgqd2pBEyGT22ZOuWFTyqlsfQp+DTO8+mtG7MSnWDEK6VXN4gasF2vZQL7jZTwZ CzwyjF6C4bWucHN24lcOig==; Date: Sun, 05 Jan 2025 18:41:15 +0200 Message-Id: <86v7ut6wno.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Len Trigg <lenbok@HIDDEN> In-Reply-To: <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> (message from Len Trigg on Sun, 29 Dec 2024 08:55:51 +1300) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Len Trigg <lenbok@HIDDEN> > Date: Sun, 29 Dec 2024 08:55:51 +1300 > Cc: gerd.moellmann@HIDDEN, 75056 <at> debbugs.gnu.org > > On Sat, 28 Dec 2024 at 20:52, Eli Zaretskii <eliz@HIDDEN> wrote: > > Could you please extend your recipe so it starts from "emacs -nw -Q"? > See, I don't have posframe or elpaca installed and don't use them, and > don't want to install them just to reproduce and debug this problem. > > Unless there's something I'm missing, the init file and startup command I provided did the installation of those > files for you into a temporary directory, so I thought that was the easiest self-contained path to reproducing. > Let me assume you've run it once that way initially in order to fetch the packages (otherwise you can > manually download the files if you want and adjust the paths in the below command line, but be aware that > you need new enough versions of posframe that understands tty child frame). Then to get a "emacs -nw -Q" > initialization you can use the attached test.el to do: > > emacs -nw -Q --init-directory=~/emacs-test -l ~/emacs-test/elpaca/repos/vertico/vertico.el -l ~ > /emacs-test/elpaca/repos/vertico/extensions/vertico-multiform.el -l ~ > /emacs-test/elpaca/repos/posframe/posframe.el -l ~ > /emacs-test/elpaca/repos/vertico-posframe/vertico-posframe.el test.el > > Then manually "eval" the remaining commands in test.el > (in another terminal) emacsclient -nw > Then invoke the child frame pop up: (C-x b and C-n to select *Messages* and RET). Now we're no longer in > a minibuffer. > Switch back to the original emacs terminal > Invoke the child frame pop up: (C-x b and C-n to select *Messages* and RET). Now we're no longer in a > minibuffer. > Swap to the emacsclient terminal, and note that the client is "hung". > > I think this gives a specific enough recipe to minimally reproduce. > > (vertico-mode) > > (push '(tty-non-selected-cursor . t) vertico-posframe-parameters) > (push '(undecorated . nil) vertico-posframe-parameters) > (vertico-posframe-mode) > > (server-start) I tried this now, but I don't think I see the problem you describe. I donwloaded vertico, posframe, and vertico-posframe packages from GNU ELPA -- are the versions available there new enough to reproduce the problem? If not, where should I download these packages from? Anyway, I can only observe a "hung" client if I forcibly switch from an active minibuffer. That is, after "C-x b" I don't select a buffer, I simply type "C-x o" to switch out of the mini-window. Then only the client where I switched out of the mini-window can accept keyboard input, the other one is "hung". However, I can see the same situation even without these two packages: if I start emacsclient, type "C-x b" there, and then "C-x o" to switch away from the mini-window, Emacs on the other frame will stop responding to keyboard input. This is expected: when Emacs has an active minibuffer on some display, Emacs temporarily switches to the "single-keyboard mode". But I suspect this is not what you see, so I wonder what did I not do to reproduce the problem you see.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 28 Dec 2024 19:57:12 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 28 14:57:12 2024 Received: from localhost ([127.0.0.1]:52685 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tRcvw-0006Xf-5R for submit <at> debbugs.gnu.org; Sat, 28 Dec 2024 14:57:12 -0500 Received: from mail-lj1-f177.google.com ([209.85.208.177]:58544) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tRcvt-0006XU-S6 for 75056 <at> debbugs.gnu.org; Sat, 28 Dec 2024 14:57:10 -0500 Received: by mail-lj1-f177.google.com with SMTP id 38308e7fff4ca-2ffd6b7d77aso108028441fa.0 for <75056 <at> debbugs.gnu.org>; Sat, 28 Dec 2024 11:57:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735415769; x=1736020569; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=djyGjeret4eEKe9IIUb7w29nKpejU991+KVnu7z7rQs=; b=ElM0tlr7cBX+1begZFQMltpYMkQ2MlUSxV/b/aajmnF3xv7T0wZvlUF1GKM/6/1iau gQSpS8eIvgZPnghiqeyQmeb+8dGsd9JeQSPK+Wa7PNPJzpBjaZT1fRZEzF5I3k+aVN0U EIf+3mP+k+GpMc+wDkoo5fSnLTeIu/XIhgBuuzPq4QfcPgOyT6UeHprndbIn0/TpsChZ dyS7uOBg4jpCOjhjWVkk97177QOuvDScMxOZDlfHfPlcjfr0ZpDUWTl5byqru6lhdNtc wDnmSLDbA+CV2MewwqUs7UYOoQ3Xyh/JZX46LQwZBSREGvdaLbxfNzivQ+4aHttEVg0g FZPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735415769; x=1736020569; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=djyGjeret4eEKe9IIUb7w29nKpejU991+KVnu7z7rQs=; b=FT36VAr7/5occBiLVVbNXB0fGtoBnkx16SRVv0XwrXhhjEIfdVtyHL3JC5leGtGsur u242lWY9RVQkQZ4FX7QrDmkQLES3SXz2Sz1SDqSIgJtpRNQlW3t8xQMfPXXFdtv4NA5V rj9wh9lnVHYFV5usbOFtr8nGxzvkE8n1SUwnIcX5Z+dvH6sCY1o431EjQkHxTis7iQNi OJ3QViQidWl1niRFVyhQIqf6RazP1FI/1DamvsfhwsoWyeI+pUnG8vzwIKfpXfiaX5vs i22jC6rGEfqZTiGKSEI1AJxfpC2HoPhxsNeJmy+NMErAuVyUDGEwcfKKhB1MYdQdTvvB HicQ== X-Forwarded-Encrypted: i=1; AJvYcCWT8Nj9tQyb5Uq7SFS5bnK9qYZ0KMBxV4FFOAaloQaryh27bmrV+bOeClIJjPE8CbzpDliK0w==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzcDJYidhNZ2S1ePv3ey7mVNpZOPkehk9Q3mKerv5m6AwAX78FV lbv8isBUkmkK8Wtx4cLpg+bJ35rRTB7QilEkbi4/VhO8cF+JabM+oJ7CTwwzIzNKchA8MCtRuGb 6Lur6bghRG/01DuwgmGCPSS4KB5c= X-Gm-Gg: ASbGncsU781fECHzjJzAJDqbB+mQJnuDR+vQbv8J3w3yOzsTvdM2MY0nZ4kMEoohyAl fQUtpUxexzPBtNpN4KU2DQnGTDB4A0/D7Ca4= X-Google-Smtp-Source: AGHT+IEzIo1hVGe8RA41y3sdNPCmsR/UNzs+FuQLZLr8iJ4CMAd2iXn7/WppcpzNK6yuUiuXeVn3l++mNyrfe88xU3Q= X-Received: by 2002:a05:6512:1394:b0:540:1ec0:4d86 with SMTP id 2adb3069b0e04-54229533e4fmr9468466e87.17.1735415768449; Sat, 28 Dec 2024 11:56:08 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> <86y100utwa.fsf@HIDDEN> In-Reply-To: <86y100utwa.fsf@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Sun, 29 Dec 2024 08:55:51 +1300 Message-ID: <CAOGVwemEaxW2LUn0UTx4LHbOk4P-+wL4qaNHd=vrWFkV18Vrog@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: Eli Zaretskii <eliz@HIDDEN> Content-Type: multipart/mixed; boundary="0000000000006ab32c062a59f882" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --0000000000006ab32c062a59f882 Content-Type: multipart/alternative; boundary="0000000000006ab328062a59f880" --0000000000006ab328062a59f880 Content-Type: text/plain; charset="UTF-8" On Sat, 28 Dec 2024 at 20:52, Eli Zaretskii <eliz@HIDDEN> wrote: > Could you please extend your recipe so it starts from "emacs -nw -Q"? > See, I don't have posframe or elpaca installed and don't use them, and > don't want to install them just to reproduce and debug this problem. > Unless there's something I'm missing, the init file and startup command I provided did the installation of those files for you into a temporary directory, so I thought that was the easiest self-contained path to reproducing. Let me assume you've run it once that way initially in order to fetch the packages (otherwise you can manually download the files if you want and adjust the paths in the below command line, but be aware that you need new enough versions of posframe that understands tty child frame). Then to get a "emacs -nw -Q" initialization you can use the attached test.el to do: emacs -nw -Q --init-directory=~/emacs-test -l ~/emacs-test/elpaca/repos/vertico/vertico.el -l ~/emacs-test/elpaca/repos/vertico/extensions/vertico-multiform.el -l ~/emacs-test/elpaca/repos/posframe/posframe.el -l ~/emacs-test/elpaca/repos/vertico-posframe/vertico-posframe.el test.el Then manually "eval" the remaining commands in test.el (in another terminal) emacsclient -nw Then invoke the child frame pop up: (C-x b and C-n to select *Messages* and RET). Now we're no longer in a minibuffer. Switch back to the original emacs terminal Invoke the child frame pop up: (C-x b and C-n to select *Messages* and RET). Now we're no longer in a minibuffer. Swap to the emacsclient terminal, and note that the client is "hung". I think this gives a specific enough recipe to minimally reproduce. --0000000000006ab328062a59f880 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote g= mail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, 28 Dec = 2024 at 20:52, Eli Zaretskii <<a href=3D"mailto:eliz@HIDDEN">eliz@HIDDEN= rg</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margi= n:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex= "> Could you please extend your recipe so it starts from "emacs -nw -Q&qu= ot;?<br> See, I don't have posframe or elpaca installed and don't use them, = and<br> don't want to install them just to reproduce and debug this problem.<br= ></blockquote><div><br></div><div>Unless there's something I'm miss= ing, the init file and startup command I provided did the installation of t= hose files for you into a temporary directory, so I thought that was the ea= siest self-contained path to reproducing. Let me assume you've run it o= nce that way initially in order to fetch the packages (otherwise you can ma= nually download the files if you want and adjust the paths in the below com= mand line, but be aware that you need new enough versions of posframe that = understands tty child frame). Then to get a "emacs -nw -Q" initia= lization you can use the attached test.el to do:</div><div><br></div>emacs = -nw -Q --init-directory=3D~/emacs-test -l ~/emacs-test/elpaca/repos/vertico= /vertico.el -l ~/emacs-test/elpaca/repos/vertico/extensions/vertico-multifo= rm.el -l ~/emacs-test/elpaca/repos/posframe/posframe.el -l ~/emacs-test/elp= aca/repos/vertico-posframe/vertico-posframe.el=C2=A0 test.el</div><div clas= s=3D"gmail_quote gmail_quote_container"><br><div>Then manually "eval&q= uot; the remaining commands in test.el</div><div><span class=3D"gmail-im">(= in another terminal) emacsclient -nw<br></span>Then invoke the child frame = pop up: (C-x b and C-n to select *Messages* and RET). Now we're no long= er in a minibuffer.<span class=3D"gmail-im"><br>Switch back to the original= emacs terminal<br></span>Invoke the child frame pop up: (C-x b and C-n to = select *Messages* and RET). Now we're no longer in a minibuffer.<br>Swa= p to the emacsclient terminal, and note that the client is "hung"= .</div><div>=C2=A0</div><div>I think this gives a specific enough recipe to= minimally reproduce.<br></div></div></div> --0000000000006ab328062a59f880-- --0000000000006ab32c062a59f882 Content-Type: text/x-emacs-lisp; charset="US-ASCII"; name="test.el" Content-Disposition: attachment; filename="test.el" Content-Transfer-Encoding: base64 Content-ID: <f_m58lf23e0> X-Attachment-Id: f_m58lf23e0 KHZlcnRpY28tbW9kZSkKCihwdXNoICcodHR5LW5vbi1zZWxlY3RlZC1jdXJzb3IgLiB0KSB2ZXJ0 aWNvLXBvc2ZyYW1lLXBhcmFtZXRlcnMpCihwdXNoICcodW5kZWNvcmF0ZWQgLiBuaWwpIHZlcnRp Y28tcG9zZnJhbWUtcGFyYW1ldGVycykKKHZlcnRpY28tcG9zZnJhbWUtbW9kZSkKCihzZXJ2ZXIt c3RhcnQpCg== --0000000000006ab32c062a59f882--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 28 Dec 2024 07:52:15 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 28 02:52:15 2024 Received: from localhost ([127.0.0.1]:48621 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tRRcN-0005xG-FI for submit <at> debbugs.gnu.org; Sat, 28 Dec 2024 02:52:15 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43756) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tRRcL-0005x3-By for 75056 <at> debbugs.gnu.org; Sat, 28 Dec 2024 02:52:13 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tRRcF-0007eQ-Qm; Sat, 28 Dec 2024 02:52:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=5boFm3rxT0tFNICl84edMwW/1txZBHbn5Yy7PROVyyA=; b=S53hRa3CLzWewWoOow2S /sHZzBf/aC/4XQPCM4fHrrewYDbpvQ7ZVzb4gbyY5q28GM+xfn4Kf6g6iED+DHib4tfGIHKZoVP21 MAVENhmZKDVjsg5mnEPh3I9wjArNl1BZaXNb0HX2UnMaCbSe/2y7/cfdPsiIVJ2qH1LraWIRZM0lg 4QBpMzYzKisISwFMa6bflGo/+Af/jXg8U0vjEl+dPJHB/AvJRXgq3mtbF0sYLpydI0iaKjM9iMvBh jtHn7XXL5FWheb3hJUff/cLrotPsbqXVLk9prgUFiJmDSwiRO0JkJFuMpFQoYVkC0QOqFgIGwwVds PeRs1Zn9qSHy5w==; Date: Sat, 28 Dec 2024 09:52:05 +0200 Message-Id: <86y100utwa.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Len Trigg <lenbok@HIDDEN> In-Reply-To: <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> (message from Len Trigg on Sat, 28 Dec 2024 07:23:52 +1300) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: gerd.moellmann@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Len Trigg <lenbok@HIDDEN> > Date: Sat, 28 Dec 2024 07:23:52 +1300 > Cc: Gerd Möllmann <gerd.moellmann@HIDDEN>, > 75056 <at> debbugs.gnu.org > > On Sat, 28 Dec 2024 at 07:13, Len Trigg <lenbok@HIDDEN> wrote: > > Hmmm, the repro scenario I gave doesn't involve either emacs client being still in the minibuffer AFAIK - > the "working" client is just in a regular buffer (e.g. having been chosen via C-x b and selected), and the > "hung" client is, well, hung. > > To elaborate my steps: > emacs -nw --init-directory=~/emacs-test (the first time will result in packages being installed by elpaca) > (in another terminal) emacsclient -nw > Then invoke the child frame pop up: (e.g. C-x b and C-n to select *Messages* and RET). Now we're no > longer in a minibuffer. > Switch back to the original emacs > Invoke the child frame pop up (e.g. C-x b and C-n to select *Messages* and RET). Now we're no longer in a > minibuffer. > Swap to the other terminal, and note that the client is "hung". Could you please extend your recipe so it starts from "emacs -nw -Q"? See, I don't have posframe or elpaca installed and don't use them, and don't want to install them just to reproduce and debug this problem. What I can do is download the packages needed to reproduce this, unpack them into some temporary directory, and manually load them (with commands like "M-x load-file") into Emacs started with -Q. Could you please provide a recipe like this which I could follow? And please specify specific commands in the recipe, not "e.g.", so I could make sure I'm following exactly the correct steps, and nothing else. It is otherwise very hard for me to spend time on such bug reports, because I first need to understand what packages are involved and how to activate them, and that can take a lot of time for packages I never used. TIA
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 28 Dec 2024 07:44:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 28 02:44:17 2024 Received: from localhost ([127.0.0.1]:48608 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tRRUf-0005ZN-Eg for submit <at> debbugs.gnu.org; Sat, 28 Dec 2024 02:44:17 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55688) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tRRUd-0005ZA-5F for 75056 <at> debbugs.gnu.org; Sat, 28 Dec 2024 02:44:15 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tRRUX-0004Rs-Ok; Sat, 28 Dec 2024 02:44:09 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=/e7Ql2FAgrk0eU2GEjrYJo30BhNT/4aGbNzcghdnEkQ=; b=Ye0Zb6SQZSZlnMr9+rGk 5pifD2zZTZHiPBkhgCiybVtSGLC8trX5pVHZOmGWc+B5VDn8g49r6DerZQmgL5EQhPXb5qotPdtff jKgDf+2MJApanknE5/aFOo4tW7RbIggo4NnJZwx5iS1i/suCC92LR/ga3HFhQiDpkolMUpvP1DUTk huKtRgdApzXewnHtGZZBP1GjQed3+/HFO5lU2fIqS/fnlkFr8t8ba26N6QxK+I9hAswu5pRaw+5iB P+/DzIr/QRvEUmAArAPJJgYdGtWfc0PyxPyhG3OiylPIfs/UTrRZ0vUvRHQQLQBXeql0tOKYhdaFK 6i/0UU2fHTQn5g==; Date: Sat, 28 Dec 2024 09:44:01 +0200 Message-Id: <8634i8w8u6.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Len Trigg <lenbok@HIDDEN> In-Reply-To: <CAOGVwenNt8a0HmSXTnqu5_FKkxEVMDw0hmak-MLk7Sn6up_wtg@HIDDEN> (message from Len Trigg on Sat, 28 Dec 2024 07:11:35 +1300) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwenNt8a0HmSXTnqu5_FKkxEVMDw0hmak-MLk7Sn6up_wtg@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Len Trigg <lenbok@HIDDEN> > Date: Sat, 28 Dec 2024 07:11:35 +1300 > > On Sat, 28 Dec 2024 at 02:02, Eli Zaretskii <eliz@HIDDEN> wrote: > > > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > > Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > > Date: Fri, 27 Dec 2024 13:47:09 +0100 > > > > Eli Zaretskii <eliz@HIDDEN> writes: > > > > > Then why is this a bug? > > > > > > When a frame is in a minibuffer, it means Emacs asks the user about > > > something, and in that situation, the user must respond to the prompt, > > > or exit the minibuffer in some other way. That's normal in my book. > > > What am I missing? > > > > Emacs doesn't say anything. > > It does: on the frame where you are in the minibuffer. > > Hmmm, the repro scenario I gave doesn't involve either emacs client being still in the minibuffer AFAIK - the > "working" client is just in a regular buffer (e.g. having been chosen via C-x b and selected), and the "hung" > client is, well, hung. Maybe you switched out of the minibuffer window, leaving the minibuffer active? In which case switching back to the mini-window and exiting the minibuffer prompt (with RET or C-g or some other way) should "unhang" the other client. Is this indeed so?
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 18:25:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 13:25:17 2024 Received: from localhost ([127.0.0.1]:47547 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tRF1R-0007iY-5q for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 13:25:17 -0500 Received: from mail-lf1-f46.google.com ([209.85.167.46]:47598) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tRF1O-0007dF-TR for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 13:25:15 -0500 Received: by mail-lf1-f46.google.com with SMTP id 2adb3069b0e04-53e3a90336eso8269367e87.3 for <75056 <at> debbugs.gnu.org>; Fri, 27 Dec 2024 10:25:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735323849; x=1735928649; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Rh3YrlfSdDSbCcj4GDH4oTrU8iFxtwzVFlyaKL74I0s=; b=kriDQ0Ovf6cVYgvwBkufOQQdaZv+4oOrc5EvgJlJDVmjvcyYoRfRxj8pMhFeIv6qq5 KWLIU6T4E2eH0v+eulzWdij91DONTxzU1Xv3uXUlyh14nCa1LYFFFuLhO1xWFcZW0018 fJKRaNTlFdqMTEA3MivjDGo0eiREwRXJutVwUma0jdcPewo3YgRHrUuKp7+lGzIk4wO3 rq++cy4h0W46c5gGoHNyUcQXpiHN/tOWk1dpexkGgXjnIGsmnjq8eoyKdDHijJfOXxya Ce5jRWz4aAOXAJNd+8iIb76FsSyEIvnnvJlkbn+3si6xoY2lqLIVTfVdQRvu4Hmexera LL+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735323849; x=1735928649; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Rh3YrlfSdDSbCcj4GDH4oTrU8iFxtwzVFlyaKL74I0s=; b=pAlll3mmTo1UdaVRNhI6sykAhVW4nBGyotrFVwoGfMvfJsOL2IGdAowaSAigPZ7hCi /0vWGLB/OobjGF/RwtQusM37K9f/bb8evyj5206THX7rruXdXYvhmp7BKtG6ByV71WVt Zhbl+e50BsJgsBWtQKpBWolApe68W91ZODxWyikqHisx5GOd53S0rz6BZACMRlVuB3Cp okM+SWprj4w33M4bR7zzyA5aKGHV0t2AI6H7/6YxuhdF9X3RSara4wuWVzVxfItH0BaT Ix4S2NsYN4+YXFiq455L3zoxNOiIRIKriwgMfSBTc6CiLaBwH32Bs2y4MUAd+svrHllD ZOyQ== X-Forwarded-Encrypted: i=1; AJvYcCV9X1H+ebyepIavMCI7RrvA+a5RcszLkQG7h9Jxyi7aVB6VvLzgyTDsATL4IY92WawEmTft2Q==@debbugs.gnu.org X-Gm-Message-State: AOJu0YyShKMCkEbW8BF2ZQEbK0AY7NGv1ycT5Wk2YueUR9Oa4Fg5hv7o 4F5bOAF5nI9eQPi7yrC3nYh7a21NEB9YrpmiUrRfItS4xnE6pk3A4vRaRJ7PgQjl1y9sjdL5Oqj AKMYM6n6NTZMCBxqGThMfltBMk6ABloJh X-Gm-Gg: ASbGncv/2zK3T7MdniyV2dXS5TCACXZamfBDNt7myLpc1CeO8HFPEhn62CQ0/fbW8cp lcdeW17p5PnElPq6g1JWy5uDbj/35mhJl81I= X-Google-Smtp-Source: AGHT+IFJYklPsseqcCrGUe2GznsqPwxqZlFw9GyBYLoPK+D4cfoc9k7j2gma5CLXQfnyEn/89V53IjkJNsxxYux6eJw= X-Received: by 2002:a05:6512:398d:b0:540:206b:c355 with SMTP id 2adb3069b0e04-54229533052mr7993013e87.19.1735323848627; Fri, 27 Dec 2024 10:24:08 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> In-Reply-To: <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Sat, 28 Dec 2024 07:23:52 +1300 Message-ID: <CAOGVweko_sjbhWgv6hOxkLswyUnTL0LqPMRhOo03KVPT7aKQQw@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: Eli Zaretskii <eliz@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000915c00062a4491f5" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --000000000000915c00062a4491f5 Content-Type: text/plain; charset="UTF-8" On Sat, 28 Dec 2024 at 07:13, Len Trigg <lenbok@HIDDEN> wrote: > Hmmm, the repro scenario I gave doesn't involve either emacs client being > still in the minibuffer AFAIK - the "working" client is just in a regular > buffer (e.g. having been chosen via C-x b and selected), and the "hung" > client is, well, hung. > To elaborate my steps: emacs -nw --init-directory=~/emacs-test (the first time will result in packages being installed by elpaca) (in another terminal) emacsclient -nw Then invoke the child frame pop up: (e.g. C-x b and C-n to select *Messages* and RET). Now we're no longer in a minibuffer. Switch back to the original emacs Invoke the child frame pop up (e.g. C-x b and C-n to select *Messages* and RET). Now we're no longer in a minibuffer. Swap to the other terminal, and note that the client is "hung". --000000000000915c00062a4491f5 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote g= mail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, 28 Dec = 2024 at 07:13, Len Trigg <<a href=3D"mailto:lenbok@HIDDEN">lenbok@gma= il.com</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"m= argin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left= :1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div>Hmmm, the repro scen= ario I gave doesn't involve either emacs client=20 being still in the minibuffer AFAIK - the "working" client is jus= t in a=20 regular buffer (e.g. having been chosen via C-x b and selected), and the "hung" client is, well, hung.</div></div></div></blockquote><div= ><br></div><div>To elaborate my steps:</div><div>emacs -nw --init-directory= =3D~/emacs-test=C2=A0 (the first time will result in packages being install= ed by elpaca)<br>(in another terminal) emacsclient -nw<br>Then invoke the c= hild frame pop up: (e.g. C-x b and C-n to select *Messages* and RET). Now w= e're no longer in a minibuffer.<br>Switch back to the original emacs<br= >Invoke the child frame pop up (e.g. C-x b and C-n to select *Messages* and= RET). Now we're no longer in a minibuffer.<br>Swap to the other termin= al, and note that the client is "hung".</div><div><br></div></div= ></div> --000000000000915c00062a4491f5--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 18:14:56 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 13:14:56 2024 Received: from localhost ([127.0.0.1]:47527 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tRErQ-0007Ah-4a for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 13:14:56 -0500 Received: from mail-lf1-f45.google.com ([209.85.167.45]:61537) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tRErN-0007AT-Nh for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 13:14:54 -0500 Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-53f22fd6887so7192911e87.2 for <75056 <at> debbugs.gnu.org>; Fri, 27 Dec 2024 10:14:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735323228; x=1735928028; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=zJudeh0FHFgIyUJ1a7zjAbJMoR3LdImPv2YP06wVseU=; b=aqbBkIujEwzHdE+LYUQ/bPfJwadzEis1ylY+HNeNnMDtasl4UhT0O8ZB/njgFYhbYw qNcSNja1qHMKlliK7kw4pLoVFxN+x93yfCq5xKp8m/TOu3nSZlth7ShyKs0cDcD5CoFz 86G9YFrClnCCr/YCaiWxhoptPh4Wa2jpDyfEZ8f2gufa6k02PGykUblGSGg2iLa+9aph 2gLiCx8WGzdMEVP1Ie2x4dU2v2CLBAwUrt6PfVcxdCdx+in9eoThSmjz8s9pmwoR2MRb DR+TsEeWaLkVYcWe1qVuw0k0m41w0ja8dzC5KsRX0eUuRjbE38Oc215IsOxgSk2AtWMf wzfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735323228; x=1735928028; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=zJudeh0FHFgIyUJ1a7zjAbJMoR3LdImPv2YP06wVseU=; b=WDXeWoh8uGiOUQaumGao0LavWKD4zvDkq2qjasdXE2yUAxQ76PN7whfZwNnzfCVOCr lsvfyTblITk/0qJQ3Q7jikcVIwoUZNfvRbczQ0pyHId6nxsQqK3/3KzkkY8TfB26QqvS cz+HYoyrnUa/0ZkHslZClygYU81ZRsbIw7mW3m2VjOuYjHh1NuuoDRTREc5xaJjvJ4TP 7x9L19gvMXsz4/+oPS6N0QCUnUbDiEwjrTJwEU7zuJIkmgPddTEYuw5byOgGtDOTNxim qhwcXD1juErLCoDJsLIRu3LNAEya5cx7VBCWP3TP7WAHkym5ZsGmFakLM//7ffujYvob UeZA== X-Forwarded-Encrypted: i=1; AJvYcCUyapSOlFcwAB5jxS+kzV01OGiQAquHBTXTcVtdLx+h1lYr42Byec/P04hpfVuy/XeftKtWZQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YznHwHcvMzOkBpp3UPqkkmHgiU3DyHCj5LoQHnGU1muKpMI1tcB cFrKNdsRzSuuazeySN4fCFJDL8ge8x5MuJ6859dlpZrY7+SRw5whPGwzQoWiPba9aud/HX4enSH Wa3eSuS4UWyxF12H63E/ZwapzLTKOreJa X-Gm-Gg: ASbGncvYX1N34G3QLmzWrP0qEJNJA7gjvW4Y84cu/jBzoyuRfZhRrOmKpCAzRkcbq/X XpcNyGJZGr1illM5VojvlxWOLJEW5o6YQsDg= X-Google-Smtp-Source: AGHT+IH3c4hdUhbJrgohiujq+VKG2YYII+qWUtHTShP/Yg0XlM/a6ON/dcsjWXXY1gP7WC0DgtlCSnGFzwGcwhsOxqI= X-Received: by 2002:a05:6512:ba4:b0:540:2a15:9b5d with SMTP id 2adb3069b0e04-54229561a38mr7149548e87.42.1735323227826; Fri, 27 Dec 2024 10:13:47 -0800 (PST) MIME-Version: 1.0 References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> In-Reply-To: <86msghwa6q.fsf@HIDDEN> From: Len Trigg <lenbok@HIDDEN> Date: Sat, 28 Dec 2024 07:13:31 +1300 Message-ID: <CAOGVwemPTm_8hoUKUuRhFeVU7yGfhtUEErLjmAXN8mxLLjvO7w@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: Eli Zaretskii <eliz@HIDDEN> Content-Type: multipart/alternative; boundary="00000000000090b493062a446ce1" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: =?UTF-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --00000000000090b493062a446ce1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable (Sorry Eli for the dup email, I initially used Reply rather than Reply-All) On Sat, 28 Dec 2024 at 02:02, Eli Zaretskii <eliz@HIDDEN> wrote: > > From: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> > > Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > > Date: Fri, 27 Dec 2024 13:47:09 +0100 > > > > Eli Zaretskii <eliz@HIDDEN> writes: > > > > > Then why is this a bug? > > > > > > When a frame is in a minibuffer, it means Emacs asks the user about > > > something, and in that situation, the user must respond to the prompt= , > > > or exit the minibuffer in some other way. That's normal in my book. > > > What am I missing? > > > > Emacs doesn't say anything. > > It does: on the frame where you are in the minibuffer. > Hmmm, the repro scenario I gave doesn't involve either emacs client being still in the minibuffer AFAIK - the "working" client is just in a regular buffer (e.g. having been chosen via C-x b and selected), and the "hung" client is, well, hung. --00000000000090b493062a446ce1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div dir=3D"ltr">(Sorry Eli for the dup email, I initially= used Reply rather than Reply-All)<br></div><br><div class=3D"gmail_quote g= mail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">On Sat, 28 Dec = 2024 at 02:02, Eli Zaretskii <<a href=3D"mailto:eliz@HIDDEN">eliz@HIDDEN= rg</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margi= n:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex= ">> From: Gerd M=C3=B6llmann <<a href=3D"mailto:gerd.moellmann@gmail.= com" target=3D"_blank">gerd.moellmann@HIDDEN</a>><br> > Cc: <a href=3D"mailto:lenbok@HIDDEN" target=3D"_blank">lenbok@gmail= .com</a>,=C2=A0 <a href=3D"mailto:75056 <at> debbugs.gnu.org" target=3D"_blank">= 75056 <at> debbugs.gnu.org</a><br> > Date: Fri, 27 Dec 2024 13:47:09 +0100<br> > <br> > Eli Zaretskii <<a href=3D"mailto:eliz@HIDDEN" target=3D"_blank">el= iz@HIDDEN</a>> writes:<br> > <br> > > Then why is this a bug?<br> > ><br> > > When a frame is in a minibuffer, it means Emacs asks the user abo= ut<br> > > something, and in that situation, the user must respond to the pr= ompt,<br> > > or exit the minibuffer in some other way.=C2=A0 That's normal= in my book.<br> > > What am I missing?<br> > <br> > Emacs doesn't say anything.<br> <br> It does: on the frame where you are in the minibuffer.<br></blockquote><div= ><br></div><div>Hmmm, the repro scenario I gave doesn't involve either = emacs client=20 being still in the minibuffer AFAIK - the "working" client is jus= t in a=20 regular buffer (e.g. having been chosen via C-x b and selected), and the "hung" client is, well, hung.</div><div>=C2=A0</div></div></div> --00000000000090b493062a446ce1--
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 15:57:15 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 10:57:15 2024 Received: from localhost ([127.0.0.1]:47289 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tRCiA-0000qg-MI for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 10:57:14 -0500 Received: from mail-ed1-f49.google.com ([209.85.208.49]:50354) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tRCi8-0000qP-IJ for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 10:57:13 -0500 Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-5d3cf094768so11736184a12.0 for <75056 <at> debbugs.gnu.org>; Fri, 27 Dec 2024 07:57:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735314965; x=1735919765; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oXAlMNwj8T91gBP5ojzx6cnoOfJ3egUmTYO00jwYT3g=; b=W4F4kFB5J0o2KeaoxIvCQlCjx4rfImqf9ilZc/oYoSCXkM9arlpMsCzwpgC67Kg3ku WGFC8J/yUCjLO+5550U/2WM4NSeFGgU56fonNLb0E0lCYPlCjPl9Bo+rLgrcP1gV83Jy iK8cnmbpHDIcDp/bi/tmdonSWzU/wCDUCU/Dsj5BsHWLB0AgUh64IlxC+8ETUf/jEWtN buMz6lx+t6/rBR+w5NISlKT5nlGTZuXfESrloUp2OdgfAXHrsQS78QEF0kSPAGU8PqD8 MxrLDiYpMtrW00uBb6rGp8xMF7mz3ARcawtIVotiXd8dGJmtpPKm/rdjVUrfau8xRzCn Kp9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735314965; x=1735919765; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=oXAlMNwj8T91gBP5ojzx6cnoOfJ3egUmTYO00jwYT3g=; b=b3Fm0kv9yWRgm6tqg9pDzY0jDashI8hlDzCMU9rwfmEl9zzdvzGfjhdjgp4WzY7mCg jJhEvY+vu0mZw+ObkpJsshUzuzjmjqm5rBXRSlRu1tQMQdWnUMYpelR91/1tcxY8+1RR //MJumm/of4zCyDaiQIKcVNrDqSrSFugSv/rIFyqB+G3M/Y+PO6yvKZeubUWfQEsiKwy 9gqGC/qSzjoCZsQ5mY62cNiFH/VCww7N9p0PzxO6xfWNSpoMgCMFNpRPbukeWn0AAvLF GzmkKvCExSn/qUqwoGGPpJNNNjqWakABzsdtjN1q8TuT343zlfV3lBQShlRvO2Fy0D2n +xKQ== X-Forwarded-Encrypted: i=1; AJvYcCU4n73LSmToHBvQ6dIuZ3GrAn7ydaQiGw/SdQU6rz5Sw/8ZHQSuWSQCJC/+cRKItqhfsF7nHg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YwQtwK6mQQqYeNOirU99OIvnAO+mvazsSQLA/m2MJQakudAspiO CstNi6tZS2r+q4Hi8uOaMolVJt8EzubBKD+8/qj98rteCyqnd66YdSR2bQ== X-Gm-Gg: ASbGncvTJDB/HMGZYUKKJDTnBGcIeAB/3voULQ0dUxK1w9NgHCXhImXSv1F8vj7n2YT /5szCY8V/Q34wcRTAYGZAFENw44BpWMnOHFtzSLXYWqp0GpApJynkWDw3IQAq3GZ6V7qQoTeVDp Z0H3LpytyH8Kcis5P0Ju9p5/jftro1WDRET9+1lryvNBNX03mHwKNo827OHDOV6Jnjs4M0BJiGL e4mrhgOOfQltBcui4kfa/qU2Nz7ZKE9LFivLdip8Uermc6hODOQm6mnY1v/Jb/HNJ/ztF//gX1I C1fpE8X6nsV2SYnWGEOfvDCzri+LFNaBG3rvQ5KRtprlzUoXj7X+3Jc+S1J9 X-Google-Smtp-Source: AGHT+IHwDKxZUTdFm9O3yQr4OBaszDlX+kE+q+6zTG/A5TPlp3pbpZim09anIIKZPsqG2FUgGhBSBw== X-Received: by 2002:a05:6402:360b:b0:5d4:5e4:1561 with SMTP id 4fb4d7f45d1cf-5d81ddcd24fmr26296613a12.20.1735314965269; Fri, 27 Dec 2024 07:56:05 -0800 (PST) Received: from pro2 (p200300e0b74e5900bde19f98ca9a60df.dip0.t-ipconnect.de. [2003:e0:b74e:5900:bde1:9f98:ca9a:60df]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5d848b5c19dsm8087248a12.11.2024.12.27.07.56.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Dec 2024 07:56:04 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <86ldw1w51g.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 27 Dec 2024 16:53:47 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <m2msghz2nc.fsf@HIDDEN> <86ldw1w51g.fsf@HIDDEN> Date: Fri, 27 Dec 2024 16:56:03 +0100 Message-ID: <m2y10186i4.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> >> Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org >> Date: Fri, 27 Dec 2024 14:17:11 +0100 >>=20 >> Eli Zaretskii <eliz@HIDDEN> writes: >>=20 >> > But I'm not yet sure this is what we see in this case, which is why I >> > asked for a C backtrace. Producing it should be easy: just reproduce >> > the problem, then attach a debugger and produce the backtrace. >>=20 >> See below. AFAICS, Emacs is waiting for input, and when we have some, >> the wrong things will happen. Please note that this is not a full debug >> build. > > Thanks. This lacks the equivalent of "xbacktrace", so a bit hard to > interpret, but I see read-from-minibuffer which called recursive-edit. > > What is the recipe for this, starting from "emacs -Q", please?=20=20 The one the OP gave is good. > Can this be reproduced without posframe? No idea.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 14:54:00 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 09:54:00 2024 Received: from localhost ([127.0.0.1]:45287 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tRBix-0005CR-LW for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 09:53:59 -0500 Received: from eggs.gnu.org ([209.51.188.92]:43822) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tRBiu-0005CE-LR for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 09:53:58 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tRBip-0006io-D4; Fri, 27 Dec 2024 09:53:51 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=+0VuF1TaocBpp6o0Rumr76oJzGUf7jmGDTaN365/wD8=; b=ABldhIYTp/548UikRHsr ibYQA26oZrTbNDOLx0yVA7zVItNxq4jyo7sQ8y6rWXNnpvoF9IjUtt8oEoW9A345RxRFvxyzv1Qyy OI2cDieRO22Q6eExFnNJrn68JdG03BuW6KjFMBxflIQRVzDD+vZmexCFYPJ4FHcXhDxZ1ehffWedD m0LkpaC4fZYhgP+D1zpxs58mAGfGa92Z7MfmkmIklJmiEqg6G5mnp0/CxguaIWOrMMHC+/649ORU7 AlBwDxAssXus5uU9pIgczRIec7/6ZmhUFNHWjFUHzJCeppyKSoVDBCKsmTrVyEo9dNBVYFvaKLyDk NzzWHltPyR8xqQ==; Date: Fri, 27 Dec 2024 16:53:47 +0200 Message-Id: <86ldw1w51g.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2msghz2nc.fsf@HIDDEN> (message from Gerd =?utf-8?Q?M?= =?utf-8?Q?=C3=B6llmann?= on Fri, 27 Dec 2024 14:17:11 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> <m2msghz2nc.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > Date: Fri, 27 Dec 2024 14:17:11 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > But I'm not yet sure this is what we see in this case, which is why I > > asked for a C backtrace. Producing it should be easy: just reproduce > > the problem, then attach a debugger and produce the backtrace. > > See below. AFAICS, Emacs is waiting for input, and when we have some, > the wrong things will happen. Please note that this is not a full debug > build. Thanks. This lacks the equivalent of "xbacktrace", so a bit hard to interpret, but I see read-from-minibuffer which called recursive-edit. What is the recipe for this, starting from "emacs -Q", please? Can this be reproduced without posframe?
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 13:18:16 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 08:18:16 2024 Received: from localhost ([127.0.0.1]:45064 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tRAEJ-0000AX-S5 for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 08:18:16 -0500 Received: from mail-ed1-f52.google.com ([209.85.208.52]:56432) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tRAEH-0000AO-Ua for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 08:18:14 -0500 Received: by mail-ed1-f52.google.com with SMTP id 4fb4d7f45d1cf-5d3f65844deso11428343a12.0 for <75056 <at> debbugs.gnu.org>; Fri, 27 Dec 2024 05:18:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735305433; x=1735910233; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=4RirBqXo+QEim80BCROa4BABJrcICg9XIQjKVAF1gVI=; b=h+c23+QK6XhpgCNjwTN13mPD4OUCtPitMcSi4h5/conWjSe+NjEvieoFJ/fYpookwR UtojMN53EWJ7RQs+THMAeJhOjfUErddVSuJuAFdafZrvL5gXyyNEmcWzB1Tqf8zlXER1 yQGcnvAzUwZaBJdEQ0wyj+55GLo8QgG1UQHURiKVhaNtvBLU1AM8BcDPtNNC5BvdkHhO mOirnVIf2Cx0B9RjaXxfPIrnANxKSS/u54SdIPHJp8zH3bZ8Bcys56TWPbxlb8KtDEfT swZQuoYCyPFSMo+GAGHUmOKxN8fdVzJIpE7tqZRRvjs8uTvuRiv0Ye198sdahgRr4jrO XcfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735305433; x=1735910233; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4RirBqXo+QEim80BCROa4BABJrcICg9XIQjKVAF1gVI=; b=gn4znqivQVXw7p7qgVwaKKAsuJOTZEe/Cf61PtTS/f6Bx3P0opNZGDJMUffX3Rtnds AnMvJlSthbU6q4aOhiEHrPnwUD2gyW6kkma60f6KqUV1wZTSKq97dCVhSZYFIO26A9tu mD0IGeDvepjtRJ/17F3sJMCvn+XfEJOrg6fzNJIgNkuGZHOOoE8SDVX9A1D5Zzey9d+S ShD55x1TYg57mrc40qqJ725AlWY2FB+5dTU6oVztQVeRSVakyQDu49AihFy7v3CKKAJW wco2aPMsA8jtjOsVBj/aPgexem8axfCFnnqvPu6EsORKGoj0IlhbT7UNp/F+0JsR6XxP Wr4Q== X-Forwarded-Encrypted: i=1; AJvYcCU6Nd6HoGwb+EBUyOwqi/BPIy69PQBc6jkFeZOiLw/eOS7fw6uyPaQDA2CzQqoaaB4IQiGsgA==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yw3hEOs2wxkg1PFQLdAzLNgtr0u3S+RRQr4QBK+N9agQ2/WghGS pDHmPtR8ulL0gHg/uZ0WCMIaItH990ft+FvNWQbcdVJrxnPz4MIzyVclXw== X-Gm-Gg: ASbGnctmOOOWN0SzKTn/7GQRu1TGYG/38Nvg/nZ5xDxnAM8o/cxq3Az17IjcFW8tdTN 1bN6GtaoLcZ09x7AIyTQDehM+FAt56fMpovlsFtsAx06s40fYsxOXzjlNmZqNEZxFRYt/nVsrDL 6fKkoYfxEe2nuyn5R8cimZ/sjOCqRGzwanzYZbMksoqeS9MYHHsQWZ9TJQVstTjZtcyv4yEaS80 0fooHEEnKhWAhPEzyt5qpAHtlbnWsnTgmZ9hE/Cf9xML6gb9CRaflWVW4gP1bgnYOSRlsnnc5OZ q/XLp46IVQUv2ncYBplIixQDeTWNrrwNewFZQMjH2STsp219/xaSye1P8VNEsxQikQ== X-Google-Smtp-Source: AGHT+IF+Q8XxBinNPX3KV8KDPPm3X3+uCqdBWz3DbkAltFqT28T2B1+HC2cWCf8YMpNDYW8ewfSkjQ== X-Received: by 2002:a17:906:4fce:b0:aab:73c5:836 with SMTP id a640c23a62f3a-aac334c3d70mr2781485066b.32.1735305432564; Fri, 27 Dec 2024 05:17:12 -0800 (PST) Received: from pro2 (p200300e0b74e5900bde19f98ca9a60df.dip0.t-ipconnect.de. [2003:e0:b74e:5900:bde1:9f98:ca9a:60df]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aac0e89598csm1106174766b.56.2024.12.27.05.17.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Dec 2024 05:17:12 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <86msghwa6q.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 27 Dec 2024 15:02:37 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> <86msghwa6q.fsf@HIDDEN> Date: Fri, 27 Dec 2024 14:17:11 +0100 Message-ID: <m2msghz2nc.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: > But I'm not yet sure this is what we see in this case, which is why I > asked for a C backtrace. Producing it should be easy: just reproduce > the problem, then attach a debugger and produce the backtrace. See below. AFAICS, Emacs is waiting for input, and when we have some, the wrong things will happen. Please note that this is not a full debug build. bt * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP frame #0: 0x0000000190be51a8 libsystem_kernel.dylib`__pselect + 8 frame #1: 0x0000000190be5080 libsystem_kernel.dylib`pselect$DARWIN_EXTSN + 64 frame #2: 0x00000001047181d4 emacs`really_call_select(arg=0x000000016b8d44e0) at thread.c:620:16 [opt] frame #3: 0x0000000104718148 emacs`thread_select [inlined] flush_stack_call_func(func=<unavailable>, arg=0x000000016b8d44e0) at lisp.h:4842:3 [opt] frame #4: 0x0000000104718138 emacs`thread_select(func=<unavailable>, max_fds=<unavailable>, rfds=<unavailable>, wfds=<unavailable>, efds=<unavailable>, timeout=<unavailable>, sigmask=<unavailable>) at thread.c:652:3 [opt] frame #5: 0x000000010473ef04 emacs`ns_select_1(nfds=<unavailable>, readfds=<unavailable>, writefds=<unavailable>, exceptfds=<unavailable>, timeout=<unavailable>, sigmask=<unavailable>, run_loop_only=<unavailable>) at nsterm.m:4873:12 [opt] [artificial] frame #6: 0x000000010473ed14 emacs`ns_select(nfds=<unavailable>, readfds=<unavailable>, writefds=<unavailable>, exceptfds=<unavailable>, timeout=<unavailable>, sigmask=<unavailable>) at nsterm.m:5006:10 [opt] [artificial] frame #7: 0x00000001046e72c0 emacs`wait_reading_process_output(time_limit=<unavailable>, nsecs=<unavailable>, read_kbd=<unavailable>, do_display=true, wait_for_cell=<unavailable>, wait_proc=<unavailable>, just_wait_proc=<unavailable>) at process.c:5766:18 [opt] frame #8: 0x000000010460d4b4 emacs`read_char [inlined] kbd_buffer_get_event(kbp=<unavailable>, used_mouse_menu=0x000000016b8d4f67, end_time=0x0000000000000000) at keyboard.c:0 [opt] !gud 0::/Users/gerd/emacs/github/cl-packages/src/keyboard.c frame #9: 0x000000010460d294 emacs`read_char [inlined] read_event_from_main_queue(end_time=0x0000000000000000, local_getcjmp=0x000000016b8d4c00, used_mouse_menu=0x000000016b8d4f67) at keyboard.c:2336:7 [opt] frame #10: 0x000000010460d134 emacs`read_char [inlined] read_decoded_event_from_main_queue(end_time=0x0000000000000000, local_getcjmp=0x000000016b8d4c00, prev_event=(struct Lisp_Symbol *) $4 = 0x0000000104e060e0, used_mouse_menu=0x000000016b8d4f67) at keyboard.c:2400:11 [opt] frame #11: 0x000000010460d114 emacs`read_char(commandflag=1, map=(struct Lisp_Cons *) $8 = 0x000000010abc8280, prev_event=(struct Lisp_Symbol *) $4 = 0x0000000104e060e0, used_mouse_menu=0x000000016b8d4f67, end_time=0x0000000000000000) at keyboard.c:3031:11 [opt] frame #12: 0x000000010460992c emacs`read_key_sequence(keybuf=<unavailable>, prompt=(struct Lisp_Symbol *) $4 = 0x0000000104e060e0, dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=<unavailable>, disable_text_conversion_p=<unavailable>) at keyboard.c:10762:12 [opt] frame #13: 0x0000000104607d9c emacs`command_loop_1 at keyboard.c:1435:15 [opt] frame #14: 0x000000010468eeb0 emacs`internal_condition_case(bfun=(emacs`command_loop_1 at keyboard.c:1330), handlers=(struct Lisp_Symbol *) $10 = 0x0000000104e06188, hfun=(emacs`cmd_error at keyboard.c:976)) at eval.c:1669:25 [opt] frame #15: 0x0000000104607a50 emacs`command_loop_2(handlers=(struct Lisp_Symbol *) $10 = 0x0000000104e06188) at keyboard.c:1174:11 [opt] !gud 1174:11:/Users/gerd/emacs/github/cl-packages/src/keyboard.c frame #16: 0x000000010468e504 emacs`internal_catch(tag=(struct Lisp_Symbol *) $13 = 0x0000000104e0f108, func=(emacs`command_loop_2 at keyboard.c:1170), arg=(struct Lisp_Symbol *) $10 = 0x0000000104e06188) at eval.c:1348:25 [opt] frame #17: 0x000000010460714c emacs`command_loop at keyboard.c:1144:13 [opt] frame #18: 0x0000000104607008 emacs`recursive_edit_1 at keyboard.c:760:9 [opt] frame #19: 0x000000010463e660 emacs`Fread_from_minibuffer [inlined] read_minibuf(map=<unavailable>, initial=<unavailable>, prompt=(struct Lisp_String *) $15 = 0x000000010aba19a8, expflag=<unavailable>, histvar=<unavailable>, histpos=(EMACS_INT) $17 = 0, defalt=<unavailable>, allow_props=<unavailable>, inherit_input_method=<unavailable>) at minibuf.c:905:3 [opt] !gud 905:3:/Users/gerd/emacs/github/cl-packages/src/minibuf.c frame #20: 0x000000010463de28 emacs`Fread_from_minibuffer(prompt=(struct Lisp_String *) $15 = 0x000000010aba19a8, initial_contents=<unavailable>, keymap=(struct Lisp_Cons *) $18 = 0x0000000108f15eb0, read=(struct Lisp_Symbol *) $4 = 0x0000000104e060e0, hist=<unavailable>, default_value=(struct Lisp_String *) $19 = 0x000000010893a840, inherit_input_method=(struct Lisp_Symbol *) $4 = 0x0000000104e060e0) at minibuf.c:1398:9 [opt] frame #21: 0x0000000104691b70 emacs`funcall_subr(subr=0x0000000104da0e70, numargs=7, args=<unavailable>) at eval.c:3237:15 [opt] frame #22: 0x00000001046de5f0 emacs`exec_byte_code(fun=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:828:14 [opt] frame #23: 0x0000000104691d0c emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=<unavailable>) at eval.c:3316:9 [opt] [artificial] frame #24: 0x0000000104691a40 emacs`funcall_general(fun=<unavailable>, numargs=<unavailable>, args=<unavailable>) at eval.c:3108:12 [opt] [artificial] frame #25: 0x000000010468c3f8 emacs`Ffuncall(nargs=9, args=(struct Lisp_Symbol *) $21 = 0x00000002706db770) at eval.c:3157:21 [opt] frame #26: 0x0000000104690cac emacs`Fapply(nargs=1, args=(struct Lisp_Symbol *) $25 = 0x0000000244e0e360) at eval.c:2822:24 [opt] frame #27: 0x0000000104691ac8 emacs`funcall_subr(subr=0x0000000104da72b0, numargs=1, args=<unavailable>) at eval.c:0 [opt] frame #28: 0x00000001046de5f0 emacs`exec_byte_code(fun=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:828:14 [opt] frame #29: 0x0000000104691d0c emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=<unavailable>) at eval.c:3316:9 [opt] [artificial] frame #30: 0x0000000104691a40 emacs`funcall_general(fun=<unavailable>, numargs=<unavailable>, args=<unavailable>) at eval.c:3108:12 [opt] [artificial] frame #31: 0x000000010468c3f8 emacs`Ffuncall(nargs=10, args=(struct Lisp_Symbol *) $29 = 0x00000002706db9d0) at eval.c:3157:21 [opt] frame #32: 0x0000000104690cac emacs`Fapply(nargs=2, args=(struct Lisp_Symbol *) $32 = 0x0000000244e0e2d0) at eval.c:2822:24 [opt] frame #33: 0x0000000104691ac8 emacs`funcall_subr(subr=0x0000000104da72b0, numargs=2, args=<unavailable>) at eval.c:0 [opt] frame #34: 0x00000001046de5f0 emacs`exec_byte_code(fun=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:828:14 [opt] frame #35: 0x0000000104691d0c emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=<unavailable>) at eval.c:3316:9 [opt] [artificial] frame #36: 0x0000000104691a40 emacs`funcall_general(fun=<unavailable>, numargs=<unavailable>, args=<unavailable>) at eval.c:3108:12 [opt] [artificial] frame #37: 0x000000010468c3f8 emacs`Ffuncall(nargs=10, args=(struct Lisp_Symbol *) $35 = 0x00000002706dbc30) at eval.c:3157:21 [opt] frame #38: 0x0000000104690cac emacs`Fapply(nargs=3, args=(struct Lisp_Symbol *) $39 = 0x0000000244e0e280) at eval.c:2822:24 [opt] frame #39: 0x0000000104691ac8 emacs`funcall_subr(subr=0x0000000104da72b0, numargs=3, args=<unavailable>) at eval.c:0 [opt] frame #40: 0x00000001046de5f0 emacs`exec_byte_code(fun=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:828:14 [opt] frame #41: 0x0000000104691d0c emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=<unavailable>) at eval.c:3316:9 [opt] [artificial] frame #42: 0x0000000104691a40 emacs`funcall_general(fun=<unavailable>, numargs=<unavailable>, args=<unavailable>) at eval.c:3108:12 [opt] [artificial] !gud 3108:12:/Users/gerd/emacs/github/cl-packages/src/eval.c frame #43: 0x000000010468c3f8 emacs`Ffuncall(nargs=<unavailable>, args=(struct Lisp_Symbol *) $42 = 0x00000002706dbef0) at eval.c:3157:21 [opt] frame #44: 0x000000010463f3c8 emacs`Fread_buffer(prompt=(struct Lisp_String *) $15 = 0x000000010aba19a8, def=(struct Lisp_String *) $19 = 0x000000010893a840, require_match=(struct Lisp_Symbol *) $45 = 0x00000001084b4d58, predicate=(struct Lisp_Symbol *) $4 = 0x0000000104e060e0) at minibuf.c:0 [opt] frame #45: 0x0000000104691bdc emacs`funcall_subr(subr=0x0000000104da0fb0, numargs=3, args=<unavailable>) at eval.c:3231:15 [opt] frame #46: 0x00000001046de5f0 emacs`exec_byte_code(fun=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:828:14 [opt] !gud 828:14:/Users/gerd/emacs/github/cl-packages/src/bytecode.c frame #47: 0x00000001046dd188 emacs`Fbyte_code(bytestr=<unavailable>, vector=(struct Lisp_Vector *) $48 = 0x00000001084b4808, maxdepth=(EMACS_INT) $50 = 4) at bytecode.c:325:10 [opt] frame #48: 0x000000010468b8e8 emacs`eval_sub(form=(struct Lisp_Cons *) $51 = 0x00000001084b47a8) at eval.c:2661:15 [opt] frame #49: 0x0000000104690798 emacs`Feval(form=<unavailable>, lexical=<unavailable>) at eval.c:2514:28 [opt] frame #50: 0x0000000104688d84 emacs`Fcall_interactively(function=<unavailable>, record_flag=(struct Lisp_Symbol *) $4 = 0x0000000104e060e0, keys=(struct Lisp_Vector *) $52 = 0x000000010ab9ee88) at callint.c:325:15 [opt] frame #51: 0x0000000104691c1c emacs`funcall_subr(subr=0x0000000104da68f0, numargs=3, args=<unavailable>) at eval.c:3229:15 [opt] frame #52: 0x00000001046de5f0 emacs`exec_byte_code(fun=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:828:14 [opt] frame #53: 0x0000000104691d0c emacs`funcall_lambda(fun=<unavailable>, nargs=<unavailable>, arg_vector=<unavailable>) at eval.c:3316:9 [opt] [artificial] frame #54: 0x0000000104691a40 emacs`funcall_general(fun=<unavailable>, numargs=<unavailable>, args=<unavailable>) at eval.c:3108:12 [opt] [artificial] frame #55: 0x000000010468c3f8 emacs`Ffuncall(nargs=2, args=(struct Lisp_Symbol *) $54 = 0x00000002706dc610) at eval.c:3157:21 [opt] frame #56: 0x0000000104607fb0 emacs`command_loop_1 at keyboard.c:1556:13 [opt] frame #57: 0x000000010468eeb0 emacs`internal_condition_case(bfun=(emacs`command_loop_1 at keyboard.c:1330), handlers=(struct Lisp_Symbol *) $10 = 0x0000000104e06188, hfun=(emacs`cmd_error at keyboard.c:976)) at eval.c:1669:25 [opt] frame #58: 0x0000000104607a50 emacs`command_loop_2(handlers=(struct Lisp_Symbol *) $10 = 0x0000000104e06188) at keyboard.c:1174:11 [opt] frame #59: 0x000000010468e504 emacs`internal_catch(tag=(struct Lisp_Symbol *) $58 = 0x0000000104e1aba0, func=(emacs`command_loop_2 at keyboard.c:1170), arg=(struct Lisp_Symbol *) $10 = 0x0000000104e06188) at eval.c:1348:25 [opt] frame #60: 0x00000001046071c8 emacs`command_loop at keyboard.c:1152:2 [opt] !gud 1152:2:/Users/gerd/emacs/github/cl-packages/src/keyboard.c frame #61: 0x0000000104607008 emacs`recursive_edit_1 at keyboard.c:760:9 [opt] frame #62: 0x000000010460740c emacs`Frecursive_edit at keyboard.c:843:3 [opt] frame #63: 0x0000000104606134 emacs`main(argc=<unavailable>, argv=0x000000016b8d6c30) at emacs.c:2655:3 [opt] frame #64: 0x00000001908a0274 dyld`start + 2840 (lldb)
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 13:02:56 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 08:02:56 2024 Received: from localhost ([127.0.0.1]:45023 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tR9zU-0007rA-3h for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 08:02:56 -0500 Received: from eggs.gnu.org ([209.51.188.92]:45530) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tR9zT-0007qt-5W for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 08:02:55 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tR9zN-00038w-EV; Fri, 27 Dec 2024 08:02:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=wji9T8sQdM/EKAiXi3MPmfY12mavolOHtYU7rt1pyeA=; b=GNoaPF/xobaHWAaFZFAh goH5AiebPlMghori7PzVQdG9V1kpldlQ1S14NWdkxHw9mTVVAwrONJLwZEF05FltqIozwaR8p4ehY OPmdyfkXC4hEyQZOKWQpxu5mxzVV44/IdDufz5Y839iDgn/pFOnmNOGsSERhMJyb0NGgrF5iMSt1Q Ib4RiHdyY5wpu6Y4ViMCeC+4qXdHZPH8GFqins/UK4T1gYy8vccX/xkbsti+wWn9yl6KasW9T1iFh 0XxSK/Qaf7MP8mHKiEzA2n/NaRE4STiT16ZakFZh24egdXzg2uHU55/mhIGAIzAmAcuWJ9NYTMhDT 4lW4Iiwdm87VmQ==; Date: Fri, 27 Dec 2024 15:02:37 +0200 Message-Id: <86msghwa6q.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2ed1tfg36.fsf@HIDDEN> (message from Gerd =?utf-8?Q?M?= =?utf-8?Q?=C3=B6llmann?= on Fri, 27 Dec 2024 13:47:09 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> <m2ed1tfg36.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > Date: Fri, 27 Dec 2024 13:47:09 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > Then why is this a bug? > > > > When a frame is in a minibuffer, it means Emacs asks the user about > > something, and in that situation, the user must respond to the prompt, > > or exit the minibuffer in some other way. That's normal in my book. > > What am I missing? > > Emacs doesn't say anything. It does: on the frame where you are in the minibuffer. > The user is just typing into the void, and it's not easy get out of > this state again, except C-x C-c. That's not normal. My point is that this happens in many other, "simpler" situations. AFAIK, it isn't limited to TTY frames, either. So if that's the only thing that happens here, i.e. some other frame is parked at the minibuffer prompt, there's nothing new here that we didn't have before child frames became supported on TTY displays. Changing that would need to have per-frame input queues in Emacs, AFAIU, and some way of multiplexing between them. But I'm not yet sure this is what we see in this case, which is why I asked for a C backtrace. Producing it should be easy: just reproduce the problem, then attach a debugger and produce the backtrace.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 12:48:14 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 07:48:13 2024 Received: from localhost ([127.0.0.1]:44994 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tR9lF-00076M-H5 for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 07:48:13 -0500 Received: from mail-ej1-f41.google.com ([209.85.218.41]:50326) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tR9lE-00076F-13 for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 07:48:12 -0500 Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-aa69107179cso1197592266b.0 for <75056 <at> debbugs.gnu.org>; Fri, 27 Dec 2024 04:48:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735303631; x=1735908431; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=AfpHBt9UMkjtDxBe0WrK4t7fxLFRz7wGOyPrnsYlXzA=; b=i8ONmG9m+6+il85t3ao1SGg6UOsMK/3vGqMzrfOPHlQqsNVB44JSRpIfV4y1e+cmm5 FPvhbpHW8ecScj9mma70/wg1R3vHal+lpj7aCDMuofT8C1lhZZS54aDitwkmhpRqSz+Q h8rLF2fxepTOo9XdfizArlVtjxVX8pBipmJrFioSQd8UE4v76oOVBeEAIZzsIXcNZ/wy CVlUM7CgfCwOfAi4yOkELpo5GcLRoj37CIpdW+MpQyzdpYphPYSnPXCAS3gji/Wfahqv a1Jqv3fRN4FiFmnEYnDr44WLYjBnyl+p99uM4lQlujgUeXPfm/tG8dl2ZlOr5fhUinsU MqQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735303631; x=1735908431; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=AfpHBt9UMkjtDxBe0WrK4t7fxLFRz7wGOyPrnsYlXzA=; b=OOFAmZ11LcRFKxlVyj4RkwMimzBZzPRqB/d8C7chJTEV2QLaqFCKCnZQcCq4H04kex e1oGmi6KOlnb+LaHwAOIxA5kZa4eHqsBnUc+PHV4FUrZN7eQE70UBYchzStltSEolkIj OBRbl/uC7WmjQFGFPacwjCtgWW9EnZFLu7DPDdTtkHluwxNq2wiLtc2FM5V5nB2U2L8j 2qAWqs0r34U9Ska6R7ik+UzFbZpb/t22qPjOl1Fy/qZu3Ap28yDJuzjnAdLvQRQp6fZs P2j5BYohfsJlGLb0qYuI/r9rKIyLJiXelkmwKHRn1I506i+Xh77opKqeFNU4ZzzBMKFl e8uQ== X-Forwarded-Encrypted: i=1; AJvYcCUDTdwJrEmUHzdNEvv1FUD5bSEpJq0irt4yGfjpxp0Qtl41+GU47m9SI1yTOSFnsE0jnDjcwQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yz0kdGLKjwC4fPAB0h6Lx2JHpvq74BXExVeSUcZTua7Y1GfIPtb GN3ZzaQPBbnnFaSxuq+cfw3qKSRUOYZzCmhd5GeNu8I2mLdJIChRmPVb1g== X-Gm-Gg: ASbGncudN5S80HzIKTsUQL5AHT6dcD1Zsf087KQ943rNNmlIpKwZCRfCzmvxRi0T8dx xovNaVCVZmuRYeyJBPa76g8JZ7eirdfzD+VD4MZmxoHm398VLSAp+JNs/df2iiZX0b5MB4D5VLF ip1bkaHgcoA+PemVY+kWq25k4H5L6Ia97AP6KKm23vxQjPuE70IGSwGjRfW7zuCs4QAS7/DFpjS MG/4iDVNNHXZu564F6kmeUiZOILiUOqwq8p3Yy+vLbYMtVH8k5C2+tGDCOWwliU0NTr2vT+d9pk /LaKkhRmJnQGXTK7CZ0qVbsv02XUoENcDyPQL2lzcfxKAjWLlca3uGxqOCbg43b9Mg== X-Google-Smtp-Source: AGHT+IFiBhi1qqX70kI1vWxJJUi2MM6L/DnggQnKSP10RuVfSFftlA6ymT3A7Y97pppiIaRjl3sEnA== X-Received: by 2002:a17:907:c20d:b0:aae:8490:9429 with SMTP id a640c23a62f3a-aae84909672mr1761658466b.34.1735303630723; Fri, 27 Dec 2024 04:47:10 -0800 (PST) Received: from pro2 (p200300e0b74e5900bde19f98ca9a60df.dip0.t-ipconnect.de. [2003:e0:b74e:5900:bde1:9f98:ca9a:60df]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aac0f014decsm1120398966b.149.2024.12.27.04.47.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Dec 2024 04:47:10 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <86v7v5wbqs.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 27 Dec 2024 14:28:59 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> <86v7v5wbqs.fsf@HIDDEN> Date: Fri, 27 Dec 2024 13:47:09 +0100 Message-ID: <m2ed1tfg36.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: > Then why is this a bug? > > When a frame is in a minibuffer, it means Emacs asks the user about > something, and in that situation, the user must respond to the prompt, > or exit the minibuffer in some other way. That's normal in my book. > What am I missing? Emacs doesn't say anything. The user is just typing into the void, and it's not easy get out of this state again, except C-x C-c. That's not normal.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 12:29:21 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 07:29:21 2024 Received: from localhost ([127.0.0.1]:44973 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tR9Sy-00068h-IW for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 07:29:20 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33778) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tR9Sw-00068N-6c for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 07:29:19 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tR9Sq-0007eZ-SH; Fri, 27 Dec 2024 07:29:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=sUe4hiEfnXLPl/uydM3nyGpyOogHDHDUlon+0advmlU=; b=PKvV1yLyg0DSt/JfTZsh oT98a/rHCfSb4nVBAFlOsCRN9uAvkEiVOCbAjrr/40T5Css8DXoQmLHsfULMZHpT8XvxlQQMtuoXS gN3pj/emTYOxEadqnCfKRO/uwMFbQ7Gf4QnhgIPJWnERipp2U2bCNriTLzczHDVEBWSG/HdT4n5Fc WCIgu9Y1fj9SFas4MCgePA8KA+DwYz2d/talqaTmOhOEG6+hA5TFdDpLw/DYeT3czX75oT5iQD60a 4gY2XXTrOXQ0g2n10y0OR3XhCSh/Tg9O90f6hcmXlsw1/F7USkXPS3fiyD+gyuLWtay2oYsL+j7Bp 4zVijSGg0s240A==; Date: Fri, 27 Dec 2024 14:28:59 +0200 Message-Id: <86v7v5wbqs.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2r05tfqea.fsf@HIDDEN> (message from Gerd =?utf-8?Q?M?= =?utf-8?Q?=C3=B6llmann?= on Fri, 27 Dec 2024 10:04:29 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> <m2r05tfqea.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > Date: Fri, 27 Dec 2024 10:04:29 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > >> From: Gerd Möllmann <gerd.moellmann@HIDDEN> > >> Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > >> Date: Fri, 27 Dec 2024 09:46:48 +0100 > >> > >> Eli Zaretskii <eliz@HIDDEN> writes: > >> > >> > Can you explain how the above limitation causes the problem reported > >> > in this bug? That is, how do child frames trigger the bug? Because > >> > "normal" frames don't, AFAIU, right? That is, one could have two or > >> > more client TTY frames on several displays in the same Emacs session, > >> > without having any of them stop being responsive, right? Also, what > >> > is the role of vertico-posframe in this scenario? > >> > >> The hint I see is here > >> > >> >> If your multi-tty Emacs session seems to be frozen, you > >> >> probably have a recursive editing session or a pending > >> >> minibuffer prompt (which is a kind of recursive editing) on > >> >> another display. > >> > >> Emacs in our case is kind of frozen, and Vertico is a minibuffer > >> interaction, where Posframe simply displays the minibuffer differently, > >> in a child frame. > > > > Yes, but where is that recursive editing in this scenario? > > We're switching frames while being in the minibuffer in the other frame. > > > I guess I'd love to see a C backtrace from that situation. > > Too difficult for me. Emacs is not frozen in the sense that it is > completely stuck somewhere. For example, C-x C-c apparently always > works. C-g seems to work sometimes too, sometimes not. It's more like > the keyboard input doesn't land where it is supposed to. Or something > like that. Then why is this a bug? When a frame is in a minibuffer, it means Emacs asks the user about something, and in that situation, the user must respond to the prompt, or exit the minibuffer in some other way. That's normal in my book. What am I missing?
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 09:05:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 04:05:34 2024 Received: from localhost ([127.0.0.1]:44673 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tR6Hm-0004tz-Aj for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 04:05:34 -0500 Received: from mail-ej1-f45.google.com ([209.85.218.45]:44473) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tR6Hk-0004tr-1u for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 04:05:33 -0500 Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-aa6c0d1833eso1481731266b.1 for <75056 <at> debbugs.gnu.org>; Fri, 27 Dec 2024 01:05:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735290271; x=1735895071; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qZmpW9wt3/3iEFGHgmAO5nnkSdMELQ7WNsLmd1aBy8I=; b=QgfPjr+PN+RuFMuBKkHPgL+d4OeFov9Y6tkgOoLc4C3cayqeiCfcrFy0OdB3yqbGHe dC3xvbWHnz22aqnRJMPPxuci9/TUEWrBVdq/pDe3V8llFFPFIDcDQ9lhKOXuUSny8Ie3 9sVE376ndcEiATZ33t4ha2svehkCfASzAZV8/Hqd8NqvrooqHEPQoaiH2cTQCSWAZ1ge mXLmcfOs5xuNcagimvPuXBWobufLMZMYgG26Eo9d58JMEzfZWjvp43j6NAH3Bm7t8xEZ E8cgsIc9TlrWdeqFu9KBbeD9dTkk5mOHz/h45mhSsr8S0/NeVS2I2gy8ug1Vup2NQHee M2cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735290271; x=1735895071; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=qZmpW9wt3/3iEFGHgmAO5nnkSdMELQ7WNsLmd1aBy8I=; b=u0v/lBtscc2QmBZvcbWMiA2WJhRnmEZ+u189UzyRmC6xvuTOiDjJXeZwmHXP7PeI8S rwZuY2kWNZIvu12FD0DvmXB6jQ9WbJyzXerAElrT3/tCnTt8VlOvys98Awi5RLkjdRri ZeBdfoPWarMP7M4A4RVCdmVClhKB5AyEDyH79XZzF/PXC/8jxvyMvf6V64OrPzQdxkwM +KEdftjROroQmXpYlxkSOgNUgqF/NJ3nGgvxGfF5NiML9SJ0kDfhasSkwPboHYO5qH+7 0yGpQuDlSkXH5AjrJP7mS/cNwzVG7+sH17A2zavAzrpSZ2jFITVKqKP3e6TpHe4cq8mV cM4g== X-Forwarded-Encrypted: i=1; AJvYcCX9eYQphofC5oJTiCymNaVe67l4od+WEKg+rjOgpxv97egsClgzg6zYpy15hdVZi9KAFchUdg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzI1bW3I33R4bTv5Qku4gVpduxBAJ0RjENY1QYXA27ijqMIjehO gfhJIMmE8aboOpc7V0vr67e2x107RDVZPVRv8PF53faj7/+ML24T84NJRQ== X-Gm-Gg: ASbGncs1EtcRbLFbJAQCoECxpJ8WpNBdy+Gtp6UyoMFNvBIuj+OJS81z6bE2bfPM0Cp LIatIdHcP8imY9XOf/DmZe3Tu0Sx0grUvqrHJbfyrsSTK+I2a4qIF4yNvqraspQJjeuz6asHg/H uT9wmaKpTwVaCiqR7MkZ64TssXWtj9RGJOwrBzCebaHuwA1gsWCl9Yr1iCl530JQVt9Xc3K19D+ 9SRopkEA+PfZCtS2wev3miYvDF/A8da+KLY24ZfU9IWhm1ywHhFGAIHkaTnA6Zh+DpysBoKSL8D SBk3DTR6iAMXBaKvaO1evEBRaKVLU4ropDlae975/sNidx2COxWNVSLC+ZDNUOXHlw== X-Google-Smtp-Source: AGHT+IHu1BEn3Vu7GMt3NMnYBBkEQN6Re23ZygjWn5jAkL8xT+ThjCGxExfrRekVTFOEH+BeqLmaaA== X-Received: by 2002:a17:907:7fa9:b0:aa6:81dc:6638 with SMTP id a640c23a62f3a-aac2b0a5676mr2356729466b.16.1735290270611; Fri, 27 Dec 2024 01:04:30 -0800 (PST) Received: from pro2 (p200300e0b74e5900bde19f98ca9a60df.dip0.t-ipconnect.de. [2003:e0:b74e:5900:bde1:9f98:ca9a:60df]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aac0e830ae6sm1088613466b.22.2024.12.27.01.04.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Dec 2024 01:04:30 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <86wmflwlok.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 27 Dec 2024 10:54:19 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> <86wmflwlok.fsf@HIDDEN> Date: Fri, 27 Dec 2024 10:04:29 +0100 Message-ID: <m2r05tfqea.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: Gerd M=C3=B6llmann <gerd.moellmann@HIDDEN> >> Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org >> Date: Fri, 27 Dec 2024 09:46:48 +0100 >>=20 >> Eli Zaretskii <eliz@HIDDEN> writes: >>=20 >> > Can you explain how the above limitation causes the problem reported >> > in this bug? That is, how do child frames trigger the bug? Because >> > "normal" frames don't, AFAIU, right? That is, one could have two or >> > more client TTY frames on several displays in the same Emacs session, >> > without having any of them stop being responsive, right? Also, what >> > is the role of vertico-posframe in this scenario? >>=20 >> The hint I see is here >>=20 >> >> If your multi-tty Emacs session seems to be frozen, you >> >> probably have a recursive editing session or a pending >> >> minibuffer prompt (which is a kind of recursive editing) on >> >> another display. >>=20 >> Emacs in our case is kind of frozen, and Vertico is a minibuffer >> interaction, where Posframe simply displays the minibuffer differently, >> in a child frame. > > Yes, but where is that recursive editing in this scenario? We're switching frames while being in the minibuffer in the other frame. > I guess I'd love to see a C backtrace from that situation. Too difficult for me. Emacs is not frozen in the sense that it is completely stuck somewhere. For example, C-x C-c apparently always works. C-g seems to work sometimes too, sometimes not. It's more like the keyboard input doesn't land where it is supposed to. Or something like that.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 08:54:56 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 03:54:56 2024 Received: from localhost ([127.0.0.1]:44651 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tR67U-0004Ic-9j for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 03:54:56 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41824) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tR67P-0004IK-D8 for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 03:54:54 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tR67I-0007dH-CX; Fri, 27 Dec 2024 03:54:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=1VGDzU6Y4Itj9+/2yl9vf2+gU7mZoWeMwa/Fzpu5krw=; b=H8JhhoC3qdyYryTogHYf kAgzH97UnYQhhEOqOWBIpNRlrk0yYvGGA75gpLHW43OeBqp2Lsz5PsF6q2iCtk95tIkICRyTQFaTb Zf99GqkUmbDgKfOHi1oHQvTL9bEJ0Cx53yiVx8HEEOoaTBvLd6fijQLPBtx7lUx9iXUL/EDJmIYva hLUJssqIEAqqS+WTk0SEe7+E2v6YfVXZs56ymIxlpOMpfcST5HtRDC32+fG3vzGWBNxdp6NBRD7JU 0OlOKQT6yxSCFKnEBIr3Fk9hgG2VR7Q0Wyv5w9/qj9WovkoLALP4siTMlmwz7iivv42dtsM7OpX8/ O/zC+ATOAjsDRA==; Date: Fri, 27 Dec 2024 10:54:19 +0200 Message-Id: <86wmflwlok.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m2zfkhfr7r.fsf@HIDDEN> (message from Gerd =?utf-8?Q?M?= =?utf-8?Q?=C3=B6llmann?= on Fri, 27 Dec 2024 09:46:48 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> <m2zfkhfr7r.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org > Date: Fri, 27 Dec 2024 09:46:48 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > Can you explain how the above limitation causes the problem reported > > in this bug? That is, how do child frames trigger the bug? Because > > "normal" frames don't, AFAIU, right? That is, one could have two or > > more client TTY frames on several displays in the same Emacs session, > > without having any of them stop being responsive, right? Also, what > > is the role of vertico-posframe in this scenario? > > The hint I see is here > > >> If your multi-tty Emacs session seems to be frozen, you > >> probably have a recursive editing session or a pending > >> minibuffer prompt (which is a kind of recursive editing) on > >> another display. > > Emacs in our case is kind of frozen, and Vertico is a minibuffer > interaction, where Posframe simply displays the minibuffer differently, > in a child frame. Yes, but where is that recursive editing in this scenario? I guess I'd love to see a C backtrace from that situation.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 08:48:04 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 03:48:04 2024 Received: from localhost ([127.0.0.1]:44642 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tR60q-00042P-Cq for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 03:48:04 -0500 Received: from mail-ed1-f46.google.com ([209.85.208.46]:50305) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tR60j-00041E-Ly for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 03:47:59 -0500 Received: by mail-ed1-f46.google.com with SMTP id 4fb4d7f45d1cf-5d3cf094768so11267682a12.0 for <75056 <at> debbugs.gnu.org>; Fri, 27 Dec 2024 00:47:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735289212; x=1735894012; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=g4B41eJTx0ZPRyOyEKyqKvd2gvOJjNruk18nlyt+ovc=; b=J8kDz9Ir2W2zzNC746AvLVLox57sTNWrvtJWTaoPbcoCrtr5jZOZLSagTk2ggdh5bH bGqHhehBnwYtJnAZ4EPPoRRPbAlBvhJtwxO8oHDAuIbop5XyypudQDLHHdrp1yCo2Kq5 bLHTDF0UtdSWJUPIpSbjdK6stkfwlQvh2u1Dhzt467FcuQxm1I57j6hrbnmRDc8aSXND skcnxyFuidbYIRzyInoviRRb8oqZ/YlL0PwaHvPi0Kw1qWbooZjM3KMRGd3Wd7Z2OrpP q5gP8EyMIRvFLmBjczHQUdjqDvs43fpTkVPr1pQNOkHioVY7Z4zoC7XltYX73T511V1k a1+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735289212; x=1735894012; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=g4B41eJTx0ZPRyOyEKyqKvd2gvOJjNruk18nlyt+ovc=; b=Dhwdr6X6B8VJkXtH23sJiGwnL1RaA5xahpcQnhxPtYzyvnbXw3vB9vI+0esO+brSWL yJYajm7r3g6DqOtcOHQ7cpUBwkecBZkzy3g+NwV0WCI1MKKBvmZMNChIwMnN2Aj20SG3 Oa8qqMgQM4PW06bxHZPrJNEo1d+wnlrYKAHqH+G0KYpnpuTOicWb85GzK1IdbdbPkCFy nYbSbq8PkfPVEx3zo+X+uYZKyHRWN3mvzfOHcdLiESLxseCd50uAKVgjK3mZXex7JEl7 /bYT/8c/NYb7f60VuDIDJd1GySPNRXvOzhMMxnNNJiQM7juGLu7h+bw6+W9gpCncReC/ O2+A== X-Forwarded-Encrypted: i=1; AJvYcCVz1ZXCYdZQlqAhS/IPcTSZeT1VSX8zRh7hm2/s71yN2hk8BGGDKLWcmETIDgsQki8JRP+Vhg==@debbugs.gnu.org X-Gm-Message-State: AOJu0YzAGRyyQL/KTfEOhyxN5QFxhn3KV7LTRhVaceLXwT5nhUX81+jH e9Ymm47bqMVqRxzjcklca4oGJIkqu9K3a/hXMqJx6LuR84l/87Bu+JprOQ== X-Gm-Gg: ASbGncu5pjPtP9TCwc5nF0Xa7Rhub8ZtlsaM+aVJyxjbK3yyB/OC2GXb9smqVtPvjdi DiusvY/uVlP2+EOkakX28v68ZmGgiaTJLmqVuJxHZPn6jS4N9y7uQRq7Rq9c6h8NpSf/MzCtfu8 J+ROu8TdoCrdDLrfYTc1S1ybbybJhQBSijVLrtZZJlaBOR1ncLwWlpT5qyXS+llrDJhcnltlX2i It6jSSNxmpO/fmTk0JtEa1srKJmMlt82A7Va3gTJY/8pbqu2Ky3zEtu8eePSvRp5JsW/us8ctyn ar7wr8Z6kCZtc6zfQi1kIc8pNpIUZHRb96q0rfd9gimft9FP1QB4WYKf6q5pDCbz1g== X-Google-Smtp-Source: AGHT+IEaVS0nTcy6ACsAypGW8n4z193vasdbTi4IweEHJSjq+n8GVZBAyzZj33xHPqbgzjTy7k7Sng== X-Received: by 2002:a05:6402:4405:b0:5d0:fe7d:41cf with SMTP id 4fb4d7f45d1cf-5d81dd66ee4mr21745092a12.5.1735289211408; Fri, 27 Dec 2024 00:46:51 -0800 (PST) Received: from pro2 (p200300e0b74e5900bde19f98ca9a60df.dip0.t-ipconnect.de. [2003:e0:b74e:5900:bde1:9f98:ca9a:60df]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5d80701abc6sm10474244a12.75.2024.12.27.00.46.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Dec 2024 00:46:50 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <8634i9y1wa.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 27 Dec 2024 10:18:45 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> <8634i9y1wa.fsf@HIDDEN> Date: Fri, 27 Dec 2024 09:46:48 +0100 Message-ID: <m2zfkhfr7r.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: > Can you explain how the above limitation causes the problem reported > in this bug? That is, how do child frames trigger the bug? Because > "normal" frames don't, AFAIU, right? That is, one could have two or > more client TTY frames on several displays in the same Emacs session, > without having any of them stop being responsive, right? Also, what > is the role of vertico-posframe in this scenario? The hint I see is here >> If your multi-tty Emacs session seems to be frozen, you >> probably have a recursive editing session or a pending >> minibuffer prompt (which is a kind of recursive editing) on >> another display. Emacs in our case is kind of frozen, and Vertico is a minibuffer interaction, where Posframe simply displays the minibuffer differently, in a child frame. Not an explanation of course, but it smells a lot like what's happening. What the real reason behind all this is in the code, and what would need to be fixed, I can't figure out from notes/multi-tty. Maybe come combination of open things mentioned there, no idea. > > IOW, I don't yet have a clear picture of what happens, although the > limitations you found in that admin file are known to me. AFAIK, the > single-kboard situation is still with us, search keyboard.c for > "single_kboard". > >> @Eli: I think we should invoke a multi-tty expert who can tell if what >> we see here can be kind of expected with the current state of multi-tty or >> not. And maybe can tell how up-to-date admin/notes/multi-tty is in the >> first place. > > We don't have such an expert on board, sadly, not for a long while. > We are on our own. That's indeed more than suboptimal :-(.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 08:18:59 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 03:18:59 2024 Received: from localhost ([127.0.0.1]:44592 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tR5Yh-0002ep-3V for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 03:18:59 -0500 Received: from eggs.gnu.org ([209.51.188.92]:51464) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tR5Ya-0002eM-Dl for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 03:18:56 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tR5YU-0003ld-TX; Fri, 27 Dec 2024 03:18:46 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=e5jCBi2ufsQ4TnHUwiPWGQH/i2dNdQlqfb12KY1qEh4=; b=M5QO4WmzFVsB7n+Du4EB osFLZcouzWm1wysVfWooa5GKfZ4HquzWAQZKDvgPxyZAJDYBGTeTQYBYsdc2gE7XKWHm8tA5Dfgmk F1iL9MeLGssvA+VmImk4EKlgVxDHqhx5ZPHe5fGVSsh1mDRfJPsqEnC0LgX4gxNgtavroP5It+Tjy gxrfyJ8akfeNt2oisbHRofGh4Ej9YFMbX4UaU8OQ+A8ulE1hueHCNVWm5sj3ZMCu4yo/X9zh7Re/r sxOptvofHv9IgwINS7a7uiYJKKWFmUSbgj9qOQct/9rAjOGdItspHMdmRsnBD70FLoWFBAti38s8u hhNlg4czasXHBQ==; Date: Fri, 27 Dec 2024 10:18:45 +0200 Message-Id: <8634i9y1wa.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <m28qs1hda1.fsf@HIDDEN> (message from Gerd =?utf-8?Q?M?= =?utf-8?Q?=C3=B6llmann?= on Fri, 27 Dec 2024 07:04:54 +0100) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <m28qs1hda1.fsf@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: lenbok@HIDDEN, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > Cc: 75056 <at> debbugs.gnu.org > From: Gerd Möllmann <gerd.moellmann@HIDDEN> > Date: Fri, 27 Dec 2024 07:04:54 +0100 > > I can reproduce what you describe, I think, but I must admit that I'm a > bit at a loss at the moment. Something similar happens BTW if the server > is a GUI Emacs. Pretty weird. > > And then I found this in admin/notes/multi-tty, under known problems: > > * The single-kboard mode. > > If your multi-tty Emacs session seems to be frozen, you > probably have a recursive editing session or a pending > minibuffer prompt (which is a kind of recursive editing) on > another display. To unfreeze your session, switch to that > display and complete the recursive edit, for example by > pressing C-] ('abort-recursive-edit'). > > I am sorry to say that currently there is no way to break > out of this "single-kboard mode" from a frozen display. If > you are unable to switch to the display that locks the > others (for example because it is on a remote computer), > then you can use emacsclient to break out of all recursive > editing sessions: > > emacsclient -e '(top-level)' > > Note that this (perhaps) unintuitive behavior is by design. > Single-kboard mode is required because of an intrinsic Emacs > limitation that is very hard to eliminate. (This limitation > is related to the single-threaded nature of Emacs.) > > I plan to implement better user notification and support for > breaking out of single-kboard mode from locked displays. > > Also see the long list of things to do in the same file, which makes me > a bit wary. Can you explain how the above limitation causes the problem reported in this bug? That is, how do child frames trigger the bug? Because "normal" frames don't, AFAIU, right? That is, one could have two or more client TTY frames on several displays in the same Emacs session, without having any of them stop being responsive, right? Also, what is the role of vertico-posframe in this scenario? IOW, I don't yet have a clear picture of what happens, although the limitations you found in that admin file are known to me. AFAIK, the single-kboard situation is still with us, search keyboard.c for "single_kboard". > @Eli: I think we should invoke a multi-tty expert who can tell if what > we see here can be kind of expected with the current state of multi-tty or > not. And maybe can tell how up-to-date admin/notes/multi-tty is in the > first place. We don't have such an expert on board, sadly, not for a long while. We are on our own.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 27 Dec 2024 06:06:12 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 27 01:06:12 2024 Received: from localhost ([127.0.0.1]:44410 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tR3UA-0004Ul-EV for submit <at> debbugs.gnu.org; Fri, 27 Dec 2024 01:06:12 -0500 Received: from mail-ed1-f46.google.com ([209.85.208.46]:61446) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tR3U4-0004UB-KP for 75056 <at> debbugs.gnu.org; Fri, 27 Dec 2024 01:06:09 -0500 Received: by mail-ed1-f46.google.com with SMTP id 4fb4d7f45d1cf-5d3f28a4fccso10430997a12.2 for <75056 <at> debbugs.gnu.org>; Thu, 26 Dec 2024 22:06:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735279498; x=1735884298; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=czNcgrZsEB1S6oiqYXLFX8G73jUasM7pIZtzP7ASWnU=; b=RjkWFRd/RI7pYj2s2IZQx9SnuEebd32V6sU0Kuy5gcxSVu8ArxG4LyluCKtSngVKHv 2ahyVAW39ldHHq9td/9SBERtx1EJ/A4znwEoMno4Yy59covbjOQEwOjey1RJQw9St44R ymWmTdEEiNEXNU61I9JMZ7+kvJ6uWV71EOT7rNnFhcu3zOA1erYlQpWInJL3oa9EdggE aDOOyGLLeSEfEh7NDnn0ofDbyPSUSm5Kl3i2upJgdv6nNU6LxET18CCjiMS+Up82FPdN XKuqB5M03jFixMmz9UQgQgKjVTelzix1ZsMXxqav7fCb5H7iiG6qaqhdxcz5ioG6KqX6 IE4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735279498; x=1735884298; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=czNcgrZsEB1S6oiqYXLFX8G73jUasM7pIZtzP7ASWnU=; b=fkLinr1sfIyvbYfJHSNNuj11PmhUWuzL4OWZ+EW36nbXBPI0stj5CSaap2b6Fz0oHe Z5JWaYYvWk/q/5LUpJeVpYEucneXRdCRj/r6UzLNacnFroJrO3kON4HNBFVuRQyklM+X qdsNpJadNBZEU1rTr9S/wxKo9Pu8tPWyNbCiS/O43le/7wNs3W8j82opRqki+B5OmTRc Z06VHfBGAsRSQDIoX+Q8TD0bu6QKwwW2XGg2ohAgYg5M8uFO6Ufa91Wth7QT4C/vOK8U UwzUu4/me9lk2yMb+Upjg2jVp7hsRlwMrIynW74Wif5Ugd766zu3HbdZW8QukTXbcuJj YJnA== X-Gm-Message-State: AOJu0Yw0rU7b4x/FrQwBSxwlXkH3NqlzCWT0qi+ZP4JdzS7wlO3qwYee 5sMzZpfRlm1GJyGv1njK4PPpGFAnJ2MrISBt/5udFbZPt8bgL480ShocVg== X-Gm-Gg: ASbGncuFPAVdJhFWjQZVIV4In7izrR+giR8yOmNRLvamzol1VOlJ3QpSpX5gvyPglIN EYDKAMLFNf9pJCgRw5WtLa+eyxQiCjQcbpX2zBN96QigAquPD+/4YlDcZLleI56hx1IYqUoo5NS S4XLsXoiG2ALkdbF+EKWg39F4sUfCxk64MUkbcLOz9RQ3G5FjCcp7b5iBp4LeQZNG6XOtLz0+1L JvAFGQBsR21+bh6M6dwcsv8xpaq9x7l7XgrlDGyD2Rx8A8/mNbzsDUKo5KvdFuw9tjycItJac2f IB708Yg1/WfHvib96nAzxcQlezG06Obg+gml1/EUJS286e5NCbcpAo3qpTbQGA2O9A== X-Google-Smtp-Source: AGHT+IE8GAPbKotlii3vNRUcaEJPZz7sRBszVJinbJPkoWnXT7AIkFrCSsSLLe89+mF3DZthxk3p8w== X-Received: by 2002:a17:907:36ce:b0:aa6:7165:504b with SMTP id a640c23a62f3a-aac2d41ebc3mr2759930366b.31.1735279498018; Thu, 26 Dec 2024 22:04:58 -0800 (PST) Received: from pro2 (p200300e0b74e5900bde19f98ca9a60df.dip0.t-ipconnect.de. [2003:e0:b74e:5900:bde1:9f98:ca9a:60df]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aac0e895080sm1063176566b.47.2024.12.26.22.04.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Dec 2024 22:04:56 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Len Trigg <lenbok@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> (Len Trigg's message of "Tue, 24 Dec 2024 18:43:29 +1300") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> Date: Fri, 27 Dec 2024 07:04:54 +0100 Message-ID: <m28qs1hda1.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Len Trigg <lenbok@HIDDEN> writes: > tty-child-frames does not seem to play well with multiple clients. When we run server-start and allow emacs to have > multiple clients (e.g. an initial "emacs -nw" and an > "emacsclient -nw"), using a function that utilizes tty-child-frame (such as M-x when vertico-posframe is loaded) in one > frame leads the other client to be locked up. > > Steps to reproduce: > > mkdir ~/emacs-test > Copy the attached init.el into ~/emacs-test/ > emacs -nw --init-directory=~/emacs-test (the first time will result in packages being installed by elpaca) > (in another terminal) emacsclient -nw > Do something to invoke the child frame pop up (e.g. C-x b and select a buffer) > Switch back to the original emacs > Do something to invoke the child frame pop up (e.g. C-x b and select a buffer) > Swap to the other terminal, and note that at some point one client will stop responding > to user input. (It may take a couple of tries, perhaps with other regular commands interspersed). > When one client is locked, swap back to the other terminal and exit the client - the original > client will now accept user input. > > When a client is locked it *does* accept some input (e.g. C-x C-c will exit the client) > > It's possible this is vertico-posframe related, as I can't trigger similar behaviour using transient-posframe. > Hi Len, and thanks for the nice reproducer! I can reproduce what you describe, I think, but I must admit that I'm a bit at a loss at the moment. Something similar happens BTW if the server is a GUI Emacs. Pretty weird. And then I found this in admin/notes/multi-tty, under known problems: * The single-kboard mode. If your multi-tty Emacs session seems to be frozen, you probably have a recursive editing session or a pending minibuffer prompt (which is a kind of recursive editing) on another display. To unfreeze your session, switch to that display and complete the recursive edit, for example by pressing C-] ('abort-recursive-edit'). I am sorry to say that currently there is no way to break out of this "single-kboard mode" from a frozen display. If you are unable to switch to the display that locks the others (for example because it is on a remote computer), then you can use emacsclient to break out of all recursive editing sessions: emacsclient -e '(top-level)' Note that this (perhaps) unintuitive behavior is by design. Single-kboard mode is required because of an intrinsic Emacs limitation that is very hard to eliminate. (This limitation is related to the single-threaded nature of Emacs.) I plan to implement better user notification and support for breaking out of single-kboard mode from locked displays. Also see the long list of things to do in the same file, which makes me a bit wary. @Eli: I think we should invoke a multi-tty expert who can tell if what we see here can be kind of expected with the current state of multi-tty or not. And maybe can tell how up-to-date admin/notes/multi-tty is in the first place.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 25 Dec 2024 12:00:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Dec 25 07:00:57 2024 Received: from localhost ([127.0.0.1]:36422 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tQQ4O-00008U-Qp for submit <at> debbugs.gnu.org; Wed, 25 Dec 2024 07:00:57 -0500 Received: from mail-ej1-f46.google.com ([209.85.218.46]:53354) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <gerd.moellmann@HIDDEN>) id 1tQQ4M-00008M-N6 for 75056 <at> debbugs.gnu.org; Wed, 25 Dec 2024 07:00:55 -0500 Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-aa6c0dbce1fso818277466b.2 for <75056 <at> debbugs.gnu.org>; Wed, 25 Dec 2024 04:00:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735127994; x=1735732794; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=Y216f5swykUXUFiYdre7eqzRwHQFlZ/TuV5qGLxdDLA=; b=UO3+x+XXVh5J0M1KUKhfIdA8Q0CVv+VDNHg6cZjMBasWfZ462gtSY4WxSdR+fBoG/g TzRKpLwJgkHmfxC5IUH/POxGWhyh+4emUa41BUqgzBDkje2lhya5ZFDyiv9tyTmFhyNg 1d//pmrTeD318g9qIl5au6OdVosaNRZRbbaYG2NzoEC326LS9DSrBH++OqgG5ht7CzOp 5iMV/IpY0amBqMiSXFJL7A5ReverUesdIvzik/1ss/bcBiSW8snS2yn5fY7pV/YPCAB6 IHLc4N1BD5bHWUXF4Zfa34es+K8FhtTzh7cjedh6Q06q053GIASTjXnbAGw3PCXZeq27 F7sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735127994; x=1735732794; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Y216f5swykUXUFiYdre7eqzRwHQFlZ/TuV5qGLxdDLA=; b=oBpXMGj7kyTvrkolOLZHsIiDu1tfX3UbznwF6u5edYiAr9lVjyJwHIVdKqiMVm8XHG DzDt/db7j+BeXDBSr3tq+XZQP2Gm6UVQc9dwnQ74PDMsI72sUT+32+i61vR2nxL3ZY+y l7O71mtf8aE0fKvIfR2b0bXzzYx+E0q1fgjFkFLYVzMppLfqpUjLlukjMck3uflkoggw Z1FqhxcPeRKPcNJHsyZkBnFGHH1IRnsjHsc1gALiSEVDzUD3Wi8rgBrJ3AWx+HIoaYQq f7VV/3xbmXvYHtLbyLHJaBYM5CnQNN4+ClQneVhqphCLCSiUn+t7w/iFX2j3phGg8TTn PYww== X-Forwarded-Encrypted: i=1; AJvYcCXQvqxYW1OUIfdbC9dP44TD7lGltUKGoM9J2rxr1aZ7fGKqPSHPtYPXm9bzfbdRVqGcmiGHNQ==@debbugs.gnu.org X-Gm-Message-State: AOJu0YznOQy5z1DLnS2Zn4/DkxX/2NmoFUQQPFG1/mQAe7c4AMac5BeU yT4lkZL9MHsCLg9mpyFmiYrnXvhXRIdoEMVnms+aIql5F2nP4rW0l4SUqtD2 X-Gm-Gg: ASbGncsS+qelDmKrlzPPAy6siZQ1TwVdr3NSxT6dK8kd7glClsmFTjyjtYI+T6T0975 +7CMxthCS7koMnXMRh00USQWO/GPjP+jzLr6n7ca0BPaCxPlXi7C+EF2W66yv9lmHLjqFLqY7Kb Y1EHJAxT7hkAxvmfQrvNv1yVmelo38IQDiuNeE3evTaayamSd1ONmz0d4ZJA4MkvfbaEqfwbXUg xQCSRvLpH/4mGPB8M6BStEKIbbXO4lh+PjmLjw2gWbK1jPxARzXkA+RJ91Tp0Pzrbn+rY3RDzEl x9XFXlxw5DC0s4yEuRf8/4F3+ldEhKMiTCGL8PaRSPSxgi0hO44VHalOZrZRXoHPXA== X-Google-Smtp-Source: AGHT+IHSA+sTANHApyH6bHCNibN+vxGUx7oNYz1Ox3baL01PRnpeRdQh+JTEhCs035iWf7xEyD1B4w== X-Received: by 2002:a05:6402:210f:b0:5d0:cfad:f71 with SMTP id 4fb4d7f45d1cf-5d81de1c921mr46057664a12.32.1735127993137; Wed, 25 Dec 2024 03:59:53 -0800 (PST) Received: from pro2 (p200300e0b73d6f00401d1c7c2fc22e2d.dip0.t-ipconnect.de. [2003:e0:b73d:6f00:401d:1c7c:2fc2:2e2d]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aac0efe46f6sm785269066b.111.2024.12.25.03.59.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Dec 2024 03:59:52 -0800 (PST) From: =?utf-8?Q?Gerd_M=C3=B6llmann?= <gerd.moellmann@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs In-Reply-To: <86r05w0ygf.fsf@HIDDEN> (Eli Zaretskii's message of "Wed, 25 Dec 2024 13:54:56 +0200") References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> <86r05w0ygf.fsf@HIDDEN> Date: Wed, 25 Dec 2024 12:59:50 +0100 Message-ID: <m2ed1was7d.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 75056 Cc: Len Trigg <lenbok@HIDDEN>, 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: Len Trigg <lenbok@HIDDEN> >> Date: Tue, 24 Dec 2024 18:43:29 +1300 >> >> tty-child-frames does not seem to play well with multiple clients. When we run server-start and allow emacs to >> have multiple clients (e.g. an initial "emacs -nw" and an >> "emacsclient -nw"), using a function that utilizes tty-child-frame (such as M-x when vertico-posframe is >> loaded) in one frame leads the other client to be locked up. >> >> Steps to reproduce: >> >> mkdir ~/emacs-test >> Copy the attached init.el into ~/emacs-test/ >> emacs -nw --init-directory=~/emacs-test (the first time will result in packages being installed by elpaca) >> (in another terminal) emacsclient -nw >> Do something to invoke the child frame pop up (e.g. C-x b and select a buffer) >> Switch back to the original emacs >> Do something to invoke the child frame pop up (e.g. C-x b and select a buffer) >> Swap to the other terminal, and note that at some point one client will stop responding >> to user input. (It may take a couple of tries, perhaps with other regular commands interspersed). >> When one client is locked, swap back to the other terminal and exit the client - the original >> client will now accept user input. >> >> When a client is locked it *does* accept some input (e.g. C-x C-c will exit the client) >> >> It's possible this is vertico-posframe related, as I can't trigger similar behaviour using transient-posframe. > > Gerd, could you perhaps look into this? Thanks. Will come back to this after the holidays.
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at 75056) by debbugs.gnu.org; 25 Dec 2024 11:57:20 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Dec 25 06:57:20 2024 Received: from localhost ([127.0.0.1]:36408 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tQQ0t-0008Lj-Pz for submit <at> debbugs.gnu.org; Wed, 25 Dec 2024 06:57:20 -0500 Received: from eggs.gnu.org ([209.51.188.92]:38386) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1tQQ0r-0008LS-Qt for 75056 <at> debbugs.gnu.org; Wed, 25 Dec 2024 06:57:18 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1tQPyf-00032K-47; Wed, 25 Dec 2024 06:55:01 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=rm0Crl1nYlCJeDjk4N+UA0iiXi7oiRP4rbXddloWaFk=; b=YpRRYvlv3Vv3zXpENprR 0toDi+jCM3Ay+dxi60j3QRnSPh8a+EANtmmusDoPslIw3L4cu3If7vYPNVlv/Fz0McMHtZKlMjwea V06nf5of4gFA7PaNOyCkPjNKMWAbolgi26fML6btoA5e5H+0YuVKUTJlZe1/FvStT0zantPBahX+r qZqmSRyQakAKeT+nYRH/110KlugFKR3kb0FNqTsL7cNmttujNTZlmVdO6dwnMYggyobqkI4XygNgH izkno7TY6ZnQe0fsNzwnYRthcXhgq4ebpJ0E6GmX+/9e80cXDhVjghG7uhDWS3ESa/SJzv68rqKWF N1mQhbYo6ije2g==; Date: Wed, 25 Dec 2024 13:54:56 +0200 Message-Id: <86r05w0ygf.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Len Trigg <lenbok@HIDDEN>, Gerd =?utf-8?Q?M=C3=B6llmann?= <gerd.moellmann@HIDDEN> In-Reply-To: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> (message from Len Trigg on Tue, 24 Dec 2024 18:43:29 +1300) Subject: Re: bug#75056: 31.0.50; tty-child-frames with server / multiple clients possible hangs References: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75056 Cc: 75056 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Len Trigg <lenbok@HIDDEN> > Date: Tue, 24 Dec 2024 18:43:29 +1300 > > tty-child-frames does not seem to play well with multiple clients. When we run server-start and allow emacs to > have multiple clients (e.g. an initial "emacs -nw" and an > "emacsclient -nw"), using a function that utilizes tty-child-frame (such as M-x when vertico-posframe is > loaded) in one frame leads the other client to be locked up. > > Steps to reproduce: > > mkdir ~/emacs-test > Copy the attached init.el into ~/emacs-test/ > emacs -nw --init-directory=~/emacs-test (the first time will result in packages being installed by elpaca) > (in another terminal) emacsclient -nw > Do something to invoke the child frame pop up (e.g. C-x b and select a buffer) > Switch back to the original emacs > Do something to invoke the child frame pop up (e.g. C-x b and select a buffer) > Swap to the other terminal, and note that at some point one client will stop responding > to user input. (It may take a couple of tries, perhaps with other regular commands interspersed). > When one client is locked, swap back to the other terminal and exit the client - the original > client will now accept user input. > > When a client is locked it *does* accept some input (e.g. C-x C-c will exit the client) > > It's possible this is vertico-posframe related, as I can't trigger similar behaviour using transient-posframe. Gerd, could you perhaps look into this?
bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.Received: (at submit) by debbugs.gnu.org; 24 Dec 2024 05:43:58 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 24 00:43:58 2024 Received: from localhost ([127.0.0.1]:59036 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tPxi1-0002H1-Da for submit <at> debbugs.gnu.org; Tue, 24 Dec 2024 00:43:58 -0500 Received: from lists.gnu.org ([209.51.188.17]:50004) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <lenbok@HIDDEN>) id 1tPxhx-0002Gr-Tl for submit <at> debbugs.gnu.org; Tue, 24 Dec 2024 00:43:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <lenbok@HIDDEN>) id 1tPxhw-00059g-Es for bug-gnu-emacs@HIDDEN; Tue, 24 Dec 2024 00:43:52 -0500 Received: from mail-lj1-x229.google.com ([2a00:1450:4864:20::229]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <lenbok@HIDDEN>) id 1tPxht-00064u-OB for bug-gnu-emacs@HIDDEN; Tue, 24 Dec 2024 00:43:52 -0500 Received: by mail-lj1-x229.google.com with SMTP id 38308e7fff4ca-303548a9361so43433091fa.0 for <bug-gnu-emacs@HIDDEN>; Mon, 23 Dec 2024 21:43:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735019026; x=1735623826; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=hF9qzkmi2CzOIE0xoKg9XwmY3+QVaul6Y8r2TOo4v4k=; b=fGsGKJ9N0Qdd5Iy9/cK/s0etzVYGkRjRrx8lV9G+gE/rrLU3w+5KzZasdb12LvENCH 0UGMUHY3EAe7XDpoH2P6eKzcBHBJsMO2gvujulEeRrtqN89JixKQOEBLDcsTOZpsY2q6 eDSpNY4WnBLEXaUoqtWqTN8X8PEOB8wABTwmw1bjO3D777058PRyj/VkANFZcRv9/MYP L20CAyeylQjXYS4nwqoIyk3JtpnpLGd3jj/a2lqeV3TYYH3I7bwQAgHGHu2LS5n0S6h8 BtVWoZaasl4BF4VFdnpXx/sCMNCEDjR/G+mMgsH4rrQ/MVlYZGOQgnR5O38UoNXwGB1O 7u4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735019026; x=1735623826; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=hF9qzkmi2CzOIE0xoKg9XwmY3+QVaul6Y8r2TOo4v4k=; b=BJ6A3ik2ygdG9Rav8pbp/+3hXDaARCpIh5cVkDZoX/uetjCjZVhRciO2ZNUlmyHbxo Q5jv67kEPwwRpAK/TvVVZKRunt8xpaU7NsibfV+xwbeLApKF0eeb3jys8Ry6xug2QI7h B1DrSrvQ/xcrZpsqGJu3mcIMaogm5Wo0A/f7AYrdEx/ObFaca/fV6AnPIWN7dda39Tzh +11AzZGi4yjFOY3XdBXqKruzOtHqtSMOFzGR42ZKX4HrNy8w22HjfhBS4754vkPYlP9c +n2I+hK7M/LMAa3kIp1mKEibXG2o0G2YoYQaC824eINa7/rC7FvFraAfX9/lH10gvdZi Usgw== X-Gm-Message-State: AOJu0Yxt0bJKRXk001ImInChH223gr6okVrJdq14i7qnekpllGksxil8 BGMzbRTQRBCIMTcGbQCK2F5Wqht8UQA6PjQwg4KNoLPKbcH0qVcGlDfe3QS25N/XPKLxbTcU83g iftm89XEP8cM6Uih/5XQwiGyYqhcH7jeG X-Gm-Gg: ASbGnct+LuCg98xXnhXhi3y7O7Vg98WNojP4nPzGc/3I4rO8LEYjeRi9u4FF3aSccjb P1h5UBgHgO8qM0jW5NRCfL+9/LTY1AxZcIoo= X-Google-Smtp-Source: AGHT+IFQRkifrqiG+CNjXjrPI4CJXqk2vU1v1N/pSya3i3QHTX77h7JUm3zRARwxmGNnmdPT8/6rBmlGkll6b1bxJEE= X-Received: by 2002:ac2:4c48:0:b0:53e:3729:eaf6 with SMTP id 2adb3069b0e04-5422953d2camr4040941e87.27.1735019026193; Mon, 23 Dec 2024 21:43:46 -0800 (PST) MIME-Version: 1.0 From: Len Trigg <lenbok@HIDDEN> Date: Tue, 24 Dec 2024 18:43:29 +1300 Message-ID: <CAOGVwemgaN4WN_GpNNfkm0fPbj3g-2=DNy-K0N6LxEH+KYRN1Q@HIDDEN> Subject: 31.0.50; tty-child-frames with server / multiple clients possible hangs To: bug-gnu-emacs@HIDDEN Content-Type: multipart/mixed; boundary="000000000000bc37d10629fd985b" Received-SPF: pass client-ip=2a00:1450:4864:20::229; envelope-from=lenbok@HIDDEN; helo=mail-lj1-x229.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.3 (--) --000000000000bc37d10629fd985b Content-Type: multipart/alternative; boundary="000000000000bc37cf0629fd9859" --000000000000bc37cf0629fd9859 Content-Type: text/plain; charset="UTF-8" tty-child-frames does not seem to play well with multiple clients. When we run server-start and allow emacs to have multiple clients (e.g. an initial "emacs -nw" and an "emacsclient -nw"), using a function that utilizes tty-child-frame (such as M-x when vertico-posframe is loaded) in one frame leads the other client to be locked up. Steps to reproduce: mkdir ~/emacs-test Copy the attached init.el into ~/emacs-test/ emacs -nw --init-directory=~/emacs-test (the first time will result in packages being installed by elpaca) (in another terminal) emacsclient -nw Do something to invoke the child frame pop up (e.g. C-x b and select a buffer) Switch back to the original emacs Do something to invoke the child frame pop up (e.g. C-x b and select a buffer) Swap to the other terminal, and note that at some point one client will stop responding to user input. (It may take a couple of tries, perhaps with other regular commands interspersed). When one client is locked, swap back to the other terminal and exit the client - the original client will now accept user input. When a client is locked it *does* accept some input (e.g. C-x C-c will exit the client) It's possible this is vertico-posframe related, as I can't trigger similar behaviour using transient-posframe. In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41, cairo version 1.18.0) of 2024-12-24 built on kaka Repository revision: 6ac38396898e6324d4c6dddb2ad05d1ad0dc5e7c Repository branch: master System Description: Ubuntu 24.04.1 LTS Configured using: 'configure --prefix=/home/len/.local --with-rsvg --with-cairo --with-native-compilation --with-tree-sitter --with-modules' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LC_MONETARY: en_AU.UTF-8 value of $LC_NUMERIC: en_AU.UTF-8 value of $LC_TIME: en_AU.UTF-8 value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Fundamental Minor modes in effect: xterm-mouse-mode: t server-mode: t vertico-posframe-mode: t vertico-mode: t elpaca-use-package-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t buffer-read-only: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr compile comint ansi-osc ansi-color ring comp-run comp-common rx emacsbug message yank-media puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util text-property-search time-date mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils xt-mouse term/xterm xterm server vertico-posframe vertico-multiform vertico compat posframe vertico-posframe-autoloads vertico-autoloads posframe-autoloads cl-extra help-mode elpaca-use-package use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core elpaca-use-package-autoloads elpaca-log elpaca-ui elpaca-menu-elpa elpaca-menu-melpa url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars mailcap elpaca-menu-org elpaca warnings icons elpaca-process cl-loaddefs cl-lib elpaca-autoloads rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo gtk x-toolkit xinput2 x multi-tty move-toolbar make-network-process tty-child-frames native-compile emacs) Memory information: ((conses 16 396223 19518) (symbols 48 15669 0) (strings 32 187599 3392) (string-bytes 1 2901786) (vectors 16 17588) (vector-slots 8 194405 8250) (floats 8 78 41) (intervals 56 346 0) (buffers 992 19)) --000000000000bc37cf0629fd9859 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><br>tty-child-frames does not seem to play well with multi= ple clients. When we run server-start and allow emacs to have multiple clie= nts (e.g. an initial "emacs -nw" and an<br>"emacsclient -nw&= quot;), using a function that utilizes tty-child-frame (such as M-x when ve= rtico-posframe is loaded) in one frame leads the other client to be locked = up.<br><br>Steps to reproduce:<br><br>mkdir ~/emacs-test<br>Copy the attach= ed init.el into ~/emacs-test/<br>emacs -nw --init-directory=3D~/emacs-test= =C2=A0 (the first time will result in packages being installed by elpaca)<b= r><div>(in another terminal) emacsclient -nw</div><div>Do something to invo= ke the child frame pop up (e.g. C-x b and select a buffer)<br>Switch back t= o the original emacs<br></div>Do something to invoke the child frame pop up= (e.g. C-x b and select a buffer)<br>Swap to the other terminal, and note t= hat at some point one client will stop responding<br>to user input. (It may= take a couple of tries, perhaps with other regular commands interspersed).= <br>When one client is locked, swap back to the other terminal and exit the= client - the original<br>client will now accept user input.<br><div><br></= div><div>When a client is locked it *does* accept some input (e.g. C-x C-c = will exit the client)<br></div><div><br></div><div>It's possible this i= s vertico-posframe related, as I can't trigger similar behaviour using = transient-posframe.<br></div><br><br>In GNU Emacs 31.0.50 (build 1, x86_64-= pc-linux-gnu, GTK+ Version<br>=C2=A03.24.41, cairo version 1.18.0) of 2024-= 12-24 built on kaka<br>Repository revision: 6ac38396898e6324d4c6dddb2ad05d1= ad0dc5e7c<br>Repository branch: master<br>System Description: Ubuntu 24.04.= 1 LTS<br><br>Configured using:<br>=C2=A0'configure --prefix=3D/home/len= /.local --with-rsvg --with-cairo<br>=C2=A0--with-native-compilation --with-= tree-sitter --with-modules'<br><br>Configured features:<br>ACL CAIRO DB= US FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG<br>LCMS2 LIBOTF= LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP<br>NOTIFY INOTI= FY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF<br>TOOLKIT_SCROLL_BA= RS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB<br><br>Important set= tings:<br>=C2=A0 value of $LC_MONETARY: en_AU.UTF-8<br>=C2=A0 value of $LC_= NUMERIC: en_AU.UTF-8<br>=C2=A0 value of $LC_TIME: en_AU.UTF-8<br>=C2=A0 val= ue of $LANG: en_US.UTF-8<br>=C2=A0 value of $XMODIFIERS: @im=3Dibus<br>=C2= =A0 locale-coding-system: utf-8-unix<br><br>Major mode: Fundamental<br><br>= Minor modes in effect:<br>=C2=A0 xterm-mouse-mode: t<br>=C2=A0 server-mode:= t<br>=C2=A0 vertico-posframe-mode: t<br>=C2=A0 vertico-mode: t<br>=C2=A0 e= lpaca-use-package-mode: t<br>=C2=A0 override-global-mode: t<br>=C2=A0 toolt= ip-mode: t<br>=C2=A0 global-eldoc-mode: t<br>=C2=A0 show-paren-mode: t<br>= =C2=A0 electric-indent-mode: t<br>=C2=A0 mouse-wheel-mode: t<br>=C2=A0 tool= -bar-mode: t<br>=C2=A0 menu-bar-mode: t<br>=C2=A0 file-name-shadow-mode: t<= br>=C2=A0 global-font-lock-mode: t<br>=C2=A0 blink-cursor-mode: t<br>=C2=A0= minibuffer-regexp-mode: t<br>=C2=A0 buffer-read-only: t<br>=C2=A0 line-num= ber-mode: t<br>=C2=A0 indent-tabs-mode: t<br>=C2=A0 transient-mark-mode: t<= br>=C2=A0 auto-composition-mode: t<br>=C2=A0 auto-encryption-mode: t<br>=C2= =A0 auto-compression-mode: t<br><br>Load-path shadows:<br>None found.<br><b= r>Features:<br>(shadow sort mail-extr compile comint ansi-osc ansi-color ri= ng comp-run<br>comp-common rx emacsbug message yank-media puny dired dired-= loaddefs<br>rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util= <br>text-property-search time-date mm-decode mm-bodies mm-encode mail-parse= <br>rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045<br>iet= f-drums mm-util mail-prsvr mail-utils xt-mouse term/xterm xterm<br>server v= ertico-posframe vertico-multiform vertico compat posframe<br>vertico-posfra= me-autoloads vertico-autoloads posframe-autoloads cl-extra<br>help-mode elp= aca-use-package use-package use-package-ensure<br>use-package-delight use-p= ackage-diminish use-package-bind-key bind-key<br>easy-mmode use-package-cor= e elpaca-use-package-autoloads elpaca-log<br>elpaca-ui elpaca-menu-elpa elp= aca-menu-melpa url url-proxy url-privacy<br>url-expand url-methods url-hist= ory url-cookie generate-lisp-file<br>url-domsuf url-util url-parse auth-sou= rce cl-seq eieio eieio-core<br>cl-macs password-cache json subr-x map byte-= opt gv bytecomp byte-compile<br>url-vars mailcap elpaca-menu-org elpaca war= nings icons elpaca-process<br>cl-loaddefs cl-lib elpaca-autoloads rmc iso-t= ransl tooltip cconv eldoc<br>paren electric uniquify ediff-hook vc-hooks li= sp-float-type elisp-mode<br>mwheel term/x-win x-win term/common-win x-dnd t= ouch-screen tool-bar dnd<br>fontset image regexp-opt fringe tabulated-list = replace newcomment<br>text-mode lisp-mode prog-mode register page tab-bar m= enu-bar rfn-eshadow<br>isearch easymenu timer select scroll-bar mouse jit-l= ock font-lock syntax<br>font-core term/tty-colors frame minibuffer nadvice = seq simple cl-generic<br>indonesian philippine cham georgian utf-8-lang mis= c-lang vietnamese<br>tibetan thai tai-viet lao korean japanese eucjp-ms cp5= 1932 hebrew greek<br>romanian slovak czech european ethiopic indian cyrilli= c chinese<br>composite emoji-zwj charscript charprop case-table epa-hook<br= >jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs<br= >theme-loaddefs faces cus-face macroexp files window text-properties<br>ove= rlay sha1 md5 base64 format env code-pages mule custom widget keymap<br>has= htable-print-readable backquote threads dbusbind inotify lcms2<br>dynamic-s= etting system-font-setting font-render-setting cairo gtk<br>x-toolkit xinpu= t2 x multi-tty move-toolbar make-network-process<br>tty-child-frames native= -compile emacs)<br><br>Memory information:<br>((conses 16 396223 19518) (sy= mbols 48 15669 0)<br>=C2=A0(strings 32 187599 3392) (string-bytes 1 2901786= ) (vectors 16 17588)<br>=C2=A0(vector-slots 8 194405 8250) (floats 8 78 41)= (intervals 56 346 0)<br><div>=C2=A0(buffers 992 19))</div><div><br></div><= /div> --000000000000bc37cf0629fd9859-- --000000000000bc37d10629fd985b Content-Type: text/x-emacs-lisp; charset="US-ASCII"; name="init.el" Content-Disposition: attachment; filename="init.el" Content-Transfer-Encoding: base64 Content-ID: <f_m52146uq0> X-Attachment-Id: f_m52146uq0 Ozs7IGluaXQuZWwgLS0tIEVtYWNzIGluaXRpYWxpemF0aW9uCgo7OzsgQ29kZToKCjs7IGVscGFj YSBib2lsZXJwbGF0ZSA7Owooc2V0cSBwYWNrYWdlLWVuYWJsZS1hdC1zdGFydHVwIG5pbCkKOzsg VXNlIGVscGFjYSByYXRoZXIgdGhhbiBwYWNrYWdlLmVsLCBpdCBnaXZlcyBiZXR0ZXIgY29udHJv bCBvdmVyIHBhY2thZ2UgdmVyc2lvbnMKKGRlZnZhciBlbHBhY2EtaW5zdGFsbGVyLXZlcnNpb24g MC44KQooZGVmdmFyIGVscGFjYS1kaXJlY3RvcnkgKGV4cGFuZC1maWxlLW5hbWUgImVscGFjYS8i IHVzZXItZW1hY3MtZGlyZWN0b3J5KSkKKGRlZnZhciBlbHBhY2EtYnVpbGRzLWRpcmVjdG9yeSAo ZXhwYW5kLWZpbGUtbmFtZSAiYnVpbGRzLyIgZWxwYWNhLWRpcmVjdG9yeSkpCihkZWZ2YXIgZWxw YWNhLXJlcG9zLWRpcmVjdG9yeSAoZXhwYW5kLWZpbGUtbmFtZSAicmVwb3MvIiBlbHBhY2EtZGly ZWN0b3J5KSkKKGRlZnZhciBlbHBhY2Etb3JkZXIgJyhlbHBhY2EgOnJlcG8gImh0dHBzOi8vZ2l0 aHViLmNvbS9wcm9nZm9saW8vZWxwYWNhLmdpdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgOnJlZiBuaWwgOmRlcHRoIDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmZpbGVz ICg6ZGVmYXVsdHMgImVscGFjYS10ZXN0LmVsIiAoOmV4Y2x1ZGUgImV4dGVuc2lvbnMiKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOmJ1aWxkICg6bm90IGVscGFjYS0tYWN0aXZhdGUt cGFja2FnZSkpKQoobGV0KiAoKHJlcG8gIChleHBhbmQtZmlsZS1uYW1lICJlbHBhY2EvIiBlbHBh Y2EtcmVwb3MtZGlyZWN0b3J5KSkKICAgICAgIChidWlsZCAoZXhwYW5kLWZpbGUtbmFtZSAiZWxw YWNhLyIgZWxwYWNhLWJ1aWxkcy1kaXJlY3RvcnkpKQogICAgICAgKG9yZGVyIChjZHIgZWxwYWNh LW9yZGVyKSkKICAgICAgIChkZWZhdWx0LWRpcmVjdG9yeSByZXBvKSkKICAoYWRkLXRvLWxpc3Qg J2xvYWQtcGF0aCAoaWYgKGZpbGUtZXhpc3RzLXAgYnVpbGQpIGJ1aWxkIHJlcG8pKQogICh1bmxl c3MgKGZpbGUtZXhpc3RzLXAgcmVwbykKICAgIChtYWtlLWRpcmVjdG9yeSByZXBvIHQpCiAgICAo d2hlbiAoPCBlbWFjcy1tYWpvci12ZXJzaW9uIDI4KSAocmVxdWlyZSAnc3Vici14KSkKICAgIChj b25kaXRpb24tY2FzZS11bmxlc3MtZGVidWcgZXJyCiAgICAgICAgKGlmLWxldCogKChidWZmZXIg KHBvcC10by1idWZmZXItc2FtZS13aW5kb3cgIiplbHBhY2EtYm9vdHN0cmFwKiIpKQogICAgICAg ICAgICAgICAgICAoKHplcm9wIChhcHBseSAjJ2NhbGwtcHJvY2VzcyBgKCJnaXQiIG5pbCAsYnVm ZmVyIHQgImNsb25lIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICxAKHdoZW4tbGV0KiAoKGRlcHRoIChwbGlzdC1nZXQgb3JkZXIgOmRlcHRoKSkpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0 IChmb3JtYXQgIi0tZGVwdGg9JWQiIGRlcHRoKSAiLS1uby1zaW5nbGUtYnJhbmNoIikpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLChwbGlzdC1nZXQg b3JkZXIgOnJlcG8pICxyZXBvKSkpKQogICAgICAgICAgICAgICAgICAoKHplcm9wIChjYWxsLXBy b2Nlc3MgImdpdCIgbmlsIGJ1ZmZlciB0ICJjaGVja291dCIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChvciAocGxpc3QtZ2V0IG9yZGVyIDpyZWYpICItLSIpKSkpCiAg ICAgICAgICAgICAgICAgIChlbWFjcyAoY29uY2F0IGludm9jYXRpb24tZGlyZWN0b3J5IGludm9j YXRpb24tbmFtZSkpCiAgICAgICAgICAgICAgICAgICgoemVyb3AgKGNhbGwtcHJvY2VzcyBlbWFj cyBuaWwgYnVmZmVyIG5pbCAiLVEiICItTCIgIi4iICItLWJhdGNoIgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIi0tZXZhbCIgIihieXRlLXJlY29tcGlsZS1kaXJlY3Rv cnkgXCIuXCIgMCAnZm9yY2UpIikpKQogICAgICAgICAgICAgICAgICAoKHJlcXVpcmUgJ2VscGFj YSkpCiAgICAgICAgICAgICAgICAgICgoZWxwYWNhLWdlbmVyYXRlLWF1dG9sb2FkcyAiZWxwYWNh IiByZXBvKSkpCiAgICAgICAgICAgIChwcm9nbiAobWVzc2FnZSAiJXMiIChidWZmZXItc3RyaW5n KSkgKGtpbGwtYnVmZmVyIGJ1ZmZlcikpCiAgICAgICAgICAoZXJyb3IgIiVzIiAod2l0aC1jdXJy ZW50LWJ1ZmZlciBidWZmZXIgKGJ1ZmZlci1zdHJpbmcpKSkpCiAgICAgICgoZXJyb3IpICh3YXJu ICIlcyIgZXJyKSAoZGVsZXRlLWRpcmVjdG9yeSByZXBvICdyZWN1cnNpdmUpKSkpCiAgKHVubGVz cyAocmVxdWlyZSAnZWxwYWNhLWF1dG9sb2FkcyBuaWwgdCkKICAgIChyZXF1aXJlICdlbHBhY2Ep CiAgICAoZWxwYWNhLWdlbmVyYXRlLWF1dG9sb2FkcyAiZWxwYWNhIiByZXBvKQogICAgKGxvYWQg Ii4vZWxwYWNhLWF1dG9sb2FkcyIpKSkKKGFkZC1ob29rICdhZnRlci1pbml0LWhvb2sgIydlbHBh Y2EtcHJvY2Vzcy1xdWV1ZXMpCihlbHBhY2EgYCgsQGVscGFjYS1vcmRlcikpCgo7OyBJbnN0YWxs IHVzZS1wYWNrYWdlIHN1cHBvcnQKKGVscGFjYSBlbHBhY2EtdXNlLXBhY2thZ2UKICA7OyBFbmFi bGUgOmVscGFjYSB1c2UtcGFja2FnZSBrZXl3b3JkLgogIChlbHBhY2EtdXNlLXBhY2thZ2UtbW9k ZSkKICA7OyBBc3N1bWUgOmVscGFjYSB0IHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLgogIChz ZXRxIGVscGFjYS11c2UtcGFja2FnZS1ieS1kZWZhdWx0IHQpKQoKOzsgQmxvY2sgdW50aWwgY3Vy cmVudCBxdWV1ZSBwcm9jZXNzZWQuCihlbHBhY2Etd2FpdCkKCjs7IChzZXRxIGN1c3RvbS1maWxl IChleHBhbmQtZmlsZS1uYW1lICJjdXN0b20uZWwiIHVzZXItZW1hY3MtZGlyZWN0b3J5KSkKOzsg KGFkZC1ob29rICdlbHBhY2EtYWZ0ZXItaW5pdC1ob29rIChsYW1iZGEgKCkgKGxvYWQgY3VzdG9t LWZpbGUgJ25vZXJyb3IpKSkKCgoodXNlLXBhY2thZ2UgcG9zZnJhbWUKICA7Ozpjb25maWcKICA7 OyhzZXRxIHBvc2ZyYW1lLW1vdXNlLWJhbmlzaCBuaWwpCiAgKQoodXNlLXBhY2thZ2UgdmVydGlj by1wb3NmcmFtZQogIDphZnRlciBwb3NmcmFtZSB2ZXJ0aWNvCiAgOmNvbmZpZwogIChwdXNoICco dHR5LW5vbi1zZWxlY3RlZC1jdXJzb3IgLiB0KSB2ZXJ0aWNvLXBvc2ZyYW1lLXBhcmFtZXRlcnMp CiAgKHB1c2ggJyhiYWNrZ3JvdW5kLWNvbG9yIC4gImJsYWNrIikgdmVydGljby1wb3NmcmFtZS1w YXJhbWV0ZXJzKQogIChwdXNoICcodW5kZWNvcmF0ZWQgLiBuaWwpIHZlcnRpY28tcG9zZnJhbWUt cGFyYW1ldGVycykKICAgICh2ZXJ0aWNvLXBvc2ZyYW1lLW1vZGUpKQoKKHVzZS1wYWNrYWdlIHZl cnRpY28KICA6aW5pdAogICh2ZXJ0aWNvLW1vZGUpCiAgOzsoYWR2aWNlLWFkZCAjJ3RtbS1hZGQt cHJvbXB0IDphZnRlciAjJ21pbmlidWZmZXItaGlkZS1jb21wbGV0aW9ucykKICA7OyAoc2V0cQog IDs7ICB2ZXJ0aWNvLXJlc2l6ZSBuaWwKICA7OyAgdmVydGljby1jeWNsZSB0KQogICkKCih1c2Ut cGFja2FnZSBzZXJ2ZXIKICA6ZW5zdXJlIG5pbAogIDpob29rIChlbHBhY2EtYWZ0ZXItaW5pdCAu IHNlcnZlci1zdGFydCkpCgo7OzsgaW5pdC5lbCBlbmRzIGhlcmUK --000000000000bc37d10629fd985b--
Len Trigg <lenbok@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.bug-gnu-emacs@HIDDEN
:bug#75056
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.