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.
Files changed (254) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/push_gem.yml +6 -4
  3. data/README.md +8 -1
  4. data/curses.gemspec +2 -2
  5. data/ext/curses/curses.c +188 -12
  6. data/ext/curses/extconf.rb +3 -2
  7. data/lib/curses.rb +7 -0
  8. data/sample/attr_demo.rb +4 -2
  9. data/sample/screen.rb +9 -0
  10. data/vendor/PDCurses/.gitignore +47 -0
  11. data/vendor/PDCurses/.travis.yml +49 -0
  12. data/vendor/PDCurses/CMakeLists.txt +68 -0
  13. data/vendor/PDCurses/HISTORY.md +2036 -0
  14. data/vendor/PDCurses/IMPLEMNT.md +327 -0
  15. data/vendor/PDCurses/Makefile +27 -0
  16. data/vendor/PDCurses/README.md +77 -0
  17. data/vendor/PDCurses/acs_defs.h +265 -0
  18. data/vendor/PDCurses/appveyor.yml +218 -0
  19. data/vendor/PDCurses/cmake/README.md +71 -0
  20. data/vendor/PDCurses/cmake/build_dependencies.cmake +178 -0
  21. data/vendor/PDCurses/cmake/build_options.cmake +25 -0
  22. data/vendor/PDCurses/cmake/dll_version.cmake +26 -0
  23. data/vendor/PDCurses/cmake/gen_config_header.cmake +43 -0
  24. data/vendor/PDCurses/cmake/get_version.cmake +17 -0
  25. data/vendor/PDCurses/cmake/make_uninstall.cmake +19 -0
  26. data/vendor/PDCurses/cmake/project_common.cmake +121 -0
  27. data/vendor/PDCurses/cmake/resource.in.cmake +52 -0
  28. data/vendor/PDCurses/cmake/sdl2_ttf/CMakeLists.txt +83 -0
  29. data/vendor/PDCurses/cmake/target_arch.cmake +36 -0
  30. data/vendor/PDCurses/cmake/version.in.cmake +73 -0
  31. data/vendor/PDCurses/cmake/watcom_open_dos16_toolchain.cmake +96 -0
  32. data/vendor/PDCurses/cmake/watcom_open_dos32_toolchain.cmake +106 -0
  33. data/vendor/PDCurses/cmake/watcom_open_os2v2_toolchain.cmake +105 -0
  34. data/vendor/PDCurses/curses.h +1846 -0
  35. data/vendor/PDCurses/curspriv.h +134 -0
  36. data/vendor/PDCurses/demos/README.md +25 -0
  37. data/vendor/PDCurses/demos/firework.c +144 -0
  38. data/vendor/PDCurses/demos/newtest.c +581 -0
  39. data/vendor/PDCurses/demos/ozdemo.c +447 -0
  40. data/vendor/PDCurses/demos/ptest.c +283 -0
  41. data/vendor/PDCurses/demos/rain.c +157 -0
  42. data/vendor/PDCurses/demos/testcurs.c +1607 -0
  43. data/vendor/PDCurses/demos/tui.c +1048 -0
  44. data/vendor/PDCurses/demos/tui.h +65 -0
  45. data/vendor/PDCurses/demos/tuidemo.c +233 -0
  46. data/vendor/PDCurses/demos/version.c +61 -0
  47. data/vendor/PDCurses/demos/worm.c +432 -0
  48. data/vendor/PDCurses/demos/xmas.c +955 -0
  49. data/vendor/PDCurses/dos/CMakeLists.txt +47 -0
  50. data/vendor/PDCurses/dos/Makefile +105 -0
  51. data/vendor/PDCurses/dos/Makefile.bcc +83 -0
  52. data/vendor/PDCurses/dos/Makefile.dmc +257 -0
  53. data/vendor/PDCurses/dos/Makefile.msc +113 -0
  54. data/vendor/PDCurses/dos/Makefile.wcc +107 -0
  55. data/vendor/PDCurses/dos/README.md +51 -0
  56. data/vendor/PDCurses/dos/bccdos.lrf +9 -0
  57. data/vendor/PDCurses/dos/mscdos.lrf +50 -0
  58. data/vendor/PDCurses/dos/pdcclip.c +132 -0
  59. data/vendor/PDCurses/dos/pdcdisp.c +135 -0
  60. data/vendor/PDCurses/dos/pdcdos.h +194 -0
  61. data/vendor/PDCurses/dos/pdcgetsc.c +98 -0
  62. data/vendor/PDCurses/dos/pdckbd.c +513 -0
  63. data/vendor/PDCurses/dos/pdcscrn.c +785 -0
  64. data/vendor/PDCurses/dos/pdcsetsc.c +101 -0
  65. data/vendor/PDCurses/dos/pdcutil.c +212 -0
  66. data/vendor/PDCurses/libobjs.mif +26 -0
  67. data/vendor/PDCurses/makedist.mif +20 -0
  68. data/vendor/PDCurses/man/Makefile +37 -0
  69. data/vendor/PDCurses/man/README.md +21 -0
  70. data/vendor/PDCurses/man/intro.md +361 -0
  71. data/vendor/PDCurses/man/manext.c +119 -0
  72. data/vendor/PDCurses/man/sdl.md +152 -0
  73. data/vendor/PDCurses/man/sdl2.md +58 -0
  74. data/vendor/PDCurses/man/x11.md +407 -0
  75. data/vendor/PDCurses/ncurses/CMakeLists.txt +66 -0
  76. data/vendor/PDCurses/ncurses/README.md +26 -0
  77. data/vendor/PDCurses/ncurses/makefile +29 -0
  78. data/vendor/PDCurses/os2/CMakeLists.txt +41 -0
  79. data/vendor/PDCurses/os2/Makefile +132 -0
  80. data/vendor/PDCurses/os2/Makefile.bcc +90 -0
  81. data/vendor/PDCurses/os2/Makefile.wcc +43 -0
  82. data/vendor/PDCurses/os2/README.md +43 -0
  83. data/vendor/PDCurses/os2/iccos2.lrf +50 -0
  84. data/vendor/PDCurses/os2/iccos2.mak +256 -0
  85. data/vendor/PDCurses/os2/pdcclip.c +188 -0
  86. data/vendor/PDCurses/os2/pdcdisp.c +93 -0
  87. data/vendor/PDCurses/os2/pdcgetsc.c +89 -0
  88. data/vendor/PDCurses/os2/pdckbd.c +521 -0
  89. data/vendor/PDCurses/os2/pdcos2.h +55 -0
  90. data/vendor/PDCurses/os2/pdcscrn.c +449 -0
  91. data/vendor/PDCurses/os2/pdcsetsc.c +112 -0
  92. data/vendor/PDCurses/os2/pdcutil.c +52 -0
  93. data/vendor/PDCurses/panel.h +56 -0
  94. data/vendor/PDCurses/pdcurses/README.md +25 -0
  95. data/vendor/PDCurses/pdcurses/addch.c +693 -0
  96. data/vendor/PDCurses/pdcurses/addchstr.c +245 -0
  97. data/vendor/PDCurses/pdcurses/addstr.c +240 -0
  98. data/vendor/PDCurses/pdcurses/attr.c +359 -0
  99. data/vendor/PDCurses/pdcurses/beep.c +68 -0
  100. data/vendor/PDCurses/pdcurses/bkgd.c +223 -0
  101. data/vendor/PDCurses/pdcurses/border.c +411 -0
  102. data/vendor/PDCurses/pdcurses/clear.c +159 -0
  103. data/vendor/PDCurses/pdcurses/color.c +298 -0
  104. data/vendor/PDCurses/pdcurses/debug.c +109 -0
  105. data/vendor/PDCurses/pdcurses/delch.c +96 -0
  106. data/vendor/PDCurses/pdcurses/deleteln.c +211 -0
  107. data/vendor/PDCurses/pdcurses/deprec.c +27 -0
  108. data/vendor/PDCurses/pdcurses/getch.c +417 -0
  109. data/vendor/PDCurses/pdcurses/getstr.c +474 -0
  110. data/vendor/PDCurses/pdcurses/getyx.c +139 -0
  111. data/vendor/PDCurses/pdcurses/inch.c +127 -0
  112. data/vendor/PDCurses/pdcurses/inchstr.c +214 -0
  113. data/vendor/PDCurses/pdcurses/initscr.c +367 -0
  114. data/vendor/PDCurses/pdcurses/inopts.c +324 -0
  115. data/vendor/PDCurses/pdcurses/insch.c +271 -0
  116. data/vendor/PDCurses/pdcurses/insstr.c +264 -0
  117. data/vendor/PDCurses/pdcurses/instr.c +246 -0
  118. data/vendor/PDCurses/pdcurses/kernel.c +259 -0
  119. data/vendor/PDCurses/pdcurses/keyname.c +157 -0
  120. data/vendor/PDCurses/pdcurses/mouse.c +438 -0
  121. data/vendor/PDCurses/pdcurses/move.c +57 -0
  122. data/vendor/PDCurses/pdcurses/outopts.c +159 -0
  123. data/vendor/PDCurses/pdcurses/overlay.c +214 -0
  124. data/vendor/PDCurses/pdcurses/pad.c +260 -0
  125. data/vendor/PDCurses/pdcurses/panel.c +633 -0
  126. data/vendor/PDCurses/pdcurses/printw.c +126 -0
  127. data/vendor/PDCurses/pdcurses/refresh.c +279 -0
  128. data/vendor/PDCurses/pdcurses/scanw.c +578 -0
  129. data/vendor/PDCurses/pdcurses/scr_dump.c +213 -0
  130. data/vendor/PDCurses/pdcurses/scroll.c +101 -0
  131. data/vendor/PDCurses/pdcurses/slk.c +591 -0
  132. data/vendor/PDCurses/pdcurses/termattr.c +182 -0
  133. data/vendor/PDCurses/pdcurses/terminfo.c +217 -0
  134. data/vendor/PDCurses/pdcurses/touch.c +163 -0
  135. data/vendor/PDCurses/pdcurses/util.c +312 -0
  136. data/vendor/PDCurses/pdcurses/window.c +569 -0
  137. data/vendor/PDCurses/sdl1/Makefile +129 -0
  138. data/vendor/PDCurses/sdl1/Makefile.mng +110 -0
  139. data/vendor/PDCurses/sdl1/README.md +31 -0
  140. data/vendor/PDCurses/sdl1/deffont.h +385 -0
  141. data/vendor/PDCurses/sdl1/deficon.h +23 -0
  142. data/vendor/PDCurses/sdl1/pdcclip.c +131 -0
  143. data/vendor/PDCurses/sdl1/pdcdisp.c +373 -0
  144. data/vendor/PDCurses/sdl1/pdcgetsc.c +30 -0
  145. data/vendor/PDCurses/sdl1/pdckbd.c +405 -0
  146. data/vendor/PDCurses/sdl1/pdcscrn.c +414 -0
  147. data/vendor/PDCurses/sdl1/pdcsdl.h +31 -0
  148. data/vendor/PDCurses/sdl1/pdcsetsc.c +64 -0
  149. data/vendor/PDCurses/sdl1/pdcutil.c +40 -0
  150. data/vendor/PDCurses/sdl1/sdltest.c +79 -0
  151. data/vendor/PDCurses/sdl2/CMakeLists.txt +76 -0
  152. data/vendor/PDCurses/sdl2/Makefile +135 -0
  153. data/vendor/PDCurses/sdl2/Makefile.vc +164 -0
  154. data/vendor/PDCurses/sdl2/README.md +34 -0
  155. data/vendor/PDCurses/sdl2/deffont.h +385 -0
  156. data/vendor/PDCurses/sdl2/deficon.h +23 -0
  157. data/vendor/PDCurses/sdl2/pdcclip.c +93 -0
  158. data/vendor/PDCurses/sdl2/pdcdisp.c +534 -0
  159. data/vendor/PDCurses/sdl2/pdcgetsc.c +30 -0
  160. data/vendor/PDCurses/sdl2/pdckbd.c +480 -0
  161. data/vendor/PDCurses/sdl2/pdcscrn.c +443 -0
  162. data/vendor/PDCurses/sdl2/pdcsdl.h +33 -0
  163. data/vendor/PDCurses/sdl2/pdcsetsc.c +67 -0
  164. data/vendor/PDCurses/sdl2/pdcutil.c +39 -0
  165. data/vendor/PDCurses/sdl2/sdltest.c +81 -0
  166. data/vendor/PDCurses/term.h +48 -0
  167. data/vendor/PDCurses/version.mif +7 -0
  168. data/vendor/PDCurses/vt/CMakeLists.txt +28 -0
  169. data/vendor/PDCurses/vt/Makefile +135 -0
  170. data/vendor/PDCurses/vt/Makefile.bcc +111 -0
  171. data/vendor/PDCurses/vt/Makefile.dmc +258 -0
  172. data/vendor/PDCurses/vt/Makefile.vc +144 -0
  173. data/vendor/PDCurses/vt/Makefile.wcc +107 -0
  174. data/vendor/PDCurses/vt/README.md +64 -0
  175. data/vendor/PDCurses/vt/pdcclip.c +20 -0
  176. data/vendor/PDCurses/vt/pdcdisp.c +284 -0
  177. data/vendor/PDCurses/vt/pdcgetsc.c +27 -0
  178. data/vendor/PDCurses/vt/pdckbd.c +394 -0
  179. data/vendor/PDCurses/vt/pdcscrn.c +434 -0
  180. data/vendor/PDCurses/vt/pdcsetsc.c +45 -0
  181. data/vendor/PDCurses/vt/pdcutil.c +43 -0
  182. data/vendor/PDCurses/vt/pdcvt.h +16 -0
  183. data/vendor/PDCurses/watcom.mif +68 -0
  184. data/vendor/PDCurses/wincon/CMakeLists.txt +27 -0
  185. data/vendor/PDCurses/wincon/Makefile.bcc +88 -0
  186. data/vendor/PDCurses/wincon/Makefile.dmc +256 -0
  187. data/vendor/PDCurses/wincon/Makefile.lcc +273 -0
  188. data/vendor/PDCurses/wincon/Makefile.mng +176 -0
  189. data/vendor/PDCurses/wincon/Makefile.vc +144 -0
  190. data/vendor/PDCurses/wincon/Makefile.wcc +51 -0
  191. data/vendor/PDCurses/wincon/README.md +85 -0
  192. data/vendor/PDCurses/wincon/pdcclip.c +174 -0
  193. data/vendor/PDCurses/wincon/pdcdisp.c +143 -0
  194. data/vendor/PDCurses/wincon/pdcgetsc.c +55 -0
  195. data/vendor/PDCurses/wincon/pdckbd.c +786 -0
  196. data/vendor/PDCurses/wincon/pdcscrn.c +717 -0
  197. data/vendor/PDCurses/wincon/pdcsetsc.c +91 -0
  198. data/vendor/PDCurses/wincon/pdcurses.ico +0 -0
  199. data/vendor/PDCurses/wincon/pdcurses.rc +28 -0
  200. data/vendor/PDCurses/wincon/pdcutil.c +41 -0
  201. data/vendor/PDCurses/wincon/pdcwin.h +31 -0
  202. data/vendor/PDCurses/wingui/CMakeLists.txt +27 -0
  203. data/vendor/PDCurses/wingui/Makefile.bcc +85 -0
  204. data/vendor/PDCurses/wingui/Makefile.dmc +259 -0
  205. data/vendor/PDCurses/wingui/Makefile.lcc +273 -0
  206. data/vendor/PDCurses/wingui/Makefile.mng +171 -0
  207. data/vendor/PDCurses/wingui/Makefile.vc +144 -0
  208. data/vendor/PDCurses/wingui/Makefile.wcc +51 -0
  209. data/vendor/PDCurses/wingui/README.md +93 -0
  210. data/vendor/PDCurses/wingui/pdcclip.c +174 -0
  211. data/vendor/PDCurses/wingui/pdcdisp.c +718 -0
  212. data/vendor/PDCurses/wingui/pdcgetsc.c +30 -0
  213. data/vendor/PDCurses/wingui/pdckbd.c +143 -0
  214. data/vendor/PDCurses/wingui/pdcscrn.c +2797 -0
  215. data/vendor/PDCurses/wingui/pdcsetsc.c +89 -0
  216. data/vendor/PDCurses/wingui/pdcurses.ico +0 -0
  217. data/vendor/PDCurses/wingui/pdcurses.rc +28 -0
  218. data/vendor/PDCurses/wingui/pdcutil.c +61 -0
  219. data/vendor/PDCurses/wingui/pdcwin.h +122 -0
  220. data/vendor/PDCurses/x11/Makefile.in +754 -0
  221. data/vendor/PDCurses/x11/PDCurses.spec +82 -0
  222. data/vendor/PDCurses/x11/README.md +62 -0
  223. data/vendor/PDCurses/x11/ScrollBox.c +319 -0
  224. data/vendor/PDCurses/x11/ScrollBox.h +51 -0
  225. data/vendor/PDCurses/x11/ScrollBoxP.h +70 -0
  226. data/vendor/PDCurses/x11/aclocal.m4 +994 -0
  227. data/vendor/PDCurses/x11/big_icon.xbm +46 -0
  228. data/vendor/PDCurses/x11/compose.h +201 -0
  229. data/vendor/PDCurses/x11/config.guess +1500 -0
  230. data/vendor/PDCurses/x11/config.h.in +100 -0
  231. data/vendor/PDCurses/x11/config.sub +1616 -0
  232. data/vendor/PDCurses/x11/configure +6700 -0
  233. data/vendor/PDCurses/x11/configure.ac +295 -0
  234. data/vendor/PDCurses/x11/debian/changelog +6 -0
  235. data/vendor/PDCurses/x11/debian/compat +1 -0
  236. data/vendor/PDCurses/x11/debian/control +11 -0
  237. data/vendor/PDCurses/x11/debian/copyright +27 -0
  238. data/vendor/PDCurses/x11/debian/rules +98 -0
  239. data/vendor/PDCurses/x11/install-sh +253 -0
  240. data/vendor/PDCurses/x11/little_icon.xbm +14 -0
  241. data/vendor/PDCurses/x11/ncurses_cfg.h +45 -0
  242. data/vendor/PDCurses/x11/pdcclip.c +173 -0
  243. data/vendor/PDCurses/x11/pdcdisp.c +85 -0
  244. data/vendor/PDCurses/x11/pdcgetsc.c +28 -0
  245. data/vendor/PDCurses/x11/pdckbd.c +104 -0
  246. data/vendor/PDCurses/x11/pdcscrn.c +258 -0
  247. data/vendor/PDCurses/x11/pdcsetsc.c +95 -0
  248. data/vendor/PDCurses/x11/pdcutil.c +52 -0
  249. data/vendor/PDCurses/x11/pdcx11.c +316 -0
  250. data/vendor/PDCurses/x11/pdcx11.h +191 -0
  251. data/vendor/PDCurses/x11/sb.c +155 -0
  252. data/vendor/PDCurses/x11/x11.c +3686 -0
  253. data/vendor/PDCurses/x11/xcurses-config.in +81 -0
  254. metadata +249 -8
