NetBSD Problem Report #53635

From www@NetBSD.org  Fri Sep 28 08:34:28 2018
Return-Path: <www@NetBSD.org>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
	by mollari.NetBSD.org (Postfix) with ESMTPS id 456B27A1F7
	for <gnats-bugs@gnats.NetBSD.org>; Fri, 28 Sep 2018 08:34:28 +0000 (UTC)
Message-Id: <20180928083427.2CC8A7A279@mollari.NetBSD.org>
Date: Fri, 28 Sep 2018 08:34:27 +0000 (UTC)
From: n54@gmx.com
Reply-To: n54@gmx.com
To: gnats-bugs@NetBSD.org
Subject: Anomalies in soft label key functions in curses(3)
X-Send-Pr-Version: www-1.0

>Number:         53635
>Category:       lib
>Synopsis:       Anomalies in soft label key functions in curses(3)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    lib-bug-people
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Sep 28 08:35:00 +0000 2018
>Closed-Date:    Thu Oct 04 10:27:25 +0000 2018
>Last-Modified:  Thu Oct 04 10:27:25 +0000 2018
>Originator:     Kamil Rytarowski
>Release:        NetBSD 8.99.25 amd64
>Organization:
TNF
>Environment:
NetBSD chieftec 8.99.25 NetBSD 8.99.25 (GENERIC) #0: Tue Sep 25 20:06:09 CEST 2018  root@chieftec:/public/netbsd-root/sys/arch/amd64/compile/GENERIC amd64
>Description:
1. Soft label keys are not printed upon getch(3), when the window is marked with wnoutrefresh(3).

2. The bottom line is not aligned to bottom of the terminal, it might be 1 line above it.

3. If we register a top window with ripoffline(3), the bottom line is multiline and the first word printed with wprint(3) is in a different line than the remaining part of the string.

4. Cursor probably shall point position 0,0 below the soft label window, instead of pointing at it.

All of these issues do not exist in ncurses.
>How-To-Repeat:
#include <curses.h>

int
top(WINDOW *win, int cols)
{

	mvwprintw(win, 0, 0, "Hello top in %d columns", cols);

	wnoutrefresh(win);

	return 0;
}

int
setup(WINDOW *win, int cols)
{

	mvwprintw(win, 0, 0, "Hello world in %d columns", cols);

	wnoutrefresh(win);

	return 0;
}

int
main(int argc, char **argv)
{

	ripoffline(1, top);
	ripoffline(-1, setup);
	initscr();

	refresh(); // unneeded in ncurses
	getch();
	endwin();
}

// ncurses
// gcc test.c -lncurses -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -I/usr/pkg/include -I/usr/pkg/include/ncurses

// NetBSD curses(3)
// gcc test.c -lcurses
>Fix:
N/A

>Release-Note:

>Audit-Trail:
From: "Roy Marples" <roy@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/53635 CVS commit: src/lib/libcurses
Date: Tue, 2 Oct 2018 17:35:45 +0000

 Module Name:	src
 Committed By:	roy
 Date:		Tue Oct  2 17:35:44 UTC 2018

 Modified Files:
 	src/lib/libcurses: curses_private.h curses_screen.3 fileio.c initscr.c
 	    newwin.c resize.c ripoffline.c screen.c setterm.c

 Log Message:
 curses: fix ripoffline

 When creating stdscr, ensure it's placed and sized in accordance with
 lines ripped off.
 LINES is no longer adjusted for lines ripped off.
 POSIX makes no mention that it should be adjusted.
 Bottom lines are now placed correctly.
 Lines ripped off are now displayed after calling initscr.

 ok kamil@

 Fixes PR #53635


 To generate a diff of this commit:
 cvs rdiff -u -r1.63 -r1.64 src/lib/libcurses/curses_private.h
 cvs rdiff -u -r1.24 -r1.25 src/lib/libcurses/curses_screen.3
 cvs rdiff -u -r1.5 -r1.6 src/lib/libcurses/fileio.c
 cvs rdiff -u -r1.32 -r1.33 src/lib/libcurses/initscr.c
 cvs rdiff -u -r1.51 -r1.52 src/lib/libcurses/newwin.c
 cvs rdiff -u -r1.27 -r1.28 src/lib/libcurses/resize.c
 cvs rdiff -u -r1.3 -r1.4 src/lib/libcurses/ripoffline.c
 cvs rdiff -u -r1.33 -r1.34 src/lib/libcurses/screen.c
 cvs rdiff -u -r1.66 -r1.67 src/lib/libcurses/setterm.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

