[Python-checkins] bpo-41373: IDLE: Fix saving files loaded with no newlines or mixed newlines (GH-21597)
Miss Islington (bot)
webhook-mailer at python.org
Fri Jul 24 23:38:53 EDT 2020
https://github.com/python/cpython/commit/1c562ced2123f4d5a250fe9072ac93504cc41967
commit: 1c562ced2123f4d5a250fe9072ac93504cc41967
branch: 3.8
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2020-07-24T20:38:46-07:00
summary:
bpo-41373: IDLE: Fix saving files loaded with no newlines or mixed newlines (GH-21597)
Fixes regression in 3.8.4 and 3.9.0b4.
Co-authored-by: Terry Jan Reedy <tjreedy at udel.edu>
(cherry picked from commit 0dd463c8a4269137ebed7cc29605c555030df94f)
Co-authored-by: Serhiy Storchaka <storchaka at gmail.com>
files:
A Misc/NEWS.d/next/IDLE/2020-07-24-17-49-58.bpo-41373.YQIPu_.rst
M Lib/idlelib/iomenu.py
diff --git a/Lib/idlelib/iomenu.py b/Lib/idlelib/iomenu.py
index 74ebefd4208f7..8bb2fa6a6e793 100644
--- a/Lib/idlelib/iomenu.py
+++ b/Lib/idlelib/iomenu.py
@@ -155,6 +155,17 @@ def loadfile(self, filename):
parent=self.text)
return False
+ if not isinstance(eol_convention, str):
+ # If the file does not contain line separators, it is None.
+ # If the file contains mixed line separators, it is a tuple.
+ if eol_convention is not None:
+ tkMessageBox.showwarning("Mixed Newlines",
+ "Mixed newlines detected.\n"
+ "The file will be changed on save.",
+ parent=self.text)
+ converted = True
+ eol_convention = os.linesep # default
+
self.text.delete("1.0", "end")
self.set_filename(None)
self.fileencoding = fileencoding
diff --git a/Misc/NEWS.d/next/IDLE/2020-07-24-17-49-58.bpo-41373.YQIPu_.rst b/Misc/NEWS.d/next/IDLE/2020-07-24-17-49-58.bpo-41373.YQIPu_.rst
new file mode 100644
index 0000000000000..b50a72fe676a8
--- /dev/null
+++ b/Misc/NEWS.d/next/IDLE/2020-07-24-17-49-58.bpo-41373.YQIPu_.rst
@@ -0,0 +1,3 @@
+Save files loaded with no line ending, as when blank, or different line
+endings, by setting its line ending to the system default. Fix regression in
+3.8.4 and 3.9.0b4.
More information about the Python-checkins
mailing list