Plan 9 from Bell Labs’s /usr/web/sources/contrib/fgb/root/sys/src/ape/lib/curses/pdcurses/inch.c

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


/************************************************************************ 
 * This file is part of PDCurses. PDCurses is public domain software;	*
 * you may use it for any purpose. This software is provided AS IS with	*
 * NO WARRANTY whatsoever.						*
 *									*
 * If you use PDCurses in an application, an acknowledgement would be	*
 * appreciated, but is not mandatory. If you make corrections or	*
 * enhancements to PDCurses, please forward them to the current		*
 * maintainer for the benefit of other users.				*
 *									*
 * See the file maintain.er for details of the current maintainer.	*
 ************************************************************************/

#include <curspriv.h>

RCSID("$Id: inch.c,v 1.31 2007/06/14 13:50:27 wmcbrine Exp $")

/*man-start**************************************************************

  Name:								inch

  Synopsis:
	chtype inch(void);
	chtype winch(WINDOW *win);
	chtype mvinch(int y, int x);
	chtype mvwinch(WINDOW *win, int y, int x);

	int in_wch(cchar_t *wcval);
	int win_wch(WINDOW *win, cchar_t *wcval);
	int mvin_wch(int y, int x, cchar_t *wcval);
	int mvwin_wch(WINDOW *win, int y, int x, cchar_t *wcval);

  Description:
	The inch() functions retrieve the character and attribute from 
	the current or specified window position, in the form of a 
	chtype. If a NULL window is specified, (chtype)ERR is returned.

	The in_wch() functions are the wide-character versions; instead 
	of returning a chtype, they store a cchar_t at the address 
	specified by wcval, and return OK or ERR. (No value is stored 
	when ERR is returned.) Note that in PDCurses, chtype and cchar_t 
	are the same.

  Portability				     X/Open    BSD    SYS V
	inch					Y	Y	Y
	winch					Y	Y	Y
	mvinch					Y	Y	Y
	mvwinch					Y	Y	Y
	in_wch					Y
	win_wch					Y
	mvin_wch				Y
	mvwin_wch				Y

**man-end****************************************************************/

chtype winch(WINDOW *win)
{
	PDC_LOG(("winch() - called\n"));

	if (!win)
		return (chtype)ERR;

	return win->_y[win->_cury][win->_curx];
}

chtype inch(void)
{
	PDC_LOG(("inch() - called\n"));

	return winch(stdscr);
}

chtype mvinch(int y, int x)
{
	PDC_LOG(("mvinch() - called\n"));

	if (move(y, x) == ERR)
		return (chtype)ERR;

	return stdscr->_y[stdscr->_cury][stdscr->_curx];
}

chtype mvwinch(WINDOW *win, int y, int x)
{
	PDC_LOG(("mvwinch() - called\n"));

	if (wmove(win, y, x) == ERR)
		return (chtype)ERR;

	return win->_y[win->_cury][win->_curx];
}

#ifdef PDC_WIDE
int win_wch(WINDOW *win, cchar_t *wcval)
{
	PDC_LOG(("win_wch() - called\n"));

	if (!win || !wcval)
		return ERR;

	*wcval = win->_y[win->_cury][win->_curx];

	return OK;
}

int in_wch(cchar_t *wcval)
{
	PDC_LOG(("in_wch() - called\n"));

	return win_wch(stdscr, wcval);
}

int mvin_wch(int y, int x, cchar_t *wcval)
{
	PDC_LOG(("mvin_wch() - called\n"));

	if (!wcval || (move(y, x) == ERR))
		return ERR;

	*wcval = stdscr->_y[stdscr->_cury][stdscr->_curx];

	return OK;
}

int mvwin_wch(WINDOW *win, int y, int x, cchar_t *wcval)
{
	PDC_LOG(("mvwin_wch() - called\n"));

	if (!wcval || (wmove(win, y, x) == ERR))
		return ERR;

	*wcval = win->_y[win->_cury][win->_curx];

	return OK;
}
#endif

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.