OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
Re: ncursesw

From: Nicholas Marriott (nicholas.marriottgmail.com)
Date: Mon Aug 30 2010 - 03:51:43 CDT


I have fixes for the zsh, lifelines ports and the problem I can
reproduce with pidgin, which I can send to maintainers.

Can anyone reproduce Landry's build issue with pidgin? I think it is a
problem with pidgin not ncursesw.

Any other problems?

So shall this go in? Any oks?

Cheers

On Wed, Aug 25, 2010 at 09:32:30AM +0100, Nicholas Marriott wrote:
> And now avec widechar man pages and MLINKs (no other changes).
>
>
> Index: libform/Makefile
> ===================================================================
> RCS file: /cvs/src/lib/libform/Makefile,v
> retrieving revision 1.9
> diff -u -p -r1.9 Makefile
> --- libform/Makefile 12 Jan 2010 23:22:07 -0000 1.9
> +++ libform/Makefile 25 Aug 2010 08:31:31 -0000
> -57,4 +57,16 includes:
> ${INSTALL} ${INSTALL_COPY} -m 444 -o $(BINOWN) -g $(BINGRP) $$i \
> ${DESTDIR}/usr/include; done
>
> +.include <bsd.own.mk>
> +
> +afterinstall:
> + -cd ${DESTDIR}${LIBDIR}; \
> + for i in ${_LIBS}; do \
> + ln -f $$i `echo $$i | sed 's/form/formw/'`; \
> + done
> +.if (${DEBUGLIBS:L} == "yes")
> + -cd ${DESTDIR}${LIBDIR}/debug; \
> + ln -f lib${LIB}.a lib`echo ${LIB} | sed 's/form/formw/'`.a
> +.endif
> +
> .include <bsd.lib.mk>
> Index: libform/shlib_version
> ===================================================================
> RCS file: /cvs/src/lib/libform/shlib_version,v
> retrieving revision 1.6
> diff -u -p -r1.6 shlib_version
> -1,2 +1,2
> -major=4
> +major=5
> minor=0
> Index: libpanel/Makefile
> ===================================================================
> RCS file: /cvs/src/lib/libpanel/Makefile,v
> retrieving revision 1.8
> diff -u -p -r1.8 Makefile
> --- libpanel/Makefile 12 Jan 2010 23:22:08 -0000 1.8
> +++ libpanel/Makefile 25 Aug 2010 08:31:31 -0000
> -20,4 +20,16 includes:
> ${INSTALL} ${INSTALL_COPY} -m 444 -o $(BINOWN) -g $(BINGRP) $$i \
> ${DESTDIR}/usr/include; done
>
> +.include <bsd.own.mk>
> +
> +afterinstall:
> + -cd ${DESTDIR}${LIBDIR}; \
> + for i in ${_LIBS}; do \
> + ln -f $$i `echo $$i | sed 's/panel/panelw/'`; \
> + done
> +.if (${DEBUGLIBS:L} == "yes")
> + -cd ${DESTDIR}${LIBDIR}/debug; \
> + ln -f lib${LIB}.a lib`echo ${LIB} | sed 's/panel/panelw/'`.a
> +.endif
> +
> .include <bsd.lib.mk>
> Index: libpanel/shlib_version
> ===================================================================
> RCS file: /cvs/src/lib/libpanel/shlib_version,v
> retrieving revision 1.7
> diff -u -p -r1.7 shlib_version
> -1,2 +1,2
> -major=4
> +major=5
> minor=0
> Index: libmenu/Makefile
> ===================================================================
> RCS file: /cvs/src/lib/libmenu/Makefile,v
> retrieving revision 1.12
> diff -u -p -r1.12 Makefile
> --- libmenu/Makefile 12 Jan 2010 23:22:07 -0000 1.12
> +++ libmenu/Makefile 25 Aug 2010 08:31:31 -0000
> -1,3 +1,5
> +# $OpenBSD$
> +
> LIB= menu
> WANTLINT=
> SRCS= m_attribs.c m_cursor.c m_driver.c m_format.c \
> -45,5 +47,17 includes:
> cmp -s $$i ${DESTDIR}/usr/include/$$i || \
> ${INSTALL} ${INSTALL_COPY} -m 444 -o $(BINOWN) -g $(BINGRP) $$i \
> ${DESTDIR}/usr/include; done
> +
> +.include <bsd.own.mk>
> +
> +afterinstall:
> + -cd ${DESTDIR}${LIBDIR}; \
> + for i in ${_LIBS}; do \
> + ln -f $$i `echo $$i | sed 's/menu/menuw/'`; \
> + done
> +.if (${DEBUGLIBS:L} == "yes")
> + -cd ${DESTDIR}${LIBDIR}/debug; \
> + ln -f lib${LIB}.a lib`echo ${LIB} | sed 's/menu/menuw/'`.a
> +.endif
>
> .include <bsd.lib.mk>
> Index: libmenu/shlib_version
> ===================================================================
> RCS file: /cvs/src/lib/libmenu/shlib_version,v
> retrieving revision 1.6
> diff -u -p -r1.6 shlib_version
> -1,2 +1,2
> -major=4
> +major=5
> minor=0
> Index: libcurses/Makefile
> ===================================================================
> RCS file: /cvs/src/lib/libcurses/Makefile,v
> retrieving revision 1.59
> diff -u -p -r1.59 Makefile
> --- libcurses/Makefile 12 Jan 2010 23:21:58 -0000 1.59
> +++ libcurses/Makefile 25 Aug 2010 08:31:32 -0000
> -10,7 +10,8 FALLBACK_LIST=
> AWK?= /usr/bin/awk
>
> # Search in subdirs
> -.PATH: ${.CURDIR}/base ${.CURDIR}/tinfo ${.CURDIR}/trace ${.CURDIR}/tty
> +.PATH: ${.CURDIR}/base ${.CURDIR}/tinfo ${.CURDIR}/trace ${.CURDIR}/tty \
> + ${.CURDIR}/widechar
>
> LIB= curses
> WANTLINT=
> -53,6 +54,12 SRCS+= lib_trace.c lib_traceatr.c lib_tr
> # tty
> SRCS+= hardscroll.c hashmap.c lib_mvcur.c lib_tstp.c lib_twait.c \
> lib_vidattr.c tty_update.c
> +# widechar
> +SRCS+= charable.c lib_add_wch.c lib_box_set.c lib_cchar.c lib_erasewchar.c \
> + lib_get_wch.c lib_get_wstr.c lib_hline_set.c lib_in_wch.c \
> + lib_in_wchnstr.c lib_ins_wch.c lib_inwstr.c lib_key_name.c \
> + lib_pecho_wchar.c lib_slk_wset.c lib_unget_wch.c lib_vid_attr.c \
> + lib_vline_set.c lib_wacs.c lib_wunctrl.c
>
> HOSTCFLAGS?= ${CFLAGS}
> HOSTLDFLAGS?= ${LDFLAGS}
> -65,7 +72,8 MAN= curs_addch.3tbl curs_addchstr.3 cur
> curs_delch.3 curs_deleteln.3 \
> curs_extend.3 \
> curs_getch.3tbl curs_getstr.3 curs_getyx.3 \
> - curs_inch.3tbl curs_inchstr.3 curs_initscr.3 curs_inopts.3 curs_insch.3 curs_insstr.3 curs_instr.3 \
> + curs_inch.3tbl curs_inchstr.3 curs_initscr.3 curs_inopts.3 \
> + curs_insch.3 curs_insstr.3 curs_instr.3 \
> curs_kernel.3 \
> curs_legacy.3 \
> curs_mouse.3tbl curs_move.3 \
> -76,6 +84,9 MAN= curs_addch.3tbl curs_addchstr.3 cur
> curs_termattrs.3 curs_touch.3 \
> curs_util.3 \
> curs_window.3 \
> + curs_add_wch.3 curs_add_wchstr.3 curs_addwstr.3 curs_get_wch.3 \
> + curs_get_wstr.3 curs_in_wch.3 curs_in_wchstr.3 curs_ins_wch.3 \
> + curs_ins_wstr.3 curs_inwstr.3 \
> default_colors.3 define_key.3 \
> key_defined.3 keybound.3 keyok.3 \
> curses.3tbl \
> -83,8 +94,8 MAN= curs_addch.3tbl curs_addchstr.3 cur
> term.5tbl term.7 termcap.3 terminfo.3 terminfo.5tbl \
> wresize.3
>
> -MLINKS+=curses.3 ncurses.3
> -MLINKS+=curs_addch.3 addch.3 curs_addch.3 waddch.3 curs_addch.3 mvaddch.3 \
> +MLINKS+= curses.3 ncurses.3
> +MLINKS+= curs_addch.3 addch.3 curs_addch.3 waddch.3 curs_addch.3 mvaddch.3 \
> curs_addch.3 mvwaddch.3 curs_addch.3 echochar.3 curs_addch.3 \
> wechochar.3 curs_addchstr.3 addchstr.3 curs_addchstr.3 addchnstr.3 \
> curs_addchstr.3 waddchstr.3 curs_addchstr.3 waddchnstr.3 \
> -192,7 +203,7 MLINKS+=curs_addch.3 addch.3 curs_addch.
> mvderwin.3 curs_window.3 dupwin.3 curs_window.3 wsyncup.3 \
> curs_window.3 syncok.3 curs_window.3 wcursyncup.3 \
> curs_window.3 wsyncdown.3
> -MLINKS+=curs_extend.3 curses_version.3 curs_extend.3 use_extended_names.3 \
> +MLINKS+= curs_extend.3 curses_version.3 curs_extend.3 use_extended_names.3 \
> default_colors.3 assume_default_colors.3 \
> default_colors.3 use_default_colors.3
> MLINKS+= terminfo.3 setupterm.3 terminfo.3 setterm.3 terminfo.3 set_curterm.3 \
> -221,6 +232,41 MLINKS+= curs_opaque.3 is_cleared.3 curs
> curs_opaque.3 is_nodelay.3 curs_opaque.3 is_notimeout.3 \
> curs_opaque.3 is_scrollok.3 curs_opaque.3 is_syncok.3 \
> curs_opaque.3 wgetparent.3 curs_opaque.3 wgetscrreg.3
> +MLINKS+= resizeterm.3 is_term_resized.3 resizeterm.3 resize_term.3
> +MLINKS+= curs_add_wch.3 add_wch.3 curs_add_wch.3 wadd_wch.3 \
> + curs_add_wch.3 mvadd_wch.3 curs_add_wch.3 mvwadd_wch.3 \
> + curs_add_wch.3 echo_wchar.3 curs_add_wch.3 wecho_wchar.3
> +MLINKS+= curs_add_wchstr.3 add_wchstr.3 curs_add_wchstr.3 add_wchnstr.3 \
> + curs_add_wchstr.3 wadd_wchstr.3 curs_add_wchstr.3 wadd_wchnstr.3 \
> + curs_add_wchstr.3 mvadd_wchstr.3 curs_add_wchstr.3 mvadd_wchnstr.3 \
> + curs_add_wchstr.3 mvwadd_wchstr.3 curs_add_wchstr.3 mvwadd_wchnstr.3
> +MLINKS+= curs_addwstr.3 addwstr.3 curs_addwstr.3 addnwstr.3 \
> + curs_addwstr.3 waddwstr.3 curs_addwstr.3 waddnwstr.3 \
> + curs_addwstr.3 mvaddwstr.3 curs_addwstr.3 mvaddnwstr.3 \
> + curs_addwstr.3 mvwaddwstr.3 curs_addwstr.3 mvwaddnwstr.3
> +MLINKS+= curs_get_wch.3 get_wch.3 curs_get_wch.3 wget_wch.3 \
> + curs_get_wch.3 mvget_wch.3 curs_get_wch.3 mvwget_wch.3 \
> + curs_get_wch.3 unget_wch.3
> +MLINKS+= curs_get_wstr.3 get_wstr.3 curs_get_wstr.3 getn_wstr.3 \
> + curs_get_wstr.3 wget_wstr.3 curs_get_wstr.3 wgetn_wstr.3 \
> + curs_get_wstr.3 mvget_wstr.3 curs_get_wstr.3 mvgetn_wstr.3 \
> + curs_get_wstr.3 mvwget_wstr.3 curs_get_wstr.3 mvwgetn_wstr.3
> +MLINKS+= curs_in_wch.3 in_wch.3 curs_in_wch.3 mvin_wch.3 \
> + curs_in_wch.3 mvwin_wch.3 curs_in_wch.3 win_wch.3
> +MLINKS+= curs_in_wchstr.3 in_wchstr.3 curs_in_wchstr.3 in_wchnstr.3 \
> + curs_in_wchstr.3 win_wchstr.3 curs_in_wchstr.3 win_wchnstr.3 \
> + curs_in_wchstr.3 mvin_wchstr.3 curs_in_wchstr.3 mvin_wchnstr.3 \
> + curs_in_wchstr.3 mvwin_wchstr.3 curs_in_wchstr.3 mvwin_wchnstr.3
> +MLINKS+= curs_ins_wch.3 ins_wch.3 curs_ins_wch.3 mvins_wch.3 \
> + curs_ins_wch.3 mvwins_wch.3 curs_ins_wch.3 wins_wch.3
> +MLINKS+= curs_ins_wstr.3 ins_wstr.3 curs_ins_wstr.3 ins_nwstr.3 \
> + curs_ins_wstr.3 wins_wstr.3 curs_ins_wstr.3 wins_nwstr.3 \
> + curs_ins_wstr.3 mvins_wstr.3 curs_ins_wstr.3 mvins_nwstr.3 \
> + curs_ins_wstr.3 mvwins_wstr.3 curs_ins_wstr.3 mvwins_nwstr.3
> +MLINKS+= curs_inwstr.3 inwstr.3 curs_inwstr.3 innwstr.3 \
> + curs_inwstr.3 winwstr.3 curs_inwstr.3 winnwstr.3 \
> + curs_inwstr.3 mvinwstr.3 curs_inwstr.3 mvinnwstr.3 \
> + curs_inwstr.3 mvwinwstr.3 curs_inwstr.3 mvwinnwstr.3
>
> GENERATED= init_keytry.h codes.c comp_captab.c expanded.c fallback.c \
> keys.list lib_gen.c lib_keyname.c names.c unctrl.c make_hash make_keys
> -298,12 +344,14 afterinstall:
> ln -f $$i `echo $$i | sed 's/curses/termlib/'`; \
> ln -f $$i `echo $$i | sed 's/curses/termcap/'`; \
> ln -f $$i `echo $$i | sed 's/curses/ncurses/'`; \
> + ln -f $$i `echo $$i | sed 's/curses/ncursesw/'`; \
> done
> .if (${DEBUGLIBS:L} == "yes")
> -cd ${DESTDIR}${LIBDIR}/debug; \
> ln -f lib${LIB}.a lib`echo ${LIB} | sed 's/curses/termlib/'`.a; \
> ln -f lib${LIB}.a lib`echo ${LIB} | sed 's/curses/termcap/'`.a; \
> - ln -f lib${LIB}.a lib`echo ${LIB} | sed 's/curses/ncurses/'`.a
> + ln -f lib${LIB}.a lib`echo ${LIB} | sed 's/curses/ncurses/'`.a; \
> + ln -f lib${LIB}.a lib`echo ${LIB} | sed 's/curses/ncursesw/'`.a
> .endif
>
> .include <bsd.lib.mk>
> Index: libcurses/curs_add_wch.3
> ===================================================================
> RCS file: libcurses/curs_add_wch.3
> diff -N libcurses/curs_add_wch.3
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ libcurses/curs_add_wch.3 25 Aug 2010 08:31:32 -0000
> -0,0 +1,136
> +.\" $OpenBSD$
> +.\"***************************************************************************
> +.\" Copyright (c) 2001-2002,2006 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. *
> +.\"***************************************************************************
> +.\"
> +.\" $Id: curs_add_wch.3x,v 1.6 2006/12/24 15:22:22 tom Exp $
> +.TH curs_add_wch 3 ""
> +.SH NAME
> +\fBadd_wch\fP,
> +\fBwadd_wch\fP,
> +\fBmvadd_wch\fP,
> +\fBmvwadd_wch\fP,
> +\fBecho_wchar\fP,
> +\fBwecho_wchar\fP - add a complex character and rendition to a \fBcurses\fR window, then advance the cursor
> +.SH SYNOPSIS
> +.PP
> +\fB#include <curses.h>\fP
> +.sp
> +.B "int add_wch( const cchar_t *\fIwch\fB );"
> +.br
> +.B "int wadd_wch( WINDOW *\fIwin\fP, const cchar_t *\fIwch\fB );"
> +.br
> +.B "int mvadd_wch( int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fB );"
> +.br
> +.B "int mvwadd_wch( WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fB );"
> +.br
> +.B "int echo_wchar( const cchar_t *\fIwch\fB );"
> +.br
> +.B "int wecho_wchar( WINDOW *\fIwin\fP, const cchar_t *\fIwch\fB );"
> +.br
> +.SH DESCRIPTION
> +.PP
> +The
> +\fBadd_wch\fP,
> +\fBwadd_wch\fP,
> +\fBmvadd_wch\fP, and
> +\fBmvwadd_wch\fP
> +functions put the complex character \fIwch\fP into the given
> +window at its current position,
> +which is then advanced.
> +These functions perform
> +wrapping and special-character processing as follows:
> +.TP 5
> +-
> +If \fIwch\fP refers to a spacing character,
> +then any previous character at that location is removed.
> +A new character specified by \fIwch\fP is
> +placed at that location with rendition specified by \fIwch\fP.
> +The cursor then advances to
> +the next spacing character on the screen.
> +.TP 5
> +-
> +If \fIwch\fP refers to a non-spacing character,
> +all previous characters at that location are preserved.
> +The non-spacing characters of \fIwch\fP
> +are added to the spacing complex character,
> +and the rendition specified by \fIwch\fP is ignored.
> +.TP 5
> +-
> +If the character part of \fIwch\fP is
> +a tab, newline, backspace or other control character,
> +the window is updated and the cursor moves as if \fBaddch\fR were called.
> +.PP
> +The \fBecho_wchar\fP
> +function is functionally equivalent to a call to
> +\fBadd_wch\fP
> +followed by a call to
> +\fBrefresh\fP.
> +Similarly, the
> +\fBwecho_wchar\fP
> +is functionally equivalent to a call to
> +\fBwadd_wch\fP
> +followed by a call to
> +\fBwrefresh\fP.
> +The knowledge
> +that only a single character is being output is taken into consideration and,
> +for non-control characters, a considerable performance gain might be seen
> +by using the *\fBecho\fP* functions instead of their equivalents.
> +.SH RETURN VALUES
> +.PP
> +All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
> +.SH NOTES
> +.PP
> +Note that
> +\fBadd_wch\fP,
> +\fBmvadd_wch\fP,
> +\fBmvwadd_wch\fP, and
> +\fBecho_wchar\fP
> +may be macros.
> +.SH PORTABILITY
> +.PP
> +All these functions are described in the XSI Curses standard, Issue 4.
> +The defaults specified for forms-drawing characters apply in the POSIX locale.
> +.PP
> +XSI documents constants beginning with \fBWACS_\fP which are used for
> +line-drawing.
> +Those are not currently implemented in \fBncurses\fP.
> +.SH SEE ALSO
> +.PP
> +\fBcurses\fR(3),
> +\fBcurs_addch\fR(3),
> +\fBcurs_attr\fR(3),
> +\fBcurs_clear\fR(3),
> +\fBcurs_outopts\fR(3),
> +\fBcurs_refresh\fR(3),
> +\fBputwc\fR(3)
> +.\"#
> +.\"# The following sets edit modes for GNU EMACS
> +.\"# Local Variables:
> +.\"# mode:nroff
> +.\"# fill-column:79
> +.\"# End:
> Index: libcurses/curs_add_wchstr.3
> ===================================================================
> RCS file: libcurses/curs_add_wchstr.3
> diff -N libcurses/curs_add_wchstr.3
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ libcurses/curs_add_wchstr.3 25 Aug 2010 08:31:32 -0000
> -0,0 +1,98
> +.\" $OpenBSD$
> +.\"***************************************************************************
> +.\" Copyright (c) 2002-2004,2005 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. *
> +.\"***************************************************************************
> +.\"
> +.\" $Id: curs_add_wchstr.3x,v 1.6 2005/01/02 01:28:49 tom Exp $
> +.TH curs_add_wchstr 3 ""
> +.SH NAME
> +\fBadd_wchstr\fR,
> +\fBadd_wchnstr\fR,
> +\fBwadd_wchstr\fR,
> +\fBwadd_wchnstr\fR,
> +\fBmvadd_wchstr\fR,
> +\fBmvadd_wchnstr\fR,
> +\fBmvwadd_wchstr\fR,
> +\fBmvwadd_wchnstr\fR \- add an array of complex characters (and attributes) to a curses window
> +.SH SYNOPSIS
> +.B #include <curses.h>
> +.PP
> +.nf
> +\fBint add_wchstr(const cchar_t *\fR\fIwchstr\fR\fB);\fR
> +.br
> +\fBint add_wchnstr(const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint wadd_wchstr(WINDOW *\fR \fIwin\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR
> +.br
> +\fBint wadd_wchnstr(WINDOW *\fR \fIwin\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint mvadd_wchstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR
> +.br
> +\fBint mvadd_wchnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint mvwadd_wchstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR
> +.br
> +\fBint mvwadd_wchnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.fi
> +.SH DESCRIPTION
> +These routines copy the array of complex characters \fIwchstr\fR
> +into the window image structure at and after the current cursor position.
> +The four routines with \fIn\fR as the last
> +argument copy at most \fIn\fR elements, but no more than will fit on the line.
> +If \fBn\fR=\fB-1\fR then the whole array is copied,
> +to the maximum number of characters that will fit on the line.
> +.PP
> +The window cursor is \fInot\fR advanced.
> +These routines work faster than \fBwaddnstr\fR.
> +On the other hand, they do not perform checking
> +(such as for the newline, backspace, or carriage return characters),
> +they do not advance the current cursor position,
> +they do not expand other control characters to ^-escapes,
> +and they truncate the string if it crosses the right margin,
> +rather than wrapping it around to the new line.
> +.PP
> +These routines end successfully
> +on encountering a null \fIcchar_t\fR, or
> +when they have filled the current line.
> +If a complex character cannot completely fit at the end of the current line,
> +the remaining columns are filled with the background character and rendition.
> +.SH NOTES
> +All functions except \fBwadd_wchnstr\fR may be macros.
> +.SH RETURN VALUES
> +All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
> +.SH PORTABILITY
> +All these entry points are described in the XSI Curses standard, Issue 4.
> +.SH SEE ALSO
> +\fBcurses\fR(3),
> +\fBcurs_addchstr\fR(3),
> +\fBcurs_addwstr\fR(3)
> +.\"#
> +.\"# The following sets edit modes for GNU EMACS
> +.\"# Local Variables:
> +.\"# mode:nroff
> +.\"# fill-column:79
> +.\"# End:
> Index: libcurses/curs_addwstr.3
> ===================================================================
> RCS file: libcurses/curs_addwstr.3
> diff -N libcurses/curs_addwstr.3
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ libcurses/curs_addwstr.3 25 Aug 2010 08:31:32 -0000
> -0,0 +1,95
> +.\" $OpenBSD$
> +.\"***************************************************************************
> +.\" Copyright (c) 2002-2005,2006 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. *
> +.\"***************************************************************************
> +.\"
> +.\" $Id: curs_addwstr.3x,v 1.7 2006/02/25 20:59:08 tom Exp $
> +.TH curs_addwstr 3 ""
> +.na
> +.hy 0
> +.SH NAME
> +\fBaddwstr\fR,
> +\fBaddnwstr\fR,
> +\fBwaddwstr\fR,
> +\fBwaddnwstr\fR,
> +\fBmvaddwstr\fR,
> +\fBmvaddnwstr\fR,
> +\fBmvwaddwstr\fR,
> +\fBmvwaddnwstr\fR \- add a string of wide characters to a \fBcurses\fR window and advance cursor
> +.ad
> +.hy
> +.SH SYNOPSIS
> +.nf
> +\fB#include <curses.h>\fR
> +.PP
> +\fBint addwstr(const wchar_t *\fR\fIwstr\fR\fB);\fR
> +.br
> +\fBint addnwstr(const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint waddwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
> +.br
> +\fBint waddnwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint mvaddwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
> +.br
> +\fBint mvaddnwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint mvwaddwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
> +.br
> +\fBint mvwaddnwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.fi
> +.SH DESCRIPTION
> +These routines write the characters of the
> +(null-terminated) \fBwchar_t\fR character string
> +\fIwstr\fR on the given window.
> +It is similar to constructing a \fBcchar_t\fR for each wchar_t in the string,
> +then calling \fBwadd_wch\fR for the resulting \fBcchar_t\fR.
> +.PP
> +The \fImv\fR routines perform cursor movement once, before writing any
> +characters.
> +Thereafter, the cursor is advanced as a side-effect of writing to the window.
> +.PP
> +The four routines with \fIn\fR as the last argument
> +write at most \fIn\fR \fBwchar_t\fR characters.
> +If \fIn\fR is -1, then the entire string will be added,
> +up to the maximum number of characters that will fit on the line,
> +or until a terminating null is reached.
> +.SH RETURN VALUES
> +All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success.
> +.SH NOTES
> +Note that all of these routines except \fBwaddnwstr\fR may be macros.
> +.SH PORTABILITY
> +All these entry points are described in the XSI Curses standard, Issue 4.
> +.SH SEE ALSO
> +\fBcurses\fR(3),
> +\fBcurs_add_wch\fR(3)
> +.\"#
> +.\"# The following sets edit modes for GNU EMACS
> +.\"# Local Variables:
> +.\"# mode:nroff
> +.\"# fill-column:79
> +.\"# End:
> Index: libcurses/curs_get_wch.3
> ===================================================================
> RCS file: libcurses/curs_get_wch.3
> diff -N libcurses/curs_get_wch.3
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ libcurses/curs_get_wch.3 25 Aug 2010 08:31:32 -0000
> -0,0 +1,162
> +.\" $OpenBSD$
> +.\"***************************************************************************
> +.\" Copyright (c) 2002-2003,2006 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. *
> +.\"***************************************************************************
> +.\"
> +.\" $Id: curs_get_wch.3x,v 1.6 2006/02/25 21:47:06 tom Exp $
> +.TH curs_get_wch 3 ""
> +.SH NAME
> +\fBget_wch\fR,
> +\fBwget_wch\fR,
> +\fBmvget_wch\fR,
> +\fBmvwget_wch\fR,
> +\fBunget_wch\fR \- get (or push back) a wide character from curses terminal keyboard
> +.SH SYNOPSIS
> +\fB#include <curses.h>\fR
> +.sp
> +\fBint get_wch(wint_t *\fR\fIwch\fR\fB);\fR
> +.br
> +\fBint wget_wch(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR
> +.br
> +\fBint mvget_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR
> +.br
> +\fBint mvwget_wch(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR
> +.br
> +\fBint unget_wch(const wchar_t \fR\fIwch\fR\fB);\fR
> +.SH DESCRIPTION
> +The
> +\fBget_wch\fR,
> +\fBwget_wch\fR,
> +\fBmvget_wch\fR, and
> +\fBmvwget_wch\fR
> +functions read a character
> +from the terminal associated with the current or specified window.
> +In no-delay mode,
> +if no input is waiting, the value \fBERR\fR is returned.
> +In delay mode,
> +the program waits until the system passes text through to the program.
> +Depending on the setting of \fBcbreak\fR,
> +this is after one character (cbreak mode),
> +or after the first newline (nocbreak mode).
> +In half-delay mode,
> +the program waits until the user types a character or the specified
> +timeout interval has elapsed.
> +.PP
> +Unless \fBnoecho\fR has been set,
> +these routines echo the character into the designated window.
> +.PP
> +If the window is not a pad and has been moved or modified since the
> +last call to \fBwrefresh\fR,
> +\fBwrefresh\fR will be called before another character is read.
> +.PP
> +If \fBkeypad\fR is enabled,
> +these functions respond to
> +the pressing of a function key by setting the object pointed to by
> +\fIwch\fR
> +to the corresponding
> +\fBKEY_\fR
> +value defined
> +in
> +\fB<curses.h>\fR
> +and returning
> +\fBKEY_CODE_YES\fR.
> +If a character (such as escape) that could be the
> +beginning of a function key is received, curses sets a timer.
> +If the remainder
> +of the sequence does arrive within the designated time, curses passes through
> +the character; otherwise, curses returns the function key value.
> +For this
> +reason, many terminals experience a delay between the time a user presses
> +the escape key and the time the escape is returned to the program.
> +.PP
> +The
> +\fBunget_wch\fR
> +function pushes the wide character
> +\fIwch\fR
> +back onto the head of the input queue, so the wide character
> +is returned by the next call to
> +\fBget_wch\fR.
> +The pushback of
> +one character is guaranteed.
> +If the program calls
> +\fBunget_wch\fR
> +too many times without an intervening call to
> +\fBget_wch\fR,
> +the operation may fail.
> +.SH NOTES
> +The header file
> +\fB<curses.h>\fR
> +automatically
> +includes the header file
> +\fB<stdio.h>\fR.
> +.PP
> +Applications should not define the escape key by itself as a single-character
> +function.
> +.PP
> +When using
> +\fBget_wch\fR,
> +\fBwget_wch\fR,
> +\fBmvget_wch\fR, or
> +\fBmvwget_wch\fR, applications should
> +not use
> +\fBnocbreak\fR
> +mode and
> +\fBecho\fR
> +mode
> +at the same time.
> +Depending on the state of the tty driver when each character
> +is typed, the program may produce undesirable results.
> +.PP
> +All functions except \fBwget_wch\fR and \fBunget_wch\fR
> +may be macros.
> +.SH RETURN VALUES
> +When
> +\fBget_wch\fR,
> +\fBwget_wch\fR,
> +\fBmvget_wch\fR, and
> +\fBmvwget_wch\fR
> +functions successfully
> +report the pressing of a function key, they return
> +\fBKEY_CODE_YES\fR.
> +When they successfully report a wide character, they return
> +\fBOK\fR.
> +Otherwise, they return
> +\fBERR\fR.
> +.PP
> +Upon successful completion,
> +\fBunget_wch\fR
> +returns
> +\fBOK\fR.
> +Otherwise, the function returns
> +\fBERR\fR.
> +.SH SEE ALSO
> +\fBcurses\fR(3),
> +\fBcurs_getch\fR(3),
> +\fBcurs_ins_wch\fR(3),
> +\fBcurs_inopts\fR(3),
> +\fBcurs_move\fR(3),
> +\fBcurs_refresh\fR(3)
> Index: libcurses/curs_get_wstr.3
> ===================================================================
> RCS file: libcurses/curs_get_wstr.3
> diff -N libcurses/curs_get_wstr.3
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ libcurses/curs_get_wstr.3 25 Aug 2010 08:31:32 -0000
> -0,0 +1,179
> +.\" $OpenBSD$
> +.\"***************************************************************************
> +.\" Copyright (c) 2002-2005,2006 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. *
> +.\"***************************************************************************
> +.\"
> +.\" $Id: curs_get_wstr.3x,v 1.6 2006/02/25 21:49:19 tom Exp $
> +.TH curs_get_wstr 3 ""
> +.na
> +.hy 0
> +.SH NAME
> +\fBget_wstr\fR,
> +\fBgetn_wstr\fR,
> +\fBwget_wstr\fR,
> +\fBwgetn_wstr\fR,
> +\fBmvget_wstr\fR,
> +\fBmvgetn_wstr\fR,
> +\fBmvwget_wstr\fR,
> +\fBmvwgetn_wstr\fR \- get an array of wide characters from a curses terminal keyboard
> +.ad
> +.hy
> +.SH SYNOPSIS
> +.nf
> +\fB#include <curses.h>\fR
> +.sp
> +\fBint get_wstr(wint_t *\fR\fIwstr\fR\fB);\fR
> +.br
> +\fBint getn_wstr(wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint wget_wstr(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR
> +.br
> +\fBint wgetn_wstr(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint mvget_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR
> +.br
> +\fBint mvgetn_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint mvwget_wstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR
> +.br
> +\fBint mvwgetn_wstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.fi
> +.SH DESCRIPTION
> +The effect of
> +\fBget_wstr\fR
> +is as though a series of calls
> +to
> +\fBget_wch\fR
> +were made, until a newline, other end-of-line, or end-of-file condition is processed.
> +An end-of-file condition is represented by \fBWEOF\fR, as defined in \fB<wchar.h>\fR.
> +The newline and end-of-line conditions are represented by the \fB\\n\fR \fBwchar_t\fR value.
> +In all instances, the end of the string is terminated by a null \fBwchar_t\fR.
> +The routine places resulting values in the area pointed to by \fIwstr\fR.
> +.PP
> +The user's erase and kill characters are interpreted. If keypad
> +mode is on for the window, \fBKEY_LEFT\fR and \fBKEY_BACKSPACE\fR
> +are both considered equivalent to the user's kill character.
> +.PP
> +Characters input are echoed only if \fBecho\fR is currently on. In that case,
> +backspace is echoed as deletion of the previous character (typically a left
> +motion).
> +.PP
> +The effect of
> +\fBwget_wstr\fR
> +is as though a series of
> +calls to
> +\fBwget_wch\fR
> +were made.
> +.PP
> +The effect of
> +\fBmvget_wstr\fR
> +is as though a call to
> +\fBmove\fR
> +and then a series of calls to
> +\fBget_wch\fR
> +were
> +made.
> +.PP
> +The effect of
> +\fBmvwget_wstr\fR
> +is as though a call to
> +\fBwmove\fR
> +and then a series of calls to
> +\fBwget_wch\fR
> +were made.
> +.PP
> +The
> +\fBgetn_wstr\fR,
> +\fBmvgetn_wstr\fR,
> +\fBmvwgetn_wstr\fR, and
> +\fBwgetn_wstr\fR
> +functions are identical
> +to the
> +\fBget_wstr\fR,
> +\fBmvget_wstr\fR,
> +\fBmvwget_wstr\fR, and
> +\fBwget_wstr\fR
> +functions, respectively,
> +except that the
> +\fB*n_*\fR
> +versions read at most
> +\fIn\fR
> +characters, letting the application prevent overflow of the
> +input buffer.
> +.SH NOTES
> +Using
> +\fBget_wstr\fR,
> +\fBmvget_wstr\fR,
> +\fBmvwget_wstr\fR, or
> +\fBwget_wstr\fR
> +to read a line that
> +overflows the array pointed to by
> +\fBwstr\fR
> +causes undefined
> +results.
> +The use of
> +\fBgetn_wstr\fR,
> +\fBmvgetn_wstr\fR,
> +\fBmvwgetn_wstr\fR, or
> +\fBwgetn_wstr\fR, respectively, is recommended.
> +.PP
> +These functions cannot return \fBKEY_\fR values because there
> +is no way to distinguish a \fBKEY_\fR value from a valid \fBwchar_t\fR value.
> +.PP
> +All of these routines except \fBwgetn_wstr\fR may be macros.
> +.SH RETURN VALUES
> +All of these functions return \fBOK\fR upon successful completion.
> +Otherwise, they return \fBERR\fR.
> +.PP
> +Functions using a window parameter return an error if it is null.
> +.RS
> +.TP 5
> +\fBwgetn_wstr\fP
> +returns an error if the associated call to \fBwget_wch\fP failed.
> +.RE
> +.SH PORTABILITY
> +These functions are described in The Single Unix Specification, Version 2.
> +No error conditions are defined.
> +This implementation returns ERR if the window pointer is null,
> +or if the lower-level \fBwget_wch\fR call returns an ERR.
> +In the latter case,
> +an ERR return without other data is treated as an end-of-file condition,
> +and the returned array contains a \fBWEOF\fR followed by a null \fBwchar_t\fR.
> +.PP
> +X/Open curses documents these functions to pass an array of \fBwchar_t\fR,
> +but all of the vendors implement this using \fBwint_t\fR.
> +.SH SEE ALSO
> +Functions:
> +\fBcurses\fR(3),
> +\fBcurs_get_wch\fR(3),
> +\fBcurs_getstr\fR(3).
> +.\"#
> +.\"# The following sets edit modes for GNU EMACS
> +.\"# Local Variables:
> +.\"# mode:nroff
> +.\"# fill-column:79
> +.\"# End:
> Index: libcurses/curs_in_wch.3
> ===================================================================
> RCS file: libcurses/curs_in_wch.3
> diff -N libcurses/curs_in_wch.3
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ libcurses/curs_in_wch.3 25 Aug 2010 08:31:32 -0000
> -0,0 +1,69
> +.\" $OpenBSD$
> +.\"***************************************************************************
> +.\" Copyright (c) 2002,2006 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. *
> +.\"***************************************************************************
> +.\"
> +.\" $Id: curs_in_wch.3x,v 1.2 2006/02/25 21:42:22 tom Exp $
> +.TH curs_in_wch 3 ""
> +.SH NAME
> +\fBin_wch\fR,
> +\fBmvin_wch\fR,
> +\fBmvwin_wch\fR,
> +\fBwin_wch\fR - extract a complex character and rendition from a window
> +.SH SYNOPSIS
> +\fB#include <curses.h>\fR
> +.sp
> +\fBint in_wch(cchar_t *\fR\fIwcval\fR\fB);\fR
> +.br
> +\fBint mvin_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
> +.br
> +\fBint mvwin_wch(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
> +.br
> +\fBint win_wch(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR
> +.SH DESCRIPTION
> +These functions extract the complex character and rendition from
> +the current position in the named window into the \fBcchar_t\fR object
> +referenced by wcval.
> +.SH RETURN VALUE
> +No errors are defined in the XSI Curses standard.
> +This implementation checks for null pointers, returns ERR in that case.
> +Also, the \fImv\fR routines check for error moving the cursor, returning ERR
> +in that case.
> +Otherwise they return OK
> +.SH NOTES
> +Note that all of these routines may be macros.
> +.SH PORTABILITY
> +These functions are described in the XSI Curses standard, Issue 4.
> +.SH SEE ALSO
> +\fBcurses\fR(3),
> +\fBcurs_inch\fR(3).
> +.\"#
> +.\"# The following sets edit modes for GNU EMACS
> +.\"# Local Variables:
> +.\"# mode:nroff
> +.\"# fill-column:79
> +.\"# End:
> Index: libcurses/curs_in_wchstr.3
> ===================================================================
> RCS file: libcurses/curs_in_wchstr.3
> diff -N libcurses/curs_in_wchstr.3
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ libcurses/curs_in_wchstr.3 25 Aug 2010 08:31:33 -0000
> -0,0 +1,123
> +.\" $OpenBSD$
> +.\"***************************************************************************
> +.\" Copyright (c) 2002-2005,2006 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. *
> +.\"***************************************************************************
> +.\"
> +.\" $Id: curs_in_wchstr.3x,v 1.6 2006/12/02 17:03:07 tom Exp $
> +.TH curs_in_wchstr 3 ""
> +.na
> +.hy 0
> +.SH NAME
> +\fBin_wchstr\fR,
> +\fBin_wchnstr\fR,
> +\fBwin_wchstr\fR,
> +\fBwin_wchnstr\fR,
> +\fBmvin_wchstr\fR,
> +\fBmvin_wchnstr\fR,
> +\fBmvwin_wchstr\fR,
> +\fBmvwin_wchnstr\fR \- get an array of complex characters and renditions from a curses window
> +.ad
> +.hy
> +.SH SYNOPSIS
> +.nf
> +\fB#include <curses.h>\fR
> +.sp
> +\fBint in_wchstr(cchar_t *\fR\fIwchstr\fR\fB);\fR
> +.br
> +\fBint in_wchnstr(cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint win_wchstr(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwchstr\fR\fB);\fR
> +.br
> +\fBint win_wchnstr(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint mvin_wchstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR\fB);\fR
> +.br
> +\fBint mvin_wchnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint mvwin_wchstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR\fB);\fR
> +.br
> +\fBint mvwin_wchnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR, int \fIn\fR\fB);\fR
> +.fi
> +.SH DESCRIPTION
> +These functions return an array of complex characters in \fIwchstr\fR,
> +starting at the current cursor position in the named window.
> +Attributes (rendition) are stored with the characters.
> +.PP
> +The
> +\fBin_wchnstr\fR,
> +\fBmvin_wchnstr\fR,
> +\fBmvwin_wchnstr\fR
> +and
> +\fBwin_wchnstr\fR
> +fill the array
> +with at most
> +\fIn\fR
> +\fBcchar_t\fR
> +elements.
> +.br
> +.SH NOTES
> +Note that all routines except
> +\fBwin_wchnstr\fR
> +may be
> +macros.
> +.PP
> +Reading a line that overflows the array pointed to by
> +\fIwchstr\fR
> +with
> +\fBin_wchstr\fR,
> +\fBmvin_wchstr\fR,
> +\fBmvwin_wchstr\fR
> +or
> +\fBwin_wchstr\fR
> +causes undefined results. Therefore, the use of
> +\fBin_wchnstr\fR,
> +\fBmvin_wchnstr\fR,
> +\fBmvwin_wchnstr\fR, or
> +\fBwin_wchnstr\fR
> +is recommended.
> +.SH RETURN VALUES
> +Upon successful completion, these functions return
> +\fBOK\fR.
> +Otherwise, they return
> +\fBERR\fR.
> +.SH PORTABILITY
> +The XSI Curses defines no error conditions.
> +This implementation checks for null pointers,
> +returning ERR in that case.
> +.SH SEE ALSO
> +Functions:
> +\fBcurses\fR(3),
> +\fBcurs_in_wch\fR(3),
> +\fBcurs_instr\fR(3),
> +\fBcurs_inwstr\fR(3)
> +\fBcurs_inchstr\fR(3)
> +.\"#
> +.\"# The following sets edit modes for GNU EMACS
> +.\"# Local Variables:
> +.\"# mode:nroff
> +.\"# fill-column:79
> +.\"# End:
> Index: libcurses/curs_ins_wch.3
> ===================================================================
> RCS file: libcurses/curs_ins_wch.3
> diff -N libcurses/curs_ins_wch.3
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ libcurses/curs_ins_wch.3 25 Aug 2010 08:31:33 -0000
> -0,0 +1,66
> +.\" $OpenBSD$
> +.\"***************************************************************************
> +.\" Copyright (c) 2002,2006 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. *
> +.\"***************************************************************************
> +.\"
> +.\" $Id: curs_ins_wch.3x,v 1.3 2006/02/25 21:42:22 tom Exp $
> +.TH curs_ins_wch 3 ""
> +.SH NAME
> +\fBins_wch\fR,
> +\fBmvins_wch\fR,
> +\fBmvwins_wch\fR,
> +\fBwins_wch\fR \- insert a complex character and rendition into a window
> +.SH SYNOPSIS
> +#include <curses.h>
> +.sp
> +\fBint ins_wch(const cchar_t *\fR\fIwch\fR\fB);\fR
> +.br
> +\fBint wins_wch(WINDOW *\fR\fIwin, const cchar_t *\fR\fIwch\fR\fB);\fR
> +.br
> +\fBint mvins_wch(int \fR\fIy, int \fR\fIx, const cchar_t *\fR\fIwch\fR\fB);\fR
> +.br
> +\fBint mvwins_wch(WINDOW *\fR\fIwin, int \fR\fIy, int \fR\fIx, const cchar_t *\fR\fIwch\fR\fB);\fR
> +.SH DESCRIPTION
> +These routines, insert the complex character \fIwch\fR with rendition
> +before the character under the cursor.
> +All characters to the right of the cursor are moved one space to the right,
> +with the possibility of the rightmost character on the line being lost.
> +The insertion operation does not change the cursor position.
> +.SH RETURN VALUE
> +If successful, these functions return OK.
> +If not, they return ERR.
> +.SH ERRORS
> +No errors are defined.
> +.SH SEE ALSO
> +\fBcurses\fR(3),
> +\fBcurs_insch\fR(3).
> +.\"#
> +.\"# The following sets edit modes for GNU EMACS
> +.\"# Local Variables:
> +.\"# mode:nroff
> +.\"# fill-column:79
> +.\"# End:
> Index: libcurses/curs_ins_wstr.3
> ===================================================================
> RCS file: libcurses/curs_ins_wstr.3
> diff -N libcurses/curs_ins_wstr.3
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ libcurses/curs_ins_wstr.3 25 Aug 2010 08:31:33 -0000
> -0,0 +1,109
> +.\" $OpenBSD$
> +.\"***************************************************************************
> +.\" Copyright (c) 2002,2005 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. *
> +.\"***************************************************************************
> +.\"
> +.\" $Id: curs_ins_wstr.3x,v 1.4 2005/05/15 17:02:54 tom Exp $
> +.TH curs_ins_wstr 3 ""
> +.na
> +.hy 0
> +.SH NAME
> +\fBins_wstr\fR,
> +\fBins_nwstr\fR,
> +\fBwins_wstr\fR,
> +\fBwins_nwstr\fR,
> +\fBmvins_wstr\fR,
> +\fBmvins_nwstr\fR,
> +\fBmvwins_wstr\fR,
> +\fBmvwins_nwstr\fR \- insert a wide-character string into a curses window
> +.ad
> +.hy
> +.SH SYNOPSIS
> +.nf
> +\fB#include <curses.h>\fR
> +.sp
> +\fBint ins_wstr(const wchar_t *\fR\fIwstr);\fR
> +.br
> +\fBint ins_nwstr(const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint wins_wstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
> +.br
> +\fBint wins_nwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint mvins_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
> +.br
> +\fBint mvins_nwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint mvwins_wstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR
> +.br
> +\fBint mvwins_nwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.fi
> +.SH DESCRIPTION
> +These routines insert a \fBwchar_t\fR character string
> +(as many characters as will fit on the line)
> +before the character under the cursor.
> +All characters to the right of the cursor are shifted right,
> +with the possibility of the rightmost characters on the line being lost.
> +No wrapping is performed.
> +The cursor position does not change
> +(after moving to \fIy\fR, \fIx\fR, if specified).
> +The four routines with \fIn\fR as the last argument
> +insert a leading substring of at most \fIn\fR \fBwchar_t\fR characters.
> +If \fIn\fR is less than 1, the entire string is inserted.
> +.PP
> +If a character in \fIwstr\fR is a tab, newline, carriage return or
> +backspace, the cursor is moved appropriately within the window.
> +A newline also does a \fBclrtoeol\fR before moving.
> +Tabs are considered to be at every eighth column.
> +If a character in \fIwstr\fR is another control character,
> +it is drawn in the \fB^\fR\fIX\fR notation.
> +Calling \fBwin_wch\fR after adding a control character
> +(and moving to it, if necessary)
> +does not return the control character,
> +but instead returns a character in the ^-representation
> +of the control character.
> +.SH NOTES
> +Note that all but wins_nwstr may be macros.
> +.PP
> +If the first character in the string is a nonspacing character, these
> +functions will fail.
> +XSI does not define what will happen if a nonspacing character follows
> +a control character.
> +.SH RETURN VALUES
> +Upon successful completion, these functions return OK.
> +Otherwise, they return ERR.
> +.SH SEE ALSO
> +\fBcurses\fR(3),
> +\fBcurs_insstr\fR(3),
> +\fBcurs_in_wch\fR(3),
> +\fBcurs_ins_wch\fR(3).
> +.\"#
> +.\"# The following sets edit modes for GNU EMACS
> +.\"# Local Variables:
> +.\"# mode:nroff
> +.\"# fill-column:79
> +.\"# End:
> Index: libcurses/curs_inwstr.3
> ===================================================================
> RCS file: libcurses/curs_inwstr.3
> diff -N libcurses/curs_inwstr.3
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ libcurses/curs_inwstr.3 25 Aug 2010 08:31:33 -0000
> -0,0 +1,94
> +.\" $OpenBSD$
> +.\"***************************************************************************
> +.\" Copyright (c) 2002-2005,2006 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. *
> +.\"***************************************************************************
> +.\"
> +.\" $Id: curs_inwstr.3x,v 1.5 2006/02/25 21:20:20 tom Exp $
> +.TH curs_inwstr 3 ""
> +.SH NAME
> +\fBinwstr\fR,
> +\fBinnwstr\fR,
> +\fBwinwstr\fR,
> +\fBwinnwstr\fR,
> +\fBmvinwstr\fR,
> +\fBmvinnwstr\fR,
> +\fBmvwinwstr\fR,
> +\fBmvwinnwstr\fR \- get a string of \fBwchar_t\fR characters from a curses window
> +.SH SYNOPSIS
> +.nf
> +\fB#include <curses.h> \fR
> +.sp
> +\fBint inwstr(\fR\fBwchar_t *\fR\fIstr\fR\fB);\fR
> +.br
> +\fBint innwstr(\fR\fBwchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint winwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, wchar_t *\fR\fIstr\fR\fB);\fR
> +.br
> +\fBint winnwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, wchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint mvinwstr(\fR\fBint \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB);\fR
> +.br
> +\fBint mvinnwstr(\fR\fBint \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.br
> +\fBint mvwinwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB);\fR
> +.br
> +\fBint mvwinnwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR
> +.fi
> +.SH DESCRIPTION
> +These routines return a string of \fBwchar_t\fR characters in \fIwstr\fR,
> +extracted starting at the current cursor position in the named window.
> +Attributes are stripped from the characters.
> +The four functions with \fIn\fR as the last argument return a leading substring at most
> +\fIn\fR bytes long (exclusive of the trailing NUL).
> +Transfer stops at the end of the current line, or when \fIn\fR bytes have
> +been stored at the location referenced by \fIwstr\fR.
> +.PP
> +If the size \fIn\fR is not large enough to store a complete character,
> +an error is generated.
> +.SH NOTES
> +Note that all routines except
> +\fBwinnwstr\fR
> +may be macros.
> +.SH RETURN VALUES
> +All routines return
> +\fBERR\fR
> +upon failure. Upon
> +successful completion, the *\fBinwstr\fR
> +routines return
> +\fBOK\fR, and the *\fBinnwstr\fR
> +routines return the
> +number of characters read into the string.
> +.SH SEE ALSO
> +\fBcurses\fR(3),
> +\fBcurs_instr\fR(3),
> +\fBcurs_in_wchstr\fR(3)
> +.\"#
> +.\"# The following sets edit modes for GNU EMACS
> +.\"# Local Variables:
> +.\"# mode:nroff
> +.\"# fill-column:79
> +.\"# End:
> Index: libcurses/curses.3tbl
> ===================================================================
> RCS file: /cvs/src/lib/libcurses/curses.3tbl,v
> retrieving revision 1.20
> diff -u -p -r1.20 curses.3tbl
> --- libcurses/curses.3tbl 12 Jan 2010 23:21:59 -0000 1.20
> +++ libcurses/curses.3tbl 25 Aug 2010 08:31:33 -0000
> -272,8 +272,6 functions in the "normal" library.
> There is a naming convention which relates many of the normal/wide variants:
> a "_w" is inserted into the name.
> For example, \fBwaddch\fP becomes \fBwadd_wch\fP.
> -.IP
> -ncursesw is not currently supported on OpenBSD.
> .RE
> .PP
> .\"
> Index: libcurses/curses.h
> ===================================================================
> RCS file: /cvs/src/lib/libcurses/curses.h,v
> retrieving revision 1.60
> diff -u -p -r1.60 curses.h
> --- libcurses/curses.h 12 Jan 2010 23:21:59 -0000 1.60
> +++ libcurses/curses.h 25 Aug 2010 08:31:35 -0000
> -137,7 +137,7
> * of the header incompatible.
> */
> #undef NCURSES_CH_T
> -#define NCURSES_CH_T chtype
> +#define NCURSES_CH_T cchar_t
>
> #if 0 && defined(_LP64)
> typedef unsigned chtype;
> -342,7 +342,7 typedef chtype attr_t; /* ...must be at
> #include <libutf8.h>
> #endif
>
> -#if 0
> +#if 1
> #include <wchar.h> /* ...to get mbstate_t, etc. */
> #endif
>
> -1334,6 +1334,258 extern NCURSES_EXPORT_VAR(int) TABSIZE;
> #define KEY_EVENT 0633 /* We were interrupted by an event */
>
> #define KEY_MAX 0777 /* Maximum key value is 0633 */
> +/* $Id: curses.wide,v 1.34 2007/03/10 17:52:23 tom Exp $ */
> +/*
> + * vile:cmode:
> + * This file is part of ncurses, designed to be appended after curses.h.in
> + * (see that file for the relevant copyright).
> + */
> +#ifdef _XOPEN_SOURCE_EXTENDED
> +
> +extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
> +
> +#define NCURSES_WACS(c) (&_nc_wacs[(unsigned char)c])
> +
> +#define WACS_BSSB NCURSES_WACS('l')
> +#define WACS_SSBB NCURSES_WACS('m')
> +#define WACS_BBSS NCURSES_WACS('k')
> +#define WACS_SBBS NCURSES_WACS('j')
> +#define WACS_SBSS NCURSES_WACS('u')
> +#define WACS_SSSB NCURSES_WACS('t')
> +#define WACS_SSBS NCURSES_WACS('v')
> +#define WACS_BSSS NCURSES_WACS('w')
> +#define WACS_BSBS NCURSES_WACS('q')
> +#define WACS_SBSB NCURSES_WACS('x')
> +#define WACS_SSSS NCURSES_WACS('n')
> +
> +#define WACS_ULCORNER WACS_BSSB
> +#define WACS_LLCORNER WACS_SSBB
> +#define WACS_URCORNER WACS_BBSS
> +#define WACS_LRCORNER WACS_SBBS
> +#define WACS_RTEE WACS_SBSS
> +#define WACS_LTEE WACS_SSSB
> +#define WACS_BTEE WACS_SSBS
> +#define WACS_TTEE WACS_BSSS
> +#define WACS_HLINE WACS_BSBS
> +#define WACS_VLINE WACS_SBSB
> +#define WACS_PLUS WACS_SSSS
> +
> +#define WACS_S1 NCURSES_WACS('o') /* scan line 1 */
> +#define WACS_S9 NCURSES_WACS('s') /* scan line 9 */
> +#define WACS_DIAMOND NCURSES_WACS('`') /* diamond */
> +#define WACS_CKBOARD NCURSES_WACS('a') /* checker board */
> +#define WACS_DEGREE NCURSES_WACS('f') /* degree symbol */
> +#define WACS_PLMINUS NCURSES_WACS('g') /* plus/minus */
> +#define WACS_BULLET NCURSES_WACS('~') /* bullet */
> +
> + /* Teletype 5410v1 symbols */
> +#define WACS_LARROW NCURSES_WACS(',') /* arrow left */
> +#define WACS_RARROW NCURSES_WACS('+') /* arrow right */
> +#define WACS_DARROW NCURSES_WACS('.') /* arrow down */
> +#define WACS_UARROW NCURSES_WACS('-') /* arrow up */
> +#define WACS_BOARD NCURSES_WACS('h') /* board of squares */
> +#define WACS_LANTERN NCURSES_WACS('i') /* lantern symbol */
> +#define WACS_BLOCK NCURSES_WACS('0') /* solid square block */
> +
> + /* ncurses extensions */
> +#define WACS_S3 NCURSES_WACS('p') /* scan line 3 */
> +#define WACS_S7 NCURSES_WACS('r') /* scan line 7 */
> +#define WACS_LEQUAL NCURSES_WACS('y') /* less/equal */
> +#define WACS_GEQUAL NCURSES_WACS('z') /* greater/equal */
> +#define WACS_PI NCURSES_WACS('{') /* Pi */
> +#define WACS_NEQUAL NCURSES_WACS('|') /* not equal */
> +#define WACS_STERLING NCURSES_WACS('}') /* UK pound sign */
> +
> +/*
> + * Function prototypes for wide-character operations.
> + *
> + * "generated" comments should include ":WIDEC" to make the corresponding
> + * functions ifdef'd in lib_gen.c
> + *
> + * "implemented" comments do not need this marker.
> + */
> +
> +extern NCURSES_EXPORT(int) add_wch (const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) add_wchnstr (const cchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) add_wchstr (const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) addnwstr (const wchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) addwstr (const wchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) bkgrnd (const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(void) bkgrndset (const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) border_set (const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) box_set (WINDOW *, const cchar_t *, const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) echo_wchar (const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) erasewchar (wchar_t*); /* implemented */
> +extern NCURSES_EXPORT(int) get_wch (wint_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) get_wstr (wint_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, short*, void*); /* implemented */
> +extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) in_wch (cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) in_wchnstr (cchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) in_wchstr (cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) innwstr (wchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) ins_nwstr (const wchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) ins_wch (const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) ins_wstr (const wchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) inwstr (wchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(NCURSES_CONST char*) key_name (wchar_t); /* implemented */
> +extern NCURSES_EXPORT(int) killwchar (wchar_t *); /* implemented */
> +extern NCURSES_EXPORT(int) mvadd_wch (int, int, const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvadd_wchnstr (int, int, const cchar_t *, int);/* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvadd_wchstr (int, int, const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvaddnwstr (int, int, const wchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvaddwstr (int, int, const wchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvget_wch (int, int, wint_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvget_wstr (int, int, wint_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvgetn_wstr (int, int, wint_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvhline_set (int, int, const cchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvin_wch (int, int, cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvin_wchnstr (int, int, cchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvin_wchstr (int, int, cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvinnwstr (int, int, wchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvins_nwstr (int, int, const wchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvins_wch (int, int, const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvins_wstr (int, int, const wchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvinwstr (int, int, wchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvvline_set (int, int, const cchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwadd_wch (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwadd_wchnstr (WINDOW *, int, int, const cchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwadd_wchstr (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwaddnwstr (WINDOW *, int, int, const wchar_t *, int);/* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwaddwstr (WINDOW *, int, int, const wchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwget_wch (WINDOW *, int, int, wint_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwget_wstr (WINDOW *, int, int, wint_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwgetn_wstr (WINDOW *, int, int, wint_t *, int);/* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwhline_set (WINDOW *, int, int, const cchar_t *, int);/* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwin_wch (WINDOW *, int, int, cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW *, int,int, cchar_t *,int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwin_wchstr (WINDOW *, int, int, cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwinnwstr (WINDOW *, int, int, wchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwins_nwstr (WINDOW *, int,int, const wchar_t *,int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwins_wch (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwins_wstr (WINDOW *, int, int, const wchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *); /* implemented */
> +extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, short, const void *); /* implemented */
> +extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int); /* implemented */
> +extern NCURSES_EXPORT(attr_t) term_attrs (void); /* implemented */
> +extern NCURSES_EXPORT(int) unget_wch (const wchar_t); /* implemented */
> +extern NCURSES_EXPORT(int) vid_attr (attr_t, short, void *); /* implemented */
> +extern NCURSES_EXPORT(int) vid_puts (attr_t, short, void *, int (*)(int)); /* implemented */
> +extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *); /* implemented */
> +extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int); /* implemented */
> +extern NCURSES_EXPORT(int) wadd_wchstr (WINDOW *,const cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) waddnwstr (WINDOW *,const wchar_t *,int); /* implemented */
> +extern NCURSES_EXPORT(int) waddwstr (WINDOW *,const wchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) wbkgrnd (WINDOW *,const cchar_t *); /* implemented */
> +extern NCURSES_EXPORT(void) wbkgrndset (WINDOW *,const cchar_t *); /* implemented */
> +extern NCURSES_EXPORT(int) wborder_set (WINDOW *,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* implemented */
> +extern NCURSES_EXPORT(int) wecho_wchar (WINDOW *, const cchar_t *); /* implemented */
> +extern NCURSES_EXPORT(int) wget_wch (WINDOW *, wint_t *); /* implemented */
> +extern NCURSES_EXPORT(int) wget_wstr (WINDOW *, wint_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) wgetbkgrnd (WINDOW *, cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) wgetn_wstr (WINDOW *,wint_t *, int); /* implemented */
> +extern NCURSES_EXPORT(int) whline_set (WINDOW *, const cchar_t *, int); /* implemented */
> +extern NCURSES_EXPORT(int) win_wch (WINDOW *, cchar_t *); /* implemented */
> +extern NCURSES_EXPORT(int) win_wchnstr (WINDOW *, cchar_t *, int); /* implemented */
> +extern NCURSES_EXPORT(int) win_wchstr (WINDOW *, cchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) winnwstr (WINDOW *, wchar_t *, int); /* implemented */
> +extern NCURSES_EXPORT(int) wins_nwstr (WINDOW *, const wchar_t *, int); /* implemented */
> +extern NCURSES_EXPORT(int) wins_wch (WINDOW *, const cchar_t *); /* implemented */
> +extern NCURSES_EXPORT(int) wins_wstr (WINDOW *, const wchar_t *); /* generated:WIDEC */
> +extern NCURSES_EXPORT(int) winwstr (WINDOW *, wchar_t *); /* implemented */
> +extern NCURSES_EXPORT(wchar_t*) wunctrl (cchar_t *); /* implemented */
> +extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int); /* implemented */
> +
> +#ifndef NCURSES_NOMACROS
> +
> +/*
> + * XSI curses macros for XPG4 conformance.
> + */
> +#define add_wch(c) wadd_wch(stdscr,c)
> +#define add_wchnstr(str,n) wadd_wchnstr(stdscr,str,n)
> +#define add_wchstr(str) wadd_wchstr(stdscr,str)
> +#define addnwstr(wstr,n) waddnwstr(stdscr,wstr,n)
> +#define addwstr(wstr) waddwstr(stdscr,wstr)
> +#define bkgrnd(c) wbkgrnd(stdscr,c)
> +#define bkgrndset(c) wbkgrndset(stdscr,c)
> +#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,l,r,t,b,tl,tr,bl,br)
> +#define box_set(w,v,h) wborder_set(w,v,v,h,h,0,0,0,0)
> +#define echo_wchar(c) wecho_wchar(stdscr,c)
> +#define get_wch(c) wget_wch(stdscr,c)
> +#define get_wstr(t) wget_wstr(stdscr,t)
> +#define getbkgrnd(wch) wgetbkgrnd(stdscr,wch)
> +#define getn_wstr(t,n) wgetn_wstr(stdscr,t,n)
> +#define hline_set(c,n) whline_set(stdscr,c,n)
> +#define in_wch(c) win_wch(stdscr,c)
> +#define in_wchnstr(c,n) win_wchnstr(stdscr,c,n)
> +#define in_wchstr(c) win_wchstr(stdscr,c)
> +#define innwstr(c,n) winnwstr(stdscr,c,n)
> +#define ins_nwstr(t,n) wins_nwstr(stdscr,t,n)
> +#define ins_wch(c) wins_wch(stdscr,c)
> +#define ins_wstr(t) wins_wstr(stdscr,t)
> +#define inwstr(c) winwstr(stdscr,c)
> +#define vline_set(c,n) wvline_set(stdscr,c,n)
> +#define wadd_wchstr(win,str) wadd_wchnstr(win,str,-1)
> +#define waddwstr(win,wstr) waddnwstr(win,wstr,-1)
> +#define wget_wstr(w,t) wgetn_wstr(w,t,-1)
> +#define win_wchstr(w,c) win_wchnstr(w,c,-1)
> +#define wins_wstr(w,t) wins_nwstr(w,t,-1)
> +
> +#if !NCURSES_OPAQUE
> +#define wgetbkgrnd(win,wch) (*wch = win->_bkgrnd, OK)
> +#endif
> +
> +#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,y,x,c)
> +#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,y,x,s,n)
> +#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,y,x,s)
> +#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,y,x,wstr,n)
> +#define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,y,x,wstr)
> +#define mvget_wch(y,x,c) mvwget_wch(stdscr,y,x,c)
> +#define mvget_wstr(y,x,t) mvwget_wstr(stdscr,y,x,t)
> +#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,y,x,t,n)
> +#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,y,x,c,n)
> +#define mvin_wch(y,x,c) mvwin_wch(stdscr,y,x,c)
> +#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,y,x,c,n)
> +#define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,y,x,c)
> +#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,y,x,c,n)
> +#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,y,x,t,n)
> +#define mvins_wch(y,x,c) mvwins_wch(stdscr,y,x,c)
> +#define mvins_wstr(y,x,t) mvwins_wstr(stdscr,y,x,t)
> +#define mvinwstr(y,x,c) mvwinwstr(stdscr,y,x,c)
> +#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,y,x,c,n)
> +
> +#define mvwadd_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wadd_wch(win,c))
> +#define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : wadd_wchnstr(win,s,n))
> +#define mvwadd_wchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : wadd_wchstr(win,s))
> +#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,y,x) == ERR ? ERR : waddnwstr(win,wstr,n))
> +#define mvwaddwstr(win,y,x,wstr) (wmove(win,y,x) == ERR ? ERR : waddwstr(win,wstr))
> +#define mvwget_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c))
> +#define mvwget_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wget_wstr(win,t))
> +#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n))
> +#define mvwhline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n))
> +#define mvwin_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wch(win,c))
> +#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : win_wchnstr(win,c,n))
> +#define mvwin_wchstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wchstr(win,c))
> +#define mvwinnwstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : winnwstr(win,c,n))
> +#define mvwins_nwstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wins_nwstr(win,t,n))
> +#define mvwins_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wins_wch(win,c))
> +#define mvwins_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wins_wstr(win,t))
> +#define mvwinwstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winwstr(win,c))
> +#define mvwvline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n))
> +
> +#endif /* NCURSES_NOMACROS */
> +
> +#if defined(TRACE) || defined(NCURSES_TEST)
> +extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
> +extern NCURSES_EXPORT(const char *) _nc_viswibuf(const wint_t *);
> +#endif
> +
> +#endif /* _XOPEN_SOURCE_EXTENDED */
> /* $Id: curses.h,v 1.60 2010/01/12 23:21:59 nicm Exp $ */
> /*
> * vile:cmode:
> Index: libcurses/curses.priv.h
> ===================================================================
> RCS file: /cvs/src/lib/libcurses/curses.priv.h,v
> retrieving revision 1.33
> diff -u -p -r1.33 curses.priv.h
> --- libcurses/curses.priv.h 12 Jan 2010 23:21:59 -0000 1.33
> +++ libcurses/curses.priv.h 25 Aug 2010 08:31:35 -0000
> -262,6 +262,7 color_t;
>
> #if USE_WIDEC_SUPPORT
> #define _nc_bkgd _bkgrnd
> +#define _XOPEN_SOURCE_EXTENDED 1
> #else
> #undef _XOPEN_SOURCE_EXTENDED
> #define _nc_bkgd _bkgd
> Index: libcurses/ncurses_cfg.h
> ===================================================================
> RCS file: /cvs/src/lib/libcurses/ncurses_cfg.h,v
> retrieving revision 1.24
> diff -u -p -r1.24 ncurses_cfg.h
> --- libcurses/ncurses_cfg.h 12 Jan 2010 23:21:59 -0000 1.24
> +++ libcurses/ncurses_cfg.h 25 Aug 2010 08:31:36 -0000
> -58,6 +58,7
> #define GCC_UNUSED __attribute__((__unused__))
> #define HAVE_BIG_CORE 1
> #define HAVE_BSD_CGETENT 1
> +#define HAVE_BTOWC 1
> #define HAVE_CURSES_VERSION 1
> #define HAVE_DIRENT_H 1
> #define HAVE_ERRNO 1
> -80,6 +81,12
> #define HAVE_LINK 1
> #define HAVE_LOCALE_H 1
> #define HAVE_LONG_FILE_NAMES 1
> +#define HAVE_MBLEN 1
> +#define HAVE_MBRLEN 1
> +#define HAVE_MBRTOWC 1
> +#define HAVE_MBSRTOWCS 1
> +#define HAVE_MBSTOWCS 1
> +#define HAVE_MBTOWC 1
> #define HAVE_MEMORY_H 1
> #define HAVE_MENU_H 1
> #define HAVE_MKSTEMP 1
> -88,6 +95,7
> #define HAVE_PANEL_H 1
> #define HAVE_POLL 1
> #define HAVE_POLL_H 1
> +#define HAVE_PUTWC 1
> #define HAVE_REGEX_H_FUNCS 1
> #define HAVE_REMOVE 1
> #define HAVE_REMOVE 1
> -130,6 +138,10
> #define HAVE_USE_DEFAULT_COLORS 1
> #define HAVE_VSNPRINTF 1
> #define HAVE_VSSCANF 1
> +#define HAVE_WCSRTOMBS 1
> +#define HAVE_WCSTOMBS 1
> +#define HAVE_WCTOB 1
> +#define HAVE_WCTOMB 1
> #define HAVE_WCTYPE_H 1
> #define HAVE_WORKING_POLL 1
> #define HAVE_WRESIZE 1
> -140,6 +152,7
> #define NCURSES_PATHSEP ':'
> #define NCURSES_VERSION_STRING "5.7.20081102"
> #define NDEBUG 1
> +#define NEED_WCHAR_H 1
> #define PURE_TERMINFO 0
> #define RETSIGTYPE void
> #define SIG_ATOMIC_T volatile sig_atomic_t
> -152,12 +165,13
> #define TYPEOF_CHTYPE long
> #define USE_ASSUMED_COLOR 1
> #define USE_DATABASE 1
> -#define USE_GETCAP 1
> +#define USE_GETCAP 1
> #define USE_HASHMAP 1
> #define USE_HOME_TERMINFO 1
> #define USE_LINKS 1
> #define USE_OPENPTY_HEADER <util.h>
> #define USE_ROOT_ENVIRON 1
> +#define USE_WIDEC_SUPPORT 1
> #define USE_XTERM_PTY 1
> /* #define HAVE_LIBFORM 1 */
> /* #define HAVE_LIBMENU 1 */
> Index: libcurses/shlib_version
> ===================================================================
> RCS file: /cvs/src/lib/libcurses/shlib_version,v
> retrieving revision 1.17
> diff -u -p -r1.17 shlib_version
> -1,2 +1,2
> -major=11
> +major=12
> minor=0