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,107 @@
|
|
1
|
+
# Watcom WMAKE Makefile for PDCurses library - DOS (16 bit) or DOS/4GW Watcom C/C++ 10.6+
|
2
|
+
#
|
3
|
+
# Usage: wmake -f [path/]Makefile.wcc [DEBUG=Y] [MODEL=c|h|l|m|s|f]
|
4
|
+
# [CROSS=Y|N] [CHTYPE=[-DCHTYPE_16|-DCHTYPE_32]] [target]
|
5
|
+
#
|
6
|
+
# where target can be any of:
|
7
|
+
# [all|demos|pdcurses.lib|testcurs.exe...]
|
8
|
+
#
|
9
|
+
# and MODEL specifies the memory model (16-bit compact/huge/large/medium/
|
10
|
+
# small, or 32-bit flat)
|
11
|
+
#
|
12
|
+
# and CROSS=Y (CROSS=N) means to assume we are (are not) cross-compiling
|
13
|
+
# (default is to auto-detect)
|
14
|
+
#
|
15
|
+
# and CHTYPE is an optional compiler flag to set the size of chtype (default
|
16
|
+
# is 64 bits)
|
17
|
+
|
18
|
+
# Change the memory MODEL here, if desired
|
19
|
+
!ifndef MODEL
|
20
|
+
MODEL = l
|
21
|
+
!endif
|
22
|
+
|
23
|
+
!ifdef %PDCURSES_SRCDIR
|
24
|
+
PDCURSES_SRCDIR = $(%PDCURSES_SRCDIR)
|
25
|
+
!else
|
26
|
+
PDCURSES_SRCDIR = ..
|
27
|
+
!endif
|
28
|
+
|
29
|
+
!include $(PDCURSES_SRCDIR)/version.mif
|
30
|
+
|
31
|
+
!ifndef CROSS
|
32
|
+
!ifeq %SHELL /bin/bash
|
33
|
+
# assume we are cross-compiling
|
34
|
+
CROSS = Y
|
35
|
+
!endif
|
36
|
+
!ifeq %SHELL /bin/sh
|
37
|
+
CROSS = Y
|
38
|
+
!endif
|
39
|
+
!ifeq %SHELL /bin/csh
|
40
|
+
CROSS = Y
|
41
|
+
!endif
|
42
|
+
!ifeq %SHELL /bin/dash
|
43
|
+
CROSS = Y
|
44
|
+
!endif
|
45
|
+
!endif
|
46
|
+
|
47
|
+
osdir = $(PDCURSES_SRCDIR)/dos
|
48
|
+
# Open Watcom README strongly recommends setting WATCOM environment variable...
|
49
|
+
!ifeq CROSS Y
|
50
|
+
!ifdef %WATCOM
|
51
|
+
watcomdir = $(%WATCOM)
|
52
|
+
!else
|
53
|
+
watcomdir = "`which wcc | xargs realpath | xargs dirname`"/..
|
54
|
+
!endif
|
55
|
+
!endif
|
56
|
+
|
57
|
+
!ifneq MODEL f
|
58
|
+
CC = wcc
|
59
|
+
TARGET = dos
|
60
|
+
!else
|
61
|
+
CC = wcc386
|
62
|
+
TARGET = dos4g
|
63
|
+
!endif
|
64
|
+
|
65
|
+
CFLAGS = -bt=$(TARGET) -zq -wx -m$(MODEL) -i=$(PDCURSES_SRCDIR)
|
66
|
+
CFLAGS += $(CHTYPE)
|
67
|
+
# the README also recommends setting INCLUDE; if absent, we need an extra -i=
|
68
|
+
!ifndef %INCLUDE
|
69
|
+
CFLAGS += -i=$(watcomdir)/h
|
70
|
+
!endif
|
71
|
+
|
72
|
+
!ifeq DEBUG Y
|
73
|
+
CFLAGS += -d2 -DPDCDEBUG
|
74
|
+
LDFLAGS = D W A op q sys $(TARGET)
|
75
|
+
!else
|
76
|
+
CFLAGS += -oneatx
|
77
|
+
LDFLAGS = op q sys $(TARGET)
|
78
|
+
!ifeq CROSS Y
|
79
|
+
!ifneq MODEL f
|
80
|
+
LDFLAGS += libp $(watcomdir)/lib286/dos\;$(watcomdir)/lib286
|
81
|
+
!else
|
82
|
+
LDFLAGS += libp $(watcomdir)/lib386/dos\;$(watcomdir)/lib386
|
83
|
+
!endif
|
84
|
+
!endif
|
85
|
+
!endif
|
86
|
+
|
87
|
+
LIBEXE = wlib -q -n -t
|
88
|
+
|
89
|
+
!include $(PDCURSES_SRCDIR)/watcom.mif
|
90
|
+
|
91
|
+
$(LIBCURSES) : $(LIBOBJS) $(PDCOBJS)
|
92
|
+
%write wccdos.lrf $(LIBOBJS) $(PDCOBJS)
|
93
|
+
$(LIBEXE) $@ @wccdos.lrf
|
94
|
+
-$(DEL) wccdos.lrf
|
95
|
+
-$(COPY) $(LIBCURSES) panel.lib
|
96
|
+
|
97
|
+
!ifneq MODEL f
|
98
|
+
PLATFORM1 = Watcom C++ 16-bit DOS
|
99
|
+
PLATFORM2 = Open Watcom 1.6 for 16-bit DOS
|
100
|
+
ARCNAME = pdc$(VER)16w
|
101
|
+
!else
|
102
|
+
PLATFORM1 = Watcom C++ 32-bit DOS
|
103
|
+
PLATFORM2 = Open Watcom 1.6 for 32-bit DOS
|
104
|
+
ARCNAME = pdc$(VER)32w
|
105
|
+
!endif
|
106
|
+
|
107
|
+
!include $(PDCURSES_SRCDIR)/makedist.mif
|
@@ -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
|
+
}
|