ncurses 6.0 - patch 20170401
[ncurses.git] / include / curses.wide
1 /* $Id: curses.wide,v 1.50 2017/03/26 16:05:21 tom Exp $ */
2 /*
3  * vile:cmode:
4  * This file is part of ncurses, designed to be appended after curses.h.in
5  * (see that file for the relevant copyright).
6  */
7 #define _XOPEN_CURSES 1
8
9 #if NCURSES_WIDECHAR
10
11 extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
12
13 #define NCURSES_WACS(c) (&_nc_wacs[NCURSES_CAST(unsigned char,(c))])
14
15 #define WACS_BSSB       NCURSES_WACS('l')
16 #define WACS_SSBB       NCURSES_WACS('m')
17 #define WACS_BBSS       NCURSES_WACS('k')
18 #define WACS_SBBS       NCURSES_WACS('j')
19 #define WACS_SBSS       NCURSES_WACS('u')
20 #define WACS_SSSB       NCURSES_WACS('t')
21 #define WACS_SSBS       NCURSES_WACS('v')
22 #define WACS_BSSS       NCURSES_WACS('w')
23 #define WACS_BSBS       NCURSES_WACS('q')
24 #define WACS_SBSB       NCURSES_WACS('x')
25 #define WACS_SSSS       NCURSES_WACS('n')
26
27 #define WACS_ULCORNER   WACS_BSSB
28 #define WACS_LLCORNER   WACS_SSBB
29 #define WACS_URCORNER   WACS_BBSS
30 #define WACS_LRCORNER   WACS_SBBS
31 #define WACS_RTEE       WACS_SBSS
32 #define WACS_LTEE       WACS_SSSB
33 #define WACS_BTEE       WACS_SSBS
34 #define WACS_TTEE       WACS_BSSS
35 #define WACS_HLINE      WACS_BSBS
36 #define WACS_VLINE      WACS_SBSB
37 #define WACS_PLUS       WACS_SSSS
38
39 #define WACS_S1         NCURSES_WACS('o') /* scan line 1 */
40 #define WACS_S9         NCURSES_WACS('s') /* scan line 9 */
41 #define WACS_DIAMOND    NCURSES_WACS('`') /* diamond */
42 #define WACS_CKBOARD    NCURSES_WACS('a') /* checker board */
43 #define WACS_DEGREE     NCURSES_WACS('f') /* degree symbol */
44 #define WACS_PLMINUS    NCURSES_WACS('g') /* plus/minus */
45 #define WACS_BULLET     NCURSES_WACS('~') /* bullet */
46
47         /* Teletype 5410v1 symbols */
48 #define WACS_LARROW     NCURSES_WACS(',') /* arrow left */
49 #define WACS_RARROW     NCURSES_WACS('+') /* arrow right */
50 #define WACS_DARROW     NCURSES_WACS('.') /* arrow down */
51 #define WACS_UARROW     NCURSES_WACS('-') /* arrow up */
52 #define WACS_BOARD      NCURSES_WACS('h') /* board of squares */
53 #define WACS_LANTERN    NCURSES_WACS('i') /* lantern symbol */
54 #define WACS_BLOCK      NCURSES_WACS('0') /* solid square block */
55
56         /* ncurses extensions */
57 #define WACS_S3         NCURSES_WACS('p') /* scan line 3 */
58 #define WACS_S7         NCURSES_WACS('r') /* scan line 7 */
59 #define WACS_LEQUAL     NCURSES_WACS('y') /* less/equal */
60 #define WACS_GEQUAL     NCURSES_WACS('z') /* greater/equal */
61 #define WACS_PI         NCURSES_WACS('{') /* Pi */
62 #define WACS_NEQUAL     NCURSES_WACS('|') /* not equal */
63 #define WACS_STERLING   NCURSES_WACS('}') /* UK pound sign */
64
65         /* double lines */
66 #define WACS_BDDB       NCURSES_WACS('C')
67 #define WACS_DDBB       NCURSES_WACS('D')
68 #define WACS_BBDD       NCURSES_WACS('B')
69 #define WACS_DBBD       NCURSES_WACS('A')
70 #define WACS_DBDD       NCURSES_WACS('G')
71 #define WACS_DDDB       NCURSES_WACS('F')
72 #define WACS_DDBD       NCURSES_WACS('H')
73 #define WACS_BDDD       NCURSES_WACS('I')
74 #define WACS_BDBD       NCURSES_WACS('R')
75 #define WACS_DBDB       NCURSES_WACS('Y')
76 #define WACS_DDDD       NCURSES_WACS('E')
77
78 #define WACS_D_ULCORNER WACS_BDDB
79 #define WACS_D_LLCORNER WACS_DDBB
80 #define WACS_D_URCORNER WACS_BBDD
81 #define WACS_D_LRCORNER WACS_DBBD
82 #define WACS_D_RTEE     WACS_DBDD
83 #define WACS_D_LTEE     WACS_DDDB
84 #define WACS_D_BTEE     WACS_DDBD
85 #define WACS_D_TTEE     WACS_BDDD
86 #define WACS_D_HLINE    WACS_BDBD
87 #define WACS_D_VLINE    WACS_DBDB
88 #define WACS_D_PLUS     WACS_DDDD
89
90         /* thick lines */
91 #define WACS_BTTB       NCURSES_WACS('L')
92 #define WACS_TTBB       NCURSES_WACS('M')
93 #define WACS_BBTT       NCURSES_WACS('K')
94 #define WACS_TBBT       NCURSES_WACS('J')
95 #define WACS_TBTT       NCURSES_WACS('U')
96 #define WACS_TTTB       NCURSES_WACS('T')
97 #define WACS_TTBT       NCURSES_WACS('V')
98 #define WACS_BTTT       NCURSES_WACS('W')
99 #define WACS_BTBT       NCURSES_WACS('Q')
100 #define WACS_TBTB       NCURSES_WACS('X')
101 #define WACS_TTTT       NCURSES_WACS('N')
102
103 #define WACS_T_ULCORNER WACS_BTTB
104 #define WACS_T_LLCORNER WACS_TTBB
105 #define WACS_T_URCORNER WACS_BBTT
106 #define WACS_T_LRCORNER WACS_TBBT
107 #define WACS_T_RTEE     WACS_TBTT
108 #define WACS_T_LTEE     WACS_TTTB
109 #define WACS_T_BTEE     WACS_TTBT
110 #define WACS_T_TTEE     WACS_BTTT
111 #define WACS_T_HLINE    WACS_BTBT
112 #define WACS_T_VLINE    WACS_TBTB
113 #define WACS_T_PLUS     WACS_TTTT
114
115 /*
116  * Function prototypes for wide-character operations.
117  *
118  * "generated" comments should include ":WIDEC" to make the corresponding
119  * functions ifdef'd in lib_gen.c
120  *
121  * "implemented" comments do not need this marker.
122  */
123
124 extern NCURSES_EXPORT(int) add_wch (const cchar_t *);                   /* generated:WIDEC */
125 extern NCURSES_EXPORT(int) add_wchnstr (const cchar_t *, int);          /* generated:WIDEC */
126 extern NCURSES_EXPORT(int) add_wchstr (const cchar_t *);                /* generated:WIDEC */
127 extern NCURSES_EXPORT(int) addnwstr (const wchar_t *, int);             /* generated:WIDEC */
128 extern NCURSES_EXPORT(int) addwstr (const wchar_t *);                   /* generated:WIDEC */
129 extern NCURSES_EXPORT(int) bkgrnd (const cchar_t *);                    /* generated:WIDEC */
130 extern NCURSES_EXPORT(void) bkgrndset (const cchar_t *);                /* generated:WIDEC */
131 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 */
132 extern NCURSES_EXPORT(int) box_set (WINDOW *, const cchar_t *, const cchar_t *);        /* generated:WIDEC */
133 extern NCURSES_EXPORT(int) echo_wchar (const cchar_t *);                /* generated:WIDEC */
134 extern NCURSES_EXPORT(int) erasewchar (wchar_t*);                       /* implemented */
135 extern NCURSES_EXPORT(int) get_wch (wint_t *);                          /* generated:WIDEC */
136 extern NCURSES_EXPORT(int) get_wstr (wint_t *);                         /* generated:WIDEC */
137 extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *);                       /* generated:WIDEC */
138 extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, NCURSES_PAIRS_T*, void*);      /* implemented */
139 extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int);                   /* generated:WIDEC */
140 extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int);            /* generated:WIDEC */
141 extern NCURSES_EXPORT(int) in_wch (cchar_t *);                          /* generated:WIDEC */
142 extern NCURSES_EXPORT(int) in_wchnstr (cchar_t *, int);                 /* generated:WIDEC */
143 extern NCURSES_EXPORT(int) in_wchstr (cchar_t *);                       /* generated:WIDEC */
144 extern NCURSES_EXPORT(int) innwstr (wchar_t *, int);                    /* generated:WIDEC */
145 extern NCURSES_EXPORT(int) ins_nwstr (const wchar_t *, int);            /* generated:WIDEC */
146 extern NCURSES_EXPORT(int) ins_wch (const cchar_t *);                   /* generated:WIDEC */
147 extern NCURSES_EXPORT(int) ins_wstr (const wchar_t *);                  /* generated:WIDEC */
148 extern NCURSES_EXPORT(int) inwstr (wchar_t *);                          /* generated:WIDEC */
149 extern NCURSES_EXPORT(NCURSES_CONST char*) key_name (wchar_t);          /* implemented */
150 extern NCURSES_EXPORT(int) killwchar (wchar_t *);                       /* implemented */
151 extern NCURSES_EXPORT(int) mvadd_wch (int, int, const cchar_t *);       /* generated:WIDEC */
152 extern NCURSES_EXPORT(int) mvadd_wchnstr (int, int, const cchar_t *, int);/* generated:WIDEC */
153 extern NCURSES_EXPORT(int) mvadd_wchstr (int, int, const cchar_t *);    /* generated:WIDEC */
154 extern NCURSES_EXPORT(int) mvaddnwstr (int, int, const wchar_t *, int); /* generated:WIDEC */
155 extern NCURSES_EXPORT(int) mvaddwstr (int, int, const wchar_t *);       /* generated:WIDEC */
156 extern NCURSES_EXPORT(int) mvget_wch (int, int, wint_t *);              /* generated:WIDEC */
157 extern NCURSES_EXPORT(int) mvget_wstr (int, int, wint_t *);             /* generated:WIDEC */
158 extern NCURSES_EXPORT(int) mvgetn_wstr (int, int, wint_t *, int);       /* generated:WIDEC */
159 extern NCURSES_EXPORT(int) mvhline_set (int, int, const cchar_t *, int);        /* generated:WIDEC */
160 extern NCURSES_EXPORT(int) mvin_wch (int, int, cchar_t *);              /* generated:WIDEC */
161 extern NCURSES_EXPORT(int) mvin_wchnstr (int, int, cchar_t *, int);     /* generated:WIDEC */
162 extern NCURSES_EXPORT(int) mvin_wchstr (int, int, cchar_t *);           /* generated:WIDEC */
163 extern NCURSES_EXPORT(int) mvinnwstr (int, int, wchar_t *, int);        /* generated:WIDEC */
164 extern NCURSES_EXPORT(int) mvins_nwstr (int, int, const wchar_t *, int);        /* generated:WIDEC */
165 extern NCURSES_EXPORT(int) mvins_wch (int, int, const cchar_t *);       /* generated:WIDEC */
166 extern NCURSES_EXPORT(int) mvins_wstr (int, int, const wchar_t *);      /* generated:WIDEC */
167 extern NCURSES_EXPORT(int) mvinwstr (int, int, wchar_t *);              /* generated:WIDEC */
168 extern NCURSES_EXPORT(int) mvvline_set (int, int, const cchar_t *, int);        /* generated:WIDEC */
169 extern NCURSES_EXPORT(int) mvwadd_wch (WINDOW *, int, int, const cchar_t *);    /* generated:WIDEC */
170 extern NCURSES_EXPORT(int) mvwadd_wchnstr (WINDOW *, int, int, const cchar_t *, int); /* generated:WIDEC */
171 extern NCURSES_EXPORT(int) mvwadd_wchstr (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */
172 extern NCURSES_EXPORT(int) mvwaddnwstr (WINDOW *, int, int, const wchar_t *, int);/* generated:WIDEC */
173 extern NCURSES_EXPORT(int) mvwaddwstr (WINDOW *, int, int, const wchar_t *);    /* generated:WIDEC */
174 extern NCURSES_EXPORT(int) mvwget_wch (WINDOW *, int, int, wint_t *);   /* generated:WIDEC */
175 extern NCURSES_EXPORT(int) mvwget_wstr (WINDOW *, int, int, wint_t *);  /* generated:WIDEC */
176 extern NCURSES_EXPORT(int) mvwgetn_wstr (WINDOW *, int, int, wint_t *, int);/* generated:WIDEC */
177 extern NCURSES_EXPORT(int) mvwhline_set (WINDOW *, int, int, const cchar_t *, int);/* generated:WIDEC */
178 extern NCURSES_EXPORT(int) mvwin_wch (WINDOW *, int, int, cchar_t *);   /* generated:WIDEC */
179 extern NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW *, int,int, cchar_t *,int);    /* generated:WIDEC */
180 extern NCURSES_EXPORT(int) mvwin_wchstr (WINDOW *, int, int, cchar_t *);        /* generated:WIDEC */
181 extern NCURSES_EXPORT(int) mvwinnwstr (WINDOW *, int, int, wchar_t *, int);     /* generated:WIDEC */
182 extern NCURSES_EXPORT(int) mvwins_nwstr (WINDOW *, int,int, const wchar_t *,int); /* generated:WIDEC */
183 extern NCURSES_EXPORT(int) mvwins_wch (WINDOW *, int, int, const cchar_t *);    /* generated:WIDEC */
184 extern NCURSES_EXPORT(int) mvwins_wstr (WINDOW *, int, int, const wchar_t *);   /* generated:WIDEC */
185 extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *);           /* generated:WIDEC */
186 extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int); /* generated:WIDEC */
187 extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *);     /* implemented */
188 extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, NCURSES_PAIRS_T, const void *);  /* implemented */
189 extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int);        /* implemented */
190 extern NCURSES_EXPORT(attr_t) term_attrs (void);                        /* implemented */
191 extern NCURSES_EXPORT(int) unget_wch (const wchar_t);                   /* implemented */
192 extern NCURSES_EXPORT(int) vid_attr (attr_t, NCURSES_PAIRS_T, void *);          /* implemented */
193 extern NCURSES_EXPORT(int) vid_puts (attr_t, NCURSES_PAIRS_T, void *, NCURSES_OUTC); /* implemented */
194 extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int);            /* generated:WIDEC */
195 extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *);         /* implemented */
196 extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int); /* implemented */
197 extern NCURSES_EXPORT(int) wadd_wchstr (WINDOW *,const cchar_t *);      /* generated:WIDEC */
198 extern NCURSES_EXPORT(int) waddnwstr (WINDOW *,const wchar_t *,int);    /* implemented */
199 extern NCURSES_EXPORT(int) waddwstr (WINDOW *,const wchar_t *);         /* generated:WIDEC */
200 extern NCURSES_EXPORT(int) wbkgrnd (WINDOW *,const cchar_t *);          /* implemented */
201 extern NCURSES_EXPORT(void) wbkgrndset (WINDOW *,const cchar_t *);      /* implemented */
202 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 */
203 extern NCURSES_EXPORT(int) wecho_wchar (WINDOW *, const cchar_t *);     /* implemented */
204 extern NCURSES_EXPORT(int) wget_wch (WINDOW *, wint_t *);               /* implemented */
205 extern NCURSES_EXPORT(int) wget_wstr (WINDOW *, wint_t *);              /* generated:WIDEC */
206 extern NCURSES_EXPORT(int) wgetbkgrnd (WINDOW *, cchar_t *);            /* generated:WIDEC */
207 extern NCURSES_EXPORT(int) wgetn_wstr (WINDOW *, wint_t *, int);        /* implemented */
208 extern NCURSES_EXPORT(int) whline_set (WINDOW *, const cchar_t *, int); /* implemented */
209 extern NCURSES_EXPORT(int) win_wch (WINDOW *, cchar_t *);               /* implemented */
210 extern NCURSES_EXPORT(int) win_wchnstr (WINDOW *, cchar_t *, int);      /* implemented */
211 extern NCURSES_EXPORT(int) win_wchstr (WINDOW *, cchar_t *);            /* generated:WIDEC */
212 extern NCURSES_EXPORT(int) winnwstr (WINDOW *, wchar_t *, int);         /* implemented */
213 extern NCURSES_EXPORT(int) wins_nwstr (WINDOW *, const wchar_t *, int); /* implemented */
214 extern NCURSES_EXPORT(int) wins_wch (WINDOW *, const cchar_t *);        /* implemented */
215 extern NCURSES_EXPORT(int) wins_wstr (WINDOW *, const wchar_t *);       /* generated:WIDEC */
216 extern NCURSES_EXPORT(int) winwstr (WINDOW *, wchar_t *);               /* implemented */
217 extern NCURSES_EXPORT(wchar_t*) wunctrl (cchar_t *);                    /* implemented */
218 extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int); /* implemented */
219
220 #if NCURSES_SP_FUNCS
221 extern NCURSES_EXPORT(attr_t) NCURSES_SP_NAME(term_attrs) (SCREEN*);            /* implemented:SP_FUNC */
222 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(unget_wch) (SCREEN*, const wchar_t); /* implemented:SP_FUNC */
223 extern NCURSES_EXPORT(wchar_t*) NCURSES_SP_NAME(wunctrl) (SCREEN*, cchar_t *);  /* implemented:SP_FUNC */
224 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_attr) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *);        /* implemented:SP_FUNC */
225 extern NCURSES_EXPORT(int) NCURSES_SP_NAME(vid_puts) (SCREEN*, attr_t, NCURSES_PAIRS_T, void *, NCURSES_SP_OUTC);       /* implemented:SP_FUNC */
226 #endif
227
228 #ifndef NCURSES_NOMACROS
229
230 /*
231  * XSI curses macros for XPG4 conformance.
232  */
233 #define add_wch(c)                      wadd_wch(stdscr,(c))
234 #define add_wchnstr(str,n)              wadd_wchnstr(stdscr,(str),(n))
235 #define add_wchstr(str)                 wadd_wchstr(stdscr,(str))
236 #define addnwstr(wstr,n)                waddnwstr(stdscr,(wstr),(n))
237 #define addwstr(wstr)                   waddwstr(stdscr,(wstr))
238 #define bkgrnd(c)                       wbkgrnd(stdscr,(c))
239 #define bkgrndset(c)                    wbkgrndset(stdscr,(c))
240 #define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,(l),(r),(t),(b),tl,tr,bl,br)
241 #define box_set(w,v,h)                  wborder_set((w),(v),(v),(h),(h),0,0,0,0)
242 #define echo_wchar(c)                   wecho_wchar(stdscr,(c))
243 #define get_wch(c)                      wget_wch(stdscr,(c))
244 #define get_wstr(t)                     wget_wstr(stdscr,(t))
245 #define getbkgrnd(wch)                  wgetbkgrnd(stdscr,(wch))
246 #define getn_wstr(t,n)                  wgetn_wstr(stdscr,(t),(n))
247 #define hline_set(c,n)                  whline_set(stdscr,(c),(n))
248 #define in_wch(c)                       win_wch(stdscr,(c))
249 #define in_wchnstr(c,n)                 win_wchnstr(stdscr,(c),(n))
250 #define in_wchstr(c)                    win_wchstr(stdscr,(c))
251 #define innwstr(c,n)                    winnwstr(stdscr,(c),(n))
252 #define ins_nwstr(t,n)                  wins_nwstr(stdscr,(t),(n))
253 #define ins_wch(c)                      wins_wch(stdscr,(c))
254 #define ins_wstr(t)                     wins_wstr(stdscr,(t))
255 #define inwstr(c)                       winwstr(stdscr,(c))
256 #define vline_set(c,n)                  wvline_set(stdscr,(c),(n))
257 #define wadd_wchstr(win,str)            wadd_wchnstr((win),(str),-1)
258 #define waddwstr(win,wstr)              waddnwstr((win),(wstr),-1)
259 #define wget_wstr(w,t)                  wgetn_wstr((w),(t),-1)
260 #define win_wchstr(w,c)                 win_wchnstr((w),(c),-1)
261 #define wins_wstr(w,t)                  wins_nwstr((w),(t),-1)
262
263 #if !NCURSES_OPAQUE
264 #define wgetbkgrnd(win,wch)             (NCURSES_OK_ADDR(wch) ? ((win) ? (*(wch) = (win)->_bkgrnd) : *(wch), OK) : ERR)
265 #endif
266
267 #define mvadd_wch(y,x,c)                mvwadd_wch(stdscr,(y),(x),(c))
268 #define mvadd_wchnstr(y,x,s,n)          mvwadd_wchnstr(stdscr,(y),(x),(s),(n))
269 #define mvadd_wchstr(y,x,s)             mvwadd_wchstr(stdscr,(y),(x),(s))
270 #define mvaddnwstr(y,x,wstr,n)          mvwaddnwstr(stdscr,(y),(x),(wstr),(n))
271 #define mvaddwstr(y,x,wstr)             mvwaddwstr(stdscr,(y),(x),(wstr))
272 #define mvget_wch(y,x,c)                mvwget_wch(stdscr,(y),(x),(c))
273 #define mvget_wstr(y,x,t)               mvwget_wstr(stdscr,(y),(x),(t))
274 #define mvgetn_wstr(y,x,t,n)            mvwgetn_wstr(stdscr,(y),(x),(t),(n))
275 #define mvhline_set(y,x,c,n)            mvwhline_set(stdscr,(y),(x),(c),(n))
276 #define mvin_wch(y,x,c)                 mvwin_wch(stdscr,(y),(x),(c))
277 #define mvin_wchnstr(y,x,c,n)           mvwin_wchnstr(stdscr,(y),(x),(c),(n))
278 #define mvin_wchstr(y,x,c)              mvwin_wchstr(stdscr,(y),(x),(c))
279 #define mvinnwstr(y,x,c,n)              mvwinnwstr(stdscr,(y),(x),(c),(n))
280 #define mvins_nwstr(y,x,t,n)            mvwins_nwstr(stdscr,(y),(x),(t),(n))
281 #define mvins_wch(y,x,c)                mvwins_wch(stdscr,(y),(x),(c))
282 #define mvins_wstr(y,x,t)               mvwins_wstr(stdscr,(y),(x),(t))
283 #define mvinwstr(y,x,c)                 mvwinwstr(stdscr,(y),(x),(c))
284 #define mvvline_set(y,x,c,n)            mvwvline_set(stdscr,(y),(x),(c),(n))
285
286 #define mvwadd_wch(win,y,x,c)           (wmove(win,(y),(x)) == ERR ? ERR : wadd_wch((win),(c)))
287 #define mvwadd_wchnstr(win,y,x,s,n)     (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchnstr((win),(s),(n)))
288 #define mvwadd_wchstr(win,y,x,s)        (wmove(win,(y),(x)) == ERR ? ERR : wadd_wchstr((win),(s)))
289 #define mvwaddnwstr(win,y,x,wstr,n)     (wmove(win,(y),(x)) == ERR ? ERR : waddnwstr((win),(wstr),(n)))
290 #define mvwaddwstr(win,y,x,wstr)        (wmove(win,(y),(x)) == ERR ? ERR : waddwstr((win),(wstr)))
291 #define mvwget_wch(win,y,x,c)           (wmove(win,(y),(x)) == ERR ? ERR : wget_wch((win),(c)))
292 #define mvwget_wstr(win,y,x,t)          (wmove(win,(y),(x)) == ERR ? ERR : wget_wstr((win),(t)))
293 #define mvwgetn_wstr(win,y,x,t,n)       (wmove(win,(y),(x)) == ERR ? ERR : wgetn_wstr((win),(t),(n)))
294 #define mvwhline_set(win,y,x,c,n)       (wmove(win,(y),(x)) == ERR ? ERR : whline_set((win),(c),(n)))
295 #define mvwin_wch(win,y,x,c)            (wmove(win,(y),(x)) == ERR ? ERR : win_wch((win),(c)))
296 #define mvwin_wchnstr(win,y,x,c,n)      (wmove(win,(y),(x)) == ERR ? ERR : win_wchnstr((win),(c),(n)))
297 #define mvwin_wchstr(win,y,x,c)         (wmove(win,(y),(x)) == ERR ? ERR : win_wchstr((win),(c)))
298 #define mvwinnwstr(win,y,x,c,n)         (wmove(win,(y),(x)) == ERR ? ERR : winnwstr((win),(c),(n)))
299 #define mvwins_nwstr(win,y,x,t,n)       (wmove(win,(y),(x)) == ERR ? ERR : wins_nwstr((win),(t),(n)))
300 #define mvwins_wch(win,y,x,c)           (wmove(win,(y),(x)) == ERR ? ERR : wins_wch((win),(c)))
301 #define mvwins_wstr(win,y,x,t)          (wmove(win,(y),(x)) == ERR ? ERR : wins_wstr((win),(t)))
302 #define mvwinwstr(win,y,x,c)            (wmove(win,(y),(x)) == ERR ? ERR : winwstr((win),(c)))
303 #define mvwvline_set(win,y,x,c,n)       (wmove(win,(y),(x)) == ERR ? ERR : wvline_set((win),(c),(n)))
304
305 #endif /* NCURSES_NOMACROS */
306
307 #if defined(TRACE) || defined(NCURSES_TEST)
308 extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
309 extern NCURSES_EXPORT(const char *) _nc_viswibuf(const wint_t *);
310 #endif
311
312 #endif /* NCURSES_WIDECHAR */