gh-123177: Deactivate line wrap for Apple Terminal via scape codes in the new REPL (#123267)

This commit is contained in:
Pablo Galindo Salgado 2024-08-25 22:38:49 +01:00 committed by GitHub
parent c535a49e92
commit fdb3f9b588
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 0 deletions

View 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