1 /*	$NetBSD: curses_commands.c,v 1.16 2021/02/12 14:05:57 rillig Exp $	*/
2 
3 /*-
4  * Copyright 2009 Brett Lymn <blymn@NetBSD.org>
5  *
6  * All rights reserved.
7  *
8  * This code has been donated to The NetBSD Foundation by the Author.
9  *
10  * Redistribution and use in source and binary forms, with or without
11  * modification, are permitted provided that the following conditions
12  * are met:
13  * 1. Redistributions of source code must retain the above copyright
14  *    notice, this list of conditions and the following disclaimer.
15  * 2. The name of the author may not be used to endorse or promote products
16  *    derived from this software without specific prior written permission
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  *
29  *
30  */
31 
32 #include <curses.h>
33 #include <stdio.h>
34 #include <stdlib.h>
35 #include <string.h>
36 #include <termios.h>
37 #include <stdarg.h>
38 
39 #include "slave.h"
40 #include "curses_commands.h"
41 
42 int
43 set_int(char *arg, int *x)
44 {
45 	if (sscanf(arg, "%d", x) == 0) {
46 		report_count(1);
47 		report_error("BAD ARGUMENT");
48 		return -1;
49 	}
50 
51 	return 0;
52 }
53 
54 int
55 set_uint(char *arg, unsigned int *x)
56 {
57 	if (sscanf(arg, "%u", x) == 0) {
58 		report_count(1);
59 		report_error("BAD ARGUMENT");
60 		return -1;
61 	}
62 
63 	return 0;
64 }
65 
66 int
67 set_short(char *arg, short *x)
68 {
69 	if (sscanf(arg, "%hd", x) == 0) {
70 		report_count(1);
71 		report_error("BAD ARGUMENT");
72 		return -1;
73 	}
74 
75 	return 0;
76 }
77 
78 int
79 set_win(char *arg, WINDOW **x)
80 {
81 	if (sscanf(arg, "%p", x) == 0) {
82 		report_count(1);
83 		report_error("BAD ARGUMENT");
84 		return -1;
85 	}
86 
87 	return 0;
88 }
89 
90 int
91 set_scrn(char *arg, SCREEN **x)
92 {
93 	if (sscanf(arg, "%p", x) == 0) {
94 		report_count(1);
95 		report_error("BAD ARGUMENT");
96 		return -1;
97 	}
98 
99 	return 0;
100 }
101 
102 #define ARGC(n) \
103 	if (check_arg_count(nargs, n) == 1)				\
104 		return
105 
106 #define ARG_SHORT(i, arg) \
107 	short arg;							\
108 	if (set_short(args[i], &arg) != 0)				\
109 		return
110 
111 #define ARG_INT(i, arg) \
112 	int arg;							\
113 	if (set_int(args[i], &arg) != 0)				\
114 		return
115 
116 #define ARG_CHTYPE_STRING(i, arg) \
117 	chtype *arg = (chtype *)args[i]
118 
119 #define ARG_CCHAR_STRING(i, arg) \
120 	cchar_t *arg = (cchar_t *)args[i]
121 
122 #define ARG_WCHAR_STRING(i, arg) \
123 	wchar_t *arg = (wchar_t *)args[i]
124 
125 #define ARG_WINDOW(i, arg) \
126 	WINDOW *arg;							\
127 	if (set_win(args[i], &arg) != 0)				\
128 		return
129 
130 void
131 cmd_DRAIN(int nargs, char **args)
132 {
133 	ARGC(1);
134 	ARG_WINDOW(0, win);
135 
136 	while (wgetch(win) != ERR);
137 	report_count(1);
138 	report_return(OK);
139 }
140 
141 void
142 cmd_addbytes(int nargs, char **args)
143 {
144 	ARGC(2);
145 	/* TODO: arg 0 */
146 	ARG_INT(1, count);
147 
148 	report_count(1);
149 	report_return(addbytes(args[0], count));
150 }
151 
152 
153 void
154 cmd_addch(int nargs, char **args)
155 {
156 	ARGC(1);
157 	ARG_CHTYPE_STRING(0, ch);
158 
159 	report_count(1);
160 	report_return(addch(ch[0]));
161 }
162 
163 
164 void
165 cmd_addchnstr(int nargs, char **args)
166 {
167 	ARGC(2);
168 	/* TODO: arg 0 */
169 	ARG_INT(1, count);
170 
171 	report_count(1);
172 	report_return(addchnstr((chtype *) args[0], count));
173 }
174 
175 
176 void
177 cmd_addchstr(int nargs, char **args)
178 {
179 	ARGC(1);
180 	/* TODO: arg 0 */
181 
182 	report_count(1);
183 	report_return(addchstr((chtype *) args[0]));
184 }
185 
186 
187 void
188 cmd_addnstr(int nargs, char **args)
189 {
190 	ARGC(2);
191 	/* TODO: arg 0 */
192 	ARG_INT(1, count);
193 
194 	report_count(1);
195 	report_return(addnstr(args[0], count));
196 }
197 
198 
199 void
200 cmd_addstr(int nargs, char **args)
201 {
202 	ARGC(1);
203 	/* TODO: arg 0 */
204 
205 	report_count(1);
206 	report_return(addstr(args[0]));
207 }
208 
209 
210 void
211 cmd_attr_get(int nargs, char **args)
212 {
213 	attr_t attrs;
214 	short colours;
215 	int retval;
216 
217 	ARGC(0);
218 
219 	retval = attr_get(&attrs, &colours, NULL);
220 
221 	report_count(3);
222 	report_return(retval);
223 	report_int(attrs);
224 	report_int(colours);
225 }
226 
227 
228 void
229 cmd_attr_off(int nargs, char **args)
230 {
231 	ARGC(1);
232 	ARG_INT(0, attrib);
233 
234 	report_count(1);
235 	report_return(attr_off(attrib, NULL));
236 }
237 
238 
239 void
240 cmd_attr_on(int nargs, char **args)
241 {
242 	ARGC(1);
243 	ARG_INT(0, attrib);
244 
245 	report_count(1);
246 	report_return(attr_on(attrib, NULL));
247 }
248 
249 
250 void
251 cmd_attr_set(int nargs, char **args)
252 {
253 	ARGC(2);
254 	ARG_INT(0, attrib);
255 	ARG_SHORT(1, pair);
256 
257 	report_count(1);
258 	report_return(attr_set(attrib, pair, NULL));
259 }
260 
261 
262 void
263 cmd_attroff(int nargs, char **args)
264 {
265 	ARGC(1);
266 	ARG_INT(0, attrib);
267 
268 	report_count(1);
269 	report_return(attroff(attrib));
270 }
271 
272 
273 void
274 cmd_attron(int nargs, char **args)
275 {
276 	ARGC(1);
277 	ARG_INT(0, attrib);
278 
279 	report_count(1);
280 	report_return(attron(attrib));
281 }
282 
283 
284 void
285 cmd_attrset(int nargs, char **args)
286 {
287 	ARGC(1);
288 	ARG_INT(0, attrib);
289 
290 	report_count(1);
291 	report_return(attrset(attrib));
292 }
293 
294 
295 void
296 cmd_bkgd(int nargs, char **args)
297 {
298 	ARGC(1);
299 	ARG_CHTYPE_STRING(0, ch);
300 
301 	report_count(1);
302 	report_return(bkgd(ch[0]));
303 }
304 
305 
306 void
307 cmd_bkgdset(int nargs, char **args)
308 {
309 	ARGC(1);
310 	ARG_CHTYPE_STRING(0, ch);
311 
312 	bkgdset(ch[0]);		/* returns void */
313 	report_count(1);
314 	report_return(OK);
315 }
316 
317 
318 void
319 cmd_border(int nargs, char **args)
320 {
321 	ARGC(8);
322 	ARG_INT(0, ls);
323 	ARG_INT(1, rs);
324 	ARG_INT(2, ts);
325 	ARG_INT(3, bs);
326 	ARG_INT(4, tl);
327 	ARG_INT(5, tr);
328 	ARG_INT(6, bl);
329 	ARG_INT(7, br);
330 
331 	report_count(1);
332 	report_return(border(ls, rs, ts, bs, tl, tr, bl, br));
333 }
334 
335 
336 void
337 cmd_clear(int nargs, char **args)
338 {
339 	ARGC(0);
340 
341 	report_count(1);
342 	report_return(clear());
343 }
344 
345 
346 void
347 cmd_clrtobot(int nargs, char **args)
348 {
349 	ARGC(0);
350 
351 	report_count(1);
352 	report_return(clrtobot());
353 }
354 
355 
356 void
357 cmd_clrtoeol(int nargs, char **args)
358 {
359 	ARGC(0);
360 
361 	report_count(1);
362 	report_return(clrtoeol());
363 }
364 
365 
366 void
367 cmd_color_set(int nargs, char **args)
368 {
369 	ARGC(2);
370 	ARG_SHORT(0, colour_pair);
371 	/* TODO: arg 1 */
372 
373 	report_count(1);
374 	report_return(color_set(colour_pair, NULL));
375 }
376 
377 
378 void
379 cmd_delch(int nargs, char **args)
380 {
381 	ARGC(0);
382 
383 	report_count(1);
384 	report_return(delch());
385 }
386 
387 
388 void
389 cmd_deleteln(int nargs, char **args)
390 {
391 	ARGC(0);
392 
393 	report_count(1);
394 	report_return(deleteln());
395 }
396 
397 
398 void
399 cmd_echochar(int nargs, char **args)
400 {
401 	ARGC(1);
402 	ARG_CHTYPE_STRING(0, ch);
403 
404 	/* XXX causes refresh */
405 	report_count(1);
406 	report_return(echochar(ch[0]));
407 }
408 
409 
410 void
411 cmd_erase(int nargs, char **args)
412 {
413 	ARGC(0);
414 
415 	report_count(1);
416 	report_return(erase());
417 }
418 
419 
420 void
421 cmd_getch(int nargs, char **args)
422 {
423 	ARGC(0);
424 
425 	/* XXX causes refresh */
426 	report_count(1);
427 	report_int(getch());
428 }
429 
430 
431 void
432 cmd_getnstr(int nargs, char **args)
433 {
434 	char *string;
435 
436 	ARGC(1);
437 	ARG_INT(0, limit);
438 
439 	if ((string = malloc(limit + 1)) == NULL) {
440 		report_count(1);
441 		report_error("MALLOC_FAILED");
442 		return;
443 	}
444 
445 	report_count(2);
446 	report_return(getnstr(string, limit));
447 	report_status(string);
448 	free(string);
449 }
450 
451 
452 void
453 cmd_getstr(int nargs, char **args)
454 {
455 	char string[256];
456 
457 	ARGC(0);
458 
459 	report_count(2);
460 	report_return(getstr(string));
461 	report_status(string);
462 }
463 
464 
465 void
466 cmd_inch(int nargs, char **args)
467 {
468 	ARGC(0);
469 
470 	report_count(1);
471 	report_byte(inch());
472 }
473 
474 
475 void
476 cmd_inchnstr(int nargs, char **args)
477 {
478 	chtype *string;
479 
480 	ARGC(1);
481 	ARG_INT(0, limit);
482 
483 	if ((string = malloc((limit + 1) * sizeof(chtype))) == NULL) {
484 		report_count(1);
485 		report_error("MALLOC_FAILED");
486 		return;
487 	}
488 
489 	report_count(2);
490 	report_return(inchnstr(string, limit));
491 	report_nstr(string);
492 	free(string);
493 }
494 
495 
496 void
497 cmd_inchstr(int nargs, char **args)
498 {
499 	chtype string[256];
500 
501 	ARGC(0);
502 
503 	report_count(2);
504 	report_return(inchstr(string));
505 	report_nstr(string);
506 }
507 
508 
509 void
510 cmd_innstr(int nargs, char **args)
511 {
512 	char *string;
513 
514 	ARGC(1);
515 	ARG_INT(0, limit);
516 
517 	if ((string = malloc(limit + 1)) == NULL) {
518 		report_count(1);
519 		report_error("MALLOC_FAILED");
520 		return;
521 	}
522 
523 	report_count(2);
524 	report_int(innstr(string, limit));
525 	report_status(string);
526 	free(string);
527 }
528 
529 
530 void
531 cmd_insch(int nargs, char **args)
532 {
533 	ARGC(1);
534 	ARG_CHTYPE_STRING(0, ch);
535 
536 	report_count(1);
537 	report_return(insch(ch[0]));
538 }
539 
540 
541 void
542 cmd_insdelln(int nargs, char **args)
543 {
544 	ARGC(1);
545 	ARG_INT(0, nlines);
546 
547 	report_count(1);
548 	report_return(insdelln(nlines));
549 }
550 
551 
552 void
553 cmd_insertln(int nargs, char **args)
554 {
555 	ARGC(0);
556 
557 	report_count(1);
558 	report_return(insertln());
559 }
560 
561 
562 void
563 cmd_instr(int nargs, char **args)
564 {
565 	char string[256];
566 
567 	ARGC(0);
568 
569 	report_count(2);
570 	report_return(instr(string));
571 	report_status(string);
572 }
573 
574 
575 void
576 cmd_move(int nargs, char **args)
577 {
578 	ARGC(2);
579 	ARG_INT(0, y);
580 	ARG_INT(1, x);
581 
582 	report_count(1);
583 	report_return(move(y, x));
584 }
585 
586 
587 void
588 cmd_refresh(int nargs, char **args)
589 {
590 	ARGC(0);
591 
592 	report_count(1);
593 	report_return(refresh());
594 }
595 
596 
597 void
598 cmd_scrl(int nargs, char **args)
599 {
600 	ARGC(1);
601 	ARG_INT(0, nlines);
602 
603 	report_count(1);
604 	report_return(scrl(nlines));
605 }
606 
607 
608 void
609 cmd_setscrreg(int nargs, char **args)
610 {
611 	ARGC(2);
612 	ARG_INT(0, top);
613 	ARG_INT(1, bottom);
614 
615 	report_count(1);
616 	report_return(setscrreg(top, bottom));
617 }
618 
619 
620 void
621 cmd_standend(int nargs, char **args)
622 {
623 	ARGC(0);
624 
625 	report_count(1);
626 	report_int(standend());
627 }
628 
629 
630 void
631 cmd_standout(int nargs, char **args)
632 {
633 	ARGC(0);
634 
635 	report_count(1);
636 	report_int(standout());
637 }
638 
639 
640 void
641 cmd_timeout(int nargs, char **args)
642 {
643 	ARGC(1);
644 	ARG_INT(0, tval);
645 
646 	timeout(tval);		/* void return */
647 	report_count(1);
648 	report_return(OK);
649 }
650 
651 
652 void
653 cmd_underscore(int nargs, char **args)
654 {
655 	ARGC(0);
656 
657 	report_count(1);
658 	report_int(underscore());
659 }
660 
661 
662 void
663 cmd_underend(int nargs, char **args)
664 {
665 	ARGC(0);
666 
667 	report_count(1);
668 	report_int(underend());
669 }
670 
671 
672 void
673 cmd_waddbytes(int nargs, char **args)
674 {
675 	ARGC(3);
676 	ARG_WINDOW(0, win);
677 	/* TODO: arg 1 */
678 	ARG_INT(2, count);
679 
680 	report_count(1);
681 	report_return(waddbytes(win, args[1], count));
682 }
683 
684 
685 void
686 cmd_waddstr(int nargs, char **args)
687 {
688 	ARGC(2);
689 	ARG_WINDOW(0, win);
690 	/* TODO: arg 1 */
691 
692 	report_count(1);
693 	report_return(waddstr(win, args[1]));
694 }
695 
696 
697 void
698 cmd_mvaddbytes(int nargs, char **args)
699 {
700 	ARGC(4);
701 	ARG_INT(0, y);
702 	ARG_INT(1, x);
703 	/* TODO: arg 2 */
704 	ARG_INT(3, count);
705 
706 	report_count(1);
707 	report_return(mvaddbytes(y, x, args[2], count));
708 }
709 
710 
711 void
712 cmd_mvaddch(int nargs, char **args)
713 {
714 	ARGC(3);
715 	ARG_INT(0, y);
716 	ARG_INT(1, x);
717 	ARG_CHTYPE_STRING(2, ch);
718 
719 	report_count(1);
720 	report_return(mvaddch(y, x, ch[0]));
721 }
722 
723 
724 void
725 cmd_mvaddchnstr(int nargs, char **args)
726 {
727 	ARGC(4);
728 	ARG_INT(0, y);
729 	ARG_INT(1, x);
730 	/* TODO: arg 2 */
731 	ARG_INT(3, count);
732 
733 	report_count(1);
734 	report_return(mvaddchnstr(y, x, (chtype *) args[2], count));
735 }
736 
737 
738 void
739 cmd_mvaddchstr(int nargs, char **args)
740 {
741 	ARGC(3);
742 	ARG_INT(0, y);
743 	ARG_INT(1, x);
744 	/* TODO: arg 2 */
745 
746 	report_count(1);
747 	report_return(mvaddchstr(y, x, (chtype *) args[2]));
748 }
749 
750 
751 void
752 cmd_mvaddnstr(int nargs, char **args)
753 {
754 	ARGC(4);
755 	ARG_INT(0, y);
756 	ARG_INT(1, x);
757 	/* TODO: arg 2 */
758 	ARG_INT(3, count);
759 
760 	report_count(1);
761 	report_return(mvaddnstr(y, x, args[2], count));
762 }
763 
764 
765 void
766 cmd_mvaddstr(int nargs, char **args)
767 {
768 	ARGC(3);
769 	ARG_INT(0, y);
770 	ARG_INT(1, x);
771 	/* TODO: arg 2 */
772 
773 	report_count(1);
774 	report_return(mvaddstr(y, x, args[2]));
775 }
776 
777 
778 void
779 cmd_mvdelch(int nargs, char **args)
780 {
781 	ARGC(2);
782 	ARG_INT(0, y);
783 	ARG_INT(1, x);
784 
785 	report_count(1);
786 	report_return(mvdelch(y, x));
787 }
788 
789 
790 void
791 cmd_mvgetch(int nargs, char **args)
792 {
793 	ARGC(2);
794 	ARG_INT(0, y);
795 	ARG_INT(1, x);
796 
797 	report_count(1);
798 	report_int(mvgetch(y, x));
799 }
800 
801 
802 void
803 cmd_mvgetnstr(int nargs, char **args)
804 {
805 	char *string;
806 
807 	ARGC(3);
808 	ARG_INT(0, y);
809 	ARG_INT(1, x);
810 	ARG_INT(2, count);
811 
812 	if ((string = malloc(count + 1)) == NULL) {
813 		report_count(1);
814 		report_error("MALLOC_FAILED");
815 		return;
816 	}
817 
818 	report_count(2);
819 	report_return(mvgetnstr(y, x, string, count));
820 	report_status(string);
821 	free(string);
822 }
823 
824 
825 void
826 cmd_mvgetstr(int nargs, char **args)
827 {
828 	char string[256];
829 
830 	ARGC(2);
831 	ARG_INT(0, y);
832 	ARG_INT(1, x);
833 
834 	report_count(2);
835 	report_return(mvgetstr(y, x, string));
836 	report_status(string);
837 }
838 
839 
840 void
841 cmd_mvinch(int nargs, char **args)
842 {
843 	ARGC(2);
844 	ARG_INT(0, y);
845 	ARG_INT(1, x);
846 
847 	report_count(1);
848 	report_byte(mvinch(y, x));
849 }
850 
851 
852 void
853 cmd_mvinchnstr(int nargs, char **args)
854 {
855 	chtype *string;
856 
857 	ARGC(3);
858 	ARG_INT(0, y);
859 	ARG_INT(1, x);
860 	ARG_INT(2, count);
861 
862 	if ((string = malloc((count + 1) * sizeof(chtype))) == NULL) {
863 		report_count(1);
864 		report_error("MALLOC_FAILED");
865 		return;
866 	}
867 
868 	report_count(2);
869 	report_return(mvinchnstr(y, x, string, count));
870 	report_nstr(string);
871 	free(string);
872 }
873 
874 
875 void
876 cmd_mvinchstr(int nargs, char **args)
877 {
878 	chtype string[256];
879 
880 	ARGC(2);
881 	ARG_INT(0, y);
882 	ARG_INT(1, x);
883 
884 	report_count(2);
885 	report_return(mvinchstr(y, x, string));
886 	report_nstr(string);
887 }
888 
889 
890 void
891 cmd_mvinnstr(int nargs, char **args)
892 {
893 	char *string;
894 
895 	ARGC(3);
896 	ARG_INT(0, y);
897 	ARG_INT(1, x);
898 	ARG_INT(2, count);
899 
900 	if ((string = malloc(count + 1)) == NULL) {
901 		report_count(1);
902 		report_error("MALLOC_FAILED");
903 		return;
904 	}
905 
906 	report_count(2);
907 	report_int(mvinnstr(y, x, string, count));
908 	report_status(string);
909 	free(string);
910 }
911 
912 
913 void
914 cmd_mvinsch(int nargs, char **args)
915 {
916 	ARGC(3);
917 	ARG_INT(0, y);
918 	ARG_INT(1, x);
919 	ARG_CHTYPE_STRING(2, ch);
920 
921 	report_count(1);
922 	report_return(mvinsch(y, x, ch[0]));
923 }
924 
925 
926 void
927 cmd_mvinstr(int nargs, char **args)
928 {
929 	char string[256];
930 
931 	ARGC(2);
932 	ARG_INT(0, y);
933 	ARG_INT(1, x);
934 
935 	report_count(2);
936 	report_return(mvinstr(y, x, string));
937 	report_status(string);
938 }
939 
940 
941 
942 void
943 cmd_mvwaddbytes(int nargs, char **args)
944 {
945 	ARGC(5);
946 	ARG_WINDOW(0, win);
947 	ARG_INT(1, y);
948 	ARG_INT(2, x);
949 	/* TODO: arg 3 */
950 	ARG_INT(4, count);
951 
952 	report_count(1);
953 	report_return(mvwaddbytes(win, y, x, args[3], count));
954 }
955 
956 
957 void
958 cmd_mvwaddch(int nargs, char **args)
959 {
960 	ARGC(4);
961 	ARG_WINDOW(0, win);
962 	ARG_INT(1, y);
963 	ARG_INT(2, x);
964 	ARG_CHTYPE_STRING(3, ch);
965 
966 	report_count(1);
967 	report_return(mvwaddch(win, y, x, ch[0]));
968 }
969 
970 
971 void
972 cmd_mvwaddchnstr(int nargs, char **args)
973 {
974 	ARGC(5);
975 	ARG_WINDOW(0, win);
976 	ARG_INT(1, y);
977 	ARG_INT(2, x);
978 	ARG_INT(4, count);
979 
980 	report_count(1);
981 	report_return(mvwaddchnstr(win, y, x, (chtype *) args[3], count));
982 }
983 
984 
985 void
986 cmd_mvwaddchstr(int nargs, char **args)
987 {
988 	ARGC(4);
989 	ARG_WINDOW(0, win);
990 	ARG_INT(1, y);
991 	ARG_INT(2, x);
992 
993 	report_count(1);
994 	report_return(mvwaddchstr(win, y, x, (chtype *) args[3]));
995 }
996 
997 
998 void
999 cmd_mvwaddnstr(int nargs, char **args)
1000 {
1001 	ARGC(5);
1002 	ARG_WINDOW(0, win);
1003 	ARG_INT(1, y);
1004 	ARG_INT(2, x);
1005 	/* TODO: arg 3 */
1006 	ARG_INT(4, count);
1007 
1008 	report_count(1);
1009 	report_return(mvwaddnstr(win, y, x, args[3], count));
1010 }
1011 
1012 
1013 void
1014 cmd_mvwaddstr(int nargs, char **args)
1015 {
1016 	ARGC(4);
1017 	ARG_WINDOW(0, win);
1018 	ARG_INT(1, y);
1019 	ARG_INT(2, x);
1020 
1021 	report_count(1);
1022 	report_return(mvwaddstr(win, y, x, args[3]));
1023 }
1024 
1025 
1026 void
1027 cmd_mvwdelch(int nargs, char **args)
1028 {
1029 	ARGC(3);
1030 	ARG_WINDOW(0, win);
1031 	ARG_INT(1, y);
1032 	ARG_INT(2, x);
1033 
1034 	report_count(1);
1035 	report_return(mvwdelch(win, y, x));
1036 }
1037 
1038 
1039 void
1040 cmd_mvwgetch(int nargs, char **args)
1041 {
1042 	ARGC(3);
1043 	ARG_WINDOW(0, win);
1044 	ARG_INT(1, y);
1045 	ARG_INT(2, x);
1046 
1047 	/* XXX - implicit refresh */
1048 	report_count(1);
1049 	report_int(mvwgetch(win, y, x));
1050 }
1051 
1052 
1053 void
1054 cmd_mvwgetnstr(int nargs, char **args)
1055 {
1056 	char *string;
1057 
1058 	ARGC(4);
1059 	ARG_WINDOW(0, win);
1060 	ARG_INT(1, y);
1061 	ARG_INT(2, x);
1062 	ARG_INT(3, count);
1063 
1064 	if ((string = malloc(count + 1)) == NULL) {
1065 		report_count(1);
1066 		report_error("MALLOC_FAILED");
1067 		return;
1068 	}
1069 
1070 	report_count(2);
1071 	report_return(mvwgetnstr(win, y, x, string, count));
1072 	report_status(string);
1073 	free(string);
1074 }
1075 
1076 
1077 void
1078 cmd_mvwgetstr(int nargs, char **args)
1079 {
1080 	char string[256];
1081 
1082 	ARGC(3);
1083 	ARG_WINDOW(0, win);
1084 	ARG_INT(1, y);
1085 	ARG_INT(2, x);
1086 
1087 	report_count(2);
1088 	report_return(mvwgetstr(win, y, x, string));
1089 	report_status(string);
1090 }
1091 
1092 
1093 void
1094 cmd_mvwinch(int nargs, char **args)
1095 {
1096 	ARGC(3);
1097 	ARG_WINDOW(0, win);
1098 	ARG_INT(1, y);
1099 	ARG_INT(2, x);
1100 
1101 	report_count(1);
1102 	report_byte(mvwinch(win, y, x));
1103 }
1104 
1105 
1106 void
1107 cmd_mvwinsch(int nargs, char **args)
1108 {
1109 	ARGC(4);
1110 	ARG_WINDOW(0, win);
1111 	ARG_INT(1, y);
1112 	ARG_INT(2, x);
1113 	ARG_CHTYPE_STRING(3, ch);
1114 
1115 	report_count(1);
1116 	report_return(mvwinsch(win, y, x, ch[0]));
1117 }
1118 
1119 
1120 void
1121 cmd_assume_default_colors(int nargs, char **args)
1122 {
1123 	ARGC(2);
1124 	ARG_SHORT(0, fore);
1125 	ARG_SHORT(1, back);
1126 
1127 	report_count(1);
1128 	report_return(assume_default_colors(fore, back));
1129 }
1130 
1131 
1132 void
1133 cmd_baudrate(int nargs, char **args)
1134 {
1135 	ARGC(0);
1136 
1137 	report_count(1);
1138 	report_int(baudrate());
1139 }
1140 
1141 
1142 void
1143 cmd_beep(int nargs, char **args)
1144 {
1145 	ARGC(0);
1146 
1147 	report_count(1);
1148 	report_return(beep());
1149 }
1150 
1151 
1152 void
1153 cmd_box(int nargs, char **args)
1154 {
1155 	chtype *vertical, *horizontal;
1156 
1157 	ARGC(3);
1158 	ARG_WINDOW(0, win);
1159 
1160 	vertical = (chtype *) args[1];
1161 	horizontal = (chtype *) args[2];
1162 
1163 	report_count(1);
1164 	report_return(box(win, vertical[0], horizontal[0]));
1165 }
1166 
1167 
1168 void
1169 cmd_can_change_color(int nargs, char **args)
1170 {
1171 	ARGC(0);
1172 
1173 	report_count(1);
1174 	report_int(can_change_color());
1175 }
1176 
1177 
1178 void
1179 cmd_cbreak(int nargs, char **args)
1180 {
1181 	ARGC(0);
1182 
1183 	report_count(1);
1184 	report_return(cbreak());
1185 }
1186 
1187 
1188 void
1189 cmd_clearok(int nargs, char **args)
1190 {
1191 	ARGC(2);
1192 	ARG_WINDOW(0, win);
1193 	ARG_INT(1, flag);
1194 
1195 	report_count(1);
1196 	report_return(clearok(win, flag));
1197 }
1198 
1199 
1200 void
1201 cmd_color_content(int nargs, char **args)
1202 {
1203 	short colour, red, green, blue;
1204 
1205 	ARGC(1);
1206 
1207 	if (set_short(args[0], &colour) != 0)
1208 		return;
1209 
1210 	report_count(4);
1211 	report_return(color_content(colour, &red, &green, &blue));
1212 	report_int(red);
1213 	report_int(green);
1214 	report_int(blue);
1215 }
1216 
1217 
1218 void
1219 cmd_copywin(int nargs, char **args)
1220 {
1221 	ARGC(9);
1222 	ARG_WINDOW(0, source);
1223 	ARG_WINDOW(1, destination);
1224 	ARG_INT(2, sminrow);
1225 	ARG_INT(3, smincol);
1226 	ARG_INT(4, dminrow);
1227 	ARG_INT(5, dmincol);
1228 	ARG_INT(6, dmaxrow);
1229 	ARG_INT(7, dmaxcol);
1230 	ARG_INT(8, ovlay);
1231 
1232 	report_count(1);
1233 	report_return(copywin(source, destination, sminrow, smincol, dminrow,
1234 		dmincol, dmaxrow, dmaxcol, ovlay));
1235 }
1236 
1237 
1238 void
1239 cmd_curs_set(int nargs, char **args)
1240 {
1241 	ARGC(1);
1242 	ARG_INT(0, vis);
1243 
1244 	report_count(1);
1245 	report_int(curs_set(vis));
1246 }
1247 
1248 
1249 void
1250 cmd_def_prog_mode(int nargs, char **args)
1251 {
1252 	ARGC(0);
1253 
1254 	report_count(1);
1255 	report_return(def_prog_mode());
1256 }
1257 
1258 
1259 void
1260 cmd_def_shell_mode(int nargs, char **args)
1261 {
1262 	ARGC(0);
1263 
1264 	report_count(1);
1265 	report_return(def_shell_mode());
1266 }
1267 
1268 
1269 void
1270 cmd_define_key(int nargs, char **args)
1271 {
1272 	ARGC(2);
1273 	ARG_INT(1, symbol);
1274 
1275 	report_count(1);
1276 	report_return(define_key(args[0], symbol));
1277 }
1278 
1279 
1280 void
1281 cmd_delay_output(int nargs, char **args)
1282 {
1283 	ARGC(1);
1284 	ARG_INT(0, dtime);
1285 
1286 	report_count(1);
1287 	report_return(delay_output(dtime));
1288 }
1289 
1290 
1291 void
1292 cmd_delscreen(int nargs, char **args)
1293 {
1294 	SCREEN *scrn;
1295 
1296 	ARGC(1);
1297 
1298 	if (set_scrn(args[0], &scrn) != 0)
1299 		return;
1300 
1301 	delscreen(scrn);	/* void return */
1302 	report_count(1);
1303 	report_return(OK);
1304 }
1305 
1306 
1307 void
1308 cmd_delwin(int nargs, char **args)
1309 {
1310 	ARGC(1);
1311 	ARG_WINDOW(0, win);
1312 
1313 	report_count(1);
1314 	report_return(delwin(win));
1315 }
1316 
1317 
1318 void
1319 cmd_derwin(int nargs, char **args)
1320 {
1321 	ARGC(5);
1322 	ARG_WINDOW(0, win);
1323 	ARG_INT(1, lines);
1324 	ARG_INT(2, cols);
1325 	ARG_INT(3, y);
1326 	ARG_INT(4, x);
1327 
1328 	report_count(1);
1329 	report_ptr(derwin(win, lines, cols, y, x));
1330 }
1331 
1332 
1333 void
1334 cmd_dupwin(int nargs, char **args)
1335 {
1336 	ARGC(1);
1337 	ARG_WINDOW(0, win);
1338 
1339 	report_count(1);
1340 	report_ptr(dupwin(win));
1341 }
1342 
1343 
1344 void
1345 cmd_doupdate(int nargs, char **args)
1346 {
1347 	ARGC(0);
1348 
1349 	/* XXX - implicit refresh */
1350 	report_count(1);
1351 	report_return(doupdate());
1352 }
1353 
1354 
1355 void
1356 cmd_echo(int nargs, char **args)
1357 {
1358 	ARGC(0);
1359 
1360 	report_count(1);
1361 	report_return(echo());
1362 }
1363 
1364 
1365 void
1366 cmd_endwin(int nargs, char **args)
1367 {
1368 	ARGC(0);
1369 
1370 	report_count(1);
1371 	report_return(endwin());
1372 }
1373 
1374 
1375 void
1376 cmd_erasechar(int nargs, char **args)
1377 {
1378 	ARGC(0);
1379 
1380 	report_count(1);
1381 	report_int(erasechar());
1382 }
1383 
1384 
1385 void
1386 cmd_flash(int nargs, char **args)
1387 {
1388 	ARGC(0);
1389 
1390 	report_count(1);
1391 	report_return(flash());
1392 }
1393 
1394 
1395 void
1396 cmd_flushinp(int nargs, char **args)
1397 {
1398 	ARGC(0);
1399 
1400 	report_count(1);
1401 	report_return(flushinp());
1402 }
1403 
1404 
1405 void
1406 cmd_flushok(int nargs, char **args)
1407 {
1408 	ARGC(2);
1409 	ARG_WINDOW(0, win);
1410 	ARG_INT(1, flag);
1411 
1412 	report_count(1);
1413 	report_return(flushok(win, flag));
1414 }
1415 
1416 
1417 void
1418 cmd_fullname(int nargs, char **args)
1419 {
1420 	char string[256];
1421 
1422 	ARGC(1);
1423 
1424 	report_count(2);
1425 	report_status(fullname(args[0], string));
1426 	report_status(string);
1427 }
1428 
1429 
1430 void
1431 cmd_getattrs(int nargs, char **args)
1432 {
1433 	ARGC(1);
1434 	ARG_WINDOW(0, win);
1435 
1436 	report_count(1);
1437 	report_int(getattrs(win));
1438 }
1439 
1440 
1441 void
1442 cmd_getbkgd(int nargs, char **args)
1443 {
1444 	ARGC(1);
1445 	ARG_WINDOW(0, win);
1446 
1447 	report_count(1);
1448 	report_byte(getbkgd(win));
1449 }
1450 
1451 
1452 void
1453 cmd_getcury(int nargs, char **args)
1454 {
1455 	ARGC(1);
1456 	ARG_WINDOW(0, win);
1457 
1458 	report_count(1);
1459 	report_int(getcury(win));
1460 }
1461 
1462 
1463 void
1464 cmd_getcurx(int nargs, char **args)
1465 {
1466 	ARGC(1);
1467 	ARG_WINDOW(0, win);
1468 
1469 	report_count(1);
1470 	report_int(getcurx(win));
1471 }
1472 
1473 
1474 void
1475 cmd_getyx(int nargs, char **args)
1476 {
1477 	ARGC(1);
1478 	ARG_WINDOW(0, win);
1479 
1480 	int y, x;
1481 	getyx(win, y, x);
1482 	report_count(2);
1483 	report_int(y);
1484 	report_int(x);
1485 }
1486 
1487 
1488 void
1489 cmd_getbegy(int nargs, char **args)
1490 {
1491 	ARGC(1);
1492 	ARG_WINDOW(0, win);
1493 
1494 	report_count(1);
1495 	report_int(getbegy(win));
1496 }
1497 
1498 
1499 void
1500 cmd_getbegx(int nargs, char **args)
1501 {
1502 	ARGC(1);
1503 	ARG_WINDOW(0, win);
1504 
1505 	report_count(1);
1506 	report_int(getbegx(win));
1507 }
1508 
1509 
1510 void
1511 cmd_getmaxy(int nargs, char **args)
1512 {
1513 	ARGC(1);
1514 	ARG_WINDOW(0, win);
1515 
1516 	report_count(1);
1517 	report_int(getmaxy(win));
1518 }
1519 
1520 
1521 void
1522 cmd_getmaxx(int nargs, char **args)
1523 {
1524 	ARGC(1);
1525 	ARG_WINDOW(0, win);
1526 
1527 	report_count(1);
1528 	report_int(getmaxx(win));
1529 }
1530 
1531 
1532 void
1533 cmd_getpary(int nargs, char **args)
1534 {
1535 	ARGC(1);
1536 	ARG_WINDOW(0, win);
1537 
1538 	report_count(1);
1539 	report_int(getpary(win));
1540 }
1541 
1542 
1543 void
1544 cmd_getparx(int nargs, char **args)
1545 {
1546 	ARGC(1);
1547 	ARG_WINDOW(0, win);
1548 
1549 	report_count(1);
1550 	report_int(getparx(win));
1551 }
1552 
1553 
1554 void
1555 cmd_getparyx(int nargs, char **args)
1556 {
1557 	ARGC(1);
1558 	ARG_WINDOW(0, win);
1559 
1560 	int y, x;
1561 	report_count(2);
1562 	getparyx(win, y, x);
1563 	report_int(y);
1564 	report_int(x);
1565 }
1566 
1567 void
1568 cmd_getmaxyx(int nargs, char **args)
1569 {
1570 	ARGC(1);
1571 	ARG_WINDOW(0, win);
1572 
1573 	int y, x;
1574 	getmaxyx(win, y, x);
1575 
1576 	report_count(2);
1577 	report_int(y);
1578 	report_int(x);
1579 }
1580 
1581 void
1582 cmd_getbegyx(int nargs, char **args)
1583 {
1584 	ARGC(1);
1585 	ARG_WINDOW(0, win);
1586 
1587 	int y, x;
1588 	getbegyx(win, y, x);
1589 
1590 	report_count(2);
1591 	report_int(y);
1592 	report_int(x);
1593 }
1594 
1595 void
1596 cmd_setsyx(int nargs, char **args)
1597 {
1598 	ARGC(2);
1599 	ARG_INT(0, y);
1600 	ARG_INT(1, x);
1601 
1602 	report_count(1);
1603 	setsyx(y, x);
1604 	report_return(OK);
1605 }
1606 
1607 void
1608 cmd_getsyx(int nargs, char **args)
1609 {
1610 	int y, x;
1611 
1612 	ARGC(0);
1613 
1614 	report_count(3);
1615 	getsyx(y, x);
1616 	report_return(OK);
1617 	report_int(y);
1618 	report_int(x);
1619 }
1620 
1621 void
1622 cmd_gettmode(int nargs, char **args)
1623 {
1624 	ARGC(0);
1625 
1626 	report_count(1);
1627 	report_return(gettmode());
1628 }
1629 
1630 
1631 void
1632 cmd_getwin(int nargs, char **args)
1633 {
1634 	FILE *fp;
1635 
1636 	ARGC(1);
1637 
1638 	if ((fp = fopen(args[0], "r")) == NULL) {
1639 		report_count(1);
1640 		report_error("BAD FILE_ARGUMENT");
1641 		return;
1642 	}
1643 	report_count(1);
1644 	report_ptr(getwin(fp));
1645 	fclose(fp);
1646 }
1647 
1648 
1649 void
1650 cmd_halfdelay(int nargs, char **args)
1651 {
1652 	ARGC(1);
1653 	ARG_INT(0, ms);
1654 
1655 	report_count(1);
1656 	report_return(halfdelay(ms));
1657 }
1658 
1659 
1660 void
1661 cmd_has_colors(int nargs, char **args)
1662 {
1663 	ARGC(0);
1664 
1665 	report_count(1);
1666 	report_int(has_colors());
1667 }
1668 
1669 
1670 void
1671 cmd_has_ic(int nargs, char **args)
1672 {
1673 	ARGC(0);
1674 
1675 	report_count(1);
1676 	report_int(has_ic());
1677 }
1678 
1679 
1680 void
1681 cmd_has_il(int nargs, char **args)
1682 {
1683 	ARGC(0);
1684 
1685 	report_count(1);
1686 	report_int(has_il());
1687 }
1688 
1689 
1690 void
1691 cmd_hline(int nargs, char **args)
1692 {
1693 	ARGC(2);
1694 	ARG_CHTYPE_STRING(0, ch);
1695 	ARG_INT(1, count);
1696 
1697 	report_count(1);
1698 	report_return(hline(ch[0], count));
1699 }
1700 
1701 
1702 void
1703 cmd_idcok(int nargs, char **args)
1704 {
1705 	ARGC(2);
1706 	ARG_WINDOW(0, win);
1707 	ARG_INT(1, flag);
1708 
1709 	report_count(1);
1710 	report_return(idcok(win, flag));
1711 }
1712 
1713 
1714 void
1715 cmd_idlok(int nargs, char **args)
1716 {
1717 	ARGC(2);
1718 	ARG_WINDOW(0, win);
1719 	ARG_INT(1, flag);
1720 
1721 	report_count(1);
1722 	report_return(idlok(win, flag));
1723 }
1724 
1725 
1726 void
1727 cmd_init_color(int nargs, char **args)
1728 {
1729 	ARGC(4);
1730 	ARG_SHORT(0, colour);
1731 	ARG_SHORT(1, red);
1732 	ARG_SHORT(2, green);
1733 	ARG_SHORT(3, blue);
1734 
1735 	report_count(1);
1736 	report_return(init_color(colour, red, green, blue));
1737 }
1738 
1739 
1740 void
1741 cmd_init_pair(int nargs, char **args)
1742 {
1743 	ARGC(3);
1744 	ARG_SHORT(0, pair);
1745 	ARG_SHORT(1, fore);
1746 	ARG_SHORT(2, back);
1747 
1748 	report_count(1);
1749 	report_return(init_pair(pair, fore, back));
1750 }
1751 
1752 
1753 void
1754 cmd_initscr(int nargs, char **args)
1755 {
1756 	ARGC(0);
1757 
1758 	report_count(1);
1759 	report_ptr(initscr());
1760 }
1761 
1762 
1763 void
1764 cmd_intrflush(int nargs, char **args)
1765 {
1766 	ARGC(2);
1767 	ARG_WINDOW(0, win);
1768 	ARG_INT(1, flag);
1769 
1770 	report_count(1);
1771 	report_return(intrflush(win, flag));
1772 }
1773 
1774 
1775 void
1776 cmd_isendwin(int nargs, char **args)
1777 {
1778 	ARGC(0);
1779 
1780 	report_count(1);
1781 	report_int(isendwin());
1782 }
1783 
1784 
1785 void
1786 cmd_is_linetouched(int nargs, char **args)
1787 {
1788 	ARGC(2);
1789 	ARG_WINDOW(0, win);
1790 	ARG_INT(1, line);
1791 
1792 	report_count(1);
1793 	report_int(is_linetouched(win, line));
1794 }
1795 
1796 
1797 void
1798 cmd_is_wintouched(int nargs, char **args)
1799 {
1800 	ARGC(1);
1801 	ARG_WINDOW(0, win);
1802 
1803 	report_count(1);
1804 	report_int(is_wintouched(win));
1805 }
1806 
1807 
1808 void
1809 cmd_keyok(int nargs, char **args)
1810 {
1811 	ARGC(2);
1812 	ARG_INT(0, keysym);
1813 	ARG_INT(1, flag);
1814 
1815 	report_count(1);
1816 	report_return(keyok(keysym, flag));
1817 }
1818 
1819 
1820 void
1821 cmd_keypad(int nargs, char **args)
1822 {
1823 	ARGC(2);
1824 	ARG_WINDOW(0, win);
1825 	ARG_INT(1, flag);
1826 
1827 	report_count(1);
1828 	report_return(keypad(win, flag));
1829 }
1830 
1831 void
1832 cmd_is_keypad(int nargs, char **args)
1833 {
1834 	ARGC(1);
1835 	ARG_WINDOW(0, win);
1836 
1837 	report_count(1);
1838 	report_int(is_keypad(win));
1839 }
1840 
1841 void
1842 cmd_keyname(int nargs, char **args)
1843 {
1844 	unsigned int key;
1845 
1846 	ARGC(1);
1847 
1848 	if (set_uint(args[0], &key) != 0)
1849 		return;
1850 
1851 	report_count(1);
1852 	report_status(keyname(key));
1853 }
1854 
1855 
1856 void
1857 cmd_killchar(int nargs, char **args)
1858 {
1859 	ARGC(0);
1860 
1861 	report_count(1);
1862 	report_int(killchar());
1863 }
1864 
1865 
1866 void
1867 cmd_leaveok(int nargs, char **args)
1868 {
1869 	ARGC(2);
1870 	ARG_WINDOW(0, win);
1871 	ARG_INT(1, flag);
1872 
1873 	report_count(1);
1874 	report_return(leaveok(win, flag));
1875 }
1876 
1877 void
1878 cmd_is_leaveok(int nargs, char **args)
1879 {
1880 	ARGC(1);
1881 	ARG_WINDOW(0, win);
1882 
1883 	report_count(1);
1884 	report_int(is_leaveok(win));
1885 }
1886 
1887 void
1888 cmd_meta(int nargs, char **args)
1889 {
1890 	ARGC(2);
1891 	ARG_WINDOW(0, win);
1892 	ARG_INT(1, flag);
1893 
1894 	report_count(1);
1895 	report_return(meta(win, flag));
1896 }
1897 
1898 
1899 void
1900 cmd_mvcur(int nargs, char **args)
1901 {
1902 	ARGC(4);
1903 	ARG_INT(0, oldy);
1904 	ARG_INT(1, oldx);
1905 	ARG_INT(2, y);
1906 	ARG_INT(3, x);
1907 
1908 	report_count(1);
1909 	report_return(mvcur(oldy, oldx, y, x));
1910 }
1911 
1912 
1913 void
1914 cmd_mvderwin(int nargs, char **args)
1915 {
1916 	ARGC(3);
1917 	ARG_WINDOW(0, win);
1918 	ARG_INT(1, y);
1919 	ARG_INT(2, x);
1920 
1921 	report_count(1);
1922 	report_return(mvderwin(win, y, x));
1923 }
1924 
1925 
1926 void
1927 cmd_mvhline(int nargs, char **args)
1928 {
1929 	ARGC(4);
1930 	ARG_INT(0, y);
1931 	ARG_INT(1, x);
1932 	ARG_INT(3, n);
1933 	ARG_CHTYPE_STRING(2, ch);
1934 
1935 	report_count(1);
1936 	report_return(mvhline(y, x, ch[0], n));
1937 }
1938 
1939 
1940 void
1941 cmd_mvprintw(int nargs, char **args)
1942 {
1943 	ARGC(4);
1944 	ARG_INT(0, y);
1945 	ARG_INT(1, x);
1946 
1947 	report_count(1);
1948 	report_return(mvprintw(y, x, args[2], args[3]));
1949 }
1950 
1951 
1952 void
1953 cmd_mvscanw(int nargs, char **args)
1954 {
1955 	char string[256];
1956 
1957 	ARGC(3);
1958 	ARG_INT(0, y);
1959 	ARG_INT(1, x);
1960 
1961 	report_count(2);
1962 	report_return(mvscanw(y, x, args[2], &string));
1963 	report_status(string);
1964 }
1965 
1966 
1967 void
1968 cmd_mvvline(int nargs, char **args)
1969 {
1970 	ARGC(4);
1971 	ARG_INT(0, y);
1972 	ARG_INT(1, x);
1973 	ARG_INT(3, n);
1974 	ARG_CHTYPE_STRING(2, ch);
1975 
1976 	report_count(1);
1977 	report_return(mvvline(y, x, ch[0], n));
1978 }
1979 
1980 
1981 void
1982 cmd_mvwhline(int nargs, char **args)
1983 {
1984 	ARGC(5);
1985 	ARG_WINDOW(0, win);
1986 	ARG_INT(1, y);
1987 	ARG_INT(2, x);
1988 	ARG_INT(4, n);
1989 	ARG_CHTYPE_STRING(3, ch);
1990 
1991 	report_count(1);
1992 	report_return(mvwhline(win, y, x, ch[0], n));
1993 }
1994 
1995 
1996 void
1997 cmd_mvwvline(int nargs, char **args)
1998 {
1999 	ARGC(5);
2000 	ARG_WINDOW(0, win);
2001 	ARG_INT(1, y);
2002 	ARG_INT(2, x);
2003 	ARG_INT(4, n);
2004 	ARG_CHTYPE_STRING(3, ch);
2005 
2006 	report_count(1);
2007 	report_return(mvwvline(win, y, x, ch[0], n));
2008 }
2009 
2010 
2011 void
2012 cmd_mvwin(int nargs, char **args)
2013 {
2014 	ARGC(3);
2015 	ARG_WINDOW(0, win);
2016 	ARG_INT(1, y);
2017 	ARG_INT(2, x);
2018 
2019 	report_count(1);
2020 	report_return(mvwin(win, y, x));
2021 }
2022 
2023 
2024 void
2025 cmd_mvwinchnstr(int nargs, char **args)
2026 {
2027 	chtype *string;
2028 
2029 	ARGC(4);
2030 	ARG_WINDOW(0, win);
2031 	ARG_INT(1, y);
2032 	ARG_INT(2, x);
2033 	ARG_INT(3, count);
2034 
2035 	if ((string = malloc((count + 1) * sizeof(chtype))) == NULL) {
2036 		report_count(1);
2037 		report_error("MALLOC_FAILED");
2038 		return;
2039 	}
2040 
2041 	report_count(2);
2042 	report_return(mvwinchnstr(win, y, x, string, count));
2043 	report_nstr(string);
2044 	free(string);
2045 }
2046 
2047 
2048 void
2049 cmd_mvwinchstr(int nargs, char **args)
2050 {
2051 	chtype string[256];
2052 
2053 	ARGC(3);
2054 	ARG_WINDOW(0, win);
2055 	ARG_INT(1, y);
2056 	ARG_INT(2, x);
2057 
2058 	report_count(2);
2059 	report_return(mvwinchstr(win, y, x, string));
2060 	report_nstr(string);
2061 }
2062 
2063 
2064 void
2065 cmd_mvwinnstr(int nargs, char **args)
2066 {
2067 	char *string;
2068 
2069 	ARGC(4);
2070 	ARG_WINDOW(0, win);
2071 	ARG_INT(1, y);
2072 	ARG_INT(2, x);
2073 	ARG_INT(3, count);
2074 
2075 	if ((string = malloc(count + 1)) == NULL) {
2076 		report_count(1);
2077 		report_error("MALLOC_FAILED");
2078 		return;
2079 	}
2080 
2081 	report_count(2);
2082 	report_int(mvwinnstr(win, y, x, string, count));
2083 	report_status(string);
2084 	free(string);
2085 }
2086 
2087 
2088 void
2089 cmd_mvwinstr(int nargs, char **args)
2090 {
2091 	char string[256];
2092 
2093 	ARGC(3);
2094 	ARG_WINDOW(0, win);
2095 	ARG_INT(1, y);
2096 	ARG_INT(2, x);
2097 
2098 	report_count(2);
2099 	report_return(mvwinstr(win, y, x, string));
2100 	report_status(string);
2101 }
2102 
2103 
2104 void
2105 cmd_mvwprintw(int nargs, char **args)
2106 {
2107 	ARGC(5);
2108 	ARG_WINDOW(0, win);
2109 	ARG_INT(1, y);
2110 	ARG_INT(2, x);
2111 
2112 	report_count(1);
2113 	report_return(mvwprintw(win, y, x, args[3], args[4]));
2114 }
2115 
2116 
2117 void
2118 cmd_mvwscanw(int nargs, char **args)
2119 {
2120 	char string[256];
2121 
2122 	ARGC(4);
2123 	ARG_WINDOW(0, win);
2124 	ARG_INT(1, y);
2125 	ARG_INT(2, x);
2126 
2127 	report_count(2);
2128 	report_int(mvwscanw(win, y, x, args[3], &string));
2129 	report_status(string);
2130 }
2131 
2132 
2133 void
2134 cmd_napms(int nargs, char **args)
2135 {
2136 	ARGC(1);
2137 	ARG_INT(0, naptime);
2138 
2139 	report_count(1);
2140 	report_return(napms(naptime));
2141 }
2142 
2143 
2144 void
2145 cmd_newpad(int nargs, char **args)
2146 {
2147 	ARGC(2);
2148 	ARG_INT(0, y);
2149 	ARG_INT(1, x);
2150 
2151 	report_count(1);
2152 	report_ptr(newpad(y, x));
2153 }
2154 
2155 
2156 void
2157 cmd_newterm(int nargs, char **args)
2158 {
2159 	FILE *in, *out;
2160 
2161 	ARGC(3);
2162 
2163 	if ((in = fopen(args[1], "rw")) == NULL) {
2164 		report_count(1);
2165 		report_error("BAD FILE_ARGUMENT");
2166 		return;
2167 	}
2168 	if ((out = fopen(args[2], "rw")) == NULL) {
2169 		report_count(1);
2170 		report_error("BAD FILE_ARGUMENT");
2171 		return;
2172 	}
2173 	report_count(1);
2174 	report_ptr(newterm(args[0], out, in));
2175 }
2176 
2177 
2178 void
2179 cmd_newwin(int nargs, char **args)
2180 {
2181 	ARGC(4);
2182 	ARG_INT(0, lines);
2183 	ARG_INT(1, cols);
2184 	ARG_INT(2, begin_y);
2185 	ARG_INT(3, begin_x);
2186 
2187 	report_count(1);
2188 	report_ptr(newwin(lines, cols, begin_y, begin_x));
2189 }
2190 
2191 
2192 void
2193 cmd_nl(int nargs, char **args)
2194 {
2195 	ARGC(0);
2196 
2197 	report_count(1);
2198 	report_return(nl());
2199 }
2200 
2201 
2202 void
2203 cmd_no_color_attributes(int nargs, char **args)
2204 {
2205 	ARGC(0);
2206 
2207 	report_count(1);
2208 	report_int(no_color_attributes());
2209 }
2210 
2211 
2212 void
2213 cmd_nocbreak(int nargs, char **args)
2214 {
2215 	ARGC(0);
2216 
2217 	report_count(1);
2218 	report_return(nocbreak());
2219 }
2220 
2221 
2222 void
2223 cmd_nodelay(int nargs, char **args)
2224 {
2225 	ARGC(2);
2226 	ARG_WINDOW(0, win);
2227 	ARG_INT(1, flag);
2228 
2229 	report_count(1);
2230 	report_return(nodelay(win, flag));
2231 }
2232 
2233 
2234 void
2235 cmd_noecho(int nargs, char **args)
2236 {
2237 	ARGC(0);
2238 
2239 	report_count(1);
2240 	report_return(noecho());
2241 }
2242 
2243 
2244 void
2245 cmd_nonl(int nargs, char **args)
2246 {
2247 	ARGC(0);
2248 
2249 	report_count(1);
2250 	report_return(nonl());
2251 }
2252 
2253 
2254 void
2255 cmd_noqiflush(int nargs, char **args)
2256 {
2257 	ARGC(0);
2258 
2259 	noqiflush();
2260 	report_count(1);
2261 	report_return(OK);	/* fake a return, the call returns void */
2262 }
2263 
2264 
2265 void
2266 cmd_noraw(int nargs, char **args)
2267 {
2268 	ARGC(0);
2269 
2270 	report_count(1);
2271 	report_return(noraw());
2272 }
2273 
2274 
2275 void
2276 cmd_notimeout(int nargs, char **args)
2277 {
2278 	ARGC(2);
2279 	ARG_WINDOW(0, win);
2280 	ARG_INT(1, flag);
2281 
2282 	report_count(1);
2283 	report_return(notimeout(win, flag));
2284 }
2285 
2286 
2287 void
2288 cmd_overlay(int nargs, char **args)
2289 {
2290 	ARGC(2);
2291 	ARG_WINDOW(0, source);
2292 	ARG_WINDOW(1, dest);
2293 
2294 	report_count(1);
2295 	report_return(overlay(source, dest));
2296 }
2297 
2298 
2299 void
2300 cmd_overwrite(int nargs, char **args)
2301 {
2302 	ARGC(2);
2303 	ARG_WINDOW(0, source);
2304 	ARG_WINDOW(1, dest);
2305 
2306 	report_count(1);
2307 	report_return(overwrite(source, dest));
2308 }
2309 
2310 
2311 void
2312 cmd_pair_content(int nargs, char **args)
2313 {
2314 	short pair, fore, back;
2315 
2316 	ARGC(1);
2317 
2318 	if (set_short(args[0], &pair) != 0)
2319 		return;
2320 
2321 	report_count(3);
2322 	report_return(pair_content(pair, &fore, &back));
2323 	report_int(fore);
2324 	report_int(back);
2325 }
2326 
2327 
2328 void
2329 cmd_pechochar(int nargs, char **args)
2330 {
2331 	ARGC(2);
2332 	ARG_WINDOW(0, pad);
2333 	ARG_CHTYPE_STRING(1, ch);
2334 
2335 	report_count(1);
2336 	report_return(pechochar(pad, ch[0]));
2337 }
2338 
2339 
2340 void
2341 cmd_pnoutrefresh(int nargs, char **args)
2342 {
2343 	ARGC(7);
2344 	ARG_WINDOW(0, pad);
2345 	ARG_INT(1, pbeg_y);
2346 	ARG_INT(2, pbeg_x);
2347 	ARG_INT(3, sbeg_y);
2348 	ARG_INT(4, sbeg_x);
2349 	ARG_INT(5, smax_y);
2350 	ARG_INT(6, smax_x);
2351 
2352 	report_count(1);
2353 	report_return(pnoutrefresh(pad, pbeg_y, pbeg_x, sbeg_y, sbeg_x, smax_y,
2354 		smax_x));
2355 }
2356 
2357 
2358 void
2359 cmd_prefresh(int nargs, char **args)
2360 {
2361 	ARGC(7);
2362 	ARG_WINDOW(0, pad);
2363 	ARG_INT(1, pbeg_y);
2364 	ARG_INT(2, pbeg_x);
2365 	ARG_INT(3, sbeg_y);
2366 	ARG_INT(4, sbeg_x);
2367 	ARG_INT(5, smax_y);
2368 	ARG_INT(6, smax_x);
2369 
2370 	/* XXX causes refresh */
2371 	report_count(1);
2372 	report_return(prefresh(pad, pbeg_y, pbeg_x, sbeg_y, sbeg_x, smax_y,
2373 		smax_x));
2374 }
2375 
2376 
2377 void
2378 cmd_printw(int nargs, char **args)
2379 {
2380 	ARGC(2);
2381 
2382 	report_count(1);
2383 	report_return(printw(args[0], args[1]));
2384 }
2385 
2386 
2387 void
2388 cmd_putwin(int nargs, char **args)
2389 {
2390 	FILE *fp;
2391 
2392 	ARGC(2);
2393 	ARG_WINDOW(0, win);
2394 
2395 	if ((fp = fopen(args[1], "w")) == NULL) {
2396 		report_count(1);
2397 		report_error("BAD FILE_ARGUMENT");
2398 		return;
2399 	}
2400 	report_count(1);
2401 	report_return(putwin(win, fp));
2402 	fclose(fp);
2403 }
2404 
2405 
2406 void
2407 cmd_qiflush(int nargs, char **args)
2408 {
2409 	ARGC(0);
2410 
2411 	qiflush();
2412 	report_count(1);
2413 	report_return(OK);	/* fake a return because call returns void */
2414 }
2415 
2416 
2417 void
2418 cmd_raw(int nargs, char **args)
2419 {
2420 	ARGC(0);
2421 
2422 	report_count(1);
2423 	report_return(raw());
2424 }
2425 
2426 
2427 void
2428 cmd_redrawwin(int nargs, char **args)
2429 {
2430 	ARGC(1);
2431 	ARG_WINDOW(0, win);
2432 
2433 	report_count(1);
2434 	report_return(redrawwin(win));
2435 }
2436 
2437 
2438 void
2439 cmd_reset_prog_mode(int nargs, char **args)
2440 {
2441 	ARGC(0);
2442 
2443 	report_count(1);
2444 	report_return(reset_prog_mode());
2445 }
2446 
2447 
2448 void
2449 cmd_reset_shell_mode(int nargs, char **args)
2450 {
2451 	ARGC(0);
2452 
2453 	report_count(1);
2454 	report_return(reset_shell_mode());
2455 }
2456 
2457 
2458 void
2459 cmd_resetty(int nargs, char **args)
2460 {
2461 	ARGC(0);
2462 
2463 	report_count(1);
2464 	report_return(resetty());
2465 }
2466 
2467 
2468 void
2469 cmd_resizeterm(int nargs, char **args)
2470 {
2471 	ARGC(2);
2472 	ARG_INT(0, rows);
2473 	ARG_INT(1, cols);
2474 
2475 	report_count(1);
2476 	report_return(resizeterm(rows, cols));
2477 }
2478 
2479 
2480 void
2481 cmd_savetty(int nargs, char **args)
2482 {
2483 	ARGC(0);
2484 
2485 	report_count(1);
2486 	report_return(savetty());
2487 }
2488 
2489 
2490 void
2491 cmd_scanw(int nargs, char **args)
2492 {
2493 	char string[256];
2494 
2495 	ARGC(0);
2496 
2497 	report_count(2);
2498 	report_return(scanw("%s", string));
2499 	report_status(string);
2500 }
2501 
2502 
2503 void
2504 cmd_scroll(int nargs, char **args)
2505 {
2506 	ARGC(1);
2507 	ARG_WINDOW(0, win);
2508 
2509 	report_count(1);
2510 	report_return(scroll(win));
2511 }
2512 
2513 
2514 void
2515 cmd_scrollok(int nargs, char **args)
2516 {
2517 	ARGC(2);
2518 	ARG_WINDOW(0, win);
2519 	ARG_INT(1, flag);
2520 
2521 	report_count(1);
2522 	report_return(scrollok(win, flag));
2523 }
2524 
2525 
2526 void
2527 cmd_setterm(int nargs, char **args)
2528 {
2529 	ARGC(1);
2530 
2531 	report_count(1);
2532 	report_return(setterm(args[0]));
2533 }
2534 
2535 
2536 void
2537 cmd_set_term(int nargs, char **args)
2538 {
2539 	SCREEN *scrn;
2540 
2541 	ARGC(1);
2542 
2543 	if (set_scrn(args[0], &scrn) != 0) return;
2544 
2545 	report_count(1);
2546 	report_ptr(set_term(scrn));
2547 }
2548 
2549 
2550 void
2551 cmd_start_color(int nargs, char **args)
2552 {
2553 	ARGC(0);
2554 
2555 	report_count(1);
2556 	report_return(start_color());
2557 }
2558 
2559 
2560 void
2561 cmd_subpad(int nargs, char **args)
2562 {
2563 	ARGC(5);
2564 	ARG_WINDOW(0, pad);
2565 	ARG_INT(1, lines);
2566 	ARG_INT(2, cols);
2567 	ARG_INT(3, begin_y);
2568 	ARG_INT(4, begin_x);
2569 
2570 	report_count(1);
2571 	report_ptr(subpad(pad, lines, cols, begin_y, begin_x));
2572 }
2573 
2574 
2575 void
2576 cmd_subwin(int nargs, char **args)
2577 {
2578 	ARGC(5);
2579 	ARG_WINDOW(0, win);
2580 	ARG_INT(1, lines);
2581 	ARG_INT(2, cols);
2582 	ARG_INT(3, begin_y);
2583 	ARG_INT(4, begin_x);
2584 
2585 	report_count(1);
2586 	report_ptr(subwin(win, lines, cols, begin_y, begin_x));
2587 }
2588 
2589 
2590 void
2591 cmd_termattrs(int nargs, char **args)
2592 {
2593 	ARGC(0);
2594 
2595 	report_count(1);
2596 	report_int(termattrs());
2597 }
2598 
2599 
2600 void
2601 cmd_term_attrs(int nargs, char **args)
2602 {
2603 	ARGC(0);
2604 
2605 	report_count(1);
2606 	report_int(term_attrs());
2607 }
2608 
2609 
2610 void
2611 cmd_touchline(int nargs, char **args)
2612 {
2613 	ARGC(3);
2614 	ARG_WINDOW(0, win);
2615 	ARG_INT(1, start);
2616 	ARG_INT(2, count);
2617 
2618 	report_count(1);
2619 	report_return(touchline(win, start, count));
2620 }
2621 
2622 
2623 void
2624 cmd_touchoverlap(int nargs, char **args)
2625 {
2626 	ARGC(2);
2627 	ARG_WINDOW(0, win1);
2628 	ARG_WINDOW(1, win2);
2629 
2630 	report_count(1);
2631 	report_return(touchoverlap(win1, win2));
2632 }
2633 
2634 
2635 void
2636 cmd_touchwin(int nargs, char **args)
2637 {
2638 	ARGC(1);
2639 	ARG_WINDOW(0, win);
2640 
2641 	report_count(1);
2642 	report_return(touchwin(win));
2643 }
2644 
2645 
2646 void
2647 cmd_ungetch(int nargs, char **args)
2648 {
2649 	ARGC(1);
2650 	ARG_INT(0, ch);
2651 
2652 	report_count(1);
2653 	report_return(ungetch(ch));
2654 }
2655 
2656 
2657 void
2658 cmd_untouchwin(int nargs, char **args)
2659 {
2660 	ARGC(1);
2661 	ARG_WINDOW(0, win);
2662 
2663 	report_count(1);
2664 	report_return(untouchwin(win));
2665 }
2666 
2667 
2668 void
2669 cmd_use_default_colors(int nargs, char **args)
2670 {
2671 	ARGC(0);
2672 
2673 	report_count(1);
2674 	report_return(use_default_colors());
2675 }
2676 
2677 
2678 void
2679 cmd_vline(int nargs, char **args)
2680 {
2681 	ARGC(2);
2682 	ARG_CHTYPE_STRING(0, ch);
2683 	ARG_INT(1, count);
2684 
2685 	report_count(1);
2686 	report_return(vline(ch[0], count));
2687 }
2688 
2689 
2690 static int
2691 internal_vw_printw(WINDOW * win, char *arg1,...)
2692 {
2693 	va_list va;
2694 	int rv;
2695 
2696 	va_start(va, arg1);
2697 	rv = vw_printw(win, arg1, va);
2698 	va_end(va);
2699 
2700 	return rv;
2701 }
2702 
2703 void
2704 cmd_vw_printw(int nargs, char **args)
2705 {
2706 	ARGC(3);
2707 	ARG_WINDOW(0, win);
2708 
2709 	report_count(1);
2710 	report_return(internal_vw_printw(win, args[1], args[2]));
2711 }
2712 
2713 
2714 static int
2715 internal_vw_scanw(WINDOW * win, char *arg1,...)
2716 {
2717 	va_list va;
2718 	int rv;
2719 
2720 	va_start(va, arg1);
2721 	rv = vw_scanw(win, arg1, va);
2722 	va_end(va);
2723 
2724 	return rv;
2725 }
2726 
2727 void
2728 cmd_vw_scanw(int nargs, char **args)
2729 {
2730 	char string[256];
2731 
2732 	ARGC(2);
2733 	ARG_WINDOW(0, win);
2734 
2735 	report_count(2);
2736 	report_int(internal_vw_scanw(win, args[1], string));
2737 	report_status(string);
2738 }
2739 
2740 
2741 void
2742 cmd_vwprintw(int nargs, char **args)
2743 {
2744 	cmd_vw_printw(nargs, args);
2745 }
2746 
2747 
2748 void
2749 cmd_vwscanw(int nargs, char **args)
2750 {
2751 	cmd_vw_scanw(nargs, args);
2752 }
2753 
2754 
2755 void
2756 cmd_waddch(int nargs, char **args)
2757 {
2758 	ARGC(2);
2759 	ARG_WINDOW(0, win);
2760 	ARG_CHTYPE_STRING(1, ch);
2761 
2762 	report_count(1);
2763 	report_return(waddch(win, ch[0]));
2764 }
2765 
2766 
2767 void
2768 cmd_waddchnstr(int nargs, char **args)
2769 {
2770 	ARGC(3);
2771 	ARG_WINDOW(0, win);
2772 	ARG_INT(2, count);
2773 
2774 	report_count(1);
2775 	report_return(waddchnstr(win, (chtype *) args[1], count));
2776 }
2777 
2778 
2779 void
2780 cmd_waddchstr(int nargs, char **args)
2781 {
2782 	ARGC(2);
2783 	ARG_WINDOW(0, win);
2784 
2785 	report_count(1);
2786 	report_return(waddchstr(win, (chtype *) args[1]));
2787 }
2788 
2789 
2790 void
2791 cmd_waddnstr(int nargs, char **args)
2792 {
2793 	ARGC(3);
2794 	ARG_WINDOW(0, win);
2795 	ARG_INT(2, count);
2796 
2797 	report_count(1);
2798 	report_return(waddnstr(win, args[1], count));
2799 
2800 }
2801 
2802 
2803 void
2804 cmd_wattr_get(int nargs, char **args)
2805 {
2806 	int attr;
2807 	short pair;
2808 
2809 	ARGC(1);
2810 	ARG_WINDOW(0, win);
2811 
2812 	report_count(3);
2813 	report_return(wattr_get(win, &attr, &pair, NULL));
2814 	report_int(attr);
2815 	report_int(pair);
2816 }
2817 
2818 
2819 void
2820 cmd_wattr_off(int nargs, char **args)
2821 {
2822 	ARGC(2);
2823 	ARG_WINDOW(0, win);
2824 	ARG_INT(1, attr);
2825 
2826 	report_count(1);
2827 	report_return(wattr_off(win, attr, NULL));
2828 }
2829 
2830 
2831 void
2832 cmd_wattr_on(int nargs, char **args)
2833 {
2834 	ARGC(2);
2835 	ARG_WINDOW(0, win);
2836 	ARG_INT(1, attr);
2837 
2838 	report_count(1);
2839 	report_return(wattr_on(win, attr, NULL));
2840 }
2841 
2842 
2843 void
2844 cmd_wattr_set(int nargs, char **args)
2845 {
2846 	ARGC(3);
2847 	ARG_WINDOW(0, win);
2848 	ARG_INT(1, attr);
2849 	ARG_SHORT(2, pair);
2850 
2851 	report_count(1);
2852 	report_return(wattr_set(win, attr, pair, NULL));
2853 }
2854 
2855 
2856 void
2857 cmd_wattroff(int nargs, char **args)
2858 {
2859 	ARGC(2);
2860 	ARG_WINDOW(0, win);
2861 	ARG_INT(1, attr);
2862 
2863 	report_count(1);
2864 	report_return(wattroff(win, attr));
2865 }
2866 
2867 
2868 void
2869 cmd_wattron(int nargs, char **args)
2870 {
2871 	ARGC(2);
2872 	ARG_WINDOW(0, win);
2873 	ARG_INT(1, attr);
2874 
2875 	report_count(1);
2876 	report_return(wattron(win, attr));
2877 }
2878 
2879 
2880 void
2881 cmd_wattrset(int nargs, char **args)
2882 {
2883 	ARGC(2);
2884 	ARG_WINDOW(0, win);
2885 	ARG_INT(1, attr);
2886 
2887 	report_count(1);
2888 	report_return(wattrset(win, attr));
2889 }
2890 
2891 
2892 void
2893 cmd_wbkgd(int nargs, char **args)
2894 {
2895 	ARGC(2);
2896 	ARG_WINDOW(0, win);
2897 	ARG_CHTYPE_STRING(1, ch);
2898 
2899 	report_count(1);
2900 	report_return(wbkgd(win, ch[0]));
2901 }
2902 
2903 
2904 void
2905 cmd_wbkgdset(int nargs, char **args)
2906 {
2907 	ARGC(2);
2908 	ARG_WINDOW(0, win);
2909 	ARG_CHTYPE_STRING(1, ch);
2910 
2911 	wbkgdset(win, *ch);	/* void return */
2912 	report_count(1);
2913 	report_return(OK);
2914 }
2915 
2916 
2917 void
2918 cmd_wborder(int nargs, char **args)
2919 {
2920 	ARGC(9);
2921 	ARG_WINDOW(0, win);
2922 	ARG_INT(1, ls);
2923 	ARG_INT(2, rs);
2924 	ARG_INT(3, ts);
2925 	ARG_INT(4, bs);
2926 	ARG_INT(5, tl);
2927 	ARG_INT(6, tr);
2928 	ARG_INT(7, bl);
2929 	ARG_INT(8, br);
2930 
2931 	report_count(1);
2932 	report_return(wborder(win, ls, rs, ts, bs, tl, tr, bl, br));
2933 }
2934 
2935 
2936 void
2937 cmd_wclear(int nargs, char **args)
2938 {
2939 	ARGC(1);
2940 	ARG_WINDOW(0, win);
2941 
2942 	report_count(1);
2943 	report_return(wclear(win));
2944 }
2945 
2946 
2947 void
2948 cmd_wclrtobot(int nargs, char **args)
2949 {
2950 	ARGC(1);
2951 	ARG_WINDOW(0, win);
2952 
2953 	report_count(1);
2954 	report_return(wclrtobot(win));
2955 }
2956 
2957 
2958 void
2959 cmd_wclrtoeol(int nargs, char **args)
2960 {
2961 	ARGC(1);
2962 	ARG_WINDOW(0, win);
2963 
2964 	report_count(1);
2965 	report_return(wclrtoeol(win));
2966 
2967 }
2968 
2969 
2970 void
2971 cmd_wcolor_set(int nargs, char **args)
2972 {
2973 	ARGC(3);
2974 	ARG_WINDOW(0, win);
2975 	ARG_SHORT(1, pair);
2976 	/* TODO: arg 2 */
2977 
2978 	report_count(1);
2979 	report_return(wcolor_set(win, pair, NULL));
2980 }
2981 
2982 
2983 void
2984 cmd_wdelch(int nargs, char **args)
2985 {
2986 	ARGC(1);
2987 	ARG_WINDOW(0, win);
2988 
2989 	report_count(1);
2990 	report_return(wdelch(win));
2991 }
2992 
2993 
2994 void
2995 cmd_wdeleteln(int nargs, char **args)
2996 {
2997 	ARGC(1);
2998 	ARG_WINDOW(0, win);
2999 
3000 	report_count(1);
3001 	report_return(wdeleteln(win));
3002 
3003 }
3004 
3005 
3006 void
3007 cmd_wechochar(int nargs, char **args)
3008 {
3009 	ARGC(2);
3010 	ARG_WINDOW(0, win);
3011 	ARG_CHTYPE_STRING(1, ch);
3012 
3013 	report_count(1);
3014 	report_return(wechochar(win, ch[0]));
3015 }
3016 
3017 
3018 void
3019 cmd_werase(int nargs, char **args)
3020 {
3021 	ARGC(1);
3022 	ARG_WINDOW(0, win);
3023 
3024 	report_count(1);
3025 	report_return(werase(win));
3026 }
3027 
3028 
3029 void
3030 cmd_wgetch(int nargs, char **args)
3031 {
3032 	ARGC(1);
3033 	ARG_WINDOW(0, win);
3034 
3035 	report_count(1);
3036 	report_int(wgetch(win));
3037 }
3038 
3039 
3040 void
3041 cmd_wgetnstr(int nargs, char **args)
3042 {
3043 	char string[256];
3044 
3045 	ARGC(2);
3046 	ARG_WINDOW(0, win);
3047 	ARG_INT(1, count);
3048 
3049 	report_count(2);
3050 	report_return(wgetnstr(win, string, count));
3051 	report_status(string);
3052 }
3053 
3054 
3055 void
3056 cmd_wgetstr(int nargs, char **args)
3057 {
3058 	char string[256];
3059 
3060 	ARGC(1);
3061 	ARG_WINDOW(0, win);
3062 
3063 	string[0] = '\0';
3064 
3065 	report_count(2);
3066 	report_return(wgetstr(win, string));
3067 	report_status(string);
3068 }
3069 
3070 
3071 void
3072 cmd_whline(int nargs, char **args)
3073 {
3074 	ARGC(3);
3075 	ARG_WINDOW(0, win);
3076 	ARG_INT(2, count);
3077 	ARG_CHTYPE_STRING(1, ch);
3078 
3079 	report_count(1);
3080 	report_return(whline(win, ch[0], count));
3081 }
3082 
3083 
3084 void
3085 cmd_winch(int nargs, char **args)
3086 {
3087 	ARGC(1);
3088 	ARG_WINDOW(0, win);
3089 
3090 	report_count(1);
3091 	report_byte(winch(win));
3092 }
3093 
3094 
3095 void
3096 cmd_winchnstr(int nargs, char **args)
3097 {
3098 	chtype string[256];
3099 
3100 	ARGC(2);
3101 	ARG_WINDOW(0, win);
3102 	ARG_INT(1, count);
3103 
3104 	report_count(2);
3105 	report_return(winchnstr(win, string, count));
3106 	report_nstr(string);
3107 }
3108 
3109 
3110 void
3111 cmd_winchstr(int nargs, char **args)
3112 {
3113 	chtype string[256];
3114 
3115 	ARGC(1);
3116 	ARG_WINDOW(0, win);
3117 
3118 	report_count(2);
3119 	report_return(winchstr(win, string));
3120 	report_nstr(string);
3121 }
3122 
3123 
3124 void
3125 cmd_winnstr(int nargs, char **args)
3126 {
3127 	char string[256];
3128 
3129 	ARGC(2);
3130 	ARG_WINDOW(0, win);
3131 	ARG_INT(1, count);
3132 
3133 	report_count(2);
3134 	report_int(winnstr(win, string, count));
3135 	report_status(string);
3136 }
3137 
3138 
3139 void
3140 cmd_winsch(int nargs, char **args)
3141 {
3142 	ARGC(2);
3143 	ARG_WINDOW(0, win);
3144 	ARG_CHTYPE_STRING(1, ch);
3145 
3146 	report_count(1);
3147 	report_return(winsch(win, ch[0]));
3148 }
3149 
3150 
3151 void
3152 cmd_winsdelln(int nargs, char **args)
3153 {
3154 	ARGC(2);
3155 	ARG_WINDOW(0, win);
3156 	ARG_INT(1, count);
3157 
3158 	report_count(1);
3159 	report_return(winsdelln(win, count));
3160 }
3161 
3162 
3163 void
3164 cmd_winsertln(int nargs, char **args)
3165 {
3166 	ARGC(1);
3167 	ARG_WINDOW(0, win);
3168 
3169 	report_count(1);
3170 	report_return(winsertln(win));
3171 }
3172 
3173 
3174 void
3175 cmd_winstr(int nargs, char **args)
3176 {
3177 	char string[256];
3178 
3179 	ARGC(1);
3180 	ARG_WINDOW(0, win);
3181 
3182 	report_count(2);
3183 	report_return(winstr(win, string));
3184 	report_status(string);
3185 }
3186 
3187 
3188 void
3189 cmd_wmove(int nargs, char **args)
3190 {
3191 	ARGC(3);
3192 	ARG_WINDOW(0, win);
3193 	ARG_INT(1, y);
3194 	ARG_INT(2, x);
3195 
3196 	report_count(1);
3197 	report_return(wmove(win, y, x));
3198 }
3199 
3200 
3201 void
3202 cmd_wnoutrefresh(int nargs, char **args)
3203 {
3204 	ARGC(1);
3205 	ARG_WINDOW(0, win);
3206 
3207 	report_count(1);
3208 	report_return(wnoutrefresh(win));
3209 }
3210 
3211 
3212 void
3213 cmd_wprintw(int nargs, char **args)
3214 {
3215 	ARGC(3);
3216 	ARG_WINDOW(0, win);
3217 
3218 	report_count(1);
3219 	report_return(wprintw(win, args[1], args[2]));
3220 }
3221 
3222 
3223 void
3224 cmd_wredrawln(int nargs, char **args)
3225 {
3226 	ARGC(3);
3227 	ARG_WINDOW(0, win);
3228 	ARG_INT(1, beg_line);
3229 	ARG_INT(2, num_lines);
3230 
3231 	report_count(1);
3232 	report_return(wredrawln(win, beg_line, num_lines));
3233 }
3234 
3235 
3236 void
3237 cmd_wrefresh(int nargs, char **args)
3238 {
3239 	ARGC(1);
3240 	ARG_WINDOW(0, win);
3241 
3242 	/* XXX - generates output */
3243 	report_count(1);
3244 	report_return(wrefresh(win));
3245 }
3246 
3247 
3248 void
3249 cmd_wresize(int nargs, char **args)
3250 {
3251 	ARGC(3);
3252 	ARG_WINDOW(0, win);
3253 	ARG_INT(1, lines);
3254 	ARG_INT(2, cols);
3255 
3256 	report_count(1);
3257 	report_return(wresize(win, lines, cols));
3258 }
3259 
3260 
3261 void
3262 cmd_wscanw(int nargs, char **args)
3263 {
3264 	char string[256];
3265 
3266 	ARGC(2);
3267 	ARG_WINDOW(0, win);
3268 
3269 	report_count(1);
3270 	report_return(wscanw(win, args[1], &string));
3271 }
3272 
3273 
3274 void
3275 cmd_wscrl(int nargs, char **args)
3276 {
3277 	ARGC(2);
3278 	ARG_WINDOW(0, win);
3279 	ARG_INT(1, n);
3280 
3281 	report_count(1);
3282 	report_return(wscrl(win, n));
3283 }
3284 
3285 
3286 void
3287 cmd_wsetscrreg(int nargs, char **args)
3288 {
3289 	ARGC(3);
3290 	ARG_WINDOW(0, win);
3291 	ARG_INT(1, top);
3292 	ARG_INT(2, bottom);
3293 
3294 	report_count(1);
3295 	report_return(wsetscrreg(win, top, bottom));
3296 }
3297 
3298 
3299 void
3300 cmd_wstandend(int nargs, char **args)
3301 {
3302 	ARGC(1);
3303 	ARG_WINDOW(0, win);
3304 
3305 	report_count(1);
3306 	report_int(wstandend(win));
3307 }
3308 
3309 
3310 void
3311 cmd_wstandout(int nargs, char **args)
3312 {
3313 	ARGC(1);
3314 	ARG_WINDOW(0, win);
3315 
3316 	report_count(1);
3317 	report_int(wstandout(win));
3318 }
3319 
3320 
3321 void
3322 cmd_wtimeout(int nargs, char **args)
3323 {
3324 	ARGC(2);
3325 	ARG_WINDOW(0, win);
3326 	ARG_INT(1, tval);
3327 
3328 	wtimeout(win, tval);	/* void return */
3329 	report_count(1);
3330 	report_return(OK);
3331 }
3332 
3333 
3334 void
3335 cmd_wtouchln(int nargs, char **args)
3336 {
3337 	ARGC(4);
3338 	ARG_WINDOW(0, win);
3339 	ARG_INT(1, line);
3340 	ARG_INT(2, n);
3341 	ARG_INT(3, changed);
3342 
3343 	report_count(1);
3344 	report_return(wtouchln(win, line, n, changed));
3345 }
3346 
3347 
3348 void
3349 cmd_wunderend(int nargs, char **args)
3350 {
3351 	ARGC(1);
3352 	ARG_WINDOW(0, win);
3353 
3354 	report_count(1);
3355 	report_int(wunderend(win));
3356 }
3357 
3358 
3359 void
3360 cmd_wunderscore(int nargs, char **args)
3361 {
3362 	ARGC(1);
3363 	ARG_WINDOW(0, win);
3364 
3365 	report_count(1);
3366 	report_int(wunderscore(win));
3367 }
3368 
3369 
3370 void
3371 cmd_wvline(int nargs, char **args)
3372 {
3373 	ARGC(3);
3374 	ARG_WINDOW(0, win);
3375 	ARG_INT(2, n);
3376 	ARG_CHTYPE_STRING(1, ch);
3377 
3378 	report_count(1);
3379 	report_return(wvline(win, ch[0], n));
3380 }
3381 
3382 
3383 void
3384 cmd_insnstr(int nargs, char **args)
3385 {
3386 	ARGC(2);
3387 	ARG_INT(1, n);
3388 
3389 	report_count(1);
3390 	report_return(insnstr(args[0], n));
3391 }
3392 
3393 
3394 void
3395 cmd_insstr(int nargs, char **args)
3396 {
3397 	ARGC(1);
3398 
3399 	report_count(1);
3400 	report_return(insstr(args[0]));
3401 }
3402 
3403 
3404 void
3405 cmd_mvinsnstr(int nargs, char **args)
3406 {
3407 	ARGC(4);
3408 	ARG_INT(0, y);
3409 	ARG_INT(1, x);
3410 	ARG_INT(3, n);
3411 
3412 	report_count(1);
3413 	report_return(mvinsnstr(y, x, args[2], n));
3414 }
3415 
3416 
3417 void
3418 cmd_mvinsstr(int nargs, char **args)
3419 {
3420 	ARGC(3);
3421 	ARG_INT(0, y);
3422 	ARG_INT(1, x);
3423 
3424 	report_count(1);
3425 	report_return(mvinsstr(y, x, args[2]));
3426 }
3427 
3428 
3429 void
3430 cmd_mvwinsnstr(int nargs, char **args)
3431 {
3432 	ARGC(5);
3433 	ARG_WINDOW(0, win);
3434 	ARG_INT(1, y);
3435 	ARG_INT(2, x);
3436 	ARG_INT(4, n);
3437 
3438 	report_count(1);
3439 	report_return(mvwinsnstr(win, y, x, args[3], n));
3440 
3441 }
3442 
3443 
3444 void
3445 cmd_mvwinsstr(int nargs, char **args)
3446 {
3447 	ARGC(4);
3448 	ARG_WINDOW(0, win);
3449 	ARG_INT(1, y);
3450 	ARG_INT(2, x);
3451 
3452 	report_count(1);
3453 	report_return(mvwinsstr(win, y, x, args[3]));
3454 }
3455 
3456 
3457 void
3458 cmd_winsnstr(int nargs, char **args)
3459 {
3460 	ARGC(3);
3461 	ARG_WINDOW(0, win);
3462 	ARG_INT(2, n);
3463 
3464 	report_count(1);
3465 	report_return(winsnstr(win, args[1], n));
3466 }
3467 
3468 
3469 void
3470 cmd_winsstr(int nargs, char **args)
3471 {
3472 	ARGC(2);
3473 	ARG_WINDOW(0, win);
3474 
3475 	report_count(1);
3476 	report_return(winsstr(win, args[1]));
3477 }
3478 
3479 
3480 
3481 void
3482 cmd_chgat(int nargs, char **args)
3483 {
3484 	ARGC(4);
3485 	ARG_INT(0, n);
3486 	ARG_INT(1, attr);
3487 	ARG_INT(2, colour);
3488 
3489 	/* Note: 4th argument unused in current curses implementation */
3490 	report_count(1);
3491 	report_return(chgat(n, attr, colour, NULL));
3492 }
3493 
3494 
3495 void
3496 cmd_wchgat(int nargs, char **args)
3497 {
3498 	ARGC(5);
3499 	ARG_WINDOW(0, win);
3500 	ARG_INT(1, n);
3501 	ARG_INT(2, attr);
3502 	ARG_SHORT(3, colour);
3503 
3504 	report_count(1);
3505 	report_return(wchgat(win, n, attr, colour, NULL));
3506 }
3507 
3508 
3509 void
3510 cmd_mvchgat(int nargs, char **args)
3511 {
3512 	ARGC(6);
3513 	ARG_INT(0, y);
3514 	ARG_INT(1, x);
3515 	ARG_INT(2, n);
3516 	ARG_INT(3, attr);
3517 	ARG_SHORT(4, colour);
3518 
3519 	report_count(1);
3520 	report_return(mvchgat(y, x, n, attr, colour, NULL));
3521 }
3522 
3523 
3524 void
3525 cmd_mvwchgat(int nargs, char **args)
3526 {
3527 	ARGC(7);
3528 	ARG_WINDOW(0, win);
3529 	ARG_INT(1, y);
3530 	ARG_INT(2, x);
3531 	ARG_INT(3, n);
3532 	ARG_INT(4, attr);
3533 	ARG_SHORT(5, colour);
3534 
3535 	report_count(1);
3536 	report_return(mvwchgat(win, y, x, n, attr, colour, NULL));
3537 }
3538 
3539 
3540 void
3541 cmd_add_wch(int nargs, char **args)
3542 {
3543 	ARGC(1);
3544 	ARG_CCHAR_STRING(0, ch);
3545 
3546 	report_count(1);
3547 	report_return(add_wch(ch));
3548 }
3549 
3550 
3551 void
3552 cmd_wadd_wch(int nargs, char **args)
3553 {
3554 	ARGC(2);
3555 	ARG_WINDOW(0, win);
3556 	ARG_CCHAR_STRING(1, ch);
3557 
3558 	report_count(1);
3559 	report_return(wadd_wch(win, ch));
3560 }
3561 
3562 
3563 void
3564 cmd_mvadd_wch(int nargs, char **args)
3565 {
3566 	ARGC(3);
3567 	ARG_INT(0, y);
3568 	ARG_INT(1, x);
3569 	ARG_CCHAR_STRING(2, ch);
3570 
3571 	report_count(1);
3572 	report_return(mvadd_wch(y, x, ch));
3573 }
3574 
3575 
3576 void
3577 cmd_mvwadd_wch(int nargs, char **args)
3578 {
3579 	ARGC(4);
3580 	ARG_WINDOW(0, win);
3581 	ARG_INT(1, y);
3582 	ARG_INT(2, x);
3583 	ARG_CCHAR_STRING(3, ch);
3584 
3585 	report_count(1);
3586 	report_return(mvwadd_wch(win, y, x, ch));
3587 }
3588 
3589 
3590 
3591 void
3592 cmd_add_wchnstr(int nargs, char **args)
3593 {
3594 	ARGC(1);
3595 
3596 	report_count(1);
3597 	report_error("UNSUPPORTED");
3598 }
3599 
3600 
3601 void
3602 cmd_add_wchstr(int nargs, char **args)
3603 {
3604 	ARGC(1);
3605 
3606 	report_count(1);
3607 	report_error("UNSUPPORTED");
3608 }
3609 
3610 
3611 void
3612 cmd_wadd_wchnstr(int nargs, char **args)
3613 {
3614 	ARGC(1);
3615 
3616 	report_count(1);
3617 	report_error("UNSUPPORTED");
3618 }
3619 
3620 
3621 void
3622 cmd_wadd_wchstr(int nargs, char **args)
3623 {
3624 	ARGC(1);
3625 
3626 	report_count(1);
3627 	report_error("UNSUPPORTED");
3628 }
3629 
3630 
3631 void
3632 cmd_mvadd_wchnstr(int nargs, char **args)
3633 {
3634 	ARGC(1);
3635 
3636 	report_count(1);
3637 	report_error("UNSUPPORTED");
3638 }
3639 
3640 
3641 void
3642 cmd_mvadd_wchstr(int nargs, char **args)
3643 {
3644 	ARGC(1);
3645 
3646 	report_count(1);
3647 	report_error("UNSUPPORTED");
3648 }
3649 
3650 
3651 void
3652 cmd_mvwadd_wchnstr(int nargs, char **args)
3653 {
3654 	ARGC(1);
3655 
3656 	report_count(1);
3657 	report_error("UNSUPPORTED");
3658 }
3659 
3660 
3661 void
3662 cmd_mvwadd_wchstr(int nargs, char **args)
3663 {
3664 	ARGC(1);
3665 
3666 	report_count(1);
3667 	report_error("UNSUPPORTED");
3668 }
3669 
3670 
3671 
3672 void
3673 cmd_addnwstr(int nargs, char **args)
3674 {
3675 	ARGC(2);
3676 	ARG_WCHAR_STRING(0, wstr);
3677 	ARG_INT(1, n);
3678 
3679 	report_count(1);
3680 	report_return(addnwstr(wstr, n));
3681 }
3682 
3683 
3684 void
3685 cmd_addwstr(int nargs, char **args)
3686 {
3687 	ARGC(1);
3688 	ARG_WCHAR_STRING(0, wstr);
3689 
3690 	report_count(1);
3691 	report_return(addwstr(wstr));
3692 }
3693 
3694 
3695 void
3696 cmd_mvaddnwstr(int nargs, char **args)
3697 {
3698 	ARGC(4);
3699 	ARG_INT(0, y);
3700 	ARG_INT(1, x);
3701 	ARG_INT(3, n);
3702 	ARG_WCHAR_STRING(2, wstr);
3703 
3704 	report_count(1);
3705 	report_return(mvaddnwstr(y, x, wstr, n));
3706 }
3707 
3708 
3709 void
3710 cmd_mvaddwstr(int nargs, char **args)
3711 {
3712 	ARGC(3);
3713 	ARG_INT(0, y);
3714 	ARG_INT(1, x);
3715 	ARG_WCHAR_STRING(2, wstr);
3716 
3717 	report_count(1);
3718 	report_return(mvaddwstr(y, x, wstr));
3719 }
3720 
3721 
3722 void
3723 cmd_mvwaddnwstr(int nargs, char **args)
3724 {
3725 	ARGC(5);
3726 	ARG_WINDOW(0, win);
3727 	ARG_INT(1, y);
3728 	ARG_INT(2, x);
3729 	ARG_INT(4, n);
3730 	ARG_WCHAR_STRING(3, wstr);
3731 
3732 	report_count(1);
3733 	report_return(mvwaddnwstr(win, y, x, wstr, n));
3734 }
3735 
3736 
3737 void
3738 cmd_mvwaddwstr(int nargs, char **args)
3739 {
3740 	ARGC(4);
3741 	ARG_WINDOW(0, win);
3742 	ARG_INT(1, y);
3743 	ARG_INT(2, x);
3744 	ARG_WCHAR_STRING(3, wstr);
3745 
3746 	report_count(1);
3747 	report_return(mvwaddwstr(win, y, x, wstr));
3748 }
3749 
3750 
3751 void
3752 cmd_waddnwstr(int nargs, char **args)
3753 {
3754 	ARGC(3);
3755 	ARG_WINDOW(0, win);
3756 	ARG_INT(2, n);
3757 	ARG_WCHAR_STRING(1, wstr);
3758 
3759 	report_count(1);
3760 	report_return(waddnwstr(win, wstr, n));
3761 }
3762 
3763 
3764 void
3765 cmd_waddwstr(int nargs, char **args)
3766 {
3767 	ARGC(2);
3768 	ARG_WINDOW(0, win);
3769 	ARG_WCHAR_STRING(1, wstr);
3770 
3771 	report_count(1);
3772 	report_return(waddwstr(win, wstr));
3773 }
3774 
3775 
3776 
3777 void
3778 cmd_echo_wchar(int nargs, char **args)
3779 {
3780 	ARGC(1);
3781 	ARG_CCHAR_STRING(0, ch);
3782 
3783 	report_count(1);
3784 	report_return(echo_wchar(ch));
3785 }
3786 
3787 
3788 void
3789 cmd_wecho_wchar(int nargs, char **args)
3790 {
3791 	ARGC(2);
3792 	ARG_WINDOW(0, win);
3793 	ARG_CCHAR_STRING(1, ch);
3794 
3795 	report_count(1);
3796 	report_return(wecho_wchar(win, ch));
3797 }
3798 
3799 
3800 void
3801 cmd_pecho_wchar(int nargs, char **args)
3802 {
3803 	ARGC(2);
3804 	ARG_WINDOW(0, pad);
3805 	ARG_CCHAR_STRING(1, wch);
3806 
3807 	report_count(1);
3808 	report_return(pecho_wchar(pad, wch));
3809 }
3810 
3811 
3812 
3813 /* insert */
3814 void
3815 cmd_ins_wch(int nargs, char **args)
3816 {
3817 	ARGC(1);
3818 	ARG_CCHAR_STRING(0, wch);
3819 
3820 	report_count(1);
3821 	report_return(ins_wch(wch));
3822 }
3823 
3824 
3825 void
3826 cmd_wins_wch(int nargs, char **args)
3827 {
3828 	ARGC(2);
3829 	ARG_WINDOW(0, win);
3830 	ARG_CCHAR_STRING(1, wch);
3831 
3832 	report_count(1);
3833 	report_return(wins_wch(win, wch));
3834 }
3835 
3836 
3837 void
3838 cmd_mvins_wch(int nargs, char **args)
3839 {
3840 	ARGC(3);
3841 	ARG_INT(0, y);
3842 	ARG_INT(1, x);
3843 	ARG_CCHAR_STRING(2, wch);
3844 
3845 	report_count(1);
3846 	report_return(mvins_wch(y, x, wch));
3847 }
3848 
3849 
3850 void
3851 cmd_mvwins_wch(int nargs, char **args)
3852 {
3853 	ARGC(4);
3854 	ARG_WINDOW(0, win);
3855 	ARG_INT(1, y);
3856 	ARG_INT(2, x);
3857 	ARG_CCHAR_STRING(3, wch);
3858 
3859 	report_count(1);
3860 	report_return(mvwins_wch(win, y, x, wch));
3861 }
3862 
3863 
3864 
3865 void
3866 cmd_ins_nwstr(int nargs, char **args)
3867 {
3868 	ARGC(2);
3869 	ARG_WCHAR_STRING(0, wstr);
3870 	ARG_INT(1, n);
3871 
3872 	report_count(1);
3873 	report_return(ins_nwstr(wstr, n));
3874 }
3875 
3876 
3877 void
3878 cmd_ins_wstr(int nargs, char **args)
3879 {
3880 	ARGC(1);
3881 	ARG_WCHAR_STRING(0, wstr);
3882 
3883 	report_count(1);
3884 	report_return(ins_wstr(wstr));
3885 }
3886 
3887 
3888 void
3889 cmd_mvins_nwstr(int nargs, char **args)
3890 {
3891 	ARGC(4);
3892 	ARG_INT(0, y);
3893 	ARG_INT(1, x);
3894 	ARG_INT(3, n);
3895 	ARG_WCHAR_STRING(2, wstr);
3896 
3897 	report_count(1);
3898 	report_return(mvins_nwstr(y, x, wstr, n));
3899 }
3900 
3901 
3902 void
3903 cmd_mvins_wstr(int nargs, char **args)
3904 {
3905 	ARGC(3);
3906 	ARG_INT(0, y);
3907 	ARG_INT(1, x);
3908 	ARG_WCHAR_STRING(2, wstr);
3909 
3910 	report_count(1);
3911 	report_return(mvins_wstr(y, x, wstr));
3912 }
3913 
3914 
3915 void
3916 cmd_mvwins_nwstr(int nargs, char **args)
3917 {
3918 	ARGC(5);
3919 	ARG_WINDOW(0, win);
3920 	ARG_INT(1, y);
3921 	ARG_INT(2, x);
3922 	ARG_INT(4, n);
3923 	ARG_WCHAR_STRING(3, wstr);
3924 
3925 	report_count(1);
3926 	report_return(mvwins_nwstr(win, y, x, wstr, n));
3927 }
3928 
3929 
3930 void
3931 cmd_mvwins_wstr(int nargs, char **args)
3932 {
3933 	ARGC(4);
3934 	ARG_WINDOW(0, win);
3935 	ARG_INT(1, y);
3936 	ARG_INT(2, x);
3937 	ARG_WCHAR_STRING(3, wstr);
3938 
3939 	report_count(1);
3940 	report_return(mvwins_wstr(win, y, x, wstr));
3941 }
3942 
3943 
3944 void
3945 cmd_wins_nwstr(int nargs, char **args)
3946 {
3947 	ARGC(3);
3948 	ARG_WINDOW(0, win);
3949 	ARG_INT(2, n);
3950 	ARG_WCHAR_STRING(1, wstr);
3951 
3952 	report_count(1);
3953 	report_return(wins_nwstr(win, wstr, n));
3954 }
3955 
3956 
3957 void
3958 cmd_wins_wstr(int nargs, char **args)
3959 {
3960 	ARGC(2);
3961 	ARG_WINDOW(0, win);
3962 	ARG_WCHAR_STRING(1, wstr);
3963 
3964 	report_count(1);
3965 	report_return(wins_wstr(win, wstr));
3966 }
3967 
3968 
3969 
3970 /* input */
3971 void
3972 cmd_get_wch(int nargs, char **args)
3973 {
3974 	wchar_t ch;
3975 	ARGC(0);
3976 
3977 	report_count(2);
3978 	report_return(get_wch(&ch));
3979 	report_wchar(ch);
3980 }
3981 
3982 
3983 void
3984 cmd_unget_wch(int nargs, char **args)
3985 {
3986 	wchar_t *wch;
3987 	ARGC(1);
3988 
3989 	wch = (wchar_t *) args[0];
3990 
3991 	report_count(1);
3992 	report_return(unget_wch(*wch));
3993 }
3994 
3995 
3996 void
3997 cmd_mvget_wch(int nargs, char **args)
3998 {
3999 	wchar_t ch;
4000 
4001 	ARGC(2);
4002 	ARG_INT(0, y);
4003 	ARG_INT(1, x);
4004 
4005 	report_count(2);
4006 	report_return(mvget_wch(y, x, &ch));
4007 	report_wchar(ch);
4008 }
4009 
4010 
4011 void
4012 cmd_mvwget_wch(int nargs, char **args)
4013 {
4014 	wchar_t ch;
4015 
4016 	ARGC(1);	/* FIXME: 3 */
4017 	ARG_WINDOW(0, win);
4018 	ARG_INT(1, y);
4019 	ARG_INT(2, x);
4020 
4021 	report_count(2);
4022 	report_return(mvwget_wch(win, y, x, &ch));
4023 	report_wchar(ch);
4024 }
4025 
4026 
4027 void
4028 cmd_wget_wch(int nargs, char **args)
4029 {
4030 	wchar_t ch;
4031 
4032 	ARGC(1);
4033 	ARG_WINDOW(0, win);
4034 
4035 	report_count(2);
4036 	report_return(wget_wch(win, &ch));
4037 	report_wchar(ch);
4038 }
4039 
4040 
4041 
4042 void
4043 cmd_getn_wstr(int nargs, char **args)
4044 {
4045 	wchar_t wstr[256];
4046 
4047 	ARGC(1);
4048 	ARG_INT(0, n);
4049 
4050 	report_count(2);
4051 	report_return(getn_wstr(wstr, n));
4052 	report_wstr(wstr);
4053 }
4054 
4055 
4056 void
4057 cmd_get_wstr(int nargs, char **args)
4058 {
4059 	wchar_t wstr[256];
4060 
4061 	ARGC(0);
4062 
4063 	report_count(2);
4064 	report_return(get_wstr(wstr));
4065 	report_wstr(wstr);
4066 }
4067 
4068 void
4069 cmd_mvgetn_wstr(int nargs, char **args)
4070 {
4071 	wchar_t wstr[256];
4072 
4073 	ARGC(3);
4074 	ARG_INT(0, y);
4075 	ARG_INT(1, x);
4076 	ARG_INT(2, n);
4077 
4078 	report_count(2);
4079 	report_return(mvgetn_wstr(y, x, wstr, n));
4080 	report_wstr(wstr);
4081 }
4082 
4083 void
4084 cmd_mvget_wstr(int nargs, char **args)
4085 {
4086 	wchar_t wstr[256];
4087 
4088 	ARGC(2);
4089 	ARG_INT(0, y);
4090 	ARG_INT(1, x);
4091 
4092 	report_count(2);
4093 	report_return(mvget_wstr(y, x, wstr));
4094 	report_wstr(wstr);
4095 }
4096 
4097 
4098 void
4099 cmd_mvwgetn_wstr(int nargs, char **args)
4100 {
4101 	wchar_t wstr[256];
4102 
4103 	ARGC(4);
4104 	ARG_WINDOW(0, win);
4105 	ARG_INT(1, y);
4106 	ARG_INT(2, x);
4107 	ARG_INT(3, n);
4108 
4109 	report_count(2);
4110 	report_return(mvwgetn_wstr(win, y, x, wstr, n));
4111 	report_wstr(wstr);
4112 }
4113 
4114 
4115 void
4116 cmd_mvwget_wstr(int nargs, char **args)
4117 {
4118 	wchar_t wstr[256];
4119 
4120 	ARGC(3);
4121 	ARG_WINDOW(0, win);
4122 	ARG_INT(1, y);
4123 	ARG_INT(2, x);
4124 
4125 	report_count(2);
4126 	report_return(mvwget_wstr(win, y, x, wstr));
4127 	report_wstr(wstr);
4128 }
4129 
4130 
4131 void
4132 cmd_wgetn_wstr(int nargs, char **args)
4133 {
4134 	wchar_t wstr[256];
4135 
4136 	ARGC(2);
4137 	ARG_WINDOW(0, win);
4138 	ARG_INT(1, n);
4139 
4140 	report_count(2);
4141 	report_return(wgetn_wstr(win, wstr, n));
4142 	report_wstr(wstr);
4143 }
4144 
4145 
4146 void
4147 cmd_wget_wstr(int nargs, char **args)
4148 {
4149 	wchar_t wstr[256];
4150 
4151 	ARGC(1);
4152 	ARG_WINDOW(0, win);
4153 
4154 	report_count(2);
4155 	report_return(wget_wstr(win, wstr));
4156 	report_wstr(wstr);
4157 }
4158 
4159 
4160 
4161 void
4162 cmd_in_wch(int nargs, char **args)
4163 {
4164 	cchar_t wcval;
4165 	ARGC(0);
4166 
4167 	report_count(2);
4168 	report_return(in_wch(&wcval));
4169 	report_cchar(wcval);
4170 }
4171 
4172 
4173 void
4174 cmd_mvin_wch(int nargs, char **args)
4175 {
4176 	cchar_t wcval;
4177 
4178 	ARGC(2);
4179 	ARG_INT(0, y);
4180 	ARG_INT(1, x);
4181 
4182 	report_count(2);
4183 	report_return(mvin_wch(y, x, &wcval));
4184 	report_cchar(wcval);
4185 }
4186 
4187 
4188 void
4189 cmd_mvwin_wch(int nargs, char **args)
4190 {
4191 	cchar_t wcval;
4192 
4193 	ARGC(3);
4194 	ARG_WINDOW(0, win);
4195 	ARG_INT(1, y);
4196 	ARG_INT(2, x);
4197 
4198 	report_count(2);
4199 	report_return(mvwin_wch(win, y, x, &wcval));
4200 	report_cchar(wcval);
4201 }
4202 
4203 
4204 void
4205 cmd_win_wch(int nargs, char **args)
4206 {
4207 	cchar_t wcval;
4208 
4209 	ARGC(1);
4210 	ARG_WINDOW(0, win);
4211 
4212 	report_count(2);
4213 	report_return(win_wch(win, &wcval));
4214 	report_cchar(wcval);
4215 }
4216 
4217 
4218 void
4219 cmd_in_wchnstr(int nargs, char **args)
4220 {
4221 	ARGC(1);
4222 
4223 	report_count(1);
4224 	report_error("UNSUPPORTED");
4225 }
4226 
4227 
4228 void
4229 cmd_in_wchstr(int nargs, char **args)
4230 {
4231 	ARGC(1);
4232 
4233 	report_count(1);
4234 	report_error("UNSUPPORTED");
4235 }
4236 
4237 
4238 void
4239 cmd_mvin_wchnstr(int nargs, char **args)
4240 {
4241 	ARGC(1);
4242 
4243 	report_count(1);
4244 	report_error("UNSUPPORTED");
4245 }
4246 
4247 
4248 void
4249 cmd_mvin_wchstr(int nargs, char **args)
4250 {
4251 	ARGC(1);
4252 
4253 	report_count(1);
4254 	report_error("UNSUPPORTED");
4255 }
4256 
4257 
4258 void
4259 cmd_mvwin_wchnstr(int nargs, char **args)
4260 {
4261 	ARGC(1);
4262 
4263 	report_count(1);
4264 	report_error("UNSUPPORTED");
4265 }
4266 
4267 
4268 void
4269 cmd_mvwin_wchstr(int nargs, char **args)
4270 {
4271 	ARGC(1);
4272 
4273 	report_count(1);
4274 	report_error("UNSUPPORTED");
4275 }
4276 
4277 
4278 void
4279 cmd_win_wchnstr(int nargs, char **args)
4280 {
4281 	ARGC(1);
4282 
4283 	report_count(1);
4284 	report_error("UNSUPPORTED");
4285 }
4286 
4287 
4288 void
4289 cmd_win_wchstr(int nargs, char **args)
4290 {
4291 	ARGC(1);
4292 
4293 	report_count(1);
4294 	report_error("UNSUPPORTED");
4295 }
4296 
4297 
4298 
4299 void
4300 cmd_innwstr(int nargs, char **args)
4301 {
4302 	wchar_t wstr[256];
4303 
4304 	ARGC(1);
4305 	ARG_INT(0, n);
4306 
4307 	report_count(2);
4308 	report_int(innwstr(wstr, n));
4309 	report_wstr(wstr);
4310 }
4311 
4312 
4313 void
4314 cmd_inwstr(int nargs, char **args)
4315 {
4316 	wchar_t wstr[256];
4317 	ARGC(0);
4318 
4319 	report_count(2);
4320 	report_return(inwstr(wstr));
4321 	report_wstr(wstr);
4322 }
4323 
4324 
4325 void
4326 cmd_mvinnwstr(int nargs, char **args)
4327 {
4328 	wchar_t wstr[256];
4329 
4330 	ARGC(3);
4331 	ARG_INT(0, y);
4332 	ARG_INT(1, x);
4333 	ARG_INT(2, n);
4334 
4335 	report_count(2);
4336 	report_int(mvinnwstr(y, x, wstr, n));
4337 	report_wstr(wstr);
4338 }
4339 
4340 
4341 void
4342 cmd_mvinwstr(int nargs, char **args)
4343 {
4344 	wchar_t wstr[256];
4345 
4346 	ARGC(2);
4347 	ARG_INT(0, y);
4348 	ARG_INT(1, x);
4349 
4350 	report_count(2);
4351 	report_return(mvinwstr(y, x, wstr));
4352 	report_wstr(wstr);
4353 }
4354 
4355 
4356 void
4357 cmd_mvwinnwstr(int nargs, char **args)
4358 {
4359 	wchar_t wstr[256];
4360 
4361 	ARGC(4);
4362 	ARG_WINDOW(0, win);
4363 	ARG_INT(1, y);
4364 	ARG_INT(2, x);
4365 	ARG_INT(3, n);
4366 
4367 	report_count(2);
4368 	report_int(mvwinnwstr(win, y, x, wstr, n));
4369 	report_wstr(wstr);
4370 }
4371 
4372 
4373 void
4374 cmd_mvwinwstr(int nargs, char **args)
4375 {
4376 	wchar_t wstr[256];
4377 
4378 	ARGC(3);
4379 	ARG_WINDOW(0, win);
4380 	ARG_INT(1, y);
4381 	ARG_INT(2, x);
4382 
4383 	report_count(2);
4384 	report_return(mvwinwstr(win, y, x, wstr));
4385 	report_wstr(wstr);
4386 }
4387 
4388 
4389 void
4390 cmd_winnwstr(int nargs, char **args)
4391 {
4392 	wchar_t wstr[256];
4393 
4394 	ARGC(2);
4395 	ARG_WINDOW(0, win);
4396 	ARG_INT(1, n);
4397 
4398 	report_count(2);
4399 	report_int(winnwstr(win, wstr, n));
4400 	report_wstr(wstr);
4401 }
4402 
4403 
4404 void
4405 cmd_winwstr(int nargs, char **args)
4406 {
4407 	wchar_t wstr[256];
4408 
4409 	ARGC(1);
4410 	ARG_WINDOW(0, win);
4411 
4412 	report_count(2);
4413 	report_return(winwstr(win, wstr));
4414 	report_wstr(wstr);
4415 }
4416 
4417 
4418 
4419 /* cchar handling */
4420 void
4421 cmd_setcchar(int nargs, char **args)
4422 {
4423 	cchar_t wcval;
4424 
4425 	ARGC(4);
4426 	ARG_WCHAR_STRING(0, wch);
4427 	ARG_INT(1, attrs);
4428 	ARG_SHORT(2, color_pair);
4429 	/* TODO: arg 3 */
4430 
4431 	report_count(2);
4432 	report_return(setcchar(&wcval, wch, attrs, color_pair, NULL));
4433 	report_cchar(wcval);
4434 }
4435 
4436 
4437 void
4438 cmd_getcchar(int nargs, char **args)
4439 {
4440 	cchar_t *wcval;
4441 	wchar_t wch[256];
4442 	attr_t attrs;
4443 	short color_pair;
4444 
4445 	/*
4446          * XXX - not handling passing of wch as NULL
4447          */
4448 
4449 	ARGC(2);
4450 
4451 	wcval = (cchar_t *) args[0];
4452 
4453 	report_count(4);
4454 	report_return(getcchar(wcval, wch, &attrs, &color_pair, NULL));
4455 	report_wstr(wch);
4456 	report_int(attrs);
4457 	report_int(color_pair);
4458 }
4459 
4460 
4461 
4462 /* misc */
4463 void
4464 cmd_key_name(int nargs, char **args)
4465 {
4466 	wchar_t w;
4467 
4468 	ARGC(1);
4469 
4470 	w = *((wchar_t *) args[0]);
4471 
4472 	report_count(1);
4473 	report_status(key_name(w));
4474 }
4475 
4476 
4477 void
4478 cmd_border_set(int nargs, char **args)
4479 {
4480 	cchar_t *ls, *rs, *ts, *bs, *tl, *tr, *bl, *br;
4481 
4482 	ARGC(8);
4483 
4484 	ls = (cchar_t *) args[0];
4485 	rs = (cchar_t *) args[1];
4486 	ts = (cchar_t *) args[2];
4487 	bs = (cchar_t *) args[3];
4488 	tl = (cchar_t *) args[4];
4489 	tr = (cchar_t *) args[5];
4490 	bl = (cchar_t *) args[6];
4491 	br = (cchar_t *) args[7];
4492 
4493 	report_count(1);
4494 	report_return(border_set(ls, rs, ts, bs, tl, tr, bl, br));
4495 }
4496 
4497 
4498 void
4499 cmd_wborder_set(int nargs, char **args)
4500 {
4501 	cchar_t *ls, *rs, *ts, *bs, *tl, *tr, *bl, *br;
4502 
4503 	ARGC(9);
4504 	ARG_WINDOW(0, win);
4505 
4506 	ls = (cchar_t *) args[1];
4507 	rs = (cchar_t *) args[2];
4508 	ts = (cchar_t *) args[3];
4509 	bs = (cchar_t *) args[4];
4510 	tl = (cchar_t *) args[5];
4511 	tr = (cchar_t *) args[6];
4512 	bl = (cchar_t *) args[7];
4513 	br = (cchar_t *) args[8];
4514 
4515 	report_count(1);
4516 	report_return(wborder_set(win, ls, rs, ts, bs, tl, tr, bl, br));
4517 }
4518 
4519 
4520 void
4521 cmd_box_set(int nargs, char **args)
4522 {
4523 	ARGC(3);
4524 	ARG_WINDOW(0, win);
4525 	ARG_CCHAR_STRING(1, verch);
4526 	ARG_CCHAR_STRING(2, horch);
4527 
4528 	report_count(1);
4529 	report_return(box_set(win, verch, horch));
4530 }
4531 
4532 
4533 void
4534 cmd_erasewchar(int nargs, char **args)
4535 {
4536 	wchar_t ch;
4537 
4538 	ARGC(0);
4539 
4540 	report_count(2);
4541 	report_return(erasewchar(&ch));
4542 	report_wchar(ch);
4543 }
4544 
4545 
4546 void
4547 cmd_killwchar(int nargs, char **args)
4548 {
4549 	wchar_t ch;
4550 
4551 	ARGC(0);
4552 
4553 	report_count(2);
4554 	report_return(killwchar(&ch));
4555 	report_wchar(ch);
4556 }
4557 
4558 
4559 void
4560 cmd_hline_set(int nargs, char **args)
4561 {
4562 	ARGC(2);
4563 	ARG_CCHAR_STRING(0, wch);
4564 	ARG_INT(1, n);
4565 
4566 	report_count(1);
4567 	report_return(hline_set(wch, n));
4568 }
4569 
4570 
4571 void
4572 cmd_mvhline_set(int nargs, char **args)
4573 {
4574 	ARGC(4);
4575 	ARG_INT(0, y);
4576 	ARG_INT(1, x);
4577 	ARG_INT(3, n);
4578 	ARG_CCHAR_STRING(2, wch);
4579 
4580 	report_count(1);
4581 	report_return(mvhline_set(y, x, wch, n));
4582 }
4583 
4584 
4585 void
4586 cmd_mvvline_set(int nargs, char **args)
4587 {
4588 	ARGC(4);
4589 	ARG_INT(0, y);
4590 	ARG_INT(1, x);
4591 	ARG_INT(3, n);
4592 	ARG_CCHAR_STRING(2, wch);
4593 
4594 	report_count(1);
4595 	report_return(mvvline_set(y, x, wch, n));
4596 }
4597 
4598 
4599 void
4600 cmd_mvwhline_set(int nargs, char **args)
4601 {
4602 	ARGC(5);
4603 	ARG_WINDOW(0, win);
4604 	ARG_INT(1, y);
4605 	ARG_INT(2, x);
4606 	ARG_INT(4, n);
4607 	ARG_CCHAR_STRING(3, wch);
4608 
4609 	report_count(1);
4610 	report_return(mvwhline_set(win, y, x, wch, n));
4611 }
4612 
4613 
4614 void
4615 cmd_mvwvline_set(int nargs, char **args)
4616 {
4617 	ARGC(5);
4618 	ARG_WINDOW(0, win);
4619 	ARG_INT(1, y);
4620 	ARG_INT(2, x);
4621 	ARG_INT(4, n);
4622 	ARG_CCHAR_STRING(3, wch);
4623 
4624 	report_count(1);
4625 	report_return(mvwvline_set(win, y, x, wch, n));
4626 }
4627 
4628 
4629 void
4630 cmd_vline_set(int nargs, char **args)
4631 {
4632 	ARGC(2);
4633 	ARG_CCHAR_STRING(0, wch);
4634 	ARG_INT(1, n);
4635 
4636 	report_count(1);
4637 	report_return(vline_set(wch, n));
4638 }
4639 
4640 
4641 void
4642 cmd_whline_set(int nargs, char **args)
4643 {
4644 	ARGC(3);
4645 	ARG_WINDOW(0, win);
4646 	ARG_INT(2, n);
4647 	ARG_CCHAR_STRING(1, wch);
4648 
4649 	report_count(1);
4650 	report_return(whline_set(win, wch, n));
4651 }
4652 
4653 
4654 void
4655 cmd_wvline_set(int nargs, char **args)
4656 {
4657 	ARGC(3);
4658 	ARG_WINDOW(0, win);
4659 	ARG_INT(2, n);
4660 	ARG_CCHAR_STRING(1, wch);
4661 
4662 	report_count(1);
4663 	report_return(wvline_set(win, wch, n));
4664 }
4665 
4666 
4667 void
4668 cmd_bkgrnd(int nargs, char **args)
4669 {
4670 	ARGC(1);
4671 	ARG_CCHAR_STRING(0, wch);
4672 
4673 	report_count(1);
4674 	report_return(bkgrnd(wch));
4675 }
4676 
4677 
4678 void
4679 cmd_bkgrndset(int nargs, char **args)
4680 {
4681 	ARGC(1);
4682 	ARG_CCHAR_STRING(0, wch);
4683 
4684 	report_count(1);
4685 	bkgrndset(wch);
4686 	report_return(OK);
4687 }
4688 
4689 
4690 void
4691 cmd_getbkgrnd(int nargs, char **args)
4692 {
4693 	cchar_t wch;
4694 	ARGC(0);
4695 
4696 	report_count(2);
4697 	report_return(getbkgrnd(&wch));
4698 	report_cchar(wch);
4699 }
4700 
4701 
4702 void
4703 cmd_wbkgrnd(int nargs, char **args)
4704 {
4705 	ARGC(2);
4706 	ARG_WINDOW(0, win);
4707 	ARG_CCHAR_STRING(1, wch);
4708 
4709 	report_count(1);
4710 	report_return(wbkgrnd(win, wch));
4711 }
4712 
4713 
4714 void
4715 cmd_wbkgrndset(int nargs, char **args)
4716 {
4717 	ARGC(2);
4718 	ARG_WINDOW(0, win);
4719 	ARG_CCHAR_STRING(1, wch);
4720 
4721 	report_count(1);
4722 	wbkgrndset(win, wch);
4723 	report_return(OK);
4724 }
4725 
4726 
4727 void
4728 cmd_wgetbkgrnd(int nargs, char **args)
4729 {
4730 	cchar_t wch;
4731 	ARGC(1);
4732 	ARG_WINDOW(0, win);
4733 
4734 	report_count(2);
4735 	report_return(wgetbkgrnd(win, &wch));
4736 	report_cchar(wch);
4737 }
4738 
4739 
4740 void
4741 cmd_immedok(int nargs, char **args)
4742 {
4743 	ARGC(2);
4744 	ARG_WINDOW(0, win);
4745 	ARG_INT(1, bf);
4746 
4747 	report_count(1);
4748 	immedok(win, bf);
4749 	report_return(OK);
4750 }
4751 
4752 void
4753 cmd_syncok(int nargs, char **args)
4754 {
4755 	ARGC(2);
4756 	ARG_WINDOW(0, win);
4757 	ARG_INT(1, bf);
4758 
4759 	report_count(1);
4760 	report_return(syncok(win, bf));
4761 }
4762 
4763 void
4764 cmd_wcursyncup(int nargs, char **args)
4765 {
4766 	ARGC(1);
4767 	ARG_WINDOW(0, win);
4768 
4769 	report_count(1);
4770 	wcursyncup(win);
4771 	report_return(OK);
4772 }
4773 
4774 void
4775 cmd_wsyncup(int nargs, char **args)
4776 {
4777 	ARGC(1);
4778 	ARG_WINDOW(0, win);
4779 
4780 	report_count(1);
4781 	wsyncup(win);
4782 	report_return(OK);
4783 }
4784 
4785 void
4786 cmd_wsyncdown(int nargs, char **args)
4787 {
4788 	ARGC(1);
4789 	ARG_WINDOW(0, win);
4790 
4791 	report_count(1);
4792 	wsyncdown(win);
4793 	report_return(OK);
4794 }
4795 
4796 
4797 /* Soft label key routines */
4798 void
4799 cmd_slk_attroff(int nargs, char **args)
4800 {
4801 	ARGC(1);
4802 	ARG_CHTYPE_STRING(0, ch);
4803 
4804 	report_count(1);
4805 	report_return(slk_attroff(ch[0]));
4806 }
4807 
4808 void
4809 cmd_slk_attr_off(int nargs, char **args)
4810 {
4811 	ARGC(1);
4812 	ARG_INT(0, attrs);
4813 
4814 	report_count(1);
4815 	report_return(slk_attr_off(attrs, NULL));
4816 }
4817 
4818 void
4819 cmd_slk_attron(int nargs, char **args)
4820 {
4821 	ARGC(1);
4822 	ARG_CHTYPE_STRING(0, ch);
4823 
4824 	report_count(1);
4825 	report_return(slk_attron(ch[0]));
4826 }
4827 
4828 void
4829 cmd_slk_attr_on(int nargs, char **args)
4830 {
4831 	ARGC(1);
4832 	ARG_INT(0, attrs);
4833 
4834 	report_count(1);
4835 	report_return(slk_attr_on(attrs, NULL));
4836 }
4837 
4838 void
4839 cmd_slk_attrset(int nargs, char **args)
4840 {
4841 	ARGC(1);
4842 	ARG_CHTYPE_STRING(0, ch);
4843 
4844 	report_count(1);
4845 	report_return(slk_attrset(ch[0]));
4846 }
4847 
4848 void
4849 cmd_slk_attr_set(int nargs, char **args)
4850 {
4851 	ARGC(2);
4852 	ARG_INT(0, attrs);
4853 	ARG_SHORT(1, color_pair_number);
4854 
4855 	report_count(1);
4856 	report_return(slk_attr_set(attrs, color_pair_number, NULL));
4857 }
4858 
4859 void
4860 cmd_slk_clear(int nargs, char **args)
4861 {
4862 	ARGC(0);
4863 
4864 	report_count(1);
4865 	report_return(slk_clear());
4866 }
4867 
4868 void
4869 cmd_slk_color(int nargs, char **args)
4870 {
4871 	ARGC(1);
4872 	ARG_SHORT(0, color_pair_number);
4873 
4874 	report_count(1);
4875 	report_return(slk_color(color_pair_number));
4876 }
4877 
4878 void
4879 cmd_slk_label(int nargs, char **args)
4880 {
4881 	char *label;
4882 
4883 	ARGC(1);
4884 	ARG_INT(0, labnum);
4885 
4886 	label = slk_label(labnum);
4887 	report_count(1);
4888 	if (label == NULL)
4889 		report_status("NULL");
4890 	else
4891 		report_status(label);
4892 }
4893 
4894 void
4895 cmd_slk_noutrefresh(int nargs, char **args)
4896 {
4897 	ARGC(0);
4898 
4899 	report_count(1);
4900 	report_return(slk_noutrefresh());
4901 }
4902 
4903 void
4904 cmd_slk_refresh(int nargs, char **args)
4905 {
4906 	ARGC(0);
4907 
4908 	report_count(1);
4909 	report_return(slk_refresh());
4910 }
4911 
4912 void
4913 cmd_slk_restore(int nargs, char **args)
4914 {
4915 	ARGC(0);
4916 
4917 	report_count(1);
4918 	report_return(slk_restore());
4919 }
4920 
4921 void
4922 cmd_slk_set(int nargs, char **args)
4923 {
4924 	ARGC(3);
4925 	ARG_INT(0, labnum);
4926 	ARG_INT(2, justify);
4927 
4928 	report_count(1);
4929 	report_return(slk_set(labnum, args[1], justify));
4930 }
4931 
4932 void
4933 cmd_slk_touch(int nargs, char **args)
4934 {
4935 	ARGC(0);
4936 
4937 	report_count(1);
4938 	report_return(slk_touch());
4939 }
4940 
4941 void
4942 cmd_slk_wset(int nargs, char **args)
4943 {
4944 	ARGC(3);
4945 	ARG_INT(0, labnum);
4946 	ARG_INT(2, justify);
4947 	ARG_WCHAR_STRING(1, label);
4948 
4949 	report_count(1);
4950 	report_return(slk_wset(labnum, label, justify));
4951 }
4952 
4953 
4954 void
4955 cmd_slk_init(int nargs, char **args)
4956 {
4957 	ARGC(1);
4958 	ARG_INT(0, fmt);
4959 
4960 	report_count(1);
4961 	report_return(slk_init(fmt));
4962 }
4963 
4964 void
4965 cmd_use_env(int nargs, char **args)
4966 {
4967 	ARGC(1);
4968 
4969 	report_count(1);
4970 	report_error("UNSUPPORTED");
4971 }
4972 
4973 void
4974 cmd_ripoffline(int nargs, char **args)
4975 {
4976 	ARGC(1);
4977 
4978 	report_count(1);
4979 	report_error("UNSUPPORTED");
4980 }
4981 
4982 void
4983 cmd_filter(int nargs, char **args)
4984 {
4985 	ARGC(0);
4986 
4987 	report_count(1);
4988 	filter();
4989 	report_return(OK);
4990 }
4991