curses 1.4.4 → 1.4.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (258) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +6 -0
  3. data/.github/workflows/macos.yml +1 -1
  4. data/.github/workflows/push_gem.yml +48 -0
  5. data/.github/workflows/ubuntu.yml +2 -2
  6. data/.github/workflows/windows.yml +2 -2
  7. data/History.md +23 -0
  8. data/README.md +7 -0
  9. data/curses.gemspec +1 -1
  10. data/ext/curses/curses.c +7 -7
  11. data/sample/colors.rb +6 -1
  12. data/sample/form.rb +1 -1
  13. data/sample/menu.rb +2 -0
  14. metadata +9 -251
  15. data/vendor/PDCurses/.gitignore +0 -47
  16. data/vendor/PDCurses/.travis.yml +0 -49
  17. data/vendor/PDCurses/CMakeLists.txt +0 -68
  18. data/vendor/PDCurses/HISTORY.md +0 -2036
  19. data/vendor/PDCurses/IMPLEMNT.md +0 -327
  20. data/vendor/PDCurses/Makefile +0 -27
  21. data/vendor/PDCurses/README.md +0 -77
  22. data/vendor/PDCurses/acs_defs.h +0 -265
  23. data/vendor/PDCurses/appveyor.yml +0 -218
  24. data/vendor/PDCurses/cmake/README.md +0 -71
  25. data/vendor/PDCurses/cmake/build_dependencies.cmake +0 -178
  26. data/vendor/PDCurses/cmake/build_options.cmake +0 -25
  27. data/vendor/PDCurses/cmake/dll_version.cmake +0 -26
  28. data/vendor/PDCurses/cmake/gen_config_header.cmake +0 -43
  29. data/vendor/PDCurses/cmake/get_version.cmake +0 -17
  30. data/vendor/PDCurses/cmake/make_uninstall.cmake +0 -19
  31. data/vendor/PDCurses/cmake/project_common.cmake +0 -121
  32. data/vendor/PDCurses/cmake/resource.in.cmake +0 -52
  33. data/vendor/PDCurses/cmake/sdl2_ttf/CMakeLists.txt +0 -83
  34. data/vendor/PDCurses/cmake/target_arch.cmake +0 -36
  35. data/vendor/PDCurses/cmake/version.in.cmake +0 -73
  36. data/vendor/PDCurses/cmake/watcom_open_dos16_toolchain.cmake +0 -96
  37. data/vendor/PDCurses/cmake/watcom_open_dos32_toolchain.cmake +0 -106
  38. data/vendor/PDCurses/cmake/watcom_open_os2v2_toolchain.cmake +0 -105
  39. data/vendor/PDCurses/curses.h +0 -1846
  40. data/vendor/PDCurses/curspriv.h +0 -134
  41. data/vendor/PDCurses/demos/README.md +0 -25
  42. data/vendor/PDCurses/demos/firework.c +0 -144
  43. data/vendor/PDCurses/demos/newtest.c +0 -581
  44. data/vendor/PDCurses/demos/ozdemo.c +0 -447
  45. data/vendor/PDCurses/demos/ptest.c +0 -283
  46. data/vendor/PDCurses/demos/rain.c +0 -157
  47. data/vendor/PDCurses/demos/testcurs.c +0 -1607
  48. data/vendor/PDCurses/demos/tui.c +0 -1048
  49. data/vendor/PDCurses/demos/tui.h +0 -65
  50. data/vendor/PDCurses/demos/tuidemo.c +0 -233
  51. data/vendor/PDCurses/demos/version.c +0 -61
  52. data/vendor/PDCurses/demos/worm.c +0 -432
  53. data/vendor/PDCurses/demos/xmas.c +0 -955
  54. data/vendor/PDCurses/dos/CMakeLists.txt +0 -47
  55. data/vendor/PDCurses/dos/Makefile +0 -105
  56. data/vendor/PDCurses/dos/Makefile.bcc +0 -83
  57. data/vendor/PDCurses/dos/Makefile.dmc +0 -257
  58. data/vendor/PDCurses/dos/Makefile.msc +0 -113
  59. data/vendor/PDCurses/dos/Makefile.wcc +0 -107
  60. data/vendor/PDCurses/dos/README.md +0 -51
  61. data/vendor/PDCurses/dos/bccdos.lrf +0 -9
  62. data/vendor/PDCurses/dos/mscdos.lrf +0 -50
  63. data/vendor/PDCurses/dos/pdcclip.c +0 -132
  64. data/vendor/PDCurses/dos/pdcdisp.c +0 -135
  65. data/vendor/PDCurses/dos/pdcdos.h +0 -194
  66. data/vendor/PDCurses/dos/pdcgetsc.c +0 -98
  67. data/vendor/PDCurses/dos/pdckbd.c +0 -513
  68. data/vendor/PDCurses/dos/pdcscrn.c +0 -785
  69. data/vendor/PDCurses/dos/pdcsetsc.c +0 -101
  70. data/vendor/PDCurses/dos/pdcutil.c +0 -212
  71. data/vendor/PDCurses/libobjs.mif +0 -26
  72. data/vendor/PDCurses/makedist.mif +0 -20
  73. data/vendor/PDCurses/man/Makefile +0 -37
  74. data/vendor/PDCurses/man/README.md +0 -21
  75. data/vendor/PDCurses/man/intro.md +0 -361
  76. data/vendor/PDCurses/man/manext.c +0 -119
  77. data/vendor/PDCurses/man/sdl.md +0 -152
  78. data/vendor/PDCurses/man/sdl2.md +0 -58
  79. data/vendor/PDCurses/man/x11.md +0 -407
  80. data/vendor/PDCurses/ncurses/CMakeLists.txt +0 -66
  81. data/vendor/PDCurses/ncurses/README.md +0 -26
  82. data/vendor/PDCurses/ncurses/makefile +0 -29
  83. data/vendor/PDCurses/os2/CMakeLists.txt +0 -41
  84. data/vendor/PDCurses/os2/Makefile +0 -132
  85. data/vendor/PDCurses/os2/Makefile.bcc +0 -90
  86. data/vendor/PDCurses/os2/Makefile.wcc +0 -43
  87. data/vendor/PDCurses/os2/README.md +0 -43
  88. data/vendor/PDCurses/os2/iccos2.lrf +0 -50
  89. data/vendor/PDCurses/os2/iccos2.mak +0 -256
  90. data/vendor/PDCurses/os2/pdcclip.c +0 -188
  91. data/vendor/PDCurses/os2/pdcdisp.c +0 -93
  92. data/vendor/PDCurses/os2/pdcgetsc.c +0 -89
  93. data/vendor/PDCurses/os2/pdckbd.c +0 -521
  94. data/vendor/PDCurses/os2/pdcos2.h +0 -55
  95. data/vendor/PDCurses/os2/pdcscrn.c +0 -449
  96. data/vendor/PDCurses/os2/pdcsetsc.c +0 -112
  97. data/vendor/PDCurses/os2/pdcutil.c +0 -52
  98. data/vendor/PDCurses/panel.h +0 -56
  99. data/vendor/PDCurses/pdcurses/README.md +0 -25
  100. data/vendor/PDCurses/pdcurses/addch.c +0 -693
  101. data/vendor/PDCurses/pdcurses/addchstr.c +0 -245
  102. data/vendor/PDCurses/pdcurses/addstr.c +0 -240
  103. data/vendor/PDCurses/pdcurses/attr.c +0 -359
  104. data/vendor/PDCurses/pdcurses/beep.c +0 -68
  105. data/vendor/PDCurses/pdcurses/bkgd.c +0 -223
  106. data/vendor/PDCurses/pdcurses/border.c +0 -411
  107. data/vendor/PDCurses/pdcurses/clear.c +0 -159
  108. data/vendor/PDCurses/pdcurses/color.c +0 -298
  109. data/vendor/PDCurses/pdcurses/debug.c +0 -109
  110. data/vendor/PDCurses/pdcurses/delch.c +0 -96
  111. data/vendor/PDCurses/pdcurses/deleteln.c +0 -211
  112. data/vendor/PDCurses/pdcurses/deprec.c +0 -27
  113. data/vendor/PDCurses/pdcurses/getch.c +0 -417
  114. data/vendor/PDCurses/pdcurses/getstr.c +0 -474
  115. data/vendor/PDCurses/pdcurses/getyx.c +0 -139
  116. data/vendor/PDCurses/pdcurses/inch.c +0 -127
  117. data/vendor/PDCurses/pdcurses/inchstr.c +0 -214
  118. data/vendor/PDCurses/pdcurses/initscr.c +0 -367
  119. data/vendor/PDCurses/pdcurses/inopts.c +0 -324
  120. data/vendor/PDCurses/pdcurses/insch.c +0 -271
  121. data/vendor/PDCurses/pdcurses/insstr.c +0 -264
  122. data/vendor/PDCurses/pdcurses/instr.c +0 -246
  123. data/vendor/PDCurses/pdcurses/kernel.c +0 -259
  124. data/vendor/PDCurses/pdcurses/keyname.c +0 -157
  125. data/vendor/PDCurses/pdcurses/mouse.c +0 -438
  126. data/vendor/PDCurses/pdcurses/move.c +0 -57
  127. data/vendor/PDCurses/pdcurses/outopts.c +0 -159
  128. data/vendor/PDCurses/pdcurses/overlay.c +0 -214
  129. data/vendor/PDCurses/pdcurses/pad.c +0 -260
  130. data/vendor/PDCurses/pdcurses/panel.c +0 -633
  131. data/vendor/PDCurses/pdcurses/printw.c +0 -126
  132. data/vendor/PDCurses/pdcurses/refresh.c +0 -279
  133. data/vendor/PDCurses/pdcurses/scanw.c +0 -578
  134. data/vendor/PDCurses/pdcurses/scr_dump.c +0 -213
  135. data/vendor/PDCurses/pdcurses/scroll.c +0 -101
  136. data/vendor/PDCurses/pdcurses/slk.c +0 -591
  137. data/vendor/PDCurses/pdcurses/termattr.c +0 -182
  138. data/vendor/PDCurses/pdcurses/terminfo.c +0 -217
  139. data/vendor/PDCurses/pdcurses/touch.c +0 -163
  140. data/vendor/PDCurses/pdcurses/util.c +0 -312
  141. data/vendor/PDCurses/pdcurses/window.c +0 -569
  142. data/vendor/PDCurses/sdl1/Makefile +0 -129
  143. data/vendor/PDCurses/sdl1/Makefile.mng +0 -110
  144. data/vendor/PDCurses/sdl1/README.md +0 -31
  145. data/vendor/PDCurses/sdl1/deffont.h +0 -385
  146. data/vendor/PDCurses/sdl1/deficon.h +0 -23
  147. data/vendor/PDCurses/sdl1/pdcclip.c +0 -131
  148. data/vendor/PDCurses/sdl1/pdcdisp.c +0 -373
  149. data/vendor/PDCurses/sdl1/pdcgetsc.c +0 -30
  150. data/vendor/PDCurses/sdl1/pdckbd.c +0 -405
  151. data/vendor/PDCurses/sdl1/pdcscrn.c +0 -414
  152. data/vendor/PDCurses/sdl1/pdcsdl.h +0 -31
  153. data/vendor/PDCurses/sdl1/pdcsetsc.c +0 -64
  154. data/vendor/PDCurses/sdl1/pdcutil.c +0 -40
  155. data/vendor/PDCurses/sdl1/sdltest.c +0 -79
  156. data/vendor/PDCurses/sdl2/CMakeLists.txt +0 -76
  157. data/vendor/PDCurses/sdl2/Makefile +0 -135
  158. data/vendor/PDCurses/sdl2/Makefile.vc +0 -164
  159. data/vendor/PDCurses/sdl2/README.md +0 -34
  160. data/vendor/PDCurses/sdl2/deffont.h +0 -385
  161. data/vendor/PDCurses/sdl2/deficon.h +0 -23
  162. data/vendor/PDCurses/sdl2/pdcclip.c +0 -93
  163. data/vendor/PDCurses/sdl2/pdcdisp.c +0 -534
  164. data/vendor/PDCurses/sdl2/pdcgetsc.c +0 -30
  165. data/vendor/PDCurses/sdl2/pdckbd.c +0 -480
  166. data/vendor/PDCurses/sdl2/pdcscrn.c +0 -443
  167. data/vendor/PDCurses/sdl2/pdcsdl.h +0 -33
  168. data/vendor/PDCurses/sdl2/pdcsetsc.c +0 -67
  169. data/vendor/PDCurses/sdl2/pdcutil.c +0 -39
  170. data/vendor/PDCurses/sdl2/sdltest.c +0 -81
  171. data/vendor/PDCurses/term.h +0 -48
  172. data/vendor/PDCurses/version.mif +0 -7
  173. data/vendor/PDCurses/vt/CMakeLists.txt +0 -28
  174. data/vendor/PDCurses/vt/Makefile +0 -135
  175. data/vendor/PDCurses/vt/Makefile.bcc +0 -111
  176. data/vendor/PDCurses/vt/Makefile.dmc +0 -258
  177. data/vendor/PDCurses/vt/Makefile.vc +0 -144
  178. data/vendor/PDCurses/vt/Makefile.wcc +0 -107
  179. data/vendor/PDCurses/vt/README.md +0 -64
  180. data/vendor/PDCurses/vt/pdcclip.c +0 -20
  181. data/vendor/PDCurses/vt/pdcdisp.c +0 -284
  182. data/vendor/PDCurses/vt/pdcgetsc.c +0 -27
  183. data/vendor/PDCurses/vt/pdckbd.c +0 -394
  184. data/vendor/PDCurses/vt/pdcscrn.c +0 -434
  185. data/vendor/PDCurses/vt/pdcsetsc.c +0 -45
  186. data/vendor/PDCurses/vt/pdcutil.c +0 -43
  187. data/vendor/PDCurses/vt/pdcvt.h +0 -16
  188. data/vendor/PDCurses/watcom.mif +0 -68
  189. data/vendor/PDCurses/wincon/CMakeLists.txt +0 -27
  190. data/vendor/PDCurses/wincon/Makefile.bcc +0 -88
  191. data/vendor/PDCurses/wincon/Makefile.dmc +0 -256
  192. data/vendor/PDCurses/wincon/Makefile.lcc +0 -273
  193. data/vendor/PDCurses/wincon/Makefile.mng +0 -176
  194. data/vendor/PDCurses/wincon/Makefile.vc +0 -144
  195. data/vendor/PDCurses/wincon/Makefile.wcc +0 -51
  196. data/vendor/PDCurses/wincon/README.md +0 -85
  197. data/vendor/PDCurses/wincon/pdcclip.c +0 -174
  198. data/vendor/PDCurses/wincon/pdcdisp.c +0 -143
  199. data/vendor/PDCurses/wincon/pdcgetsc.c +0 -55
  200. data/vendor/PDCurses/wincon/pdckbd.c +0 -786
  201. data/vendor/PDCurses/wincon/pdcscrn.c +0 -717
  202. data/vendor/PDCurses/wincon/pdcsetsc.c +0 -91
  203. data/vendor/PDCurses/wincon/pdcurses.ico +0 -0
  204. data/vendor/PDCurses/wincon/pdcurses.rc +0 -28
  205. data/vendor/PDCurses/wincon/pdcutil.c +0 -41
  206. data/vendor/PDCurses/wincon/pdcwin.h +0 -31
  207. data/vendor/PDCurses/wingui/CMakeLists.txt +0 -27
  208. data/vendor/PDCurses/wingui/Makefile.bcc +0 -85
  209. data/vendor/PDCurses/wingui/Makefile.dmc +0 -259
  210. data/vendor/PDCurses/wingui/Makefile.lcc +0 -273
  211. data/vendor/PDCurses/wingui/Makefile.mng +0 -171
  212. data/vendor/PDCurses/wingui/Makefile.vc +0 -144
  213. data/vendor/PDCurses/wingui/Makefile.wcc +0 -51
  214. data/vendor/PDCurses/wingui/README.md +0 -93
  215. data/vendor/PDCurses/wingui/pdcclip.c +0 -174
  216. data/vendor/PDCurses/wingui/pdcdisp.c +0 -718
  217. data/vendor/PDCurses/wingui/pdcgetsc.c +0 -30
  218. data/vendor/PDCurses/wingui/pdckbd.c +0 -143
  219. data/vendor/PDCurses/wingui/pdcscrn.c +0 -2797
  220. data/vendor/PDCurses/wingui/pdcsetsc.c +0 -89
  221. data/vendor/PDCurses/wingui/pdcurses.ico +0 -0
  222. data/vendor/PDCurses/wingui/pdcurses.rc +0 -28
  223. data/vendor/PDCurses/wingui/pdcutil.c +0 -61
  224. data/vendor/PDCurses/wingui/pdcwin.h +0 -122
  225. data/vendor/PDCurses/x11/Makefile.in +0 -754
  226. data/vendor/PDCurses/x11/PDCurses.spec +0 -82
  227. data/vendor/PDCurses/x11/README.md +0 -62
  228. data/vendor/PDCurses/x11/ScrollBox.c +0 -319
  229. data/vendor/PDCurses/x11/ScrollBox.h +0 -51
  230. data/vendor/PDCurses/x11/ScrollBoxP.h +0 -70
  231. data/vendor/PDCurses/x11/aclocal.m4 +0 -994
  232. data/vendor/PDCurses/x11/big_icon.xbm +0 -46
  233. data/vendor/PDCurses/x11/compose.h +0 -201
  234. data/vendor/PDCurses/x11/config.guess +0 -1500
  235. data/vendor/PDCurses/x11/config.h.in +0 -100
  236. data/vendor/PDCurses/x11/config.sub +0 -1616
  237. data/vendor/PDCurses/x11/configure +0 -6700
  238. data/vendor/PDCurses/x11/configure.ac +0 -295
  239. data/vendor/PDCurses/x11/debian/changelog +0 -6
  240. data/vendor/PDCurses/x11/debian/compat +0 -1
  241. data/vendor/PDCurses/x11/debian/control +0 -11
  242. data/vendor/PDCurses/x11/debian/copyright +0 -27
  243. data/vendor/PDCurses/x11/debian/rules +0 -98
  244. data/vendor/PDCurses/x11/install-sh +0 -253
  245. data/vendor/PDCurses/x11/little_icon.xbm +0 -14
  246. data/vendor/PDCurses/x11/ncurses_cfg.h +0 -45
  247. data/vendor/PDCurses/x11/pdcclip.c +0 -173
  248. data/vendor/PDCurses/x11/pdcdisp.c +0 -85
  249. data/vendor/PDCurses/x11/pdcgetsc.c +0 -28
  250. data/vendor/PDCurses/x11/pdckbd.c +0 -104
  251. data/vendor/PDCurses/x11/pdcscrn.c +0 -258
  252. data/vendor/PDCurses/x11/pdcsetsc.c +0 -95
  253. data/vendor/PDCurses/x11/pdcutil.c +0 -52
  254. data/vendor/PDCurses/x11/pdcx11.c +0 -316
  255. data/vendor/PDCurses/x11/pdcx11.h +0 -191
  256. data/vendor/PDCurses/x11/sb.c +0 -155
  257. data/vendor/PDCurses/x11/x11.c +0 -3686
  258. data/vendor/PDCurses/x11/xcurses-config.in +0 -81
