curses 1.3.2 → 1.4.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/macos.yml +19 -0
- data/.github/workflows/ubuntu.yml +26 -0
- data/.github/workflows/windows.yml +25 -0
- data/History.md +27 -0
- data/README.md +14 -46
- data/Rakefile +0 -86
- data/curses.gemspec +3 -4
- data/ext/curses/curses.c +194 -38
- data/ext/curses/extconf.rb +81 -22
- data/lib/curses.rb +5 -12
- data/sample/addch.rb +16 -0
- data/sample/attr_demo.rb +32 -0
- data/sample/colors.rb +26 -0
- data/sample/mouse_move.rb +75 -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 +259 -25
- data/.travis.yml +0 -16
- data/appveyor.yml +0 -16
@@ -0,0 +1,407 @@
|
|
1
|
+
X11 Considerations
|
2
|
+
==================
|
3
|
+
|
4
|
+
PDCurses for X11 uses the System V IPC shared memory facility, along
|
5
|
+
with sockets, to share data between the curses program and the child
|
6
|
+
process created to manage the X stuff.
|
7
|
+
|
8
|
+
When compiling your application, you need to include the \<curses.h\> or
|
9
|
+
\<xcurses.h\> that comes with PDCurses. You also need to link your code
|
10
|
+
with libXCurses. You may need to link with the following libraries under
|
11
|
+
X11R5:
|
12
|
+
|
13
|
+
Xaw Xmu Xt X11
|
14
|
+
|
15
|
+
or, under X11R6:
|
16
|
+
|
17
|
+
Xaw Xmu Xt X11 SM ICE Xext
|
18
|
+
|
19
|
+
You can run "xcurses-config --libs" to show the link parameters for your
|
20
|
+
system. If using dynamic linking, on some systems, "-lXCurses" suffices.
|
21
|
+
|
22
|
+
By calling Xinitscr() rather than initscr(), you can pass your program
|
23
|
+
name and resource overrides to PDCurses. The program name is used as the
|
24
|
+
title of the X window, and for defining X resources specific to your
|
25
|
+
program.
|
26
|
+
|
27
|
+
|
28
|
+
Interaction with stdio
|
29
|
+
----------------------
|
30
|
+
|
31
|
+
Be aware that curses programs that expect to have a normal tty
|
32
|
+
underneath them will be very disappointed! Output directed to stdout
|
33
|
+
will go to the xterm that invoked the PDCurses application, or to the
|
34
|
+
console if not invoked directly from an xterm. Similarly, stdin will
|
35
|
+
expect its input from the same place as stdout.
|
36
|
+
|
37
|
+
|
38
|
+
X Resources
|
39
|
+
-----------
|
40
|
+
|
41
|
+
PDCurses for X11 recognizes the following resources:
|
42
|
+
|
43
|
+
### lines
|
44
|
+
|
45
|
+
Specifies the number of lines the "screen" will have. Directly equates
|
46
|
+
to LINES. There is no theoretical maximum. The minimum value must be 2.
|
47
|
+
Default: 24
|
48
|
+
|
49
|
+
### cols
|
50
|
+
|
51
|
+
Specifies the number of columns the "screen" will have. Directly equates
|
52
|
+
to COLS. There is no theoretical maximum. The minimum value must be 2.
|
53
|
+
Default: 80
|
54
|
+
|
55
|
+
### normalFont
|
56
|
+
|
57
|
+
The name of a fixed width font. Default: 7x13
|
58
|
+
|
59
|
+
### italicFont
|
60
|
+
|
61
|
+
The name of a fixed width font to be used for characters with A_ITALIC
|
62
|
+
attributes. Must have the same cell size as normalFont. Default: 7x13
|
63
|
+
(obviously not an italic font)
|
64
|
+
|
65
|
+
### pointer
|
66
|
+
|
67
|
+
The name of a valid pointer cursor. Default: xterm
|
68
|
+
|
69
|
+
### pointerForeColor
|
70
|
+
|
71
|
+
The foreground color of the pointer. Default: black
|
72
|
+
|
73
|
+
### pointerBackColor
|
74
|
+
|
75
|
+
The background color of the pointer. Default: white
|
76
|
+
|
77
|
+
### cursorColor
|
78
|
+
|
79
|
+
### textCursor
|
80
|
+
|
81
|
+
The alignment of the text cursor; horizontal or vertical. Default:
|
82
|
+
horizontal
|
83
|
+
|
84
|
+
### colorBlack
|
85
|
+
|
86
|
+
The color of the COLOR_BLACK attribute. Default: Black
|
87
|
+
|
88
|
+
### colorRed
|
89
|
+
|
90
|
+
The color of the COLOR_RED attribute. Default: red3
|
91
|
+
|
92
|
+
### colorGreen
|
93
|
+
|
94
|
+
The color of the COLOR_GREEN attribute. Default: green3
|
95
|
+
|
96
|
+
### colorYellow
|
97
|
+
|
98
|
+
The color of the COLOR_YELLOW attribute. Default: yellow3
|
99
|
+
|
100
|
+
### colorBlue
|
101
|
+
|
102
|
+
The color of the COLOR_BLUE attribute. Default: blue3
|
103
|
+
|
104
|
+
### colorMagenta
|
105
|
+
|
106
|
+
The color of the COLOR_MAGENTA attribute. Default: magenta3
|
107
|
+
|
108
|
+
### colorCyan
|
109
|
+
|
110
|
+
The color of the COLOR_CYAN attribute. Default: cyan3
|
111
|
+
|
112
|
+
### colorWhite
|
113
|
+
|
114
|
+
The color of the COLOR_WHITE attribute. Default: Grey
|
115
|
+
|
116
|
+
### colorBoldBlack
|
117
|
+
|
118
|
+
COLOR_BLACK combined with A_BOLD. Default: grey40
|
119
|
+
|
120
|
+
### colorBoldRed
|
121
|
+
|
122
|
+
COLOR_RED combined with A_BOLD. Default: red1
|
123
|
+
|
124
|
+
### colorBoldGreen
|
125
|
+
|
126
|
+
COLOR_GREEN combined with A_BOLD. Default: green1
|
127
|
+
|
128
|
+
### colorBoldYellow
|
129
|
+
|
130
|
+
COLOR_YELLOW combined with A_BOLD. Default: yellow1
|
131
|
+
|
132
|
+
### colorBoldBlue
|
133
|
+
|
134
|
+
COLOR_BLUE combined with A_BOLD. Default: blue1
|
135
|
+
|
136
|
+
### colorBoldMagenta
|
137
|
+
|
138
|
+
COLOR_MAGENTA combined with A_BOLD. Default: magenta1
|
139
|
+
|
140
|
+
### colorBoldCyan
|
141
|
+
|
142
|
+
COLOR_CYAN combined with A_BOLD. Default: cyan1
|
143
|
+
|
144
|
+
### colorBoldWhite
|
145
|
+
|
146
|
+
COLOR_WHITE combined with A_BOLD. Default: White
|
147
|
+
|
148
|
+
### bitmap
|
149
|
+
|
150
|
+
The name of a valid bitmap file of depth 1 (black and white) used for
|
151
|
+
the application's icon. The file is an X bitmap. Default: a 32x32 or
|
152
|
+
64x64 pixmap depending on the window manager
|
153
|
+
|
154
|
+
### pixmap
|
155
|
+
|
156
|
+
The name of a valid pixmap file of any depth supported by the window
|
157
|
+
manager (color) for the application's icon, The file is an X11 pixmap.
|
158
|
+
This resource is only available if the libXpm package has been installed
|
159
|
+
(most systems have this by default). This resource overrides the
|
160
|
+
"bitmap" resource. Default: none, uses default bitmap above
|
161
|
+
|
162
|
+
### translations
|
163
|
+
|
164
|
+
Translations enable the user to customize the action that occurs when a
|
165
|
+
key, combination of keys, or a button is pressed. The translations are
|
166
|
+
similar to those used by xterm.
|
167
|
+
|
168
|
+
Defaults:
|
169
|
+
|
170
|
+
<Key>: XCursesKeyPress()
|
171
|
+
<KeyUp>: XCursesKeyPress()
|
172
|
+
<BtnDown>: XCursesButton()
|
173
|
+
<BtnUp>: XCursesButton()
|
174
|
+
<BtnMotion>: XCursesButton()
|
175
|
+
|
176
|
+
The most useful action for KeyPress translations is string(). The
|
177
|
+
argument to the string() action can be either a string or a hex
|
178
|
+
representation of a character; e.g., string(0x1b) will send the ASCII
|
179
|
+
escape character to the application; string("[11~") will send [ 1 1 ~ ,
|
180
|
+
as separate keystrokes.
|
181
|
+
|
182
|
+
### shmmin
|
183
|
+
|
184
|
+
On most systems, there are two Unix kernel parameters that determine the
|
185
|
+
allowable size of a shared memory segment. These parameters are usually
|
186
|
+
something like SHMMIN and SHMMAX. To use shared memory, a program must
|
187
|
+
allocate a segment of shared memory that is between these two values.
|
188
|
+
Usually these values are like 1 for SHMMIN and some large number for
|
189
|
+
SHMMAX. Sometimes the Unix kernel is configured to have a value of
|
190
|
+
SHMMIN that is bigger than the size of one of the shared memory segments
|
191
|
+
that libXCurses uses. On these systems an error message like:
|
192
|
+
|
193
|
+
Cannot allocate shared memory for SCREEN: Invalid argument
|
194
|
+
|
195
|
+
will result. To overcome this problem, this resource should be set to
|
196
|
+
the kernel value for SHMMIN. This ensures that a shared memory segment
|
197
|
+
will always be bigger than the kernel value for SHMMIN (and hopefully
|
198
|
+
less than SHMMAX!) Default: 0
|
199
|
+
|
200
|
+
### borderColor
|
201
|
+
|
202
|
+
The color of the border around the screen. Default: black
|
203
|
+
|
204
|
+
### borderWidth
|
205
|
+
|
206
|
+
The width in pixels of the border around the screen. Default: 0
|
207
|
+
|
208
|
+
### clickPeriod
|
209
|
+
|
210
|
+
The period (in milliseconds) between a button press and a button release
|
211
|
+
that determines if a click of a button has occurred. Default: 100
|
212
|
+
|
213
|
+
### doubleClickPeriod
|
214
|
+
|
215
|
+
The period (in milliseconds) between two button press events that
|
216
|
+
determines if a double click of a button has occurred. Default: 200
|
217
|
+
|
218
|
+
### composeKey
|
219
|
+
|
220
|
+
The name of the X key that defines the "compose key", which is used to
|
221
|
+
enter characters in the Latin-1 character set above 0xA0. (See "Compose
|
222
|
+
Keys for Latin-1" below.) This is used only when PDCurses is built
|
223
|
+
without XIM support. While in compose mode, the text cursor will appear
|
224
|
+
as a hollow rectangle. Default: Multi_key
|
225
|
+
|
226
|
+
|
227
|
+
Using Resources
|
228
|
+
---------------
|
229
|
+
|
230
|
+
All applications have a top-level class name of "XCurses". If Xinitscr()
|
231
|
+
is used, it sets an application's top-level widget name. (Otherwise the
|
232
|
+
name defaults to "PDCurses".)
|
233
|
+
|
234
|
+
Examples for app-defaults or .Xdefaults:
|
235
|
+
|
236
|
+
!
|
237
|
+
! resources for XCurses class of programs
|
238
|
+
!
|
239
|
+
XCurses*lines: 30
|
240
|
+
XCurses*cols: 80
|
241
|
+
XCurses*normalFont: 9x13
|
242
|
+
XCurses*bitmap: /tmp/xcurses.xbm
|
243
|
+
XCurses*pointer: top_left_arrow
|
244
|
+
!
|
245
|
+
! resources for testcurs - XCurses
|
246
|
+
!
|
247
|
+
testcurs.colorRed: orange
|
248
|
+
testcurs.colorBlack: midnightblue
|
249
|
+
testcurs.lines: 25
|
250
|
+
*testcurs.Translations: #override \n \
|
251
|
+
<Key>F12: string(0x1b) string("[11~") \n
|
252
|
+
!
|
253
|
+
! resources for THE - XCurses
|
254
|
+
!
|
255
|
+
! resources with the * wildcard can be overridden by a parameter passed
|
256
|
+
! to initscr()
|
257
|
+
!
|
258
|
+
the*normalFont: 9x15
|
259
|
+
the*lines: 40
|
260
|
+
the*cols: 86
|
261
|
+
the*pointer: xterm
|
262
|
+
the*pointerForeColor: white
|
263
|
+
the*pointerBackColor: black
|
264
|
+
!
|
265
|
+
! resources with the . format can not be overridden by a parameter passed
|
266
|
+
! to Xinitscr()
|
267
|
+
!
|
268
|
+
the.bitmap: /home/mark/the/the64.xbm
|
269
|
+
the.pixmap: /home/mark/the/the64.xpm
|
270
|
+
|
271
|
+
Resources may also be passed as parameters to the Xinitscr() function.
|
272
|
+
Parameters are strings in the form of switches; e.g., to set the color
|
273
|
+
"red" to "indianred", and the number of lines to 30, the string passed
|
274
|
+
to Xinitscr would be: "-colorRed indianred -lines 30"
|
275
|
+
|
276
|
+
|
277
|
+
Compose Keys for Latin-1
|
278
|
+
------------------------
|
279
|
+
|
280
|
+
When built without XIM support, PDCurses for X11 provides its own,
|
281
|
+
limited compose key system for Latin-1 characters. The available
|
282
|
+
combinations are listed here. For a given character, any of the
|
283
|
+
combinations shown in the last column may be used. To generate a
|
284
|
+
character, press the "compose" key followed by one of the pairs of
|
285
|
+
keystrokes. Where no key is evident, the spacebar is used. Thus, to
|
286
|
+
generate the NO-BREAK SPACE, press the "compose" key followed by two
|
287
|
+
hits of the spacebar.
|
288
|
+
|
289
|
+
With a typical modern X server, you can get many more compose key
|
290
|
+
combinations by using XIM instead. Configure PDCurses with --enable-xim
|
291
|
+
to use XIM support.
|
292
|
+
|
293
|
+
This document is encoded in UTF-8.
|
294
|
+
|
295
|
+
Hex| Dec |Chr| Description ISO 10646-1:1993(E) | Compose key combinations
|
296
|
+
---+-----+---+---------------------------------+-------------------------
|
297
|
+
A0 | 160 | | NO-BREAK SPACE |
|
298
|
+
A1 | 161 | ¡ | INVERTED EXCLAMATION MARK | ! !!
|
299
|
+
A2 | 162 | ¢ | CENT SIGN | c| |c c/ c$ C$ C|
|
300
|
+
A3 | 163 | £ | POUND SIGN | L- L$ L= l- l$ l= |-
|
301
|
+
A4 | 164 | ¤ | CURRENCY SIGN | xo ox XO g$
|
302
|
+
A5 | 165 | ¥ | YEN SIGN | =y y= =Y Y= Y- y$ y-
|
303
|
+
A6 | 166 | ¦ | BROKEN BAR | | || vb VB |^
|
304
|
+
A7 | 167 | § | SECTION SIGN | SO SS s! S! so
|
305
|
+
A8 | 168 | ¨ | DIAERESIS | " ""
|
306
|
+
A9 | 169 | © | COPYRIGHT SIGN | CO co OC
|
307
|
+
AA | 170 | ª | FEMININE ORDINAL INDICATOR | sa SA a_ A_
|
308
|
+
AB | 171 | « | LEFT DOUBLE ANGLE QUOTES | <<
|
309
|
+
AC | 172 | ¬ | NOT SIGN | -, no NO
|
310
|
+
AD | 173 | | SOFT HYPHEN | - --
|
311
|
+
AE | 174 | ® | REGISTERED SIGN | RO ro OR
|
312
|
+
AF | 175 | ¯ | MACRON | -^ _^ __
|
313
|
+
B0 | 176 | ° | DEGREE SIGN | o 0^ 0* de DE ^0
|
314
|
+
B1 | 177 | ± | PLUS-MINUS SIGN | -+ +-
|
315
|
+
B2 | 178 | ² | SUPERSCRIPT TWO | 2 2^ s2 ^2
|
316
|
+
B3 | 179 | ³ | SUPERSCRIPT THREE | 3 3^ s3 ^3
|
317
|
+
B4 | 180 | ´ | ACUTE ACCENT | ' ''
|
318
|
+
B5 | 181 | µ | MICRO SIGN | u /u /U *m *M
|
319
|
+
B6 | 182 | ¶ | PILCROW SIGN | p! P! pg PG
|
320
|
+
B7 | 183 | · | MIDDLE DOT | . .^ ..
|
321
|
+
B8 | 184 | ¸ | CEDILLA | , ,,
|
322
|
+
B9 | 185 | ¹ | SUPERSCRIPT ONE | 1 1^ s1 ^1
|
323
|
+
BA | 186 | º | MASCULINE ORDINAL INDICATOR | o_ s0 S0
|
324
|
+
BB | 187 | » | RIGHT DOUBLE ANGLE QUOTES | >>
|
325
|
+
BC | 188 | ¼ | VULGAR FRACTION ONE QUARTER | 14
|
326
|
+
BD | 189 | ½ | VULGAR FRACTION ONE HALF | 12
|
327
|
+
BE | 190 | ¾ | VULGAR FRACTION THREE QUARTERS | 34
|
328
|
+
BF | 191 | ¿ | INVERTED QUESTION MARK | ? ??
|
329
|
+
C0 | 192 | À | CAPITAL A WITH GRAVE ACCENT | `A A`
|
330
|
+
C1 | 193 | Á | CAPITAL A WITH ACUTE ACCENT | 'A A'
|
331
|
+
C2 | 194 | Â | CAPITAL A WITH CIRCUMFLEX ACCENT| ^A A^ A>
|
332
|
+
C3 | 195 | Ã | CAPITAL A WITH TILDE | ~A A~ A-
|
333
|
+
C4 | 196 | Ä | CAPITAL A WITH DIAERESIS | "A A"
|
334
|
+
C5 | 197 | Å | CAPITAL A WITH RING ABOVE | oA Ao A* OA *A
|
335
|
+
C6 | 198 | Æ | CAPITAL LIGATURE AE | AE
|
336
|
+
C7 | 199 | Ç | CAPITAL C WITH CEDILLA | ,C C,
|
337
|
+
C8 | 200 | È | CAPITAL E WITH GRAVE ACCENT | `E E`
|
338
|
+
C9 | 201 | É | CAPITAL E WITH ACUTE ACCENT | 'E E'
|
339
|
+
CA | 202 | Ê | CAPITAL E WITH CIRCUMFLEX ACCENT| ^E E^ E>
|
340
|
+
CB | 203 | Ë | CAPITAL E WITH DIAERESIS | "E E"
|
341
|
+
CC | 204 | Ì | CAPITAL I WITH GRAVE ACCENT | `I I`
|
342
|
+
CD | 205 | Í | CAPITAL I WITH ACUTE ACCENT | 'I I'
|
343
|
+
CE | 206 | Î | CAPITAL I WITH CIRCUMFLEX ACCENT| ^I I^ I>
|
344
|
+
CF | 207 | Ï | CAPITAL I WITH DIAERESIS | "I I"
|
345
|
+
D0 | 208 | Ð | CAPITAL ETH | D-
|
346
|
+
D1 | 209 | Ñ | CAPITAL N WITH TILDE | ~N N~ N-
|
347
|
+
D2 | 210 | Ò | CAPITAL O WITH GRAVE ACCENT | `O O`
|
348
|
+
D3 | 211 | Ó | CAPITAL O WITH ACUTE ACCENT | 'O O'
|
349
|
+
D4 | 212 | Ô | CAPITAL O WITH CIRCUMFLEX ACCENT| ^O O^ O>
|
350
|
+
D5 | 213 | Õ | CAPITAL O WITH TILDE | ~O O~ O-
|
351
|
+
D6 | 214 | Ö | CAPITAL O WITH DIAERESIS | "O O"
|
352
|
+
D7 | 215 | × | MULTIPLICATION SIGN | x xx XX mu MU
|
353
|
+
D8 | 216 | Ø | CAPITAL O WITH STROKE | /O O/
|
354
|
+
D9 | 217 | Ù | CAPITAL U WITH GRAVE ACCENT | `U U`
|
355
|
+
DA | 218 | Ú | CAPITAL U WITH ACUTE ACCENT | 'U U'
|
356
|
+
DB | 219 | Û | CAPITAL U WITH CIRCUMFLEX ACCENT| ^U U^ U>
|
357
|
+
DC | 220 | Ü | CAPITAL U WITH DIAERESIS | "U U"
|
358
|
+
DD | 221 | Ý | CAPITAL Y WITH ACUTE ACCENT | 'Y Y'
|
359
|
+
DE | 222 | Þ | CAPITAL THORN | P TH |P
|
360
|
+
DF | 223 | ß | SMALL SHARP S | ss
|
361
|
+
E0 | 224 | à | SMALL A WITH GRAVE ACCENT | `a a`
|
362
|
+
E1 | 225 | á | SMALL A WITH ACUTE ACCENT | 'a a'
|
363
|
+
E2 | 226 | â | SMALL A WITH CIRCUMFLEX ACCENT | ^a a^ a>
|
364
|
+
E3 | 227 | ã | SMALL A WITH TILDE | ~a a~ a-
|
365
|
+
E4 | 228 | ä | SMALL A WITH DIAERESIS | "a a"
|
366
|
+
E5 | 229 | å | SMALL A WITH RING ABOVE | oa ao Oa a* *a
|
367
|
+
E6 | 230 | æ | SMALL LIGATURE AE | ae
|
368
|
+
E7 | 231 | ç | SMALL C WITH CEDILLA | ,c c,
|
369
|
+
E8 | 232 | è | SMALL E WITH GRAVE ACCENT | `e e`
|
370
|
+
E9 | 233 | é | SMALL E WITH ACUTE ACCENT | 'e e'
|
371
|
+
EA | 234 | ê | SMALL E WITH CIRCUMFLEX ACCENT | ^e e^ e>
|
372
|
+
EB | 235 | ë | SMALL E WITH DIAERESIS | "e e"
|
373
|
+
EC | 236 | ì | SMALL I WITH GRAVE ACCENT | `i i`
|
374
|
+
ED | 237 | í | SMALL I WITH ACUTE ACCENT | 'i i'
|
375
|
+
EE | 238 | î | SMALL I WITH CIRCUMFLEX ACCENT | ^i i^ i>
|
376
|
+
EF | 239 | ï | SMALL I WITH DIAERESIS | "i i"
|
377
|
+
F0 | 240 | ð | SMALL ETH | d-
|
378
|
+
F1 | 241 | ñ | SMALL N WITH TILDE | ~n n~ n-
|
379
|
+
F2 | 242 | ò | SMALL O WITH GRAVE ACCENT | `o o`
|
380
|
+
F3 | 243 | ó | SMALL O WITH ACUTE ACCENT | 'o o'
|
381
|
+
F4 | 244 | ô | SMALL O WITH CIRCUMFLEX ACCENT | ^o o^ o>
|
382
|
+
F5 | 245 | õ | SMALL O WITH TILDE | ~o o~ o-
|
383
|
+
F6 | 246 | ö | SMALL O WITH DIAERESIS | "o o"
|
384
|
+
F7 | 247 | ÷ | DIVISION SIGN | -: :-
|
385
|
+
F8 | 248 | ø | SMALL O WITH OBLIQUE BAR | /o o/
|
386
|
+
F9 | 249 | ù | SMALL U WITH GRAVE ACCENT | `u u`
|
387
|
+
FA | 250 | ú | SMALL U WITH ACUTE ACCENT | 'u u'
|
388
|
+
FB | 251 | û | SMALL U WITH CIRCUMFLEX ACCENT | ^u u^ u>
|
389
|
+
FC | 252 | ü | SMALL U WITH DIAERESIS | "u u"
|
390
|
+
FD | 253 | ý | SMALL Y WITH ACUTE ACCENT | 'y y'
|
391
|
+
FE | 254 | þ | SMALL THORN | p th |p
|
392
|
+
FF | 255 | ÿ | SMALL Y WITH DIAERESIS | "y y"
|
393
|
+
|
394
|
+
|
395
|
+
Deprecated
|
396
|
+
----------
|
397
|
+
|
398
|
+
XCursesProgramName is no longer used. To set the program name, you must
|
399
|
+
use Xinitscr(), or PDC_set_title() to set just the window title.
|
400
|
+
|
401
|
+
The XCursesExit() function is now called automatically via atexit().
|
402
|
+
(Multiple calls to it are OK, so you don't need to remove it if you've
|
403
|
+
already added it for previous versions of PDCurses.)
|
404
|
+
|
405
|
+
XCURSES is no longer defined automatically, but need not be defined,
|
406
|
+
unless you want the X11-specific prototypes. (Normal curses programs
|
407
|
+
won't need it.)
|
@@ -0,0 +1,66 @@
|
|
1
|
+
cmake_minimum_required(VERSION 3.11)
|
2
|
+
|
3
|
+
if(NOT CMAKE_BUILD_TYPE)
|
4
|
+
set(CMAKE_BUILD_TYPE "MinSizeRel" CACHE STRING "Choose the type of build, options are: Debug, Release, or MinSizeRel." FORCE)
|
5
|
+
message(STATUS "CMAKE_BUILD_TYPE not set, defaulting to MinSizeRel.")
|
6
|
+
endif()
|
7
|
+
|
8
|
+
if(APPLE)
|
9
|
+
# look for brew version first
|
10
|
+
set(CMAKE_LIBRARY_PATH /usr/local/opt/ncurses/lib)
|
11
|
+
endif()
|
12
|
+
|
13
|
+
set(CURSES_NEED_WIDE PDC_WIDE)
|
14
|
+
include(FindCurses)
|
15
|
+
|
16
|
+
if(CURSES_FOUND)
|
17
|
+
# this project is dependent on libncurses5-dev, and libncursesw5-dev.
|
18
|
+
# Apple builds without ncursesw
|
19
|
+
|
20
|
+
PROJECT(ncurses VERSION "${PROJECT_VERSION}" LANGUAGES C)
|
21
|
+
message(STATUS "**** ${PROJECT_NAME} ****")
|
22
|
+
|
23
|
+
if(APPLE)
|
24
|
+
if ("/usr/lib/libcurses.dylib" IN_LIST CURSES_LIBRARIES)
|
25
|
+
#MESSAGE(WARNING "Building with old ncurses lib -> Manually defining A_ITALIC to 64-bit...")
|
26
|
+
MESSAGE(WARNING " Use `brew install ncurses` to resolve this warning")
|
27
|
+
add_definitions("-DA_ITALIC=((chtype)0x008 << 21)") #default to 64 bit for now...
|
28
|
+
endif()
|
29
|
+
MESSAGE(STATUS "Linking with ${CURSES_LIBRARIES}")
|
30
|
+
endif()
|
31
|
+
set(PDCURSES_DIST ${CMAKE_INSTALL_PREFIX}/${CMAKE_BUILD_TYPE})
|
32
|
+
|
33
|
+
macro (unix_app dir targ)
|
34
|
+
|
35
|
+
set(bin_name "${PROJECT_NAME}_${targ}")
|
36
|
+
if(${targ} STREQUAL "tuidemo")
|
37
|
+
set(src_files ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/tuidemo.c ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/tui.c)
|
38
|
+
else()
|
39
|
+
set(src_files ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${targ}.c)
|
40
|
+
endif()
|
41
|
+
|
42
|
+
add_executable(${bin_name} ${src_files})
|
43
|
+
|
44
|
+
target_compile_options(${bin_name} PUBLIC -Wall)
|
45
|
+
target_compile_definitions(${bin_name} PUBLIC -D_XOPEN_SOURCE_EXTENDED)
|
46
|
+
if(PDC_WIDE)
|
47
|
+
target_compile_definitions(${bin_name} PUBLIC -DHAVE_NCURSESW)
|
48
|
+
endif()
|
49
|
+
|
50
|
+
target_include_directories(${bin_name} PUBLIC ${CURSES_INCLUDE_DIR})
|
51
|
+
target_link_libraries(${bin_name} ${CURSES_LIBRARIES})
|
52
|
+
set_target_properties(${bin_name} PROPERTIES OUTPUT_NAME ${targ})
|
53
|
+
|
54
|
+
install(TARGETS ${bin_name} RUNTIME DESTINATION ${PDCURSES_DIST}/bin/${PROJECT_NAME} COMPONENT applications)
|
55
|
+
|
56
|
+
endmacro ()
|
57
|
+
|
58
|
+
unix_app(../demos firework)
|
59
|
+
unix_app(../demos ozdemo)
|
60
|
+
unix_app(../demos newtest)
|
61
|
+
unix_app(../demos rain)
|
62
|
+
unix_app(../demos testcurs)
|
63
|
+
unix_app(../demos worm)
|
64
|
+
unix_app(../demos xmas)
|
65
|
+
|
66
|
+
endif()
|
@@ -0,0 +1,26 @@
|
|
1
|
+
ncurses build of PDCurses demos
|
2
|
+
===============================
|
3
|
+
|
4
|
+
This directory contains a makefile to compile the PDCurses demos against
|
5
|
+
the ncurses library. This allows us to check for differences between
|
6
|
+
ncurses and PDCurses.
|
7
|
+
|
8
|
+
Building
|
9
|
+
--------
|
10
|
+
|
11
|
+
- Thus far, only GCC on Linux has been tested. Build with either
|
12
|
+
|
13
|
+
make -f makefile
|
14
|
+
make -f makefile WIDE=Y
|
15
|
+
|
16
|
+
Several demos will be compiled.
|
17
|
+
|
18
|
+
Distribution Status
|
19
|
+
-------------------
|
20
|
+
|
21
|
+
The files in this directory are released to the Public Domain.
|
22
|
+
|
23
|
+
Acknowledgments
|
24
|
+
---------------
|
25
|
+
|
26
|
+
makefile provided by Bill Gray.
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# GNU MAKE Makefile for PDCurses demos with ncurses
|
2
|
+
#
|
3
|
+
# Usage: make [tgt] [WIDE=Y]
|
4
|
+
#
|
5
|
+
# where tgt can be any of:
|
6
|
+
# [all|demos|testcurs]...
|
7
|
+
|
8
|
+
ifeq ($(WIDE),Y)
|
9
|
+
CFLAGS = -Wall -O3 -D_XOPEN_SOURCE_EXTENDED -DHAVE_NCURSESW
|
10
|
+
LIBCURSES = -lncursesw
|
11
|
+
else
|
12
|
+
CFLAGS = -Wall -O3 -D_XOPEN_SOURCE_EXTENDED
|
13
|
+
LIBCURSES = -lncurses
|
14
|
+
endif
|
15
|
+
|
16
|
+
demodir = ../demos
|
17
|
+
|
18
|
+
DEMOS = firework ozdemo newtest rain testcurs worm xmas
|
19
|
+
|
20
|
+
all: $(DEMOS) tuidemo
|
21
|
+
|
22
|
+
$(DEMOS) : %: $(demodir)/%.c
|
23
|
+
$(CC) $(CFLAGS) -o$@ $< $(LIBCURSES)
|
24
|
+
|
25
|
+
tuidemo : $(demodir)/tuidemo.c $(demodir)/tui.c
|
26
|
+
$(CC) $(CFLAGS) -o$@ $(demodir)/tui.c $< $(LIBCURSES)
|
27
|
+
|
28
|
+
clean:
|
29
|
+
rm -f $(DEMOS) tuidemo
|
@@ -0,0 +1,41 @@
|
|
1
|
+
cmake_minimum_required(VERSION 3.11)
|
2
|
+
|
3
|
+
if(NOT CMAKE_BUILD_TYPE)
|
4
|
+
set(CMAKE_BUILD_TYPE "MinSizeRel" CACHE STRING "Choose the type of build, options are: Debug, Release, or MinSizeRel." FORCE)
|
5
|
+
message(STATUS "No build type specified, defaulting to MinSizeRel.")
|
6
|
+
endif()
|
7
|
+
|
8
|
+
PROJECT(os2 VERSION "${PROJECT_VERSION}" LANGUAGES C)
|
9
|
+
MESSAGE(STATUS "${PROJECT_NAME} version: ${PROJECT_VERSION}")
|
10
|
+
|
11
|
+
include(project_common)
|
12
|
+
|
13
|
+
if(WATCOM)
|
14
|
+
# this requires using the following toolchainfile file
|
15
|
+
# -DCMAKE_TOOLCHAIN_FILE={path}\watcom_open_os2vs_toolchain.cmake
|
16
|
+
|
17
|
+
string(APPEND CMAKE_C_FLAGS " -wx") # warning level: to maximum setting
|
18
|
+
|
19
|
+
string(APPEND CMAKE_C_FLAGS_RELEASE " -oneatx")
|
20
|
+
string(APPEND CMAKE_C_FLAGS_MINSIZEREL " -oneatx")
|
21
|
+
# optimization:
|
22
|
+
# n -> allow numerically unstable optimizations
|
23
|
+
# e -> expand user functions inline
|
24
|
+
# a -> relax aliasing constraints
|
25
|
+
# t -> favor execution time over code size in optimizations
|
26
|
+
# x -> equivalent to -obmiler -s
|
27
|
+
|
28
|
+
string(APPEND CMAKE_C_FLAGS_DEBUG " -d2") # full symbolic debugging info
|
29
|
+
string(APPEND CMAKE_EXE_LINKER_FLAGS_DEBUG " debug watcom all")
|
30
|
+
|
31
|
+
endif()
|
32
|
+
|
33
|
+
demo_app(../demos version)
|
34
|
+
demo_app(../demos firework)
|
35
|
+
demo_app(../demos ozdemo)
|
36
|
+
demo_app(../demos newtest)
|
37
|
+
demo_app(../demos ptest)
|
38
|
+
demo_app(../demos rain)
|
39
|
+
demo_app(../demos testcurs)
|
40
|
+
demo_app(../demos worm)
|
41
|
+
demo_app(../demos xmas)
|
@@ -0,0 +1,132 @@
|
|
1
|
+
# GNU MAKE Makefile for PDCurses library - OS/2 emx 0.9c+
|
2
|
+
#
|
3
|
+
# Usage: make -f [path\]Makefile [DEBUG=Y] [EMXVIDEO=Y] [DLL=Y] [target]
|
4
|
+
#
|
5
|
+
# where target can be any of:
|
6
|
+
# [all|demos|pdcurses.a|testcurs.exe...]
|
7
|
+
#
|
8
|
+
# The EMXVIDEO option compiles with the emx video library, which
|
9
|
+
# enables a PDCurses program to run under OS/2 and DOS.
|
10
|
+
|
11
|
+
O = o
|
12
|
+
|
13
|
+
ifndef PDCURSES_SRCDIR
|
14
|
+
PDCURSES_SRCDIR = ..
|
15
|
+
endif
|
16
|
+
|
17
|
+
include $(PDCURSES_SRCDIR)/version.mif
|
18
|
+
include $(PDCURSES_SRCDIR)/libobjs.mif
|
19
|
+
|
20
|
+
osdir = $(PDCURSES_SRCDIR)/os2
|
21
|
+
|
22
|
+
PDCURSES_OS2_H = $(osdir)/pdcos2.h
|
23
|
+
|
24
|
+
CC = gcc
|
25
|
+
|
26
|
+
CFLAGS = -I$(PDCURSES_SRCDIR) -c -Wall
|
27
|
+
|
28
|
+
ifeq ($(EMXVIDEO),Y)
|
29
|
+
CFLAGS += -DEMXVIDEO
|
30
|
+
CCLIBS = -lvideo
|
31
|
+
BINDFLAGS = -acm
|
32
|
+
else
|
33
|
+
CCLIBS =
|
34
|
+
BINDFLAGS =
|
35
|
+
endif
|
36
|
+
|
37
|
+
ifeq ($(DEBUG),Y)
|
38
|
+
CFLAGS += -g -DPDCDEBUG
|
39
|
+
LDFLAGS = -g
|
40
|
+
else
|
41
|
+
CFLAGS += -O2
|
42
|
+
LDFLAGS =
|
43
|
+
endif
|
44
|
+
|
45
|
+
DLLTARGET = pdcurses.dll
|
46
|
+
DLLFLAGS = -Zdll -Zcrtdll -Zomf
|
47
|
+
|
48
|
+
LINK = gcc
|
49
|
+
EMXBIND = emxbind
|
50
|
+
EMXOMF = emxomf
|
51
|
+
|
52
|
+
LIBEXE = ar
|
53
|
+
LIBFLAGS = rcv
|
54
|
+
|
55
|
+
ifeq ($(DLL),Y)
|
56
|
+
CFLAGS += -Zdll -Zcrtdll -Zomf
|
57
|
+
LDFLAGS += -Zlinker /PM:VIO -Zomf -Zcrtdll
|
58
|
+
LIBCURSES = pdcurses.lib
|
59
|
+
LIBDEPS = $(LIBOBJS) $(PDCOBJS)
|
60
|
+
PDCLIBS = $(DLLTARGET)
|
61
|
+
EXEPOST =
|
62
|
+
TUIPOST =
|
63
|
+
CLEAN = *.dll *.lib
|
64
|
+
else
|
65
|
+
LIBCURSES = pdcurses.a
|
66
|
+
LIBDEPS = $(LIBOBJS) $(PDCOBJS)
|
67
|
+
PDCLIBS = $(LIBCURSES)
|
68
|
+
EXEPOST = $(EMXBIND) $* $(BINDFLAGS)
|
69
|
+
TUIPOST = $(EMXBIND) tuidemo $(BINDFLAGS)
|
70
|
+
CLEAN = *.a testcurs ozdemo xmas tuidemo firework ptest rain worm
|
71
|
+
endif
|
72
|
+
|
73
|
+
.PHONY: all libs clean demos dist
|
74
|
+
|
75
|
+
all: libs demos
|
76
|
+
|
77
|
+
libs: $(PDCLIBS)
|
78
|
+
|
79
|
+
clean:
|
80
|
+
-del *.o
|
81
|
+
-del *.exe
|
82
|
+
-del $(CLEAN)
|
83
|
+
|
84
|
+
demos: $(DEMOS)
|
85
|
+
|
86
|
+
DEMOOBJS = testcurs.o ozdemo.o xmas.o tui.o tuidemo.o firework.o \
|
87
|
+
ptest.o rain.o worm.o
|
88
|
+
|
89
|
+
$(LIBCURSES) : $(LIBDEPS)
|
90
|
+
$(LIBEXE) $(LIBFLAGS) $@ $?
|
91
|
+
-copy $(LIBCURSES) panel.a
|
92
|
+
|
93
|
+
$(DLLTARGET) : $(LIBDEPS)
|
94
|
+
$(LINK) $(DLLFLAGS) -o $(DLLTARGET) $?
|
95
|
+
# lxlite $(DLLTARGET)
|
96
|
+
|
97
|
+
$(LIBOBJS) $(PDCOBJS) $(DEMOOBJS) : $(PDCURSES_HEADERS)
|
98
|
+
$(PDCOBJS) : $(PDCURSES_OS2_H)
|
99
|
+
$(DEMOS) : $(LIBCURSES)
|
100
|
+
panel.o ptest.o: $(PANEL_HEADER)
|
101
|
+
terminfo.o: $(TERM_HEADER)
|
102
|
+
|
103
|
+
$(LIBOBJS) : %.o: $(srcdir)/%.c
|
104
|
+
$(CC) -c $(CFLAGS) -o$@ $<
|
105
|
+
|
106
|
+
$(PDCOBJS) : %.o: $(osdir)/%.c
|
107
|
+
$(CC) -c $(CFLAGS) -o$@ $<
|
108
|
+
|
109
|
+
firework.exe ozdemo.exe rain.exe testcurs.exe worm.exe xmas.exe \
|
110
|
+
ptest.exe: %.exe: %.o
|
111
|
+
$(LINK) $(LDFLAGS) -o $* $< $(LIBCURSES) $(CCLIBS)
|
112
|
+
$(EXEPOST)
|
113
|
+
|
114
|
+
tuidemo.exe: tuidemo.o tui.o
|
115
|
+
$(LINK) $(LDFLAGS) -o tuidemo tuidemo.o tui.o $(LIBCURSES) $(CCLIBS)
|
116
|
+
$(TUIPOST)
|
117
|
+
|
118
|
+
firework.o ozdemo.o ptest.o rain.o testcurs.o worm.o xmas.o: %.o: \
|
119
|
+
$(demodir)/%.c
|
120
|
+
$(CC) $(CFLAGS) -o$@ $<
|
121
|
+
|
122
|
+
tui.o: $(demodir)\tui.c $(demodir)\tui.h
|
123
|
+
$(CC) $(CFLAGS) -I$(demodir) -o $@ $<
|
124
|
+
|
125
|
+
tuidemo.o: $(demodir)\tuidemo.c
|
126
|
+
$(CC) $(CFLAGS) -I$(demodir) -o $@ $<
|
127
|
+
|
128
|
+
PLATFORM1 = EMX OS/2
|
129
|
+
PLATFORM2 = EMX 0.9d for OS/2
|
130
|
+
ARCNAME = pdc$(VER)_emx_os2
|
131
|
+
|
132
|
+
include $(PDCURSES_SRCDIR)/makedist.mif
|