This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Fix PR gdb/16999
- From: Patrick Palka <patrick at parcs dot ath dot cx>
- To: Mark Kettenis <mark dot kettenis at xs4all dot nl>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Wed, 13 May 2015 18:38:18 -0400
- Subject: Re: [PATCH] Fix PR gdb/16999
- Authentication-results: sourceware.org; auth=none
- References: <1431555450-15493-1-git-send-email-patrick at parcs dot ath dot cx> <201505132224 dot t4DMOLg0002690 at glazunov dot sibelius dot xs4all dot nl>
On Wed, May 13, 2015 at 6:24 PM, Mark Kettenis <mark.kettenis@xs4all.nl> wrote:
>>
>> When GDB reads a nonsensical value for the HISTSIZE environment variable
>> variable, i.e. one that is non-numeric or negative, GDB then sets its
>> history size to 0. This behavior is contrary to that of bash, which
>> defaults the history size to unlimited in such cases.
>>
>> This patch makes the behavior of invalid HISTSIZE match that of bash.
>> When we encounter an invalid HISTSIZE we now set the history size to
>> unlimited instead of 0.
>
> The GDB behaviour makes more sense to me especially in light of:
>
>> - /* Prefer ending up with no history rather than overflowing
>> - readline's history interface, which uses signed 'int'
>> - everywhere. */
We won't overflow readline's history interface with or without the
patch. The setting of our history size to -1 instructs
set_readline_history_size() to call unstifle_history() instead of
stifle_history(size).
I personally don't like GDB's behavior because 1) it's not consistent
with bash and 2) it's unforgiving: a mere typo when setting HISTSIZE
will truncate the entire history file at exit.
Another possibility is to not touch the history size at all when
HISTSIZE is invalid. That makes the most sense to me but then the
inconsistency with bash still remains. Dunno what's better..