curses 1.2.6 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/macos.yml +19 -0
- data/.github/workflows/ubuntu.yml +26 -0
- data/.github/workflows/windows.yml +28 -0
- data/.gitmodules +1 -1
- data/.travis.yml +6 -3
- data/History.md +40 -0
- data/README.md +4 -1
- data/Rakefile +0 -83
- data/curses.gemspec +2 -3
- data/ext/curses/curses.c +1271 -151
- data/ext/curses/extconf.rb +140 -17
- data/lib/curses.rb +5 -12
- data/sample/form.rb +52 -0
- data/sample/menu.rb +1 -1
- data/vendor/PDCurses/.gitignore +47 -0
- data/vendor/PDCurses/.travis.yml +49 -0
- data/vendor/PDCurses/CMakeLists.txt +68 -0
- data/vendor/PDCurses/HISTORY.md +2036 -0
- data/vendor/PDCurses/IMPLEMNT.md +327 -0
- data/vendor/PDCurses/README.md +77 -0
- data/vendor/PDCurses/acs_defs.h +265 -0
- data/vendor/PDCurses/appveyor.yml +218 -0
- data/vendor/PDCurses/cmake/README.md +71 -0
- data/vendor/PDCurses/cmake/build_dependencies.cmake +178 -0
- data/vendor/PDCurses/cmake/build_options.cmake +25 -0
- data/vendor/PDCurses/cmake/dll_version.cmake +26 -0
- data/vendor/PDCurses/cmake/gen_config_header.cmake +43 -0
- data/vendor/PDCurses/cmake/get_version.cmake +17 -0
- data/vendor/PDCurses/cmake/make_uninstall.cmake +19 -0
- data/vendor/PDCurses/cmake/project_common.cmake +121 -0
- data/vendor/PDCurses/cmake/resource.in.cmake +52 -0
- data/vendor/PDCurses/cmake/sdl2_ttf/CMakeLists.txt +83 -0
- data/vendor/PDCurses/cmake/target_arch.cmake +36 -0
- data/vendor/PDCurses/cmake/version.in.cmake +73 -0
- data/vendor/PDCurses/cmake/watcom_open_dos16_toolchain.cmake +96 -0
- data/vendor/PDCurses/cmake/watcom_open_dos32_toolchain.cmake +106 -0
- data/vendor/PDCurses/cmake/watcom_open_os2v2_toolchain.cmake +105 -0
- data/vendor/PDCurses/curses.h +1846 -0
- data/vendor/PDCurses/curspriv.h +134 -0
- data/vendor/PDCurses/demos/README.md +25 -0
- data/vendor/PDCurses/demos/firework.c +144 -0
- data/vendor/PDCurses/demos/newtest.c +581 -0
- data/vendor/PDCurses/demos/ozdemo.c +447 -0
- data/vendor/PDCurses/demos/ptest.c +283 -0
- data/vendor/PDCurses/demos/rain.c +157 -0
- data/vendor/PDCurses/demos/testcurs.c +1607 -0
- data/vendor/PDCurses/demos/tui.c +1048 -0
- data/vendor/PDCurses/demos/tui.h +65 -0
- data/vendor/PDCurses/demos/tuidemo.c +233 -0
- data/vendor/PDCurses/demos/version.c +61 -0
- data/vendor/PDCurses/demos/worm.c +432 -0
- data/vendor/PDCurses/demos/xmas.c +955 -0
- data/vendor/PDCurses/dos/CMakeLists.txt +47 -0
- data/vendor/PDCurses/dos/Makefile.bcc +83 -0
- data/vendor/PDCurses/dos/Makefile.dmc +257 -0
- data/vendor/PDCurses/dos/Makefile.msc +113 -0
- data/vendor/PDCurses/dos/Makefile.wcc +107 -0
- data/vendor/PDCurses/dos/README.md +51 -0
- data/vendor/PDCurses/dos/bccdos.lrf +9 -0
- data/vendor/PDCurses/dos/mscdos.lrf +50 -0
- data/vendor/PDCurses/dos/pdcclip.c +132 -0
- data/vendor/PDCurses/dos/pdcdisp.c +135 -0
- data/vendor/PDCurses/dos/pdcdos.h +194 -0
- data/vendor/PDCurses/dos/pdcgetsc.c +98 -0
- data/vendor/PDCurses/dos/pdckbd.c +513 -0
- data/vendor/PDCurses/dos/pdcscrn.c +785 -0
- data/vendor/PDCurses/dos/pdcsetsc.c +101 -0
- data/vendor/PDCurses/dos/pdcutil.c +212 -0
- data/vendor/PDCurses/libobjs.mif +26 -0
- data/vendor/PDCurses/makedist.mif +20 -0
- data/vendor/PDCurses/man/README.md +21 -0
- data/vendor/PDCurses/man/intro.md +361 -0
- data/vendor/PDCurses/man/manext.c +119 -0
- data/vendor/PDCurses/man/sdl.md +152 -0
- data/vendor/PDCurses/man/sdl2.md +58 -0
- data/vendor/PDCurses/man/x11.md +407 -0
- data/vendor/PDCurses/ncurses/CMakeLists.txt +66 -0
- data/vendor/PDCurses/ncurses/README.md +26 -0
- data/vendor/PDCurses/ncurses/makefile +29 -0
- data/vendor/PDCurses/os2/CMakeLists.txt +41 -0
- data/vendor/PDCurses/os2/Makefile.bcc +90 -0
- data/vendor/PDCurses/os2/Makefile.wcc +43 -0
- data/vendor/PDCurses/os2/README.md +43 -0
- data/vendor/PDCurses/os2/iccos2.lrf +50 -0
- data/vendor/PDCurses/os2/iccos2.mak +256 -0
- data/vendor/PDCurses/os2/pdcclip.c +188 -0
- data/vendor/PDCurses/os2/pdcdisp.c +93 -0
- data/vendor/PDCurses/os2/pdcgetsc.c +89 -0
- data/vendor/PDCurses/os2/pdckbd.c +521 -0
- data/vendor/PDCurses/os2/pdcos2.h +55 -0
- data/vendor/PDCurses/os2/pdcscrn.c +449 -0
- data/vendor/PDCurses/os2/pdcsetsc.c +112 -0
- data/vendor/PDCurses/os2/pdcutil.c +52 -0
- data/vendor/PDCurses/panel.h +56 -0
- data/vendor/PDCurses/pdcurses/README.md +25 -0
- data/vendor/PDCurses/pdcurses/addch.c +693 -0
- data/vendor/PDCurses/pdcurses/addchstr.c +245 -0
- data/vendor/PDCurses/pdcurses/addstr.c +240 -0
- data/vendor/PDCurses/pdcurses/attr.c +359 -0
- data/vendor/PDCurses/pdcurses/beep.c +68 -0
- data/vendor/PDCurses/pdcurses/bkgd.c +223 -0
- data/vendor/PDCurses/pdcurses/border.c +411 -0
- data/vendor/PDCurses/pdcurses/clear.c +159 -0
- data/vendor/PDCurses/pdcurses/color.c +298 -0
- data/vendor/PDCurses/pdcurses/debug.c +109 -0
- data/vendor/PDCurses/pdcurses/delch.c +96 -0
- data/vendor/PDCurses/pdcurses/deleteln.c +211 -0
- data/vendor/PDCurses/pdcurses/deprec.c +27 -0
- data/vendor/PDCurses/pdcurses/getch.c +417 -0
- data/vendor/PDCurses/pdcurses/getstr.c +474 -0
- data/vendor/PDCurses/pdcurses/getyx.c +139 -0
- data/vendor/PDCurses/pdcurses/inch.c +127 -0
- data/vendor/PDCurses/pdcurses/inchstr.c +214 -0
- data/vendor/PDCurses/pdcurses/initscr.c +367 -0
- data/vendor/PDCurses/pdcurses/inopts.c +324 -0
- data/vendor/PDCurses/pdcurses/insch.c +271 -0
- data/vendor/PDCurses/pdcurses/insstr.c +264 -0
- data/vendor/PDCurses/pdcurses/instr.c +246 -0
- data/vendor/PDCurses/pdcurses/kernel.c +259 -0
- data/vendor/PDCurses/pdcurses/keyname.c +157 -0
- data/vendor/PDCurses/pdcurses/mouse.c +438 -0
- data/vendor/PDCurses/pdcurses/move.c +57 -0
- data/vendor/PDCurses/pdcurses/outopts.c +159 -0
- data/vendor/PDCurses/pdcurses/overlay.c +214 -0
- data/vendor/PDCurses/pdcurses/pad.c +260 -0
- data/vendor/PDCurses/pdcurses/panel.c +633 -0
- data/vendor/PDCurses/pdcurses/printw.c +126 -0
- data/vendor/PDCurses/pdcurses/refresh.c +279 -0
- data/vendor/PDCurses/pdcurses/scanw.c +578 -0
- data/vendor/PDCurses/pdcurses/scr_dump.c +213 -0
- data/vendor/PDCurses/pdcurses/scroll.c +101 -0
- data/vendor/PDCurses/pdcurses/slk.c +591 -0
- data/vendor/PDCurses/pdcurses/termattr.c +182 -0
- data/vendor/PDCurses/pdcurses/terminfo.c +217 -0
- data/vendor/PDCurses/pdcurses/touch.c +163 -0
- data/vendor/PDCurses/pdcurses/util.c +312 -0
- data/vendor/PDCurses/pdcurses/window.c +569 -0
- data/vendor/PDCurses/sdl1/Makefile.mng +110 -0
- data/vendor/PDCurses/sdl1/README.md +31 -0
- data/vendor/PDCurses/sdl1/deffont.h +385 -0
- data/vendor/PDCurses/sdl1/deficon.h +23 -0
- data/vendor/PDCurses/sdl1/pdcclip.c +131 -0
- data/vendor/PDCurses/sdl1/pdcdisp.c +373 -0
- data/vendor/PDCurses/sdl1/pdcgetsc.c +30 -0
- data/vendor/PDCurses/sdl1/pdckbd.c +405 -0
- data/vendor/PDCurses/sdl1/pdcscrn.c +414 -0
- data/vendor/PDCurses/sdl1/pdcsdl.h +31 -0
- data/vendor/PDCurses/sdl1/pdcsetsc.c +64 -0
- data/vendor/PDCurses/sdl1/pdcutil.c +40 -0
- data/vendor/PDCurses/sdl1/sdltest.c +79 -0
- data/vendor/PDCurses/sdl2/CMakeLists.txt +76 -0
- data/vendor/PDCurses/sdl2/Makefile.vc +164 -0
- data/vendor/PDCurses/sdl2/README.md +34 -0
- data/vendor/PDCurses/sdl2/deffont.h +385 -0
- data/vendor/PDCurses/sdl2/deficon.h +23 -0
- data/vendor/PDCurses/sdl2/pdcclip.c +93 -0
- data/vendor/PDCurses/sdl2/pdcdisp.c +534 -0
- data/vendor/PDCurses/sdl2/pdcgetsc.c +30 -0
- data/vendor/PDCurses/sdl2/pdckbd.c +480 -0
- data/vendor/PDCurses/sdl2/pdcscrn.c +443 -0
- data/vendor/PDCurses/sdl2/pdcsdl.h +33 -0
- data/vendor/PDCurses/sdl2/pdcsetsc.c +67 -0
- data/vendor/PDCurses/sdl2/pdcutil.c +39 -0
- data/vendor/PDCurses/sdl2/sdltest.c +81 -0
- data/vendor/PDCurses/term.h +48 -0
- data/vendor/PDCurses/version.mif +7 -0
- data/vendor/PDCurses/vt/CMakeLists.txt +28 -0
- data/vendor/PDCurses/vt/Makefile.bcc +111 -0
- data/vendor/PDCurses/vt/Makefile.dmc +258 -0
- data/vendor/PDCurses/vt/Makefile.vc +144 -0
- data/vendor/PDCurses/vt/Makefile.wcc +107 -0
- data/vendor/PDCurses/vt/README.md +64 -0
- data/vendor/PDCurses/vt/pdcclip.c +20 -0
- data/vendor/PDCurses/vt/pdcdisp.c +284 -0
- data/vendor/PDCurses/vt/pdcgetsc.c +27 -0
- data/vendor/PDCurses/vt/pdckbd.c +394 -0
- data/vendor/PDCurses/vt/pdcscrn.c +434 -0
- data/vendor/PDCurses/vt/pdcsetsc.c +45 -0
- data/vendor/PDCurses/vt/pdcutil.c +43 -0
- data/vendor/PDCurses/vt/pdcvt.h +16 -0
- data/vendor/PDCurses/watcom.mif +68 -0
- data/vendor/PDCurses/wincon/CMakeLists.txt +27 -0
- data/vendor/PDCurses/wincon/Makefile.bcc +88 -0
- data/vendor/PDCurses/wincon/Makefile.dmc +256 -0
- data/vendor/PDCurses/wincon/Makefile.lcc +273 -0
- data/vendor/PDCurses/wincon/Makefile.mng +176 -0
- data/vendor/PDCurses/wincon/Makefile.vc +144 -0
- data/vendor/PDCurses/wincon/Makefile.wcc +51 -0
- data/vendor/PDCurses/wincon/README.md +85 -0
- data/vendor/PDCurses/wincon/pdcclip.c +174 -0
- data/vendor/PDCurses/wincon/pdcdisp.c +143 -0
- data/vendor/PDCurses/wincon/pdcgetsc.c +55 -0
- data/vendor/PDCurses/wincon/pdckbd.c +786 -0
- data/vendor/PDCurses/wincon/pdcscrn.c +717 -0
- data/vendor/PDCurses/wincon/pdcsetsc.c +91 -0
- data/vendor/PDCurses/wincon/pdcurses.ico +0 -0
- data/vendor/PDCurses/wincon/pdcurses.rc +28 -0
- data/vendor/PDCurses/wincon/pdcutil.c +41 -0
- data/vendor/PDCurses/wincon/pdcwin.h +31 -0
- data/vendor/PDCurses/wingui/CMakeLists.txt +27 -0
- data/vendor/PDCurses/wingui/Makefile.bcc +85 -0
- data/vendor/PDCurses/wingui/Makefile.dmc +259 -0
- data/vendor/PDCurses/wingui/Makefile.lcc +273 -0
- data/vendor/PDCurses/wingui/Makefile.mng +171 -0
- data/vendor/PDCurses/wingui/Makefile.vc +144 -0
- data/vendor/PDCurses/wingui/Makefile.wcc +51 -0
- data/vendor/PDCurses/wingui/README.md +93 -0
- data/vendor/PDCurses/wingui/pdcclip.c +174 -0
- data/vendor/PDCurses/wingui/pdcdisp.c +718 -0
- data/vendor/PDCurses/wingui/pdcgetsc.c +30 -0
- data/vendor/PDCurses/wingui/pdckbd.c +143 -0
- data/vendor/PDCurses/wingui/pdcscrn.c +2797 -0
- data/vendor/PDCurses/wingui/pdcsetsc.c +89 -0
- data/vendor/PDCurses/wingui/pdcurses.ico +0 -0
- data/vendor/PDCurses/wingui/pdcurses.rc +28 -0
- data/vendor/PDCurses/wingui/pdcutil.c +61 -0
- data/vendor/PDCurses/wingui/pdcwin.h +122 -0
- data/vendor/PDCurses/x11/Makefile.in +754 -0
- data/vendor/PDCurses/x11/PDCurses.spec +82 -0
- data/vendor/PDCurses/x11/README.md +62 -0
- data/vendor/PDCurses/x11/ScrollBox.c +319 -0
- data/vendor/PDCurses/x11/ScrollBox.h +51 -0
- data/vendor/PDCurses/x11/ScrollBoxP.h +70 -0
- data/vendor/PDCurses/x11/aclocal.m4 +994 -0
- data/vendor/PDCurses/x11/big_icon.xbm +46 -0
- data/vendor/PDCurses/x11/compose.h +201 -0
- data/vendor/PDCurses/x11/config.guess +1500 -0
- data/vendor/PDCurses/x11/config.h.in +100 -0
- data/vendor/PDCurses/x11/config.sub +1616 -0
- data/vendor/PDCurses/x11/configure +6700 -0
- data/vendor/PDCurses/x11/configure.ac +295 -0
- data/vendor/PDCurses/x11/debian/changelog +6 -0
- data/vendor/PDCurses/x11/debian/compat +1 -0
- data/vendor/PDCurses/x11/debian/control +11 -0
- data/vendor/PDCurses/x11/debian/copyright +27 -0
- data/vendor/PDCurses/x11/debian/rules +98 -0
- data/vendor/PDCurses/x11/install-sh +253 -0
- data/vendor/PDCurses/x11/little_icon.xbm +14 -0
- data/vendor/PDCurses/x11/ncurses_cfg.h +45 -0
- data/vendor/PDCurses/x11/pdcclip.c +173 -0
- data/vendor/PDCurses/x11/pdcdisp.c +85 -0
- data/vendor/PDCurses/x11/pdcgetsc.c +28 -0
- data/vendor/PDCurses/x11/pdckbd.c +104 -0
- data/vendor/PDCurses/x11/pdcscrn.c +258 -0
- data/vendor/PDCurses/x11/pdcsetsc.c +95 -0
- data/vendor/PDCurses/x11/pdcutil.c +52 -0
- data/vendor/PDCurses/x11/pdcx11.c +316 -0
- data/vendor/PDCurses/x11/pdcx11.h +191 -0
- data/vendor/PDCurses/x11/sb.c +155 -0
- data/vendor/PDCurses/x11/x11.c +3686 -0
- data/vendor/PDCurses/x11/xcurses-config.in +81 -0
- metadata +255 -21
@@ -0,0 +1,245 @@
|
|
1
|
+
/* Public Domain Curses */
|
2
|
+
|
3
|
+
#include <curspriv.h>
|
4
|
+
|
5
|
+
/*man-start**************************************************************
|
6
|
+
|
7
|
+
addchstr
|
8
|
+
--------
|
9
|
+
|
10
|
+
### Synopsis
|
11
|
+
|
12
|
+
int addchstr(const chtype *ch);
|
13
|
+
int addchnstr(const chtype *ch, int n);
|
14
|
+
int waddchstr(WINDOW *win, const chtype *ch);
|
15
|
+
int waddchnstr(WINDOW *win, const chtype *ch, int n);
|
16
|
+
int mvaddchstr(int y, int x, const chtype *ch);
|
17
|
+
int mvaddchnstr(int y, int x, const chtype *ch, int n);
|
18
|
+
int mvwaddchstr(WINDOW *, int y, int x, const chtype *ch);
|
19
|
+
int mvwaddchnstr(WINDOW *, int y, int x, const chtype *ch, int n);
|
20
|
+
|
21
|
+
int add_wchstr(const cchar_t *wch);
|
22
|
+
int add_wchnstr(const cchar_t *wch, int n);
|
23
|
+
int wadd_wchstr(WINDOW *win, const cchar_t *wch);
|
24
|
+
int wadd_wchnstr(WINDOW *win, const cchar_t *wch, int n);
|
25
|
+
int mvadd_wchstr(int y, int x, const cchar_t *wch);
|
26
|
+
int mvadd_wchnstr(int y, int x, const cchar_t *wch, int n);
|
27
|
+
int mvwadd_wchstr(WINDOW *win, int y, int x, const cchar_t *wch);
|
28
|
+
int mvwadd_wchnstr(WINDOW *win, int y, int x, const cchar_t *wch,
|
29
|
+
int n);
|
30
|
+
|
31
|
+
### Description
|
32
|
+
|
33
|
+
These routines write a chtype or cchar_t string directly into
|
34
|
+
the window structure, starting at the current or specified
|
35
|
+
position. The four routines with n as the last argument copy at
|
36
|
+
most n elements, but no more than will fit on the line. If n =
|
37
|
+
-1 then the whole string is copied, up to the maximum number
|
38
|
+
that will fit on the line.
|
39
|
+
|
40
|
+
The cursor position is not advanced. These routines do not check
|
41
|
+
for newline or other special characters, nor does any line
|
42
|
+
wrapping occur.
|
43
|
+
|
44
|
+
### Return Value
|
45
|
+
|
46
|
+
All functions return OK or ERR.
|
47
|
+
|
48
|
+
### Portability
|
49
|
+
X/Open BSD SYS V
|
50
|
+
addchstr Y - 4.0
|
51
|
+
waddchstr Y - 4.0
|
52
|
+
mvaddchstr Y - 4.0
|
53
|
+
mvwaddchstr Y - 4.0
|
54
|
+
addchnstr Y - 4.0
|
55
|
+
waddchnstr Y - 4.0
|
56
|
+
mvaddchnstr Y - 4.0
|
57
|
+
mvwaddchnstr Y - 4.0
|
58
|
+
add_wchstr Y
|
59
|
+
wadd_wchstr Y
|
60
|
+
mvadd_wchstr Y
|
61
|
+
mvwadd_wchstr Y
|
62
|
+
add_wchnstr Y
|
63
|
+
wadd_wchnstr Y
|
64
|
+
mvadd_wchnstr Y
|
65
|
+
mvwadd_wchnstr Y
|
66
|
+
|
67
|
+
**man-end****************************************************************/
|
68
|
+
|
69
|
+
#include <string.h>
|
70
|
+
|
71
|
+
int waddchnstr(WINDOW *win, const chtype *ch, int n)
|
72
|
+
{
|
73
|
+
int y, x, maxx, minx;
|
74
|
+
chtype *ptr;
|
75
|
+
|
76
|
+
PDC_LOG(("waddchnstr() - called: win=%p n=%d\n", win, n));
|
77
|
+
|
78
|
+
if (!win || !ch || !n || n < -1)
|
79
|
+
return ERR;
|
80
|
+
|
81
|
+
x = win->_curx;
|
82
|
+
y = win->_cury;
|
83
|
+
ptr = &(win->_y[y][x]);
|
84
|
+
|
85
|
+
if (n == -1 || n > win->_maxx - x)
|
86
|
+
n = win->_maxx - x;
|
87
|
+
|
88
|
+
minx = win->_firstch[y];
|
89
|
+
maxx = win->_lastch[y];
|
90
|
+
|
91
|
+
for (; n && *ch; n--, x++, ptr++, ch++)
|
92
|
+
{
|
93
|
+
if (*ptr != *ch)
|
94
|
+
{
|
95
|
+
if (x < minx || minx == _NO_CHANGE)
|
96
|
+
minx = x;
|
97
|
+
|
98
|
+
if (x > maxx)
|
99
|
+
maxx = x;
|
100
|
+
|
101
|
+
PDC_LOG(("y %d x %d minx %d maxx %d *ptr %x *ch"
|
102
|
+
" %x firstch: %d lastch: %d\n",
|
103
|
+
y, x, minx, maxx, *ptr, *ch,
|
104
|
+
win->_firstch[y], win->_lastch[y]));
|
105
|
+
|
106
|
+
*ptr = *ch;
|
107
|
+
}
|
108
|
+
}
|
109
|
+
|
110
|
+
win->_firstch[y] = minx;
|
111
|
+
win->_lastch[y] = maxx;
|
112
|
+
|
113
|
+
return OK;
|
114
|
+
}
|
115
|
+
|
116
|
+
int addchstr(const chtype *ch)
|
117
|
+
{
|
118
|
+
PDC_LOG(("addchstr() - called\n"));
|
119
|
+
|
120
|
+
return waddchnstr(stdscr, ch, -1);
|
121
|
+
}
|
122
|
+
|
123
|
+
int addchnstr(const chtype *ch, int n)
|
124
|
+
{
|
125
|
+
PDC_LOG(("addchnstr() - called\n"));
|
126
|
+
|
127
|
+
return waddchnstr(stdscr, ch, n);
|
128
|
+
}
|
129
|
+
|
130
|
+
int waddchstr(WINDOW *win, const chtype *ch)
|
131
|
+
{
|
132
|
+
PDC_LOG(("waddchstr() - called: win=%p\n", win));
|
133
|
+
|
134
|
+
return waddchnstr(win, ch, -1);
|
135
|
+
}
|
136
|
+
|
137
|
+
int mvaddchstr(int y, int x, const chtype *ch)
|
138
|
+
{
|
139
|
+
PDC_LOG(("mvaddchstr() - called: y %d x %d\n", y, x));
|
140
|
+
|
141
|
+
if (move(y, x) == ERR)
|
142
|
+
return ERR;
|
143
|
+
|
144
|
+
return waddchnstr(stdscr, ch, -1);
|
145
|
+
}
|
146
|
+
|
147
|
+
int mvaddchnstr(int y, int x, const chtype *ch, int n)
|
148
|
+
{
|
149
|
+
PDC_LOG(("mvaddchnstr() - called: y %d x %d n %d\n", y, x, n));
|
150
|
+
|
151
|
+
if (move(y, x) == ERR)
|
152
|
+
return ERR;
|
153
|
+
|
154
|
+
return waddchnstr(stdscr, ch, n);
|
155
|
+
}
|
156
|
+
|
157
|
+
int mvwaddchstr(WINDOW *win, int y, int x, const chtype *ch)
|
158
|
+
{
|
159
|
+
PDC_LOG(("mvwaddchstr() - called:\n"));
|
160
|
+
|
161
|
+
if (wmove(win, y, x) == ERR)
|
162
|
+
return ERR;
|
163
|
+
|
164
|
+
return waddchnstr(win, ch, -1);
|
165
|
+
}
|
166
|
+
|
167
|
+
int mvwaddchnstr(WINDOW *win, int y, int x, const chtype *ch, int n)
|
168
|
+
{
|
169
|
+
PDC_LOG(("mvwaddchnstr() - called: y %d x %d n %d \n", y, x, n));
|
170
|
+
|
171
|
+
if (wmove(win, y, x) == ERR)
|
172
|
+
return ERR;
|
173
|
+
|
174
|
+
return waddchnstr(win, ch, n);
|
175
|
+
}
|
176
|
+
|
177
|
+
#ifdef PDC_WIDE
|
178
|
+
int wadd_wchnstr(WINDOW *win, const cchar_t *wch, int n)
|
179
|
+
{
|
180
|
+
PDC_LOG(("wadd_wchnstr() - called: win=%p n=%d\n", win, n));
|
181
|
+
|
182
|
+
return waddchnstr(win, wch, n);
|
183
|
+
}
|
184
|
+
|
185
|
+
int add_wchstr(const cchar_t *wch)
|
186
|
+
{
|
187
|
+
PDC_LOG(("add_wchstr() - called\n"));
|
188
|
+
|
189
|
+
return wadd_wchnstr(stdscr, wch, -1);
|
190
|
+
}
|
191
|
+
|
192
|
+
int add_wchnstr(const cchar_t *wch, int n)
|
193
|
+
{
|
194
|
+
PDC_LOG(("add_wchnstr() - called\n"));
|
195
|
+
|
196
|
+
return wadd_wchnstr(stdscr, wch, n);
|
197
|
+
}
|
198
|
+
|
199
|
+
int wadd_wchstr(WINDOW *win, const cchar_t *wch)
|
200
|
+
{
|
201
|
+
PDC_LOG(("wadd_wchstr() - called: win=%p\n", win));
|
202
|
+
|
203
|
+
return wadd_wchnstr(win, wch, -1);
|
204
|
+
}
|
205
|
+
|
206
|
+
int mvadd_wchstr(int y, int x, const cchar_t *wch)
|
207
|
+
{
|
208
|
+
PDC_LOG(("mvadd_wchstr() - called: y %d x %d\n", y, x));
|
209
|
+
|
210
|
+
if (move(y, x) == ERR)
|
211
|
+
return ERR;
|
212
|
+
|
213
|
+
return wadd_wchnstr(stdscr, wch, -1);
|
214
|
+
}
|
215
|
+
|
216
|
+
int mvadd_wchnstr(int y, int x, const cchar_t *wch, int n)
|
217
|
+
{
|
218
|
+
PDC_LOG(("mvadd_wchnstr() - called: y %d x %d n %d\n", y, x, n));
|
219
|
+
|
220
|
+
if (move(y, x) == ERR)
|
221
|
+
return ERR;
|
222
|
+
|
223
|
+
return wadd_wchnstr(stdscr, wch, n);
|
224
|
+
}
|
225
|
+
|
226
|
+
int mvwadd_wchstr(WINDOW *win, int y, int x, const cchar_t *wch)
|
227
|
+
{
|
228
|
+
PDC_LOG(("mvwadd_wchstr() - called:\n"));
|
229
|
+
|
230
|
+
if (wmove(win, y, x) == ERR)
|
231
|
+
return ERR;
|
232
|
+
|
233
|
+
return wadd_wchnstr(win, wch, -1);
|
234
|
+
}
|
235
|
+
|
236
|
+
int mvwadd_wchnstr(WINDOW *win, int y, int x, const cchar_t *wch, int n)
|
237
|
+
{
|
238
|
+
PDC_LOG(("mvwadd_wchnstr() - called: y %d x %d n %d \n", y, x, n));
|
239
|
+
|
240
|
+
if (wmove(win, y, x) == ERR)
|
241
|
+
return ERR;
|
242
|
+
|
243
|
+
return wadd_wchnstr(win, wch, n);
|
244
|
+
}
|
245
|
+
#endif
|
@@ -0,0 +1,240 @@
|
|
1
|
+
/* Public Domain Curses */
|
2
|
+
|
3
|
+
#include <curspriv.h>
|
4
|
+
|
5
|
+
/*man-start**************************************************************
|
6
|
+
|
7
|
+
addstr
|
8
|
+
------
|
9
|
+
|
10
|
+
### Synopsis
|
11
|
+
|
12
|
+
int addstr(const char *str);
|
13
|
+
int addnstr(const char *str, int n);
|
14
|
+
int waddstr(WINDOW *win, const char *str);
|
15
|
+
int waddnstr(WINDOW *win, const char *str, int n);
|
16
|
+
int mvaddstr(int y, int x, const char *str);
|
17
|
+
int mvaddnstr(int y, int x, const char *str, int n);
|
18
|
+
int mvwaddstr(WINDOW *win, int y, int x, const char *str);
|
19
|
+
int mvwaddnstr(WINDOW *win, int y, int x, const char *str, int n);
|
20
|
+
|
21
|
+
int addwstr(const wchar_t *wstr);
|
22
|
+
int addnwstr(const wchar_t *wstr, int n);
|
23
|
+
int waddwstr(WINDOW *win, const wchar_t *wstr);
|
24
|
+
int waddnwstr(WINDOW *win, const wchar_t *wstr, int n);
|
25
|
+
int mvaddwstr(int y, int x, const wchar_t *wstr);
|
26
|
+
int mvaddnwstr(int y, int x, const wchar_t *wstr, int n);
|
27
|
+
int mvwaddwstr(WINDOW *win, int y, int x, const wchar_t *wstr);
|
28
|
+
int mvwaddnwstr(WINDOW *win, int y, int x, const wchar_t *wstr, int n);
|
29
|
+
|
30
|
+
### Description
|
31
|
+
|
32
|
+
These routines write all the characters of the null-terminated
|
33
|
+
string str or wide-character string wstr to the given window.
|
34
|
+
The functionality is similar to calling waddch() once for each
|
35
|
+
character in the string; except that, when PDCurses is built
|
36
|
+
with wide-character support enabled, the narrow-character
|
37
|
+
functions treat the string as a multibyte string in the current
|
38
|
+
locale, and convert it. The routines with n as the last
|
39
|
+
argument write at most n characters; if n is negative, then the
|
40
|
+
entire string will be added.
|
41
|
+
|
42
|
+
### Return Value
|
43
|
+
|
44
|
+
All functions return OK or ERR.
|
45
|
+
|
46
|
+
### Portability
|
47
|
+
X/Open BSD SYS V
|
48
|
+
addstr Y Y Y
|
49
|
+
waddstr Y Y Y
|
50
|
+
mvaddstr Y Y Y
|
51
|
+
mvwaddstr Y Y Y
|
52
|
+
addnstr Y - 4.0
|
53
|
+
waddnstr Y - 4.0
|
54
|
+
mvaddnstr Y - 4.0
|
55
|
+
mvwaddnstr Y - 4.0
|
56
|
+
addwstr Y
|
57
|
+
waddwstr Y
|
58
|
+
mvaddwstr Y
|
59
|
+
mvwaddwstr Y
|
60
|
+
addnwstr Y
|
61
|
+
waddnwstr Y
|
62
|
+
mvaddnwstr Y
|
63
|
+
mvwaddnwstr Y
|
64
|
+
|
65
|
+
**man-end****************************************************************/
|
66
|
+
|
67
|
+
int waddnstr(WINDOW *win, const char *str, int n)
|
68
|
+
{
|
69
|
+
int i = 0;
|
70
|
+
|
71
|
+
PDC_LOG(("waddnstr() - called: string=\"%s\" n %d \n", str, n));
|
72
|
+
|
73
|
+
if (!win || !str)
|
74
|
+
return ERR;
|
75
|
+
|
76
|
+
while (str[i] && (i < n || n < 0))
|
77
|
+
{
|
78
|
+
#ifdef PDC_WIDE
|
79
|
+
wchar_t wch;
|
80
|
+
int retval = PDC_mbtowc(&wch, str + i, n >= 0 ? n - i : 6);
|
81
|
+
|
82
|
+
if (retval <= 0)
|
83
|
+
return OK;
|
84
|
+
|
85
|
+
i += retval;
|
86
|
+
#else
|
87
|
+
chtype wch = (unsigned char)(str[i++]);
|
88
|
+
#endif
|
89
|
+
if (waddch(win, wch) == ERR)
|
90
|
+
return ERR;
|
91
|
+
}
|
92
|
+
|
93
|
+
return OK;
|
94
|
+
}
|
95
|
+
|
96
|
+
int addstr(const char *str)
|
97
|
+
{
|
98
|
+
PDC_LOG(("addstr() - called: string=\"%s\"\n", str));
|
99
|
+
|
100
|
+
return waddnstr(stdscr, str, -1);
|
101
|
+
}
|
102
|
+
|
103
|
+
int addnstr(const char *str, int n)
|
104
|
+
{
|
105
|
+
PDC_LOG(("addnstr() - called: string=\"%s\" n %d \n", str, n));
|
106
|
+
|
107
|
+
return waddnstr(stdscr, str, n);
|
108
|
+
}
|
109
|
+
|
110
|
+
int waddstr(WINDOW *win, const char *str)
|
111
|
+
{
|
112
|
+
PDC_LOG(("waddstr() - called: string=\"%s\"\n", str));
|
113
|
+
|
114
|
+
return waddnstr(win, str, -1);
|
115
|
+
}
|
116
|
+
|
117
|
+
int mvaddstr(int y, int x, const char *str)
|
118
|
+
{
|
119
|
+
PDC_LOG(("mvaddstr() - called: y %d x %d string=\"%s\"\n", y, x, str));
|
120
|
+
|
121
|
+
if (move(y, x) == ERR)
|
122
|
+
return ERR;
|
123
|
+
|
124
|
+
return waddnstr(stdscr, str, -1);
|
125
|
+
}
|
126
|
+
|
127
|
+
int mvaddnstr(int y, int x, const char *str, int n)
|
128
|
+
{
|
129
|
+
PDC_LOG(("mvaddnstr() - called: y %d x %d string=\"%s\" n %d \n",
|
130
|
+
y, x, str, n));
|
131
|
+
|
132
|
+
if (move(y, x) == ERR)
|
133
|
+
return ERR;
|
134
|
+
|
135
|
+
return waddnstr(stdscr, str, n);
|
136
|
+
}
|
137
|
+
|
138
|
+
int mvwaddstr(WINDOW *win, int y, int x, const char *str)
|
139
|
+
{
|
140
|
+
PDC_LOG(("mvwaddstr() - called: string=\"%s\"\n", str));
|
141
|
+
|
142
|
+
if (wmove(win, y, x) == ERR)
|
143
|
+
return ERR;
|
144
|
+
|
145
|
+
return waddnstr(win, str, -1);
|
146
|
+
}
|
147
|
+
|
148
|
+
int mvwaddnstr(WINDOW *win, int y, int x, const char *str, int n)
|
149
|
+
{
|
150
|
+
PDC_LOG(("mvwaddnstr() - called: y %d x %d string=\"%s\" n %d \n",
|
151
|
+
y, x, str, n));
|
152
|
+
|
153
|
+
if (wmove(win, y, x) == ERR)
|
154
|
+
return ERR;
|
155
|
+
|
156
|
+
return waddnstr(win, str, n);
|
157
|
+
}
|
158
|
+
|
159
|
+
#ifdef PDC_WIDE
|
160
|
+
int waddnwstr(WINDOW *win, const wchar_t *wstr, int n)
|
161
|
+
{
|
162
|
+
int i = 0;
|
163
|
+
|
164
|
+
PDC_LOG(("waddnwstr() - called\n"));
|
165
|
+
|
166
|
+
if (!win || !wstr)
|
167
|
+
return ERR;
|
168
|
+
|
169
|
+
while (wstr[i] && (i < n || n < 0))
|
170
|
+
{
|
171
|
+
chtype wch = wstr[i++];
|
172
|
+
|
173
|
+
if (waddch(win, wch) == ERR)
|
174
|
+
return ERR;
|
175
|
+
}
|
176
|
+
|
177
|
+
return OK;
|
178
|
+
}
|
179
|
+
|
180
|
+
int addwstr(const wchar_t *wstr)
|
181
|
+
{
|
182
|
+
PDC_LOG(("addwstr() - called\n"));
|
183
|
+
|
184
|
+
return waddnwstr(stdscr, wstr, -1);
|
185
|
+
}
|
186
|
+
|
187
|
+
int addnwstr(const wchar_t *wstr, int n)
|
188
|
+
{
|
189
|
+
PDC_LOG(("addnwstr() - called\n"));
|
190
|
+
|
191
|
+
return waddnwstr(stdscr, wstr, n);
|
192
|
+
}
|
193
|
+
|
194
|
+
int waddwstr(WINDOW *win, const wchar_t *wstr)
|
195
|
+
{
|
196
|
+
PDC_LOG(("waddwstr() - called\n"));
|
197
|
+
|
198
|
+
return waddnwstr(win, wstr, -1);
|
199
|
+
}
|
200
|
+
|
201
|
+
int mvaddwstr(int y, int x, const wchar_t *wstr)
|
202
|
+
{
|
203
|
+
PDC_LOG(("mvaddstr() - called\n"));
|
204
|
+
|
205
|
+
if (move(y, x) == ERR)
|
206
|
+
return ERR;
|
207
|
+
|
208
|
+
return waddnwstr(stdscr, wstr, -1);
|
209
|
+
}
|
210
|
+
|
211
|
+
int mvaddnwstr(int y, int x, const wchar_t *wstr, int n)
|
212
|
+
{
|
213
|
+
PDC_LOG(("mvaddnstr() - called\n"));
|
214
|
+
|
215
|
+
if (move(y, x) == ERR)
|
216
|
+
return ERR;
|
217
|
+
|
218
|
+
return waddnwstr(stdscr, wstr, n);
|
219
|
+
}
|
220
|
+
|
221
|
+
int mvwaddwstr(WINDOW *win, int y, int x, const wchar_t *wstr)
|
222
|
+
{
|
223
|
+
PDC_LOG(("mvwaddstr() - called\n"));
|
224
|
+
|
225
|
+
if (wmove(win, y, x) == ERR)
|
226
|
+
return ERR;
|
227
|
+
|
228
|
+
return waddnwstr(win, wstr, -1);
|
229
|
+
}
|
230
|
+
|
231
|
+
int mvwaddnwstr(WINDOW *win, int y, int x, const wchar_t *wstr, int n)
|
232
|
+
{
|
233
|
+
PDC_LOG(("mvwaddnstr() - called\n"));
|
234
|
+
|
235
|
+
if (wmove(win, y, x) == ERR)
|
236
|
+
return ERR;
|
237
|
+
|
238
|
+
return waddnwstr(win, wstr, n);
|
239
|
+
}
|
240
|
+
#endif
|