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,51 @@
|
|
1
|
+
PDCurses for DOS
|
2
|
+
================
|
3
|
+
|
4
|
+
This directory contains PDCurses source code files specific to DOS.
|
5
|
+
|
6
|
+
|
7
|
+
Building
|
8
|
+
--------
|
9
|
+
|
10
|
+
- Choose the appropriate makefile for your compiler:
|
11
|
+
|
12
|
+
Makefile - DJGPP V2
|
13
|
+
Makefile.bcc - Borland C++ 3.0+
|
14
|
+
Makefile.wcc - Open Watcom 1.8+ (16-bit or 32-bit)
|
15
|
+
Makefile.dmc - Digital Mars
|
16
|
+
Makefile.msc - Microsoft C
|
17
|
+
|
18
|
+
- For 16-bit compilers, you can change the memory MODEL in the makefile.
|
19
|
+
(Large model is the default, and recommended.)
|
20
|
+
|
21
|
+
(For Open Watcom, pass MODEL=f (flat model) to "wmake" in order to use
|
22
|
+
the 32-bit compiler. Selcting a 16-bit MODEL (e.g. MODEL=l) will
|
23
|
+
invoke the 16-bit compiler.)
|
24
|
+
|
25
|
+
- Optionally, you can build in a different directory than the platform
|
26
|
+
directory by setting PDCURSES_SRCDIR to point to the directory where
|
27
|
+
you unpacked PDCurses, and changing to your target directory:
|
28
|
+
|
29
|
+
set PDCURSES_SRCDIR=c:\pdcurses
|
30
|
+
|
31
|
+
- Build it:
|
32
|
+
|
33
|
+
make -f makefile
|
34
|
+
|
35
|
+
(For Watcom, use "wmake" instead of "make"; for MSVC, "nmake".) You'll
|
36
|
+
get the libraries (pdcurses.lib or .a, depending on your compiler; and
|
37
|
+
panel.lib or .a), the demos (*.exe), and a lot of object files.
|
38
|
+
|
39
|
+
|
40
|
+
Distribution Status
|
41
|
+
-------------------
|
42
|
+
|
43
|
+
The files in this directory are released to the Public Domain.
|
44
|
+
|
45
|
+
|
46
|
+
Acknowledgements
|
47
|
+
----------------
|
48
|
+
|
49
|
+
Watcom C port was provided by Pieter Kunst <kunst@prl.philips.nl>
|
50
|
+
|
51
|
+
DJGPP 1.x port was provided by David Nugent <davidn@csource.oz.au>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
+addch.obj +addchstr.obj +addstr.obj +attr.obj +beep.obj +bkgd.obj &
|
2
|
+
+border.obj +clear.obj +color.obj +delch.obj +deleteln.obj +deprec.obj &
|
3
|
+
+getch.obj +getstr.obj +getyx.obj +inch.obj +inchstr.obj +initscr.obj &
|
4
|
+
+inopts.obj +insch.obj +insstr.obj +instr.obj +kernel.obj +keyname.obj &
|
5
|
+
+mouse.obj +move.obj +outopts.obj +overlay.obj +pad.obj +panel.obj &
|
6
|
+
+printw.obj +refresh.obj +scanw.obj +scr_dump.obj +scroll.obj +slk.obj &
|
7
|
+
+termattr.obj +terminfo.obj +touch.obj +util.obj +window.obj +debug.obj &
|
8
|
+
+pdcclip.obj +pdcdisp.obj +pdcgetsc.obj +pdckbd.obj +pdcscrn.obj &
|
9
|
+
+pdcsetsc.obj +pdcutil.obj ,lib.map
|
@@ -0,0 +1,50 @@
|
|
1
|
+
-+addch.obj &
|
2
|
+
-+addchstr.obj &
|
3
|
+
-+addstr.obj &
|
4
|
+
-+attr.obj &
|
5
|
+
-+beep.obj &
|
6
|
+
-+bkgd.obj &
|
7
|
+
-+border.obj &
|
8
|
+
-+clear.obj &
|
9
|
+
-+color.obj &
|
10
|
+
-+delch.obj &
|
11
|
+
-+deleteln.obj &
|
12
|
+
-+deprec.obj &
|
13
|
+
-+getch.obj &
|
14
|
+
-+getstr.obj &
|
15
|
+
-+getyx.obj &
|
16
|
+
-+inch.obj &
|
17
|
+
-+inchstr.obj &
|
18
|
+
-+initscr.obj &
|
19
|
+
-+inopts.obj &
|
20
|
+
-+insch.obj &
|
21
|
+
-+insstr.obj &
|
22
|
+
-+instr.obj &
|
23
|
+
-+kernel.obj &
|
24
|
+
-+keyname.obj &
|
25
|
+
-+mouse.obj &
|
26
|
+
-+move.obj &
|
27
|
+
-+outopts.obj &
|
28
|
+
-+overlay.obj &
|
29
|
+
-+pad.obj &
|
30
|
+
-+panel.obj &
|
31
|
+
-+printw.obj &
|
32
|
+
-+refresh.obj &
|
33
|
+
-+scanw.obj &
|
34
|
+
-+scr_dump.obj &
|
35
|
+
-+scroll.obj &
|
36
|
+
-+slk.obj &
|
37
|
+
-+termattr.obj &
|
38
|
+
-+terminfo.obj &
|
39
|
+
-+touch.obj &
|
40
|
+
-+util.obj &
|
41
|
+
-+window.obj &
|
42
|
+
-+debug.obj &
|
43
|
+
-+pdcclip.obj &
|
44
|
+
-+pdcdisp.obj &
|
45
|
+
-+pdcgetsc.obj &
|
46
|
+
-+pdckbd.obj &
|
47
|
+
-+pdcscrn.obj &
|
48
|
+
-+pdcsetsc.obj &
|
49
|
+
-+pdcutil.obj &
|
50
|
+
,lib.map;
|
@@ -0,0 +1,132 @@
|
|
1
|
+
/* Public Domain Curses */
|
2
|
+
|
3
|
+
#include "pdcdos.h"
|
4
|
+
|
5
|
+
#include <stdlib.h>
|
6
|
+
|
7
|
+
/*man-start**************************************************************
|
8
|
+
|
9
|
+
clipboard
|
10
|
+
---------
|
11
|
+
|
12
|
+
### Synopsis
|
13
|
+
|
14
|
+
int PDC_getclipboard(char **contents, long *length);
|
15
|
+
int PDC_setclipboard(const char *contents, long length);
|
16
|
+
int PDC_freeclipboard(char *contents);
|
17
|
+
int PDC_clearclipboard(void);
|
18
|
+
|
19
|
+
### Description
|
20
|
+
|
21
|
+
PDC_getclipboard() gets the textual contents of the system's
|
22
|
+
clipboard. This function returns the contents of the clipboard
|
23
|
+
in the contents argument. It is the responsibilitiy of the
|
24
|
+
caller to free the memory returned, via PDC_freeclipboard().
|
25
|
+
The length of the clipboard contents is returned in the length
|
26
|
+
argument.
|
27
|
+
|
28
|
+
PDC_setclipboard copies the supplied text into the system's
|
29
|
+
clipboard, emptying the clipboard prior to the copy.
|
30
|
+
|
31
|
+
PDC_clearclipboard() clears the internal clipboard.
|
32
|
+
|
33
|
+
### Return Values
|
34
|
+
|
35
|
+
indicator of success/failure of call.
|
36
|
+
PDC_CLIP_SUCCESS the call was successful
|
37
|
+
PDC_CLIP_MEMORY_ERROR unable to allocate sufficient memory for
|
38
|
+
the clipboard contents
|
39
|
+
PDC_CLIP_EMPTY the clipboard contains no text
|
40
|
+
PDC_CLIP_ACCESS_ERROR no clipboard support
|
41
|
+
|
42
|
+
### Portability
|
43
|
+
X/Open BSD SYS V
|
44
|
+
PDC_getclipboard - - -
|
45
|
+
PDC_setclipboard - - -
|
46
|
+
PDC_freeclipboard - - -
|
47
|
+
PDC_clearclipboard - - -
|
48
|
+
|
49
|
+
**man-end****************************************************************/
|
50
|
+
|
51
|
+
/* global clipboard contents, should be NULL if none set */
|
52
|
+
|
53
|
+
static char *pdc_DOS_clipboard = NULL;
|
54
|
+
|
55
|
+
int PDC_getclipboard(char **contents, long *length)
|
56
|
+
{
|
57
|
+
int len;
|
58
|
+
|
59
|
+
PDC_LOG(("PDC_getclipboard() - called\n"));
|
60
|
+
|
61
|
+
if (!pdc_DOS_clipboard)
|
62
|
+
return PDC_CLIP_EMPTY;
|
63
|
+
|
64
|
+
len = strlen(pdc_DOS_clipboard);
|
65
|
+
if ((*contents = malloc(len + 1)) == NULL)
|
66
|
+
return PDC_CLIP_MEMORY_ERROR;
|
67
|
+
|
68
|
+
strcpy(*contents, pdc_DOS_clipboard);
|
69
|
+
*length = len;
|
70
|
+
|
71
|
+
return PDC_CLIP_SUCCESS;
|
72
|
+
}
|
73
|
+
|
74
|
+
int PDC_setclipboard(const char *contents, long length)
|
75
|
+
{
|
76
|
+
PDC_LOG(("PDC_setclipboard() - called\n"));
|
77
|
+
|
78
|
+
if (pdc_DOS_clipboard)
|
79
|
+
{
|
80
|
+
free(pdc_DOS_clipboard);
|
81
|
+
pdc_DOS_clipboard = NULL;
|
82
|
+
}
|
83
|
+
|
84
|
+
if (contents)
|
85
|
+
{
|
86
|
+
if ((pdc_DOS_clipboard = malloc(length + 1)) == NULL)
|
87
|
+
return PDC_CLIP_MEMORY_ERROR;
|
88
|
+
|
89
|
+
strcpy(pdc_DOS_clipboard, contents);
|
90
|
+
}
|
91
|
+
|
92
|
+
return PDC_CLIP_SUCCESS;
|
93
|
+
}
|
94
|
+
|
95
|
+
int PDC_freeclipboard(char *contents)
|
96
|
+
{
|
97
|
+
PDC_LOG(("PDC_freeclipboard() - called\n"));
|
98
|
+
|
99
|
+
/* should we also free empty the system clipboard? probably not */
|
100
|
+
|
101
|
+
if (contents)
|
102
|
+
{
|
103
|
+
|
104
|
+
/* NOTE: We free the memory, but we can not set caller's pointer
|
105
|
+
to NULL, so if caller calls again then will try to access
|
106
|
+
free'd memory. We 1st overwrite memory with a string so if
|
107
|
+
caller tries to use free memory they won't get what they
|
108
|
+
expect & hopefully notice. */
|
109
|
+
|
110
|
+
/* memset(contents, 0xFD, strlen(contents)); */
|
111
|
+
|
112
|
+
if (strlen(contents) >= strlen("PDCURSES"))
|
113
|
+
strcpy(contents, "PDCURSES");
|
114
|
+
|
115
|
+
free(contents);
|
116
|
+
}
|
117
|
+
|
118
|
+
return PDC_CLIP_SUCCESS;
|
119
|
+
}
|
120
|
+
|
121
|
+
int PDC_clearclipboard(void)
|
122
|
+
{
|
123
|
+
PDC_LOG(("PDC_clearclipboard() - called\n"));
|
124
|
+
|
125
|
+
if (pdc_DOS_clipboard)
|
126
|
+
{
|
127
|
+
free(pdc_DOS_clipboard);
|
128
|
+
pdc_DOS_clipboard = NULL;
|
129
|
+
}
|
130
|
+
|
131
|
+
return PDC_CLIP_SUCCESS;
|
132
|
+
}
|
@@ -0,0 +1,135 @@
|
|
1
|
+
/* Public Domain Curses */
|
2
|
+
|
3
|
+
#include "pdcdos.h"
|
4
|
+
|
5
|
+
/* ACS definitions originally by jshumate@wrdis01.robins.af.mil -- these
|
6
|
+
match code page 437 and compatible pages (CP850, CP852, etc.) */
|
7
|
+
|
8
|
+
#ifdef CHTYPE_LONG
|
9
|
+
#define USE_UNICODE_ACS_CHARS 0
|
10
|
+
#include "acs_defs.h"
|
11
|
+
#endif
|
12
|
+
|
13
|
+
#ifdef __PACIFIC__
|
14
|
+
void movedata(unsigned sseg, unsigned soff, unsigned dseg,
|
15
|
+
unsigned doff, unsigned n)
|
16
|
+
{
|
17
|
+
far char *src = MK_FP(sseg, soff);
|
18
|
+
far char *dst = MK_FP(dseg, doff);
|
19
|
+
|
20
|
+
while (n--)
|
21
|
+
*dst++ = *src++;
|
22
|
+
}
|
23
|
+
#endif
|
24
|
+
|
25
|
+
/* position hardware cursor at (y, x) */
|
26
|
+
|
27
|
+
void PDC_gotoyx(int row, int col)
|
28
|
+
{
|
29
|
+
PDCREGS regs;
|
30
|
+
|
31
|
+
PDC_LOG(("PDC_gotoyx() - called: row %d col %d\n", row, col));
|
32
|
+
|
33
|
+
regs.h.ah = 0x02;
|
34
|
+
regs.h.bh = 0;
|
35
|
+
regs.h.dh = (unsigned char) row;
|
36
|
+
regs.h.dl = (unsigned char) col;
|
37
|
+
PDCINT(0x10, regs);
|
38
|
+
}
|
39
|
+
|
40
|
+
/* update the given physical line to look like the corresponding line in
|
41
|
+
curscr */
|
42
|
+
|
43
|
+
/* NOTE: the original indexing into pdc_atrtab[] relied on three or five
|
44
|
+
attribute bits in 'chtype' being adjacent to the color bits. Such is
|
45
|
+
not the case for 64-bit chtypes (CHTYPE_LONG == 2), so we have to do
|
46
|
+
additional bit-fiddling for that situation. Code is similar in Win32
|
47
|
+
and DOS flavors. (BJG) */
|
48
|
+
|
49
|
+
void PDC_transform_line(int lineno, int x, int len, const chtype *srcp)
|
50
|
+
{
|
51
|
+
int j;
|
52
|
+
|
53
|
+
PDC_LOG(("PDC_transform_line() - called: line %d\n", lineno));
|
54
|
+
|
55
|
+
if (pdc_direct_video)
|
56
|
+
{
|
57
|
+
#if SMALL || MEDIUM
|
58
|
+
# ifndef __PACIFIC__
|
59
|
+
struct SREGS segregs;
|
60
|
+
# endif
|
61
|
+
int ds;
|
62
|
+
#endif
|
63
|
+
/* this should be enough for the maximum width of a screen */
|
64
|
+
|
65
|
+
struct {unsigned char text, attr;} temp_line[256];
|
66
|
+
|
67
|
+
/* replace the attribute part of the chtype with the actual
|
68
|
+
color value for each chtype in the line */
|
69
|
+
|
70
|
+
for (j = 0; j < len; j++)
|
71
|
+
{
|
72
|
+
chtype ch = srcp[j];
|
73
|
+
|
74
|
+
#if defined( CHTYPE_LONG) && (CHTYPE_LONG >= 2)
|
75
|
+
temp_line[j].attr = pdc_atrtab[((ch >> PDC_ATTR_SHIFT) & 0x1f)
|
76
|
+
| (((ch >> PDC_COLOR_SHIFT) & 0xff) << 5)];
|
77
|
+
#else
|
78
|
+
temp_line[j].attr = pdc_atrtab[ch >> PDC_ATTR_SHIFT];
|
79
|
+
#endif
|
80
|
+
|
81
|
+
#ifdef CHTYPE_LONG
|
82
|
+
if (ch & A_ALTCHARSET && !(ch & 0xff80))
|
83
|
+
ch = acs_map[ch & 0x7f];
|
84
|
+
#endif
|
85
|
+
temp_line[j].text = ch & 0xff;
|
86
|
+
}
|
87
|
+
|
88
|
+
#ifdef __DJGPP__
|
89
|
+
dosmemput(temp_line, len * 2,
|
90
|
+
(unsigned long)_FAR_POINTER(pdc_video_seg,
|
91
|
+
pdc_video_ofs + (lineno * curscr->_maxx + x) * 2));
|
92
|
+
#else
|
93
|
+
# if SMALL || MEDIUM
|
94
|
+
# ifdef __PACIFIC__
|
95
|
+
ds = FP_SEG((void far *) temp_line);
|
96
|
+
# else
|
97
|
+
segread(&segregs);
|
98
|
+
ds = segregs.ds;
|
99
|
+
# endif
|
100
|
+
movedata(ds, (int)temp_line, pdc_video_seg,
|
101
|
+
pdc_video_ofs + (lineno * curscr->_maxx + x) * 2, len * 2);
|
102
|
+
# else
|
103
|
+
memcpy((void *)_FAR_POINTER(pdc_video_seg,
|
104
|
+
pdc_video_ofs + (lineno * curscr->_maxx + x) * 2),
|
105
|
+
temp_line, len * 2);
|
106
|
+
# endif
|
107
|
+
#endif
|
108
|
+
|
109
|
+
}
|
110
|
+
else
|
111
|
+
for (j = 0; j < len;)
|
112
|
+
{
|
113
|
+
PDCREGS regs;
|
114
|
+
unsigned short count = 1;
|
115
|
+
chtype ch = srcp[j];
|
116
|
+
|
117
|
+
while ((j + count < len) && (ch == srcp[j + count]))
|
118
|
+
count++;
|
119
|
+
|
120
|
+
PDC_gotoyx(lineno, j + x);
|
121
|
+
|
122
|
+
regs.h.ah = 0x09;
|
123
|
+
regs.W.bx = pdc_atrtab[ch >> PDC_ATTR_SHIFT];
|
124
|
+
regs.W.cx = count;
|
125
|
+
#ifdef CHTYPE_LONG
|
126
|
+
if (ch & A_ALTCHARSET && !(ch & 0xff80))
|
127
|
+
ch = acs_map[ch & 0x7f];
|
128
|
+
#endif
|
129
|
+
regs.h.al = (unsigned char) (ch & 0xff);
|
130
|
+
|
131
|
+
PDCINT(0x10, regs);
|
132
|
+
|
133
|
+
j += count;
|
134
|
+
}
|
135
|
+
}
|
@@ -0,0 +1,194 @@
|
|
1
|
+
/* Public Domain Curses */
|
2
|
+
|
3
|
+
#include <curspriv.h>
|
4
|
+
#include <string.h>
|
5
|
+
|
6
|
+
# if(CHTYPE_LONG >= 2) /* 64-bit chtypes */
|
7
|
+
# define PDC_ATTR_SHIFT 23
|
8
|
+
# else
|
9
|
+
#ifdef CHTYPE_LONG /* 32-bit chtypes */
|
10
|
+
# define PDC_ATTR_SHIFT 19
|
11
|
+
#else /* 16-bit chtypes */
|
12
|
+
# define PDC_ATTR_SHIFT 8
|
13
|
+
#endif
|
14
|
+
#endif
|
15
|
+
|
16
|
+
#if defined(_MSC_VER) || defined(_QC)
|
17
|
+
# define MSC 1
|
18
|
+
#endif
|
19
|
+
|
20
|
+
#if defined(__PACIFIC__) && !defined(__SMALL__)
|
21
|
+
# define __SMALL__
|
22
|
+
#endif
|
23
|
+
|
24
|
+
#if defined(__HIGHC__) || MSC
|
25
|
+
# include <bios.h>
|
26
|
+
#endif
|
27
|
+
|
28
|
+
/*----------------------------------------------------------------------
|
29
|
+
* MEMORY MODEL SUPPORT:
|
30
|
+
*
|
31
|
+
* MODELS
|
32
|
+
* TINY cs,ds,ss all in 1 segment (not enough memory!)
|
33
|
+
* SMALL cs:1 segment, ds:1 segment
|
34
|
+
* MEDIUM cs:many segments, ds:1 segment
|
35
|
+
* COMPACT cs:1 segment, ds:many segments
|
36
|
+
* LARGE cs:many segments, ds:many segments
|
37
|
+
* HUGE cs:many segments, ds:segments > 64K
|
38
|
+
*/
|
39
|
+
|
40
|
+
#ifdef __TINY__
|
41
|
+
# define SMALL 1
|
42
|
+
#endif
|
43
|
+
#ifdef __SMALL__
|
44
|
+
# define SMALL 1
|
45
|
+
#endif
|
46
|
+
#ifdef __MEDIUM__
|
47
|
+
# define MEDIUM 1
|
48
|
+
#endif
|
49
|
+
#ifdef __COMPACT__
|
50
|
+
# define COMPACT 1
|
51
|
+
#endif
|
52
|
+
#ifdef __LARGE__
|
53
|
+
# define LARGE 1
|
54
|
+
#endif
|
55
|
+
#ifdef __HUGE__
|
56
|
+
# define HUGE 1
|
57
|
+
#endif
|
58
|
+
|
59
|
+
#include <dos.h>
|
60
|
+
|
61
|
+
extern unsigned char *pdc_atrtab;
|
62
|
+
extern int pdc_adapter;
|
63
|
+
extern int pdc_scrnmode;
|
64
|
+
extern int pdc_font;
|
65
|
+
extern bool pdc_direct_video;
|
66
|
+
extern bool pdc_bogus_adapter;
|
67
|
+
extern unsigned pdc_video_seg;
|
68
|
+
extern unsigned pdc_video_ofs;
|
69
|
+
|
70
|
+
#ifdef __DJGPP__ /* Note: works only in plain DOS... */
|
71
|
+
# if DJGPP == 2
|
72
|
+
# define _FAR_POINTER(s,o) ((((int)(s)) << 4) + ((int)(o)))
|
73
|
+
# else
|
74
|
+
# define _FAR_POINTER(s,o) (0xe0000000 + (((int)(s)) << 4) + ((int)(o)))
|
75
|
+
# endif
|
76
|
+
# define _FP_SEGMENT(p) (unsigned short)((((long)p) >> 4) & 0xffff)
|
77
|
+
#else
|
78
|
+
# ifdef __TURBOC__
|
79
|
+
# define _FAR_POINTER(s,o) MK_FP(s,o)
|
80
|
+
# else
|
81
|
+
# if defined(__WATCOMC__) && defined(__FLAT__)
|
82
|
+
# define _FAR_POINTER(s,o) ((((int)(s)) << 4) + ((int)(o)))
|
83
|
+
# else
|
84
|
+
# define _FAR_POINTER(s,o) (((long)s << 16) | (long)o)
|
85
|
+
# endif
|
86
|
+
# endif
|
87
|
+
# define _FP_SEGMENT(p) (unsigned short)(((long)p) >> 4)
|
88
|
+
#endif
|
89
|
+
#define _FP_OFFSET(p) ((unsigned short)p & 0x000f)
|
90
|
+
|
91
|
+
#ifdef __DJGPP__
|
92
|
+
# include <sys/movedata.h>
|
93
|
+
unsigned char getdosmembyte(int offs);
|
94
|
+
unsigned short getdosmemword(int offs);
|
95
|
+
unsigned long getdosmemdword(int offs);
|
96
|
+
void setdosmembyte(int offs, unsigned char b);
|
97
|
+
void setdosmemword(int offs, unsigned short w);
|
98
|
+
#else
|
99
|
+
# if SMALL || MEDIUM || MSC
|
100
|
+
# define PDC_FAR far
|
101
|
+
# else
|
102
|
+
# define PDC_FAR
|
103
|
+
# endif
|
104
|
+
# define getdosmembyte(offs) \
|
105
|
+
(*((unsigned char PDC_FAR *) _FAR_POINTER(0,offs)))
|
106
|
+
# define getdosmemword(offs) \
|
107
|
+
(*((unsigned short PDC_FAR *) _FAR_POINTER(0,offs)))
|
108
|
+
# define getdosmemdword(offs) \
|
109
|
+
(*((unsigned long PDC_FAR *) _FAR_POINTER(0,offs)))
|
110
|
+
# define setdosmembyte(offs,x) \
|
111
|
+
(*((unsigned char PDC_FAR *) _FAR_POINTER(0,offs)) = (x))
|
112
|
+
# define setdosmemword(offs,x) \
|
113
|
+
(*((unsigned short PDC_FAR *) _FAR_POINTER(0,offs)) = (x))
|
114
|
+
#endif
|
115
|
+
|
116
|
+
#if defined(__WATCOMC__) && defined(__386__)
|
117
|
+
|
118
|
+
typedef union
|
119
|
+
{
|
120
|
+
struct
|
121
|
+
{
|
122
|
+
unsigned long edi, esi, ebp, res, ebx, edx, ecx, eax;
|
123
|
+
} d;
|
124
|
+
|
125
|
+
struct
|
126
|
+
{
|
127
|
+
unsigned short di, di_hi, si, si_hi, bp, bp_hi, res, res_hi,
|
128
|
+
bx, bx_hi, dx, dx_hi, cx, cx_hi, ax, ax_hi,
|
129
|
+
flags, es, ds, fs, gs, ip, cs, sp, ss;
|
130
|
+
} w;
|
131
|
+
|
132
|
+
struct
|
133
|
+
{
|
134
|
+
unsigned char edi[4], esi[4], ebp[4], res[4],
|
135
|
+
bl, bh, ebx_b2, ebx_b3, dl, dh, edx_b2, edx_b3,
|
136
|
+
cl, ch, ecx_b2, ecx_b3, al, ah, eax_b2, eax_b3;
|
137
|
+
} h;
|
138
|
+
} pdc_dpmi_regs;
|
139
|
+
|
140
|
+
void PDC_dpmi_int(int, pdc_dpmi_regs *);
|
141
|
+
|
142
|
+
#endif
|
143
|
+
|
144
|
+
#ifdef __DJGPP__
|
145
|
+
# include <dpmi.h>
|
146
|
+
# define PDCREGS __dpmi_regs
|
147
|
+
# define PDCINT(vector, regs) __dpmi_int(vector, ®s)
|
148
|
+
#else
|
149
|
+
# ifdef __WATCOMC__
|
150
|
+
# ifdef __386__
|
151
|
+
# define PDCREGS pdc_dpmi_regs
|
152
|
+
# define PDCINT(vector, regs) PDC_dpmi_int(vector, ®s)
|
153
|
+
# else
|
154
|
+
# define PDCREGS union REGPACK
|
155
|
+
# define PDCINT(vector, regs) intr(vector, ®s)
|
156
|
+
# endif
|
157
|
+
# else
|
158
|
+
# define PDCREGS union REGS
|
159
|
+
# define PDCINT(vector, regs) int86(vector, ®s, ®s)
|
160
|
+
# endif
|
161
|
+
#endif
|
162
|
+
|
163
|
+
/* Wide registers in REGS: w or x? */
|
164
|
+
|
165
|
+
#ifdef __WATCOMC__
|
166
|
+
# define W w
|
167
|
+
#else
|
168
|
+
# define W x
|
169
|
+
#endif
|
170
|
+
|
171
|
+
/* Monitor (terminal) type information */
|
172
|
+
|
173
|
+
enum
|
174
|
+
{
|
175
|
+
_NONE, _MDA, _CGA,
|
176
|
+
_EGACOLOR = 0x04, _EGAMONO,
|
177
|
+
_VGACOLOR = 0x07, _VGAMONO,
|
178
|
+
_MCGACOLOR = 0x0a, _MCGAMONO,
|
179
|
+
_MDS_GENIUS = 0x30
|
180
|
+
};
|
181
|
+
|
182
|
+
/* Text-mode font size information */
|
183
|
+
|
184
|
+
enum
|
185
|
+
{
|
186
|
+
_FONT8 = 8,
|
187
|
+
_FONT14 = 14,
|
188
|
+
_FONT15, /* GENIUS */
|
189
|
+
_FONT16
|
190
|
+
};
|
191
|
+
|
192
|
+
#ifdef __PACIFIC__
|
193
|
+
void movedata(unsigned, unsigned, unsigned, unsigned, unsigned);
|
194
|
+
#endif
|
@@ -0,0 +1,98 @@
|
|
1
|
+
/* Public Domain Curses */
|
2
|
+
|
3
|
+
#include "pdcdos.h"
|
4
|
+
|
5
|
+
#include <stdlib.h>
|
6
|
+
|
7
|
+
/* return width of screen/viewport */
|
8
|
+
|
9
|
+
int PDC_get_columns(void)
|
10
|
+
{
|
11
|
+
PDCREGS regs;
|
12
|
+
int cols;
|
13
|
+
const char *env_cols;
|
14
|
+
|
15
|
+
PDC_LOG(("PDC_get_columns() - called\n"));
|
16
|
+
|
17
|
+
/* use the value from COLS environment variable, if set. MH 10-Jun-92 */
|
18
|
+
/* and use the minimum of COLS and return from int10h MH 18-Jun-92 */
|
19
|
+
|
20
|
+
regs.h.ah = 0x0f;
|
21
|
+
PDCINT(0x10, regs);
|
22
|
+
cols = (int)regs.h.ah;
|
23
|
+
|
24
|
+
env_cols = getenv("COLS");
|
25
|
+
|
26
|
+
if (env_cols)
|
27
|
+
cols = min(atoi(env_cols), cols);
|
28
|
+
|
29
|
+
PDC_LOG(("PDC_get_columns() - returned: cols %d\n", cols));
|
30
|
+
|
31
|
+
return cols;
|
32
|
+
}
|
33
|
+
|
34
|
+
/* get the cursor size/shape */
|
35
|
+
|
36
|
+
int PDC_get_cursor_mode(void)
|
37
|
+
{
|
38
|
+
PDC_LOG(("PDC_get_cursor_mode() - called\n"));
|
39
|
+
|
40
|
+
return getdosmemword(0x460);
|
41
|
+
}
|
42
|
+
|
43
|
+
/* return number of screen rows */
|
44
|
+
|
45
|
+
int PDC_get_rows(void)
|
46
|
+
{
|
47
|
+
const char *env_rows;
|
48
|
+
int rows;
|
49
|
+
|
50
|
+
PDC_LOG(("PDC_get_rows() - called\n"));
|
51
|
+
|
52
|
+
/* use the value from LINES environment variable, if set. MH 10-Jun-92 */
|
53
|
+
/* and use the minimum of LINES and *ROWS. MH 18-Jun-92 */
|
54
|
+
|
55
|
+
rows = getdosmembyte(0x484) + 1;
|
56
|
+
env_rows = getenv("LINES");
|
57
|
+
|
58
|
+
if (env_rows)
|
59
|
+
rows = min(atoi(env_rows), rows);
|
60
|
+
|
61
|
+
if (rows == 1 && pdc_adapter == _MDS_GENIUS)
|
62
|
+
rows = 66;
|
63
|
+
if (rows == 1 && pdc_adapter == _MDA)
|
64
|
+
rows = 25;
|
65
|
+
|
66
|
+
if (rows == 1)
|
67
|
+
{
|
68
|
+
rows = 25;
|
69
|
+
pdc_direct_video = FALSE;
|
70
|
+
}
|
71
|
+
|
72
|
+
switch (pdc_adapter)
|
73
|
+
{
|
74
|
+
case _EGACOLOR:
|
75
|
+
case _EGAMONO:
|
76
|
+
switch (rows)
|
77
|
+
{
|
78
|
+
case 25:
|
79
|
+
case 43:
|
80
|
+
break;
|
81
|
+
default:
|
82
|
+
rows = 25;
|
83
|
+
}
|
84
|
+
break;
|
85
|
+
|
86
|
+
case _VGACOLOR:
|
87
|
+
case _VGAMONO:
|
88
|
+
break;
|
89
|
+
|
90
|
+
default:
|
91
|
+
rows = 25;
|
92
|
+
break;
|
93
|
+
}
|
94
|
+
|
95
|
+
PDC_LOG(("PDC_get_rows() - returned: rows %d\n", rows));
|
96
|
+
|
97
|
+
return rows;
|
98
|
+
}
|