svn commit: r189542 - head/bin/sh

Ed Schouten ed at FreeBSD.org
Sun Mar 8 12:09:56 PDT 2009


Author: ed
Date: Sun Mar  8 19:09:55 2009
New Revision: 189542
URL: http://svn.freebsd.org/changeset/base/189542

Log:
  Don't disable CR-to-NL translation when waiting for data to arrive.
  
  A difference between the old and the new TTY layer is that the new
  implementation does not perform any post-processing before returning
  data back to userspace when calling read().
  
  sh(1)'s read turns the TTY into a raw mode before calling select(). This
  means that the first character will not receive any ICRNL processing.
  Inherit this flag from the original terminal attributes.
  
  Even though this issue is not present on RELENG_*, I'm MFCing it to make
  sh(1) in jails behave better.
  
  PR:		bin/129566
  MFC after:	2 weeks

Modified:
  head/bin/sh/miscbltin.c

Modified: head/bin/sh/miscbltin.c
==============================================================================
--- head/bin/sh/miscbltin.c	Sun Mar  8 19:07:44 2009	(r189541)
+++ head/bin/sh/miscbltin.c	Sun Mar  8 19:09:55 2009	(r189542)
@@ -147,6 +147,7 @@ readcmd(int argc __unused, char **argv _
 		if (tcgetattr(0, &told) == 0) {
 			memcpy(&tnew, &told, sizeof(told));
 			cfmakeraw(&tnew);
+			tnew.c_iflag |= told.c_iflag & ICRNL;
 			tcsetattr(0, TCSANOW, &tnew);
 			tsaved = 1;
 		}


More information about the svn-src-head mailing list