From: "Martin Husemann" <martin@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc: 
Subject: PR/53635 CVS commit: [netbsd-8] src/lib/libcurses
Date: Thu, 4 Oct 2018 10:20:13 +0000

 Module Name:	src
 Committed By:	martin
 Date:		Thu Oct  4 10:20:13 UTC 2018

 Modified Files:
 	src/lib/libcurses [netbsd-8]: curses_private.h curses_screen.3 fileio.c
 	    initscr.c newwin.c resize.c ripoffline.c screen.c setterm.c

 Log Message:
 Pull up following revision(s) (requested by roy in ticket #1047):

 	lib/libcurses/curses_private.h: revision 1.64
 	lib/libcurses/curses_private.h: revision 1.65
 	lib/libcurses/initscr.c: revision 1.33
 	lib/libcurses/curses_screen.3: revision 1.24
 	lib/libcurses/curses_screen.3: revision 1.25
 	lib/libcurses/newwin.c: revision 1.52
 	lib/libcurses/fileio.c: revision 1.6
 	lib/libcurses/ripoffline.c: revision 1.4
 	lib/libcurses/resize.c: revision 1.28
 	lib/libcurses/ripoffline.c: revision 1.5
 	lib/libcurses/resize.c: revision 1.29
 	lib/libcurses/screen.c: revision 1.34
 	lib/libcurses/setterm.c: revision 1.67

 curses: fix ripoffline

 When creating stdscr, ensure it's placed and sized in accordance with
 lines ripped off.

 LINES is no longer adjusted for lines ripped off.
 POSIX makes no mention that it should be adjusted.
 Bottom lines are now placed correctly.
 Lines ripped off are now displayed after calling initscr.

 ok kamil@

 Fixes PR #53635

  -

 curses: resize ripped off windows
 The application must still redraw them though.

  -

 Fix typos in curses_screen.3
 Fn -> Ft in the resize_term(3) prototype
 funcion -> function


 To generate a diff of this commit:
 cvs rdiff -u -r1.62.4.1 -r1.62.4.2 src/lib/libcurses/curses_private.h
 cvs rdiff -u -r1.23 -r1.23.4.1 src/lib/libcurses/curses_screen.3
 cvs rdiff -u -r1.5 -r1.5.6.1 src/lib/libcurses/fileio.c
 cvs rdiff -u -r1.32 -r1.32.6.1 src/lib/libcurses/initscr.c
 cvs rdiff -u -r1.50 -r1.50.6.1 src/lib/libcurses/newwin.c
 cvs rdiff -u -r1.26.4.1 -r1.26.4.2 src/lib/libcurses/resize.c
 cvs rdiff -u -r1.3 -r1.3.6.1 src/lib/libcurses/ripoffline.c
 cvs rdiff -u -r1.33 -r1.33.4.1 src/lib/libcurses/screen.c
 cvs rdiff -u -r1.66 -r1.66.4.1 src/lib/libcurses/setterm.c

 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.

State-Changed-From-To: open->closed
State-Changed-By: kamil@NetBSD.org
State-Changed-When: Thu, 04 Oct 2018 12:27:25 +0200
State-Changed-Why:
Fixed in HEAD by roy@
(libcurses snapshot from 2018-10-04)
Pulled to -8.


>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.43 2018/01/16 07:36:43 maya Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2017 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.