X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: Eric Blake Subject: Re: Tried out cygwin-inst-20100111.tar.bz2 Date: Wed, 13 Jan 2010 16:04:32 +0000 (UTC) Lines: 30 Message-ID: References: <20100112164834 DOT GV14511 AT calimero DOT vinschen DOT de> <20100113110729 DOT GX14511 AT calimero DOT vinschen DOT de> <4B4DCB0C DOT 9040402 AT byu DOT net> <20100113140642 DOT GZ14511 AT calimero DOT vinschen DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit User-Agent: Loom/3.14 (http://gmane.org/) X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Corinna Vinschen cygwin.com> writes: > > IIU the SUSv4 description C, and given that a newly opened console is > always setup with the default termios settings anyway, we could simply > set O_TTY_INIT to 0 and be done with it: Yep, that's my understanding as well. This link is also informative: http://www.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap11.html#tag_11_02 "Since the termios structure may include additional members, and the standard members may include both standard and non-standard modes, the structure should never be initialized directly by the application as this may cause the terminal to behave in a non-conforming manner. When opening a terminal device (other than a pseudo-terminal) that is not already open in any process, it should be opened with the O_TTY_INIT flag before initializing the structure using tcgetattr( ) to ensure that any non-standard elements of the termios structure are set to values that result in conforming behavior of the terminal interface." In other words, tcsetattr should always be used on a struct termios obtained from a read-modify-write manner, and never from a memset(0) manner, where the use of O_TTY_INIT guarantees (trivially, if it is defined to 0) that any extension fields in struct termios that need to be set to a non-zero value for POSIX conformance are set correctly. -- Eric Blake -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple