Subject: bug#5148: Lossage in comint history

From: Juri Linkov <[email-masked]>
Date: Mon, 07 Dec 2009 23:05:16 +0200

>> 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/