Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Jun 2000 10:20:40 -0500 (CDT)
From:      ler@lerctr.org
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   misc/19376: Curses bug
Message-ID:  <200006191520.KAA89400@lerbsd.lerctr.org>

next in thread | raw e-mail | index | archive | help

>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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200006191520.KAA89400>