123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- /* PDCurses */
- #include <curspriv.h>
- /*man-start**************************************************************
- addstr
- ------
- ### Synopsis
- int addstr(const char *str);
- int addnstr(const char *str, int n);
- int waddstr(WINDOW *win, const char *str);
- int waddnstr(WINDOW *win, const char *str, int n);
- int mvaddstr(int y, int x, const char *str);
- int mvaddnstr(int y, int x, const char *str, int n);
- int mvwaddstr(WINDOW *win, int y, int x, const char *str);
- int mvwaddnstr(WINDOW *win, int y, int x, const char *str, int n);
- int addwstr(const wchar_t *wstr);
- int addnwstr(const wchar_t *wstr, int n);
- int waddwstr(WINDOW *win, const wchar_t *wstr);
- int waddnwstr(WINDOW *win, const wchar_t *wstr, int n);
- int mvaddwstr(int y, int x, const wchar_t *wstr);
- int mvaddnwstr(int y, int x, const wchar_t *wstr, int n);
- int mvwaddwstr(WINDOW *win, int y, int x, const wchar_t *wstr);
- int mvwaddnwstr(WINDOW *win, int y, int x, const wchar_t *wstr, int n);
- ### Description
- These routines write all the characters of the null-terminated string
- str or wide-character string wstr to the given window. The
- functionality is similar to calling waddch() once for each character
- in the string; except that, when PDCurses is built with wide-
- character support enabled, the narrow-character functions treat the
- string as a multibyte string in the current locale, and convert it.
- The routines with n as the last argument write at most n characters;
- if n is negative, then the entire string will be added.
- ### Return Value
- All functions return OK or ERR.
- ### Portability
- X/Open ncurses NetBSD
- addstr Y Y Y
- waddstr Y Y Y
- mvaddstr Y Y Y
- mvwaddstr Y Y Y
- addnstr Y Y Y
- waddnstr Y Y Y
- mvaddnstr Y Y Y
- mvwaddnstr Y Y Y
- addwstr Y Y Y
- waddwstr Y Y Y
- mvaddwstr Y Y Y
- mvwaddwstr Y Y Y
- addnwstr Y Y Y
- waddnwstr Y Y Y
- mvaddnwstr Y Y Y
- mvwaddnwstr Y Y Y
- **man-end****************************************************************/
- int waddnstr(WINDOW *win, const char *str, int n)
- {
- int i = 0;
- PDC_LOG(("waddnstr() - called: string=\"%s\" n %d \n", str, n));
- if (!win || !str)
- return ERR;
- while (str[i] && (i < n || n < 0))
- {
- #ifdef PDC_WIDE
- wchar_t wch;
- int retval = PDC_mbtowc(&wch, str + i, n >= 0 ? n - i : 6);
- if (retval <= 0)
- return OK;
- i += retval;
- #else
- chtype wch = (unsigned char)(str[i++]);
- #endif
- if (waddch(win, wch) == ERR)
- return ERR;
- }
- return OK;
- }
- int addstr(const char *str)
- {
- PDC_LOG(("addstr() - called: string=\"%s\"\n", str));
- return waddnstr(stdscr, str, -1);
- }
- int addnstr(const char *str, int n)
- {
- PDC_LOG(("addnstr() - called: string=\"%s\" n %d \n", str, n));
- return waddnstr(stdscr, str, n);
- }
- int waddstr(WINDOW *win, const char *str)
- {
- PDC_LOG(("waddstr() - called: string=\"%s\"\n", str));
- return waddnstr(win, str, -1);
- }
- int mvaddstr(int y, int x, const char *str)
- {
- PDC_LOG(("mvaddstr() - called: y %d x %d string=\"%s\"\n", y, x, str));
- if (move(y, x) == ERR)
- return ERR;
- return waddnstr(stdscr, str, -1);
- }
- int mvaddnstr(int y, int x, const char *str, int n)
- {
- PDC_LOG(("mvaddnstr() - called: y %d x %d string=\"%s\" n %d \n",
- y, x, str, n));
- if (move(y, x) == ERR)
- return ERR;
- return waddnstr(stdscr, str, n);
- }
- int mvwaddstr(WINDOW *win, int y, int x, const char *str)
- {
- PDC_LOG(("mvwaddstr() - called: string=\"%s\"\n", str));
- if (wmove(win, y, x) == ERR)
- return ERR;
- return waddnstr(win, str, -1);
- }
- int mvwaddnstr(WINDOW *win, int y, int x, const char *str, int n)
- {
- PDC_LOG(("mvwaddnstr() - called: y %d x %d string=\"%s\" n %d \n",
- y, x, str, n));
- if (wmove(win, y, x) == ERR)
- return ERR;
- return waddnstr(win, str, n);
- }
- #ifdef PDC_WIDE
- int waddnwstr(WINDOW *win, const wchar_t *wstr, int n)
- {
- int i = 0;
- PDC_LOG(("waddnwstr() - called\n"));
- if (!win || !wstr)
- return ERR;
- while (wstr[i] && (i < n || n < 0))
- {
- chtype wch = wstr[i++];
- if (waddch(win, wch) == ERR)
- return ERR;
- }
- return OK;
- }
- int addwstr(const wchar_t *wstr)
- {
- PDC_LOG(("addwstr() - called\n"));
- return waddnwstr(stdscr, wstr, -1);
- }
- int addnwstr(const wchar_t *wstr, int n)
- {
- PDC_LOG(("addnwstr() - called\n"));
- return waddnwstr(stdscr, wstr, n);
- }
- int waddwstr(WINDOW *win, const wchar_t *wstr)
- {
- PDC_LOG(("waddwstr() - called\n"));
- return waddnwstr(win, wstr, -1);
- }
- int mvaddwstr(int y, int x, const wchar_t *wstr)
- {
- PDC_LOG(("mvaddstr() - called\n"));
- if (move(y, x) == ERR)
- return ERR;
- return waddnwstr(stdscr, wstr, -1);
- }
- int mvaddnwstr(int y, int x, const wchar_t *wstr, int n)
- {
- PDC_LOG(("mvaddnstr() - called\n"));
- if (move(y, x) == ERR)
- return ERR;
- return waddnwstr(stdscr, wstr, n);
- }
- int mvwaddwstr(WINDOW *win, int y, int x, const wchar_t *wstr)
- {
- PDC_LOG(("mvwaddstr() - called\n"));
- if (wmove(win, y, x) == ERR)
- return ERR;
- return waddnwstr(win, wstr, -1);
- }
- int mvwaddnwstr(WINDOW *win, int y, int x, const wchar_t *wstr, int n)
- {
- PDC_LOG(("mvwaddnstr() - called\n"));
- if (wmove(win, y, x) == ERR)
- return ERR;
- return waddnwstr(win, wstr, n);
- }
- #endif
|