Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

[BUG] With CORRECT_ALL, an interrupted correct puts a truncated entry in history



Hi,

I was wondering why I got truncated entries in the history
over the past years...

Consider the following with zsh 5.9:

$ zsh -f
zira% touch file
zira% setopt CORRECT_ALL
zira% echo fil && true
zsh: correct 'fil' to 'file' [nyae]?

Here, type Ctrl-C to interrupt.

zira% history
    1  touch file
    2  setopt CORRECT_ALL
    3  echo fil

"echo fil" shouldn't have been put in the history.

Even when I just type "echo fil" instead of "echo fil && true",
this is incorrect. But with data after the word to correct, this
is even worse, as one gets an unexpected entry in the history.

When I type 'a' instead of Ctrl-C, the full command line is put
in the history. This is better, but I'm wondering whether this
behavior is correct. The man page just says (see SPROMPT):

    a (`abort')
        Discard the entire command line without running it.

Nothing about the history. I think that the history shouldn't be
changed. But in this case, a new action (e.g. 'h' for "history")
to discard the entire command line and put it in the history
could be useful in some occasions.

BTW, the behavior in case of several spelling corrections should
be documented.

-- 
Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)




Messages sorted by: Reverse Date, Date, Thread, Author