Module Name: src
Committed By: joerg
Date: Mon Jul 6 15:19:49 UTC 2009
Modified Files:
src/distrib/sets/lists/comp: mi
src/lib/libcurses: Makefile curses.3 curses.h
Added Files:
src/lib/libcurses: chgat.c curses_chgat.3
Log Message:
Add support for the chgat(3) family. It is a useful extension from
ncurses, supporting it dramatically reduces the need for ncurses in
pkgsrc.
To generate a diff of this commit:
cvs rdiff -u -r1.1275 -r1.1276 src/distrib/sets/lists/comp/mi
cvs rdiff -u -r1.62 -r1.63 src/lib/libcurses/Makefile
cvs rdiff -u -r0 -r1.1 src/lib/libcurses/chgat.c \
src/lib/libcurses/curses_chgat.3
cvs rdiff -u -r1.58 -r1.59 src/lib/libcurses/curses.3
cvs rdiff -u -r1.94 -r1.95 src/lib/libcurses/curses.h
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.1275 src/distrib/sets/lists/comp/mi:1.1276
--- src/distrib/sets/lists/comp/mi:1.1275 Fri Jun 26 19:36:21 2009
+++ src/distrib/sets/lists/comp/mi Mon Jul 6 15:19:49 2009
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1275 2009/06/26 19:36:21 jakllsch Exp $
+# $NetBSD: mi,v 1.1276 2009/07/06 15:19:49 joerg Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -5010,6 +5010,7 @@
./usr/share/man/cat3/cgetset.0 comp-c-catman .cat
./usr/share/man/cat3/cgetstr.0 comp-c-catman .cat
./usr/share/man/cat3/cgetustr.0 comp-c-catman .cat
+./usr/share/man/cat3/chgat.0 comp-c-catman .cat
./usr/share/man/cat3/cimag.0 comp-c-catman .cat
./usr/share/man/cat3/cimagf.0 comp-c-catman .cat
./usr/share/man/cat3/circleq_empty.0 comp-obsolete obsolete
@@ -5113,6 +5114,7 @@
./usr/share/man/cat3/curses_attributes.0 comp-c-catman .cat
./usr/share/man/cat3/curses_background.0 comp-c-catman .cat
./usr/share/man/cat3/curses_border.0 comp-c-catman .cat
+./usr/share/man/cat3/curses_chgat.0 comp-c-catman .cat
./usr/share/man/cat3/curses_clear.0 comp-c-catman .cat
./usr/share/man/cat3/curses_color.0 comp-c-catman .cat
./usr/share/man/cat3/curses_cursor.0 comp-c-catman .cat
@@ -6754,6 +6756,7 @@
./usr/share/man/cat3/mvaddchstr.0 comp-c-catman .cat
./usr/share/man/cat3/mvaddnstr.0 comp-c-catman .cat
./usr/share/man/cat3/mvaddstr.0 comp-c-catman .cat
+./usr/share/man/cat3/mvchgat.0 comp-c-catman .cat
./usr/share/man/cat3/mvcur.0 comp-c-catman .cat
./usr/share/man/cat3/mvderwin.0 comp-c-catman .cat
./usr/share/man/cat3/mvgetch.0 comp-c-catman .cat
@@ -6771,6 +6774,7 @@
./usr/share/man/cat3/mvwaddchstr.0 comp-c-catman .cat
./usr/share/man/cat3/mvwaddnstr.0 comp-c-catman .cat
./usr/share/man/cat3/mvwaddstr.0 comp-c-catman .cat
+./usr/share/man/cat3/mvwchgat.0 comp-c-catman .cat
./usr/share/man/cat3/mvwgetch.0 comp-c-catman .cat
./usr/share/man/cat3/mvwgetnstr.0 comp-c-catman .cat
./usr/share/man/cat3/mvwgetstr.0 comp-c-catman .cat
@@ -7877,6 +7881,7 @@
./usr/share/man/cat3/wbkgd.0 comp-c-catman .cat
./usr/share/man/cat3/wbkgdset.0 comp-c-catman .cat
./usr/share/man/cat3/wborder.0 comp-c-catman .cat
+./usr/share/man/cat3/wchgat.0 comp-c-catman .cat
./usr/share/man/cat3/wclear.0 comp-c-catman .cat
./usr/share/man/cat3/wclrtobot.0 comp-c-catman .cat
./usr/share/man/cat3/wclrtoeol.0 comp-c-catman .cat
@@ -10517,6 +10522,7 @@
./usr/share/man/html3/cgetset.html comp-c-htmlman html
./usr/share/man/html3/cgetstr.html comp-c-htmlman html
./usr/share/man/html3/cgetustr.html comp-c-htmlman html
+./usr/share/man/html3/chgat.html comp-c-htmlman html
./usr/share/man/html3/cimag.html comp-c-htmlman html
./usr/share/man/html3/cimagf.html comp-c-htmlman html
./usr/share/man/html3/clear.html comp-c-htmlman html
@@ -10606,6 +10612,7 @@
./usr/share/man/html3/curses_attributes.html comp-c-htmlman html
./usr/share/man/html3/curses_background.html comp-c-htmlman html
./usr/share/man/html3/curses_border.html comp-c-htmlman html
+./usr/share/man/html3/curses_chgat.html comp-c-htmlman html
./usr/share/man/html3/curses_clear.html comp-c-htmlman html
./usr/share/man/html3/curses_color.html comp-c-htmlman html
./usr/share/man/html3/curses_cursor.html comp-c-htmlman html
@@ -12206,6 +12213,7 @@
./usr/share/man/html3/mvaddchstr.html comp-c-htmlman html
./usr/share/man/html3/mvaddnstr.html comp-c-htmlman html
./usr/share/man/html3/mvaddstr.html comp-c-htmlman html
+./usr/share/man/html3/mvchgat.html comp-c-htmlman html
./usr/share/man/html3/mvcur.html comp-c-htmlman html
./usr/share/man/html3/mvderwin.html comp-c-htmlman html
./usr/share/man/html3/mvgetch.html comp-c-htmlman html
@@ -12223,6 +12231,7 @@
./usr/share/man/html3/mvwaddchstr.html comp-c-htmlman html
./usr/share/man/html3/mvwaddnstr.html comp-c-htmlman html
./usr/share/man/html3/mvwaddstr.html comp-c-htmlman html
+./usr/share/man/html3/mvwchgat.html comp-c-htmlman html
./usr/share/man/html3/mvwgetch.html comp-c-htmlman html
./usr/share/man/html3/mvwgetnstr.html comp-c-htmlman html
./usr/share/man/html3/mvwgetstr.html comp-c-htmlman html
@@ -13282,6 +13291,7 @@
./usr/share/man/html3/wbkgd.html comp-c-htmlman html
./usr/share/man/html3/wbkgdset.html comp-c-htmlman html
./usr/share/man/html3/wborder.html comp-c-htmlman html
+./usr/share/man/html3/wchgat.html comp-c-htmlman html
./usr/share/man/html3/wclear.html comp-c-htmlman html
./usr/share/man/html3/wclrtobot.html comp-c-htmlman html
./usr/share/man/html3/wclrtoeol.html comp-c-htmlman html
@@ -15902,6 +15912,7 @@
./usr/share/man/man3/cgetset.3 comp-c-man .man
./usr/share/man/man3/cgetstr.3 comp-c-man .man
./usr/share/man/man3/cgetustr.3 comp-c-man .man
+./usr/share/man/man3/chgat.3 comp-c-man .man
./usr/share/man/man3/cimag.3 comp-c-man .man
./usr/share/man/man3/cimagf.3 comp-c-man .man
./usr/share/man/man3/circleq_empty.3 comp-obsolete obsolete
@@ -16005,6 +16016,7 @@
./usr/share/man/man3/curses_attributes.3 comp-c-man .man
./usr/share/man/man3/curses_background.3 comp-c-man .man
./usr/share/man/man3/curses_border.3 comp-c-man .man
+./usr/share/man/man3/curses_chgat.3 comp-c-man .man
./usr/share/man/man3/curses_clear.3 comp-c-man .man
./usr/share/man/man3/curses_color.3 comp-c-man .man
./usr/share/man/man3/curses_cursor.3 comp-c-man .man
@@ -17646,6 +17658,7 @@
./usr/share/man/man3/mvaddchstr.3 comp-c-man .man
./usr/share/man/man3/mvaddnstr.3 comp-c-man .man
./usr/share/man/man3/mvaddstr.3 comp-c-man .man
+./usr/share/man/man3/mvchgat.3 comp-c-man .man
./usr/share/man/man3/mvcur.3 comp-c-man .man
./usr/share/man/man3/mvderwin.3 comp-c-man .man
./usr/share/man/man3/mvgetch.3 comp-c-man .man
@@ -17663,6 +17676,7 @@
./usr/share/man/man3/mvwaddchstr.3 comp-c-man .man
./usr/share/man/man3/mvwaddnstr.3 comp-c-man .man
./usr/share/man/man3/mvwaddstr.3 comp-c-man .man
+./usr/share/man/man3/mvwchgat.3 comp-c-man .man
./usr/share/man/man3/mvwgetch.3 comp-c-man .man
./usr/share/man/man3/mvwgetnstr.3 comp-c-man .man
./usr/share/man/man3/mvwgetstr.3 comp-c-man .man
@@ -18765,6 +18779,7 @@
./usr/share/man/man3/wbkgd.3 comp-c-man .man
./usr/share/man/man3/wbkgdset.3 comp-c-man .man
./usr/share/man/man3/wborder.3 comp-c-man .man
+./usr/share/man/man3/wchgat.3 comp-c-man .man
./usr/share/man/man3/wclear.3 comp-c-man .man
./usr/share/man/man3/wclrtobot.3 comp-c-man .man
./usr/share/man/man3/wclrtoeol.3 comp-c-man .man
Index: src/lib/libcurses/Makefile
diff -u src/lib/libcurses/Makefile:1.62 src/lib/libcurses/Makefile:1.63
--- src/lib/libcurses/Makefile:1.62 Mon Apr 6 00:48:19 2009
+++ src/lib/libcurses/Makefile Mon Jul 6 15:19:49 2009
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.62 2009/04/06 00:48:19 christos Exp $
+# $NetBSD: Makefile,v 1.63 2009/07/06 15:19:49 joerg Exp $
# @(#)Makefile 8.2 (Berkeley) 1/2/94
.include <bsd.own.mk>
@@ -14,8 +14,9 @@
.endif
LIB= curses
SRCS= acs.c addbytes.c addch.c addchnstr.c addnstr.c attributes.c \
- background.c bell.c border.c box.c clear.c clearok.c clrtobot.c \
- clrtoeol.c color.c copywin.c cr_put.c ctrace.c cur_hash.c curs_set.c \
+ background.c bell.c border.c box.c chgat.c clear.c clearok.c \
+ clrtobot.c clrtoeol.c color.c copywin.c cr_put.c \
+ 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 \
@@ -27,7 +28,8 @@
MAN= curses.3 curses_addch.3 curses_addchstr.3 curses_addstr.3 \
curses_attributes.3 curses_background.3 curses_border.3 \
- curses_clear.3 curses_color.3 curses_cursor.3 curses_default_colors.3 \
+ curses_chgat.3 curses_clear.3 curses_color.3 \
+ curses_cursor.3 curses_default_colors.3 \
curses_delch.3 curses_deleteln.3 curses_echochar.3 curses_fileio.3 \
curses_inch.3 curses_input.3 curses_insertch.3 curses_insertln.3 \
curses_insdelln.3 curses_keyname.3 curses_line.3 curses_pad.3 \
@@ -60,6 +62,8 @@
curses_attributes.3 attrset.3 curses_tty.3 beep.3 \
curses_background.3 bkgd.3 curses_background.3 bkgdset.3 \
curses_border.3 border.3 curses_border.3 box.3 \
+ curses_chgat.3 chgat.3 curses_chgat.3 mvchgat.3 \
+ curses_chgat.3 mvwchgat.3 curses_chgat.3 wchgat.3 \
curses_color.3 can_change_color.3 curses_tty.3 cbreak.3 \
curses_clear.3 clear.3 curses_clear.3 clearok.3 \
curses_clear.3 clrtobot.3 curses_clear.3 clrtoeol.3 \
Index: src/lib/libcurses/curses.3
diff -u src/lib/libcurses/curses.3:1.58 src/lib/libcurses/curses.3:1.59
--- src/lib/libcurses/curses.3:1.58 Mon Feb 23 08:27:13 2009
+++ src/lib/libcurses/curses.3 Mon Jul 6 15:19:49 2009
@@ -1,4 +1,4 @@
-.\" $NetBSD: curses.3,v 1.58 2009/02/23 08:27:13 wiz Exp $
+.\" $NetBSD: curses.3,v 1.59 2009/07/06 15:19:49 joerg Exp $
.\"
.\" Copyright (c) 1985, 1991, 1993
.\" The Regents of the University of California. All rights reserved.
@@ -86,6 +86,7 @@
.It box Ta Xr curses_border 3
.It can_change_color Ta Xr curses_color 3
.It cbreak Ta Xr curses_tty 3
+.It chgat Ta Xr curses_chgat 3
.It clear Ta Xr curses_clear 3
.It clearok Ta Xr curses_clear 3
.It clrtobot Ta Xr curses_clear 3
@@ -165,6 +166,7 @@
.It mvaddchstr Ta Xr curses_addchstr 3
.It mvaddnstr Ta Xr curses_addstr 3
.It mvaddstr Ta Xr curses_addstr 3
+.It mvchgat Ta Xr curses_chgat 3
.It mvcur Ta Xr curses_cursor 3
.It mvderwin Ta Xr curses_window 3
.It mvgetnstr Ta Xr curses_input 3
@@ -180,6 +182,7 @@
.It mvwaddchstr Ta Xr curses_addchstr 3
.It mvwaddnstr Ta Xr curses_addstr 3
.It mvwaddstr Ta Xr curses_addstr 3
+.It mvwchgat Ta Xr curses_chgat 3
.It mvwgetnstr Ta Xr curses_input 3
.It mvwgetstr Ta Xr curses_input 3
.It mvwhline Ta Xr curses_line 3
@@ -255,6 +258,7 @@
.It wbkgd Ta Xr curses_background 3
.It wbkgdset Ta Xr curses_background 3
.It wborder Ta Xr curses_border 3
+.It wchgat Ta Xr curses_chgat 3
.It wclear Ta Xr curses_clear 3
.It wclrtobot Ta Xr curses_clear 3
.It wclrtoeol Ta Xr curses_clear 3
Index: src/lib/libcurses/curses.h
diff -u src/lib/libcurses/curses.h:1.94 src/lib/libcurses/curses.h:1.95
--- src/lib/libcurses/curses.h:1.94 Wed Apr 1 20:59:15 2009
+++ src/lib/libcurses/curses.h Mon Jul 6 15:19:49 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: curses.h,v 1.94 2009/04/01 20:59:15 cube Exp $ */
+/* $NetBSD: curses.h,v 1.95 2009/07/06 15:19:49 joerg Exp $ */
/*
* Copyright (c) 1981, 1993, 1994
@@ -805,6 +805,11 @@
int winsnstr(WINDOW *, const char *, int);
int winsstr(WINDOW *, const char *);
+int chgat(int, attr_t, short, const void *);
+int wchgat(WINDOW *, int, attr_t, short, const void *);
+int mvchgat(int, int, int, attr_t, short, const void *);
+int mvwchgat(WINDOW *, int, int, int, attr_t, short, const void *);
+
/* wide character support routines */
/* return ERR when HAVE_WCHAR is not defined */
/* add */
Added files:
Index: src/lib/libcurses/chgat.c
diff -u /dev/null src/lib/libcurses/chgat.c:1.1
--- /dev/null Mon Jul 6 15:19:50 2009
+++ src/lib/libcurses/chgat.c Mon Jul 6 15:19:49 2009
@@ -0,0 +1,98 @@
+/* $NetBSD: chgat.c,v 1.1 2009/07/06 15:19:49 joerg Exp $ */
+
+/*
+ * Copyright (c) 2009 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Joerg Sonnenberger.
+ *
+ * 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>
+__RCSID("$NetBSD: chgat.c,v 1.1 2009/07/06 15:19:49 joerg Exp $");
+
+#include "curses.h"
+#include "curses_private.h"
+
+int
+chgat(int n, attr_t attr, short color, const void *opts)
+{
+ return wchgat(stdscr, n, attr, color, opts);
+}
+
+int
+mvchgat(int y, int x, int n, attr_t attr, short color,
+ const void *opts)
+{
+ return mvwchgat(stdscr, y, x, n, attr, color, opts);
+}
+
+int
+mvwchgat(WINDOW *win , int y, int x, int n, attr_t attr, short color,
+ const void *opts)
+{
+ if (wmove(win, y, x) == ERR)
+ return ERR;
+
+ return wchgat(win, n, attr, color, opts);
+}
+
+int
+wchgat(WINDOW *win, int count, attr_t attr, short color, const void *opts)
+{
+ __LINE *lp;
+ __LDATA *lc;
+ int newx;
+
+ attr = (attr & ~__COLOR) | COLOR_PAIR(color);
+
+ if (count < 0 || count > win->maxx - win->curx)
+ count = win->maxx - win->curx;
+
+ lp = win->lines[win->cury];
+ lc = &lp->line[win->curx];
+ newx = win->curx + win->ch_off;
+ win->curx += count;
+ if (win->curx == win->maxx) {
+ lp->flags |= __ISPASTEOL;
+ --win->curx;
+ }
+
+ while (count-- > 0) {
+ lp->flags |= __ISDIRTY;
+ if (newx < *lp->firstchp)
+ *lp->firstchp = newx;
+ if (newx > *lp->lastchp)
+ *lp->lastchp = newx;
+#ifdef HAVE_WCHAR
+ lc->attr = (lc->attr & ~WA_ATTRIBUTES) | attr;
+#else
+ lc->attr = attr;
+#endif
+ ++lc;
+ ++newx;
+ }
+
+ return OK;
+}
Index: src/lib/libcurses/curses_chgat.3
diff -u /dev/null src/lib/libcurses/curses_chgat.3:1.1
--- /dev/null Mon Jul 6 15:19:50 2009
+++ src/lib/libcurses/curses_chgat.3 Mon Jul 6 15:19:49 2009
@@ -0,0 +1,116 @@
+.\"
+.\" Copyright (c) 2009 The NetBSD Foundation, Inc.
+.\" All rights reserved.
+.\"
+.\" This code is derived from software contributed to The NetBSD Foundation
+.\" by
+.\"
+.\" 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.
+.\"
+.Dd July 6, 2009
+.Dt CURSES_CHGAT 3
+.Os
+.Sh NAME
+.Nm chgat ,
+.Nm wchgat ,
+.Nm mvchgat ,
+.Nm mvwchgat
+.Nd curses on-screen attribute manipulation routines
+.Sh LIBRARY
+.Lb libcurses
+.Sh SYNOPSIS
+.In curses.h
+.Ft int
+.Fn chgat "int n" "attr_t attr" "short color" "const void *opts"
+.Ft int
+.Fn wchgat "WINDOW *win" "int n" "attr_t attr" "short color" \
+"const void *opts"
+.Ft int
+.Fn mvchgat "int y" "int x" "int n" "attr_t attr" "short color" \
+"const void *opts"
+.Ft int
+.Fn mvwchgat "WINDOW *win" "int y" "int x" "int n" "attr_t attr" \
+"short color" "const void *opts"
+.Sh DESCRIPTION
+These functions modify the attributes of the drawn content on stdscr or
+on the specified window.
+.Pp
+The
+.Fn chgat
+function sets the attributes of the next
+.Fa n
+characters to
+.Fa attr
+and the color pair to
+.Fa color .
+If
+.Fa n
+is negative or larger than the reminder of the line, it gets truncated.
+.Pp
+The
+.Fn wchgat
+is the same as the
+.Fn chgat
+function, excepting that the attributes are changed in the window specified by
+.Fa win .
+.Pp
+The
+.Fn mvchgat
+and
+.Fn mvwchgat
+functions are the same as the
+.Fn chgat
+and
+.Fn wchgat
+functions, respectively, excepting that
+.Fn wmove
+is called to mvoe the cursor to the position specified by
+.Fa y ,
+.Fa x
+before the attributes are changed.
+.Sh RETURN VALUES
+The functions that return an int will return one of the following
+values:
+.Pp
+.Bl -tag -width ERR -compact
+.It Er OK
+The function completed successfully.
+.It Er ERR
+An error occurred in the function.
+.El
+.Sh SEE ALSO
+.Xr curses_attributes 3
+.Sh STANDARDS
+The
+.Nx
+Curses library complies with the X/Open Curses specification, part of
+the Single Unix Specification.
+The
+.Fn chgat
+family is an extension and compatible with GNU ncurses.
+.Sh HISTORY
+The Curses package appeared in
+.Bx 4.0 .
+Support for the
+.Fn chgat
+family was added in
+.Nx 6.0 .