[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