]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.13] gh-123177: Deactivate line wrap for Apple Terminal via scape codes in the...
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 25 Aug 2024 22:01:56 +0000 (00:01 +0200)
committerGitHub <noreply@github.com>
Sun, 25 Aug 2024 22:01:56 +0000 (22:01 +0000)
gh-123177: Deactivate line wrap for Apple Terminal via scape codes in the new REPL (GH-123267)
(cherry picked from commit fdb3f9b588f58f3cf95fe1dbf6e5b61ef525a351)

Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
Lib/_pyrepl/unix_console.py
Misc/NEWS.d/next/Core and Builtins/2024-08-23-15-59-54.gh-issue-123177.OLcaC5.rst [new file with mode: 0644]

index 18b2bba91c8c9b73d9a8730067b4eceaeb7ff046..bdea28527c8c62efe3ceea41a349899c20ea0d4d 100644 (file)
@@ -29,6 +29,7 @@ import signal
 import struct
 import termios
 import time
+import platform
 from fcntl import ioctl
 
 from . import curses
@@ -334,6 +335,10 @@ class UnixConsole(Console):
         raw.cc[termios.VTIME] = 0
         tcsetattr(self.input_fd, termios.TCSADRAIN, raw)
 
+        # In macOS terminal we need to deactivate line wrap via ANSI escape code
+        if platform.system() == "Darwin" and os.getenv("TERM_PROGRAM") == "Apple_Terminal":
+            os.write(self.output_fd, b"\033[?7l")
+
         self.screen = []
         self.height, self.width = self.getheightwidth()
 
@@ -362,6 +367,9 @@ class UnixConsole(Console):
         self.flushoutput()
         tcsetattr(self.input_fd, termios.TCSADRAIN, self.__svtermstate)
 
+        if platform.system() == "Darwin" and os.getenv("TERM_PROGRAM") == "Apple_Terminal":
+            os.write(self.output_fd, b"\033[?7h")
+
         if hasattr(self, "old_sigwinch"):
             signal.signal(signal.SIGWINCH, self.old_sigwinch)
             del self.old_sigwinch
diff --git a/Misc/NEWS.d/next/Core and Builtins/2024-08-23-15-59-54.gh-issue-123177.OLcaC5.rst b/Misc/NEWS.d/next/Core and Builtins/2024-08-23-15-59-54.gh-issue-123177.OLcaC5.rst
new file mode 100644 (file)
index 0000000..da688ef
--- /dev/null
@@ -0,0 +1,2 @@
+Deactivate line wrap in the Apple Terminal via a ANSI escape code. Patch by
+Pablo Galindo