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,569 +0,0 @@
1
- /* Public Domain Curses */
2
-
3
- #include <curspriv.h>
4
-
5
- /*man-start**************************************************************
6
-
7
- window
8
- ------
9
-
10
- ### Synopsis
11
-
12
- WINDOW *newwin(int nlines, int ncols, int begy, int begx);
13
- WINDOW *derwin(WINDOW* orig, int nlines, int ncols,
14
- int begy, int begx);
15
- WINDOW *subwin(WINDOW* orig, int nlines, int ncols,
16
- int begy, int begx);
17
- WINDOW *dupwin(WINDOW *win);
18
- int delwin(WINDOW *win);
19
- int mvwin(WINDOW *win, int y, int x);
20
- int mvderwin(WINDOW *win, int pary, int parx);
21
- int syncok(WINDOW *win, bool bf);
22
- void wsyncup(WINDOW *win);
23
- void wcursyncup(WINDOW *win);
24
- void wsyncdown(WINDOW *win);
25
-
26
- WINDOW *resize_window(WINDOW *win, int nlines, int ncols);
27
- int wresize(WINDOW *win, int nlines, int ncols);
28
- WINDOW *PDC_makelines(WINDOW *win);
29
- WINDOW *PDC_makenew(int nlines, int ncols, int begy, int begx);
30
- void PDC_sync(WINDOW *win);
31
-
32
- ### Description
33
-
34
- newwin() creates a new window with the given number of lines,
35
- nlines and columns, ncols. The upper left corner of the window
36
- is at line begy, column begx. If nlines is zero, it defaults to
37
- LINES - begy; ncols to COLS - begx. Create a new full-screen
38
- window by calling newwin(0, 0, 0, 0).
39
-
40
- delwin() deletes the named window, freeing all associated
41
- memory. In the case of overlapping windows, subwindows should be
42
- deleted before the main window.
43
-
44
- mvwin() moves the window so that the upper left-hand corner is
45
- at position (y,x). If the move would cause the window to be off
46
- the screen, it is an error and the window is not moved. Moving
47
- subwindows is allowed.
48
-
49
- subwin() creates a new subwindow within a window. The
50
- dimensions of the subwindow are nlines lines and ncols columns.
51
- The subwindow is at position (begy, begx) on the screen. This
52
- position is relative to the screen, and not to the window orig.
53
- Changes made to either window will affect both. When using this
54
- routine, you will often need to call touchwin() before calling
55
- wrefresh().
56
-
57
- derwin() is the same as subwin(), except that begy and begx are
58
- relative to the origin of the window orig rather than the
59
- screen. There is no difference between subwindows and derived
60
- windows.
61
-
62
- mvderwin() moves a derived window (or subwindow) inside its
63
- parent window. The screen-relative parameters of the window are
64
- not changed. This routine is used to display different parts of
65
- the parent window at the same physical position on the screen.
66
-
67
- dupwin() creates an exact duplicate of the window win.
68
-
69
- wsyncup() causes a touchwin() of all of the window's parents.
70
-
71
- If wsyncok() is called with a second argument of TRUE, this
72
- causes a wsyncup() to be called every time the window is
73
- changed.
74
-
75
- wcursyncup() causes the current cursor position of all of a
76
- window's ancestors to reflect the current cursor position of the
77
- current window.
78
-
79
- wsyncdown() causes a touchwin() of the current window if any of
80
- its parent's windows have been touched.
81
-
82
- resize_window() allows the user to resize an existing window. It
83
- returns the pointer to the new window, or NULL on failure.
84
-
85
- wresize() is an ncurses-compatible wrapper for resize_window().
86
- Note that, unlike ncurses, it will NOT process any subwindows of
87
- the window. (However, you still can call it _on_ subwindows.) It
88
- returns OK or ERR.
89
-
90
- PDC_makenew() allocates all data for a new WINDOW * except the
91
- actual lines themselves. If it's unable to allocate memory for
92
- the window structure, it will free all allocated memory and
93
- return a NULL pointer.
94
-
95
- PDC_makelines() allocates the memory for the lines.
96
-
97
- PDC_sync() handles wrefresh() and wsyncup() calls when a window
98
- is changed.
99
-
100
- ### Return Value
101
-
102
- newwin(), subwin(), derwin() and dupwin() return a pointer
103
- to the new window, or NULL on failure. delwin(), mvwin(),
104
- mvderwin() and syncok() return OK or ERR. wsyncup(),
105
- wcursyncup() and wsyncdown() return nothing.
106
-
107
- ### Errors
108
-
109
- It is an error to call resize_window() before calling initscr().
110
- Also, an error will be generated if we fail to create a newly
111
- sized replacement window for curscr, or stdscr. This could
112
- happen when increasing the window size. NOTE: If this happens,
113
- the previously successfully allocated windows are left alone;
114
- i.e., the resize is NOT cancelled for those windows.
115
-
116
- ### Portability
117
- X/Open BSD SYS V
118
- newwin Y Y Y
119
- delwin Y Y Y
120
- mvwin Y Y Y
121
- subwin Y Y Y
122
- derwin Y - Y
123
- mvderwin Y - Y
124
- dupwin Y - 4.0
125
- wsyncup Y - 4.0
126
- syncok Y - 4.0
127
- wcursyncup Y - 4.0
128
- wsyncdown Y - 4.0
129
- resize_window - - -
130
- wresize - - -
131
- PDC_makelines - - -
132
- PDC_makenew - - -
133
- PDC_sync - - -
134
-
135
- **man-end****************************************************************/
136
-
137
- #include <stdlib.h>
138
-
139
- WINDOW *PDC_makenew(int nlines, int ncols, int begy, int begx)
140
- {
141
- WINDOW *win;
142
-
143
- PDC_LOG(("PDC_makenew() - called: lines %d cols %d begy %d begx %d\n",
144
- nlines, ncols, begy, begx));
145
-
146
- /* allocate the window structure itself */
147
-
148
- if ((win = calloc(1, sizeof(WINDOW))) == (WINDOW *)NULL)
149
- return win;
150
-
151
- /* allocate the line pointer array */
152
-
153
- if ((win->_y = malloc(nlines * sizeof(chtype *))) == NULL)
154
- {
155
- free(win);
156
- return (WINDOW *)NULL;
157
- }
158
-
159
- /* allocate the minchng and maxchng arrays */
160
-
161
- if ((win->_firstch = malloc(nlines * sizeof(int))) == NULL)
162
- {
163
- free(win->_y);
164
- free(win);
165
- return (WINDOW *)NULL;
166
- }
167
-
168
- if ((win->_lastch = malloc(nlines * sizeof(int))) == NULL)
169
- {
170
- free(win->_firstch);
171
- free(win->_y);
172
- free(win);
173
- return (WINDOW *)NULL;
174
- }
175
-
176
- /* initialize window variables */
177
-
178
- win->_maxy = nlines; /* real max screen size */
179
- win->_maxx = ncols; /* real max screen size */
180
- win->_begy = begy;
181
- win->_begx = begx;
182
- win->_bkgd = ' '; /* wrs 4/10/93 -- initialize background to blank */
183
- win->_clear = (bool) ((nlines == LINES) && (ncols == COLS));
184
- win->_bmarg = nlines - 1;
185
- win->_parx = win->_pary = -1;
186
-
187
- /* init to say window all changed */
188
-
189
- touchwin(win);
190
-
191
- return win;
192
- }
193
-
194
- WINDOW *PDC_makelines(WINDOW *win)
195
- {
196
- int i, j, nlines, ncols;
197
-
198
- PDC_LOG(("PDC_makelines() - called\n"));
199
-
200
- if (!win)
201
- return (WINDOW *)NULL;
202
-
203
- nlines = win->_maxy;
204
- ncols = win->_maxx;
205
-
206
- for (i = 0; i < nlines; i++)
207
- {
208
- if ((win->_y[i] = malloc(ncols * sizeof(chtype))) == NULL)
209
- {
210
- /* if error, free all the data */
211
-
212
- for (j = 0; j < i; j++)
213
- free(win->_y[j]);
214
-
215
- free(win->_firstch);
216
- free(win->_lastch);
217
- free(win->_y);
218
- free(win);
219
-
220
- return (WINDOW *)NULL;
221
- }
222
- }
223
-
224
- return win;
225
- }
226
-
227
- void PDC_sync(WINDOW *win)
228
- {
229
- PDC_LOG(("PDC_sync() - called:\n"));
230
-
231
- if (win->_immed)
232
- wrefresh(win);
233
- if (win->_sync)
234
- wsyncup(win);
235
- }
236
-
237
- WINDOW *newwin(int nlines, int ncols, int begy, int begx)
238
- {
239
- WINDOW *win;
240
-
241
- PDC_LOG(("newwin() - called:lines=%d cols=%d begy=%d begx=%d\n",
242
- nlines, ncols, begy, begx));
243
-
244
- if (!nlines)
245
- nlines = LINES - begy;
246
- if (!ncols)
247
- ncols = COLS - begx;
248
-
249
- if ( (begy + nlines > SP->lines || begx + ncols > SP->cols)
250
- || !(win = PDC_makenew(nlines, ncols, begy, begx))
251
- || !(win = PDC_makelines(win)) )
252
- return (WINDOW *)NULL;
253
-
254
- werase(win);
255
-
256
- return win;
257
- }
258
-
259
- int delwin(WINDOW *win)
260
- {
261
- int i;
262
-
263
- PDC_LOG(("delwin() - called\n"));
264
-
265
- if (!win)
266
- return ERR;
267
-
268
- /* subwindows use parents' lines */
269
-
270
- if (!(win->_flags & (_SUBWIN|_SUBPAD)))
271
- for (i = 0; i < win->_maxy && win->_y[i]; i++)
272
- if (win->_y[i])
273
- free(win->_y[i]);
274
-
275
- free(win->_firstch);
276
- free(win->_lastch);
277
- free(win->_y);
278
- free(win);
279
-
280
- return OK;
281
- }
282
-
283
- int mvwin(WINDOW *win, int y, int x)
284
- {
285
- PDC_LOG(("mvwin() - called\n"));
286
-
287
- if (!win || (y + win->_maxy > LINES || y < 0)
288
- || (x + win->_maxx > COLS || x < 0))
289
- return ERR;
290
-
291
- win->_begy = y;
292
- win->_begx = x;
293
- touchwin(win);
294
-
295
- return OK;
296
- }
297
-
298
- WINDOW *subwin(WINDOW *orig, int nlines, int ncols, int begy, int begx)
299
- {
300
- WINDOW *win;
301
- int i;
302
- int j = begy - orig->_begy;
303
- int k = begx - orig->_begx;
304
-
305
- PDC_LOG(("subwin() - called: lines %d cols %d begy %d begx %d\n",
306
- nlines, ncols, begy, begx));
307
-
308
- /* make sure window fits inside the original one */
309
-
310
- if (!orig || (begy < orig->_begy) || (begx < orig->_begx) ||
311
- (begy + nlines) > (orig->_begy + orig->_maxy) ||
312
- (begx + ncols) > (orig->_begx + orig->_maxx))
313
- return (WINDOW *)NULL;
314
-
315
- if (!nlines)
316
- nlines = orig->_maxy - 1 - j;
317
- if (!ncols)
318
- ncols = orig->_maxx - 1 - k;
319
-
320
- if ( !(win = PDC_makenew(nlines, ncols, begy, begx)) )
321
- return (WINDOW *)NULL;
322
-
323
- /* initialize window variables */
324
-
325
- win->_attrs = orig->_attrs;
326
- win->_bkgd = orig->_bkgd;
327
- win->_leaveit = orig->_leaveit;
328
- win->_scroll = orig->_scroll;
329
- win->_nodelay = orig->_nodelay;
330
- win->_delayms = orig->_delayms;
331
- win->_use_keypad = orig->_use_keypad;
332
- win->_immed = orig->_immed;
333
- win->_sync = orig->_sync;
334
- win->_pary = j;
335
- win->_parx = k;
336
- win->_parent = orig;
337
-
338
- for (i = 0; i < nlines; i++, j++)
339
- win->_y[i] = orig->_y[j] + k;
340
-
341
- win->_flags |= _SUBWIN;
342
-
343
- return win;
344
- }
345
-
346
- WINDOW *derwin(WINDOW *orig, int nlines, int ncols, int begy, int begx)
347
- {
348
- return subwin(orig, nlines, ncols, begy + orig->_begy, begx + orig->_begx);
349
- }
350
-
351
- int mvderwin(WINDOW *win, int pary, int parx)
352
- {
353
- int i, j;
354
- WINDOW *mypar;
355
-
356
- if (!win || !(win->_parent))
357
- return ERR;
358
-
359
- mypar = win->_parent;
360
-
361
- if (pary < 0 || parx < 0 || (pary + win->_maxy) > mypar->_maxy ||
362
- (parx + win->_maxx) > mypar->_maxx)
363
- return ERR;
364
-
365
- j = pary;
366
-
367
- for (i = 0; i < win->_maxy; i++)
368
- win->_y[i] = (mypar->_y[j++]) + parx;
369
-
370
- win->_pary = pary;
371
- win->_parx = parx;
372
-
373
- return OK;
374
- }
375
-
376
- WINDOW *dupwin(WINDOW *win)
377
- {
378
- WINDOW *new;
379
- chtype *ptr, *ptr1;
380
- int nlines, ncols, begy, begx, i;
381
-
382
- if (!win)
383
- return (WINDOW *)NULL;
384
-
385
- nlines = win->_maxy;
386
- ncols = win->_maxx;
387
- begy = win->_begy;
388
- begx = win->_begx;
389
-
390
- if ( !(new = PDC_makenew(nlines, ncols, begy, begx))
391
- || !(new = PDC_makelines(new)) )
392
- return (WINDOW *)NULL;
393
-
394
- /* copy the contents of win into new */
395
-
396
- for (i = 0; i < nlines; i++)
397
- {
398
- for (ptr = new->_y[i], ptr1 = win->_y[i];
399
- ptr < new->_y[i] + ncols; ptr++, ptr1++)
400
- *ptr = *ptr1;
401
-
402
- new->_firstch[i] = 0;
403
- new->_lastch[i] = ncols - 1;
404
- }
405
-
406
- new->_curx = win->_curx;
407
- new->_cury = win->_cury;
408
- new->_maxy = win->_maxy;
409
- new->_maxx = win->_maxx;
410
- new->_begy = win->_begy;
411
- new->_begx = win->_begx;
412
- new->_flags = win->_flags;
413
- new->_attrs = win->_attrs;
414
- new->_clear = win->_clear;
415
- new->_leaveit = win->_leaveit;
416
- new->_scroll = win->_scroll;
417
- new->_nodelay = win->_nodelay;
418
- new->_delayms = win->_delayms;
419
- new->_use_keypad = win->_use_keypad;
420
- new->_tmarg = win->_tmarg;
421
- new->_bmarg = win->_bmarg;
422
- new->_parx = win->_parx;
423
- new->_pary = win->_pary;
424
- new->_parent = win->_parent;
425
- new->_bkgd = win->_bkgd;
426
- new->_flags = win->_flags;
427
-
428
- return new;
429
- }
430
-
431
- WINDOW *resize_window(WINDOW *win, int nlines, int ncols)
432
- {
433
- WINDOW *new;
434
- int i, save_cury, save_curx, new_begy, new_begx;
435
-
436
- PDC_LOG(("resize_window() - called: nlines %d ncols %d\n",
437
- nlines, ncols));
438
-
439
- if (!win)
440
- return (WINDOW *)NULL;
441
-
442
- if (win->_flags & _SUBPAD)
443
- {
444
- if ( !(new = subpad(win->_parent, nlines, ncols,
445
- win->_begy, win->_begx)) )
446
- return (WINDOW *)NULL;
447
- }
448
- else if (win->_flags & _SUBWIN)
449
- {
450
- if ( !(new = subwin(win->_parent, nlines, ncols,
451
- win->_begy, win->_begx)) )
452
- return (WINDOW *)NULL;
453
- }
454
- else
455
- {
456
- if (win == SP->slk_winptr)
457
- {
458
- new_begy = SP->lines - SP->slklines;
459
- new_begx = 0;
460
- }
461
- else
462
- {
463
- new_begy = win->_begy;
464
- new_begx = win->_begx;
465
- }
466
-
467
- if ( !(new = PDC_makenew(nlines, ncols, new_begy, new_begx)) )
468
- return (WINDOW *)NULL;
469
- }
470
-
471
- save_curx = min(win->_curx, (new->_maxx - 1));
472
- save_cury = min(win->_cury, (new->_maxy - 1));
473
-
474
- if (!(win->_flags & (_SUBPAD|_SUBWIN)))
475
- {
476
- if ( !(new = PDC_makelines(new)) )
477
- return (WINDOW *)NULL;
478
-
479
- werase(new);
480
-
481
- copywin(win, new, 0, 0, 0, 0, min(win->_maxy, new->_maxy) - 1,
482
- min(win->_maxx, new->_maxx) - 1, FALSE);
483
-
484
- for (i = 0; i < win->_maxy && win->_y[i]; i++)
485
- if (win->_y[i])
486
- free(win->_y[i]);
487
- }
488
-
489
- new->_flags = win->_flags;
490
- new->_attrs = win->_attrs;
491
- new->_clear = win->_clear;
492
- new->_leaveit = win->_leaveit;
493
- new->_scroll = win->_scroll;
494
- new->_nodelay = win->_nodelay;
495
- new->_delayms = win->_delayms;
496
- new->_use_keypad = win->_use_keypad;
497
- new->_tmarg = (win->_tmarg > new->_maxy - 1) ? 0 : win->_tmarg;
498
- new->_bmarg = (win->_bmarg == win->_maxy - 1) ?
499
- new->_maxy - 1 : min(win->_bmarg, (new->_maxy - 1));
500
- new->_parent = win->_parent;
501
- new->_immed = win->_immed;
502
- new->_sync = win->_sync;
503
- new->_bkgd = win->_bkgd;
504
-
505
- new->_curx = save_curx;
506
- new->_cury = save_cury;
507
-
508
- free(win->_firstch);
509
- free(win->_lastch);
510
- free(win->_y);
511
-
512
- *win = *new;
513
- free(new);
514
-
515
- return win;
516
- }
517
-
518
- int wresize(WINDOW *win, int nlines, int ncols)
519
- {
520
- return (resize_window(win, nlines, ncols) ? OK : ERR);
521
- }
522
-
523
- void wsyncup(WINDOW *win)
524
- {
525
- WINDOW *tmp;
526
-
527
- PDC_LOG(("wsyncup() - called\n"));
528
-
529
- for (tmp = win; tmp; tmp = tmp->_parent)
530
- touchwin(tmp);
531
- }
532
-
533
- int syncok(WINDOW *win, bool bf)
534
- {
535
- PDC_LOG(("syncok() - called\n"));
536
-
537
- if (!win)
538
- return ERR;
539
-
540
- win->_sync = bf;
541
-
542
- return OK;
543
- }
544
-
545
- void wcursyncup(WINDOW *win)
546
- {
547
- WINDOW *tmp;
548
-
549
- PDC_LOG(("wcursyncup() - called\n"));
550
-
551
- for (tmp = win; tmp && tmp->_parent; tmp = tmp->_parent)
552
- wmove(tmp->_parent, tmp->_pary + tmp->_cury, tmp->_parx + tmp->_curx);
553
- }
554
-
555
- void wsyncdown(WINDOW *win)
556
- {
557
- WINDOW *tmp;
558
-
559
- PDC_LOG(("wsyncdown() - called\n"));
560
-
561
- for (tmp = win; tmp; tmp = tmp->_parent)
562
- {
563
- if (is_wintouched(tmp))
564
- {
565
- touchwin(win);
566
- break;
567
- }
568
- }
569
- }
@@ -1,129 +0,0 @@
1
- # Makefile for PDCurses library for SDL
2
- #
3
- # Usage: [g]make [DEBUG=Y] [WIDE=Y] [UTF8=Y] [target]
4
- #
5
- # where target can be any of:
6
- # [all|demos|libpdcurses.a|testcurs]...
7
-
8
- O = o
9
- RM = rm
10
-
11
- ifndef PDCURSES_SRCDIR
12
- PDCURSES_SRCDIR = ..
13
- endif
14
-
15
- include $(PDCURSES_SRCDIR)/libobjs.mif
16
-
17
- osdir = $(PDCURSES_SRCDIR)/sdl1
18
-
19
- PDCURSES_SDL_H = $(osdir)/pdcsdl.h
20
-
21
- SFLAGS = $(shell sdl-config --cflags)
22
- SLIBS = $(shell sdl-config --libs)
23
-
24
- # If your system doesn't have these, remove the defines here
25
- SFLAGS += -DHAVE_VSNPRINTF -DHAVE_VSSCANF
26
-
27
- ifeq ($(DEBUG),Y)
28
- CFLAGS = -g -Wall -DPDCDEBUG -fPIC
29
- else
30
- CFLAGS = -O2 -Wall -fPIC
31
- endif
32
-
33
- ifeq ($(WIDE),Y)
34
- CFLAGS += -DPDC_WIDE
35
- SLIBS += -lSDL_ttf
36
- endif
37
-
38
- ifeq ($(UTF8),Y)
39
- CFLAGS += -DPDC_FORCE_UTF8
40
- endif
41
-
42
- ifdef CHTYPE_32
43
- CFLAGS += -DCHTYPE_32
44
- endif
45
-
46
- ifdef CHTYPE_16
47
- CFLAGS += -DCHTYPE_16
48
- endif
49
-
50
- BUILD = $(CC) $(CFLAGS) -I$(PDCURSES_SRCDIR)
51
-
52
- ifeq ($(shell uname),Darwin)
53
- DEMOFLAGS = -Dmain=SDL_main
54
- endif
55
-
56
- LINK = $(CC)
57
- LDFLAGS = $(LIBCURSES) $(SLIBS)
58
- RANLIB = ranlib
59
- LIBCURSES = libpdcurses.a
60
-
61
- DEMOS = firework ozdemo newtest ptest rain testcurs tuidemo worm xmas \
62
- sdltest
63
-
64
- .PHONY: all libs clean demos
65
-
66
- all: libs
67
-
68
- libs: $(LIBCURSES)
69
-
70
- clean:
71
- -$(RM) -rf *.o trace $(LIBCURSES) $(DEMOS)
72
-
73
- demos: $(DEMOS)
74
- ifneq ($(DEBUG),Y)
75
- strip $(DEMOS)
76
- endif
77
-
78
- $(LIBCURSES) : $(LIBOBJS) $(PDCOBJS)
79
- ar rv $@ $?
80
- -$(RANLIB) $@
81
-
82
- $(LIBOBJS) $(PDCOBJS) : $(PDCURSES_HEADERS)
83
- $(PDCOBJS) : $(PDCURSES_SDL_H)
84
- $(DEMOS) : $(PDCURSES_CURSES_H) $(LIBCURSES)
85
- tui.o tuidemo.o : $(PDCURSES_CURSES_H)
86
- terminfo.o: $(TERM_HEADER)
87
- panel.o ptest: $(PANEL_HEADER)
88
-
89
- $(LIBOBJS) : %.o: $(srcdir)/%.c
90
- $(BUILD) $(SFLAGS) -c $<
91
-
92
- $(PDCOBJS) : %.o: $(osdir)/%.c
93
- $(BUILD) $(SFLAGS) -c $<
94
-
95
- firework: $(demodir)/firework.c
96
- $(BUILD) $(DEMOFLAGS) -o $@ $< $(LDFLAGS)
97
-
98
- ozdemo: $(demodir)/ozdemo.c
99
- $(BUILD) $(DEMOFLAGS) -o $@ $< $(LDFLAGS)
100
-
101
- newtest: $(demodir)/newtest.c
102
- $(BUILD) $(DEMOFLAGS) -o $@ $< $(LDFLAGS)
103
-
104
- ptest: $(demodir)/ptest.c
105
- $(BUILD) $(DEMOFLAGS) -o $@ $< $(LDFLAGS)
106
-
107
- rain: $(demodir)/rain.c
108
- $(BUILD) $(DEMOFLAGS) -o $@ $< $(LDFLAGS)
109
-
110
- testcurs: $(demodir)/testcurs.c
111
- $(BUILD) $(DEMOFLAGS) -o $@ $< $(LDFLAGS)
112
-
113
- tuidemo: tuidemo.o tui.o
114
- $(LINK) tui.o tuidemo.o -o $@ $(LDFLAGS)
115
-
116
- worm: $(demodir)/worm.c
117
- $(BUILD) $(DEMOFLAGS) -o $@ $< $(LDFLAGS)
118
-
119
- xmas: $(demodir)/xmas.c
120
- $(BUILD) $(DEMOFLAGS) -o $@ $< $(LDFLAGS)
121
-
122
- sdltest: $(osdir)/sdltest.c
123
- $(BUILD) $(DEMOFLAGS) $(SFLAGS) -o $@ $< $(LDFLAGS)
124
-
125
- tui.o: $(demodir)/tui.c $(demodir)/tui.h
126
- $(BUILD) -c $(DEMOFLAGS) $(demodir)/tui.c
127
-
128
- tuidemo.o: $(demodir)/tuidemo.c
129
- $(BUILD) -c $(DEMOFLAGS) $(demodir)/tuidemo.c