Tweak the handling of $GDBHISTSIZE edge cases [PR gdb/16999]
authorPatrick Palka <patrick@parcs.ath.cx>
Tue, 12 May 2015 10:50:26 +0000 (06:50 -0400)
committerPatrick Palka <patrick@parcs.ath.cx>
Wed, 17 Jun 2015 18:12:19 +0000 (14:12 -0400)
commitbc460514b9db46a491c2c39cd118b02608742968
treef69ab69c50811c321f6e2d66a04ceca2ffb766e1
parentb58c513b7932cfb9852d66e07282b9c2379197ed
Tweak the handling of $GDBHISTSIZE edge cases [PR gdb/16999]

When GDB reads a nonsensical value for the GDBHISTSIZE environment
variable, i.e. one that is non-numeric or negative, GDB then sets its
history size to 0.  This behavior is annoying and also inconsistent
with the behavior of bash.

This patch makes the behavior of invalid GDBHISTSIZE consistent with how
bash handles HISTSIZE.  When we encounter a null or out-of-range
GDBHISTSIZE (outside of [0, INT_MAX]) we now set the history size to
unlimited instead of 0.  When we encounter a non-numeric GDBHISTSIZE we
do nothing.

gdb/ChangeLog:

PR gdb/16999
* NEWS: Mention new GDBHISTSIZE behavior.
* top.c (init_history): For null or out-of-range GDBHISTSIZE,
set history size to unlimited.  Ignore non-numeric GDBHISTSIZE.

gdb/doc/ChangeLog:

PR gdb/16999
* gdb.texinfo (Command History): Mention new GDBHISTSIZE
behavior.

gdb/testsuite/ChangeLog:

PR gdb/16999
* gdb.base/gdbhistsize-history.exp: New test.
gdb/ChangeLog
gdb/NEWS
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/gdbhistsize-history.exp [new file with mode: 0644]
gdb/top.c