+ add a note to curs_addch.3x on portability.
+ add a note to curs_pad.3x on the origin and portability of pads.
+ improve manpage description of getattrs (report by Midolikawa H).
+ improve manpage macros (prompted by discussion in Debian #880551.
+ reviewed test-programs using KEY_RESIZE, made fixes to test/worm.c
+ add a "-d" option to picsmap for default-colors.
+ modify old terminology entry and a few other terminal emulators to
account for xon -TD
+ correct sgr string for tmux, which used screen's "standout" code
rather than the standard code (patch by Roman Kagan)
+ correct sgr/sgr0 strings in a few other cases reported by tic, making
those correspond to the non-sgr settings where they differ, but
otherwise use ECMA-48 consistently:
jaixterm, aixterm, att5420_2, att4424, att500, decansi, d410-7b,
dm80, hpterm, emu-220, hp2, iTerm2.app, mterm-ansi, ncrvt100an,
st-0.7, vi603, vwmterm -TD
+ build-fix for diagnostics warning in lib_mouse.c for pre-5.0 versions
of gcc which did not recognize the diagnostic "push" pragma (patch by
Vassili Courzakis).
./test/package/ncurses-examples.spec
./test/padview.c
./test/picsmap.c
+./test/picsmap.h
./test/popup_msg.c
./test/popup_msg.h
./test/programs
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
-------------------------------------------------------------------------------
--- $Id: NEWS,v 1.2998 2017/11/11 20:35:53 tom Exp $
+-- $Id: NEWS,v 1.3004 2017/11/19 01:32:47 tom Exp $
-------------------------------------------------------------------------------
This is a log of changes that ncurses has gone through since Zeyd started
Changes through 1.9.9e did not credit all contributions;
it is not possible to add this information.
+20171118
+ + add a note to curs_addch.3x on portability.
+ + add a note to curs_pad.3x on the origin and portability of pads.
+ + improve manpage description of getattrs (report by Midolikawa H).
+ + improve manpage macros (prompted by discussion in Debian #880551.
+ + reviewed test-programs using KEY_RESIZE, made fixes to test/worm.c
+ + add a "-d" option to picsmap for default-colors.
+ + modify old terminology entry and a few other terminal emulators to
+ account for xon -TD
+ + correct sgr string for tmux, which used screen's "standout" code
+ rather than the standard code (patch by Roman Kagan)
+ + correct sgr/sgr0 strings in a few other cases reported by tic, making
+ those correspond to the non-sgr settings where they differ, but
+ otherwise use ECMA-48 consistently:
+ jaixterm, aixterm, att5420_2, att4424, att500, decansi, d410-7b,
+ dm80, hpterm, emu-220, hp2, iTerm2.app, mterm-ansi, ncrvt100an,
+ st-0.7, vi603, vwmterm -TD
+ + build-fix for diagnostics warning in lib_mouse.c for pre-5.0 versions
+ of gcc which did not recognize the diagnostic "push" pragma (patch by
+ Vassili Courzakis).
+
20171111
+ add "op" to xterm+256setaf -TD
+ reviewed terminology 1.0.0 -TD
-5:0:9 6.0 20171111
+5:0:9 6.0 20171118
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
-# $Id: dist.mk,v 1.1191 2017/11/05 11:30:20 tom Exp $
+# $Id: dist.mk,v 1.1192 2017/11/12 15:22:04 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 6
NCURSES_MINOR = 0
-NCURSES_PATCH = 20171111
+NCURSES_PATCH = 20171118
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: clear.1,v 1.18 2017/10/07 21:30:17 tom Exp @
+ * @Id: clear.1,v 1.19 2017/11/18 23:51:59 tom Exp @
* these would be fallbacks for DS/DE,
* but groff changed the meaning of the macros.
-->
(<STRONG>tput</STRONG>), and used this to replace the <STRONG>clear</STRONG> command with a shell script
which calls <STRONG>tput</STRONG> <STRONG>clear</STRONG>, e.g.,
- /usr/bin/tput ${1:+-T$1} clear 2> /dev/null
- exit
+ /usr/bin/tput ${1:+-T$1} clear 2> /dev/null
+ exit
In 1989, when Keith Bostic revised the BSD <STRONG>tput</STRONG> command to make it sim-
ilar to the AT&T <STRONG>tput</STRONG>, he added a shell script for the <STRONG>clear</STRONG> command:
- exec tput clear
+ exec tput clear
The remainder of the script in each case is a copyright notice.
sequence for clearing the screen. Rather than clearing just the
visible part of the screen using
- printf '\033[2J'
+ printf '\033[2J'
one could clear the <EM>scrollback</EM> using
- printf '\033[<STRONG>3</STRONG>J'
+ printf '\033[<STRONG>3</STRONG>J'
This is documented in <EM>XTerm</EM> <EM>Control</EM> <EM>Sequences</EM> as a feature origi-
nating with xterm.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_add_wch.3x,v 1.23 2017/05/20 14:45:24 Sven.Joachim Exp @
+ * @Id: curs_add_wch.3x,v 1.24 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<!--
****************************************************************************
- * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_add_wchstr.3x,v 1.10 2012/11/03 22:54:43 tom Exp @
+ * @Id: curs_add_wchstr.3x,v 1.11 2017/11/18 23:56:00 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addch.3x,v 1.41 2017/05/05 18:15:29 tom Exp @
+ * @Id: curs_addch.3x,v 1.43 2017/11/19 01:54:00 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
The defaults specified for forms-drawing characters apply in the POSIX
locale.
+
+</PRE><H3><a name="h3-ACS-Symbols">ACS Symbols</a></H3><PRE>
X/Open Curses states that the <EM>ACS</EM><STRONG>_</STRONG> definitions are <STRONG>char</STRONG> constants. For
the wide-character implementation (see <STRONG>curs_add_wch</STRONG>), there are analo-
gous <EM>WACS</EM><STRONG>_</STRONG> definitions which are <STRONG>cchar_t</STRONG> constants.
acters except by using UTF-8 (see the discussion of <STRONG>NCURSES_NO_UTF8_ACS</STRONG>
in <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>).
- The <STRONG>TABSIZE</STRONG> variable is implemented in some versions of curses, but is
+
+</PRE><H3><a name="h3-Character-Set">Character Set</a></H3><PRE>
+ X/Open Curses assumes that the parameter passed to <STRONG>waddch</STRONG> contains a
+ single character. As discussed in <STRONG>curs_attr(3x)</STRONG>, that character may
+ have been more than eight bits in an SVr3 or SVr4 implementation, but
+ in the X/Open Curses model, the details are not given. The important
+ distinction between SVr4 curses and X/Open Curses is that the non-char-
+ acter information (attributes and color) was separated from the charac-
+ ter information which is packed in a <STRONG>chtype</STRONG> to pass to <STRONG>waddch</STRONG>.
+
+ In this implementation, <STRONG>chtype</STRONG> holds eight bits. But ncurses allows
+ multibyte characters to be passed in a succession of calls to <STRONG>waddch</STRONG>.
+ The other implementations do not do this; a call to <STRONG>waddch</STRONG> passes
+ exactly one character which may be rendered as one or more cells on the
+ screen depending on whether it is printable.
+
+ Depending on the locale settings, ncurses will inspect the byte passed
+ in each call to <STRONG>waddch</STRONG>, and check if the latest call will continue a
+ multibyte sequence. When a character is <EM>complete</EM>, ncurses displays the
+ character and moves to the next position in the screen.
+
+ If the calling application interrupts the succession of bytes in a
+ multibyte character by moving the current location (e.g., using <STRONG>wmove</STRONG>),
+ ncurses discards the partially built character, starting over again.
+
+ For portability to other implementations, do not rely upon this behav-
+ ior:
+
+ <STRONG>o</STRONG> check if a character can be represented as a single byte in the
+ current locale before attempting call <STRONG>waddch</STRONG>, and
+
+ <STRONG>o</STRONG> call <STRONG>wadd_wch</STRONG> for characters which cannot be handled by <STRONG>waddch</STRONG>.
+
+
+</PRE><H3><a name="h3-TABSIZE">TABSIZE</a></H3><PRE>
+ The <STRONG>TABSIZE</STRONG> variable is implemented in some versions of curses, but is
not part of X/Open curses.
If <EM>ch</EM> is a carriage return, the cursor is moved to the beginning of the
- current row of the window. This is true of other implementations, but
+ current row of the window. This is true of other implementations, but
is not documented.
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>, <STRONG>curs_out-</STRONG>
<STRONG><A HREF="curs_outopts.3x.html">opts(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>, <STRONG>putc(3)</STRONG>.
- Comparable functions in the wide-character (ncursesw) library are
+ Comparable functions in the wide-character (ncursesw) library are
described in <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>.
</li>
<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
<li><a href="#h2-NOTES">NOTES</a></li>
-<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
+<li><a href="#h2-PORTABILITY">PORTABILITY</a>
+<ul>
+<li><a href="#h3-ACS-Symbols">ACS Symbols</a></li>
+<li><a href="#h3-Character-Set">Character Set</a></li>
+<li><a href="#h3-TABSIZE">TABSIZE</a></li>
+</ul>
+</li>
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
</ul>
</div>
<!--
****************************************************************************
- * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addchstr.3x,v 1.16 2012/11/03 22:54:43 tom Exp @
+ * @Id: curs_addchstr.3x,v 1.17 2017/11/18 23:56:00 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<!--
****************************************************************************
- * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addstr.3x,v 1.17 2012/11/03 22:57:31 tom Exp @
+ * @Id: curs_addstr.3x,v 1.18 2017/11/18 23:56:00 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<!--
****************************************************************************
- * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2012,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addwstr.3x,v 1.11 2012/11/03 22:57:31 tom Exp @
+ * @Id: curs_addwstr.3x,v 1.12 2017/11/18 23:56:00 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_attr.3x,v 1.60 2017/10/14 20:01:13 tom Exp @
+ * @Id: curs_attr.3x,v 1.61 2017/11/18 23:47:37 tom Exp @
* ---------------------------------------------------------------------------
* attr_get
* .br
<!--
****************************************************************************
- * Copyright (c) 1998-2010,2015 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_bkgd.3x,v 1.24 2015/11/21 01:53:42 tom Exp @
+ * @Id: curs_bkgd.3x,v 1.25 2017/11/18 23:56:00 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_bkgrnd.3x,v 1.7 2017/03/25 21:49:00 tom Exp @
+ * @Id: curs_bkgrnd.3x,v 1.8 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_color.3x,v 1.51 2017/08/12 21:40:14 tom Exp @
+ * @Id: curs_color.3x,v 1.52 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<!--
****************************************************************************
- * Copyright (c) 2002-2012,2016 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_get_wch.3x,v 1.9 2016/05/15 01:12:50 tom Exp @
+ * @Id: curs_get_wch.3x,v 1.10 2017/11/18 23:56:00 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_getcchar.3x,v 1.18 2017/03/31 10:50:54 tom Exp @
+ * @Id: curs_getcchar.3x,v 1.19 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2015,2016 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_getch.3x,v 1.49 2016/10/15 16:44:01 tom Exp @
+ * @Id: curs_getch.3x,v 1.50 2017/11/18 23:56:00 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inch.3x,v 1.19 2017/10/28 20:16:52 Sven.Joachim Exp @
+ * @Id: curs_inch.3x,v 1.20 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inchstr.3x,v 1.16 2017/04/29 21:31:17 tom Exp @
+ * @Id: curs_inchstr.3x,v 1.17 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_initscr.3x,v 1.28 2017/05/30 21:12:51 tom Exp @
+ * @Id: curs_initscr.3x,v 1.29 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_instr.3x,v 1.17 2017/04/29 21:37:55 tom Exp @
+ * @Id: curs_instr.3x,v 1.18 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_kernel.3x,v 1.22 2017/01/07 19:25:15 tom Exp @
+ * @Id: curs_kernel.3x,v 1.23 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<!--
****************************************************************************
- * Copyright (c) 2007-2010,2015 Free Software Foundation, Inc. *
+ * Copyright (c) 2007-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_legacy.3x,v 1.6 2015/12/05 20:33:14 tom Exp @
+ * @Id: curs_legacy.3x,v 1.7 2017/11/19 00:23:58 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
- The <STRONG>getbegy</STRONG> and <STRONG>getbegx</STRONG> functions return the same data as <STRONG>getbegyx</STRONG>.
+ These legacy functions are simpler to use than the X/Open Curses func-
+ tions:
- The <STRONG>getcury</STRONG> and <STRONG>getcurx</STRONG> functions return the same data as <STRONG>getyx</STRONG>.
+ <STRONG>o</STRONG> The <STRONG>getattrs</STRONG> function returns the same attribute data as <STRONG>wattr_get</STRONG>.
- The <STRONG>getmaxy</STRONG> and <STRONG>getmaxx</STRONG> functions return the same data as <STRONG>getmaxyx</STRONG>.
+ However, <STRONG>getattrs</STRONG> returns an integer (actually a <STRONG>chtype</STRONG>), while
+ <STRONG>wattr_get</STRONG> returns the current color pair in a separate parameter.
+ In the wide-character library configuration, color pairs may not
+ fit into a <STRONG>chtype</STRONG>, so <STRONG>wattr_get</STRONG> is the only way to obtain the color
+ information.
- The <STRONG>getpary</STRONG> and <STRONG>getparx</STRONG> functions return the same data as <STRONG>getparyx</STRONG>.
+ Because <STRONG>getattrs</STRONG> returns the attributes in a single parameter, it
+ would not be possible for an application to distinguish that from
+ <STRONG>ERR</STRONG> (a <EM>-1</EM>). If the window parameter is null, <STRONG>getattrs</STRONG> returns
+ <STRONG>A_NORMAL</STRONG> (zero).
+
+ <STRONG>o</STRONG> The <STRONG>getbegy</STRONG> and <STRONG>getbegx</STRONG> functions return the same data as <STRONG>getbegyx</STRONG>.
+
+ <STRONG>o</STRONG> The <STRONG>getcury</STRONG> and <STRONG>getcurx</STRONG> functions return the same data as <STRONG>getyx</STRONG>.
+
+ <STRONG>o</STRONG> The <STRONG>getmaxy</STRONG> and <STRONG>getmaxx</STRONG> functions return the same data as <STRONG>getmaxyx</STRONG>.
+
+ <STRONG>o</STRONG> The <STRONG>getpary</STRONG> and <STRONG>getparx</STRONG> functions return the same data as <STRONG>getparyx</STRONG>.
</PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
- These functions return an integer, or ERR if the window parameter is
- null.
+ Except as noted, these functions return an integer, or ERR if the win-
+ dow parameter is null.
</PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
These functions were supported on Version 7, BSD or System V implemen-
- tations.
+ tations. None of those implementations checked the window parameter.
+
+ The <STRONG>getattrs</STRONG> function and macro are defined to return a (signed) inte-
+ ger for compatibility with those implementations although an unsigned
+ type would have been more appropriate.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_mouse.3x,v 1.46 2017/05/20 14:42:41 Sven.Joachim Exp @
+ * @Id: curs_mouse.3x,v 1.47 2017/11/18 23:52:45 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<STRONG>o</STRONG> the "libcurses" manual page lists functions for this feature which
are prototyped in <STRONG>curses.h</STRONG>:
- extern int mouse_set(long int);
- extern int mouse_on(long int);
- extern int mouse_off(long int);
- extern int request_mouse_pos(void);
- extern int map_button(unsigned long);
- extern void wmouse_position(WINDOW *, int *, int *);
- extern unsigned long getmouse(void), getbmap(void);
+ extern int mouse_set(long int);
+ extern int mouse_on(long int);
+ extern int mouse_off(long int);
+ extern int request_mouse_pos(void);
+ extern int map_button(unsigned long);
+ extern void wmouse_position(WINDOW *, int *, int *);
+ extern unsigned long getmouse(void), getbmap(void);
<STRONG>o</STRONG> the "terminfo" manual page lists capabilities for the feature
- buttons btns BT Number of buttons on the mouse
- get_mouse getm Gm Curses should get button events
- key_mouse kmous Km 0631, Mouse event has occurred
- mouse_info minfo Mi Mouse status information
- req_mouse_pos reqmp RQ Request mouse position report
+ buttons btns BT Number of buttons on the mouse
+ get_mouse getm Gm Curses should get button events
+ key_mouse kmous Km 0631, Mouse event has occurred
+ mouse_info minfo Mi Mouse status information
+ req_mouse_pos reqmp RQ Request mouse position report
<STRONG>o</STRONG> the interface made assumptions (as does ncurses) about the escape
sequences sent to and received from the terminal.
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_pad.3x,v 1.19 2017/01/07 19:25:15 tom Exp @
+ * @Id: curs_pad.3x,v 1.23 2017/11/19 01:29:46 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
screen. Pads can be used when a large window is needed, and only a
part of the window will be on the screen at one time. Automatic re-
freshes of pads (e.g., from scrolling or echoing of input) do not oc-
- cur. It is not legal to call <STRONG>wrefresh</STRONG> with a <EM>pad</EM> as an argument; the
- routines <STRONG>prefresh</STRONG> or <STRONG>pnoutrefresh</STRONG> should be called instead. Note that
+ cur.
+
+ It is not legal to call <STRONG>wrefresh</STRONG> with a <EM>pad</EM> as an argument; the rou-
+ tines <STRONG>prefresh</STRONG> or <STRONG>pnoutrefresh</STRONG> should be called instead. Note that
these routines require additional parameters to specify the part of the
pad to be displayed and the location on the screen to be used for the
display.
The <STRONG>prefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> routines are analogous to <STRONG>wrefresh</STRONG> and
<STRONG>wnoutrefresh</STRONG> except that they relate to pads instead of windows. The
additional parameters are needed to indicate what part of the pad and
- screen are involved. The <EM>pminrow</EM> and <EM>pmincol</EM> parameters specify the
- upper left-hand corner of the rectangle to be displayed in the pad.
- The <EM>sminrow</EM>, <EM>smincol</EM>, <EM>smaxrow</EM>, and <EM>smaxcol</EM> parameters specify the edges
- of the rectangle to be displayed on the screen. The lower right-hand
- corner of the rectangle to be displayed in the pad is calculated from
- the screen coordinates, since the rectangles must be the same size.
- Both rectangles must be entirely contained within their respective
- structures. Negative values of <EM>pminrow</EM>, <EM>pmincol</EM>, <EM>sminrow</EM>, or <EM>smincol</EM>
- are treated as if they were zero.
+ screen are involved.
+
+ <STRONG>o</STRONG> The <EM>pminrow</EM> and <EM>pmincol</EM> parameters specify the upper left-hand cor-
+ ner of the rectangle to be displayed in the pad.
+
+ <STRONG>o</STRONG> The <EM>sminrow</EM>, <EM>smincol</EM>, <EM>smaxrow</EM>, and <EM>smaxcol</EM> parameters specify the
+ edges of the rectangle to be displayed on the screen.
+
+ The lower right-hand corner of the rectangle to be displayed in the pad
+ is calculated from the screen coordinates, since the rectangles must be
+ the same size. Both rectangles must be entirely contained within their
+ respective structures. Negative values of <EM>pminrow</EM>, <EM>pmincol</EM>, <EM>sminrow</EM>,
+ or <EM>smincol</EM> are treated as if they were zero.
</PRE><H3><a name="h3-pechochar">pechochar</a></H3><PRE>
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- The XSI Curses standard, Issue 4 describes these functions.
+ BSD curses has no <EM>pad</EM> feature.
+
+ SVr2 curses (1986) provided the <STRONG>newpad</STRONG> and related functions, document-
+ ing them in a single line each. SVr3 (1987) provided more extensive
+ documentation.
+
+ The documentation does not explain the term <EM>pad</EM>. However, the Apollo
+ <EM>Aegis</EM> workstation operating system supported a graphical <EM>pad</EM> feature:
+
+ <STRONG>o</STRONG> These graphical pads could be much larger than the computer's dis-
+ play.
+
+ <STRONG>o</STRONG> The read-only output from a command could be scrolled back to in-
+ spect, and select text from the pad.
+
+ The two uses may be related.
+
+ The XSI Curses standard, Issue 4 describes these functions, without
+ significant change from the SVr3 documentation. It describes no error
+ conditions. The behavior of <STRONG>subpad</STRONG> if the parent window is not a pad
+ is undocumented, and is not checked by the vendor Unix implementations:
+
+ <STRONG>o</STRONG> SVr4 curses sets a flag in the <STRONG>WINDOW</STRONG> structure in <STRONG>newpad</STRONG> which
+ tells if the window is a <EM>pad</EM>.
+
+ However, it uses this information only in <STRONG>wscrl</STRONG>, and does not check
+ in <STRONG>wrefresh</STRONG> to ensure that the pad is refreshed properly.
+
+ <STRONG>o</STRONG> Solaris X/Open Curses checks if a window is a pad in <STRONG>wnoutrefresh</STRONG>,
+ returning <STRONG>ERR</STRONG> in that case.
+
+ However, it only sets the flag for subwindows if the parent window
+ is a pad. Its <STRONG>newpad</STRONG> function does not set this information. Con-
+ sequently, the check will never fail.
+
+ It makes no comparable check in <STRONG>pnoutrefresh</STRONG>, though interestingly
+ enough, a comment in the source code states that the lack of a
+ check was an MKS extension.
+
+ <STRONG>o</STRONG> NetBSD 7 curses sets a flag in the <STRONG>WINDOW</STRONG> structure for <STRONG>newpad</STRONG> and
+ <STRONG>subpad</STRONG>, using this to help with the distinction between <STRONG>wnoutre-</STRONG>
+ <STRONG>fresh</STRONG> and <STRONG>pnoutrefresh</STRONG>.
+
+ It does not check for the case where a subwindow is created in a
+ pad using <STRONG>subwin</STRONG> or <STRONG>derwin</STRONG>.
+
+ The <STRONG>dupwin</STRONG> function returns a regular window when duplicating a
+ pad. Likewise, <STRONG>getwin</STRONG> always returns a window, even if the saved
+ data was from a pad.
+
+ This implementation
+
+ <STRONG>o</STRONG> sets a flag in the <STRONG>WINDOW</STRONG> structure for <STRONG>newpad</STRONG> and <STRONG>subpad</STRONG>,
+
+ <STRONG>o</STRONG> allows a <STRONG>subwin</STRONG> or <STRONG>derwin</STRONG> call to succeed having a pad parent by
+ forcing the subwindow to be a pad,
+
+ <STRONG>o</STRONG> checks in both <STRONG>wnoutrefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> to ensure that pads
+ and windows are handled distinctly, and
+
+ <STRONG>o</STRONG> ensures that <STRONG>dupwin</STRONG> and <STRONG>getwin</STRONG> treat pads versus windows consis-
+ tently.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_slk.3x,v 1.31 2017/03/31 11:09:28 tom Exp @
+ * @Id: curs_slk.3x,v 1.32 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_termcap.3x,v 1.33 2017/01/07 19:25:15 tom Exp @
+ * @Id: curs_termcap.3x,v 1.34 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_terminfo.3x,v 1.55 2017/03/31 15:16:15 tom Exp @
+ * @Id: curs_terminfo.3x,v 1.56 2017/11/18 23:47:37 tom Exp @
* ***************************************************************************
* ***************************************************************************
* ***************************************************************************
<!--
****************************************************************************
- * Copyright (c) 2008-2014,2015 Free Software Foundation, Inc. *
+ * Copyright (c) 2008-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_threads.3x,v 1.23 2015/12/05 18:47:04 tom Exp @
+ * @Id: curs_threads.3x,v 1.24 2017/11/18 23:56:00 tom Exp @
* ***************************************************************************
* ***************************************************************************
-->
<!--
****************************************************************************
- * Copyright (c) 1998-2010,2015 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_touch.3x,v 1.16 2015/12/05 23:43:00 tom Exp @
+ * @Id: curs_touch.3x,v 1.17 2017/11/18 23:40:19 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
X/Open does not define any error conditions. In this implementation
- <STRONG>is_linetouched</STRONG>
- returns an error if the window pointer is null, or if the
- line number is outside the window. Note that ERR is dis-
- tinct from <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG>, which are the normal return val-
- ues of this function.
+ <STRONG>is_linetouched</STRONG>
+ returns an error if the window pointer is null, or if the line
+ number is outside the window. Note that ERR is distinct from
+ <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG>, which are the normal return values of this
+ function.
- <STRONG>wtouchln</STRONG>
- returns an error if the window pointer is null, or if the
- line number is outside the window.
+ <STRONG>wtouchln</STRONG>
+ returns an error if the window pointer is null, or if the line
+ number is outside the window.
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_trace.3x,v 1.18 2017/01/14 19:46:40 tom Exp @
+ * @Id: curs_trace.3x,v 1.19 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_util.3x,v 1.51 2017/10/07 21:47:25 tom Exp @
+ * @Id: curs_util.3x,v 1.52 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<!--
****************************************************************************
- * Copyright (c) 2010-2013,2015 Free Software Foundation, Inc. *
+ * Copyright (c) 2010-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_variables.3x,v 1.8 2015/08/22 23:33:22 tom Exp @
+ * @Id: curs_variables.3x,v 1.9 2017/11/18 23:56:00 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "form_" for detailed
descriptions of the entry points.
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_driver.3x,v 1.27 2017/06/23 22:56:39 tom Exp @
+ * @Id: form_driver.3x,v 1.28 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2010,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_buffer.3x,v 1.19 2010/12/04 18:38:55 tom Exp @
+ * @Id: form_field_buffer.3x,v 1.20 2017/11/18 23:56:00 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: infocmp.1m,v 1.66 2017/08/13 00:21:55 tom Exp @
+ * @Id: infocmp.1m,v 1.67 2017/11/18 23:51:17 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
http://invisible-island.net/ncurses/tctest.html
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> and related pages whose names begin "menu_" for detailed
descriptions of the entry points.
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_driver.3x,v 1.21 2017/01/07 19:25:15 tom Exp @
+ * @Id: menu_driver.3x,v 1.22 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: ncurses.3x,v 1.135 2017/08/12 22:27:43 tom Exp @
+ * @Id: ncurses.3x,v 1.136 2017/11/18 23:48:44 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
method of updating character screens with reasonable optimization.
This implementation is "new curses" (ncurses) and is the approved
replacement for 4.4BSD classic curses, which has been discontinued.
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
The <STRONG>ncurses</STRONG> library emulates the curses library of System V Release 4
UNIX, and XPG4 (X/Open Portability Guide) curses (also known as XSI
The library uses the locale which the calling program has initialized.
That is normally done with <STRONG>setlocale</STRONG>:
- <STRONG>setlocale(LC_ALL,</STRONG> <STRONG>"");</STRONG>
+ <STRONG>setlocale(LC_ALL,</STRONG> <STRONG>"");</STRONG>
If the locale is not initialized, the library assumes that characters
are printable as in ISO-8859-1, to work with certain legacy programs.
screen oriented programs want this), the following sequence should be
used:
- <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
+ <STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
Most programs would additionally use the sequence:
- <STRONG>nonl();</STRONG>
- <STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
- <STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
+ <STRONG>nonl();</STRONG>
+ <STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
+ <STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
Before a <STRONG>curses</STRONG> program is run, the tab stops of the terminal should be
set and its initialization strings, if defined, must be output. This
standard place. For example, if <STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the com-
piled terminal definition is found in
- <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
+ <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
(The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid creation of
huge directories.) However, if <STRONG>TERMINFO</STRONG> is set to <STRONG>$HOME/myterms</STRONG>,
<STRONG>curses</STRONG> first checks
- <STRONG>$HOME/myterms/a/att4424</STRONG>,
+ <STRONG>$HOME/myterms/a/att4424</STRONG>,
and if that fails, it then checks
- <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
+ <STRONG>/usr/share/terminfo/a/att4424</STRONG>.
This is useful for developing experimental definitions or when write
permission in <STRONG>/usr/share/terminfo</STRONG> is not available.
Tells <STRONG>ncurses</STRONG> where your home directory is. That is where it may read
and write auxiliary terminal descriptions:
- $HOME/.termcap
- $HOME/.terminfo
+ $HOME/.termcap
+ $HOME/.terminfo
</PRE><H3><a name="h3-LINES">LINES</a></H3><PRE>
tons on the mouse. OS/2 numbers a 3-button mouse inconsistently from
other platforms:
- 1 = left
- 2 = right
- 3 = middle.
+ 1 = left
+ 2 = right
+ 3 = middle.
This variable lets you customize the mouse. The variable must be three
numeric digits 1-3 in any order, e.g., 123 or 321. If it is not speci-
<STRONG>o</STRONG> If <STRONG>ncurses</STRONG> is built to use hashed databases, then each entry in
this list may be the path of a hashed database file, e.g.,
- /usr/share/terminfo.db
+ /usr/share/terminfo.db
rather than
- /usr/share/terminfo/
+ /usr/share/terminfo/
The hashed database uses less disk-space and is a little faster
than the directory tree. However, some applications assume the
the remainder of that variable as a compiled terminal description.
You might produce the base64 format using <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>:
- TERMINFO="$(infocmp -0 -Q2 -q)"
- export TERMINFO
+ TERMINFO="$(infocmp -0 -Q2 -q)"
+ export TERMINFO
The compiled description is used if it corresponds to the terminal
identified by the <STRONG>TERM</STRONG> variable.
If the <STRONG>TERMPATH</STRONG> environment variable is not set, <STRONG>ncurses</STRONG> looks in the
files
- /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap,
+ /etc/termcap, /usr/share/misc/termcap and $HOME/.termcap,
in that order.
the current user is the superuser (root), or if the application uses
setuid or setgid permissions:
- $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
+ $TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME.
</PRE><H2><a name="h2-ALTERNATE-CONFIGURATIONS">ALTERNATE CONFIGURATIONS</a></H2><PRE>
--disable-overwrite
The standard include for <STRONG>ncurses</STRONG> is as noted in <STRONG>SYNOPSIS</STRONG>:
- <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
+ <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
This option is used to avoid filename conflicts when <STRONG>ncurses</STRONG> is
not the main implementation of curses of the computer. If <STRONG>ncurses</STRONG>
is installed disabling overwrite, it puts its headers in a subdi-
rectory, e.g.,
- <STRONG>#include</STRONG> <STRONG><ncurses/curses.h></STRONG>
+ <STRONG>#include</STRONG> <STRONG><ncurses/curses.h></STRONG>
It also omits a symbolic link which would allow you to use
<STRONG>-lcurses</STRONG> to build executables.
ent subdirectory. All of the library names have a "w" appended to
them, i.e., instead of
- <STRONG>-lncurses</STRONG>
+ <STRONG>-lncurses</STRONG>
you link with
- <STRONG>-lncursesw</STRONG>
+ <STRONG>-lncursesw</STRONG>
You must also define <STRONG>_XOPEN_SOURCE_EXTENDED</STRONG> when compiling for the
wide-character library to use the extended (wide-character) func-
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey
- * @Id: new_pair.3x,v 1.9 2017/03/13 21:21:34 tom Exp @
+ * @Id: new_pair.3x,v 1.10 2017/11/18 23:48:44 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
tions, it is convenient to use the maximum number of combinations
as the limit on color pairs:
- <STRONG>COLORS</STRONG> <EM>*</EM> <STRONG>COLORS</STRONG>
+ <STRONG>COLORS</STRONG> <EM>*</EM> <STRONG>COLORS</STRONG>
<STRONG>o</STRONG> Terminals which support <EM>default</EM> <EM>colors</EM> distinct from "ANSI colors"
add to the possible combinations, producing this total:
- <EM>(</EM> <STRONG>COLORS</STRONG> <EM>+</EM> <EM>1</EM> <EM>)</EM> <EM>*</EM> <EM>(</EM> <STRONG>COLORS</STRONG> <EM>+</EM> <EM>1</EM> <EM>)</EM>
+ <EM>(</EM> <STRONG>COLORS</STRONG> <EM>+</EM> <EM>1</EM> <EM>)</EM> <EM>*</EM> <EM>(</EM> <STRONG>COLORS</STRONG> <EM>+</EM> <EM>1</EM> <EM>)</EM>
<STRONG>o</STRONG> An application might use up to a few dozen color pairs to implement
a predefined color scheme.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_variables.3x.html">curs_variables(3x)</A></STRONG>,
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1996-on
- * @Id: resizeterm.3x,v 1.23 2017/05/30 21:08:21 tom Exp @
+ * @Id: resizeterm.3x,v 1.24 2017/11/18 23:47:37 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: scr_dump.5,v 1.10 2017/04/29 20:53:55 tom Exp @
+ * @Id: scr_dump.5,v 1.11 2017/11/18 23:51:59 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
ber was unused by other applications. This 16-bit number was
unused:
- 0x8888 (octal "\210\210")
+ 0x8888 (octal "\210\210")
but to be more certain, this 32-bit number was chosen:
- 0x88888888 (octal "\210\210\210\210")
+ 0x88888888 (octal "\210\210\210\210")
This is the pattern submitted to the maintainers of the <STRONG>file</STRONG> pro-
gram:
- #
- # ncurses5 (and before) did not use a magic number,
- # making screen dumps "data".
- #
- # ncurses6 (2015) uses this format, ignoring byte-order
- 0 string \210\210\210\210ncurses ncurses6 screen image
- #
+ #
+ # ncurses5 (and before) did not use a magic number,
+ # making screen dumps "data".
+ #
+ # ncurses6 (2015) uses this format, ignoring byte-order
+ 0 string \210\210\210\210ncurses ncurses6 screen image
+ #
<STRONG>o</STRONG> The screen dumps are written in textual form, so that internal data
sizes are not directly related to the dump-format, and enabling the
The Solaris curses source has these definitions:
- /* terminfo magic number */
- #define MAGNUM 0432
+ /* terminfo magic number */
+ #define MAGNUM 0432
- /* curses screen dump magic number */
- #define SVR2_DUMP_MAGIC_NUMBER 0433
- #define SVR3_DUMP_MAGIC_NUMBER 0434
+ /* curses screen dump magic number */
+ #define SVR2_DUMP_MAGIC_NUMBER 0433
+ #define SVR3_DUMP_MAGIC_NUMBER 0434
That is, the feature was likely introduced in SVr2 (1984), and improved
in SVr3 (1987). The Solaris curses source has no magic number for SVr4
(1989). Other operating systems (AIX and HPUX) use a magic number
which would correspond to this definition:
- /* curses screen dump magic number */
- #define SVR4_DUMP_MAGIC_NUMBER 0435
+ /* curses screen dump magic number */
+ #define SVR4_DUMP_MAGIC_NUMBER 0435
That octal number in bytes is 001, 035. Because most Unix vendors use
big-endian hardware, the magic number is written with the high-order
byte first, e.g.,
- 01 35
+ 01 35
After the magic number, the <STRONG>WINDOW</STRONG> structure and line-data are written
in binary format. While the magic number used by the Unix systems can
but begins the file with its three-byte identifier "PDC", followed by a
one-byte version, e.g.,
- "PDC\001"
+ "PDC\001"
</PRE><H3><a name="h3-NetBSD">NetBSD</a></H3><PRE>
Given a simple program which writes text to the screen (and for the
sake of example, limiting the screen-size to 10x20):
- #include <curses.h>
-
- int
- main(void)
- {
- putenv("LINES=10");
- putenv("COLUMNS=20");
- initscr();
- start_color();
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- init_pair(2, COLOR_RED, COLOR_BLACK);
- bkgd(<STRONG>COLOR_PAIR(1)</STRONG>);
- move(4, 5);
- attron(A_BOLD);
- addstr("Hello");
- move(5, 5);
- attroff(A_BOLD);
- attrset(A_REVERSE | <STRONG>COLOR_PAIR(2)</STRONG>);
- addstr("World!");
- refresh();
- scr_dump("foo.out");
- endwin();
- return 0;
- }
+ #include <curses.h>
+
+ int
+ main(void)
+ {
+ putenv("LINES=10");
+ putenv("COLUMNS=20");
+ initscr();
+ start_color();
+ init_pair(1, COLOR_WHITE, COLOR_BLUE);
+ init_pair(2, COLOR_RED, COLOR_BLACK);
+ bkgd(<STRONG>COLOR_PAIR(1)</STRONG>);
+ move(4, 5);
+ attron(A_BOLD);
+ addstr("Hello");
+ move(5, 5);
+ attroff(A_BOLD);
+ attrset(A_REVERSE | <STRONG>COLOR_PAIR(2)</STRONG>);
+ addstr("World!");
+ refresh();
+ scr_dump("foo.out");
+ endwin();
+ return 0;
+ }
When run using ncurses6, the output looks like this:
- \210\210\210\210ncurses 6.0.20170415
- _cury=5
- _curx=11
- _maxy=9
- _maxx=19
- _flags=14
- _attrs=\{REVERSE|C2}
- flag=_idcok
- _delay=-1
- _regbottom=9
- _bkgrnd=\{NORMAL|C1}\s
- rows:
- 1:\{NORMAL|C1}\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
- 2:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
- 3:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
- 4:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
- 5:\s\s\s\s\s\{BOLD}Hello\{NORMAL}\s\s\s\s\s\s\s\s\s\s
- 6:\s\s\s\s\s\{REVERSE|C2}World!\{NORMAL|C1}\s\s\s\s\s\s\s\s\s
- 7:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
- 8:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
- 9:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
- 10:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
+ \210\210\210\210ncurses 6.0.20170415
+ _cury=5
+ _curx=11
+ _maxy=9
+ _maxx=19
+ _flags=14
+ _attrs=\{REVERSE|C2}
+ flag=_idcok
+ _delay=-1
+ _regbottom=9
+ _bkgrnd=\{NORMAL|C1}\s
+ rows:
+ 1:\{NORMAL|C1}\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
+ 2:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
+ 3:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
+ 4:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
+ 5:\s\s\s\s\s\{BOLD}Hello\{NORMAL}\s\s\s\s\s\s\s\s\s\s
+ 6:\s\s\s\s\s\{REVERSE|C2}World!\{NORMAL|C1}\s\s\s\s\s\s\s\s\s
+ 7:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
+ 8:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
+ 9:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
+ 10:\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s\s
The first four octal escapes are actually nonprinting characters, while
the remainder of the file is printable text. You may notice:
Running the same program with Solaris <EM>xpg4</EM> curses gives this dump:
- MAX=10,20
- BEG=0,0
- SCROLL=0,10
- VMIN=1
- VTIME=0
- FLAGS=0x1000
- FG=0,0
- BG=0,0,
- 0,0,0,1,
- 0,19,0,0,
- 1,0,0,1,
- 1,19,0,0,
- 2,0,0,1,
- 2,19,0,0,
- 3,0,0,1,
- 3,19,0,0,
- 4,0,0,1,
- 4,5,0x20,0,Hello
- 4,10,0,1,
- 4,19,0,0,
- 5,0,0,1,
- 5,5,0x4,2,World!
- 5,11,0,1,
- 5,19,0,0,
- 6,0,0,1,
- 6,19,0,0,
- 7,0,0,1,
- 7,19,0,0,
- 8,0,0,1,
- 8,19,0,0,
- 9,0,0,1,
- 9,19,0,0,
- CUR=11,5
+ MAX=10,20
+ BEG=0,0
+ SCROLL=0,10
+ VMIN=1
+ VTIME=0
+ FLAGS=0x1000
+ FG=0,0
+ BG=0,0,
+ 0,0,0,1,
+ 0,19,0,0,
+ 1,0,0,1,
+ 1,19,0,0,
+ 2,0,0,1,
+ 2,19,0,0,
+ 3,0,0,1,
+ 3,19,0,0,
+ 4,0,0,1,
+ 4,5,0x20,0,Hello
+ 4,10,0,1,
+ 4,19,0,0,
+ 5,0,0,1,
+ 5,5,0x4,2,World!
+ 5,11,0,1,
+ 5,19,0,0,
+ 6,0,0,1,
+ 6,19,0,0,
+ 7,0,0,1,
+ 7,19,0,0,
+ 8,0,0,1,
+ 8,19,0,0,
+ 9,0,0,1,
+ 9,19,0,0,
+ CUR=11,5
Solaris <STRONG>getwin</STRONG> requires that all parameters are present, and in the
same order. The <EM>xpg4</EM> curses library does not know about the <STRONG>bce</STRONG> (back
ground color. However, its screen dumps are in binary. Here is the
corresponding dump (using "od -t x1"):
- 0000000 1c 01 c3 d6 f3 58 05 00 0b 00 0a 00 14 00 00 00
- 0000020 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
- 0000040 00 00 b8 1a 06 08 cc 1a 06 08 00 00 09 00 10 00
- 0000060 00 00 00 80 00 00 20 00 00 00 ff ff ff ff 00 00
- 0000100 ff ff ff ff 00 00 00 00 20 80 00 00 20 80 00 00
- 0000120 20 80 00 00 20 80 00 00 20 80 00 00 20 80 00 00
- *
- 0000620 20 80 00 00 20 80 00 00 20 80 00 00 48 80 00 04
- 0000640 65 80 00 04 6c 80 00 04 6c 80 00 04 6f 80 00 04
- 0000660 20 80 00 00 20 80 00 00 20 80 00 00 20 80 00 00
- *
- 0000740 20 80 00 00 20 80 00 00 20 80 00 00 57 00 81 00
- 0000760 6f 00 81 00 72 00 81 00 6c 00 81 00 64 00 81 00
- 0001000 21 00 81 00 20 80 00 00 20 80 00 00 20 80 00 00
- 0001020 20 80 00 00 20 80 00 00 20 80 00 00 20 80 00 00
- *
- 0001540 20 80 00 00 20 80 00 00 00 00 f6 d1 01 00 f6 d1
- 0001560 08 00 00 00 40 00 00 00 00 00 00 00 00 00 00 07
- 0001600 00 04 00 01 00 01 00 00 00 01 00 00 00 00 00 00
- 0001620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- *
- 0002371
+ 0000000 1c 01 c3 d6 f3 58 05 00 0b 00 0a 00 14 00 00 00
+ 0000020 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
+ 0000040 00 00 b8 1a 06 08 cc 1a 06 08 00 00 09 00 10 00
+ 0000060 00 00 00 80 00 00 20 00 00 00 ff ff ff ff 00 00
+ 0000100 ff ff ff ff 00 00 00 00 20 80 00 00 20 80 00 00
+ 0000120 20 80 00 00 20 80 00 00 20 80 00 00 20 80 00 00
+ *
+ 0000620 20 80 00 00 20 80 00 00 20 80 00 00 48 80 00 04
+ 0000640 65 80 00 04 6c 80 00 04 6c 80 00 04 6f 80 00 04
+ 0000660 20 80 00 00 20 80 00 00 20 80 00 00 20 80 00 00
+ *
+ 0000740 20 80 00 00 20 80 00 00 20 80 00 00 57 00 81 00
+ 0000760 6f 00 81 00 72 00 81 00 6c 00 81 00 64 00 81 00
+ 0001000 21 00 81 00 20 80 00 00 20 80 00 00 20 80 00 00
+ 0001020 20 80 00 00 20 80 00 00 20 80 00 00 20 80 00 00
+ *
+ 0001540 20 80 00 00 20 80 00 00 00 00 f6 d1 01 00 f6 d1
+ 0001560 08 00 00 00 40 00 00 00 00 00 00 00 00 00 00 07
+ 0001600 00 04 00 01 00 01 00 00 00 01 00 00 00 00 00 00
+ 0001620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ *
+ 0002371
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<!--
****************************************************************************
- * Copyright (c) 2008-2013,2016 Free Software Foundation, Inc. *
+ * Copyright (c) 2008-2016,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tabs.1,v 1.15 2016/12/31 16:07:39 tom Exp @
+ * @Id: tabs.1,v 1.16 2017/11/18 23:56:00 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
absent, <STRONG>tabs</STRONG> is unable to clear/set tab-stops. The terminal should be
configured to use hard tabs, e.g.,
- stty tab0
+ stty tab0
Like <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>tabs</STRONG> writes to the standard output. You can redirect
the standard output to a file (which prevents <STRONG>tabs</STRONG> from actually chang-
greater than zero. They are separated by a comma or a blank, for exam-
ple,
- tabs 1,6,11,16,21
- tabs 1 6 11 16 21
+ tabs 1,6,11,16,21
+ tabs 1 6 11 16 21
Use a "+" to treat a number as an increment relative to the previous
value, e.g.,
- tabs 1,+5,+5,+5,+5
+ tabs 1,+5,+5,+5,+5
which is equivalent to the 1,6,11,16,21 example.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
<EM>Terminfo</EM> describes terminals by giving a set of capabilities which they
have, by specifying how to perform screen operations, and by specifying
padding requirements and initialization sequences. This describes
- <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
</PRE><H3><a name="h3-Terminfo-Entry-Syntax">Terminfo Entry Syntax</a></H3><PRE>
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tic.1m,v 1.65 2017/07/08 19:48:37 tom Exp @
+ * @Id: tic.1m,v 1.66 2017/11/18 23:51:17 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>,
<STRONG><A HREF="term.5.html">term(5)</A></STRONG>. <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
</PRE><H2><a name="h2-AUTHOR">AUTHOR</a></H2><PRE>
<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>, <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG>ter-</STRONG>
<STRONG><A HREF="terminfo.5.html">minfo(5)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tput.1,v 1.55 2017/08/19 14:26:42 tom Exp @
+ * @Id: tput.1,v 1.56 2017/11/18 23:51:17 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
<STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tset.1,v 1.49 2017/04/16 21:30:15 tom Exp @
+ * @Id: tset.1,v 1.50 2017/11/18 23:51:17 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<STRONG>csh(1)</STRONG>, <STRONG>sh(1)</STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>, <STRONG>tty(4)</STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>,
<STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171028).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20171118).
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: user_caps.5,v 1.2 2017/09/04 19:27:24 tom Exp @
+ * @Id: user_caps.5,v 1.3 2017/11/18 23:51:59 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: clear.1,v 1.18 2017/10/07 21:30:17 tom Exp $
+.\" $Id: clear.1,v 1.19 2017/11/18 23:51:59 tom Exp $
.TH @CLEAR@ 1 ""
.\" these would be fallbacks for DS/DE,
.\" but groff changed the meaning of the macros.
.de NS
-.ie \n(.sp
+.ie n .sp
.el .sp .5
-.ie \n(.in +4
+.ie n .in +4
.el .in +2
.nf
.ft C \" Courier
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.ds n 5
.SH NAME
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_add_wch.3x,v 1.23 2017/05/20 14:45:24 Sven.Joachim Exp $
+.\" $Id: curs_add_wch.3x,v 1.24 2017/11/18 23:47:37 tom Exp $
.TH curs_add_wch 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBadd_wch\fP,
.\"***************************************************************************
-.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+.\" Copyright (c) 2002-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_add_wchstr.3x,v 1.10 2012/11/03 22:54:43 tom Exp $
+.\" $Id: curs_add_wchstr.3x,v 1.11 2017/11/18 23:56:00 tom Exp $
.TH curs_add_wchstr 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.na
.hy 0
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addch.3x,v 1.41 2017/05/05 18:15:29 tom Exp $
+.\" $Id: curs_addch.3x,v 1.43 2017/11/19 01:54:00 tom Exp $
.TH curs_addch 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBaddch\fR,
.SH PORTABILITY
All these functions are described in the XSI Curses standard, Issue 4.
The defaults specified for forms-drawing characters apply in the POSIX locale.
+.SS ACS Symbols
.LP
X/Open Curses states that the \fIACS_\fP definitions are \fBchar\fP constants.
For the wide-character implementation (see \fBcurs_add_wch\fP),
In certain cases, the terminal is unable to display line-drawing characters
except by using UTF-8 (see the discussion of \fBNCURSES_NO_UTF8_ACS\fP in
ncurses(3X)).
+.SS Character Set
+X/Open Curses assumes that the parameter passed to \fBwaddch\fP contains
+a single character.
+As discussed in \fBcurs_attr(3X)\fP, that character may have been
+more than eight bits in an SVr3 or SVr4 implementation,
+but in the X/Open Curses model, the details are not given.
+The important distinction between SVr4 curses and X/Open Curses is
+that the non-character information (attributes and color) was
+separated from the character information which is packed in a \fBchtype\fP
+to pass to \fBwaddch\fP.
+.PP
+In this implementation, \fBchtype\fP holds eight bits.
+But ncurses allows multibyte characters to be passed in a succession
+of calls to \fBwaddch\fP.
+The other implementations do not do this;
+a call to \fBwaddch\fP passes exactly one character
+which may be rendered as one or more cells on the screen
+depending on whether it is printable.
+.PP
+Depending on the locale settings,
+ncurses will inspect the byte passed in each call to \fBwaddch\fP,
+and check if the latest call will continue a multibyte sequence.
+When a character is \fIcomplete\fP,
+ncurses displays the character and moves to the next position in the screen.
+.PP
+If the calling application interrupts the succession of bytes in
+a multibyte character by moving the current location (e.g., using \fBwmove\fP),
+ncurses discards the partially built character,
+starting over again.
+.PP
+For portability to other implementations,
+do not rely upon this behavior:
+.bP
+check if a character can be represented as a single byte in the current locale
+before attempting call \fBwaddch\fP, and
+.bP
+call \fBwadd_wch\fP for characters which cannot be handled by \fBwaddch\fP.
+.SS TABSIZE
.LP
The \fBTABSIZE\fR variable is implemented in some versions of curses,
but is not part of X/Open curses.
.\"***************************************************************************
-.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addchstr.3x,v 1.16 2012/11/03 22:54:43 tom Exp $
+.\" $Id: curs_addchstr.3x,v 1.17 2017/11/18 23:56:00 tom Exp $
.TH curs_addchstr 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.na
.hy 0
.\"***************************************************************************
-.\" Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addstr.3x,v 1.17 2012/11/03 22:57:31 tom Exp $
+.\" $Id: curs_addstr.3x,v 1.18 2017/11/18 23:56:00 tom Exp $
.TH curs_addstr 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.na
.hy 0
.\"***************************************************************************
-.\" Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+.\" Copyright (c) 2002-2012,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addwstr.3x,v 1.11 2012/11/03 22:57:31 tom Exp $
+.\" $Id: curs_addwstr.3x,v 1.12 2017/11/18 23:56:00 tom Exp $
.TH curs_addwstr 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.na
.hy 0
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_attr.3x,v 1.60 2017/10/14 20:01:13 tom Exp $
+.\" $Id: curs_attr.3x,v 1.61 2017/11/18 23:47:37 tom Exp $
.TH curs_attr 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.na
.hy 0
.\"***************************************************************************
-.\" Copyright (c) 1998-2010,2015 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_bkgd.3x,v 1.24 2015/11/21 01:53:42 tom Exp $
+.\" $Id: curs_bkgd.3x,v 1.25 2017/11/18 23:56:00 tom Exp $
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.TH curs_bkgd 3X ""
.SH NAME
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_bkgrnd.3x,v 1.7 2017/03/25 21:49:00 tom Exp $
+.\" $Id: curs_bkgrnd.3x,v 1.8 2017/11/18 23:47:37 tom Exp $
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.TH curs_bkgrnd 3X ""
.SH NAME
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_color.3x,v 1.51 2017/08/12 21:40:14 tom Exp $
+.\" $Id: curs_color.3x,v 1.52 2017/11/18 23:47:37 tom Exp $
.TH curs_color 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.ds n 5
.na
.\"***************************************************************************
-.\" Copyright (c) 2002-2012,2016 Free Software Foundation, Inc. *
+.\" Copyright (c) 2002-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_get_wch.3x,v 1.9 2016/05/15 01:12:50 tom Exp $
+.\" $Id: curs_get_wch.3x,v 1.10 2017/11/18 23:56:00 tom Exp $
.TH curs_get_wch 3X ""
.na
.hy 0
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBget_wch\fR,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_getcchar.3x,v 1.18 2017/03/31 10:50:54 tom Exp $
+.\" $Id: curs_getcchar.3x,v 1.19 2017/11/18 23:47:37 tom Exp $
.TH curs_getcchar 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBgetcchar\fP,
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2015,2016 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_getch.3x,v 1.49 2016/10/15 16:44:01 tom Exp $
+.\" $Id: curs_getch.3x,v 1.50 2017/11/18 23:56:00 tom Exp $
.TH curs_getch 3X ""
.na
.hy 0
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBgetch\fR,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inch.3x,v 1.19 2017/10/28 20:16:52 Sven.Joachim Exp $
+.\" $Id: curs_inch.3x,v 1.20 2017/11/18 23:47:37 tom Exp $
.TH curs_inch 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBinch\fR,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inchstr.3x,v 1.16 2017/04/29 21:31:17 tom Exp $
+.\" $Id: curs_inchstr.3x,v 1.17 2017/11/18 23:47:37 tom Exp $
.TH curs_inchstr 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.na
.hy 0
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_initscr.3x,v 1.28 2017/05/30 21:12:51 tom Exp $
+.\" $Id: curs_initscr.3x,v 1.29 2017/11/18 23:47:37 tom Exp $
.TH curs_initscr 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_instr.3x,v 1.17 2017/04/29 21:37:55 tom Exp $
+.\" $Id: curs_instr.3x,v 1.18 2017/11/18 23:47:37 tom Exp $
.TH curs_instr 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBinstr\fR,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_kernel.3x,v 1.22 2017/01/07 19:25:15 tom Exp $
+.\" $Id: curs_kernel.3x,v 1.23 2017/11/18 23:47:37 tom Exp $
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.TH curs_kernel 3X ""
.na
.\"***************************************************************************
-.\" Copyright (c) 2007-2010,2015 Free Software Foundation, Inc. *
+.\" Copyright (c) 2007-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_legacy.3x,v 1.6 2015/12/05 20:33:14 tom Exp $
+.\" $Id: curs_legacy.3x,v 1.7 2017/11/19 00:23:58 tom Exp $
+.de bP
+.ie n .IP \(bu 4
+.el .IP \(bu 2
+..
.TH curs_legacy 3X ""
.SH NAME
-curs_legacy \- get \fBcurses\fR cursor and window coordinates, attributes
+curs_legacy \- get \fBcurses\fP cursor and window coordinates, attributes
.SH SYNOPSIS
-\fB#include <curses.h>\fR
+\fB#include <curses.h>\fP
.sp
-\fBint getattrs(WINDOW *win);\fR
+\fBint getattrs(WINDOW *win);\fP
.br
-\fBint getbegx(WINDOW *win);\fR
+\fBint getbegx(WINDOW *win);\fP
.br
-\fBint getbegy(WINDOW *win);\fR
+\fBint getbegy(WINDOW *win);\fP
.br
-\fBint getcurx(WINDOW *win);\fR
+\fBint getcurx(WINDOW *win);\fP
.br
-\fBint getcury(WINDOW *win);\fR
+\fBint getcury(WINDOW *win);\fP
.br
-\fBint getmaxx(WINDOW *win);\fR
+\fBint getmaxx(WINDOW *win);\fP
.br
-\fBint getmaxy(WINDOW *win);\fR
+\fBint getmaxy(WINDOW *win);\fP
.br
-\fBint getparx(WINDOW *win);\fR
+\fBint getparx(WINDOW *win);\fP
.br
-\fBint getpary(WINDOW *win);\fR
+\fBint getpary(WINDOW *win);\fP
.br
.SH DESCRIPTION
-The \fBgetbegy\fR and \fBgetbegx\fR functions return the same
-data as \fBgetbegyx\fR.
-.PP
-The \fBgetcury\fR and \fBgetcurx\fR functions return the same
-data as \fBgetyx\fR.
-.PP
-The \fBgetmaxy\fR and \fBgetmaxx\fR functions return the same
-data as \fBgetmaxyx\fR.
-.PP
-The \fBgetpary\fR and \fBgetparx\fR functions return the same
-data as \fBgetparyx\fR.
+These legacy functions are simpler to use than the X/Open Curses functions:
+.bP
+The \fBgetattrs\fP function returns the same attribute data as \fBwattr_get\fP.
+.IP
+However, \fBgetattrs\fP returns an integer (actually a \fBchtype\fP),
+while \fBwattr_get\fP returns the current color pair in a separate parameter.
+In the wide-character library configuration,
+color pairs may not fit into a \fBchtype\fP,
+so \fBwattr_get\fP is the only way to obtain the color information.
+.IP
+Because \fBgetattrs\fP returns the attributes in a single parameter,
+it would not be possible for an application to distinguish that from
+\fBERR\fP (a \fI-1\fP).
+If the window parameter is null, \fBgetattrs\fP returns \fBA_NORMAL\fP (zero).
+.bP
+The \fBgetbegy\fP and \fBgetbegx\fP functions return the same
+data as \fBgetbegyx\fP.
+.bP
+The \fBgetcury\fP and \fBgetcurx\fP functions return the same
+data as \fBgetyx\fP.
+.bP
+The \fBgetmaxy\fP and \fBgetmaxx\fP functions return the same
+data as \fBgetmaxyx\fP.
+.bP
+The \fBgetpary\fP and \fBgetparx\fP functions return the same
+data as \fBgetparyx\fP.
.SH RETURN VALUE
-These functions return an integer,
+Except as noted,
+these functions return an integer,
or ERR if the window parameter is null.
.SH NOTES
All of these interfaces are provided as macros and functions.
The macros are suppressed (and only the functions provided)
-when \fBNCURSES_OPAQUE\fR is defined.
+when \fBNCURSES_OPAQUE\fP is defined.
The standard forms such as \fBgetyx\fP must be implemented as macros,
and (in this implementation) are defined in terms of the functions
described here,
to avoid reliance on internal details of the WINDOW structure.
.SH PORTABILITY
These functions were supported on Version 7, BSD or System V implementations.
+None of those implementations checked the window parameter.
+.PP
+The \fBgetattrs\fP function and macro are defined to return a (signed) integer
+for compatibility with those implementations
+although an unsigned type would have been more appropriate.
.SH SEE ALSO
-\fBcurses\fR(3X),
-\fBcurs_getyx\fR(3X),
-\fBcurs_opaque\fR(3X)
+\fBcurses\fP(3X),
+\fBcurs_getyx\fP(3X),
+\fBcurs_opaque\fP(3X)
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_mouse.3x,v 1.46 2017/05/20 14:42:41 Sven.Joachim Exp $
+.\" $Id: curs_mouse.3x,v 1.47 2017/11/18 23:52:45 tom Exp $
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de NS
-.ie \n(.sp
+.ie n .sp
.el .sp .5
-.ie \n(.in +4
+.ie n .in +4
.el .in +2
.nf
.ft C \" Courier
.in -4
..
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.TH curs_mouse 3X ""
.na
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_pad.3x,v 1.19 2017/01/07 19:25:15 tom Exp $
+.\" $Id: curs_pad.3x,v 1.23 2017/11/19 01:29:46 tom Exp $
+.de bP
+.ie n .IP \(bu 4
+.el .IP \(bu 2
+..
.TH curs_pad 3X ""
.na
.hy 0
window will be on the screen at one time.
Automatic refreshes of pads
(e.g., from scrolling or echoing of input) do not occur.
+.PP
It is not
legal to call \fBwrefresh\fR with a \fIpad\fR as an argument; the routines
\fBprefresh\fR or \fBpnoutrefresh\fR should be called instead.
of windows.
The additional parameters are needed to indicate what part of the
pad and screen are involved.
+.bP
The \fIpminrow\fR and \fIpmincol\fR parameters specify the upper
left-hand corner of the rectangle to be displayed in the pad.
+.bP
The \fIsminrow\fR,
\fIsmincol\fR, \fIsmaxrow\fR, and \fIsmaxcol\fR
parameters specify the edges of the
rectangle to be displayed on the screen.
+.PP
The lower right-hand corner of the
rectangle to be displayed in the pad is calculated from the screen coordinates,
since the rectangles must be the same size.
.SH NOTES
Note that \fBpechochar\fR may be a macro.
.SH PORTABILITY
-The XSI Curses standard, Issue 4 describes these functions.
+BSD curses has no \fIpad\fP feature.
+.PP
+SVr2 curses (1986) provided the \fBnewpad\fP and related functions,
+documenting them in a single line each.
+SVr3 (1987) provided more extensive documentation.
+.PP
+The documentation does not explain the term \fIpad\fP.
+However, the Apollo \fIAegis\fP workstation operating system
+supported a graphical \fIpad\fP feature:
+.bP
+These graphical pads could be much larger than the computer's display.
+.bP
+The read-only output from a command could be scrolled back to inspect,
+and select text from the pad.
+.PP
+The two uses may be related.
+.PP
+The XSI Curses standard, Issue 4 describes these functions,
+without significant change from the SVr3 documentation.
+It describes no error conditions.
+The behavior of \fBsubpad\fP if the parent window is not
+a pad is undocumented,
+and is not checked by the vendor Unix implementations:
+.bP
+SVr4 curses sets a flag in the \fBWINDOW\fP structure in \fBnewpad\fP
+which tells if the window is a \fIpad\fP.
+.IP
+However, it uses this information only in \fBwscrl\fP,
+and does not check in \fBwrefresh\fP to ensure that the pad
+is refreshed properly.
+.bP
+Solaris X/Open Curses checks if a window is a pad in \fBwnoutrefresh\fP,
+returning \fBERR\fP in that case.
+.IP
+However, it only sets the flag for subwindows if the parent window is a pad.
+Its \fBnewpad\fP function does not set this information.
+Consequently, the check will never fail.
+.IP
+It makes no comparable check in \fBpnoutrefresh\fP,
+though interestingly enough, a comment in the source code
+states that the lack of a check was an MKS extension.
+.bP
+NetBSD 7 curses
+sets a flag in the \fBWINDOW\fP structure for \fBnewpad\fP and \fBsubpad\fP,
+using this to help with the distinction between \fBwnoutrefresh\fP
+and \fBpnoutrefresh\fP.
+.IP
+It does not check for the case where a subwindow is created in
+a pad using \fBsubwin\fP or \fBderwin\fP.
+.IP
+The \fBdupwin\fP function returns a regular window when duplicating a pad.
+Likewise, \fBgetwin\fP always returns a window, even if the saved
+data was from a pad.
+.PP
+This implementation
+.bP
+sets a flag in the \fBWINDOW\fP structure for \fBnewpad\fP and \fBsubpad\fP,
+.bP
+allows a \fBsubwin\fP or \fBderwin\fP call to succeed having a pad parent by
+forcing the subwindow to be a pad,
+.bP
+checks in both \fBwnoutrefresh\fP and \fBpnoutrefresh\fP to ensure
+that pads and windows are handled distinctly, and
+.bP
+ensures that \fBdupwin\fP and \fBgetwin\fP treat
+pads versus windows consistently.
.SH SEE ALSO
\fBcurses\fR(3X), \fBcurs_refresh\fR(3X), \fBcurs_touch\fR(3X), \fBcurs_addch\fR(3X).
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_slk.3x,v 1.31 2017/03/31 11:09:28 tom Exp $
+.\" $Id: curs_slk.3x,v 1.32 2017/11/18 23:47:37 tom Exp $
.TH curs_slk 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.na
.hy 0
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_termcap.3x,v 1.33 2017/01/07 19:25:15 tom Exp $
+.\" $Id: curs_termcap.3x,v 1.34 2017/11/18 23:47:37 tom Exp $
.TH curs_termcap 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.na
.hy 0
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_terminfo.3x,v 1.55 2017/03/31 15:16:15 tom Exp $
+.\" $Id: curs_terminfo.3x,v 1.56 2017/11/18 23:47:37 tom Exp $
.TH curs_terminfo 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.ds n 5
.na
.\"***************************************************************************
-.\" Copyright (c) 2008-2014,2015 Free Software Foundation, Inc. *
+.\" Copyright (c) 2008-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_threads.3x,v 1.23 2015/12/05 18:47:04 tom Exp $
+.\" $Id: curs_threads.3x,v 1.24 2017/11/18 23:56:00 tom Exp $
.TH curs_threads 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.na
.hy 0
.\"***************************************************************************
-.\" Copyright (c) 1998-2010,2015 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_touch.3x,v 1.16 2015/12/05 23:43:00 tom Exp $
+.\" $Id: curs_touch.3x,v 1.17 2017/11/18 23:40:19 tom Exp $
.TH curs_touch 3X ""
.na
.hy 0
.PP
X/Open does not define any error conditions.
In this implementation
-.RS
+.RS 3
.TP 5
\fBis_linetouched\fP
returns an error
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_trace.3x,v 1.18 2017/01/14 19:46:40 tom Exp $
+.\" $Id: curs_trace.3x,v 1.19 2017/11/18 23:47:37 tom Exp $
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.TH curs_trace 3X ""
.na
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_util.3x,v 1.51 2017/10/07 21:47:25 tom Exp $
+.\" $Id: curs_util.3x,v 1.52 2017/11/18 23:47:37 tom Exp $
.TH curs_util 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.na
.hy 0
.\"***************************************************************************
-.\" Copyright (c) 2010-2013,2015 Free Software Foundation, Inc. *
+.\" Copyright (c) 2010-2015,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_variables.3x,v 1.8 2015/08/22 23:33:22 tom Exp $
+.\" $Id: curs_variables.3x,v 1.9 2017/11/18 23:56:00 tom Exp $
.TH curs_variables 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.ds n 5
.na
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_driver.3x,v 1.27 2017/06/23 22:56:39 tom Exp $
+.\" $Id: form_driver.3x,v 1.28 2017/11/18 23:47:37 tom Exp $
.TH form_driver 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBform_driver\fR,
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2008,2010 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2010,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_buffer.3x,v 1.19 2010/12/04 18:38:55 tom Exp $
+.\" $Id: form_field_buffer.3x,v 1.20 2017/11/18 23:56:00 tom Exp $
.TH form_field_buffer 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBform_field_buffer\fR \- field buffer control
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: infocmp.1m,v 1.66 2017/08/13 00:21:55 tom Exp $
+.\" $Id: infocmp.1m,v 1.67 2017/11/18 23:51:17 tom Exp $
.TH @INFOCMP@ 1M ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.el .ds '' ''
.ds n 5
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.ds d @TERMINFO@
.SH NAME
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_driver.3x,v 1.21 2017/01/07 19:25:15 tom Exp $
+.\" $Id: menu_driver.3x,v 1.22 2017/11/18 23:47:37 tom Exp $
.TH menu_driver 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBmenu_driver\fR \- command-processing loop of the menu system
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: ncurses.3x,v 1.135 2017/08/12 22:27:43 tom Exp $
+.\" $Id: ncurses.3x,v 1.136 2017/11/18 23:48:44 tom Exp $
.hy 0
.TH ncurses 3X ""
.ie \n(.g .ds `` \(lq
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.de NS
-.ie \n(.sp
+.ie n .sp
.el .sp .5
-.ie \n(.in +4
+.ie n .in +4
.el .in +2
.nf
.ft C \" Courier
.\"
.\" Author: Thomas E. Dickey
.\"
-.\" $Id: new_pair.3x,v 1.9 2017/03/13 21:21:34 tom Exp $
+.\" $Id: new_pair.3x,v 1.10 2017/11/18 23:48:44 tom Exp $
.TH new_pair 3X ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.de NS
-.ie \n(.sp
+.ie n .sp
.el .sp .5
-.ie \n(.in +4
+.ie n .in +4
.el .in +2
.nf
.ft C \" Courier
.\"
.\" Author: Thomas E. Dickey 1996-on
.\"
-.\" $Id: resizeterm.3x,v 1.23 2017/05/30 21:08:21 tom Exp $
+.\" $Id: resizeterm.3x,v 1.24 2017/11/18 23:47:37 tom Exp $
.TH resizeterm 3X ""
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fBis_term_resized\fR,
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: scr_dump.5,v 1.10 2017/04/29 20:53:55 tom Exp $
+.\" $Id: scr_dump.5,v 1.11 2017/11/18 23:51:59 tom Exp $
.TH scr_dump 5
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de NS
-.ie \n(.sp
+.ie n .sp
.el .sp .5
-.ie \n(.in +4
+.ie n .in +4
.el .in +2
.nf
.ft C \" Courier
.in -4
..
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.ds n 5
.ds d @TERMINFO@
.\"***************************************************************************
-.\" Copyright (c) 2008-2013,2016 Free Software Foundation, Inc. *
+.\" Copyright (c) 2008-2016,2017 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tabs.1,v 1.15 2016/12/31 16:07:39 tom Exp $
+.\" $Id: tabs.1,v 1.16 2017/11/18 23:56:00 tom Exp $
.TH @TABS@ 1 ""
.ds n 5
.ie \n(.g .ds `` \(lq
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.de NS
-.ie \n(.sp
+.ie n .sp
.el .sp .5
-.ie \n(.in +4
+.ie n .in +4
.el .in +2
.nf
.ft C \" Courier
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tic.1m,v 1.65 2017/07/08 19:48:37 tom Exp $
+.\" $Id: tic.1m,v 1.66 2017/11/18 23:51:17 tom Exp $
.TH @TIC@ 1M ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ds n 5
.ds d @TERMINFO@
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fB@TIC@\fR \- the \fIterminfo\fR entry-description compiler
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tput.1,v 1.55 2017/08/19 14:26:42 tom Exp $
+.\" $Id: tput.1,v 1.56 2017/11/18 23:51:17 tom Exp $
.TH @TPUT@ 1 ""
.ds d @TERMINFO@
.ds n 1
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fB@TPUT@\fR, \fBreset\fR \- initialize a terminal or query terminfo database
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tset.1,v 1.49 2017/04/16 21:30:15 tom Exp $
+.\" $Id: tset.1,v 1.50 2017/11/18 23:51:17 tom Exp $
.TH @TSET@ 1 ""
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.SH NAME
\fB@TSET@\fR, \fB@RESET@\fR \- terminal initialization
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: user_caps.5,v 1.2 2017/09/04 19:27:24 tom Exp $
+.\" $Id: user_caps.5,v 1.3 2017/11/18 23:51:59 tom Exp $
.TH user_caps 5
.ie \n(.g .ds `` \(lq
.el .ds `` ``
.ie \n(.g .ds '' \(rq
.el .ds '' ''
.de NS
-.ie \n(.sp
+.ie n .sp
.el .sp .5
-.ie \n(.in +4
+.ie n .in +4
.el .in +2
.nf
.ft C \" Courier
.in -4
..
.de bP
-.IP \(bu 4
+.ie n .IP \(bu 4
+.el .IP \(bu 2
..
.ds n 5
.SH NAME
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
-# $Revision: 1.623 $
-# $Date: 2017/11/11 20:24:40 $
+# $Revision: 1.644 $
+# $Date: 2017/11/18 21:38:11 $
#
# The original header is preserved below for reference. It is noted that there
# is a "newer" version which differs in some cosmetic details (but actually
kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
- kind=\E[1;2B, kri=\E[1;2A, kDN3=\E\E[B, kDN4=\E[1;10B,
- kDN5=\E[1;5B, kDN6=\E[1;6B, kEND3=\E[1;9F,
- kEND4=\E[1;10F, kEND6=\E[1;6F, kEND7=\E[1;13F,
- kEND8=\E[1;14F, kHOM3=\E[1;9H, kHOM4=\E[1;10H,
- kHOM6=\E[1;6H, kHOM7=\E[1;13H, kHOM8=\E[1;14H,
- kLFT3=\E\E[D, kLFT4=\E[1;10D, kLFT5=\E[1;5D,
- kLFT6=\E[1;6D, kNXT3=\E\E[6~, kPRV3=\E\E[5~,
- kRIT3=\E\E[C, kRIT4=\E[1;10C, kRIT5=\E[1;5C,
- kRIT6=\E[1;6C, kUP3=\E\E[A, kUP4=\E[1;10A, kUP5=\E[1;5A,
- kUP6=\E[1;6A, use=ecma+italics, use=iterm,
+ kind=\E[1;2B, kri=\E[1;2A,
+ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
+ %p5%t;2%;m%?%p9%t\016%e\017%;,
+ kDN3=\E\E[B, kDN4=\E[1;10B, kDN5=\E[1;5B, kDN6=\E[1;6B,
+ kEND3=\E[1;9F, kEND4=\E[1;10F, kEND6=\E[1;6F,
+ kEND7=\E[1;13F, kEND8=\E[1;14F, kHOM3=\E[1;9H,
+ kHOM4=\E[1;10H, kHOM6=\E[1;6H, kHOM7=\E[1;13H,
+ kHOM8=\E[1;14H, kLFT3=\E\E[D, kLFT4=\E[1;10D,
+ kLFT5=\E[1;5D, kLFT6=\E[1;6D, kNXT3=\E\E[6~,
+ kPRV3=\E\E[5~, kRIT3=\E\E[C, kRIT4=\E[1;10C,
+ kRIT5=\E[1;5C, kRIT6=\E[1;6C, kUP3=\E\E[A, kUP4=\E[1;10A,
+ kUP5=\E[1;5A, kUP6=\E[1;6A, use=ecma+italics, use=iterm,
# xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
#
# "resize -s"), though it does not pass SIGWINCH to the application if the
# user resizes the window with the mouse.
teraterm2.3|Tera Term Pro,
- km, xon@,
+ km,
ncv#43, vt@,
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i
\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u
cnorm=\E[?25h, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
- flash=\E[?5h\E[?5l$<200/>, hpa=\E[%i%p1%dG,
+ flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
il=\E[%p1%dL, il1=\E[L, kdch1=\E[3~, kf1=\E[11~,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
# from BSD termcap. (hpterm: added empty <acsc>, we have no idea what ACS
# chars look like --esr)
hpterm|X-hpterm|hp X11 terminal emulator,
- am, da, db, mir, xhp,
+ am, da, db, mir, xhp, xon,
cols#80, lh#2, lines#24, lm#0, lw#8, nlab#8, pb#9600, xmc#0,
acsc=, bel=^G, bold=\E&dB, cbt=\Ei, clear=\E&a0y0C\EJ, cr=\r,
cub1=^H, cud1=\EB, cuf1=\EC, cup=\E&a%p1%dy%p2%dC,
rmul=\E&d@,
sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+
%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
- sgr0=\E&d@, smacs=^N, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
- smso=\E&dJ, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+ sgr0=\E&d@\017, smacs=^N, smir=\EQ, smkx=\E&s1A,
+ smln=\E&jB, smso=\E&dJ, smul=\E&dD, tbc=\E3,
+ vpa=\E&a%p1%dY,
# HPUX 11 provides a color version.
hpterm-color|HP X11 terminal emulator with color,
ccc,
rs2=\E[4l\E[34l\E[?1l\E[?3l\E[?5l\E[?7h, sc=\E7,
sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;
2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m, smacs=^N, smcup=\E[?1l\E=, smkx=\E=,
+ sgr0=\E[m\017, smacs=^N, smcup=\E[?1l\E=, smkx=\E=,
smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
#### MVTERM
# apparently implements alternate screen like xterm
# does not use padding, of course.
mvterm|vv100|SwitchTerm aka mvTERM,
- am, eslok, hs, km, mir, msgr, xenl,
+ am, eslok, hs, km, mir, msgr, xenl, xon,
colors#8, cols#80, it#8, lines#24, pairs#64,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
rmul=\E[24m,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m,
- vpa=\E[%i%p1%dd,
+ sgr0=\E[m\017, smacs=^N, smir=\E[4h, smso=\E[7m,
+ smul=\E[4m, vpa=\E[%i%p1%dd,
# mterm normally sets $TERM to "mterm"
mterm|mouse-sun|Der Mouse term,
am, bw, mir,
setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m, smacs=^N, smam=\E[?7h, smir=\E[4h,
+ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smir=\E[4h,
smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, u6=\E[%i%d;%dR,
u7=\E[6n, vpa=\E[%i%p1%dd,
khome=\E[1~, knp=\E[6~, kpp=\E[5~, rev=\E[7m, rmacs=\E[10m,
rmam=\E[?7l, rmcup=\E[?1049l, rs1=\E[H\E[J\E[m\Ec,
setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6
- %t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+ sgr=\E[0;10%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5
+ %t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
sgr0=\E[0;10m, smacs=\E[11m, smam=\E[?7h,
smcup=\E[?1049h, smso=\E[3m, smul=\E[4m,
#
mgr|Bellcore MGR (non X) window system terminal emulation,
- am, km,
+ am, km, xon,
bel=^G, bold=\E2n, civis=\E9h, clear=^L, cnorm=\Eh, cr=\r,
csr=\E%p1%d;%p2%dt, cub1=^H, cud1=\Ef, cuf1=\Er,
cup=\E%p2%d;%p1%dM, cuu1=\Eu, cvvis=\E0h,
%=%t3%e%p1%d%;m,
setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}
%=%t3%e%p1%d%;m,
+ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
+ %t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m,
Ss=\E]52;%p1%s;%p2%s\007, kDN3=\E[1;3B, kDN5=\E[1;5B,
kLFT3=\E[1;3D, kLFT5=\E[1;5D, kNXT3=\E[6;3~,
kNXT5=\E[6;5~, kPRV3=\E[5;3~, kPRV5=\E[5;5~,
# does not handle combinations of modifiers - but listing them all would
# involve more effort than its developers spent -TD
terminology-0.6.1|EFL-based terminal emulator,
- mc5i@, xon@,
+ mc5i@,
blink@, ed@, el@, el1@, invis=\E[8m, kLFT=\E[1;2D,
kRIT=\E[1;2C, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
# tmux is compatible with screen, but has support for italics, and some of the
# xterm cursor bits.
tmux|tmux terminal multiplexer,
- rmso=\E[27m, smso=\E[7m, use=ecma+italics,
- use=ecma+strikeout, use=xterm+edit, use=xterm+pcfkeys,
- use=xterm+sl, use=xterm+tmux, use=screen,
+ rmso=\E[27m,
+ sgr=\E[0%?%p6%t;1%;%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;
+ \s\s\s\s\s\s\s\s\s\s\s\s5%;%?%p5%t;2%;m%?%p9%t\016%e
+ \017%;,
+ smso=\E[7m, use=ecma+italics, use=ecma+strikeout,
+ use=xterm+edit, use=xterm+pcfkeys, use=xterm+sl,
+ use=xterm+tmux, use=screen,
tmux-256color|tmux with 256 colors,
use=xterm+256setaf, use=tmux,
rmln=\E&j@, rmso=\E&d@, rmul=\E&d@,
sgr=\E&d%?%p7%t%{115}%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+
%p5%{8}%*%+%{64}%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
- sgr0=\E&d@, smir=\EQ, smkx=\E&s1A, smln=\E&jB, smso=\E&dB,
- smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
+ sgr0=\E&d@\017, smir=\EQ, smkx=\E&s1A, smln=\E&jB,
+ smso=\E&dB, smul=\E&dD, tbc=\E3, vpa=\E&a%p1%dY,
# HP 236 console
# From: <ddavis@ic.berkeley.edu>
dsl=\EP2;1~\E\\, ed=\E[J, el=\E[K, fsl=\E\\, il1=\E[L,
ind=\ED, is1=\E>\E[?3l\E[?4l\E[?7h\E[?8h\E[1;24r,
rev=\E[7m, ri=\EM, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
- sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tsl=\EP2~,
- use=vt100+4bsd,
+ sgr0=\E[m\017$<2>, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+ tsl=\EP2~, use=vt100+4bsd,
#### Wyse (wy)
#
rmln=\E|, rmso=\E[m, rmul=\E[m, rs2=\Ec\E[?3l\E[2;0y,
sc=\E7,
sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1
- %|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+ %|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;%?%p8%t\EV%;,
sgr0=\E[m\017, smacs=^N, smkx=\E[19;1j, smln=\E~,
smso=\E[7m, smul=\E[4m, tbc=\E[3g,
tsl=\E7\E[25;%p1%{8}%+%dH, vpa=\E[%p1%{1}%+%dd,
kcuu1=\E[A, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
khome=\E[H, nel=\EE, rev=\E}, ri=\ET, rmacs=\E(B, rmso=\E~,
rmul=\EZ,
- sgr=\E[%?%p1%t7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p6%p4%|
- %t;5%;%?%p5%t;0%;m,
+ sgr=\EX\E~\EZ\E4\E(B%?%p1%p3%|%t\E}%;%?%p2%t\E\\%;%?%p4%p6%|
+ %t\E3%;%?%p5%t\EW%;%?%p9%t\E(0%;,
sgr0=\EX\E~\EZ\E4\E(B, smacs=\E(0, smso=\E}, smul=\E\\,
tbc=\EF,
rs1=\E?\E[3;3|\E[10;0|\E[21;1|\212\E[6;1|\E[1{\E[?99l\E[2;0|
\E[6;1|\E[8;0|\E[19;0|\E[1{\E[?99l,
rs2=\E[5;0|, sc=\E7,
- sgr=\E[0%?%p1%p5%|%t;2%;%?%p2%p6%|%t;4%;%?%p4%t;5%;%?%p3%p1
+ sgr=\E[0%?%p1%p5%|%p6%|%t;2%;%?%p2%t;4%;%?%p4%t;5%;%?%p3%p1
%|%p6%|%t;7%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smir=\E[4h,
smkx=\E[19;1|\E[21;4|\Eent, smln=\E?, smso=\E[7m,
km@,
enacs=\E)6, is2=\E[3;2;2;0;1;0v\E(0\017, rmacs=^O,
rs2=\E[4;0;2;0;1;0v\E(0,
- sgr=\E[%?%p1%p3%|%p6%|%t7;%;%?%p4%t5;%;%?%p2%p6%|%t4;%;%?%p1
- %p5%|%t2;%;m%?%p9%t\016%e\017%;,
+ sgr=\E[%?%p1%p5%|%t2;%;%?%p2%p6%|%t4;%;%?%p1%p3%|%p6%|%t7;%;
+ %?%p4%t5;%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, use=dgkeys+7b, use=d410,
d410-dg|d460-dg|d411-dg|d461-dg|Data General DASHER D410/D460 series in DG mode,
clear=\E[2J\E[H, cud1=\n, cuf1=\E[C,
cup=%i\E[%p1%d;%p2%dH, cuu1=\E[A, ed=\E[J, el=\E[K,
home=\E[H, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i, ri=\EM,
- rmso=\E[m, rmul=\E[m, sgr0=\E[m, smso=\E[7m, smul=\E[4m,
- use=vt100+4bsd,
+ rmso=\E[m, rmul=\E[m, sgr0=\E[m\017$<2>, smso=\E[7m,
+ smul=\E[4m, use=vt100+4bsd,
# except in 132 column mode, where it needs a little padding.
# This is still less padding than the vt100, and you can always turn on
# the ^S/^Q handshaking, so you can use vt100 flavors for things like
#
# AIX entries. IBM ships these with AIX 3.2.5.
# -- added rc, sc based on manpage -TD
+# -- added rmacs, smacs based on manpage -TD
# Note that we could use ibm+16color, but that is not how IBM defines this one.
aixterm|IBM Aixterm Terminal Emulator,
eslok, hs,
acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
- fsl=\E[?F, rc=\E8, ri@, s0ds=\E(B, s1ds=\E(0, sc=\E7,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1
- %;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6154,
+ fsl=\E[?F, rc=\E8, ri@, rmacs=\E(B, s0ds=\E(B, s1ds=\E(0,
+ sc=\E7,
+ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7
+ %t;8%;m%?%p9%t\E(0%e\E(B%;,
+ sgr0=\E[0;10m\E(B, smacs=\E(0, tsl=\E[?%p1%dT,
+ use=ibm6154,
aixterm-m|IBM AIXterm Monochrome Terminal Emulator,
eslok, hs,
acsc=jjkkllmmnnqqttuuvvwwxx, bold=\E[1m, dsl=\E[?E,
fsl=\E[?F, ri@, s0ds=\E(B, s1ds=\E(0,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1
- %;m,
+ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7
+ %t;8%;m%?%p9%t\E(0%e\E(B%;,
sgr0=\E[0;10m\E(B, tsl=\E[?%p1%dT, use=ibm6153,
aixterm-m-old|old IBM AIXterm Monochrome Terminal Emulator,
eslok, hs,
bold=\E[1m, dsl=\E[?E, fsl=\E[?F, ri@,
- sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1
- %;m,
+ sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7
+ %t;8%;m,
tsl=\E[?%p1%dT, use=ibm6153,
jaixterm|IBM Kanji Aixterm Terminal Eemulator,
- acsc@, use=aixterm,
+ acsc@, rmacs@,
+ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7%t;8
+ %;m,
+ sgr0=\E[m, smacs@, use=aixterm,
jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator,
- acsc@, use=aixterm-m,
+ acsc@, rmacs@,
+ sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p6%t;1%;%?%p7%t;8
+ %;m,
+ sgr0=\E[m, smacs@, use=aixterm-m,
# This flavor is adapted from xterm, in turn from aixterm documentation -TD
aixterm-16color|IBM Aixterm Terminal Emulator with 16 colors,
rs2=\Ec\E[12;31h\E[?3;4;5;10l\E[?6;7;19;25h\E[33;34l\E[0m\E(
B\E)0\E%/0n\E[P\031$<200>,
sc=\E7,
- sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5
- %;m%?%p9%t\016%e\017%;$<100>,
+ sgr=%?%p9%t\016%e\017%;\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1
+ %p3%|%t;7%;%?%p4%t;5%;m$<100>,
sgr0=\017\E[0m$<120>, smacs=\016$<90>, smir=\E[4h$<80>,
smso=\E[7m$<30>, smul=\E[4m$<30>, tbc=\E[3g$<40>,
tsl=\E[>+1$<70>,
# + reviewed terminology 1.0.0 -TD
# + reviewed st 0.7 -TD
#
+# 2017-11-18
+# + modify old terminology entry and a few other terminal emulators to
+# account for xon -TD
+# + correct sgr string for tmux, which used screen's "standout" code
+# rather than the standard code (patch by Roman Kagan)
+# + correct sgr/sgr0 strings in a few other cases reported by tic, making
+# those correspond to the non-sgr settings where they differ, but
+# otherwise use ECMA-48 consistently:
+# jaixterm, aixterm, att5420_2, att4424, att500, decansi, d410-7b,
+# dm80, hpterm, emu-220, hp2, iTerm2.app, mterm-ansi, ncrvt100an,
+# st-0.7, vi603, vwmterm -TD
+#
######## SHANTIH! SHANTIH! SHANTIH!
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_mouse.c,v 1.175 2017/06/17 22:05:15 tom Exp $")
+MODULE_ID("$Id: lib_mouse.c,v 1.176 2017/11/18 22:12:06 Vassili.Courzakis Exp $")
#include <tic.h>
{
sp->_mouse_gpm_found = FALSE;
if ((sp->_dlopen_gpm = dlopen(LIBGPM_SONAME, my_RTLD)) != 0) {
-#pragma GCC diagnostic push
#if (defined(__GNUC__) && (__GNUC__ >= 5)) || defined(__clang__)
+#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpedantic"
#endif
if (GET_DLSYM(gpm_fd) == 0 ||
GET_DLSYM(Gpm_Open) == 0 ||
GET_DLSYM(Gpm_Close) == 0 ||
GET_DLSYM(Gpm_GetEvent) == 0) {
+#if (defined(__GNUC__) && (__GNUC__ >= 5)) || defined(__clang__)
#pragma GCC diagnostic pop
+#endif
T(("GPM initialization failed: %s", dlerror()));
unload_gpm_library(sp);
} else {
-ncurses6 (6.0+20171111) unstable; urgency=low
+ncurses6 (6.0+20171118) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 05 Nov 2017 06:30:20 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 12 Nov 2017 10:22:04 -0500
ncurses6 (5.9-20131005) unstable; urgency=low
-ncurses6 (6.0+20171111) unstable; urgency=low
+ncurses6 (6.0+20171118) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 05 Nov 2017 06:30:20 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 12 Nov 2017 10:22:04 -0500
ncurses6 (5.9-20131005) unstable; urgency=low
-ncurses6 (6.0+20171111) unstable; urgency=low
+ncurses6 (6.0+20171118) unstable; urgency=low
* latest weekly patch
- -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 05 Nov 2017 06:30:20 -0500
+ -- Thomas E. Dickey <dickey@invisible-island.net> Sun, 12 Nov 2017 10:22:04 -0500
ncurses6 (5.9-20120608) unstable; urgency=low
-; $Id: mingw-ncurses.nsi,v 1.239 2017/11/05 11:30:20 tom Exp $\r
+; $Id: mingw-ncurses.nsi,v 1.240 2017/11/12 15:22:04 tom Exp $\r
\r
; TODO add examples\r
; TODO bump ABI to 6\r
!define VERSION_MAJOR "6"\r
!define VERSION_MINOR "0"\r
!define VERSION_YYYY "2017"\r
-!define VERSION_MMDD "1111"\r
+!define VERSION_MMDD "1118"\r
!define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}\r
\r
!define MY_ABI "5"\r
Summary: shared libraries for terminal handling
Name: mingw32-ncurses6
Version: 6.0
-Release: 20171111
+Release: 20171118
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
Summary: shared libraries for terminal handling
Name: ncurses6
Version: 6.0
-Release: 20171111
+Release: 20171118
License: X11
Group: Development/Libraries
Source: ncurses-%{version}-%{release}.tgz
* authorization. *
****************************************************************************/
/*
- * $Id: picsmap.c,v 1.103 2017/09/06 09:21:38 tom Exp $
+ * $Id: picsmap.c,v 1.108 2017/11/19 02:56:12 tom Exp $
*
* Author: Thomas E. Dickey
*
#define RGB_PATH "/etc/X11/rgb.txt"
-typedef int NUM_COLOR;
-typedef unsigned short NUM_COUNT;
-
-typedef struct {
- char ch; /* nominal character to display */
- NUM_COLOR fg; /* foreground color */
-} PICS_CELL;
-
-typedef struct {
- NUM_COLOR fgcol;
- NUM_COUNT count;
-} FG_NODE;
-
-typedef struct {
- char *name;
- short high;
- short wide;
- int colors;
- FG_NODE *fgcol;
- PICS_CELL *cells;
-} PICS_HEAD;
-
-typedef struct {
- const char *name;
- int value;
-} RGB_NAME;
-
-typedef struct {
- short red;
- short green;
- short blue;
-} RGB_DATA;
+#include <picsmap.h>
typedef struct {
size_t file;
,"Read/display one or more xbm/xpm files (possibly use \"convert\")"
,""
,"Options:"
- ," -d add debugging information to logfile"
+#if HAVE_USE_DEFAULT_COLORS
+ ," -d invoke use_default_colors"
+#endif
+ ," -L add debugging information to logfile"
," -l logfile write informational messages to logfile"
," -p palette color-palette file (default \"$TERM.dat\")"
," -q less verbose"
{
if (palette_file != 0) {
char **data = read_palette(palette_file);
- int cp;
all_colors = typeMalloc(RGB_DATA, (unsigned) COLORS);
how_much.data += (sizeof(RGB_DATA) * (unsigned) COLORS);
#if HAVE_COLOR_CONTENT
- for (cp = 0; cp < COLORS; ++cp) {
- color_content((short) cp,
- &all_colors[cp].red,
- &all_colors[cp].green,
- &all_colors[cp].blue);
+ {
+ int cp;
+ for (cp = 0; cp < COLORS; ++cp) {
+ color_content((short) cp,
+ &all_colors[cp].red,
+ &all_colors[cp].green,
+ &all_colors[cp].blue);
+ }
}
#else
memset(all_colors, 0, sizeof(RGB_DATA) * (size_t) COLORS);
}
}
+#ifndef USE_DISPLAY_DRIVER
+static void
+init_display(const char *palette_path, int opt_d)
+{
+ if (isatty(fileno(stdout))) {
+ in_curses = TRUE;
+ initscr();
+ cbreak();
+ noecho();
+ curs_set(0);
+ if (has_colors()) {
+ start_color();
+#if HAVE_USE_DEFAULT_COLORS
+ if (opt_d)
+ use_default_colors();
+#endif
+ init_palette(palette_path);
+ }
+ scrollok(stdscr, FALSE);
+ exit_curses();
+ }
+}
+
static void
show_picture(PICS_HEAD * pics)
{
if (!quiet)
endwin();
}
+#endif
static int
compare_fg_counts(const void *a, const void *b)
main(int argc, char *argv[])
{
int n;
+ int opt_d = FALSE;
const char *palette_path = 0;
const char *rgb_path = "/etc/X11/rgb.txt";
- while ((n = getopt(argc, argv, "dl:p:qr:s:x:")) != -1) {
+ while ((n = getopt(argc, argv, "dLl:p:qr:s:x:")) != -1) {
switch (n) {
+#if HAVE_USE_DEFAULT_COLORS
case 'd':
+ opt_d = TRUE;
+ break;
+#endif
+ case 'L':
debugging = TRUE;
break;
case 'l':
if (rgb_data)
rgb_table = parse_rgb(rgb_data);
- if (isatty(fileno(stdout))) {
- in_curses = TRUE;
- initscr();
- cbreak();
- noecho();
- curs_set(0);
- if (has_colors()) {
- start_color();
- init_palette(palette_path);
- }
- scrollok(stdscr, FALSE);
- exit_curses();
- }
+ init_display(palette_path, opt_d);
if (optind >= argc)
giveup("expected at least one image filename");
--- /dev/null
+/****************************************************************************
+ * Copyright (c) 2017 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+ * "Software"), to deal in the Software without restriction, including *
+ * without limitation the rights to use, copy, modify, merge, publish, *
+ * distribute, distribute with modifications, sublicense, and/or sell *
+ * copies of the Software, and to permit persons to whom the Software is *
+ * furnished to do so, subject to the following conditions: *
+ * *
+ * The above copyright notice and this permission notice shall be included *
+ * in all copies or substantial portions of the Software. *
+ * *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
+ * *
+ * Except as contained in this notice, the name(s) of the above copyright *
+ * holders shall not be used in advertising or otherwise to promote the *
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Author: Thomas E. Dickey *
+ ****************************************************************************/
+/* $Id: picsmap.h,v 1.3 2017/11/18 22:37:00 tom Exp $ */
+
+#ifndef PICSMAP_H_INCL
+#define PICSMAP_H_INCL 1
+
+typedef int NUM_COLOR;
+typedef unsigned short NUM_COUNT;
+
+typedef struct {
+ char ch; /* nominal character to display */
+ NUM_COLOR fg; /* foreground color */
+} PICS_CELL;
+
+typedef struct {
+ NUM_COLOR fgcol;
+ NUM_COUNT count;
+} FG_NODE;
+
+typedef struct {
+ char *name;
+ short high;
+ short wide;
+ int colors;
+ FG_NODE *fgcol;
+ PICS_CELL *cells;
+} PICS_HEAD;
+
+typedef struct {
+ const char *name;
+ int value;
+} RGB_NAME;
+
+typedef struct {
+ short red;
+ short green;
+ short blue;
+} RGB_DATA;
+
+static void init_display(const char *, int);
+
+static void show_picture(PICS_HEAD * pics);
+
+#endif /* PICSMAP_H_INCL */
traces will be dumped. The program stops and waits for one character of
input at the beginning and end of the interval.
- $Id: worm.c,v 1.75 2017/09/08 20:00:50 tom Exp $
+ $Id: worm.c,v 1.76 2017/11/18 22:41:08 tom Exp $
*/
#include <test.priv.h>
static bool quitting = FALSE;
static WORM worm[MAX_WORMS];
+static int max_refs;
static int **refs;
static int last_x, last_y;
switch (op->nopts) {
case 0:
done = TRUE;
+ Trace(("done - draw_worm"));
break;
case 1:
w->orientation = op->opts[0];
if (last_y != LINES - 1) {
for (y = LINES; y <= last_y; y++)
free(refs[y]);
+ max_refs = LINES;
refs = typeRealloc(int *, (size_t) LINES, refs);
for (y = last_y + 1; y < LINES; y++) {
refs[y] = typeMalloc(int, (size_t) COLS);
struct worm *w;
int *ip;
bool done = FALSE;
- int max_refs;
#if HAVE_USE_DEFAULT_COLORS
bool opt_d = FALSE;
#endif
if (ch == 'q') {
quitting = TRUE;
done = TRUE;
+ Trace(("done - quitting"));
continue;
} else if (ch == 's') {
nodelay(stdscr, FALSE);