[issue41378] IDLE EOL convention not set on a empty file
Raymond Hettinger
report at bugs.python.org
Thu Jul 23 20:42:59 EDT 2020
New submission from Raymond Hettinger <raymond.hettinger at gmail.com>:
I think this is a new bug, present in Python 3.8.5 but not present in 3.8.3.
Steps to reproduce:
* $ touch xyzpdq.py # Creates new file, zero bytes in length
* $ python3.8 -m idlelib.idle xyzdpq.py
* Enter text: print('hello world')
* Attempt to save the file with Cmd-S
* This seems to be unrecoverable and results
in losing all the code that was entered.
---------------- example session ---------------
~ $ cd tmp
~/tmp $ touch qwerty.py
~/tmp $ python3.8 -m idlelib.idle qwerty.py
Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/tkinter/__init__.py", line 1883, in __call__
return self.func(*args)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/idlelib/multicall.py", line 176, in handler
r = l[i](event)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/idlelib/iomenu.py", line 200, in save
if self.writefile(self.filename):
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/idlelib/iomenu.py", line 232, in writefile
text = self.fixnewlines()
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/idlelib/iomenu.py", line 252, in fixnewlines
text = text.replace("\n", self.eol_convention)
TypeError: replace() argument 2 must be str, not None
----------
assignee: terry.reedy
components: IDLE
keywords: 3.8regression, 3.9regression
messages: 374155
nosy: rhettinger, terry.reedy
priority: high
severity: normal
status: open
title: IDLE EOL convention not set on a empty file
type: crash
versions: Python 3.10, Python 3.8, Python 3.9
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue41378>
_______________________________________
More information about the Python-bugs-list
mailing list