Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
curs_inwstr(3X)			 Library calls		       curs_inwstr(3X)

NAME
       inwstr,	winwstr,  mvinwstr,  mvwinwstr,	 innwstr, winnwstr, mvinnwstr,
       mvwinnwstr - get	a wide-character string	from a curses window

SYNOPSIS
       #include	<curses.h>

       int inwstr(wchar_t * wstr);
       int winwstr(WINDOW * win, wchar_t * wstr);
       int mvinwstr(int	y, int x, wchar_t * wstr);
       int mvwinwstr(WINDOW * win, int y, int x, wchar_t * wstr);

       int innwstr(wchar_t * wstr, int n);
       int winnwstr(WINDOW * win, wchar_t * wstr, int n);
       int mvinnwstr(int y, int	x, wchar_t * wstr, int n);
       int mvwinnwstr(WINDOW * win, int	y, int x, wchar_t * wstr, int n);

DESCRIPTION
       winwstr extracts	a wide-character string	 from  a  curses  window  win,
       starting	 at the	cursor and stopping at the end of the line, and	stores
       it in wstr, terminating it with a wide null character and omitting  any
       attributes  and	color pair identifier that curses associates with each
       character.  winnwstr does the same, but copies at most n	 wide  charac-
       ters from win.  A negative n implies no limit; winnwstr then works like
       winwstr.	 ncurses(3X) describes the variants of these functions.

RETURN VALUE
       On successful operation,	these functions	return the count of wide char-
       acters  copied  from  win to wstr (not including	the wide null termina-
       tor),  or  ERR  upon  failure.	innwstr,  winnwstr,   mvinnwstr,   and
       mvwinnwstr  return ERR if n is insufficiently large to store a complete
       wide character string.  (Recall that a  curses  complex	character  can
       contain multiple	wide characters, some of which may be non-spacing.)

       In ncurses, these functions return ERR if

          the curses screen has not been initialized,

          (for	 functions  taking  a  WINDOW  pointer argument) win is	a null
	   pointer, or

          wstr	is a null pointer.

       Functions prefixed with "mv" first perform cursor movement and fail  if
       the position (y,	x) is outside the window boundaries.

NOTES
       All of these functions except winnwstr may be implemented as macros.

       Reading	a  line	 that  overflows  the array pointed to by wstr and its
       variants	causes undefined results.  Instead, use	 the  n-infixed	 func-
       tions  with a positive n	argument no larger than	the size of the	buffer
       backing wstr.

EXTENSIONS
       innwstr,	winnwstr, mvinnwstr, and mvwinnwstr's acceptance of negative n
       values is an ncurses extension.

PORTABILITY
       Applications employing ncurses extensions should	condition their	use on
       the visibility of the NCURSES_VERSION preprocessor macro.

       X/Open Curses Issue 4 describes these functions.	 It specifies no error
       conditions for them.

       Notwithstanding the foregoing, X/Open Curses Issues 4 and 7 both	 state
       that  innwstr,  winnwstr,  mvinnwstr, and mvwinnwstr "fail ... [i]f the
       array  is  not  large  enough  to  contain  any	complete  characters".
       Strictly	 interpreted, this means that a	caller of these	functions can-
       not use their return values to detect truncation	 of  a	wide-character
       string  copied  from  more than one character cell in win.  ncurses re-
       ports any truncation with ERR.

       X/Open Curses specifies inwstr, winwstr,	mvinwstr, and mvwinwstr	as re-
       turning OK rather than a	(wide) character count,	unlike their  non-wide
       counterparts  instr,  winstr,  mvinstr,	and mvwinstr.  ncurses regards
       this inconsistency as an	error in the standard.

HISTORY
       The System V Interface Definition, Version 4 (1995), specified  winwstr
       and  winnwstr  (and the usual variants).	 These were later additions to
       SVr4.x, not appearing in	the first SVr4	(1989).	  Their	 synopses  de-
       scribed each function as	taking an argument of type pointer-to-char in-
       stead  of pointer-to-wchar_t, despite describing	them as	"returning the
       string of wchar_t in str".  Presumably this was an error	 in  the  Sys-
       tem V Interface Definition.

SEE ALSO
       curs_instr(3X) describes	comparable functions of	the ncurses library in
       its non-wide-character configuration.

       curses(3X), curs_in_wch(3X), curs_in_wchstr(3X)

ncurses	6.6			  2025-10-20		       curs_inwstr(3X)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=curs_inwstr&sektion=3&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help