GNU bug report logs - #65318
29.1.50; `comint-run' should read-string with specified history list

Previous Next

Package: emacs;

Reported by: bruno cuconato <bcclaro <at> gmail.com>

Date: Tue, 15 Aug 2023 20:17:02 UTC

Severity: normal

Found in version 29.1.50

To reply to this bug, email your comments to 65318 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#65318; Package emacs. (Tue, 15 Aug 2023 20:17:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to bruno cuconato <bcclaro <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 15 Aug 2023 20:17:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: bruno cuconato <bcclaro <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 29.1.50; `comint-run' should read-string with specified history list
Date: Tue, 15 Aug 2023 17:15:41 -0300
Not really a bug, but a feature request. When I run `comint-run' I use
the history to find the switches I need, and often have to waddle
through a bunch of unrelated input. As I understand it, that is
because the interactive `read-string' call does not specify a history
list (and thus a global one is used, I assume.¹) I'm not sure what the
best solution is: do we want to add a history list just for the
switches, or do we want it to be shared with other commands (like
`shell-command'?), or would any change to the history list argument
break people's workflows? I for one would prefer the first option.

¹: An unrelated mini-bug: `read-string's docstring does not say what
 happens when the argument is nil, although maybe the manual might do
 so (I haven't checked). Obviously, one can simply check the C source.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65318; Package emacs. (Wed, 16 Aug 2023 11:45:02 GMT) Full text and rfc822 format available.

Message #8 received at 65318 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: bruno cuconato <bcclaro <at> gmail.com>
Cc: 65318 <at> debbugs.gnu.org
Subject: Re: bug#65318: 29.1.50;
 `comint-run' should read-string with specified history list
Date: Wed, 16 Aug 2023 14:44:08 +0300
> From: bruno cuconato <bcclaro <at> gmail.com>
> Date: Tue, 15 Aug 2023 17:15:41 -0300
> 
> 
> Not really a bug, but a feature request. When I run `comint-run' I use
> the history to find the switches I need, and often have to waddle
> through a bunch of unrelated input. As I understand it, that is
> because the interactive `read-string' call does not specify a history
> list (and thus a global one is used, I assume.¹) I'm not sure what the
> best solution is: do we want to add a history list just for the
> switches, or do we want it to be shared with other commands (like
> `shell-command'?), or would any change to the history list argument
> break people's workflows? I for one would prefer the first option.

Since the best solution is not clear, I think we should provide a user
option that would name the history to use, and make it nil by default,
to preserve the current behavior.  Patches welcome.

> ¹: An unrelated mini-bug: `read-string's docstring does not say what
>  happens when the argument is nil, although maybe the manual might do
>  so (I haven't checked). Obviously, one can simply check the C source.

The doc string says to check the documentation of read-from-minibuffer
for the details of HISTORY, and read-from-minibuffer says that if the
argument is nil or omitted, it defaults to minibuffer-history.  So I
think we are okay in that department.

Thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65318; Package emacs. (Sun, 20 Aug 2023 17:28:02 GMT) Full text and rfc822 format available.

Message #11 received at 65318 <at> debbugs.gnu.org (full text, mbox):

From: Juri Linkov <juri <at> linkov.net>
To: bruno cuconato <bcclaro <at> gmail.com>
Cc: 65318 <at> debbugs.gnu.org
Subject: Re: bug#65318: 29.1.50; `comint-run' should read-string with
 specified history list
Date: Sun, 20 Aug 2023 19:58:07 +0300
> Not really a bug, but a feature request. When I run `comint-run' I use
> the history to find the switches I need, and often have to waddle
> through a bunch of unrelated input. As I understand it, that is
> because the interactive `read-string' call does not specify a history
> list (and thus a global one is used, I assume.¹) I'm not sure what the
> best solution is: do we want to add a history list just for the
> switches, or do we want it to be shared with other commands (like
> `shell-command'?), or would any change to the history list argument
> break people's workflows? I for one would prefer the first option.

Instead of adding new history variables with user options
to every use of 'read-string' such as in 'comint-run':
(read-string "Run program: ") and (read-string "Switches: "),
maybe better to add a single common option with a mapping
from a command and a prompt regexp to the history variable.

Then you could customize it to e.g.:

  (setq read-history-variables
   '((comint-run "Run program" shell-command-history)
     (comint-run "Switches" my-switches-history)))




This bug report was last modified 257 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.