about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xCMakeLists.txt1
-rwxr-xr-xsrc/library_list.h1
-rw-r--r--src/wrapped/generated/functions_list.txt11
-rw-r--r--src/wrapped/generated/wrappedlibncursesw6defs.h8
-rw-r--r--src/wrapped/generated/wrappedlibncursesw6types.h27
-rw-r--r--src/wrapped/generated/wrappedlibncursesw6undefs.h8
-rwxr-xr-xsrc/wrapped/wrappedlibncursesw6.c125
-rwxr-xr-xsrc/wrapped/wrappedlibncursesw6_private.h476
8 files changed, 657 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e46d00ac..94c221be 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -256,6 +256,7 @@ set(WRAPPEDS
     "${BOX64_ROOT}/src/wrapped/wrappedlibncurses.c"
     "${BOX64_ROOT}/src/wrapped/wrappedlibncurses6.c"
     "${BOX64_ROOT}/src/wrapped/wrappedlibncursesw.c"
+    "${BOX64_ROOT}/src/wrapped/wrappedlibncursesw6.c"
     "${BOX64_ROOT}/src/wrapped/wrappedlibogg.c"
     "${BOX64_ROOT}/src/wrapped/wrappedlibpanel.c"
     "${BOX64_ROOT}/src/wrapped/wrappedlibpcre.c"
diff --git a/src/library_list.h b/src/library_list.h
index bc3d910c..cbfdf2fe 100755
--- a/src/library_list.h
+++ b/src/library_list.h
@@ -136,6 +136,7 @@ GO("libSM.so.6", libsm)
 GO("libICE.so.6", libice)
 //GO("libusb-1.0.so.0", libusb1)
 GO("libncursesw.so.5", libncursesw)
+GO("libncursesw.so.6", libncursesw6)
 GO("libform.so.5", libform)
 GO("libformw.so.5", libformw)
 GO("libncurses.so.5", libncurses)
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index a4fdac0d..300baf3d 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -2701,6 +2701,17 @@ wrappedlibncursesw:
   - mvprintw
 - iFpiipV:
   - mvwprintw
+wrappedlibncursesw6:
+- pFv:
+  - initscr
+- iFpV:
+  - printw
+- iFppA:
+  - vwprintw
+- iFiipV:
+  - mvprintw
+- iFpiipV:
+  - mvwprintw
 wrappedlibogg:
 wrappedlibpanel:
 wrappedlibpcre:
diff --git a/src/wrapped/generated/wrappedlibncursesw6defs.h b/src/wrapped/generated/wrappedlibncursesw6defs.h
new file mode 100644
index 00000000..06ed99b9
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibncursesw6defs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.1.0.16) *
+ *******************************************************************/
+#ifndef __wrappedlibncursesw6DEFS_H_
+#define __wrappedlibncursesw6DEFS_H_
+
+
+#endif // __wrappedlibncursesw6DEFS_H_
diff --git a/src/wrapped/generated/wrappedlibncursesw6types.h b/src/wrapped/generated/wrappedlibncursesw6types.h
new file mode 100644
index 00000000..05b89c09
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibncursesw6types.h
@@ -0,0 +1,27 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.1.0.16) *
+ *******************************************************************/
+#ifndef __wrappedlibncursesw6TYPES_H_
+#define __wrappedlibncursesw6TYPES_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef void* (*pFv_t)(void);
+typedef int64_t (*iFpV_t)(void*, ...);
+typedef int64_t (*iFppA_t)(void*, void*, va_list);
+typedef int64_t (*iFiipV_t)(int64_t, int64_t, void*, ...);
+typedef int64_t (*iFpiipV_t)(void*, int64_t, int64_t, void*, ...);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(initscr, pFv_t) \
+	GO(printw, iFpV_t) \
+	GO(vwprintw, iFppA_t) \
+	GO(mvprintw, iFiipV_t) \
+	GO(mvwprintw, iFpiipV_t)
+
+#endif // __wrappedlibncursesw6TYPES_H_
diff --git a/src/wrapped/generated/wrappedlibncursesw6undefs.h b/src/wrapped/generated/wrappedlibncursesw6undefs.h
new file mode 100644
index 00000000..e1b730a9
--- /dev/null
+++ b/src/wrapped/generated/wrappedlibncursesw6undefs.h
@@ -0,0 +1,8 @@
+/*******************************************************************
+ * File automatically generated by rebuild_wrappers.py (v2.1.0.16) *
+ *******************************************************************/
+#ifndef __wrappedlibncursesw6UNDEFS_H_
+#define __wrappedlibncursesw6UNDEFS_H_
+
+
+#endif // __wrappedlibncursesw6UNDEFS_H_
diff --git a/src/wrapped/wrappedlibncursesw6.c b/src/wrapped/wrappedlibncursesw6.c
new file mode 100755
index 00000000..94bec66d
--- /dev/null
+++ b/src/wrapped/wrappedlibncursesw6.c
@@ -0,0 +1,125 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "emu/x64emu_private.h"
+#include "callback.h"
+#include "librarian.h"
+#include "box64context.h"
+#include "emu/x64emu_private.h"
+#include "myalign.h"
+#include "globalsymbols.h"
+
+const char* libncursesw6Name = "libncursesw.so.6";
+#define LIBNAME libncursesw6
+
+static library_t* my_lib = NULL;
+
+#define ADDED_FUNCTIONS() GO(stdscr, void*)
+#include "generated/wrappedlibncurseswtypes.h"
+
+typedef struct libncursesw6_my_s {
+    // functions
+    #define GO(A, B)    B   A;
+    SUPER()
+    #undef GO
+} libncursesw6_my_t;
+
+void* getNCursesw6My(library_t* lib)
+{
+    libncursesw6_my_t* my = (libncursesw6_my_t*)calloc(1, sizeof(libncursesw6_my_t));
+    #define GO(A, W) my->A = (W)dlsym(lib->priv.w.lib, #A);
+    SUPER()
+    #undef GO
+    return my;
+}
+#undef SUPER
+
+void freeNCursesw6My(void* lib)
+{
+    //libncursesw6_my_t *my = (libncursesw6_my_t *)lib;
+}
+
+EXPORT int myw6_mvwprintw(x64emu_t* emu, void* win, int32_t y, int32_t x, void* fmt, void* b)
+{
+    libncursesw6_my_t *my = (libncursesw6_my_t*)my_lib->priv.w.p2;
+
+    char* buf = NULL;
+    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 4);
+    PREPARE_VALIST;
+    int ret = vasprintf(&buf, (const char*)fmt, VARARGS);
+    (void)ret;
+    // pre-bake the fmt/vaarg, because there is no "va_list" version of this function
+    ret = my->mvwprintw(win, y, x, buf);
+    free(buf);
+    return ret;
+}
+
+EXPORT int myw6_printw(x64emu_t* emu, void* fmt, void* b)
+{
+    libncursesw6_my_t *my = (libncursesw6_my_t*)my_lib->priv.w.p2;
+
+    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 1);
+    PREPARE_VALIST;
+    return my->vwprintw(my->stdscr, fmt, VARARGS);
+}
+
+EXPORT int myw6_vwprintw(x64emu_t* emu, void* p, void* fmt, x64_va_list_t b)
+{
+    libncursesw6_my_t *my = (libncursesw6_my_t*)my_lib->priv.w.p2;
+
+    #ifdef CONVERT_VALIST
+    CONVERT_VALIST(b);
+    #else
+    myStackAlignValist(emu, (const char*)fmt, emu->scratch, b);
+    PREPARE_VALIST;
+    #endif
+    return my->vwprintw(p, fmt, VARARGS);
+}
+
+EXPORT int myw6_mvprintw(x64emu_t* emu, int x, int y, void* fmt, void* b)
+{
+    libncursesw6_my_t *my = (libncursesw6_my_t*)my_lib->priv.w.p2;
+
+    char* buf = NULL;
+    myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 3);
+    PREPARE_VALIST;
+    int ret = vasprintf(&buf, (const char*)fmt, VARARGS);
+    (void)ret;
+    // pre-bake the fmt/vaarg, because there is no "va_list" version of this function
+    ret = my->mvprintw(x, y, buf);
+    free(buf);
+    return ret;
+}
+
+EXPORT void* myw6_initscr()
+{
+    libncursesw6_my_t *my = (libncursesw6_my_t*)my_lib->priv.w.p2;
+    void* ret = my->initscr();
+    my_checkGlobalTInfo();
+    return ret;
+}
+
+#define CUSTOM_INIT \
+    lib->priv.w.p2 = getNCursesw6My(lib); \
+    my_lib = lib;   \
+    lib->altmy = strdup("myw6_"); \
+    lib->priv.w.needed = 1; \
+    lib->priv.w.neededlibs = (char**)calloc(lib->priv.w.needed, sizeof(char*)); \
+    lib->priv.w.neededlibs[0] = strdup("libtinfo.so.6");
+
+#define CUSTOM_FINI \
+    freeNCursesw6My(lib->priv.w.p2); \
+    free(lib->priv.w.p2);           \
+    my_lib = NULL;
+
+#include "wrappedlib_init.h"
diff --git a/src/wrapped/wrappedlibncursesw6_private.h b/src/wrapped/wrappedlibncursesw6_private.h
new file mode 100755
index 00000000..ef182ab4
--- /dev/null
+++ b/src/wrapped/wrappedlibncursesw6_private.h
@@ -0,0 +1,476 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh....
+#endif
+
+GO(COLOR_PAIR, iFi)
+GO(PAIR_NUMBER, iFi)
+GO(_traceattr, pFu)
+GO(_traceattr2, pFiu)
+GO(_tracecchar_t, pFp)
+GO(_tracecchar_t2, pFip)
+GO(_tracechar, pFi)
+GO(_tracechtype, pFu)
+GO(_tracechtype2, pFiu)
+//GO(_tracef, vFpV)
+GO(add_wch, iFp)
+GO(add_wchnstr, iFpi)
+GO(add_wchstr, iFp)
+GO(addch, iFu)
+GO(addchnstr, iFpi)
+GO(addchstr, iFp)
+GO(addnstr, iFpi)
+GO(addnwstr, iFpi)
+GO(addstr, iFp)
+GO(addwstr, iFp)
+GO(alloc_pair, iFii)
+GO(alloc_pair_sp, iFpii)
+GO(assume_default_colors, iFii)
+GO(assume_default_colors_sp, iFpii)
+GO(attr_get, iFppp)
+GO(attr_off, iFup)
+GO(attr_on, iFup)
+GO(attr_set, iFuwp)
+GO(attroff, iFi)
+GO(attron, iFi)
+GO(attrset, iFi)
+GO(beep, iFv)
+GO(beep_sp, iFp)
+GO(bkgd, iFu)
+GO(bkgdset, vFu)
+GO(bkgrnd, iFp)
+GO(bkgrndset, vFp)
+GO(border, iFuuuuuuuu)
+GO(border_set, iFpppppppp)
+GO(box, iFpuu)
+GO(box_set, iFppp)
+GO(can_change_color, iFv)
+GO(can_change_color_sp, iFp)
+GO(chgat, iFiuwp)
+GO(clear, iFv)
+GO(clearok, iFpi)
+GO(clrtobot, iFv)
+GO(clrtoeol, iFv)
+GO(color_content, iFwppp)
+GO(color_content_sp, iFpwppp)
+GO(color_set, iFwp)
+GO(copywin, iFppiiiiiii)
+GO(curses_trace, uFu)
+GO(delch, iFv)
+GO(deleteln, iFv)
+GO(delscreen, vFp)
+GO(delwin, iFp)
+GO(derwin, pFpiiii)
+GO(doupdate, iFv)
+GO(doupdate_sp, iFp)
+GO(dupwin, pFp)
+GO(echo, iFv)
+GO(echo_sp, iFp)
+GO(echo_wchar, iFp)
+GO(echochar, iFu)
+GO(endwin, iFv)
+GO(endwin_sp, iFp)
+GO(erase, iFv)
+GO(erasewchar, iFp)
+GO(exit_curses, vFi)
+GO(extended_color_content, iFippp)
+GO(extended_color_content_sp, iFpippp)
+GO(extended_pair_content, iFipp)
+GO(extended_pair_content_sp, iFpipp)
+GO(extended_slk_color, iFi)
+GO(extended_slk_color_sp, iFpi)
+GO(filter, vFv)
+GO(filter_sp, vFp)
+GO(find_pair, iFii)
+GO(find_pair_sp, iFpii)
+GO(flash, iFv)
+GO(flash_sp, iFp)
+GO(free_pair, iFi)
+GO(free_pair_sp, iFpi)
+GO(get_escdelay, iFv)
+GO(get_escdelay_sp, iFp)
+GO(get_wch, iFp)
+GO(get_wstr, iFp)
+GO(getattrs, iFp)
+GO(getbegx, iFp)
+GO(getbegy, iFp)
+GO(getbkgd, uFp)
+GO(getbkgrnd, iFp)
+GO(getcchar, iFppppp)
+GO(getch, iFv)
+GO(getcurx, iFp)
+GO(getcury, iFp)
+GO(getmaxx, iFp)
+GO(getmaxy, iFp)
+GO(getmouse, iFp)
+GO(getmouse_sp, iFpp)
+GO(getn_wstr, iFpi)
+GO(getnstr, iFpi)
+GO(getparx, iFp)
+GO(getpary, iFp)
+GO(getstr, iFp)
+GO(getwin, pFp)
+GO(getwin_sp, pFpp)
+GO(has_colors, iFv)
+GO(has_colors_sp, iFp)
+GO(has_mouse, iFv)
+GO(has_mouse_sp, iFp)
+GO(hline, iFui)
+GO(hline_set, iFpi)
+GO(immedok, vFpi)
+GO(in_wch, iFp)
+GO(in_wchnstr, iFpi)
+GO(in_wchstr, iFp)
+GO(inch, uFv)
+GO(inchnstr, iFpi)
+GO(inchstr, iFp)
+GO(init_color, iFwwww)
+GO(init_color_sp, iFpwwww)
+GO(init_extended_color, iFiiii)
+GO(init_extended_color_sp, iFpiiii)
+GO(init_extended_pair, iFiii)
+GO(init_extended_pair_sp, iFpiii)
+GO(init_pair, iFwww)
+GO(init_pair_sp, iFpwww)
+GOM(initscr, pFv)
+GO(innstr, iFpi)
+GO(innwstr, iFpi)
+GO(ins_nwstr, iFpi)
+GO(ins_wch, iFp)
+GO(ins_wstr, iFp)
+GO(insch, iFu)
+GO(insdelln, iFi)
+GO(insertln, iFv)
+GO(insnstr, iFpi)
+GO(insstr, iFp)
+GO(instr, iFp)
+GO(inwstr, iFp)
+GO(is_cleared, iFp)
+GO(is_idcok, iFp)
+GO(is_idlok, iFp)
+GO(is_immedok, iFp)
+GO(is_keypad, iFp)
+GO(is_leaveok, iFp)
+GO(is_linetouched, iFpi)
+GO(is_nodelay, iFp)
+GO(is_notimeout, iFp)
+GO(is_pad, iFp)
+GO(is_scrollok, iFp)
+GO(is_subwin, iFp)
+GO(is_syncok, iFp)
+GO(is_term_resized, iFii)
+GO(is_term_resized_sp, iFpii)
+GO(is_wintouched, iFp)
+GO(isendwin, iFv)
+GO(isendwin_sp, iFp)
+GO(key_name, pFi)
+GO(killwchar, iFp)
+GO(leaveok, iFpi)
+GO(mcprint, iFpi)
+GO(mcprint_sp, iFppi)
+GO(mouse_trafo, iFppi)
+GO(mouseinterval, iFi)
+GO(mouseinterval_sp, iFpi)
+GO(mousemask, uFup)
+GO(mousemask_sp, uFpup)
+GO(move, iFii)
+GO(mvadd_wch, iFiip)
+GO(mvadd_wchnstr, iFiipi)
+GO(mvadd_wchstr, iFiip)
+GO(mvaddch, iFiiu)
+GO(mvaddchnstr, iFiipi)
+GO(mvaddchstr, iFiip)
+GO(mvaddnstr, iFiipi)
+GO(mvaddnwstr, iFiipi)
+GO(mvaddstr, iFiip)
+GO(mvaddwstr, iFiip)
+GO(mvchgat, iFiiiuwp)
+GO(mvcur, iFiiii)
+GO(mvcur_sp, iFpiiii)
+GO(mvdelch, iFii)
+GO(mvderwin, iFpii)
+GO(mvget_wch, iFiip)
+GO(mvget_wstr, iFiip)
+GO(mvgetch, iFii)
+GO(mvgetn_wstr, iFiipi)
+GO(mvgetnstr, iFiipi)
+GO(mvgetstr, iFiip)
+GO(mvhline, iFiiui)
+GO(mvhline_set, iFiipi)
+GO(mvin_wch, iFiip)
+GO(mvin_wchnstr, iFiipi)
+GO(mvin_wchstr, iFiip)
+GO(mvinch, uFii)
+GO(mvinchnstr, iFiipi)
+GO(mvinchstr, iFiip)
+GO(mvinnstr, iFiipi)
+GO(mvinnwstr, iFiipi)
+GO(mvins_nwstr, iFiipi)
+GO(mvins_wch, iFiip)
+GO(mvins_wstr, iFiip)
+GO(mvinsch, iFiiu)
+GO(mvinsnstr, iFiipi)
+GO(mvinsstr, iFiip)
+GO(mvinstr, iFiip)
+GO(mvinwstr, iFiip)
+GOM(mvprintw, iFEiipV)
+//GO(mvscanw, iFiipV)
+GO(mvvline, iFiiui)
+GO(mvvline_set, iFiipi)
+GO(mvwadd_wch, iFpiip)
+GO(mvwadd_wchnstr, iFpiipi)
+GO(mvwadd_wchstr, iFpiip)
+GO(mvwaddch, iFpiiu)
+GO(mvwaddchnstr, iFpiipi)
+GO(mvwaddchstr, iFpiip)
+GO(mvwaddnstr, iFpiipi)
+GO(mvwaddnwstr, iFpiipi)
+GO(mvwaddstr, iFpiip)
+GO(mvwaddwstr, iFpiip)
+GO(mvwchgat, iFpiiiuwp)
+GO(mvwdelch, iFpii)
+GO(mvwget_wch, iFpiip)
+GO(mvwget_wstr, iFpiip)
+GO(mvwgetch, iFpii)
+GO(mvwgetn_wstr, iFpiipi)
+GO(mvwgetnstr, iFpiipi)
+GO(mvwgetstr, iFpiip)
+GO(mvwhline, iFpiiui)
+GO(mvwhline_set, iFpiipi)
+GO(mvwin, iFpii)
+GO(mvwin_wch, iFpiip)
+GO(mvwin_wchnstr, iFpiipi)
+GO(mvwin_wchstr, iFpiip)
+GO(mvwinch, uFpii)
+GO(mvwinchnstr, iFpiipi)
+GO(mvwinchstr, iFpiip)
+GO(mvwinnstr, iFpiipi)
+GO(mvwinnwstr, iFpiipi)
+GO(mvwins_nwstr, iFpiipi)
+GO(mvwins_wch, iFpiip)
+GO(mvwins_wstr, iFpiip)
+GO(mvwinsch, iFpiiu)
+GO(mvwinsnstr, iFpiipi)
+GO(mvwinsstr, iFpiip)
+GO(mvwinstr, iFpiip)
+GO(mvwinwstr, iFpiip)
+GOM(mvwprintw, iFEpiipV)
+//GO(mvwscanw, iFpiipV)
+GO(mvwvline, iFpiiui)
+GO(mvwvline_set, iFpiipi)
+GO(new_prescr, pFv)
+GO(newpad, pFii)
+GO(newpad_sp, pFpii)
+GO(newterm, pFppp)
+GO(newterm_sp, pFpppp)
+GO(newwin, pFiiii)
+GO(newwin_sp, pFpiiii)
+GO(nl, iFv)
+GO(nl_sp, iFp)
+GO(noecho, iFv)
+GO(noecho_sp, iFp)
+GO(nofilter, vFv)
+GO(nofilter_sp, vFp)
+GO(nonl, iFv)
+GO(nonl_sp, iFp)
+GO(overlay, iFpp)
+GO(overwrite, iFpp)
+GO(pair_content, iFwpp)
+GO(pair_content_sp, iFpwpp)
+GO(pecho_wchar, iFpp)
+GO(pechochar, iFpu)
+GO(pnoutrefresh, iFpiiiiii)
+GO(prefresh, iFpiiiiii)
+GOM(printw, iFEpV)
+GO(putwin, iFpp)
+GO(redrawwin, iFp)
+GO(refresh, iFv)
+GO(reset_color_pairs, vFv)
+GO(reset_color_pairs_sp, vFp)
+GO(resize_term, iFii)
+GO(resize_term_sp, iFpii)
+GO(resizeterm, iFii)
+GO(resizeterm_sp, iFpii)
+//GO(ripoffline, iFi@)
+//GO(ripoffline_sp, iFpi@)
+//GO(scanw, iFpV)
+GO(scr_dump, iFp)
+GO(scr_init, iFp)
+GO(scr_init_sp, iFpp)
+GO(scr_restore, iFp)
+GO(scr_restore_sp, iFpp)
+GO(scr_set, iFp)
+GO(scr_set_sp, iFpp)
+GO(scrl, iFi)
+GO(scroll, iFp)
+GO(scrollok, iFpi)
+GO(set_escdelay, iFi)
+GO(set_escdelay_sp, iFpi)
+GO(set_term, pFp)
+GO(setcchar, iFppuwp)
+GO(setscrreg, iFii)
+GO(slk_attr, uFv)
+GO(slk_attr_off, iFup)
+GO(slk_attr_on, iFup)
+GO(slk_attr_set, iFuwp)
+GO(slk_attr_set_sp, iFpuwp)
+GO(slk_attr_sp, uFp)
+GO(slk_attroff, iFu)
+GO(slk_attroff_sp, iFpu)
+GO(slk_attron, iFu)
+GO(slk_attron_sp, iFpu)
+GO(slk_attrset, iFu)
+GO(slk_attrset_sp, iFpu)
+GO(slk_clear, iFv)
+GO(slk_clear_sp, iFp)
+GO(slk_color, iFw)
+GO(slk_color_sp, iFpw)
+GO(slk_init, iFi)
+GO(slk_init_sp, iFpi)
+GO(slk_label, pFi)
+GO(slk_label_sp, pFpi)
+GO(slk_noutrefresh, iFv)
+GO(slk_noutrefresh_sp, iFp)
+GO(slk_refresh, iFv)
+GO(slk_refresh_sp, iFp)
+GO(slk_restore, iFv)
+GO(slk_restore_sp, iFp)
+GO(slk_set, iFipi)
+GO(slk_set_sp, iFpipi)
+GO(slk_touch, iFv)
+GO(slk_touch_sp, iFp)
+GO(slk_wset, iFipi)
+GO(standend, iFv)
+GO(standout, iFv)
+GO(start_color, iFv)
+GO(start_color_sp, iFp)
+GO(subpad, pFpiiii)
+GO(subwin, pFpiiii)
+GO(syncok, iFpi)
+GO(term_attrs, uFv)
+GO(term_attrs_sp, uFp)
+GO(termattrs, uFv)
+GO(termattrs_sp, uFp)
+GO(timeout, vFi)
+GO(touchline, iFpii)
+GO(touchwin, iFp)
+GO(trace, vFu)
+GO(unget_wch, iFi)
+GO(unget_wch_sp, iFpi)
+GO(ungetch, iFi)
+GO(ungetch_sp, iFpi)
+GO(ungetmouse, iFp)
+GO(ungetmouse_sp, iFpp)
+GO(untouchwin, iFp)
+GO(use_default_colors, iFv)
+GO(use_default_colors_sp, iFp)
+GO(use_legacy_coding, iFi)
+GO(use_legacy_coding_sp, iFpi)
+//GO(use_screen, iFp@p)
+GO(use_tioctl, vFi)
+GO(use_tioctl_sp, vFpi)
+//GO(use_window, iFp@p)
+GO(vid_attr, iFuwp)
+GO(vid_attr_sp, iFpuwp)
+//GO(vid_puts, iFuwp@)
+//GO(vid_puts_sp, iFpuwp@)
+GO(vidattr, iFu)
+GO(vidattr_sp, iFpu)
+//GO(vidputs, iFu@)
+//GO(vidputs_sp, iFpu@)
+GO(vline, iFui)
+GO(vline_set, iFpi)
+//GO(vw_printw, iFppA)
+//GO(vw_scanw, iFppA)
+GOM(vwprintw, iFEppA)
+//GO(vwscanw, iFppA)
+GO(wadd_wch, iFpp)
+GO(wadd_wchnstr, iFppi)
+GO(wadd_wchstr, iFpp)
+GO(waddch, iFpu)
+GO(waddchnstr, iFppi)
+GO(waddchstr, iFpp)
+GO(waddnstr, iFppi)
+GO(waddnwstr, iFppi)
+GO(waddstr, iFpp)
+GO(waddwstr, iFpp)
+GO(wattr_get, iFpppp)
+GO(wattr_off, iFpup)
+GO(wattr_on, iFpup)
+GO(wattr_set, iFpuwp)
+GO(wattroff, iFpi)
+GO(wattron, iFpi)
+GO(wattrset, iFpi)
+GO(wbkgd, iFpu)
+GO(wbkgdset, vFpu)
+GO(wbkgrnd, iFpp)
+GO(wbkgrndset, vFpp)
+GO(wborder, iFpuuuuuuuu)
+GO(wborder_set, iFppppppppp)
+GO(wchgat, iFpiuwp)
+GO(wclear, iFp)
+GO(wclrtobot, iFp)
+GO(wclrtoeol, iFp)
+GO(wcolor_set, iFpwp)
+GO(wcursyncup, vFp)
+GO(wdelch, iFp)
+GO(wdeleteln, iFp)
+GO(wecho_wchar, iFpp)
+GO(wechochar, iFpu)
+GO(wenclose, iFpii)
+GO(werase, iFp)
+GO(wget_wch, iFpp)
+GO(wget_wstr, iFpp)
+GO(wgetbkgrnd, iFpp)
+GO(wgetch, iFp)
+GO(wgetch_events, iFpp) // Experimental (absent on some builds)
+GO(wgetdelay, iFp)
+GO(wgetn_wstr, iFppi)
+GO(wgetnstr, iFppi)
+GO(wgetnstr_events, iFppip)
+GO(wgetparent, pFp)
+GO(wgetscrreg, iFppp)
+GO(wgetstr, iFpp)
+GO(whline, iFpui)
+GO(whline_set, iFppi)
+GO(win_wch, iFpp)
+GO(win_wchnstr, iFppi)
+GO(win_wchstr, iFpp)
+GO(winch, uFp)
+GO(winchnstr, iFppi)
+GO(winchstr, iFpp)
+GO(winnstr, iFppi)
+GO(winnwstr, iFppi)
+GO(wins_nwstr, iFppi)
+GO(wins_wch, iFpp)
+GO(wins_wstr, iFpp)
+GO(winsch, iFpu)
+GO(winsdelln, iFpi)
+GO(winsertln, iFp)
+GO(winsnstr, iFppi)
+GO(winsstr, iFpp)
+GO(winstr, iFpp)
+GO(winwstr, iFpp)
+GO(wmouse_trafo, iFpppi)
+GO(wmove, iFpii)
+GO(wnoutrefresh, iFp)
+//GO(wprintw, iFppV)
+GO(wredrawln, iFpii)
+GO(wrefresh, iFp)
+GO(wresize, iFpii)
+//GO(wscanw, iFppV)
+GO(wscrl, iFpi)
+GO(wsetscrreg, iFpii)
+GO(wstandend, iFp)
+GO(wstandout, iFp)
+GO(wsyncdown, vFp)
+GO(wsyncup, vFp)
+GO(wtouchln, iFpiii)
+GO(wunctrl, pFp)
+GO(wunctrl_sp, pFpp)
+GO(wvline, iFpui)
+GO(wvline_set, iFppi)
+
+DATA(COLOR_PAIRS, sizeof(void*))
+DATA(COLORS, sizeof(void*))
+DATA(ESCDELAY, sizeof(void*))
+DATA(_nc_wacs, sizeof(void*))