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,126 +0,0 @@
1
- /* Public Domain Curses */
2
-
3
- #include <curspriv.h>
4
-
5
- /*man-start**************************************************************
6
-
7
- printw
8
- ------
9
-
10
- ### Synopsis
11
-
12
- int printw(const char *fmt, ...);
13
- int wprintw(WINDOW *win, const char *fmt, ...);
14
- int mvprintw(int y, int x, const char *fmt, ...);
15
- int mvwprintw(WINDOW *win, int y, int x, const char *fmt,...);
16
- int vwprintw(WINDOW *win, const char *fmt, va_list varglist);
17
- int vw_printw(WINDOW *win, const char *fmt, va_list varglist);
18
-
19
- ### Description
20
-
21
- The printw() functions add a formatted string to the window at
22
- the current or specified cursor position. The format strings are
23
- the same as used in the standard C library's printf(). (printw()
24
- can be used as a drop-in replacement for printf().)
25
-
26
- ### Return Value
27
-
28
- All functions return the number of characters printed, or
29
- ERR on error.
30
-
31
- ### Portability
32
- X/Open BSD SYS V
33
- printw Y Y Y
34
- wprintw Y Y Y
35
- mvprintw Y Y Y
36
- mvwprintw Y Y Y
37
- vwprintw Y - 4.0
38
- vw_printw Y
39
-
40
- **man-end****************************************************************/
41
-
42
- #include <string.h>
43
-
44
- int vwprintw(WINDOW *win, const char *fmt, va_list varglist)
45
- {
46
- char printbuf[513];
47
- int len;
48
-
49
- PDC_LOG(("vwprintw() - called\n"));
50
-
51
- #ifdef HAVE_VSNPRINTF
52
- len = vsnprintf(printbuf, 512, fmt, varglist);
53
- #else
54
- len = vsprintf(printbuf, fmt, varglist);
55
- #endif
56
- return (waddstr(win, printbuf) == ERR) ? ERR : len;
57
- }
58
-
59
- int printw(const char *fmt, ...)
60
- {
61
- va_list args;
62
- int retval;
63
-
64
- PDC_LOG(("printw() - called\n"));
65
-
66
- va_start(args, fmt);
67
- retval = vwprintw(stdscr, fmt, args);
68
- va_end(args);
69
-
70
- return retval;
71
- }
72
-
73
- int wprintw(WINDOW *win, const char *fmt, ...)
74
- {
75
- va_list args;
76
- int retval;
77
-
78
- PDC_LOG(("wprintw() - called\n"));
79
-
80
- va_start(args, fmt);
81
- retval = vwprintw(win, fmt, args);
82
- va_end(args);
83
-
84
- return retval;
85
- }
86
-
87
- int mvprintw(int y, int x, const char *fmt, ...)
88
- {
89
- va_list args;
90
- int retval;
91
-
92
- PDC_LOG(("mvprintw() - called\n"));
93
-
94
- if (move(y, x) == ERR)
95
- return ERR;
96
-
97
- va_start(args, fmt);
98
- retval = vwprintw(stdscr, fmt, args);
99
- va_end(args);
100
-
101
- return retval;
102
- }
103
-
104
- int mvwprintw(WINDOW *win, int y, int x, const char *fmt, ...)
105
- {
106
- va_list args;
107
- int retval;
108
-
109
- PDC_LOG(("mvwprintw() - called\n"));
110
-
111
- if (wmove(win, y, x) == ERR)
112
- return ERR;
113
-
114
- va_start(args, fmt);
115
- retval = vwprintw(win, fmt, args);
116
- va_end(args);
117
-
118
- return retval;
119
- }
120
-
121
- int vw_printw(WINDOW *win, const char *fmt, va_list varglist)
122
- {
123
- PDC_LOG(("vw_printw() - called\n"));
124
-
125
- return vwprintw(win, fmt, varglist);
126
- }
@@ -1,279 +0,0 @@
1
- /* Public Domain Curses */
2
-
3
- #include <curspriv.h>
4
-
5
- /*man-start**************************************************************
6
-
7
- refresh
8
- -------
9
-
10
- ### Synopsis
11
-
12
- int refresh(void);
13
- int wrefresh(WINDOW *win);
14
- int wnoutrefresh(WINDOW *win);
15
- int doupdate(void);
16
- int redrawwin(WINDOW *win);
17
- int wredrawln(WINDOW *win, int beg_line, int num_lines);
18
-
19
- ### Description
20
-
21
- wrefresh() copies the named window to the physical terminal
22
- screen, taking into account what is already there in order to
23
- optimize cursor movement. refresh() does the same, using stdscr.
24
- These routines must be called to get any output on the terminal,
25
- as other routines only manipulate data structures. Unless
26
- leaveok() has been enabled, the physical cursor of the terminal
27
- is left at the location of the window's cursor.
28
-
29
- wnoutrefresh() and doupdate() allow multiple updates with more
30
- efficiency than wrefresh() alone. wrefresh() works by first
31
- calling wnoutrefresh(), which copies the named window to the
32
- virtual screen. It then calls doupdate(), which compares the
33
- virtual screen to the physical screen and does the actual
34
- update. A series of calls to wrefresh() will result in
35
- alternating calls to wnoutrefresh() and doupdate(), causing
36
- several bursts of output to the screen. By first calling
37
- wnoutrefresh() for each window, it is then possible to call
38
- doupdate() only once.
39
-
40
- In PDCurses, redrawwin() is equivalent to touchwin(), and
41
- wredrawln() is the same as touchline(). In some other curses
42
- implementations, there's a subtle distinction, but it has no
43
- meaning in PDCurses.
44
-
45
- ### Return Value
46
-
47
- All functions return OK on success and ERR on error.
48
-
49
- ### Portability
50
- X/Open BSD SYS V
51
- refresh Y Y Y
52
- wrefresh Y Y Y
53
- wnoutrefresh Y Y Y
54
- doupdate Y Y Y
55
- redrawwin Y - 4.0
56
- wredrawln Y - 4.0
57
-
58
- **man-end****************************************************************/
59
-
60
- #include <string.h>
61
-
62
- int wnoutrefresh(WINDOW *win)
63
- {
64
- int begy, begx; /* window's place on screen */
65
- int i, j;
66
-
67
- PDC_LOG(("wnoutrefresh() - called: win=%p\n", win));
68
-
69
- if ( !win || (win->_flags & (_PAD|_SUBPAD)) )
70
- return ERR;
71
-
72
- begy = win->_begy;
73
- begx = win->_begx;
74
-
75
- for (i = 0, j = begy; i < win->_maxy; i++, j++)
76
- {
77
- if (win->_firstch[i] != _NO_CHANGE)
78
- {
79
- chtype *src = win->_y[i];
80
- chtype *dest = curscr->_y[j] + begx;
81
-
82
- int first = win->_firstch[i]; /* first changed */
83
- int last = win->_lastch[i]; /* last changed */
84
-
85
- /* ignore areas on the outside that are marked as changed,
86
- but really aren't */
87
-
88
- while (first <= last && src[first] == dest[first])
89
- first++;
90
-
91
- while (last >= first && src[last] == dest[last])
92
- last--;
93
-
94
- /* if any have really changed... */
95
-
96
- if (first <= last)
97
- {
98
- memcpy(dest + first, src + first,
99
- (last - first + 1) * sizeof(chtype));
100
-
101
- first += begx;
102
- last += begx;
103
-
104
- if (first < curscr->_firstch[j] ||
105
- curscr->_firstch[j] == _NO_CHANGE)
106
- curscr->_firstch[j] = first;
107
-
108
- if (last > curscr->_lastch[j])
109
- curscr->_lastch[j] = last;
110
- }
111
-
112
- win->_firstch[i] = _NO_CHANGE; /* updated now */
113
- }
114
-
115
- win->_lastch[i] = _NO_CHANGE; /* updated now */
116
- }
117
-
118
- if (win->_clear)
119
- win->_clear = FALSE;
120
-
121
- if (!win->_leaveit)
122
- {
123
- curscr->_cury = win->_cury + begy;
124
- curscr->_curx = win->_curx + begx;
125
- }
126
-
127
- return OK;
128
- }
129
-
130
- int doupdate(void)
131
- {
132
- int y;
133
- bool clearall;
134
-
135
- PDC_LOG(("doupdate() - called\n"));
136
-
137
- if (!curscr)
138
- return ERR;
139
-
140
- if (isendwin()) /* coming back after endwin() called */
141
- {
142
- reset_prog_mode();
143
- clearall = TRUE;
144
- SP->alive = TRUE; /* so isendwin() result is correct */
145
- }
146
- else
147
- clearall = curscr->_clear;
148
-
149
- for (y = 0; y < SP->lines; y++)
150
- {
151
- PDC_LOG(("doupdate() - Transforming line %d of %d: %s\n",
152
- y, SP->lines, (curscr->_firstch[y] != _NO_CHANGE) ?
153
- "Yes" : "No"));
154
-
155
- if (clearall || curscr->_firstch[y] != _NO_CHANGE)
156
- {
157
- int first, last;
158
-
159
- chtype *src = curscr->_y[y];
160
- chtype *dest = pdc_lastscr->_y[y];
161
-
162
- if (clearall)
163
- {
164
- first = 0;
165
- last = COLS - 1;
166
- }
167
- else
168
- {
169
- first = curscr->_firstch[y];
170
- last = curscr->_lastch[y];
171
- }
172
-
173
- while (first <= last)
174
- {
175
- int len = 0;
176
-
177
- /* build up a run of changed cells; if two runs are
178
- separated by a single unchanged cell, ignore the
179
- break */
180
-
181
- if (clearall)
182
- len = last - first + 1;
183
- else
184
- while (first + len <= last &&
185
- (src[first + len] != dest[first + len] ||
186
- (len && first + len < last &&
187
- src[first + len + 1] != dest[first + len + 1])
188
- )
189
- )
190
- len++;
191
-
192
- /* update the screen, and pdc_lastscr */
193
-
194
- if (len)
195
- {
196
- PDC_transform_line(y, first, len, src + first);
197
- memcpy(dest + first, src + first, len * sizeof(chtype));
198
- first += len;
199
- }
200
-
201
- /* skip over runs of unchanged cells */
202
-
203
- while (first <= last && src[first] == dest[first])
204
- first++;
205
- }
206
-
207
- curscr->_firstch[y] = _NO_CHANGE;
208
- curscr->_lastch[y] = _NO_CHANGE;
209
- }
210
- }
211
-
212
- curscr->_clear = FALSE;
213
-
214
- if (SP->visibility)
215
- PDC_gotoyx(curscr->_cury, curscr->_curx);
216
-
217
- SP->cursrow = curscr->_cury;
218
- SP->curscol = curscr->_curx;
219
-
220
- return OK;
221
- }
222
-
223
- int wrefresh(WINDOW *win)
224
- {
225
- bool save_clear;
226
-
227
- PDC_LOG(("wrefresh() - called\n"));
228
-
229
- if ( !win || (win->_flags & (_PAD|_SUBPAD)) )
230
- return ERR;
231
-
232
- save_clear = win->_clear;
233
-
234
- if (win == curscr)
235
- curscr->_clear = TRUE;
236
- else
237
- wnoutrefresh(win);
238
-
239
- if (save_clear && win->_maxy == SP->lines && win->_maxx == SP->cols)
240
- curscr->_clear = TRUE;
241
-
242
- return doupdate();
243
- }
244
-
245
- int refresh(void)
246
- {
247
- PDC_LOG(("refresh() - called\n"));
248
-
249
- return wrefresh(stdscr);
250
- }
251
-
252
- int wredrawln(WINDOW *win, int start, int num)
253
- {
254
- int i;
255
-
256
- PDC_LOG(("wredrawln() - called: win=%p start=%d num=%d\n",
257
- win, start, num));
258
-
259
- if (!win || start > win->_maxy || start + num > win->_maxy)
260
- return ERR;
261
-
262
- for (i = start; i < start + num; i++)
263
- {
264
- win->_firstch[i] = 0;
265
- win->_lastch[i] = win->_maxx - 1;
266
- }
267
-
268
- return OK;
269
- }
270
-
271
- int redrawwin(WINDOW *win)
272
- {
273
- PDC_LOG(("redrawwin() - called: win=%p\n", win));
274
-
275
- if (!win)
276
- return ERR;
277
-
278
- return wredrawln(win, 0, win->_maxy);
279
- }