Module Name: src
Committed By: roy
Date: Mon Jan 2 10:28:35 UTC 2017
Modified Files:
src/distrib/sets/lists/comp: mi
src/lib/libcurses: Makefile addbytes.c clrtobot.c clrtoeol.c curses.h
curses_private.h curses_refresh.3 curses_touch.3 delch.c ins_wch.c
ins_wstr.c insdelln.c insstr.c line.c touchwin.c
Added Files:
src/lib/libcurses: immedok.c syncok.c
Log Message:
Implement POSIX Curses functions immedok(3) and syncok(3).
To generate a diff of this commit:
cvs rdiff -u -r1.2088 -r1.2089 src/distrib/sets/lists/comp/mi
cvs rdiff -u -r1.76 -r1.77 src/lib/libcurses/Makefile
cvs rdiff -u -r1.44 -r1.45 src/lib/libcurses/addbytes.c
cvs rdiff -u -r1.22 -r1.23 src/lib/libcurses/clrtobot.c \
src/lib/libcurses/delch.c
cvs rdiff -u -r1.26 -r1.27 src/lib/libcurses/clrtoeol.c
cvs rdiff -u -r1.112 -r1.113 src/lib/libcurses/curses.h
cvs rdiff -u -r1.53 -r1.54 src/lib/libcurses/curses_private.h
cvs rdiff -u -r1.11 -r1.12 src/lib/libcurses/curses_refresh.3
cvs rdiff -u -r1.8 -r1.9 src/lib/libcurses/curses_touch.3 \
src/lib/libcurses/ins_wstr.c
cvs rdiff -u -r0 -r1.1 src/lib/libcurses/immedok.c src/lib/libcurses/syncok.c
cvs rdiff -u -r1.7 -r1.8 src/lib/libcurses/ins_wch.c src/lib/libcurses/line.c
cvs rdiff -u -r1.16 -r1.17 src/lib/libcurses/insdelln.c
cvs rdiff -u -r1.3 -r1.4 src/lib/libcurses/insstr.c
cvs rdiff -u -r1.28 -r1.29 src/lib/libcurses/touchwin.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/distrib/sets/lists/comp/mi
diff -u src/distrib/sets/lists/comp/mi:1.2088 src/distrib/sets/lists/comp/mi:1.2089
--- src/distrib/sets/lists/comp/mi:1.2088 Sun Jan 1 03:06:06 2017
+++ src/distrib/sets/lists/comp/mi Mon Jan 2 10:28:35 2017
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.2088 2017/01/01 03:06:06 roy Exp $
+# $NetBSD: mi,v 1.2089 2017/01/02 10:28:35 roy Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
./etc/mtree/set.comp comp-sys-root
@@ -6807,6 +6807,7 @@
./usr/share/man/cat3/ilogbl.0 comp-c-catman .cat
./usr/share/man/cat3/imaxabs.0 comp-c-catman .cat
./usr/share/man/cat3/imaxdiv.0 comp-c-catman .cat
+./usr/share/man/cat3/immedok.0 comp-c-catman .cat
./usr/share/man/cat3/inch.0 comp-c-catman .cat
./usr/share/man/cat3/inchnstr.0 comp-c-catman .cat
./usr/share/man/cat3/inchstr.0 comp-c-catman .cat
@@ -9322,6 +9323,7 @@
./usr/share/man/cat3/swapon.0 comp-c-catman .cat
./usr/share/man/cat3/swprintf.0 comp-c-catman .cat
./usr/share/man/cat3/swscanf.0 comp-c-catman .cat
+./usr/share/man/cat3/synckok.0 comp-c-catman .cat
./usr/share/man/cat3/sys_errlist.0 comp-c-catman .cat
./usr/share/man/cat3/sys_nerr.0 comp-c-catman .cat
./usr/share/man/cat3/sys_siglist.0 comp-c-catman .cat
@@ -14153,6 +14155,7 @@
./usr/share/man/html3/ilogbl.html comp-c-htmlman html
./usr/share/man/html3/imaxabs.html comp-c-htmlman html
./usr/share/man/html3/imaxdiv.html comp-c-htmlman html
+./usr/share/man/html3/immedok.html comp-c-htmlman html
./usr/share/man/html3/inch.html comp-c-htmlman html
./usr/share/man/html3/inchnstr.html comp-c-htmlman html
./usr/share/man/html3/inchstr.html comp-c-htmlman html
@@ -16607,6 +16610,7 @@
./usr/share/man/html3/swapon.html comp-c-htmlman html
./usr/share/man/html3/swprintf.html comp-c-htmlman html
./usr/share/man/html3/swscanf.html comp-c-htmlman html
+./usr/share/man/html3/syncok.html comp-c-htmlman html
./usr/share/man/html3/sys_errlist.html comp-c-htmlman html
./usr/share/man/html3/sys_nerr.html comp-c-htmlman html
./usr/share/man/html3/sys_siglist.html comp-c-htmlman html
@@ -21416,6 +21420,7 @@
./usr/share/man/man3/ilogbl.3 comp-c-man .man
./usr/share/man/man3/imaxabs.3 comp-c-man .man
./usr/share/man/man3/imaxdiv.3 comp-c-man .man
+./usr/share/man/man3/immedok.3 comp-c-man .man
./usr/share/man/man3/inch.3 comp-c-man .man
./usr/share/man/man3/inchnstr.3 comp-c-man .man
./usr/share/man/man3/inchstr.3 comp-c-man .man
@@ -23927,6 +23932,7 @@
./usr/share/man/man3/swapon.3 comp-c-man .man
./usr/share/man/man3/swprintf.3 comp-c-man .man
./usr/share/man/man3/swscanf.3 comp-c-man .man
+./usr/share/man/man3/syncok.3 comp-c-man .man
./usr/share/man/man3/sys_errlist.3 comp-c-man .man
./usr/share/man/man3/sys_nerr.3 comp-c-man .man
./usr/share/man/man3/sys_siglist.3 comp-c-man .man
Index: src/lib/libcurses/Makefile
diff -u src/lib/libcurses/Makefile:1.76 src/lib/libcurses/Makefile:1.77
--- src/lib/libcurses/Makefile:1.76 Sun Jan 1 03:06:06 2017
+++ src/lib/libcurses/Makefile Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.76 2017/01/01 03:06:06 roy Exp $
+# $NetBSD: Makefile,v 1.77 2017/01/02 10:28:34 roy Exp $
# @(#)Makefile 8.2 (Berkeley) 1/2/94
.include <bsd.own.mk>
@@ -19,12 +19,12 @@ SRCS= acs.c addbytes.c addch.c addchnstr
ctrace.c cur_hash.c curs_set.c \
curses.c delch.c deleteln.c delwin.c echochar.c erase.c fileio.c \
flushok.c fullname.c getch.c getstr.c getyx.c id_subwins.c idlok.c \
- idcok.c inch.c inchstr.c initscr.c insch.c insdelln.c insertln.c \
- instr.c keypad.c keyname.c leaveok.c line.c meta.c move.c \
+ idcok.c immedok.c inch.c inchstr.c initscr.c insch.c insdelln.c \
+ insertln.c instr.c keypad.c keyname.c leaveok.c line.c meta.c move.c \
mvwin.c newwin.c nodelay.c notimeout.c overlay.c overwrite.c pause.c \
printw.c putchar.c refresh.c resize.c scanw.c screen.c scroll.c \
- scrollok.c setterm.c standout.c timeout.c toucholap.c touchwin.c \
- tstp.c tty.c unctrl.c underscore.c
+ scrollok.c setterm.c standout.c syncok.c timeout.c toucholap.c \
+ touchwin.c tstp.c tty.c unctrl.c underscore.c
MAN= curses.3 curses_addch.3 curses_addchstr.3 curses_addstr.3 \
curses_attributes.3 curses_background.3 curses_border.3 \
@@ -94,7 +94,7 @@ MLINKS+= curses_addch.3 addch.3 curses_a
curses_tty.3 halfdelay.3 curses_input.3 has_key.3 \
curses_tty.3 has_il.3 \
curses_line.3 hline.3 curses_tty.3 idcok.3 \
- curses_tty.3 idlok.3 curses_inch.3 inch.3 \
+ curses_tty.3 idlok.3 curses_refresh.3 immedok.3 curses_inch.3 inch.3 \
curses_inch.3 inchnstr.3 curses_inch.3 inchstr.3 \
curses_inch.3 innstr.3 curses_color.3 init_color.3 \
curses_color.3 init_pair.3 curses_screen.3 initscr.3 \
@@ -148,7 +148,8 @@ MLINKS+= curses_addch.3 addch.3 curses_a
curses_screen.3 set_term.3 curses_screen.3 setterm.3 \
curses_standout.3 standend.3 curses_standout.3 standout.3 \
curses_color.3 start_color.3 curses_pad.3 subpad.3 \
- curses_window.3 subwin.3 curses_input.3 timeout.3 \
+ curses_window.3 subwin.3 curses_touch.3 syncok.3 \
+ curses_input.3 timeout.3 \
curses_touch.3 touchline.3 curses_touch.3 touchoverlap.3 \
curses_touch.3 touchwin.3 curses_tty.3 typeahead.3 \
curses_print.3 unctrl.3 \
Index: src/lib/libcurses/addbytes.c
diff -u src/lib/libcurses/addbytes.c:1.44 src/lib/libcurses/addbytes.c:1.45
--- src/lib/libcurses/addbytes.c:1.44 Mon Nov 28 18:25:26 2016
+++ src/lib/libcurses/addbytes.c Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: addbytes.c,v 1.44 2016/11/28 18:25:26 christos Exp $ */
+/* $NetBSD: addbytes.c,v 1.45 2017/01/02 10:28:34 roy Exp $ */
/*
* Copyright (c) 1987, 1993, 1994
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)addbytes.c 8.4 (Berkeley) 5/4/94";
#else
-__RCSID("$NetBSD: addbytes.c,v 1.44 2016/11/28 18:25:26 christos Exp $");
+__RCSID("$NetBSD: addbytes.c,v 1.45 2017/01/02 10:28:34 roy Exp $");
#endif
#endif /* not lint */
@@ -328,6 +328,7 @@ _cursesi_addbyte(WINDOW *win, __LINE **l
*y, *x, *win->alines[*y]->firstchp,
*win->alines[*y]->lastchp);
#endif
+ __sync(win);
return (OK);
}
@@ -608,6 +609,7 @@ _cursesi_addwchar(WINDOW *win, __LINE **
#ifdef DEBUG
__CTRACE(__CTRACE_INPUT, "add_wch: %d : 0x%x\n", lp->ch, lp->attr);
#endif /* DEBUG */
+ __sync(win);
return OK;
#endif
}
Index: src/lib/libcurses/clrtobot.c
diff -u src/lib/libcurses/clrtobot.c:1.22 src/lib/libcurses/clrtobot.c:1.23
--- src/lib/libcurses/clrtobot.c:1.22 Sun Feb 19 19:38:13 2012
+++ src/lib/libcurses/clrtobot.c Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: clrtobot.c,v 1.22 2012/02/19 19:38:13 christos Exp $ */
+/* $NetBSD: clrtobot.c,v 1.23 2017/01/02 10:28:34 roy Exp $ */
/*
* Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)clrtobot.c 8.2 (Berkeley) 5/4/94";
#else
-__RCSID("$NetBSD: clrtobot.c,v 1.22 2012/02/19 19:38:13 christos Exp $");
+__RCSID("$NetBSD: clrtobot.c,v 1.23 2017/01/02 10:28:34 roy Exp $");
#endif
#endif /* not lint */
@@ -114,5 +114,6 @@ wclrtobot(WINDOW *win)
(int) (maxx - win->alines[y]->line));
startx = 0;
}
+ __sync(win);
return (OK);
}
Index: src/lib/libcurses/delch.c
diff -u src/lib/libcurses/delch.c:1.22 src/lib/libcurses/delch.c:1.23
--- src/lib/libcurses/delch.c:1.22 Wed Jul 22 16:57:14 2009
+++ src/lib/libcurses/delch.c Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: delch.c,v 1.22 2009/07/22 16:57:14 roy Exp $ */
+/* $NetBSD: delch.c,v 1.23 2017/01/02 10:28:34 roy Exp $ */
/*
* Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)delch.c 8.2 (Berkeley) 5/4/94";
#else
-__RCSID("$NetBSD: delch.c,v 1.22 2009/07/22 16:57:14 roy Exp $");
+__RCSID("$NetBSD: delch.c,v 1.23 2017/01/02 10:28:34 roy Exp $");
#endif
#endif /* not lint */
@@ -142,6 +142,7 @@ wdelch(WINDOW *win)
temp1++;
}
__touchline(win, (int) win->cury, sx, (int) win->maxx - 1);
+ __sync(win);
return (OK);
#endif /* HAVE_WCHAR */
}
Index: src/lib/libcurses/clrtoeol.c
diff -u src/lib/libcurses/clrtoeol.c:1.26 src/lib/libcurses/clrtoeol.c:1.27
--- src/lib/libcurses/clrtoeol.c:1.26 Sun Feb 19 19:38:13 2012
+++ src/lib/libcurses/clrtoeol.c Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: clrtoeol.c,v 1.26 2012/02/19 19:38:13 christos Exp $ */
+/* $NetBSD: clrtoeol.c,v 1.27 2017/01/02 10:28:34 roy Exp $ */
/*
* Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)clrtoeol.c 8.2 (Berkeley) 5/4/94";
#else
-__RCSID("$NetBSD: clrtoeol.c,v 1.26 2012/02/19 19:38:13 christos Exp $");
+__RCSID("$NetBSD: clrtoeol.c,v 1.27 2017/01/02 10:28:34 roy Exp $");
#endif
#endif /* not lint */
@@ -114,5 +114,7 @@ wclrtoeol(WINDOW *win)
*win->alines[y]->firstchp, *win->alines[y]->lastchp);
#endif
/* Update firstch and lastch for the line. */
- return (__touchline(win, y, x, (int) win->maxx - 1));
+ __touchline(win, y, x, (int) win->maxx - 1);
+ __sync(win);
+ return OK;
}
Index: src/lib/libcurses/curses.h
diff -u src/lib/libcurses/curses.h:1.112 src/lib/libcurses/curses.h:1.113
--- src/lib/libcurses/curses.h:1.112 Sun Jan 1 03:06:06 2017
+++ src/lib/libcurses/curses.h Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: curses.h,v 1.112 2017/01/01 03:06:06 roy Exp $ */
+/* $NetBSD: curses.h,v 1.113 2017/01/02 10:28:34 roy Exp $ */
/*
* Copyright (c) 1981, 1993, 1994
@@ -681,6 +681,7 @@ int has_key(int);
int hline(chtype, int);
int idcok(WINDOW *, bool);
int idlok(WINDOW *, bool);
+int immedok(WINDOW *, bool);
int init_color(short, short, short, short);
int init_pair(short, short, short);
WINDOW *initscr(void);
@@ -746,6 +747,7 @@ SCREEN *set_term(SCREEN *);
int start_color(void);
WINDOW *subpad(WINDOW *, int, int, int, int);
WINDOW *subwin(WINDOW *, int, int, int, int);
+int syncok(WINDOW *, bool);
chtype termattrs(void);
attr_t term_attrs(void);
int touchline(WINDOW *, int, int);
Index: src/lib/libcurses/curses_private.h
diff -u src/lib/libcurses/curses_private.h:1.53 src/lib/libcurses/curses_private.h:1.54
--- src/lib/libcurses/curses_private.h:1.53 Sat Dec 31 22:47:01 2016
+++ src/lib/libcurses/curses_private.h Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: curses_private.h,v 1.53 2016/12/31 22:47:01 roy Exp $ */
+/* $NetBSD: curses_private.h,v 1.54 2017/01/02 10:28:34 roy Exp $ */
/*-
* Copyright (c) 1998-2000 Brett Lymn
@@ -131,6 +131,8 @@ struct __window { /* Window structure.
#define __IDCHAR 0x00040000 /* insert/delete char sequences */
#define __ISPAD 0x00080000 /* "window" is a pad */
#define __ISDERWIN 0x00100000 /* "window" is derived from parent */
+#define __IMMEDOK 0x00200000 /* refreshed when changed */
+#define __SYNCOK 0x00400000 /* sync when changed */
unsigned int flags;
int delay; /* delay for getch() */
attr_t wattr; /* Character attributes */
@@ -344,6 +346,7 @@ void __startwin(SCREEN *);
void __stop_signal_handler(int);
int __stopwin(void);
void __swflags(WINDOW *);
+void __sync(WINDOW *);
int __timeout(int);
int __touchline(WINDOW *, int, int, int);
int __touchwin(WINDOW *);
Index: src/lib/libcurses/curses_refresh.3
diff -u src/lib/libcurses/curses_refresh.3:1.11 src/lib/libcurses/curses_refresh.3:1.12
--- src/lib/libcurses/curses_refresh.3:1.11 Sat Dec 31 13:50:16 2016
+++ src/lib/libcurses/curses_refresh.3 Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-.\" $NetBSD: curses_refresh.3,v 1.11 2016/12/31 13:50:16 roy Exp $
+.\" $NetBSD: curses_refresh.3,v 1.12 2017/01/02 10:28:34 roy Exp $
.\"
.\" Copyright (c) 2002
.\" Brett Lymn ([email protected], [email protected])
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\"
-.Dd December 31, 2016
+.Dd January 2, 2017
.Dt CURSES_REFRESH 3
.Os
.Sh NAME
@@ -39,9 +39,10 @@
.Nm wrefresh ,
.Nm wnoutrefresh ,
.Nm doupdate ,
+.Nm immedok ,
+.Nm flushok ,
.Nm leaveok ,
-.Nm is_leaveok ,
-.Nm flushok
+.Nm is_leaveok
.Nd curses terminal update routines
.Sh LIBRARY
.Lb libcurses
@@ -56,11 +57,13 @@
.Ft int
.Fn doupdate "void"
.Ft int
+.Fn immedok "WINDOW *win" "boolf flag"
+.Ft int
+.Fn flushok "WINDOW *win" "boolf flag"
+.Ft int
.Fn leaveok "WINDOW *win" "boolf flag"
.Ft bool
.Fn is_leaveok "const WINDOW *win"
-.Ft int
-.Fn flushok "WINDOW *win" "boolf flag"
.Sh DESCRIPTION
These functions update the terminal with the contents of
.Dv stdscr
@@ -110,6 +113,23 @@ followed by
.Fn doupdate .
.Pp
The
+.Fn immedok
+function determines whether the screen is refreshed whenever the window is
+changed.
+The initial state is
+.Dv FALSE .
+.Pp
+The
+.Fn flushok
+function is used to determine whether or not the screen's output file
+descriptor will be flushed on refresh.
+Setting
+.Fa flag
+to
+.Dv TRUE
+will cause the output to be flushed.
+.Pp
+The
.Fn leaveok
function determines whether refresh operations may leave the screen cursor
in an arbitrary position on the screen.
@@ -122,16 +142,6 @@ position after a refresh operation has t
The
.Fn is_leaveok
function returns the setting.
-.Pp
-The
-.Fn flushok
-function is used to determine whether or not the screen's output file
-descriptor will be flushed on refresh.
-Setting
-.Fa flag
-to
-.Dv TRUE
-will cause the output to be flushed.
.Sh RETURN VALUES
Functions returning pointers will return
.Dv NULL
Index: src/lib/libcurses/curses_touch.3
diff -u src/lib/libcurses/curses_touch.3:1.8 src/lib/libcurses/curses_touch.3:1.9
--- src/lib/libcurses/curses_touch.3:1.8 Wed Feb 24 13:02:13 2010
+++ src/lib/libcurses/curses_touch.3 Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-.\" $NetBSD: curses_touch.3,v 1.8 2010/02/24 13:02:13 drochner Exp $
+.\" $NetBSD: curses_touch.3,v 1.9 2017/01/02 10:28:34 roy Exp $
.\"
.\" Copyright (c) 2002
.\" Brett Lymn ([email protected], [email protected])
@@ -30,7 +30,7 @@
.\" SUCH DAMAGE.
.\"
.\"
-.Dd February 23, 2010
+.Dd January 2, 2017
.Dt CURSES_TOUCH 3
.Os
.Sh NAME
@@ -44,6 +44,7 @@
.Nm is_wintouched ,
.Nm redrawwin ,
.Nm wredrawln ,
+.Nm syncok ,
.Nm wsyncup ,
.Nm wsyncdown
.Nd curses window modification routines
@@ -69,6 +70,8 @@
.Fn redrawwin "WINDOW *win"
.Ft int
.Fn wredrawln "WINDOW *win" "int line" "int n"
+.Ft int
+.Fn syncok "WINDOW *win"
.Ft void
.Fn wsyncup "WINDOW *win"
.Ft void
@@ -165,6 +168,13 @@ It is equivalent to
.Fn wtouchln win line n 1 .
.Pp
The
+.Fn syncok
+function determines whether all the ancestors of the specified window are
+implicitly touched whenever there is a change in the window.
+The intial state is
+.Dv FALSE .
+.Pp
+The
.Fn wsyncup
function touches all ancestors of
.Fa win .
Index: src/lib/libcurses/ins_wstr.c
diff -u src/lib/libcurses/ins_wstr.c:1.8 src/lib/libcurses/ins_wstr.c:1.9
--- src/lib/libcurses/ins_wstr.c:1.8 Sat Oct 22 21:55:06 2016
+++ src/lib/libcurses/ins_wstr.c Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: ins_wstr.c,v 1.8 2016/10/22 21:55:06 christos Exp $ */
+/* $NetBSD: ins_wstr.c,v 1.9 2017/01/02 10:28:34 roy Exp $ */
/*
* Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: ins_wstr.c,v 1.8 2016/10/22 21:55:06 christos Exp $");
+__RCSID("$NetBSD: ins_wstr.c,v 1.9 2017/01/02 10:28:34 roy Exp $");
#endif /* not lint */
#include <string.h>
@@ -329,6 +329,7 @@ wins_nwstr(WINDOW *win, const wchar_t *w
if (newx > *lnp->lastchp)
*lnp->lastchp = newx;
__touchline(win, (int) win->cury, sx, (int) win->maxx - 1);
+ __sync(win);
return OK;
#endif /* HAVE_WCHAR */
}
Index: src/lib/libcurses/ins_wch.c
diff -u src/lib/libcurses/ins_wch.c:1.7 src/lib/libcurses/ins_wch.c:1.8
--- src/lib/libcurses/ins_wch.c:1.7 Sat Oct 22 21:55:06 2016
+++ src/lib/libcurses/ins_wch.c Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: ins_wch.c,v 1.7 2016/10/22 21:55:06 christos Exp $ */
+/* $NetBSD: ins_wch.c,v 1.8 2017/01/02 10:28:34 roy Exp $ */
/*
* Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: ins_wch.c,v 1.7 2016/10/22 21:55:06 christos Exp $");
+__RCSID("$NetBSD: ins_wch.c,v 1.8 2017/01/02 10:28:34 roy Exp $");
#endif /* not lint */
#include <string.h>
@@ -248,7 +248,7 @@ wins_wch(WINDOW *win, const cchar_t *wch
if ( newx > *lnp->lastchp )
*lnp->lastchp = newx;
__touchline(win, y, sx, (int) win->maxx - 1);
-
+ __sync(win);
return OK;
#endif /* HAVE_WCHAR */
}
Index: src/lib/libcurses/line.c
diff -u src/lib/libcurses/line.c:1.7 src/lib/libcurses/line.c:1.8
--- src/lib/libcurses/line.c:1.7 Mon Jan 2 08:44:12 2017
+++ src/lib/libcurses/line.c Mon Jan 2 10:28:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: line.c,v 1.7 2017/01/02 08:44:12 roy Exp $ */
+/* $NetBSD: line.c,v 1.8 2017/01/02 10:28:35 roy Exp $ */
/*-
* Copyright (c) 1998-1999 Brett Lymn
@@ -31,7 +31,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: line.c,v 1.7 2017/01/02 08:44:12 roy Exp $");
+__RCSID("$NetBSD: line.c,v 1.8 2017/01/02 10:28:35 roy Exp $");
#endif /* not lint */
#include <string.h>
@@ -240,6 +240,7 @@ int whline_set(WINDOW *win, const cchar_
}
wmove(win, win->cury, ocurx);
+ __sync(win);
return OK;
#endif /* HAVE_WCHAR */
}
@@ -299,7 +300,9 @@ int wvline_set(WINDOW *win, const cchar_
ocury + i, ocurx);
#endif /* DEBUG */
}
+
wmove(win, ocury, ocurx);
+ __sync(win);
return OK;
#endif /* HAVE_WCHAR */
}
Index: src/lib/libcurses/insdelln.c
diff -u src/lib/libcurses/insdelln.c:1.16 src/lib/libcurses/insdelln.c:1.17
--- src/lib/libcurses/insdelln.c:1.16 Wed Jul 22 16:57:15 2009
+++ src/lib/libcurses/insdelln.c Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: insdelln.c,v 1.16 2009/07/22 16:57:15 roy Exp $ */
+/* $NetBSD: insdelln.c,v 1.17 2017/01/02 10:28:34 roy Exp $ */
/*
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: insdelln.c,v 1.16 2009/07/22 16:57:15 roy Exp $");
+__RCSID("$NetBSD: insdelln.c,v 1.17 2017/01/02 10:28:34 roy Exp $");
#endif /* not lint */
/*
@@ -177,5 +177,6 @@ winsdelln(WINDOW *win, int nlines)
}
if (win->orig != NULL)
__id_subwins(win->orig);
+ __sync(win);
return (OK);
}
Index: src/lib/libcurses/insstr.c
diff -u src/lib/libcurses/insstr.c:1.3 src/lib/libcurses/insstr.c:1.4
--- src/lib/libcurses/insstr.c:1.3 Wed Jul 22 16:57:15 2009
+++ src/lib/libcurses/insstr.c Mon Jan 2 10:28:34 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: insstr.c,v 1.3 2009/07/22 16:57:15 roy Exp $ */
+/* $NetBSD: insstr.c,v 1.4 2017/01/02 10:28:34 roy Exp $ */
/*
* Copyright (c) 2005 The NetBSD Foundation Inc.
@@ -36,7 +36,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: insstr.c,v 1.3 2009/07/22 16:57:15 roy Exp $");
+__RCSID("$NetBSD: insstr.c,v 1.4 2017/01/02 10:28:34 roy Exp $");
#endif /* not lint */
#include <string.h>
@@ -205,5 +205,6 @@ winsnstr(WINDOW *win, const char *str, i
if ( win->ch_off + win->maxx - 1 > *lnp->lastchp )
*lnp->lastchp = win->ch_off + win->maxx - 1;
__touchline(win, (int)win->cury, (int)win->curx, (int)win->maxx - 1);
+ __sync(win);
return OK;
}
Index: src/lib/libcurses/touchwin.c
diff -u src/lib/libcurses/touchwin.c:1.28 src/lib/libcurses/touchwin.c:1.29
--- src/lib/libcurses/touchwin.c:1.28 Thu Jan 7 07:37:08 2016
+++ src/lib/libcurses/touchwin.c Mon Jan 2 10:28:35 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: touchwin.c,v 1.28 2016/01/07 07:37:08 jdc Exp $ */
+/* $NetBSD: touchwin.c,v 1.29 2017/01/02 10:28:35 roy Exp $ */
/*
* Copyright (c) 1981, 1993, 1994
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)touchwin.c 8.2 (Berkeley) 5/4/94";
#else
-__RCSID("$NetBSD: touchwin.c,v 1.28 2016/01/07 07:37:08 jdc Exp $");
+__RCSID("$NetBSD: touchwin.c,v 1.29 2017/01/02 10:28:35 roy Exp $");
#endif
#endif /* not lint */
@@ -44,6 +44,20 @@ __RCSID("$NetBSD: touchwin.c,v 1.28 2016
static int _cursesi_touchline_force(WINDOW *, int, int, int, int);
/*
+ * __sync --
+ * To be called after each window change.
+ */
+void
+__sync(WINDOW *win)
+{
+
+ if (win->flags & __IMMEDOK)
+ wrefresh(win);
+ if (win->flags & __SYNCOK)
+ wsyncup(win);
+}
+
+/*
* is_linetouched --
* Indicate if line has been touched or not.
*/
Added files:
Index: src/lib/libcurses/immedok.c
diff -u /dev/null src/lib/libcurses/immedok.c:1.1
--- /dev/null Mon Jan 2 10:28:35 2017
+++ src/lib/libcurses/immedok.c Mon Jan 2 10:28:34 2017
@@ -0,0 +1,52 @@
+/* $NetBSD: immedok.c,v 1.1 2017/01/02 10:28:34 roy Exp $ */
+
+/*-
+ * Copyright (c) 2017 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+#ifndef lint
+__RCSID("$NetBSD: immedok.c,v 1.1 2017/01/02 10:28:34 roy Exp $");
+#endif /* not lint */
+
+#include "curses.h"
+#include "curses_private.h"
+
+/*
+ * immedok --
+ * Refresh the window when changed.
+ */
+int
+immedok(WINDOW *win, bool bf)
+{
+ if (bf)
+ win->flags |= __IMMEDOK;
+ else
+ win->flags &= ~__IMMEDOK;
+ return (OK);
+}
Index: src/lib/libcurses/syncok.c
diff -u /dev/null src/lib/libcurses/syncok.c:1.1
--- /dev/null Mon Jan 2 10:28:35 2017
+++ src/lib/libcurses/syncok.c Mon Jan 2 10:28:35 2017
@@ -0,0 +1,52 @@
+/* $NetBSD: syncok.c,v 1.1 2017/01/02 10:28:35 roy Exp $ */
+
+/*-
+ * Copyright (c) 2017 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Roy Marples.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+#ifndef lint
+__RCSID("$NetBSD: syncok.c,v 1.1 2017/01/02 10:28:35 roy Exp $");
+#endif /* not lint */
+
+#include "curses.h"
+#include "curses_private.h"
+
+/*
+ * immedok --
+ * Refresh the window when changed.
+ */
+int
+syncok(WINDOW *win, bool bf)
+{
+ if (bf)
+ win->flags |= __SYNCOK;
+ else
+ win->flags &= ~__SYNCOK;
+ return (OK);
+}