From owner-freebsd-bugs Mon Jun 19 8:30: 6 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 68B9537B72A for ; Mon, 19 Jun 2000 08:30:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id IAA94102; Mon, 19 Jun 2000 08:30:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from lerbsd.lerctr.org (lerbsd.lerctr.org [207.158.72.45]) by hub.freebsd.org (Postfix) with ESMTP id 7FF4C37B617 for ; Mon, 19 Jun 2000 08:20:41 -0700 (PDT) (envelope-from ler@lerbsd.lerctr.org) Received: (from ler@localhost) by lerbsd.lerctr.org (8.9.3/8.9.3) id KAA89400; Mon, 19 Jun 2000 10:20:40 -0500 (CDT) (envelope-from ler) Message-Id: <200006191520.KAA89400@lerbsd.lerctr.org> Date: Mon, 19 Jun 2000 10:20:40 -0500 (CDT) From: ler@lerctr.org Reply-To: fdc@columbia.edu, ler@lerctr.org To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: misc/19376: Curses bug Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 19376 >Category: misc >Synopsis: ncurses alters buffering of stdin/stdout and does not restore it. >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Jun 19 08:30:01 PDT 2000 >Closed-Date: >Last-Modified: >Originator: Frank da Cruz & Larry Rosenman >Release: FreeBSD 4.0-STABLE i386 >Organization: The Kermit Project Columbia University >Environment: C-Kermit 7.0 was released prior to FreeBSD 4.0, and it worked fine on all FreeBSDs, 2.2.7 through 3.3. Then when FreeBSD 4.0 came out, a problem appeared. When C-Kermit makes a connection (serial, telnet, anything else) and then transfers a file, it puts up a curses-based file-transfer progress display, using the normal APIs to initialize curses and then "end the window" when the display is finished, returning to normal prompt-and-command operation. When accepting commands at its prompt, C-Kermit must read a character at a time, since it controls echoing, and acts immediately on certain characters such as Tab, Esc, question mark, etc, and so puts the terminal in CBREAK mode. In FreeBSD 4.0, upon exit from curses, C-Kermit is no longer able to read a character at a time; it is not given any characters until the user types a carriage return. This causes characters not to echo and it prevents Kermit's keyword and filename completion, menu-on-demand, and command editing features from working after a file transfer. Of course after returning from curses, C-Kermit makes the appropriate calls to put the console back in CBREAK mode, but these don't work in FreeBSD 4.x. The only workaround is for C-Kermit to call setbuf(stdout,NULL). The problem was reported to Joerg Wunsch shortly after FreeBSD 4.0 came out, but it's still in 4.1. C-Kermit 7.0 is here: http://www.columbia.edu/kermit/ckermit.html >Description: sw-bug >How-To-Repeat: >Fix: >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message