curses 1.4.6 → 1.5.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/push_gem.yml +6 -4
- data/README.md +8 -1
- data/curses.gemspec +2 -2
- data/ext/curses/curses.c +188 -12
- data/ext/curses/extconf.rb +3 -2
- data/lib/curses.rb +7 -0
- data/sample/attr_demo.rb +4 -2
- data/sample/screen.rb +9 -0
- 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/Makefile +27 -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 +105 -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/Makefile +37 -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 +132 -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 +129 -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 +135 -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 +135 -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 +249 -8
@@ -0,0 +1,264 @@
|
|
1
|
+
/* Public Domain Curses */
|
2
|
+
|
3
|
+
#include <curspriv.h>
|
4
|
+
|
5
|
+
/*man-start**************************************************************
|
6
|
+
|
7
|
+
insstr
|
8
|
+
------
|
9
|
+
|
10
|
+
### Synopsis
|
11
|
+
|
12
|
+
int insstr(const char *str);
|
13
|
+
int insnstr(const char *str, int n);
|
14
|
+
int winsstr(WINDOW *win, const char *str);
|
15
|
+
int winsnstr(WINDOW *win, const char *str, int n);
|
16
|
+
int mvinsstr(int y, int x, const char *str);
|
17
|
+
int mvinsnstr(int y, int x, const char *str, int n);
|
18
|
+
int mvwinsstr(WINDOW *win, int y, int x, const char *str);
|
19
|
+
int mvwinsnstr(WINDOW *win, int y, int x, const char *str, int n);
|
20
|
+
|
21
|
+
int ins_wstr(const wchar_t *wstr);
|
22
|
+
int ins_nwstr(const wchar_t *wstr, int n);
|
23
|
+
int wins_wstr(WINDOW *win, const wchar_t *wstr);
|
24
|
+
int wins_nwstr(WINDOW *win, const wchar_t *wstr, int n);
|
25
|
+
int mvins_wstr(int y, int x, const wchar_t *wstr);
|
26
|
+
int mvins_nwstr(int y, int x, const wchar_t *wstr, int n);
|
27
|
+
int mvwins_wstr(WINDOW *win, int y, int x, const wchar_t *wstr);
|
28
|
+
int mvwins_nwstr(WINDOW *win, int y, int x, const wchar_t *wstr, int n);
|
29
|
+
|
30
|
+
### Description
|
31
|
+
|
32
|
+
The insstr() functions insert a character string into a window
|
33
|
+
at the current cursor position, by repeatedly calling winsch().
|
34
|
+
When PDCurses is built with wide-character support enabled, the
|
35
|
+
narrow-character functions treat the string as a multibyte
|
36
|
+
string in the current locale, and convert it first. All
|
37
|
+
characters to the right of the cursor are moved to the right,
|
38
|
+
with the possibility of the rightmost characters on the line
|
39
|
+
being lost. The cursor position does not change (after moving
|
40
|
+
to y, x, if specified). The routines with n as the last
|
41
|
+
argument insert at most n characters; if n is negative, then the
|
42
|
+
entire string is inserted.
|
43
|
+
|
44
|
+
### Return Value
|
45
|
+
|
46
|
+
All functions return OK on success and ERR on error.
|
47
|
+
|
48
|
+
### Portability
|
49
|
+
X/Open BSD SYS V
|
50
|
+
insstr Y - 4.0
|
51
|
+
winsstr Y - 4.0
|
52
|
+
mvinsstr Y - 4.0
|
53
|
+
mvwinsstr Y - 4.0
|
54
|
+
insnstr Y - 4.0
|
55
|
+
winsnstr Y - 4.0
|
56
|
+
mvinsnstr Y - 4.0
|
57
|
+
mvwinsnstr Y - 4.0
|
58
|
+
ins_wstr Y
|
59
|
+
wins_wstr Y
|
60
|
+
mvins_wstr Y
|
61
|
+
mvwins_wstr Y
|
62
|
+
ins_nwstr Y
|
63
|
+
wins_nwstr Y
|
64
|
+
mvins_nwstr Y
|
65
|
+
mvwins_nwstr Y
|
66
|
+
|
67
|
+
**man-end****************************************************************/
|
68
|
+
|
69
|
+
#include <string.h>
|
70
|
+
|
71
|
+
int winsnstr(WINDOW *win, const char *str, int n)
|
72
|
+
{
|
73
|
+
#ifdef PDC_WIDE
|
74
|
+
wchar_t wstr[513], *p;
|
75
|
+
int i;
|
76
|
+
#endif
|
77
|
+
int len;
|
78
|
+
|
79
|
+
PDC_LOG(("winsnstr() - called: string=\"%s\" n %d \n", str, n));
|
80
|
+
|
81
|
+
if (!win || !str)
|
82
|
+
return ERR;
|
83
|
+
|
84
|
+
len = (int)strlen(str);
|
85
|
+
|
86
|
+
if (n < 0 || n < len)
|
87
|
+
n = len;
|
88
|
+
|
89
|
+
#ifdef PDC_WIDE
|
90
|
+
if (n > 512)
|
91
|
+
n = 512;
|
92
|
+
|
93
|
+
p = wstr;
|
94
|
+
i = 0;
|
95
|
+
|
96
|
+
while (str[i] && i < n)
|
97
|
+
{
|
98
|
+
int retval = PDC_mbtowc(p, str + i, n - i);
|
99
|
+
|
100
|
+
if (retval <= 0)
|
101
|
+
break;
|
102
|
+
p++;
|
103
|
+
i += retval;
|
104
|
+
}
|
105
|
+
|
106
|
+
while (p > wstr)
|
107
|
+
if (winsch(win, *--p) == ERR)
|
108
|
+
#else
|
109
|
+
while (n)
|
110
|
+
if (winsch(win, (unsigned char)(str[--n])) == ERR)
|
111
|
+
#endif
|
112
|
+
return ERR;
|
113
|
+
|
114
|
+
return OK;
|
115
|
+
}
|
116
|
+
|
117
|
+
int insstr(const char *str)
|
118
|
+
{
|
119
|
+
PDC_LOG(("insstr() - called: string=\"%s\"\n", str));
|
120
|
+
|
121
|
+
return winsnstr(stdscr, str, -1);
|
122
|
+
}
|
123
|
+
|
124
|
+
int winsstr(WINDOW *win, const char *str)
|
125
|
+
{
|
126
|
+
PDC_LOG(("winsstr() - called: string=\"%s\"\n", str));
|
127
|
+
|
128
|
+
return winsnstr(win, str, -1);
|
129
|
+
}
|
130
|
+
|
131
|
+
int mvinsstr(int y, int x, const char *str)
|
132
|
+
{
|
133
|
+
PDC_LOG(("mvinsstr() - called: y %d x %d string=\"%s\"\n", y, x, str));
|
134
|
+
|
135
|
+
if (move(y, x) == ERR)
|
136
|
+
return ERR;
|
137
|
+
|
138
|
+
return winsnstr(stdscr, str, -1);
|
139
|
+
}
|
140
|
+
|
141
|
+
int mvwinsstr(WINDOW *win, int y, int x, const char *str)
|
142
|
+
{
|
143
|
+
PDC_LOG(("mvwinsstr() - called: string=\"%s\"\n", str));
|
144
|
+
|
145
|
+
if (wmove(win, y, x) == ERR)
|
146
|
+
return ERR;
|
147
|
+
|
148
|
+
return winsnstr(win, str, -1);
|
149
|
+
}
|
150
|
+
|
151
|
+
int insnstr(const char *str, int n)
|
152
|
+
{
|
153
|
+
PDC_LOG(("insnstr() - called: string=\"%s\" n %d \n", str, n));
|
154
|
+
|
155
|
+
return winsnstr(stdscr, str, n);
|
156
|
+
}
|
157
|
+
|
158
|
+
int mvinsnstr(int y, int x, const char *str, int n)
|
159
|
+
{
|
160
|
+
PDC_LOG(("mvinsnstr() - called: y %d x %d string=\"%s\" n %d \n",
|
161
|
+
y, x, str, n));
|
162
|
+
|
163
|
+
if (move(y, x) == ERR)
|
164
|
+
return ERR;
|
165
|
+
|
166
|
+
return winsnstr(stdscr, str, n);
|
167
|
+
}
|
168
|
+
|
169
|
+
int mvwinsnstr(WINDOW *win, int y, int x, const char *str, int n)
|
170
|
+
{
|
171
|
+
PDC_LOG(("mvwinsnstr() - called: y %d x %d string=\"%s\" n %d \n",
|
172
|
+
y, x, str, n));
|
173
|
+
|
174
|
+
if (wmove(win, y, x) == ERR)
|
175
|
+
return ERR;
|
176
|
+
|
177
|
+
return winsnstr(win, str, n);
|
178
|
+
}
|
179
|
+
|
180
|
+
#ifdef PDC_WIDE
|
181
|
+
int wins_nwstr(WINDOW *win, const wchar_t *wstr, int n)
|
182
|
+
{
|
183
|
+
const wchar_t *p;
|
184
|
+
int len;
|
185
|
+
|
186
|
+
PDC_LOG(("wins_nwstr() - called\n"));
|
187
|
+
|
188
|
+
if (!win || !wstr)
|
189
|
+
return ERR;
|
190
|
+
|
191
|
+
for (len = 0, p = wstr; *p; p++)
|
192
|
+
len++;
|
193
|
+
|
194
|
+
if (n < 0 || n < len)
|
195
|
+
n = len;
|
196
|
+
|
197
|
+
while (n)
|
198
|
+
if (winsch(win, wstr[--n]) == ERR)
|
199
|
+
return ERR;
|
200
|
+
|
201
|
+
return OK;
|
202
|
+
}
|
203
|
+
|
204
|
+
int ins_wstr(const wchar_t *wstr)
|
205
|
+
{
|
206
|
+
PDC_LOG(("ins_wstr() - called\n"));
|
207
|
+
|
208
|
+
return wins_nwstr(stdscr, wstr, -1);
|
209
|
+
}
|
210
|
+
|
211
|
+
int wins_wstr(WINDOW *win, const wchar_t *wstr)
|
212
|
+
{
|
213
|
+
PDC_LOG(("wins_wstr() - called\n"));
|
214
|
+
|
215
|
+
return wins_nwstr(win, wstr, -1);
|
216
|
+
}
|
217
|
+
|
218
|
+
int mvins_wstr(int y, int x, const wchar_t *wstr)
|
219
|
+
{
|
220
|
+
PDC_LOG(("mvins_wstr() - called\n"));
|
221
|
+
|
222
|
+
if (move(y, x) == ERR)
|
223
|
+
return ERR;
|
224
|
+
|
225
|
+
return wins_nwstr(stdscr, wstr, -1);
|
226
|
+
}
|
227
|
+
|
228
|
+
int mvwins_wstr(WINDOW *win, int y, int x, const wchar_t *wstr)
|
229
|
+
{
|
230
|
+
PDC_LOG(("mvwinsstr() - called\n"));
|
231
|
+
|
232
|
+
if (wmove(win, y, x) == ERR)
|
233
|
+
return ERR;
|
234
|
+
|
235
|
+
return wins_nwstr(win, wstr, -1);
|
236
|
+
}
|
237
|
+
|
238
|
+
int ins_nwstr(const wchar_t *wstr, int n)
|
239
|
+
{
|
240
|
+
PDC_LOG(("ins_nwstr() - called\n"));
|
241
|
+
|
242
|
+
return wins_nwstr(stdscr, wstr, n);
|
243
|
+
}
|
244
|
+
|
245
|
+
int mvins_nwstr(int y, int x, const wchar_t *wstr, int n)
|
246
|
+
{
|
247
|
+
PDC_LOG(("mvinsnstr() - called\n"));
|
248
|
+
|
249
|
+
if (move(y, x) == ERR)
|
250
|
+
return ERR;
|
251
|
+
|
252
|
+
return wins_nwstr(stdscr, wstr, n);
|
253
|
+
}
|
254
|
+
|
255
|
+
int mvwins_nwstr(WINDOW *win, int y, int x, const wchar_t *wstr, int n)
|
256
|
+
{
|
257
|
+
PDC_LOG(("mvwinsnstr() - called\n"));
|
258
|
+
|
259
|
+
if (wmove(win, y, x) == ERR)
|
260
|
+
return ERR;
|
261
|
+
|
262
|
+
return wins_nwstr(win, wstr, n);
|
263
|
+
}
|
264
|
+
#endif
|
@@ -0,0 +1,246 @@
|
|
1
|
+
/* Public Domain Curses */
|
2
|
+
|
3
|
+
#include <curspriv.h>
|
4
|
+
|
5
|
+
/*man-start**************************************************************
|
6
|
+
|
7
|
+
instr
|
8
|
+
-----
|
9
|
+
|
10
|
+
### Synopsis
|
11
|
+
|
12
|
+
int instr(char *str);
|
13
|
+
int innstr(char *str, int n);
|
14
|
+
int winstr(WINDOW *win, char *str);
|
15
|
+
int winnstr(WINDOW *win, char *str, int n);
|
16
|
+
int mvinstr(int y, int x, char *str);
|
17
|
+
int mvinnstr(int y, int x, char *str, int n);
|
18
|
+
int mvwinstr(WINDOW *win, int y, int x, char *str);
|
19
|
+
int mvwinnstr(WINDOW *win, int y, int x, char *str, int n);
|
20
|
+
|
21
|
+
int inwstr(wchar_t *wstr);
|
22
|
+
int innwstr(wchar_t *wstr, int n);
|
23
|
+
int winwstr(WINDOW *win, wchar_t *wstr);
|
24
|
+
int winnwstr(WINDOW *win, wchar_t *wstr, int n);
|
25
|
+
int mvinwstr(int y, int x, wchar_t *wstr);
|
26
|
+
int mvinnwstr(int y, int x, wchar_t *wstr, int n);
|
27
|
+
int mvwinwstr(WINDOW *win, int y, int x, wchar_t *wstr);
|
28
|
+
int mvwinnwstr(WINDOW *win, int y, int x, wchar_t *wstr, int n);
|
29
|
+
|
30
|
+
### Description
|
31
|
+
|
32
|
+
These functions take characters (or wide characters) from the
|
33
|
+
current or specified position in the window, and return them as
|
34
|
+
a string in str (or wstr). Attributes are ignored. The functions
|
35
|
+
with n as the last argument return a string at most n characters
|
36
|
+
long.
|
37
|
+
|
38
|
+
### Return Value
|
39
|
+
|
40
|
+
Upon successful completion, innstr(), mvinnstr(), mvwinnstr()
|
41
|
+
and winnstr() return the number of characters actually read into
|
42
|
+
the string; instr(), mvinstr(), mvwinstr() and winstr() return
|
43
|
+
OK. Otherwise, all these functions return ERR.
|
44
|
+
|
45
|
+
### Portability
|
46
|
+
X/Open BSD SYS V
|
47
|
+
instr Y - 4.0
|
48
|
+
winstr Y - 4.0
|
49
|
+
mvinstr Y - 4.0
|
50
|
+
mvwinstr Y - 4.0
|
51
|
+
innstr Y - 4.0
|
52
|
+
winnstr Y - 4.0
|
53
|
+
mvinnstr Y - 4.0
|
54
|
+
mvwinnstr Y - 4.0
|
55
|
+
inwstr Y
|
56
|
+
winwstr Y
|
57
|
+
mvinwstr Y
|
58
|
+
mvwinwstr Y
|
59
|
+
innwstr Y
|
60
|
+
winnwstr Y
|
61
|
+
mvinnwstr Y
|
62
|
+
mvwinnwstr Y
|
63
|
+
|
64
|
+
**man-end****************************************************************/
|
65
|
+
|
66
|
+
int winnstr(WINDOW *win, char *str, int n)
|
67
|
+
{
|
68
|
+
#ifdef PDC_WIDE
|
69
|
+
wchar_t wstr[513];
|
70
|
+
|
71
|
+
if (n < 0 || n > 512)
|
72
|
+
n = 512;
|
73
|
+
|
74
|
+
if (winnwstr(win, wstr, n) == ERR)
|
75
|
+
return ERR;
|
76
|
+
|
77
|
+
return (int)PDC_wcstombs(str, wstr, n);
|
78
|
+
#else
|
79
|
+
chtype *src;
|
80
|
+
int i;
|
81
|
+
|
82
|
+
PDC_LOG(("winnstr() - called: n %d \n", n));
|
83
|
+
|
84
|
+
if (!win || !str)
|
85
|
+
return ERR;
|
86
|
+
|
87
|
+
if (n < 0 || (win->_curx + n) > win->_maxx)
|
88
|
+
n = win->_maxx - win->_curx;
|
89
|
+
|
90
|
+
src = win->_y[win->_cury] + win->_curx;
|
91
|
+
|
92
|
+
for (i = 0; i < n; i++)
|
93
|
+
str[i] = (char)( src[i] & A_CHARTEXT);
|
94
|
+
|
95
|
+
str[i] = '\0';
|
96
|
+
|
97
|
+
return i;
|
98
|
+
#endif
|
99
|
+
}
|
100
|
+
|
101
|
+
int instr(char *str)
|
102
|
+
{
|
103
|
+
PDC_LOG(("instr() - called: string=\"%s\"\n", str));
|
104
|
+
|
105
|
+
return (ERR == winnstr(stdscr, str, stdscr->_maxx)) ? ERR : OK;
|
106
|
+
}
|
107
|
+
|
108
|
+
int winstr(WINDOW *win, char *str)
|
109
|
+
{
|
110
|
+
PDC_LOG(("winstr() - called: \n"));
|
111
|
+
|
112
|
+
return (ERR == winnstr(win, str, win->_maxx)) ? ERR : OK;
|
113
|
+
}
|
114
|
+
|
115
|
+
int mvinstr(int y, int x, char *str)
|
116
|
+
{
|
117
|
+
PDC_LOG(("mvinstr() - called: y %d x %d \n", y, x));
|
118
|
+
|
119
|
+
if (move(y, x) == ERR)
|
120
|
+
return ERR;
|
121
|
+
|
122
|
+
return (ERR == winnstr(stdscr, str, stdscr->_maxx)) ? ERR : OK;
|
123
|
+
}
|
124
|
+
|
125
|
+
int mvwinstr(WINDOW *win, int y, int x, char *str)
|
126
|
+
{
|
127
|
+
PDC_LOG(("mvwinstr() - called: y %d x %d \n", y, x));
|
128
|
+
|
129
|
+
if (wmove(win, y, x) == ERR)
|
130
|
+
return ERR;
|
131
|
+
|
132
|
+
return (ERR == winnstr(win, str, win->_maxx)) ? ERR : OK;
|
133
|
+
}
|
134
|
+
|
135
|
+
int innstr(char *str, int n)
|
136
|
+
{
|
137
|
+
PDC_LOG(("innstr() - called: n %d \n", n));
|
138
|
+
|
139
|
+
return winnstr(stdscr, str, n);
|
140
|
+
}
|
141
|
+
|
142
|
+
int mvinnstr(int y, int x, char *str, int n)
|
143
|
+
{
|
144
|
+
PDC_LOG(("mvinnstr() - called: y %d x %d n %d \n", y, x, n));
|
145
|
+
|
146
|
+
if (move(y, x) == ERR)
|
147
|
+
return ERR;
|
148
|
+
|
149
|
+
return winnstr(stdscr, str, n);
|
150
|
+
}
|
151
|
+
|
152
|
+
int mvwinnstr(WINDOW *win, int y, int x, char *str, int n)
|
153
|
+
{
|
154
|
+
PDC_LOG(("mvwinnstr() - called: y %d x %d n %d \n", y, x, n));
|
155
|
+
|
156
|
+
if (wmove(win, y, x) == ERR)
|
157
|
+
return ERR;
|
158
|
+
|
159
|
+
return winnstr(win, str, n);
|
160
|
+
}
|
161
|
+
|
162
|
+
#ifdef PDC_WIDE
|
163
|
+
int winnwstr(WINDOW *win, wchar_t *wstr, int n)
|
164
|
+
{
|
165
|
+
chtype *src;
|
166
|
+
int i;
|
167
|
+
|
168
|
+
PDC_LOG(("winnstr() - called: n %d \n", n));
|
169
|
+
|
170
|
+
if (!win || !wstr)
|
171
|
+
return ERR;
|
172
|
+
|
173
|
+
if (n < 0 || (win->_curx + n) > win->_maxx)
|
174
|
+
n = win->_maxx - win->_curx;
|
175
|
+
|
176
|
+
src = win->_y[win->_cury] + win->_curx;
|
177
|
+
|
178
|
+
for (i = 0; i < n; i++)
|
179
|
+
wstr[i] = (wchar_t)src[i] & A_CHARTEXT;
|
180
|
+
|
181
|
+
wstr[i] = L'\0';
|
182
|
+
|
183
|
+
return i;
|
184
|
+
}
|
185
|
+
|
186
|
+
int inwstr(wchar_t *wstr)
|
187
|
+
{
|
188
|
+
PDC_LOG(("inwstr() - called\n"));
|
189
|
+
|
190
|
+
return (ERR == winnwstr(stdscr, wstr, stdscr->_maxx)) ? ERR : OK;
|
191
|
+
}
|
192
|
+
|
193
|
+
int winwstr(WINDOW *win, wchar_t *wstr)
|
194
|
+
{
|
195
|
+
PDC_LOG(("winwstr() - called\n"));
|
196
|
+
|
197
|
+
return (ERR == winnwstr(win, wstr, win->_maxx)) ? ERR : OK;
|
198
|
+
}
|
199
|
+
|
200
|
+
int mvinwstr(int y, int x, wchar_t *wstr)
|
201
|
+
{
|
202
|
+
PDC_LOG(("mvinwstr() - called\n"));
|
203
|
+
|
204
|
+
if (move(y, x) == ERR)
|
205
|
+
return ERR;
|
206
|
+
|
207
|
+
return (ERR == winnwstr(stdscr, wstr, stdscr->_maxx)) ? ERR : OK;
|
208
|
+
}
|
209
|
+
|
210
|
+
int mvwinwstr(WINDOW *win, int y, int x, wchar_t *wstr)
|
211
|
+
{
|
212
|
+
PDC_LOG(("mvwinstr() - called\n"));
|
213
|
+
|
214
|
+
if (wmove(win, y, x) == ERR)
|
215
|
+
return ERR;
|
216
|
+
|
217
|
+
return (ERR == winnwstr(win, wstr, win->_maxx)) ? ERR : OK;
|
218
|
+
}
|
219
|
+
|
220
|
+
int innwstr(wchar_t *wstr, int n)
|
221
|
+
{
|
222
|
+
PDC_LOG(("innwstr() - called\n"));
|
223
|
+
|
224
|
+
return winnwstr(stdscr, wstr, n);
|
225
|
+
}
|
226
|
+
|
227
|
+
int mvinnwstr(int y, int x, wchar_t *wstr, int n)
|
228
|
+
{
|
229
|
+
PDC_LOG(("mvinnstr() - called\n"));
|
230
|
+
|
231
|
+
if (move(y, x) == ERR)
|
232
|
+
return ERR;
|
233
|
+
|
234
|
+
return winnwstr(stdscr, wstr, n);
|
235
|
+
}
|
236
|
+
|
237
|
+
int mvwinnwstr(WINDOW *win, int y, int x, wchar_t *wstr, int n)
|
238
|
+
{
|
239
|
+
PDC_LOG(("mvwinnwstr() - called\n"));
|
240
|
+
|
241
|
+
if (wmove(win, y, x) == ERR)
|
242
|
+
return ERR;
|
243
|
+
|
244
|
+
return winnwstr(win, wstr, n);
|
245
|
+
}
|
246
|
+
#endif
|