bug#5148: Lossage in comint history

From:

Juri Linkov

Subject:

bug#5148: Lossage in comint history

Date:

Mon, 07 Dec 2009 23:05:16 +0200

User-agent:

Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (x86_64-pc-linux-gnu)

>> The following patch make `comint-input-ring-size' customizable.
>> The type should be `integer' because this value is used by `make-ring'
>> to create the history ring. The default value increased to 500
>> to be the same as the default value of HISTFILESIZE and HISTSIZE.
>
> Actually, to fix the bug right, comint-read-input-ring should be changed
> to grow the ring so as to accomodate all the saved history. This might
> still truncate it more than bash would have, but at least it won't make
> your .bash_history shorter than it was.
Someone still might want to truncate the history to the length defined
by `comint-input-ring-size'. So adding defcustom is useful in any case.
Later we could add more options to `comint-input-ring-size' e.g. `t'
like in `message-log-max'. It's easy to implement this (by reading
all history in `comint-read-input-ring' and using `ring-insert+extend'
while adding new elements) but I don't think this should be the default
because bash users might prefer `comint-input-ring-size' to have the
same value as `HISTFILESIZE'. Maybe we should add another option
for `comint-input-ring-size' to set it to (getenv "HISTFILESIZE")
when it is used by `M-x shell'.
--
Juri Linkov
http://www.jurta.org/emacs/