Received: (at 80182) by debbugs.gnu.org; 7 Feb 2026 08:27:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 07 03:27:17 2026
Received: from localhost ([127.0.0.1]:33029 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vodeu-0007w7-PW
for submit <at> debbugs.gnu.org; Sat, 07 Feb 2026 03:27:17 -0500
Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:57358)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <liuhui1610@HIDDEN>)
id 1vodet-0007vs-0J
for 80182 <at> debbugs.gnu.org; Sat, 07 Feb 2026 03:27:15 -0500
Received: by mail-wr1-x435.google.com with SMTP id
ffacd0b85a97d-4362c635319so1079347f8f.2
for <80182 <at> debbugs.gnu.org>; Sat, 07 Feb 2026 00:27:14 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1770452833; cv=none;
d=google.com; s=arc-20240605;
b=XKlaoT8L7sPhBFoo1ZTfhZByr5YdFqjilQtaqR32qrEpuSnDifLZSJx0ybX/poV4zh
PT3znPDdokk2e8gRjkLvoccrDxkXoHGK0Cb+KA/1BIwUoeN+AbpMiChRr2zvMSeMPJxU
pHUDxZTfYZxEKmmCyDlZBONByPya/v8vdTyYbGoiO0aocH87pK4Hep+wtwDq+dpXIBF5
hYZ/VsuQhfhXLDpIXtKLv8G9n3hZj89iLdEhCDd4qgBdDPBDZ9f1awPM3onee2lys1mZ
+mTQA1vTp8/3xxh+fbRdQvUzrDcvD3n33w7ZeECjmRg4uTopqX4klV6m7eshTVG5i2C8
ogOg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
s=arc-20240605;
h=content-transfer-encoding:cc:to:subject:message-id:date:from
:in-reply-to:references:mime-version:dkim-signature;
bh=jy+9EHWGMWeZI2R3ZsLHji00h4tBk4k+2HpPKgq09vo=;
fh=6M/i7eq2rAVlNwO0HIiUgj13FnMgza7WjLhJRuDPyI0=;
b=KqzgYjQI/ms7NfHUYN/PnMfBed5oGbG20cv7Rsb061s7sEYyNlU3JxALvFUENgRNkv
syz2KLxCEhuKFddV4SDYLbKjJh1EfDIFNdvujXZaa3K0cBrTtx3RcyxHRuN28+f5sfoh
uGcz6YguTidLRXpsPhz+W0L61jYb05UCMXATw6eMHOFhjGK98YnfrHe2FAEXcRLd5UAO
568PGyMtDZ3e0d/VTbkbU24V85uKNLq0/NfImwQ+okG9nTZJw9FO5cld6JbLOiHQ1GJu
AnlZzezKRQGy6C6po/pfCYWpIYNhjW+ijl7Me0jYTNvFNUu0Lyy45opoE2dvbLbypi8v
j11g==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1770452833; x=1771057633; darn=debbugs.gnu.org;
h=content-transfer-encoding:cc:to:subject:message-id:date:from
:in-reply-to:references:mime-version:from:to:cc:subject:date
:message-id:reply-to;
bh=jy+9EHWGMWeZI2R3ZsLHji00h4tBk4k+2HpPKgq09vo=;
b=Wk+CV/SNKfY5ib1dfHmjVESgIrPpn6pYNuc9Hfyu9xzLJJbjDMyb2zrXjRT9bqwJSr
8wAQU562EiNbH2+480bYNmlDVJfIfg3yC0HXKv3ACAONRo9pDU8byozA306hNCRWl6Jx
p9wAxxXfLRJgloamPFLdMcktxg6pe93ecHS3c4bmIPwUCEgJd3ibP/8ViO6sRj0oH0p/
4p5BCalX/NYevHmfoU/t3KmjL9atFzNEdiH+oRmHl9x85UzPRL6sFM2IrQrBZC+DfOhE
HzLny7DM39xMc/ISjnP3pGvA1LSTkzrF/ke0DkJV+jygxUXLMHcllWWVQL6xmqXmy4Tl
4GXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1770452833; x=1771057633;
h=content-transfer-encoding:cc:to:subject:message-id:date:from
:in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
:to:cc:subject:date:message-id:reply-to;
bh=jy+9EHWGMWeZI2R3ZsLHji00h4tBk4k+2HpPKgq09vo=;
b=ldLPVyUYYLag/xLeKcZotC9FfGDFBLHQUUKxgdbpdKUDrgvP6o52od+//OTAji13wH
4+0hOEWfQHTHWDf50SfyAhXhXz7GwyRVuKhwVc08VWiCg3pZZIAy9BwpJkkZ74qZC4V3
Lktz7hhplO75ehhVeFh+DLWR8eRgQ18lrEfKnj+6gKfXBLcRl83pzd483kgZUVK0OUJI
JRYbVFYEFlHgTEIHnR0bfAQqbCxM0vqNhF9emI39Yq7JkgGM+c1iOzgnoGaVjxJ81hRm
kX8UU5o0iKIC8XaXkeNuIQt+thlQXn93Y8w6GEiFQY0nD88nlqSvqRi7JGTn+znUpGk9
y55w==
X-Forwarded-Encrypted: i=1;
AJvYcCU6nwz6U5wRfjck1VsufguAWHXfg4Na975BSQnyWYqRLgrrxrBrAiGvdy6/q8IqbQDXpKCSAA==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yy2csfKKnWTopUStGE76OfGAJRXp1EkBudwgS0CYtZ4U4VGuF4V
UlcQza+uKZ166j9U6NdNc5B1f55ZSZOTxFleq34oCbMP4B8Jv9OKR9cQfaDeU1RuM2biahNcidL
Pw5vyYWjNtHqVXodozWRhSSxc6d3UerU=
X-Gm-Gg: AZuq6aIYldMdOLLFFHou2sk8TIY4LWRerGmreXiC4qdSoSgvBM63CIx7CRwzrWbyy2G
EEaVwI6WA+bauvODxOM6zGUWlmILkOCTBG2H7Uh6ANY+C93Gm6JNLvtKqhedawGabmMY5Tuy+x+
rDX49G46BjbsGebg7btoAWAw83FEP7d+LdnT22ycsfUHGX5tzi6myhf55nqg9WxDfXNrP70p1AI
LNbNVAq+z/8k9BjRULX5NJ7GXl2+TW9EI3wQGQkf4dPh7EwNbFaZBnmQoi91uFhdpQ7Gu6Y
X-Received: by 2002:a05:6000:18a7:b0:431:344:5a2d with SMTP id
ffacd0b85a97d-4362934bfebmr8739337f8f.41.1770452833200; Sat, 07 Feb 2026
00:27:13 -0800 (PST)
MIME-Version: 1.0
References: <eke7a4ykpjep.wl-kobarity@HIDDEN>
<CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
<eke78qdyq5ef.wl-kobarity@HIDDEN>
<CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN>
<eke78qdr2edy.wl-kobarity@HIDDEN> <eke7ldhl3lcs.wl-kobarity@HIDDEN>
<CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN>
<eke7jywx3lx0.wl-kobarity@HIDDEN>
<CAOQTW-NnPKu-9ngc7VwAc0koOfN1GF4XZ-NoJDtDhnopnKDUkQ@HIDDEN>
<eke7h5rw386q.wl-kobarity@HIDDEN> <86cy2jy2kd.fsf@HIDDEN>
<CAOQTW-MN=Tpswrdc_Gzt_Loi=wo2xW8c51tiF4b2P0kdf5FS2g@HIDDEN>
<eke7fr7d3n46.wl-kobarity@HIDDEN> <86fr7dx1g6.fsf@HIDDEN>
<eke7ecmx2x4v.wl-kobarity@HIDDEN> <867bspvuq2.fsf@HIDDEN>
In-Reply-To: <867bspvuq2.fsf@HIDDEN>
From: Liu Hui <liuhui1610@HIDDEN>
Date: Sat, 7 Feb 2026 16:27:01 +0800
X-Gm-Features: AZwV_QiA5fsmlhc4lhmNX79xBbZUhBm8NtvY-nI_Quswak39d3bcbROs29BS5wk
Message-ID: <CAOQTW-OVsEap6QSUdE+8_jxnoojpU0RzXA1B_eGcenLe_xVUkg@HIDDEN>
Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native
completion in python.el
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 1.3 (+)
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: On Sat, Feb 7, 2026 at 4:11 PM Eli Zaretskii wrote: > >
> Date: Sat, 07 Feb 2026 09:52:16 +0900 > > From: kobarity > > Cc: liuhui1610@HIDDEN,
> > 80182 <at> debbugs.gnu.org > > > > Eli Zaretskii w [...]
Content analysis details: (1.3 points, 10.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
-0.0 SPF_PASS SPF: sender matches SPF record
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
provider (liuhui1610[at]gmail.com)
1.0 FORGED_GMAIL_RCVD 'From' gmail.com does not match 'Received'
headers
0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends
in digit (liuhui1610[at]gmail.com)
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
no trust
[2a00:1450:4864:20:0:0:0:435 listed in]
[list.dnswl.org]
X-Debbugs-Envelope-To: 80182
Cc: kobarity <kobarity@HIDDEN>, 80182 <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.3 (/)
On Sat, Feb 7, 2026 at 4:11=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wrote:
>
> > Date: Sat, 07 Feb 2026 09:52:16 +0900
> > From: kobarity <kobarity@HIDDEN>
> > Cc: liuhui1610@HIDDEN,
> > 80182 <at> debbugs.gnu.org
> >
> > Eli Zaretskii wrote:
> > > > Since the Windows Python standard library does not include the
> > > > readline module, `python-shell-pdb-1' should be skipped if only the
> > > > standard library is used. Eli might be using a library like
> > > > pyreadline or something similar.
> > >
> > > How can I tell whether pyreadline or something similar is being used?
> >
> > Try the following in the Python REPL:
> >
> > >>> import readline
> >
> > On Windows Python without third-party libraries, this will result in
> > an error. Since `python-shell-pdb-1' is not skipped, it should
> > succeed in your environment.
>
> This doesn't yield an error, so I do have it installed.
>
> > You can check the library location as follows:
> >
> > >>> readline.__file__
>
> This yields a readline.py file under my site-packages subdirectory.
>
> I guess some package I needed wanted me to install that at some point.
>
> > Please note that I'm not recommending uninstalling pyreadline.
> > Uninstalling it on Windows Python will prevent completion in Inferior
> > Python.
>
> Maybe this is the reason I have it.
>
> So what's the conclusion? Will the last patch posted by Liu work, or
> should I wait for an update? Or something else?
Since kobarity finds the test also fails on Windows with Python 3.12,
I will investigate it and update the patch.
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
Received: (at 80182) by debbugs.gnu.org; 7 Feb 2026 08:18:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 07 03:18:42 2026
Received: from localhost ([127.0.0.1]:33015 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vodWc-0007Vv-2K
for submit <at> debbugs.gnu.org; Sat, 07 Feb 2026 03:18:42 -0500
Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:57644)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <liuhui1610@HIDDEN>)
id 1vodWZ-0007Vm-6A
for 80182 <at> debbugs.gnu.org; Sat, 07 Feb 2026 03:18:39 -0500
Received: by mail-wr1-x42d.google.com with SMTP id
ffacd0b85a97d-43626796202so1966834f8f.3
for <80182 <at> debbugs.gnu.org>; Sat, 07 Feb 2026 00:18:39 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1770452318; cv=none;
d=google.com; s=arc-20240605;
b=KgYS8PqzvlGCHs1yGpjXaVJd7stfuILyCUyGu0A0jSDlOyqdiMdhgEtrqi/UAK3g2B
i5q5ab4HdXwf/Dme5KJ55azLF081LFbDL0b5pJtQl80BBDnQyulZZ12oVknf3EPvXLfp
swhB7uJJijLrJZbmBj7fn/Qj+4E9zlcHjY9+crYRuYXnQNN0bx9V30O/IQ24+3OPHMO1
RLKfNrhwy+97I5sGt0SglJO1pxNXOUCBBlhNnEF5umfyQ9ez9TzvyOByp3ARe3Yjcj3q
U9PB85NmfamaK8abql5xXguljAO2V9/fHDvdPRnYd2Uy2+2IpGybI4qT2lNIfiGYGbdX
8qnA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
s=arc-20240605;
h=content-transfer-encoding:cc:to:subject:message-id:date:from
:in-reply-to:references:mime-version:dkim-signature;
bh=+VYnWkU6Ky5B9fyZ2cvhJmgCXU1b+l0Cd4yi2YarLRg=;
fh=8trmTTag5ENwVvJU9lRu+YHVnbDRB8OTvw1/eZM9z4s=;
b=EHhlJlO/yK0Qt0nsiwiCdyvG3fQEchmA0h5Je7G9Z5jyqJfqCt5PnEM7ARnlmqRiAQ
8L3rWKibhmQV8Evx8z4al2nl3hfWXTTuBL9Gz5MwOjOXLyYH12MPb/0X1gekHASv9f3q
EZ4lZg+9QpgPgmKDZuvuJhaDe34LXHES0Ft1pcFkOvdt0SCg6UaiPYAsOn82XoqRwnvL
4iEdQYcHr8yS1GU6gscOewnWpgVvcq2TipIDSGM4G0LVOGHmT6AJS4KnAlqbZajNlWah
MncEifbFVj18tLTQantAlUVyDoZmZxug1NEImW3LpRtzX43viqIm2wHckMxDvO2XBGk3
a8rg==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1770452318; x=1771057118; darn=debbugs.gnu.org;
h=content-transfer-encoding:cc:to:subject:message-id:date:from
:in-reply-to:references:mime-version:from:to:cc:subject:date
:message-id:reply-to;
bh=+VYnWkU6Ky5B9fyZ2cvhJmgCXU1b+l0Cd4yi2YarLRg=;
b=b81U4xMt2C5kClFUF7xbjPG08FfrSVsWIlsWgKL0WchQYd1NjAmpRTItR0W1Iwo066
i/wv4RGI3FqhlLQlHawMWhpallyvJT89CeeSUv7QDFTGFY/ehxdU87+8esybCfEFSfoT
TvQTUvJC5sm5d2fu01kgRFFT0N1NoKhYdDypjSxbLKnQiXtOyR41x3EhAacNgahu91bA
3k7dd+lyuKKgOIWb/NeUP5mjwwqF3I9wtRmT/2kXHtRp87LjdLfZ5KV+KN/v50B46S6i
EhsVDA0R9Ueu9GR3vLAs84BIuvI3p6jqYez+OtXbfj+w/DoJ5KhxGxc8jQC6zPj0iMsI
eqSw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1770452318; x=1771057118;
h=content-transfer-encoding:cc:to:subject:message-id:date:from
:in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from
:to:cc:subject:date:message-id:reply-to;
bh=+VYnWkU6Ky5B9fyZ2cvhJmgCXU1b+l0Cd4yi2YarLRg=;
b=fCLo1D7/X0rL+cKZuXo3ejdwsnL0U78+bNu0nNIeFmQFjmhcSUvJBbh+G6VXitUxMe
FeFzPrQeidLhEVNxI1XVZgGKdMEOQm06YOz05cjCWOQT8r6iorpdweRkhMDY1AaNNs/G
5nE30qS1JPqVFSMgQsOXt8wlnFyDDjKCUDUqLPTkHVRyvgVrR17GVuhJJ7nT+X/5dy1F
pzHoJwXNGqpV47D5UI7osrpZhglCvEjGqr2dHxAB5EixHa77KOtY150aupCD0MAUZgBe
sezGqeEnb6d9BfJyQ6PY6tZGtJeOwq8GCF+UXVaZvbW5geVa/5hTIGx6E0rGZQVMQ9e3
UNhw==
X-Forwarded-Encrypted: i=1;
AJvYcCWfVNgVK+p/2nAvViVy8kp5j3qynTOfV8UdDITCr+5qt/apUfxdNIZZ15Emgp1dNSaYIpLG1g==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yzwg3X1+6JIOgIPnmiw1T92l4fksG6UGFCLGUTkfsTwG4Jj14bN
206fE5RoJaVC7qNiGmTA7mMh4Dy/bM3O7YtLk2i9IUOJgP8hZAGIkYIxQRQcCSdRZjrUiby8KJ3
rvtn6+YWv8w2e6+be047HvGPlVnBpjifufvfkZDqLSw==
X-Gm-Gg: AZuq6aLql6T4/10E4t8Qki5icWvOVZ8MRqpsGa3xu2WfCqVLdp5LT8Qswn95heLt2NC
jd4U7dL4JLr91kl6GbFoEPSbhHmklkf9JCuzZ3dUGejlIFWE3lxq6XQkCPLePXZYcmh+vumLivb
Q5guLNeSGDUKQp97SrkYeQYH39wr/PI3IeSZVlsOU7umGpLbg0+AuudELKIC8CMwflu7my/8SxK
on3Dz6hMUrFiUpAVvNYEKAn1uXxnd721JAwZ0GnRsZkYYkCnZ1bDRl5O6dr6Mv7XHx4hZYI
X-Received: by 2002:a05:6000:2dc5:b0:436:8058:453 with SMTP id
ffacd0b85a97d-436805809cemr452307f8f.33.1770452317953; Sat, 07 Feb 2026
00:18:37 -0800 (PST)
MIME-Version: 1.0
References: <eke7a4ykpjep.wl-kobarity@HIDDEN>
<CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
<eke78qdyq5ef.wl-kobarity@HIDDEN>
<CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN>
<eke78qdr2edy.wl-kobarity@HIDDEN> <eke7ldhl3lcs.wl-kobarity@HIDDEN>
<CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN>
<eke7jywx3lx0.wl-kobarity@HIDDEN>
<CAOQTW-NnPKu-9ngc7VwAc0koOfN1GF4XZ-NoJDtDhnopnKDUkQ@HIDDEN>
<eke7h5rw386q.wl-kobarity@HIDDEN> <86cy2jy2kd.fsf@HIDDEN>
<CAOQTW-MN=Tpswrdc_Gzt_Loi=wo2xW8c51tiF4b2P0kdf5FS2g@HIDDEN>
<eke7fr7d3n46.wl-kobarity@HIDDEN>
In-Reply-To: <eke7fr7d3n46.wl-kobarity@HIDDEN>
From: Liu Hui <liuhui1610@HIDDEN>
Date: Sat, 7 Feb 2026 16:18:26 +0800
X-Gm-Features: AZwV_QjAx4pnoH396yzAYomCER1g2SH4T0rBDaWqfVz-fpdCMhDRfNe3fKTBtys
Message-ID: <CAOQTW-O5tBbimO1+mMF-kNpiR8Jb2omb+YS2WzKa4WoO+SQh-w@HIDDEN>
Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native
completion in python.el
To: kobarity <kobarity@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 1.3 (+)
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: On Fri, Feb 6, 2026 at 11:31 PM kobarity wrote: > In an
environment where pyreadline3 was installed on Windows Python > 3.12, `python-shell-pdb-1'
failed. The contents of the Inferior > Python buffer was as follows: > >
Python 3.12.9 (tags/v3.12.9: [...]
Content analysis details: (1.3 points, 10.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
no trust
[2a00:1450:4864:20:0:0:0:42d listed in]
[list.dnswl.org]
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
-0.0 SPF_PASS SPF: sender matches SPF record
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
provider (liuhui1610[at]gmail.com)
1.0 FORGED_GMAIL_RCVD 'From' gmail.com does not match 'Received'
headers
0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends
in digit (liuhui1610[at]gmail.com)
X-Debbugs-Envelope-To: 80182
Cc: Eli Zaretskii <eliz@HIDDEN>, 80182 <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.3 (/)
On Fri, Feb 6, 2026 at 11:31=E2=80=AFPM kobarity <kobarity@HIDDEN> wrote=
:
> In an environment where pyreadline3 was installed on Windows Python
> 3.12, `python-shell-pdb-1' failed. The contents of the Inferior
> Python buffer was as follows:
>
> Python 3.12.9 (tags/v3.12.9:fdb8142, Feb 4 2025, 15:27:58) [MSC v.1942 6=
4 bit (AMD64)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
> >>>
> >>>
> > c:\users\kobarity\appdata\local\temp\emacs-test-bc4y5v-python\test1.py(=
3)f1()
> -> x =3D 1
> ["0__dummy_completion__", "next", "1__dummy_completion__"]
> (Pdb) nex
>
> The problem seems to be avoided as follows:
>
> modified test/lisp/progmodes/python-tests.el
> @@ -5152,13 +5152,15 @@ python-shell-pdb-1
> nil
> "import abc
> from test1 import f1
> -f1()
> "
> (python-shell-send-buffer)
> (python-shell-accept-process-output (python-shell-get-process))
> (python-shell-with-shell-buffer
> (skip-unless python-shell-readline-completer-delims)
> (python-shell-completion-native-turn-off)
> + (insert "f1()")
> + (comint-send-input)
> + (python-shell-accept-process-output (python-shell-get-process))
> (python-tests--pdb-1)
> (insert "c")
> (comint-send-input)
Thanks, I didn't test it on Windows, but it is a normal use case and
shouldn't fail. I'll try to reproduce it and investigate.
>
> By the way, is "import abc" necessary?
Thanks. I find the assertion for (python-ffap-module-path "abc") is
wrong, which makes it useless. I'll fix the test.
> To check whether something is completable in PDB, using "alias" or
> similar might be more appropriate than "next". This is because "next"
> is completable in both PDB and Python.
OK, I'll consider using another command.
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.Received: (at 80182) by debbugs.gnu.org; 7 Feb 2026 08:11:46 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 07 03:11:46 2026 Received: from localhost ([127.0.0.1]:32968 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vodPt-0007AO-Ri for submit <at> debbugs.gnu.org; Sat, 07 Feb 2026 03:11:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:50752) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vodPq-0007A6-EW for 80182 <at> debbugs.gnu.org; Sat, 07 Feb 2026 03:11:43 -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 1vodPl-00053c-53; Sat, 07 Feb 2026 03:11:37 -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=OMHHTLGuRQw4b9U/8p1rbXAgYPUSE6zjSYU4+RUXPfw=; b=sNIL9mKrn0oM ld6LrWlYel7d76CvFesILFhKzqUNARvWeqPPZWkSUz1PRO9ovtAeBBNOly276so8IgB1+8o4YwFG3 cVAHdhLrbD+hUdr4Jmz58gNpMdX3+qEJtt2HSRIBHUbAKSmXadw0ebBE8aLr7oFy8aBiYJ+hi6apL D9Vz0MS4y6rkmqsY1Hu2SE4yrXcsyvqJVT4Zl7jtQ7if4nmsnfebzLq3eeGy2TS4JFFMclY4d1EtV N9+N4KRRb37qHNW0tlpEzFQPMVxsSm7PpN5ZHA7a4hnc2R85TzcuPC+ZdI6/95kb9+hALr/nSKTrA MuMzih/5g3YjQkUiIpLU7A==; Date: Sat, 07 Feb 2026 10:11:33 +0200 Message-Id: <867bspvuq2.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: kobarity <kobarity@HIDDEN> In-Reply-To: <eke7ecmx2x4v.wl-kobarity@HIDDEN> (message from kobarity on Sat, 07 Feb 2026 09:52:16 +0900) Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native completion in python.el References: <eke7a4ykpjep.wl-kobarity@HIDDEN> <CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN> <eke78qdyq5ef.wl-kobarity@HIDDEN> <CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN> <eke78qdr2edy.wl-kobarity@HIDDEN> <eke7ldhl3lcs.wl-kobarity@HIDDEN> <CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN> <eke7jywx3lx0.wl-kobarity@HIDDEN> <CAOQTW-NnPKu-9ngc7VwAc0koOfN1GF4XZ-NoJDtDhnopnKDUkQ@HIDDEN> <eke7h5rw386q.wl-kobarity@HIDDEN> <86cy2jy2kd.fsf@HIDDEN> <CAOQTW-MN=Tpswrdc_Gzt_Loi=wo2xW8c51tiF4b2P0kdf5FS2g@HIDDEN> <eke7fr7d3n46.wl-kobarity@HIDDEN> <86fr7dx1g6.fsf@HIDDEN> <eke7ecmx2x4v.wl-kobarity@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 80182 Cc: liuhui1610@HIDDEN, 80182 <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: Sat, 07 Feb 2026 09:52:16 +0900 > From: kobarity <kobarity@HIDDEN> > Cc: liuhui1610@HIDDEN, > 80182 <at> debbugs.gnu.org > > Eli Zaretskii wrote: > > > Since the Windows Python standard library does not include the > > > readline module, `python-shell-pdb-1' should be skipped if only the > > > standard library is used. Eli might be using a library like > > > pyreadline or something similar. > > > > How can I tell whether pyreadline or something similar is being used? > > Try the following in the Python REPL: > > >>> import readline > > On Windows Python without third-party libraries, this will result in > an error. Since `python-shell-pdb-1' is not skipped, it should > succeed in your environment. This doesn't yield an error, so I do have it installed. > You can check the library location as follows: > > >>> readline.__file__ This yields a readline.py file under my site-packages subdirectory. I guess some package I needed wanted me to install that at some point. > Please note that I'm not recommending uninstalling pyreadline. > Uninstalling it on Windows Python will prevent completion in Inferior > Python. Maybe this is the reason I have it. So what's the conclusion? Will the last patch posted by Liu work, or should I wait for an update? Or something else?
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.Received: (at 80182) by debbugs.gnu.org; 7 Feb 2026 00:52:23 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 06 19:52:23 2026 Received: from localhost ([127.0.0.1]:58337 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1voWYg-0001Hg-RK for submit <at> debbugs.gnu.org; Fri, 06 Feb 2026 19:52:23 -0500 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]:42386) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <kobarity@HIDDEN>) id 1voWYd-0001HM-Ru for 80182 <at> debbugs.gnu.org; Fri, 06 Feb 2026 19:52:20 -0500 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-2a09d981507so20845965ad.1 for <80182 <at> debbugs.gnu.org>; Fri, 06 Feb 2026 16:52:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770425539; x=1771030339; darn=debbugs.gnu.org; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:from:to:cc:subject:date:message-id:reply-to; bh=CVZeE5+qzo7rTczvmWHGGIfhjMG9yyprwfkVQ8BNSPU=; b=LmL2nUADT/9S0GrFWdbBZKEUbutBAlVDFiwno9Qv7NYstn1NxaMSrUAKWG422jpEHC WyAznyrV9KG8DXQL6rDs0Ft50kxnVwSXy0BP/7Pk9lj44skYTrPf7JHgSrfU8GJR1UsA u5LYQU1ZAPklqlS6HPuwXOADfCJkRP3EroM5ano3Uu/GtM6DhNyeHFhrrg43OoV589aQ qp5WsbK45PBJz34ajl+lmzsRmXQ4uWi0B6A66nW1NTqPk6f/bbaMGZUii+hT8qeKOc59 tGLW469gym2nID7/6NKvJRYGwIXA1C6pefl/+rTbH/fhQV1wkqoXvQf6nxCAZSgeFvms QcXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770425539; x=1771030339; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=CVZeE5+qzo7rTczvmWHGGIfhjMG9yyprwfkVQ8BNSPU=; b=mHckGoDB7szlJSdW1Y8Wv3dJM26llKD4pdYlJLahwOaTNtDyx2yjKVY4kPCwx8EF84 Nh2uhz7+kM859uQsaOHaUd7I3pvwj/V9wUrBA724KA5gGpXQRs9S16PlA7EGs/GFQhGF NF95h7+FV4eIoqUW6nhBICRfcmyAuggAMPOUiQxj7bMxWF+d92isDCBpWiTvcJWYg7DD sR1yamVf15cp0aYcHqUPsVPWfRvJiUJs9qwVxePqTBMM/Rnw6Q/eV/1JLdYXl9C4kMa7 wXrxO7G6ZKdMhLWtV3Ypa4h6GnobFj92R0nKuKlDZpZ1+ybFiYHk24kr15Q1AwJMbY97 x10w== X-Forwarded-Encrypted: i=1; AJvYcCWH7Sq31k/HG9TfVS6XjtSafFwszSIYTKQbcLTN4eaZ1bZe5Z3aEzUHKuAmB6ZPSZGnVcgnkg==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yy5lcBba4TDjJfmkySDmTvRF9HPRUI2kVccOue4hvZ+4WhxMduH AosObTuviAYe5jdagmVVnco3zElk1v2XMNxH0PdkjVle1m2gGwQm1hyN X-Gm-Gg: AZuq6aJ4fxeLm2mULi0h1WyC0UK/j7Hk8rZNCGLa13PnMaeaGr6Ae+h8N05opMMb9jp 4gWNxe3tA1ze0H36+Per0wOniwzEy7qnuvaJDjsufAQF5i3FU2GqjewKl+h0eAM4jntWyOY8/3n QeiyY2fpm9DxWbMXpg2oy+nENWDzeBMyEW4UhlqMXfqEHtKt/ZY1CMsF5PmTNagy3neucXeIbKj gLcgbK+WYUBdsCi4DSDIlEqedPsivUsHZO3UIieSQZNftK7ZsEMTkVbBFsuJM3t/ScSNj8U9MeC yd51ffCG6cZlWS7vejcHcIy+pccMQndX/X9QbDaRvkVH9ufJhJ3C0vj/wCcpxNQceJ7dSZgkVqc /VzcsYztyZVJUTTLFQJ/+vB+rJ4YK82aCUipR9qCY2lOsmSNPExsYQvWAchY4P17D8Q6EGbnF0f YgVg6FtENpmNAfTbnxEo1htRdtkGroKdEkvQ6Ih55R X-Received: by 2002:a17:902:ce0f:b0:2a0:97ea:b1bd with SMTP id d9443c01a7336-2a940f6184dmr82184545ad.0.1770425538551; Fri, 06 Feb 2026 16:52:18 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a9521b9bd1sm38242245ad.66.2026.02.06.16.52.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Feb 2026 16:52:18 -0800 (PST) Date: Sat, 07 Feb 2026 09:52:16 +0900 Message-ID: <eke7ecmx2x4v.wl-kobarity@HIDDEN> From: kobarity <kobarity@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native completion in python.el In-Reply-To: <86fr7dx1g6.fsf@HIDDEN> References: <eke7a4ykpjep.wl-kobarity@HIDDEN> <CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN> <eke78qdyq5ef.wl-kobarity@HIDDEN> <CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN> <eke78qdr2edy.wl-kobarity@HIDDEN> <eke7ldhl3lcs.wl-kobarity@HIDDEN> <CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN> <eke7jywx3lx0.wl-kobarity@HIDDEN> <CAOQTW-NnPKu-9ngc7VwAc0koOfN1GF4XZ-NoJDtDhnopnKDUkQ@HIDDEN> <eke7h5rw386q.wl-kobarity@HIDDEN> <86cy2jy2kd.fsf@HIDDEN> <CAOQTW-MN=Tpswrdc_Gzt_Loi=wo2xW8c51tiF4b2P0kdf5FS2g@HIDDEN> <eke7fr7d3n46.wl-kobarity@HIDDEN> <86fr7dx1g6.fsf@HIDDEN> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/31.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 80182 Cc: liuhui1610@HIDDEN, 80182 <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.0 (/) Eli Zaretskii wrote: > > From: kobarity <kobarity@HIDDEN> > > Cc: 80182 <at> debbugs.gnu.org > > > > > Thanks, I can reproduce it with Python 3.4 on Linux. The reason is the > > > breakpoint() function is added in Python 3.7, so the pdb should be > > > triggered in another way for old versions. I have updated the test. > > > > Since the Windows Python standard library does not include the > > readline module, `python-shell-pdb-1' should be skipped if only the > > standard library is used. Eli might be using a library like > > pyreadline or something similar. > > How can I tell whether pyreadline or something similar is being used? Try the following in the Python REPL: >>> import readline On Windows Python without third-party libraries, this will result in an error. Since `python-shell-pdb-1' is not skipped, it should succeed in your environment. You can check the library location as follows: >>> readline.__file__ Typically, third-party libraries are located in the site-packages folder. In the case of pyreadline, the beginning of that file looks like this: ---- # -*- coding: UTF-8 -*- #this file is needed in site-packages to emulate readline #necessary for rlcompleter since it relies on the existance #of a readline module from __future__ import print_function, unicode_literals, absolute_import from pyreadline.rlmain import Readline ---- Please note that I'm not recommending uninstalling pyreadline. Uninstalling it on Windows Python will prevent completion in Inferior Python.
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.Received: (at 80182) by debbugs.gnu.org; 6 Feb 2026 16:51:07 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 06 11:51:07 2026 Received: from localhost ([127.0.0.1]:55126 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1voP2x-0001lm-3t for submit <at> debbugs.gnu.org; Fri, 06 Feb 2026 11:51:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:33200) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1voP2v-0001lI-55 for 80182 <at> debbugs.gnu.org; Fri, 06 Feb 2026 11:51: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 1voP2n-0001ZT-Vj; Fri, 06 Feb 2026 11:50:59 -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=9zucQkONPzsSJTi6RpG3REpNlnxJPTi94d+EkgHFt0A=; b=XRjpqq0g9MP/ L2tmVgPHBiCBW7JQ6/mDc9OY1whxwKVmo2uYM4hj/tB8aCnSwZjRmVDthLucF2TWu3gzCMsT2xSKV pWM+NyrD1yDJ9M9pyhmZes4AKmDzRkdhBa6sOy0U+AFN/eryjb8orU3+Ovey/sLFE/uBz22v8nF77 CqJQLmkAtyzQcUogydQL/ixXCNKGfd1VE2kmdRLqpx4erEWQdXgjs80xupjeTk5xwsyucklj81+RN 50Y1/sO9k7sQXF32N0BsVa55ZWzMXCRANKe54KipAK8X+sjgrCj5iZtzcpVLAwzZAHTZKwTTsPfTU DI7Q8Gk8YkVAxFS1fT6HfQ==; Date: Fri, 06 Feb 2026 18:48:41 +0200 Message-Id: <86fr7dx1g6.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: kobarity <kobarity@HIDDEN> In-Reply-To: <eke7fr7d3n46.wl-kobarity@HIDDEN> (message from kobarity on Sat, 07 Feb 2026 00:31:05 +0900) Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native completion in python.el References: <eke7a4ykpjep.wl-kobarity@HIDDEN> <CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN> <eke78qdyq5ef.wl-kobarity@HIDDEN> <CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN> <eke78qdr2edy.wl-kobarity@HIDDEN> <eke7ldhl3lcs.wl-kobarity@HIDDEN> <CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN> <eke7jywx3lx0.wl-kobarity@HIDDEN> <CAOQTW-NnPKu-9ngc7VwAc0koOfN1GF4XZ-NoJDtDhnopnKDUkQ@HIDDEN> <eke7h5rw386q.wl-kobarity@HIDDEN> <86cy2jy2kd.fsf@HIDDEN> <CAOQTW-MN=Tpswrdc_Gzt_Loi=wo2xW8c51tiF4b2P0kdf5FS2g@HIDDEN> <eke7fr7d3n46.wl-kobarity@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 80182 Cc: liuhui1610@HIDDEN, 80182 <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: Sat, 07 Feb 2026 00:31:05 +0900 > From: kobarity <kobarity@HIDDEN> > Cc: 80182 <at> debbugs.gnu.org > > > Thanks, I can reproduce it with Python 3.4 on Linux. The reason is the > > breakpoint() function is added in Python 3.7, so the pdb should be > > triggered in another way for old versions. I have updated the test. > > Since the Windows Python standard library does not include the > readline module, `python-shell-pdb-1' should be skipped if only the > standard library is used. Eli might be using a library like > pyreadline or something similar. How can I tell whether pyreadline or something similar is being used?
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
Received: (at 80182) by debbugs.gnu.org; 6 Feb 2026 15:31:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 06 10:31:15 2026
Received: from localhost ([127.0.0.1]:54729 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1voNne-0006VD-Tt
for submit <at> debbugs.gnu.org; Fri, 06 Feb 2026 10:31:15 -0500
Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]:59636)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <kobarity@HIDDEN>)
id 1voNnY-0006Uy-MY
for 80182 <at> debbugs.gnu.org; Fri, 06 Feb 2026 10:31:12 -0500
Received: by mail-pf1-x435.google.com with SMTP id
d2e1a72fcca58-81f5381d168so2523076b3a.2
for <80182 <at> debbugs.gnu.org>; Fri, 06 Feb 2026 07:31:08 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1770391867; x=1770996667; darn=debbugs.gnu.org;
h=content-transfer-encoding:mime-version:user-agent:references
:in-reply-to:subject:cc:to:from:message-id:date:from:to:cc:subject
:date:message-id:reply-to;
bh=zH3hve9X6B+iCH5B3G5c2M7RJASfsW+z06I5K5qGZG8=;
b=lpUJ8bdrszA47ZZPQE59ztlijEpVWv0SGuFS1YM6GIevTASXu4OHX85KzxvVEtC2JG
vvgsX13Pgjkz0J6VdgSxdCf1ZjGNhL/LHv7HxG6ZuBz8ZeRSMpWLkvDncuRC/x3zNv2R
0qL3HsxVt60sD42MXL8dg3kvIWPdZbI2mCkinY8X5E/AzXO3dVXi9sZGUmISqvlEJeA2
ilqG/2es58p5Mx3nW98Ej3lVLOsD6NZcRzlg8HL2oMhoogAe5UqvdHcbOngfEB/dgCB2
bPHTGktDRfAGP90GGbxmC8Evei/DtpxhbvTRz6unFhwQN2fk/ynWD6mITKsoXfbSVslT
fR2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1770391867; x=1770996667;
h=content-transfer-encoding:mime-version:user-agent:references
:in-reply-to:subject:cc:to:from:message-id:date:x-gm-gg
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=zH3hve9X6B+iCH5B3G5c2M7RJASfsW+z06I5K5qGZG8=;
b=sut/1XvS0TPRcDptG2X6bt25R8R4ZbON2PKyrfvCcXsKpY54zte9qrV57puJBUFUAo
5zKj7eKhOCoXQwc04QfKCYCtzOC6rd19gqnK0FeJOtfcNfKnvPcDTYFEiy7iHbzVDFeI
55q8sMiUrD7iJNm0K6OhJcuGAReLmUVNWhBOa/NfWRB/FYfE6EwelQ/Lb3OuM/RnvPup
QhNMoL7ejv0AF+ZRZjtHp7dT6a4GzkoTumAkgTDjRcu7aYn3ZdmJIxHA1EvoGlOG884m
az2CIFydUU/3gxFdEYrS3qxlGMp5OGRFPWcyiLakcg+P2GrBQ73T0I5gTV7WJiShb720
CA/Q==
X-Gm-Message-State: AOJu0YxrMDbraVNSsnOmNyFn0VZcbzpioI020HDadcoOg/2toB8lOM1Z
7f0nCv5CC8J+qg0ypb3HImFUU0ePAdLHVONSEkMhrsFBaln7MoDW0ZPd
X-Gm-Gg: AZuq6aLuvavulZMUse0okkcKGzWZBqxB6LhNWmL/QYFHBfxOSziKzBWt4W0KYaQbcah
D0kNq1X5p++m4DzvAJukkJxfEZcfGiOPg9lord+rCQ6Z51RhU8XOLDPMN7K04iIW6c0T80kYuGU
cAF8Ag0FntdiNBVltSt9nTv/zguZcSJSyz0AXkAuCFjhxe6d6Qthk1OFyhMWJ1FuKxT6fVnhMSJ
WOZz8vnV0WsyhfcTFZtK6jd023d1HDFpdtM3Ey93apKwClb0QqzLURLELDpiqnEWlUKaQOSI2Qn
AoDoWzG5jeHmlKvF0GSNZh8Myi9zajA7iN2PmT/gLL9+TeuChHw4LgwPUzD1hEB1pHjKyx4HJFG
QQM+q+oHNwDtS1c/9QumNGmIp1yxMDohcNYdfD88zCKyuO4TQLf6Zm5ZqHyzfX7pE3YyvJyGQv9
lLCLfr8mG07+vgk0I3FlwWUvSsVYRubr+zW7veYpejHxqIJpHJd5Y=
X-Received: by 2002:a05:6a00:c82:b0:81f:5037:a316 with SMTP id
d2e1a72fcca58-82441778a14mr2862117b3a.63.1770391867265;
Fri, 06 Feb 2026 07:31:07 -0800 (PST)
Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161])
by smtp.gmail.com with ESMTPSA id
d2e1a72fcca58-8244168fdf5sm2895963b3a.17.2026.02.06.07.31.06
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Fri, 06 Feb 2026 07:31:06 -0800 (PST)
Date: Sat, 07 Feb 2026 00:31:05 +0900
Message-ID: <eke7fr7d3n46.wl-kobarity@HIDDEN>
From: kobarity <kobarity@HIDDEN>
To: Liu Hui <liuhui1610@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#80182: 31.0.50;
Issues and improvements regarding non-native completion in python.el
In-Reply-To: <CAOQTW-MN=Tpswrdc_Gzt_Loi=wo2xW8c51tiF4b2P0kdf5FS2g@HIDDEN>
References: <eke7a4ykpjep.wl-kobarity@HIDDEN>
<CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
<eke78qdyq5ef.wl-kobarity@HIDDEN>
<CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN>
<eke78qdr2edy.wl-kobarity@HIDDEN>
<eke7ldhl3lcs.wl-kobarity@HIDDEN>
<CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN>
<eke7jywx3lx0.wl-kobarity@HIDDEN>
<CAOQTW-NnPKu-9ngc7VwAc0koOfN1GF4XZ-NoJDtDhnopnKDUkQ@HIDDEN>
<eke7h5rw386q.wl-kobarity@HIDDEN> <86cy2jy2kd.fsf@HIDDEN>
<CAOQTW-MN=Tpswrdc_Gzt_Loi=wo2xW8c51tiF4b2P0kdf5FS2g@HIDDEN>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0
Emacs/31.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80182
Cc: 80182 <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.0 (/)
Liu Hui wrote:
> On Thu, Feb 5, 2026 at 5:14=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wrote:
> >
> > > Cc: 80182 <at> debbugs.gnu.org
> > > Date: Wed, 04 Feb 2026 23:16:45 +0900
> > > From: kobarity <kobarity@HIDDEN>
> > >
> > > Liu Hui wrote:
> > > >
> > > > OK, I have updated the patch.
> > >
> > > Thank you. I believe this is fine.
> >
> > Thanks. I have two comments on the last version of the patch:
> >
> > . since the value of 'python-shell-completion-setup-code' has
> > changed, we need a :version tag of that defcustom updated to "31.1"
>=20
> Added.
>=20
> > . the new test 'python-shell-pdb-1' fails here, see the error below
> >
> > Test python-shell-pdb-1 backtrace:
> > signal(ert-test-failed (((should (string=3D "next" (buffer-substrin=
g-n
> > ert-fail(((should (string=3D "next" (buffer-substring-no-properties=
(p
> > (if (unwind-protect (setq value-3659 (apply fn-3657 args-3658)) (set
> > (let (form-description-3661) (if (unwind-protect (setq value-3659 (a
> > (let ((value-3659 'ert-form-evaluation-aborted-3660)) (let (form-des
> > (let* ((fn-3657 #'string=3D) (args-3658 (condition-case err (list "=
nex
> > python-tests--pdb-1()
> > (save-current-buffer (set-buffer (process-buffer shell-process)) (le
> > (let ((shell-process (python-shell-get-process-or-error))) (save-cur
> > (let ((process-environment (copy-sequence process-environment))) (se
> > (progn (let ((process-environment (copy-sequence process-environment
> > (unwind-protect (progn (let ((process-environment (copy-sequence pro
> > (let* ((coding-system-for-write nil) (temp-file (file-name-as-direct
> > (unwind-protect (let* ((coding-system-for-write nil) (temp-file (fil
> > (let ((python-indent-guess-indent-offset nil) (python-shell-completi
> > (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c
> > (unwind-protect (progn (let ((python-indent-guess-indent-offset nil)
> > (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn
> > (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current
> > (let ((python-shell-interpreter (python-tests-get-shell-interpreter
> > (let ((inhibit-message t) (default-directory dir)) (write-region "de
> > (progn (let ((inhibit-message t) (default-directory dir)) (write-reg
> > (unwind-protect (progn (let ((inhibit-message t) (default-directory
> > (let* ((coding-system-for-write nil) (temp-file (file-name-as-direct
> > #f(lambda () [t] (let* ((coding-system-for-write nil) (temp-file (fi
> > #f(compiled-function () #<bytecode 0xb3e1be2617eb3c0>)()
> > handler-bind-1(#f(compiled-function () #<bytecode 0xb3e1be2617eb3c0>
> > ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
> > ert-run-test(#s(ert-test :name python-shell-pdb-1 :documentation "Ch
> > ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
> > ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
> > ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
> > ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
> > eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
> > command-line-1(("-L" ";." "-l" "ert" "--eval" "(setq treesit-extra-l
> > command-line()
> > normal-top-level()
> > Test python-shell-pdb-1 condition:
> > (ert-test-failed
> > ((should (string=3D "next" (buffer-substring-no-properties ... .=
..)))
> > :form (string=3D "next" "next(") :value nil :explanation
> > (arrays-of-different-length 4 5 "next" "next(" first-mismatch-a=
t 4)))
> > FAILED 314/373 python-shell-pdb-1 (0.208166 sec) at lisp/progmod=
es/python-tests.el:5140
> >
> > In case this matters, I have here Python 3.4.4 for MS-Windows, and all
> > the other python-tests pass.
>=20
> Thanks, I can reproduce it with Python 3.4 on Linux. The reason is the
> breakpoint() function is added in Python 3.7, so the pdb should be
> triggered in another way for old versions. I have updated the test.
Since the Windows Python standard library does not include the
readline module, `python-shell-pdb-1' should be skipped if only the
standard library is used. Eli might be using a library like
pyreadline or something similar.
In an environment where pyreadline3 was installed on Windows Python
3.12, `python-shell-pdb-1' failed. The contents of the Inferior
Python buffer was as follows:
Python 3.12.9 (tags/v3.12.9:fdb8142, Feb 4 2025, 15:27:58) [MSC v.1942 64 =
bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>>
> c:\users\kobarity\appdata\local\temp\emacs-test-bc4y5v-python\test1.py(3)=
f1()
-> x =3D 1
["0__dummy_completion__", "next", "1__dummy_completion__"]
(Pdb) nex=20
The problem seems to be avoided as follows:
modified test/lisp/progmodes/python-tests.el
@@ -5152,13 +5152,15 @@ python-shell-pdb-1
nil
"import abc
from test1 import f1
-f1()
"
(python-shell-send-buffer)
(python-shell-accept-process-output (python-shell-get-process))
(python-shell-with-shell-buffer
(skip-unless python-shell-readline-completer-delims)
(python-shell-completion-native-turn-off)
+ (insert "f1()")
+ (comint-send-input)
+ (python-shell-accept-process-output (python-shell-get-process))
(python-tests--pdb-1)
(insert "c")
(comint-send-input)
By the way, is "import abc" necessary?
To check whether something is completable in PDB, using "alias" or
similar might be more appropriate than "next". This is because "next"
is completable in both PDB and Python.
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
Received: (at 80182) by debbugs.gnu.org; 6 Feb 2026 04:23:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 05 23:23:58 2026
Received: from localhost ([127.0.0.1]:48982 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1voDNs-0007wA-Vd
for submit <at> debbugs.gnu.org; Thu, 05 Feb 2026 23:23:58 -0500
Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]:59394)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <liuhui1610@HIDDEN>)
id 1voDNo-0007vu-Ne
for 80182 <at> debbugs.gnu.org; Thu, 05 Feb 2026 23:23:55 -0500
Received: by mail-wr1-x430.google.com with SMTP id
ffacd0b85a97d-42fbbc3df8fso1263654f8f.2
for <80182 <at> debbugs.gnu.org>; Thu, 05 Feb 2026 20:23:52 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1770351831; cv=none;
d=google.com; s=arc-20240605;
b=HxiU1b/lYXVCiRYYDSrXK0JKL/cKi+YENWri633nr2KFywh+R/GUs1U7LbKh8n9cyb
oIugkamSX5vc0yHjsCX3vrhZ6n3WjYNA3A6HO04vHg46f+2Wtf/RqHxwyleAWyRArR//
DNFM7vboIEKxd7K+x4mSyT+eTqh3xHCSfX/0QOf0ALvFvhY1K9vYhvg043TUGsEaqMvu
XqKMHLMQ1r13sOTctri2dldySqhgTyf+TaK9wa6nARHe4TQarTzLhpSlUWju6Hgyuc2F
JXL4rszVYFOeyKxKgsEr8veWjM/qiCT+Ijwz+FQbzHPFVZifX5T7th26KRBsTfdxCHm4
ZxVQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
s=arc-20240605;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:dkim-signature;
bh=Bgz+ESp3p/Cwqe20bkAVgNweRgyQN5PmyaKpdp4cfd0=;
fh=LcaAH3s+Wzoprbevu82kRzbFaogAw7kdqZ3h/ioe64o=;
b=JOZ7Z8b1fc6d8rCP+xBcArIHRriMdTXplYH42ddPEwnwkFCHVT7CIgjz15ce2KpOnK
SY1f5BotZXU0IzJ44y3/IYPpyg0dLluO8C10V5PZySZ71Px8pN15ID8QoGUlMuGVXLcL
s3P79+TcceHGLb497ncFSgoRVmB7ldUKtqQa8dH5eDSI2+HFCdBjSmsMKwCu1qHFFmxR
PiP1thfytvUR6YsNufJP4S5GE00RQS92bSGEFios5sAEKm0s+e1szmcN1ONAWGx7K3Zi
2aC5RBEte1y2InyvWyglst9pZw7w34jtR9VDLRoy+JI8HL7av11/+N5BumTKYP2m9USJ
/5TA==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1770351831; x=1770956631; 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=Bgz+ESp3p/Cwqe20bkAVgNweRgyQN5PmyaKpdp4cfd0=;
b=eIRRt9pY4e7/rfSBOaPeUAlYD+gGMhYESOdm0Sd9cJvVovwNCkqPICcMB6LTHRug3B
rB8/CAbwoijLC3A1B2w2D+bhS+sUymvsGv1e8lylJ78sSZPiyD2iJg7aW2G36Hs2q0ZK
mu+nPXhklfv27VWG0GKsWSkoBwoVsxNxVd/b/6y6EcQobJTyBjW0Yt9p7Nlie46Jx6Tb
rp/GVej50xW6JLF1L+QmHuglDrOyaI0y/hfVM9W7SPJIOsBaIwwzUuv+wJb0D2SxrB5Z
U21b36u+PZ4Gj6RNa/IHsAZIesZc/j5EP6Jtns3ho1Lmn7GI+FA5izUHFzN6l9514/DG
pcAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1770351831; x=1770956631;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to;
bh=Bgz+ESp3p/Cwqe20bkAVgNweRgyQN5PmyaKpdp4cfd0=;
b=jhdIeN22KHuAkXeBY/drex3kVcpEturn2MEUvLYrj+1/ma0ybAzK0ptv2i3w75s5bB
TU6zl0+VHeitx9HhkjV2HVSQ0QyyxY8lJ5eoWO/093DoHP5CE3htU4Cz0LbmDvIIfxWK
XqmLYws1ITerSbUnyBbLpyKzAgt2VXCuf4Q1okewRK3mPwmYckgzG95Y/xC5g2T5jsZ9
cqD4L/+ScABuHM7oIw9iZwvR/XOgPcN4KLtLaLj+YedVg6+t3ZO+9QIf2oEfrcPImaHa
N06MME3inmlBdfaenxSht9pC/cARMj92jdnK8eu4uA3rglmhcJslJFd3RpLaAs/QmEFr
R4Rg==
X-Forwarded-Encrypted: i=1;
AJvYcCVIT9o/zOrcII/Z1TKSyjvQIvstk2RQrxtNvZINRR9rcgJl1UnNlkH3x7htjAYt1hklKRvXpQ==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyyvhI7Hq1b9HO2qD9IRGI/cDv/lyaAeK/0bqYgBPtR1KvzqNzN
1akHLoJZ3zabEiZ8PDNhHNC3Y83eoYe+fBUN62rgjWYEJYbx8jSRLiQYYGIlmmBFS0vGsMZ8kFx
BHRRULcQvR9gD8jp3hz8dtK/iAHygzk4=
X-Gm-Gg: AZuq6aI09+AIgqfQyWpr8D0nwTziXWmb2BLfxTauJavG/JkQNSefUTamtrtNECE1xTX
hGH/GL6KFx3uSTKZfBCBqDjqUM9C3oDVXdicQKxIsgN+PhXx8hSPj976QTeKWXGb9pMcffhJT7n
5bs4EWXFtE6ZWNfD/XM7s5G4ohjfOICSzaU8MJd2W85fuSTNpppYX5w4amjXHDv1cjvZZhVIruf
xm7F0p2aUtWo7wCjA0sNebTSHzUZ7f+saZSHKTmKdLtdQavfzs821NEabCv5bhq3ovB+i0=
X-Received: by 2002:a05:6000:4211:b0:432:586f:2a9d with SMTP id
ffacd0b85a97d-43629378440mr2191177f8f.32.1770351830857; Thu, 05 Feb 2026
20:23:50 -0800 (PST)
MIME-Version: 1.0
References: <eke7a4ykpjep.wl-kobarity@HIDDEN>
<CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
<eke78qdyq5ef.wl-kobarity@HIDDEN>
<CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN>
<eke78qdr2edy.wl-kobarity@HIDDEN> <eke7ldhl3lcs.wl-kobarity@HIDDEN>
<CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN>
<eke7jywx3lx0.wl-kobarity@HIDDEN>
<CAOQTW-NnPKu-9ngc7VwAc0koOfN1GF4XZ-NoJDtDhnopnKDUkQ@HIDDEN>
<eke7h5rw386q.wl-kobarity@HIDDEN> <86cy2jy2kd.fsf@HIDDEN>
In-Reply-To: <86cy2jy2kd.fsf@HIDDEN>
From: Liu Hui <liuhui1610@HIDDEN>
Date: Fri, 6 Feb 2026 12:23:38 +0800
X-Gm-Features: AZwV_QiXFNFCSSVskttFln9c8TldK6fvwejze0ObTJ1LRgFXrKJVmQjZCNmQyW4
Message-ID: <CAOQTW-MN=Tpswrdc_Gzt_Loi=wo2xW8c51tiF4b2P0kdf5FS2g@HIDDEN>
Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native
completion in python.el
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: multipart/mixed; boundary="00000000000001aa51064a20288c"
X-Spam-Score: 1.3 (+)
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: On Thu, Feb 5, 2026 at 5:14 PM Eli Zaretskii wrote: > >
> Cc: 80182 <at> debbugs.gnu.org > > Date: Wed, 04 Feb 2026 23:16:45 +0900 > >
From: kobarity > > > > Liu Hui wrote: > > > > > > OK, I have upd [...]
Content analysis details: (1.3 points, 10.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
-0.0 SPF_PASS SPF: sender matches SPF record
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
provider (liuhui1610[at]gmail.com)
1.0 FORGED_GMAIL_RCVD 'From' gmail.com does not match 'Received'
headers
0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends
in digit (liuhui1610[at]gmail.com)
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
no trust
[2a00:1450:4864:20:0:0:0:430 listed in]
[list.dnswl.org]
X-Debbugs-Envelope-To: 80182
Cc: kobarity <kobarity@HIDDEN>, 80182 <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.3 (/)
--00000000000001aa51064a20288c
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Thu, Feb 5, 2026 at 5:14=E2=80=AFPM Eli Zaretskii <eliz@HIDDEN> wrote:
>
> > Cc: 80182 <at> debbugs.gnu.org
> > Date: Wed, 04 Feb 2026 23:16:45 +0900
> > From: kobarity <kobarity@HIDDEN>
> >
> > Liu Hui wrote:
> > >
> > > OK, I have updated the patch.
> >
> > Thank you. I believe this is fine.
>
> Thanks. I have two comments on the last version of the patch:
>
> . since the value of 'python-shell-completion-setup-code' has
> changed, we need a :version tag of that defcustom updated to "31.1"
Added.
> . the new test 'python-shell-pdb-1' fails here, see the error below
>
> Test python-shell-pdb-1 backtrace:
> signal(ert-test-failed (((should (string=3D "next" (buffer-substring-=
n
> ert-fail(((should (string=3D "next" (buffer-substring-no-properties (=
p
> (if (unwind-protect (setq value-3659 (apply fn-3657 args-3658)) (set
> (let (form-description-3661) (if (unwind-protect (setq value-3659 (a
> (let ((value-3659 'ert-form-evaluation-aborted-3660)) (let (form-des
> (let* ((fn-3657 #'string=3D) (args-3658 (condition-case err (list "ne=
x
> python-tests--pdb-1()
> (save-current-buffer (set-buffer (process-buffer shell-process)) (le
> (let ((shell-process (python-shell-get-process-or-error))) (save-cur
> (let ((process-environment (copy-sequence process-environment))) (se
> (progn (let ((process-environment (copy-sequence process-environment
> (unwind-protect (progn (let ((process-environment (copy-sequence pro
> (let* ((coding-system-for-write nil) (temp-file (file-name-as-direct
> (unwind-protect (let* ((coding-system-for-write nil) (temp-file (fil
> (let ((python-indent-guess-indent-offset nil) (python-shell-completi
> (progn (let ((python-indent-guess-indent-offset nil) (python-shell-c
> (unwind-protect (progn (let ((python-indent-guess-indent-offset nil)
> (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn
> (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current
> (let ((python-shell-interpreter (python-tests-get-shell-interpreter
> (let ((inhibit-message t) (default-directory dir)) (write-region "de
> (progn (let ((inhibit-message t) (default-directory dir)) (write-reg
> (unwind-protect (progn (let ((inhibit-message t) (default-directory
> (let* ((coding-system-for-write nil) (temp-file (file-name-as-direct
> #f(lambda () [t] (let* ((coding-system-for-write nil) (temp-file (fi
> #f(compiled-function () #<bytecode 0xb3e1be2617eb3c0>)()
> handler-bind-1(#f(compiled-function () #<bytecode 0xb3e1be2617eb3c0>
> ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
> ert-run-test(#s(ert-test :name python-shell-pdb-1 :documentation "Ch
> ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
> ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
> ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
> ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
> eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
> command-line-1(("-L" ";." "-l" "ert" "--eval" "(setq treesit-extra-l
> command-line()
> normal-top-level()
> Test python-shell-pdb-1 condition:
> (ert-test-failed
> ((should (string=3D "next" (buffer-substring-no-properties ... ...=
)))
> :form (string=3D "next" "next(") :value nil :explanation
> (arrays-of-different-length 4 5 "next" "next(" first-mismatch-at =
4)))
> FAILED 314/373 python-shell-pdb-1 (0.208166 sec) at lisp/progmodes=
/python-tests.el:5140
>
> In case this matters, I have here Python 3.4.4 for MS-Windows, and all
> the other python-tests pass.
Thanks, I can reproduce it with Python 3.4 on Linux. The reason is the
breakpoint() function is added in Python 3.7, so the pdb should be
triggered in another way for old versions. I have updated the test.
--00000000000001aa51064a20288c
Content-Type: text/x-patch; charset="US-ASCII";
name="0001-Use-a-custom-Pdb-class-in-the-Python-shell.patch"
Content-Disposition: attachment;
filename="0001-Use-a-custom-Pdb-class-in-the-Python-shell.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mladqqwt0>
X-Attachment-Id: f_mladqqwt0
RnJvbSBiYzEzYmZjZTIxZWY1MjQ0ZTZlZmY4MjUxMmRhZTZiOTU5MWMxNjNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog
RnJpLCAzMCBKYW4gMjAyNiAxODoxMDozMCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFVzZSBhIGN1
c3RvbSBQZGIgY2xhc3MgaW4gdGhlIFB5dGhvbiBzaGVsbAoKVGhlIGN1c3RvbSBQZGIgY2xhc3Mg
ZW5hYmxlcyBuYXRpdmUgY29tcGxldGlvbiBpbiBwZGIgYnkKd3JhcHBpbmcgdGhlIHBkYidzIG5h
dGl2ZSBjb21wbGV0ZXIuICBJdCBhbHNvIG1ha2VzIG5lY2Vzc2FyeQpmdW5jdGlvbiBkZWZpbml0
aW9ucyBsaWtlIF9fUFlUSE9OX0VMXyogYXZhaWxhYmxlIGJldHdlZW4gcGRiCmZyYW1lcywgYW5k
IGVuYWJsZXMgbm9uLW5hdGl2ZSBjb21wbGV0aW9uL2ZmYXAvZWxkb2MKZnVuY3Rpb25hbGl0aWVz
IHdoZW4gZGVidWdnaW5nIGluc2lkZSBweXRob24gbW9kdWxlcy4KCiogbGlzcC9wcm9nbW9kZXMv
cHl0aG9uLmVsIChweXRob24tc2hlbGwtc2VuZC1zZXR1cC1jb2RlKTogRml4CnRoZSBzZXBhcmF0
b3IgYmV0d2VlbiBweXRob24tc2hlbGwtc2V0dXAtY29kZXMuCihweXRob24tc2hlbGwtY29tcGxl
dGlvbi1uYXRpdmUtc2V0dXApOiBNb3ZlIGNvbW1vbiBjb21wbGV0aW9uCnNldHVwIGNvZGUgLi4u
CihweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlKTogLi4uIGhlcmUuCihweXRob24t
c2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCk6IEVuYWJsZSBuYXRpdmUgY29tcGxldGlvbiBmb3IK
cGRiIGFuZCByZXNwZWN0IHRoZSBkZWxpbWl0ZXIgb2YgcGRiIGNvbXBsZXRlci4KKHB5dGhvbi1z
aGVsbC1wZGItc2V0dXAtY29kZSk6IE5ldyB2YXJpYWJsZS4KKHB5dGhvbi1zaGVsbC1jb21pbnQt
d2F0Y2gtZm9yLWZpcnN0LXByb21wdC1vdXRwdXQtZmlsdGVyKTogU2VuZApzZXR1cCBjb2RlcyBv
bmx5IG9uY2UuCihweXRob24tZmZhcC1tb2R1bGUtcGF0aCwgcHl0aG9uLWVsZG9jLS1nZXQtZG9j
LWF0LXBvaW50KTogU3RvcApzZW5kaW5nIHNldHVwIGNvZGUgaW4gZXZlcnkgZnVuY3Rpb24gY2Fs
bC4KKiB0ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCAocHl0aG9uLXRlc3RzLS1w
ZGItMSkKKHB5dGhvbi1zaGVsbC1wZGItMSk6IE5ldyB0ZXN0LgoqIGV0Yy9ORVdTOiBNZW50aW9u
IHRoZSBjaGFuZ2UuICAoYnVnIzgwMTgyKQotLS0KIGV0Yy9ORVdTICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICA1ICsKIGxpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCAgICAgICAgICAgIHwg
MjgyICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIHRlc3QvbGlzcC9wcm9nbW9kZXMvcHl0
aG9uLXRlc3RzLmVsIHwgIDQ0ICsrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDIwNCBpbnNlcnRpb25z
KCspLCAxMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwpp
bmRleCA2NWM4YzYyZGVjNS4uNzliOGUzNzUzM2UgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBi
L2V0Yy9ORVdTCkBAIC0yNDkwLDYgKzI0OTAsMTEgQEAgV2hlbiBwb2ludCBpcyBiZXR3ZWVuIGlu
ZGVudGF0aW9uLCB0aGUgY29tbWFuZAogZGVsZXRlcyB0aGUgdGV4dCBpbiB0aGUgcmVnaW9uIGFu
ZCBkZWFjdGl2YXRlcyB0aGUgbWFyayBpZiBUcmFuc2llbnQKIE1hcmsgbW9kZSBpcyBlbmFibGVk
LCB0aGUgbWFyayBpcyBhY3RpdmUsIGFuZCBwcmVmaXggYXJndW1lbnQgaXMgMS4KIAorLS0tCisq
KiogVGhlIGRlZmF1bHQgdmFsdWUgb2YgJ3B5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNv
ZGUnIGlzIGNoYW5nZWQuCitBIG5ldyBmdW5jdGlvbiBpcyBhZGRlZCB0byB0aGUgc2V0dXAgY29k
ZS4gIFVzZXJzIHdobyBtb2RpZnkgdGhpcyBvcHRpb24KK21heSBuZWVkIHRvIHVwZGF0ZSB0aGUg
dmFsdWUgZm9yIHRoZSBQeXRob24gc2hlbGwgY29tcGxldGlvbiB0byB3b3JrLgorCiAqKiBUbW0g
TWVudWJhcgogCiAtLS0KZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCBiL2xp
c3AvcHJvZ21vZGVzL3B5dGhvbi5lbAppbmRleCBiNjk4MWM5MTU2Yy4uZmRjZWY5M2M2NzEgMTAw
NjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9w
eXRob24uZWwKQEAgLTM3MzksMTEgKzM3MzksMTggQEAgcHl0aG9uLXNoZWxsLWNvbWludC13YXRj
aC1mb3ItZmlyc3QtcHJvbXB0LW91dHB1dC1maWx0ZXIKICAgICAgICAgICAgICAgICAgICAgICAo
Zm9ybWF0ICJleGVjKCVzKVxuIiAocHl0aG9uLXNoZWxsLS1lbmNvZGUtc3RyaW5nIHN0cmluZykp
KSkpKQogICAgICAgICAgIDs7IEJvb3RzdHJhcDogdGhlIG5vcm1hbCBkZWZpbml0aW9uIG9mIGBw
eXRob24tc2hlbGwtc2VuZC1zdHJpbmcnCiAgICAgICAgICAgOzsgZGVwZW5kcyBvbiB0aGUgUHl0
aG9uIGNvZGUgc2VudCBoZXJlLgotICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmct
bm8tb3V0cHV0IHB5dGhvbi1zaGVsbC1zZXR1cC1jb2RlKQogICAgICAgICAgIChweXRob24tc2hl
bGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0IHB5dGhvbi1zaGVsbC1ldmFsLXNldHVwLWNvZGUpCiAg
ICAgICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1vdXRwdXQgcHl0aG9uLXNoZWxs
LWV2YWwtZmlsZS1zZXR1cC1jb2RlKSkKICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKGN1
cnJlbnQtYnVmZmVyKQogICAgICAgICAgIChsZXQgKChpbmhpYml0LXF1aXQgbmlsKSkKKyAgICAg
ICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmcKKyAgICAgICAgICAgICAobWFwY29uY2F0
ICMnc3ltYm9sLXZhbHVlICcocHl0aG9uLXNoZWxsLXNldHVwLWNvZGUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAt
Y29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob24tc2hl
bGwtcGRiLXNldHVwLWNvZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHl0aG9uLWZmYXAtc2V0dXAtY29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBweXRob24tZWxkb2Mtc2V0dXAtY29kZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJcbiIpKQorICAgICAgICAgICAgKHB5dGhvbi1zaGVsbC1hY2NlcHQtcHJvY2Vzcy1vdXRw
dXQgKHB5dGhvbi1zaGVsbC1nZXQtcHJvY2VzcykpCiAgICAgICAgICAgICAocHl0aG9uLXNoZWxs
LXJlYWRsaW5lLWRldGVjdCkKICAgICAgICAgICAgIChydW4taG9va3MgJ3B5dGhvbi1zaGVsbC1m
aXJzdC1wcm9tcHQtaG9vaykpKSkpKQogICBvdXRwdXQpCkBAIC00NDU1LDcgKzQ0NjIsOCBAQCBw
eXRob24tc2hlbGwtc2VuZC1zZXR1cC1jb2RlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgo
c3ltYm9scCBlbHQpIChzeW1ib2wtdmFsdWUgZWx0KSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHQgIiIpKSkKICAgICAgICAgICAgICAgICAgIHB5dGhvbi1zaGVsbC1zZXR1cC1jb2Rlcwot
ICAgICAgICAgICAgICAgICAgIlxuXG5wcmludCAoJ3B5dGhvbi5lbDogc2VudCBzZXR1cCBjb2Rl
JykiKSkpKQorICAgICAgICAgICAgICAgICAgIlxuIikKKyAgICAgICAgICAgICAgICAgIlxucHJp
bnQgKCdweXRob24uZWw6IHNlbnQgc2V0dXAgY29kZScpIikpKQogICAgICAgKHB5dGhvbi1zaGVs
bC1zZW5kLXN0cmluZyBjb2RlIHByb2Nlc3MpCiAgICAgICAocHl0aG9uLXNoZWxsLWFjY2VwdC1w
cm9jZXNzLW91dHB1dCBwcm9jZXNzKSkpKQogCkBAIC00NTI5LDE2ICs0NTM3LDgyIEBAIHB5dGhv
bi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAgICBmaW5hbGx5OgogICAgICAgICBpZiBn
ZXRhdHRyKGNvbXBsZXRlciwgJ1BZVEhPTl9FTF9XUkFQUEVEJywgRmFsc2UpOgogICAgICAgICAg
ICAgY29tcGxldGVyLnByaW50X21vZGUgPSBUcnVlCi0gICAgcmV0dXJuIGpzb24uZHVtcHMoY29t
cGxldGlvbnMpIgotICAiQ29kZSB1c2VkIHRvIHNldHVwIGNvbXBsZXRpb24gaW4gaW5mZXJpb3Ig
UHl0aG9uIHByb2Nlc3Nlcy4iCi0gIDp0eXBlICdzdHJpbmcpCisgICAgcmV0dXJuIGpzb24uZHVt
cHMoY29tcGxldGlvbnMpCisKK2RlZiBfX1BZVEhPTl9FTF93cmFwX2NvbXBsZXRlcigpOgorICAg
IGltcG9ydCByZWFkbGluZQorICAgIGNvbXBsZXRlciA9IHJlYWRsaW5lLmdldF9jb21wbGV0ZXIo
KQogCi0oZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2VuZC1zZXR1cC1jb2RlICgpCi0g
ICJTZW5kIGBweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlJyB0byBpbmZlcmlvciBQ
eXRob24gcHJvY2Vzcy4iCi0gIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0IHB5
dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUpKQorICAgIGlmIG5vdCBjb21wbGV0ZXI6
CisgICAgICAgICMgVXNlZCBhcyBsYXN0IHJlc29ydCB0byBhdm9pZCBicmVha2luZyBjdXN0b21p
emF0aW9ucy4KKyAgICAgICAgaW1wb3J0IHJsY29tcGxldGVyCisgICAgICAgIGNvbXBsZXRlciA9
IHJlYWRsaW5lLmdldF9jb21wbGV0ZXIoKQogCi0oYWRkLWhvb2sgJ3B5dGhvbi1zaGVsbC1maXJz
dC1wcm9tcHQtaG9vawotICAgICAgICAgICMncHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2VuZC1z
ZXR1cC1jb2RlKQorICAgIGlmIGNvbXBsZXRlciBhbmQgbm90IGdldGF0dHIoY29tcGxldGVyLCAn
UFlUSE9OX0VMX1dSQVBQRUQnLCBGYWxzZSk6CisgICAgICAgIGNsYXNzIF9fUFlUSE9OX0VMX0Nv
bXBsZXRlcjoKKyAgICAgICAgICAgICcnJ0NvbXBsZXRlciB3cmFwcGVyIHRoYXQgcHJpbnRzIGNh
bmRpZGF0ZXMgdG8gc3Rkb3V0LgorCisgICAgICAgICAgICBJdCB3cmFwcyBhbiBleGlzdGluZyBj
b21wbGV0ZXIgZnVuY3Rpb24gYW5kIGNoYW5nZXMgaXRzIGJlaGF2aW9yIHNvCisgICAgICAgICAg
ICB0aGF0IHRoZSB1c2VyIGlucHV0IGlzIHVuY2hhbmdlZCBhbmQgcmVhbCBjYW5kaWRhdGVzIGFy
ZSBwcmludGVkIHRvCisgICAgICAgICAgICBzdGRvdXQuCisKKyAgICAgICAgICAgIFJldHVybmVk
IGNhbmRpZGF0ZXMgYXJlICcwX19kdW1teV9jb21wbGV0aW9uX18nIGFuZAorICAgICAgICAgICAg
JzFfX2R1bW15X2NvbXBsZXRpb25fXycgaW4gdGhhdCBvcmRlciAoJzBfX2R1bW15X2NvbXBsZXRp
b25fXycgaXMKKyAgICAgICAgICAgIHJldHVybmVkIHJlcGVhdGVkbHkgdW50aWwgYWxsIHBvc3Np
YmxlIGNhbmRpZGF0ZXMgYXJlIGNvbnN1bWVkKS4KKworICAgICAgICAgICAgVGhlIHJlYWwgY2Fu
ZGlkYXRlcyBhcmUgcHJpbnRlZCB0byBzdGRvdXQgc28gdGhhdCB0aGV5IGNhbiBiZQorICAgICAg
ICAgICAgZWFzaWx5IHJldHJpZXZlZCB0aHJvdWdoIGNvbWludCBvdXRwdXQgcmVkaXJlY3QgdHJp
Y2tlcnkuCisgICAgICAgICAgICAnJycKKworICAgICAgICAgICAgUFlUSE9OX0VMX1dSQVBQRUQg
PSBUcnVlCisKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb21wbGV0ZXIpOgorICAg
ICAgICAgICAgICAgIHNlbGYuY29tcGxldGVyID0gY29tcGxldGVyCisgICAgICAgICAgICAgICAg
c2VsZi5sYXN0X2NvbXBsZXRpb24gPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5wcmludF9t
b2RlID0gVHJ1ZQorCisgICAgICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgdGV4dCwgc3RhdGUp
OgorICAgICAgICAgICAgICAgIGlmIHN0YXRlID09IDA6CisgICAgICAgICAgICAgICAgICAgICMg
U2V0IHRoZSBmaXJzdCBkdW1teSBjb21wbGV0aW9uLgorICAgICAgICAgICAgICAgICAgICBzZWxm
Lmxhc3RfY29tcGxldGlvbiA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbiA9
ICcwX19kdW1teV9jb21wbGV0aW9uX18nCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICAgICAgY29tcGxldGlvbiA9IHNlbGYuY29tcGxldGVyKHRleHQsIHN0YXRlIC0gMSkK
KworICAgICAgICAgICAgICAgIGlmIG5vdCBjb21wbGV0aW9uOgorICAgICAgICAgICAgICAgICAg
ICBpZiBzZWxmLmxhc3RfY29tcGxldGlvbiAhPSAnMV9fZHVtbXlfY29tcGxldGlvbl9fJzoKKyAg
ICAgICAgICAgICAgICAgICAgICAgICMgV2hlbiBubyBtb3JlIGNvbXBsZXRpb25zIGFyZSBhdmFp
bGFibGUsIHJldHVybmluZyBhCisgICAgICAgICAgICAgICAgICAgICAgICAjIGR1bW15IHdpdGgg
bm9uLXNoYXJpbmcgcHJlZml4IGFsbG93IGVuc3VyaW5nIG91dHB1dAorICAgICAgICAgICAgICAg
ICAgICAgICAgIyB3aGlsZSBwcmV2ZW50aW5nIGNoYW5nZXMgdG8gY3VycmVudCBpbnB1dC4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICMgQ29pbmNpZGVudGFsbHkgaXQncyBhbHNvIHRoZSBlbmQg
b2Ygb3V0cHV0LgorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbiA9ICcxX19kdW1t
eV9jb21wbGV0aW9uX18nCisgICAgICAgICAgICAgICAgZWxpZiBjb21wbGV0aW9uLmVuZHN3aXRo
KCcoJyk6CisgICAgICAgICAgICAgICAgICAgICMgUmVtb3ZlIHBhcmVucyBvbiBjYWxsYWJsZXMg
YXMgaXQgYnJlYWtzIGNvbXBsZXRpb24gb24KKyAgICAgICAgICAgICAgICAgICAgIyBhcmd1bWVu
dHMgKGUuZy4gc3RyKEFyaTx0YWI+KSkuCisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb24g
PSBjb21wbGV0aW9uWzotMV0KKyAgICAgICAgICAgICAgICBzZWxmLmxhc3RfY29tcGxldGlvbiA9
IGNvbXBsZXRpb24KKworICAgICAgICAgICAgICAgIGlmIGNvbXBsZXRpb24gaW4gKAorICAgICAg
ICAgICAgICAgICAgICAgICAgJzBfX2R1bW15X2NvbXBsZXRpb25fXycsICcxX19kdW1teV9jb21w
bGV0aW9uX18nKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24KKyAgICAg
ICAgICAgICAgICBlbGlmIGNvbXBsZXRpb246CisgICAgICAgICAgICAgICAgICAgICMgRm9yIGV2
ZXJ5IG5vbi1kdW1teSBjb21wbGV0aW9uLCByZXR1cm4gYSByZXBlYXRlZCBkdW1teQorICAgICAg
ICAgICAgICAgICAgICAjIG9uZSBhbmQgcHJpbnQgdGhlIHJlYWwgY2FuZGlkYXRlIHNvIGl0IGNh
biBiZSByZXRyaWV2ZWQKKyAgICAgICAgICAgICAgICAgICAgIyBieSBjb21pbnQgb3V0cHV0IGZp
bHRlcnMuCisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYucHJpbnRfbW9kZToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50IChjb21wbGV0aW9uKQorICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICcwX19kdW1teV9jb21wbGV0aW9uX18nCisgICAgICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbgorICAgICAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uCisKKyAg
ICAgICAgIyBXcmFwIHRoZSBleGlzdGluZyBjb21wbGV0ZXIgZnVuY3Rpb24gb25seSBvbmNlLgor
ICAgICAgICBuZXdfY29tcGxldGVyID0gX19QWVRIT05fRUxfQ29tcGxldGVyKGNvbXBsZXRlcikK
KyAgICAgICAgcmVhZGxpbmUuc2V0X2NvbXBsZXRlcihuZXdfY29tcGxldGVyKSIKKyAgIkNvZGUg
dXNlZCB0byBzZXR1cCBjb21wbGV0aW9uIGluIGluZmVyaW9yIFB5dGhvbiBwcm9jZXNzZXMuIgor
ICA6dHlwZSAnc3RyaW5nCisgIDp2ZXJzaW9uICIzMS4xIikKIAogKGRlZmluZS1vYnNvbGV0ZS12
YXJpYWJsZS1hbGlhcwogICAncHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbW9kdWxlLXN0cmluZy1j
b2RlCkBAIC00NjI0LDEwMyArNDY5OCwxNiBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1uYXRp
dmUtc2V0dXAKIGRlZiBfX1BZVEhPTl9FTF9uYXRpdmVfY29tcGxldGlvbl9zZXR1cCgpOgogICAg
IHRyeToKICAgICAgICAgaW1wb3J0IHJlYWRsaW5lCisgICAgICAgIF9fUFlUSE9OX0VMX3dyYXBf
Y29tcGxldGVyKCkKIAorICAgICAgICAjIEVuc3VyZSB0aGF0IHJsY29tcGxldGVyLl9fbWFpbl9f
IGFuZCBfX21haW5fXyBhcmUgaWRlbnRpY2FsLgorICAgICAgICAjIChCdWcjNzYyMDUpCisgICAg
ICAgIGltcG9ydCBzeXMKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW1wb3J0IF9fYnVpbHRp
bl9fCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgICMgUHl0aG9uIDMK
LSAgICAgICAgICAgIGltcG9ydCBidWlsdGlucyBhcyBfX2J1aWx0aW5fXwotCi0gICAgICAgIGJ1
aWx0aW5zID0gZGlyKF9fYnVpbHRpbl9fKQotICAgICAgICBpc19pcHl0aG9uID0gKCdfX0lQWVRI
T05fXycgaW4gYnVpbHRpbnMgb3IKLSAgICAgICAgICAgICAgICAgICAgICAnX19JUFlUSE9OX19h
Y3RpdmUnIGluIGJ1aWx0aW5zKQotCi0gICAgICAgIGNsYXNzIF9fUFlUSE9OX0VMX0NvbXBsZXRl
cjoKLSAgICAgICAgICAgICcnJ0NvbXBsZXRlciB3cmFwcGVyIHRoYXQgcHJpbnRzIGNhbmRpZGF0
ZXMgdG8gc3Rkb3V0LgotCi0gICAgICAgICAgICBJdCB3cmFwcyBhbiBleGlzdGluZyBjb21wbGV0
ZXIgZnVuY3Rpb24gYW5kIGNoYW5nZXMgaXRzIGJlaGF2aW9yIHNvCi0gICAgICAgICAgICB0aGF0
IHRoZSB1c2VyIGlucHV0IGlzIHVuY2hhbmdlZCBhbmQgcmVhbCBjYW5kaWRhdGVzIGFyZSBwcmlu
dGVkIHRvCi0gICAgICAgICAgICBzdGRvdXQuCi0KLSAgICAgICAgICAgIFJldHVybmVkIGNhbmRp
ZGF0ZXMgYXJlICcwX19kdW1teV9jb21wbGV0aW9uX18nIGFuZAotICAgICAgICAgICAgJzFfX2R1
bW15X2NvbXBsZXRpb25fXycgaW4gdGhhdCBvcmRlciAoJzBfX2R1bW15X2NvbXBsZXRpb25fXycg
aXMKLSAgICAgICAgICAgIHJldHVybmVkIHJlcGVhdGVkbHkgdW50aWwgYWxsIHBvc3NpYmxlIGNh
bmRpZGF0ZXMgYXJlIGNvbnN1bWVkKS4KLQotICAgICAgICAgICAgVGhlIHJlYWwgY2FuZGlkYXRl
cyBhcmUgcHJpbnRlZCB0byBzdGRvdXQgc28gdGhhdCB0aGV5IGNhbiBiZQotICAgICAgICAgICAg
ZWFzaWx5IHJldHJpZXZlZCB0aHJvdWdoIGNvbWludCBvdXRwdXQgcmVkaXJlY3QgdHJpY2tlcnku
Ci0gICAgICAgICAgICAnJycKLQotICAgICAgICAgICAgUFlUSE9OX0VMX1dSQVBQRUQgPSBUcnVl
Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb21wbGV0ZXIpOgotICAgICAgICAg
ICAgICAgIHNlbGYuY29tcGxldGVyID0gY29tcGxldGVyCi0gICAgICAgICAgICAgICAgc2VsZi5s
YXN0X2NvbXBsZXRpb24gPSBOb25lCi0gICAgICAgICAgICAgICAgc2VsZi5wcmludF9tb2RlID0g
VHJ1ZQotCi0gICAgICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgdGV4dCwgc3RhdGUpOgotICAg
ICAgICAgICAgICAgIGlmIHN0YXRlID09IDA6Ci0gICAgICAgICAgICAgICAgICAgICMgU2V0IHRo
ZSBmaXJzdCBkdW1teSBjb21wbGV0aW9uLgotICAgICAgICAgICAgICAgICAgICBzZWxmLmxhc3Rf
Y29tcGxldGlvbiA9IE5vbmUKLSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbiA9ICcwX19k
dW1teV9jb21wbGV0aW9uX18nCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICAgICAgY29tcGxldGlvbiA9IHNlbGYuY29tcGxldGVyKHRleHQsIHN0YXRlIC0gMSkKLQotICAg
ICAgICAgICAgICAgIGlmIG5vdCBjb21wbGV0aW9uOgotICAgICAgICAgICAgICAgICAgICBpZiBz
ZWxmLmxhc3RfY29tcGxldGlvbiAhPSAnMV9fZHVtbXlfY29tcGxldGlvbl9fJzoKLSAgICAgICAg
ICAgICAgICAgICAgICAgICMgV2hlbiBubyBtb3JlIGNvbXBsZXRpb25zIGFyZSBhdmFpbGFibGUs
IHJldHVybmluZyBhCi0gICAgICAgICAgICAgICAgICAgICAgICAjIGR1bW15IHdpdGggbm9uLXNo
YXJpbmcgcHJlZml4IGFsbG93IGVuc3VyaW5nIG91dHB1dAotICAgICAgICAgICAgICAgICAgICAg
ICAgIyB3aGlsZSBwcmV2ZW50aW5nIGNoYW5nZXMgdG8gY3VycmVudCBpbnB1dC4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICMgQ29pbmNpZGVudGFsbHkgaXQncyBhbHNvIHRoZSBlbmQgb2Ygb3V0
cHV0LgotICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbiA9ICcxX19kdW1teV9jb21w
bGV0aW9uX18nCi0gICAgICAgICAgICAgICAgZWxpZiBjb21wbGV0aW9uLmVuZHN3aXRoKCcoJyk6
Ci0gICAgICAgICAgICAgICAgICAgICMgUmVtb3ZlIHBhcmVucyBvbiBjYWxsYWJsZXMgYXMgaXQg
YnJlYWtzIGNvbXBsZXRpb24gb24KLSAgICAgICAgICAgICAgICAgICAgIyBhcmd1bWVudHMgKGUu
Zy4gc3RyKEFyaTx0YWI+KSkuCi0gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb24gPSBjb21w
bGV0aW9uWzotMV0KLSAgICAgICAgICAgICAgICBzZWxmLmxhc3RfY29tcGxldGlvbiA9IGNvbXBs
ZXRpb24KLQotICAgICAgICAgICAgICAgIGlmIGNvbXBsZXRpb24gaW4gKAotICAgICAgICAgICAg
ICAgICAgICAgICAgJzBfX2R1bW15X2NvbXBsZXRpb25fXycsICcxX19kdW1teV9jb21wbGV0aW9u
X18nKToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24KLSAgICAgICAgICAg
ICAgICBlbGlmIGNvbXBsZXRpb246Ci0gICAgICAgICAgICAgICAgICAgICMgRm9yIGV2ZXJ5IG5v
bi1kdW1teSBjb21wbGV0aW9uLCByZXR1cm4gYSByZXBlYXRlZCBkdW1teQotICAgICAgICAgICAg
ICAgICAgICAjIG9uZSBhbmQgcHJpbnQgdGhlIHJlYWwgY2FuZGlkYXRlIHNvIGl0IGNhbiBiZSBy
ZXRyaWV2ZWQKLSAgICAgICAgICAgICAgICAgICAgIyBieSBjb21pbnQgb3V0cHV0IGZpbHRlcnMu
Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYucHJpbnRfbW9kZToKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHByaW50IChjb21wbGV0aW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuICcwX19kdW1teV9jb21wbGV0aW9uX18nCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbgotICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uCi0KLSAgICAgICAg
Y29tcGxldGVyID0gcmVhZGxpbmUuZ2V0X2NvbXBsZXRlcigpCi0KLSAgICAgICAgaWYgbm90IGNv
bXBsZXRlcjoKLSAgICAgICAgICAgICMgVXNlZCBhcyBsYXN0IHJlc29ydCB0byBhdm9pZCBicmVh
a2luZyBjdXN0b21pemF0aW9ucy4KLSAgICAgICAgICAgIGltcG9ydCBybGNvbXBsZXRlcgotICAg
ICAgICAgICAgY29tcGxldGVyID0gcmVhZGxpbmUuZ2V0X2NvbXBsZXRlcigpCi0KLSAgICAgICAg
aWYgY29tcGxldGVyIGFuZCBub3QgZ2V0YXR0cihjb21wbGV0ZXIsICdQWVRIT05fRUxfV1JBUFBF
RCcsIEZhbHNlKToKLSAgICAgICAgICAgICMgV3JhcCB0aGUgZXhpc3RpbmcgY29tcGxldGVyIGZ1
bmN0aW9uIG9ubHkgb25jZS4KLSAgICAgICAgICAgIG5ld19jb21wbGV0ZXIgPSBfX1BZVEhPTl9F
TF9Db21wbGV0ZXIoY29tcGxldGVyKQotICAgICAgICAgICAgaWYgbm90IGlzX2lweXRob246Ci0g
ICAgICAgICAgICAgICAgcmVhZGxpbmUuc2V0X2NvbXBsZXRlcihuZXdfY29tcGxldGVyKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIEVuc3VyZSB0aGF0IHJsY29tcGxldGVy
Ll9fbWFpbl9fIGFuZCBfX21haW5fXyBhcmUgaWRlbnRpY2FsLgotICAgICAgICAgICAgICAgICMg
KEJ1ZyM3NjIwNSkKLSAgICAgICAgICAgICAgICBpbXBvcnQgc3lzCi0gICAgICAgICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgICAgICAgICBzeXMubW9kdWxlc1sncmxjb21wbGV0ZXInXS5fX21h
aW5fXyA9IHN5cy5tb2R1bGVzWydfX21haW5fXyddCi0gICAgICAgICAgICAgICAgZXhjZXB0IEtl
eUVycm9yOgotICAgICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICAgICAgIyBUcnkg
Ym90aCBpbml0aWFsaXphdGlvbnMgdG8gY29wZSB3aXRoIGFsbCBJUHl0aG9uIHZlcnNpb25zLgot
ICAgICAgICAgICAgICAgICMgVGhpcyB3b3JrcyBmaW5lIGZvciBJUHl0aG9uIDMueCBidXQgbm90
IGZvciBlYXJsaWVyOgotICAgICAgICAgICAgICAgIHJlYWRsaW5lLnNldF9jb21wbGV0ZXIobmV3
X2NvbXBsZXRlcikKLSAgICAgICAgICAgICAgICAjIElQeXRob248MyBoYWNrcyByZWFkbGluZSBz
dWNoIHRoYXQgYHJlYWRsaW5lLnNldF9jb21wbGV0ZXJgCi0gICAgICAgICAgICAgICAgIyB3b24n
dCB3b3JrLiAgVGhpcyB3b3JrYXJvdW5kIGluamVjdHMgdGhlIG5ldyBjb21wbGV0ZXIKLSAgICAg
ICAgICAgICAgICAjIGZ1bmN0aW9uIGludG8gdGhlIGV4aXN0aW5nIGluc3RhbmNlIGRpcmVjdGx5
OgotICAgICAgICAgICAgICAgIGluc3RhbmNlID0gZ2V0YXR0cihjb21wbGV0ZXIsICdpbV9zZWxm
JywgY29tcGxldGVyLl9fc2VsZl9fKQotICAgICAgICAgICAgICAgIGluc3RhbmNlLnJsY29tcGxl
dGUgPSBuZXdfY29tcGxldGVyCisgICAgICAgICAgICBfX0lQWVRIT05fXworICAgICAgICAgICAg
c3lzLm1vZHVsZXNbJ3JsY29tcGxldGVyJ10uX19tYWluX18gPSBzeXMubW9kdWxlc1snX19tYWlu
X18nXQorICAgICAgICBleGNlcHQgKE5hbWVFcnJvciwgS2V5RXJyb3IpOgorICAgICAgICAgICAg
cGFzcwogCiAgICAgICAgIGlmIHJlYWRsaW5lLl9fZG9jX18gYW5kICdsaWJlZGl0JyBpbiByZWFk
bGluZS5fX2RvY19fOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCcnJ2xpYmVkaXQgYmFz
ZWQgcmVhZGxpbmUgaXMga25vd24gbm90IHRvIHdvcmssCkBAIC00OTQ0LDggKzQ5MzEsMTcgQEAg
cHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQKICAgICAgICAgICAgICAgICAgICAgICAg
ICA7OyBXb3JraW5nIG9uIGEgc2hlbGwgYnVmZmVyOiB1c2UgcHJvbXB0IGVuZC4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAoY2RyIChweXRob24tdXRpbC1jb21pbnQtbGFzdC1wcm9tcHQpKQog
ICAgICAgICAgICAgICAgICAgICAgICAobGluZS1iZWdpbm5pbmctcG9zaXRpb24pKSkKKyAgICAg
ICAgIChwcm9tcHQtYm91bmRhcmllcworICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChw
cm9jZXNzLWJ1ZmZlciBwcm9jZXNzKQorICAgICAgICAgICAgKHB5dGhvbi11dGlsLWNvbWludC1s
YXN0LXByb21wdCkpKQorICAgICAgICAgKHByb21wdAorICAgICAgICAgICh3aXRoLWN1cnJlbnQt
YnVmZmVyIChwcm9jZXNzLWJ1ZmZlciBwcm9jZXNzKQorICAgICAgICAgICAgKHdoZW4gcHJvbXB0
LWJvdW5kYXJpZXMKKyAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJvcGVydGll
cworICAgICAgICAgICAgICAgKGNhciBwcm9tcHQtYm91bmRhcmllcykgKGNkciBwcm9tcHQtYm91
bmRhcmllcykpKSkpCiAgICAgICAgICAobm8tZGVsaW1zCi0gICAgICAgICAgKGFuZCAobm90IChp
ZiBpcy1zaGVsbC1idWZmZXIKKyAgICAgICAgICAoYW5kIChub3QgKHN0cmluZy1tYXRjaC1wIHB5
dGhvbi1zaGVsbC1wcm9tcHQtcGRiLXJlZ2V4cCBwcm9tcHQpKQorICAgICAgICAgICAgICAgKG5v
dCAoaWYgaXMtc2hlbGwtYnVmZmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAoZXEgJ2ZvbnQt
bG9jay1jb21tZW50LWZhY2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2V0LXRleHQt
cHJvcGVydHkgKDEtIChwb2ludCkpICdmYWNlKSkKICAgICAgICAgICAgICAgICAgICAgICAocHl0
aG9uLXN5bnRheC1jb250ZXh0ICdjb21tZW50KSkpCkBAIC00OTY5LDE0ICs0OTY1LDYgQEAgcHl0
aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQKICAgICAgICAgICAgICAgICAoZm9yd2FyZC1j
aGFyIChsZW5ndGggKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDApKSkKICAgICAgICAgICAg
ICAgICAocG9pbnQpKSkpKQogICAgICAgICAgKGVuZCAocG9pbnQpKQotICAgICAgICAgKHByb21w
dC1ib3VuZGFyaWVzCi0gICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVm
ZmVyIHByb2Nlc3MpCi0gICAgICAgICAgICAocHl0aG9uLXV0aWwtY29taW50LWxhc3QtcHJvbXB0
KSkpCi0gICAgICAgICAocHJvbXB0Ci0gICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHBy
b2Nlc3MtYnVmZmVyIHByb2Nlc3MpCi0gICAgICAgICAgICAod2hlbiBwcm9tcHQtYm91bmRhcmll
cwotICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCi0gICAgICAg
ICAgICAgICAoY2FyIHByb21wdC1ib3VuZGFyaWVzKSAoY2RyIHByb21wdC1ib3VuZGFyaWVzKSkp
KSkKICAgICAgICAgIChjb21wbGV0aW9uLWZuCiAgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZm
ZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCiAgICAgICAgICAgICAoY29uZCAoKG9yIChudWxs
IHByb21wdCkKQEAgLTQ5ODYsMTMgKzQ5NzQsNyBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1h
dC1wb2ludAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctbWF0Y2gtcAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob24tc2hlbGwtcHJvbXB0LXBkYi1yZWdleHAg
cHJvbXB0KSkpCiAgICAgICAgICAgICAgICAgICAgIydpZ25vcmUpCi0gICAgICAgICAgICAgICAg
ICAoKG9yIChub3QgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLWVuYWJsZSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgOzsgRXZlbiBpZiBuYXRpdmUgY29tcGxldGlvbiBpcyBlbmFibGVk
LCBmb3IKLSAgICAgICAgICAgICAgICAgICAgICAgOzsgcGRiIGludGVyYWN0aW9uIGFsd2F5cyB1
c2UgdGhlIGZhbGxiYWNrCi0gICAgICAgICAgICAgICAgICAgICAgIDs7IG1lY2hhbmlzbSBzaW5j
ZSB0aGUgY29tcGxldGVyIGlzIGNoYW5nZWQuCi0gICAgICAgICAgICAgICAgICAgICAgIDs7IEFs
c28sIHNpbmNlIHBkYiBpbnRlcmFjdGlvbiBpcyBzaW5nbGUtbGluZQotICAgICAgICAgICAgICAg
ICAgICAgICA7OyBiYXNlZCwgdGhpcyBpcyBlbm91Z2guCi0gICAgICAgICAgICAgICAgICAgICAg
IChzdHJpbmctbWF0Y2gtcCBweXRob24tc2hlbGwtcHJvbXB0LXBkYi1yZWdleHAgcHJvbXB0KSkK
KyAgICAgICAgICAgICAgICAgICgobm90IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1l
bmFibGUpCiAgICAgICAgICAgICAgICAgICAgKGlmIChvciAoZXF1YWwgcHl0aG9uLXNoZWxsLS1i
bG9jay1wcm9tcHQgcHJvbXB0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1t
YXRjaC1wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxsLXByb21wdC1i
bG9jay1yZWdleHAgcHJvbXB0KSkKQEAgLTUwNzQsNiArNTA1Niw1NSBAQCBweXRob24tc2hlbGwt
Y29tcGxldGlvbi1jb21wbGV0ZS1vci1pbmRlbnQKIAwKIDs7OyBQREIgVHJhY2sgaW50ZWdyYXRp
b24KIAorKGRlZmNvbnN0IHB5dGhvbi1zaGVsbC1wZGItc2V0dXAtY29kZQorICAiXAorZGVmIF9f
UFlUSE9OX0VMX1BkYl9zZXR1cCgpOgorICAgIGltcG9ydCBwZGIKKworICAgIGNsYXNzIF9QWVRI
T05fRUxfUGRiKHBkYi5QZGIsIG9iamVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAq
YXJncywgKiprdyk6CisgICAgICAgICAgICBzdXBlcihfUFlUSE9OX0VMX1BkYiwgc2VsZikuX19p
bml0X18oKmFyZ3MsICoqa3cpCisgICAgICAgICAgICBpbXBvcnQgcmUKKyAgICAgICAgICAgIHNl
bGYuX3B5dGhvbl9lbF9kZWZfcGF0dGVybiA9IHJlLmNvbXBpbGUoJ19fKFBZVEhPTl9FTHxGRkFQ
fFBZRE9DKV8nKQorICAgICAgICAgICAgc2VsZi5fcHl0aG9uX2VsX2RlZnMgPSB7fQorICAgICAg
ICAgICAgZm9yIGssIHYgaW4gZ2xvYmFscygpLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYg
c2VsZi5fcHl0aG9uX2VsX2RlZl9wYXR0ZXJuLm1hdGNoKGspOgorICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9weXRob25fZWxfZGVmc1trXSA9IHYKKworICAgICAgICBkZWYgX3B5dGhvbl9lbF9z
ZXR1cChzZWxmKToKKyAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdjdXJmcmFtZScp
IG9yIHNlbGYuY3VyZnJhbWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAg
ICAgICAgIGZyYW1lX2dsb2JhbHMgPSBzZWxmLmN1cmZyYW1lLmZfZ2xvYmFscworICAgICAgICAg
ICAgaWYgJ19fUFlUSE9OX0VMX2V2YWwnIG5vdCBpbiBmcmFtZV9nbG9iYWxzOgorICAgICAgICAg
ICAgICAgIGZvciBrLCB2IGluIHNlbGYuX3B5dGhvbl9lbF9kZWZzLml0ZW1zKCk6CisgICAgICAg
ICAgICAgICAgICAgIGZyYW1lX2dsb2JhbHNba10gPSB2CisgICAgICAgICAgICB0cnk6CisgICAg
ICAgICAgICAgICAgZnJhbWVfZ2xvYmFsc1snX19QWVRIT05fRUxfd3JhcF9jb21wbGV0ZXInXSgp
CisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgcHJp
bnQoJ2ZhaWxlZCB0byBzZXR1cCBjb21wbGV0ZXI6IHt9Jy5mb3JtYXQoc3RyKGUpKSkKKworICAg
ICAgICBkZWYgcHJlbG9vcChzZWxmKToKKyAgICAgICAgICAgIHN1cGVyKF9QWVRIT05fRUxfUGRi
LCBzZWxmKS5wcmVsb29wKCkKKyAgICAgICAgICAgICMgVHJpZ2dlciBwcmVjbWQvcG9zdGNtZCB3
aGVuIGVudGVyaW5nIHBkYi4KKyAgICAgICAgICAgIHNlbGYuY21kcXVldWUuYXBwZW5kKCdwYXNz
ICAjIF9fUFlUSE9OX0VMXycpCisKKyAgICAgICAgZGVmIHByZWNtZChzZWxmLCBsaW5lKToKKyAg
ICAgICAgICAgIGlmIHNlbGYuX3B5dGhvbl9lbF9kZWZfcGF0dGVybi5zZWFyY2gobGluZSk6Cisg
ICAgICAgICAgICAgICAgc2VsZi5fcmVhbF9sYXN0Y21kID0gc2VsZi5sYXN0Y21kCisgICAgICAg
ICAgICByZXR1cm4gc3VwZXIoX1BZVEhPTl9FTF9QZGIsIHNlbGYpLnByZWNtZChsaW5lKQorCisg
ICAgICAgIGRlZiBwb3N0Y21kKHNlbGYsIHN0b3AsIGxpbmUpOgorICAgICAgICAgICAgc2VsZi5f
cHl0aG9uX2VsX3NldHVwKCkKKyAgICAgICAgICAgIGlmIHNlbGYuX3B5dGhvbl9lbF9kZWZfcGF0
dGVybi5zZWFyY2gobGluZSk6CisgICAgICAgICAgICAgICAgc2VsZi5sYXN0Y21kID0gc2VsZi5f
cmVhbF9sYXN0Y21kCisgICAgICAgICAgICByZXR1cm4gc3VwZXIoX1BZVEhPTl9FTF9QZGIsIHNl
bGYpLnBvc3RjbWQoc3RvcCwgbGluZSkKKworICAgIHBkYi5QZGIgPSBfUFlUSE9OX0VMX1BkYgor
CitfX1BZVEhPTl9FTF9QZGJfc2V0dXAoKQorZGVsIF9fUFlUSE9OX0VMX1BkYl9zZXR1cCIKKyAg
IkNvZGUgdXNlZCB0byBzZXR1cCB0aGUgZGVidWdnZXIgaW4gaW5mZXJpb3IgUHl0aG9uIHByb2Nl
c3Nlcy4iKQorCiAoZGVmY3VzdG9tIHB5dGhvbi1wZGJ0cmFjay1hY3RpdmF0ZSB0CiAgICJOb24t
bmlsIG1ha2VzIFB5dGhvbiBzaGVsbCBlbmFibGUgcGRidHJhY2tpbmcuCiBQZGJ0cmFja2luZyB3
b3VsZCBvcGVuIHRoZSBmaWxlIGZvciBjdXJyZW50IHN0YWNrIGZyYW1lIGZvdW5kIGluIHBkYiBv
dXRwdXQgYnkKQEAgLTU3MTQsOCArNTc0NSw3IEBAIHB5dGhvbi1mZmFwLW1vZHVsZS1wYXRoCiAg
ICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi11dGlsLWNvbWludC1lbmQtb2Ytb3V0cHV0LXAp
KSkKICAgICAgICAgICAgICAgKG1vZHVsZS1maWxlCiAgICAgICAgICAgICAgICAocHl0aG9uLXNo
ZWxsLXNlbmQtc3RyaW5nLW5vLW91dHB1dAotICAgICAgICAgICAgICAgIChmb3JtYXQgIiVzXG5w
cmludChfX0ZGQVBfZ2V0X21vZHVsZV9wYXRoKCVzKSkiCi0gICAgICAgICAgICAgICAgICAgICAg
ICBweXRob24tZmZhcC1zZXR1cC1jb2RlCisgICAgICAgICAgICAgICAgKGZvcm1hdCAicHJpbnQo
X19GRkFQX2dldF9tb2R1bGVfcGF0aCglcykpIgogICAgICAgICAgICAgICAgICAgICAgICAgKHB5
dGhvbi1zaGVsbC0tZW5jb2RlLXN0cmluZyBtb2R1bGUpKSkpKQogICAgICh1bmxlc3MgKHN0cmlu
Zy1lbXB0eS1wIG1vZHVsZS1maWxlKQogICAgICAgKHB5dGhvbi11dGlsLXN0cmlwLXN0cmluZyBt
b2R1bGUtZmlsZSkpKSkKQEAgLTU4MzgsMTAgKzU4NjgsOCBAQCBweXRob24tZWxkb2MtLWdldC1k
b2MtYXQtcG9pbnQKICAgICAgICAgICAgICAgICA7OyBlbmFibGVkLiAgQnVnIzE4Nzk0LgogICAg
ICAgICAgICAgICAgIChweXRob24tdXRpbC1zdHJpcC1zdHJpbmcKICAgICAgICAgICAgICAgICAg
KHB5dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1vdXRwdXQKLSAgICAgICAgICAgICAgICAgIChm
b3JtYXQKLSAgICAgICAgICAgICAgICAgICAiJXNcbnByaW50KF9fUFlET0NfZ2V0X2hlbHAoJXMp
KSIKLSAgICAgICAgICAgICAgICAgICBweXRob24tZWxkb2Mtc2V0dXAtY29kZQotICAgICAgICAg
ICAgICAgICAgIChweXRob24tc2hlbGwtLWVuY29kZS1zdHJpbmcgaW5wdXQpKQorICAgICAgICAg
ICAgICAgICAgKGZvcm1hdCAicHJpbnQoX19QWURPQ19nZXRfaGVscCglcykpIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLS1lbmNvZGUtc3RyaW5nIGlucHV0KSkKICAg
ICAgICAgICAgICAgICAgIHByb2Nlc3MpKSkpKQogICAgICAgICAodW5sZXNzIChzdHJpbmctZW1w
dHktcCBkb2NzdHJpbmcpCiAgICAgICAgICAgZG9jc3RyaW5nKSkpKSkKZGlmZiAtLWdpdCBhL3Rl
c3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsIGIvdGVzdC9saXNwL3Byb2dtb2Rlcy9w
eXRob24tdGVzdHMuZWwKaW5kZXggZWVhMzViODY0ZTEuLjZhODZiMTlhNTkzIDEwMDY0NAotLS0g
YS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbAorKysgYi90ZXN0L2xpc3AvcHJv
Z21vZGVzL3B5dGhvbi10ZXN0cy5lbApAQCAtNTEyNiw2ICs1MTI2LDUwIEBAIHB5dGhvbi1zaGVs
bC1jb21wbGV0aW9uLWF0LXBvaW50LWlweXRob24KIAwKIDs7OyBQREIgVHJhY2sgaW50ZWdyYXRp
b24KIAorKGRlZnVuIHB5dGhvbi10ZXN0cy0tcGRiLTEgKCkKKyAgKGluc2VydCAibmV4IikKKyAg
KGNvbXBsZXRpb24tYXQtcG9pbnQpCisgIChiZWdpbm5pbmctb2YtbGluZSkKKyAgKHNob3VsZCAo
c3RyaW5nPSAibmV4dCIKKyAgICAgICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1w
cm9wZXJ0aWVzCisgICAgICAgICAgICAgICAgICAgIChwb2ludCkgKHBvcy1lb2wpKSkpCisgIChj
b21pbnQtc2VuZC1pbnB1dCkKKyAgKHB5dGhvbi1zaGVsbC1hY2NlcHQtcHJvY2Vzcy1vdXRwdXQg
KHB5dGhvbi1zaGVsbC1nZXQtcHJvY2VzcykpCisgIChzaG91bGQtbm90IChzdHJpbmctZW1wdHkt
cCAocHl0aG9uLWZmYXAtbW9kdWxlLXBhdGggImFiYyIpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRo
b24tc2hlbGwtcGRiLTEgKCkKKyAgIkNoZWNrIGlmIGNvbXBsZXRpb24gYW5kIGZmYXAgd29ya3Mg
aW4gUGRiLiIKKyAgKGVydC13aXRoLXRlbXAtZGlyZWN0b3J5IGRpcgorICAgIChsZXQgKChpbmhp
Yml0LW1lc3NhZ2UgdCkKKyAgICAgICAgICAocHl0aG9uLXBkYnRyYWNrLWFjdGl2YXRlIG5pbCkK
KyAgICAgICAgICAoZGVmYXVsdC1kaXJlY3RvcnkgZGlyKSkKKyAgICAgICh3cml0ZS1yZWdpb24g
ImRlZiBmMSgpOgorICAgIGltcG9ydCBwZGI7IHBkYi5zZXRfdHJhY2UoKQorICAgIHggPSAxCisg
ICAgeSA9IDIKKyAgICByZXR1cm4geCt5IiBuaWwgInRlc3QxLnB5IikKKyAgICAgIChweXRob24t
dGVzdHMtd2l0aC10ZW1wLWJ1ZmZlci13aXRoLXNoZWxsLWludGVycHJldGVyCisgICAgICAgbmls
CisgICAgICAgImltcG9ydCBhYmMKK2Zyb20gdGVzdDEgaW1wb3J0IGYxCitmMSgpCisiCisgICAg
ICAgKHB5dGhvbi1zaGVsbC1zZW5kLWJ1ZmZlcikKKyAgICAgICAocHl0aG9uLXNoZWxsLWFjY2Vw
dC1wcm9jZXNzLW91dHB1dCAocHl0aG9uLXNoZWxsLWdldC1wcm9jZXNzKSkKKyAgICAgICAocHl0
aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAgICAoc2tpcC11bmxlc3MgcHl0aG9u
LXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMpCisgICAgICAgICAocHl0aG9uLXNoZWxs
LWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb2ZmKQorICAgICAgICAgKHB5dGhvbi10ZXN0cy0tcGRi
LTEpCisgICAgICAgICAoaW5zZXJ0ICJjIikKKyAgICAgICAgIChjb21pbnQtc2VuZC1pbnB1dCkK
KyAgICAgICAgIChweXRob24tc2hlbGwtYWNjZXB0LXByb2Nlc3Mtb3V0cHV0IChweXRob24tc2hl
bGwtZ2V0LXByb2Nlc3MpKQorICAgICAgICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2
ZS10dXJuLW9uKQorICAgICAgICAgKHdoZW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZl
LWVuYWJsZQorICAgICAgICAgICAoaW5zZXJ0ICJmMSgpIikKKyAgICAgICAgICAgKGNvbWludC1z
ZW5kLWlucHV0KQorICAgICAgICAgICAocHl0aG9uLXNoZWxsLWFjY2VwdC1wcm9jZXNzLW91dHB1
dCAocHl0aG9uLXNoZWxsLWdldC1wcm9jZXNzKSkKKyAgICAgICAgICAgKHB5dGhvbi10ZXN0cy0t
cGRiLTEpKSkpKSkpCisKIAwKIDs7OyBTeW1ib2wgY29tcGxldGlvbgogCi0tIAoyLjQzLjAKCg==
--00000000000001aa51064a20288c--
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
Received: (at 80182) by debbugs.gnu.org; 5 Feb 2026 09:14:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 05 04:14:53 2026
Received: from localhost ([127.0.0.1]:40448 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vnvRs-0003cZ-ET
for submit <at> debbugs.gnu.org; Thu, 05 Feb 2026 04:14:53 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:34300)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vnvRq-0003cG-55
for 80182 <at> debbugs.gnu.org; Thu, 05 Feb 2026 04:14:50 -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 1vnvRk-0005hk-Qb; Thu, 05 Feb 2026 04:14:44 -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=mlAWnPAZdn/RvpmKu6D6sLjCUN0XTcHQLOm4qjT0dAA=; b=EiQ9xXgEhhdo
SD2/Zj5tLFvfpIj3QFgA0iUIphMYR0BE0Avn3OlckQBO5OBP2eNuj2vsGvF/THa9anB4+7F/mLEJx
kSe+HVvBHCt6VP5vK3Y8NKQPVWtPJie93ZUBklissuKqCgp3xKKFhYpVH2shXObBvmC4tSw2KLCjw
PVNAESYlUTD8n24VL0IdWux0QcIih1H986+VIVlaTkwP1/cLOiQ8DV0vbr6wl+yHqvVNxrSbMwrE7
YeWGecJsaxT5asjRsBHsERA/6YRY+CdLVyFJ2umQwy6QgFQ+srTMar54eAvEVHwPdwiMbZ3ntfBej
JuOQxIIpBe5TplB5xEqUwg==;
Date: Thu, 05 Feb 2026 11:14:42 +0200
Message-Id: <86cy2jy2kd.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: liuhui1610@HIDDEN, kobarity <kobarity@HIDDEN>
In-Reply-To: <eke7h5rw386q.wl-kobarity@HIDDEN> (message from kobarity on
Wed, 04 Feb 2026 23:16:45 +0900)
Subject: Re: bug#80182: 31.0.50;
Issues and improvements regarding non-native completion in python.el
References: <eke7a4ykpjep.wl-kobarity@HIDDEN>
<CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
<eke78qdyq5ef.wl-kobarity@HIDDEN>
<CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN>
<eke78qdr2edy.wl-kobarity@HIDDEN>
<eke7ldhl3lcs.wl-kobarity@HIDDEN>
<CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN>
<eke7jywx3lx0.wl-kobarity@HIDDEN>
<CAOQTW-NnPKu-9ngc7VwAc0koOfN1GF4XZ-NoJDtDhnopnKDUkQ@HIDDEN>
<eke7h5rw386q.wl-kobarity@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 80182
Cc: 80182 <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: 80182 <at> debbugs.gnu.org
> Date: Wed, 04 Feb 2026 23:16:45 +0900
> From: kobarity <kobarity@HIDDEN>
>
> Liu Hui wrote:
> >
> > OK, I have updated the patch.
>
> Thank you. I believe this is fine.
Thanks. I have two comments on the last version of the patch:
. since the value of 'python-shell-completion-setup-code' has
changed, we need a :version tag of that defcustom updated to "31.1"
. the new test 'python-shell-pdb-1' fails here, see the error below
Test python-shell-pdb-1 backtrace:
signal(ert-test-failed (((should (string= "next" (buffer-substring-n
ert-fail(((should (string= "next" (buffer-substring-no-properties (p
(if (unwind-protect (setq value-3659 (apply fn-3657 args-3658)) (set
(let (form-description-3661) (if (unwind-protect (setq value-3659 (a
(let ((value-3659 'ert-form-evaluation-aborted-3660)) (let (form-des
(let* ((fn-3657 #'string=) (args-3658 (condition-case err (list "nex
python-tests--pdb-1()
(save-current-buffer (set-buffer (process-buffer shell-process)) (le
(let ((shell-process (python-shell-get-process-or-error))) (save-cur
(let ((process-environment (copy-sequence process-environment))) (se
(progn (let ((process-environment (copy-sequence process-environment
(unwind-protect (progn (let ((process-environment (copy-sequence pro
(let* ((coding-system-for-write nil) (temp-file (file-name-as-direct
(unwind-protect (let* ((coding-system-for-write nil) (temp-file (fil
(let ((python-indent-guess-indent-offset nil) (python-shell-completi
(progn (let ((python-indent-guess-indent-offset nil) (python-shell-c
(unwind-protect (progn (let ((python-indent-guess-indent-offset nil)
(save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn
(let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current
(let ((python-shell-interpreter (python-tests-get-shell-interpreter
(let ((inhibit-message t) (default-directory dir)) (write-region "de
(progn (let ((inhibit-message t) (default-directory dir)) (write-reg
(unwind-protect (progn (let ((inhibit-message t) (default-directory
(let* ((coding-system-for-write nil) (temp-file (file-name-as-direct
#f(lambda () [t] (let* ((coding-system-for-write nil) (temp-file (fi
#f(compiled-function () #<bytecode 0xb3e1be2617eb3c0>)()
handler-bind-1(#f(compiled-function () #<bytecode 0xb3e1be2617eb3c0>
ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
ert-run-test(#s(ert-test :name python-shell-pdb-1 :documentation "Ch
ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
command-line-1(("-L" ";." "-l" "ert" "--eval" "(setq treesit-extra-l
command-line()
normal-top-level()
Test python-shell-pdb-1 condition:
(ert-test-failed
((should (string= "next" (buffer-substring-no-properties ... ...)))
:form (string= "next" "next(") :value nil :explanation
(arrays-of-different-length 4 5 "next" "next(" first-mismatch-at 4)))
FAILED 314/373 python-shell-pdb-1 (0.208166 sec) at lisp/progmodes/python-tests.el:5140
In case this matters, I have here Python 3.4.4 for MS-Windows, and all
the other python-tests pass.
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.Received: (at 80182) by debbugs.gnu.org; 4 Feb 2026 14:16:51 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 04 09:16:51 2026 Received: from localhost ([127.0.0.1]:60151 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vndgY-0006sO-Uo for submit <at> debbugs.gnu.org; Wed, 04 Feb 2026 09:16:51 -0500 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]:52312) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <kobarity@HIDDEN>) id 1vndgW-0006sD-N2 for 80182 <at> debbugs.gnu.org; Wed, 04 Feb 2026 09:16:49 -0500 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-29f30233d8aso43720755ad.0 for <80182 <at> debbugs.gnu.org>; Wed, 04 Feb 2026 06:16:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770214607; x=1770819407; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=m3X83MfSvHJxKQyZ0ZKrEdu+H5rpDdt1UJr8Ljv5EL0=; b=L3uzGsSzwTyq+1fSeNSqDxA2qz45Wh9xBzU/PoCvko5/3Bv1bkTUgS4Tziow5wu0+h CaLyLJu+N3VDxTAndplB4PoUmFSwtxF2psMNFjm5hwoMS7TEq5Z4z2sR0UBs0LZcOHrN BT/t2CFvgZyBsLlmZnPJzJ6mgCKtuSKh4a7T74C5RRq6FnSLMd24lXAXVv48iQnN/SEv 3UKxrhzzTzso4uWbxwFBu1zoCbw83OERh0zfaJ/OJVZTtunfinaemHSvoHKnwtRYSjNt AKVXduTipJDmiP+2sriE01F3mdqKKyGoUwVHbs9SHyzUO0P/qpkcUMkueciTgZJmSWQg pWig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770214607; x=1770819407; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=m3X83MfSvHJxKQyZ0ZKrEdu+H5rpDdt1UJr8Ljv5EL0=; b=WUt/0BuAszFYjh7SwL4hMegK4OQaguocxN/khbgMrRm05y971ABjSDWJg0pw8tWZJ1 iZtkKyiYbGuJFRYpTjjAnV3pfpOni3tXpgsX7O4Hkg8O7f246xgfBPeZCzaATu5WWZeI pXdxO1piHRup7R3NoD5YkEkHKPTR2dyhRHwoALYvo9CZSZegRKyhG4aR4ZqAUP3MCUon q7PVQTFdZp8GnmOrtH/gSixAHN2qsM/qRtOw8BKglzO8YFHLkL1hCoQ+yeuQ7PKfq9FN uEHxPnUVwEyXWzThXnH8ueKwHEwwVCBqcFs8F4WJup4DqkIFRsTo5++WLPruQx/4/7ok UHwg== X-Gm-Message-State: AOJu0Yz8NOV5Y9El/j8JgKq+ApmJ7T9cZvWXlmTE1t22/oggHtpaw2hb c9u9EtIVtLqd4P2pnf/2LLPSLHmH+PeWcIGhQzPCSZk60su/Ryr68eC3 X-Gm-Gg: AZuq6aJk4hZOJY2WYHM7kj+C4Ky2/MR/NmcuetLb1UziROdHHO013xWc31igj8r2Ns4 PURxyokhhnpKNxk9jaQ6ocAwSbQ8Rc/bCXqNT8uRiia6u482NGIGuUjO/8+PlgI81AXql+Kwrnd ymXfWW4escO0/T0NCPQ1+tyAjAlxtOXbZudMoP8ja5SA9DjrDqWZwcWaHyyDSEGjgsSr+VUHjF6 xfItTmvVYdFqRZiSO9pOPjQ23ZEd5tlYntPJxSBN0m/yFWhZs1ecSSXcMty8zsa/5p/8qPtvSXO ApMemmhvbyO+e/5aZJrbWLRflcOXNGQqLrG4j98m5ZkJXmpdp4fk+hzASE1BBElRCrUnNfyl7oj 0/uYXXsHnBarIScDpz+Jsu7vqn4B/qGUyMFw29nVMrrSD3Va6LYckKTBOvStKhkl4s83RRuUbMq MujOmRZYB+9FU+mm41GU3qRFKEl5TmEcC2fHy1x95K X-Received: by 2002:a17:903:2445:b0:295:9cb5:ae07 with SMTP id d9443c01a7336-2a933fb6b76mr29581965ad.38.1770214607333; Wed, 04 Feb 2026 06:16:47 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a93386b5d2sm25264815ad.24.2026.02.04.06.16.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 04 Feb 2026 06:16:47 -0800 (PST) Date: Wed, 04 Feb 2026 23:16:45 +0900 Message-ID: <eke7h5rw386q.wl-kobarity@HIDDEN> From: kobarity <kobarity@HIDDEN> To: Liu Hui <liuhui1610@HIDDEN> Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native completion in python.el In-Reply-To: <CAOQTW-NnPKu-9ngc7VwAc0koOfN1GF4XZ-NoJDtDhnopnKDUkQ@HIDDEN> References: <eke7a4ykpjep.wl-kobarity@HIDDEN> <CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN> <eke78qdyq5ef.wl-kobarity@HIDDEN> <CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN> <eke78qdr2edy.wl-kobarity@HIDDEN> <eke7ldhl3lcs.wl-kobarity@HIDDEN> <CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN> <eke7jywx3lx0.wl-kobarity@HIDDEN> <CAOQTW-NnPKu-9ngc7VwAc0koOfN1GF4XZ-NoJDtDhnopnKDUkQ@HIDDEN> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/31.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 80182 Cc: 80182 <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.0 (/) Liu Hui wrote: > On Sat, Jan 31, 2026 at 10:18=E2=80=AFPM kobarity <kobarity@HIDDEN> wr= ote: > > > > Liu Hui wrote: > > > > > > On Sun, Jan 25, 2026 at 8:52=E2=80=AFPM kobarity <kobarity@HIDDEN>= wrote: > > > > > > > > > I have a question about python-shell-setup-code: is it necessar= y for > > > > > > sending python-shell-eval(-file)-setup-code? If not, I'd like t= o move > > > > > > it below. > > > > > > > > > > Moving it is fine. > > > > > > Done. > > > > > > > > I'm considering changing it as follows to avoid polluting globals= , but I > > > > > think it might be better to make it a separate patch. > > > > > > Agree. > > > > > > > > (defconst python-shell-setup-code > > > > > "\ > > > > > def __PYTHON_EL_setup(): > > > > > try: > > > > > import termios > > > > > except ImportError: > > > > > pass > > > > > else: > > > > > attr =3D termios.tcgetattr(0) > > > > > attr[3] &=3D ~termios.ECHO > > > > > termios.tcsetattr(0, termios.TCSADRAIN, attr) > > > > > > > > > > __PYTHON_EL_setup() > > > > > del __PYTHON_EL_setup" > > > > > "Code used to setup the inferior Python processes.") > > > > > > > > > > > > I've integrated the code into __PYTHON_EL_native_completion_s= etup. To > > > > > > > prevent the message from appearing repeatedly after pressing = Enter > > > > > > > following PDB startup, I've also added the pass command. Wha= t do you > > > > > > > think? > > > > > > > > > > > > Thanks. The message was mainly used to trigger pre/postcmd hook= s, and > > > > > > I think 'pass' is a better placeholder. Maybe the message could= be > > > > > > removed? > > > > > > > > > > I agree. > > > > > > Removed. > > > > > > > > I'd like to take a look at your patch over the weekend and try it= out > > > > > more. > > > > > > > > It seems to function properly. To reduce global symbols, how about > > > > moving the classes into the functions as shown in the attached patc= h? > > > > > > Thanks, I have updated the patch as suggested. I have also added a > > > test for pdb. > > > > Thanks, it looks good to me. Since the custom variable > > `python-shell-completion-setup-code' has been modified, it might be > > best to announce it in etc/NEWS. I don't think many people are > > changing it, though. >=20 > OK, I have updated the patch. Thank you. I believe this is fine.
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
Received: (at 80182) by debbugs.gnu.org; 3 Feb 2026 09:54:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Feb 03 04:54:45 2026
Received: from localhost ([127.0.0.1]:42310 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vnD7M-00023H-6K
for submit <at> debbugs.gnu.org; Tue, 03 Feb 2026 04:54:45 -0500
Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:46566)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <liuhui1610@HIDDEN>)
id 1vnD7I-000231-Vc
for 80182 <at> debbugs.gnu.org; Tue, 03 Feb 2026 04:54:42 -0500
Received: by mail-wr1-x42a.google.com with SMTP id
ffacd0b85a97d-42fb6ce71c7so4469557f8f.1
for <80182 <at> debbugs.gnu.org>; Tue, 03 Feb 2026 01:54:40 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1770112480; cv=none;
d=google.com; s=arc-20240605;
b=U0R3mlugAdDMBjrWoosxycllKhVs/v+9If8OC/hkYdWd+2iARfTOx6PbXAbVm5aOXn
5vyJB40/kYQ4qsbWv9isC0aD5U1tKf1mbtQOHkfxp8qXBQTRaGK9Mtq9e5g064I5mPvO
4ENWG7fvLiD/EJWGNzKHZVtV31TATrDPFPDf9zh+/BwfsOUhIa42hR/+kvlca9efBZSA
3KhkT02e0tW3PvcjqKf3UBazMVtfPwuj0ulQqv5C5icKjvawO+Qalfzqh4h0soPkpsGB
Kp+VeyXwdGSSn0FBqi17Ik0WdLPV9570rmDP7I9rL7Z0d2+vkA+CUH7A0aNMsOLk5+zv
1H+w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
s=arc-20240605;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:dkim-signature;
bh=MSmRenYORUGH7wTQeEXbMcnxltq7FD1vTkgaP36tCqk=;
fh=wLSHm8nZ6epU63eELyFkYVW1VK5M5ycaaofSEfYiY4M=;
b=edk/4J7/x29f6a3P5/Lr9zztePUQXttMp9TUdUOZyL9hywDDweWQQkw84EYOUPrdIG
N1RJpI1kmFXO85ZiUSFC8hIGQx1+NEAfbDoiDw2QioNtLAhCH0GnzzXOuSNwL5fB0eg4
rg0k/mbDP6+taerLGNB+julp5D+4h6/Rr0t4GJGjeLVaLGPLe25fMyCx6wkTpG9ylwTn
ET2yIBaIoADHh7xF5nTOaPdy2stsVeYYncjsE7ykDL9ovl8uxk0kbrCbTUjKiy5T+dit
qWHSyJbMBKHP0BRX60zkN7cFMWwmHsu/PJZA25kqhZvDwyO64Ii+xFG/bbBUxxJPu7fi
2j6g==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1770112479; x=1770717279; 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=MSmRenYORUGH7wTQeEXbMcnxltq7FD1vTkgaP36tCqk=;
b=BTjkzFUYjJj8aEYDuGdu+9ZUvYRRgEPDPXGpXS1/uks5qxiisOL9X9vNpZqIqQIhW7
y2/L/2Ek+BTrQb91svK15MGlTlzQomTI7Bs2benYZMraXRqUfu6nLTD4q5ywtllQEHRf
zSjedBroxIFlyUgFezWxV7JOsIZYVsyDAf1SIA7TdkTQL3kWhfDljS8tNvEWAaV2oYhc
c2jrJuiBf4PhvLfD+maAU36bIlgamtakuOg980iTptZkEaVLhc8ZfwLiV56hTIM88UuN
wOajUdddOw3KDp0bMrY7fJOCRWTOOOjnAMoNHIy3HHpClLUpUR9ogZq92h1acfa7ZVVC
goLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1770112480; x=1770717280;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to;
bh=MSmRenYORUGH7wTQeEXbMcnxltq7FD1vTkgaP36tCqk=;
b=JcoIkMmGe8mAUDljfTFb1ez3JYWJgm58xUr5PfQDYy+aZ1E7zxs+x1eEJmHbu+Gk1P
7gCTg0Whh6y8fd1JYq5+Oade4sbHXpU3jfmeWyEF7OFIUNeXcIDydgFIhcS6k0RIJn9s
g+EqgdPii4Y0LZgkmZJZMLunInPjG8zNSzzCJWZRqF9+aHSXCQYBH+urnGbNitt65EeR
nhM3nz/2GXCM7BXNX1QjbIjntjJnE6VrJkMeVTeXVHvOlYf3JuPQLTp58mnsbu99ySKt
qD303bipVcrsILavp3iclhAlgzIlOwbtV/GiESbZe+Rls1y8ZoNY7/yKT4oBUWO18m+8
vrHA==
X-Gm-Message-State: AOJu0YzVWw4qpLxuA81gYvFp/dYOrG+yG7U6I6+bVV5Bhlmdr1mB3uPY
lRnnShz4snGlCugIZku7Nt15wWq89WHsDMif/8R4Wp7PW6yvqQ0y5vzXfxFr+a2mkTZFHoeFvSv
2aBA5w/y4QLpWk+C0YBBH4rf2f7cJdbE=
X-Gm-Gg: AZuq6aIfeAd9550bavIt+svY8ovOV/mQMjPQfcQX1VYiPcJcmEDT2FfbUsbiyKCqNhP
3DaVKqKu2o4VowUwJaGH4hXuft4/YEh1aR4D9CYd8TZC++XPsc0GldF8fbUhtoDdUoNlvMBZ877
kCovOrdwiMYojEo/O+lmklFrkhjgdrJb7u5GxqmVx4RaXLlXpvo2NoNzJs8kuXqglkExcE/H+tr
o/9Xazaq2iZOGxF0n3M9pSqG2I7jLvv2XlJzbeCEe29x4hGQKlbV0VgC9UEfWzc4egTN/4=
X-Received: by 2002:a05:6000:2088:b0:435:b020:30ab with SMTP id
ffacd0b85a97d-435f3a7b3f2mr22796565f8f.15.1770112479310; Tue, 03 Feb 2026
01:54:39 -0800 (PST)
MIME-Version: 1.0
References: <eke7a4ykpjep.wl-kobarity@HIDDEN>
<CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
<eke78qdyq5ef.wl-kobarity@HIDDEN>
<CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN>
<eke78qdr2edy.wl-kobarity@HIDDEN> <eke7ldhl3lcs.wl-kobarity@HIDDEN>
<CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN>
<eke7jywx3lx0.wl-kobarity@HIDDEN>
In-Reply-To: <eke7jywx3lx0.wl-kobarity@HIDDEN>
From: Liu Hui <liuhui1610@HIDDEN>
Date: Tue, 3 Feb 2026 17:54:27 +0800
X-Gm-Features: AZwV_QiphUicKOj6Enz-7u-a3IlckGHoCiVrbjgIlnckz6iBRPpG2_LeSio6z2Q
Message-ID: <CAOQTW-NnPKu-9ngc7VwAc0koOfN1GF4XZ-NoJDtDhnopnKDUkQ@HIDDEN>
Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native
completion in python.el
To: kobarity <kobarity@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000008acfc30649e86d09"
X-Spam-Score: 1.3 (+)
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: On Sat, Jan 31, 2026 at 10:18 PM kobarity wrote: > > Liu
Hui wrote: > > > > On Sun, Jan 25, 2026 at 8:52 PM kobarity wrote: > >
> > > > > I have a question about python-shell-setup-code: is it [...]
Content analysis details: (1.3 points, 10.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
provider (liuhui1610[at]gmail.com)
1.0 FORGED_GMAIL_RCVD 'From' gmail.com does not match 'Received'
headers
0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends
in digit (liuhui1610[at]gmail.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 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
no trust
[2a00:1450:4864:20:0:0:0:42a listed in]
[list.dnswl.org]
X-Debbugs-Envelope-To: 80182
Cc: 80182 <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.3 (/)
--0000000000008acfc30649e86d09
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Sat, Jan 31, 2026 at 10:18=E2=80=AFPM kobarity <kobarity@HIDDEN> wrot=
e:
>
> Liu Hui wrote:
> >
> > On Sun, Jan 25, 2026 at 8:52=E2=80=AFPM kobarity <kobarity@HIDDEN> w=
rote:
> >
> > > > > I have a question about python-shell-setup-code: is it necessary =
for
> > > > > sending python-shell-eval(-file)-setup-code? If not, I'd like to =
move
> > > > > it below.
> > > >
> > > > Moving it is fine.
> >
> > Done.
> >
> > > > I'm considering changing it as follows to avoid polluting globals, =
but I
> > > > think it might be better to make it a separate patch.
> >
> > Agree.
> >
> > > > (defconst python-shell-setup-code
> > > > "\
> > > > def __PYTHON_EL_setup():
> > > > try:
> > > > import termios
> > > > except ImportError:
> > > > pass
> > > > else:
> > > > attr =3D termios.tcgetattr(0)
> > > > attr[3] &=3D ~termios.ECHO
> > > > termios.tcsetattr(0, termios.TCSADRAIN, attr)
> > > >
> > > > __PYTHON_EL_setup()
> > > > del __PYTHON_EL_setup"
> > > > "Code used to setup the inferior Python processes.")
> > > >
> > > > > > I've integrated the code into __PYTHON_EL_native_completion_set=
up. To
> > > > > > prevent the message from appearing repeatedly after pressing En=
ter
> > > > > > following PDB startup, I've also added the pass command. What =
do you
> > > > > > think?
> > > > >
> > > > > Thanks. The message was mainly used to trigger pre/postcmd hooks,=
and
> > > > > I think 'pass' is a better placeholder. Maybe the message could b=
e
> > > > > removed?
> > > >
> > > > I agree.
> >
> > Removed.
> >
> > > > I'd like to take a look at your patch over the weekend and try it o=
ut
> > > > more.
> > >
> > > It seems to function properly. To reduce global symbols, how about
> > > moving the classes into the functions as shown in the attached patch?
> >
> > Thanks, I have updated the patch as suggested. I have also added a
> > test for pdb.
>
> Thanks, it looks good to me. Since the custom variable
> `python-shell-completion-setup-code' has been modified, it might be
> best to announce it in etc/NEWS. I don't think many people are
> changing it, though.
OK, I have updated the patch.
--0000000000008acfc30649e86d09
Content-Type: text/x-patch; charset="US-ASCII";
name="0001-Use-a-custom-Pdb-class-in-the-Python-shell.patch"
Content-Disposition: attachment;
filename="0001-Use-a-custom-Pdb-class-in-the-Python-shell.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_ml6f8mdn0>
X-Attachment-Id: f_ml6f8mdn0
RnJvbSBmZGQyNmJmOWY4ODUyYzY2YWEyOTFiNDViMzZiODcyNGExOTI5ZDBkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog
RnJpLCAzMCBKYW4gMjAyNiAxODoxMDozMCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFVzZSBhIGN1
c3RvbSBQZGIgY2xhc3MgaW4gdGhlIFB5dGhvbiBzaGVsbAoKVGhlIGN1c3RvbSBQZGIgY2xhc3Mg
ZW5hYmxlcyBuYXRpdmUgY29tcGxldGlvbiBpbiBwZGIgYnkKd3JhcHBpbmcgdGhlIHBkYidzIG5h
dGl2ZSBjb21wbGV0ZXIuICBJdCBhbHNvIG1ha2VzIG5lY2Vzc2FyeQpmdW5jdGlvbiBkZWZpbml0
aW9ucyBsaWtlIF9fUFlUSE9OX0VMXyogYXZhaWxhYmxlIGJldHdlZW4gcGRiCmZyYW1lcywgYW5k
IGVuYWJsZXMgbm9uLW5hdGl2ZSBjb21wbGV0aW9uL2ZmYXAvZWxkb2MKZnVuY3Rpb25hbGl0aWVz
IHdoZW4gZGVidWdnaW5nIGluc2lkZSBweXRob24gbW9kdWxlcy4KCiogbGlzcC9wcm9nbW9kZXMv
cHl0aG9uLmVsIChweXRob24tc2hlbGwtc2VuZC1zZXR1cC1jb2RlKTogRml4CnRoZSBzZXBhcmF0
b3IgYmV0d2VlbiBweXRob24tc2hlbGwtc2V0dXAtY29kZXMuCihweXRob24tc2hlbGwtY29tcGxl
dGlvbi1uYXRpdmUtc2V0dXApOiBNb3ZlIGNvbW1vbiBjb21wbGV0aW9uCnNldHVwIGNvZGUgLi4u
CihweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlKTogLi4uIGhlcmUuCihweXRob24t
c2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCk6IEVuYWJsZSBuYXRpdmUgY29tcGxldGlvbiBmb3IK
cGRiIGFuZCByZXNwZWN0IHRoZSBkZWxpbWl0ZXIgb2YgcGRiIGNvbXBsZXRlci4KKHB5dGhvbi1z
aGVsbC1wZGItc2V0dXAtY29kZSk6IE5ldyB2YXJpYWJsZS4KKHB5dGhvbi1zaGVsbC1jb21pbnQt
d2F0Y2gtZm9yLWZpcnN0LXByb21wdC1vdXRwdXQtZmlsdGVyKTogU2VuZApzZXR1cCBjb2RlcyBv
bmx5IG9uY2UuCihweXRob24tZmZhcC1tb2R1bGUtcGF0aCwgcHl0aG9uLWVsZG9jLS1nZXQtZG9j
LWF0LXBvaW50KTogU3RvcApzZW5kaW5nIHNldHVwIGNvZGUgaW4gZXZlcnkgZnVuY3Rpb24gY2Fs
bC4KKiB0ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCAocHl0aG9uLXRlc3RzLS1w
ZGItMSkKKHB5dGhvbi1zaGVsbC1wZGItMSk6IE5ldyB0ZXN0LgoqIGV0Yy9ORVdTOiBNZW50aW9u
IHRoZSBjaGFuZ2UuICAoYnVnIzgwMTgyKQotLS0KIGV0Yy9ORVdTICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICA1ICsKIGxpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCAgICAgICAgICAgIHwg
MjgxICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIHRlc3QvbGlzcC9wcm9nbW9kZXMvcHl0
aG9uLXRlc3RzLmVsIHwgIDQzICsrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDIwMiBpbnNlcnRpb25z
KCspLCAxMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZXRjL05FV1MgYi9ldGMvTkVXUwpp
bmRleCA2NWM4YzYyZGVjNS4uNzliOGUzNzUzM2UgMTAwNjQ0Ci0tLSBhL2V0Yy9ORVdTCisrKyBi
L2V0Yy9ORVdTCkBAIC0yNDkwLDYgKzI0OTAsMTEgQEAgV2hlbiBwb2ludCBpcyBiZXR3ZWVuIGlu
ZGVudGF0aW9uLCB0aGUgY29tbWFuZAogZGVsZXRlcyB0aGUgdGV4dCBpbiB0aGUgcmVnaW9uIGFu
ZCBkZWFjdGl2YXRlcyB0aGUgbWFyayBpZiBUcmFuc2llbnQKIE1hcmsgbW9kZSBpcyBlbmFibGVk
LCB0aGUgbWFyayBpcyBhY3RpdmUsIGFuZCBwcmVmaXggYXJndW1lbnQgaXMgMS4KIAorLS0tCisq
KiogVGhlIGRlZmF1bHQgdmFsdWUgb2YgJ3B5dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNv
ZGUnIGlzIGNoYW5nZWQuCitBIG5ldyBmdW5jdGlvbiBpcyBhZGRlZCB0byB0aGUgc2V0dXAgY29k
ZS4gIFVzZXJzIHdobyBtb2RpZnkgdGhpcyBvcHRpb24KK21heSBuZWVkIHRvIHVwZGF0ZSB0aGUg
dmFsdWUgZm9yIHRoZSBQeXRob24gc2hlbGwgY29tcGxldGlvbiB0byB3b3JrLgorCiAqKiBUbW0g
TWVudWJhcgogCiAtLS0KZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCBiL2xp
c3AvcHJvZ21vZGVzL3B5dGhvbi5lbAppbmRleCBiNjk4MWM5MTU2Yy4uZDA5YWIzMzczZDMgMTAw
NjQ0Ci0tLSBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9w
eXRob24uZWwKQEAgLTM3MzksMTEgKzM3MzksMTggQEAgcHl0aG9uLXNoZWxsLWNvbWludC13YXRj
aC1mb3ItZmlyc3QtcHJvbXB0LW91dHB1dC1maWx0ZXIKICAgICAgICAgICAgICAgICAgICAgICAo
Zm9ybWF0ICJleGVjKCVzKVxuIiAocHl0aG9uLXNoZWxsLS1lbmNvZGUtc3RyaW5nIHN0cmluZykp
KSkpKQogICAgICAgICAgIDs7IEJvb3RzdHJhcDogdGhlIG5vcm1hbCBkZWZpbml0aW9uIG9mIGBw
eXRob24tc2hlbGwtc2VuZC1zdHJpbmcnCiAgICAgICAgICAgOzsgZGVwZW5kcyBvbiB0aGUgUHl0
aG9uIGNvZGUgc2VudCBoZXJlLgotICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmct
bm8tb3V0cHV0IHB5dGhvbi1zaGVsbC1zZXR1cC1jb2RlKQogICAgICAgICAgIChweXRob24tc2hl
bGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0IHB5dGhvbi1zaGVsbC1ldmFsLXNldHVwLWNvZGUpCiAg
ICAgICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1vdXRwdXQgcHl0aG9uLXNoZWxs
LWV2YWwtZmlsZS1zZXR1cC1jb2RlKSkKICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKGN1
cnJlbnQtYnVmZmVyKQogICAgICAgICAgIChsZXQgKChpbmhpYml0LXF1aXQgbmlsKSkKKyAgICAg
ICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmcKKyAgICAgICAgICAgICAobWFwY29uY2F0
ICMnc3ltYm9sLXZhbHVlICcocHl0aG9uLXNoZWxsLXNldHVwLWNvZGUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAt
Y29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob24tc2hl
bGwtcGRiLXNldHVwLWNvZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHl0aG9uLWZmYXAtc2V0dXAtY29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBweXRob24tZWxkb2Mtc2V0dXAtY29kZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJcbiIpKQorICAgICAgICAgICAgKHB5dGhvbi1zaGVsbC1hY2NlcHQtcHJvY2Vzcy1vdXRw
dXQgKHB5dGhvbi1zaGVsbC1nZXQtcHJvY2VzcykpCiAgICAgICAgICAgICAocHl0aG9uLXNoZWxs
LXJlYWRsaW5lLWRldGVjdCkKICAgICAgICAgICAgIChydW4taG9va3MgJ3B5dGhvbi1zaGVsbC1m
aXJzdC1wcm9tcHQtaG9vaykpKSkpKQogICBvdXRwdXQpCkBAIC00NDU1LDcgKzQ0NjIsOCBAQCBw
eXRob24tc2hlbGwtc2VuZC1zZXR1cC1jb2RlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgo
c3ltYm9scCBlbHQpIChzeW1ib2wtdmFsdWUgZWx0KSkKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHQgIiIpKSkKICAgICAgICAgICAgICAgICAgIHB5dGhvbi1zaGVsbC1zZXR1cC1jb2Rlcwot
ICAgICAgICAgICAgICAgICAgIlxuXG5wcmludCAoJ3B5dGhvbi5lbDogc2VudCBzZXR1cCBjb2Rl
JykiKSkpKQorICAgICAgICAgICAgICAgICAgIlxuIikKKyAgICAgICAgICAgICAgICAgIlxucHJp
bnQgKCdweXRob24uZWw6IHNlbnQgc2V0dXAgY29kZScpIikpKQogICAgICAgKHB5dGhvbi1zaGVs
bC1zZW5kLXN0cmluZyBjb2RlIHByb2Nlc3MpCiAgICAgICAocHl0aG9uLXNoZWxsLWFjY2VwdC1w
cm9jZXNzLW91dHB1dCBwcm9jZXNzKSkpKQogCkBAIC00NTI5LDE2ICs0NTM3LDgxIEBAIHB5dGhv
bi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUKICAgICBmaW5hbGx5OgogICAgICAgICBpZiBn
ZXRhdHRyKGNvbXBsZXRlciwgJ1BZVEhPTl9FTF9XUkFQUEVEJywgRmFsc2UpOgogICAgICAgICAg
ICAgY29tcGxldGVyLnByaW50X21vZGUgPSBUcnVlCi0gICAgcmV0dXJuIGpzb24uZHVtcHMoY29t
cGxldGlvbnMpIgotICAiQ29kZSB1c2VkIHRvIHNldHVwIGNvbXBsZXRpb24gaW4gaW5mZXJpb3Ig
UHl0aG9uIHByb2Nlc3Nlcy4iCi0gIDp0eXBlICdzdHJpbmcpCisgICAgcmV0dXJuIGpzb24uZHVt
cHMoY29tcGxldGlvbnMpCisKK2RlZiBfX1BZVEhPTl9FTF93cmFwX2NvbXBsZXRlcigpOgorICAg
IGltcG9ydCByZWFkbGluZQorICAgIGNvbXBsZXRlciA9IHJlYWRsaW5lLmdldF9jb21wbGV0ZXIo
KQogCi0oZGVmdW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2VuZC1zZXR1cC1jb2RlICgpCi0g
ICJTZW5kIGBweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlJyB0byBpbmZlcmlvciBQ
eXRob24gcHJvY2Vzcy4iCi0gIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0IHB5
dGhvbi1zaGVsbC1jb21wbGV0aW9uLXNldHVwLWNvZGUpKQorICAgIGlmIG5vdCBjb21wbGV0ZXI6
CisgICAgICAgICMgVXNlZCBhcyBsYXN0IHJlc29ydCB0byBhdm9pZCBicmVha2luZyBjdXN0b21p
emF0aW9ucy4KKyAgICAgICAgaW1wb3J0IHJsY29tcGxldGVyCisgICAgICAgIGNvbXBsZXRlciA9
IHJlYWRsaW5lLmdldF9jb21wbGV0ZXIoKQogCi0oYWRkLWhvb2sgJ3B5dGhvbi1zaGVsbC1maXJz
dC1wcm9tcHQtaG9vawotICAgICAgICAgICMncHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2VuZC1z
ZXR1cC1jb2RlKQorICAgIGlmIGNvbXBsZXRlciBhbmQgbm90IGdldGF0dHIoY29tcGxldGVyLCAn
UFlUSE9OX0VMX1dSQVBQRUQnLCBGYWxzZSk6CisgICAgICAgIGNsYXNzIF9fUFlUSE9OX0VMX0Nv
bXBsZXRlcjoKKyAgICAgICAgICAgICcnJ0NvbXBsZXRlciB3cmFwcGVyIHRoYXQgcHJpbnRzIGNh
bmRpZGF0ZXMgdG8gc3Rkb3V0LgorCisgICAgICAgICAgICBJdCB3cmFwcyBhbiBleGlzdGluZyBj
b21wbGV0ZXIgZnVuY3Rpb24gYW5kIGNoYW5nZXMgaXRzIGJlaGF2aW9yIHNvCisgICAgICAgICAg
ICB0aGF0IHRoZSB1c2VyIGlucHV0IGlzIHVuY2hhbmdlZCBhbmQgcmVhbCBjYW5kaWRhdGVzIGFy
ZSBwcmludGVkIHRvCisgICAgICAgICAgICBzdGRvdXQuCisKKyAgICAgICAgICAgIFJldHVybmVk
IGNhbmRpZGF0ZXMgYXJlICcwX19kdW1teV9jb21wbGV0aW9uX18nIGFuZAorICAgICAgICAgICAg
JzFfX2R1bW15X2NvbXBsZXRpb25fXycgaW4gdGhhdCBvcmRlciAoJzBfX2R1bW15X2NvbXBsZXRp
b25fXycgaXMKKyAgICAgICAgICAgIHJldHVybmVkIHJlcGVhdGVkbHkgdW50aWwgYWxsIHBvc3Np
YmxlIGNhbmRpZGF0ZXMgYXJlIGNvbnN1bWVkKS4KKworICAgICAgICAgICAgVGhlIHJlYWwgY2Fu
ZGlkYXRlcyBhcmUgcHJpbnRlZCB0byBzdGRvdXQgc28gdGhhdCB0aGV5IGNhbiBiZQorICAgICAg
ICAgICAgZWFzaWx5IHJldHJpZXZlZCB0aHJvdWdoIGNvbWludCBvdXRwdXQgcmVkaXJlY3QgdHJp
Y2tlcnkuCisgICAgICAgICAgICAnJycKKworICAgICAgICAgICAgUFlUSE9OX0VMX1dSQVBQRUQg
PSBUcnVlCisKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb21wbGV0ZXIpOgorICAg
ICAgICAgICAgICAgIHNlbGYuY29tcGxldGVyID0gY29tcGxldGVyCisgICAgICAgICAgICAgICAg
c2VsZi5sYXN0X2NvbXBsZXRpb24gPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5wcmludF9t
b2RlID0gVHJ1ZQorCisgICAgICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgdGV4dCwgc3RhdGUp
OgorICAgICAgICAgICAgICAgIGlmIHN0YXRlID09IDA6CisgICAgICAgICAgICAgICAgICAgICMg
U2V0IHRoZSBmaXJzdCBkdW1teSBjb21wbGV0aW9uLgorICAgICAgICAgICAgICAgICAgICBzZWxm
Lmxhc3RfY29tcGxldGlvbiA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbiA9
ICcwX19kdW1teV9jb21wbGV0aW9uX18nCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICAgICAgY29tcGxldGlvbiA9IHNlbGYuY29tcGxldGVyKHRleHQsIHN0YXRlIC0gMSkK
KworICAgICAgICAgICAgICAgIGlmIG5vdCBjb21wbGV0aW9uOgorICAgICAgICAgICAgICAgICAg
ICBpZiBzZWxmLmxhc3RfY29tcGxldGlvbiAhPSAnMV9fZHVtbXlfY29tcGxldGlvbl9fJzoKKyAg
ICAgICAgICAgICAgICAgICAgICAgICMgV2hlbiBubyBtb3JlIGNvbXBsZXRpb25zIGFyZSBhdmFp
bGFibGUsIHJldHVybmluZyBhCisgICAgICAgICAgICAgICAgICAgICAgICAjIGR1bW15IHdpdGgg
bm9uLXNoYXJpbmcgcHJlZml4IGFsbG93IGVuc3VyaW5nIG91dHB1dAorICAgICAgICAgICAgICAg
ICAgICAgICAgIyB3aGlsZSBwcmV2ZW50aW5nIGNoYW5nZXMgdG8gY3VycmVudCBpbnB1dC4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICMgQ29pbmNpZGVudGFsbHkgaXQncyBhbHNvIHRoZSBlbmQg
b2Ygb3V0cHV0LgorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbiA9ICcxX19kdW1t
eV9jb21wbGV0aW9uX18nCisgICAgICAgICAgICAgICAgZWxpZiBjb21wbGV0aW9uLmVuZHN3aXRo
KCcoJyk6CisgICAgICAgICAgICAgICAgICAgICMgUmVtb3ZlIHBhcmVucyBvbiBjYWxsYWJsZXMg
YXMgaXQgYnJlYWtzIGNvbXBsZXRpb24gb24KKyAgICAgICAgICAgICAgICAgICAgIyBhcmd1bWVu
dHMgKGUuZy4gc3RyKEFyaTx0YWI+KSkuCisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb24g
PSBjb21wbGV0aW9uWzotMV0KKyAgICAgICAgICAgICAgICBzZWxmLmxhc3RfY29tcGxldGlvbiA9
IGNvbXBsZXRpb24KKworICAgICAgICAgICAgICAgIGlmIGNvbXBsZXRpb24gaW4gKAorICAgICAg
ICAgICAgICAgICAgICAgICAgJzBfX2R1bW15X2NvbXBsZXRpb25fXycsICcxX19kdW1teV9jb21w
bGV0aW9uX18nKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24KKyAgICAg
ICAgICAgICAgICBlbGlmIGNvbXBsZXRpb246CisgICAgICAgICAgICAgICAgICAgICMgRm9yIGV2
ZXJ5IG5vbi1kdW1teSBjb21wbGV0aW9uLCByZXR1cm4gYSByZXBlYXRlZCBkdW1teQorICAgICAg
ICAgICAgICAgICAgICAjIG9uZSBhbmQgcHJpbnQgdGhlIHJlYWwgY2FuZGlkYXRlIHNvIGl0IGNh
biBiZSByZXRyaWV2ZWQKKyAgICAgICAgICAgICAgICAgICAgIyBieSBjb21pbnQgb3V0cHV0IGZp
bHRlcnMuCisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYucHJpbnRfbW9kZToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50IChjb21wbGV0aW9uKQorICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICcwX19kdW1teV9jb21wbGV0aW9uX18nCisgICAgICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbgorICAgICAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uCisKKyAg
ICAgICAgIyBXcmFwIHRoZSBleGlzdGluZyBjb21wbGV0ZXIgZnVuY3Rpb24gb25seSBvbmNlLgor
ICAgICAgICBuZXdfY29tcGxldGVyID0gX19QWVRIT05fRUxfQ29tcGxldGVyKGNvbXBsZXRlcikK
KyAgICAgICAgcmVhZGxpbmUuc2V0X2NvbXBsZXRlcihuZXdfY29tcGxldGVyKSIKKyAgIkNvZGUg
dXNlZCB0byBzZXR1cCBjb21wbGV0aW9uIGluIGluZmVyaW9yIFB5dGhvbiBwcm9jZXNzZXMuIgor
ICA6dHlwZSAnc3RyaW5nKQogCiAoZGVmaW5lLW9ic29sZXRlLXZhcmlhYmxlLWFsaWFzCiAgICdw
eXRob24tc2hlbGwtY29tcGxldGlvbi1tb2R1bGUtc3RyaW5nLWNvZGUKQEAgLTQ2MjQsMTAzICs0
Njk3LDE2IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1zZXR1cAogZGVmIF9fUFlU
SE9OX0VMX25hdGl2ZV9jb21wbGV0aW9uX3NldHVwKCk6CiAgICAgdHJ5OgogICAgICAgICBpbXBv
cnQgcmVhZGxpbmUKKyAgICAgICAgX19QWVRIT05fRUxfd3JhcF9jb21wbGV0ZXIoKQogCisgICAg
ICAgICMgRW5zdXJlIHRoYXQgcmxjb21wbGV0ZXIuX19tYWluX18gYW5kIF9fbWFpbl9fIGFyZSBp
ZGVudGljYWwuCisgICAgICAgICMgKEJ1ZyM3NjIwNSkKKyAgICAgICAgaW1wb3J0IHN5cwogICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBpbXBvcnQgX19idWlsdGluX18KLSAgICAgICAgZXhjZXB0
IEltcG9ydEVycm9yOgotICAgICAgICAgICAgIyBQeXRob24gMwotICAgICAgICAgICAgaW1wb3J0
IGJ1aWx0aW5zIGFzIF9fYnVpbHRpbl9fCi0KLSAgICAgICAgYnVpbHRpbnMgPSBkaXIoX19idWls
dGluX18pCi0gICAgICAgIGlzX2lweXRob24gPSAoJ19fSVBZVEhPTl9fJyBpbiBidWlsdGlucyBv
cgotICAgICAgICAgICAgICAgICAgICAgICdfX0lQWVRIT05fX2FjdGl2ZScgaW4gYnVpbHRpbnMp
Ci0KLSAgICAgICAgY2xhc3MgX19QWVRIT05fRUxfQ29tcGxldGVyOgotICAgICAgICAgICAgJycn
Q29tcGxldGVyIHdyYXBwZXIgdGhhdCBwcmludHMgY2FuZGlkYXRlcyB0byBzdGRvdXQuCi0KLSAg
ICAgICAgICAgIEl0IHdyYXBzIGFuIGV4aXN0aW5nIGNvbXBsZXRlciBmdW5jdGlvbiBhbmQgY2hh
bmdlcyBpdHMgYmVoYXZpb3Igc28KLSAgICAgICAgICAgIHRoYXQgdGhlIHVzZXIgaW5wdXQgaXMg
dW5jaGFuZ2VkIGFuZCByZWFsIGNhbmRpZGF0ZXMgYXJlIHByaW50ZWQgdG8KLSAgICAgICAgICAg
IHN0ZG91dC4KLQotICAgICAgICAgICAgUmV0dXJuZWQgY2FuZGlkYXRlcyBhcmUgJzBfX2R1bW15
X2NvbXBsZXRpb25fXycgYW5kCi0gICAgICAgICAgICAnMV9fZHVtbXlfY29tcGxldGlvbl9fJyBp
biB0aGF0IG9yZGVyICgnMF9fZHVtbXlfY29tcGxldGlvbl9fJyBpcwotICAgICAgICAgICAgcmV0
dXJuZWQgcmVwZWF0ZWRseSB1bnRpbCBhbGwgcG9zc2libGUgY2FuZGlkYXRlcyBhcmUgY29uc3Vt
ZWQpLgotCi0gICAgICAgICAgICBUaGUgcmVhbCBjYW5kaWRhdGVzIGFyZSBwcmludGVkIHRvIHN0
ZG91dCBzbyB0aGF0IHRoZXkgY2FuIGJlCi0gICAgICAgICAgICBlYXNpbHkgcmV0cmlldmVkIHRo
cm91Z2ggY29taW50IG91dHB1dCByZWRpcmVjdCB0cmlja2VyeS4KLSAgICAgICAgICAgICcnJwot
Ci0gICAgICAgICAgICBQWVRIT05fRUxfV1JBUFBFRCA9IFRydWUKLQotICAgICAgICAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGNvbXBsZXRlcik6Ci0gICAgICAgICAgICAgICAgc2VsZi5jb21wbGV0
ZXIgPSBjb21wbGV0ZXIKLSAgICAgICAgICAgICAgICBzZWxmLmxhc3RfY29tcGxldGlvbiA9IE5v
bmUKLSAgICAgICAgICAgICAgICBzZWxmLnByaW50X21vZGUgPSBUcnVlCi0KLSAgICAgICAgICAg
IGRlZiBfX2NhbGxfXyhzZWxmLCB0ZXh0LCBzdGF0ZSk6Ci0gICAgICAgICAgICAgICAgaWYgc3Rh
dGUgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgIyBTZXQgdGhlIGZpcnN0IGR1bW15IGNvbXBs
ZXRpb24uCi0gICAgICAgICAgICAgICAgICAgIHNlbGYubGFzdF9jb21wbGV0aW9uID0gTm9uZQot
ICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uID0gJzBfX2R1bW15X2NvbXBsZXRpb25fXycK
LSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uID0g
c2VsZi5jb21wbGV0ZXIodGV4dCwgc3RhdGUgLSAxKQotCi0gICAgICAgICAgICAgICAgaWYgbm90
IGNvbXBsZXRpb246Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYubGFzdF9jb21wbGV0aW9u
ICE9ICcxX19kdW1teV9jb21wbGV0aW9uX18nOgotICAgICAgICAgICAgICAgICAgICAgICAgIyBX
aGVuIG5vIG1vcmUgY29tcGxldGlvbnMgYXJlIGF2YWlsYWJsZSwgcmV0dXJuaW5nIGEKLSAgICAg
ICAgICAgICAgICAgICAgICAgICMgZHVtbXkgd2l0aCBub24tc2hhcmluZyBwcmVmaXggYWxsb3cg
ZW5zdXJpbmcgb3V0cHV0Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIHdoaWxlIHByZXZlbnRp
bmcgY2hhbmdlcyB0byBjdXJyZW50IGlucHV0LgotICAgICAgICAgICAgICAgICAgICAgICAgIyBD
b2luY2lkZW50YWxseSBpdCdzIGFsc28gdGhlIGVuZCBvZiBvdXRwdXQuCi0gICAgICAgICAgICAg
ICAgICAgICAgICBjb21wbGV0aW9uID0gJzFfX2R1bW15X2NvbXBsZXRpb25fXycKLSAgICAgICAg
ICAgICAgICBlbGlmIGNvbXBsZXRpb24uZW5kc3dpdGgoJygnKToKLSAgICAgICAgICAgICAgICAg
ICAgIyBSZW1vdmUgcGFyZW5zIG9uIGNhbGxhYmxlcyBhcyBpdCBicmVha3MgY29tcGxldGlvbiBv
bgotICAgICAgICAgICAgICAgICAgICAjIGFyZ3VtZW50cyAoZS5nLiBzdHIoQXJpPHRhYj4pKS4K
LSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbiA9IGNvbXBsZXRpb25bOi0xXQotICAgICAg
ICAgICAgICAgIHNlbGYubGFzdF9jb21wbGV0aW9uID0gY29tcGxldGlvbgotCi0gICAgICAgICAg
ICAgICAgaWYgY29tcGxldGlvbiBpbiAoCi0gICAgICAgICAgICAgICAgICAgICAgICAnMF9fZHVt
bXlfY29tcGxldGlvbl9fJywgJzFfX2R1bW15X2NvbXBsZXRpb25fXycpOgotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gY29tcGxldGlvbgotICAgICAgICAgICAgICAgIGVsaWYgY29tcGxldGlv
bjoKLSAgICAgICAgICAgICAgICAgICAgIyBGb3IgZXZlcnkgbm9uLWR1bW15IGNvbXBsZXRpb24s
IHJldHVybiBhIHJlcGVhdGVkIGR1bW15Ci0gICAgICAgICAgICAgICAgICAgICMgb25lIGFuZCBw
cmludCB0aGUgcmVhbCBjYW5kaWRhdGUgc28gaXQgY2FuIGJlIHJldHJpZXZlZAotICAgICAgICAg
ICAgICAgICAgICAjIGJ5IGNvbWludCBvdXRwdXQgZmlsdGVycy4KLSAgICAgICAgICAgICAgICAg
ICAgaWYgc2VsZi5wcmludF9tb2RlOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgKGNv
bXBsZXRpb24pCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzBfX2R1bW15X2NvbXBs
ZXRpb25fXycKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24KLQotICAgICAgICBjb21wbGV0ZXIgPSByZWFkbGlu
ZS5nZXRfY29tcGxldGVyKCkKLQotICAgICAgICBpZiBub3QgY29tcGxldGVyOgotICAgICAgICAg
ICAgIyBVc2VkIGFzIGxhc3QgcmVzb3J0IHRvIGF2b2lkIGJyZWFraW5nIGN1c3RvbWl6YXRpb25z
LgotICAgICAgICAgICAgaW1wb3J0IHJsY29tcGxldGVyCi0gICAgICAgICAgICBjb21wbGV0ZXIg
PSByZWFkbGluZS5nZXRfY29tcGxldGVyKCkKLQotICAgICAgICBpZiBjb21wbGV0ZXIgYW5kIG5v
dCBnZXRhdHRyKGNvbXBsZXRlciwgJ1BZVEhPTl9FTF9XUkFQUEVEJywgRmFsc2UpOgotICAgICAg
ICAgICAgIyBXcmFwIHRoZSBleGlzdGluZyBjb21wbGV0ZXIgZnVuY3Rpb24gb25seSBvbmNlLgot
ICAgICAgICAgICAgbmV3X2NvbXBsZXRlciA9IF9fUFlUSE9OX0VMX0NvbXBsZXRlcihjb21wbGV0
ZXIpCi0gICAgICAgICAgICBpZiBub3QgaXNfaXB5dGhvbjoKLSAgICAgICAgICAgICAgICByZWFk
bGluZS5zZXRfY29tcGxldGVyKG5ld19jb21wbGV0ZXIpCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgICMgRW5zdXJlIHRoYXQgcmxjb21wbGV0ZXIuX19tYWluX18gYW5kIF9fbWFp
bl9fIGFyZSBpZGVudGljYWwuCi0gICAgICAgICAgICAgICAgIyAoQnVnIzc2MjA1KQotICAgICAg
ICAgICAgICAgIGltcG9ydCBzeXMKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgICAgIHN5cy5tb2R1bGVzWydybGNvbXBsZXRlciddLl9fbWFpbl9fID0gc3lzLm1vZHVsZXNb
J19fbWFpbl9fJ10KLSAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAg
ICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgICAgICAjIFRyeSBib3RoIGluaXRpYWxpemF0aW9u
cyB0byBjb3BlIHdpdGggYWxsIElQeXRob24gdmVyc2lvbnMuCi0gICAgICAgICAgICAgICAgIyBU
aGlzIHdvcmtzIGZpbmUgZm9yIElQeXRob24gMy54IGJ1dCBub3QgZm9yIGVhcmxpZXI6Ci0gICAg
ICAgICAgICAgICAgcmVhZGxpbmUuc2V0X2NvbXBsZXRlcihuZXdfY29tcGxldGVyKQotICAgICAg
ICAgICAgICAgICMgSVB5dGhvbjwzIGhhY2tzIHJlYWRsaW5lIHN1Y2ggdGhhdCBgcmVhZGxpbmUu
c2V0X2NvbXBsZXRlcmAKLSAgICAgICAgICAgICAgICAjIHdvbid0IHdvcmsuICBUaGlzIHdvcmth
cm91bmQgaW5qZWN0cyB0aGUgbmV3IGNvbXBsZXRlcgotICAgICAgICAgICAgICAgICMgZnVuY3Rp
b24gaW50byB0aGUgZXhpc3RpbmcgaW5zdGFuY2UgZGlyZWN0bHk6Ci0gICAgICAgICAgICAgICAg
aW5zdGFuY2UgPSBnZXRhdHRyKGNvbXBsZXRlciwgJ2ltX3NlbGYnLCBjb21wbGV0ZXIuX19zZWxm
X18pCi0gICAgICAgICAgICAgICAgaW5zdGFuY2Uucmxjb21wbGV0ZSA9IG5ld19jb21wbGV0ZXIK
KyAgICAgICAgICAgIF9fSVBZVEhPTl9fCisgICAgICAgICAgICBzeXMubW9kdWxlc1sncmxjb21w
bGV0ZXInXS5fX21haW5fXyA9IHN5cy5tb2R1bGVzWydfX21haW5fXyddCisgICAgICAgIGV4Y2Vw
dCAoTmFtZUVycm9yLCBLZXlFcnJvcik6CisgICAgICAgICAgICBwYXNzCiAKICAgICAgICAgaWYg
cmVhZGxpbmUuX19kb2NfXyBhbmQgJ2xpYmVkaXQnIGluIHJlYWRsaW5lLl9fZG9jX186CiAgICAg
ICAgICAgICByYWlzZSBFeGNlcHRpb24oJycnbGliZWRpdCBiYXNlZCByZWFkbGluZSBpcyBrbm93
biBub3QgdG8gd29yaywKQEAgLTQ5NDQsOCArNDkzMCwxNyBAQCBweXRob24tc2hlbGwtY29tcGxl
dGlvbi1hdC1wb2ludAogICAgICAgICAgICAgICAgICAgICAgICAgIDs7IFdvcmtpbmcgb24gYSBz
aGVsbCBidWZmZXI6IHVzZSBwcm9tcHQgZW5kLgogICAgICAgICAgICAgICAgICAgICAgICAgIChj
ZHIgKHB5dGhvbi11dGlsLWNvbWludC1sYXN0LXByb21wdCkpCiAgICAgICAgICAgICAgICAgICAg
ICAgIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKQorICAgICAgICAgKHByb21wdC1ib3VuZGFy
aWVzCisgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nl
c3MpCisgICAgICAgICAgICAocHl0aG9uLXV0aWwtY29taW50LWxhc3QtcHJvbXB0KSkpCisgICAg
ICAgICAocHJvbXB0CisgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVm
ZmVyIHByb2Nlc3MpCisgICAgICAgICAgICAod2hlbiBwcm9tcHQtYm91bmRhcmllcworICAgICAg
ICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAo
Y2FyIHByb21wdC1ib3VuZGFyaWVzKSAoY2RyIHByb21wdC1ib3VuZGFyaWVzKSkpKSkKICAgICAg
ICAgIChuby1kZWxpbXMKLSAgICAgICAgICAoYW5kIChub3QgKGlmIGlzLXNoZWxsLWJ1ZmZlcgor
ICAgICAgICAgIChhbmQgKG5vdCAoc3RyaW5nLW1hdGNoLXAgcHl0aG9uLXNoZWxsLXByb21wdC1w
ZGItcmVnZXhwIHByb21wdCkpCisgICAgICAgICAgICAgICAobm90IChpZiBpcy1zaGVsbC1idWZm
ZXIKICAgICAgICAgICAgICAgICAgICAgICAgIChlcSAnZm9udC1sb2NrLWNvbW1lbnQtZmFjZQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZXQtdGV4dC1wcm9wZXJ0eSAoMS0gKHBvaW50
KSkgJ2ZhY2UpKQogICAgICAgICAgICAgICAgICAgICAgIChweXRob24tc3ludGF4LWNvbnRleHQg
J2NvbW1lbnQpKSkKQEAgLTQ5NjksMTQgKzQ5NjQsNiBAQCBweXRob24tc2hlbGwtY29tcGxldGlv
bi1hdC1wb2ludAogICAgICAgICAgICAgICAgIChmb3J3YXJkLWNoYXIgKGxlbmd0aCAobWF0Y2gt
c3RyaW5nLW5vLXByb3BlcnRpZXMgMCkpKQogICAgICAgICAgICAgICAgIChwb2ludCkpKSkpCiAg
ICAgICAgICAoZW5kIChwb2ludCkpCi0gICAgICAgICAocHJvbXB0LWJvdW5kYXJpZXMKLSAgICAg
ICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAocHJvY2Vzcy1idWZmZXIgcHJvY2VzcykKLSAgICAg
ICAgICAgIChweXRob24tdXRpbC1jb21pbnQtbGFzdC1wcm9tcHQpKSkKLSAgICAgICAgIChwcm9t
cHQKLSAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAocHJvY2Vzcy1idWZmZXIgcHJvY2Vz
cykKLSAgICAgICAgICAgICh3aGVuIHByb21wdC1ib3VuZGFyaWVzCi0gICAgICAgICAgICAgIChi
dWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKLSAgICAgICAgICAgICAgIChjYXIgcHJvbXB0
LWJvdW5kYXJpZXMpIChjZHIgcHJvbXB0LWJvdW5kYXJpZXMpKSkpKQogICAgICAgICAgKGNvbXBs
ZXRpb24tZm4KICAgICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAocHJvY2Vzcy1idWZmZXIg
cHJvY2VzcykKICAgICAgICAgICAgIChjb25kICgob3IgKG51bGwgcHJvbXB0KQpAQCAtNDk4Niwx
MyArNDk3Myw3IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaC1wCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB5dGhvbi1zaGVsbC1wcm9tcHQtcGRiLXJlZ2V4cCBwcm9tcHQpKSkKICAgICAgICAg
ICAgICAgICAgICAjJ2lnbm9yZSkKLSAgICAgICAgICAgICAgICAgICgob3IgKG5vdCBweXRob24t
c2hlbGwtY29tcGxldGlvbi1uYXRpdmUtZW5hYmxlKQotICAgICAgICAgICAgICAgICAgICAgICA7
OyBFdmVuIGlmIG5hdGl2ZSBjb21wbGV0aW9uIGlzIGVuYWJsZWQsIGZvcgotICAgICAgICAgICAg
ICAgICAgICAgICA7OyBwZGIgaW50ZXJhY3Rpb24gYWx3YXlzIHVzZSB0aGUgZmFsbGJhY2sKLSAg
ICAgICAgICAgICAgICAgICAgICAgOzsgbWVjaGFuaXNtIHNpbmNlIHRoZSBjb21wbGV0ZXIgaXMg
Y2hhbmdlZC4KLSAgICAgICAgICAgICAgICAgICAgICAgOzsgQWxzbywgc2luY2UgcGRiIGludGVy
YWN0aW9uIGlzIHNpbmdsZS1saW5lCi0gICAgICAgICAgICAgICAgICAgICAgIDs7IGJhc2VkLCB0
aGlzIGlzIGVub3VnaC4KLSAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaC1wIHB5
dGhvbi1zaGVsbC1wcm9tcHQtcGRiLXJlZ2V4cCBwcm9tcHQpKQorICAgICAgICAgICAgICAgICAg
KChub3QgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLWVuYWJsZSkKICAgICAgICAgICAg
ICAgICAgICAoaWYgKG9yIChlcXVhbCBweXRob24tc2hlbGwtLWJsb2NrLXByb21wdCBwcm9tcHQp
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBweXRob24tc2hlbGwtcHJvbXB0LWJsb2NrLXJlZ2V4cCBwcm9tcHQp
KQpAQCAtNTA3NCw2ICs1MDU1LDU1IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWNvbXBsZXRl
LW9yLWluZGVudAogDAogOzs7IFBEQiBUcmFjayBpbnRlZ3JhdGlvbgogCisoZGVmY29uc3QgcHl0
aG9uLXNoZWxsLXBkYi1zZXR1cC1jb2RlCisgICJcCitkZWYgX19QWVRIT05fRUxfUGRiX3NldHVw
KCk6CisgICAgaW1wb3J0IHBkYgorCisgICAgY2xhc3MgX1BZVEhPTl9FTF9QZGIocGRiLlBkYiwg
b2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAg
ICAgICAgIHN1cGVyKF9QWVRIT05fRUxfUGRiLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprdykK
KyAgICAgICAgICAgIGltcG9ydCByZQorICAgICAgICAgICAgc2VsZi5fcHl0aG9uX2VsX2RlZl9w
YXR0ZXJuID0gcmUuY29tcGlsZSgnX18oUFlUSE9OX0VMfEZGQVB8UFlET0MpXycpCisgICAgICAg
ICAgICBzZWxmLl9weXRob25fZWxfZGVmcyA9IHt9CisgICAgICAgICAgICBmb3IgaywgdiBpbiBn
bG9iYWxzKCkuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9weXRob25fZWxfZGVm
X3BhdHRlcm4ubWF0Y2goayk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3B5dGhvbl9lbF9k
ZWZzW2tdID0gdgorCisgICAgICAgIGRlZiBfcHl0aG9uX2VsX3NldHVwKHNlbGYpOgorICAgICAg
ICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ2N1cmZyYW1lJykgb3Igc2VsZi5jdXJmcmFtZSBp
cyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgZnJhbWVfZ2xvYmFs
cyA9IHNlbGYuY3VyZnJhbWUuZl9nbG9iYWxzCisgICAgICAgICAgICBpZiAnX19QWVRIT05fRUxf
ZXZhbCcgbm90IGluIGZyYW1lX2dsb2JhbHM6CisgICAgICAgICAgICAgICAgZm9yIGssIHYgaW4g
c2VsZi5fcHl0aG9uX2VsX2RlZnMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICAgICAgZnJhbWVf
Z2xvYmFsc1trXSA9IHYKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBmcmFtZV9n
bG9iYWxzWydfX1BZVEhPTl9FTF93cmFwX2NvbXBsZXRlciddKCkKKyAgICAgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICBwcmludCgnZmFpbGVkIHRvIHNldHVw
IGNvbXBsZXRlcjoge30nLmZvcm1hdChzdHIoZSkpKQorCisgICAgICAgIGRlZiBwcmVsb29wKHNl
bGYpOgorICAgICAgICAgICAgc3VwZXIoX1BZVEhPTl9FTF9QZGIsIHNlbGYpLnByZWxvb3AoKQor
ICAgICAgICAgICAgIyBUcmlnZ2VyIHByZWNtZC9wb3N0Y21kIHdoZW4gZW50ZXJpbmcgcGRiLgor
ICAgICAgICAgICAgc2VsZi5jbWRxdWV1ZS5hcHBlbmQoJ3Bhc3MgICMgX19QWVRIT05fRUxfJykK
KworICAgICAgICBkZWYgcHJlY21kKHNlbGYsIGxpbmUpOgorICAgICAgICAgICAgaWYgc2VsZi5f
cHl0aG9uX2VsX2RlZl9wYXR0ZXJuLnNlYXJjaChsaW5lKToKKyAgICAgICAgICAgICAgICBzZWxm
Ll9yZWFsX2xhc3RjbWQgPSBzZWxmLmxhc3RjbWQKKyAgICAgICAgICAgIHJldHVybiBzdXBlcihf
UFlUSE9OX0VMX1BkYiwgc2VsZikucHJlY21kKGxpbmUpCisKKyAgICAgICAgZGVmIHBvc3RjbWQo
c2VsZiwgc3RvcCwgbGluZSk6CisgICAgICAgICAgICBzZWxmLl9weXRob25fZWxfc2V0dXAoKQor
ICAgICAgICAgICAgaWYgc2VsZi5fcHl0aG9uX2VsX2RlZl9wYXR0ZXJuLnNlYXJjaChsaW5lKToK
KyAgICAgICAgICAgICAgICBzZWxmLmxhc3RjbWQgPSBzZWxmLl9yZWFsX2xhc3RjbWQKKyAgICAg
ICAgICAgIHJldHVybiBzdXBlcihfUFlUSE9OX0VMX1BkYiwgc2VsZikucG9zdGNtZChzdG9wLCBs
aW5lKQorCisgICAgcGRiLlBkYiA9IF9QWVRIT05fRUxfUGRiCisKK19fUFlUSE9OX0VMX1BkYl9z
ZXR1cCgpCitkZWwgX19QWVRIT05fRUxfUGRiX3NldHVwIgorICAiQ29kZSB1c2VkIHRvIHNldHVw
IHRoZSBkZWJ1Z2dlciBpbiBpbmZlcmlvciBQeXRob24gcHJvY2Vzc2VzLiIpCisKIChkZWZjdXN0
b20gcHl0aG9uLXBkYnRyYWNrLWFjdGl2YXRlIHQKICAgIk5vbi1uaWwgbWFrZXMgUHl0aG9uIHNo
ZWxsIGVuYWJsZSBwZGJ0cmFja2luZy4KIFBkYnRyYWNraW5nIHdvdWxkIG9wZW4gdGhlIGZpbGUg
Zm9yIGN1cnJlbnQgc3RhY2sgZnJhbWUgZm91bmQgaW4gcGRiIG91dHB1dCBieQpAQCAtNTcxNCw4
ICs1NzQ0LDcgQEAgcHl0aG9uLWZmYXAtbW9kdWxlLXBhdGgKICAgICAgICAgICAgICAgICAgICAg
ICAocHl0aG9uLXV0aWwtY29taW50LWVuZC1vZi1vdXRwdXQtcCkpKQogICAgICAgICAgICAgICAo
bW9kdWxlLWZpbGUKICAgICAgICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8t
b3V0cHV0Ci0gICAgICAgICAgICAgICAgKGZvcm1hdCAiJXNcbnByaW50KF9fRkZBUF9nZXRfbW9k
dWxlX3BhdGgoJXMpKSIKLSAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhvbi1mZmFwLXNldHVw
LWNvZGUKKyAgICAgICAgICAgICAgICAoZm9ybWF0ICJwcmludChfX0ZGQVBfZ2V0X21vZHVsZV9w
YXRoKCVzKSkiCiAgICAgICAgICAgICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLS1lbmNvZGUt
c3RyaW5nIG1vZHVsZSkpKSkpCiAgICAgKHVubGVzcyAoc3RyaW5nLWVtcHR5LXAgbW9kdWxlLWZp
bGUpCiAgICAgICAocHl0aG9uLXV0aWwtc3RyaXAtc3RyaW5nIG1vZHVsZS1maWxlKSkpKQpAQCAt
NTgzOCwxMCArNTg2Nyw4IEBAIHB5dGhvbi1lbGRvYy0tZ2V0LWRvYy1hdC1wb2ludAogICAgICAg
ICAgICAgICAgIDs7IGVuYWJsZWQuICBCdWcjMTg3OTQuCiAgICAgICAgICAgICAgICAgKHB5dGhv
bi11dGlsLXN0cmlwLXN0cmluZwogICAgICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLXNlbmQt
c3RyaW5nLW5vLW91dHB1dAotICAgICAgICAgICAgICAgICAgKGZvcm1hdAotICAgICAgICAgICAg
ICAgICAgICIlc1xucHJpbnQoX19QWURPQ19nZXRfaGVscCglcykpIgotICAgICAgICAgICAgICAg
ICAgIHB5dGhvbi1lbGRvYy1zZXR1cC1jb2RlCi0gICAgICAgICAgICAgICAgICAgKHB5dGhvbi1z
aGVsbC0tZW5jb2RlLXN0cmluZyBpbnB1dCkpCisgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJw
cmludChfX1BZRE9DX2dldF9oZWxwKCVzKSkiCisgICAgICAgICAgICAgICAgICAgICAgICAgIChw
eXRob24tc2hlbGwtLWVuY29kZS1zdHJpbmcgaW5wdXQpKQogICAgICAgICAgICAgICAgICAgcHJv
Y2VzcykpKSkpCiAgICAgICAgICh1bmxlc3MgKHN0cmluZy1lbXB0eS1wIGRvY3N0cmluZykKICAg
ICAgICAgICBkb2NzdHJpbmcpKSkpKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9w
eXRob24tdGVzdHMuZWwgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbAppbmRl
eCBlZWEzNWI4NjRlMS4uZTVmZjViMzgyOWIgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9wcm9nbW9k
ZXMvcHl0aG9uLXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3Rz
LmVsCkBAIC01MTI2LDYgKzUxMjYsNDkgQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9p
bnQtaXB5dGhvbgogDAogOzs7IFBEQiBUcmFjayBpbnRlZ3JhdGlvbgogCisoZGVmdW4gcHl0aG9u
LXRlc3RzLS1wZGItMSAoKQorICAoaW5zZXJ0ICJuZXgiKQorICAoY29tcGxldGlvbi1hdC1wb2lu
dCkKKyAgKGJlZ2lubmluZy1vZi1saW5lKQorICAoc2hvdWxkIChzdHJpbmc9ICJuZXh0IgorICAg
ICAgICAgICAgICAgICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAg
ICAgICAgICAgICAgKHBvaW50KSAocG9zLWVvbCkpKSkKKyAgKGNvbWludC1zZW5kLWlucHV0KQor
ICAocHl0aG9uLXNoZWxsLWFjY2VwdC1wcm9jZXNzLW91dHB1dCAocHl0aG9uLXNoZWxsLWdldC1w
cm9jZXNzKSkKKyAgKHNob3VsZCAoZmlsZS1leGlzdHMtcCAocHl0aG9uLWZmYXAtbW9kdWxlLXBh
dGggImFiYyIpKSkpCisKKyhlcnQtZGVmdGVzdCBweXRob24tc2hlbGwtcGRiLTEgKCkKKyAgIkNo
ZWNrIGlmIGNvbXBsZXRpb24gYW5kIGZmYXAgd29ya3MgaW4gUGRiLiIKKyAgKGVydC13aXRoLXRl
bXAtZGlyZWN0b3J5IGRpcgorICAgIChsZXQgKChpbmhpYml0LW1lc3NhZ2UgdCkKKyAgICAgICAg
ICAoZGVmYXVsdC1kaXJlY3RvcnkgZGlyKSkKKyAgICAgICh3cml0ZS1yZWdpb24gImRlZiBmMSgp
OgorICAgIGJyZWFrcG9pbnQoKQorICAgIHggPSAxCisgICAgeSA9IDIKKyAgICByZXR1cm4geCt5
IiBuaWwgInRlc3QxLnB5IikKKyAgICAgIChweXRob24tdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlci13
aXRoLXNoZWxsLWludGVycHJldGVyCisgICAgICAgbmlsCisgICAgICAgImltcG9ydCBhYmMKK2Zy
b20gdGVzdDEgaW1wb3J0IGYxCitmMSgpCisiCisgICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLWJ1
ZmZlcikKKyAgICAgICAocHl0aG9uLXNoZWxsLWFjY2VwdC1wcm9jZXNzLW91dHB1dCAocHl0aG9u
LXNoZWxsLWdldC1wcm9jZXNzKSkKKyAgICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVm
ZmVyCisgICAgICAgICAoc2tpcC11bmxlc3MgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRl
ci1kZWxpbXMpCisgICAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4t
b2ZmKQorICAgICAgICAgKHB5dGhvbi10ZXN0cy0tcGRiLTEpCisgICAgICAgICAoaW5zZXJ0ICJj
IikKKyAgICAgICAgIChjb21pbnQtc2VuZC1pbnB1dCkKKyAgICAgICAgIChweXRob24tc2hlbGwt
YWNjZXB0LXByb2Nlc3Mtb3V0cHV0IChweXRob24tc2hlbGwtZ2V0LXByb2Nlc3MpKQorICAgICAg
ICAgKHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9uKQorICAgICAgICAgKHdo
ZW4gcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLWVuYWJsZQorICAgICAgICAgICAoaW5z
ZXJ0ICJmMSgpIikKKyAgICAgICAgICAgKGNvbWludC1zZW5kLWlucHV0KQorICAgICAgICAgICAo
cHl0aG9uLXNoZWxsLWFjY2VwdC1wcm9jZXNzLW91dHB1dCAocHl0aG9uLXNoZWxsLWdldC1wcm9j
ZXNzKSkKKyAgICAgICAgICAgKHB5dGhvbi10ZXN0cy0tcGRiLTEpKSkpKSkpCisKIAwKIDs7OyBT
eW1ib2wgY29tcGxldGlvbgogCi0tIAoyLjQzLjAKCg==
--0000000000008acfc30649e86d09--
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.Received: (at 80182) by debbugs.gnu.org; 31 Jan 2026 14:18:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 31 09:18:57 2026 Received: from localhost ([127.0.0.1]:52403 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vmBoO-0005jC-MV for submit <at> debbugs.gnu.org; Sat, 31 Jan 2026 09:18:57 -0500 Received: from mail-pj1-x102a.google.com ([2607:f8b0:4864:20::102a]:54510) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <kobarity@HIDDEN>) id 1vmBoM-0005j3-6d for 80182 <at> debbugs.gnu.org; Sat, 31 Jan 2026 09:18:55 -0500 Received: by mail-pj1-x102a.google.com with SMTP id 98e67ed59e1d1-35305538592so2706152a91.0 for <80182 <at> debbugs.gnu.org>; Sat, 31 Jan 2026 06:18:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769869133; x=1770473933; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=tXBEfQaSkoMtSk+uMekDfGWcaYiZ6X9Yjbc30TN8DQk=; b=T7FmxpXd5d8tGUu0kz9i8xJfATY/Ai3XNR4a3xmsdp10E5PTHkz9LDUFzKz2kB0Sfo ru84UYOS/hy2ZDYyJWb6yA18XZcN/T5SUBhNKrFMsPEManZkKCOozgBPKV/SRY/IWDuX gu2B/CcEdf2kqpkR1i+9wol/y20TlgIYw874FrPwZUshWp6NIoTMeR38iVFDwvgTCPdc cUG1pT/0wT0d/XGwZFvroTY9cFNaVRRgMzUt14n9BOhSUTASXddu8Ba0AMiIuZzLMsAi oZVJONIOyyzbC4G4BB9uanJJPiXM5KxmZIJqrjZ2tbAujMJEPlvt/OzN5Gn1tEHCSkF1 AU/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769869133; x=1770473933; h=content-transfer-encoding:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=tXBEfQaSkoMtSk+uMekDfGWcaYiZ6X9Yjbc30TN8DQk=; b=RNgma3Wl+4fBBdMtxhGYfYgk571pbmSAEiUucI2w28ARFPSAKIyivWnqsGX+sUVfnY YXd2I2QlsE99Q1Sy3GrDitmXtVlhY7rwgYmEqPGyNOURdMluc/GfMBJcdxrYNvky3Gvk KjiJVuj8+yDAu5mDY+uAXUx2266RdgyE6H5r8g8pAjLtcsOdtj+hTSnLCtZ2e3N/gfni KYNDByd7Wz5pMTzA/P0EgZhPfJSolqjqAXQ/kLu+gVtS9kmEWkc0ma92In0Q1ObPXx3P d+oBI/aVKpU9QI3FyaDPzrecZtL9PUp6Km/aaHBSIUoTyw2WVdLDLxKYiYQpjN/HEbUG jl+g== X-Gm-Message-State: AOJu0Yxs7BGhDjc9AUXWM8z6QK0vKLYVmq2kD6ziJ+gaGueSu7fNJdSv q0pWXaVEgklqqHsz6p2Pwb024+n2BO1EtRszBkcsg2OfroI7BjPpFE7x X-Gm-Gg: AZuq6aJMSazNJA7vnkwT8BUkoMDPmGwl16NOYc+QbZ95MQTvKzbwj1OW2akdfG+nW7n /AJYtEPSRnIS5xRpxZQxYDVg4GaBHVREuI582oH/ofc/O73d4YXXHzxDe+oDULtBOgxcGmLsApU 7haCekmsj8+20FgE7grmxo0BJYtTfpja2AvzsTD2yQpOs2G2+0rRQqjTI9EoJoT8S4ebhZlEiQj xuGXQ65OoCXG599aSxHM6WvnCduznOsINhGea8R1gAHh+XjqPkla/w9VpJL4hOKOfpn7KKi0hoX gjDIFSBjx/aSy4cydh9+kbNunCfs3WCC98PEM91zCsi+WdwOAhhttTovA9PGALSnZz5sZ8cjADi 88llTdD6zseWD7PtTlJVR8aQEif4ABCShDkejiBmIV+5tDGM88QrLvilGDhX37WDpBJsFpS+/dY YYqKCUF+eVpkWEU+/RC1qUOAyF1taDPKbYFDdnjKx2BozCOWW4rac= X-Received: by 2002:a17:90b:5868:b0:353:2e1:9605 with SMTP id 98e67ed59e1d1-3543b2df79cmr7411953a91.6.1769869132944; Sat, 31 Jan 2026 06:18:52 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3543d5afb5dsm1878522a91.8.2026.01.31.06.18.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Jan 2026 06:18:52 -0800 (PST) Date: Sat, 31 Jan 2026 23:18:51 +0900 Message-ID: <eke7jywx3lx0.wl-kobarity@HIDDEN> From: kobarity <kobarity@HIDDEN> To: Liu Hui <liuhui1610@HIDDEN> Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native completion in python.el In-Reply-To: <CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN> References: <eke7a4ykpjep.wl-kobarity@HIDDEN> <CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN> <eke78qdyq5ef.wl-kobarity@HIDDEN> <CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN> <eke78qdr2edy.wl-kobarity@HIDDEN> <eke7ldhl3lcs.wl-kobarity@HIDDEN> <CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/31.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 80182 Cc: 80182 <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.0 (/) Liu Hui wrote: >=20 > On Sun, Jan 25, 2026 at 8:52=E2=80=AFPM kobarity <kobarity@HIDDEN> wro= te: >=20 > > > > I have a question about python-shell-setup-code: is it necessary for > > > > sending python-shell-eval(-file)-setup-code? If not, I'd like to mo= ve > > > > it below. > > > > > > Moving it is fine. >=20 > Done. >=20 > > > I'm considering changing it as follows to avoid polluting globals, bu= t I > > > think it might be better to make it a separate patch. >=20 > Agree. >=20 > > > (defconst python-shell-setup-code > > > "\ > > > def __PYTHON_EL_setup(): > > > try: > > > import termios > > > except ImportError: > > > pass > > > else: > > > attr =3D termios.tcgetattr(0) > > > attr[3] &=3D ~termios.ECHO > > > termios.tcsetattr(0, termios.TCSADRAIN, attr) > > > > > > __PYTHON_EL_setup() > > > del __PYTHON_EL_setup" > > > "Code used to setup the inferior Python processes.") > > > > > > > > I've integrated the code into __PYTHON_EL_native_completion_setup= . To > > > > > prevent the message from appearing repeatedly after pressing Enter > > > > > following PDB startup, I've also added the pass command. What do= you > > > > > think? > > > > > > > > Thanks. The message was mainly used to trigger pre/postcmd hooks, a= nd > > > > I think 'pass' is a better placeholder. Maybe the message could be > > > > removed? > > > > > > I agree. >=20 > Removed. >=20 > > > I'd like to take a look at your patch over the weekend and try it out > > > more. > > > > It seems to function properly. To reduce global symbols, how about > > moving the classes into the functions as shown in the attached patch? >=20 > Thanks, I have updated the patch as suggested. I have also added a > test for pdb. Thanks, it looks good to me. Since the custom variable `python-shell-completion-setup-code' has been modified, it might be best to announce it in etc/NEWS. I don't think many people are changing it, though.
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
Received: (at 80182) by debbugs.gnu.org; 30 Jan 2026 10:16:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jan 30 05:16:57 2026
Received: from localhost ([127.0.0.1]:37945 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vllYb-00017t-N7
for submit <at> debbugs.gnu.org; Fri, 30 Jan 2026 05:16:57 -0500
Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:49517)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <liuhui1610@HIDDEN>)
id 1vllYX-00017P-D5
for 80182 <at> debbugs.gnu.org; Fri, 30 Jan 2026 05:16:52 -0500
Received: by mail-wr1-x435.google.com with SMTP id
ffacd0b85a97d-43284ed32a0so1060443f8f.3
for <80182 <at> debbugs.gnu.org>; Fri, 30 Jan 2026 02:16:49 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1769768208; cv=none;
d=google.com; s=arc-20240605;
b=bLv86Bp1PWY0fVYlA4CDMjesmXni/79lQkD0FlIPudQ9xcKLDPYEhXqxd1AmAaPF+m
c8NCITELP+DKCqxlwmQIH1AgM3y7e8CqqcF4vCTr9358pbfRrkg8iqYvc50D9AqL+J4s
Yg0d31GArGeHwX8lIEje8cn8GN0z0k/qpkAPpOy/BOfW6aIwhMzYQlZDDQJcvRudh+0o
QKOsGCtwb7I/Vuy9WkV/aGofGN0LNV+wQZj7g4ns5QsEF5jSSutw54tR3md7Q4z1t1nb
+8tV2hKrVyw9fk7xRGnt+gmzoACxhCxtmI/IfJ5wLV8Rvk+rqG0UoCGiauUwSPJwsuL0
MQcA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
s=arc-20240605;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:dkim-signature;
bh=uaNCOVmREF+QfY4jaQWer5EA6JO+SGJLflVhMMw5H6U=;
fh=wLSHm8nZ6epU63eELyFkYVW1VK5M5ycaaofSEfYiY4M=;
b=NtmR3Wy4/dts3zYR4Xg0XHtiVQ5+N5suJDGmiMLFZvDZH/bxm30SVP6KiA/geb2ArH
UV7EAY8ktsjB1the32NH6dPzOqfQvmNGsx2rLUSzm7JYWIr7Sq6Nhfv0+v/0iZG/GINS
0E8IHmDhguJ80K/zyN0aUaPcevGLm4HTtmxVm0sqIPt7+B0d9bCIGbNd0W4I1Tv7My2N
wY3JjjKJ91bC1IWxxE7G6nere+kD7FYySYG2jjneTMNZ9QPMH/np8MPKx7E9OYIABtc1
9raBWH7xhdgYy4Qp8i6pakuZcH0P2QnnWCHBsKEmrNWYzgrDFTPLd4FcCUwTU/GBRaSR
QQHQ==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1769768208; x=1770373008; 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=uaNCOVmREF+QfY4jaQWer5EA6JO+SGJLflVhMMw5H6U=;
b=FO1ldtFsy+JfrOIhu4Vtg4BTYf+n5YtBf/DosQ3/lUe1LvXkiP4bUhQOixdHqqxD0T
broXvNvoSxMNgiNdcX/Je3U/5Gam9cWxd4km//ngllBic8JtdA2A5M6jct3jQN8tpbvJ
0LcIlEjkJkEpmO/dtmkxkcCS8TRy0HZf4eOxK3xdOIvVpgeAt6OB/0nUKmdKi+0IYk7U
fhKF4Ttc9mZYf0k2gpUNCVGy0Dj7BoZLGyEUhFxB05UzuKbwvG2zkOdL8s6Zctx27d5N
XOBcGisFIeWzA69NY6R9R7bINIPzWM544tXH1KdSIt7YukpAPI4R4Q/4sev7pUQyG/0j
k0Kw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1769768208; x=1770373008;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to;
bh=uaNCOVmREF+QfY4jaQWer5EA6JO+SGJLflVhMMw5H6U=;
b=TEe7TyJPPdbUFMIK5Gi9arwKXE0puIHgYiRmC6o7+ZzZdJ6R9Eg1DhjiJc6PN0LmN0
LItG2zVgEH3vhhUfeKqbxlw/lHUBIbDEQQK0bvNwcBZ2c7jGLGi+NYXTyzKVahXvvxyy
AbrTj1KKt9goFuIiPKZa9tKQBJ/4vId0E4rjoU6gE3EQxh/rfoI/VRgUJuPbz+mYqVRp
A49hhE407O+32htNJRRXi27uwiHFS2DGxlukR0Ef1kW5P9m/hxWkY2e5aaGaPwfw+q4o
hs5ySBAFeenjA+f3ouo1jF8s5kYnQ5I+fWdm3/dgXzciirpkyS5inPPYsQR5HQw1fUtL
6/Nw==
X-Gm-Message-State: AOJu0YwZXRtRJJAsoakfY+iwbz6We31dbbuBwfUwApBsFGaOAuyHLgJV
H7KO0cQbFkUnKa+l25YvBm9AN/9aGpi9z+OWG37USASFkvOKi341CiXwo01+4TXDub61knyv6CF
euUTry+XoRGQXdOwruw97mJrKAFkG+80=
X-Gm-Gg: AZuq6aIeASNTe9BNuxK44ROuhh++nwij6Uz6BiYJOQuzrKepO1ILOr16NTzB34aSWqF
8FWCeQpc1kb+s5+1SOifCpDJb9T0hkcyJ5XZuLfqt6HRcGU6OfmIYhOIHMV7/s/qjcP+pRNOugJ
KPTRHKs+kU+NK/Ls4+aJDnbw/osQkx3iC2REnH4k6P83pJ7CpIzkNB2udlrRxMmu0h/0qNRVCNo
UTlTy7Kq75gSBzY5KbursZyFkqal7nEWtyO8+WkNXdSHFW2B1DxzPmPPGcAss0tDvgkk5Y=
X-Received: by 2002:a05:6000:2689:b0:435:e436:7fb with SMTP id
ffacd0b85a97d-435f3ab00edmr3765572f8f.50.1769768207728; Fri, 30 Jan 2026
02:16:47 -0800 (PST)
MIME-Version: 1.0
References: <eke7a4ykpjep.wl-kobarity@HIDDEN>
<CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
<eke78qdyq5ef.wl-kobarity@HIDDEN>
<CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN>
<eke78qdr2edy.wl-kobarity@HIDDEN> <eke7ldhl3lcs.wl-kobarity@HIDDEN>
In-Reply-To: <eke7ldhl3lcs.wl-kobarity@HIDDEN>
From: Liu Hui <liuhui1610@HIDDEN>
Date: Fri, 30 Jan 2026 18:15:00 +0800
X-Gm-Features: AZwV_Qg7Gk9VwcL7oqrwB_ajbs7I1ayH0z0yQe8Rgv2MUE3xuvbbVW2fgAZbamY
Message-ID: <CAOQTW-Oqe2hR75DyFKpZ2etsCpEbEdfrvSDKWQYFC1t0KaYoag@HIDDEN>
Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native
completion in python.el
To: kobarity <kobarity@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000005b63e50649984534"
X-Spam-Score: 1.3 (+)
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: On Sun, Jan 25, 2026 at 8:52 PM kobarity wrote: > > > I
have a question about python-shell-setup-code: is it necessary for > > > sending
python-shell-eval(-file)-setup-code? If not, I'd like to move > > > it below.
> > > > Moving it is fine.
Content analysis details: (1.3 points, 10.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
no trust
[2a00:1450:4864:20:0:0:0:435 listed in]
[list.dnswl.org]
1.0 FORGED_GMAIL_RCVD 'From' gmail.com does not match 'Received'
headers
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends
in digit (liuhui1610[at]gmail.com)
-0.0 SPF_PASS SPF: sender matches SPF record
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
provider (liuhui1610[at]gmail.com)
X-Debbugs-Envelope-To: 80182
Cc: 80182 <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.3 (/)
--0000000000005b63e50649984534
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Sun, Jan 25, 2026 at 8:52=E2=80=AFPM kobarity <kobarity@HIDDEN> wrote=
:
> > > I have a question about python-shell-setup-code: is it necessary for
> > > sending python-shell-eval(-file)-setup-code? If not, I'd like to move
> > > it below.
> >
> > Moving it is fine.
Done.
> > I'm considering changing it as follows to avoid polluting globals, but =
I
> > think it might be better to make it a separate patch.
Agree.
> > (defconst python-shell-setup-code
> > "\
> > def __PYTHON_EL_setup():
> > try:
> > import termios
> > except ImportError:
> > pass
> > else:
> > attr =3D termios.tcgetattr(0)
> > attr[3] &=3D ~termios.ECHO
> > termios.tcsetattr(0, termios.TCSADRAIN, attr)
> >
> > __PYTHON_EL_setup()
> > del __PYTHON_EL_setup"
> > "Code used to setup the inferior Python processes.")
> >
> > > > I've integrated the code into __PYTHON_EL_native_completion_setup. =
To
> > > > prevent the message from appearing repeatedly after pressing Enter
> > > > following PDB startup, I've also added the pass command. What do y=
ou
> > > > think?
> > >
> > > Thanks. The message was mainly used to trigger pre/postcmd hooks, and
> > > I think 'pass' is a better placeholder. Maybe the message could be
> > > removed?
> >
> > I agree.
Removed.
> > I'd like to take a look at your patch over the weekend and try it out
> > more.
>
> It seems to function properly. To reduce global symbols, how about
> moving the classes into the functions as shown in the attached patch?
Thanks, I have updated the patch as suggested. I have also added a
test for pdb.
--0000000000005b63e50649984534
Content-Type: text/x-patch; charset="US-ASCII";
name="0001-Use-a-custom-Pdb-class-in-the-Python-shell.patch"
Content-Disposition: attachment;
filename="0001-Use-a-custom-Pdb-class-in-the-Python-shell.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_ml0pmxht0>
X-Attachment-Id: f_ml0pmxht0
RnJvbSBhMWExYzFiZjdkYzY3NjhiZTIzMDliZmQ3M2Q3MjAyZjY4ZmIzNDJiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog
RnJpLCAzMCBKYW4gMjAyNiAxODoxMDozMCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFVzZSBhIGN1
c3RvbSBQZGIgY2xhc3MgaW4gdGhlIFB5dGhvbiBzaGVsbAoKVGhlIGN1c3RvbSBQZGIgY2xhc3Mg
ZW5hYmxlcyBuYXRpdmUgY29tcGxldGlvbiBpbiBwZGIgYnkKd3JhcHBpbmcgdGhlIHBkYidzIG5h
dGl2ZSBjb21wbGV0ZXIuICBJdCBhbHNvIG1ha2VzIG5lY2Vzc2FyeQpmdW5jdGlvbiBkZWZpbml0
aW9ucyBsaWtlIF9fUFlUSE9OX0VMXyogYXZhaWxhYmxlIGJldHdlZW4gcGRiCmZyYW1lcywgYW5k
IGVuYWJsZXMgbm9uLW5hdGl2ZSBjb21wbGV0aW9uL2ZmYXAvZWxkb2MKZnVuY3Rpb25hbGl0aWVz
IHdoZW4gZGVidWdnaW5nIGluc2lkZSBweXRob24gbW9kdWxlcy4KCiogbGlzcC9wcm9nbW9kZXMv
cHl0aG9uLmVsIChweXRob24tc2hlbGwtc2VuZC1zZXR1cC1jb2RlKTogRml4CnRoZSBzZXBhcmF0
b3IgYmV0d2VlbiBweXRob24tc2hlbGwtc2V0dXAtY29kZXMuCihweXRob24tc2hlbGwtY29tcGxl
dGlvbi1uYXRpdmUtc2V0dXApOiBNb3ZlIGNvbW1vbiBjb21wbGV0aW9uCnNldHVwIGNvZGUgLi4u
CihweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlKTogLi4uIGhlcmUuCihweXRob24t
c2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCk6IEVuYWJsZSBuYXRpdmUgY29tcGxldGlvbiBmb3IK
cGRiIGFuZCByZXNwZWN0IHRoZSBkZWxpbWl0ZXIgb2YgcGRiIGNvbXBsZXRlci4KKHB5dGhvbi1z
aGVsbC1wZGItc2V0dXAtY29kZSk6IE5ldyB2YXJpYWJsZS4KKHB5dGhvbi1zaGVsbC1jb21pbnQt
d2F0Y2gtZm9yLWZpcnN0LXByb21wdC1vdXRwdXQtZmlsdGVyKTogU2VuZApzZXR1cCBjb2RlcyBv
bmx5IG9uY2UuCihweXRob24tZmZhcC1tb2R1bGUtcGF0aCwgcHl0aG9uLWVsZG9jLS1nZXQtZG9j
LWF0LXBvaW50KTogU3RvcApzZW5kaW5nIHNldHVwIGNvZGUgaW4gZXZlcnkgZnVuY3Rpb24gY2Fs
bC4gIChidWcjODAxODIpCiogdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMuZWwgKHB5
dGhvbi10ZXN0cy0tcGRiLTEpCihweXRob24tc2hlbGwtcGRiLTEpOiBOZXcgdGVzdC4KLS0tCiBs
aXNwL3Byb2dtb2Rlcy9weXRob24uZWwgICAgICAgICAgICB8IDI4MSArKysrKysrKysrKysrKyst
LS0tLS0tLS0tLS0tCiB0ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCB8ICA0MyAr
KysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxOTcgaW5zZXJ0aW9ucygrKSwgMTI3IGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbCBiL2xpc3AvcHJvZ21vZGVz
L3B5dGhvbi5lbAppbmRleCBiNjk4MWM5MTU2Yy4uZDA5YWIzMzczZDMgMTAwNjQ0Ci0tLSBhL2xp
c3AvcHJvZ21vZGVzL3B5dGhvbi5lbAorKysgYi9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwKQEAg
LTM3MzksMTEgKzM3MzksMTggQEAgcHl0aG9uLXNoZWxsLWNvbWludC13YXRjaC1mb3ItZmlyc3Qt
cHJvbXB0LW91dHB1dC1maWx0ZXIKICAgICAgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJleGVj
KCVzKVxuIiAocHl0aG9uLXNoZWxsLS1lbmNvZGUtc3RyaW5nIHN0cmluZykpKSkpKQogICAgICAg
ICAgIDs7IEJvb3RzdHJhcDogdGhlIG5vcm1hbCBkZWZpbml0aW9uIG9mIGBweXRob24tc2hlbGwt
c2VuZC1zdHJpbmcnCiAgICAgICAgICAgOzsgZGVwZW5kcyBvbiB0aGUgUHl0aG9uIGNvZGUgc2Vu
dCBoZXJlLgotICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0IHB5
dGhvbi1zaGVsbC1zZXR1cC1jb2RlKQogICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJp
bmctbm8tb3V0cHV0IHB5dGhvbi1zaGVsbC1ldmFsLXNldHVwLWNvZGUpCiAgICAgICAgICAgKHB5
dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1vdXRwdXQgcHl0aG9uLXNoZWxsLWV2YWwtZmlsZS1z
ZXR1cC1jb2RlKSkKICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKGN1cnJlbnQtYnVmZmVy
KQogICAgICAgICAgIChsZXQgKChpbmhpYml0LXF1aXQgbmlsKSkKKyAgICAgICAgICAgIChweXRo
b24tc2hlbGwtc2VuZC1zdHJpbmcKKyAgICAgICAgICAgICAobWFwY29uY2F0ICMnc3ltYm9sLXZh
bHVlICcocHl0aG9uLXNoZWxsLXNldHVwLWNvZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAtY29kZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob24tc2hlbGwtcGRiLXNldHVw
LWNvZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLWZm
YXAtc2V0dXAtY29kZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
eXRob24tZWxkb2Mtc2V0dXAtY29kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICJcbiIpKQor
ICAgICAgICAgICAgKHB5dGhvbi1zaGVsbC1hY2NlcHQtcHJvY2Vzcy1vdXRwdXQgKHB5dGhvbi1z
aGVsbC1nZXQtcHJvY2VzcykpCiAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLXJlYWRsaW5lLWRl
dGVjdCkKICAgICAgICAgICAgIChydW4taG9va3MgJ3B5dGhvbi1zaGVsbC1maXJzdC1wcm9tcHQt
aG9vaykpKSkpKQogICBvdXRwdXQpCkBAIC00NDU1LDcgKzQ0NjIsOCBAQCBweXRob24tc2hlbGwt
c2VuZC1zZXR1cC1jb2RlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgoc3ltYm9scCBlbHQp
IChzeW1ib2wtdmFsdWUgZWx0KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgKHQgIiIpKSkK
ICAgICAgICAgICAgICAgICAgIHB5dGhvbi1zaGVsbC1zZXR1cC1jb2RlcwotICAgICAgICAgICAg
ICAgICAgIlxuXG5wcmludCAoJ3B5dGhvbi5lbDogc2VudCBzZXR1cCBjb2RlJykiKSkpKQorICAg
ICAgICAgICAgICAgICAgIlxuIikKKyAgICAgICAgICAgICAgICAgIlxucHJpbnQgKCdweXRob24u
ZWw6IHNlbnQgc2V0dXAgY29kZScpIikpKQogICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLXN0cmlu
ZyBjb2RlIHByb2Nlc3MpCiAgICAgICAocHl0aG9uLXNoZWxsLWFjY2VwdC1wcm9jZXNzLW91dHB1
dCBwcm9jZXNzKSkpKQogCkBAIC00NTI5LDE2ICs0NTM3LDgxIEBAIHB5dGhvbi1zaGVsbC1jb21w
bGV0aW9uLXNldHVwLWNvZGUKICAgICBmaW5hbGx5OgogICAgICAgICBpZiBnZXRhdHRyKGNvbXBs
ZXRlciwgJ1BZVEhPTl9FTF9XUkFQUEVEJywgRmFsc2UpOgogICAgICAgICAgICAgY29tcGxldGVy
LnByaW50X21vZGUgPSBUcnVlCi0gICAgcmV0dXJuIGpzb24uZHVtcHMoY29tcGxldGlvbnMpIgot
ICAiQ29kZSB1c2VkIHRvIHNldHVwIGNvbXBsZXRpb24gaW4gaW5mZXJpb3IgUHl0aG9uIHByb2Nl
c3Nlcy4iCi0gIDp0eXBlICdzdHJpbmcpCisgICAgcmV0dXJuIGpzb24uZHVtcHMoY29tcGxldGlv
bnMpCisKK2RlZiBfX1BZVEhPTl9FTF93cmFwX2NvbXBsZXRlcigpOgorICAgIGltcG9ydCByZWFk
bGluZQorICAgIGNvbXBsZXRlciA9IHJlYWRsaW5lLmdldF9jb21wbGV0ZXIoKQogCi0oZGVmdW4g
cHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2VuZC1zZXR1cC1jb2RlICgpCi0gICJTZW5kIGBweXRo
b24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlJyB0byBpbmZlcmlvciBQeXRob24gcHJvY2Vz
cy4iCi0gIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0IHB5dGhvbi1zaGVsbC1j
b21wbGV0aW9uLXNldHVwLWNvZGUpKQorICAgIGlmIG5vdCBjb21wbGV0ZXI6CisgICAgICAgICMg
VXNlZCBhcyBsYXN0IHJlc29ydCB0byBhdm9pZCBicmVha2luZyBjdXN0b21pemF0aW9ucy4KKyAg
ICAgICAgaW1wb3J0IHJsY29tcGxldGVyCisgICAgICAgIGNvbXBsZXRlciA9IHJlYWRsaW5lLmdl
dF9jb21wbGV0ZXIoKQogCi0oYWRkLWhvb2sgJ3B5dGhvbi1zaGVsbC1maXJzdC1wcm9tcHQtaG9v
awotICAgICAgICAgICMncHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2VuZC1zZXR1cC1jb2RlKQor
ICAgIGlmIGNvbXBsZXRlciBhbmQgbm90IGdldGF0dHIoY29tcGxldGVyLCAnUFlUSE9OX0VMX1dS
QVBQRUQnLCBGYWxzZSk6CisgICAgICAgIGNsYXNzIF9fUFlUSE9OX0VMX0NvbXBsZXRlcjoKKyAg
ICAgICAgICAgICcnJ0NvbXBsZXRlciB3cmFwcGVyIHRoYXQgcHJpbnRzIGNhbmRpZGF0ZXMgdG8g
c3Rkb3V0LgorCisgICAgICAgICAgICBJdCB3cmFwcyBhbiBleGlzdGluZyBjb21wbGV0ZXIgZnVu
Y3Rpb24gYW5kIGNoYW5nZXMgaXRzIGJlaGF2aW9yIHNvCisgICAgICAgICAgICB0aGF0IHRoZSB1
c2VyIGlucHV0IGlzIHVuY2hhbmdlZCBhbmQgcmVhbCBjYW5kaWRhdGVzIGFyZSBwcmludGVkIHRv
CisgICAgICAgICAgICBzdGRvdXQuCisKKyAgICAgICAgICAgIFJldHVybmVkIGNhbmRpZGF0ZXMg
YXJlICcwX19kdW1teV9jb21wbGV0aW9uX18nIGFuZAorICAgICAgICAgICAgJzFfX2R1bW15X2Nv
bXBsZXRpb25fXycgaW4gdGhhdCBvcmRlciAoJzBfX2R1bW15X2NvbXBsZXRpb25fXycgaXMKKyAg
ICAgICAgICAgIHJldHVybmVkIHJlcGVhdGVkbHkgdW50aWwgYWxsIHBvc3NpYmxlIGNhbmRpZGF0
ZXMgYXJlIGNvbnN1bWVkKS4KKworICAgICAgICAgICAgVGhlIHJlYWwgY2FuZGlkYXRlcyBhcmUg
cHJpbnRlZCB0byBzdGRvdXQgc28gdGhhdCB0aGV5IGNhbiBiZQorICAgICAgICAgICAgZWFzaWx5
IHJldHJpZXZlZCB0aHJvdWdoIGNvbWludCBvdXRwdXQgcmVkaXJlY3QgdHJpY2tlcnkuCisgICAg
ICAgICAgICAnJycKKworICAgICAgICAgICAgUFlUSE9OX0VMX1dSQVBQRUQgPSBUcnVlCisKKyAg
ICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb21wbGV0ZXIpOgorICAgICAgICAgICAgICAg
IHNlbGYuY29tcGxldGVyID0gY29tcGxldGVyCisgICAgICAgICAgICAgICAgc2VsZi5sYXN0X2Nv
bXBsZXRpb24gPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5wcmludF9tb2RlID0gVHJ1ZQor
CisgICAgICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgdGV4dCwgc3RhdGUpOgorICAgICAgICAg
ICAgICAgIGlmIHN0YXRlID09IDA6CisgICAgICAgICAgICAgICAgICAgICMgU2V0IHRoZSBmaXJz
dCBkdW1teSBjb21wbGV0aW9uLgorICAgICAgICAgICAgICAgICAgICBzZWxmLmxhc3RfY29tcGxl
dGlvbiA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbiA9ICcwX19kdW1teV9j
b21wbGV0aW9uX18nCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
Y29tcGxldGlvbiA9IHNlbGYuY29tcGxldGVyKHRleHQsIHN0YXRlIC0gMSkKKworICAgICAgICAg
ICAgICAgIGlmIG5vdCBjb21wbGV0aW9uOgorICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLmxh
c3RfY29tcGxldGlvbiAhPSAnMV9fZHVtbXlfY29tcGxldGlvbl9fJzoKKyAgICAgICAgICAgICAg
ICAgICAgICAgICMgV2hlbiBubyBtb3JlIGNvbXBsZXRpb25zIGFyZSBhdmFpbGFibGUsIHJldHVy
bmluZyBhCisgICAgICAgICAgICAgICAgICAgICAgICAjIGR1bW15IHdpdGggbm9uLXNoYXJpbmcg
cHJlZml4IGFsbG93IGVuc3VyaW5nIG91dHB1dAorICAgICAgICAgICAgICAgICAgICAgICAgIyB3
aGlsZSBwcmV2ZW50aW5nIGNoYW5nZXMgdG8gY3VycmVudCBpbnB1dC4KKyAgICAgICAgICAgICAg
ICAgICAgICAgICMgQ29pbmNpZGVudGFsbHkgaXQncyBhbHNvIHRoZSBlbmQgb2Ygb3V0cHV0Lgor
ICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbiA9ICcxX19kdW1teV9jb21wbGV0aW9u
X18nCisgICAgICAgICAgICAgICAgZWxpZiBjb21wbGV0aW9uLmVuZHN3aXRoKCcoJyk6CisgICAg
ICAgICAgICAgICAgICAgICMgUmVtb3ZlIHBhcmVucyBvbiBjYWxsYWJsZXMgYXMgaXQgYnJlYWtz
IGNvbXBsZXRpb24gb24KKyAgICAgICAgICAgICAgICAgICAgIyBhcmd1bWVudHMgKGUuZy4gc3Ry
KEFyaTx0YWI+KSkuCisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb24gPSBjb21wbGV0aW9u
WzotMV0KKyAgICAgICAgICAgICAgICBzZWxmLmxhc3RfY29tcGxldGlvbiA9IGNvbXBsZXRpb24K
KworICAgICAgICAgICAgICAgIGlmIGNvbXBsZXRpb24gaW4gKAorICAgICAgICAgICAgICAgICAg
ICAgICAgJzBfX2R1bW15X2NvbXBsZXRpb25fXycsICcxX19kdW1teV9jb21wbGV0aW9uX18nKToK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24KKyAgICAgICAgICAgICAgICBl
bGlmIGNvbXBsZXRpb246CisgICAgICAgICAgICAgICAgICAgICMgRm9yIGV2ZXJ5IG5vbi1kdW1t
eSBjb21wbGV0aW9uLCByZXR1cm4gYSByZXBlYXRlZCBkdW1teQorICAgICAgICAgICAgICAgICAg
ICAjIG9uZSBhbmQgcHJpbnQgdGhlIHJlYWwgY2FuZGlkYXRlIHNvIGl0IGNhbiBiZSByZXRyaWV2
ZWQKKyAgICAgICAgICAgICAgICAgICAgIyBieSBjb21pbnQgb3V0cHV0IGZpbHRlcnMuCisgICAg
ICAgICAgICAgICAgICAgIGlmIHNlbGYucHJpbnRfbW9kZToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW50IChjb21wbGV0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcw
X19kdW1teV9jb21wbGV0aW9uX18nCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbgorICAgICAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uCisKKyAgICAgICAgIyBXcmFw
IHRoZSBleGlzdGluZyBjb21wbGV0ZXIgZnVuY3Rpb24gb25seSBvbmNlLgorICAgICAgICBuZXdf
Y29tcGxldGVyID0gX19QWVRIT05fRUxfQ29tcGxldGVyKGNvbXBsZXRlcikKKyAgICAgICAgcmVh
ZGxpbmUuc2V0X2NvbXBsZXRlcihuZXdfY29tcGxldGVyKSIKKyAgIkNvZGUgdXNlZCB0byBzZXR1
cCBjb21wbGV0aW9uIGluIGluZmVyaW9yIFB5dGhvbiBwcm9jZXNzZXMuIgorICA6dHlwZSAnc3Ry
aW5nKQogCiAoZGVmaW5lLW9ic29sZXRlLXZhcmlhYmxlLWFsaWFzCiAgICdweXRob24tc2hlbGwt
Y29tcGxldGlvbi1tb2R1bGUtc3RyaW5nLWNvZGUKQEAgLTQ2MjQsMTAzICs0Njk3LDE2IEBAIHB5
dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1zZXR1cAogZGVmIF9fUFlUSE9OX0VMX25hdGl2
ZV9jb21wbGV0aW9uX3NldHVwKCk6CiAgICAgdHJ5OgogICAgICAgICBpbXBvcnQgcmVhZGxpbmUK
KyAgICAgICAgX19QWVRIT05fRUxfd3JhcF9jb21wbGV0ZXIoKQogCisgICAgICAgICMgRW5zdXJl
IHRoYXQgcmxjb21wbGV0ZXIuX19tYWluX18gYW5kIF9fbWFpbl9fIGFyZSBpZGVudGljYWwuCisg
ICAgICAgICMgKEJ1ZyM3NjIwNSkKKyAgICAgICAgaW1wb3J0IHN5cwogICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBpbXBvcnQgX19idWlsdGluX18KLSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9y
OgotICAgICAgICAgICAgIyBQeXRob24gMwotICAgICAgICAgICAgaW1wb3J0IGJ1aWx0aW5zIGFz
IF9fYnVpbHRpbl9fCi0KLSAgICAgICAgYnVpbHRpbnMgPSBkaXIoX19idWlsdGluX18pCi0gICAg
ICAgIGlzX2lweXRob24gPSAoJ19fSVBZVEhPTl9fJyBpbiBidWlsdGlucyBvcgotICAgICAgICAg
ICAgICAgICAgICAgICdfX0lQWVRIT05fX2FjdGl2ZScgaW4gYnVpbHRpbnMpCi0KLSAgICAgICAg
Y2xhc3MgX19QWVRIT05fRUxfQ29tcGxldGVyOgotICAgICAgICAgICAgJycnQ29tcGxldGVyIHdy
YXBwZXIgdGhhdCBwcmludHMgY2FuZGlkYXRlcyB0byBzdGRvdXQuCi0KLSAgICAgICAgICAgIEl0
IHdyYXBzIGFuIGV4aXN0aW5nIGNvbXBsZXRlciBmdW5jdGlvbiBhbmQgY2hhbmdlcyBpdHMgYmVo
YXZpb3Igc28KLSAgICAgICAgICAgIHRoYXQgdGhlIHVzZXIgaW5wdXQgaXMgdW5jaGFuZ2VkIGFu
ZCByZWFsIGNhbmRpZGF0ZXMgYXJlIHByaW50ZWQgdG8KLSAgICAgICAgICAgIHN0ZG91dC4KLQot
ICAgICAgICAgICAgUmV0dXJuZWQgY2FuZGlkYXRlcyBhcmUgJzBfX2R1bW15X2NvbXBsZXRpb25f
XycgYW5kCi0gICAgICAgICAgICAnMV9fZHVtbXlfY29tcGxldGlvbl9fJyBpbiB0aGF0IG9yZGVy
ICgnMF9fZHVtbXlfY29tcGxldGlvbl9fJyBpcwotICAgICAgICAgICAgcmV0dXJuZWQgcmVwZWF0
ZWRseSB1bnRpbCBhbGwgcG9zc2libGUgY2FuZGlkYXRlcyBhcmUgY29uc3VtZWQpLgotCi0gICAg
ICAgICAgICBUaGUgcmVhbCBjYW5kaWRhdGVzIGFyZSBwcmludGVkIHRvIHN0ZG91dCBzbyB0aGF0
IHRoZXkgY2FuIGJlCi0gICAgICAgICAgICBlYXNpbHkgcmV0cmlldmVkIHRocm91Z2ggY29taW50
IG91dHB1dCByZWRpcmVjdCB0cmlja2VyeS4KLSAgICAgICAgICAgICcnJwotCi0gICAgICAgICAg
ICBQWVRIT05fRUxfV1JBUFBFRCA9IFRydWUKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGNvbXBsZXRlcik6Ci0gICAgICAgICAgICAgICAgc2VsZi5jb21wbGV0ZXIgPSBjb21wbGV0
ZXIKLSAgICAgICAgICAgICAgICBzZWxmLmxhc3RfY29tcGxldGlvbiA9IE5vbmUKLSAgICAgICAg
ICAgICAgICBzZWxmLnByaW50X21vZGUgPSBUcnVlCi0KLSAgICAgICAgICAgIGRlZiBfX2NhbGxf
XyhzZWxmLCB0ZXh0LCBzdGF0ZSk6Ci0gICAgICAgICAgICAgICAgaWYgc3RhdGUgPT0gMDoKLSAg
ICAgICAgICAgICAgICAgICAgIyBTZXQgdGhlIGZpcnN0IGR1bW15IGNvbXBsZXRpb24uCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYubGFzdF9jb21wbGV0aW9uID0gTm9uZQotICAgICAgICAgICAg
ICAgICAgICBjb21wbGV0aW9uID0gJzBfX2R1bW15X2NvbXBsZXRpb25fXycKLSAgICAgICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uID0gc2VsZi5jb21wbGV0
ZXIodGV4dCwgc3RhdGUgLSAxKQotCi0gICAgICAgICAgICAgICAgaWYgbm90IGNvbXBsZXRpb246
Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYubGFzdF9jb21wbGV0aW9uICE9ICcxX19kdW1t
eV9jb21wbGV0aW9uX18nOgotICAgICAgICAgICAgICAgICAgICAgICAgIyBXaGVuIG5vIG1vcmUg
Y29tcGxldGlvbnMgYXJlIGF2YWlsYWJsZSwgcmV0dXJuaW5nIGEKLSAgICAgICAgICAgICAgICAg
ICAgICAgICMgZHVtbXkgd2l0aCBub24tc2hhcmluZyBwcmVmaXggYWxsb3cgZW5zdXJpbmcgb3V0
cHV0Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIHdoaWxlIHByZXZlbnRpbmcgY2hhbmdlcyB0
byBjdXJyZW50IGlucHV0LgotICAgICAgICAgICAgICAgICAgICAgICAgIyBDb2luY2lkZW50YWxs
eSBpdCdzIGFsc28gdGhlIGVuZCBvZiBvdXRwdXQuCi0gICAgICAgICAgICAgICAgICAgICAgICBj
b21wbGV0aW9uID0gJzFfX2R1bW15X2NvbXBsZXRpb25fXycKLSAgICAgICAgICAgICAgICBlbGlm
IGNvbXBsZXRpb24uZW5kc3dpdGgoJygnKToKLSAgICAgICAgICAgICAgICAgICAgIyBSZW1vdmUg
cGFyZW5zIG9uIGNhbGxhYmxlcyBhcyBpdCBicmVha3MgY29tcGxldGlvbiBvbgotICAgICAgICAg
ICAgICAgICAgICAjIGFyZ3VtZW50cyAoZS5nLiBzdHIoQXJpPHRhYj4pKS4KLSAgICAgICAgICAg
ICAgICAgICAgY29tcGxldGlvbiA9IGNvbXBsZXRpb25bOi0xXQotICAgICAgICAgICAgICAgIHNl
bGYubGFzdF9jb21wbGV0aW9uID0gY29tcGxldGlvbgotCi0gICAgICAgICAgICAgICAgaWYgY29t
cGxldGlvbiBpbiAoCi0gICAgICAgICAgICAgICAgICAgICAgICAnMF9fZHVtbXlfY29tcGxldGlv
bl9fJywgJzFfX2R1bW15X2NvbXBsZXRpb25fXycpOgotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gY29tcGxldGlvbgotICAgICAgICAgICAgICAgIGVsaWYgY29tcGxldGlvbjoKLSAgICAgICAg
ICAgICAgICAgICAgIyBGb3IgZXZlcnkgbm9uLWR1bW15IGNvbXBsZXRpb24sIHJldHVybiBhIHJl
cGVhdGVkIGR1bW15Ci0gICAgICAgICAgICAgICAgICAgICMgb25lIGFuZCBwcmludCB0aGUgcmVh
bCBjYW5kaWRhdGUgc28gaXQgY2FuIGJlIHJldHJpZXZlZAotICAgICAgICAgICAgICAgICAgICAj
IGJ5IGNvbWludCBvdXRwdXQgZmlsdGVycy4KLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5w
cmludF9tb2RlOgotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgKGNvbXBsZXRpb24pCi0g
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzBfX2R1bW15X2NvbXBsZXRpb25fXycKLSAg
ICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBj
b21wbGV0aW9uCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGNvbXBsZXRpb24KLQotICAgICAgICBjb21wbGV0ZXIgPSByZWFkbGluZS5nZXRfY29tcGxl
dGVyKCkKLQotICAgICAgICBpZiBub3QgY29tcGxldGVyOgotICAgICAgICAgICAgIyBVc2VkIGFz
IGxhc3QgcmVzb3J0IHRvIGF2b2lkIGJyZWFraW5nIGN1c3RvbWl6YXRpb25zLgotICAgICAgICAg
ICAgaW1wb3J0IHJsY29tcGxldGVyCi0gICAgICAgICAgICBjb21wbGV0ZXIgPSByZWFkbGluZS5n
ZXRfY29tcGxldGVyKCkKLQotICAgICAgICBpZiBjb21wbGV0ZXIgYW5kIG5vdCBnZXRhdHRyKGNv
bXBsZXRlciwgJ1BZVEhPTl9FTF9XUkFQUEVEJywgRmFsc2UpOgotICAgICAgICAgICAgIyBXcmFw
IHRoZSBleGlzdGluZyBjb21wbGV0ZXIgZnVuY3Rpb24gb25seSBvbmNlLgotICAgICAgICAgICAg
bmV3X2NvbXBsZXRlciA9IF9fUFlUSE9OX0VMX0NvbXBsZXRlcihjb21wbGV0ZXIpCi0gICAgICAg
ICAgICBpZiBub3QgaXNfaXB5dGhvbjoKLSAgICAgICAgICAgICAgICByZWFkbGluZS5zZXRfY29t
cGxldGVyKG5ld19jb21wbGV0ZXIpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
ICMgRW5zdXJlIHRoYXQgcmxjb21wbGV0ZXIuX19tYWluX18gYW5kIF9fbWFpbl9fIGFyZSBpZGVu
dGljYWwuCi0gICAgICAgICAgICAgICAgIyAoQnVnIzc2MjA1KQotICAgICAgICAgICAgICAgIGlt
cG9ydCBzeXMKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHN5cy5t
b2R1bGVzWydybGNvbXBsZXRlciddLl9fbWFpbl9fID0gc3lzLm1vZHVsZXNbJ19fbWFpbl9fJ10K
LSAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgIHBh
c3MKLSAgICAgICAgICAgICAgICAjIFRyeSBib3RoIGluaXRpYWxpemF0aW9ucyB0byBjb3BlIHdp
dGggYWxsIElQeXRob24gdmVyc2lvbnMuCi0gICAgICAgICAgICAgICAgIyBUaGlzIHdvcmtzIGZp
bmUgZm9yIElQeXRob24gMy54IGJ1dCBub3QgZm9yIGVhcmxpZXI6Ci0gICAgICAgICAgICAgICAg
cmVhZGxpbmUuc2V0X2NvbXBsZXRlcihuZXdfY29tcGxldGVyKQotICAgICAgICAgICAgICAgICMg
SVB5dGhvbjwzIGhhY2tzIHJlYWRsaW5lIHN1Y2ggdGhhdCBgcmVhZGxpbmUuc2V0X2NvbXBsZXRl
cmAKLSAgICAgICAgICAgICAgICAjIHdvbid0IHdvcmsuICBUaGlzIHdvcmthcm91bmQgaW5qZWN0
cyB0aGUgbmV3IGNvbXBsZXRlcgotICAgICAgICAgICAgICAgICMgZnVuY3Rpb24gaW50byB0aGUg
ZXhpc3RpbmcgaW5zdGFuY2UgZGlyZWN0bHk6Ci0gICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBn
ZXRhdHRyKGNvbXBsZXRlciwgJ2ltX3NlbGYnLCBjb21wbGV0ZXIuX19zZWxmX18pCi0gICAgICAg
ICAgICAgICAgaW5zdGFuY2Uucmxjb21wbGV0ZSA9IG5ld19jb21wbGV0ZXIKKyAgICAgICAgICAg
IF9fSVBZVEhPTl9fCisgICAgICAgICAgICBzeXMubW9kdWxlc1sncmxjb21wbGV0ZXInXS5fX21h
aW5fXyA9IHN5cy5tb2R1bGVzWydfX21haW5fXyddCisgICAgICAgIGV4Y2VwdCAoTmFtZUVycm9y
LCBLZXlFcnJvcik6CisgICAgICAgICAgICBwYXNzCiAKICAgICAgICAgaWYgcmVhZGxpbmUuX19k
b2NfXyBhbmQgJ2xpYmVkaXQnIGluIHJlYWRsaW5lLl9fZG9jX186CiAgICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oJycnbGliZWRpdCBiYXNlZCByZWFkbGluZSBpcyBrbm93biBub3QgdG8gd29y
aywKQEAgLTQ5NDQsOCArNDkzMCwxNyBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2lu
dAogICAgICAgICAgICAgICAgICAgICAgICAgIDs7IFdvcmtpbmcgb24gYSBzaGVsbCBidWZmZXI6
IHVzZSBwcm9tcHQgZW5kLgogICAgICAgICAgICAgICAgICAgICAgICAgIChjZHIgKHB5dGhvbi11
dGlsLWNvbWludC1sYXN0LXByb21wdCkpCiAgICAgICAgICAgICAgICAgICAgICAgIChsaW5lLWJl
Z2lubmluZy1wb3NpdGlvbikpKQorICAgICAgICAgKHByb21wdC1ib3VuZGFyaWVzCisgICAgICAg
ICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCisgICAgICAg
ICAgICAocHl0aG9uLXV0aWwtY29taW50LWxhc3QtcHJvbXB0KSkpCisgICAgICAgICAocHJvbXB0
CisgICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3Mp
CisgICAgICAgICAgICAod2hlbiBwcm9tcHQtYm91bmRhcmllcworICAgICAgICAgICAgICAoYnVm
ZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVzCisgICAgICAgICAgICAgICAoY2FyIHByb21wdC1i
b3VuZGFyaWVzKSAoY2RyIHByb21wdC1ib3VuZGFyaWVzKSkpKSkKICAgICAgICAgIChuby1kZWxp
bXMKLSAgICAgICAgICAoYW5kIChub3QgKGlmIGlzLXNoZWxsLWJ1ZmZlcgorICAgICAgICAgIChh
bmQgKG5vdCAoc3RyaW5nLW1hdGNoLXAgcHl0aG9uLXNoZWxsLXByb21wdC1wZGItcmVnZXhwIHBy
b21wdCkpCisgICAgICAgICAgICAgICAobm90IChpZiBpcy1zaGVsbC1idWZmZXIKICAgICAgICAg
ICAgICAgICAgICAgICAgIChlcSAnZm9udC1sb2NrLWNvbW1lbnQtZmFjZQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChnZXQtdGV4dC1wcm9wZXJ0eSAoMS0gKHBvaW50KSkgJ2ZhY2UpKQog
ICAgICAgICAgICAgICAgICAgICAgIChweXRob24tc3ludGF4LWNvbnRleHQgJ2NvbW1lbnQpKSkK
QEAgLTQ5NjksMTQgKzQ5NjQsNiBAQCBweXRob24tc2hlbGwtY29tcGxldGlvbi1hdC1wb2ludAog
ICAgICAgICAgICAgICAgIChmb3J3YXJkLWNoYXIgKGxlbmd0aCAobWF0Y2gtc3RyaW5nLW5vLXBy
b3BlcnRpZXMgMCkpKQogICAgICAgICAgICAgICAgIChwb2ludCkpKSkpCiAgICAgICAgICAoZW5k
IChwb2ludCkpCi0gICAgICAgICAocHJvbXB0LWJvdW5kYXJpZXMKLSAgICAgICAgICAod2l0aC1j
dXJyZW50LWJ1ZmZlciAocHJvY2Vzcy1idWZmZXIgcHJvY2VzcykKLSAgICAgICAgICAgIChweXRo
b24tdXRpbC1jb21pbnQtbGFzdC1wcm9tcHQpKSkKLSAgICAgICAgIChwcm9tcHQKLSAgICAgICAg
ICAod2l0aC1jdXJyZW50LWJ1ZmZlciAocHJvY2Vzcy1idWZmZXIgcHJvY2VzcykKLSAgICAgICAg
ICAgICh3aGVuIHByb21wdC1ib3VuZGFyaWVzCi0gICAgICAgICAgICAgIChidWZmZXItc3Vic3Ry
aW5nLW5vLXByb3BlcnRpZXMKLSAgICAgICAgICAgICAgIChjYXIgcHJvbXB0LWJvdW5kYXJpZXMp
IChjZHIgcHJvbXB0LWJvdW5kYXJpZXMpKSkpKQogICAgICAgICAgKGNvbXBsZXRpb24tZm4KICAg
ICAgICAgICAod2l0aC1jdXJyZW50LWJ1ZmZlciAocHJvY2Vzcy1idWZmZXIgcHJvY2VzcykKICAg
ICAgICAgICAgIChjb25kICgob3IgKG51bGwgcHJvbXB0KQpAQCAtNDk4NiwxMyArNDk3Myw3IEBA
IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWF0LXBvaW50CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHN0cmluZy1tYXRjaC1wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhv
bi1zaGVsbC1wcm9tcHQtcGRiLXJlZ2V4cCBwcm9tcHQpKSkKICAgICAgICAgICAgICAgICAgICAj
J2lnbm9yZSkKLSAgICAgICAgICAgICAgICAgICgob3IgKG5vdCBweXRob24tc2hlbGwtY29tcGxl
dGlvbi1uYXRpdmUtZW5hYmxlKQotICAgICAgICAgICAgICAgICAgICAgICA7OyBFdmVuIGlmIG5h
dGl2ZSBjb21wbGV0aW9uIGlzIGVuYWJsZWQsIGZvcgotICAgICAgICAgICAgICAgICAgICAgICA7
OyBwZGIgaW50ZXJhY3Rpb24gYWx3YXlzIHVzZSB0aGUgZmFsbGJhY2sKLSAgICAgICAgICAgICAg
ICAgICAgICAgOzsgbWVjaGFuaXNtIHNpbmNlIHRoZSBjb21wbGV0ZXIgaXMgY2hhbmdlZC4KLSAg
ICAgICAgICAgICAgICAgICAgICAgOzsgQWxzbywgc2luY2UgcGRiIGludGVyYWN0aW9uIGlzIHNp
bmdsZS1saW5lCi0gICAgICAgICAgICAgICAgICAgICAgIDs7IGJhc2VkLCB0aGlzIGlzIGVub3Vn
aC4KLSAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRjaC1wIHB5dGhvbi1zaGVsbC1w
cm9tcHQtcGRiLXJlZ2V4cCBwcm9tcHQpKQorICAgICAgICAgICAgICAgICAgKChub3QgcHl0aG9u
LXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLWVuYWJsZSkKICAgICAgICAgICAgICAgICAgICAoaWYg
KG9yIChlcXVhbCBweXRob24tc2hlbGwtLWJsb2NrLXByb21wdCBwcm9tcHQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoLXAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBweXRob24tc2hlbGwtcHJvbXB0LWJsb2NrLXJlZ2V4cCBwcm9tcHQpKQpAQCAtNTA3NCw2
ICs1MDU1LDU1IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLWNvbXBsZXRlLW9yLWluZGVudAog
DAogOzs7IFBEQiBUcmFjayBpbnRlZ3JhdGlvbgogCisoZGVmY29uc3QgcHl0aG9uLXNoZWxsLXBk
Yi1zZXR1cC1jb2RlCisgICJcCitkZWYgX19QWVRIT05fRUxfUGRiX3NldHVwKCk6CisgICAgaW1w
b3J0IHBkYgorCisgICAgY2xhc3MgX1BZVEhPTl9FTF9QZGIocGRiLlBkYiwgb2JqZWN0KToKKyAg
ICAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAgICAgICAgIHN1cGVy
KF9QWVRIT05fRUxfUGRiLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprdykKKyAgICAgICAgICAg
IGltcG9ydCByZQorICAgICAgICAgICAgc2VsZi5fcHl0aG9uX2VsX2RlZl9wYXR0ZXJuID0gcmUu
Y29tcGlsZSgnX18oUFlUSE9OX0VMfEZGQVB8UFlET0MpXycpCisgICAgICAgICAgICBzZWxmLl9w
eXRob25fZWxfZGVmcyA9IHt9CisgICAgICAgICAgICBmb3IgaywgdiBpbiBnbG9iYWxzKCkuaXRl
bXMoKToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9weXRob25fZWxfZGVmX3BhdHRlcm4ubWF0
Y2goayk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3B5dGhvbl9lbF9kZWZzW2tdID0gdgor
CisgICAgICAgIGRlZiBfcHl0aG9uX2VsX3NldHVwKHNlbGYpOgorICAgICAgICAgICAgaWYgbm90
IGhhc2F0dHIoc2VsZiwgJ2N1cmZyYW1lJykgb3Igc2VsZi5jdXJmcmFtZSBpcyBOb25lOgorICAg
ICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgZnJhbWVfZ2xvYmFscyA9IHNlbGYuY3Vy
ZnJhbWUuZl9nbG9iYWxzCisgICAgICAgICAgICBpZiAnX19QWVRIT05fRUxfZXZhbCcgbm90IGlu
IGZyYW1lX2dsb2JhbHM6CisgICAgICAgICAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5fcHl0aG9u
X2VsX2RlZnMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICAgICAgZnJhbWVfZ2xvYmFsc1trXSA9
IHYKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBmcmFtZV9nbG9iYWxzWydfX1BZ
VEhPTl9FTF93cmFwX2NvbXBsZXRlciddKCkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g
YXMgZToKKyAgICAgICAgICAgICAgICBwcmludCgnZmFpbGVkIHRvIHNldHVwIGNvbXBsZXRlcjog
e30nLmZvcm1hdChzdHIoZSkpKQorCisgICAgICAgIGRlZiBwcmVsb29wKHNlbGYpOgorICAgICAg
ICAgICAgc3VwZXIoX1BZVEhPTl9FTF9QZGIsIHNlbGYpLnByZWxvb3AoKQorICAgICAgICAgICAg
IyBUcmlnZ2VyIHByZWNtZC9wb3N0Y21kIHdoZW4gZW50ZXJpbmcgcGRiLgorICAgICAgICAgICAg
c2VsZi5jbWRxdWV1ZS5hcHBlbmQoJ3Bhc3MgICMgX19QWVRIT05fRUxfJykKKworICAgICAgICBk
ZWYgcHJlY21kKHNlbGYsIGxpbmUpOgorICAgICAgICAgICAgaWYgc2VsZi5fcHl0aG9uX2VsX2Rl
Zl9wYXR0ZXJuLnNlYXJjaChsaW5lKToKKyAgICAgICAgICAgICAgICBzZWxmLl9yZWFsX2xhc3Rj
bWQgPSBzZWxmLmxhc3RjbWQKKyAgICAgICAgICAgIHJldHVybiBzdXBlcihfUFlUSE9OX0VMX1Bk
Yiwgc2VsZikucHJlY21kKGxpbmUpCisKKyAgICAgICAgZGVmIHBvc3RjbWQoc2VsZiwgc3RvcCwg
bGluZSk6CisgICAgICAgICAgICBzZWxmLl9weXRob25fZWxfc2V0dXAoKQorICAgICAgICAgICAg
aWYgc2VsZi5fcHl0aG9uX2VsX2RlZl9wYXR0ZXJuLnNlYXJjaChsaW5lKToKKyAgICAgICAgICAg
ICAgICBzZWxmLmxhc3RjbWQgPSBzZWxmLl9yZWFsX2xhc3RjbWQKKyAgICAgICAgICAgIHJldHVy
biBzdXBlcihfUFlUSE9OX0VMX1BkYiwgc2VsZikucG9zdGNtZChzdG9wLCBsaW5lKQorCisgICAg
cGRiLlBkYiA9IF9QWVRIT05fRUxfUGRiCisKK19fUFlUSE9OX0VMX1BkYl9zZXR1cCgpCitkZWwg
X19QWVRIT05fRUxfUGRiX3NldHVwIgorICAiQ29kZSB1c2VkIHRvIHNldHVwIHRoZSBkZWJ1Z2dl
ciBpbiBpbmZlcmlvciBQeXRob24gcHJvY2Vzc2VzLiIpCisKIChkZWZjdXN0b20gcHl0aG9uLXBk
YnRyYWNrLWFjdGl2YXRlIHQKICAgIk5vbi1uaWwgbWFrZXMgUHl0aG9uIHNoZWxsIGVuYWJsZSBw
ZGJ0cmFja2luZy4KIFBkYnRyYWNraW5nIHdvdWxkIG9wZW4gdGhlIGZpbGUgZm9yIGN1cnJlbnQg
c3RhY2sgZnJhbWUgZm91bmQgaW4gcGRiIG91dHB1dCBieQpAQCAtNTcxNCw4ICs1NzQ0LDcgQEAg
cHl0aG9uLWZmYXAtbW9kdWxlLXBhdGgKICAgICAgICAgICAgICAgICAgICAgICAocHl0aG9uLXV0
aWwtY29taW50LWVuZC1vZi1vdXRwdXQtcCkpKQogICAgICAgICAgICAgICAobW9kdWxlLWZpbGUK
ICAgICAgICAgICAgICAgIChweXRob24tc2hlbGwtc2VuZC1zdHJpbmctbm8tb3V0cHV0Ci0gICAg
ICAgICAgICAgICAgKGZvcm1hdCAiJXNcbnByaW50KF9fRkZBUF9nZXRfbW9kdWxlX3BhdGgoJXMp
KSIKLSAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhvbi1mZmFwLXNldHVwLWNvZGUKKyAgICAg
ICAgICAgICAgICAoZm9ybWF0ICJwcmludChfX0ZGQVBfZ2V0X21vZHVsZV9wYXRoKCVzKSkiCiAg
ICAgICAgICAgICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLS1lbmNvZGUtc3RyaW5nIG1vZHVs
ZSkpKSkpCiAgICAgKHVubGVzcyAoc3RyaW5nLWVtcHR5LXAgbW9kdWxlLWZpbGUpCiAgICAgICAo
cHl0aG9uLXV0aWwtc3RyaXAtc3RyaW5nIG1vZHVsZS1maWxlKSkpKQpAQCAtNTgzOCwxMCArNTg2
Nyw4IEBAIHB5dGhvbi1lbGRvYy0tZ2V0LWRvYy1hdC1wb2ludAogICAgICAgICAgICAgICAgIDs7
IGVuYWJsZWQuICBCdWcjMTg3OTQuCiAgICAgICAgICAgICAgICAgKHB5dGhvbi11dGlsLXN0cmlw
LXN0cmluZwogICAgICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLXNlbmQtc3RyaW5nLW5vLW91
dHB1dAotICAgICAgICAgICAgICAgICAgKGZvcm1hdAotICAgICAgICAgICAgICAgICAgICIlc1xu
cHJpbnQoX19QWURPQ19nZXRfaGVscCglcykpIgotICAgICAgICAgICAgICAgICAgIHB5dGhvbi1l
bGRvYy1zZXR1cC1jb2RlCi0gICAgICAgICAgICAgICAgICAgKHB5dGhvbi1zaGVsbC0tZW5jb2Rl
LXN0cmluZyBpbnB1dCkpCisgICAgICAgICAgICAgICAgICAoZm9ybWF0ICJwcmludChfX1BZRE9D
X2dldF9oZWxwKCVzKSkiCisgICAgICAgICAgICAgICAgICAgICAgICAgIChweXRob24tc2hlbGwt
LWVuY29kZS1zdHJpbmcgaW5wdXQpKQogICAgICAgICAgICAgICAgICAgcHJvY2VzcykpKSkpCiAg
ICAgICAgICh1bmxlc3MgKHN0cmluZy1lbXB0eS1wIGRvY3N0cmluZykKICAgICAgICAgICBkb2Nz
dHJpbmcpKSkpKQpkaWZmIC0tZ2l0IGEvdGVzdC9saXNwL3Byb2dtb2Rlcy9weXRob24tdGVzdHMu
ZWwgYi90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbAppbmRleCBlZWEzNWI4NjRl
MS4uZTVmZjViMzgyOWIgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRl
c3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCkBAIC01MTI2
LDYgKzUxMjYsNDkgQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQtaXB5dGhvbgog
DAogOzs7IFBEQiBUcmFjayBpbnRlZ3JhdGlvbgogCisoZGVmdW4gcHl0aG9uLXRlc3RzLS1wZGIt
MSAoKQorICAoaW5zZXJ0ICJuZXgiKQorICAoY29tcGxldGlvbi1hdC1wb2ludCkKKyAgKGJlZ2lu
bmluZy1vZi1saW5lKQorICAoc2hvdWxkIChzdHJpbmc9ICJuZXh0IgorICAgICAgICAgICAgICAg
ICAgIChidWZmZXItc3Vic3RyaW5nLW5vLXByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAg
KHBvaW50KSAocG9zLWVvbCkpKSkKKyAgKGNvbWludC1zZW5kLWlucHV0KQorICAocHl0aG9uLXNo
ZWxsLWFjY2VwdC1wcm9jZXNzLW91dHB1dCAocHl0aG9uLXNoZWxsLWdldC1wcm9jZXNzKSkKKyAg
KHNob3VsZCAoZmlsZS1leGlzdHMtcCAocHl0aG9uLWZmYXAtbW9kdWxlLXBhdGggImFiYyIpKSkp
CisKKyhlcnQtZGVmdGVzdCBweXRob24tc2hlbGwtcGRiLTEgKCkKKyAgIkNoZWNrIGlmIGNvbXBs
ZXRpb24gYW5kIGZmYXAgd29ya3MgaW4gUGRiLiIKKyAgKGVydC13aXRoLXRlbXAtZGlyZWN0b3J5
IGRpcgorICAgIChsZXQgKChpbmhpYml0LW1lc3NhZ2UgdCkKKyAgICAgICAgICAoZGVmYXVsdC1k
aXJlY3RvcnkgZGlyKSkKKyAgICAgICh3cml0ZS1yZWdpb24gImRlZiBmMSgpOgorICAgIGJyZWFr
cG9pbnQoKQorICAgIHggPSAxCisgICAgeSA9IDIKKyAgICByZXR1cm4geCt5IiBuaWwgInRlc3Qx
LnB5IikKKyAgICAgIChweXRob24tdGVzdHMtd2l0aC10ZW1wLWJ1ZmZlci13aXRoLXNoZWxsLWlu
dGVycHJldGVyCisgICAgICAgbmlsCisgICAgICAgImltcG9ydCBhYmMKK2Zyb20gdGVzdDEgaW1w
b3J0IGYxCitmMSgpCisiCisgICAgICAgKHB5dGhvbi1zaGVsbC1zZW5kLWJ1ZmZlcikKKyAgICAg
ICAocHl0aG9uLXNoZWxsLWFjY2VwdC1wcm9jZXNzLW91dHB1dCAocHl0aG9uLXNoZWxsLWdldC1w
cm9jZXNzKSkKKyAgICAgICAocHl0aG9uLXNoZWxsLXdpdGgtc2hlbGwtYnVmZmVyCisgICAgICAg
ICAoc2tpcC11bmxlc3MgcHl0aG9uLXNoZWxsLXJlYWRsaW5lLWNvbXBsZXRlci1kZWxpbXMpCisg
ICAgICAgICAocHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLXR1cm4tb2ZmKQorICAgICAg
ICAgKHB5dGhvbi10ZXN0cy0tcGRiLTEpCisgICAgICAgICAoaW5zZXJ0ICJjIikKKyAgICAgICAg
IChjb21pbnQtc2VuZC1pbnB1dCkKKyAgICAgICAgIChweXRob24tc2hlbGwtYWNjZXB0LXByb2Nl
c3Mtb3V0cHV0IChweXRob24tc2hlbGwtZ2V0LXByb2Nlc3MpKQorICAgICAgICAgKHB5dGhvbi1z
aGVsbC1jb21wbGV0aW9uLW5hdGl2ZS10dXJuLW9uKQorICAgICAgICAgKHdoZW4gcHl0aG9uLXNo
ZWxsLWNvbXBsZXRpb24tbmF0aXZlLWVuYWJsZQorICAgICAgICAgICAoaW5zZXJ0ICJmMSgpIikK
KyAgICAgICAgICAgKGNvbWludC1zZW5kLWlucHV0KQorICAgICAgICAgICAocHl0aG9uLXNoZWxs
LWFjY2VwdC1wcm9jZXNzLW91dHB1dCAocHl0aG9uLXNoZWxsLWdldC1wcm9jZXNzKSkKKyAgICAg
ICAgICAgKHB5dGhvbi10ZXN0cy0tcGRiLTEpKSkpKSkpCisKIAwKIDs7OyBTeW1ib2wgY29tcGxl
dGlvbgogCi0tIAoyLjQzLjAKCg==
--0000000000005b63e50649984534--
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
Received: (at 80182) by debbugs.gnu.org; 25 Jan 2026 12:53:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 25 07:53:01 2026
Received: from localhost ([127.0.0.1]:49496 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vjzbw-0001cv-BB
for submit <at> debbugs.gnu.org; Sun, 25 Jan 2026 07:53:01 -0500
Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]:60870)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <kobarity@HIDDEN>)
id 1vjzbr-0001ci-E6
for 80182 <at> debbugs.gnu.org; Sun, 25 Jan 2026 07:52:56 -0500
Received: by mail-pl1-x62a.google.com with SMTP id
d9443c01a7336-2a07fac8aa1so27767565ad.1
for <80182 <at> debbugs.gnu.org>; Sun, 25 Jan 2026 04:52:55 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1769345574; x=1769950374; darn=debbugs.gnu.org;
h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from
:message-id:date:from:to:cc:subject:date:message-id:reply-to;
bh=lXi/3SXPQFOM7exLtAv9b/z1EA9LqL8c3ARtub3/Vdw=;
b=K0YfhTPd+HE8F5bBzHkOjomWzTFCAVjSB268tQ1ajbjoHYsfHs/ILqthFLr/ZK+0k+
vdRtXbI/Z5bQr8Uqe1omW7oC3rvLCe62wCR87C8e3QwxanlU/3s5msm0Z+jNKYDPZeaA
Gpx9YSc71Ui56x8Dz9rizcjGOyjWT/7Q0AuK5JPdlpLNQoDFTl/b5DiQr24Tb+FxewGz
wTBPL/J0N1LMK0CDYTKvkb8r3PTHeUoFtkcYoOXx8yN9qIT9OBrgP8TPNJMxYAeqvzeY
/33iILKTJcfFycp8+u91F/x9emA1lJRISwMx2RLdZE0Q5joujZO332ASdEOWH+Ph/y+b
XzYw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1769345574; x=1769950374;
h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from
:message-id:date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to;
bh=lXi/3SXPQFOM7exLtAv9b/z1EA9LqL8c3ARtub3/Vdw=;
b=clP5o6Sd/L+3ymWPdLthKVRe9NqIB511ReJgXi0uhhMUxS7shLvfvBcGS6cQTg6L2K
tTPsLinzCP1nTxK9r8Ukni6wvBsxY+ptfznpscotRNEctq9HnTxSzxnnBvOQEGWG4J2d
6V/83ctjO+n5M17ikTHWUD4k0WgCZH5th/qfpK24SarfjCDtsmJQLEZEQUbTdAD/j0Ci
pdBHT7RB+tSaQXE/K6SAz39JCm42iqUjGvHOg2XH0cS40Kb2LH2HrA4XWd26ukO3Negb
iprsZ1kqBOoM9KNw0t9wrUuIJC7YiIbr6yAQjmWOcSSCCcRVCvDkV2YzNFBT6WQLXy79
XNrg==
X-Gm-Message-State: AOJu0Yw+wE0X5Lde9K3jdMYwBsRvf6SSr/3XtJSt/2f+jVEZLJKOEloN
Amrgd6d4xoCQTNvCu3T5hImfkoXJXjmDXNIDo/9WAAzfzdm9nNazkjz/
X-Gm-Gg: AZuq6aJe4zXZJmEKOiLmPg1g778mvwHzWs1M7mq/fdVynp4Ln/eZFNYlCWGwlBIpnUa
ndFTlMu6TSj9eMiSIXpbFU1NNr6SYz9aerySvChICYrx6KNYBOdyaSCIqogzBv2H/foKaN9koEy
LpMr2s+Q1m6lM/if07mOSRgWbvfBDbZsz8CI875msXKKUJNax+qGubZyWm2BM5lfH4yh0IcvFFY
cnR9jOJzVOO+JvWhNT/hJkCF+aU0T/NyqirM8eaWWP5kWJ3W3Ic0UMktBYBkmg4BZmk8cnmmvcc
Dq5Tfs28fTRuk0Jd2YNiR4LupChuipVi1orzb4FZxg7KTY46SgVPZEkW+vmK4QU0ncmN9z1na4s
pQOaMgFegN9V8r3nn2bx38CYR9DdKW2G4Tjp2J43CXv48/UUxFgpzoMVEynmsw8hwVsPN4kpHc8
pMwEnHSwYpVyWWoFB2PtmCAAAlqB/61WndFe5WH5f6
X-Received: by 2002:a17:903:1967:b0:2a0:abba:a2f4 with SMTP id
d9443c01a7336-2a8451f9032mr13819435ad.2.1769345574155;
Sun, 25 Jan 2026 04:52:54 -0800 (PST)
Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161])
by smtp.gmail.com with ESMTPSA id
d2e1a72fcca58-8231873e8e0sm6958168b3a.57.2026.01.25.04.52.52
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Sun, 25 Jan 2026 04:52:53 -0800 (PST)
Date: Sun, 25 Jan 2026 21:52:51 +0900
Message-ID: <eke7ldhl3lcs.wl-kobarity@HIDDEN>
From: kobarity <kobarity@HIDDEN>
To: Liu Hui <liuhui1610@HIDDEN>
Subject: Re: bug#80182: 31.0.50;
Issues and improvements regarding non-native completion in python.el
In-Reply-To: <eke78qdr2edy.wl-kobarity@HIDDEN>
References: <eke7a4ykpjep.wl-kobarity@HIDDEN>
<CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
<eke78qdyq5ef.wl-kobarity@HIDDEN>
<CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN>
<eke78qdr2edy.wl-kobarity@HIDDEN>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0
Emacs/31.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: multipart/mixed; boundary="Multipart_Sun_Jan_25_21:52:47_2026-1"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80182
Cc: 80182 <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.0 (/)
--Multipart_Sun_Jan_25_21:52:47_2026-1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
kobarity wrote:
> Liu Hui wrote:
> > On Thu, Jan 15, 2026 at 11:09=E2=80=AFPM kobarity <kobarity@HIDDEN> =
wrote:
> >=20
> > > It's good that native completion works. However, some people may be
> > > using PYTHONSTARTUP for other purposes. Wouldn't it be better to send
> > > it during initialization, just like other setup codes?
> >=20
> > Yes. PYTHONSTARTUP was just used as an example.
> >=20
> > > Attached is PoC-level patch to do so. I've also made it work with
> > > Python 2.
> >=20
> > Thanks. The _PYTHON_EL_Pdb class has been improved in the attached
> > patch, which is more robust and should also fix issue 2.
> >=20
> > > > Meanwhile, the Pdb hooks could be used for sending definitions used=
by
> > > > non-native completion, and should fix issue 1.
> > >
> > > Do you mean PYTHONBREAKPOINT environment variable?
> >=20
> > I meant the hook functions of the Pdb class, e.g. postcmd. Because the
> > frame could be changed by commands like up/down, we need to check if
> > these definitions are available in current frame or detect if the
> > frame changes.
> >=20
> > To fix non-native completion issues in pdb, we also need to send
> > _PYTHON_EL_Pdb to the process when initializing the python shell
> > rather than in python-shell-completion-native-setup. Therefore, I have
> > moved the common completion code (e.g. the __PYTHON_EL_Completer
> > class) in python-shell-completion-native-setup to
> > python-shell-completion-setup-code.
>=20
> I see.
>=20
> > > > > Regarding No. 3, the current error message is as follows.
> > > > >
> > > > > python--parse-json-array: could not parse JSON stream: 1, 1, 1
> > > > >
> > > > > The string causing the error is not displayed, so it is not usefu=
l.
> > > > > Liu proposed to handle JSON error in
> > > > > `python-shell-completion-get-completions' as follows:
> > > > >
> > > > > (condition-case err
> > > > > (python--parse-json-array completions)
> > > > > (json-parse-error
> > > > > (condition-case nil
> > > > > (python--parse-json-array
> > > > > (car (last (split-string completions "[\n\r]+" t))))
> > > > > (json-parse-error
> > > > > (signal (car err) (list completions))))))
> > > > >
> > > > > This works fine, but since `python--parse-json-array' is used
> > > > > elsewhere, it might be better to improve those as well.
> > > > >
> > > > > Regarding No. 4, currently, each time
> > > > > `python-shell-completion-get-completions' is executed, both the
> > > > > definition of __PYTHON_EL_get_completions and the call to
> > > > > __PYTHON_EL_get_completions are sent to the Inferior Python. How=
ever,
> > > > > there is no need to send the definition every time as long as the
> > > > > definition remains unchanged. This can be improved with the atta=
ched
> > > > > patch, but it might be better to consider it alongside other issu=
es.
> > > >
> > > > I'd like to put all setup codes (including definitions
> > > > __FFAP_get_module_path and __PYDOC_get_help) in one place and send
> > > > them only once. I think it will not cause problem as long as the pdb
> > > > case is addressed.
> > >
> > > I agree.
> >=20
> > The _PYTHON_EL_Pdb class now handles ffap/eldoc cases, so the
> > definitions can be sent only once. In the patch, I have collected all
> > setup codes and send them after the first prompt and before
> > python-shell-first-prompt-hook.
> >=20
> > I have a question about python-shell-setup-code: is it necessary for
> > sending python-shell-eval(-file)-setup-code? If not, I'd like to move
> > it below.
>=20
> Moving it is fine.
>=20
> I'm considering changing it as follows to avoid polluting globals, but I
> think it might be better to make it a separate patch.
>=20
> (defconst python-shell-setup-code
> "\
> def __PYTHON_EL_setup():
> try:
> import termios
> except ImportError:
> pass
> else:
> attr =3D termios.tcgetattr(0)
> attr[3] &=3D ~termios.ECHO
> termios.tcsetattr(0, termios.TCSADRAIN, attr)
>=20
> __PYTHON_EL_setup()
> del __PYTHON_EL_setup"
> "Code used to setup the inferior Python processes.")
>=20
> > > I've integrated the code into __PYTHON_EL_native_completion_setup. To
> > > prevent the message from appearing repeatedly after pressing Enter
> > > following PDB startup, I've also added the pass command. What do you
> > > think?
> >=20
> > Thanks. The message was mainly used to trigger pre/postcmd hooks, and
> > I think 'pass' is a better placeholder. Maybe the message could be
> > removed?
>=20
> I agree.
>=20
> I'd like to take a look at your patch over the weekend and try it out
> more.
It seems to function properly. To reduce global symbols, how about
moving the classes into the functions as shown in the attached patch?
--Multipart_Sun_Jan_25_21:52:47_2026-1
Content-Type: text/plain; type=patch; name="move-classes.diff"; charset=US-ASCII
Content-Disposition: attachment; filename="move-classes.diff"
Content-Transfer-Encoding: 7bit
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index ca6837308cf..c2881c107b4 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -4539,65 +4539,65 @@ python-shell-completion-setup-code
completer.print_mode = True
return json.dumps(completions)
-class __PYTHON_EL_Completer:
- '''Completer wrapper that prints candidates to stdout.
-
- It wraps an existing completer function and changes its behavior so
- that the user input is unchanged and real candidates are printed to
- stdout.
+def __PYTHON_EL_wrap_completer():
+ class __PYTHON_EL_Completer:
+ '''Completer wrapper that prints candidates to stdout.
- Returned candidates are '0__dummy_completion__' and
- '1__dummy_completion__' in that order ('0__dummy_completion__' is
- returned repeatedly until all possible candidates are consumed).
+ It wraps an existing completer function and changes its behavior so
+ that the user input is unchanged and real candidates are printed to
+ stdout.
- The real candidates are printed to stdout so that they can be
- easily retrieved through comint output redirect trickery.
- '''
+ Returned candidates are '0__dummy_completion__' and
+ '1__dummy_completion__' in that order ('0__dummy_completion__' is
+ returned repeatedly until all possible candidates are consumed).
- PYTHON_EL_WRAPPED = True
+ The real candidates are printed to stdout so that they can be
+ easily retrieved through comint output redirect trickery.
+ '''
- def __init__(self, completer):
- self.completer = completer
- self.last_completion = None
- self.print_mode = True
+ PYTHON_EL_WRAPPED = True
- def __call__(self, text, state):
- if state == 0:
- # Set the first dummy completion.
+ def __init__(self, completer):
+ self.completer = completer
self.last_completion = None
- completion = '0__dummy_completion__'
- else:
- completion = self.completer(text, state - 1)
-
- if not completion:
- if self.last_completion != '1__dummy_completion__':
- # When no more completions are available, returning a
- # dummy with non-sharing prefix allow ensuring output
- # while preventing changes to current input.
- # Coincidentally it's also the end of output.
- completion = '1__dummy_completion__'
- elif completion.endswith('('):
- # Remove parens on callables as it breaks completion on
- # arguments (e.g. str(Ari<tab>)).
- completion = completion[:-1]
- self.last_completion = completion
-
- if completion in (
- '0__dummy_completion__', '1__dummy_completion__'):
- return completion
- elif completion:
- # For every non-dummy completion, return a repeated dummy
- # one and print the real candidate so it can be retrieved
- # by comint output filters.
- if self.print_mode:
- print (completion)
- return '0__dummy_completion__'
+ self.print_mode = True
+
+ def __call__(self, text, state):
+ if state == 0:
+ # Set the first dummy completion.
+ self.last_completion = None
+ completion = '0__dummy_completion__'
+ else:
+ completion = self.completer(text, state - 1)
+
+ if not completion:
+ if self.last_completion != '1__dummy_completion__':
+ # When no more completions are available, returning a
+ # dummy with non-sharing prefix allow ensuring output
+ # while preventing changes to current input.
+ # Coincidentally it's also the end of output.
+ completion = '1__dummy_completion__'
+ elif completion.endswith('('):
+ # Remove parens on callables as it breaks completion on
+ # arguments (e.g. str(Ari<tab>)).
+ completion = completion[:-1]
+ self.last_completion = completion
+
+ if completion in (
+ '0__dummy_completion__', '1__dummy_completion__'):
+ return completion
+ elif completion:
+ # For every non-dummy completion, return a repeated dummy
+ # one and print the real candidate so it can be retrieved
+ # by comint output filters.
+ if self.print_mode:
+ print (completion)
+ return '0__dummy_completion__'
+ else:
+ return completion
else:
return completion
- else:
- return completion
-def __PYTHON_EL_wrap_completer():
import readline
completer = readline.get_completer()
@@ -5057,49 +5057,53 @@ python-shell-completion-complete-or-indent
(defconst python-shell-pdb-setup-code
"\
-import pdb
-
-class _PYTHON_EL_Pdb(pdb.Pdb, object):
- def __init__(self, *args, **kw):
- super(_PYTHON_EL_Pdb, self).__init__(*args, **kw)
- import re
- self._python_el_def_pattern = re.compile('__(PYTHON_EL|FFAP|PYDOC)_')
- self._python_el_defs = {}
- for k, v in globals().items():
- if self._python_el_def_pattern.match(k):
- self._python_el_defs[k] = v
-
- def _python_el_setup(self):
- if not hasattr(self, 'curframe') or self.curframe is None:
- return
- frame_globals = self.curframe.f_globals
- if '__PYTHON_EL_eval' not in frame_globals:
- for k, v in self._python_el_defs.items():
- frame_globals[k] = v
- try:
- frame_globals['__PYTHON_EL_wrap_completer']()
- except Exception as e:
- print('failed to setup completer: {}'.format(str(e)))
-
- def preloop(self):
- super(_PYTHON_EL_Pdb, self).preloop()
- # Make sure precmd/postcmd are called when entering pdb.
- self.cmdqueue.append('''print('python.el: setup Pdb')''')
- self.cmdqueue.append('''pass''')
- self.lastcmd = None
-
- def precmd(self, line):
- if self._python_el_def_pattern.search(line):
- self.real_lastcmd = self.lastcmd
- return super(_PYTHON_EL_Pdb, self).precmd(line)
-
- def postcmd(self, stop, line):
- self._python_el_setup()
- if self._python_el_def_pattern.search(line):
- self.lastcmd = self.real_lastcmd
- return super(_PYTHON_EL_Pdb, self).postcmd(stop, line)
-
-pdb.Pdb = _PYTHON_EL_Pdb"
+def _PYTHON_EL_Pdb_setup():
+ import pdb
+
+ class _PYTHON_EL_Pdb(pdb.Pdb, object):
+ def __init__(self, *args, **kw):
+ super(_PYTHON_EL_Pdb, self).__init__(*args, **kw)
+ import re
+ self._python_el_def_pattern = re.compile('__(PYTHON_EL|FFAP|PYDOC)_')
+ self._python_el_defs = {}
+ for k, v in globals().items():
+ if self._python_el_def_pattern.match(k):
+ self._python_el_defs[k] = v
+
+ def _python_el_setup(self):
+ if not hasattr(self, 'curframe') or self.curframe is None:
+ return
+ frame_globals = self.curframe.f_globals
+ if '__PYTHON_EL_eval' not in frame_globals:
+ for k, v in self._python_el_defs.items():
+ frame_globals[k] = v
+ try:
+ frame_globals['__PYTHON_EL_wrap_completer']()
+ except Exception as e:
+ print('failed to setup completer: {}'.format(str(e)))
+
+ def preloop(self):
+ super(_PYTHON_EL_Pdb, self).preloop()
+ # Make sure precmd/postcmd are called when entering pdb.
+ self.cmdqueue.append('''print('python.el: setup Pdb')''')
+ self.cmdqueue.append('''pass''')
+ self.lastcmd = None
+
+ def precmd(self, line):
+ if self._python_el_def_pattern.search(line):
+ self.real_lastcmd = self.lastcmd
+ return super(_PYTHON_EL_Pdb, self).precmd(line)
+
+ def postcmd(self, stop, line):
+ self._python_el_setup()
+ if self._python_el_def_pattern.search(line):
+ self.lastcmd = self.real_lastcmd
+ return super(_PYTHON_EL_Pdb, self).postcmd(stop, line)
+
+ pdb.Pdb = _PYTHON_EL_Pdb
+
+_PYTHON_EL_Pdb_setup()
+del _PYTHON_EL_Pdb_setup"
"Code used to setup the debugger in inferior Python processes.")
(defcustom python-pdbtrack-activate t
--Multipart_Sun_Jan_25_21:52:47_2026-1--
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
Received: (at 80182) by debbugs.gnu.org; 21 Jan 2026 15:07:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 21 10:07:28 2026
Received: from localhost ([127.0.0.1]:55890 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1viZns-00027o-EZ
for submit <at> debbugs.gnu.org; Wed, 21 Jan 2026 10:07:28 -0500
Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]:53714)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <kobarity@HIDDEN>)
id 1viZno-00027c-VS
for 80182 <at> debbugs.gnu.org; Wed, 21 Jan 2026 10:07:25 -0500
Received: by mail-pj1-x1035.google.com with SMTP id
98e67ed59e1d1-34c718c5481so3249158a91.3
for <80182 <at> debbugs.gnu.org>; Wed, 21 Jan 2026 07:07:24 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1769008044; x=1769612844; darn=debbugs.gnu.org;
h=content-transfer-encoding:mime-version:user-agent:references
:in-reply-to:subject:cc:to:from:message-id:date:from:to:cc:subject
:date:message-id:reply-to;
bh=QulhFR392ACnuwzLyO3VIl/i4GoyjA07bQSJM/Ai7cI=;
b=cSKxJ6MqpDQ665tYbpEgux5uus1tqjoh/RGj4dE9UobB+C9zMRoyKb68X7SekVaB7Z
GZCyY77nb1GBxI4j9Zk0n+W9wL+8rWtudVKVrLSNcabVAmXn4MPBkpuq4Gv/JxUU1eTL
ZHyHUkjVNA2+RzLTfGa5PTQnZWTjLmw8UvTZ47TAN3TmyfRRhYteMN19YeZ7KlkVhk/e
3NhfSa/ECXi7n1sT5T1EZe0cambd3itk4bwHggW9sPW1pg+kTCCu1A7gXL54k14nau7O
e3DfC4cV1j+2xFlZzszI6B8Sc+yZXvEX/HAc5YQzRpm1eGWmifc4lSfQsYbmJARxVStO
dJTw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1769008044; x=1769612844;
h=content-transfer-encoding:mime-version:user-agent:references
:in-reply-to:subject:cc:to:from:message-id:date:x-gm-gg
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=QulhFR392ACnuwzLyO3VIl/i4GoyjA07bQSJM/Ai7cI=;
b=wGqg2UFvtqMjcfxuhTiknDKWcU0ICFsK1kH/aPLFX4WUpDxOqSvqoRmsUpu+h1WXSj
dQq6XV+73PtkBErWMlT871A5SdBoDl0mDEPjZmlPad3rC1COn+KN+TQf+mQTmvIWW2YB
XKdVHIjKn1EMb9IvYHTzSKJf8ENguMSYyGMsW1Jm4NM8aQKDBJuZWcKD2XouyS0okIZ1
kxMK8Jw8f6YAben7l4eCk53rxwqnpr2zKWsp2mHxW4YPucKEXV6g3vYjusfMzQJfH+J7
fHplK5ApwyF8Gn9Po6C8FuCmtZRo8rf6komQxmR0qKwl8zR05WH6gd/Wz13fTwm+yfz5
A0mQ==
X-Gm-Message-State: AOJu0Yzdenhn+GTGvVOwRfN4eoH1e1mW3OsEUW+Urnwibf9NObVImRzT
Zn+Fd7dsxp/ywy1who+E44Kx3WmRgKgS+hbXoevMu5q3zFo07MLGi3cq
X-Gm-Gg: AZuq6aJU4hNxl2AaH7aF7Ga1tSb1/PunTPPbv1vVFVlmSRz3XB2kcXA33NX7l2/Itqa
3CF0ypAvI2yp5+RUaqO249mlgdZwhDnbA1K59xeF+lm372e7PIEdG44p/9BZBK/GPc/RpP/2I4x
9UF4bmRRoFdLv4w/Q8JkGxpKNc7d+EudaMK7+1zGoHyt9QY40cOYsYoF1/Xvty4Im1av0vRRcLD
qFFtwOw9zaZeihXCNaugzT4J61xEZ3lpAENLqNhbvv0ckedD4i3+lNIldWz41TnaYvcyAmqdw5+
xzn2f5/RC+91ZpfD5smSP3KLJPj8ywyFtjW5xU/G0f/iflZ2RZYo+xIp5oWsgTa8rUkhTHcdjSE
mb4JymkqKngX0H72sBy7U32Doez3THtU0UvsSe1L8yxhchPqG0H8dGkRqHzalV0A+hqoP9cC557
ngT7bRhdkNfZe+W8DvCjYHA/+uWM/5zFTkv3I4nTrVfhGXjd6bqMM=
X-Received: by 2002:a17:90a:d006:b0:343:c3d1:8b9b with SMTP id
98e67ed59e1d1-35273243355mr14771235a91.19.1769008043522;
Wed, 21 Jan 2026 07:07:23 -0800 (PST)
Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161])
by smtp.gmail.com with ESMTPSA id
98e67ed59e1d1-3527313c2a9sm15445266a91.17.2026.01.21.07.07.22
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Wed, 21 Jan 2026 07:07:23 -0800 (PST)
Date: Thu, 22 Jan 2026 00:07:21 +0900
Message-ID: <eke78qdr2edy.wl-kobarity@HIDDEN>
From: kobarity <kobarity@HIDDEN>
To: Liu Hui <liuhui1610@HIDDEN>
Subject: Re: bug#80182: 31.0.50;
Issues and improvements regarding non-native completion in python.el
In-Reply-To: <CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN>
References: <eke7a4ykpjep.wl-kobarity@HIDDEN>
<CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
<eke78qdyq5ef.wl-kobarity@HIDDEN>
<CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0
Emacs/31.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80182
Cc: 80182 <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.0 (/)
Liu Hui wrote:
> On Thu, Jan 15, 2026 at 11:09=E2=80=AFPM kobarity <kobarity@HIDDEN> wr=
ote:
>=20
> > It's good that native completion works. However, some people may be
> > using PYTHONSTARTUP for other purposes. Wouldn't it be better to send
> > it during initialization, just like other setup codes?
>=20
> Yes. PYTHONSTARTUP was just used as an example.
>=20
> > Attached is PoC-level patch to do so. I've also made it work with
> > Python 2.
>=20
> Thanks. The _PYTHON_EL_Pdb class has been improved in the attached
> patch, which is more robust and should also fix issue 2.
>=20
> > > Meanwhile, the Pdb hooks could be used for sending definitions used by
> > > non-native completion, and should fix issue 1.
> >
> > Do you mean PYTHONBREAKPOINT environment variable?
>=20
> I meant the hook functions of the Pdb class, e.g. postcmd. Because the
> frame could be changed by commands like up/down, we need to check if
> these definitions are available in current frame or detect if the
> frame changes.
>=20
> To fix non-native completion issues in pdb, we also need to send
> _PYTHON_EL_Pdb to the process when initializing the python shell
> rather than in python-shell-completion-native-setup. Therefore, I have
> moved the common completion code (e.g. the __PYTHON_EL_Completer
> class) in python-shell-completion-native-setup to
> python-shell-completion-setup-code.
I see.
> > > > Regarding No. 3, the current error message is as follows.
> > > >
> > > > python--parse-json-array: could not parse JSON stream: 1, 1, 1
> > > >
> > > > The string causing the error is not displayed, so it is not useful.
> > > > Liu proposed to handle JSON error in
> > > > `python-shell-completion-get-completions' as follows:
> > > >
> > > > (condition-case err
> > > > (python--parse-json-array completions)
> > > > (json-parse-error
> > > > (condition-case nil
> > > > (python--parse-json-array
> > > > (car (last (split-string completions "[\n\r]+" t))))
> > > > (json-parse-error
> > > > (signal (car err) (list completions))))))
> > > >
> > > > This works fine, but since `python--parse-json-array' is used
> > > > elsewhere, it might be better to improve those as well.
> > > >
> > > > Regarding No. 4, currently, each time
> > > > `python-shell-completion-get-completions' is executed, both the
> > > > definition of __PYTHON_EL_get_completions and the call to
> > > > __PYTHON_EL_get_completions are sent to the Inferior Python. Howev=
er,
> > > > there is no need to send the definition every time as long as the
> > > > definition remains unchanged. This can be improved with the attach=
ed
> > > > patch, but it might be better to consider it alongside other issues.
> > >
> > > I'd like to put all setup codes (including definitions
> > > __FFAP_get_module_path and __PYDOC_get_help) in one place and send
> > > them only once. I think it will not cause problem as long as the pdb
> > > case is addressed.
> >
> > I agree.
>=20
> The _PYTHON_EL_Pdb class now handles ffap/eldoc cases, so the
> definitions can be sent only once. In the patch, I have collected all
> setup codes and send them after the first prompt and before
> python-shell-first-prompt-hook.
>=20
> I have a question about python-shell-setup-code: is it necessary for
> sending python-shell-eval(-file)-setup-code? If not, I'd like to move
> it below.
Moving it is fine.
I'm considering changing it as follows to avoid polluting globals, but I
think it might be better to make it a separate patch.
(defconst python-shell-setup-code
"\
def __PYTHON_EL_setup():
try:
import termios
except ImportError:
pass
else:
attr =3D termios.tcgetattr(0)
attr[3] &=3D ~termios.ECHO
termios.tcsetattr(0, termios.TCSADRAIN, attr)
__PYTHON_EL_setup()
del __PYTHON_EL_setup"
"Code used to setup the inferior Python processes.")
> > I've integrated the code into __PYTHON_EL_native_completion_setup. To
> > prevent the message from appearing repeatedly after pressing Enter
> > following PDB startup, I've also added the pass command. What do you
> > think?
>=20
> Thanks. The message was mainly used to trigger pre/postcmd hooks, and
> I think 'pass' is a better placeholder. Maybe the message could be
> removed?
I agree.
I'd like to take a look at your patch over the weekend and try it out
more.
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
Received: (at 80182) by debbugs.gnu.org; 20 Jan 2026 10:03:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 20 05:03:23 2026
Received: from localhost ([127.0.0.1]:32966 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vi8a1-0007LN-Rx
for submit <at> debbugs.gnu.org; Tue, 20 Jan 2026 05:03:23 -0500
Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]:47157)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <liuhui1610@HIDDEN>)
id 1vi8Zy-0007LB-Gw
for 80182 <at> debbugs.gnu.org; Tue, 20 Jan 2026 05:03:19 -0500
Received: by mail-wr1-x42d.google.com with SMTP id
ffacd0b85a97d-432d2670932so4081096f8f.2
for <80182 <at> debbugs.gnu.org>; Tue, 20 Jan 2026 02:03:18 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1768903397; cv=none;
d=google.com; s=arc-20240605;
b=GNDpgZhDWYYEQpkAxiRJ3PcdGIx5PR8LbawUMrY7VO01JOE+7Zu64q6gXgW2QVBr9i
uUcePUSpGwNoyAXlAzSmGRjhuLRYfTYPoxOLXvY786K9IG0w7+8vj5Qy3LMFKrxpfzGE
Btm8AFWCTgnvyu9m+wSRYFKzx869yfuGga7WufjjEr/ZVQrFdJaDLgKsmuR49R8tbf0t
b503rpjhS6WGMljb5FVZcu5OVWqlDexGo4cem2gRJ3tbAbobb21J4o/R/0wdL0oPlTwm
lBQHnt3hWvprI9nb02In8i24W4ZBBd1RLOvPDwnu/2zX3j3SfNdJwhC3xPinwCQG8sD8
AEDw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;
s=arc-20240605;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:dkim-signature;
bh=wrU3nqIEiDHu1Cwv3GDu0gVgxTWppGtobRoVX74YkiQ=;
fh=wLSHm8nZ6epU63eELyFkYVW1VK5M5ycaaofSEfYiY4M=;
b=YAmUGTj6poGvXN28iLeHr53m33V5O0s3gH4upsGsf/EVnVK8AaEs0GKLhgcdAPhUhr
W3wpky9T/KsMpBsX22Ewi1glHOwxAA5j0jtCT3NW6Gc9/T2qGlR8VWaKZTjr0tmBxf5E
G3tVKtBuWIsfmkqkTurlRez8qNB7xj8bNUjiGxg3VTnnb70k0NPoIEeD46ogoxbUBi3h
53OVU8OSnVYAAxdBiOqmWb90pOxnvapQFtgT9pmc1uQIBXpbrTtDCbVee6wMFKc9iyYG
EowBCcG6jI3YG7PjmRaWTp35+aglIPibe3/rHqgqDKSBVS80Qf8f+bSwYbFAIB2wz8Zt
J2Zg==; darn=debbugs.gnu.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1768903397; x=1769508197; 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=wrU3nqIEiDHu1Cwv3GDu0gVgxTWppGtobRoVX74YkiQ=;
b=Cy4rK51O3OAyw8IVlYZM3j1AuITGCFqXwDh2W15QmHvxzAcZgRC0AdrcM2mp08+Mzu
bi8UWwHYY2RAmwVR3Uw+4zRVAq02Bch18EPsqJ2bds70vKtLoucF0jrd76iq3JARcz+G
i17LKm3zmPIRAOgBKxZX1Y62RTzF4TYqkol4J8nFWENfyGzQgs3KR0VXjHPAMzn+WWra
lBn58UY8ODSzb81CkG0YnpjQBnjLmXYBrKZVbMiwtFK7ldMdWF2GJt98x9Zgve3bJNIV
pIj1HpCU9vMH4dOwXWSf1+4MaDYDAu2hvDnNB9IE1IeCwRmfIBBjHYbxsadb+caDEjAq
ziyA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1768903397; x=1769508197;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to;
bh=wrU3nqIEiDHu1Cwv3GDu0gVgxTWppGtobRoVX74YkiQ=;
b=DSV9YpVH1N6vGRZl8/tTZ+RcYZOUm4WHgdf5OpRWKWX2f5p+ZLx7iGA8g+4pWJXDDU
MGR/LzmUprdM58cEBwXMpX7YVGpI8tfeHFF1BU+NIhfqitj/KsvG6njbiPQR6zYnSbT1
vyk2tlv5MarwLqFF+sM/+YXP2rFPHx97eilb8V00DuCsVN8D4PU1+tQH/f5yt5+iliYO
poSAj4KPv9is5YlkILmdaJMHJC0c2knxhO8YjSCZP2Z4tewbtEW66ZTT2jOiNM0gg1dx
WFoYaduuHYTyciHHQieMnBuF3Imz1a/tF36rG9sAIgM7v2PicCTagdqycrk5m53vC2Vr
T/ew==
X-Gm-Message-State: AOJu0YxRftm6mfahMb/pZpRNlZGIxCDRHGOpSje3rN4CHn3eWl7BAYKD
JM3Y6iywv0amy5Q4soQ31VmCYt/JW7iXnMCujl3nTzvS3NPD34SeZyc1Ao/eL3NgkS+hRU8gylX
yOiNSwhfqrsbOOF6lFYX+ta65ba4njxM=
X-Gm-Gg: AZuq6aIwj1qIrfkzLsc+sOhl5v0i8ig4U0Zrzs48FkLtgE9CJTbnQerBPrPFopujNqr
bLfd1lVlDiIeuU4Oged1bktxJUlqG1SiGS05uC5pihT1lL7rnCrzkkxBHAx2MMvQAl8v/poi5bM
FJAy6NvLr5JV49+ybEazbTRCr0yQNSfIydRSm66KQHU6TXIuKd7y68l3BPu8gEo90OEOlUW/K2U
7qx7mVl1zye+OTxIQuniJlC928dKNqWRVIrGfZXalgn48DNzU1c0I/r9L8lqiSr5XQfGO4=
X-Received: by 2002:a05:6000:2086:b0:432:5d73:79a1 with SMTP id
ffacd0b85a97d-43569bd6b82mr17294522f8f.55.1768903396962; Tue, 20 Jan 2026
02:03:16 -0800 (PST)
MIME-Version: 1.0
References: <eke7a4ykpjep.wl-kobarity@HIDDEN>
<CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
<eke78qdyq5ef.wl-kobarity@HIDDEN>
In-Reply-To: <eke78qdyq5ef.wl-kobarity@HIDDEN>
From: Liu Hui <liuhui1610@HIDDEN>
Date: Tue, 20 Jan 2026 18:03:04 +0800
X-Gm-Features: AZwV_QigFcZ57pAQwdFa3RhgRCDd-5McYGJ9w0SiAE8Fh-H1aHDd_1lA03m7M80
Message-ID: <CAOQTW-Pi6m_ppUctGdN1MSGDw0csQqwsc_kbbuR=z5K_cL-_QQ@HIDDEN>
Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native
completion in python.el
To: kobarity <kobarity@HIDDEN>
Content-Type: multipart/mixed; boundary="0000000000009e837d0648ceea73"
X-Spam-Score: 1.3 (+)
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: On Thu, Jan 15, 2026 at 11:09 PM kobarity wrote: > It's
good that native completion works. However, some people may be > using PYTHONSTARTUP
for other purposes. Wouldn't it be better to send > it during initialization,
just like other setup codes?
Content analysis details: (1.3 points, 10.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
no trust
[2a00:1450:4864:20:0:0:0:42d listed in]
[list.dnswl.org]
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends
in digit (liuhui1610[at]gmail.com)
1.0 FORGED_GMAIL_RCVD 'From' gmail.com does not match 'Received'
headers
-0.0 SPF_PASS SPF: sender matches SPF record
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
provider (liuhui1610[at]gmail.com)
X-Debbugs-Envelope-To: 80182
Cc: 80182 <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.3 (/)
--0000000000009e837d0648ceea73
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Thu, Jan 15, 2026 at 11:09=E2=80=AFPM kobarity <kobarity@HIDDEN> wrot=
e:
> It's good that native completion works. However, some people may be
> using PYTHONSTARTUP for other purposes. Wouldn't it be better to send
> it during initialization, just like other setup codes?
Yes. PYTHONSTARTUP was just used as an example.
> Attached is PoC-level patch to do so. I've also made it work with
> Python 2.
Thanks. The _PYTHON_EL_Pdb class has been improved in the attached
patch, which is more robust and should also fix issue 2.
> > Meanwhile, the Pdb hooks could be used for sending definitions used by
> > non-native completion, and should fix issue 1.
>
> Do you mean PYTHONBREAKPOINT environment variable?
I meant the hook functions of the Pdb class, e.g. postcmd. Because the
frame could be changed by commands like up/down, we need to check if
these definitions are available in current frame or detect if the
frame changes.
To fix non-native completion issues in pdb, we also need to send
_PYTHON_EL_Pdb to the process when initializing the python shell
rather than in python-shell-completion-native-setup. Therefore, I have
moved the common completion code (e.g. the __PYTHON_EL_Completer
class) in python-shell-completion-native-setup to
python-shell-completion-setup-code.
> > > Regarding No. 3, the current error message is as follows.
> > >
> > > python--parse-json-array: could not parse JSON stream: 1, 1, 1
> > >
> > > The string causing the error is not displayed, so it is not useful.
> > > Liu proposed to handle JSON error in
> > > `python-shell-completion-get-completions' as follows:
> > >
> > > (condition-case err
> > > (python--parse-json-array completions)
> > > (json-parse-error
> > > (condition-case nil
> > > (python--parse-json-array
> > > (car (last (split-string completions "[\n\r]+" t))))
> > > (json-parse-error
> > > (signal (car err) (list completions))))))
> > >
> > > This works fine, but since `python--parse-json-array' is used
> > > elsewhere, it might be better to improve those as well.
> > >
> > > Regarding No. 4, currently, each time
> > > `python-shell-completion-get-completions' is executed, both the
> > > definition of __PYTHON_EL_get_completions and the call to
> > > __PYTHON_EL_get_completions are sent to the Inferior Python. However=
,
> > > there is no need to send the definition every time as long as the
> > > definition remains unchanged. This can be improved with the attached
> > > patch, but it might be better to consider it alongside other issues.
> >
> > I'd like to put all setup codes (including definitions
> > __FFAP_get_module_path and __PYDOC_get_help) in one place and send
> > them only once. I think it will not cause problem as long as the pdb
> > case is addressed.
>
> I agree.
The _PYTHON_EL_Pdb class now handles ffap/eldoc cases, so the
definitions can be sent only once. In the patch, I have collected all
setup codes and send them after the first prompt and before
python-shell-first-prompt-hook.
I have a question about python-shell-setup-code: is it necessary for
sending python-shell-eval(-file)-setup-code? If not, I'd like to move
it below.
> I've integrated the code into __PYTHON_EL_native_completion_setup. To
> prevent the message from appearing repeatedly after pressing Enter
> following PDB startup, I've also added the pass command. What do you
> think?
Thanks. The message was mainly used to trigger pre/postcmd hooks, and
I think 'pass' is a better placeholder. Maybe the message could be
removed?
--0000000000009e837d0648ceea73
Content-Type: text/x-patch; charset="US-ASCII";
name="0001-Use-a-custom-Pdb-class-in-the-Python-shell.patch"
Content-Disposition: attachment;
filename="0001-Use-a-custom-Pdb-class-in-the-Python-shell.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mkmfedo60>
X-Attachment-Id: f_mkmfedo60
RnJvbSBhNmVkYWYzYzE3YjFjZjVhZTRmYzNkYjI0NjE5MTk4NWNlOTIxNzc0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBMaXUgSHVpIDxsaXVodWkxNjEwQGdtYWlsLmNvbT4KRGF0ZTog
VHVlLCAyMCBKYW4gMjAyNiAxODowMTozOCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFVzZSBhIGN1
c3RvbSBQZGIgY2xhc3MgaW4gdGhlIFB5dGhvbiBzaGVsbAoKVGhlIGN1c3RvbSBQZGIgY2xhc3Mg
ZW5hYmxlcyBuYXRpdmUgY29tcGxldGlvbiBpbiBwZGIgYnkKd3JhcHBpbmcgdGhlIHBkYidzIG5h
dGl2ZSBjb21wbGV0ZXIuICBJdCBhbHNvIG1ha2VzIG5lY2Vzc2FyeQpmdW5jdGlvbiBkZWZpbml0
aW9ucyBsaWtlIF9fUFlUSE9OX0VMXyogYXZhaWxhYmxlIGJldHdlZW4gcGRiCmZyYW1lcywgYW5k
IGVuYWJsZXMgbm9uLW5hdGl2ZSBjb21wbGV0aW9uL2ZmYXAvZWxkb2MKZnVuY3Rpb25hbGl0aWVz
IHdoZW4gZGVidWdnaW5nIGluc2lkZSBweXRob24gbW9kdWxlcy4KCiogbGlzcC9wcm9nbW9kZXMv
cHl0aG9uLmVsIChweXRob24tc2hlbGwtc2VuZC1zZXR1cC1jb2RlKTogRml4CnRoZSBzZXBhcmF0
b3IgYmV0d2VlbiBweXRob24tc2hlbGwtc2V0dXAtY29kZXMuCihweXRob24tc2hlbGwtY29tcGxl
dGlvbi1uYXRpdmUtc2V0dXApOiBNb3ZlIGNvbW1vbiBjb21wbGV0aW9uCnNldHVwIGNvZGUgLi4u
CihweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlKTogLi4uIGhlcmUuCihweXRob24t
c2hlbGwtY29tcGxldGlvbi1hdC1wb2ludCk6IEVuYWJsZSBuYXRpdmUgY29tcGxldGlvbiBmb3IK
cGRiIGFuZCByZXNwZWN0IHRoZSBkZWxpbWl0ZXIgb2YgcGRiIGNvbXBsZXRlci4KKHB5dGhvbi1z
aGVsbC1wZGItc2V0dXAtY29kZSk6IE5ldyB2YXJpYWJsZS4KKHB5dGhvbi1zaGVsbC1jb21pbnQt
d2F0Y2gtZm9yLWZpcnN0LXByb21wdC1vdXRwdXQtZmlsdGVyKTogU2VuZApzZXR1cCBjb2RlcyBv
bmx5IG9uY2UuCihweXRob24tZmZhcC1tb2R1bGUtcGF0aCwgcHl0aG9uLWVsZG9jLS1nZXQtZG9j
LWF0LXBvaW50KTogU3RvcApzZW5kaW5nIHNldHVwIGNvZGUgaW4gZXZlcnkgZnVuY3Rpb24gY2Fs
bC4gIChidWcjODAxODIpCi0tLQogbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsIHwgMjc3ICsrKysr
KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE1MSBp
bnNlcnRpb25zKCspLCAxMjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGlzcC9wcm9nbW9k
ZXMvcHl0aG9uLmVsIGIvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCmluZGV4IDg0OGEyNjIyOWU2
Li5jYTY4MzczMDhjZiAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCisrKyBi
L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi5lbApAQCAtMzc0NCw2ICszNzQ0LDEzIEBAIHB5dGhvbi1z
aGVsbC1jb21pbnQtd2F0Y2gtZm9yLWZpcnN0LXByb21wdC1vdXRwdXQtZmlsdGVyCiAgICAgICAg
ICAgKHB5dGhvbi1zaGVsbC1zZW5kLXN0cmluZy1uby1vdXRwdXQgcHl0aG9uLXNoZWxsLWV2YWwt
ZmlsZS1zZXR1cC1jb2RlKSkKICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKGN1cnJlbnQt
YnVmZmVyKQogICAgICAgICAgIChsZXQgKChpbmhpYml0LXF1aXQgbmlsKSkKKyAgICAgICAgICAg
IChweXRob24tc2hlbGwtc2VuZC1zdHJpbmcKKyAgICAgICAgICAgICAoc3RyaW5nLWpvaW4gKGxp
c3QgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAtY29kZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBweXRob24tc2hlbGwtcGRiLXNldHVwLWNvZGUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHl0aG9uLWZmYXAtc2V0dXAtY29kZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBweXRob24tZWxkb2Mtc2V0dXAtY29kZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIlxuIikpCisgICAgICAgICAgICAocHl0aG9uLXNoZWxsLWFjY2VwdC1wcm9j
ZXNzLW91dHB1dCAocHl0aG9uLXNoZWxsLWdldC1wcm9jZXNzKSkKICAgICAgICAgICAgIChweXRo
b24tc2hlbGwtcmVhZGxpbmUtZGV0ZWN0KQogICAgICAgICAgICAgKHJ1bi1ob29rcyAncHl0aG9u
LXNoZWxsLWZpcnN0LXByb21wdC1ob29rKSkpKSkpCiAgIG91dHB1dCkKQEAgLTQ0NTUsNyArNDQ2
Miw4IEBAIHB5dGhvbi1zaGVsbC1zZW5kLXNldHVwLWNvZGUKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKChzeW1ib2xwIGVsdCkgKHN5bWJvbC12YWx1ZSBlbHQpKQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAodCAiIikpKQogICAgICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxsLXNldHVw
LWNvZGVzCi0gICAgICAgICAgICAgICAgICAiXG5cbnByaW50ICgncHl0aG9uLmVsOiBzZW50IHNl
dHVwIGNvZGUnKSIpKSkpCisgICAgICAgICAgICAgICAgICAiXG4iKQorICAgICAgICAgICAgICAg
ICAiXG5wcmludCAoJ3B5dGhvbi5lbDogc2VudCBzZXR1cCBjb2RlJykiKSkpCiAgICAgICAocHl0
aG9uLXNoZWxsLXNlbmQtc3RyaW5nIGNvZGUgcHJvY2VzcykKICAgICAgIChweXRob24tc2hlbGwt
YWNjZXB0LXByb2Nlc3Mtb3V0cHV0IHByb2Nlc3MpKSkpCiAKQEAgLTQ1MjksMTYgKzQ1MzcsODEg
QEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0dXAtY29kZQogICAgIGZpbmFsbHk6CiAgICAg
ICAgIGlmIGdldGF0dHIoY29tcGxldGVyLCAnUFlUSE9OX0VMX1dSQVBQRUQnLCBGYWxzZSk6CiAg
ICAgICAgICAgICBjb21wbGV0ZXIucHJpbnRfbW9kZSA9IFRydWUKLSAgICByZXR1cm4ganNvbi5k
dW1wcyhjb21wbGV0aW9ucykiCi0gICJDb2RlIHVzZWQgdG8gc2V0dXAgY29tcGxldGlvbiBpbiBp
bmZlcmlvciBQeXRob24gcHJvY2Vzc2VzLiIKLSAgOnR5cGUgJ3N0cmluZykKKyAgICByZXR1cm4g
anNvbi5kdW1wcyhjb21wbGV0aW9ucykKIAotKGRlZnVuIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9u
LXNlbmQtc2V0dXAtY29kZSAoKQotICAiU2VuZCBgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tc2V0
dXAtY29kZScgdG8gaW5mZXJpb3IgUHl0aG9uIHByb2Nlc3MuIgotICAocHl0aG9uLXNoZWxsLXNl
bmQtc3RyaW5nLW5vLW91dHB1dCBweXRob24tc2hlbGwtY29tcGxldGlvbi1zZXR1cC1jb2RlKSkK
K2NsYXNzIF9fUFlUSE9OX0VMX0NvbXBsZXRlcjoKKyAgICAnJydDb21wbGV0ZXIgd3JhcHBlciB0
aGF0IHByaW50cyBjYW5kaWRhdGVzIHRvIHN0ZG91dC4KIAotKGFkZC1ob29rICdweXRob24tc2hl
bGwtZmlyc3QtcHJvbXB0LWhvb2sKLSAgICAgICAgICAjJ3B5dGhvbi1zaGVsbC1jb21wbGV0aW9u
LXNlbmQtc2V0dXAtY29kZSkKKyAgICBJdCB3cmFwcyBhbiBleGlzdGluZyBjb21wbGV0ZXIgZnVu
Y3Rpb24gYW5kIGNoYW5nZXMgaXRzIGJlaGF2aW9yIHNvCisgICAgdGhhdCB0aGUgdXNlciBpbnB1
dCBpcyB1bmNoYW5nZWQgYW5kIHJlYWwgY2FuZGlkYXRlcyBhcmUgcHJpbnRlZCB0bworICAgIHN0
ZG91dC4KKworICAgIFJldHVybmVkIGNhbmRpZGF0ZXMgYXJlICcwX19kdW1teV9jb21wbGV0aW9u
X18nIGFuZAorICAgICcxX19kdW1teV9jb21wbGV0aW9uX18nIGluIHRoYXQgb3JkZXIgKCcwX19k
dW1teV9jb21wbGV0aW9uX18nIGlzCisgICAgcmV0dXJuZWQgcmVwZWF0ZWRseSB1bnRpbCBhbGwg
cG9zc2libGUgY2FuZGlkYXRlcyBhcmUgY29uc3VtZWQpLgorCisgICAgVGhlIHJlYWwgY2FuZGlk
YXRlcyBhcmUgcHJpbnRlZCB0byBzdGRvdXQgc28gdGhhdCB0aGV5IGNhbiBiZQorICAgIGVhc2ls
eSByZXRyaWV2ZWQgdGhyb3VnaCBjb21pbnQgb3V0cHV0IHJlZGlyZWN0IHRyaWNrZXJ5LgorICAg
ICcnJworCisgICAgUFlUSE9OX0VMX1dSQVBQRUQgPSBUcnVlCisKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgY29tcGxldGVyKToKKyAgICAgICAgc2VsZi5jb21wbGV0ZXIgPSBjb21wbGV0ZXIKKyAg
ICAgICAgc2VsZi5sYXN0X2NvbXBsZXRpb24gPSBOb25lCisgICAgICAgIHNlbGYucHJpbnRfbW9k
ZSA9IFRydWUKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCB0ZXh0LCBzdGF0ZSk6CisgICAgICAg
IGlmIHN0YXRlID09IDA6CisgICAgICAgICAgICAjIFNldCB0aGUgZmlyc3QgZHVtbXkgY29tcGxl
dGlvbi4KKyAgICAgICAgICAgIHNlbGYubGFzdF9jb21wbGV0aW9uID0gTm9uZQorICAgICAgICAg
ICAgY29tcGxldGlvbiA9ICcwX19kdW1teV9jb21wbGV0aW9uX18nCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBjb21wbGV0aW9uID0gc2VsZi5jb21wbGV0ZXIodGV4dCwgc3RhdGUgLSAxKQor
CisgICAgICAgIGlmIG5vdCBjb21wbGV0aW9uOgorICAgICAgICAgICAgaWYgc2VsZi5sYXN0X2Nv
bXBsZXRpb24gIT0gJzFfX2R1bW15X2NvbXBsZXRpb25fXyc6CisgICAgICAgICAgICAgICAgIyBX
aGVuIG5vIG1vcmUgY29tcGxldGlvbnMgYXJlIGF2YWlsYWJsZSwgcmV0dXJuaW5nIGEKKyAgICAg
ICAgICAgICAgICAjIGR1bW15IHdpdGggbm9uLXNoYXJpbmcgcHJlZml4IGFsbG93IGVuc3VyaW5n
IG91dHB1dAorICAgICAgICAgICAgICAgICMgd2hpbGUgcHJldmVudGluZyBjaGFuZ2VzIHRvIGN1
cnJlbnQgaW5wdXQuCisgICAgICAgICAgICAgICAgIyBDb2luY2lkZW50YWxseSBpdCdzIGFsc28g
dGhlIGVuZCBvZiBvdXRwdXQuCisgICAgICAgICAgICAgICAgY29tcGxldGlvbiA9ICcxX19kdW1t
eV9jb21wbGV0aW9uX18nCisgICAgICAgIGVsaWYgY29tcGxldGlvbi5lbmRzd2l0aCgnKCcpOgor
ICAgICAgICAgICAgIyBSZW1vdmUgcGFyZW5zIG9uIGNhbGxhYmxlcyBhcyBpdCBicmVha3MgY29t
cGxldGlvbiBvbgorICAgICAgICAgICAgIyBhcmd1bWVudHMgKGUuZy4gc3RyKEFyaTx0YWI+KSku
CisgICAgICAgICAgICBjb21wbGV0aW9uID0gY29tcGxldGlvbls6LTFdCisgICAgICAgIHNlbGYu
bGFzdF9jb21wbGV0aW9uID0gY29tcGxldGlvbgorCisgICAgICAgIGlmIGNvbXBsZXRpb24gaW4g
KAorICAgICAgICAgICAgICAgICcwX19kdW1teV9jb21wbGV0aW9uX18nLCAnMV9fZHVtbXlfY29t
cGxldGlvbl9fJyk6CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbgorICAgICAgICBlbGlm
IGNvbXBsZXRpb246CisgICAgICAgICAgICAjIEZvciBldmVyeSBub24tZHVtbXkgY29tcGxldGlv
biwgcmV0dXJuIGEgcmVwZWF0ZWQgZHVtbXkKKyAgICAgICAgICAgICMgb25lIGFuZCBwcmludCB0
aGUgcmVhbCBjYW5kaWRhdGUgc28gaXQgY2FuIGJlIHJldHJpZXZlZAorICAgICAgICAgICAgIyBi
eSBjb21pbnQgb3V0cHV0IGZpbHRlcnMuCisgICAgICAgICAgICBpZiBzZWxmLnByaW50X21vZGU6
CisgICAgICAgICAgICAgICAgcHJpbnQgKGNvbXBsZXRpb24pCisgICAgICAgICAgICAgICAgcmV0
dXJuICcwX19kdW1teV9jb21wbGV0aW9uX18nCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1
cm4gY29tcGxldGlvbgorCitkZWYgX19QWVRIT05fRUxfd3JhcF9jb21wbGV0ZXIoKToKKyAgICBp
bXBvcnQgcmVhZGxpbmUKKyAgICBjb21wbGV0ZXIgPSByZWFkbGluZS5nZXRfY29tcGxldGVyKCkK
KworICAgIGlmIG5vdCBjb21wbGV0ZXI6CisgICAgICAgICMgVXNlZCBhcyBsYXN0IHJlc29ydCB0
byBhdm9pZCBicmVha2luZyBjdXN0b21pemF0aW9ucy4KKyAgICAgICAgaW1wb3J0IHJsY29tcGxl
dGVyCisgICAgICAgIGNvbXBsZXRlciA9IHJlYWRsaW5lLmdldF9jb21wbGV0ZXIoKQorCisgICAg
aWYgY29tcGxldGVyIGFuZCBub3QgZ2V0YXR0cihjb21wbGV0ZXIsICdQWVRIT05fRUxfV1JBUFBF
RCcsIEZhbHNlKToKKyAgICAgICAgIyBXcmFwIHRoZSBleGlzdGluZyBjb21wbGV0ZXIgZnVuY3Rp
b24gb25seSBvbmNlLgorICAgICAgICBuZXdfY29tcGxldGVyID0gX19QWVRIT05fRUxfQ29tcGxl
dGVyKGNvbXBsZXRlcikKKyAgICAgICAgcmVhZGxpbmUuc2V0X2NvbXBsZXRlcihuZXdfY29tcGxl
dGVyKSIKKyAgIkNvZGUgdXNlZCB0byBzZXR1cCBjb21wbGV0aW9uIGluIGluZmVyaW9yIFB5dGhv
biBwcm9jZXNzZXMuIgorICA6dHlwZSAnc3RyaW5nKQogCiAoZGVmaW5lLW9ic29sZXRlLXZhcmlh
YmxlLWFsaWFzCiAgICdweXRob24tc2hlbGwtY29tcGxldGlvbi1tb2R1bGUtc3RyaW5nLWNvZGUK
QEAgLTQ2MjQsMTAzICs0Njk3LDE2IEBAIHB5dGhvbi1zaGVsbC1jb21wbGV0aW9uLW5hdGl2ZS1z
ZXR1cAogZGVmIF9fUFlUSE9OX0VMX25hdGl2ZV9jb21wbGV0aW9uX3NldHVwKCk6CiAgICAgdHJ5
OgogICAgICAgICBpbXBvcnQgcmVhZGxpbmUKKyAgICAgICAgX19QWVRIT05fRUxfd3JhcF9jb21w
bGV0ZXIoKQogCisgICAgICAgICMgRW5zdXJlIHRoYXQgcmxjb21wbGV0ZXIuX19tYWluX18gYW5k
IF9fbWFpbl9fIGFyZSBpZGVudGljYWwuCisgICAgICAgICMgKEJ1ZyM3NjIwNSkKKyAgICAgICAg
aW1wb3J0IHN5cwogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbXBvcnQgX19idWlsdGluX18K
LSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgIyBQeXRob24gMwotICAg
ICAgICAgICAgaW1wb3J0IGJ1aWx0aW5zIGFzIF9fYnVpbHRpbl9fCi0KLSAgICAgICAgYnVpbHRp
bnMgPSBkaXIoX19idWlsdGluX18pCi0gICAgICAgIGlzX2lweXRob24gPSAoJ19fSVBZVEhPTl9f
JyBpbiBidWlsdGlucyBvcgotICAgICAgICAgICAgICAgICAgICAgICdfX0lQWVRIT05fX2FjdGl2
ZScgaW4gYnVpbHRpbnMpCi0KLSAgICAgICAgY2xhc3MgX19QWVRIT05fRUxfQ29tcGxldGVyOgot
ICAgICAgICAgICAgJycnQ29tcGxldGVyIHdyYXBwZXIgdGhhdCBwcmludHMgY2FuZGlkYXRlcyB0
byBzdGRvdXQuCi0KLSAgICAgICAgICAgIEl0IHdyYXBzIGFuIGV4aXN0aW5nIGNvbXBsZXRlciBm
dW5jdGlvbiBhbmQgY2hhbmdlcyBpdHMgYmVoYXZpb3Igc28KLSAgICAgICAgICAgIHRoYXQgdGhl
IHVzZXIgaW5wdXQgaXMgdW5jaGFuZ2VkIGFuZCByZWFsIGNhbmRpZGF0ZXMgYXJlIHByaW50ZWQg
dG8KLSAgICAgICAgICAgIHN0ZG91dC4KLQotICAgICAgICAgICAgUmV0dXJuZWQgY2FuZGlkYXRl
cyBhcmUgJzBfX2R1bW15X2NvbXBsZXRpb25fXycgYW5kCi0gICAgICAgICAgICAnMV9fZHVtbXlf
Y29tcGxldGlvbl9fJyBpbiB0aGF0IG9yZGVyICgnMF9fZHVtbXlfY29tcGxldGlvbl9fJyBpcwot
ICAgICAgICAgICAgcmV0dXJuZWQgcmVwZWF0ZWRseSB1bnRpbCBhbGwgcG9zc2libGUgY2FuZGlk
YXRlcyBhcmUgY29uc3VtZWQpLgotCi0gICAgICAgICAgICBUaGUgcmVhbCBjYW5kaWRhdGVzIGFy
ZSBwcmludGVkIHRvIHN0ZG91dCBzbyB0aGF0IHRoZXkgY2FuIGJlCi0gICAgICAgICAgICBlYXNp
bHkgcmV0cmlldmVkIHRocm91Z2ggY29taW50IG91dHB1dCByZWRpcmVjdCB0cmlja2VyeS4KLSAg
ICAgICAgICAgICcnJwotCi0gICAgICAgICAgICBQWVRIT05fRUxfV1JBUFBFRCA9IFRydWUKLQot
ICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbXBsZXRlcik6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5jb21wbGV0ZXIgPSBjb21wbGV0ZXIKLSAgICAgICAgICAgICAgICBzZWxmLmxhc3Rf
Y29tcGxldGlvbiA9IE5vbmUKLSAgICAgICAgICAgICAgICBzZWxmLnByaW50X21vZGUgPSBUcnVl
Ci0KLSAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCB0ZXh0LCBzdGF0ZSk6Ci0gICAgICAg
ICAgICAgICAgaWYgc3RhdGUgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgIyBTZXQgdGhlIGZp
cnN0IGR1bW15IGNvbXBsZXRpb24uCi0gICAgICAgICAgICAgICAgICAgIHNlbGYubGFzdF9jb21w
bGV0aW9uID0gTm9uZQotICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uID0gJzBfX2R1bW15
X2NvbXBsZXRpb25fXycKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAg
ICBjb21wbGV0aW9uID0gc2VsZi5jb21wbGV0ZXIodGV4dCwgc3RhdGUgLSAxKQotCi0gICAgICAg
ICAgICAgICAgaWYgbm90IGNvbXBsZXRpb246Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYu
bGFzdF9jb21wbGV0aW9uICE9ICcxX19kdW1teV9jb21wbGV0aW9uX18nOgotICAgICAgICAgICAg
ICAgICAgICAgICAgIyBXaGVuIG5vIG1vcmUgY29tcGxldGlvbnMgYXJlIGF2YWlsYWJsZSwgcmV0
dXJuaW5nIGEKLSAgICAgICAgICAgICAgICAgICAgICAgICMgZHVtbXkgd2l0aCBub24tc2hhcmlu
ZyBwcmVmaXggYWxsb3cgZW5zdXJpbmcgb3V0cHV0Ci0gICAgICAgICAgICAgICAgICAgICAgICAj
IHdoaWxlIHByZXZlbnRpbmcgY2hhbmdlcyB0byBjdXJyZW50IGlucHV0LgotICAgICAgICAgICAg
ICAgICAgICAgICAgIyBDb2luY2lkZW50YWxseSBpdCdzIGFsc28gdGhlIGVuZCBvZiBvdXRwdXQu
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uID0gJzFfX2R1bW15X2NvbXBsZXRp
b25fXycKLSAgICAgICAgICAgICAgICBlbGlmIGNvbXBsZXRpb24uZW5kc3dpdGgoJygnKToKLSAg
ICAgICAgICAgICAgICAgICAgIyBSZW1vdmUgcGFyZW5zIG9uIGNhbGxhYmxlcyBhcyBpdCBicmVh
a3MgY29tcGxldGlvbiBvbgotICAgICAgICAgICAgICAgICAgICAjIGFyZ3VtZW50cyAoZS5nLiBz
dHIoQXJpPHRhYj4pKS4KLSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbiA9IGNvbXBsZXRp
b25bOi0xXQotICAgICAgICAgICAgICAgIHNlbGYubGFzdF9jb21wbGV0aW9uID0gY29tcGxldGlv
bgotCi0gICAgICAgICAgICAgICAgaWYgY29tcGxldGlvbiBpbiAoCi0gICAgICAgICAgICAgICAg
ICAgICAgICAnMF9fZHVtbXlfY29tcGxldGlvbl9fJywgJzFfX2R1bW15X2NvbXBsZXRpb25fXycp
OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbgotICAgICAgICAgICAgICAg
IGVsaWYgY29tcGxldGlvbjoKLSAgICAgICAgICAgICAgICAgICAgIyBGb3IgZXZlcnkgbm9uLWR1
bW15IGNvbXBsZXRpb24sIHJldHVybiBhIHJlcGVhdGVkIGR1bW15Ci0gICAgICAgICAgICAgICAg
ICAgICMgb25lIGFuZCBwcmludCB0aGUgcmVhbCBjYW5kaWRhdGUgc28gaXQgY2FuIGJlIHJldHJp
ZXZlZAotICAgICAgICAgICAgICAgICAgICAjIGJ5IGNvbWludCBvdXRwdXQgZmlsdGVycy4KLSAg
ICAgICAgICAgICAgICAgICAgaWYgc2VsZi5wcmludF9tb2RlOgotICAgICAgICAgICAgICAgICAg
ICAgICAgcHJpbnQgKGNvbXBsZXRpb24pCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
JzBfX2R1bW15X2NvbXBsZXRpb25fXycKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uCi0gICAgICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24KLQotICAgICAgICBjb21w
bGV0ZXIgPSByZWFkbGluZS5nZXRfY29tcGxldGVyKCkKLQotICAgICAgICBpZiBub3QgY29tcGxl
dGVyOgotICAgICAgICAgICAgIyBVc2VkIGFzIGxhc3QgcmVzb3J0IHRvIGF2b2lkIGJyZWFraW5n
IGN1c3RvbWl6YXRpb25zLgotICAgICAgICAgICAgaW1wb3J0IHJsY29tcGxldGVyCi0gICAgICAg
ICAgICBjb21wbGV0ZXIgPSByZWFkbGluZS5nZXRfY29tcGxldGVyKCkKLQotICAgICAgICBpZiBj
b21wbGV0ZXIgYW5kIG5vdCBnZXRhdHRyKGNvbXBsZXRlciwgJ1BZVEhPTl9FTF9XUkFQUEVEJywg
RmFsc2UpOgotICAgICAgICAgICAgIyBXcmFwIHRoZSBleGlzdGluZyBjb21wbGV0ZXIgZnVuY3Rp
b24gb25seSBvbmNlLgotICAgICAgICAgICAgbmV3X2NvbXBsZXRlciA9IF9fUFlUSE9OX0VMX0Nv
bXBsZXRlcihjb21wbGV0ZXIpCi0gICAgICAgICAgICBpZiBub3QgaXNfaXB5dGhvbjoKLSAgICAg
ICAgICAgICAgICByZWFkbGluZS5zZXRfY29tcGxldGVyKG5ld19jb21wbGV0ZXIpCi0gICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgRW5zdXJlIHRoYXQgcmxjb21wbGV0ZXIuX19t
YWluX18gYW5kIF9fbWFpbl9fIGFyZSBpZGVudGljYWwuCi0gICAgICAgICAgICAgICAgIyAoQnVn
Izc2MjA1KQotICAgICAgICAgICAgICAgIGltcG9ydCBzeXMKLSAgICAgICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgICAgIHN5cy5tb2R1bGVzWydybGNvbXBsZXRlciddLl9fbWFpbl9f
ID0gc3lzLm1vZHVsZXNbJ19fbWFpbl9fJ10KLSAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJy
b3I6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgICAgICAjIFRyeSBib3Ro
IGluaXRpYWxpemF0aW9ucyB0byBjb3BlIHdpdGggYWxsIElQeXRob24gdmVyc2lvbnMuCi0gICAg
ICAgICAgICAgICAgIyBUaGlzIHdvcmtzIGZpbmUgZm9yIElQeXRob24gMy54IGJ1dCBub3QgZm9y
IGVhcmxpZXI6Ci0gICAgICAgICAgICAgICAgcmVhZGxpbmUuc2V0X2NvbXBsZXRlcihuZXdfY29t
cGxldGVyKQotICAgICAgICAgICAgICAgICMgSVB5dGhvbjwzIGhhY2tzIHJlYWRsaW5lIHN1Y2gg
dGhhdCBgcmVhZGxpbmUuc2V0X2NvbXBsZXRlcmAKLSAgICAgICAgICAgICAgICAjIHdvbid0IHdv
cmsuICBUaGlzIHdvcmthcm91bmQgaW5qZWN0cyB0aGUgbmV3IGNvbXBsZXRlcgotICAgICAgICAg
ICAgICAgICMgZnVuY3Rpb24gaW50byB0aGUgZXhpc3RpbmcgaW5zdGFuY2UgZGlyZWN0bHk6Ci0g
ICAgICAgICAgICAgICAgaW5zdGFuY2UgPSBnZXRhdHRyKGNvbXBsZXRlciwgJ2ltX3NlbGYnLCBj
b21wbGV0ZXIuX19zZWxmX18pCi0gICAgICAgICAgICAgICAgaW5zdGFuY2Uucmxjb21wbGV0ZSA9
IG5ld19jb21wbGV0ZXIKKyAgICAgICAgICAgIF9fSVBZVEhPTl9fCisgICAgICAgICAgICBzeXMu
bW9kdWxlc1sncmxjb21wbGV0ZXInXS5fX21haW5fXyA9IHN5cy5tb2R1bGVzWydfX21haW5fXydd
CisgICAgICAgIGV4Y2VwdCAoTmFtZUVycm9yLCBLZXlFcnJvcik6CisgICAgICAgICAgICBwYXNz
CiAKICAgICAgICAgaWYgcmVhZGxpbmUuX19kb2NfXyBhbmQgJ2xpYmVkaXQnIGluIHJlYWRsaW5l
Ll9fZG9jX186CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJycnbGliZWRpdCBiYXNlZCBy
ZWFkbGluZSBpcyBrbm93biBub3QgdG8gd29yaywKQEAgLTQ5NDAsMTIgKzQ5MjYsMjEgQEAgcHl0
aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQKICAgKHVubGVzcyBwcm9jZXNzCiAgICAgKHVz
ZXItZXJyb3IgIk5vIGFjdGl2ZSBweXRob24gaW5mZXJpb3IgcHJvY2VzcyIpKQogICAobGV0KiAo
KGlzLXNoZWxsLWJ1ZmZlciAoZGVyaXZlZC1tb2RlLXAgJ2luZmVyaW9yLXB5dGhvbi1tb2RlKSkK
KyAgICAgICAgIChwcm9tcHQtYm91bmRhcmllcworICAgICAgICAgICh3aXRoLWN1cnJlbnQtYnVm
ZmVyIChwcm9jZXNzLWJ1ZmZlciBwcm9jZXNzKQorICAgICAgICAgICAgKHB5dGhvbi11dGlsLWNv
bWludC1sYXN0LXByb21wdCkpKQorICAgICAgICAgKHByb21wdAorICAgICAgICAgICh3aXRoLWN1
cnJlbnQtYnVmZmVyIChwcm9jZXNzLWJ1ZmZlciBwcm9jZXNzKQorICAgICAgICAgICAgKHdoZW4g
cHJvbXB0LWJvdW5kYXJpZXMKKyAgICAgICAgICAgICAgKGJ1ZmZlci1zdWJzdHJpbmctbm8tcHJv
cGVydGllcworICAgICAgICAgICAgICAgKGNhciBwcm9tcHQtYm91bmRhcmllcykgKGNkciBwcm9t
cHQtYm91bmRhcmllcykpKSkpCiAgICAgICAgICAobGluZS1zdGFydCAoaWYgaXMtc2hlbGwtYnVm
ZmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgV29ya2luZyBvbiBhIHNoZWxsIGJ1ZmZl
cjogdXNlIHByb21wdCBlbmQuCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNkciAocHl0aG9u
LXV0aWwtY29taW50LWxhc3QtcHJvbXB0KSkKICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmUt
YmVnaW5uaW5nLXBvc2l0aW9uKSkpCiAgICAgICAgICAobm8tZGVsaW1zCi0gICAgICAgICAgKGFu
ZCAobm90IChpZiBpcy1zaGVsbC1idWZmZXIKKyAgICAgICAgICAoYW5kIChub3QgKHN0cmluZy1t
YXRjaC1wIHB5dGhvbi1zaGVsbC1wcm9tcHQtcGRiLXJlZ2V4cCBwcm9tcHQpKQorICAgICAgICAg
ICAgICAgKG5vdCAoaWYgaXMtc2hlbGwtYnVmZmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAo
ZXEgJ2ZvbnQtbG9jay1jb21tZW50LWZhY2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
Z2V0LXRleHQtcHJvcGVydHkgKDEtIChwb2ludCkpICdmYWNlKSkKICAgICAgICAgICAgICAgICAg
ICAgICAocHl0aG9uLXN5bnRheC1jb250ZXh0ICdjb21tZW50KSkpCkBAIC00OTY5LDE0ICs0OTY0
LDYgQEAgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tYXQtcG9pbnQKICAgICAgICAgICAgICAgICAo
Zm9yd2FyZC1jaGFyIChsZW5ndGggKG1hdGNoLXN0cmluZy1uby1wcm9wZXJ0aWVzIDApKSkKICAg
ICAgICAgICAgICAgICAocG9pbnQpKSkpKQogICAgICAgICAgKGVuZCAocG9pbnQpKQotICAgICAg
ICAgKHByb21wdC1ib3VuZGFyaWVzCi0gICAgICAgICAgKHdpdGgtY3VycmVudC1idWZmZXIgKHBy
b2Nlc3MtYnVmZmVyIHByb2Nlc3MpCi0gICAgICAgICAgICAocHl0aG9uLXV0aWwtY29taW50LWxh
c3QtcHJvbXB0KSkpCi0gICAgICAgICAocHJvbXB0Ci0gICAgICAgICAgKHdpdGgtY3VycmVudC1i
dWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCi0gICAgICAgICAgICAod2hlbiBwcm9tcHQt
Ym91bmRhcmllcwotICAgICAgICAgICAgICAoYnVmZmVyLXN1YnN0cmluZy1uby1wcm9wZXJ0aWVz
Ci0gICAgICAgICAgICAgICAoY2FyIHByb21wdC1ib3VuZGFyaWVzKSAoY2RyIHByb21wdC1ib3Vu
ZGFyaWVzKSkpKSkKICAgICAgICAgIChjb21wbGV0aW9uLWZuCiAgICAgICAgICAgKHdpdGgtY3Vy
cmVudC1idWZmZXIgKHByb2Nlc3MtYnVmZmVyIHByb2Nlc3MpCiAgICAgICAgICAgICAoY29uZCAo
KG9yIChudWxsIHByb21wdCkKQEAgLTQ5ODYsMTMgKzQ5NzMsNyBAQCBweXRob24tc2hlbGwtY29t
cGxldGlvbi1hdC1wb2ludAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctbWF0
Y2gtcAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRob24tc2hlbGwtcHJvbXB0LXBk
Yi1yZWdleHAgcHJvbXB0KSkpCiAgICAgICAgICAgICAgICAgICAgIydpZ25vcmUpCi0gICAgICAg
ICAgICAgICAgICAoKG9yIChub3QgcHl0aG9uLXNoZWxsLWNvbXBsZXRpb24tbmF0aXZlLWVuYWJs
ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgOzsgRXZlbiBpZiBuYXRpdmUgY29tcGxldGlvbiBp
cyBlbmFibGVkLCBmb3IKLSAgICAgICAgICAgICAgICAgICAgICAgOzsgcGRiIGludGVyYWN0aW9u
IGFsd2F5cyB1c2UgdGhlIGZhbGxiYWNrCi0gICAgICAgICAgICAgICAgICAgICAgIDs7IG1lY2hh
bmlzbSBzaW5jZSB0aGUgY29tcGxldGVyIGlzIGNoYW5nZWQuCi0gICAgICAgICAgICAgICAgICAg
ICAgIDs7IEFsc28sIHNpbmNlIHBkYiBpbnRlcmFjdGlvbiBpcyBzaW5nbGUtbGluZQotICAgICAg
ICAgICAgICAgICAgICAgICA7OyBiYXNlZCwgdGhpcyBpcyBlbm91Z2guCi0gICAgICAgICAgICAg
ICAgICAgICAgIChzdHJpbmctbWF0Y2gtcCBweXRob24tc2hlbGwtcHJvbXB0LXBkYi1yZWdleHAg
cHJvbXB0KSkKKyAgICAgICAgICAgICAgICAgICgobm90IHB5dGhvbi1zaGVsbC1jb21wbGV0aW9u
LW5hdGl2ZS1lbmFibGUpCiAgICAgICAgICAgICAgICAgICAgKGlmIChvciAoZXF1YWwgcHl0aG9u
LXNoZWxsLS1ibG9jay1wcm9tcHQgcHJvbXB0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHN0cmluZy1tYXRjaC1wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0aG9uLXNoZWxs
LXByb21wdC1ibG9jay1yZWdleHAgcHJvbXB0KSkKQEAgLTUwNzQsNiArNTA1NSw1MyBAQCBweXRo
b24tc2hlbGwtY29tcGxldGlvbi1jb21wbGV0ZS1vci1pbmRlbnQKIAwKIDs7OyBQREIgVHJhY2sg
aW50ZWdyYXRpb24KIAorKGRlZmNvbnN0IHB5dGhvbi1zaGVsbC1wZGItc2V0dXAtY29kZQorICAi
XAoraW1wb3J0IHBkYgorCitjbGFzcyBfUFlUSE9OX0VMX1BkYihwZGIuUGRiLCBvYmplY3QpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIHN1cGVyKF9QWVRI
T05fRUxfUGRiLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprdykKKyAgICAgICAgaW1wb3J0IHJl
CisgICAgICAgIHNlbGYuX3B5dGhvbl9lbF9kZWZfcGF0dGVybiA9IHJlLmNvbXBpbGUoJ19fKFBZ
VEhPTl9FTHxGRkFQfFBZRE9DKV8nKQorICAgICAgICBzZWxmLl9weXRob25fZWxfZGVmcyA9IHt9
CisgICAgICAgIGZvciBrLCB2IGluIGdsb2JhbHMoKS5pdGVtcygpOgorICAgICAgICAgICAgaWYg
c2VsZi5fcHl0aG9uX2VsX2RlZl9wYXR0ZXJuLm1hdGNoKGspOgorICAgICAgICAgICAgICAgIHNl
bGYuX3B5dGhvbl9lbF9kZWZzW2tdID0gdgorCisgICAgZGVmIF9weXRob25fZWxfc2V0dXAoc2Vs
Zik6CisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdjdXJmcmFtZScpIG9yIHNlbGYuY3Vy
ZnJhbWUgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBmcmFtZV9nbG9iYWxz
ID0gc2VsZi5jdXJmcmFtZS5mX2dsb2JhbHMKKyAgICAgICAgaWYgJ19fUFlUSE9OX0VMX2V2YWwn
IG5vdCBpbiBmcmFtZV9nbG9iYWxzOgorICAgICAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5fcHl0
aG9uX2VsX2RlZnMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBmcmFtZV9nbG9iYWxzW2tdID0g
dgorICAgICAgICB0cnk6CisgICAgICAgICAgICBmcmFtZV9nbG9iYWxzWydfX1BZVEhPTl9FTF93
cmFwX2NvbXBsZXRlciddKCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg
ICAgICAgcHJpbnQoJ2ZhaWxlZCB0byBzZXR1cCBjb21wbGV0ZXI6IHt9Jy5mb3JtYXQoc3RyKGUp
KSkKKworICAgIGRlZiBwcmVsb29wKHNlbGYpOgorICAgICAgICBzdXBlcihfUFlUSE9OX0VMX1Bk
Yiwgc2VsZikucHJlbG9vcCgpCisgICAgICAgICMgTWFrZSBzdXJlIHByZWNtZC9wb3N0Y21kIGFy
ZSBjYWxsZWQgd2hlbiBlbnRlcmluZyBwZGIuCisgICAgICAgIHNlbGYuY21kcXVldWUuYXBwZW5k
KCcnJ3ByaW50KCdweXRob24uZWw6IHNldHVwIFBkYicpJycnKQorICAgICAgICBzZWxmLmNtZHF1
ZXVlLmFwcGVuZCgnJydwYXNzJycnKQorICAgICAgICBzZWxmLmxhc3RjbWQgPSBOb25lCisKKyAg
ICBkZWYgcHJlY21kKHNlbGYsIGxpbmUpOgorICAgICAgICBpZiBzZWxmLl9weXRob25fZWxfZGVm
X3BhdHRlcm4uc2VhcmNoKGxpbmUpOgorICAgICAgICAgICAgc2VsZi5yZWFsX2xhc3RjbWQgPSBz
ZWxmLmxhc3RjbWQKKyAgICAgICAgcmV0dXJuIHN1cGVyKF9QWVRIT05fRUxfUGRiLCBzZWxmKS5w
cmVjbWQobGluZSkKKworICAgIGRlZiBwb3N0Y21kKHNlbGYsIHN0b3AsIGxpbmUpOgorICAgICAg
ICBzZWxmLl9weXRob25fZWxfc2V0dXAoKQorICAgICAgICBpZiBzZWxmLl9weXRob25fZWxfZGVm
X3BhdHRlcm4uc2VhcmNoKGxpbmUpOgorICAgICAgICAgICAgc2VsZi5sYXN0Y21kID0gc2VsZi5y
ZWFsX2xhc3RjbWQKKyAgICAgICAgcmV0dXJuIHN1cGVyKF9QWVRIT05fRUxfUGRiLCBzZWxmKS5w
b3N0Y21kKHN0b3AsIGxpbmUpCisKK3BkYi5QZGIgPSBfUFlUSE9OX0VMX1BkYiIKKyAgIkNvZGUg
dXNlZCB0byBzZXR1cCB0aGUgZGVidWdnZXIgaW4gaW5mZXJpb3IgUHl0aG9uIHByb2Nlc3Nlcy4i
KQorCiAoZGVmY3VzdG9tIHB5dGhvbi1wZGJ0cmFjay1hY3RpdmF0ZSB0CiAgICJOb24tbmlsIG1h
a2VzIFB5dGhvbiBzaGVsbCBlbmFibGUgcGRidHJhY2tpbmcuCiBQZGJ0cmFja2luZyB3b3VsZCBv
cGVuIHRoZSBmaWxlIGZvciBjdXJyZW50IHN0YWNrIGZyYW1lIGZvdW5kIGluIHBkYiBvdXRwdXQg
YnkKQEAgLTU3MTQsOCArNTc0Miw3IEBAIHB5dGhvbi1mZmFwLW1vZHVsZS1wYXRoCiAgICAgICAg
ICAgICAgICAgICAgICAgKHB5dGhvbi11dGlsLWNvbWludC1lbmQtb2Ytb3V0cHV0LXApKSkKICAg
ICAgICAgICAgICAgKG1vZHVsZS1maWxlCiAgICAgICAgICAgICAgICAocHl0aG9uLXNoZWxsLXNl
bmQtc3RyaW5nLW5vLW91dHB1dAotICAgICAgICAgICAgICAgIChmb3JtYXQgIiVzXG5wcmludChf
X0ZGQVBfZ2V0X21vZHVsZV9wYXRoKCVzKSkiCi0gICAgICAgICAgICAgICAgICAgICAgICBweXRo
b24tZmZhcC1zZXR1cC1jb2RlCisgICAgICAgICAgICAgICAgKGZvcm1hdCAicHJpbnQoX19GRkFQ
X2dldF9tb2R1bGVfcGF0aCglcykpIgogICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGhvbi1z
aGVsbC0tZW5jb2RlLXN0cmluZyBtb2R1bGUpKSkpKQogICAgICh1bmxlc3MgKHN0cmluZy1lbXB0
eS1wIG1vZHVsZS1maWxlKQogICAgICAgKHB5dGhvbi11dGlsLXN0cmlwLXN0cmluZyBtb2R1bGUt
ZmlsZSkpKSkKQEAgLTU4MzgsMTAgKzU4NjUsOCBAQCBweXRob24tZWxkb2MtLWdldC1kb2MtYXQt
cG9pbnQKICAgICAgICAgICAgICAgICA7OyBlbmFibGVkLiAgQnVnIzE4Nzk0LgogICAgICAgICAg
ICAgICAgIChweXRob24tdXRpbC1zdHJpcC1zdHJpbmcKICAgICAgICAgICAgICAgICAgKHB5dGhv
bi1zaGVsbC1zZW5kLXN0cmluZy1uby1vdXRwdXQKLSAgICAgICAgICAgICAgICAgIChmb3JtYXQK
LSAgICAgICAgICAgICAgICAgICAiJXNcbnByaW50KF9fUFlET0NfZ2V0X2hlbHAoJXMpKSIKLSAg
ICAgICAgICAgICAgICAgICBweXRob24tZWxkb2Mtc2V0dXAtY29kZQotICAgICAgICAgICAgICAg
ICAgIChweXRob24tc2hlbGwtLWVuY29kZS1zdHJpbmcgaW5wdXQpKQorICAgICAgICAgICAgICAg
ICAgKGZvcm1hdCAicHJpbnQoX19QWURPQ19nZXRfaGVscCglcykpIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAocHl0aG9uLXNoZWxsLS1lbmNvZGUtc3RyaW5nIGlucHV0KSkKICAgICAgICAg
ICAgICAgICAgIHByb2Nlc3MpKSkpKQogICAgICAgICAodW5sZXNzIChzdHJpbmctZW1wdHktcCBk
b2NzdHJpbmcpCiAgICAgICAgICAgZG9jc3RyaW5nKSkpKSkKLS0gCjIuNDMuMAoK
--0000000000009e837d0648ceea73--
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
Received: (at 80182) by debbugs.gnu.org; 18 Jan 2026 01:10:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 17 20:10:59 2026
Received: from localhost ([127.0.0.1]:38273 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vhHJj-0004cP-Dc
for submit <at> debbugs.gnu.org; Sat, 17 Jan 2026 20:10:59 -0500
Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]:59686)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <kobarity@HIDDEN>)
id 1vhHJe-0004cD-8b
for 80182 <at> debbugs.gnu.org; Sat, 17 Jan 2026 20:10:57 -0500
Received: by mail-pl1-x62e.google.com with SMTP id
d9443c01a7336-2a0d06ffa2aso22196615ad.3
for <80182 <at> debbugs.gnu.org>; Sat, 17 Jan 2026 17:10:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1768698653; x=1769303453; darn=debbugs.gnu.org;
h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from
:message-id:date:from:to:cc:subject:date:message-id:reply-to;
bh=bcsMbQYMK6/cYZnmw3vr6pcb716F1FrRI7u1fCmqacU=;
b=PinPlXK7EcA2o/cYWzjDTi6wMNyLOaTmuDWbHidTeAtnX2KZ2AeQy/0FqYbK5TEyd3
dYqDRfWPS5bETONt7LC4o0SR+2j+8tLLJONfmwjvHjM/YjxCfr9U/bNdLwZ8qaeX836P
ttQaHh4GbHWNLsrtxFHX6YcZ831K9502mfF5qnAqIRcQDLNyJEHglgbKKdIwFtdDjFP/
wgVsukMWuU+wdDWCqOeG1DPe0KFBpcEqRTd3aMZaNuhkExBwjlioGLrMLxA3Hr/8Lsjp
d44lQEV244lBeh27NKazXn6AtlqY7XUXBh5pLr9aylYrmINFLZdwaKWaTH0GyqIG1yoB
FlJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1768698653; x=1769303453;
h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from
:message-id:date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to;
bh=bcsMbQYMK6/cYZnmw3vr6pcb716F1FrRI7u1fCmqacU=;
b=IJxiniCjstlDsonOTa5WSuUFWqewWfrVAP7QmpPu4oUrs5tG9oSIk+ammEYLNlVFnG
PgkxfkN2ZelDvq9E7NHcLq6h9qj5NWSzpaTGoNBx0JWtr4y19QbwAEH5IuQj9hUQUhSK
wCQK3jU6Q9ITbkzUhfjfMplZUPwqt0W5gHxovrfRKAeUyJd4nWp7Fc+AmSkLuyDY5LCW
hQmzh/FKaw40KmairkmlAP0KXybY3KPk9gjnGeIHgCQtmkSo4+W3Hvvl14jMejjAqFym
uptuTYMkGVuQHfwYcCC7ZaGGefulGuzUi/oDFc7P4uQF62uG0oHJnw/rhG0VCBK8HHE2
rvtg==
X-Gm-Message-State: AOJu0YyR0G69y/e6YQWDo0IRXDaRNBsEStU3FwAQtatDu8y/nfIRo7mb
8/vgC4P0cQdslPOLsfqJ2MTcDSi1gl97h1CU1ZNYLtlQP9jiDcWRkpP4
X-Gm-Gg: AY/fxX59MDHC8cZE9iPCdZTjTt355+vjxOaRiq9QSPq9TUbYH08j6KTFq4r9A035HR/
V7OCop8pJgjMPFu3aoSAUhQwFbBLI32ECRoUhI9vC3GkTYdfEsqXMzvRwP9gvflmi+xan5qmy3G
2+6BiOht5alCFoaFIQTv2Ik+aEvOnaDViGzpgiEJBB9P71PdL+OubfgMDJ08WJ03FEno4UcxaOR
GR2ceItHuv668aeKmS8d1PZPJz1JAerIwSy6S+gU2Ormro4B91ue2QgTchzzvnWYZITPMJJgrOv
qf9rcK2fuwNOWdYZ/bnnBFZrtreAoZyJvuCYQzGqquAMN6LivvmaIpGMV7VieWyIyRp1Jl56jDa
lxRC5vmRqDkwvo0qeQW6+ZLrDvExad7Q0CP2Ov88rVwtOOpvtywMPc5br7Xq1gBvGncc6wM2454
/NLVfKu5YQcrhojuXdhrgXnWpkbGpZtcYZJbW4vtY1
X-Received: by 2002:a17:903:b83:b0:298:2637:800b with SMTP id
d9443c01a7336-2a7175cbf79mr67402075ad.31.1768698653009;
Sat, 17 Jan 2026 17:10:53 -0800 (PST)
Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161])
by smtp.gmail.com with ESMTPSA id
d9443c01a7336-2a7193fc8d9sm55499965ad.79.2026.01.17.17.10.51
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Sat, 17 Jan 2026 17:10:52 -0800 (PST)
Date: Sun, 18 Jan 2026 10:10:51 +0900
Message-ID: <eke7bjirrahw.wl-kobarity@HIDDEN>
From: kobarity <kobarity@HIDDEN>
To: liuhui1610@HIDDEN, Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#80182: 31.0.50;
Issues and improvements regarding non-native completion in python.el
In-Reply-To: <86ecnoql5o.fsf@HIDDEN>
References: <eke7a4ykpjep.wl-kobarity@HIDDEN> <865x90s80w.fsf@HIDDEN>
<eke7fr84qqzc.wl-kobarity@HIDDEN> <86ecnoql5o.fsf@HIDDEN>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0
Emacs/31.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: multipart/mixed; boundary="Multipart_Sun_Jan_18_10:10:51_2026-1"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80182
Cc: 80182 <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.0 (/)
--Multipart_Sun_Jan_18_10:10:51_2026-1
Content-Type: text/plain; charset=US-ASCII
Eli Zaretskii wrote:
> > Thank you. Since we're still discussing other issues, could you
> > reopen this bug? Or should we open a new bug?
>
> Done.
Thanks.
Hi Liu,
I've integrated the code into __PYTHON_EL_native_completion_setup. To
prevent the message from appearing repeatedly after pressing Enter
following PDB startup, I've also added the pass command. What do you
think?
--Multipart_Sun_Jan_18_10:10:51_2026-1
Content-Type: application/octet-stream; type=patch; name="pdb-native-completion.diff"
Content-Disposition: attachment; filename="pdb-native-completion.diff"
Content-Transfer-Encoding: 7bit
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 9c5e1e5ee6c..ab071c39620 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -4710,6 +4710,30 @@ python-shell-completion-native-setup
# Avoid replacing common prefix with ellipsis.
readline.parse_and_bind('set completion-prefix-display-length 0')
+ _PYTHON_EL_Completer = __PYTHON_EL_Completer
+
+ import pdb
+ from pdb import Pdb
+
+ class _PYTHON_EL_Pdb(Pdb, object):
+
+ def preloop(self):
+ super(_PYTHON_EL_Pdb, self).preloop()
+ frame_globals = self.curframe.f_globals
+ for k, v in globals().items():
+ if k.startswith('__PYTHON_EL'):
+ frame_globals[k] = v
+ self.cmdqueue.append('print(\"install readline completer ...\")')
+ self.cmdqueue.append('pass')
+
+ def precmd(self, line):
+ import readline
+ completer = readline.get_completer()
+ if completer and not getattr(completer, 'PYTHON_EL_WRAPPED', False):
+ readline.set_completer(_PYTHON_EL_Completer(completer))
+ return super(_PYTHON_EL_Pdb, self).precmd(line)
+
+ pdb.Pdb = _PYTHON_EL_Pdb
print ('python.el: native completion setup loaded')
except:
import sys
@@ -4961,13 +4985,7 @@ python-shell-completion-at-point
(string-match-p
python-shell-prompt-pdb-regexp prompt)))
#'ignore)
- ((or (not python-shell-completion-native-enable)
- ;; Even if native completion is enabled, for
- ;; pdb interaction always use the fallback
- ;; mechanism since the completer is changed.
- ;; Also, since pdb interaction is single-line
- ;; based, this is enough.
- (string-match-p python-shell-prompt-pdb-regexp prompt))
+ ((not python-shell-completion-native-enable)
(if (or (equal python-shell--block-prompt prompt)
(string-match-p
python-shell-prompt-block-regexp prompt))
--Multipart_Sun_Jan_18_10:10:51_2026-1--
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.Debbugs Internal Request <help-debbugs@HIDDEN>
to internal_control <at> debbugs.gnu.org.
Full text available.Received: (at 80182) by debbugs.gnu.org; 17 Jan 2026 16:06:08 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 17 11:06:08 2026 Received: from localhost ([127.0.0.1]:60290 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vh8oR-0007xe-ER for submit <at> debbugs.gnu.org; Sat, 17 Jan 2026 11:06:07 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:46344) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vh8oP-0007wr-3b; Sat, 17 Jan 2026 11:06: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 1vh8oI-0002EV-3t; Sat, 17 Jan 2026 11:05: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=8D4XC3KWo77NvKMisS2XMN/pDtsu5MeVRB6OjYVwweE=; b=jDYBdgkrcQXH hLweaV4iP+wqlOgfrGJQERI6hU0TUlR9nH71JrttShuq/+smX4Iev1FSwQb1jkvK4rNWhtvc6SOO7 yUhxSIh6QJ5c8hkfkWR7cRcP0WGOdpD3ttBQDu+1VyCCRSY54ua64YbygFM4IGqU86sXcAWahnbpM qx4Rrr5jk56N4SohsE9OkY4/wnYFluo/A0gwF0kdQfwwj9ycLxRceb3f0J1jZq+Oh8aDWI7SWsSuA GVhY9TsiUV3e04rXyw5JT+T3gm6LmuB5zXvsGa9Ue2oWFeg+FyTCPd95txh5lCLTF6UTk00lqbWfn dnski3gXw376w3+wDAXpSQ==; Date: Sat, 17 Jan 2026 18:05:55 +0200 Message-Id: <86ecnoql5o.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: kobarity <kobarity@HIDDEN> In-Reply-To: <eke7fr84qqzc.wl-kobarity@HIDDEN> (message from kobarity on Sat, 17 Jan 2026 23:00:07 +0900) Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native completion in python.el References: <eke7a4ykpjep.wl-kobarity@HIDDEN> <865x90s80w.fsf@HIDDEN> <eke7fr84qqzc.wl-kobarity@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 80182 Cc: liuhui1610@HIDDEN, 80182 <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 (---) reopen 80182 thanks > Date: Sat, 17 Jan 2026 23:00:07 +0900 > From: kobarity <kobarity@HIDDEN> > Cc: 80182-done <at> debbugs.gnu.org, > liuhui1610@HIDDEN > > Eli Zaretskii wrote: > > > > > Cc: Liu Hui <liuhui1610@HIDDEN> > > > Date: Sun, 11 Jan 2026 18:50:54 +0900 > > > From: kobarity <kobarity@HIDDEN> > > > > > > While investigating Bug #79723, we noticed the following issues and > > > potential improvements with non-native completion. > > > > > > 1. Completion doesn't work for PDB within module functions. > > > 2. After canceling completion in PDB, a list of candidates may appear. > > > 3. Improving messages for JSON parsing errors. > > > 4. Improvement to stop sending `python-shell-completion-setup-code' > > > every time. > > > > > > No. 1 is reported by Liu. It can be reproduced as follows: > > > > > > 1. echo 'def f(): breakpoint()' > test.py > > > 2. in the python shell: > > > from test import f > > > f() > > > 3. type "a" after the pdb prompt and press TAB > > > > > > This issue stems from the fact that functions such as __PYTHON_EL_eval > > > are not defined in the symbol table of the selected stack frame. This > > > can be avoided by redefining __PYTHON_EL_eval, but I'm not sure if > > > that's the right approach. For details, see > > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79723#98 > > > > > > I recently found No. 2. It can be reproduced as follows: > > > > > > 1. emacs -Q > > > 2. M-x run-python > > > 3. Type 'def f(): breakpoint()' Enter Enter > > > 4. Type 'f()' Enter > > > 5. Type 'a' TAB Backspace Enter > > > 6. The following list will be shown. > > > ["a", "alias", "args"] > > > > > > Regarding No. 3, the current error message is as follows. > > > > > > python--parse-json-array: could not parse JSON stream: 1, 1, 1 > > > > > > The string causing the error is not displayed, so it is not useful. > > > Liu proposed to handle JSON error in > > > `python-shell-completion-get-completions' as follows: > > > > > > (condition-case err > > > (python--parse-json-array completions) > > > (json-parse-error > > > (condition-case nil > > > (python--parse-json-array > > > (car (last (split-string completions "[\n\r]+" t)))) > > > (json-parse-error > > > (signal (car err) (list completions)))))) > > > > > > This works fine, but since `python--parse-json-array' is used > > > elsewhere, it might be better to improve those as well. > > > > > > Regarding No. 4, currently, each time > > > `python-shell-completion-get-completions' is executed, both the > > > definition of __PYTHON_EL_get_completions and the call to > > > __PYTHON_EL_get_completions are sent to the Inferior Python. However, > > > there is no need to send the definition every time as long as the > > > definition remains unchanged. This can be improved with the attached > > > patch, but it might be better to consider it alongside other issues. > > > > Thanks, I've now installed this on the master branch. > > Thank you. Since we're still discussing other issues, could you > reopen this bug? Or should we open a new bug? Done.
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.Received: (at 80182-done) by debbugs.gnu.org; 17 Jan 2026 14:00:27 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 17 09:00:27 2026 Received: from localhost ([127.0.0.1]:56757 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vh6qo-0003Xq-MP for submit <at> debbugs.gnu.org; Sat, 17 Jan 2026 09:00:27 -0500 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]:61772) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <kobarity@HIDDEN>) id 1vh6ql-0003XK-7s for 80182-done <at> debbugs.gnu.org; Sat, 17 Jan 2026 09:00:24 -0500 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-34c5f0222b0so1390439a91.3 for <80182-done <at> debbugs.gnu.org>; Sat, 17 Jan 2026 06:00:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768658422; x=1769263222; darn=debbugs.gnu.org; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:from:to:cc:subject:date:message-id:reply-to; bh=Ndqh1wrTtiiAQpfsSYHAOsBOXsEpNe94RC5/K8BNh1M=; b=AiI3XAMGseUue8pQrNMv2r1v33Fh2D7GKeqWWkyKxyb32hcppFY9FMXRWdrFc9yltv a24IUCDnHNxqi9MY8d1sjgFiWvcb0nQiEvOXiwlUETaRIAy16sGitSiZBOZKY0RjAqiL 5nQ5Nuu/bripboq4EYVxmaclOub2WWJjM2fmNKPC59DrZKm3LxJ2+E8pmFFX/3EvkHs0 vli2wOROZ1JYYnSncT3rm0UpW5xAEYFfk8ZvH6R7fl8pJk7w6foXSUBFAwHjy58ABTPR hDHaCuPMSbCAMkjY9qMC2EJ/zeLO39wEigGiK5fAVz1EWx/MU9lzNFhMZMnetB6SWaIE aOAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768658422; x=1769263222; h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from :message-id:date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Ndqh1wrTtiiAQpfsSYHAOsBOXsEpNe94RC5/K8BNh1M=; b=aZ/w/VIoxZ+Y3YdlLkzNczvt9bsoyLl4PoihAvtsW8OJAyUY/yOtAPTu0yP++EVX1k wXeWv9l+XgnDxiXVe+dP3/Z/lIIMKG1sqa2HReVlPlAIYmFAsULesHH0iyv7FlvSokCZ KQ360s6wZUhQ3yl4DS1/qSn7u4kgaow6/4GKK8Mjs4loXuYSqH6aIrMn9ccPL82Y23e9 7L0XV74lA76llU90aRRMb3ckquLw3s1cbAWE3acUwzJPLa3C/vpL83I+XFaN6FcZjC2A WnbppX7whJvSMl4wqreI7XsLU60zWWdjrAqOJmPrlLdgCyHfWq+okXrRymHo7HVPgnDd WWWg== X-Gm-Message-State: AOJu0YyWWDhfVwkzOjjp+oNjiL3sDWw48cilc2BEPRpIfvHDAvybuVfT qr9A+qt+oYGNvWru0bMZfP0zQuycCJLy6wLCt5HxODGDuQo2NR0aR4P9 X-Gm-Gg: AY/fxX62Gt9MCNPYglwh7YY+1beYQggPnfxw2YxNEQZdKglQMdGJ3EqylV0JEvwB1Z7 eWIe1yDriv4hRc92ZI7jJOLYjKrS6D7UHJ6EaBNEEO/lcPqZIgAYVNx1BlQZOZ7Z/E8fGIim/ND 0iJTzv2xuiVwNXZU5NTZg0QfNqqw3ib6fP9oTkyT12NS2LBU7qViKv5UMchO8QVLuVIv6dQhR1k UaTCAd0LmGDDVK7rQto1iAi9d9gX6a6TqBvVFiQBq7BJOoH8cXShgogRhmVI6NasFpnbuJUoDN7 XUkM509ikg6SN373tCRzyRfYTOj6H1r3sRIvQM3NwYh0RpiiR7qVu/qoNJvweelkFoPvCTwgBql 2JNVsotxwZZ64Tvm5GtoRHLsvHxVUf7P9Vw8SrAFJq40lP8CjoFVykzq7J13MCR1P10d/Z/n2Up vbGCDsNQaFW7bjNpG7fIxXWa+V4a9f6MpN2N8SxbVxkQ/sZk4P7Q0= X-Received: by 2002:a17:90b:4c05:b0:34c:2db6:57f1 with SMTP id 98e67ed59e1d1-35272f8b598mr4839817a91.30.1768658421747; Sat, 17 Jan 2026 06:00:21 -0800 (PST) Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-352677ec7dasm7139033a91.8.2026.01.17.06.00.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 17 Jan 2026 06:00:21 -0800 (PST) Date: Sat, 17 Jan 2026 23:00:07 +0900 Message-ID: <eke7fr84qqzc.wl-kobarity@HIDDEN> From: kobarity <kobarity@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native completion in python.el In-Reply-To: <865x90s80w.fsf@HIDDEN> References: <eke7a4ykpjep.wl-kobarity@HIDDEN> <865x90s80w.fsf@HIDDEN> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/31.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 80182-done Cc: liuhui1610@HIDDEN, 80182-done <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.0 (/) Eli Zaretskii wrote: > > > Cc: Liu Hui <liuhui1610@HIDDEN> > > Date: Sun, 11 Jan 2026 18:50:54 +0900 > > From: kobarity <kobarity@HIDDEN> > > > > While investigating Bug #79723, we noticed the following issues and > > potential improvements with non-native completion. > > > > 1. Completion doesn't work for PDB within module functions. > > 2. After canceling completion in PDB, a list of candidates may appear. > > 3. Improving messages for JSON parsing errors. > > 4. Improvement to stop sending `python-shell-completion-setup-code' > > every time. > > > > No. 1 is reported by Liu. It can be reproduced as follows: > > > > 1. echo 'def f(): breakpoint()' > test.py > > 2. in the python shell: > > from test import f > > f() > > 3. type "a" after the pdb prompt and press TAB > > > > This issue stems from the fact that functions such as __PYTHON_EL_eval > > are not defined in the symbol table of the selected stack frame. This > > can be avoided by redefining __PYTHON_EL_eval, but I'm not sure if > > that's the right approach. For details, see > > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79723#98 > > > > I recently found No. 2. It can be reproduced as follows: > > > > 1. emacs -Q > > 2. M-x run-python > > 3. Type 'def f(): breakpoint()' Enter Enter > > 4. Type 'f()' Enter > > 5. Type 'a' TAB Backspace Enter > > 6. The following list will be shown. > > ["a", "alias", "args"] > > > > Regarding No. 3, the current error message is as follows. > > > > python--parse-json-array: could not parse JSON stream: 1, 1, 1 > > > > The string causing the error is not displayed, so it is not useful. > > Liu proposed to handle JSON error in > > `python-shell-completion-get-completions' as follows: > > > > (condition-case err > > (python--parse-json-array completions) > > (json-parse-error > > (condition-case nil > > (python--parse-json-array > > (car (last (split-string completions "[\n\r]+" t)))) > > (json-parse-error > > (signal (car err) (list completions)))))) > > > > This works fine, but since `python--parse-json-array' is used > > elsewhere, it might be better to improve those as well. > > > > Regarding No. 4, currently, each time > > `python-shell-completion-get-completions' is executed, both the > > definition of __PYTHON_EL_get_completions and the call to > > __PYTHON_EL_get_completions are sent to the Inferior Python. However, > > there is no need to send the definition every time as long as the > > definition remains unchanged. This can be improved with the attached > > patch, but it might be better to consider it alongside other issues. > > Thanks, I've now installed this on the master branch. Thank you. Since we're still discussing other issues, could you reopen this bug? Or should we open a new bug?
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.Received: (at 80182-done) by debbugs.gnu.org; 17 Jan 2026 13:07:21 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 17 08:07:20 2026 Received: from localhost ([127.0.0.1]:56025 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vh61P-0007m8-JV for submit <at> debbugs.gnu.org; Sat, 17 Jan 2026 08:07:20 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56854) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vh61I-0007kV-4m for 80182-done <at> debbugs.gnu.org; Sat, 17 Jan 2026 08:07:16 -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 1vh61C-0003xR-Jw; Sat, 17 Jan 2026 08:07: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=irG1PL3P26FucurGEChIfDtGcvCMWRx+5JGfdwssnWM=; b=BsO2mgOadf/I 0MvWOLWvA7vwFTqkJBTesCAoSeoXgnl4VID8RNh49MO8oPmkinm5PaMh9qmCCd3xbzAWAS5EpTRF+ Ly8rCck3Nc5hZzvZvb0KfWeCJYYLgM4D7i4Xma7aB0afsRB4DabeUnD59RgLhwHEigrw8YyODH2Zp lQriiMDV76vE4lx1zGwnKoh3XyCJKi066Z9imkEbeZTSp1OTuoQKb6+VDCJl+bYF2nfCb/yL2CjZ3 dbuYu2LeeiPzuI5DskJs1dDBqc2TbH528IhULy7sJy51ESgYPZfg7o+vyG+pAwYeXZsMWTWlPovel givBrB94HOWWeU6UTptaBA==; Date: Sat, 17 Jan 2026 15:06:39 +0200 Message-Id: <865x90s80w.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: kobarity <kobarity@HIDDEN> In-Reply-To: <eke7a4ykpjep.wl-kobarity@HIDDEN> (message from kobarity on Sun, 11 Jan 2026 18:50:54 +0900) Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native completion in python.el References: <eke7a4ykpjep.wl-kobarity@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 80182-done Cc: liuhui1610@HIDDEN, 80182-done <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: Liu Hui <liuhui1610@HIDDEN> > Date: Sun, 11 Jan 2026 18:50:54 +0900 > From: kobarity <kobarity@HIDDEN> > > While investigating Bug #79723, we noticed the following issues and > potential improvements with non-native completion. > > 1. Completion doesn't work for PDB within module functions. > 2. After canceling completion in PDB, a list of candidates may appear. > 3. Improving messages for JSON parsing errors. > 4. Improvement to stop sending `python-shell-completion-setup-code' > every time. > > No. 1 is reported by Liu. It can be reproduced as follows: > > 1. echo 'def f(): breakpoint()' > test.py > 2. in the python shell: > from test import f > f() > 3. type "a" after the pdb prompt and press TAB > > This issue stems from the fact that functions such as __PYTHON_EL_eval > are not defined in the symbol table of the selected stack frame. This > can be avoided by redefining __PYTHON_EL_eval, but I'm not sure if > that's the right approach. For details, see > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79723#98 > > I recently found No. 2. It can be reproduced as follows: > > 1. emacs -Q > 2. M-x run-python > 3. Type 'def f(): breakpoint()' Enter Enter > 4. Type 'f()' Enter > 5. Type 'a' TAB Backspace Enter > 6. The following list will be shown. > ["a", "alias", "args"] > > Regarding No. 3, the current error message is as follows. > > python--parse-json-array: could not parse JSON stream: 1, 1, 1 > > The string causing the error is not displayed, so it is not useful. > Liu proposed to handle JSON error in > `python-shell-completion-get-completions' as follows: > > (condition-case err > (python--parse-json-array completions) > (json-parse-error > (condition-case nil > (python--parse-json-array > (car (last (split-string completions "[\n\r]+" t)))) > (json-parse-error > (signal (car err) (list completions)))))) > > This works fine, but since `python--parse-json-array' is used > elsewhere, it might be better to improve those as well. > > Regarding No. 4, currently, each time > `python-shell-completion-get-completions' is executed, both the > definition of __PYTHON_EL_get_completions and the call to > __PYTHON_EL_get_completions are sent to the Inferior Python. However, > there is no need to send the definition every time as long as the > definition remains unchanged. This can be improved with the attached > patch, but it might be better to consider it alongside other issues. Thanks, I've now installed this on the master branch.
kobarity <kobarity@HIDDEN>:Eli Zaretskii <eliz@HIDDEN>:
Received: (at 80182) by debbugs.gnu.org; 15 Jan 2026 15:09:37 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jan 15 10:09:36 2026
Received: from localhost ([127.0.0.1]:47035 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vgOye-0005Mi-8J
for submit <at> debbugs.gnu.org; Thu, 15 Jan 2026 10:09:36 -0500
Received: from mail-pf1-x42a.google.com ([2607:f8b0:4864:20::42a]:47389)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <kobarity@HIDDEN>)
id 1vgOya-0005MK-UK
for 80182 <at> debbugs.gnu.org; Thu, 15 Jan 2026 10:09:33 -0500
Received: by mail-pf1-x42a.google.com with SMTP id
d2e1a72fcca58-81f3d6990d6so563217b3a.3
for <80182 <at> debbugs.gnu.org>; Thu, 15 Jan 2026 07:09:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1768489772; x=1769094572; darn=debbugs.gnu.org;
h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from
:message-id:date:from:to:cc:subject:date:message-id:reply-to;
bh=iXipIxIMzUqyKUIf13IwTaRepkVT28V9Yx14yt09Lsk=;
b=KahNQlOuh8+yl9T/0ID4KEim4Jf0O8R7Vct1EjYAr03Umvl0/kngPu74BimORml71s
BzBLrthr9dJca8AUWP8MTxLCvy8JM/ttueoyhuE0Yfhr4dzDHeiH6eY/qSP5uaECx1RC
n61yjDO20ZBqdAMIj4NMmJkBccYJlmQYRx6PYtIex2SWwPnasvPAak+EL3vFNWixDOna
fyTbthFe0xoxQ+PtoI6x23XhAB/XWlm2MCza5kl2tOZDhyN/cOWagjQizZ2FtDqZkYaX
WugZdKEtA8r2ZbEMLCSkbbj1jNVMmh6INA8GBbFbL/56CAZSgEs2sFf0Qz0f8Dmsk89J
kjqg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1768489772; x=1769094572;
h=mime-version:user-agent:references:in-reply-to:subject:cc:to:from
:message-id:date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to;
bh=iXipIxIMzUqyKUIf13IwTaRepkVT28V9Yx14yt09Lsk=;
b=CXxWuHrwzQExDj6zEV8lR24OaoUqwFUgDxNiHI3Da8KtU6MWTE02l+t5GWGVZMf/VJ
8VZYZvzuazqPg4uk9mbhTPwY44QUgpvstM/YlH5UgUK4qKmaxMmIIzpNlxctknNEvAYB
TfdYZ0WLlf6KhAb0wcCAfod4jeW3xbBFAbs0bGN3w62vIbG5GlgMvRdo24fYounGq3nQ
zNsvLdEWk+QL9quFjkUBWHlJ5mc7JLdsnGtbxgX9j0FFn+UiSEQsYP2WhsWCKfE4iGh0
C6b7WGAR0aoG4HR3xBgb//TKOcqWqWPPMwY387ZHFMZbg9v6ECZxhtY05g0GOkfrFzx3
5h5w==
X-Gm-Message-State: AOJu0Yz3XApStz4ttbYJwuvGNJLMOvP1btWwc6g9OeUe0zV9ob5HV4OO
SPpDBhDoJ6LbCKY32459+5Kjpr94rOlcl3g9hVetBJDbupFOHNRbmTGy
X-Gm-Gg: AY/fxX7L+W4DjXYCDggdrKIJ/1kJnnJbG63md4ipJagQUs9qiqTuNM05WoWTA5Bab31
hKBSyhgP8Vy2lNhyu4y6x8eFA96flU7InC3Ywp/ycj3qUTclSjNLmiQoGxaPRvzfxoWulNqFrBS
MlKIFF9Jq1eIhIIxHSB9UQvuPjH4Q2BSygBGEbJuaxk8HKcWEYjE0co29yAd61cq1Z4pP8HuadN
VmW4kTwGgA+RpIVXJJObZBT04TKX83jIE/y8EmKVW26whnjDXICRmfd4wt5HFTzXAHN30QcB0An
9QnkuEaZ8Y8SERpcfmtg1MYODLDAgTBqQ3aLFckQDAxmWaTR6srRFAVwqnL15qPsOZVZdj17V/7
duyU83l5Y0kCGJsGMbEb5Qy3r7wG6GyvQUIWcFgiTc2OwT4VcIl+WAq50GpHwpzPG3A9vB+GIBC
lzH+s82S8n4UlHJfTdPapugzvbiy3jh6PQTL244xpc
X-Received: by 2002:a05:6a20:12ca:b0:371:5a31:e486 with SMTP id
adf61e73a8af0-38dfe59047fmr74461637.6.1768489770975;
Thu, 15 Jan 2026 07:09:30 -0800 (PST)
Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161])
by smtp.gmail.com with ESMTPSA id
41be03b00d2f7-c4cbfe1ca24sm6191704a12.12.2026.01.15.07.09.29
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Thu, 15 Jan 2026 07:09:30 -0800 (PST)
Date: Fri, 16 Jan 2026 00:09:28 +0900
Message-ID: <eke78qdyq5ef.wl-kobarity@HIDDEN>
From: kobarity <kobarity@HIDDEN>
To: Liu Hui <liuhui1610@HIDDEN>
Subject: Re: bug#80182: 31.0.50;
Issues and improvements regarding non-native completion in python.el
In-Reply-To: <CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
References: <eke7a4ykpjep.wl-kobarity@HIDDEN>
<CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0
Emacs/31.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: multipart/mixed; boundary="Multipart_Fri_Jan_16_00:09:28_2026-1"
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 80182
Cc: 80182 <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.0 (/)
--Multipart_Fri_Jan_16_00:09:28_2026-1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Liu Hui wrote:
> On Sun, Jan 11, 2026 at 5:52=E2=80=AFPM kobarity <kobarity@HIDDEN> wro=
te:
> >
> >
> > While investigating Bug #79723, we noticed the following issues and
> > potential improvements with non-native completion.
> >
> > 1. Completion doesn't work for PDB within module functions.
> > 2. After canceling completion in PDB, a list of candidates may appear.
> > 3. Improving messages for JSON parsing errors.
> > 4. Improvement to stop sending `python-shell-completion-setup-code'
> > every time.
>=20
> Thanks.
>=20
> > No. 1 is reported by Liu. It can be reproduced as follows:
> >
> > 1. echo 'def f(): breakpoint()' > test.py
> > 2. in the python shell:
> > from test import f
> > f()
> > 3. type "a" after the pdb prompt and press TAB
> >
> > This issue stems from the fact that functions such as __PYTHON_EL_eval
> > are not defined in the symbol table of the selected stack frame. This
> > can be avoided by redefining __PYTHON_EL_eval, but I'm not sure if
> > that's the right approach. For details, see
> > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D79723#98
> >
> > I recently found No. 2. It can be reproduced as follows:
> >
> > 1. emacs -Q
> > 2. M-x run-python
> > 3. Type 'def f(): breakpoint()' Enter Enter
> > 4. Type 'f()' Enter
> > 5. Type 'a' TAB Backspace Enter
> > 6. The following list will be shown.
> > ["a", "alias", "args"]
>=20
> It is because the codes sent by non-native completion are regarded as
> debugger commands by pdb. Then pressing Enter repeats running last
> completion code.
>=20
> Fortunately, native completion actually works for pdb if we wrap the
> pdb completer. For example, using the attached file as the
> PYTHONSTARTUP file, and enabling pdb native completion with the
> following change.
>=20
> diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
> index 9c5e1e5ee6c..41240d34495 100644
> --- a/lisp/progmodes/python.el
> +++ b/lisp/progmodes/python.el
> @@ -4961,13 +4964,7 @@ python-shell-completion-at-point
> (string-match-p
> python-shell-prompt-pdb-regexp prompt)))
> #'ignore)
> - ((or (not python-shell-completion-native-enable)
> - ;; Even if native completion is enabled, for
> - ;; pdb interaction always use the fallback
> - ;; mechanism since the completer is changed.
> - ;; Also, since pdb interaction is single-line
> - ;; based, this is enough.
> - (string-match-p python-shell-prompt-pdb-regexp pr=
ompt))
> + ((not python-shell-completion-native-enable)
> (if (or (equal python-shell--block-prompt prompt)
> (string-match-p
> python-shell-prompt-block-regexp prompt))
It's good that native completion works. However, some people may be
using PYTHONSTARTUP for other purposes. Wouldn't it be better to send
it during initialization, just like other setup codes?
Attached is PoC-level patch to do so. I've also made it work with
Python 2.
> Meanwhile, the Pdb hooks could be used for sending definitions used by
> non-native completion, and should fix issue 1.
Do you mean PYTHONBREAKPOINT environment variable?
> > Regarding No. 3, the current error message is as follows.
> >
> > python--parse-json-array: could not parse JSON stream: 1, 1, 1
> >
> > The string causing the error is not displayed, so it is not useful.
> > Liu proposed to handle JSON error in
> > `python-shell-completion-get-completions' as follows:
> >
> > (condition-case err
> > (python--parse-json-array completions)
> > (json-parse-error
> > (condition-case nil
> > (python--parse-json-array
> > (car (last (split-string completions "[\n\r]+" t))))
> > (json-parse-error
> > (signal (car err) (list completions))))))
> >
> > This works fine, but since `python--parse-json-array' is used
> > elsewhere, it might be better to improve those as well.
> >
> > Regarding No. 4, currently, each time
> > `python-shell-completion-get-completions' is executed, both the
> > definition of __PYTHON_EL_get_completions and the call to
> > __PYTHON_EL_get_completions are sent to the Inferior Python. However,
> > there is no need to send the definition every time as long as the
> > definition remains unchanged. This can be improved with the attached
> > patch, but it might be better to consider it alongside other issues.
>=20
> I'd like to put all setup codes (including definitions
> __FFAP_get_module_path and __PYDOC_get_help) in one place and send
> them only once. I think it will not cause problem as long as the pdb
> case is addressed.
I agree.
--Multipart_Fri_Jan_16_00:09:28_2026-1
Content-Type: application/octet-stream; type=patch; name="0001-Enable-native-completion-in-Python-PDB.patch"
Content-Disposition: attachment; filename="0001-Enable-native-completion-in-Python-PDB.patch"
Content-Transfer-Encoding: 7bit
From 894caf2b35f5c399d872c4a52f7de01121788544 Mon Sep 17 00:00:00 2001
From: kobarity <kobarity@HIDDEN>
Date: Thu, 15 Jan 2026 23:51:54 +0900
Subject: [PATCH] Enable native completion in Python PDB
---
lisp/progmodes/python.el | 94 ++++++++++++++++++++++++++++++++++++----
1 file changed, 86 insertions(+), 8 deletions(-)
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 9c5e1e5ee6c..cfb0bf59dc7 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -4716,7 +4716,91 @@ python-shell-completion-native-setup
print ('python.el: native completion setup failed, %s: %s'
% sys.exc_info()[:2])
-__PYTHON_EL_native_completion_setup()" process)))
+__PYTHON_EL_native_completion_setup()
+
+import os
+
+class _PYTHON_EL_Completer:
+ '''Completer wrapper that prints candidates to stdout.
+
+ It wraps an existing completer function and changes its behavior so
+ that the user input is unchanged and real candidates are printed to
+ stdout.
+
+ Returned candidates are '0__dummy_completion__' and
+ '1__dummy_completion__' in that order ('0__dummy_completion__' is
+ returned repeatedly until all possible candidates are consumed).
+
+ The real candidates are printed to stdout so that they can be
+ easily retrieved through comint output redirect trickery.
+ '''
+
+ PYTHON_EL_WRAPPED = True
+
+ def __init__(self, completer):
+ self.completer = completer
+ self.last_completion = None
+ self.print_mode = True
+
+ def __call__(self, text, state):
+ if state == 0:
+ # Set the first dummy completion.
+ self.last_completion = None
+ completion = '0__dummy_completion__'
+ else:
+ completion = self.completer(text, state - 1)
+
+ if not completion:
+ if self.last_completion != '1__dummy_completion__':
+ # When no more completions are available, returning a
+ # dummy with non-sharing prefix allow ensuring output
+ # while preventing changes to current input.
+ # Coincidentally it's also the end of output.
+ completion = '1__dummy_completion__'
+ elif completion.endswith('('):
+ # Remove parens on callables as it breaks completion on
+ # arguments (e.g. str(Ari<tab>)).
+ completion = completion[:-1]
+ self.last_completion = completion
+
+ if completion in (
+ '0__dummy_completion__', '1__dummy_completion__'):
+ return completion
+ elif completion:
+ # For every non-dummy completion, return a repeated dummy
+ # one and print the real candidate so it can be retrieved
+ # by comint output filters.
+ if self.print_mode:
+ print (completion)
+ return '0__dummy_completion__'
+ else:
+ return completion
+ else:
+ return completion
+
+import pdb
+from pdb import Pdb
+
+class _PythonElPdb(Pdb, object):
+
+ def preloop(self):
+ super(_PythonElPdb, self).preloop()
+ frame_globals = self.curframe.f_globals
+ for k, v in globals().items():
+ if k.startswith('__PYTHON_EL'):
+ frame_globals[k] = v
+ self.cmdqueue.append('print(\"install readline completer ...\")')
+
+ def precmd(self, line):
+ import readline
+ completer = readline.get_completer()
+ if completer and not getattr(completer, 'PYTHON_EL_WRAPPED', False):
+ readline.set_completer(_PYTHON_EL_Completer(completer))
+ return super(_PythonElPdb, self).precmd(line)
+
+
+pdb.Pdb = _PythonElPdb
+del (pdb, Pdb, os)" process)))
(when (string-match-p "python\\.el: native completion setup loaded"
output)
(python-shell-completion-native-try))))
@@ -4961,13 +5045,7 @@ python-shell-completion-at-point
(string-match-p
python-shell-prompt-pdb-regexp prompt)))
#'ignore)
- ((or (not python-shell-completion-native-enable)
- ;; Even if native completion is enabled, for
- ;; pdb interaction always use the fallback
- ;; mechanism since the completer is changed.
- ;; Also, since pdb interaction is single-line
- ;; based, this is enough.
- (string-match-p python-shell-prompt-pdb-regexp prompt))
+ ((not python-shell-completion-native-enable)
(if (or (equal python-shell--block-prompt prompt)
(string-match-p
python-shell-prompt-block-regexp prompt))
--
2.43.0
--Multipart_Fri_Jan_16_00:09:28_2026-1--
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
Received: (at 80182) by debbugs.gnu.org; 14 Jan 2026 03:49:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 13 22:49:56 2026
Received: from localhost ([127.0.0.1]:55059 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vfrtM-0005f9-B3
for submit <at> debbugs.gnu.org; Tue, 13 Jan 2026 22:49:56 -0500
Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:52285)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <liuhui1610@HIDDEN>)
id 1vfrtJ-0005ey-Og
for 80182 <at> debbugs.gnu.org; Tue, 13 Jan 2026 22:49:54 -0500
Received: by mail-wr1-x42c.google.com with SMTP id
ffacd0b85a97d-42fbc305552so6120542f8f.0
for <80182 <at> debbugs.gnu.org>; Tue, 13 Jan 2026 19:49:53 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1768362592; x=1768967392; 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=tX0Ywi174ESv2BuKPPx5Adm54zD/3+vhyMSwC85btVE=;
b=hv/TT5RJdwq+mVO0IdxVV7AA1HqJbVUb9Ww3GLj7mLUDVCPV/+OH1qk8aTCSLQYH2u
RsN9MFF/AfXIQlPv712pHaAv4nYVdqAQUTRQgq1osMpUYVEYxDrDqxygpdnPKHJ1tpF2
fJMt65NXidOkEnmCU7oUj3ZZYxP7ZhmpapOLRD8bEj5Be17lQiZzfds/X0Ywx/Dr7PsV
07v2RT484FTV7Wgm6vFPKZBfUWLt2YBvsaVz04CjP//pReybC9TJEDVLZLaAP28YYt9N
f6H9EpoadzVXCydOLnok7QTTAdCrbv4VS9+/FNCoH+5z27mHadI4vJrP3mstmPbzXOfK
Id/Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1768362592; x=1768967392;
h=cc:to:subject:message-id:date:from:in-reply-to:references
:mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date
:message-id:reply-to;
bh=tX0Ywi174ESv2BuKPPx5Adm54zD/3+vhyMSwC85btVE=;
b=fBJOLYDg/TwhouECy+BaE5NkuRG3uHBtrLSKynV2l15tTRxM85vUaGXX/3PjDaTGvs
v4fJUNDkTVVNZ1aWCFPFpyUt7pY3cpEFSbzc7Mw73d7TUHPjgZDVLfk2M0/fn0CIlzg5
mcw0v15uCWMkF2d3R0jwsyXG330utLLlBg8DTBbxmpjh4YZGvY5GAU/6hcD4sjeOAaOe
BW92kzOgbv48nnFyxIxNIGiHOgTt+aI6X6EqkvHl5myanFeRXQa0iNpU5jR12N1ryC5P
LSMDKzBo5ZzacvGIDqMT5ImfMc6ydtg+7I1hcTVRaw3Z7FZryp/5VzVCYrqZVYf0SLYi
Q9GA==
X-Gm-Message-State: AOJu0YyopoHC3Hra/Z22Ahz+UUzoXOzQCWpa0SGdOuYFV49U9+Tk5Pqg
Rn/bujOVBUFnqkB4W3+pfWNgpZlUNZV07qqCNq59PxhUZikeMxZIs6e0D09fmrNnZybK+8Qb9hb
bAAvINKpNHenSCosOYyRSgWuZSngulsI=
X-Gm-Gg: AY/fxX40JU/oJ52ySGvYaaJEcNKjN0fYekXJendSPVZTB/QzALi1BKSs4xGULpt+fYk
bIs6m8ddSPdiXYqolz8weHA+TA5Gu/I+d1LvFH24ax2oBnmH4m0aVjq9k3RbiGx7xGqyaDlxsRn
Inok9sMfpO7Y5FUN3ezS1KeDeuXRWn6KWutMdtEnytHM5PkiA+BAGYRz75jAKJKUaNY3DWhhuOp
1CB0LRArmjKJoefY2OnLUV0Jr4NIlj9fHWAmKl9Njye3M9gcU5V0xE9A6tNWhvc3jwUgmc=
X-Received: by 2002:a05:6000:2381:b0:42b:3c25:cd06 with SMTP id
ffacd0b85a97d-4342c4f77cfmr821011f8f.22.1768362591968; Tue, 13 Jan 2026
19:49:51 -0800 (PST)
MIME-Version: 1.0
References: <eke7a4ykpjep.wl-kobarity@HIDDEN>
In-Reply-To: <eke7a4ykpjep.wl-kobarity@HIDDEN>
From: Liu Hui <liuhui1610@HIDDEN>
Date: Wed, 14 Jan 2026 11:49:39 +0800
X-Gm-Features: AZwV_QifIMbDt5xppc9BqCeViVBkalEZpM4EKu6_hev8FB6jv7W_35uCv-43Ik8
Message-ID: <CAOQTW-Oba8++VXTjTMLWi9rcCxXzocA5HTk4E1gzyYUJ-VfvWw@HIDDEN>
Subject: Re: bug#80182: 31.0.50; Issues and improvements regarding non-native
completion in python.el
To: kobarity <kobarity@HIDDEN>
Content-Type: multipart/mixed; boundary="00000000000020f79706485100b0"
X-Spam-Score: 1.3 (+)
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: On Sun, Jan 11, 2026 at 5:52 PM kobarity wrote: > > > While
investigating Bug #79723, we noticed the following issues and > potential
improvements with non-native completion. > > 1. Completion doe [...]
Content analysis details: (1.3 points, 10.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends
in digit (liuhui1610[at]gmail.com)
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
provider (liuhui1610[at]gmail.com)
-0.0 SPF_PASS SPF: sender matches SPF record
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
1.0 FORGED_GMAIL_RCVD 'From' gmail.com does not match 'Received'
headers
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
no trust
[2a00:1450:4864:20:0:0:0:42c listed in]
[list.dnswl.org]
X-Debbugs-Envelope-To: 80182
Cc: 80182 <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.3 (/)
--00000000000020f79706485100b0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
On Sun, Jan 11, 2026 at 5:52=E2=80=AFPM kobarity <kobarity@HIDDEN> wrote=
:
>
>
> While investigating Bug #79723, we noticed the following issues and
> potential improvements with non-native completion.
>
> 1. Completion doesn't work for PDB within module functions.
> 2. After canceling completion in PDB, a list of candidates may appear.
> 3. Improving messages for JSON parsing errors.
> 4. Improvement to stop sending `python-shell-completion-setup-code'
> every time.
Thanks.
> No. 1 is reported by Liu. It can be reproduced as follows:
>
> 1. echo 'def f(): breakpoint()' > test.py
> 2. in the python shell:
> from test import f
> f()
> 3. type "a" after the pdb prompt and press TAB
>
> This issue stems from the fact that functions such as __PYTHON_EL_eval
> are not defined in the symbol table of the selected stack frame. This
> can be avoided by redefining __PYTHON_EL_eval, but I'm not sure if
> that's the right approach. For details, see
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D79723#98
>
> I recently found No. 2. It can be reproduced as follows:
>
> 1. emacs -Q
> 2. M-x run-python
> 3. Type 'def f(): breakpoint()' Enter Enter
> 4. Type 'f()' Enter
> 5. Type 'a' TAB Backspace Enter
> 6. The following list will be shown.
> ["a", "alias", "args"]
It is because the codes sent by non-native completion are regarded as
debugger commands by pdb. Then pressing Enter repeats running last
completion code.
Fortunately, native completion actually works for pdb if we wrap the
pdb completer. For example, using the attached file as the
PYTHONSTARTUP file, and enabling pdb native completion with the
following change.
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 9c5e1e5ee6c..41240d34495 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -4961,13 +4964,7 @@ python-shell-completion-at-point
(string-match-p
python-shell-prompt-pdb-regexp prompt)))
#'ignore)
- ((or (not python-shell-completion-native-enable)
- ;; Even if native completion is enabled, for
- ;; pdb interaction always use the fallback
- ;; mechanism since the completer is changed.
- ;; Also, since pdb interaction is single-line
- ;; based, this is enough.
- (string-match-p python-shell-prompt-pdb-regexp prom=
pt))
+ ((not python-shell-completion-native-enable)
(if (or (equal python-shell--block-prompt prompt)
(string-match-p
python-shell-prompt-block-regexp prompt))
Meanwhile, the Pdb hooks could be used for sending definitions used by
non-native completion, and should fix issue 1.
> Regarding No. 3, the current error message is as follows.
>
> python--parse-json-array: could not parse JSON stream: 1, 1, 1
>
> The string causing the error is not displayed, so it is not useful.
> Liu proposed to handle JSON error in
> `python-shell-completion-get-completions' as follows:
>
> (condition-case err
> (python--parse-json-array completions)
> (json-parse-error
> (condition-case nil
> (python--parse-json-array
> (car (last (split-string completions "[\n\r]+" t))))
> (json-parse-error
> (signal (car err) (list completions))))))
>
> This works fine, but since `python--parse-json-array' is used
> elsewhere, it might be better to improve those as well.
>
> Regarding No. 4, currently, each time
> `python-shell-completion-get-completions' is executed, both the
> definition of __PYTHON_EL_get_completions and the call to
> __PYTHON_EL_get_completions are sent to the Inferior Python. However,
> there is no need to send the definition every time as long as the
> definition remains unchanged. This can be improved with the attached
> patch, but it might be better to consider it alongside other issues.
I'd like to put all setup codes (including definitions
__FFAP_get_module_path and __PYDOC_get_help) in one place and send
them only once. I think it will not cause problem as long as the pdb
case is addressed.
--00000000000020f79706485100b0
Content-Type: text/x-python; charset="US-ASCII"; name="a.py"
Content-Disposition: attachment; filename="a.py"
Content-Transfer-Encoding: base64
Content-ID: <f_mkdhdd210>
X-Attachment-Id: f_mkdhdd210
aW1wb3J0IG9zCgpjbGFzcyBfUFlUSE9OX0VMX0NvbXBsZXRlcjoKICAgICcnJ0NvbXBsZXRlciB3
cmFwcGVyIHRoYXQgcHJpbnRzIGNhbmRpZGF0ZXMgdG8gc3Rkb3V0LgoKICAgIEl0IHdyYXBzIGFu
IGV4aXN0aW5nIGNvbXBsZXRlciBmdW5jdGlvbiBhbmQgY2hhbmdlcyBpdHMgYmVoYXZpb3Igc28K
ICAgIHRoYXQgdGhlIHVzZXIgaW5wdXQgaXMgdW5jaGFuZ2VkIGFuZCByZWFsIGNhbmRpZGF0ZXMg
YXJlIHByaW50ZWQgdG8KICAgIHN0ZG91dC4KCiAgICBSZXR1cm5lZCBjYW5kaWRhdGVzIGFyZSAn
MF9fZHVtbXlfY29tcGxldGlvbl9fJyBhbmQKICAgICcxX19kdW1teV9jb21wbGV0aW9uX18nIGlu
IHRoYXQgb3JkZXIgKCcwX19kdW1teV9jb21wbGV0aW9uX18nIGlzCiAgICByZXR1cm5lZCByZXBl
YXRlZGx5IHVudGlsIGFsbCBwb3NzaWJsZSBjYW5kaWRhdGVzIGFyZSBjb25zdW1lZCkuCgogICAg
VGhlIHJlYWwgY2FuZGlkYXRlcyBhcmUgcHJpbnRlZCB0byBzdGRvdXQgc28gdGhhdCB0aGV5IGNh
biBiZQogICAgZWFzaWx5IHJldHJpZXZlZCB0aHJvdWdoIGNvbWludCBvdXRwdXQgcmVkaXJlY3Qg
dHJpY2tlcnkuCiAgICAnJycKCiAgICBQWVRIT05fRUxfV1JBUFBFRCA9IFRydWUKCiAgICBkZWYg
X19pbml0X18oc2VsZiwgY29tcGxldGVyKToKICAgICAgICBzZWxmLmNvbXBsZXRlciA9IGNvbXBs
ZXRlcgogICAgICAgIHNlbGYubGFzdF9jb21wbGV0aW9uID0gTm9uZQogICAgICAgIHNlbGYucHJp
bnRfbW9kZSA9IFRydWUKCiAgICBkZWYgX19jYWxsX18oc2VsZiwgdGV4dCwgc3RhdGUpOgogICAg
ICAgIGlmIHN0YXRlID09IDA6CiAgICAgICAgICAgICMgU2V0IHRoZSBmaXJzdCBkdW1teSBjb21w
bGV0aW9uLgogICAgICAgICAgICBzZWxmLmxhc3RfY29tcGxldGlvbiA9IE5vbmUKICAgICAgICAg
ICAgY29tcGxldGlvbiA9ICcwX19kdW1teV9jb21wbGV0aW9uX18nCiAgICAgICAgZWxzZToKICAg
ICAgICAgICAgY29tcGxldGlvbiA9IHNlbGYuY29tcGxldGVyKHRleHQsIHN0YXRlIC0gMSkKCiAg
ICAgICAgaWYgbm90IGNvbXBsZXRpb246CiAgICAgICAgICAgIGlmIHNlbGYubGFzdF9jb21wbGV0
aW9uICE9ICcxX19kdW1teV9jb21wbGV0aW9uX18nOgogICAgICAgICAgICAgICAgIyBXaGVuIG5v
IG1vcmUgY29tcGxldGlvbnMgYXJlIGF2YWlsYWJsZSwgcmV0dXJuaW5nIGEKICAgICAgICAgICAg
ICAgICMgZHVtbXkgd2l0aCBub24tc2hhcmluZyBwcmVmaXggYWxsb3cgZW5zdXJpbmcgb3V0cHV0
CiAgICAgICAgICAgICAgICAjIHdoaWxlIHByZXZlbnRpbmcgY2hhbmdlcyB0byBjdXJyZW50IGlu
cHV0LgogICAgICAgICAgICAgICAgIyBDb2luY2lkZW50YWxseSBpdCdzIGFsc28gdGhlIGVuZCBv
ZiBvdXRwdXQuCiAgICAgICAgICAgICAgICBjb21wbGV0aW9uID0gJzFfX2R1bW15X2NvbXBsZXRp
b25fXycKICAgICAgICBlbGlmIGNvbXBsZXRpb24uZW5kc3dpdGgoJygnKToKICAgICAgICAgICAg
IyBSZW1vdmUgcGFyZW5zIG9uIGNhbGxhYmxlcyBhcyBpdCBicmVha3MgY29tcGxldGlvbiBvbgog
ICAgICAgICAgICAjIGFyZ3VtZW50cyAoZS5nLiBzdHIoQXJpPHRhYj4pKS4KICAgICAgICAgICAg
Y29tcGxldGlvbiA9IGNvbXBsZXRpb25bOi0xXQogICAgICAgIHNlbGYubGFzdF9jb21wbGV0aW9u
ID0gY29tcGxldGlvbgoKICAgICAgICBpZiBjb21wbGV0aW9uIGluICgKICAgICAgICAgICAgICAg
ICcwX19kdW1teV9jb21wbGV0aW9uX18nLCAnMV9fZHVtbXlfY29tcGxldGlvbl9fJyk6CiAgICAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uCiAgICAgICAgZWxpZiBjb21wbGV0aW9uOgogICAgICAg
ICAgICAjIEZvciBldmVyeSBub24tZHVtbXkgY29tcGxldGlvbiwgcmV0dXJuIGEgcmVwZWF0ZWQg
ZHVtbXkKICAgICAgICAgICAgIyBvbmUgYW5kIHByaW50IHRoZSByZWFsIGNhbmRpZGF0ZSBzbyBp
dCBjYW4gYmUgcmV0cmlldmVkCiAgICAgICAgICAgICMgYnkgY29taW50IG91dHB1dCBmaWx0ZXJz
LgogICAgICAgICAgICBpZiBzZWxmLnByaW50X21vZGU6CiAgICAgICAgICAgICAgICBwcmludCAo
Y29tcGxldGlvbikKICAgICAgICAgICAgICAgIHJldHVybiAnMF9fZHVtbXlfY29tcGxldGlvbl9f
JwogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24KICAg
ICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbgoKaW1wb3J0IHBkYgpmcm9t
IHBkYiBpbXBvcnQgUGRiCgpjbGFzcyBNeVBkYihQZGIpOgoKICAgIGRlZiBwcmVsb29wKHNlbGYp
OgogICAgICAgIHN1cGVyKCkucHJlbG9vcCgpCiAgICAgICAgZnJhbWVfZ2xvYmFscyA9IHNlbGYu
Y3VyZnJhbWUuZl9nbG9iYWxzCiAgICAgICAgZm9yIGssIHYgaW4gZ2xvYmFscygpLml0ZW1zKCk6
CiAgICAgICAgICAgIGlmIGsuc3RhcnRzd2l0aCgnX19QWVRIT05fRUwnKToKICAgICAgICAgICAg
ICAgIGZyYW1lX2dsb2JhbHNba10gPSB2CiAgICAgICAgc2VsZi5jbWRxdWV1ZS5hcHBlbmQoJ3By
aW50KCJpbnN0YWxsIHJlYWRsaW5lIGNvbXBsZXRlciAuLi4iKScpCgogICAgZGVmIHByZWNtZChz
ZWxmLCBsaW5lKToKICAgICAgICBpbXBvcnQgcmVhZGxpbmUKICAgICAgICBjb21wbGV0ZXIgPSBy
ZWFkbGluZS5nZXRfY29tcGxldGVyKCkKICAgICAgICBpZiBjb21wbGV0ZXIgYW5kIG5vdCBnZXRh
dHRyKGNvbXBsZXRlciwgJ1BZVEhPTl9FTF9XUkFQUEVEJywgRmFsc2UpOgogICAgICAgICAgICBy
ZWFkbGluZS5zZXRfY29tcGxldGVyKF9QWVRIT05fRUxfQ29tcGxldGVyKGNvbXBsZXRlcikpCiAg
ICAgICAgcmV0dXJuIHN1cGVyKCkucHJlY21kKGxpbmUpCgoKaWYgb3MuZ2V0ZW52KCdJTlNJREVf
RU1BQ1MnKToKICAgIHBkYi5QZGIgPSBNeVBkYgogICAgZGVsIChwZGIsIFBkYiwgTXlQZGIsIG9z
KQo=
--00000000000020f79706485100b0--
bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
Received: (at submit) by debbugs.gnu.org; 11 Jan 2026 09:51:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 11 04:51:24 2026
Received: from localhost ([127.0.0.1]:34859 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1ves6V-0003Zo-As
for submit <at> debbugs.gnu.org; Sun, 11 Jan 2026 04:51:24 -0500
Received: from lists.gnu.org ([2001:470:142::17]:58084)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <kobarity@HIDDEN>)
id 1ves6S-0003ZK-Ck
for submit <at> debbugs.gnu.org; Sun, 11 Jan 2026 04:51:21 -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 <kobarity@HIDDEN>)
id 1ves6M-0000Fs-8S
for bug-gnu-emacs@HIDDEN; Sun, 11 Jan 2026 04:51:14 -0500
Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.90_1) (envelope-from <kobarity@HIDDEN>)
id 1ves6K-0001Gm-4w
for bug-gnu-emacs@HIDDEN; Sun, 11 Jan 2026 04:51:13 -0500
Received: by mail-pg1-x533.google.com with SMTP id
41be03b00d2f7-c2dc870e194so2909323a12.2
for <bug-gnu-emacs@HIDDEN>; Sun, 11 Jan 2026 01:51:11 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1768125070; x=1768729870; darn=gnu.org;
h=mime-version:user-agent:subject:to:from:message-id:date:from:to:cc
:subject:date:message-id:reply-to;
bh=bsjYNBG9Y0i8VJ/+Uy/iKwaLdH61FLglb4oHtTWYKjc=;
b=L1Z1S/87H4OCBLO/w9tuklag7CbTiHf12YGMq7Faw8yOQ5RELj7YplPG2musYFGYC9
Rg7QKbHaAXLm+ZxGr9IzhU5OnnuGDbwS8yCejZZBjJy7dUKIjSB+3CYb/He4uubClJOg
Ls+6sFdIdKIoT1pG7ZCzlNPCjkR21MUylm3ucZ7jc6agAkna1HV4fiiVA+ibjzcm74Gz
tLxdgzigXZsYqso94Vo8OwZX6uVSbqdL1Sat7XfOngH0bGjzOwiCQN8xxiZwfxKb35m0
XVXjgMNqSBuN3t/ki3hIIxC3J7t0tDRMwSEgr9PsU9opnzDQuLmuY+Tg3N5BuZXcGI/r
uNQQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1768125070; x=1768729870;
h=mime-version:user-agent:subject:to:from:message-id:date:x-gm-gg
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=bsjYNBG9Y0i8VJ/+Uy/iKwaLdH61FLglb4oHtTWYKjc=;
b=tUkCpmJsSECW+V/eNzf+tqYTemJOkgj0LoS8yJp7uYdZxQH3psPyKtgeIRpMpiu/cG
EcQW7L5mPCFvK+kpeoB/AhqSg3Dr2IMc0hMM4uQXxDYwqr7y9YuR8JkEKP/ORgU78+8U
j8dsGbV4iUA78w3gcFSCrdNMusHN0x2IrowijUZ2Pcb47Zz1O6rpjtnbtqXUAHq6x+By
1R1j0wKC50anX3sRXbcqh2KgQtW5scABuT2RcEyP5jNgmgeo++c3nVX9rXqMCQDX249R
Q/5VOHTT6K1CdJEYwCbpgAZszF1/q5JVlbQf4uYUeBywxdug5S7NskoU6wj/0gG2tpcG
6TKg==
X-Gm-Message-State: AOJu0Yzy7hT3UrRNsnuAjIWgvH3iMGMg3fAqsByMY/PCoNkOnGrZr0rf
nld6UKPLSr7IzZU8uxk/f5x0RCQodDvPWL1ZMNKzavRUVJB6CUPU95mMrbP/jQ==
X-Gm-Gg: AY/fxX7WNcCaAIrgoFEXZttw2fR2m6OEWMh+2z+HQDx8R8UskOx8X7ZeQtGdOHzXpc5
QNlQ5AAUSD3FN8F3m28KKX6gWGuwCj6IZ6AUORHMV1tQgdKB795XHPPYrjsFy5v4OykFDZ06tz2
xxCycVUc+yj2VZZmT9rh7nCr6DSjnndABDfLh4CLW680IQi0QWw9laj/jE87fps2mdlD6i3doG7
I5ToMojEPeT941gzSMssb1zV1V4iKLQa6uJ0GDKTqKDY1OFdiKlZWHQZwozXWUTaJyJsiF1ZfDd
g22UWwbS0dus7/CmmF8N6MrTq6BVRaIkB79gm7bGD0+wk3dUJnD/Ua/lWBzb1DS3LLnxslrGip6
bLjhfEiRBY3MJ2PhxNX067E6zht8PO7NMrcBpLirF9hyY4QXwcdNRgLOJxP1FymOOvezKuCRURD
93zcH+U7tt/mD7mLfxrhMgHpbrIZgttnmmzvraex6e
X-Google-Smtp-Source: AGHT+IF+nmA6JYLFIwXebvo7Qzgcmb3DpxtOEZVlWbOEyPRlkhTSJzH9D35Ok1btauJcxSEYklji8Q==
X-Received: by 2002:a05:6a20:a103:b0:361:2c56:fca8 with SMTP id
adf61e73a8af0-3898f9cd68emr12818234637.50.1768125069614;
Sun, 11 Jan 2026 01:51:09 -0800 (PST)
Received: from localhost (58x12x133x161.ap58.ftth.ucom.ne.jp. [58.12.133.161])
by smtp.gmail.com with ESMTPSA id
41be03b00d2f7-c4cc02ecfccsm14465036a12.13.2026.01.11.01.51.08
for <bug-gnu-emacs@HIDDEN>
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Sun, 11 Jan 2026 01:51:09 -0800 (PST)
Date: Sun, 11 Jan 2026 18:50:54 +0900
Message-ID: <eke7a4ykpjep.wl-kobarity@HIDDEN>
From: kobarity <kobarity@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 31.0.50;
Issues and improvements regarding non-native completion in python.el
X-Debbugs-Cc: Liu Hui <liuhui1610@HIDDEN>
User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue)
FLIM-LB/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL-LB/10.8 EasyPG/1.0.0
Emacs/31.0.50 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO)
MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue")
Content-Type: multipart/mixed; boundary="Multipart_Sun_Jan_11_18:50:54_2026-1"
Received-SPF: pass client-ip=2607:f8b0:4864:20::533;
envelope-from=kobarity@HIDDEN; helo=mail-pg1-x533.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,
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.0 (+)
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: -0.0 (/)
--Multipart_Sun_Jan_11_18:50:54_2026-1
Content-Type: text/plain; charset=US-ASCII
While investigating Bug #79723, we noticed the following issues and
potential improvements with non-native completion.
1. Completion doesn't work for PDB within module functions.
2. After canceling completion in PDB, a list of candidates may appear.
3. Improving messages for JSON parsing errors.
4. Improvement to stop sending `python-shell-completion-setup-code'
every time.
No. 1 is reported by Liu. It can be reproduced as follows:
1. echo 'def f(): breakpoint()' > test.py
2. in the python shell:
from test import f
f()
3. type "a" after the pdb prompt and press TAB
This issue stems from the fact that functions such as __PYTHON_EL_eval
are not defined in the symbol table of the selected stack frame. This
can be avoided by redefining __PYTHON_EL_eval, but I'm not sure if
that's the right approach. For details, see
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=79723#98
I recently found No. 2. It can be reproduced as follows:
1. emacs -Q
2. M-x run-python
3. Type 'def f(): breakpoint()' Enter Enter
4. Type 'f()' Enter
5. Type 'a' TAB Backspace Enter
6. The following list will be shown.
["a", "alias", "args"]
Regarding No. 3, the current error message is as follows.
python--parse-json-array: could not parse JSON stream: 1, 1, 1
The string causing the error is not displayed, so it is not useful.
Liu proposed to handle JSON error in
`python-shell-completion-get-completions' as follows:
(condition-case err
(python--parse-json-array completions)
(json-parse-error
(condition-case nil
(python--parse-json-array
(car (last (split-string completions "[\n\r]+" t))))
(json-parse-error
(signal (car err) (list completions))))))
This works fine, but since `python--parse-json-array' is used
elsewhere, it might be better to improve those as well.
Regarding No. 4, currently, each time
`python-shell-completion-get-completions' is executed, both the
definition of __PYTHON_EL_get_completions and the call to
__PYTHON_EL_get_completions are sent to the Inferior Python. However,
there is no need to send the definition every time as long as the
definition remains unchanged. This can be improved with the attached
patch, but it might be better to consider it alongside other issues.
In GNU Emacs 31.0.50 (build 7, x86_64-pc-linux-gnu, GTK+ Version
3.24.41, cairo version 1.18.0) of 2026-01-11 built on ubuntu2404
Repository revision: 0e4a8ae1faaa399c422f0bc6c073f72fd0014eb6
Repository branch: master
System Description: Ubuntu 24.04.3 LTS
Configured using:
'configure --with-pgtk --with-native-compilation --with-tree-sitter'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY
INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB
Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
xterm-mouse-mode: t
tooltip-mode: t
global-eldoc-mode: t
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
font-lock-mode: t
blink-cursor-mode: t
minibuffer-nonselected-mode: t
minibuffer-regexp-mode: 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
bytecomp byte-compile comp-common rx emacsbug lisp-mnt message mailcap
yank-media puny dired dired-loaddefs rfc822 mml mml-sec password-cache
epa derived epg rfc6068 epg-config gnus-util text-property-search
time-date subr-x mm-decode mm-bodies mm-encode mailabbrev gmm-utils
mailheader cl-loaddefs cl-lib sendmail mail-parse rfc2231 rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils xt-mouse term/xterm
xterm rmc iso-transl tooltip cconv eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win
pgtk-win term/common-win touch-screen pgtk-dnd 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
dynamic-setting system-font-setting font-render-setting cairo gtk pgtk
lcms2 multi-tty move-toolbar make-network-process tty-child-frames
native-compile emacs)
Memory information:
((conses 16 68529 11332) (symbols 48 6977 0) (strings 32 15988 2426)
(string-bytes 1 517563) (vectors 16 7028) (vector-slots 8 87662 6321)
(floats 8 28 29) (intervals 56 246 4) (buffers 1064 11))
--Multipart_Sun_Jan_11_18:50:54_2026-1
Content-Type: application/octet-stream; type=patch; name="0001-Improve-non-native-completion-in-Python-mode.patch"
Content-Disposition: attachment; filename="0001-Improve-non-native-completion-in-Python-mode.patch"
Content-Transfer-Encoding: 7bit
From 17fdbc40a5cb4c48ebabec03e36b8e8c1ee033f3 Mon Sep 17 00:00:00 2001
From: kobarity <kobarity@HIDDEN>
Date: Sun, 11 Jan 2026 17:49:29 +0900
Subject: [PATCH] Improve non-native completion in Python mode
Previously, both the definition of __PYTHON_EL_get_completions
and the call to __PYTHON_EL_get_completions were sent to the
inferior Python each time
'python-shell-completion-get-completions' was executed.
However, there is no need to send the definition every time as
long as the definition remains unchanged. We improved this so
that the definition of __PYTHON_EL_get_completions is only sent
during the inferior Python initialization; it is no longer sent
during 'python-shell-completion-get-completions' execution.
* lisp/progmodes/python.el
(python-shell-completion-send-setup-code): New function.
(python-shell-first-prompt-hook): Add the above new function.
(python-shell-completion-get-completions): Omit sending
'python-shell-completion-setup-code'.
---
lisp/progmodes/python.el | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 9c5e1e5ee6c..5a820f05d77 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -4514,6 +4514,13 @@ python-shell-completion-setup-code
"Code used to setup completion in inferior Python processes."
:type 'string)
+(defun python-shell-completion-send-setup-code ()
+ "Send `python-shell-completion-setup-code' to inferior Python process."
+ (python-shell-send-string-no-output python-shell-completion-setup-code))
+
+(add-hook 'python-shell-first-prompt-hook
+ #'python-shell-completion-send-setup-code)
+
(define-obsolete-variable-alias
'python-shell-completion-module-string-code
'python-shell-completion-string-code
@@ -4844,8 +4851,7 @@ python-shell-completion-get-completions
(with-current-buffer (process-buffer process)
(let ((completions
(python-shell-send-string-no-output
- (format "%s\nprint(__PYTHON_EL_get_completions(%s))"
- python-shell-completion-setup-code
+ (format "print(__PYTHON_EL_get_completions(%s))"
(python-shell--encode-string input))
process)))
(condition-case nil
--
2.43.0
--Multipart_Sun_Jan_11_18:50:54_2026-1--
kobarity <kobarity@HIDDEN>:liuhui1610@HIDDEN, bug-gnu-emacs@HIDDEN.
Full text available.liuhui1610@HIDDEN, bug-gnu-emacs@HIDDEN:bug#80182; Package emacs.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.