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