From owner-freebsd-bugs Wed Oct 21 15:23:47 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id PAA20111 for freebsd-bugs-outgoing; Wed, 21 Oct 1998 15:23:47 -0700 (PDT) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: from lariat.lariat.org (lariat.lariat.org [206.100.185.2]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id PAA20078 for ; Wed, 21 Oct 1998 15:23:39 -0700 (PDT) (envelope-from brett@lariat.org) Received: (from brett@localhost) by lariat.lariat.org (8.8.8/8.8.6) id QAA18184; Wed, 21 Oct 1998 16:22:52 -0600 (MDT) Message-Id: <4.1.19981021161615.00be3ef0@mail.lariat.org> X-Sender: brett@mail.lariat.org X-Mailer: QUALCOMM Windows Eudora Pro Version 4.1 Date: Wed, 21 Oct 1998 16:22:48 -0600 To: shmit@kublai.com, Steve Friedrich , Studded From: Brett Glass Subject: Re: No terminal echo after certain commands Cc: "bugs@FreeBSD.ORG" In-Reply-To: <19981021161438.D266@kublai.com> References: <4.1.19981020191601.00c54180@mail.lariat.org> <199810210102.VAA30851@laker.net> <4.1.19981020191601.00c54180@mail.lariat.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org At 04:14 PM 10/21/98 -0400, Brian Cully wrote: >FWIW, the comments in main.c:quit() seem to indicate that the terminal >should be reset to a sane state on ^C (which calls quit()): > > /* > * Put cursor at bottom left corner, clear the line, > * reset the terminal modes, and exit. > */ > >If it's not doing that, I'm sure no one will complain if you submit a >patch (or at least a reasonably detailed PR describing the circumstances >under which you see this behaviour). That's just what I was doing when I received this message. The interesting thing is that the NetBSD and FreeBSD versions are almost the same, and both OUGHT to respond to SIGINT by executing the following code: /* * Put cursor at bottom left corner, clear the line, * reset the terminal modes, and exit. */ quitting = 1; lower_left(); clear_eol(); deinit(); flush(); raw_mode(0); exit(0); Where deinit() just sends the "deinitialization" terminal string from the termcaps entry. In other words, the author DID INTEND to clean up gracefully on SIGINT. Yet we have one report that they don't. This means that the problem could be in the termcaps database, in the tty driver, in I/O from signal handlers.... Not sure. And this is a tough one to debug, because using a debugger on the same terminal will (of course) mess up what's happening with the screen. Suggestions on how to attack this? It looks as if the code really is not operating as intended. --Brett To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message