@@ -0,0 +1,182 @@
1
+ /* Public Domain Curses */
2
+
3
+ #include <curspriv.h>
4
+
5
+ /*man-start**************************************************************
6
+
7
+ termattr
8
+ --------
9
+
10
+ ### Synopsis
11
+
12
+ int baudrate(void);
13
+ char erasechar(void);
14
+ bool has_ic(void);
15
+ bool has_il(void);
16
+ char killchar(void);
17
+ char *longname(void);
18
+ chtype termattrs(void);
19
+ attr_t term_attrs(void);
20
+ char *termname(void);
21
+
22
+ int erasewchar(wchar_t *ch);
23
+ int killwchar(wchar_t *ch);
24
+
25
+ char wordchar(void);
26
+
27
+ ### Description
28
+
29
+ baudrate() is supposed to return the output speed of the
30
+ terminal. In PDCurses, it simply returns INT_MAX.
31
+
32
+ has_ic and has_il() return TRUE. These functions have meaning in
33
+ some other implementations of curses.
34
+
35
+ erasechar() and killchar() return ^H and ^U, respectively -- the
36
+ ERASE and KILL characters. In other curses implementations,
37
+ these may vary by terminal type. erasewchar() and killwchar()
38
+ are the wide-character versions; they take a pointer to a
39
+ location in which to store the character, and return OK or ERR.
40
+
41
+ longname() returns a pointer to a static area containing a
42
+ verbose description of the current terminal. The maximum length
43
+ of the string is 128 characters. It is defined only after the
44
+ call to initscr() or newterm().
45
+
46
+ termname() returns a pointer to a static area containing a
47
+ short description of the current terminal (14 characters).
48
+
49
+ termattrs() returns a logical OR of all video attributes
50
+ supported by the terminal.
51
+
52
+ wordchar() is a PDCurses extension of the concept behind the
53
+ functions erasechar() and killchar(), returning the "delete
54
+ word" character, ^W.
55
+
56
+ ### Portability
57
+ X/Open BSD SYS V
58
+ baudrate Y Y Y
59
+ erasechar Y Y Y
60
+ has_ic Y Y Y
61
+ has_il Y Y Y
62
+ killchar Y Y Y
63
+ longname Y Y Y
64
+ termattrs Y Y Y
65
+ termname Y Y Y
66
+ erasewchar Y
67
+ killwchar Y
68
+ term_attrs Y
69
+ wordchar - - -
70
+
71
+ **man-end****************************************************************/
72
+
73
+ #include <string.h>
74
+ #include <limits.h>
75
+
76
+ int baudrate(void)
77
+ {
78
+ PDC_LOG(("baudrate() - called\n"));
79
+
80
+ return INT_MAX;
81
+ }
82
+
83
+ char erasechar(void)
84
+ {
85
+ PDC_LOG(("erasechar() - called\n"));
86
+
87
+ return _ECHAR; /* character delete char (^H) */
88
+ }
89
+
90
+ bool has_ic(void)
91
+ {
92
+ PDC_LOG(("has_ic() - called\n"));
93
+
94
+ return TRUE;
95
+ }
96
+
97
+ bool has_il(void)
98
+ {
99
+ PDC_LOG(("has_il() - called\n"));
100
+
101
+ return TRUE;
102
+ }
103
+
104
+ char killchar(void)
105
+ {
106
+ PDC_LOG(("killchar() - called\n"));
107
+
108
+ return _DLCHAR; /* line delete char (^U) */
109
+ }
110
+
111
+ char *longname(void)
112
+ {
113
+ PDC_LOG(("longname() - called\n"));
114
+
115
+ sprintf(ttytype, "pdcurses|PDCurses for %s", PDC_sysname());
116
+ return ttytype + 9; /* skip "pdcurses|" */
117
+ }
118
+
119
+ chtype termattrs(void)
120
+ {
121
+ chtype temp = A_BLINK | A_BOLD | A_INVIS | A_REVERSE | A_UNDERLINE
122
+ | A_LEFTLINE | A_RIGHTLINE | A_ITALIC;
123
+
124
+ /* note: blink is bold background on some platforms */
125
+
126
+ PDC_LOG(("termattrs() - called\n"));
127
+
128
+ if (!SP->mono)
129
+ temp |= A_COLOR;
130
+
131
+ return temp;
132
+ }
133
+
134
+ attr_t term_attrs(void)
135
+ {
136
+ PDC_LOG(("term_attrs() - called\n"));
137
+
138
+ return WA_BLINK | WA_BOLD | WA_INVIS | WA_LEFT | WA_REVERSE |
139
+ WA_RIGHT | WA_UNDERLINE;
140
+ }
141
+
142
+ char *termname(void)
143
+ {
144
+ static char _termname[14] = "pdcurses";
145
+
146
+ PDC_LOG(("termname() - called\n"));
147
+
148
+ return _termname;
149
+ }
150
+
151
+ char wordchar(void)
152
+ {
153
+ PDC_LOG(("wordchar() - called\n"));
154
+
155
+ return _DWCHAR; /* word delete char */
156
+ }
157
+
158
+ #ifdef PDC_WIDE
159
+ int erasewchar(wchar_t *ch)
160
+ {
161
+ PDC_LOG(("erasewchar() - called\n"));
162
+
163
+ if (!ch)
164
+ return ERR;
165
+
166
+ *ch = (wchar_t)_ECHAR;
167
+
168
+ return OK;
169
+ }
170
+
171
+ int killwchar(wchar_t *ch)
172
+ {
173
+ PDC_LOG(("killwchar() - called\n"));
174
+
175
+ if (!ch)
176
+ return ERR;
177
+
178
+ *ch = (wchar_t)_DLCHAR;
179
+
180
+ return OK;
181
+ }
182
+ #endif
@@ -0,0 +1,217 @@
1
+ /* Public Domain Curses */
2
+
3
+ #include <curspriv.h>
4
+
5
+ /*man-start**************************************************************
6
+
7
+ terminfo
8
+ --------
9
+
10
+ ### Synopsis
11
+
12
+ int mvcur(int oldrow, int oldcol, int newrow, int newcol);
13
+ int vidattr(chtype attr);
14
+ int vid_attr(attr_t attr, short color_pair, void *opt);
15
+ int vidputs(chtype attr, int (*putfunc)(int));
16
+ int vid_puts(attr_t attr, short color_pair, void *opt,
17
+ int (*putfunc)(int));
18
+
19
+ int del_curterm(TERMINAL *);
20
+ int putp(const char *);
21
+ int restartterm(const char *, int, int *);
22
+ TERMINAL *set_curterm(TERMINAL *);
23
+ int setterm(const char *term);
24
+ int setupterm(const char *, int, int *);
25
+ int tgetent(char *, const char *);
26
+ int tgetflag(const char *);
27
+ int tgetnum(const char *);
28
+ char *tgetstr(const char *, char **);
29
+ char *tgoto(const char *, int, int);
30
+ int tigetflag(const char *);
31
+ int tigetnum(const char *);
32
+ char *tigetstr(const char *);
33
+ char *tparm(const char *,long, long, long, long, long, long,
34
+ long, long, long);
35
+ int tputs(const char *, int, int (*)(int));
36
+
37
+ ### Description
38
+
39
+ mvcur() lets you move the physical cursor without updating any
40
+ window cursor positions. It returns OK or ERR.
41
+
42
+ The rest of these functions are currently implemented as stubs,
43
+ returning the appropriate errors and doing nothing else.
44
+
45
+ ### Portability
46
+ X/Open BSD SYS V
47
+ mvcur Y Y Y
48
+
49
+ **man-end****************************************************************/
50
+
51
+ #include <term.h>
52
+
53
+ TERMINAL *cur_term = NULL;
54
+
55
+ int mvcur(int oldrow, int oldcol, int newrow, int newcol)
56
+ {
57
+ PDC_LOG(("mvcur() - called: oldrow %d oldcol %d newrow %d newcol %d\n",
58
+ oldrow, oldcol, newrow, newcol));
59
+
60
+ if ((newrow >= LINES) || (newcol >= COLS) || (newrow < 0) || (newcol < 0))
61
+ return ERR;
62
+
63
+ PDC_gotoyx(newrow, newcol);
64
+ SP->cursrow = newrow;
65
+ SP->curscol = newcol;
66
+
67
+ return OK;
68
+ }
69
+
70
+ int vidattr(chtype attr)
71
+ {
72
+ PDC_LOG(("vidattr() - called: attr %d\n", attr));
73
+
74
+ return ERR;
75
+ }
76
+
77
+ int vid_attr(attr_t attr, short color_pair, void *opt)
78
+ {
79
+ PDC_LOG(("vid_attr() - called\n"));
80
+
81
+ return ERR;
82
+ }
83
+
84
+ int vidputs(chtype attr, int (*putfunc)(int))
85
+ {
86
+ PDC_LOG(("vidputs() - called: attr %d\n", attr));
87
+
88
+ return ERR;
89
+ }
90
+
91
+ int vid_puts(attr_t attr, short color_pair, void *opt, int (*putfunc)(int))
92
+ {
93
+ PDC_LOG(("vid_puts() - called\n"));
94
+
95
+ return ERR;
96
+ }
97
+
98
+ int del_curterm(TERMINAL *oterm)
99
+ {
100
+ PDC_LOG(("del_curterm() - called\n"));
101
+
102
+ return ERR;
103
+ }
104
+
105
+ int putp(const char *str)
106
+ {
107
+ PDC_LOG(("putp() - called: str %s\n", str));
108
+
109
+ return ERR;
110
+ }
111
+
112
+ int restartterm(const char *term, int filedes, int *errret)
113
+ {
114
+ PDC_LOG(("restartterm() - called\n"));
115
+
116
+ if (errret)
117
+ *errret = -1;
118
+
119
+ return ERR;
120
+ }
121
+
122
+ TERMINAL *set_curterm(TERMINAL *nterm)
123
+ {
124
+ PDC_LOG(("set_curterm() - called\n"));
125
+
126
+ return (TERMINAL *)NULL;
127
+ }
128
+
129
+ int setterm(const char *term)
130
+ {
131
+ PDC_LOG(("setterm() - called\n"));
132
+
133
+ return ERR;
134
+ }
135
+
136
+ int setupterm(const char *term, int filedes, int *errret)
137
+ {
138
+ PDC_LOG(("setupterm() - called\n"));
139
+
140
+ if (errret)
141
+ *errret = -1;
142
+ else
143
+ fprintf(stderr, "There is no terminfo database\n");
144
+
145
+ return ERR;
146
+ }
147
+
148
+ int tgetent(char *bp, const char *name)
149
+ {
150
+ PDC_LOG(("tgetent() - called: name %s\n", name));
151
+
152
+ return ERR;
153
+ }
154
+
155
+ int tgetflag(const char *id)
156
+ {
157
+ PDC_LOG(("tgetflag() - called: id %s\n", id));
158
+
159
+ return ERR;
160
+ }
161
+
162
+ int tgetnum(const char *id)
163
+ {
164
+ PDC_LOG(("tgetnum() - called: id %s\n", id));
165
+
166
+ return ERR;
167
+ }
168
+
169
+ char *tgetstr(const char *id, char **area)
170
+ {
171
+ PDC_LOG(("tgetstr() - called: id %s\n", id));
172
+
173
+ return (char *)NULL;
174
+ }
175
+
176
+ char *tgoto(const char *cap, int col, int row)
177
+ {
178
+ PDC_LOG(("tgoto() - called\n"));
179
+
180
+ return (char *)NULL;
181
+ }
182
+
183
+ int tigetflag(const char *capname)
184
+ {
185
+ PDC_LOG(("tigetflag() - called: capname %s\n", capname));
186
+
187
+ return -1;
188
+ }
189
+
190
+ int tigetnum(const char *capname)
191
+ {
192
+ PDC_LOG(("tigetnum() - called: capname %s\n", capname));
193
+
194
+ return -2;
195
+ }
196
+
197
+ char *tigetstr(const char *capname)
198
+ {
199
+ PDC_LOG(("tigetstr() - called: capname %s\n", capname));
200
+
201
+ return (char *)(-1);
202
+ }
203
+
204
+ char *tparm(const char *cap, long p1, long p2, long p3, long p4,
205
+ long p5, long p6, long p7, long p8, long p9)
206
+ {
207
+ PDC_LOG(("tparm() - called: cap %s\n", cap));
208
+
209
+ return (char *)NULL;
210
+ }
211
+
212
+ int tputs(const char *str, int affcnt, int (*putfunc)(int))
213
+ {
214
+ PDC_LOG(("tputs() - called\n"));
215
+
216
+ return ERR;
217
+ }
@@ -0,0 +1,163 @@
1
+ /* Public Domain Curses */
2
+
3
+ #include <curspriv.h>
4
+
5
+ /*man-start**************************************************************
6
+
7
+ touch
8
+ -----
9
+
10
+ ### Synopsis
11
+
12
+ int touchwin(WINDOW *win);
13
+ int touchline(WINDOW *win, int start, int count);
14
+ int untouchwin(WINDOW *win);
15
+ int wtouchln(WINDOW *win, int y, int n, int changed);
16
+ bool is_linetouched(WINDOW *win, int line);
17
+ bool is_wintouched(WINDOW *win);
18
+
19
+ ### Description
20
+
21
+ touchwin() and touchline() throw away all information about
22
+ which parts of the window have been touched, pretending that the
23
+ entire window has been drawn on. This is sometimes necessary
24
+ when using overlapping windows, since a change to one window
25
+ will affect the other window, but the records of which lines
26
+ have been changed in the other window will not reflect the
27
+ change.
28
+
29
+ untouchwin() marks all lines in the window as unchanged since
30
+ the last call to wrefresh().
31
+
32
+ wtouchln() makes n lines in the window, starting at line y, look
33
+ as if they have (changed == 1) or have not (changed == 0) been
34
+ changed since the last call to wrefresh().
35
+
36
+ is_linetouched() returns TRUE if the specified line in the
37
+ specified window has been changed since the last call to
38
+ wrefresh().
39
+
40
+ is_wintouched() returns TRUE if the specified window
41
+ has been changed since the last call to wrefresh().
42
+
43
+ ### Return Value
44
+
45
+ All functions return OK on success and ERR on error except
46
+ is_wintouched() and is_linetouched().
47
+
48
+ ### Portability
49
+ X/Open BSD SYS V
50
+ touchwin Y Y Y
51
+ touchline Y - 3.0
52
+ untouchwin Y - 4.0
53
+ wtouchln Y Y Y
54
+ is_linetouched Y - 4.0
55
+ is_wintouched Y - 4.0
56
+
57
+ **man-end****************************************************************/
58
+
59
+ int touchwin(WINDOW *win)
60
+ {
61
+ int i;
62
+
63
+ PDC_LOG(("touchwin() - called: Win=%x\n", win));
64
+
65
+ if (!win)
66
+ return ERR;
67
+
68
+ for (i = 0; i < win->_maxy; i++)
69
+ {
70
+ win->_firstch[i] = 0;
71
+ win->_lastch[i] = win->_maxx - 1;
72
+ }
73
+
74
+ return OK;
75
+ }
76
+
77
+ int touchline(WINDOW *win, int start, int count)
78
+ {
79
+ int i;
80
+
81
+ PDC_LOG(("touchline() - called: win=%p start %d count %d\n",
82
+ win, start, count));
83
+
84
+ if (!win || start > win->_maxy || start + count > win->_maxy)
85
+ return ERR;
86
+
87
+ for (i = start; i < start + count; i++)
88
+ {
89
+ win->_firstch[i] = 0;
90
+ win->_lastch[i] = win->_maxx - 1;
91
+ }
92
+
93
+ return OK;
94
+ }
95
+
96
+ int untouchwin(WINDOW *win)
97
+ {
98
+ int i;
99
+
100
+ PDC_LOG(("untouchwin() - called: win=%p", win));
101
+
102
+ if (!win)
103
+ return ERR;
104
+
105
+ for (i = 0; i < win->_maxy; i++)
106
+ {
107
+ win->_firstch[i] = _NO_CHANGE;
108
+ win->_lastch[i] = _NO_CHANGE;
109
+ }
110
+
111
+ return OK;
112
+ }
113
+
114
+ int wtouchln(WINDOW *win, int y, int n, int changed)
115
+ {
116
+ int i;
117
+
118
+ PDC_LOG(("wtouchln() - called: win=%p y=%d n=%d changed=%d\n",
119
+ win, y, n, changed));
120
+
121
+ if (!win || y > win->_maxy || y + n > win->_maxy)
122
+ return ERR;
123
+
124
+ for (i = y; i < y + n; i++)
125
+ {
126
+ if (changed)
127
+ {
128
+ win->_firstch[i] = 0;
129
+ win->_lastch[i] = win->_maxx - 1;
130
+ }
131
+ else
132
+ {
133
+ win->_firstch[i] = _NO_CHANGE;
134
+ win->_lastch[i] = _NO_CHANGE;
135
+ }
136
+ }
137
+
138
+ return OK;
139
+ }
140
+
141
+ bool is_linetouched(WINDOW *win, int line)
142
+ {
143
+ PDC_LOG(("is_linetouched() - called: win=%p line=%d\n", win, line));
144
+
145
+ if (!win || line > win->_maxy || line < 0)
146
+ return FALSE;
147
+
148
+ return (win->_firstch[line] != _NO_CHANGE) ? TRUE : FALSE;
149
+ }
150
+
151
+ bool is_wintouched(WINDOW *win)
152
+ {
153
+ int i;
154
+
155
+ PDC_LOG(("is_wintouched() - called: win=%p\n", win));
156
+
157
+ if (win)
158
+ for (i = 0; i < win->_maxy; i++)
159
+ if (win->_firstch[i] != _NO_CHANGE)
160
+ return TRUE;
161
+
162
+ return FALSE;
163
+ }