]> granicus.if.org Git - sudo/commitdiff
When copying the terminal attributes to the pty, be sure not to set ONLCR.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Sun, 27 Sep 2009 22:12:45 +0000 (22:12 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Sun, 27 Sep 2009 22:12:45 +0000 (22:12 +0000)
This prevents extra carriage returns from ending up in the script output file.

term.c

diff --git a/term.c b/term.c
index 92f381291eaeee01fee4e090aaa64abd9ff15d20..ca86c607c43eaaa307e863e93fc0edcf8c7b0b2c 100644 (file)
--- a/term.c
+++ b/term.c
@@ -191,6 +191,8 @@ term_copy(src, dst)
 
     if (tcgetattr(src, &tt) != 0)
        return(0);
+    /* Do not convert line endings from NL to NLCR. */
+    CRL(tt.c_oflag, ONLCR);
     if (tcsetattr(dst, TCSAFLUSH, &tt) != 0)
        return(0);
     return(1);
@@ -249,6 +251,8 @@ term_copy(src, dst)
        ioctl(src, TIOCLGET, &lb)) {
        return(0);
     }
+    /* Do not convert line endings from NL to NLCR. */
+    CLR(b.sg_flags, CRMOD);
     if (ioctl(dst, TIOCSETP, &b) != 0 || ioctl(dst, TIOCSETC, &tc) != 0 ||
        ioctl(dst, TIOCSLTC, &lc) != 0 || ioctl(dst, TIOCLSET, &lb) != 0 ||
        ioctl(dst, TIOCSETD, &l) != 0) {