Subject: bug#48770: Command `eshell-command` raises error when `eshell-hist-ignoredups` is 'erase

From: Okam <[email-masked]>
Date: Wed, 02 Jun 2021 21:26:08 +0000

On 6/1/21 11:48 AM, Lars Ingebrigtsen wrote:
 > What Emacs version is this with?

This is from the master branch with with repository version
0c7f1e2e42d6bf9f95e88c02d4e1ed9cb40693d8, as determined by
`emacs-repository-version`.

I also tried pulling and compiling from the master branch with
repository version 09081ca119c3debcc72159a46d3bafabfd7519bb.  The error
is still raised.

This is with native compilation enabled, if that changes things.

 > Do you have a step-by-step recipe to reproduce the problem, starting
 > from "emacs -Q"?

1. Start Emacs with `emacs -Q`
2. Evaluate `(setq eshell-hist-ignoredups 'erase)`
3. Run `M-x eshell-command`
4. Run a command, such as `ls`.
5. The error "ring-remove: Ring empty" is signaled.
6. The directory listing is not created.

The value of `eshell-history-ring` during this is

(0 0 .
    [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
nil nil nil])

Does any of this information help?