@@ -1,127 +0,0 @@
1
- /* Public Domain Curses */
2
-
3
- #include <curspriv.h>
4
-
5
- /*man-start**************************************************************
6
-
7
- inch
8
- ----
9
-
10
- ### Synopsis
11
-
12
- chtype inch(void);
13
- chtype winch(WINDOW *win);
14
- chtype mvinch(int y, int x);
15
- chtype mvwinch(WINDOW *win, int y, int x);
16
-
17
- int in_wch(cchar_t *wcval);
18
- int win_wch(WINDOW *win, cchar_t *wcval);
19
- int mvin_wch(int y, int x, cchar_t *wcval);
20
- int mvwin_wch(WINDOW *win, int y, int x, cchar_t *wcval);
21
-
22
- ### Description
23
-
24
- The inch() functions retrieve the character and attribute from
25
- the current or specified window position, in the form of a
26
- chtype. If a NULL window is specified, (chtype)ERR is returned.
27
-
28
- The in_wch() functions are the wide-character versions; instead
29
- of returning a chtype, they store a cchar_t at the address
30
- specified by wcval, and return OK or ERR. (No value is stored
31
- when ERR is returned.) Note that in PDCurses, chtype and cchar_t
32
- are the same.
33
-
34
- ### Portability
35
- X/Open BSD SYS V
36
- inch Y Y Y
37
- winch Y Y Y
38
- mvinch Y Y Y
39
- mvwinch Y Y Y
40
- in_wch Y
41
- win_wch Y
42
- mvin_wch Y
43
- mvwin_wch Y
44
-
45
- **man-end****************************************************************/
46
-
47
- chtype winch(WINDOW *win)
48
- {
49
- PDC_LOG(("winch() - called\n"));
50
-
51
- if (!win)
52
- return (chtype)ERR;
53
-
54
- return win->_y[win->_cury][win->_curx];
55
- }
56
-
57
- chtype inch(void)
58
- {
59
- PDC_LOG(("inch() - called\n"));
60
-
61
- return winch(stdscr);
62
- }
63
-
64
- chtype mvinch(int y, int x)
65
- {
66
- PDC_LOG(("mvinch() - called\n"));
67
-
68
- if (move(y, x) == ERR)
69
- return (chtype)ERR;
70
-
71
- return stdscr->_y[stdscr->_cury][stdscr->_curx];
72
- }
73
-
74
- chtype mvwinch(WINDOW *win, int y, int x)
75
- {
76
- PDC_LOG(("mvwinch() - called\n"));
77
-
78
- if (wmove(win, y, x) == ERR)
79
- return (chtype)ERR;
80
-
81
- return win->_y[win->_cury][win->_curx];
82
- }
83
-
84
- #ifdef PDC_WIDE
85
- int win_wch(WINDOW *win, cchar_t *wcval)
86
- {
87
- PDC_LOG(("win_wch() - called\n"));
88
-
89
- if (!win || !wcval)
90
- return ERR;
91
-
92
- *wcval = win->_y[win->_cury][win->_curx];
93
-
94
- return OK;
95
- }
96
-
97
- int in_wch(cchar_t *wcval)
98
- {
99
- PDC_LOG(("in_wch() - called\n"));
100
-
101
- return win_wch(stdscr, wcval);
102
- }
103
-
104
- int mvin_wch(int y, int x, cchar_t *wcval)
105
- {
106
- PDC_LOG(("mvin_wch() - called\n"));
107
-
108
- if (!wcval || (move(y, x) == ERR))
109
- return ERR;
110
-
111
- *wcval = stdscr->_y[stdscr->_cury][stdscr->_curx];
112
-
113
- return OK;
114
- }
115
-
116
- int mvwin_wch(WINDOW *win, int y, int x, cchar_t *wcval)
117
- {
118
- PDC_LOG(("mvwin_wch() - called\n"));
119
-
120
- if (!wcval || (wmove(win, y, x) == ERR))
121
- return ERR;
122
-
123
- *wcval = win->_y[win->_cury][win->_curx];
124
-
125
- return OK;
126
- }
127
- #endif
@@ -1,214 +0,0 @@
1
- /* Public Domain Curses */
2
-
3
- #include <curspriv.h>
4
-
5
- /*man-start**************************************************************
6
-
7
- inchstr
8
- -------
9
-
10
- ### Synopsis
11
-
12
- int inchstr(chtype *ch);
13
- int inchnstr(chtype *ch, int n);
14
- int winchstr(WINDOW *win, chtype *ch);
15
- int winchnstr(WINDOW *win, chtype *ch, int n);
16
- int mvinchstr(int y, int x, chtype *ch);
17
- int mvinchnstr(int y, int x, chtype *ch, int n);
18
- int mvwinchstr(WINDOW *, int y, int x, chtype *ch);
19
- int mvwinchnstr(WINDOW *, int y, int x, chtype *ch, int n);
20
-
21
- int in_wchstr(cchar_t *wch);
22
- int in_wchnstr(cchar_t *wch, int n);
23
- int win_wchstr(WINDOW *win, cchar_t *wch);
24
- int win_wchnstr(WINDOW *win, cchar_t *wch, int n);
25
- int mvin_wchstr(int y, int x, cchar_t *wch);
26
- int mvin_wchnstr(int y, int x, cchar_t *wch, int n);
27
- int mvwin_wchstr(WINDOW *win, int y, int x, cchar_t *wch);
28
- int mvwin_wchnstr(WINDOW *win, int y, int x, cchar_t *wch, int n);
29
-
30
- ### Description
31
-
32
- These routines read a chtype or cchar_t string from the window,
33
- starting at the current or specified position, and ending at the
34
- right margin, or after n elements, whichever is less.
35
-
36
- ### Return Value
37
-
38
- All functions return the number of elements read, or ERR on
39
- error.
40
-
41
- ### Portability
42
- X/Open BSD SYS V
43
- inchstr Y - 4.0
44
- winchstr Y - 4.0
45
- mvinchstr Y - 4.0
46
- mvwinchstr Y - 4.0
47
- inchnstr Y - 4.0
48
- winchnstr Y - 4.0
49
- mvinchnstr Y - 4.0
50
- mvwinchnstr Y - 4.0
51
- in_wchstr Y
52
- win_wchstr Y
53
- mvin_wchstr Y
54
- mvwin_wchstr Y
55
- in_wchnstr Y
56
- win_wchnstr Y
57
- mvin_wchnstr Y
58
- mvwin_wchnstr Y
59
-
60
- **man-end****************************************************************/
61
-
62
- int winchnstr(WINDOW *win, chtype *ch, int n)
63
- {
64
- chtype *src;
65
- int i;
66
-
67
- PDC_LOG(("winchnstr() - called\n"));
68
-
69
- if (!win || !ch || n < 0)
70
- return ERR;
71
-
72
- if ((win->_curx + n) > win->_maxx)
73
- n = win->_maxx - win->_curx;
74
-
75
- src = win->_y[win->_cury] + win->_curx;
76
-
77
- for (i = 0; i < n; i++)
78
- *ch++ = *src++;
79
-
80
- *ch = (chtype)0;
81
-
82
- return OK;
83
- }
84
-
85
- int inchstr(chtype *ch)
86
- {
87
- PDC_LOG(("inchstr() - called\n"));
88
-
89
- return winchnstr(stdscr, ch, stdscr->_maxx - stdscr->_curx);
90
- }
91
-
92
- int winchstr(WINDOW *win, chtype *ch)
93
- {
94
- PDC_LOG(("winchstr() - called\n"));
95
-
96
- return winchnstr(win, ch, win->_maxx - win->_curx);
97
- }
98
-
99
- int mvinchstr(int y, int x, chtype *ch)
100
- {
101
- PDC_LOG(("mvinchstr() - called: y %d x %d\n", y, x));
102
-
103
- if (move(y, x) == ERR)
104
- return ERR;
105
-
106
- return winchnstr(stdscr, ch, stdscr->_maxx - stdscr->_curx);
107
- }
108
-
109
- int mvwinchstr(WINDOW *win, int y, int x, chtype *ch)
110
- {
111
- PDC_LOG(("mvwinchstr() - called:\n"));
112
-
113
- if (wmove(win, y, x) == ERR)
114
- return ERR;
115
-
116
- return winchnstr(win, ch, win->_maxx - win->_curx);
117
- }
118
-
119
- int inchnstr(chtype *ch, int n)
120
- {
121
- PDC_LOG(("inchnstr() - called\n"));
122
-
123
- return winchnstr(stdscr, ch, n);
124
- }
125
-
126
- int mvinchnstr(int y, int x, chtype *ch, int n)
127
- {
128
- PDC_LOG(("mvinchnstr() - called: y %d x %d n %d\n", y, x, n));
129
-
130
- if (move(y, x) == ERR)
131
- return ERR;
132
-
133
- return winchnstr(stdscr, ch, n);
134
- }
135
-
136
- int mvwinchnstr(WINDOW *win, int y, int x, chtype *ch, int n)
137
- {
138
- PDC_LOG(("mvwinchnstr() - called: y %d x %d n %d \n", y, x, n));
139
-
140
- if (wmove(win, y, x) == ERR)
141
- return ERR;
142
-
143
- return winchnstr(win, ch, n);
144
- }
145
-
146
- #ifdef PDC_WIDE
147
- int win_wchnstr(WINDOW *win, cchar_t *wch, int n)
148
- {
149
- PDC_LOG(("win_wchnstr() - called\n"));
150
-
151
- return winchnstr(win, wch, n);
152
- }
153
-
154
- int in_wchstr(cchar_t *wch)
155
- {
156
- PDC_LOG(("in_wchstr() - called\n"));
157
-
158
- return win_wchnstr(stdscr, wch, stdscr->_maxx - stdscr->_curx);
159
- }
160
-
161
- int win_wchstr(WINDOW *win, cchar_t *wch)
162
- {
163
- PDC_LOG(("win_wchstr() - called\n"));
164
-
165
- return win_wchnstr(win, wch, win->_maxx - win->_curx);
166
- }
167
-
168
- int mvin_wchstr(int y, int x, cchar_t *wch)
169
- {
170
- PDC_LOG(("mvin_wchstr() - called: y %d x %d\n", y, x));
171
-
172
- if (move(y, x) == ERR)
173
- return ERR;
174
-
175
- return win_wchnstr(stdscr, wch, stdscr->_maxx - stdscr->_curx);
176
- }
177
-
178
- int mvwin_wchstr(WINDOW *win, int y, int x, cchar_t *wch)
179
- {
180
- PDC_LOG(("mvwin_wchstr() - called:\n"));
181
-
182
- if (wmove(win, y, x) == ERR)
183
- return ERR;
184
-
185
- return win_wchnstr(win, wch, win->_maxx - win->_curx);
186
- }
187
-
188
- int in_wchnstr(cchar_t *wch, int n)
189
- {
190
- PDC_LOG(("in_wchnstr() - called\n"));
191
-
192
- return win_wchnstr(stdscr, wch, n);
193
- }
194
-
195
- int mvin_wchnstr(int y, int x, cchar_t *wch, int n)
196
- {
197
- PDC_LOG(("mvin_wchnstr() - called: y %d x %d n %d\n", y, x, n));
198
-
199
- if (move(y, x) == ERR)
200
- return ERR;
201
-
202
- return win_wchnstr(stdscr, wch, n);
203
- }
204
-
205
- int mvwin_wchnstr(WINDOW *win, int y, int x, cchar_t *wch, int n)
206
- {
207
- PDC_LOG(("mvwinchnstr() - called: y %d x %d n %d \n", y, x, n));
208
-
209
- if (wmove(win, y, x) == ERR)
210
- return ERR;
211
-
212
- return win_wchnstr(win, wch, n);
213
- }
214
- #endif
@@ -1,367 +0,0 @@
1
- /* Public Domain Curses */
2
-
3
- #include <curspriv.h>
4
-
5
- /*man-start**************************************************************
6
-
7
- initscr
8
- -------
9
-
10
- ### Synopsis
11
-
12
- WINDOW *initscr(void);
13
- WINDOW *Xinitscr(int argc, char *argv[]);
14
- int endwin(void);
15
- bool isendwin(void);
16
- SCREEN *newterm(const char *type, FILE *outfd, FILE *infd);
17
- SCREEN *set_term(SCREEN *new);
18
- void delscreen(SCREEN *sp);
19
-
20
- int resize_term(int nlines, int ncols);
21
- bool is_termresized(void);
22
- const char *curses_version(void);
23
-
24
- ### Description
25
-
26
- initscr() should be the first curses routine called. It will
27
- initialize all curses data structures, and arrange that the
28
- first call to refresh() will clear the screen. In case of
29
- error, initscr() will write a message to standard error and end
30
- the program.
31
-
32
- endwin() should be called before exiting or escaping from curses
33
- mode temporarily. It will restore tty modes, move the cursor to
34
- the lower left corner of the screen and reset the terminal into
35
- the proper non-visual mode. To resume curses after a temporary
36
- escape, call refresh() or doupdate().
37
-
38
- isendwin() returns TRUE if endwin() has been called without a
39
- subsequent refresh, unless SP is NULL.
40
-
41
- In some implementations of curses, newterm() allows the use of
42
- multiple terminals. Here, it's just an alternative interface for
43
- initscr(). It always returns SP, or NULL.
44
-
45
- delscreen() frees the memory allocated by newterm() or
46
- initscr(), since it's not freed by endwin(). This function is
47
- usually not needed. In PDCurses, the parameter must be the
48
- value of SP, and delscreen() sets SP to NULL.
49
-
50
- set_term() does nothing meaningful in PDCurses, but is included
51
- for compatibility with other curses implementations.
52
-
53
- resize_term() is effectively two functions: When called with
54
- nonzero values for nlines and ncols, it attempts to resize the
55
- screen to the given size. On some platforms, you can do this
56
- before calling initscr(), thereby setting the starting screen
57
- size. When called with (0, 0), it merely adjusts the internal
58
- structures to match the current size after the screen is
59
- resized by the user. User, pre-initscr(), and programmatic
60
- resizing is platform-dependent, as follows (with ncurses added
61
- as a "platform" for comparison; it supports only user resizing.)
62
-
63
- Platform User Init Programmatic
64
- DOS - - x
65
- ncurses x - -
66
- OS/2 - - x
67
- SDL1 x x x
68
- SDL2 x x x
69
- VT x x x
70
- Wincon x - x
71
- WinGUI x x x
72
- X11 x x -
73
-
74
- If you want to support user resizing, you should check for getch()
75
- returning KEY_RESIZE, and/or call is_termresized() at appropriate
76
- times; if either condition occurs, call resize_term(0, 0). Then,
77
- with either user or programmatic resizing, you'll have to resize
78
- any windows you've created, as appropriate; resize_term() only
79
- handles stdscr and curscr.
80
-
81
- is_termresized() returns TRUE if the curses screen has been
82
- resized by the user, and a call to resize_term() is needed.
83
- Checking for KEY_RESIZE is generally preferable, unless you're
84
- not handling the keyboard.
85
-
86
- curses_version() returns a string describing the version of
87
- PDCurses.
88
-
89
- ### Return Value
90
-
91
- All functions return NULL on error, except endwin(), which always
92
- returns OK, and resize_term(), which returns either OK or ERR.
93
-
94
- ### Portability
95
- X/Open BSD SYS V
96
- initscr Y Y Y
97
- endwin Y Y Y
98
- isendwin Y - 3.0
99
- newterm Y - Y
100
- set_term Y - Y
101
- delscreen Y - 4.0
102
- resize_term - - -
103
- is_termresized - - -
104
- curses_version - - -
105
-
106
- **man-end****************************************************************/
107
-
108
- #include <stdlib.h>
109
-
110
- char ttytype[128];
111
-
112
- #define PDC_STR( x) #x
113
- #define PDC_str( x) PDC_STR( x)
114
-
115
- static const char *_curses_notice =
116
- "PDCurses " PDC_str(PDC_VER_MAJOR) "."
117
- PDC_str(PDC_VER_MINOR) "."
118
- PDC_str(PDC_VER_CHANGE) " - Public Domain "
119
- PDC_str(PDC_VER_YEAR) "-"
120
- PDC_str(PDC_VER_MONTH) "-"
121
- PDC_str(PDC_VER_DAY);
122
-
123
- SCREEN *SP = (SCREEN*)NULL; /* curses variables */
124
- WINDOW *curscr = (WINDOW *)NULL; /* the current screen image */
125
- WINDOW *stdscr = (WINDOW *)NULL; /* the default screen window */
126
- WINDOW *pdc_lastscr = (WINDOW *)NULL; /* the last screen image */
127
-
128
- int LINES = 0; /* current terminal height */
129
- int COLS = 0; /* current terminal width */
130
- int TABSIZE = 8;
131
-
132
- MOUSE_STATUS Mouse_status, pdc_mouse_status;
133
-
134
- extern RIPPEDOFFLINE linesripped[5];
135
- extern char linesrippedoff;
136
-
137
- WINDOW *Xinitscr(int argc, char *argv[])
138
- {
139
- int i;
140
-
141
- PDC_LOG(("Xinitscr() - called\n"));
142
-
143
- if (SP && SP->alive)
144
- return NULL;
145
-
146
- if (PDC_scr_open(argc, argv) == ERR)
147
- {
148
- fprintf(stderr, "initscr(): Unable to create SP\n");
149
- exit(8);
150
- }
151
-
152
- SP->autocr = TRUE; /* cr -> lf by default */
153
- SP->raw_out = FALSE; /* tty I/O modes */
154
- SP->raw_inp = FALSE; /* tty I/O modes */
155
- SP->cbreak = TRUE;
156
- SP->save_key_modifiers = FALSE;
157
- SP->return_key_modifiers = FALSE;
158
- SP->echo = TRUE;
159
- SP->visibility = 1;
160
- SP->resized = FALSE;
161
- SP->_trap_mbe = 0L;
162
- SP->_map_mbe_to_key = 0L;
163
- SP->linesrippedoff = 0;
164
- SP->linesrippedoffontop = 0;
165
- SP->delaytenths = 0;
166
- SP->line_color = -1;
167
-
168
- SP->orig_cursor = PDC_get_cursor_mode();
169
-
170
- LINES = SP->lines;
171
- COLS = SP->cols;
172
-
173
- if (LINES < 2 || COLS < 2)
174
- {
175
- fprintf(stderr, "initscr(): LINES=%d COLS=%d: too small.\n",
176
- LINES, COLS);
177
- exit(4);
178
- }
179
-
180
- if ((curscr = newwin(LINES, COLS, 0, 0)) == (WINDOW *)NULL)
181
- {
182
- fprintf(stderr, "initscr(): Unable to create curscr.\n");
183
- exit(2);
184
- }
185
-
186
- if ((pdc_lastscr = newwin(LINES, COLS, 0, 0)) == (WINDOW *)NULL)
187
- {
188
- fprintf(stderr, "initscr(): Unable to create pdc_lastscr.\n");
189
- exit(2);
190
- }
191
-
192
- wattrset(pdc_lastscr, (chtype)(-1));
193
- werase(pdc_lastscr);
194
-
195
- PDC_slk_initialize();
196
- LINES -= SP->slklines;
197
-
198
- /* We have to sort out ripped off lines here, and reduce the height
199
- of stdscr by the number of lines ripped off */
200
-
201
- for (i = 0; i < linesrippedoff; i++)
202
- {
203
- if (linesripped[i].line < 0)
204
- (*linesripped[i].init)(newwin(1, COLS, LINES - 1, 0), COLS);
205
- else
206
- (*linesripped[i].init)(newwin(1, COLS,
207
- SP->linesrippedoffontop++, 0), COLS);
208
-
209
- SP->linesrippedoff++;
210
- LINES--;
211
- }
212
-
213
- linesrippedoff = 0;
214
-
215
- if (!(stdscr = newwin(LINES, COLS, SP->linesrippedoffontop, 0)))
216
- {
217
- fprintf(stderr, "initscr(): Unable to create stdscr.\n");
218
- exit(1);
219
- }
220
-
221
- wclrtobot(stdscr);
222
-
223
- /* If preserving the existing screen, don't allow a screen clear */
224
-
225
- if (SP->_preserve)
226
- {
227
- untouchwin(curscr);
228
- untouchwin(stdscr);
229
- stdscr->_clear = FALSE;
230
- curscr->_clear = FALSE;
231
- }
232
- else
233
- curscr->_clear = TRUE;
234
-
235
- PDC_init_atrtab(); /* set up default colors */
236
-
237
- MOUSE_X_POS = MOUSE_Y_POS = -1;
238
- BUTTON_STATUS(1) = BUTTON_RELEASED;
239
- BUTTON_STATUS(2) = BUTTON_RELEASED;
240
- BUTTON_STATUS(3) = BUTTON_RELEASED;
241
- Mouse_status.changes = 0;
242
-
243
- SP->alive = TRUE;
244
-
245
- def_shell_mode();
246
-
247
- longname( ); /* to ensure that ttytype is initialized */
248
-
249
- return stdscr;
250
- }
251
-
252
- WINDOW *initscr(void)
253
- {
254
- PDC_LOG(("initscr() - called\n"));
255
-
256
- return Xinitscr(0, NULL);
257
- }
258
-
259
- int endwin(void)
260
- {
261
- PDC_LOG(("endwin() - called\n"));
262
-
263
- /* Allow temporary exit from curses using endwin() */
264
-
265
- def_prog_mode();
266
- PDC_scr_close();
267
-
268
- SP->alive = FALSE;
269
-
270
- return OK;
271
- }
272
-
273
- bool isendwin(void)
274
- {
275
- PDC_LOG(("isendwin() - called\n"));
276
-
277
- return SP ? !(SP->alive) : FALSE;
278
- }
279
-
280
- SCREEN *newterm(const char *type, FILE *outfd, FILE *infd)
281
- {
282
- PDC_LOG(("newterm() - called\n"));
283
-
284
- return Xinitscr(0, NULL) ? SP : NULL;
285
- }
286
-
287
- SCREEN *set_term(SCREEN *new)
288
- {
289
- PDC_LOG(("set_term() - called\n"));
290
-
291
- /* We only support one screen */
292
-
293
- return (new == SP) ? SP : NULL;
294
- }
295
-
296
- void delscreen(SCREEN *sp)
297
- {
298
- PDC_LOG(("delscreen() - called\n"));
299
-
300
- if (sp != SP)
301
- return;
302
-
303
- PDC_slk_free(); /* free the soft label keys, if needed */
304
-
305
- delwin(stdscr);
306
- delwin(curscr);
307
- delwin(pdc_lastscr);
308
- stdscr = (WINDOW *)NULL;
309
- curscr = (WINDOW *)NULL;
310
- pdc_lastscr = (WINDOW *)NULL;
311
-
312
- SP->alive = FALSE;
313
-
314
- PDC_scr_free(); /* free SP and pdc_atrtab */
315
-
316
- SP = (SCREEN *)NULL;
317
- }
318
-
319
- int resize_term(int nlines, int ncols)
320
- {
321
- PDC_LOG(("resize_term() - called: nlines %d\n", nlines));
322
-
323
- if( PDC_resize_screen(nlines, ncols) == ERR)
324
- return ERR;
325
-
326
- if (!stdscr)
327
- return OK;
328
-
329
- SP->lines = PDC_get_rows();
330
- LINES = SP->lines - SP->linesrippedoff - SP->slklines;
331
- SP->cols = COLS = PDC_get_columns();
332
-
333
- if (wresize(curscr, SP->lines, SP->cols) == ERR ||
334
- wresize(stdscr, LINES, COLS) == ERR ||
335
- wresize(pdc_lastscr, SP->lines, SP->cols) == ERR)
336
- return ERR;
337
-
338
- werase(pdc_lastscr);
339
- curscr->_clear = TRUE;
340
-
341
- if (SP->slk_winptr)
342
- {
343
- if (wresize(SP->slk_winptr, SP->slklines, COLS) == ERR)
344
- return ERR;
345
-
346
- wmove(SP->slk_winptr, 0, 0);
347
- wclrtobot(SP->slk_winptr);
348
- PDC_slk_initialize();
349
- slk_noutrefresh();
350
- }
351
-
352
- touchwin(stdscr);
353
- wnoutrefresh(stdscr);
354
- return OK;
355
- }
356
-
357
- bool is_termresized(void)
358
- {
359
- PDC_LOG(("is_termresized() - called\n"));
360
-
361
- return SP->resized;
362
- }
363
-
364
- const char *curses_version(void)
365
- {
366
- return _curses_notice;
367
- }