From 5f6d6bef1dec5667e6f7ec5eb3f0b3dfbfc93c83 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 12 Jul 2008 08:43:29 +0000 Subject: Split out a portage._create_pty_or_pipe() function to avoid duplicate code. svn path=/main/trunk/; revision=11024 --- pym/_emerge/__init__.py | 27 ++------------------------- 1 file changed, 2 insertions(+), 25 deletions(-) (limited to 'pym/_emerge') diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index b111157ea..a282278c9 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -2533,35 +2533,12 @@ class EbuildPhase(SubProcess): settings.get("EBUILD_EXIT_STATUS_FILE")) if logfile: - if portage._disable_openpty: - master_fd, slave_fd = os.pipe() - else: - from pty import openpty - try: - master_fd, slave_fd = openpty() - got_pty = True - except EnvironmentError, e: - portage._disable_openpty = True - portage.writemsg("openpty failed: '%s'\n" % str(e), - noiselevel=-1) - del e - master_fd, slave_fd = os.pipe() - - if got_pty: - # Disable post-processing of output since otherwise weird - # things like \n -> \r\n transformations may occur. - import termios - mode = termios.tcgetattr(slave_fd) - mode[1] &= ~termios.OPOST - termios.tcsetattr(slave_fd, termios.TCSANOW, mode) + got_pty, master_fd, slave_fd = \ + portage._create_pty_or_pipe(copy_term_size=fd_pipes_orig[1]) fcntl.fcntl(master_fd, fcntl.F_SETFL, fcntl.fcntl(master_fd, fcntl.F_GETFL) | os.O_NONBLOCK) - if got_pty and os.isatty(fd_pipes_orig[1]): - from portage.output import get_term_size, set_term_size - rows, columns = get_term_size() - set_term_size(rows, columns, slave_fd) fd_pipes[0] = fd_pipes_orig[0] fd_pipes[1] = slave_fd fd_pipes[2] = slave_fd -- cgit v1.2.3-1-g7c22