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,143 @@
|
|
1
|
+
/* Public Domain Curses */
|
2
|
+
|
3
|
+
#include "pdcwin.h"
|
4
|
+
|
5
|
+
#include <stdlib.h>
|
6
|
+
#include <string.h>
|
7
|
+
|
8
|
+
#ifdef CHTYPE_LONG
|
9
|
+
|
10
|
+
#ifdef PDC_WIDE
|
11
|
+
#define USE_UNICODE_ACS_CHARS 1
|
12
|
+
#else
|
13
|
+
#define USE_UNICODE_ACS_CHARS 0
|
14
|
+
#endif
|
15
|
+
|
16
|
+
#include "acs_defs.h"
|
17
|
+
|
18
|
+
#endif
|
19
|
+
|
20
|
+
/* position hardware cursor at (y, x) */
|
21
|
+
|
22
|
+
void PDC_gotoyx(int row, int col)
|
23
|
+
{
|
24
|
+
COORD coord;
|
25
|
+
|
26
|
+
PDC_LOG(("PDC_gotoyx() - called: row %d col %d from row %d col %d\n",
|
27
|
+
row, col, SP->cursrow, SP->curscol));
|
28
|
+
|
29
|
+
coord.X = col;
|
30
|
+
coord.Y = row;
|
31
|
+
|
32
|
+
SetConsoleCursorPosition(pdc_con_out, coord);
|
33
|
+
}
|
34
|
+
|
35
|
+
/* update the given physical line to look like the corresponding line in
|
36
|
+
curscr */
|
37
|
+
|
38
|
+
/* NOTE: the original indexing into pdc_atrtab[] relied on three or five
|
39
|
+
attribute bits in 'chtype' being adjacent to the color bits. Such is
|
40
|
+
not the case for 64-bit chtypes (CHTYPE_LONG == 2), so we have to do
|
41
|
+
additional bit-fiddling for that situation. Code is similar in Win32
|
42
|
+
and DOS flavors. (BJG) */
|
43
|
+
#define MAX_UNICODE 0x10ffff
|
44
|
+
#define DUMMY_CHAR_NEXT_TO_FULLWIDTH (MAX_UNICODE + 1)
|
45
|
+
|
46
|
+
/* see 'addch.c' for an explanation of how combining chars are handled. */
|
47
|
+
|
48
|
+
#if defined( CHTYPE_LONG) && CHTYPE_LONG >= 2 && defined( PDC_WIDE)
|
49
|
+
#define USING_COMBINING_CHARACTER_SCHEME
|
50
|
+
int PDC_expand_combined_characters( const cchar_t c, cchar_t *added); /* addch.c */
|
51
|
+
#endif
|
52
|
+
|
53
|
+
#define PDC_NEW_WINCON_WORKAROUND 1
|
54
|
+
|
55
|
+
void PDC_transform_line(int lineno, int x, int len, const chtype *srcp)
|
56
|
+
{
|
57
|
+
CHAR_INFO ci[512];
|
58
|
+
int src, dst;
|
59
|
+
COORD bufSize, bufPos;
|
60
|
+
SMALL_RECT sr;
|
61
|
+
|
62
|
+
PDC_LOG(("PDC_transform_line() - called: lineno=%d\n", lineno));
|
63
|
+
|
64
|
+
bufPos.X = bufPos.Y = 0;
|
65
|
+
|
66
|
+
sr.Top = lineno;
|
67
|
+
sr.Bottom = lineno;
|
68
|
+
sr.Left = x;
|
69
|
+
sr.Right = x + len - 1;
|
70
|
+
|
71
|
+
for (src = dst = 0; src < len; src++)
|
72
|
+
if( (srcp[src] & A_CHARTEXT) != DUMMY_CHAR_NEXT_TO_FULLWIDTH)
|
73
|
+
{
|
74
|
+
const chtype ch = srcp[src];
|
75
|
+
chtype char_out = ch & A_CHARTEXT;
|
76
|
+
|
77
|
+
#if defined( CHTYPE_LONG) && (CHTYPE_LONG >= 2)
|
78
|
+
ci[dst].Attributes = pdc_atrtab[((ch >> PDC_ATTR_SHIFT) & 0x1f)
|
79
|
+
| (((ch >> PDC_COLOR_SHIFT) & 0xff) << 5)];
|
80
|
+
#else
|
81
|
+
ci[dst].Attributes = pdc_atrtab[ch >> PDC_ATTR_SHIFT];
|
82
|
+
#endif
|
83
|
+
|
84
|
+
#ifdef CHTYPE_LONG
|
85
|
+
if (ch & A_ALTCHARSET && !(ch & 0xff80))
|
86
|
+
char_out = acs_map[ch & 0x7f];
|
87
|
+
|
88
|
+
#ifdef USING_COMBINING_CHARACTER_SCHEME
|
89
|
+
/* We can't actually display combining characters in cmd.exe. So
|
90
|
+
show the 'base' character and throw away the modifying marks. */
|
91
|
+
if( char_out > MAX_UNICODE)
|
92
|
+
{
|
93
|
+
cchar_t added;
|
94
|
+
int n_combined = 0;
|
95
|
+
|
96
|
+
while( (char_out = PDC_expand_combined_characters( char_out,
|
97
|
+
&added)) > MAX_UNICODE)
|
98
|
+
{
|
99
|
+
n_combined++;
|
100
|
+
}
|
101
|
+
}
|
102
|
+
#endif
|
103
|
+
if( char_out > 0xffff) /* SMP chars: use surrogates */
|
104
|
+
{
|
105
|
+
ci[dst].Char.UnicodeChar = (WCHAR)( 0xd800 | (char_out>>10));
|
106
|
+
ci[dst + 1] = ci[dst];
|
107
|
+
dst++;
|
108
|
+
char_out = (chtype)( 0xdc00 | (char_out & 0x3ff));
|
109
|
+
}
|
110
|
+
#endif
|
111
|
+
ci[dst].Char.UnicodeChar = (WCHAR)char_out;
|
112
|
+
|
113
|
+
#ifdef PDC_NEW_WINCON_WORKAROUND
|
114
|
+
sr.Left = x + src;
|
115
|
+
if( src < len - 1 &&
|
116
|
+
(srcp[src + 1] & A_CHARTEXT) == DUMMY_CHAR_NEXT_TO_FULLWIDTH)
|
117
|
+
{
|
118
|
+
/* necessary to erase garbage */
|
119
|
+
ci[dst + 1].Char.UnicodeChar = (WCHAR)' ';
|
120
|
+
ci[dst + 1].Attributes = ci[dst].Attributes;
|
121
|
+
bufSize.X = 2;
|
122
|
+
bufSize.Y = 1;
|
123
|
+
sr.Right = sr.Left + 2;
|
124
|
+
}
|
125
|
+
else
|
126
|
+
{
|
127
|
+
bufSize.X = 1;
|
128
|
+
bufSize.Y = 1;
|
129
|
+
sr.Right = sr.Left + 1;
|
130
|
+
}
|
131
|
+
WriteConsoleOutput(pdc_con_out, ci, bufSize, bufPos, &sr);
|
132
|
+
#else
|
133
|
+
dst++;
|
134
|
+
#endif
|
135
|
+
}
|
136
|
+
|
137
|
+
#ifndef PDC_NEW_WINCON_WORKAROUND
|
138
|
+
bufSize.X = dst;
|
139
|
+
bufSize.Y = 1;
|
140
|
+
|
141
|
+
WriteConsoleOutput(pdc_con_out, ci, bufSize, bufPos, &sr);
|
142
|
+
#endif
|
143
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
/* Public Domain Curses */
|
2
|
+
|
3
|
+
#include "pdcwin.h"
|
4
|
+
|
5
|
+
/* get the cursor size/shape */
|
6
|
+
|
7
|
+
int PDC_get_cursor_mode(void)
|
8
|
+
{
|
9
|
+
CONSOLE_CURSOR_INFO ci;
|
10
|
+
|
11
|
+
PDC_LOG(("PDC_get_cursor_mode() - called\n"));
|
12
|
+
|
13
|
+
GetConsoleCursorInfo(pdc_con_out, &ci);
|
14
|
+
|
15
|
+
return ci.dwSize;
|
16
|
+
}
|
17
|
+
|
18
|
+
/* return number of screen rows */
|
19
|
+
|
20
|
+
int PDC_get_rows(void)
|
21
|
+
{
|
22
|
+
CONSOLE_SCREEN_BUFFER_INFO scr;
|
23
|
+
|
24
|
+
PDC_LOG(("PDC_get_rows() - called\n"));
|
25
|
+
|
26
|
+
GetConsoleScreenBufferInfo(pdc_con_out, &scr);
|
27
|
+
|
28
|
+
return scr.srWindow.Bottom - scr.srWindow.Top + 1;
|
29
|
+
}
|
30
|
+
|
31
|
+
/* return number of buffer rows */
|
32
|
+
|
33
|
+
int PDC_get_buffer_rows(void)
|
34
|
+
{
|
35
|
+
CONSOLE_SCREEN_BUFFER_INFO scr;
|
36
|
+
|
37
|
+
PDC_LOG(("PDC_get_buffer_rows() - called\n"));
|
38
|
+
|
39
|
+
GetConsoleScreenBufferInfo(pdc_con_out, &scr);
|
40
|
+
|
41
|
+
return scr.dwSize.Y;
|
42
|
+
}
|
43
|
+
|
44
|
+
/* return width of screen/viewport */
|
45
|
+
|
46
|
+
int PDC_get_columns(void)
|
47
|
+
{
|
48
|
+
CONSOLE_SCREEN_BUFFER_INFO scr;
|
49
|
+
|
50
|
+
PDC_LOG(("PDC_get_columns() - called\n"));
|
51
|
+
|
52
|
+
GetConsoleScreenBufferInfo(pdc_con_out, &scr);
|
53
|
+
|
54
|
+
return scr.srWindow.Right - scr.srWindow.Left + 1;
|
55
|
+
}
|