Issue #5845: In site.py, only load readline history from ~/.python_history if no history has been read already. This avoids double writes to the history file at shutdown.

This commit is contained in:
Antoine Pitrou 2013-09-29 22:18:38 +02:00
parent 95536b8405
commit 5d23e6d543
2 changed files with 17 additions and 6 deletions

View File

@ -405,12 +405,19 @@ def enablerlcompleter():
# want to ignore the exception.
pass
history = os.path.join(os.path.expanduser('~'), '.python_history')
try:
readline.read_history_file(history)
except IOError:
pass
atexit.register(readline.write_history_file, history)
if readline.get_history_item(1) is None:
# If no history was loaded, default to .python_history.
# The guard is necessary to avoid doubling history size at
# each interpreter exit when readline was already configured
# through a PYTHONSTARTUP hook, see:
# http://bugs.python.org/issue5845#msg198636
history = os.path.join(os.path.expanduser('~'),
'.python_history')
try:
readline.read_history_file(history)
except IOError:
pass
atexit.register(readline.write_history_file, history)
sys.__interactivehook__ = register_readline

View File

@ -15,6 +15,10 @@ Core and Builtins
Library
-------
- Issue #5845: In site.py, only load readline history from ~/.python_history
if no history has been read already. This avoids double writes to the
history file at shutdown.
- Properly initialize all fields of a SSL object after allocation.
- Issue #19095: SSLSocket.getpeercert() now raises ValueError when the