123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- /* PDCurses */
- #include <curspriv.h>
- /*man-start**************************************************************
- instr
- -----
- ### Synopsis
- int instr(char *str);
- int innstr(char *str, int n);
- int winstr(WINDOW *win, char *str);
- int winnstr(WINDOW *win, char *str, int n);
- int mvinstr(int y, int x, char *str);
- int mvinnstr(int y, int x, char *str, int n);
- int mvwinstr(WINDOW *win, int y, int x, char *str);
- int mvwinnstr(WINDOW *win, int y, int x, char *str, int n);
- int inwstr(wchar_t *wstr);
- int innwstr(wchar_t *wstr, int n);
- int winwstr(WINDOW *win, wchar_t *wstr);
- int winnwstr(WINDOW *win, wchar_t *wstr, int n);
- int mvinwstr(int y, int x, wchar_t *wstr);
- int mvinnwstr(int y, int x, wchar_t *wstr, int n);
- int mvwinwstr(WINDOW *win, int y, int x, wchar_t *wstr);
- int mvwinnwstr(WINDOW *win, int y, int x, wchar_t *wstr, int n);
- ### Description
- These functions take characters (or wide characters) from the current
- or specified position in the window, and return them as a string in
- str (or wstr). Attributes are ignored. The functions with n as the
- last argument return a string at most n characters long.
- ### Return Value
- Upon successful completion, innstr(), mvinnstr(), mvwinnstr() and
- winnstr() return the number of characters actually read into the
- string; instr(), mvinstr(), mvwinstr() and winstr() return OK.
- Otherwise, all these functions return ERR.
- ### Portability
- X/Open ncurses NetBSD
- instr Y Y Y
- winstr Y Y Y
- mvinstr Y Y Y
- mvwinstr Y Y Y
- innstr Y Y Y
- winnstr Y Y Y
- mvinnstr Y Y Y
- mvwinnstr Y Y Y
- inwstr Y Y Y
- winwstr Y Y Y
- mvinwstr Y Y Y
- mvwinwstr Y Y Y
- innwstr Y Y Y
- winnwstr Y Y Y
- mvinnwstr Y Y Y
- mvwinnwstr Y Y Y
- **man-end****************************************************************/
- int winnstr(WINDOW *win, char *str, int n)
- {
- #ifdef PDC_WIDE
- wchar_t wstr[513];
- if (n < 0 || n > 512)
- n = 512;
- if (winnwstr(win, wstr, n) == ERR)
- return ERR;
- return PDC_wcstombs(str, wstr, n);
- #else
- chtype *src;
- int i;
- PDC_LOG(("winnstr() - called: n %d \n", n));
- if (!win || !str)
- return ERR;
- if (n < 0 || (win->_curx + n) > win->_maxx)
- n = win->_maxx - win->_curx;
- src = win->_y[win->_cury] + win->_curx;
- for (i = 0; i < n; i++)
- str[i] = src[i] & A_CHARTEXT;
- str[i] = '\0';
- return i;
- #endif
- }
- int instr(char *str)
- {
- PDC_LOG(("instr() - called: string=\"%s\"\n", str));
- return (ERR == winnstr(stdscr, str, stdscr->_maxx)) ? ERR : OK;
- }
- int winstr(WINDOW *win, char *str)
- {
- PDC_LOG(("winstr() - called: \n"));
- return (ERR == winnstr(win, str, win->_maxx)) ? ERR : OK;
- }
- int mvinstr(int y, int x, char *str)
- {
- PDC_LOG(("mvinstr() - called: y %d x %d \n", y, x));
- if (move(y, x) == ERR)
- return ERR;
- return (ERR == winnstr(stdscr, str, stdscr->_maxx)) ? ERR : OK;
- }
- int mvwinstr(WINDOW *win, int y, int x, char *str)
- {
- PDC_LOG(("mvwinstr() - called: y %d x %d \n", y, x));
- if (wmove(win, y, x) == ERR)
- return ERR;
- return (ERR == winnstr(win, str, win->_maxx)) ? ERR : OK;
- }
- int innstr(char *str, int n)
- {
- PDC_LOG(("innstr() - called: n %d \n", n));
- return winnstr(stdscr, str, n);
- }
- int mvinnstr(int y, int x, char *str, int n)
- {
- PDC_LOG(("mvinnstr() - called: y %d x %d n %d \n", y, x, n));
- if (move(y, x) == ERR)
- return ERR;
- return winnstr(stdscr, str, n);
- }
- int mvwinnstr(WINDOW *win, int y, int x, char *str, int n)
- {
- PDC_LOG(("mvwinnstr() - called: y %d x %d n %d \n", y, x, n));
- if (wmove(win, y, x) == ERR)
- return ERR;
- return winnstr(win, str, n);
- }
- #ifdef PDC_WIDE
- int winnwstr(WINDOW *win, wchar_t *wstr, int n)
- {
- chtype *src;
- int i;
- PDC_LOG(("winnstr() - called: n %d \n", n));
- if (!win || !wstr)
- return ERR;
- if (n < 0 || (win->_curx + n) > win->_maxx)
- n = win->_maxx - win->_curx;
- src = win->_y[win->_cury] + win->_curx;
- for (i = 0; i < n; i++)
- wstr[i] = src[i] & A_CHARTEXT;
- wstr[i] = L'\0';
- return i;
- }
- int inwstr(wchar_t *wstr)
- {
- PDC_LOG(("inwstr() - called\n"));
- return (ERR == winnwstr(stdscr, wstr, stdscr->_maxx)) ? ERR : OK;
- }
- int winwstr(WINDOW *win, wchar_t *wstr)
- {
- PDC_LOG(("winwstr() - called\n"));
- return (ERR == winnwstr(win, wstr, win->_maxx)) ? ERR : OK;
- }
- int mvinwstr(int y, int x, wchar_t *wstr)
- {
- PDC_LOG(("mvinwstr() - called\n"));
- if (move(y, x) == ERR)
- return ERR;
- return (ERR == winnwstr(stdscr, wstr, stdscr->_maxx)) ? ERR : OK;
- }
- int mvwinwstr(WINDOW *win, int y, int x, wchar_t *wstr)
- {
- PDC_LOG(("mvwinstr() - called\n"));
- if (wmove(win, y, x) == ERR)
- return ERR;
- return (ERR == winnwstr(win, wstr, win->_maxx)) ? ERR : OK;
- }
- int innwstr(wchar_t *wstr, int n)
- {
- PDC_LOG(("innwstr() - called\n"));
- return winnwstr(stdscr, wstr, n);
- }
- int mvinnwstr(int y, int x, wchar_t *wstr, int n)
- {
- PDC_LOG(("mvinnstr() - called\n"));
- if (move(y, x) == ERR)
- return ERR;
- return winnwstr(stdscr, wstr, n);
- }
- int mvwinnwstr(WINDOW *win, int y, int x, wchar_t *wstr, int n)
- {
- PDC_LOG(("mvwinnwstr() - called\n"));
- if (wmove(win, y, x) == ERR)
- return ERR;
- return winnwstr(win, wstr, n);
- }
- #endif
|