Received: (at 79985-done) by debbugs.gnu.org; 14 Jan 2026 18:49:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 14 13:49:52 2026
Received: from localhost ([127.0.0.1]:47639 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vg5wG-0006hW-6d
for submit <at> debbugs.gnu.org; Wed, 14 Jan 2026 13:49:52 -0500
Received: from sendmail.purelymail.com ([34.202.193.197]:34570)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <spwhitton@HIDDEN>)
id 1vg5wD-0006gw-17
for 79985-done <at> debbugs.gnu.org; Wed, 14 Jan 2026 13:49:50 -0500
DKIM-Signature: a=rsa-sha256;
b=ZYh4Eb+tHY1Q8VAFZ1F3YGMKp53vV0OVG7qqjvaZ8Cem33BKNPXHbmCbQyqS+bXHYjOT5taf5dgVFsUgQvCmnN8ft2+9AM+Q9cf8E5eYGjc+1fp6TbRfDrtOUqZf7sfEXgNHJ880vpii2VngQ/ZRbWiEjoY4xGeg7m9bR3XsV4xWkNNSr3935W2FbAB7vIBQHerXY6qUYxkrMAJkU3830bQtVwo0oVYChQ8K7I8PIzXhxHJVTq2ryN53qrSq5E+sBDwymLrUFkeyoaddMf7B9mbGIyyn1Rx2r0YZkz6xDqF94h872Bm2uBewA56L8ZJcxUNPY8nI+RD3W2yzzSMLNA==;
s=purelymail3; d=spwhitton.name; v=1;
bh=5+7+3VISMQGgMdJtwJiyZy77kugS6CDMfrGKsSsLwYs=;
h=Received:Received:From:To:Subject:Date;
DKIM-Signature: a=rsa-sha256;
b=Jl050Ubdunfk4cwEMghqYP843DvktQpe6gtChMlr/CeReJ54wb3e6vxNC4iWt/39tF2b+VL0xue2UyBsePO9znOkm+noYzXZL1qL6GV8H6j3opv8WClEZ5feT1ygMEyNaQz/o2SaffOtpoYaK4MUM5IEcjGE4ez+PekGkWnxOF5BFRMPHT2lzHHi4e5JnaLFMacfvFbwCZaU1SOQCuo7IMObEXybd7Iy/NR34eEiFOpvusok/BPKasnh13NzZg343Gdu2BhrGSs/VEPGGQR3h7JmquBuxMYdnQ/I/W+gVjNxtVvN3zcbsUORzZJzdyZqCvReqE8/WzlxNXv97NifAA==;
s=purelymail3; d=purelymail.com; v=1;
bh=5+7+3VISMQGgMdJtwJiyZy77kugS6CDMfrGKsSsLwYs=;
h=Feedback-ID:Received:Received:From:To:Subject:Date;
Feedback-ID: 20115:3760:null:purelymail
X-Pm-Original-To: 79985-done <at> debbugs.gnu.org
Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 782709208;
(version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
Wed, 14 Jan 2026 18:49:42 +0000 (UTC)
Received: by zephyr.silentflame.com (Postfix, from userid 1000)
id 7CB0E940433; Wed, 14 Jan 2026 18:49:41 +0000 (GMT)
From: Sean Whitton <spwhitton@HIDDEN>
To: "Paul D. Nelson" <ultrono@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <uxsg7t1pk1tt2p.fsf@HIDDEN>
References: <uxsg7ta4zq5978.fsf@HIDDEN> <uxsg7t1pk1tt2p.fsf@HIDDEN>
Date: Wed, 14 Jan 2026 18:49:41 +0000
Message-ID: <87tswoqbay.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79985-done
Cc: 79985-done <at> debbugs.gnu.org, Eli Zaretskii <eliz@HIDDEN>,
krisbalintona@HIDDEN, monnier@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
Version: 31.1
Hello,
Paul D. Nelson [07/Jan 10:07pm +08] wrote:
>>> > The "Emacs-y" way of using C-u is to have it affect the behavior of
>>> > the next command. So I think this particular use fits that
>>> > description. That it doesn't go through prefix-argument is an
>>> > implementation detail. And, since the "commands" this C-u modifies
>>> > are not really commands, but actions implemented internally by
>>> > ispell-command-loop, I see no problem here that should bother us.
>>>
>>> But it doesn't affect the next command. In the example I gave, it
>>> doesn't affect the C-r, it affects a 0/1/2/3/.. that can occur
>>> arbitrarily later.
>>
>> If that's the only issue you have with C-u in this case, perhaps we
>> could make C-u a no-op unless typed immediately before a character
>> whose action "supports" C-u.
>>
>> Paul, can this be arranged?
>
> Thanks for the feedback. Please find attached a revised patch where
> 'C-u' has no effect unless typed immediately before a replacement
> command ('r'/'R' or a selection).
Thanks, now installed, and closing the bug.
--
Sean Whitton
"Paul D. Nelson" <ultrono@HIDDEN>:Sean Whitton <spwhitton@HIDDEN>:
Received: (at 79985) by debbugs.gnu.org; 12 Jan 2026 20:38:20 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 12 15:38:20 2026
Received: from localhost ([127.0.0.1]:34930 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vfOg7-0006Y6-MG
for submit <at> debbugs.gnu.org; Mon, 12 Jan 2026 15:38:19 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:16804)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
id 1vfOg6-0006Xn-0z
for 79985 <at> debbugs.gnu.org; Mon, 12 Jan 2026 15:38:18 -0500
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id DC36E4419A5;
Mon, 12 Jan 2026 15:38:11 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
s=mail; t=1768250291;
bh=dSuHZyFp9rzg8x/KNBdkRW5GGk3WQahB0mQ1af5gwT0=;
h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
b=kdpSEiwDrx33WfuRjSe/PFY79fjlf1piaDXw21GqjtwDKBuJTGdOOU3H2QiyK5Eg1
jQl3rE7qGnCgxNMw7l4eCJ5oIbxMzIwIHy564mkvYghL8ZIZUVZB8twm0lTnXJ3hH0
q0QNCkuh3Ur9TxNMxXYFPTerLt7RxFBiHWc6LJ6rw7cti5YMZaj7uQuuv0gsr+OOpM
w3bu61Ft6FoI/Wm/OhtFjZkn8nUPz3SSKRyELC/vE1nqUwA+UXmi8SKaNQkoWx7mle
gIheEgN/vj9eRtNHAC76I+SQ6QWDlbOoj+IAUMVtgqJxovvDdtVr3/G93iwfXVgAGo
PdRjwBvq5U3mA==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id F0987441983;
Mon, 12 Jan 2026 15:38:10 -0500 (EST)
Received: from lechazo (lechon.iro.umontreal.ca [132.204.27.242])
by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id DFDDA12026A;
Mon, 12 Jan 2026 15:38:10 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: "Paul D. Nelson" <ultrono@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <uxsg7t1pk1tt2p.fsf@HIDDEN>
Message-ID: <jwvldi2efdw.fsf-monnier+emacs@HIDDEN>
References: <uxsg7t1pk1tt2p.fsf@HIDDEN>
Date: Mon, 12 Jan 2026 15:38:05 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results: 0
ALL_TRUSTED -1 Passed through trusted hosts only via SMTP
AWL 0.226 Adjusted score from AWL reputation of From: address
BAYES_00 -1.9 Bayes spam probability is 0 to 1%
DKIM_SIGNED 0.1 Message has a DKIM or DK signature,
not necessarily valid
DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
domain
DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
domain
X-SPAM-LEVEL:
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79985
Cc: Eli Zaretskii <eliz@HIDDEN>, 79985 <at> debbugs.gnu.org,
krisbalintona@HIDDEN, spwhitton@HIDDEN
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 (---)
> Thanks for the feedback. Please find attached a revised patch where
> 'C-u' has no effect unless typed immediately before a replacement
> command ('r'/'R' or a selection).
No objection on my side, thank you,
Stefan
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 12 Jan 2026 15:08:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jan 12 10:08:09 2026
Received: from localhost ([127.0.0.1]:33813 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vfJWa-00007Z-LK
for submit <at> debbugs.gnu.org; Mon, 12 Jan 2026 10:08:09 -0500
Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]:53393)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vfJWX-00007N-SQ
for 79985 <at> debbugs.gnu.org; Mon, 12 Jan 2026 10:08:07 -0500
Received: by mail-pg1-x533.google.com with SMTP id
41be03b00d2f7-bde0f62464cso2748713a12.2
for <79985 <at> debbugs.gnu.org>; Mon, 12 Jan 2026 07:08:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1768230485; x=1768835285; darn=debbugs.gnu.org;
h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to
:cc:subject:date:message-id:reply-to;
bh=t3Dfe2pjNY0/IN36N6ghxcv/Hd4AQ+rt1kB2yMbrtbE=;
b=IrdBq+mWFs9hu37fTdv2y14w7vwl5aoJA7bbf2zPrUBWwToKtYVJXuEWJWHVBapszc
KMQbH+xCOCuJL/z+VJWWGpvc7lsmSTyyf9hL2Lc5zTdhSV0TxhIjP9zTa8zas0fA7z0n
B3Ghgc9Bw0RdXd0Mg0NpCvtN40SAu+wPehGOvf8NU0z4OmuyXtRB48/rRlXh/XhnJZ7M
pi0CbgByzOlqqLy/EVZBYc0t200EIlO6g1J8ZaSTvWpkD8ruTiGbDHSY8xSzQb+XHrrZ
x3TctgJw/ZWa2rc9ceGGrtYryX0NAf+Sh7YYBvs0q7BaFV/94vs6HzyMlU6wOfrd7n/B
X55g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1768230485; x=1768835285;
h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:x-gm-gg
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=t3Dfe2pjNY0/IN36N6ghxcv/Hd4AQ+rt1kB2yMbrtbE=;
b=BJUWSBAAgInPpuG3jU7cGL0bAVVd5MEtLqalcOXLk19VsUfadqWVi9P0i09LicQQLA
PKr/5csXrKRditY6UTHRjmGwNBPmG57Y6yVs07+rREW28eGFkZDKBCfSzLXztQyC5ljl
72Q/R1H68S8ACqspdtw+Anjrsyo4RSBZzpwyvljeLz+t3jNA0eeRowx7wvluTgR2pnkE
A4BvNVom7rWnn27yS8zz9nzji7zRaeegOpzgIPritHOmRBrN6vmjCS02fFl9fusf50IP
ds6DytzMfuKfZ+5QgJmerMUvkCLPxiFUbLZBFuJIKCFm2TkaNXHmHtLYmK3E6d5rkFH8
U5OA==
X-Forwarded-Encrypted: i=1;
AJvYcCVRB9ju+ueQADVLxydcoZCIdW8QiSgi0XfDhz+t6ZQjBb0yMEZJxqsyHYulBT0ePjVAiusplg==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yzt3vE+X9vyZ9H5owXKwtukE5k28gX8iG+Ys+as4OF0LplI6ZNV
est54G4Vkro27BHY0wNVOpGpXHTfUgwyvcp3JAze8WutJN4J0bRUIMVg
X-Gm-Gg: AY/fxX6xbK4hY2W227y7c4y4lGLW2wU2aSEwxM772YNrU1z8e7LfJJl88nKKSt3aOzO
aSEH1twYqnive7BnslNBf32Nn8Qt46NyxNugeBvAUL6+lFqvPpjHSbCRb+pc66W8Riw1Cc2UMAU
x7i0Cvg/ldU684zi/lrGleITj4ohWBDtaQM3k2+s0jeNQyxyXIR9gZObtw1fprVAiggapy72BDO
0s8WSEDUUD66nZK3WO64iA++zmgu+oS/MCTFb+NQgNAee6bG/HPjhGgkgXbto8ynXeFjyjmmT/I
JyAhZgnbzmGVYJXd2kuGqUcXm0IJtfVi/CQxRoH38vdfwlBCq7+3gDGfYJdfTXYj/Ii3Kt2hT2/
0K5Vlu547ZcJ3p9AyJrGT/EHI9hIaTdUL4wsZvaZ73if4HNs4TXqRHPIionV4F7/IKqWur8xWn6
lmd2jbIXMyQQLxDuc=
X-Google-Smtp-Source: AGHT+IHOCsGBrW4p53zSkoZ7Slh+hlM0/AVza6kV+74oZITk1auahevYCYnls+irT7RtOBFjTxHklA==
X-Received: by 2002:a17:903:384d:b0:2a0:ea4c:51f3 with SMTP id
d9443c01a7336-2a3ee4332aemr172971485ad.6.1768230484443;
Mon, 12 Jan 2026 07:08:04 -0800 (PST)
Received: from localhost ([118.189.143.34])
by smtp.gmail.com with UTF8SMTPSA id
d9443c01a7336-2a3e3c47303sm176606285ad.24.2026.01.12.07.08.03
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Mon, 12 Jan 2026 07:08:03 -0800 (PST)
From: "Paul D. Nelson" <ultrono@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <86ldi9cyde.fsf@HIDDEN> (message from Eli Zaretskii on Wed, 07
Jan 2026 16:04:45 +0200)
Date: Wed, 07 Jan 2026 22:07:10 +0800
Message-ID: <uxsg7t1pk1tt2p.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 2.1 (++)
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: >> > The "Emacs-y" way of using C-u is to have it affect the
behavior of >> > the next command. So I think this particular use fits that
>> > description. That it doesn't go through prefix-argument is [...]
Content analysis details: (2.1 points, 10.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
provider (ultrono[at]gmail.com)
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
no trust [2607:f8b0:4864:20:0:0:0:533 listed in]
[list.dnswl.org]
-0.0 SPF_PASS SPF: sender matches SPF record
0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record
2.1 DATE_IN_PAST_96_XX Date: is 96 hours or more before Received:
date
X-Debbugs-Envelope-To: 79985
Cc: 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, monnier@HIDDEN,
spwhitton@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.1 (+)
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: >> > The "Emacs-y" way of using C-u is to have it affect the
behavior of >> > the next command. So I think this particular use fits that
>> > description. That it doesn't go through prefix-argument is [...]
Content analysis details: (1.1 points, 10.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
-0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/,
no trust
[2607:f8b0:4864:20:0:0:0:533 listed in]
[list.dnswl.org]
0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail
provider (ultrono[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
2.1 DATE_IN_PAST_96_XX Date: is 96 hours or more before Received:
date
-1.0 MAILING_LIST_MULTI Multiple indicators imply a widely-seen list
manager
--=-=-=
Content-Type: text/plain
>> > The "Emacs-y" way of using C-u is to have it affect the behavior of
>> > the next command. So I think this particular use fits that
>> > description. That it doesn't go through prefix-argument is an
>> > implementation detail. And, since the "commands" this C-u modifies
>> > are not really commands, but actions implemented internally by
>> > ispell-command-loop, I see no problem here that should bother us.
>>
>> But it doesn't affect the next command. In the example I gave, it
>> doesn't affect the C-r, it affects a 0/1/2/3/.. that can occur
>> arbitrarily later.
>
> If that's the only issue you have with C-u in this case, perhaps we
> could make C-u a no-op unless typed immediately before a character
> whose action "supports" C-u.
>
> Paul, can this be arranged?
Thanks for the feedback. Please find attached a revised patch where
'C-u' has no effect unless typed immediately before a replacement
command ('r'/'R' or a selection).
--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
filename=0001-Allow-Ispell-to-save-corrections-as-abbrevs.patch
From 451432ce340f58f847105d150df8227b2ad27f4f Mon Sep 17 00:00:00 2001
From: Paul Nelson <ultrono@HIDDEN>
Date: Mon, 15 Dec 2025 17:25:47 +0100
Subject: [PATCH] Allow Ispell to save corrections as abbrevs
* lisp/textmodes/ispell.el (ispell-save-corrections-as-abbrevs):
New user option.
(ispell--abbrev-saving-allowed)
(ispell--save-correction-as-abbrev): New variables.
(ispell--maybe-save-correction-abbrev): New function.
(ispell-word, ispell-process-line): Bind the above variables and
use the above function to save corrections as abbrevs when
appropriate.
(ispell-command-loop): Add C-u as command character to toggle
abbrev saving for the immediately following replacement command.
(ispell-help): Document C-u binding.
* doc/emacs/fixit.texi (Spelling): Document new feature.
(bug#79985)
---
doc/emacs/fixit.texi | 13 ++++
etc/NEWS | 8 +++
lisp/textmodes/ispell.el | 152 ++++++++++++++++++++++++++++-----------
3 files changed, 133 insertions(+), 40 deletions(-)
diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi
index f240057aa69..02882fc1ca0 100644
--- a/doc/emacs/fixit.texi
+++ b/doc/emacs/fixit.texi
@@ -343,6 +343,19 @@ Spelling
Then you must type a single-character response. Here are the valid
responses:
+@vindex ispell-save-corrections-as-abbrevs
+ You can have Ispell remember your spelling corrections so that they
+are applied automatically when Abbrev mode is enabled (@pxref{Abbrevs}).
+The user option @code{ispell-save-corrections-as-abbrevs} determines
+whether Ispell does so by default. With that option enabled, each time
+you correct a misspelled word, Emacs saves the correction as a global
+abbrev expansion. Then, whenever you type the misspelling and then a
+word-separator (@key{SPC}, comma, etc.) in a buffer with Abbrev mode
+enabled, Emacs will expand the misspelling to its correction.
+Regardless of this option's value, you can toggle abbrev saving for a
+single correction by typing @kbd{C-u} immediately before selecting a
+replacement in the command loop.
+
@table @kbd
@item @var{digit}
Replace the word, just this time, with one of the displayed
diff --git a/etc/NEWS b/etc/NEWS
index 27204393f7a..810703297f5 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1974,6 +1974,14 @@ option 'doc-view-djvused-program'.
The default value is now 30 seconds, as the old value was too short to
allow reading the help text.
++++
+*** Ispell can now save spelling corrections as abbrevs.
+In the Ispell command loop, type 'C-u' immediately before selecting a
+replacement to toggle whether that correction will be saved as a global
+abbrev expansion for its misspelling. The new user option
+'ispell-save-corrections-as-abbrevs' determines whether abbrev saving
+is enabled by default.
+
** Flyspell
---
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 6476a169613..884f5a6e3ee 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -164,6 +164,16 @@ ispell-query-replace-choices
Uses `query-replace' (\\[query-replace]) for corrections."
:type 'boolean)
+(defcustom ispell-save-corrections-as-abbrevs nil
+ "Whether to save spelling corrections as abbrevs by default.
+Determines the default behavior of Ispell after correcting a misspelled
+word. Non-nil means to save a global abbrev that expands the misspelled
+word to its correction. This behavior may be toggled on a per-word
+basis by typing \\`C-u' immediately before selecting a replacement in
+the Ispell command loop."
+ :type 'boolean
+ :version "31.1")
+
(defcustom ispell-skip-tib nil
"Does not spell check `tib' bibliography references when non-nil.
Skips any text between strings matching regular expressions
@@ -1821,6 +1831,28 @@ ispell-send-replacement
(and (or ispell-really-aspell ispell-really-enchant)
(ispell-send-string (concat "$$ra " misspelled "," replacement "\n"))))
+(defvar ispell--abbrev-saving-allowed nil
+ "Non-nil means the current `ispell-command-loop' supports abbrev saving.
+Dynamically bound around calls to `ispell-command-loop' for which it
+makes sense to allow abbrev saving. This includes calls from functions
+like `ispell-word' and `ispell-region', but excludes calls from
+functions like `ispell-complete-word'.")
+
+(defvar ispell--save-correction-as-abbrev nil
+ "Non-nil means save the current correction as an abbrev.
+Dynamically bound to the value of `ispell-save-corrections-as-abbrevs'
+around calls to `ispell-command-loop'. The command loop can toggle
+this, via `C-u', to control abbrev saving for the immediately following
+replacement command (a selection from the suggestion list, or
+\\`r'/\\`R').")
+
+(defun ispell--maybe-save-correction-abbrev (misspelled replacement)
+ "Save MISSPELLED -> REPLACEMENT as an abbrev, if enabled.
+This is controlled by the variable `ispell--save-correction-as-abbrev'."
+ (require 'abbrev)
+ (when ispell--save-correction-as-abbrev
+ (define-abbrev global-abbrev-table misspelled replacement)
+ (message "\"%s\" now expands to \"%s\" globally" misspelled replacement)))
(defun ispell-send-string (string)
"Send the string STRING to the Ispell process."
@@ -1971,38 +2003,42 @@ ispell-word
(message "%s is incorrect"
(funcall ispell-format-word-function word))))
(t ; prompt for correct word.
- (save-window-excursion
- (setq replace (ispell-command-loop
- (car (cdr (cdr poss)))
- (car (cdr (cdr (cdr poss))))
- (car poss) start end)))
- (cond ((equal 0 replace)
- (ispell-add-per-file-word-list (car poss)))
- (replace
- (setq new-word (if (atom replace) replace (car replace))
- cursor-location (+ (- (length word) (- end start))
- cursor-location))
- (if (not (equal new-word (car poss)))
- (progn
- (goto-char start)
- ;; Insert first and then delete,
- ;; to avoid collapsing markers before and after
- ;; into a single place.
- (insert new-word)
- (delete-region (point) end)
- ;; It is meaningless to preserve the cursor position
- ;; inside a word that has changed.
- (setq cursor-location (point))
- (setq end (point))))
- (if (not (atom replace)) ;recheck spelling of replacement
- (progn
- (if (car (cdr replace)) ; query replace requested
- (save-window-excursion
- (query-replace word new-word t)))
- (goto-char start)
- ;; single word could be split into multiple words
- (setq ispell-quit (not (ispell-region start end)))
- ))))
+ (let ((ispell--abbrev-saving-allowed t)
+ (ispell--save-correction-as-abbrev
+ ispell-save-corrections-as-abbrevs))
+ (save-window-excursion
+ (setq replace (ispell-command-loop
+ (car (cdr (cdr poss)))
+ (car (cdr (cdr (cdr poss))))
+ (car poss) start end)))
+ (cond ((equal 0 replace)
+ (ispell-add-per-file-word-list (car poss)))
+ (replace
+ (setq new-word (if (atom replace) replace (car replace))
+ cursor-location (+ (- (length word) (- end start))
+ cursor-location))
+ (ispell--maybe-save-correction-abbrev (car poss) new-word)
+ (if (not (equal new-word (car poss)))
+ (progn
+ (goto-char start)
+ ;; Insert first and then delete,
+ ;; to avoid collapsing markers before and after
+ ;; into a single place.
+ (insert new-word)
+ (delete-region (point) end)
+ ;; It is meaningless to preserve the cursor position
+ ;; inside a word that has changed.
+ (setq cursor-location (point))
+ (setq end (point))))
+ (if (not (atom replace)) ;recheck spelling of replacement
+ (progn
+ (if (car (cdr replace)) ; query replace requested
+ (save-window-excursion
+ (query-replace word new-word t)))
+ (goto-char start)
+ ;; single word could be split into multiple words
+ (setq ispell-quit (not (ispell-region start end)))
+ )))))
;; keep if rechecking word and we keep choices win.
(if (get-buffer ispell-choices-buffer)
(kill-buffer ispell-choices-buffer))))
@@ -2167,9 +2203,12 @@ ispell-command-loop
(choices miss)
(window-min-height (min window-min-height
ispell-choices-win-default-height))
- (command-characters '( ? ?i ?a ?A ?r ?R ?? ?x ?X ?q ?l ?u ?m ))
+ (command-characters
+ (append '( ? ?i ?a ?A ?r ?R ?? ?x ?X ?q ?l ?u ?m )
+ (and ispell--abbrev-saving-allowed
+ '(?\C-u))))
(skipped 0)
- char num result textwin)
+ char num result textwin abbrev-prefix)
;; setup the *Choices* buffer with valid data.
(with-current-buffer (get-buffer-create ispell-choices-buffer)
@@ -2235,8 +2274,14 @@ ispell-command-loop
(progn
(undo-boundary)
(let (message-log-max)
- (message (concat "C-h or ? for more options; SPC to leave "
- "unchanged, Character to replace word")))
+ (message
+ (concat
+ "C-h or ? for more options; SPC to leave "
+ "unchanged, Character to replace word"
+ (and ispell--abbrev-saving-allowed abbrev-prefix
+ (if ispell--save-correction-as-abbrev
+ " [won't save as abbrev]"
+ " [will save as abbrev]")))))
(let ((inhibit-quit t)
(input-valid t))
(setq char nil skipped 0)
@@ -2262,6 +2307,22 @@ ispell-command-loop
(setq com-chars (cdr com-chars)))
(setq num (- char ?0 skipped)))
+ (if (and abbrev-prefix
+ (or (memq char '(?r ?R))
+ (and (>= num 0) (< num count))))
+ ;; If the user typed `C-u' before this replacement
+ ;; command, then toggle abbrev saving for this
+ ;; correction.
+ (setq ispell--save-correction-as-abbrev
+ (not ispell--save-correction-as-abbrev)
+ abbrev-prefix nil)
+ ;; If the user typed `C-u' but not before a
+ ;; replacement command, then nullify the effect of
+ ;; `C-u' for subsequent commands.
+ (when (and abbrev-prefix
+ (not (= char ?\C-u)))
+ (setq abbrev-prefix nil)))
+
(cond
((= char ? ) nil) ; accept word this time only
((= char ?i) ; accept and insert word into pers dict
@@ -2419,6 +2480,9 @@ ispell-command-loop
((= char ?\C-z)
(funcall (key-binding "\C-z"))
t)
+ ((and (= char ?\C-u) ispell--abbrev-saving-allowed)
+ (setq abbrev-prefix (not abbrev-prefix))
+ t)
(t (ding) t))))))
result)
;; protected
@@ -2463,6 +2527,7 @@ ispell-help
\\`m' Place typed-in value in personal dictionary, then recheck current word.
\\`C-l' Redraw screen.
\\`C-r' Recursive edit.
+\\`C-u' Toggle abbrev saving for the immediately following replacement command.
\\`C-z' Suspend Emacs or iconify frame."
(if (equal ispell-help-in-bufferp 'electric)
@@ -2497,6 +2562,7 @@ ispell-help
\\`m' Place typed-in value in personal dictionary, then recheck current word.
\\`C-l' Redraw screen.
\\`C-r' Recursive edit.
+\\`C-u' Toggle abbrev saving for the immediately following replacement command.
\\`C-z' Suspend Emacs or iconify frame."))
nil)))
@@ -2506,12 +2572,14 @@ ispell-help
(help-2 (concat "[l]ook a word up in alternate dictionary; "
"e[x/X]it; [q]uit session"))
(help-3 (concat "[u]ncapitalized insert into dict. "
- "Type `x C-h f ispell-help' for more help")))
+ (and ispell--abbrev-saving-allowed
+ "C-u toggles abbrev saving (next replacement).")))
+ (help-4 (concat "Type `x C-h f ispell-help' for more help")))
(save-window-excursion
(if ispell-help-in-bufferp
(let ((buffer (get-buffer-create "*Ispell Help*")))
(with-current-buffer buffer
- (insert (concat help-1 "\n" help-2 "\n" help-3)))
+ (insert (concat help-1 "\n" help-2 "\n" help-3 "\n" help-4)))
(ispell-display-buffer buffer)
(sit-for (max 0.5 ispell-help-timeout))
(kill-buffer "*Ispell Help*"))
@@ -2522,7 +2590,7 @@ ispell-help
(message nil)
;;(set-minibuffer-window (selected-window))
(enlarge-window 2)
- (insert (concat help-1 "\n" help-2 "\n" help-3))
+ (insert (concat help-1 "\n" help-2 "\n" help-3 "\n" help-4))
(sit-for (max 0.5 ispell-help-timeout)))
(erase-buffer)))))))
@@ -3505,7 +3573,9 @@ ispell-process-line
(word-len (length (car poss)))
(line-end (copy-marker ispell-end))
(line-start (copy-marker ispell-start))
- recheck-region replace)
+ recheck-region replace
+ (ispell--abbrev-saving-allowed t)
+ (ispell--save-correction-as-abbrev ispell-save-corrections-as-abbrevs))
(goto-char word-start)
;; Adjust the horizontal scroll & point
(ispell-horiz-scroll)
@@ -3573,11 +3643,13 @@ ispell-process-line
(progn
(insert replace) ; Insert dictionary word.
(ispell-send-replacement (car poss) replace)
+ (ispell--maybe-save-correction-abbrev (car poss) replace)
(setq accept-list (cons replace accept-list)))
(let ((replace-word (car replace)))
;; Recheck hand entered replacement word.
(insert replace-word)
(ispell-send-replacement (car poss) replace-word)
+ (ispell--maybe-save-correction-abbrev (car poss) replace-word)
(if (car (cdr replace))
(save-window-excursion
(delete-other-windows) ; to correctly show help.
--
2.50.1 (Apple Git-155)
--=-=-=--
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 7 Jan 2026 15:34:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 07 10:34:06 2026
Received: from localhost ([127.0.0.1]:37241 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vdVXy-0007jY-01
for submit <at> debbugs.gnu.org; Wed, 07 Jan 2026 10:34:06 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:13345)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
id 1vdVXu-0007j0-VP
for 79985 <at> debbugs.gnu.org; Wed, 07 Jan 2026 10:34:04 -0500
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 5FF32441100;
Wed, 7 Jan 2026 10:33:57 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
s=mail; t=1767800036;
bh=/swDBlPsi3qq5Nc5jI6dOb56SIUgsaGa8W1h+T9IOZM=;
h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
b=pSJ2/U3B322FHfAK7eU8vBrUHFNEjhFz4rV56zcWOLhtlSjml7EBHLH8fkkS5yFAF
qiUh1sPorHF23mZIhyrSLcUmzKho8CfKz8IJZJLMbJAVxLahCQtwjhk153ZPdwjGC8
f30rfgexValwvUZXOOMy2IFF0cLX2eCp74w2GmgdrOpzh1e/b3n8tToTdkFco7Qv+a
/2RQoKe06xV8PE0tpCnjrBwFB/QoCS1SJM6CcEJmFCiesysmAWu8viV5qKZELNNAuu
0vKg0ePFHR9LXSRjM8Ivu57W1xbSCIt0lT6jhlBysILImrF4aUdeT9E/R4OjVWocQz
8gJCNru5nkURw==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 5A986440857;
Wed, 7 Jan 2026 10:33:56 -0500 (EST)
Received: from pastel (104-195-218-165.cpe.teksavvy.com [104.195.218.165])
by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 1D5F2120627;
Wed, 7 Jan 2026 10:33:56 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Sean Whitton <spwhitton@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <87jyxtlg7j.fsf@HIDDEN>
Message-ID: <jwvjyxt789b.fsf-monnier+emacs@HIDDEN>
References: <uxsg7tbjjw7ujk.fsf@HIDDEN> <86ldifkmdh.fsf@HIDDEN>
<87secilapm.fsf@HIDDEN> <861pk1egsg.fsf@HIDDEN>
<87jyxtlg7j.fsf@HIDDEN>
Date: Wed, 07 Jan 2026 10:33:55 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results: 0
ALL_TRUSTED -1 Passed through trusted hosts only via SMTP
AWL -0.183 Adjusted score from AWL reputation of From: address
BAYES_00 -1.9 Bayes spam probability is 0 to 1%
DKIM_SIGNED 0.1 Message has a DKIM or DK signature,
not necessarily valid
DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
domain
DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
domain
X-SPAM-LEVEL:
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79985
Cc: Eli Zaretskii <eliz@HIDDEN>, ultrono@HIDDEN, krisbalintona@HIDDEN,
79985 <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 (---)
> But it doesn't affect the next command. In the example I gave, it
> doesn't affect the C-r, it affects a 0/1/2/3/.. that can occur
> arbitrarily later.
FWIW, in a few other "prefix commands" I implemented over the years
(starting with `cvs-prefix-define`), I consider the use a prefix when
it's followed by a command that doesn't consume this prefix as a PEBKAC.
IOW, what we do isn't super important because "it's not our fault".
In the case of `cvs-prefix-define`, the behavior is basically the same
as in the code proposed by Paul (i.e. propagate the prefix to the next
command until it's finally consumed).
Stefan
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 7 Jan 2026 14:08:54 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 07 09:08:54 2026 Received: from localhost ([127.0.0.1]:35216 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vdUDW-00005o-66 for submit <at> debbugs.gnu.org; Wed, 07 Jan 2026 09:08:54 -0500 Received: from sendmail.purelymail.com ([34.202.193.197]:34182) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <spwhitton@HIDDEN>) id 1vdUDT-00005X-06 for 79985 <at> debbugs.gnu.org; Wed, 07 Jan 2026 09:08:52 -0500 DKIM-Signature: a=rsa-sha256; b=pZynW6Nm+WaNIQxRObeaC+rs1Zr+21n7SyyIa0MjL1/x7tZJqhVGS2A94Id65Z+rfhOvxohmLkUblozMaSc6iLbAiE0YKCEu2l+RVFQKQ4ZR7TZ7O3XBnhExfGYmesSdfIMw6ko4Gu1aSGkN3GzU8bHRMhGW4K0Aw8Qla8Rw8Zz2J5hL12+SMivX+/U1EC+O8JKN6Q1LwnNuGrZFdHVvJUkBHfw4gLoybrY0cGhnUuDRWv17S7mnbjK3Lj3xuuydKARJuiMfdixLdwWUxavvWbjxHHmrzTWv/vaDvO6mEMvEa2ok6YHxI9Qfh/S8+V7Cf2FkALRbCBoq3iV3ok5BBw==; s=purelymail2; d=spwhitton.name; v=1; bh=Dbdj8NL7yZHUhSSxu0QnhVtIof4aoyQ7PpSLsQol4Ls=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=Zw5FpusV+KzQ2XGbBRkbxj8yG3XdhGFP8XSfA95xhALSqIS8lUhgorSthlbs4soJ68zmAzx4rLJRvghQc7aWb2ZYL623d6kRHFO2ZrPnTgk5zaY2ErfIIuqRhoo/vdyTjrumUlcWH1lyuYJlvkK9+g8H+1f3R+zAehvshpclhRRKwVL/lfNXkl0L8UBIA3/uu/dQRq/PPVbEQ4zXKpDRHza6QHsxNMVeaDvUw/uJJDizeYIJpCEw4kBOdo1H0MCmFQpxbC1N3TR0+PZ+5BAYOqyKoxYpVuLR2cAkCwQhiTl8tgmNQqsnWwU4TJfnLh2miC0HjiWn4Tb27bq/gp7I8A==; s=purelymail2; d=purelymail.com; v=1; bh=Dbdj8NL7yZHUhSSxu0QnhVtIof4aoyQ7PpSLsQol4Ls=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79985 <at> debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1527778233; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 07 Jan 2026 14:08:42 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 0A4FD94043F; Wed, 07 Jan 2026 14:08:42 +0000 (GMT) From: Sean Whitton <spwhitton@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <86ldi9cyde.fsf@HIDDEN> References: <uxsg7tbjjw7ujk.fsf@HIDDEN> <86ldifkmdh.fsf@HIDDEN> <87secilapm.fsf@HIDDEN> <861pk1egsg.fsf@HIDDEN> <87jyxtlg7j.fsf@HIDDEN> <86ldi9cyde.fsf@HIDDEN> Date: Wed, 07 Jan 2026 14:08:42 +0000 Message-ID: <87pl7likgl.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79985 Cc: ultrono@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN, 79985 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hello, Eli Zaretskii [07/Jan 4:04pm +02] wrote: >> From: Sean Whitton <spwhitton@HIDDEN> >> Cc: 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, >> monnier@HIDDEN, ultrono@HIDDEN >> Date: Wed, 07 Jan 2026 13:12:16 +0000 >> >> Hello, >> >> Eli Zaretskii [07/Jan 2:41pm +02] wrote: >> > The "Emacs-y" way of using C-u is to have it affect the behavior of >> > the next command. So I think this particular use fits that >> > description. That it doesn't go through prefix-argument is an >> > implementation detail. And, since the "commands" this C-u modifies >> > are not really commands, but actions implemented internally by >> > ispell-command-loop, I see no problem here that should bother us. >> >> But it doesn't affect the next command. In the example I gave, it >> doesn't affect the C-r, it affects a 0/1/2/3/.. that can occur >> arbitrarily later. > > If that's the only issue you have with C-u in this case, perhaps we > could make C-u a no-op unless typed immediately before a character > whose action "supports" C-u. > > Paul, can this be arranged? That sounds good to me. -- Sean Whitton
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 7 Jan 2026 14:04:57 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 07 09:04:57 2026 Received: from localhost ([127.0.0.1]:35196 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vdU9g-0008Ju-H5 for submit <at> debbugs.gnu.org; Wed, 07 Jan 2026 09:04:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:41582) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vdU9d-0008Jg-RQ for 79985 <at> debbugs.gnu.org; Wed, 07 Jan 2026 09:04:54 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vdU9Y-0006y7-9t; Wed, 07 Jan 2026 09:04:48 -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=LtmRu+RGrgDXgPzRKG2zwCZx8DH1gnM89yiBdRTrDRI=; b=fKZTZF/e23uw Agcm+adlgNNdqRJZAfNZKXmkCha/IOOqJv+DinHiWO+91n5LpIds5SJ7Pa712xmFcmnhL4gfQoDNP zd6IC6l/EJL1zL7pEZ5c9yjyN9XDXHXvdks5M8FrNgnbKFLgvX6paW15ma/JFz8wxVNRAMnIOEAmH 8lrrsHmRbg6rSf4RL5rx3bD/+Wrsp+4DAXK92gQlpwOfwmS5E6adPkcmkK5jgGu4XPhUThAw75oYS moje4Ts0AQpwUPFlQiKSPQqzHWveBzMR1V3Xmti1DP1P/ma3Ez2LCYFYbpvbgxwfAX8F8NAu46E5P e09fB0vMNrwUkiCOAPkAAg==; Date: Wed, 07 Jan 2026 16:04:45 +0200 Message-Id: <86ldi9cyde.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Sean Whitton <spwhitton@HIDDEN> In-Reply-To: <87jyxtlg7j.fsf@HIDDEN> (message from Sean Whitton on Wed, 07 Jan 2026 13:12:16 +0000) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7tbjjw7ujk.fsf@HIDDEN> <86ldifkmdh.fsf@HIDDEN> <87secilapm.fsf@HIDDEN> <861pk1egsg.fsf@HIDDEN> <87jyxtlg7j.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: ultrono@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN, 79985 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Sean Whitton <spwhitton@HIDDEN> > Cc: 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, > monnier@HIDDEN, ultrono@HIDDEN > Date: Wed, 07 Jan 2026 13:12:16 +0000 > > Hello, > > Eli Zaretskii [07/Jan 2:41pm +02] wrote: > > The "Emacs-y" way of using C-u is to have it affect the behavior of > > the next command. So I think this particular use fits that > > description. That it doesn't go through prefix-argument is an > > implementation detail. And, since the "commands" this C-u modifies > > are not really commands, but actions implemented internally by > > ispell-command-loop, I see no problem here that should bother us. > > But it doesn't affect the next command. In the example I gave, it > doesn't affect the C-r, it affects a 0/1/2/3/.. that can occur > arbitrarily later. If that's the only issue you have with C-u in this case, perhaps we could make C-u a no-op unless typed immediately before a character whose action "supports" C-u. Paul, can this be arranged?
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 7 Jan 2026 13:12:32 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 07 08:12:32 2026 Received: from localhost ([127.0.0.1]:35012 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vdTKx-0005mY-PN for submit <at> debbugs.gnu.org; Wed, 07 Jan 2026 08:12:32 -0500 Received: from sendmail.purelymail.com ([34.202.193.197]:43182) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <spwhitton@HIDDEN>) id 1vdTKt-0005mE-4w for 79985 <at> debbugs.gnu.org; Wed, 07 Jan 2026 08:12:29 -0500 DKIM-Signature: a=rsa-sha256; b=gX3Mb66JIvJFwH5VwUW2O+XjdvHQf6xlZAogADiJH2eNe6k+gY86oUcsiB2VKfVqrLe5GVxcz29bgsq4zRQ7ErD/CRU3c/HRJ2GgxE21sOa85tc2Z+PBbQN/3T4buByYBFyX4rg8nXNZimC8WeG/TRRaCyPuevFm99jPr8VD14XZ3uxdFKBZGJmUppJe4KID2n3WkhD88nDKbNj6BoCAnsdR1tmNN3hVpRQ4A17p/RYEkWVztzvVVUPdybNj0PHD30/08ukd+YzTPtlPWEpiHK9ZR5ch/+aul+qaYmoXrSN7X3jq+ymtjMC0UvzpTj67voTNRUfSNObg9PB0qGbXlw==; s=purelymail2; d=spwhitton.name; v=1; bh=eW7KJchLvBR/AF02OZwlZFdGuKWXJYG2eoplhlBsMrI=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=lEEXPjmiHvkXRyTQP6Eh6Xfj6gnWqe8+VJD1eQoYyIxbwQCyA/+CQhbOZwxmflw7Y1I/V+a9wlRqSm1d6BU05CoZ/4s9XNWZTTth+kgG45OTxqp7A7R6P5EOujlyEJDwXMS+qRwy5VXR2jpWzocRkllBBDdW06o75EvVDZEVTQXNpw5SyXK0vjxCp2lxNgz23COvoWkG48qnv1TX8Wj5l1BBjUpZAYxuHDG1hsUX0xup2iVvzpFgNGsqoynpbwlYN0gYaaUqIq+ryz2fd7wBtM2KVX9NiQcyo7OqcWwFVz7zhN+qQDiqS8T1Kfwyvt/GFwf4BPU51HMRwuLh4u3ciA==; s=purelymail2; d=purelymail.com; v=1; bh=eW7KJchLvBR/AF02OZwlZFdGuKWXJYG2eoplhlBsMrI=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79985 <at> debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1578259845; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 07 Jan 2026 13:12:19 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id EE76194043F; Wed, 07 Jan 2026 13:12:16 +0000 (GMT) From: Sean Whitton <spwhitton@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <861pk1egsg.fsf@HIDDEN> References: <uxsg7tbjjw7ujk.fsf@HIDDEN> <86ldifkmdh.fsf@HIDDEN> <87secilapm.fsf@HIDDEN> <861pk1egsg.fsf@HIDDEN> Date: Wed, 07 Jan 2026 13:12:16 +0000 Message-ID: <87jyxtlg7j.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79985 Cc: ultrono@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN, 79985 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hello, Eli Zaretskii [07/Jan 2:41pm +02] wrote: > The "Emacs-y" way of using C-u is to have it affect the behavior of > the next command. So I think this particular use fits that > description. That it doesn't go through prefix-argument is an > implementation detail. And, since the "commands" this C-u modifies > are not really commands, but actions implemented internally by > ispell-command-loop, I see no problem here that should bother us. But it doesn't affect the next command. In the example I gave, it doesn't affect the C-r, it affects a 0/1/2/3/.. that can occur arbitrarily later. -- Sean Whitton
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 7 Jan 2026 12:41:50 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 07 07:41:50 2026 Received: from localhost ([127.0.0.1]:34932 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vdSrF-0004Jg-FB for submit <at> debbugs.gnu.org; Wed, 07 Jan 2026 07:41:49 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49558) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vdSrA-0004JM-V2 for 79985 <at> debbugs.gnu.org; Wed, 07 Jan 2026 07:41:46 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vdSr4-0003eN-HI; Wed, 07 Jan 2026 07:41:38 -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=72vyacEThFSRhW5D+9P7JYvbxWnU5HmlLeIFA1DGO0I=; b=NtGvsVLLqklO eP+L5hv0nyfYCU01btG9s/UmFnUAdbP3ZB084ls6waN1wxf0afgPKoM7IJ9r4D+jU3HczrsqIcVwg bYsYXc8MewJmTNICY2Fd167HINgdrQsSI6Dm+88EoYUKxUKZoVOLK9cUu+YqyBdyROta7/PQXpWkV pNAZ+8+ORWTepW5uIoqHuL8R6xyk54WpilSQYKQ9QAH6sWHX4JlXEbQnzFH/HVH6Nk/4yQRW4VKuY u3+5PQf8Nuq8E+kA3fAAd5cgYMzOJ/9Jm/XPm1eUZb99v6CcqFgHnJdoCRhlrZHExpCFrtmu01glF 37fQE/zPC4DFN4875FRHIw==; Date: Wed, 07 Jan 2026 14:41:35 +0200 Message-Id: <861pk1egsg.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Sean Whitton <spwhitton@HIDDEN> In-Reply-To: <87secilapm.fsf@HIDDEN> (message from Sean Whitton on Tue, 06 Jan 2026 20:58:45 +0000) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7tbjjw7ujk.fsf@HIDDEN> <86ldifkmdh.fsf@HIDDEN> <87secilapm.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, monnier@HIDDEN, ultrono@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Sean Whitton <spwhitton@HIDDEN> > Cc: 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, monnier@HIDDEN > Date: Tue, 06 Jan 2026 20:58:45 +0000 > > Eli Zaretskii [03/Jan 12:43pm +02] wrote: > >> From: "Paul D. Nelson" <ultrono@HIDDEN> > >> Cc: eliz@HIDDEN, 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, > >> monnier@HIDDEN > >> Date: Wed, 17 Dec 2025 20:55:11 +0100 > >> > >> Hi Sean, thanks for the feedback, which I've incorporated in the > >> attached patch. Any other feedback would be welcome. > > > > Sean and Stefan, any objections to installing this patch? > > I'm worried that the way C-u is being used is un-Emacs-y. For example, > you could type 'C-u C-r', but it would not mean to pass a prefix > argument to the command that enters a recursive edit (if that had a > meaning), but rather to toggle saving the correction as an abbrev, after > exiting that recursive edit. C-u does not usually act at such a > distance! I think this feature should be a prefix argument to the keys > which select a correction. The "Emacs-y" way of using C-u is to have it affect the behavior of the next command. So I think this particular use fits that description. That it doesn't go through prefix-argument is an implementation detail. And, since the "commands" this C-u modifies are not really commands, but actions implemented internally by ispell-command-loop, I see no problem here that should bother us.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 7 Jan 2026 07:50:32 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jan 07 02:50:31 2026 Received: from localhost ([127.0.0.1]:34335 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vdOJL-0004e1-L4 for submit <at> debbugs.gnu.org; Wed, 07 Jan 2026 02:50:31 -0500 Received: from mout-p-103.mailbox.org ([80.241.56.161]:41294) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vdOJJ-0004dd-Dv for 79985 <at> debbugs.gnu.org; Wed, 07 Jan 2026 02:50:30 -0500 Received: from smtp102.mailbox.org (smtp102.mailbox.org [10.196.197.102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4dmKvd5MQkz9t5q; Wed, 7 Jan 2026 08:50:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; t=1767772221; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=aajadzz05rFTaIaL0WKGmT7rdEWC8AEnrOAYQZlbQiI=; b=YSiYNWu+JS+5DIIn2bmskkugmNrCIlH3+Kf+c3ttfoPKwl2ZeBPwQ70dbzXLhDTiNqnv7Q O4byMrJ68F5/nmw7FjJRlcio1jPQV/I3YiksYx56jSFxQf/LAr7OsHSFVyxwEYqp3pOQsS DQx8tCBBrlh+V8C9aGlkSWV3zx0gixdjV0mbkLCkNt+FwM77rCpP3BGdVw5oA4+jPitIdy g0XPfbKlOS4CAK5P0eyvQt39VXsj/LakdvhcpNhuOQIVmOuCGxt484T8xfq/4+mPczWRDM YhwayN26rotmKItni+9/7pDSGRXeQKIISYFXDiY5vlm3M/cbOLobd3ex9rGHfQ== From: Juri Linkov <juri@HIDDEN> To: Sean Whitton <spwhitton@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <87secilapm.fsf@HIDDEN> Organization: LINKOV.NET References: <uxsg7tbjjw7ujk.fsf@HIDDEN> <86ldifkmdh.fsf@HIDDEN> <87secilapm.fsf@HIDDEN> Date: Wed, 07 Jan 2026 09:36:10 +0200 Message-ID: <875x9dao5h.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 79985 Cc: Eli Zaretskii <eliz@HIDDEN>, 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, monnier@HIDDEN, "Paul D. Nelson" <ultrono@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > I'm worried that the way C-u is being used is un-Emacs-y. For example, > you could type 'C-u C-r', but it would not mean to pass a prefix > argument to the command that enters a recursive edit (if that had a > meaning), but rather to toggle saving the correction as an abbrev, after > exiting that recursive edit. C-u does not usually act at such a > distance! For example, Isearch toggling keys use the modifier 'M-'.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 6 Jan 2026 20:58:56 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jan 06 15:58:55 2026 Received: from localhost ([127.0.0.1]:60505 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vdE8l-0002Wu-9h for submit <at> debbugs.gnu.org; Tue, 06 Jan 2026 15:58:55 -0500 Received: from sendmail.purelymail.com ([34.202.193.197]:45792) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <spwhitton@HIDDEN>) id 1vdE8i-0002WF-CT for 79985 <at> debbugs.gnu.org; Tue, 06 Jan 2026 15:58:53 -0500 DKIM-Signature: a=rsa-sha256; b=dxuURJNlkWgD4v7DadnDPak+IeMPx0NNV93nlBdIf5qR01+r3nFqniKQA6/gqC3Cfx1oWxnJ2+S2R4MALO5+8L8p75+q4fF0eZj3lj4BbCiFI0dQOj1qXuHYXig78xZVEECm6dz05uABSEgBEbBohwBRH5MZB3sA71oNPHP3q5BmIdz8cVtzdXQgrhdIECyXzlejJ1qfI7JVDWTJ48ked4lDi4iB00zcyFmMqgS64mR3B/HNLn2VF0mKOFuOuvcogtXUEBtRE6brt2Du42ujSHXd1xwc/544JIYiNsP+Ovx4xZUPOiCYj2AOezoX7G4+GiDdgcveZi9uJfaQER9baA==; s=purelymail1; d=spwhitton.name; v=1; bh=jOYx3PI4Rkpw8JTZiu3BhMxggILD2c3jqppeoGnxVs4=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=J8dynUpb6cZFjomNp6yckI/CWQD879esLdhwIOOYothftPL+7jRc/qmDETuLSDs0/CdNbdhiWLYKxaurFcnn5DqnjHNmj86lHJ4Y60UO6heAM6Md3nEWySABH4vlJ9Xjm7Ped0IFiu0MN+snMilTOt7nhN5yKq7L7Y7MYUNSMbvG2Hbr1y+ZxjXhoS6OjWa4W5z06XWHKNbZ7oQkphSrut2E/WFKbDYEi41F7pn2pOr+bHnWF3ihU+4F2s3SJh61RgV6PDeJqWi5FFQHecpyxuH6wS3SzUTNGWFQhASEPc1o3X/TL5d0luYxwTVyHBoqxAxVmzDY3KbRvQf0Jlap3g==; s=purelymail1; d=purelymail.com; v=1; bh=jOYx3PI4Rkpw8JTZiu3BhMxggILD2c3jqppeoGnxVs4=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79985 <at> debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1957810739; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Tue, 06 Jan 2026 20:58:45 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 2FF64940485; Tue, 06 Jan 2026 20:58:45 +0000 (GMT) From: Sean Whitton <spwhitton@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN>, "Paul D. Nelson" <ultrono@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <86ldifkmdh.fsf@HIDDEN> References: <uxsg7tbjjw7ujk.fsf@HIDDEN> <86ldifkmdh.fsf@HIDDEN> Date: Tue, 06 Jan 2026 20:58:45 +0000 Message-ID: <87secilapm.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79985 Cc: krisbalintona@HIDDEN, monnier@HIDDEN, 79985 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hello, Eli Zaretskii [03/Jan 12:43pm +02] wrote: >> From: "Paul D. Nelson" <ultrono@HIDDEN> >> Cc: eliz@HIDDEN, 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, >> monnier@HIDDEN >> Date: Wed, 17 Dec 2025 20:55:11 +0100 >> >> Hi Sean, thanks for the feedback, which I've incorporated in the >> attached patch. Any other feedback would be welcome. > > Sean and Stefan, any objections to installing this patch? I'm worried that the way C-u is being used is un-Emacs-y. For example, you could type 'C-u C-r', but it would not mean to pass a prefix argument to the command that enters a recursive edit (if that had a meaning), but rather to toggle saving the correction as an abbrev, after exiting that recursive edit. C-u does not usually act at such a distance! I think this feature should be a prefix argument to the keys which select a correction. -- Sean Whitton
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 3 Jan 2026 16:29:32 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 03 11:29:32 2026
Received: from localhost ([127.0.0.1]:37585 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vc4VP-000430-N8
for submit <at> debbugs.gnu.org; Sat, 03 Jan 2026 11:29:32 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:52263)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
id 1vc4VN-00042m-0F
for 79985 <at> debbugs.gnu.org; Sat, 03 Jan 2026 11:29:29 -0500
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id B0101440BD5;
Sat, 3 Jan 2026 11:29:22 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
s=mail; t=1767457761;
bh=nRrSDdL8nMLJfWNwMsCccAk4wKokwWtcnlJZMpRc5+s=;
h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
b=djLHPsiqvuL7HiN6Oj6ahu6+wM6pjbT9RlQyIon51IoYgCyT4LMaoTPkEQ67+07Cr
wYE5xh5VJ87x9rW/JPdz9S8hZ8vg9bS4cLprON+I9pu32sPOz1iC8E/g9DnVVDOMrj
tPu0D6g+pd1ii+QGNAaHskhWmWKegZ0QPaNp907E0cvfvzVZRmsW70HWE6MMUodE0R
9NwwaQlrHDGsYXnhg10qr3X2urJn/yLEBoRIBL/OAL6d38M9Vc+AlWGvPnlAqvaKKu
ktO8gbhT1oOLtrLUP4rNY5RY9NeymsnBzeuKfGTmkUh5B0ZJSuuOJIqDIWyyDyKNFP
bzliZsV8NSiyw==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 2988544064F;
Sat, 3 Jan 2026 11:29:21 -0500 (EST)
Received: from pastel (104-195-203-100.cpe.teksavvy.com [104.195.203.100])
by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id DF540120497;
Sat, 3 Jan 2026 11:29:20 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <86ldifkmdh.fsf@HIDDEN>
Message-ID: <jwvtsx2hd8z.fsf-monnier+emacs@HIDDEN>
References: <uxsg7tbjjw7ujk.fsf@HIDDEN> <86ldifkmdh.fsf@HIDDEN>
Date: Sat, 03 Jan 2026 11:29:20 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results: 0
ALL_TRUSTED -1 Passed through trusted hosts only via SMTP
AWL -0.173 Adjusted score from AWL reputation of From: address
BAYES_00 -1.9 Bayes spam probability is 0 to 1%
DKIM_SIGNED 0.1 Message has a DKIM or DK signature,
not necessarily valid
DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
domain
DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
domain
X-SPAM-LEVEL:
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79985
Cc: 79985 <at> debbugs.gnu.org, spwhitton@HIDDEN, krisbalintona@HIDDEN,
"Paul D. Nelson" <ultrono@HIDDEN>
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 (---)
Eli Zaretskii [2026-01-03 12:43:06] wrote:
>> From: "Paul D. Nelson" <ultrono@HIDDEN>
>> Cc: eliz@HIDDEN, 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN,
>> monnier@HIDDEN
>> Date: Wed, 17 Dec 2025 20:55:11 +0100
>>
>> Hi Sean, thanks for the feedback, which I've incorporated in the
>> attached patch. Any other feedback would be welcome.
>
> Sean and Stefan, any objections to installing this patch?
No objection from me,
Stefan
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 3 Jan 2026 10:43:32 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 03 05:43:32 2026 Received: from localhost ([127.0.0.1]:33842 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vbz6Z-0005rd-GN for submit <at> debbugs.gnu.org; Sat, 03 Jan 2026 05:43:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:58980) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vbz6W-0005r5-QK for 79985 <at> debbugs.gnu.org; Sat, 03 Jan 2026 05:43:29 -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 1vbz6R-0001lv-5o; Sat, 03 Jan 2026 05:43:23 -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=/evTZ9yFkLnqyUCbw8+IZ13J2SudENaHMb7KgbKiz0E=; b=UMBnqwo+oG4y /r5l+/upS/Iq/NjyXvfZQMqd+7l4BI8j6zUN8QHTdA11Sr032BxRjooTh6bRlUZxjzrGFyhhnltDc pyNA2Z0he3tPDBJAbbX8jS92CfjqCaCG0eaS9CdqDgUZdoHV1z+uvhjq6W3U5vMMlQFKe9W1IF897 CJy+K87JHpkLvr9KjkpPzDYUwGv/LzFDnSDPy3pUZ5qMTv/WYBXq1xtAff6Foa51AaijhcUWMO+P5 i93i6a0eN1asKdmF99T+gNrHETZ7CoWXJMj11vvnTKgpN7xDXoGf3RIJ6JwC/BVIYkskJd7tJa3SH vf/mcXRUSUkx6TW/KcCgWA==; Date: Sat, 03 Jan 2026 12:43:06 +0200 Message-Id: <86ldifkmdh.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "Paul D. Nelson" <ultrono@HIDDEN> In-Reply-To: <uxsg7tbjjw7ujk.fsf@HIDDEN> (ultrono@HIDDEN) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7tbjjw7ujk.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, monnier@HIDDEN, spwhitton@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "Paul D. Nelson" <ultrono@HIDDEN> > Cc: eliz@HIDDEN, 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, > monnier@HIDDEN > Date: Wed, 17 Dec 2025 20:55:11 +0100 > > Hi Sean, thanks for the feedback, which I've incorporated in the > attached patch. Any other feedback would be welcome. Sean and Stefan, any objections to installing this patch?
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 20 Dec 2025 23:28:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 20 18:28:23 2025
Received: from localhost ([127.0.0.1]:56150 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vX6N4-0001Cq-KP
for submit <at> debbugs.gnu.org; Sat, 20 Dec 2025 18:28:22 -0500
Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:60816)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vX6N2-0001CW-ME
for 79985 <at> debbugs.gnu.org; Sat, 20 Dec 2025 18:28:21 -0500
Received: by mail-wm1-x333.google.com with SMTP id
5b1f17b1804b1-4779aa4f928so28126185e9.1
for <79985 <at> debbugs.gnu.org>; Sat, 20 Dec 2025 15:28:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1766273294; x=1766878094; darn=debbugs.gnu.org;
h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to
:cc:subject:date:message-id:reply-to;
bh=AOX6tDAG5iUdvD0DxR+c5/HDYNLY9kGD+sJ/5P5ergw=;
b=ebJ2ucLoGqh4yUdZ4YadMZSnKsvwIDC/ud08ETREyz+zgRo152GgpNuTJKMaYp7Qru
n97MIPE2X0STK6wIQWlkXpDjD1GMjGiGOrbEGf+g24LWKEHiWAx3wqKdML31pPpvhldD
abatCF5bw2eT8c0hVc1VcLK05XOtyLN5B7qCVtqhrxpAcgAkQ9EuC25xuWtSyKd40XuR
4aKd2TSH+ko6Spfj7nSaCGfOs0HEJjK27RDig53tkq5puW7FOlbGij0zpe8w4M8ADnMs
JF6tR2b5uvbMFtwPGW+t6vOfCh710oyEEdfTQPANciKhccr7dPaOoZ/3R4Koz+f/uj+M
vx8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1766273294; x=1766878094;
h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:x-gm-gg
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=AOX6tDAG5iUdvD0DxR+c5/HDYNLY9kGD+sJ/5P5ergw=;
b=PVaeBCNYi0TG67BdW41Q+XLBUxfu4yRhklTSWvHOc8efUhVq1t/aSHzXiq6lhThoig
qK4THYECRDSuNoGeh3HZZ3wQT8JuwIm3oL7Ackk5aP9arX1vpk7zWF55Ncl/2zkxPdUZ
31Nb86Qh83tf2IBElW5K1UhRTM5lTjmkd3QOZKuODWb5OqK0mlWv/YPEt7SNRPNUNbhC
BFvrnF5cSqMrhtbIUPmJAOuP+rXPQhgqwVAotGIDqpxdMwUy/Q/JYeaJE/6wCc3gNqec
eDBvIElIuTFWh4u2NQc6LdPeUx7snlFFKE+e8I4GAKmneAJ8sf/KcdPJ8kG/AKQ8rdOO
DdTw==
X-Forwarded-Encrypted: i=1;
AJvYcCUC3Dc4XnSXis3F5Ohtx7H24LMKhHEV77CEDWIeJdi5m5vqfmX7UuUOG+s89pmo/FuiNiQAzg==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YwQzF1rLC+/5UIlJYBvbdev62IR+H5kgyN2n7VY0uC0BRHHnJVG
D9vumIN2xX8fT/ubjDlDD5kWSnW1MFNRZtemQHEq/O5j2SV1/mXXgalA
X-Gm-Gg: AY/fxX6evjhC1ClASLh4tW1Oc5jd8RQUzYH0tMPe5zdKgmUF5/VIm6UG8C9dnD/fCcP
kpCmfDX8KEIgFIaDM/ZEQ7ddMZN7y4kE22Dg1aBzPX4ifMEfjcbLRuxnSAqOnRda3oWmAOw+oMz
WdE6ERB3wnNOE4x54yVVFHKwpRysZAS3jMYo7ih2uMjJIZV+B6hsNyhb3aR7UTo4wAyvFtTRON1
AyqWszTZ2YBVTnuLioGftKXMZ2fqjFO3B9kcjKdE2zrU5wSFN5eJRn1YV62QCTg1yNzwXOQgz8n
arxrYVNHFQnxbWX6kO0ggOtcBWkVLaeH9JL54+gEZmTra8kTM9CLmgCioOL2GYELmvPNxUunLPm
5Gi8sHDHFLkuQDClHg1r2QIA+Ke7qQMv0Istx7vMn9CW1dYCSvuWDDsRLPL88GVYpANMI1heV1f
J1zv9breKE7Ts=
X-Google-Smtp-Source: AGHT+IGGFxE3NAtg1QZdNZWq649WFGngLhsEfKYPaK+8JDhnxSnWnRcVH6fJb0sGsmQWPtSX+W+jYg==
X-Received: by 2002:a05:600c:c05b:b0:45b:7d77:b592 with SMTP id
5b1f17b1804b1-47d1c03867amr46575435e9.12.1766273294254;
Sat, 20 Dec 2025 15:28:14 -0800 (PST)
Received: from localhost ([37.96.16.52]) by smtp.gmail.com with UTF8SMTPSA id
5b1f17b1804b1-47d19346dfcsm137171775e9.1.2025.12.20.15.28.13
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Sat, 20 Dec 2025 15:28:13 -0800 (PST)
From: "Paul D. Nelson" <ultrono@HIDDEN>
To: Sean Whitton <spwhitton@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <87ecos12gs.fsf@HIDDEN> (message from Sean
Whitton on Thu, 18 Dec 2025 10:58:11 +0000)
Date: Sun, 21 Dec 2025 00:01:37 +0100
Message-ID: <uxsg7tzf7c4v1q.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79985
Cc: eliz@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN,
79985 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
>>> Re. Stefan's comment on "prefix vs. toggle", I see two user-facing
>>> issues: what repeated C-u should mean, and which key to use. I see the
>>> following options:
>>>
>>> (1) Keep it like it is: C-u toggles what the next correction command
>>> ('r' or a selection character) does.
>>>
>>> (2) Make C-u idempotent, i.e., pressing C-u once changes the behavior of
>>> the next command, and repeated C-u has no further effect (so C-u C-u
>>> behaves the same as C-u).
>>>
>>> (3) Keep the command like it is, but move the bind away from C-u to
>>> reflect that the semantics are closer to "toggle" than "prefix".
>>>
>>> Any preferences?
>>
>> If currently the patch does (1), then that's what I had in mind, and
>> that's what I prefer. That alternative is IMO the "prefix" way of
>> doing this, from the user's POV.
>
> I think that, in addition, C-u C-u should signal an error, so that we
> can later use a double prefix argument for something else, if we want.
Thanks for the suggestion. That would be closer to (2), with the
additional behavior of signaling an error.
My inclination would be to leave 'C-u C-u' as it is, rather than
signaling an error, until we later decide to add more toggles or
modifiers in the ispell loop. At that point, I think it would be worth
considering whether to give them their own keys, along the lines of
isearch/ediff, rather than overloading repeated 'C-u'.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 20 Dec 2025 23:27:14 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 20 18:27:14 2025 Received: from localhost ([127.0.0.1]:56131 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vX6Ly-000181-D8 for submit <at> debbugs.gnu.org; Sat, 20 Dec 2025 18:27:14 -0500 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]:60815) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vX6Lw-00017o-DW for 79985 <at> debbugs.gnu.org; Sat, 20 Dec 2025 18:27:13 -0500 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-4779aa4f928so28123335e9.1 for <79985 <at> debbugs.gnu.org>; Sat, 20 Dec 2025 15:27:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766273226; x=1766878026; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=zKcCScDtfaLjEH8HBARzte19pXpkWASz7fUe030Hnz0=; b=hmVNkanK9jAQIhCG7vyd1jZ+jgl/UQbVwC3SJl3LafTYh0KlVc3PW4ufr1CEGwlBfV c7lbt5C3WZp4p4TZVOSE1WhDq/tZT+i4cGo7X78dE/s2Qi4lAd63vBNX6/HnqyQbB94A F0muLRVnCc2j5J6/0MwabVCovweTVZjGza8LbN0V4A64DU2OBr5k9Cpjp+or2uaaLafH oP8dq1pfYAwvQucRTIonuGRpFBFeXn4fWe3uqGFvJAMdPp6a5Yy4d/kbFUpuGH+FuP9G +6vP12CVHSJqvfpCgAcBE5JFqufDabeH5MP5gr0FyUCML6Q6/RiPjoUTjtg2vCuuUKBq Pbkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766273226; x=1766878026; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=zKcCScDtfaLjEH8HBARzte19pXpkWASz7fUe030Hnz0=; b=b9DOHnCPSrW2Kw2Fkusq6p68TnLUHACCEyw2vkZ7jVyIDg0GgqlexQlhYi9Y/tRvDE HUiuHLEDs5Bict+uswm2ZqgzKkSU9UZHL5AaxIb0mDFoCiqhum5EDUWTPEkEapbssW26 wemJpyQGc7yL4/5DoU1Damy3BcyPJ6kbNKM36gY5zFCbQMqLsUjX5Rm1HQDf3Tc5T95s BlTb/sSy8jfCE50IF6M0c5u4H4bfqZqzEfMuOCH7wsZ4BrXyRfrz1j7/EeEBTkn2lUo3 qbxBSldrDE8zDMeBeB70xcjxPZavylPVxLAH51lk79gMhMneA1rFzqdEYNZZjrH4QQ2U p5eQ== X-Forwarded-Encrypted: i=1; AJvYcCWUQdl5nE1Wb4BnCbnBFKHcM9OB8+ZoAiN6kbTmzaAbSPTv1PsMpqEMBdWVKEi0XN/GvhlJKA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxA+Nu+ZtEru8S6Y2MLcOmSuK0C6Vw4Hhxxk2kPoPi1yZkwJnCK a4kPuKIObct8SnWr8+rvMzW7PjO36eNZSdy1XBHqE7daNirLLGXg3Jrh X-Gm-Gg: AY/fxX4yf0vNMwQCARXrM/WPxmWCn6JZKD9h7LydeZoxRZycNuSe5blwt3b9As6TqX/ bulrO6srwa7aYBOOTuvVqQhtAzXH/5L+V/WC64QFuTAA+CcefGJKjBMqYcuotVQXf2q+VbvnDDB 8fjprMO8zbxHgvsICOiP1PiUsBeHJoZHXxJj4dmzWw1gBriMO2l7nb4AVSi5Z21qKSXtFyWs0lV 4WsEf6pgc0izIwX6neRaTiQgkylTMclI0uwKcm4Op2Ib8t8fRk5rjeAxAcnhDWlPfxPrDMKITDm X4YsWRoT7wdu2TNVqsEUe1G+SPXNjzA6UUBYX5me5hQyHOF3JtutGFTWR+8Q4khdHYWXJFeZ/I9 w+UJ3G7LPuNsASr6UFv+jmfE3tCM3I7PtgVQVa6/uUDaEtvVv7sQUrkh/qkot5pP9uR12KLt10g QhzDNdN4E1l6g= X-Google-Smtp-Source: AGHT+IE0Ule2skj1d79XL0DybVcQhWnDvVwvnJ2lXab71nb4OvxBnO3vYq0eU9wh5npq7uMOv0ZZRg== X-Received: by 2002:a05:600c:3506:b0:477:a246:8398 with SMTP id 5b1f17b1804b1-47d1953b774mr60767225e9.2.1766273226237; Sat, 20 Dec 2025 15:27:06 -0800 (PST) Received: from localhost ([37.96.16.52]) by smtp.gmail.com with UTF8SMTPSA id 5b1f17b1804b1-47be27b0d5asm167033795e9.13.2025.12.20.15.27.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 20 Dec 2025 15:27:05 -0800 (PST) From: "Paul D. Nelson" <ultrono@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <86wm2k2uqt.fsf@HIDDEN> (message from Eli Zaretskii on Thu, 18 Dec 2025 08:02:02 +0200) Date: Sat, 20 Dec 2025 22:18:06 +0100 Message-ID: <uxsg7t7bug6eep.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, monnier@HIDDEN, spwhitton@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: >> From: "Paul D. Nelson" <ultrono@HIDDEN> >> Cc: eliz@HIDDEN, 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, >> monnier@HIDDEN >> Date: Wed, 17 Dec 2025 20:55:11 +0100 >> >> Hi Sean, thanks for the feedback, which I've incorporated in the >> attached patch. Any other feedback would be welcome. > > Thanks. One possible enhancement/improvement might be to allow the > new user option to have the value 'local', which will then add the > abbrev to the mode-specific abbrevs, as opposed to global abbrevs. > But this could be a separate patch, of course. Thanks (and yes, happy to wait for a separate patch, ideally guided by someone who would use such a feature)
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 20 Dec 2025 23:26:53 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 20 18:26:53 2025 Received: from localhost ([127.0.0.1]:56118 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vX6Lc-00016s-LT for submit <at> debbugs.gnu.org; Sat, 20 Dec 2025 18:26:53 -0500 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]:45395) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vX6LZ-000166-IB for 79985 <at> debbugs.gnu.org; Sat, 20 Dec 2025 18:26:50 -0500 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-477619f8ae5so16333175e9.3 for <79985 <at> debbugs.gnu.org>; Sat, 20 Dec 2025 15:26:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766273203; x=1766878003; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=RfLTZUduX0kYGNiUy9K7Kl6NdZxwdKbbbxOMSbqiMmE=; b=JN3zlWRLFbsSG+FTwb3ihsu4LwP1bypwVmXlqt8JwGP62bcFK2nju4yfz35qr/fTnK dE0xC3F2+kH2hnpo7RowvFKDaWMCkPvB5wFeNdWCkNHlSmah6Hz3c61WR7RSU8EP7NP1 Keeufc5AvLGjs9Nh0X3qkrY4bagHvp4y3+WA9PUdUIoafVldCC/7dtjhOnW42WDDJFjT 0KXf4eSVK7AM/iKAFFma/KZQhijDX6vLhLwH9Lzeuy/KhnrfhkRA/vVFIF+ctRFw+lg4 SMiejDqZJUAavn5SzH7sEwLovtDVJV+AYO8tVv/85mxOMggdxIaIFt31b8dTWnYKQq38 q7Ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766273203; x=1766878003; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=RfLTZUduX0kYGNiUy9K7Kl6NdZxwdKbbbxOMSbqiMmE=; b=DnJT/ww2ZGpvpjbiHx/sUb1R2OIt9u0WP/sM7/E/OYdCnhFOd55jNBPM1rzRxPkpM0 f1hgMJDaJLmvp8eyOh9ih9cRZW+wbIAR/1kRlF+C+0EMB3k60sG7DdHuPLcMMb0F07bG emDJ1FHgtn5G7HbeNrDWDhQccvhk6gEy+MvBanQYl+ANy15Vwej2KUhMiCctUhl/Jy0Z /qc/L+ZhRq44uClvS6mw/+yQC7CDz/hBcPawYvBNTDbplsrysdQF0MzH4u6qARUHFjDJ bQ29cuUrb/NyZ764viK8I1iuV0xln/wTzHpAvmN+Yt4hQ5D13elVz8tm/n2chbh6K4OU zmCA== X-Gm-Message-State: AOJu0Yxy9vnayez6tg+s+Q+8IuHyebJfOQpeUhvo7W1YCnAc4pv9oT9F WN/Qbsra7sAuuncNKYXpCNZMeq7F366B829jtymvB8t+VDGGlvdcECK8 X-Gm-Gg: AY/fxX4sXfgvJCliYel3Ds7LoQYjV79WIXTCnK8wvVNCpB9bDJuYuhI/fgxfGqusbyx PjFiZJsmrFbfE2kc9nO2NVoP5kijQO3F5J66XOCu6TH8E60qMiNpwJ+N7oJLlPBvviV+vn7ayTZ BQ8pYftNKo5MCWPRzGlnF8fhZFRuVLqbyVtIDFo4Jpy1gFsQCWeV1w4Pi0DyL13pRcfSabvXMK/ nEb7VSp2A1wIxwzXI2/XS8Ar/oz/7hsRCaUopMhmy7Lh43JzlXGXYuG0CcS6ItAtD9dIUZ1vSaK Og707ETpTPfZBuCmjqyHgtUaqNPaolmF5A/7BKH8CGoihuQ8H4F6kt4+iJy4z7g8pzm7T62jSkC uy3EuS7padrwHkMF3sqGX0+tNAi3eLn0QkKkmBFEBL9WS3Tinqwoy3m2pzTQcSvbZBl2uc+D6TS JNUywIY+MWUVU= X-Google-Smtp-Source: AGHT+IFqsDGPCon7WBWKU2tXcv2LAwgiO/F73YuhoU1cpbRL0TMXYV8TmgXDhCHiHi9zpLhyecfVtg== X-Received: by 2002:a05:600c:4e0d:b0:47b:df60:8a14 with SMTP id 5b1f17b1804b1-47d195495d4mr67073925e9.9.1766273202575; Sat, 20 Dec 2025 15:26:42 -0800 (PST) Received: from localhost ([37.96.16.52]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-4324ea82e9fsm13681148f8f.26.2025.12.20.15.26.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 20 Dec 2025 15:26:42 -0800 (PST) From: "Paul D. Nelson" <ultrono@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <jwvtsxqkmzd.fsf-monnier+emacs@HIDDEN> (message from Stefan Monnier on Tue, 16 Dec 2025 18:48:46 -0500) Date: Thu, 18 Dec 2025 10:42:54 +0100 Message-ID: <uxsg7t4ipo6s81.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Stefan Monnier <monnier@HIDDEN> writes: >>> 3. if not, then indeed we need to proceed very carefully to ensure the >>> hook mechanism is flexible enough, and right now it's not clear that >>> this mechanism fits the bill, without a lot more documentation. >> >> Indeed. A technique for that is "dogfood". I.e. try and move most of >> the code currently in the big `cond` into your new >> `ispell-command-loop-extra-bindings`. If you can move "all" of its code, >> then it's a strong argument that your mechanism is probably >> flexible enough. > > BTW, rather than an alist, `ispell-command-loop-extra-bindings` could be > a *keymap*. And rather than manually do `read-key` plus lookup > the result in that var, we could activate that keymap either via > a recursive edit, a minor mode (like isearch), > a `set-transient-map`, ... Thanks, I'd be happy to help move the ispell command loop to a keymap eventually if there's interest in that. Of course, it'd be a large refactor of old code rather than a small feature.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 18 Dec 2025 13:57:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 18 08:57:51 2025
Received: from localhost ([127.0.0.1]:52353 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vWEVr-0006JH-9O
for submit <at> debbugs.gnu.org; Thu, 18 Dec 2025 08:57:51 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:12915)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
id 1vWEVp-0006J2-26
for 79985 <at> debbugs.gnu.org; Thu, 18 Dec 2025 08:57:49 -0500
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id F3A8B440100;
Thu, 18 Dec 2025 08:57:42 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
s=mail; t=1766066262;
bh=9jbcEcQX/KB2VsivcRWrBmxHL/iUaFeBUe8QJdbWF4o=;
h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
b=mW/7AzJtIR2wQS1VOTL8zxJTKHDhpfnyK1GTHjNBbumHRfZDhAFT1KSHCYVLVRBQk
+DaeEXvn30ONMlnjYOjXVGU9tzQhHDbBNJzcNuyI+ksX7+LZELeb46qEzFMBijV2eT
y1hiZbXco7GwJUMSQ2tGgVKL90RLoKaljX+X3wt5VIuujcIvg/g91m50MWmyU5Bs7E
jCGiL7Hr7fA1G6ByRMKJKchdGCxAs3eP97aSU0I4DytJHLLHGm98J1LUmCdk8soxjw
0IRczVx/ZcHap/ei1FOA7h2Lh8ZExABa/Bl5KoXJS7U35LjaQcm5aAtyZLhx+Fi5rj
1szB874nL4QPg==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 1102A4403DB;
Thu, 18 Dec 2025 08:57:42 -0500 (EST)
Received: from pastel (104-195-240-239.cpe.teksavvy.com [104.195.240.239])
by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 9150512024C;
Thu, 18 Dec 2025 08:57:41 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: "Paul D. Nelson" <ultrono@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <uxsg7t7buk6wkv.fsf@HIDDEN>
Message-ID: <jwvfr97ki7w.fsf-monnier+emacs@HIDDEN>
References: <uxsg7t7buk6wkv.fsf@HIDDEN>
Date: Thu, 18 Dec 2025 08:57:38 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results: 0
ALL_TRUSTED -1 Passed through trusted hosts only via SMTP
AWL -0.245 Adjusted score from AWL reputation of From: address
BAYES_00 -1.9 Bayes spam probability is 0 to 1%
DKIM_SIGNED 0.1 Message has a DKIM or DK signature,
not necessarily valid
DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
domain
DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
domain
X-SPAM-LEVEL:
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79985
Cc: Eli Zaretskii <eliz@HIDDEN>, 79985 <at> debbugs.gnu.org,
krisbalintona@HIDDEN, spwhitton@HIDDEN
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 (---)
> (1) Keep it like it is: C-u toggles what the next correction command
> ('r' or a selection character) does.
Ah, sorry, that was my misunderstanding, then.
`C-u` is fine for that. But please don't call it "toggle" because
I think in such a context "toggle" would mean that after `C-u` all
subsequent commands (rather than just the very next one) are affected
until the next "toggle".
Stefan
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 18 Dec 2025 10:58:21 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 18 05:58:21 2025
Received: from localhost ([127.0.0.1]:50629 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vWBi8-0000SF-LG
for submit <at> debbugs.gnu.org; Thu, 18 Dec 2025 05:58:21 -0500
Received: from sendmail.purelymail.com ([34.202.193.197]:47906)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <spwhitton@HIDDEN>)
id 1vWBi6-0000Rk-4V
for 79985 <at> debbugs.gnu.org; Thu, 18 Dec 2025 05:58:18 -0500
DKIM-Signature: a=rsa-sha256;
b=bASHke1wOwi+tjwKTgRsee1Uvz6SO4z09Cg3VPX3rcLGxKCMBE54l50x7+2Q3Cw8cu2gcFgGROQaxieAKyGGQM89xO9o58HVrrqJzWar6gIIKfuN0YNmscBzUMZe7qtKPmy2aGJTDdX9NhlCQCZN9fFXIemHhAABTTvQBZdLdbRSBiEnWbFrTDEZcFsJOq4B98Q9q6iF1CfTmduVjK7v8vDdOQCuoRnDJ3gGC1QAZejLGh+b+UnJG4EafF3L1+uUFn3sf3nT/hP7jWHOIQE1g/jQ4EPjXgaD3jfeuX6vZQ04pc6bljFmX7db07UZ96ZSVB7FI77/6axran3bp/lD5g==;
s=purelymail2; d=spwhitton.name; v=1;
bh=wb4VtSG8zBIZ7l//H7p0l1kzcziXc7PgozHz2rxhTy8=;
h=Received:Received:From:To:Subject:Date;
DKIM-Signature: a=rsa-sha256;
b=B5eXgADYOFHEYn2jiANILPY7GiW/iusJ8eOgazzElhS1KBDEHUS0XRKXVP7anpqusRSUkn+b9v3vzmeOd4EUdEEoX1415wBfzJXiPwCJ5FJQ3ga5F/6OpKpzhUDJChj8dVZol8OU1n4a60P3GmIQ35ai2baX/Cjk58cDjdHZ+AmV4THzw2Fx34BQPllLxBuNHSE2BGj2idwwsy274LyyH1ca33I0QZSsVtMKPpm4DgvYdLUOW4dlUUZUA1qGQRSCrGGDubESQrc8XhlwI9T4m7FMKpbj5sHyimj6gTwYhsnpNPXN804AZLxi+wDbksUPhv4k6PEZfilGb/q5+gfdfw==;
s=purelymail2; d=purelymail.com; v=1;
bh=wb4VtSG8zBIZ7l//H7p0l1kzcziXc7PgozHz2rxhTy8=;
h=Feedback-ID:Received:Received:From:To:Subject:Date;
Feedback-ID: 20115:3760:null:purelymail
X-Pm-Original-To: 79985 <at> debbugs.gnu.org
Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1625265051;
(version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384);
Thu, 18 Dec 2025 10:58:12 +0000 (UTC)
Received: by zephyr.silentflame.com (Postfix, from userid 1000)
id 95A40940825; Thu, 18 Dec 2025 10:58:11 +0000 (GMT)
From: Sean Whitton <spwhitton@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <86ecos2nb0.fsf@HIDDEN>
References: <uxsg7t7buk6wkv.fsf@HIDDEN> <86ecos2nb0.fsf@HIDDEN>
Date: Thu, 18 Dec 2025 10:58:11 +0000
Message-ID: <87ecos12gs.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79985
Cc: 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, monnier@HIDDEN,
"Paul D. Nelson" <ultrono@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
Hello,
On Thu 18 Dec 2025 at 10:42am +02, Eli Zaretskii wrote:
>> Re. Stefan's comment on "prefix vs. toggle", I see two user-facing
>> issues: what repeated C-u should mean, and which key to use. I see the
>> following options:
>>
>> (1) Keep it like it is: C-u toggles what the next correction command
>> ('r' or a selection character) does.
>>
>> (2) Make C-u idempotent, i.e., pressing C-u once changes the behavior of
>> the next command, and repeated C-u has no further effect (so C-u C-u
>> behaves the same as C-u).
>>
>> (3) Keep the command like it is, but move the bind away from C-u to
>> reflect that the semantics are closer to "toggle" than "prefix".
>>
>> Any preferences?
>
> If currently the patch does (1), then that's what I had in mind, and
> that's what I prefer. That alternative is IMO the "prefix" way of
> doing this, from the user's POV.
I think that, in addition, C-u C-u should signal an error, so that we
can later use a double prefix argument for something else, if we want.
--
Sean Whitton
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 18 Dec 2025 08:43:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 18 03:43:14 2025
Received: from localhost ([127.0.0.1]:49854 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vW9bO-0001Tj-2q
for submit <at> debbugs.gnu.org; Thu, 18 Dec 2025 03:43:14 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:58336)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vW9bM-0001TQ-Ap
for 79985 <at> debbugs.gnu.org; Thu, 18 Dec 2025 03:43:13 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
id 1vW9bC-0001ns-G6; Thu, 18 Dec 2025 03:43:05 -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=E8YnSTxIMINFDx05yx6uJd88WKKXLKy25sUe43R+tqc=; b=Bl0GWzUuIOX8
BcEUFpAsDPB+QdgafcTfZe/demJQVjD2L6krLsGtFiqilaO5XvpF7Ay7tJkLSropNVi8vkSDGQXC4
QfrJp6/1GSDu7pTBXqIvs0jlGGRZiymsAxDVloI/44vv+BHT2irVV4xhFBD7EEw1qCSdP3HI2dHGr
KyF1wrsh1LKCI2giz0YZOg1DBdIh001+35YYDP/4e8e9K7ofvFqhgrHUrYJhQ0fKxgnIi+M8sV8BD
ibuM8jIdXZ2x0NbBHcTU4i04BlqWHyXHFuqXoGM97ZOq3ed1gYpgz3/ojQA7oE9Ii00OHvt6WiqNQ
hx5nNx+XAI5d7/ZgJhBwiw==;
Date: Thu, 18 Dec 2025 10:42:43 +0200
Message-Id: <86ecos2nb0.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: "Paul D. Nelson" <ultrono@HIDDEN>
In-Reply-To: <uxsg7t7buk6wkv.fsf@HIDDEN> (ultrono@HIDDEN)
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
References: <uxsg7t7buk6wkv.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79985
Cc: krisbalintona@HIDDEN, 79985 <at> debbugs.gnu.org, monnier@HIDDEN,
spwhitton@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)
> From: "Paul D. Nelson" <ultrono@HIDDEN>
> Cc: monnier@HIDDEN, spwhitton@HIDDEN, 79985 <at> debbugs.gnu.org,
> krisbalintona@HIDDEN
> Date: Thu, 18 Dec 2025 09:08:48 +0100
>
> Eli Zaretskii <eliz@HIDDEN> writes:
>
> >> From: Stefan Monnier <monnier@HIDDEN>
> >> Cc: Sean Whitton <spwhitton@HIDDEN>, eliz@HIDDEN,
> >> 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN
> >> Date: Wed, 17 Dec 2025 15:55:12 -0500
> >>
> >> > +\\`C-u' Toggle abbrev saving for this correction.
> >>
> >> I think the suggestion to use `C-u` presumed you were going to make it
> >> work like some kind of prefix command.
> >
> > Yes, that was the idea. I think commands 'r', 'a', and 'i', and also
> > the characters typed to select a correction, should be affected by C-u
> > in this manner. Or at least that was the idea I had when I suggested
> > to use C-u.
>
> Currently, C-u affects 'r' and the characters that select a correction,
> although not 'a' and 'i' -- it wasn't clear to me what to do with those
> since they don't apply a correction, but I'd be happy to update the
> patch if I missed something.
We can leave these commands out for now, and consider that later, if
there is a demand.
> Re. Stefan's comment on "prefix vs. toggle", I see two user-facing
> issues: what repeated C-u should mean, and which key to use. I see the
> following options:
>
> (1) Keep it like it is: C-u toggles what the next correction command
> ('r' or a selection character) does.
>
> (2) Make C-u idempotent, i.e., pressing C-u once changes the behavior of
> the next command, and repeated C-u has no further effect (so C-u C-u
> behaves the same as C-u).
>
> (3) Keep the command like it is, but move the bind away from C-u to
> reflect that the semantics are closer to "toggle" than "prefix".
>
> Any preferences?
If currently the patch does (1), then that's what I had in mind, and
that's what I prefer. That alternative is IMO the "prefix" way of
doing this, from the user's POV.
Thanks.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 18 Dec 2025 08:08:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 18 03:08:59 2025
Received: from localhost ([127.0.0.1]:49701 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vW94E-00084o-Eu
for submit <at> debbugs.gnu.org; Thu, 18 Dec 2025 03:08:59 -0500
Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]:44096)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vW94C-00084S-71
for 79985 <at> debbugs.gnu.org; Thu, 18 Dec 2025 03:08:57 -0500
Received: by mail-ed1-x52d.google.com with SMTP id
4fb4d7f45d1cf-64979bee42aso463621a12.0
for <79985 <at> debbugs.gnu.org>; Thu, 18 Dec 2025 00:08:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1766045330; x=1766650130; darn=debbugs.gnu.org;
h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to
:cc:subject:date:message-id:reply-to;
bh=XjZA0WnKd4nQQCapedfrfWMBL+HSAygheJiG6Uqe0ZU=;
b=btdmTk35kXe0WHdY/5mJyEFG7vtXxwRZ7LX5vnvah+HAowXBWwDvuAYvj0q1E5xtTQ
KVX4uOwrNcZG69QGhOwLgk6APoTC8zhH3QzsG9VbjJYoHJ1Ahh7rR6wdl7SM17eNdK1t
tJ/PfcFMcSuDAwsSb+oI1py+kwwbCH2pzytlxy9Gy8jUhiC5iY75A38YT0KFoZN1p6Lt
00Dn1SB1GBC6KeoyTtymDcYVVK7wTgnCoOP2QgWlvrRXorOyl5DkSSUF53RoXcWoen8I
DJE31b6IhDI0opXBhaBLLGuKjrEvdctUWE41uGVuU9CrSR+7R4l4rPttMcQrhp4JFCeq
RrKQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1766045330; x=1766650130;
h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:x-gm-gg
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=XjZA0WnKd4nQQCapedfrfWMBL+HSAygheJiG6Uqe0ZU=;
b=pKbk22AqYbd7+cgNOmZQYYShtRcNnw5zq8Urr3JNWD8Jahwcbxwa4XNhNXnWfqANGw
aDe7DmRYb1TT6VlaH+GSLRXIcTzJq81fKKnxW3aFj4JsorVqFiwzNPgseekAQ2TvftsQ
jWo3NhbHnjfO5P5HpGX2O+npSJ+Z1/SRoSbc8gR3xPupVPp1bIwYISAfQZK87S6M32MP
CFOnmkiAnd3Ffrod/bg6lULy0xXt+OChAEivRCW80cPBgCqyQkWmXAKQRmfwpfxFnhNW
/HwrmrRm6UwEnOU6CA1o4bgkwGhupw7hvzH8pzPYP4Z5pntdzOpKiYJFJmi1eNb507IZ
V/vw==
X-Forwarded-Encrypted: i=1;
AJvYcCUKU1Rmb2RO90aLCb9owimS12LIukchQY3NoOvGjyh+UGQLxgVo+KfMCS4x9o24Cu/dzIz6ZA==@debbugs.gnu.org
X-Gm-Message-State: AOJu0Yw1AeyT8Bf5HHz56l1RfvxJK/80jFkP5E9tfoMzAJDvmqQYea5i
27X4m2+AgPoCoNL8JnVT2sBeXGw1WcsFR5nOFSEu7trRH7SAzs0v2zo0
X-Gm-Gg: AY/fxX6/lB9mxPkHIZrTaKU2xk96y5xSEE0C71BiIv1GmJus/f54lmZfk6wOdcx4AGy
Y0DrLX7sA3EWg1uXwLbO4NnnENfzKc0TiGWyRtJrcEOoVw3OkJlCJLihrulwupUIz7miS6xaLT5
FdarWsrxlsBQ4VzQ1OzjLB68z79Pk1Y5EymMc2r7Yzf80IBZJ15WQvvzabxZt/p7af3uzuEPSH9
QZvk8rnRB5O3m6/i+0rVjU7SGiquSBo1F49bu+oM/56U2zDu1mX9P6YjU4LpAcCrZLeOWosJTp7
w1RzjsyqAUs36iVGQwKjA16CPWdW4FedIZTEUymJKlTb59lNLVuOIoTYCP7SPtuoUda00LzT72A
6whPhKcff0VTOgMWEZDF2r3Xek8rwdufRPuBKuCauAmlZnMeFMfElZJ7chFwGkHTGg/89+jIkfm
fY7EiNYNqQ6+1q6RvL
X-Google-Smtp-Source: AGHT+IFaJqETUl4IgxYilnROSaW4S4sVH9pL0k3OZJ63lmi28MlWCJp/0PlGHX8vkkqQPmMVNMDCXQ==
X-Received: by 2002:a05:6402:4406:b0:643:1659:759a with SMTP id
4fb4d7f45d1cf-6499b1e9239mr19647181a12.25.1766045329735;
Thu, 18 Dec 2025 00:08:49 -0800 (PST)
Received: from localhost ([194.143.226.100])
by smtp.gmail.com with UTF8SMTPSA id
4fb4d7f45d1cf-64b5888d63bsm1777374a12.27.2025.12.18.00.08.49
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Thu, 18 Dec 2025 00:08:49 -0800 (PST)
From: "Paul D. Nelson" <ultrono@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <86tsxo2ug7.fsf@HIDDEN> (message from Eli Zaretskii on Thu, 18
Dec 2025 08:08:24 +0200)
Date: Thu, 18 Dec 2025 09:08:48 +0100
Message-ID: <uxsg7t7buk6wkv.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 79985
Cc: krisbalintona@HIDDEN, 79985 <at> debbugs.gnu.org, monnier@HIDDEN,
spwhitton@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
Eli Zaretskii <eliz@HIDDEN> writes:
>> From: Stefan Monnier <monnier@HIDDEN>
>> Cc: Sean Whitton <spwhitton@HIDDEN>, eliz@HIDDEN,
>> 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN
>> Date: Wed, 17 Dec 2025 15:55:12 -0500
>>
>> > +\\`C-u' Toggle abbrev saving for this correction.
>>
>> I think the suggestion to use `C-u` presumed you were going to make it
>> work like some kind of prefix command.
>
> Yes, that was the idea. I think commands 'r', 'a', and 'i', and also
> the characters typed to select a correction, should be affected by C-u
> in this manner. Or at least that was the idea I had when I suggested
> to use C-u.
Currently, C-u affects 'r' and the characters that select a correction,
although not 'a' and 'i' -- it wasn't clear to me what to do with those
since they don't apply a correction, but I'd be happy to update the
patch if I missed something.
Re. Stefan's comment on "prefix vs. toggle", I see two user-facing
issues: what repeated C-u should mean, and which key to use. I see the
following options:
(1) Keep it like it is: C-u toggles what the next correction command
('r' or a selection character) does.
(2) Make C-u idempotent, i.e., pressing C-u once changes the behavior of
the next command, and repeated C-u has no further effect (so C-u C-u
behaves the same as C-u).
(3) Keep the command like it is, but move the bind away from C-u to
reflect that the semantics are closer to "toggle" than "prefix".
Any preferences?
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 18 Dec 2025 06:09:03 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 18 01:09:03 2025 Received: from localhost ([127.0.0.1]:48816 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vW7CA-0000t6-Cc for submit <at> debbugs.gnu.org; Thu, 18 Dec 2025 01:09:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:57856) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vW7C8-0000sW-Bh for 79985 <at> debbugs.gnu.org; Thu, 18 Dec 2025 01:09:00 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vW7C2-0000Ol-ID; Thu, 18 Dec 2025 01:08:54 -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=mCj+vzWBFqLYLHu3y6obOaKAaQBA0kDtbT9uHHu5m+Q=; b=eLJ5i9zug640 4GJDr/HnkQygAj6vffbxO8GRQ6jTDf3hJ3DM3Nseq4CS+54EE9nSMs12VPfTMia2CCdzcNis0S52e YQA1/iWRHi3uGR3K+bVcd2yNEZQO1yn5lBfv4mdwCHD/ufHgN3AndMtVIogCkH+BTMsfsokbjJz6k JDV33Wb1W0sC2CAWgcvdWQsqg4lDsCTeMpT+IsVSiwDwsa2NrEykoFqxM+Tald3MJc/0Uk7Dw4Z3D gQJWs7uT6chL3EalcSWbkhEJ8dtsbud1zlFmYn6gThcbU5y+DAGwmzuuvBnmV0XuunJLqFIro1nG9 tKFtSs9se+Dc6Tw8wM214Q==; Date: Thu, 18 Dec 2025 08:08:24 +0200 Message-Id: <86tsxo2ug7.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Stefan Monnier <monnier@HIDDEN> In-Reply-To: <jwvjyyklthm.fsf-monnier+emacs@HIDDEN> (message from Stefan Monnier on Wed, 17 Dec 2025 15:55:12 -0500) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7tbjjw7ujk.fsf@HIDDEN> <jwvjyyklthm.fsf-monnier+emacs@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, spwhitton@HIDDEN, krisbalintona@HIDDEN, ultrono@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Stefan Monnier <monnier@HIDDEN> > Cc: Sean Whitton <spwhitton@HIDDEN>, eliz@HIDDEN, > 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN > Date: Wed, 17 Dec 2025 15:55:12 -0500 > > > +\\`C-u' Toggle abbrev saving for this correction. > > I think the suggestion to use `C-u` presumed you were going to make it > work like some kind of prefix command. Yes, that was the idea. I think commands 'r', 'a', and 'i', and also the characters typed to select a correction, should be affected by C-u in this manner. Or at least that was the idea I had when I suggested to use C-u.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 18 Dec 2025 06:02:19 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 18 01:02:18 2025 Received: from localhost ([127.0.0.1]:48722 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vW75e-0000Ii-IK for submit <at> debbugs.gnu.org; Thu, 18 Dec 2025 01:02:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:59474) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vW75b-0000IP-HO for 79985 <at> debbugs.gnu.org; Thu, 18 Dec 2025 01:02: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 1vW75W-0003kZ-0f; Thu, 18 Dec 2025 01:02:10 -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=mSxci2KmrdUSXLytNpoCZjEDghRE/0XnQzN+WQHK2mw=; b=hUqJgVMRFbuv NcrSzrpCNbYi1+AsTUxYtNF60rAto05cKdLjBrgzm7N2zceJpknD624yH898btQwzer7No3fFmFV5 JWYe2lWYH+e0njQqDqM+Nj/uCAHiH0kgaKJlz9gXr/VsgIyvOWCy6kqb5xTclZznwVhdiaOZSm8N+ v5SwpRkDgLzZvmW8AQUxwvbbtLVcJ/MRpQ9r54dREfiNOxtJcp7cyN5aYt1atezTyMrevIse0EQ59 cRpyp1zZPWytE7m8riyBwvB/R9cj3s+A5q06ZCzJNzK6qRY+GWhaSUTR4R/b4fW+i3kQisu2n++aW 5qrDy4vOOEbzDWMpqxE7lg==; Date: Thu, 18 Dec 2025 08:02:02 +0200 Message-Id: <86wm2k2uqt.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "Paul D. Nelson" <ultrono@HIDDEN> In-Reply-To: <uxsg7tbjjw7ujk.fsf@HIDDEN> (ultrono@HIDDEN) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7tbjjw7ujk.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, monnier@HIDDEN, spwhitton@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "Paul D. Nelson" <ultrono@HIDDEN> > Cc: eliz@HIDDEN, 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, > monnier@HIDDEN > Date: Wed, 17 Dec 2025 20:55:11 +0100 > > Hi Sean, thanks for the feedback, which I've incorporated in the > attached patch. Any other feedback would be welcome. Thanks. One possible enhancement/improvement might be to allow the new user option to have the value 'local', which will then add the abbrev to the mode-specific abbrevs, as opposed to global abbrevs. But this could be a separate patch, of course.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 17 Dec 2025 20:55:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Dec 17 15:55:24 2025
Received: from localhost ([127.0.0.1]:46486 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vVyYN-0004j4-SB
for submit <at> debbugs.gnu.org; Wed, 17 Dec 2025 15:55:24 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:13752)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
id 1vVyYL-0004iZ-3I
for 79985 <at> debbugs.gnu.org; Wed, 17 Dec 2025 15:55:21 -0500
Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 7C77B81C24;
Wed, 17 Dec 2025 15:55:15 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
s=mail; t=1766004914;
bh=KS+tjDdZDRc270HJA+CS/U5TikRztddJl5sA/0TNMFI=;
h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
b=nNWUvTOVpV/7rYQNEnF6SzqDfJp18OEi9xFZJ9aUKzNXvtf0Pdz91xbOeS8ZgEbxJ
bgxYv0RZwaw/MsUbRJ1YDrcZYXrNwr/M+EtOi24+mM0UCEBfj2tkQYeY+ikmlgeXm1
musXGjEi4E2uKs+olPJP5OUT93723QrsGOJZxj99T4lXd6xV+BzuQzIlPtyYbVdBJG
OnNCP6UkCQJWC52T9Q0UsdsGjKvnIM4I/HHc+IzankHmMSzWxu7I0ZqGpkslg9kcQa
yXK2vhrFY5XrCPTSyjePY9yELYu98srR9+Kev80Pp8bShlmP8jHWnQJoaD+cHe0RZP
NQUb3aV91ssfQ==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id A2B5A80B4E;
Wed, 17 Dec 2025 15:55:14 -0500 (EST)
Received: from pastel (104-195-240-239.cpe.teksavvy.com [104.195.240.239])
by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 6772E12047E;
Wed, 17 Dec 2025 15:55:14 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: "Paul D. Nelson" <ultrono@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <uxsg7tbjjw7ujk.fsf@HIDDEN>
Message-ID: <jwvjyyklthm.fsf-monnier+emacs@HIDDEN>
References: <uxsg7tbjjw7ujk.fsf@HIDDEN>
Date: Wed, 17 Dec 2025 15:55:12 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results: 0
ALL_TRUSTED -1 Passed through trusted hosts only via SMTP
AWL -0.127 Adjusted score from AWL reputation of From: address
BAYES_00 -1.9 Bayes spam probability is 0 to 1%
DKIM_SIGNED 0.1 Message has a DKIM or DK signature,
not necessarily valid
DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
domain
DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
domain
X-SPAM-LEVEL:
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79985
Cc: eliz@HIDDEN, 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN,
Sean Whitton <spwhitton@HIDDEN>
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 (---)
> +\\`C-u' Toggle abbrev saving for this correction.
I think the suggestion to use `C-u` presumed you were going to make it
work like some kind of prefix command. If it works like a toggle, `C-u`
becomes a weird choice, IMO.
Stefan
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 17 Dec 2025 19:55:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Dec 17 14:55:25 2025
Received: from localhost ([127.0.0.1]:46083 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vVxcK-0001II-5v
for submit <at> debbugs.gnu.org; Wed, 17 Dec 2025 14:55:24 -0500
Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]:42420)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vVxcH-0001Hv-3c
for 79985 <at> debbugs.gnu.org; Wed, 17 Dec 2025 14:55:22 -0500
Received: by mail-ed1-x531.google.com with SMTP id
4fb4d7f45d1cf-63c489f1e6cso2138091a12.1
for <79985 <at> debbugs.gnu.org>; Wed, 17 Dec 2025 11:55:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1766001314; x=1766606114; darn=debbugs.gnu.org;
h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to
:cc:subject:date:message-id:reply-to;
bh=+XGJMLWazmaqu6ZvPkEZ9b+hQXV2fnNXzLiN3avx4kQ=;
b=KOMu4eqsSGNp9YUl1iJh4fmNqVQ+ztAWQ3dQF3Gpqc+Yf9fwLK8a+h6Zx+TtStz5OL
sqSMpTObB7bJdKtHEFhY4I7uMr8KNlW7eUDolQ3KonOHmaY5K7v8phEjm9jqjFYFWiuN
Uvi4ZvVT6fXd3xYIzl/lQ4S73dI7X5u+vHiUhPtqyvQk7sxT1OV8TUD1vBGfEQDfWKzK
3GLIle1vY4BJIp/vUjoV8mk7/u3DqceadQDlqgCVgg8ZpOY74pkzDH/XvecRZQuGOlXd
kxSDJG2VJnGT8oy5Go4iPJU7d+qZ5JF3Kos3mU82Ft/ShVaBgY3Bn0oPKEp6qjvE/yRO
hLLw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1766001314; x=1766606114;
h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:x-gm-gg
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=+XGJMLWazmaqu6ZvPkEZ9b+hQXV2fnNXzLiN3avx4kQ=;
b=m/SzdfaG9ioS/7S41ic5eijBGHubQ6Fy8ZFmlv0yijhcos/5dLwql3HM/b4/jQTeS8
GrO6dMhOoazTe36RCG7wHVFvVfwtZzznIy/DuzemU0w6+hMN3WOHUeaJfhqbtjYT0sga
cTAhvAG5yTuPw79GUoQQtIlQchw+ebee+6utzltcowKEwCysKSBOOLezAcRWj0TQtT5G
okSavBTV+FM6cJahw9BSp4ybk/orXqiSWCVmNoxeWRZZ1EJPMxMboV1aDH9ekYliBm6o
mjhjExP+uftuD9A3opYN6PdtSNwcZrZjNLB3KvJHa25YuLC7MpjGhyhPYmJ5aWVFz94B
jTsg==
X-Forwarded-Encrypted: i=1;
AJvYcCVS3UmrFhSBkV91ab7OQ+g51W44wy8bfPZvkLmUfmLPQQV1iPIYNcmSAPTv3By4SwCN1uL2xA==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YzJq+y/rRy3al4fIwhpj8qJ/BWtUBEFboFx9bIvcLO8flC9u4mL
tj0lfe9pf1PxRuzY0sEyloS4ZAM52Izy2NZACuvqZzl06SktNUwAH8h2
X-Gm-Gg: AY/fxX5Gxo1+eLK9pE5g0IqLZk9sWrr00mJYCfPZu7Eu5OnT3L4dQIPg6+KeVeocSTm
Pa54Hw7BWA1PhplgrycUTUI+V0AyMaXnjBH6mu6PFwO8xBlWUm3W9LV2Z/qEsBXM69ntk8/9CPo
50hTqerXN/vQF5ElnMm+x10biks8yTeS6arM36beCvFA/dtIfTgpMhbsNpXZ8IZ6u80gb4unaLy
NVaefIy4llILR+/z1tGpzw39mP/XqAmrCIvmC4ZQVhFxfOmJ4u39r8lPrQYZvUjw285PskplT7k
si3T/2l7K8cyxtst6GXfhdtVJkviFPCVRLYgxqyxvUU5+3bjravUchih3+Yhbn3+UhyPZR7URPH
0SAysiv7TmRywFUr6SbD8quFXBb5AV2lJzQ5cYV58cOefuw/A3fea27ort2+SqH6umUL0qqaZ3Q
MPtztj1OqTTI//CTOtlXijxB9cTRI=
X-Google-Smtp-Source: AGHT+IGvhMmjPWe5xqha+dQ3fedZqKWEcHSp8/Hn7iO8S5O4FgxhJj1dttXFQcm0LvjNVdD3bYk0pA==
X-Received: by 2002:aa7:c583:0:b0:62f:9091:ff30 with SMTP id
4fb4d7f45d1cf-64b58494a1bmr440527a12.3.1766001314264;
Wed, 17 Dec 2025 11:55:14 -0800 (PST)
Received: from localhost ([194.143.226.100])
by smtp.gmail.com with UTF8SMTPSA id
4fb4d7f45d1cf-64b585d9394sm373931a12.13.2025.12.17.11.55.12
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Wed, 17 Dec 2025 11:55:13 -0800 (PST)
From: "Paul D. Nelson" <ultrono@HIDDEN>
To: Sean Whitton <spwhitton@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <87v7i6tz0z.fsf@HIDDEN> (message from Sean
Whitton on Tue, 16 Dec 2025 12:02:52 +0000)
Date: Wed, 17 Dec 2025 20:55:11 +0100
Message-ID: <uxsg7tbjjw7ujk.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79985
Cc: eliz@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN,
79985 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
--=-=-=
Content-Type: text/plain
Hi Sean, thanks for the feedback, which I've incorporated in the
attached patch. Any other feedback would be welcome.
--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
filename=0001-Allow-Ispell-to-save-corrections-as-abbrevs.patch
From 7e5cef783773241941cff06b955cd6b296353059 Mon Sep 17 00:00:00 2001
From: Paul Nelson <ultrono@HIDDEN>
Date: Mon, 15 Dec 2025 17:25:47 +0100
Subject: [PATCH] Allow Ispell to save corrections as abbrevs
* lisp/textmodes/ispell.el (ispell-save-corrections-as-abbrevs):
New user option.
(ispell--abbrev-saving-allowed)
(ispell--save-correction-as-abbrev): New variables.
(ispell--maybe-save-correction-abbrev): New function.
(ispell-word, ispell-process-line): Bind the above variables and
use the above function to save corrections as abbrevs when
appropriate.
(ispell-command-loop): Add C-u as command character to toggle
abbrev saving for current correction.
(ispell-help): Document C-u binding.
* doc/emacs/fixit.texi (Spelling): Document new feature.
(bug#79985)
---
doc/emacs/fixit.texi | 13 ++++
etc/NEWS | 7 +++
lisp/textmodes/ispell.el | 133 +++++++++++++++++++++++++++------------
3 files changed, 114 insertions(+), 39 deletions(-)
diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi
index f240057aa69..ee625b167ae 100644
--- a/doc/emacs/fixit.texi
+++ b/doc/emacs/fixit.texi
@@ -343,6 +343,19 @@ Spelling
Then you must type a single-character response. Here are the valid
responses:
+@vindex ispell-save-corrections-as-abbrevs
+ You can have Ispell remember your spelling corrections so that they
+are applied automatically when Abbrev mode is enabled (@pxref{Abbrevs}).
+The user option @code{ispell-save-corrections-as-abbrevs} determines
+whether Ispell does so by default. With that option enabled, each time
+you correct a misspelled word, Emacs saves the correction as a global
+abbrev expansion. Then, whenever you type the misspelling and then a
+word-separator (@key{SPC}, comma, etc.) in a buffer with Abbrev mode
+enabled, Emacs will expand the misspelling to its correction.
+Regardless of this option's value, you can toggle abbrev saving for a
+single correction by typing @kbd{C-u} in the command loop before
+accepting the correction.
+
@table @kbd
@item @var{digit}
Replace the word, just this time, with one of the displayed
diff --git a/etc/NEWS b/etc/NEWS
index 27204393f7a..7a5a0a4afa7 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1974,6 +1974,13 @@ option 'doc-view-djvused-program'.
The default value is now 30 seconds, as the old value was too short to
allow reading the help text.
++++
+*** Ispell can now save spelling corrections as abbrevs.
+In the Ispell command loop, 'C-u' now toggles whether the next
+correction will be saved as a global abbrev expansion for its
+misspelling. The new user option 'ispell-save-corrections-as-abbrevs'
+determines whether abbrev saving is enabled by default.
+
** Flyspell
---
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 6476a169613..4081e169b15 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -164,6 +164,15 @@ ispell-query-replace-choices
Uses `query-replace' (\\[query-replace]) for corrections."
:type 'boolean)
+(defcustom ispell-save-corrections-as-abbrevs nil
+ "Whether to save spelling corrections as abbrevs by default.
+Determines the default behavior of Ispell after correcting a misspelled
+word. Non-nil means to save a global abbrev that expands the misspelled
+word to its correction. This behavior may be toggled on a per-word
+basis by typing \\`C-u' in the Ispell command loop."
+ :type 'boolean
+ :version "31.1")
+
(defcustom ispell-skip-tib nil
"Does not spell check `tib' bibliography references when non-nil.
Skips any text between strings matching regular expressions
@@ -1821,6 +1830,26 @@ ispell-send-replacement
(and (or ispell-really-aspell ispell-really-enchant)
(ispell-send-string (concat "$$ra " misspelled "," replacement "\n"))))
+(defvar ispell--abbrev-saving-allowed nil
+ "Non-nil means the current `ispell-command-loop' supports abbrev saving.
+Dynamically bound around calls to `ispell-command-loop' for which it
+makes sense to allow abbrev saving. This includes calls from functions
+like `ispell-word' and `ispell-region', but excludes calls from
+functions like `ispell-complete-word'.")
+
+(defvar ispell--save-correction-as-abbrev nil
+ "Non-nil means save the current correction as an abbrev.
+Dynamically bound to the value of `ispell-save-corrections-as-abbrevs'
+around calls to `ispell-command-loop'. The command loop can toggle
+this, via `C-u', to control abbrev saving for the current correction.")
+
+(defun ispell--maybe-save-correction-abbrev (misspelled replacement)
+ "Save MISSPELLED -> REPLACEMENT as an abbrev, if enabled.
+This is controlled by the variable `ispell--save-correction-as-abbrev'."
+ (require 'abbrev)
+ (when ispell--save-correction-as-abbrev
+ (define-abbrev global-abbrev-table misspelled replacement)
+ (message "\"%s\" now expands to \"%s\" globally" misspelled replacement)))
(defun ispell-send-string (string)
"Send the string STRING to the Ispell process."
@@ -1971,38 +2000,42 @@ ispell-word
(message "%s is incorrect"
(funcall ispell-format-word-function word))))
(t ; prompt for correct word.
- (save-window-excursion
- (setq replace (ispell-command-loop
- (car (cdr (cdr poss)))
- (car (cdr (cdr (cdr poss))))
- (car poss) start end)))
- (cond ((equal 0 replace)
- (ispell-add-per-file-word-list (car poss)))
- (replace
- (setq new-word (if (atom replace) replace (car replace))
- cursor-location (+ (- (length word) (- end start))
- cursor-location))
- (if (not (equal new-word (car poss)))
- (progn
- (goto-char start)
- ;; Insert first and then delete,
- ;; to avoid collapsing markers before and after
- ;; into a single place.
- (insert new-word)
- (delete-region (point) end)
- ;; It is meaningless to preserve the cursor position
- ;; inside a word that has changed.
- (setq cursor-location (point))
- (setq end (point))))
- (if (not (atom replace)) ;recheck spelling of replacement
- (progn
- (if (car (cdr replace)) ; query replace requested
- (save-window-excursion
- (query-replace word new-word t)))
- (goto-char start)
- ;; single word could be split into multiple words
- (setq ispell-quit (not (ispell-region start end)))
- ))))
+ (let ((ispell--abbrev-saving-allowed t)
+ (ispell--save-correction-as-abbrev
+ ispell-save-corrections-as-abbrevs))
+ (save-window-excursion
+ (setq replace (ispell-command-loop
+ (car (cdr (cdr poss)))
+ (car (cdr (cdr (cdr poss))))
+ (car poss) start end)))
+ (cond ((equal 0 replace)
+ (ispell-add-per-file-word-list (car poss)))
+ (replace
+ (setq new-word (if (atom replace) replace (car replace))
+ cursor-location (+ (- (length word) (- end start))
+ cursor-location))
+ (ispell--maybe-save-correction-abbrev (car poss) new-word)
+ (if (not (equal new-word (car poss)))
+ (progn
+ (goto-char start)
+ ;; Insert first and then delete,
+ ;; to avoid collapsing markers before and after
+ ;; into a single place.
+ (insert new-word)
+ (delete-region (point) end)
+ ;; It is meaningless to preserve the cursor position
+ ;; inside a word that has changed.
+ (setq cursor-location (point))
+ (setq end (point))))
+ (if (not (atom replace)) ;recheck spelling of replacement
+ (progn
+ (if (car (cdr replace)) ; query replace requested
+ (save-window-excursion
+ (query-replace word new-word t)))
+ (goto-char start)
+ ;; single word could be split into multiple words
+ (setq ispell-quit (not (ispell-region start end)))
+ )))))
;; keep if rechecking word and we keep choices win.
(if (get-buffer ispell-choices-buffer)
(kill-buffer ispell-choices-buffer))))
@@ -2167,7 +2200,10 @@ ispell-command-loop
(choices miss)
(window-min-height (min window-min-height
ispell-choices-win-default-height))
- (command-characters '( ? ?i ?a ?A ?r ?R ?? ?x ?X ?q ?l ?u ?m ))
+ (command-characters
+ (append '( ? ?i ?a ?A ?r ?R ?? ?x ?X ?q ?l ?u ?m )
+ (and ispell--abbrev-saving-allowed
+ '(?\C-u))))
(skipped 0)
char num result textwin)
@@ -2235,8 +2271,15 @@ ispell-command-loop
(progn
(undo-boundary)
(let (message-log-max)
- (message (concat "C-h or ? for more options; SPC to leave "
- "unchanged, Character to replace word")))
+ (message
+ (concat
+ "C-h or ? for more options; SPC to leave "
+ "unchanged, Character to replace word"
+ (and ispell--abbrev-saving-allowed
+ (format " [abbrev saving %s]"
+ (if ispell--save-correction-as-abbrev
+ "on"
+ "off"))))))
(let ((inhibit-quit t)
(input-valid t))
(setq char nil skipped 0)
@@ -2419,6 +2462,10 @@ ispell-command-loop
((= char ?\C-z)
(funcall (key-binding "\C-z"))
t)
+ ((and (= char ?\C-u) ispell--abbrev-saving-allowed)
+ (setq ispell--save-correction-as-abbrev
+ (not ispell--save-correction-as-abbrev))
+ t)
(t (ding) t))))))
result)
;; protected
@@ -2463,6 +2510,7 @@ ispell-help
\\`m' Place typed-in value in personal dictionary, then recheck current word.
\\`C-l' Redraw screen.
\\`C-r' Recursive edit.
+\\`C-u' Toggle abbrev saving for this correction.
\\`C-z' Suspend Emacs or iconify frame."
(if (equal ispell-help-in-bufferp 'electric)
@@ -2497,6 +2545,7 @@ ispell-help
\\`m' Place typed-in value in personal dictionary, then recheck current word.
\\`C-l' Redraw screen.
\\`C-r' Recursive edit.
+\\`C-u' Toggle abbrev saving for this correction.
\\`C-z' Suspend Emacs or iconify frame."))
nil)))
@@ -2506,12 +2555,14 @@ ispell-help
(help-2 (concat "[l]ook a word up in alternate dictionary; "
"e[x/X]it; [q]uit session"))
(help-3 (concat "[u]ncapitalized insert into dict. "
- "Type `x C-h f ispell-help' for more help")))
+ (and ispell--abbrev-saving-allowed
+ "C-u toggles abbrev saving.")))
+ (help-4 (concat "Type `x C-h f ispell-help' for more help")))
(save-window-excursion
(if ispell-help-in-bufferp
(let ((buffer (get-buffer-create "*Ispell Help*")))
(with-current-buffer buffer
- (insert (concat help-1 "\n" help-2 "\n" help-3)))
+ (insert (concat help-1 "\n" help-2 "\n" help-3 "\n" help-4)))
(ispell-display-buffer buffer)
(sit-for (max 0.5 ispell-help-timeout))
(kill-buffer "*Ispell Help*"))
@@ -2522,7 +2573,7 @@ ispell-help
(message nil)
;;(set-minibuffer-window (selected-window))
(enlarge-window 2)
- (insert (concat help-1 "\n" help-2 "\n" help-3))
+ (insert (concat help-1 "\n" help-2 "\n" help-3 "\n" help-4))
(sit-for (max 0.5 ispell-help-timeout)))
(erase-buffer)))))))
@@ -3505,7 +3556,9 @@ ispell-process-line
(word-len (length (car poss)))
(line-end (copy-marker ispell-end))
(line-start (copy-marker ispell-start))
- recheck-region replace)
+ recheck-region replace
+ (ispell--abbrev-saving-allowed t)
+ (ispell--save-correction-as-abbrev ispell-save-corrections-as-abbrevs))
(goto-char word-start)
;; Adjust the horizontal scroll & point
(ispell-horiz-scroll)
@@ -3573,11 +3626,13 @@ ispell-process-line
(progn
(insert replace) ; Insert dictionary word.
(ispell-send-replacement (car poss) replace)
+ (ispell--maybe-save-correction-abbrev (car poss) replace)
(setq accept-list (cons replace accept-list)))
(let ((replace-word (car replace)))
;; Recheck hand entered replacement word.
(insert replace-word)
(ispell-send-replacement (car poss) replace-word)
+ (ispell--maybe-save-correction-abbrev (car poss) replace-word)
(if (car (cdr replace))
(save-window-excursion
(delete-other-windows) ; to correctly show help.
--
2.50.1 (Apple Git-155)
--=-=-=--
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 16 Dec 2025 23:48:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 16 18:48:56 2025
Received: from localhost ([127.0.0.1]:33264 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vVemm-0006I4-4G
for submit <at> debbugs.gnu.org; Tue, 16 Dec 2025 18:48:56 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:52474)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
id 1vVemk-0006Hi-4b
for 79985 <at> debbugs.gnu.org; Tue, 16 Dec 2025 18:48:54 -0500
Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id BAA2B804E6;
Tue, 16 Dec 2025 18:48:48 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
s=mail; t=1765928927;
bh=Xv1SPNRpNEGYg78fNLqny13xzZc6aW3XMh1XknqIw0U=;
h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
b=O9DGGtTKAqZPUSb6yGGVLIYbr5cpOab0DtDpao3Qpt1s2MicYUIuTevakx9h3p3Rr
biS9ArPmAi8VhijRoZJUeetIzl3cq9OUf0SpuGRAqAodb39are225uZQPd1bDzZVyk
+3bQY93RNvol5EK+7Zpq+b6gxq7THeA/9zrjku1goWoYVfqh7vZ7ImCPK+aZNQYD8P
finj5twsYaii2XeMCOFtz9Dafon4iQ0zxbkhXdOM+mEQbLVySWwl13RycbK678SkHT
rq2iBvF4D+VuoVRTH0o9Ot4kzBvDVZhGPL6yt0Pu6kO3FxEeGVSNn2BpuQNE9U/APe
SJB5dReHu+erA==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 53EAA80891;
Tue, 16 Dec 2025 18:48:47 -0500 (EST)
Received: from asado (modemcable209.196-177-173.mc.videotron.ca
[173.177.196.209])
by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 30DCF120319;
Tue, 16 Dec 2025 18:48:47 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: "Paul D. Nelson" <ultrono@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <jwvy0n8skpy.fsf-monnier+emacs@HIDDEN>
Message-ID: <jwvtsxqkmzd.fsf-monnier+emacs@HIDDEN>
References: <uxsg7ta4zq5978.fsf@HIDDEN>
<jwvy0n8skpy.fsf-monnier+emacs@HIDDEN>
Date: Tue, 16 Dec 2025 18:48:46 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results: 0
ALL_TRUSTED -1 Passed through trusted hosts only via SMTP
BAYES_00 -1.9 Bayes spam probability is 0 to 1%
DKIM_SIGNED 0.1 Message has a DKIM or DK signature,
not necessarily valid
DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
domain
DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
domain
X-SPAM-LEVEL:
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79985
Cc: 79985 <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 (---)
>> 3. if not, then indeed we need to proceed very carefully to ensure the
>> hook mechanism is flexible enough, and right now it's not clear that
>> this mechanism fits the bill, without a lot more documentation.
>
> Indeed. A technique for that is "dogfood". I.e. try and move most of
> the code currently in the big `cond` into your new
> `ispell-command-loop-extra-bindings`. If you can move "all" of its code,
> then it's a strong argument that your mechanism is probably
> flexible enough.
BTW, rather than an alist, `ispell-command-loop-extra-bindings` could be
a *keymap*. And rather than manually do `read-key` plus lookup
the result in that var, we could activate that keymap either via
a recursive edit, a minor mode (like isearch),
a `set-transient-map`, ...
Stefan
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 16 Dec 2025 12:03:03 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Dec 16 07:03:03 2025 Received: from localhost ([127.0.0.1]:53633 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vVTlf-0006FY-9t for submit <at> debbugs.gnu.org; Tue, 16 Dec 2025 07:03:03 -0500 Received: from sendmail.purelymail.com ([34.202.193.197]:46590) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <spwhitton@HIDDEN>) id 1vVTlc-0006Et-2p for 79985 <at> debbugs.gnu.org; Tue, 16 Dec 2025 07:03:01 -0500 DKIM-Signature: a=rsa-sha256; b=HPd/NaKeYV5xqq5qwsrCFwDcX3Zcon82bHk/KlxHlBJwPJZtWvCkKKV20deGGJUwke6V1IjIVjKYGzSvrf/oVTBdDIeJHdsiGp8DfZIRVWipU/ytPUC52QjjrxdkmFA5LMbebamivCfdqAs9T4oOTTvEpfUDL4aq+kh/r0xUbbTIbH27XlmB1fTKw/s0wh4BVWlswWte4AIx/IO9MoPgO0SRxk4tXy2AiDbmxteeHyEQcgSSo90tJXtuodOovjerWM9nvFL62R44vdubCmW4OIRSTnGF5GiKO3FPeINLIKKn1IpETq6klct9BBJ2L10vyyaldMo+HzVB5yAVQcfTGQ==; s=purelymail1; d=spwhitton.name; v=1; bh=OBg3HUQqAPqZ6KRAkvvbImr/NLGKnkPlbgZrUTvk9zA=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=M7zdf5vyHHZruK/sdS32lifRSnB6BB2MNnyjDJHenz7EOt87iUnwzXB0TZW49y7X/5hJxlMA903IEwjdxuQ98uFxdipcVslJ0O0cuCgcrwbHbf4nRwzKAvstvM/+nh4EcMbZYXcgfhYBuiakGGdRKwVSaAxa/GljHVRf9+jZBJwfFduqoi6T/+xuA6dWUmd7xZpRSDMrDPuhaeHeoRmLQI9M180R+Ok/fMVqdk/H/NyJxX9aXITsvF3XZTh7oHHqNTUmrdPfG3H3KG+a8paS5CKcU9ysJCnXZA4GumjeV5uKrgco5rTKYohPGNe3tbN1c++fYI68LMwVkHquGw3Frw==; s=purelymail1; d=purelymail.com; v=1; bh=OBg3HUQqAPqZ6KRAkvvbImr/NLGKnkPlbgZrUTvk9zA=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79985 <at> debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id -921690781; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Tue, 16 Dec 2025 12:02:54 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 552BD94044D; Tue, 16 Dec 2025 12:02:52 +0000 (GMT) From: Sean Whitton <spwhitton@HIDDEN> To: "Paul D. Nelson" <ultrono@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <uxsg7tjyynhec4.fsf@HIDDEN> References: <uxsg7ta4zq5978.fsf@HIDDEN> <uxsg7tjyynhec4.fsf@HIDDEN> Date: Tue, 16 Dec 2025 12:02:52 +0000 Message-ID: <87v7i6tz0z.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79985 Cc: eliz@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN, 79985 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hello, On Mon 15 Dec 2025 at 05:58pm +01, Paul D. Nelson wrote: > Thanks, all, for the feedback. Please see attached. > > From 8006ec10176ce95dd5c9032ee256d67d5e4d4613 Mon Sep 17 00:00:00 2001 > From: Paul Nelson <ultrono@HIDDEN> > Date: Mon, 15 Dec 2025 17:25:47 +0100 > Subject: [PATCH] Allow Ispell to save corrections as abbrevs > > * lisp/textmodes/ispell.el (ispell-save-corrections-as-abbrevs): > New user option. > (ispell--abbrev-saving-allowed) > (ispell--save-correction-as-abbrev): New variables. > (ispell--maybe-save-correction-abbrev): New function. > (ispell-word, ispell-process-line): Bind the above variables and > use the above function to save corrections as abbrevs when > appropriate. > (ispell-command-loop): Add C-u as command character to toggle > abbrev saving for current correction. > (ispell-help): Document C-u binding. > > * doc/emacs/fixit.texi (Spelling): Document new feature. Thanks. Some minor comments from me: - it would be worth describing the effects of customizing the new user option in the manual; currently you can only learn about how it works by reading its docstring - when returning values, prefer 'and' to 'when' - we usually talk about "typing C-u" instead of "pressing C-u" because for most people it involves pressing more than one button. I think that it would be best if one of the other people who has chimed in in this thread who uses Ispell heavily could review the patch before we install it, to make sure it has all the functionality they think is useful. -- Sean Whitton
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 15 Dec 2025 16:58:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Dec 15 11:58:36 2025
Received: from localhost ([127.0.0.1]:42012 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vVBu7-0000nK-JN
for submit <at> debbugs.gnu.org; Mon, 15 Dec 2025 11:58:36 -0500
Received: from mail-ej1-x631.google.com ([2a00:1450:4864:20::631]:44293)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vVBu1-0000ms-T8
for 79985 <at> debbugs.gnu.org; Mon, 15 Dec 2025 11:58:34 -0500
Received: by mail-ej1-x631.google.com with SMTP id
a640c23a62f3a-b736ffc531fso753621766b.1
for <79985 <at> debbugs.gnu.org>; Mon, 15 Dec 2025 08:58:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1765817902; x=1766422702; darn=debbugs.gnu.org;
h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to
:cc:subject:date:message-id:reply-to;
bh=+o9iBj0heTez1NGHFB3KB7KTTA/rJCMs4R/noKaGzFI=;
b=CKK10CmaXGmQ3XAojRanb62HXbAb2v/qivexni8TaWuYehaVEq3WAB0Ltofu1hnxVU
GDPxtfop3FFfg3bfdS2Jg6GJ99wSo5472sFAZrZ/C2pm0CswYM5NeU2ILIPU5JxkZADL
vkm52WbBfdr8qGPuZSqAUTL1YYNb1E5UhCI/UFwAJcxOSoKvDVJ5mp3H8HGXtf2Gzd5e
L/AACFiznot7Gf9LuRfgpiOsGhVYWGjyP/p/XlSl7pGD2lgvuEUlqpioyAF3E8ozcQY0
J3AalGycUMiUcFD5ZZFTQPfeADmEJHqHUAFWIITO4+6ptyxQZJPI7hR3Ztrlt1TlsL4K
/K0g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1765817902; x=1766422702;
h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:x-gm-gg
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=+o9iBj0heTez1NGHFB3KB7KTTA/rJCMs4R/noKaGzFI=;
b=hkJIy1UxOSo8e2T92nz6X1fAFuf4Sq+wuAqWjGp15iP0OJDvdx4RvLYOlk5i+Mby7Y
d+cc+p3FBWg9Z4SIpfyUPdBb58gW47wlySSPWGqQhklvE3TMGvLexswrCqH0YhmbMKhq
EP7x3c+OiMWRsFjmsf9A9AyFV0Q9o7Dt3ZWarWUYjD2f2w5XP/N+5LLvKxKEEolWO3pm
05ciKqj5rZp5u38/nZczHM2Nq4nmW1AUFdb4FW6ZmWCab+Hise441W5EsQBRHSlaNeA9
2xehKQvPpQW82p5g0ILkl2rvjgRFZNXNGqeX4ZKl7QNOLqp+3aWiMeF9bwUcB9yYvbuV
ccaw==
X-Forwarded-Encrypted: i=1;
AJvYcCVIJlxRtLiNFCbCIMottJBVGfSVx5PoSfGsqN7u0eU79jN2Dd159pOj+HoaT6YLDeSdo5D3KA==@debbugs.gnu.org
X-Gm-Message-State: AOJu0YyBzgDMqK1zaHmjy4lFkCpSxr6xLGpOqATdUbYAa3/i1w5egMyz
/QC0rxgIPuUntxHWAp+VxfwDOG+u51k/7frTSAhKEbfP/V4KDZSk3C6m
X-Gm-Gg: AY/fxX7CfatR3xSvXMKKqfBvFUyGkmHrorGfIRV6CTXeU8ONkYVnyOJydHJhn+zGAAy
emWh7EeqSZPjVoF+0Ca9K94gOAHVELMFoUykIocJZsi/sP1B00A5KVMnEaVvSXv2/khdUTWrLdC
UHVZkSM44Nq77enjP00SlAxN90TQrDPPqHUcVgNRu4G61C2CqoKghjlDcAXU75wEhvV1U77MPvj
kDoQOUROBN3lery/CHnet6VByxqeKgL1F8BpXTA+JOgZMhoF0E7FksuqYK5cIPR5YJxOD05cmh/
MA7R5NjwuYYQ75wz1OjPWnZRE21NzZEVGY5O0WmlSZmul2zw7yc1hfJC0LogJvJTZmUMYHeUzei
5Sxrm6UgHckOfPn1vNNNueO72P31qQUbAqPdqAh1FlhM5hIrfyDO/MWgIGb7x8FyEe2wuyPip2C
CNnYFduQzl+MlW8dM59XBI9E+fdsIrhmzrjYcU1NV4gQ==
X-Google-Smtp-Source: AGHT+IEL21S2JAdCkZMRL6hc7wnxFtyAE3Te14lQmu8J2hKN19AfdPBM6B/XEw3EMuqBl3FYjJ9qIA==
X-Received: by 2002:a17:906:730a:b0:b04:32ff:5d3a with SMTP id
a640c23a62f3a-b7d2321f5d6mr1202139766b.0.1765817901990;
Mon, 15 Dec 2025 08:58:21 -0800 (PST)
Received: from localhost (users-1190.st.net.au.dk. [130.225.0.251])
by smtp.gmail.com with UTF8SMTPSA id
a640c23a62f3a-b7cfa5c8e59sm1462245166b.62.2025.12.15.08.58.20
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Mon, 15 Dec 2025 08:58:21 -0800 (PST)
From: "Paul D. Nelson" <ultrono@HIDDEN>
To: Sean Whitton <spwhitton@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <87wm2prpg8.fsf@HIDDEN> (message from Sean
Whitton on Sun, 14 Dec 2025 16:35:51 +0000)
Date: Mon, 15 Dec 2025 17:58:19 +0100
Message-ID: <uxsg7tjyynhec4.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79985
Cc: eliz@HIDDEN, 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN,
monnier@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
--=-=-=
Content-Type: text/plain
Thanks, all, for the feedback. Please see attached.
--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
filename=0001-Allow-Ispell-to-save-corrections-as-abbrevs.patch
From 8006ec10176ce95dd5c9032ee256d67d5e4d4613 Mon Sep 17 00:00:00 2001
From: Paul Nelson <ultrono@HIDDEN>
Date: Mon, 15 Dec 2025 17:25:47 +0100
Subject: [PATCH] Allow Ispell to save corrections as abbrevs
* lisp/textmodes/ispell.el (ispell-save-corrections-as-abbrevs):
New user option.
(ispell--abbrev-saving-allowed)
(ispell--save-correction-as-abbrev): New variables.
(ispell--maybe-save-correction-abbrev): New function.
(ispell-word, ispell-process-line): Bind the above variables and
use the above function to save corrections as abbrevs when
appropriate.
(ispell-command-loop): Add C-u as command character to toggle
abbrev saving for current correction.
(ispell-help): Document C-u binding.
* doc/emacs/fixit.texi (Spelling): Document new feature.
---
doc/emacs/fixit.texi | 6 ++
etc/NEWS | 7 +++
lisp/textmodes/ispell.el | 132 +++++++++++++++++++++++++++------------
3 files changed, 106 insertions(+), 39 deletions(-)
diff --git a/doc/emacs/fixit.texi b/doc/emacs/fixit.texi
index f240057aa69..79f4ea88d1a 100644
--- a/doc/emacs/fixit.texi
+++ b/doc/emacs/fixit.texi
@@ -343,6 +343,12 @@ Spelling
Then you must type a single-character response. Here are the valid
responses:
+ With the user option @code{ispell-save-corrections-as-abbrevs}
+enabled, accepted corrections define global abbrevs by default
+(@pxref{Abbrevs}). You can toggle this feature for a single correction
+by pressing @kbd{C-u} in the command loop, before accepting the
+correction.
+
@table @kbd
@item @var{digit}
Replace the word, just this time, with one of the displayed
diff --git a/etc/NEWS b/etc/NEWS
index 27204393f7a..7a5a0a4afa7 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1974,6 +1974,13 @@ option 'doc-view-djvused-program'.
The default value is now 30 seconds, as the old value was too short to
allow reading the help text.
++++
+*** Ispell can now save spelling corrections as abbrevs.
+In the Ispell command loop, 'C-u' now toggles whether the next
+correction will be saved as a global abbrev expansion for its
+misspelling. The new user option 'ispell-save-corrections-as-abbrevs'
+determines whether abbrev saving is enabled by default.
+
** Flyspell
---
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 6476a169613..e5f3eadfe78 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -164,6 +164,15 @@ ispell-query-replace-choices
Uses `query-replace' (\\[query-replace]) for corrections."
:type 'boolean)
+(defcustom ispell-save-corrections-as-abbrevs nil
+ "Whether to save spelling corrections as abbrevs by default.
+Determines the default behavior of Ispell after correcting a misspelled
+word. Non-nil means to save a global abbrev that expands the misspelled
+word to its correction. This behavior may be toggled on a per-word
+basis by pressing \\`C-u' in the Ispell command loop."
+ :type 'boolean
+ :version "31.1")
+
(defcustom ispell-skip-tib nil
"Does not spell check `tib' bibliography references when non-nil.
Skips any text between strings matching regular expressions
@@ -1821,6 +1830,26 @@ ispell-send-replacement
(and (or ispell-really-aspell ispell-really-enchant)
(ispell-send-string (concat "$$ra " misspelled "," replacement "\n"))))
+(defvar ispell--abbrev-saving-allowed nil
+ "Non-nil means the current `ispell-command-loop' supports abbrev saving.
+Dynamically bound around calls to `ispell-command-loop' for which it
+makes sense to allow abbrev saving. This includes calls from functions
+like `ispell-word' and `ispell-region', but excludes calls from
+functions like `ispell-complete-word'.")
+
+(defvar ispell--save-correction-as-abbrev nil
+ "Non-nil means save the current correction as an abbrev.
+Dynamically bound to the value of `ispell-save-corrections-as-abbrevs'
+around calls to `ispell-command-loop'. The command loop can toggle
+this, via `C-u', to control abbrev saving for the current correction.")
+
+(defun ispell--maybe-save-correction-abbrev (misspelled replacement)
+ "Save MISSPELLED -> REPLACEMENT as an abbrev, if enabled.
+This is controlled by the variable `ispell--save-correction-as-abbrev'."
+ (require 'abbrev)
+ (when ispell--save-correction-as-abbrev
+ (define-abbrev global-abbrev-table misspelled replacement)
+ (message "\"%s\" now expands to \"%s\" globally" misspelled replacement)))
(defun ispell-send-string (string)
"Send the string STRING to the Ispell process."
@@ -1971,38 +2000,42 @@ ispell-word
(message "%s is incorrect"
(funcall ispell-format-word-function word))))
(t ; prompt for correct word.
- (save-window-excursion
- (setq replace (ispell-command-loop
- (car (cdr (cdr poss)))
- (car (cdr (cdr (cdr poss))))
- (car poss) start end)))
- (cond ((equal 0 replace)
- (ispell-add-per-file-word-list (car poss)))
- (replace
- (setq new-word (if (atom replace) replace (car replace))
- cursor-location (+ (- (length word) (- end start))
- cursor-location))
- (if (not (equal new-word (car poss)))
- (progn
- (goto-char start)
- ;; Insert first and then delete,
- ;; to avoid collapsing markers before and after
- ;; into a single place.
- (insert new-word)
- (delete-region (point) end)
- ;; It is meaningless to preserve the cursor position
- ;; inside a word that has changed.
- (setq cursor-location (point))
- (setq end (point))))
- (if (not (atom replace)) ;recheck spelling of replacement
- (progn
- (if (car (cdr replace)) ; query replace requested
- (save-window-excursion
- (query-replace word new-word t)))
- (goto-char start)
- ;; single word could be split into multiple words
- (setq ispell-quit (not (ispell-region start end)))
- ))))
+ (let ((ispell--abbrev-saving-allowed t)
+ (ispell--save-correction-as-abbrev
+ ispell-save-corrections-as-abbrevs))
+ (save-window-excursion
+ (setq replace (ispell-command-loop
+ (car (cdr (cdr poss)))
+ (car (cdr (cdr (cdr poss))))
+ (car poss) start end)))
+ (cond ((equal 0 replace)
+ (ispell-add-per-file-word-list (car poss)))
+ (replace
+ (setq new-word (if (atom replace) replace (car replace))
+ cursor-location (+ (- (length word) (- end start))
+ cursor-location))
+ (ispell--maybe-save-correction-abbrev (car poss) new-word)
+ (if (not (equal new-word (car poss)))
+ (progn
+ (goto-char start)
+ ;; Insert first and then delete,
+ ;; to avoid collapsing markers before and after
+ ;; into a single place.
+ (insert new-word)
+ (delete-region (point) end)
+ ;; It is meaningless to preserve the cursor position
+ ;; inside a word that has changed.
+ (setq cursor-location (point))
+ (setq end (point))))
+ (if (not (atom replace)) ;recheck spelling of replacement
+ (progn
+ (if (car (cdr replace)) ; query replace requested
+ (save-window-excursion
+ (query-replace word new-word t)))
+ (goto-char start)
+ ;; single word could be split into multiple words
+ (setq ispell-quit (not (ispell-region start end)))
+ )))))
;; keep if rechecking word and we keep choices win.
(if (get-buffer ispell-choices-buffer)
(kill-buffer ispell-choices-buffer))))
@@ -2167,7 +2200,10 @@ ispell-command-loop
(choices miss)
(window-min-height (min window-min-height
ispell-choices-win-default-height))
- (command-characters '( ? ?i ?a ?A ?r ?R ?? ?x ?X ?q ?l ?u ?m ))
+ (command-characters
+ (append '( ? ?i ?a ?A ?r ?R ?? ?x ?X ?q ?l ?u ?m )
+ (when ispell--abbrev-saving-allowed
+ '(?\C-u))))
(skipped 0)
char num result textwin)
@@ -2235,8 +2271,14 @@ ispell-command-loop
(progn
(undo-boundary)
(let (message-log-max)
- (message (concat "C-h or ? for more options; SPC to leave "
- "unchanged, Character to replace word")))
+ (message
+ (concat
+ "C-h or ? for more options; SPC to leave "
+ "unchanged, Character to replace word"
+ (when ispell--abbrev-saving-allowed
+ (format
+ " [abbrev saving %s]"
+ (if ispell--save-correction-as-abbrev "on" "off"))))))
(let ((inhibit-quit t)
(input-valid t))
(setq char nil skipped 0)
@@ -2419,6 +2461,10 @@ ispell-command-loop
((= char ?\C-z)
(funcall (key-binding "\C-z"))
t)
+ ((and (= char ?\C-u) ispell--abbrev-saving-allowed)
+ (setq ispell--save-correction-as-abbrev
+ (not ispell--save-correction-as-abbrev))
+ t)
(t (ding) t))))))
result)
;; protected
@@ -2463,6 +2509,7 @@ ispell-help
\\`m' Place typed-in value in personal dictionary, then recheck current word.
\\`C-l' Redraw screen.
\\`C-r' Recursive edit.
+\\`C-u' Toggle abbrev saving for this correction.
\\`C-z' Suspend Emacs or iconify frame."
(if (equal ispell-help-in-bufferp 'electric)
@@ -2497,6 +2544,7 @@ ispell-help
\\`m' Place typed-in value in personal dictionary, then recheck current word.
\\`C-l' Redraw screen.
\\`C-r' Recursive edit.
+\\`C-u' Toggle abbrev saving for this correction.
\\`C-z' Suspend Emacs or iconify frame."))
nil)))
@@ -2506,12 +2554,14 @@ ispell-help
(help-2 (concat "[l]ook a word up in alternate dictionary; "
"e[x/X]it; [q]uit session"))
(help-3 (concat "[u]ncapitalized insert into dict. "
- "Type `x C-h f ispell-help' for more help")))
+ (when ispell--abbrev-saving-allowed
+ "C-u toggles abbrev saving.")))
+ (help-4 (concat "Type `x C-h f ispell-help' for more help")))
(save-window-excursion
(if ispell-help-in-bufferp
(let ((buffer (get-buffer-create "*Ispell Help*")))
(with-current-buffer buffer
- (insert (concat help-1 "\n" help-2 "\n" help-3)))
+ (insert (concat help-1 "\n" help-2 "\n" help-3 "\n" help-4)))
(ispell-display-buffer buffer)
(sit-for (max 0.5 ispell-help-timeout))
(kill-buffer "*Ispell Help*"))
@@ -2522,7 +2572,7 @@ ispell-help
(message nil)
;;(set-minibuffer-window (selected-window))
(enlarge-window 2)
- (insert (concat help-1 "\n" help-2 "\n" help-3))
+ (insert (concat help-1 "\n" help-2 "\n" help-3 "\n" help-4))
(sit-for (max 0.5 ispell-help-timeout)))
(erase-buffer)))))))
@@ -3505,7 +3555,9 @@ ispell-process-line
(word-len (length (car poss)))
(line-end (copy-marker ispell-end))
(line-start (copy-marker ispell-start))
- recheck-region replace)
+ recheck-region replace
+ (ispell--abbrev-saving-allowed t)
+ (ispell--save-correction-as-abbrev ispell-save-corrections-as-abbrevs))
(goto-char word-start)
;; Adjust the horizontal scroll & point
(ispell-horiz-scroll)
@@ -3573,11 +3625,13 @@ ispell-process-line
(progn
(insert replace) ; Insert dictionary word.
(ispell-send-replacement (car poss) replace)
+ (ispell--maybe-save-correction-abbrev (car poss) replace)
(setq accept-list (cons replace accept-list)))
(let ((replace-word (car replace)))
;; Recheck hand entered replacement word.
(insert replace-word)
(ispell-send-replacement (car poss) replace-word)
+ (ispell--maybe-save-correction-abbrev (car poss) replace-word)
(if (car (cdr replace))
(save-window-excursion
(delete-other-windows) ; to correctly show help.
--
2.50.1 (Apple Git-155)
--=-=-=--
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 14 Dec 2025 16:36:05 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 14 11:36:05 2025 Received: from localhost ([127.0.0.1]:54803 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vUp4m-0004vL-QR for submit <at> debbugs.gnu.org; Sun, 14 Dec 2025 11:36:05 -0500 Received: from sendmail.purelymail.com ([34.202.193.197]:34584) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <spwhitton@HIDDEN>) id 1vUp4i-0004uo-JH for 79985 <at> debbugs.gnu.org; Sun, 14 Dec 2025 11:36:02 -0500 DKIM-Signature: a=rsa-sha256; b=lHNGRQNqyWXezKssHBjsx9talFVES0h8rnWSXEMe9CbZMTS8EQowge1qxPDy2dlvAqkj9vHErnhCamjQgJbpvUEr6pG6RcmDo4vy7NEycYkIzUSeHNCQwF7DM00BLtJYJgk1Lw7NkzvCELIQ+0SowJ4sUvyfnwZP0BwMnj/s5AadTtpBISYPpq2jvPMTT97tQ2le69CA0pJg/JnXtSq14JbPlZekUHZBrRcfz1rtpXXUX9YSco186pGSHYudXinpmywiKV0hnFNVVbMZDZodi3hOznvdyHjwP6YBYzD530ZLo6dQdVHf4KACxUiwzV/s8tLsvSi75W+1sQAR4D20Lw==; s=purelymail1; d=spwhitton.name; v=1; bh=eCFt8FDdX3DUIo/ZbRXTFEh0xvdpw9ccgFy6vBTFfuY=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=d71XPGMACkRb8WjRXYSZkfr7bnJZR2JV4B3H58ESgyBV4nIA/SDPk2e7il5NG3oPi/xtUcGRC80j9OMN/uzK4GxShZVP/UCau/wFYqx8gBzh+bXZQ5tsK+M5cw3S8eQQEmAtt7eGQHD+51UcCNAblTyX2M4RvZVm0WNw0gmh2KYtO3V5/SwRjNMpzcfbvRtS1B1og5gNI7pxuEtbHa3GamhL+VOqxxs/5sTE86tEoKQsdT4cKHCpn6/IY/mGmX7/OL8kvdWvWN26NtnbUAkHE6Wdtus1tND8Krb1BSdhp9WAkZtWaBob4OZiEwCRrD0j/39I9G/qJav/B2NUlBFGbA==; s=purelymail1; d=purelymail.com; v=1; bh=eCFt8FDdX3DUIo/ZbRXTFEh0xvdpw9ccgFy6vBTFfuY=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79985 <at> debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 592581615; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sun, 14 Dec 2025 16:35:51 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 514079402F8; Sun, 14 Dec 2025 16:35:51 +0000 (GMT) From: Sean Whitton <spwhitton@HIDDEN> To: "Paul D. Nelson" <ultrono@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <uxsg7t5xaae7k1.fsf@HIDDEN> References: <uxsg7ta4zq5978.fsf@HIDDEN> <uxsg7t5xaae7k1.fsf@HIDDEN> Date: Sun, 14 Dec 2025 16:35:51 +0000 Message-ID: <87wm2prpg8.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.0 (-) X-Debbugs-Envelope-To: 79985 Cc: eliz@HIDDEN, 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.0 (--) Hello, On Sat 13 Dec 2025 at 04:16pm +01, Paul D. Nelson wrote: >> I think combining this with a defcustom like Paul suggests is a good >> idea, but we can make it simpler: >> >> - if the defcustom has its default value, C-u means *do* create an >> abbrev >> - if the defcustom has its non-default value, C-u means *skip* creating >> an abbrev. >> >> Then it can be documented as inverting the meaning of C-u and the >> primary documentation can focus on describing the default behaviour. > > Should the default behavior be that the C-u command and its effects are > disabled altogether? I'm imagining someone who uses ispell and never > wants it to touch their abbrev table, even if they accidentally hit C-u. No, I don't think so. We frequently add prefix arguments to commands that didn't have them before and don't worry about existing users -- they don't have to use the new feature. > Maybe three settings: nil, 'default-on, 'default-off? I think this is unnecessarily complex as compared with my suggestion. -- Sean Whitton
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 13 Dec 2025 15:16:26 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 13 10:16:26 2025 Received: from localhost ([127.0.0.1]:40745 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vURMA-0005b2-Ez for submit <at> debbugs.gnu.org; Sat, 13 Dec 2025 10:16:26 -0500 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]:50460) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vURM8-0005ae-1o for 79985 <at> debbugs.gnu.org; Sat, 13 Dec 2025 10:16:25 -0500 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-6418738efa0so4220671a12.1 for <79985 <at> debbugs.gnu.org>; Sat, 13 Dec 2025 07:16:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765638978; x=1766243778; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=r2Bg1wCsruDWA2KjCv8HPcETmduqFC3WL1VRUDRyzMs=; b=PXbocw3QGinfDXx7Tryg7ZkJeZCyAvai2VRy8Db940OgKoW4vLRyFkVIlSOhGoRYfM abqIgzBLK3vGHs88TuQ15RqpYNWs8odFOOXIntY2DHaREA2/ZZ3z92pj0jEMcSgjvA7s PbBQepfCYI6m43wCR8Nia+lZruFbgrMn2vueI5XADZN0dj5UV2jHSIx+hePlN3pDRnav TF2q/pz4NkO7nuyDdi3OxIYnw54xB0DSXAxnL9loKX+SHcofHizzOP/+BXcCeRpGEGb5 VG13Kx0C+bi5/a0WP4Dc8PUKENNvQfCTDRvzhz7U19Q03gGY3OcUS0GGY+VHPV7ps/Ro fObw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765638978; x=1766243778; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=r2Bg1wCsruDWA2KjCv8HPcETmduqFC3WL1VRUDRyzMs=; b=YSighkGbGyuUEfI7HyzbKUAX1Fttkh4rgBPnGoVSuHDDktdVpA5opKdbZi52Hvrydk 8waAz4WhrgosstueLYyGA8Cmp89er9qMh8miTzEqRu9EY+zyUwdq+tA/aDRzzHlUPzRv XRTwbER/NPtfUbX8xVJwYWEGTRgDAa0yPtA2Tm2WZNA3sdKR7MzA4Gc1AJ+KQoNQVhZz xn/vRfZdglybGGv2nBgM+u15sz9Bn4P6Ycn6KzLHjDtf1EP2MO4i4fQQnBENjRjXGHBx wO3w4CkrweLtF08HU5bz7Q6g9tbRDlwZdntpS9eCAWNvZT7ZuwRhWGgmAZOnLrYmexhX OHZw== X-Forwarded-Encrypted: i=1; AJvYcCUb/8pC71+OHFdtVB5JaubAu7GtvZ1tRfhxi249Q30XNpFY6PUEcCzojxy6XJlNeyEQZTRUIw==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxEEjAKDLJTvC8s2Fin3koUCF/qWJ5gepeqom6fQe5YchuPXVme dMraSiUY3/v/r/olUUyoBy3GlXeCYPfA9TsyAcjrKA/c976WFmjOsalmfOfmmEYx X-Gm-Gg: AY/fxX57rdRvfsGHZHwral/odV14ssLCv5df2K+SrQbh6llrrX4sgZQu7hxy0Kdy4Qf KebbPudcPKIuCHJRHRQ+ssP4VJI2NcnqND1+ClgZYw38UqdMi/2+GvrT9jAvr+VrNRJYcaYkPAr UKRdjLaPSefiEGoSW+9AWsqsNhIJccCb2nhrekFyOH2wpYuc7fD2IV0M60amAML8HYE91hqzsuo slvABfJGoEDQBQJFuvdLL55OXW6GyPOvn1h9hF9Tu2fnnmOfyh8KCFGrBaAtSVFUvZ/By6PQXso eGSl6J9USKcmAlVi9thy4O8XopQWXBEfNlD9XOjAMgFaqm9f1wHWxRrU1y5XMvtW1rZ1nKlWYMS nA8gd8esVgaeNaM+kj5Vfrrrog3tCNn82NegSqGZ3VlIIybKVQrqzTkQC1C/Ag8ZfDAANdhR3/E dO6Wg+tCRT663FIXpsbK9hYqSSPjo= X-Google-Smtp-Source: AGHT+IE9yJkGB5H3q5NTy0nb9tmmMv5PUYvkQzsxvZk8tHwGLh4llVPtfsHEPUe2RXH25nZaluQVTA== X-Received: by 2002:a05:6402:280a:b0:641:8908:a558 with SMTP id 4fb4d7f45d1cf-6499b1e2d3emr5353448a12.25.1765638977596; Sat, 13 Dec 2025 07:16:17 -0800 (PST) Received: from localhost ([185.229.155.254]) by smtp.gmail.com with UTF8SMTPSA id 4fb4d7f45d1cf-64982040d14sm8439864a12.5.2025.12.13.07.16.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 13 Dec 2025 07:16:15 -0800 (PST) From: "Paul D. Nelson" <ultrono@HIDDEN> To: Sean Whitton <spwhitton@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <87ikeazbnh.fsf@HIDDEN> (message from Sean Whitton on Sat, 13 Dec 2025 14:42:10 +0000) Date: Sat, 13 Dec 2025 16:16:14 +0100 Message-ID: <uxsg7t5xaae7k1.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79985 Cc: eliz@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN, 79985 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) > A prefix argument makes sense to me, too, and is relatively intuitive. > The only thing is if that we want to add another similar feature and > we've now used up the prefix argument. > I guess that C-u C-u would remain available. I figured one could use any other C- or M- bind. I'm thinking by analogy with toggles in other Emacs loops, e.g.: - in ediff: ## toggles ignoring whitespace, #c for case - in isearch: M-s c/r/w toggle case/regexp/word modes > I think combining this with a defcustom like Paul suggests is a good > idea, but we can make it simpler: > > - if the defcustom has its default value, C-u means *do* create an > abbrev > - if the defcustom has its non-default value, C-u means *skip* creating > an abbrev. > > Then it can be documented as inverting the meaning of C-u and the > primary documentation can focus on describing the default behaviour. Should the default behavior be that the C-u command and its effects are disabled altogether? I'm imagining someone who uses ispell and never wants it to touch their abbrev table, even if they accidentally hit C-u. Maybe three settings: nil, 'default-on, 'default-off?
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 13 Dec 2025 14:42:29 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 13 09:42:29 2025 Received: from localhost ([127.0.0.1]:39543 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vUQpI-0003Ne-TW for submit <at> debbugs.gnu.org; Sat, 13 Dec 2025 09:42:29 -0500 Received: from sendmail.purelymail.com ([34.202.193.197]:47766) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <spwhitton@HIDDEN>) id 1vUQpE-0003NG-IW for 79985 <at> debbugs.gnu.org; Sat, 13 Dec 2025 09:42:26 -0500 DKIM-Signature: a=rsa-sha256; b=TeKTUZpKFBdBtKeIoB+XYhSFBmsKFprgLhSqlNWH5jezn/PmjXq02w9nwvHVQbZHJAbzawcC+v7CiLN4kbsxirSWhDTZGPHWTLPNrOSZ+a+MB+2Z7YLG0QA7LIXapvVNV2joAl93lLCRgyqrkeVPdwLQolTi8eK90uyifRhS4DqslXPM3VGni+J6f1ljs55aARvxk11hmXjDtXxAUciXOg4T9wrU/6z1ANDh1+wYP8QZTt/Vlx/2TeCsgBNWTsPxhIqRp7D8eMOlARztpNqXRAevnk/6rIeqk/nDsYML9wpfK+ksNZ+Oqwm+0LNMvgS6PPm5hCXOhCOz6+d91NUtuw==; s=purelymail1; d=spwhitton.name; v=1; bh=byfY2vy84ZO3KrNR8P5Y9XbNFNgqyHdClX/cTS96czM=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=PtErzPYR6JfwAU0rVKHWCRs/pwZEkjwISr2nmpGOaI7FiKEEr1ayGjYJqh7tqcwH20KAf2DEXPs5JrUznA2qch1q8Z7RZ53cmE/Kkts5mIjl6PoEl+gyseaq6UVbV8HvO8qdtYm225FJeYBZOhOO8M8WteyUPJ9XKnIQ+xVG4kq66nS+X0MhUu4dsKApLLzsq36yEgVugzUpD5ix4gVWIsTQdocbdum6y9oXZRb1rhuY/VAsp92uyLrrwdX+9FmhJTpCTM3JECDSEDsSgJ6sDxkuvqfJdowAav+RiswHW+8Nzx7VhQCVRc1Xw8J9iph9MH9/cD1RIYX0uIKuD28uOw==; s=purelymail1; d=purelymail.com; v=1; bh=byfY2vy84ZO3KrNR8P5Y9XbNFNgqyHdClX/cTS96czM=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79985 <at> debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 1914443798; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Sat, 13 Dec 2025 14:42:10 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 40C38940498; Sat, 13 Dec 2025 14:42:10 +0000 (GMT) From: Sean Whitton <spwhitton@HIDDEN> To: "Paul D. Nelson" <ultrono@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>, 79985 <at> debbugs.gnu.org, krisbalintona@HIDDEN, monnier@HIDDEN Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <uxsg7tldj6ermm.fsf@HIDDEN> References: <uxsg7ta4zq5978.fsf@HIDDEN> <uxsg7tldj6ermm.fsf@HIDDEN> Date: Sat, 13 Dec 2025 14:42:10 +0000 Message-ID: <87ikeazbnh.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79985 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hello, On Sat 13 Dec 2025 at 09:02am +01, Paul D. Nelson wrote: > Eli Zaretskii <eliz@HIDDEN> writes: > >> That's an unusual UI, IMO. It's very un-Emacsy. How about C-u >> instead? That at least mimics invoking a command with a prefix >> argument. > > Thanks, fine by me. A prefix argument makes sense to me, too, and is relatively intuitive. The only thing is if that we want to add another similar feature and we've now used up the prefix argument. I guess that C-u C-u would remain available. I think combining this with a defcustom like Paul suggests is a good idea, but we can make it simpler: - if the defcustom has its default value, C-u means *do* create an abbrev - if the defcustom has its non-default value, C-u means *skip* creating an abbrev. Then it can be documented as inverting the meaning of C-u and the primary documentation can focus on describing the default behaviour. -- Sean Whitton
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 13 Dec 2025 10:22:13 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 13 05:22:13 2025 Received: from localhost ([127.0.0.1]:37686 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vUMlR-0001cX-9n for submit <at> debbugs.gnu.org; Sat, 13 Dec 2025 05:22:13 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:36888) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vUMlO-0001cG-U7 for 79985 <at> debbugs.gnu.org; Sat, 13 Dec 2025 05:22:11 -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 1vUMlJ-0005ov-Et; Sat, 13 Dec 2025 05:22:05 -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=57CfHDDf0ukJpYm/4E7nFHMeXnrDaKQy3Mp5PNmCzgI=; b=hOGtjdHnPGpG /pDVWbF6C5XKvvsUQtgoBqdV961Km+boUk3jaUuM6rSHayWElOSE0Zz6e4CS3W6T7MinJ4QG8OvHK NcfiYRJOHXXkIZ7K2UZihDzpe/nIYnnPfCZPiJm1zptllmgD6I/uGKdAvsoe+lqI275Se8oTToW7t eFFSpBn892258ov+enon74OaIHyPGQRu/y90Z/cOOpccsS719lDne8GmziRzgwI6sg6lnHlJVFO4z VPqnOaR28QHGZUGT/NAcaQ4+6zF4jGKTD+myYIreBlYvKp91/33DOrAQE1YMCs5CGWKbS2QfQ9Q5N 9ZSetNnzJ8CnsKtn1ZYQ2g==; Date: Sat, 13 Dec 2025 12:22:02 +0200 Message-Id: <86ms3m8ywl.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "Paul D. Nelson" <ultrono@HIDDEN> In-Reply-To: <uxsg7tldj6ermm.fsf@HIDDEN> (ultrono@HIDDEN) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7tldj6ermm.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, spwhitton@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "Paul D. Nelson" <ultrono@HIDDEN> > Cc: krisbalintona@HIDDEN, monnier@HIDDEN, > spwhitton@HIDDEN, 79985 <at> debbugs.gnu.org > Date: Sat, 13 Dec 2025 09:02:41 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > That's an unusual UI, IMO. It's very un-Emacsy. How about C-u > > instead? That at least mimics invoking a command with a prefix > > argument. > > Thanks, fine by me. Would you like to post a patch along these lines?
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 13 Dec 2025 10:21:43 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 13 05:21:43 2025 Received: from localhost ([127.0.0.1]:37680 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vUMkw-0001b6-Q1 for submit <at> debbugs.gnu.org; Sat, 13 Dec 2025 05:21:43 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:41388) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vUMku-0001ag-HS for 79985 <at> debbugs.gnu.org; Sat, 13 Dec 2025 05:21:41 -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 1vUMkp-0005aI-5c; Sat, 13 Dec 2025 05:21:35 -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=tcctzMye7Kh4A3akRXM8qDHYfrfU+Fjtlz9dhWVR7XA=; b=LJsj6WJkO7ae hOH35aV17KSZ+l7SGEL1qoRzBSCX4Be1fyoq+lO1AvRzeMPyOrSXULqpwuqMJcbOxojIaugEB6X4W sUih+mXsNdc667iWmO2tGOCnlQe4zOt+iv7qmsfMmDJt+LvoR+GuQleFCA9Cj62J1RUnmr2dhASD8 U3DDX8JI6xDJOZxFetHFxgsKZkjyyAdPilCdixhYuqc5TiiEUEunI7AnF6gyU4m873tnq/9IJO3RL Kp4CPd5NSPtLyG7hS72wdSa79ClklJlCis0A9OlE3/dc2Rt7ppeB/ivshU7Znwif8deng5vy7j+SN JbyNeeRtKKkB/s+r1pkhoQ==; Date: Sat, 13 Dec 2025 12:21:21 +0200 Message-Id: <86o6o28yxq.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "Paul D. Nelson" <ultrono@HIDDEN> In-Reply-To: <uxsg7tldj6ermm.fsf@HIDDEN> (ultrono@HIDDEN) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7tldj6ermm.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, spwhitton@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "Paul D. Nelson" <ultrono@HIDDEN> > Cc: krisbalintona@HIDDEN, monnier@HIDDEN, > spwhitton@HIDDEN, 79985 <at> debbugs.gnu.org > Date: Sat, 13 Dec 2025 09:02:41 +0100 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > As another possibility, we could have a special ispell-loop command to > > place the last misspelling+correction in abbrevs. Then the user would > > invoke that after a correction was made. > > If the user does (e.g.) 'ispell-region', then ispell quits after the > final correction, so there is no opportunity to issue a follow-up > command in the command loop. The command can always be invoked by its name in that case.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 13 Dec 2025 08:02:55 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 13 03:02:55 2025 Received: from localhost ([127.0.0.1]:36902 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vUKac-0001xC-UD for submit <at> debbugs.gnu.org; Sat, 13 Dec 2025 03:02:55 -0500 Received: from mail-ed1-x535.google.com ([2a00:1450:4864:20::535]:47200) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vUKaa-0001wo-1d for 79985 <at> debbugs.gnu.org; Sat, 13 Dec 2025 03:02:52 -0500 Received: by mail-ed1-x535.google.com with SMTP id 4fb4d7f45d1cf-6419b7b4b80so2924220a12.2 for <79985 <at> debbugs.gnu.org>; Sat, 13 Dec 2025 00:02:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765612966; x=1766217766; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=4zMg+sHkh5PmZc2xtpPHypKTrDXCN+f4sExvvxQUgk0=; b=P8pBKibR0emOz/HsgCcSDkxWHImwCcYWZ15VX24qvAcAejowgtOEFUO+KhDegA/UOH YEXGNp7dIXhlbhwiVppkNR7XONlzS96hYxX6Hbh/VOW378RUVhKl0oH1Sf5n3unxr8tM aIZ+j/uYlOr0OfHTYxtoq46FSVmY7pDzyr33WjYknoA+4twrq4BrMetOs7jyMyFIgFq3 oGB0ITQmsNmdGz2xQuws30jmWflrehqTrY13gh2Gep8QZOYzmUyZsSshIhnl4TqfqVTs LgHT4MNszqv5TcbhNORTR4YzGB7ZhoyORuEzKAk0QMIGyeVHCLSl4VrZZr7p8lYzdf8m Mbug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765612966; x=1766217766; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=4zMg+sHkh5PmZc2xtpPHypKTrDXCN+f4sExvvxQUgk0=; b=SmWfQxIWZQB9NkBWSL13+N/KeMQqB20FZ5M2VwNNR7TQe94JtfBnLbVjPNLRuz9cCL l9EyIJVy6cCq9xna+2t1/ZO/aEwKRNUI5mVT0KwlDXESC6caPbUiHnf13Nhyow4hfxRA 9fHN6n88ioYzeS/VVKfqcDUBkLp2pTP5UyyNPQWjMxwQzrpBXwStxamqQmLbLl9zTa9S ICSjlA+JBI5YSXcT3xtbIMVVxwFWq8vC1xA/4hCF3UxTuWbd3OzVoWPoLMj1rSPf+G4L o6QKq9GMDJL8kLUOhMXMmhbIx4OsdF+8TCreyqxR2zPPJC1jK1oiUOAV1ASoQdE/uX5r NDcQ== X-Forwarded-Encrypted: i=1; AJvYcCVBHQHNSMkTdZKECpsdlAXeeaqfTF6r5nMI6OtIa28yTKcJ5aho95fGIH0x68oHXflc6Kq+3w==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yyur97AkKqO4rI9cWSBJvmLx+4mR8m5CFbcUOqCHpDaPMlBVqOK NplwhcD/E2Lj4PE/cS/SaxLEiwC8gu24IzEFiA9kY/14b+g97o8lOuzT X-Gm-Gg: AY/fxX7BlRtCgKJdFpbHZk2XRyX1PJ+aw5ubnVzetxjV11yPM7ieiChtGo6DNLyih5s i1kOTq/Cx/oAdkv6b7siNYbDq16vZg1eOYwj2rGHDdVohjVYfWHe8VLmZ5/L2ClKLT98NGBabZG 9ABiqd4Ff57oXVmt0HZ7PmK05twBkNHmw7VG5mZhz4dUQHuOM8v9x+3NopQswf6leeC9/8l6Hyy D/Ea5kZ7bxcnKWtf875F3N/PkegqzGbhZkfrgYR+uct+wRGjNoEuniDGuuVKF9vaoAdIlsXFS9a tB/I7FB6TDjmdvMryva+fxbs3F7k66NJPVdMaSkecSgx0Rmts7HZmgC99SNnzgyV233fWkW1HES XnwUCL29ltWtb6l8msZCPHEnzkzuYbtI4gogBMJLVk7I3YnxV6CP/LRdQgADRppQSxrIP5UscIl N4dAsJHBAStsRGYEp646UrtLAYUFQ= X-Google-Smtp-Source: AGHT+IFKFRXUI9D0nOY4TcuNE6sHkZNZxLuZnCHlEy/aNiocF88aKgKS4a8cfJvCdkTM9uItAJwYDg== X-Received: by 2002:a17:906:f5a9:b0:b70:fd2f:6a46 with SMTP id a640c23a62f3a-b7d2361f366mr486315566b.20.1765612965532; Sat, 13 Dec 2025 00:02:45 -0800 (PST) Received: from localhost ([185.229.155.254]) by smtp.gmail.com with UTF8SMTPSA id 4fb4d7f45d1cf-6498213171fsm7492661a12.30.2025.12.13.00.02.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 13 Dec 2025 00:02:43 -0800 (PST) From: "Paul D. Nelson" <ultrono@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <86pl8jagjz.fsf@HIDDEN> (message from Eli Zaretskii on Fri, 12 Dec 2025 17:03:12 +0200) Date: Sat, 13 Dec 2025 09:02:41 +0100 Message-ID: <uxsg7tldj6ermm.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, spwhitton@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Eli Zaretskii <eliz@HIDDEN> writes: > That's an unusual UI, IMO. It's very un-Emacsy. How about C-u > instead? That at least mimics invoking a command with a prefix > argument. Thanks, fine by me. > As another possibility, we could have a special ispell-loop command to > place the last misspelling+correction in abbrevs. Then the user would > invoke that after a correction was made. If the user does (e.g.) 'ispell-region', then ispell quits after the final correction, so there is no opportunity to issue a follow-up command in the command loop. > Btw, do you frequently add most of the corrections to abbrevs? I find > that to be useful only in a small number of cases, when a typo is a > frequent one. I do. If this direction sounds reasonable, I'd be happy to put together a patch.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 13 Dec 2025 07:46:22 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 13 02:46:22 2025 Received: from localhost ([127.0.0.1]:36821 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vUKKb-0000yU-Ir for submit <at> debbugs.gnu.org; Sat, 13 Dec 2025 02:46:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:41574) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vUKKY-0000y6-IT for 79985 <at> debbugs.gnu.org; Sat, 13 Dec 2025 02:46:19 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vUKKQ-0008T4-Sg; Sat, 13 Dec 2025 02:46:12 -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=Wjio3K2/LsvFzEWALfnKS7vRVqZ9zjZq/W3MS9aTUTQ=; b=ja2f/FMN8Xu9 3CZfIs6rL8estKumqdY8w1p5Z3G8KYb0iY6YT1RrdM4Q5e/akJ1+SAZpbwZlKhs1myLzUn4WUmXaa 7H1x6B4OxcmWP8RW1pUVjM5tgsSj3FUFRmB1YSTs3pHmSAbQLtsBqJtYEqmhqyRlRhySHDKsKOBMs SXbUeWA0NVuw2nUNuhDIcrlPrEGqvPlz3tJeQBOUIv1AN4tCF4kB3TxcDzCEAMH5m3KGDEyDRc+01 DzdpKB8vpgw7xZbKpGx3A6jETBMJSjvKRdY9+jk4NxzrmZx+rkkuUhewJF7vgabgY9iwoOKnV3eXP yGJxlq9koYlQrf952aRuHA==; Date: Sat, 13 Dec 2025 09:46:07 +0200 Message-Id: <86bjk2akow.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Kristoffer Balintona <krisbalintona@HIDDEN> In-Reply-To: <CANVbq5mXpoh2Q9ad1KCSzBm46BJFAezOvJTh3zyRBvPqAbhjrQ@HIDDEN> (message from Kristoffer Balintona on Fri, 12 Dec 2025 14:29:43 -0800) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7to6o4dkwr.fsf@HIDDEN> <86v7ic9be6.fsf@HIDDEN> <CAOA-32Nk130E09=aQrs0w7TjHnOGkwN-VQWXiDtHyOvAmCjJfw@HIDDEN> <86pl8jagjz.fsf@HIDDEN> <CANVbq5mXpoh2Q9ad1KCSzBm46BJFAezOvJTh3zyRBvPqAbhjrQ@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, spwhitton@HIDDEN, monnier@HIDDEN, ultrono@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Kristoffer Balintona <krisbalintona@HIDDEN> > Date: Fri, 12 Dec 2025 14:29:43 -0800 > Cc: monnier@HIDDEN, spwhitton@HIDDEN, 79985 <at> debbugs.gnu.org > > > As another possibility, we could have a special ispell-loop command to > > place the last misspelling+correction in abbrevs. Then the user would > > invoke that after a correction was made. > > Here is yet another possibility: what if, when we implement the proposed > user option Paul mentioned (i.e., a user option to enable saving > corrections to the abbrev list), if that option is non-nil, then after > every word correction, the user will be prompted for whether they want > to save that word to the abbrev list? The prompt is opt-in since the > user would have to customize the relevant option to non-nil. AFAIU, Paul wanted to avoid the confirmation prompt. Otherwise, adding this would be trivial, like you suggest. > > Btw, do you frequently add most of the corrections to abbrevs? I find > > that to be useful only in a small number of cases, when a typo is a > > frequent one. > > I personally have all my misspelling corrections saved to the abbrev > list. I manually remove them from the list when abbrev's correction > isn't good. (Most of the time it is though, which is why I have all my > word corrections saved to abbrev.) I guess this has to do with what kind of typos and misspelling one frequently does, because my experience is the opposite: most of the misspelling I find would make no sense in the abbrevs, and should not be corrected automatically.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 12 Dec 2025 22:29:55 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 12 17:29:54 2025 Received: from localhost ([127.0.0.1]:60734 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vUBe5-0006i4-VB for submit <at> debbugs.gnu.org; Fri, 12 Dec 2025 17:29:54 -0500 Received: from mail-lj1-x236.google.com ([2a00:1450:4864:20::236]:60580) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <krisbalintona@HIDDEN>) id 1vUBe2-0006hc-UL for 79985 <at> debbugs.gnu.org; Fri, 12 Dec 2025 17:29:52 -0500 Received: by mail-lj1-x236.google.com with SMTP id 38308e7fff4ca-37a2dcc52aeso14724151fa.0 for <79985 <at> debbugs.gnu.org>; Fri, 12 Dec 2025 14:29:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765578584; x=1766183384; darn=debbugs.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date :mime-version:references:in-reply-to:from:from:to:cc:subject:date :message-id:reply-to; bh=cDNOFVs1rKvV1y+9n9QAMgWYYE0hCbNHXn4z0fsogeY=; b=KPRW7mdC1z78wiymhJnFNkVVC1K1zuncike/4rRqTrT/W7p7v2OyGPagAIyPu2wegi DpI2eDvSh8JCWJEfuSvLyNfIdWcVHfvwenSMIthNN6fasNN2HjP3xn2p+yV2pfSodFzq ZD0hXg8Jh1bv0ISbqox7jsutAaV5KwrGr78M/uOGHg/unjA8qoEzEdwloovjTcBH1doX RLI5THmLgIap7Xcc7Q9CtT8qbcS4p/SGyoZXugcF9k8XBp2US5mmNewb54M9PjbeWvBL r4yB6kszANR93MimlwVfQkffd1lBOXGsxmOpnBXW3I0+vc/8gf6GoW+MVlzRAsyt7Ihr qUbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765578584; x=1766183384; h=content-transfer-encoding:cc:to:subject:message-id:date :mime-version:references:in-reply-to:from:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=cDNOFVs1rKvV1y+9n9QAMgWYYE0hCbNHXn4z0fsogeY=; b=kL3LifmmBpXvcuZRmSFov92nntmU7aL5Qzi3SQOCC4K2kaqhviskuRo1+Vs6348xcU aa44vaGfcr51GvIcvUNk680r08kcS95WAN52pOMjGlyddLJzXQevAbSowjW1m+M1yjQw HINAD7EqjWrpqi42QZqEvU83JcipNpbbKEgC3NPEmI0PemXQ5mnSsC84NYJtIzstYxeB 51ymisApZorl7Hlj2ZrExTgiLa+NKRDVNwPEjpfAg9L7JiA5t7z5/3rGx6CrtxOHWIB1 hdMjE9rCM7PwWBKTBLL1uT9NmpU5uFcCjQ8ANv5F1iIBLc27hdMnaE9jJRJ5KkgrhyW9 hUrg== X-Forwarded-Encrypted: i=1; AJvYcCU34yi5b8mHljr0NqO15AVgxW+OoPcije0cguBcWX8U76lWwe75iEeHL3T1YrfqKiS6f0Wf4w==@debbugs.gnu.org X-Gm-Message-State: AOJu0YztoWYD1nH7K8hWH3RfJMcUPLDihvcRTFMhj6xbeapwqGHiAjjs cK1Fs71Zhje7sQ4pOiJ6JCbzVp3xLufGHtpT/eGaGc+51KXoyMwh03TubiksN0vOAtfMOoD2MFs KEdojUcjiAl6CUI9kgkaMxHdTLvraTZY= X-Gm-Gg: AY/fxX6s85l5envobLTT0Mlg7xeDC/PT1x5WTCwq5SGvGykp832X7qbOWa4jqc+Au2M Au7Z9NrF9iLjy5Ya7khO/Kiy0vXdKt/zAevLXNUnWcUipsHqRv4HcDr8I8JBj5zGXNpIe5EiFI2 WLb8BnZDg9OBxubMeMOwIUajPu0D0e0Y626FZkORtZPWNRiRuLRHRHkkY7rGRyK9vmWv0/CL9jg 3SFvSrFg6H4q//W/AmDbuDU6aJnT0fNHFTi7ki+d9XARosYVJdHxvVPTwA6l9t6d8DBHCY= X-Google-Smtp-Source: AGHT+IFe+UWrpa4vmc8CnTKsJXdEN19OQn7a+6u28Us6IvV5t813gHIRtleiuPbY17jz4yaiylcdPBoEn0qhfbZj2yQ= X-Received: by 2002:a05:651c:18c6:b0:37f:c5ca:ac02 with SMTP id 38308e7fff4ca-37fd087f166mr9230061fa.20.1765578584273; Fri, 12 Dec 2025 14:29:44 -0800 (PST) Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Fri, 12 Dec 2025 14:29:43 -0800 Received: from 753933720722 named unknown by gmailapi.google.com with HTTPREST; Fri, 12 Dec 2025 14:29:43 -0800 From: Kristoffer Balintona <krisbalintona@HIDDEN> In-Reply-To: <86pl8jagjz.fsf@HIDDEN> References: <uxsg7to6o4dkwr.fsf@HIDDEN> <86v7ic9be6.fsf@HIDDEN> <CAOA-32Nk130E09=aQrs0w7TjHnOGkwN-VQWXiDtHyOvAmCjJfw@HIDDEN> <86pl8jagjz.fsf@HIDDEN> MIME-Version: 1.0 Date: Fri, 12 Dec 2025 14:29:43 -0800 X-Gm-Features: AQt7F2q_sMljsES7qrTWxYwQ8qTSYgQ6YGdAkge4s7dd66d0x7zMLHrLNFNlgV8 Message-ID: <CANVbq5mXpoh2Q9ad1KCSzBm46BJFAezOvJTh3zyRBvPqAbhjrQ@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop To: Eli Zaretskii <eliz@HIDDEN>, Paul Nelson <ultrono@HIDDEN> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, monnier@HIDDEN, spwhitton@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) On Fri, Dec 12 2025, Eli Zaretskii wrote: >> From: Paul Nelson <ultrono@HIDDEN> >> Date: Fri, 12 Dec 2025 15:01:17 +0100 >> Cc: krisbalintona@HIDDEN, monnier@HIDDEN, >> spwhitton@HIDDEN, 79985 <at> debbugs.gnu.org >> >> How will that look in practice? Given a misspelling and a list of >> possible corrections shown by ispell, how would the user correct with >> adding to abbrevs and without adding? IOW, please describe how this >> will look from the user's POV. >> >> Nothing changes unless the proposed user option is enabled. >> >> In that case, when the user accepts a correction in ispell, the misspell= ing and its correction are saved to the >> abbreviation table, except when the user has opted out by pressing C-c (= or whichever key is deemed >> appropriate), prior to accepting the correction, on the screen where the= list of possibilities is displayed. >> >> For instance, assuming the correction is the first word (so that =E2=80= =980=E2=80=99 accepts it), the key sequences following >> the invocation of ispell would be: >> >> With adding to abbrevs: 0 >> Without adding to abbrevs: C-c 0 >> >> There could perhaps be some guidance text saying whether abbrev will be = saved, and how to toggle via >> C-c, either in the minibuffer or below the list of candidates at the top= of the screen. > > That's an unusual UI, IMO. It's very un-Emacsy. How about C-u > instead? That at least mimics invoking a command with a prefix > argument. Part of the problem is that ispell command loop assumes that the user makes a decision about what to do and then presses a single key to go down that path. But to do what Paul likes, one would have to "prefix" their choice with e.g. C-c to denote whether it should be saved as an abbrev. But "prefixing" a decision within the command loop can't really be done ergonomically, as I understand it (unless you prefix `ispell-command-loop' itself with a prefix arg). As far as I know, right now only transient.el generates menus where you can toggle behaviors while staying within the same menu? > As another possibility, we could have a special ispell-loop command to > place the last misspelling+correction in abbrevs. Then the user would > invoke that after a correction was made. Here is yet another possibility: what if, when we implement the proposed user option Paul mentioned (i.e., a user option to enable saving corrections to the abbrev list), if that option is non-nil, then after every word correction, the user will be prompted for whether they want to save that word to the abbrev list? The prompt is opt-in since the user would have to customize the relevant option to non-nil. The only potential "loss" would be that there is no "default" choice for whether a correction is saved to the abbrev list; in this proposal, the user always has to answer a `y-or-n-p' prompt. Is it easy to add this to `ispell-command-loop'? Is this approach a viable middle-ground? > Btw, do you frequently add most of the corrections to abbrevs? I find > that to be useful only in a small number of cases, when a typo is a > frequent one. I personally have all my misspelling corrections saved to the abbrev list. I manually remove them from the list when abbrev's correction isn't good. (Most of the time it is though, which is why I have all my word corrections saved to abbrev.) --=20 Kind regards, Kristoffer
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 12 Dec 2025 15:03:36 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 12 10:03:36 2025 Received: from localhost ([127.0.0.1]:57721 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vU4gB-0000wO-LT for submit <at> debbugs.gnu.org; Fri, 12 Dec 2025 10:03:36 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:39168) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vU4g7-0000vy-L6 for 79985 <at> debbugs.gnu.org; Fri, 12 Dec 2025 10:03:34 -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 1vU4g1-00059t-GH; Fri, 12 Dec 2025 10:03:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:References:Subject:In-Reply-To:To:From: Date; bh=zwQFIgvns1vQxQ7pBTx/7ND5IlkPx1romhCbf3AcHcI=; b=N4tbxbiNasoFzvMGwQHO sCM3l7WTN+wdpQA4tn0zGnjDUinz1VxlHhkv48sgiPA7ZNKaGL5E0lCBveU78vOIeqHYiKs8nVBkS 6iHxFxsoHuHmjl6lnpdK1Qux7x0nob2btvJi5ou7XvsRAyVTQTCjE5CoVQmRo98FcMcntzUbxoLM5 XSzNBpMyyQ0aMIlewthMZPfFpD7bG2TwJ/uGQu2qpDZ8hjAdGPpuBJSM1Kp4ucnQqcSvHCa247Myn bhY3XB1fvvZk4F43Eyv+nLdoY5gh//ZTBkz1R5kmRVB6lVN9DEZcsNJSvJWEeKFCdF914mBXbotN5 a5538yViQnXcQQ==; Date: Fri, 12 Dec 2025 17:03:12 +0200 Message-Id: <86pl8jagjz.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Paul Nelson <ultrono@HIDDEN> In-Reply-To: <CAOA-32Nk130E09=aQrs0w7TjHnOGkwN-VQWXiDtHyOvAmCjJfw@HIDDEN> (message from Paul Nelson on Fri, 12 Dec 2025 15:01:17 +0100) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7to6o4dkwr.fsf@HIDDEN> <86v7ic9be6.fsf@HIDDEN> <CAOA-32Nk130E09=aQrs0w7TjHnOGkwN-VQWXiDtHyOvAmCjJfw@HIDDEN> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, spwhitton@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Paul Nelson <ultrono@HIDDEN> > Date: Fri, 12 Dec 2025 15:01:17 +0100 > Cc: krisbalintona@HIDDEN, monnier@HIDDEN, > spwhitton@HIDDEN, 79985 <at> debbugs.gnu.org > > How will that look in practice? Given a misspelling and a list of > possible corrections shown by ispell, how would the user correct with > adding to abbrevs and without adding? IOW, please describe how this > will look from the user's POV. > > Nothing changes unless the proposed user option is enabled. > > In that case, when the user accepts a correction in ispell, the misspelling and its correction are saved to the > abbreviation table, except when the user has opted out by pressing C-c (or whichever key is deemed > appropriate), prior to accepting the correction, on the screen where the list of possibilities is displayed. > > For instance, assuming the correction is the first word (so that ‘0’ accepts it), the key sequences following > the invocation of ispell would be: > > With adding to abbrevs: 0 > Without adding to abbrevs: C-c 0 > > There could perhaps be some guidance text saying whether abbrev will be saved, and how to toggle via > C-c, either in the minibuffer or below the list of candidates at the top of the screen. That's an unusual UI, IMO. It's very un-Emacsy. How about C-u instead? That at least mimics invoking a command with a prefix argument. As another possibility, we could have a special ispell-loop command to place the last misspelling+correction in abbrevs. Then the user would invoke that after a correction was made. Btw, do you frequently add most of the corrections to abbrevs? I find that to be useful only in a small number of cases, when a typo is a frequent one.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 12 Dec 2025 14:01:40 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 12 09:01:40 2025 Received: from localhost ([127.0.0.1]:56609 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vU3iF-0004k3-8p for submit <at> debbugs.gnu.org; Fri, 12 Dec 2025 09:01:40 -0500 Received: from mail-oi1-x22c.google.com ([2607:f8b0:4864:20::22c]:60799) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vU3iC-0004jh-JL for 79985 <at> debbugs.gnu.org; Fri, 12 Dec 2025 09:01:37 -0500 Received: by mail-oi1-x22c.google.com with SMTP id 5614622812f47-450c9057988so712981b6e.1 for <79985 <at> debbugs.gnu.org>; Fri, 12 Dec 2025 06:01:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765548090; x=1766152890; 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=PqRdLLG5KSj1tGkGvAkbnbiFfHkbJzSwwiRqM/Ufl0s=; b=aphKid5vEYSxGiLjlADLFXhEKBxBa4+BlK9hNXW6KZ1XxuL7qFg8XzlrR61TlvYDR5 Mx4tQA8OUbTSKAWEtlNqlZfrT/ACAsHPK74o6/2VDasuJnJCDeC6aCcv7YQq9EMFmgla kVfx0p3eNTn0Cx3vdpYLJ7eFUpMP8g5lykY+nmr3eb8tivZNVb6FfPZXseTFtOIjeKy6 kzGeRDl5ef/i8FyeVyKNVfO+qniri4IiSFPP0EdguraN7u0lTOEcfiPTTjO/BOLLiApr WnOAZvBjqRLFcX2n813/oYk0LMA7dGeXyvqgaZgDu6fFge5aXKWgvAx6RVt5aIEBnLAs FaVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765548091; x=1766152891; 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=PqRdLLG5KSj1tGkGvAkbnbiFfHkbJzSwwiRqM/Ufl0s=; b=JnXIZr3u8n7sbPLyRHb14Rl8mxC1cx0VMxpDFaBvl14SV3YSpnaXIx7wXHdakbtf5q JKDwLNCbA2UhdLo3surGRPnodhvR0BwcYlWZLe4RtXzG26vhsoI6AM6jIHbADwZdQiU1 uwL9WV6m3P7WDAE1O2ElhOX8igpskiVk/2J+j+FvRoVMsvFoiPJwLdFTChA5s2JOgCFm wUwjoTCI06JCCAdiiaFSFOIXg4LpE3g5QwYaicUAQSsOqO/4MihyYV6gsymV1anFu0bg 3MnEbkv7Y1A9s/Yv/9X6bXQAUWl2D28IBysqI75W/oQPMVuLmDSoI5NP29LuWUE5xHEQ c7fw== X-Forwarded-Encrypted: i=1; AJvYcCX7fOV54cCxZ/2GkKO7Q97++Bc2ZUvwh34+rfIImrglHQjWK+CzG8deeETrJie0r+h3AUG+Tg==@debbugs.gnu.org X-Gm-Message-State: AOJu0Yysy8Iz6Un6i1kfKjgOlTKYo7K4i7VNXZKSwWlEpEa+WC1kNVWk aAK9m7ac7xQLsNobpIEFeXqkWoq7u3zqHm6EPhTyn5hXGb2hoM9MvP0Gfh/SemEr724UymN/nF4 Otiiyj7ok4fU2izNThThF/EYlDOOFx3s= X-Gm-Gg: AY/fxX6Fhira+qAXzl6uCA7TU4NJQoXXDq/q31vY2ne4jKrECrz6AcTYXM37OsU5tKO yW3GXs6xJpR3fiEn6wUtwwsmZMlUvKiygUQEQaTk9hYWcxznGmw4iF0qLbdFvIqWs+LlxDBv5WG PPQfEQggwwJMwnImb6ebBn1/N6CmqOGWah+Ho4rNKMHg80F7eQlBLnUG+JoZRUlvNlt6HYmbFGK hBnkXc60D5zalhE2MfU5HBPoj3NolRBBmhznktO9MQOPtle+gfOhcT7bqDIaYts4ilSfA== X-Google-Smtp-Source: AGHT+IGMpm+kUl4pmgQX0QtxMoXXhJ3OznoleotmqqeqDcnocF/9Z92gd3J5GVzjjrQbRxgKJYiQDZypsYHz8R89/wA= X-Received: by 2002:a05:6808:138c:b0:441:8f74:fbf with SMTP id 5614622812f47-455ac9af6ddmr838806b6e.60.1765548089872; Fri, 12 Dec 2025 06:01:29 -0800 (PST) MIME-Version: 1.0 References: <uxsg7to6o4dkwr.fsf@HIDDEN> <86v7ic9be6.fsf@HIDDEN> In-Reply-To: <86v7ic9be6.fsf@HIDDEN> From: Paul Nelson <ultrono@HIDDEN> Date: Fri, 12 Dec 2025 15:01:17 +0100 X-Gm-Features: AQt7F2oR2RMpfym7OdjNEuJAAkQi_FUBlmxkyykMW1ZraASXbMHrMfpLxXE1ofI Message-ID: <CAOA-32Nk130E09=aQrs0w7TjHnOGkwN-VQWXiDtHyOvAmCjJfw@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop To: Eli Zaretskii <eliz@HIDDEN> Content-Type: multipart/alternative; boundary="000000000000bb15360645c1b25f" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, spwhitton@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --000000000000bb15360645c1b25f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable > > My thought would be: add a user option that controls whether abbrev > > saving is enabled by default, and, when it is enabled, add a command in > > the ispell command loop (I used C-c in my config, but other suggestions > > welcome) that toggles abbrev saving for the current correction only. > > How will that look in practice? Given a misspelling and a list of > possible corrections shown by ispell, how would the user correct with > adding to abbrevs and without adding? IOW, please describe how this > will look from the user's POV. Nothing changes unless the proposed user option is enabled. In that case, when the user accepts a correction in ispell, the misspelling and its correction are saved to the abbreviation table, except when the user has opted out by pressing C-c (or whichever key is deemed appropriate), prior to accepting the correction, on the screen where the list of possibilities is displayed. For instance, assuming the correction is the first word (so that =E2=80=980= =E2=80=99 accepts it), the key sequences following the invocation of ispell would be: With adding to abbrevs: 0 Without adding to abbrevs: C-c 0 There could perhaps be some guidance text saying whether abbrev will be saved, and how to toggle via C-c, either in the minibuffer or below the list of candidates at the top of the screen. This is the UI I=E2=80=99ve found most convenient; other approaches (eg, abbrev-saving off by default, enabled via C-c) could be included, if someone wants them, by allowing the proposed user option to take more values than just t and nil. --000000000000bb15360645c1b25f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div><br></div><div><br><div class=3D"gmail_quote gmail_quote_container"><b= lockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px = #ccc solid;padding-left:1ex" dir=3D"auto"><br>> My thought would be: add= a user option that controls whether abbrev<br> > saving is enabled by default, and, when it is enabled, add a command i= n<br> > the ispell command loop (I used C-c in my config, but other suggestion= s<br> > welcome) that toggles abbrev saving for the current correction only.<b= r> <br> How will that look in practice?=C2=A0 Given a misspelling and a list of<br> possible corrections shown by ispell, how would the user correct with<br> adding to abbrevs and without adding?=C2=A0 IOW, please describe how this<b= r> will look from the user's POV.</blockquote><blockquote class=3D"gmail_q= uote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1e= x" dir=3D"auto"></blockquote><div dir=3D"auto"><br></div><div dir=3D"auto">= <br></div><div dir=3D"auto">Nothing changes unless the proposed user option= is enabled.=C2=A0</div><div dir=3D"auto"><br></div><div dir=3D"auto">In th= at case, when the user accepts a correction in ispell, the misspelling and = its correction are saved to the abbreviation table, except when the user ha= s opted out by pressing C-c (or whichever key is deemed appropriate), prior= to accepting the correction, on the screen where the list of possibilities= is displayed.</div><div dir=3D"auto"><br></div><div dir=3D"auto">For insta= nce, assuming the correction is the first word (so that =E2=80=980=E2=80=99= accepts it), the key sequences following the invocation of ispell=C2=A0wou= ld be:</div><div dir=3D"auto"><br></div><div dir=3D"auto">With adding to ab= brevs: 0</div><div dir=3D"auto">Without adding to abbrevs: C-c 0</div><div = dir=3D"auto"><br></div><div dir=3D"auto">There could perhaps be some guidan= ce text saying whether abbrev will be saved, and how to toggle via C-c, eit= her in the minibuffer or below the list of candidates at the top of the scr= een.</div><div dir=3D"auto"><br></div><div dir=3D"auto">This is the UI I=E2= =80=99ve found most convenient; other approaches (eg, abbrev-saving off by = default, enabled via C-c)=C2=A0could be included, if someone wants them, by= allowing=C2=A0the proposed user option to take more values than just t and= nil.</div><div dir=3D"auto"><br></div><div dir=3D"auto"><br></div></div></= div> --000000000000bb15360645c1b25f--
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 12 Dec 2025 11:40:12 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 12 06:40:12 2025 Received: from localhost ([127.0.0.1]:55493 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vU1VL-00014u-LA for submit <at> debbugs.gnu.org; Fri, 12 Dec 2025 06:40:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:60516) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vU1VJ-00013r-Hi for 79985 <at> debbugs.gnu.org; Fri, 12 Dec 2025 06:40:10 -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 1vU1VD-0001GC-NE; Fri, 12 Dec 2025 06:40:03 -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=hSl828/3mI1UMp9Hrh3cUXHDpcly6K9kOC02ylfJJx0=; b=OfdlB3eU4kJO McK1uF6/cAabRBtGgMwkBsxr8L7gewiNpMfY246RR1Jf7ZtyynJv0ssqFQlu6GUmU3Bmskk8UR24I AjP1zGa9uWTkeDqj4SnJSTYCNPObqbcNggdfY7LX8FjiNk+L2rouvTrRWPT6PGr3aNhG9e3FXBkob UDOAqDq9HtuK8CoBztWs8xUqVcUZDrcQa5QExMxVZuQci0+ytQziizuC1gE+WsbYeo2AvlIexyriG RvCazYd3k6s5jG8peA9qg+ev42rwjpDyS5P2rAX3OUBKTYmADoVoUt36jMj+7g7ViHUqmTgRL2QdQ qaJdOgaygzUNnJaNlpvclw==; Date: Fri, 12 Dec 2025 13:40:01 +0200 Message-Id: <86v7ic9be6.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "Paul D. Nelson" <ultrono@HIDDEN> In-Reply-To: <uxsg7to6o4dkwr.fsf@HIDDEN> (ultrono@HIDDEN) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7to6o4dkwr.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, spwhitton@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "Paul D. Nelson" <ultrono@HIDDEN> > Cc: krisbalintona@HIDDEN, monnier@HIDDEN, > spwhitton@HIDDEN, > 79985 <at> debbugs.gnu.org > Date: Fri, 12 Dec 2025 12:00:52 +0100 > > Eli, regarding this: > > > Can't we have an easier solution? Like perhaps add a new hook to be > > run by the ispell command loop after correcting a word? > > What I'd like to preserve is: > > (1) When abbrev-saving is enabled, corrections are saved as abbrevs by > default, without an extra prompt. > > (2) For any given correction, there's a quick way to skip saving the > abbrev. > > With a post-correction hook, I see how to offer a y/n prompt like "Save > in the abbrev table?", but that would violate (1). So I don't see how > to support (2) without some input in the command loop itself. I didn't say that saving in abbrevs should be implemented by a hook, I suggested to add a hook for more general customizations. > > I do agree that it would be nice to add (iii). Patches welcome. > > My thought would be: add a user option that controls whether abbrev > saving is enabled by default, and, when it is enabled, add a command in > the ispell command loop (I used C-c in my config, but other suggestions > welcome) that toggles abbrev saving for the current correction only. How will that look in practice? Given a misspelling and a list of possible corrections shown by ispell, how would the user correct with adding to abbrevs and without adding? IOW, please describe how this will look from the user's POV.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 12 Dec 2025 11:01:05 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 12 06:01:04 2025 Received: from localhost ([127.0.0.1]:55137 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vU0tU-0006aZ-BC for submit <at> debbugs.gnu.org; Fri, 12 Dec 2025 06:01:04 -0500 Received: from mail-ej1-x62a.google.com ([2a00:1450:4864:20::62a]:57532) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vU0tS-0006Zk-3Z for 79985 <at> debbugs.gnu.org; Fri, 12 Dec 2025 06:01:02 -0500 Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-b72b495aa81so202241766b.2 for <79985 <at> debbugs.gnu.org>; Fri, 12 Dec 2025 03:01:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765537256; x=1766142056; darn=debbugs.gnu.org; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=hXjYkjelz+hmk4xTHJnoCaMe9V95Gei1UdqrlRX7zPw=; b=LlHh15oaOo2hbqfjzMq+mFvBa1jmUrvMU5JpiF8Z4CbPSb0gtX8Grhsunxo5Z3ka71 Mk5bsK6guT460QGrRr3E2mPmJ33SqrwFgPZIM4wYj+ITQKXUGG60E9c1Fw3V7uT6XwXE XSsvvWf/DZ1yf/OWiVeR2jqbms940tXYH2utJfJ3sXVremOsmiTOYgAkjY9s3U9ZIuUs RWabXqgGedZS6dVD7DOhCRdyyRjzmtNFX0mcpr1von6QFvBcCkeRECTJxd1xO/ijImeh Bc3BTY36KAkyV3ywfmcWS+7DDN9TM1mLger4mT6XC5eit7Dsrr95ehCULM8S3D6FOZWK XbVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765537256; x=1766142056; h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=hXjYkjelz+hmk4xTHJnoCaMe9V95Gei1UdqrlRX7zPw=; b=maT9i8J9QJsbdfPYbl+dIsW/RbAStzM2k8NvwQ/NomEwkpV79Ix+PT5pd+kANUkxeL BbEY8a/C3VoQWwa5QtjkapDyNgpGu/vje1dRZPVst9Vt82lNptPT5Ajg0w4bToDZeOJf LVcOKVLlFWoHnwBRZJet1AmFy0DHnsuZw1Hxa7TklyeGewgCDPRnsuf/LhIJbnawvWV+ RUo+QvIxlMdk4Xv+Z9nqDdH/KP6e0W9zwStDgIOeKgpKeh9etpBbxD4DvIjuyTfd4E7m n9r1ZYv0bDW7/0FtRRw/FJLOKGxW5VbeBGiC6dUTzkkhyayeDAaAEIJIAHt9E2NGYBgz PKsw== X-Forwarded-Encrypted: i=1; AJvYcCVmo1w0MjDhgt0VUODnlMDDpmL/tpizvR4h3OYLOkOrzslDPNqc5Amr/xbLTZNuPdZk0MteoA==@debbugs.gnu.org X-Gm-Message-State: AOJu0YxO7VvGZS0xEmefh21UnUW6RCU52abr31UedMB8WSZpUKxmx72K PdX3mrEFnAfmQQwPrNlGS7rgR6LNn+xcyI2bdmZOuc4f+rGv/dWHieNN X-Gm-Gg: AY/fxX53T/mqvScvN3MXCk6Lern9ttqBbyxFAkBO/ATrM8i99xEIPlSkr4pHlgWkvlu rqrdOTv3oSCFcS+x9Y/xir+3IgYyE4eCoaKVe4+mMgCg/3rxxmqze5xsq6uTEn2V4ow7LtEMFzb tWo3izuzGRGCq9I4GqxfRUC+5KQNVPL02zXCmgqgjm8XAok94BBbn2NCGmDma/SM8CXMp44hQhk EcwJ0SKdSsKpW5sgLWP2yvVO5fWCayvTSdKrN4CjkYXfVsbjxAwlqW/IR3GQthPY13jIQcfN+el bNrodZ1gM/iDpfy6j/kdl7Mb09tetvsUYuX8L83Nbn7oLsAoWDYXNPjQTRsugqtfPC7yaFs4SBX tsR1h0XROm6DVGi0+miydMMbeAZ8k1q8tBjochpIEec4o/bv+dZaufRAZmFBD+iWu7PxHocaLhv +P1Q1mZq/00cTuWvRe X-Google-Smtp-Source: AGHT+IHFrpil2mBEnuVsDU+Xdikd8T8hnHs30X6aXnti6sanbj0kQHDzFaalrfSFpd40sVQgWi2iKg== X-Received: by 2002:a17:906:6a18:b0:b7d:205b:6bd3 with SMTP id a640c23a62f3a-b7d23c35ba2mr153888966b.58.1765537255306; Fri, 12 Dec 2025 03:00:55 -0800 (PST) Received: from localhost ([185.229.155.254]) by smtp.gmail.com with UTF8SMTPSA id a640c23a62f3a-b7cfa5718dfsm529954566b.54.2025.12.12.03.00.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 03:00:54 -0800 (PST) From: "Paul D. Nelson" <ultrono@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <864ipwaz3g.fsf@HIDDEN> (message from Eli Zaretskii on Fri, 12 Dec 2025 10:22:43 +0200) Date: Fri, 12 Dec 2025 12:00:52 +0100 Message-ID: <uxsg7to6o4dkwr.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, spwhitton@HIDDEN, krisbalintona@HIDDEN, monnier@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Thanks, all, for the comments. In particular, I agree with Kristoffer's message and proposal. Eli, regarding this: > Can't we have an easier solution? Like perhaps add a new hook to be > run by the ispell command loop after correcting a word? What I'd like to preserve is: (1) When abbrev-saving is enabled, corrections are saved as abbrevs by default, without an extra prompt. (2) For any given correction, there's a quick way to skip saving the abbrev. With a post-correction hook, I see how to offer a y/n prompt like "Save in the abbrev table?", but that would violate (1). So I don't see how to support (2) without some input in the command loop itself. > I do agree that it would be nice to add (iii). Patches welcome. My thought would be: add a user option that controls whether abbrev saving is enabled by default, and, when it is enabled, add a command in the ispell command loop (I used C-c in my config, but other suggestions welcome) that toggles abbrev saving for the current correction only.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 12 Dec 2025 08:22:58 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 12 03:22:57 2025 Received: from localhost ([127.0.0.1]:53824 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vTyQT-0001kG-1p for submit <at> debbugs.gnu.org; Fri, 12 Dec 2025 03:22:57 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:38908) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vTyQR-0001js-Gs for 79985 <at> debbugs.gnu.org; Fri, 12 Dec 2025 03:22:55 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vTyQJ-0005rX-Ik; Fri, 12 Dec 2025 03:22:49 -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=3CvVW+g6HhlfbBQdeYkGh3uTRLcxlYdmHBA9XnaeFa4=; b=fBFXBSu/8xSn RYtbRK0BJAqVKk46+twTRyMnjFMKEmKgI89uinOKMzWENbeVa7C2c4doot4EgG8elqjqFDPwO0cT7 4OMEqvz1b1TmgFjH2FkiQVKqysT36dwj5odum5woinSkspZm/SE9nAzXvZ0c4hfaktsTaH/tI3+KK YcnTfZUR6oJ42zow688MmxmKgz5Hu7CgDE5N3xTRnrtSjQCHbGftgM51pH6xtwOUBxpZa3LQnH8nb ha4xGV4Ya7xVLaXr8wfzq/WX9sMpTOmPc4RAXh9R1pNeNShGnvqtmNxLIOY0Fd5Ppisy9Bshf8a4s UvOHA8B5o5REvQEWeVUHog==; Date: Fri, 12 Dec 2025 10:22:43 +0200 Message-Id: <864ipwaz3g.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: Kristoffer Balintona <krisbalintona@HIDDEN> In-Reply-To: <CANVbq5nb9kJm8Kn-36yWzVdcK-aNpkNkUbL55YaEsDjUtG6-1g@HIDDEN> (message from Kristoffer Balintona on Thu, 11 Dec 2025 13:44:39 -0800) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7t7bus6hi3.fsf@HIDDEN> <86ecp0c21r.fsf@HIDDEN> <CANVbq5nb9kJm8Kn-36yWzVdcK-aNpkNkUbL55YaEsDjUtG6-1g@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, spwhitton@HIDDEN, monnier@HIDDEN, ultrono@HIDDEN X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: Kristoffer Balintona <krisbalintona@HIDDEN> > Date: Thu, 11 Dec 2025 13:44:39 -0800 > Cc: 79985 <at> debbugs.gnu.org > > I think if users had a lot of custom functionality they wanted from > ispell, we should consider making the command loop more hackable. But > from my observations of existing word correction/spell checking packages > (flyspell, jinx.el, jit-spell, flyspell-correct, etc.), there isn't much > demand for features aside from (i) adding words to one's personal > dictionary, (ii) adding words to a buffer-local list, (iii) maybe adding > words to one's abbrev lists, and (iv) maybe adding words to a > directory/project-local list. As such, I think directly implementing > desired features upstream is the approach to take. But (i) and (ii) already exist, don't they? I do agree that it would be nice to add (iii). Patches welcome.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 12 Dec 2025 07:24:01 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 12 02:24:01 2025 Received: from localhost ([127.0.0.1]:53277 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vTxVP-0000Wf-8I for submit <at> debbugs.gnu.org; Fri, 12 Dec 2025 02:24:00 -0500 Received: from mout-p-103.mailbox.org ([80.241.56.161]:45492) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <juri@HIDDEN>) id 1vTxVK-0000UO-M5 for 79985 <at> debbugs.gnu.org; Fri, 12 Dec 2025 02:23:56 -0500 Received: from smtp102.mailbox.org (smtp102.mailbox.org [IPv6:2001:67c:2050:b231:465::102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4dSLXx72fKz9t7D; Fri, 12 Dec 2025 08:23:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linkov.net; s=MBO0001; t=1765524226; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=hm4Cm5dTtwlDFTaooN7135LDXN124QV2auFBPUAuvew=; b=er1oXuQZp1lONi4j8x/9Oj2s7uKqeDgBcBvcamijdi+QpkhQRI5Okf/NDYBtWZySwK+8OS YKAH9jaN+X+yJIm3jQMtMJvaCOSqtr4CppwapqXH2ECTf4SSCcqsucQVLgr/OIhOWjT5J0 j8x1tlcJcfm7lxjtv1AbFmu7K7j987r5H2YKzHJWWKxryjSMWXjHb8Q/4vTSIfvJQFDFjp v9Hd4WOd2Oa6ZifsDSkZSVlOKXpPs1mJOsODiYJDvmWKYnnlwQmvXv3XY3PF8Ul503WdZB JKYjqeGooEAiJ3Aclk86PfOl0esHyXx3kaHxq3C/aje6C6MtQTnBU9G4uCIkLQ== Authentication-Results: outgoing_mbo_mout; dkim=none; spf=pass (outgoing_mbo_mout: domain of juri@HIDDEN designates 2001:67c:2050:b231:465::102 as permitted sender) smtp.mailfrom=juri@HIDDEN From: Juri Linkov <juri@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN> Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <86ecp0c21r.fsf@HIDDEN> Organization: LINKOV.NET References: <uxsg7t7bus6hi3.fsf@HIDDEN> <86ecp0c21r.fsf@HIDDEN> Date: Fri, 12 Dec 2025 09:19:17 +0200 Message-ID: <87y0n8ch2a.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Rspamd-Queue-Id: 4dSLXx72fKz9t7D X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org, Sean Whitton <spwhitton@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, "Paul D. Nelson" <ultrono@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) > Can't we have an easier solution? A cleaner solution would be to add an intermediate map like 'query-replace-map' with the same handling at the end: ((commandp def t) (call-interactively def))
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 11 Dec 2025 22:52:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 11 17:52:52 2025
Received: from localhost ([127.0.0.1]:49396 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vTpWl-0003Qp-KT
for submit <at> debbugs.gnu.org; Thu, 11 Dec 2025 17:52:51 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:59239)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
id 1vTpWj-0003QV-7n
for 79985 <at> debbugs.gnu.org; Thu, 11 Dec 2025 17:52:49 -0500
Received: from pmg3.iro.umontreal.ca (localhost [127.0.0.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id 27145441BC9;
Thu, 11 Dec 2025 17:52:43 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
s=mail; t=1765493562;
bh=q0e0R8+a0IxgjIyWveCsb7H5496zTY5cgrQJHNACa2M=;
h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
b=SBxf5jGQRbCZBGyj+Ug6fK40Gr95wdhd7LAz1pC9B2gDSx3h5fBmfXsocdLY+2aQs
Wrift5mUeB7qigUzO7s3PBFY3iaOAbZhL3TVX2W8y6/NxvO2pTf1zwLaL5fD/9ALlq
ruLiuNhohd5qtAmG8YzboEHPFP1sz9j4e83l2Sr9kTgp1zcnJFJQJJPd1j2k2EKFqZ
S+RVtzaC0hYja+1RchwLa/zWlBhalijuF+TYcvF6M9zoJhTwY98NqIDPJbwgIGy4WJ
01yZSKcTb/+94kPJpQt582EdE+zJgclImsN8DgP89qdcNXpRfqaiZ26SbehGAViXWq
YQIoV48nCmqrg==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
by pmg3.iro.umontreal.ca (Proxmox) with ESMTP id EE8D5441BC7;
Thu, 11 Dec 2025 17:52:41 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id DC29C1207DA;
Thu, 11 Dec 2025 17:52:40 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: "Paul D. Nelson" <ultrono@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <uxsg7ta4zq5978.fsf@HIDDEN>
Message-ID: <jwvy0n8skpy.fsf-monnier+emacs@HIDDEN>
References: <uxsg7ta4zq5978.fsf@HIDDEN>
Date: Thu, 11 Dec 2025 17:52:38 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results: 0
ALL_TRUSTED -1 Passed through trusted hosts only via SMTP
AWL -0.111 Adjusted score from AWL reputation of From: address
BAYES_00 -1.9 Bayes spam probability is 0 to 1%
DKIM_SIGNED 0.1 Message has a DKIM or DK signature,
not necessarily valid
DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
domain
DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
domain
X-SPAM-LEVEL:
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 79985
Cc: 79985 <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 (---)
> Regarding defvar/defcustom: I used 'defvar' because I imagined it being
> mainly of programmatic use, but happy to adjust.
I think a `defvar` is fine. Eli just pointed out an inconsistency
between the use of `defvar` and the use of "user option". So keep
`defvar` but call it a ... "variable".
> @@ -2419,6 +2427,9 @@ ispell-command-loop
> ((= char ?\C-z)
> (funcall (key-binding "\C-z"))
> t)
> + ((assq char ispell-command-loop-extra-bindings)
> + (let ((handler (cdr (assq char ispell-command-loop-extra-bindings))))
> + (funcall handler char miss guess word start end)))
> (t (ding) t))))))
> result)
> ;; protected
As Eli pointed out, this isn't quite sufficient because the earlier code
needs to know which characters are treated specially (and which ones
are free for use by the dynamic assignment system).
I.e. you need to adjust `command-characters` at the beginning of
`ispell-command-loop` presumably by adding (mapcar #'car
ispell-command-loop-extra-bindings) to it.
Sean writes:
> 3. if not, then indeed we need to proceed very carefully to ensure the
> hook mechanism is flexible enough, and right now it's not clear that
> this mechanism fits the bill, without a lot more documentation.
Indeed. A technique for that is "dogfood". I.e. try and move most of
the code currently in the big `cond` into your new
`ispell-command-loop-extra-bindings`. If you can move "all" of its code,
then it's a strong argument that your mechanism is probably
flexible enough.
Stefan
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 11 Dec 2025 21:44:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 11 16:44:50 2025
Received: from localhost ([127.0.0.1]:48916 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vToSv-0006oU-Ip
for submit <at> debbugs.gnu.org; Thu, 11 Dec 2025 16:44:50 -0500
Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]:51255)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <krisbalintona@HIDDEN>)
id 1vToSs-0006oF-RB
for 79985 <at> debbugs.gnu.org; Thu, 11 Dec 2025 16:44:47 -0500
Received: by mail-ed1-x531.google.com with SMTP id
4fb4d7f45d1cf-640ca678745so1005525a12.2
for <79985 <at> debbugs.gnu.org>; Thu, 11 Dec 2025 13:44:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1765489481; x=1766094281; darn=debbugs.gnu.org;
h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
:from:from:to:cc:subject:date:message-id:reply-to;
bh=5CFoMnniv8CO5HCSSatHOmmsFpGlVCfbhvX66USqICU=;
b=ZfYd62youB3ljsBeXLbh4RcwEq5G6TqupAZtWZS0R7npr5UgWhfBXr0sLZR4mccK0b
fitImTHnxE2g+bUuYdhC7usOHfX57b9NAZJHWHbPoLMpzy244vnz/EYbbBhXMrX/aOdN
Xg8tBxJi4WJjpBRoLcWOtB9H3ydp05Si3Dq02l5Btt12+OZJiCsfJrEskpimr4w0vyQp
js18L2QragQJng5I43b6GwEZgD/m6rRD757N6j+xCSEbdFvCldYuHO0C4rMzOKM0hZX5
z5ek4YAgTpV/VekFPSOPH50siugnaxiMGlCMxy8Z2jcFzKFwlobXPHCzACkoddPLwa0k
x4aw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1765489481; x=1766094281;
h=cc:to:subject:message-id:date:mime-version:references:in-reply-to
:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id
:reply-to;
bh=5CFoMnniv8CO5HCSSatHOmmsFpGlVCfbhvX66USqICU=;
b=IP+u9hE5e5QpIuVgRaBIQQba/lvkvOdQYGQZW97sGPgCyNz0/S1WGoQIpIZaS9rBkF
58XZJNY6cPARCzZJZ/a/I+eI1yTJj+pnQdbX/viBPMPn4wEWzhYBdbX9lX9PoK9u8OVz
YvBRypQJEQNv2MBL3fC6T3yrnzUVuG4+3kkm9OnVBFurGHSnkAG5GCAjoozRZ84mdrlQ
E2lvfaI4g75TrTbLvqp8O6TJT9m2mTzGL9f695Xr5tnK7rFKzay3OEhp4O4T+OKUvo9U
mixJajiozUoCLowPiRZLG0Zn8T1li492fmbj6CUxrnkGHMoGUdjuKOHkIuHl+6H/Dv2H
ZyuA==
X-Gm-Message-State: AOJu0YwCL53M8aOAYZsBGKd6vr92hKcWc5J+NaJMixBVF9WqxXkuxQiS
AbtsoCDNNnKUld2tN14/U3a0i7AlrzOsHW+X8nNCPwgbitZqpc8zmo4iownsQBVO/RbeEPyVMcu
HC1ZToLoVp9Nq8P1F+NfwUZOXjdyL3VU=
X-Gm-Gg: AY/fxX4oqMU3zb+HRAcLCJLrwluLFeOjhG0SzPbnKl3Js3XMVq2fLX7V7h/dKMb2vTD
CnPmXSHS/ZWzZtEnUXK1i/T28Uylc5HFxsDrYHm0ABHcjtLdycL0cNwANUAmhGjVep1Nwe+r4EM
YEWdD2UUxIf4Lr+V/lguCAX0jlohU+esneXxgmyR/RahD1mJTCko9kBr/0R9eyUuv8XzJ9LQ2Hz
ocz94DvzV/mIVl1L5sJVnuayGikJbxMgXZVKwAvyIPhNcUeqiyTJh8/LESe0D39kWn78QM=
X-Google-Smtp-Source: AGHT+IEgyCgocb+ojw61tZq5w7g/Q95tfXuKMmkppQ0fp0kVIM4c6jMy1ywC5n7wJGBU6QnAqZeRABWNsqSGiP9fXCo=
X-Received: by 2002:a05:6402:34d1:b0:649:5d3b:db3a with SMTP id
4fb4d7f45d1cf-6496cb4c56bmr6676421a12.8.1765489480445; Thu, 11 Dec 2025
13:44:40 -0800 (PST)
Received: from 753933720722 named unknown by gmailapi.google.com with
HTTPREST; Thu, 11 Dec 2025 13:44:39 -0800
Received: from 753933720722 named unknown by gmailapi.google.com with
HTTPREST; Thu, 11 Dec 2025 13:44:39 -0800
From: Kristoffer Balintona <krisbalintona@HIDDEN>
In-Reply-To: <86ecp0c21r.fsf@HIDDEN>
References: <uxsg7t7bus6hi3.fsf@HIDDEN> <86ecp0c21r.fsf@HIDDEN>
MIME-Version: 1.0
Date: Thu, 11 Dec 2025 13:44:39 -0800
X-Gm-Features: AQt7F2qebZXKuEuRLdETjslYxItqouh5CHW3Rbqnc8zjOZ6ECtKb2lrcHBgNxPc
Message-ID: <CANVbq5nb9kJm8Kn-36yWzVdcK-aNpkNkUbL55YaEsDjUtG6-1g@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
To: Eli Zaretskii <eliz@HIDDEN>, "Paul D. Nelson" <ultrono@HIDDEN>,
Stefan Monnier <monnier@HIDDEN>,
Sean Whitton <spwhitton@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79985
Cc: 79985 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
On Thu, Dec 11 2025, Eli Zaretskii wrote:
>> From: "Paul D. Nelson" <ultrono@HIDDEN>
>> Cc: 79985 <at> debbugs.gnu.org
>> Date: Thu, 11 Dec 2025 18:44:04 +0100
>>
>> Thanks, I'll incorporate your comments, but maybe this point is worth
>> clarifying first:
>>
>> > TBH, those missing details could also be useful for discussing this
>> > feature, because I'm not yet sure it is indeed the best idea for what
>> > you had in mind (which I'm admittedly guessing, since you haven't
>> > described that).
>>
>> I have in my config a command that
>>
>> (1) looks backward in the visible buffer for a misspelled word,
>> (2) corrects it using ispell, and
>> (3) saves the correction to the abbrev table, so that it autocorrects in
>> the future.
>>
>> Most of the time, step (3) is desired, but occasionally I want to skip
>> it, and I only know this after seeing the proposed correction in the
>> ispell command loop. So I need a way to communicate my preference from
>> the command loop back to the calling function. The simplest way I could
>> think of was to add a command to the loop that sets some global flag.
>>
>> My current implementation (via :override advice) is available at
>>
>> https://github.com/ultronozm/czm-spell.el/blob/main/czm-spell.el
>>
>> The patch is an attempt to replace the advice with a generic extension
>> point.
>
> If we want to support an optional update of the abbrev table, we could
> have a simpler implementation. If, OTOH, we want to provide a much
> more general way of customizing the ispell command loop, we need to
> have a more thorough discussion about the design. For starters the
> commands offered by ispell include characters that indicate which
> candidate for correction to use, and those are computed dynamically.
> So how would the user who is coding such a customization know up front
> which characters will be free for use? And what will FUNCTION in your
> proposed data structure need to do? will it need to perform a
> replacement and then save the correction into the abbrevs, for
> example? Such a function is not really trivial to write, am I right?
>
> Can't we have an easier solution? Like perhaps add a new hook to be
> run by the ispell command loop after correcting a word?
IMO we could, if anything, just implement the abbrev functionality that
Paul sought into ispell itself.[1] Flyspell already has a similar
feature, so it might be reasonable to do the same with ispell.
Paul wanted a certain feature in the command loop, which is what drove
him to extend `ispell-command-loop'. But I think a better way to address
the problem would be to add the common features that users seek directly
into the command loop, instead of letting them hack onto the command
loop (partially because of the technical reasons Eli described).
I think if users had a lot of custom functionality they wanted from
ispell, we should consider making the command loop more hackable. But
from my observations of existing word correction/spell checking packages
(flyspell, jinx.el, jit-spell, flyspell-correct, etc.), there isn't much
demand for features aside from (i) adding words to one's personal
dictionary, (ii) adding words to a buffer-local list, (iii) maybe adding
words to one's abbrev lists, and (iv) maybe adding words to a
directory/project-local list. As such, I think directly implementing
desired features upstream is the approach to take.
Footnotes:
[1] This would cover (3) in Paul's list, with (2) is what ispell already
does.
--
Kind regards,
Kristoffer
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 11 Dec 2025 20:42:25 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 11 15:42:25 2025 Received: from localhost ([127.0.0.1]:48382 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vTnUX-0001p5-3F for submit <at> debbugs.gnu.org; Thu, 11 Dec 2025 15:42:25 -0500 Received: from sendmail.purelymail.com ([34.202.193.197]:44816) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <spwhitton@HIDDEN>) id 1vTnUT-0001og-S0 for 79985 <at> debbugs.gnu.org; Thu, 11 Dec 2025 15:42:22 -0500 DKIM-Signature: a=rsa-sha256; b=L4Q1a5P3qEHo7viFw7ruzR27+9qQ/JCIlVJXK94pcZH7pGfUVG2tMOKHCiP22PoNrHBRm60BFZ8dpYttxZENAfUmM6L0KQHoXlhRY15UYNOiWkrHxVCag+q7yWqJyOpRqQYXX+abNZJobRoQt7NDs25A/7P9GsZeaRkJKp/yF4FaIIX9pqBcjAdRghbuDr8a/pvwmy8ZrOKxqmrWUtgBDYSezNg7zC3Yem2AfmrmExQV1RLOXhPHbNNp04a316sSMcjQp7eD+6gXubTJeCSBG5/QGBKBX95l2vVxdwssf/g/kBsIBZ87yFzojBzorCrDqJTVmDZrYvkiuvSRp+PwPA==; s=purelymail1; d=spwhitton.name; v=1; bh=shmxM4bUVRUrSgACTwwptZSAHe8WKnXJqBS0x4kXWWc=; h=Received:Received:From:To:Subject:Date; DKIM-Signature: a=rsa-sha256; b=SsCX0J1b4EoHzQLxClsVt92hfyf4XSDKexvhG7AsYrAiBPEGVUs1jzpw++mX72+mBvoQhxZyDq4ZE9bZF/kwgAADxT8wINwbXPNrEfN+CmmtFWlSFb9Jb/s9yE51I4EIOhK8NoXedwQQXJYAflhYY2NphzyyIF6Yf3zCxVSxfXBzTmM+2fWBJpuQOxgk1LlUtFSsaNL/obAylaWC242KsXG0hEfri+pdhjJblaiczC59xW7Ef1vkysN0A0Uh3puxU42WyVyAiyvBlKP/Gm7nTgs6Xy6IaBxDmmhWVzO4poa2Df8Ntij+QMLU3EpKZqAs7PO3JNmDICW+F5Qua3L52Q==; s=purelymail1; d=purelymail.com; v=1; bh=shmxM4bUVRUrSgACTwwptZSAHe8WKnXJqBS0x4kXWWc=; h=Feedback-ID:Received:Received:From:To:Subject:Date; Feedback-ID: 20115:3760:null:purelymail X-Pm-Original-To: 79985 <at> debbugs.gnu.org Received: by smtp.purelymail.com (Purelymail SMTP) with ESMTPSA id 507663390; (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Thu, 11 Dec 2025 20:42:13 +0000 (UTC) Received: by zephyr.silentflame.com (Postfix, from userid 1000) id 827C3940498; Thu, 11 Dec 2025 20:42:12 +0000 (GMT) From: Sean Whitton <spwhitton@HIDDEN> To: Eli Zaretskii <eliz@HIDDEN>, "Paul D. Nelson" <ultrono@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, 79985 <at> debbugs.gnu.org Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop In-Reply-To: <86ecp0c21r.fsf@HIDDEN> References: <uxsg7t7bus6hi3.fsf@HIDDEN> <86ecp0c21r.fsf@HIDDEN> Date: Thu, 11 Dec 2025 20:42:12 +0000 Message-ID: <878qf84uor.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 79985 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hello, On Thu 11 Dec 2025 at 08:21pm +02, Eli Zaretskii wrote: > I don't quite understand how can we expect users to write custom > commands which will DTRT as part of the ispell command loop. Isn't > that quite a complex job for a user customization? why cannot one or > more hooks provide an ample opportunity for customizing ispell? > > I'm interested to hear what Stefan and Sean think about this. And > anyone else who has an opinion or ideas for how to design and > implement this kind of extension. I haven't hacked on Ispell so this might be naive, but maybe a way to provide a whole custom command loop would be simpler than a way to insert additional bindings into the existing loop? There could be functions a custom command loop could call to ask Ispell to say whether a word is misspelt and return its suggestions for the correct spelling, and then the custom loop would decide how to present these to the user. In general though I agree that we should proceed in this order: 1. whether this is a useful feature we should just implement upstream for everyone's use 2. if not, whether some easier-to-understand hooks would do the job 3. if not, then indeed we need to proceed very carefully to ensure the hook mechanism is flexible enough, and right now it's not clear that this mechanism fits the bill, without a lot more documentation. -- Sean Whitton
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 11 Dec 2025 18:21:33 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 11 13:21:33 2025 Received: from localhost ([127.0.0.1]:47212 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vTlID-0008Fc-5J for submit <at> debbugs.gnu.org; Thu, 11 Dec 2025 13:21:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:32906) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vTlI8-0008Du-UQ for 79985 <at> debbugs.gnu.org; Thu, 11 Dec 2025 13:21:30 -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 1vTlI3-0003l0-3M; Thu, 11 Dec 2025 13:21:23 -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=DqsyYSpTMkcLF3y7zSGTE8G1GvYVr3EDlK+OSJz2bew=; b=R6i523cC7vnD K4FWtfMUq43o10ZM/7P433aRibyeShazioZ+YelbONM+NQWq9ntadZaRIyzQacSTD2K4jZHtkhetr VajxHeQfmhwmpxMG6Ln0/HpU4bh0kOyIRbESof8v9p0zoMIFnTl317e0fxY1RqYJw51euNYsoGCO5 luYHfhjo6PDncuC6sLExUScqGzNlfoLzaHlaY3pCtBDIgK+hcI9USSVfnJosPnISIJ7Xl8UfL1bY4 Pb09IpyxIA+eYYMwnbf/8JgUvP6DcangEAiPkC1+iEt0GffH8SmrJ2/EmecsbJICqSFqr6WS5rcXo vjQDX+UFVrGSrC5l++AZGQ==; Date: Thu, 11 Dec 2025 20:21:20 +0200 Message-Id: <86ecp0c21r.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "Paul D. Nelson" <ultrono@HIDDEN>, Stefan Monnier <monnier@HIDDEN>, Sean Whitton <spwhitton@HIDDEN> In-Reply-To: <uxsg7t7bus6hi3.fsf@HIDDEN> (ultrono@HIDDEN) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7t7bus6hi3.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "Paul D. Nelson" <ultrono@HIDDEN> > Cc: 79985 <at> debbugs.gnu.org > Date: Thu, 11 Dec 2025 18:44:04 +0100 > > Thanks, I'll incorporate your comments, but maybe this point is worth > clarifying first: > > > TBH, those missing details could also be useful for discussing this > > feature, because I'm not yet sure it is indeed the best idea for what > > you had in mind (which I'm admittedly guessing, since you haven't > > described that). > > I have in my config a command that > > (1) looks backward in the visible buffer for a misspelled word, > (2) corrects it using ispell, and > (3) saves the correction to the abbrev table, so that it autocorrects in > the future. > > Most of the time, step (3) is desired, but occasionally I want to skip > it, and I only know this after seeing the proposed correction in the > ispell command loop. So I need a way to communicate my preference from > the command loop back to the calling function. The simplest way I could > think of was to add a command to the loop that sets some global flag. > > My current implementation (via :override advice) is available at > > https://github.com/ultronozm/czm-spell.el/blob/main/czm-spell.el > > The patch is an attempt to replace the advice with a generic extension > point. If we want to support an optional update of the abbrev table, we could have a simpler implementation. If, OTOH, we want to provide a much more general way of customizing the ispell command loop, we need to have a more thorough discussion about the design. For starters the commands offered by ispell include characters that indicate which candidate for correction to use, and those are computed dynamically. So how would the user who is coding such a customization know up front which characters will be free for use? And what will FUNCTION in your proposed data structure need to do? will it need to perform a replacement and then save the correction into the abbrevs, for example? Such a function is not really trivial to write, am I right? Can't we have an easier solution? Like perhaps add a new hook to be run by the ispell command loop after correcting a word? > > Please enhance the documentation to explain when and how this variable > > could be useful to users. > > The intent is to provide a generic way to add custom commands to the > ispell command loop. This can be used, for instance, when some Lisp > code needs to communicate user choices from the loop back to the calling > function. I don't quite understand how can we expect users to write custom commands which will DTRT as part of the ispell command loop. Isn't that quite a complex job for a user customization? why cannot one or more hooks provide an ample opportunity for customizing ispell? I'm interested to hear what Stefan and Sean think about this. And anyone else who has an opinion or ideas for how to design and implement this kind of extension.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at 79985) by debbugs.gnu.org; 11 Dec 2025 17:44:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 11 12:44:15 2025
Received: from localhost ([127.0.0.1]:46985 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vTki7-0005i0-9s
for submit <at> debbugs.gnu.org; Thu, 11 Dec 2025 12:44:15 -0500
Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]:43434)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vTki4-0005hi-Qv
for 79985 <at> debbugs.gnu.org; Thu, 11 Dec 2025 12:44:13 -0500
Received: by mail-ed1-x52f.google.com with SMTP id
4fb4d7f45d1cf-640e9f5951aso535877a12.1
for <79985 <at> debbugs.gnu.org>; Thu, 11 Dec 2025 09:44:12 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1765475046; x=1766079846; darn=debbugs.gnu.org;
h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:from:to
:cc:subject:date:message-id:reply-to;
bh=EdcYD22lOnTvBt29Wfd081dMZSj7Vg71tlTlq9YIkmA=;
b=gfMsrR+BGK4UOgOrwMWl+fAgl9WEXXFhhF1FUVqRp1R0KTXydhEv6EbLBTvP/SSsHT
lB0LT+aZUMsn6NQNJ5zrfnPi+CQ8jIkws8E8eWeWtFxcNyle02Jg1pNjNZmUONWMMnXp
RhckYM1yD3aFt77+1omOJ1WSYTOp4uP/dqHqaj9lEgLMmpMRGl+BiS5ykbLnHEQvrOgT
/1FFH+RMs5Tn7tCx4FDaGmNgs3p4XCspC64KHAqpmCv3S8sdsNWHuRpXRrY1ypWhJcY+
Zt2v/t5J+JVs+vbzEOJRd8Ecm/Jto//PhNloWlp45UVXsRYD5k2efiqLYpsBGSjD6iRX
BL5w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1765475046; x=1766079846;
h=mime-version:message-id:date:in-reply-to:subject:cc:to:from:x-gm-gg
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=EdcYD22lOnTvBt29Wfd081dMZSj7Vg71tlTlq9YIkmA=;
b=kDL1Fv5oSi3tT2gGZn6mCZUt34wRmvL+QyewfIS/EJPPjEHSqSbDmdVxMSPfjrnniA
wZuzcJBVoSlxzlyIvxIdCDQ53KNUxpSkESrZ62+C37XWy7g+bFIF2z66JXmWqmsmpd8g
NpLuMpl0cGsl+G6wlroBxirIRqVf2UXzP31C6mbk/btTQ2y8w0EZT5TD0QfNnJC/TxkC
O8/xTIZsCI7qSkXbXHQkNeTn8TiXpVOy5oNnCJLlr/iPLQDmrgj5hqE+oqwma0mFkS51
Q6Gc+wI6oVgMOxMVk4qTO7Yhidv3LvwA8zp6OK6wyGk8IekkuiC/EJtU1yFPxSRonwMs
4yeQ==
X-Gm-Message-State: AOJu0YxEmKNPx2CUDqqGfSkIcsORMJK6MA2WMBWtZPznj9z/nNaDwoyV
rNuSFHFvFv/OMd7yRwyCfRCwHb4+Qbm7TO3pbZ0EMTljmWkhg3cnlRnohy6afg==
X-Gm-Gg: AY/fxX5vXnjf8yp36qh/WAJgPkIfhuQNtAbLE0iOoEUQTt5thbA6vJqpRHKmQEAsKnX
gTZT5UZvLoGF6bB5COHViM2NUZet66akdkmxxCA1rIhLW18Ryh+QJecRmlDSELSEpLAlRR25SXW
m8+Mu0jUrv/sWtAusBeVCOv91HTeOixUgFZWh3MQpuuvPdk2kvtfb2VY+Qqc7q0UQ78bcXvy3eV
HsqXRSSse6SImf6ioPQA2fmLwK+bSVcb7XzgIb1+2nMDsLNgm09JbBhkNGGsc06xjbnKAzZGkmD
iN/RyYk9VYu3K0ouRUyifXPDHe9XCnG3klW3j/sdvSpq9lTSuB8zV+ErBGVc+yLE/LeIDCALt5q
n/XZ0gbPZVxLk2mMEmBVxAsWXbvT+hVC8ByfhqjvX9PPSbe1x1+o8XEXfrcISeWr+uRrjAuzWRk
3UAtip2t4GmyO5RA==
X-Google-Smtp-Source: AGHT+IHb45JoaXmwuYgoUYIoalDa69glER53YeCW/68pmE41egCWAA/qf+K7t53pNyZQoyRz0PesOA==
X-Received: by 2002:a17:907:d07:b0:b70:b9fe:aa56 with SMTP id
a640c23a62f3a-b7d02b165bfmr356857066b.20.1765475045764;
Thu, 11 Dec 2025 09:44:05 -0800 (PST)
Received: from localhost ([130.225.21.26]) by smtp.gmail.com with UTF8SMTPSA id
a640c23a62f3a-b7cfa29e084sm369483366b.7.2025.12.11.09.44.04
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Thu, 11 Dec 2025 09:44:05 -0800 (PST)
From: "Paul D. Nelson" <ultrono@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop
In-Reply-To: <86tsxxbgco.fsf@HIDDEN> (message from Eli Zaretskii on Thu, 11
Dec 2025 09:57:43 +0200)
Date: Thu, 11 Dec 2025 18:44:04 +0100
Message-ID: <uxsg7t7bus6hi3.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 79985
Cc: 79985 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)
Thanks, I'll incorporate your comments, but maybe this point is worth
clarifying first:
> TBH, those missing details could also be useful for discussing this
> feature, because I'm not yet sure it is indeed the best idea for what
> you had in mind (which I'm admittedly guessing, since you haven't
> described that).
I have in my config a command that
(1) looks backward in the visible buffer for a misspelled word,
(2) corrects it using ispell, and
(3) saves the correction to the abbrev table, so that it autocorrects in
the future.
Most of the time, step (3) is desired, but occasionally I want to skip
it, and I only know this after seeing the proposed correction in the
ispell command loop. So I need a way to communicate my preference from
the command loop back to the calling function. The simplest way I could
think of was to add a command to the loop that sets some global flag.
My current implementation (via :override advice) is available at
https://github.com/ultronozm/czm-spell.el/blob/main/czm-spell.el
The patch is an attempt to replace the advice with a generic extension
point.
> Please enhance the documentation to explain when and how this variable
> could be useful to users.
The intent is to provide a generic way to add custom commands to the
ispell command loop. This can be used, for instance, when some Lisp
code needs to communicate user choices from the loop back to the calling
function.
Regarding defvar/defcustom: I used 'defvar' because I imagined it being
mainly of programmatic use, but happy to adjust.
If that sounds reasonable, I'll send an updated patch addressing your
comments. Other suggestions would of course be welcome.
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.Received: (at 79985) by debbugs.gnu.org; 11 Dec 2025 07:57:54 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 11 02:57:54 2025 Received: from localhost ([127.0.0.1]:41341 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1vTbYg-0006VM-4n for submit <at> debbugs.gnu.org; Thu, 11 Dec 2025 02:57:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:60740) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1vTbYd-0006Ux-Cn for 79985 <at> debbugs.gnu.org; Thu, 11 Dec 2025 02:57:52 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <eliz@HIDDEN>) id 1vTbYX-0007XP-To; Thu, 11 Dec 2025 02:57:45 -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=Cda8EKjjk3C02/MfyyMPlVdWsSX4jRhZbVIfFP7M4GQ=; b=LfRZmov2FMGW 3RfkytHcLA0ZBdVU9hLcljTnXSYMJF08y0FB9GZjVkCpfPZgDjzHiCIm0Osk7h44AY+T9cVUJ+ZSq v1N93ityrPSyHLIbz+HiJGqiE1OeHmB/+WkIo2LyChs+bOcGth7LsECxR0nfO2YyV/PwFQD9g431t QuweLHiD528P4GXLTYH+WRl+Afjudh+pIVoltOTrdE5WUF6rwd6toL+EKjskKwnW8J/fC6wMJYbYI 6vUMQSVDzdftuXACTxKuZI5qnXNuUmI0pTdb9EzltivRNa81bcwSmnhfxZT4tixLcuOdZzyoh8syY 0B0SOeaBBGDmhp1hMlQHwQ==; Date: Thu, 11 Dec 2025 09:57:43 +0200 Message-Id: <86tsxxbgco.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> To: "Paul D. Nelson" <ultrono@HIDDEN> In-Reply-To: <uxsg7ta4zq5978.fsf@HIDDEN> (ultrono@HIDDEN) Subject: Re: bug#79985: [PATCH] Allow extra key bindings in ispell command loop References: <uxsg7ta4zq5978.fsf@HIDDEN> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 79985 Cc: 79985 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) > From: "Paul D. Nelson" <ultrono@HIDDEN> > Date: Wed, 10 Dec 2025 22:16:27 +0100 > > This patch adds a variable that allows extra bindings in the ispell > command loop. Thanks, a few comments below. > >From dafc9897fe8237490cd928af4e0d2be3516cc30b Mon Sep 17 00:00:00 2001 > From: Paul Nelson <ultrono@HIDDEN> > Date: Mon, 1 Dec 2025 09:02:45 +0100 > Subject: [PATCH 1/1] Allow extra key bindings in ispell command loop > > * lisp/textmodes/ispell.el (ispell-command-loop-extra-bindings): > New user option. This says "user option", but the new variable is a defvar, not a defcustom. A defvar is not a "user option" in our terminology. Which one did you intend to provide? > +--- > +*** New defvar 'ispell-command-loop-extra-bindings' > +This allows custom commands in the ispell command loop. Since you didn't update the manuals, this NEWS entry and the doc string are the only sources of documentation for this feature. And both are almost completely silent about the rationale and the use cases for this variable. Please enhance the documentation to explain when and how this variable could be useful to users. TBH, those missing details could also be useful for discussing this feature, because I'm not yet sure it is indeed the best idea for what you had in mind (which I'm admittedly guessing, since you haven't described that). > +(defvar ispell-command-loop-extra-bindings nil > + "Alist of extra key bindings honored by `ispell-command-loop'. > +Each element has the form (CHAR . FUNCTION). FUNCTION is called with > +the arguments (CHAR MISS GUESS WORD START END) and must return a > +suitable return value for `ispell-command-loop' (such as nil, 0, t, a > +replacement string, etc.).") This doesn't say what is CHAR and what are the limitations on CHARs defined by users in this data structure. Also, please either have an exhaustive list of possible return values for FUNCTION, or point to another variable/function whose doc string already describes that. Otherwise, how do we expect users to write such a FUNCTION? > (defun ispell-command-loop (miss guess word start end) > "Display possible corrections from MISS using GUESS for WORD in START..END. > MISS lists possible corrections. > @@ -2162,7 +2169,8 @@ ispell-command-loop > Global `ispell-pdict-modified-p' becomes a list where the only value > indicates whether the dictionary has been modified when option `a' > or `i' is used. > -Global `ispell-quit' is set to start location to continue spell session." > +Global `ispell-quit' is set to start location to continue spell session. > +See also `ispell-command-loop-extra-bindings'." This "see also" is welcome, but it should tell more that just the tip of the iceberg: how is that variable used by ispell-command-loop?
bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
Received: (at submit) by debbugs.gnu.org; 10 Dec 2025 21:16:48 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Dec 10 16:16:48 2025
Received: from localhost ([127.0.0.1]:36954 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1vTRYF-0000k7-T7
for submit <at> debbugs.gnu.org; Wed, 10 Dec 2025 16:16:48 -0500
Received: from lists.gnu.org ([2001:470:142::17]:41728)
by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.84_2) (envelope-from <ultrono@HIDDEN>) id 1vTRYA-0000jZ-Mu
for submit <at> debbugs.gnu.org; Wed, 10 Dec 2025 16:16:45 -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 <ultrono@HIDDEN>) id 1vTRY2-000439-HY
for bug-gnu-emacs@HIDDEN; Wed, 10 Dec 2025 16:16:35 -0500
Received: from mail-ej1-x62d.google.com ([2a00:1450:4864:20::62d])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
(Exim 4.90_1) (envelope-from <ultrono@HIDDEN>) id 1vTRY0-0004UO-Bs
for bug-gnu-emacs@HIDDEN; Wed, 10 Dec 2025 16:16:33 -0500
Received: by mail-ej1-x62d.google.com with SMTP id
a640c23a62f3a-b7277324054so46267666b.0
for <bug-gnu-emacs@HIDDEN>; Wed, 10 Dec 2025 13:16:31 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20230601; t=1765401390; x=1766006190; darn=gnu.org;
h=mime-version:message-id:date:subject:to:from:from:to:cc:subject
:date:message-id:reply-to;
bh=QApf6fzAVfI6nmeHdgiSWd4ZtTrRgIYjJvmCy5c2s5w=;
b=BUZRyIHxgCuBalpqPm+wOro7xPdoCoUfwmBAfpov9Nu/iPwZ3ZWi6P7WLylELcTfSS
MBxwEqwxaXxGgvyHP+Pp+uoOmNgWwVshJv+qqbJ79tPBdK32F/mLtMeD1YNsG7Fks6oI
zPNkcLHZ0zzOe/MoqyYrkqFhociwaroDSxNN+Ivk9Nmcq6Wsof9bjZD0C2d8ohWvkYyN
SSL4QUFw4xfonnfWuMZKNro7IbayHu/6OFA/H8sZbK+gehiqueSNT552nCcYiun6sWn5
eTvcUk04zyRBR7p2gSHKdcnSv56cs2hlOWwJcsc3LhiPmwshxYgcM+wNzi1nnmv1cmRq
1gEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20230601; t=1765401390; x=1766006190;
h=mime-version:message-id:date:subject:to:from:x-gm-gg
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=QApf6fzAVfI6nmeHdgiSWd4ZtTrRgIYjJvmCy5c2s5w=;
b=GcZgsi1Dq8kOVuhOYiI3lYDV1leuBgVLM6dbUyuJP6TvODf7hpChcupMRZS2nZTK+C
jsWoaYWC54reUAxw5D1sqzfqFIV6lFcMt3oH4zFOPIVZeGMekECOCPY+AfuodNmUUfW0
WRV0J6ga5qW7KKlqNhQGZ1SW0qtHstMFgF0WHN9cPhYm6cIW97n2OHbtbxjNngEXIT+Z
fYlriD/3pm/le1tIw1hswTpz49Swe8GrLfk31M4uJ3aLSJZ0CSnioRJR+ZLd9WT0uND4
2zy2ZSJAKaZXI63wMfe2rISH2wP5BvIRDCS51xpYOw3b8zKOmS+E+MauC/0TEp1hQVkw
X8ag==
X-Gm-Message-State: AOJu0YxMsSRyqakQpwPr5ljli7W13hzxFFRnCvbyIIgTVl8cOzjXIK9W
YRV4peWUVreK149Zne4Sjn2YSObOD00cFh45JCJFP+UoDvc7ItoBIvKK4i62Eg==
X-Gm-Gg: AY/fxX4y4/jppjP2qloFeM8lyORLA8854zrw9IEc2sjfryyoUcssxG30H0PHrBOSazS
4+xWBDtyGfsxeXnXkqsfkb1DTWlhi5NiM+IRuvcu/pYTT7poZURfArI2K0Lht2aJl+V2C96UDYm
JHQO7gshrDAtkduUtRaS5FGXUhsXfUhuRLXBFNzQgEeLS4qxpxOPDjkosVHQpXdjwzj4GPmMpLZ
beFwc9YrXyVjKEsFS4l/no2ELpgySB9S3fn/fjjhciWFchVKKfAl2aWBI9tGo55n4zCURzF8Uap
Xw7CSgnwS+a/ZFs5WW9mmIauhaKqNxgqcJVt6RPyg5+k4gOBsMb2TbRPmXr1TliSwPTlNOIJYmB
XPU7iBdUg3Yu+zNSuwJMALne+p8z9UzdLkn0dNpG9NyL4U2UQlvpBvJ3+zG0OKik1FRlGU9vLM+
LPzfQdzoGcElLugg==
X-Google-Smtp-Source: AGHT+IEYoj8f/fueMgasQdCFhCOzVTRrODmZa+ZfdYg2oMteTT9lc8iWHNhkXq8OoZ1jjGC5Ap3XvA==
X-Received: by 2002:a17:907:3d94:b0:b72:b8e4:3aea with SMTP id
a640c23a62f3a-b7ce820937bmr418350166b.10.1765401390042;
Wed, 10 Dec 2025 13:16:30 -0800 (PST)
Received: from localhost ([130.225.16.16]) by smtp.gmail.com with UTF8SMTPSA id
a640c23a62f3a-b7cfa5d1e89sm56906466b.69.2025.12.10.13.16.29
for <bug-gnu-emacs@HIDDEN>
(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
Wed, 10 Dec 2025 13:16:29 -0800 (PST)
From: "Paul D. Nelson" <ultrono@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: [PATCH] Allow extra key bindings in ispell command loop
Date: Wed, 10 Dec 2025 22:16:27 +0100
Message-ID: <uxsg7ta4zq5978.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
Received-SPF: pass client-ip=2a00:1450:4864:20::62d;
envelope-from=ultrono@HIDDEN; helo=mail-ej1-x62d.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 (/)
--=-=-=
Content-Type: text/plain
This patch adds a variable that allows extra bindings in the ispell
command loop.
--=-=-=
Content-Type: text/x-patch
Content-Disposition: attachment;
filename=0001-Allow-extra-key-bindings-in-ispell-command-loop.patch
Content-Description: [PATCH 1/1] Allow extra key bindings in ispell command loop
From dafc9897fe8237490cd928af4e0d2be3516cc30b Mon Sep 17 00:00:00 2001
From: Paul Nelson <ultrono@HIDDEN>
Date: Mon, 1 Dec 2025 09:02:45 +0100
Subject: [PATCH 1/1] Allow extra key bindings in ispell command loop
* lisp/textmodes/ispell.el (ispell-command-loop-extra-bindings):
New user option.
(ispell-command-loop): Use it.
---
etc/NEWS | 4 ++++
lisp/textmodes/ispell.el | 13 ++++++++++++-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/etc/NEWS b/etc/NEWS
index 2f362a155bb..59fd91031f3 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1974,6 +1974,10 @@ option 'doc-view-djvused-program'.
The default value is now 30 seconds, as the old value was too short to
allow reading the help text.
+---
+*** New defvar 'ispell-command-loop-extra-bindings'
+This allows custom commands in the ispell command loop.
+
** Flyspell
---
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index 6476a169613..7dc50242271 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -2148,6 +2148,13 @@ ispell-update-post-hook
It is called once per iteration, before displaying a prompt to
the user.")
+(defvar ispell-command-loop-extra-bindings nil
+ "Alist of extra key bindings honored by `ispell-command-loop'.
+Each element has the form (CHAR . FUNCTION). FUNCTION is called with
+the arguments (CHAR MISS GUESS WORD START END) and must return a
+suitable return value for `ispell-command-loop' (such as nil, 0, t, a
+replacement string, etc.).")
+
(defun ispell-command-loop (miss guess word start end)
"Display possible corrections from MISS using GUESS for WORD in START..END.
MISS lists possible corrections.
@@ -2162,7 +2169,8 @@ ispell-command-loop
Global `ispell-pdict-modified-p' becomes a list where the only value
indicates whether the dictionary has been modified when option `a'
or `i' is used.
-Global `ispell-quit' is set to start location to continue spell session."
+Global `ispell-quit' is set to start location to continue spell session.
+See also `ispell-command-loop-extra-bindings'."
(let ((count ?0)
(choices miss)
(window-min-height (min window-min-height
@@ -2419,6 +2427,9 @@ ispell-command-loop
((= char ?\C-z)
(funcall (key-binding "\C-z"))
t)
+ ((assq char ispell-command-loop-extra-bindings)
+ (let ((handler (cdr (assq char ispell-command-loop-extra-bindings))))
+ (funcall handler char miss guess word start end)))
(t (ding) t))))))
result)
;; protected
--
2.50.1 (Apple Git-155)
--=-=-=--
"Paul D. Nelson" <ultrono@HIDDEN>:bug-gnu-emacs@HIDDEN.
Full text available.bug-gnu-emacs@HIDDEN:bug#79985; Package emacs.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.