curses 1.6.0 → 1.7.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 (935) hide show
  1. checksums.yaml +4 -4
  2. data/.devcontainer/Dockerfile +132 -0
  3. data/.devcontainer/devcontainer.json +58 -0
  4. data/.devcontainer/init-firewall.sh +139 -0
  5. data/.github/workflows/gh-pages.yml +4 -4
  6. data/.github/workflows/macos.yml +5 -2
  7. data/.github/workflows/push_gem.yml +7 -2
  8. data/.github/workflows/ubuntu.yml +5 -2
  9. data/.github/workflows/windows.yml +5 -2
  10. data/.gitmodules +3 -3
  11. data/README.md +2 -2
  12. data/curses.gemspec +1 -1
  13. data/ext/curses/extconf.rb +5 -2
  14. data/lib/curses.rb +1 -1
  15. data/vendor/PDCursesMod/.github/workflows/github_actions_build.yml +42 -0
  16. data/vendor/PDCursesMod/.gitignore +47 -0
  17. data/vendor/PDCursesMod/.travis.yml +308 -0
  18. data/vendor/PDCursesMod/CMakeLists.txt +77 -0
  19. data/vendor/PDCursesMod/README.md +60 -0
  20. data/vendor/PDCursesMod/appveyor.yml +300 -0
  21. data/vendor/PDCursesMod/cmake/README.md +71 -0
  22. data/vendor/PDCursesMod/cmake/build_dependencies.cmake +186 -0
  23. data/vendor/PDCursesMod/cmake/build_options.cmake +29 -0
  24. data/vendor/PDCursesMod/cmake/dll_version.cmake +24 -0
  25. data/vendor/PDCursesMod/cmake/gen_config_header.cmake +40 -0
  26. data/vendor/PDCursesMod/cmake/get_version.cmake +17 -0
  27. data/vendor/PDCursesMod/cmake/project_common.cmake +131 -0
  28. data/vendor/PDCursesMod/cmake/sdl2_ttf/CMakeLists.txt +95 -0
  29. data/vendor/PDCursesMod/cmake/version.in.cmake +61 -0
  30. data/vendor/PDCursesMod/cmake/watcom_open_dos16_toolchain.cmake +90 -0
  31. data/vendor/PDCursesMod/cmake/watcom_open_dos32_toolchain.cmake +89 -0
  32. data/vendor/PDCursesMod/cmake/watcom_open_os2v2_toolchain.cmake +88 -0
  33. data/vendor/PDCursesMod/cmake/watcom_open_win32_toolchain.cmake +12 -0
  34. data/vendor/PDCursesMod/common/acs_defs.h +288 -0
  35. data/vendor/PDCursesMod/common/approx.c +163 -0
  36. data/vendor/PDCursesMod/common/beep.c +70 -0
  37. data/vendor/PDCursesMod/common/blink.c +90 -0
  38. data/vendor/PDCursesMod/common/config_curses.c +134 -0
  39. data/vendor/PDCursesMod/common/dos_key.h +59 -0
  40. data/vendor/PDCursesMod/common/dosutil.c +136 -0
  41. data/vendor/PDCursesMod/common/font437.h +386 -0
  42. data/vendor/PDCursesMod/common/icon32.xpm +42 -0
  43. data/vendor/PDCursesMod/common/icon64.xpm +74 -0
  44. data/vendor/PDCursesMod/common/iconbmp.h +24 -0
  45. data/vendor/PDCursesMod/common/libobjs.mif +32 -0
  46. data/vendor/PDCursesMod/common/mouse.c +293 -0
  47. data/vendor/PDCursesMod/common/pdcclip.c +135 -0
  48. data/vendor/PDCursesMod/common/pdccolor.c +223 -0
  49. data/vendor/PDCursesMod/common/pdccolor.h +17 -0
  50. data/vendor/PDCursesMod/common/pdccolor.txt +81 -0
  51. data/vendor/PDCursesMod/common/pdcurses.rc +35 -0
  52. data/vendor/PDCursesMod/common/psf.c +250 -0
  53. data/vendor/PDCursesMod/common/psf.h +13 -0
  54. data/vendor/PDCursesMod/common/psf_wide.h +584 -0
  55. data/vendor/PDCursesMod/common/watcom.mif +224 -0
  56. data/vendor/PDCursesMod/common/winclip.c +151 -0
  57. data/vendor/PDCursesMod/common/xlates.h +142 -0
  58. data/vendor/PDCursesMod/curses.h +1972 -0
  59. data/vendor/PDCursesMod/curspriv.h +295 -0
  60. data/vendor/PDCursesMod/demos/UTF-8-demo.txt +225 -0
  61. data/vendor/PDCursesMod/demos/calendar.c +278 -0
  62. data/vendor/PDCursesMod/demos/curses.priv.h +37 -0
  63. data/vendor/PDCursesMod/demos/dates.txt +2576 -0
  64. data/vendor/PDCursesMod/demos/firework.c +149 -0
  65. data/vendor/PDCursesMod/demos/init_col.c +152 -0
  66. data/vendor/PDCursesMod/demos/mbrot.c +366 -0
  67. data/vendor/PDCursesMod/demos/nctests.mif +299 -0
  68. data/vendor/PDCursesMod/demos/ncurses_cfg.h +100 -0
  69. data/vendor/PDCursesMod/demos/newtest.c +608 -0
  70. data/vendor/PDCursesMod/demos/ozdemo.c +444 -0
  71. data/vendor/PDCursesMod/demos/picsview.c +516 -0
  72. data/vendor/PDCursesMod/demos/ptest.c +315 -0
  73. data/vendor/PDCursesMod/demos/rain.c +161 -0
  74. data/vendor/PDCursesMod/demos/snprintf.c +30 -0
  75. data/vendor/PDCursesMod/demos/speed.c +124 -0
  76. data/vendor/PDCursesMod/demos/test_pan.c +372 -0
  77. data/vendor/PDCursesMod/demos/testcurs.c +1978 -0
  78. data/vendor/PDCursesMod/demos/tui.c +816 -0
  79. data/vendor/PDCursesMod/demos/tui.h +65 -0
  80. data/vendor/PDCursesMod/demos/tuidemo.c +231 -0
  81. data/vendor/PDCursesMod/demos/version.c +66 -0
  82. data/vendor/PDCursesMod/demos/widetest.c +130 -0
  83. data/vendor/PDCursesMod/demos/worm.c +450 -0
  84. data/vendor/PDCursesMod/demos/xmas.c +955 -0
  85. data/vendor/PDCursesMod/docs/HISTORY.md +3850 -0
  86. data/vendor/PDCursesMod/docs/IMPLEMNT.md +321 -0
  87. data/vendor/PDCursesMod/docs/MANUAL.md +3304 -0
  88. data/vendor/PDCursesMod/docs/README.md +51 -0
  89. data/vendor/PDCursesMod/docs/USERS.md +451 -0
  90. data/vendor/PDCursesMod/docs/manext.awk +15 -0
  91. data/vendor/PDCursesMod/docs/mkman.sh +7 -0
  92. data/vendor/PDCursesMod/dos/CMakeLists.txt +54 -0
  93. data/vendor/PDCursesMod/dos/Makefile +85 -0
  94. data/vendor/PDCursesMod/dos/Makefile.bcc +81 -0
  95. data/vendor/PDCursesMod/dos/Makefile.dmc +315 -0
  96. data/vendor/PDCursesMod/dos/Makefile.wcc +44 -0
  97. data/vendor/PDCursesMod/dos/README.md +49 -0
  98. data/vendor/PDCursesMod/dos/pdcclip.c +1 -0
  99. data/vendor/PDCursesMod/dos/pdcdisp.c +164 -0
  100. data/vendor/PDCursesMod/dos/pdcdos.h +173 -0
  101. data/vendor/PDCursesMod/dos/pdcgetsc.c +81 -0
  102. data/vendor/PDCursesMod/dos/pdckbd.c +428 -0
  103. data/vendor/PDCursesMod/dos/pdcscrn.c +707 -0
  104. data/vendor/PDCursesMod/dos/pdcsetsc.c +120 -0
  105. data/vendor/PDCursesMod/dos/pdcutil.c +11 -0
  106. data/vendor/PDCursesMod/dosvga/CMakeLists.txt +54 -0
  107. data/vendor/PDCursesMod/dosvga/Makefile +109 -0
  108. data/vendor/PDCursesMod/dosvga/Makefile.bcc +82 -0
  109. data/vendor/PDCursesMod/dosvga/Makefile.dmc +318 -0
  110. data/vendor/PDCursesMod/dosvga/Makefile.wcc +40 -0
  111. data/vendor/PDCursesMod/dosvga/README.md +58 -0
  112. data/vendor/PDCursesMod/dosvga/cp437.h +184 -0
  113. data/vendor/PDCursesMod/dosvga/font.h +454 -0
  114. data/vendor/PDCursesMod/dosvga/hexize.c +45 -0
  115. data/vendor/PDCursesMod/dosvga/mk_font.c +35 -0
  116. data/vendor/PDCursesMod/dosvga/pdcclip.c +1 -0
  117. data/vendor/PDCursesMod/dosvga/pdcdisp.c +684 -0
  118. data/vendor/PDCursesMod/dosvga/pdcdos.h +201 -0
  119. data/vendor/PDCursesMod/dosvga/pdcgetsc.c +47 -0
  120. data/vendor/PDCursesMod/dosvga/pdckbd.c +484 -0
  121. data/vendor/PDCursesMod/dosvga/pdcscrn.c +1693 -0
  122. data/vendor/PDCursesMod/dosvga/pdcsetsc.c +79 -0
  123. data/vendor/PDCursesMod/dosvga/pdcutil.c +13 -0
  124. data/vendor/PDCursesMod/dosvga/pdcvesa.h +88 -0
  125. data/vendor/PDCursesMod/fb/Makefile +150 -0
  126. data/vendor/PDCursesMod/fb/README.md +52 -0
  127. data/vendor/PDCursesMod/fb/cursor.c +111 -0
  128. data/vendor/PDCursesMod/fb/drm.c +264 -0
  129. data/vendor/PDCursesMod/fb/pdcclip.c +1 -0
  130. data/vendor/PDCursesMod/fb/pdcdisp.c +521 -0
  131. data/vendor/PDCursesMod/fb/pdcfb.h +11 -0
  132. data/vendor/PDCursesMod/fb/pdcgetsc.c +1 -0
  133. data/vendor/PDCursesMod/fb/pdckbd.c +114 -0
  134. data/vendor/PDCursesMod/fb/pdcmouse.c +185 -0
  135. data/vendor/PDCursesMod/fb/pdcscrn.c +539 -0
  136. data/vendor/PDCursesMod/fb/pdcsetsc.c +3 -0
  137. data/vendor/PDCursesMod/fb/pdcutil.c +5 -0
  138. data/vendor/PDCursesMod/gl/CMakeLists.txt +66 -0
  139. data/vendor/PDCursesMod/gl/Makefile +188 -0
  140. data/vendor/PDCursesMod/gl/Makefile.vc +129 -0
  141. data/vendor/PDCursesMod/gl/README.md +134 -0
  142. data/vendor/PDCursesMod/gl/glfuncs.h +159 -0
  143. data/vendor/PDCursesMod/gl/pdcclip.c +93 -0
  144. data/vendor/PDCursesMod/gl/pdcdisp.c +867 -0
  145. data/vendor/PDCursesMod/gl/pdcgetsc.c +30 -0
  146. data/vendor/PDCursesMod/gl/pdcgl.h +51 -0
  147. data/vendor/PDCursesMod/gl/pdckbd.c +548 -0
  148. data/vendor/PDCursesMod/gl/pdcscrn.c +700 -0
  149. data/vendor/PDCursesMod/gl/pdcsetsc.c +99 -0
  150. data/vendor/PDCursesMod/gl/pdcutil.c +35 -0
  151. data/vendor/PDCursesMod/ncurses/CMakeLists.txt +76 -0
  152. data/vendor/PDCursesMod/ncurses/Makefile +38 -0
  153. data/vendor/PDCursesMod/os2/Makefile +150 -0
  154. data/vendor/PDCursesMod/os2/Makefile.bcc +85 -0
  155. data/vendor/PDCursesMod/os2/Makefile.wcc +26 -0
  156. data/vendor/PDCursesMod/os2/iccos2.lrf +49 -0
  157. data/vendor/PDCursesMod/os2/iccos2.mak +260 -0
  158. data/vendor/PDCursesMod/os2/pdcclip.c +172 -0
  159. data/vendor/PDCursesMod/os2/pdcdisp.c +130 -0
  160. data/vendor/PDCursesMod/os2/pdcgetsc.c +52 -0
  161. data/vendor/PDCursesMod/os2/pdckbd.c +435 -0
  162. data/vendor/PDCursesMod/os2/pdcos2.h +21 -0
  163. data/vendor/PDCursesMod/os2/pdcscrn.c +231 -0
  164. data/vendor/PDCursesMod/os2/pdcsetsc.c +110 -0
  165. data/vendor/PDCursesMod/os2/pdcutil.c +51 -0
  166. data/vendor/PDCursesMod/os2gui/.gitignore +1 -0
  167. data/vendor/PDCursesMod/os2gui/CMakeLists.txt +30 -0
  168. data/vendor/PDCursesMod/os2gui/Makefile +139 -0
  169. data/vendor/PDCursesMod/os2gui/Makefile.wcc +32 -0
  170. data/vendor/PDCursesMod/os2gui/README.md +69 -0
  171. data/vendor/PDCursesMod/os2gui/pdcclip.c +165 -0
  172. data/vendor/PDCursesMod/os2gui/pdcdisp.c +2021 -0
  173. data/vendor/PDCursesMod/os2gui/pdcgetsc.c +26 -0
  174. data/vendor/PDCursesMod/os2gui/pdckbd.c +79 -0
  175. data/vendor/PDCursesMod/os2gui/pdcscrn.c +2433 -0
  176. data/vendor/PDCursesMod/os2gui/pdcsetsc.c +115 -0
  177. data/vendor/PDCursesMod/os2gui/pdcutil.c +42 -0
  178. data/vendor/PDCursesMod/os2gui/pdcwin.h +106 -0
  179. data/vendor/PDCursesMod/os2gui/table.py +112 -0
  180. data/vendor/PDCursesMod/os2gui/unitable.h +3933 -0
  181. data/vendor/PDCursesMod/panel.h +41 -0
  182. data/vendor/PDCursesMod/pdcurses/addch.c +838 -0
  183. data/vendor/PDCursesMod/pdcurses/addchstr.c +232 -0
  184. data/vendor/PDCursesMod/pdcurses/addstr.c +245 -0
  185. data/vendor/PDCursesMod/pdcurses/attr.c +430 -0
  186. data/vendor/PDCursesMod/pdcurses/beep.c +78 -0
  187. data/vendor/PDCursesMod/pdcurses/bkgd.c +233 -0
  188. data/vendor/PDCursesMod/pdcurses/border.c +413 -0
  189. data/vendor/PDCursesMod/pdcurses/clear.c +161 -0
  190. data/vendor/PDCursesMod/pdcurses/color.c +761 -0
  191. data/vendor/PDCursesMod/pdcurses/debug.c +157 -0
  192. data/vendor/PDCursesMod/pdcurses/delch.c +96 -0
  193. data/vendor/PDCursesMod/pdcurses/deleteln.c +149 -0
  194. data/vendor/PDCursesMod/pdcurses/getch.c +871 -0
  195. data/vendor/PDCursesMod/pdcurses/getstr.c +487 -0
  196. data/vendor/PDCursesMod/pdcurses/getyx.c +152 -0
  197. data/vendor/PDCursesMod/pdcurses/inch.c +133 -0
  198. data/vendor/PDCursesMod/pdcurses/inchstr.c +217 -0
  199. data/vendor/PDCursesMod/pdcurses/initscr.c +524 -0
  200. data/vendor/PDCursesMod/pdcurses/inopts.c +490 -0
  201. data/vendor/PDCursesMod/pdcurses/insch.c +273 -0
  202. data/vendor/PDCursesMod/pdcurses/insstr.c +268 -0
  203. data/vendor/PDCursesMod/pdcurses/instr.c +253 -0
  204. data/vendor/PDCursesMod/pdcurses/kernel.c +338 -0
  205. data/vendor/PDCursesMod/pdcurses/keyname.c +149 -0
  206. data/vendor/PDCursesMod/pdcurses/mouse.c +469 -0
  207. data/vendor/PDCursesMod/pdcurses/move.c +84 -0
  208. data/vendor/PDCursesMod/pdcurses/outopts.c +283 -0
  209. data/vendor/PDCursesMod/pdcurses/overlay.c +204 -0
  210. data/vendor/PDCursesMod/pdcurses/pad.c +303 -0
  211. data/vendor/PDCursesMod/pdcurses/pairs.txt +94 -0
  212. data/vendor/PDCursesMod/pdcurses/panel.c +551 -0
  213. data/vendor/PDCursesMod/pdcurses/printw.c +180 -0
  214. data/vendor/PDCursesMod/pdcurses/refresh.c +372 -0
  215. data/vendor/PDCursesMod/pdcurses/scanw.c +582 -0
  216. data/vendor/PDCursesMod/pdcurses/scr_dump.c +311 -0
  217. data/vendor/PDCursesMod/pdcurses/scroll.c +115 -0
  218. data/vendor/PDCursesMod/pdcurses/slk.c +660 -0
  219. data/vendor/PDCursesMod/pdcurses/termattr.c +177 -0
  220. data/vendor/PDCursesMod/pdcurses/terminfo.c +243 -0
  221. data/vendor/PDCursesMod/pdcurses/touch.c +255 -0
  222. data/vendor/PDCursesMod/pdcurses/util.c +502 -0
  223. data/vendor/PDCursesMod/pdcurses/window.c +708 -0
  224. data/vendor/PDCursesMod/plan9/README.md +57 -0
  225. data/vendor/PDCursesMod/plan9/header.patch +11 -0
  226. data/vendor/PDCursesMod/plan9/mkfile +103 -0
  227. data/vendor/PDCursesMod/plan9/mkfile_demo +42 -0
  228. data/vendor/PDCursesMod/plan9/pdcclip.c +1 -0
  229. data/vendor/PDCursesMod/plan9/pdcdisp.c +62 -0
  230. data/vendor/PDCursesMod/plan9/pdcgetsc.c +28 -0
  231. data/vendor/PDCursesMod/plan9/pdckbd.c +53 -0
  232. data/vendor/PDCursesMod/plan9/pdcplan9.h +10 -0
  233. data/vendor/PDCursesMod/plan9/pdcscrn.c +103 -0
  234. data/vendor/PDCursesMod/plan9/pdcsetsc.c +51 -0
  235. data/vendor/PDCursesMod/plan9/pdcutil.c +370 -0
  236. data/vendor/PDCursesMod/psffonts/10x20.psf +0 -0
  237. data/vendor/PDCursesMod/psffonts/18x18.psf +0 -0
  238. data/vendor/PDCursesMod/psffonts/4x6.psf +0 -0
  239. data/vendor/PDCursesMod/psffonts/6x12.psf +0 -0
  240. data/vendor/PDCursesMod/psffonts/8x13.psf +0 -0
  241. data/vendor/PDCursesMod/psffonts/9x15.psf +0 -0
  242. data/vendor/PDCursesMod/psffonts/9x18.psf +0 -0
  243. data/vendor/PDCursesMod/psffonts/README +38 -0
  244. data/vendor/PDCursesMod/psffonts/README.md +14 -0
  245. data/vendor/PDCursesMod/psffonts/bmp2psf2.c +130 -0
  246. data/vendor/PDCursesMod/psffonts/cour11x17.psf +0 -0
  247. data/vendor/PDCursesMod/psffonts/cour20x29.psf +0 -0
  248. data/vendor/PDCursesMod/psffonts/default.psf +0 -0
  249. data/vendor/PDCursesMod/psffonts/dosemu.psf +0 -0
  250. data/vendor/PDCursesMod/psffonts/fntcol16/2_hebrew-14.psf +0 -0
  251. data/vendor/PDCursesMod/psffonts/fntcol16/README +285 -0
  252. data/vendor/PDCursesMod/psffonts/fntcol16/antique-14.psf +0 -0
  253. data/vendor/PDCursesMod/psffonts/fntcol16/apeaus-08.psf +0 -0
  254. data/vendor/PDCursesMod/psffonts/fntcol16/apeaus-14.psf +0 -0
  255. data/vendor/PDCursesMod/psffonts/fntcol16/apeaus-16.psf +0 -0
  256. data/vendor/PDCursesMod/psffonts/fntcol16/apls-08.psf +0 -0
  257. data/vendor/PDCursesMod/psffonts/fntcol16/arabdrft-14.psf +0 -0
  258. data/vendor/PDCursesMod/psffonts/fntcol16/arabic-14.psf +0 -0
  259. data/vendor/PDCursesMod/psffonts/fntcol16/arabkufi-14.psf +0 -0
  260. data/vendor/PDCursesMod/psffonts/fntcol16/arabnaf-14.psf +0 -0
  261. data/vendor/PDCursesMod/psffonts/fntcol16/arbnaskh-14.psf +0 -0
  262. data/vendor/PDCursesMod/psffonts/fntcol16/armenian-08.psf +0 -0
  263. data/vendor/PDCursesMod/psffonts/fntcol16/armenian-14.psf +0 -0
  264. data/vendor/PDCursesMod/psffonts/fntcol16/armenian-16.psf +0 -0
  265. data/vendor/PDCursesMod/psffonts/fntcol16/art-16.psf +0 -0
  266. data/vendor/PDCursesMod/psffonts/fntcol16/ascii-14.psf +0 -0
  267. data/vendor/PDCursesMod/psffonts/fntcol16/backward-14.psf +0 -0
  268. data/vendor/PDCursesMod/psffonts/fntcol16/bdeclo-14.psf +0 -0
  269. data/vendor/PDCursesMod/psffonts/fntcol16/bhexall-14.psf +0 -0
  270. data/vendor/PDCursesMod/psffonts/fntcol16/bhexbox-14.psf +0 -0
  271. data/vendor/PDCursesMod/psffonts/fntcol16/bhexhi-14.psf +0 -0
  272. data/vendor/PDCursesMod/psffonts/fntcol16/bhexlo-14.psf +0 -0
  273. data/vendor/PDCursesMod/psffonts/fntcol16/bigserif-14.psf +0 -0
  274. data/vendor/PDCursesMod/psffonts/fntcol16/bigserif-16.psf +0 -0
  275. data/vendor/PDCursesMod/psffonts/fntcol16/bigsf-14.psf +0 -0
  276. data/vendor/PDCursesMod/psffonts/fntcol16/binaryed-14.psf +0 -0
  277. data/vendor/PDCursesMod/psffonts/fntcol16/blcksnsf-10.psf +0 -0
  278. data/vendor/PDCursesMod/psffonts/fntcol16/block-14.psf +0 -0
  279. data/vendor/PDCursesMod/psffonts/fntcol16/bold-14.psf +0 -0
  280. data/vendor/PDCursesMod/psffonts/fntcol16/boxround-14.psf +0 -0
  281. data/vendor/PDCursesMod/psffonts/fntcol16/boxround-16.psf +0 -0
  282. data/vendor/PDCursesMod/psffonts/fntcol16/broadway-14.psf +0 -0
  283. data/vendor/PDCursesMod/psffonts/fntcol16/bthin-14.psf +0 -0
  284. data/vendor/PDCursesMod/psffonts/fntcol16/bway2-14.psf +0 -0
  285. data/vendor/PDCursesMod/psffonts/fntcol16/cafe-10.psf +0 -0
  286. data/vendor/PDCursesMod/psffonts/fntcol16/cafe-12.psf +0 -0
  287. data/vendor/PDCursesMod/psffonts/fntcol16/cntdown-14.psf +0 -0
  288. data/vendor/PDCursesMod/psffonts/fntcol16/cntdown-16.psf +0 -0
  289. data/vendor/PDCursesMod/psffonts/fntcol16/computer-14.psf +0 -0
  290. data/vendor/PDCursesMod/psffonts/fntcol16/copyleft.txt +209 -0
  291. data/vendor/PDCursesMod/psffonts/fntcol16/courier-14.psf +0 -0
  292. data/vendor/PDCursesMod/psffonts/fntcol16/cp111-08.psf +0 -0
  293. data/vendor/PDCursesMod/psffonts/fntcol16/cp111-14.psf +0 -0
  294. data/vendor/PDCursesMod/psffonts/fntcol16/cp111-16.psf +0 -0
  295. data/vendor/PDCursesMod/psffonts/fntcol16/cp111-19.psf +0 -0
  296. data/vendor/PDCursesMod/psffonts/fntcol16/cp112-08.psf +0 -0
  297. data/vendor/PDCursesMod/psffonts/fntcol16/cp112-14.psf +0 -0
  298. data/vendor/PDCursesMod/psffonts/fntcol16/cp112-16.psf +0 -0
  299. data/vendor/PDCursesMod/psffonts/fntcol16/cp112-19.psf +0 -0
  300. data/vendor/PDCursesMod/psffonts/fntcol16/cp113-08.psf +0 -0
  301. data/vendor/PDCursesMod/psffonts/fntcol16/cp113-14.psf +0 -0
  302. data/vendor/PDCursesMod/psffonts/fntcol16/cp113-16.psf +0 -0
  303. data/vendor/PDCursesMod/psffonts/fntcol16/cp113-19.psf +0 -0
  304. data/vendor/PDCursesMod/psffonts/fntcol16/cp437-08.psf +0 -0
  305. data/vendor/PDCursesMod/psffonts/fntcol16/cp437-14.psf +0 -0
  306. data/vendor/PDCursesMod/psffonts/fntcol16/cp437-16.psf +0 -0
  307. data/vendor/PDCursesMod/psffonts/fntcol16/cp437-19.psf +0 -0
  308. data/vendor/PDCursesMod/psffonts/fntcol16/cp437alt-08.psf +0 -0
  309. data/vendor/PDCursesMod/psffonts/fntcol16/cp437bgr-08.psf +0 -0
  310. data/vendor/PDCursesMod/psffonts/fntcol16/cp850-08.psf +0 -0
  311. data/vendor/PDCursesMod/psffonts/fntcol16/cp850-14.psf +0 -0
  312. data/vendor/PDCursesMod/psffonts/fntcol16/cp850-16.psf +0 -0
  313. data/vendor/PDCursesMod/psffonts/fntcol16/cp850-19.psf +0 -0
  314. data/vendor/PDCursesMod/psffonts/fntcol16/cp851-08.psf +0 -0
  315. data/vendor/PDCursesMod/psffonts/fntcol16/cp851-14.psf +0 -0
  316. data/vendor/PDCursesMod/psffonts/fntcol16/cp851-16.psf +0 -0
  317. data/vendor/PDCursesMod/psffonts/fntcol16/cp851-19.psf +0 -0
  318. data/vendor/PDCursesMod/psffonts/fntcol16/cp852-08.psf +0 -0
  319. data/vendor/PDCursesMod/psffonts/fntcol16/cp852-14.psf +0 -0
  320. data/vendor/PDCursesMod/psffonts/fntcol16/cp852-16.psf +0 -0
  321. data/vendor/PDCursesMod/psffonts/fntcol16/cp852-19.psf +0 -0
  322. data/vendor/PDCursesMod/psffonts/fntcol16/cp853-08.psf +0 -0
  323. data/vendor/PDCursesMod/psffonts/fntcol16/cp853-14.psf +0 -0
  324. data/vendor/PDCursesMod/psffonts/fntcol16/cp853-16.psf +0 -0
  325. data/vendor/PDCursesMod/psffonts/fntcol16/cp853-19.psf +0 -0
  326. data/vendor/PDCursesMod/psffonts/fntcol16/cp860-08.psf +0 -0
  327. data/vendor/PDCursesMod/psffonts/fntcol16/cp860-14.psf +0 -0
  328. data/vendor/PDCursesMod/psffonts/fntcol16/cp860-16.psf +0 -0
  329. data/vendor/PDCursesMod/psffonts/fntcol16/cp860-19.psf +0 -0
  330. data/vendor/PDCursesMod/psffonts/fntcol16/cp861-08.psf +0 -0
  331. data/vendor/PDCursesMod/psffonts/fntcol16/cp861-14.psf +0 -0
  332. data/vendor/PDCursesMod/psffonts/fntcol16/cp861-16.psf +0 -0
  333. data/vendor/PDCursesMod/psffonts/fntcol16/cp861-19.psf +0 -0
  334. data/vendor/PDCursesMod/psffonts/fntcol16/cp862-08.psf +0 -0
  335. data/vendor/PDCursesMod/psffonts/fntcol16/cp862-14.psf +0 -0
  336. data/vendor/PDCursesMod/psffonts/fntcol16/cp862-16.psf +0 -0
  337. data/vendor/PDCursesMod/psffonts/fntcol16/cp863-08.psf +0 -0
  338. data/vendor/PDCursesMod/psffonts/fntcol16/cp863-14.psf +0 -0
  339. data/vendor/PDCursesMod/psffonts/fntcol16/cp863-16.psf +0 -0
  340. data/vendor/PDCursesMod/psffonts/fntcol16/cp863-19.psf +0 -0
  341. data/vendor/PDCursesMod/psffonts/fntcol16/cp864-08.psf +0 -0
  342. data/vendor/PDCursesMod/psffonts/fntcol16/cp864-14.psf +0 -0
  343. data/vendor/PDCursesMod/psffonts/fntcol16/cp864-16.psf +0 -0
  344. data/vendor/PDCursesMod/psffonts/fntcol16/cp865-08.psf +0 -0
  345. data/vendor/PDCursesMod/psffonts/fntcol16/cp865-14.psf +0 -0
  346. data/vendor/PDCursesMod/psffonts/fntcol16/cp865-16.psf +0 -0
  347. data/vendor/PDCursesMod/psffonts/fntcol16/cp865-19.psf +0 -0
  348. data/vendor/PDCursesMod/psffonts/fntcol16/cp866-08.psf +0 -0
  349. data/vendor/PDCursesMod/psffonts/fntcol16/cp866-14.psf +0 -0
  350. data/vendor/PDCursesMod/psffonts/fntcol16/cp866-16.psf +0 -0
  351. data/vendor/PDCursesMod/psffonts/fntcol16/cp880-08.psf +0 -0
  352. data/vendor/PDCursesMod/psffonts/fntcol16/cp880-14.psf +0 -0
  353. data/vendor/PDCursesMod/psffonts/fntcol16/cp880-16.psf +0 -0
  354. data/vendor/PDCursesMod/psffonts/fntcol16/cp881-08.psf +0 -0
  355. data/vendor/PDCursesMod/psffonts/fntcol16/cp881-14.psf +0 -0
  356. data/vendor/PDCursesMod/psffonts/fntcol16/cp881-16.psf +0 -0
  357. data/vendor/PDCursesMod/psffonts/fntcol16/cp882-08.psf +0 -0
  358. data/vendor/PDCursesMod/psffonts/fntcol16/cp882-14.psf +0 -0
  359. data/vendor/PDCursesMod/psffonts/fntcol16/cp882-16.psf +0 -0
  360. data/vendor/PDCursesMod/psffonts/fntcol16/cp883-08.psf +0 -0
  361. data/vendor/PDCursesMod/psffonts/fntcol16/cp883-14.psf +0 -0
  362. data/vendor/PDCursesMod/psffonts/fntcol16/cp883-16.psf +0 -0
  363. data/vendor/PDCursesMod/psffonts/fntcol16/cp884-08.psf +0 -0
  364. data/vendor/PDCursesMod/psffonts/fntcol16/cp884-14.psf +0 -0
  365. data/vendor/PDCursesMod/psffonts/fntcol16/cp884-16.psf +0 -0
  366. data/vendor/PDCursesMod/psffonts/fntcol16/cp885-08.psf +0 -0
  367. data/vendor/PDCursesMod/psffonts/fntcol16/cp885-14.psf +0 -0
  368. data/vendor/PDCursesMod/psffonts/fntcol16/cp885-16.psf +0 -0
  369. data/vendor/PDCursesMod/psffonts/fntcol16/cyril2-14.psf +0 -0
  370. data/vendor/PDCursesMod/psffonts/fntcol16/cyril_b-08.psf +0 -0
  371. data/vendor/PDCursesMod/psffonts/fntcol16/cyrill1-08.psf +0 -0
  372. data/vendor/PDCursesMod/psffonts/fntcol16/cyrill1-14.psf +0 -0
  373. data/vendor/PDCursesMod/psffonts/fntcol16/cyrill1-16.psf +0 -0
  374. data/vendor/PDCursesMod/psffonts/fntcol16/cyrill2-08.psf +0 -0
  375. data/vendor/PDCursesMod/psffonts/fntcol16/cyrill2-14.psf +0 -0
  376. data/vendor/PDCursesMod/psffonts/fntcol16/cyrill2-16.psf +0 -0
  377. data/vendor/PDCursesMod/psffonts/fntcol16/cyrill3-08.psf +0 -0
  378. data/vendor/PDCursesMod/psffonts/fntcol16/cyrill3-14.psf +0 -0
  379. data/vendor/PDCursesMod/psffonts/fntcol16/cyrill3-16.psf +0 -0
  380. data/vendor/PDCursesMod/psffonts/fntcol16/cyrillic-14.psf +0 -0
  381. data/vendor/PDCursesMod/psffonts/fntcol16/decorate-16.psf +0 -0
  382. data/vendor/PDCursesMod/psffonts/fntcol16/draw-14.psf +0 -0
  383. data/vendor/PDCursesMod/psffonts/fntcol16/drawhi-14.psf +0 -0
  384. data/vendor/PDCursesMod/psffonts/fntcol16/europe-14.psf +0 -0
  385. data/vendor/PDCursesMod/psffonts/fntcol16/evga-alt-08.psf +0 -0
  386. data/vendor/PDCursesMod/psffonts/fntcol16/evga-alt-09.psf +0 -0
  387. data/vendor/PDCursesMod/psffonts/fntcol16/evga-alt-10.psf +0 -0
  388. data/vendor/PDCursesMod/psffonts/fntcol16/evga-alt-11.psf +0 -0
  389. data/vendor/PDCursesMod/psffonts/fntcol16/evga-alt-12.psf +0 -0
  390. data/vendor/PDCursesMod/psffonts/fntcol16/evga-alt-13.psf +0 -0
  391. data/vendor/PDCursesMod/psffonts/fntcol16/farsi-14.psf +0 -0
  392. data/vendor/PDCursesMod/psffonts/fntcol16/finnish-14.psf +0 -0
  393. data/vendor/PDCursesMod/psffonts/fntcol16/fontorig.txt +308 -0
  394. data/vendor/PDCursesMod/psffonts/fntcol16/fractur-14.psf +0 -0
  395. data/vendor/PDCursesMod/psffonts/fntcol16/future-14.psf +0 -0
  396. data/vendor/PDCursesMod/psffonts/fntcol16/gaelic-14.psf +0 -0
  397. data/vendor/PDCursesMod/psffonts/fntcol16/gaelic1-14.psf +0 -0
  398. data/vendor/PDCursesMod/psffonts/fntcol16/georgian-14.psf +0 -0
  399. data/vendor/PDCursesMod/psffonts/fntcol16/grckssrf-08.psf +0 -0
  400. data/vendor/PDCursesMod/psffonts/fntcol16/grckssrf-14.psf +0 -0
  401. data/vendor/PDCursesMod/psffonts/fntcol16/grckssrf-16.psf +0 -0
  402. data/vendor/PDCursesMod/psffonts/fntcol16/greek-06.psf +0 -0
  403. data/vendor/PDCursesMod/psffonts/fntcol16/greek-07.psf +0 -0
  404. data/vendor/PDCursesMod/psffonts/fntcol16/greek-08.psf +0 -0
  405. data/vendor/PDCursesMod/psffonts/fntcol16/greek-14.psf +0 -0
  406. data/vendor/PDCursesMod/psffonts/fntcol16/greek-16.psf +0 -0
  407. data/vendor/PDCursesMod/psffonts/fntcol16/greek1-14.psf +0 -0
  408. data/vendor/PDCursesMod/psffonts/fntcol16/greek2-14.psf +0 -0
  409. data/vendor/PDCursesMod/psffonts/fntcol16/hack4th-16.psf +0 -0
  410. data/vendor/PDCursesMod/psffonts/fntcol16/handugly-16.psf +0 -0
  411. data/vendor/PDCursesMod/psffonts/fntcol16/handwrit-14.psf +0 -0
  412. data/vendor/PDCursesMod/psffonts/fntcol16/handwrit-16.psf +0 -0
  413. data/vendor/PDCursesMod/psffonts/fntcol16/heb-7bit-16.psf +0 -0
  414. data/vendor/PDCursesMod/psffonts/fntcol16/heb-big-14.psf +0 -0
  415. data/vendor/PDCursesMod/psffonts/fntcol16/heb-bold-16.psf +0 -0
  416. data/vendor/PDCursesMod/psffonts/fntcol16/heb-ktab-14.psf +0 -0
  417. data/vendor/PDCursesMod/psffonts/fntcol16/heb-med-14.psf +0 -0
  418. data/vendor/PDCursesMod/psffonts/fntcol16/heb-snsf-14.psf +0 -0
  419. data/vendor/PDCursesMod/psffonts/fntcol16/hebboldk-16.psf +0 -0
  420. data/vendor/PDCursesMod/psffonts/fntcol16/hebclrgf-14.psf +0 -0
  421. data/vendor/PDCursesMod/psffonts/fntcol16/hebktav1-16.psf +0 -0
  422. data/vendor/PDCursesMod/psffonts/fntcol16/hebktav2-16.psf +0 -0
  423. data/vendor/PDCursesMod/psffonts/fntcol16/heblarge-14.psf +0 -0
  424. data/vendor/PDCursesMod/psffonts/fntcol16/heblarge-16.psf +0 -0
  425. data/vendor/PDCursesMod/psffonts/fntcol16/hebrew-14.psf +0 -0
  426. data/vendor/PDCursesMod/psffonts/fntcol16/hebugly-16.psf +0 -0
  427. data/vendor/PDCursesMod/psffonts/fntcol16/hebyogi-16.psf +0 -0
  428. data/vendor/PDCursesMod/psffonts/fntcol16/hercital-08.psf +0 -0
  429. data/vendor/PDCursesMod/psffonts/fntcol16/hercules-08.psf +0 -0
  430. data/vendor/PDCursesMod/psffonts/fntcol16/hercules-10.psf +0 -0
  431. data/vendor/PDCursesMod/psffonts/fntcol16/hercules-14.psf +0 -0
  432. data/vendor/PDCursesMod/psffonts/fntcol16/history.txt +45 -0
  433. data/vendor/PDCursesMod/psffonts/fntcol16/hollow-14.psf +0 -0
  434. data/vendor/PDCursesMod/psffonts/fntcol16/hrkgreek-14.psf +0 -0
  435. data/vendor/PDCursesMod/psffonts/fntcol16/hylas-14.psf +0 -0
  436. data/vendor/PDCursesMod/psffonts/fntcol16/icons-14.psf +0 -0
  437. data/vendor/PDCursesMod/psffonts/fntcol16/inverted-14.psf +0 -0
  438. data/vendor/PDCursesMod/psffonts/fntcol16/iso-14.psf +0 -0
  439. data/vendor/PDCursesMod/psffonts/fntcol16/iso2-14.psf +0 -0
  440. data/vendor/PDCursesMod/psffonts/fntcol16/iso3-14.psf +0 -0
  441. data/vendor/PDCursesMod/psffonts/fntcol16/iso4-14.psf +0 -0
  442. data/vendor/PDCursesMod/psffonts/fntcol16/italics-14.psf +0 -0
  443. data/vendor/PDCursesMod/psffonts/fntcol16/kana-14.psf +0 -0
  444. data/vendor/PDCursesMod/psffonts/fntcol16/kana-16.psf +0 -0
  445. data/vendor/PDCursesMod/psffonts/fntcol16/lb_large-16.psf +0 -0
  446. data/vendor/PDCursesMod/psffonts/fntcol16/lb_misc-14.psf +0 -0
  447. data/vendor/PDCursesMod/psffonts/fntcol16/lb_ocr-14.psf +0 -0
  448. data/vendor/PDCursesMod/psffonts/fntcol16/lb_ocr-16.psf +0 -0
  449. data/vendor/PDCursesMod/psffonts/fntcol16/lbarabic-14.psf +0 -0
  450. data/vendor/PDCursesMod/psffonts/fntcol16/lbitalic-14.psf +0 -0
  451. data/vendor/PDCursesMod/psffonts/fntcol16/lbitalic-16.psf +0 -0
  452. data/vendor/PDCursesMod/psffonts/fntcol16/lbscript-14.psf +0 -0
  453. data/vendor/PDCursesMod/psffonts/fntcol16/lcd-14.psf +0 -0
  454. data/vendor/PDCursesMod/psffonts/fntcol16/mac-08.psf +0 -0
  455. data/vendor/PDCursesMod/psffonts/fntcol16/macntosh-14.psf +0 -0
  456. data/vendor/PDCursesMod/psffonts/fntcol16/macntosh-16.psf +0 -0
  457. data/vendor/PDCursesMod/psffonts/fntcol16/madrid-10.psf +0 -0
  458. data/vendor/PDCursesMod/psffonts/fntcol16/medieval-14.psf +0 -0
  459. data/vendor/PDCursesMod/psffonts/fntcol16/modern-16.psf +0 -0
  460. data/vendor/PDCursesMod/psffonts/fntcol16/norway-14.psf +0 -0
  461. data/vendor/PDCursesMod/psffonts/fntcol16/norway2-14.psf +0 -0
  462. data/vendor/PDCursesMod/psffonts/fntcol16/old-engl-14.psf +0 -0
  463. data/vendor/PDCursesMod/psffonts/fntcol16/old-engl-16.psf +0 -0
  464. data/vendor/PDCursesMod/psffonts/fntcol16/oldeng-14.psf +0 -0
  465. data/vendor/PDCursesMod/psffonts/fntcol16/oldeng-f-16.psf +0 -0
  466. data/vendor/PDCursesMod/psffonts/fntcol16/pc_6-14.psf +0 -0
  467. data/vendor/PDCursesMod/psffonts/fntcol16/pc_7-14.psf +0 -0
  468. data/vendor/PDCursesMod/psffonts/fntcol16/persian-14.psf +0 -0
  469. data/vendor/PDCursesMod/psffonts/fntcol16/persian-16.psf +0 -0
  470. data/vendor/PDCursesMod/psffonts/fntcol16/police-16.psf +0 -0
  471. data/vendor/PDCursesMod/psffonts/fntcol16/polish-14.psf +0 -0
  472. data/vendor/PDCursesMod/psffonts/fntcol16/polish1-14.psf +0 -0
  473. data/vendor/PDCursesMod/psffonts/fntcol16/pp_roman-16.psf +0 -0
  474. data/vendor/PDCursesMod/psffonts/fntcol16/pp_sser-16.psf +0 -0
  475. data/vendor/PDCursesMod/psffonts/fntcol16/readabl7-16.psf +0 -0
  476. data/vendor/PDCursesMod/psffonts/fntcol16/readabl8-16.psf +0 -0
  477. data/vendor/PDCursesMod/psffonts/fntcol16/readable-08.psf +0 -0
  478. data/vendor/PDCursesMod/psffonts/fntcol16/readable-10.psf +0 -0
  479. data/vendor/PDCursesMod/psffonts/fntcol16/reverse-14.psf +0 -0
  480. data/vendor/PDCursesMod/psffonts/fntcol16/rimrock-10.psf +0 -0
  481. data/vendor/PDCursesMod/psffonts/fntcol16/rmrkbold-14.psf +0 -0
  482. data/vendor/PDCursesMod/psffonts/fntcol16/rom8pix-08.psf +0 -0
  483. data/vendor/PDCursesMod/psffonts/fntcol16/roman-14.psf +0 -0
  484. data/vendor/PDCursesMod/psffonts/fntcol16/roman-16.psf +0 -0
  485. data/vendor/PDCursesMod/psffonts/fntcol16/runic-14.psf +0 -0
  486. data/vendor/PDCursesMod/psffonts/fntcol16/russian-08.psf +0 -0
  487. data/vendor/PDCursesMod/psffonts/fntcol16/russian-14.psf +0 -0
  488. data/vendor/PDCursesMod/psffonts/fntcol16/russian-16.psf +0 -0
  489. data/vendor/PDCursesMod/psffonts/fntcol16/russian1-14.psf +0 -0
  490. data/vendor/PDCursesMod/psffonts/fntcol16/sanserif-14.psf +0 -0
  491. data/vendor/PDCursesMod/psffonts/fntcol16/sanserif-16.psf +0 -0
  492. data/vendor/PDCursesMod/psffonts/fntcol16/script-14.psf +0 -0
  493. data/vendor/PDCursesMod/psffonts/fntcol16/scrwl----16.psf +0 -0
  494. data/vendor/PDCursesMod/psffonts/fntcol16/scrwl~~~-16.psf +0 -0
  495. data/vendor/PDCursesMod/psffonts/fntcol16/security-14.psf +0 -0
  496. data/vendor/PDCursesMod/psffonts/fntcol16/side-10.psf +0 -0
  497. data/vendor/PDCursesMod/psffonts/fntcol16/slant-14.psf +0 -0
  498. data/vendor/PDCursesMod/psffonts/fntcol16/smalcaps-14.psf +0 -0
  499. data/vendor/PDCursesMod/psffonts/fntcol16/smcapnum-14.psf +0 -0
  500. data/vendor/PDCursesMod/psffonts/fntcol16/spranto-14.psf +0 -0
  501. data/vendor/PDCursesMod/psffonts/fntcol16/spranto1-16.psf +0 -0
  502. data/vendor/PDCursesMod/psffonts/fntcol16/spranto2-16.psf +0 -0
  503. data/vendor/PDCursesMod/psffonts/fntcol16/square-12.psf +0 -0
  504. data/vendor/PDCursesMod/psffonts/fntcol16/standard-14.psf +0 -0
  505. data/vendor/PDCursesMod/psffonts/fntcol16/standard-16.psf +0 -0
  506. data/vendor/PDCursesMod/psffonts/fntcol16/stretch-14.psf +0 -0
  507. data/vendor/PDCursesMod/psffonts/fntcol16/subsup-16.psf +0 -0
  508. data/vendor/PDCursesMod/psffonts/fntcol16/super-16.psf +0 -0
  509. data/vendor/PDCursesMod/psffonts/fntcol16/swiss-16.psf +0 -0
  510. data/vendor/PDCursesMod/psffonts/fntcol16/swiss-av-16.psf +0 -0
  511. data/vendor/PDCursesMod/psffonts/fntcol16/swissav2-16.psf +0 -0
  512. data/vendor/PDCursesMod/psffonts/fntcol16/swissbox-16.psf +0 -0
  513. data/vendor/PDCursesMod/psffonts/fntcol16/swissbx2-16.psf +0 -0
  514. data/vendor/PDCursesMod/psffonts/fntcol16/tex-math-14.psf +0 -0
  515. data/vendor/PDCursesMod/psffonts/fntcol16/tex-math-16.psf +0 -0
  516. data/vendor/PDCursesMod/psffonts/fntcol16/thai-14.psf +0 -0
  517. data/vendor/PDCursesMod/psffonts/fntcol16/thin_ss-08.psf +0 -0
  518. data/vendor/PDCursesMod/psffonts/fntcol16/thin_ss-14.psf +0 -0
  519. data/vendor/PDCursesMod/psffonts/fntcol16/thin_ss-16.psf +0 -0
  520. data/vendor/PDCursesMod/psffonts/fntcol16/thinasci-07.psf +0 -0
  521. data/vendor/PDCursesMod/psffonts/fntcol16/thincaps-14.psf +0 -0
  522. data/vendor/PDCursesMod/psffonts/fntcol16/thindemo-14.psf +0 -0
  523. data/vendor/PDCursesMod/psffonts/fntcol16/thinscrp-14.psf +0 -0
  524. data/vendor/PDCursesMod/psffonts/fntcol16/turkish-14.psf +0 -0
  525. data/vendor/PDCursesMod/psffonts/fntcol16/urdu-14.psf +0 -0
  526. data/vendor/PDCursesMod/psffonts/fntcol16/vga-rom-08.psf +0 -0
  527. data/vendor/PDCursesMod/psffonts/fntcol16/vga-rom-14.psf +0 -0
  528. data/vendor/PDCursesMod/psffonts/fntcol16/vga-rom-16.psf +0 -0
  529. data/vendor/PDCursesMod/psffonts/fntcol16/voynich-16.psf +0 -0
  530. data/vendor/PDCursesMod/psffonts/fntcol16/wiggly-16.psf +0 -0
  531. data/vendor/PDCursesMod/psffonts/fntcol16/yugosla-14.psf +0 -0
  532. data/vendor/PDCursesMod/psffonts/lc12x20.psf +0 -0
  533. data/vendor/PDCursesMod/psffonts/makefile +2 -0
  534. data/vendor/PDCursesMod/psffonts/mappings/8859-3.TXT +285 -0
  535. data/vendor/PDCursesMod/psffonts/mappings/APL-ISO-IR-68.TXT +273 -0
  536. data/vendor/PDCursesMod/psffonts/mappings/ATARIST.TXT +320 -0
  537. data/vendor/PDCursesMod/psffonts/mappings/CP1006.TXT +302 -0
  538. data/vendor/PDCursesMod/psffonts/mappings/CP1250.TXT +274 -0
  539. data/vendor/PDCursesMod/psffonts/mappings/CP1251.TXT +274 -0
  540. data/vendor/PDCursesMod/psffonts/mappings/CP1252.TXT +274 -0
  541. data/vendor/PDCursesMod/psffonts/mappings/CP1253.TXT +274 -0
  542. data/vendor/PDCursesMod/psffonts/mappings/CP1254.TXT +274 -0
  543. data/vendor/PDCursesMod/psffonts/mappings/CP1255.TXT +274 -0
  544. data/vendor/PDCursesMod/psffonts/mappings/CP1256.TXT +274 -0
  545. data/vendor/PDCursesMod/psffonts/mappings/CP1257.TXT +274 -0
  546. data/vendor/PDCursesMod/psffonts/mappings/CP1258.TXT +274 -0
  547. data/vendor/PDCursesMod/psffonts/mappings/CP424.TXT +304 -0
  548. data/vendor/PDCursesMod/psffonts/mappings/CP437.TXT +274 -0
  549. data/vendor/PDCursesMod/psffonts/mappings/CP737.TXT +274 -0
  550. data/vendor/PDCursesMod/psffonts/mappings/CP775.TXT +275 -0
  551. data/vendor/PDCursesMod/psffonts/mappings/CP850.TXT +274 -0
  552. data/vendor/PDCursesMod/psffonts/mappings/CP851.TXT +276 -0
  553. data/vendor/PDCursesMod/psffonts/mappings/CP852.TXT +274 -0
  554. data/vendor/PDCursesMod/psffonts/mappings/CP855.TXT +275 -0
  555. data/vendor/PDCursesMod/psffonts/mappings/CP856.TXT +303 -0
  556. data/vendor/PDCursesMod/psffonts/mappings/CP857.TXT +275 -0
  557. data/vendor/PDCursesMod/psffonts/mappings/CP860.TXT +275 -0
  558. data/vendor/PDCursesMod/psffonts/mappings/CP861.TXT +275 -0
  559. data/vendor/PDCursesMod/psffonts/mappings/CP862.TXT +275 -0
  560. data/vendor/PDCursesMod/psffonts/mappings/CP863.TXT +275 -0
  561. data/vendor/PDCursesMod/psffonts/mappings/CP864.TXT +275 -0
  562. data/vendor/PDCursesMod/psffonts/mappings/CP865.TXT +275 -0
  563. data/vendor/PDCursesMod/psffonts/mappings/CP866.TXT +275 -0
  564. data/vendor/PDCursesMod/psffonts/mappings/CP869.TXT +275 -0
  565. data/vendor/PDCursesMod/psffonts/mappings/CP874.TXT +274 -0
  566. data/vendor/PDCursesMod/psffonts/mappings/CP932.TXT +7998 -0
  567. data/vendor/PDCursesMod/psffonts/mappings/CP936.TXT +22065 -0
  568. data/vendor/PDCursesMod/psffonts/mappings/CP949.TXT +17322 -0
  569. data/vendor/PDCursesMod/psffonts/mappings/CP950.TXT +13777 -0
  570. data/vendor/PDCursesMod/psffonts/mappings/IBMGRAPH.TXT +99 -0
  571. data/vendor/PDCursesMod/psffonts/mappings/KOI8-R.TXT +294 -0
  572. data/vendor/PDCursesMod/psffonts/mappings/KOI8-U.TXT +301 -0
  573. data/vendor/PDCursesMod/psffonts/mappings/KPS9566.TXT +17166 -0
  574. data/vendor/PDCursesMod/psffonts/mappings/KZ1048.TXT +294 -0
  575. data/vendor/PDCursesMod/psffonts/mappings/ReadMe.txt +20 -0
  576. data/vendor/PDCursesMod/psffonts/mappings/SGML.TXT +1041 -0
  577. data/vendor/PDCursesMod/psffonts/medieval2.psf +0 -0
  578. data/vendor/PDCursesMod/psffonts/vga11x19.psf +0 -0
  579. data/vendor/PDCursesMod/sdl1/Makefile +140 -0
  580. data/vendor/PDCursesMod/sdl1/README.md +200 -0
  581. data/vendor/PDCursesMod/sdl1/pdcclip.c +1 -0
  582. data/vendor/PDCursesMod/sdl1/pdcdisp.c +462 -0
  583. data/vendor/PDCursesMod/sdl1/pdcgetsc.c +30 -0
  584. data/vendor/PDCursesMod/sdl1/pdckbd.c +417 -0
  585. data/vendor/PDCursesMod/sdl1/pdcscrn.c +396 -0
  586. data/vendor/PDCursesMod/sdl1/pdcsdl.h +34 -0
  587. data/vendor/PDCursesMod/sdl1/pdcsetsc.c +99 -0
  588. data/vendor/PDCursesMod/sdl1/pdcutil.c +34 -0
  589. data/vendor/PDCursesMod/sdl1/sdltest.c +79 -0
  590. data/vendor/PDCursesMod/sdl2/CMakeLists.txt +76 -0
  591. data/vendor/PDCursesMod/sdl2/Makefile +207 -0
  592. data/vendor/PDCursesMod/sdl2/Makefile.vc +132 -0
  593. data/vendor/PDCursesMod/sdl2/README.md +215 -0
  594. data/vendor/PDCursesMod/sdl2/pdcclip.c +93 -0
  595. data/vendor/PDCursesMod/sdl2/pdcdisp.c +536 -0
  596. data/vendor/PDCursesMod/sdl2/pdcgetsc.c +30 -0
  597. data/vendor/PDCursesMod/sdl2/pdckbd.c +540 -0
  598. data/vendor/PDCursesMod/sdl2/pdcscrn.c +529 -0
  599. data/vendor/PDCursesMod/sdl2/pdcsdl.h +46 -0
  600. data/vendor/PDCursesMod/sdl2/pdcsetsc.c +99 -0
  601. data/vendor/PDCursesMod/sdl2/pdcutil.c +35 -0
  602. data/vendor/PDCursesMod/sdl2/sdltest.c +91 -0
  603. data/vendor/PDCursesMod/sdl2/versions.mif +2 -0
  604. data/vendor/PDCursesMod/term.h +48 -0
  605. data/vendor/PDCursesMod/tests/README.md +16 -0
  606. data/vendor/PDCursesMod/tests/brk_test.c +42 -0
  607. data/vendor/PDCursesMod/tests/del_test.c +95 -0
  608. data/vendor/PDCursesMod/tests/focus.c +53 -0
  609. data/vendor/PDCursesMod/tests/ins_del.c +108 -0
  610. data/vendor/PDCursesMod/tests/keytest.c +87 -0
  611. data/vendor/PDCursesMod/tests/naptest.c +43 -0
  612. data/vendor/PDCursesMod/tests/opaque.c +42 -0
  613. data/vendor/PDCursesMod/tests/restart.c +60 -0
  614. data/vendor/PDCursesMod/tests/ripoff.c +141 -0
  615. data/vendor/PDCursesMod/tests/show_col.c +55 -0
  616. data/vendor/PDCursesMod/tests/show_uni.c +163 -0
  617. data/vendor/PDCursesMod/tests/vt0.c +472 -0
  618. data/vendor/PDCursesMod/vt/CMakeLists.txt +35 -0
  619. data/vendor/PDCursesMod/vt/Makefile +204 -0
  620. data/vendor/PDCursesMod/vt/Makefile.bcc +101 -0
  621. data/vendor/PDCursesMod/vt/Makefile.dmc +313 -0
  622. data/vendor/PDCursesMod/vt/Makefile.vc +145 -0
  623. data/vendor/PDCursesMod/vt/Makefile.wcc +48 -0
  624. data/vendor/PDCursesMod/vt/README.md +82 -0
  625. data/vendor/PDCursesMod/vt/pdcclip.c +8 -0
  626. data/vendor/PDCursesMod/vt/pdcdisp.c +424 -0
  627. data/vendor/PDCursesMod/vt/pdckbd.c +603 -0
  628. data/vendor/PDCursesMod/vt/pdcscrn.c +492 -0
  629. data/vendor/PDCursesMod/vt/pdcsetsc.c +158 -0
  630. data/vendor/PDCursesMod/vt/pdcutil.c +85 -0
  631. data/vendor/PDCursesMod/vt/pdcvt.h +25 -0
  632. data/vendor/PDCursesMod/wincon/CMakeLists.txt +29 -0
  633. data/vendor/PDCursesMod/wincon/Makefile +190 -0
  634. data/vendor/PDCursesMod/wincon/Makefile.bcc +87 -0
  635. data/vendor/PDCursesMod/wincon/Makefile.dmc +275 -0
  636. data/vendor/PDCursesMod/wincon/Makefile.vc +132 -0
  637. data/vendor/PDCursesMod/wincon/Makefile.wcc +33 -0
  638. data/vendor/PDCursesMod/wincon/README.md +76 -0
  639. data/vendor/PDCursesMod/wincon/pdcclip.c +6 -0
  640. data/vendor/PDCursesMod/wincon/pdcdisp.c +408 -0
  641. data/vendor/PDCursesMod/wincon/pdcgetsc.c +42 -0
  642. data/vendor/PDCursesMod/wincon/pdckbd.c +778 -0
  643. data/vendor/PDCursesMod/wincon/pdcscrn.c +733 -0
  644. data/vendor/PDCursesMod/wincon/pdcsetsc.c +130 -0
  645. data/vendor/PDCursesMod/wincon/pdcutil.c +38 -0
  646. data/vendor/PDCursesMod/wincon/pdcwin.h +35 -0
  647. data/vendor/PDCursesMod/wingui/CMakeLists.txt +30 -0
  648. data/vendor/PDCursesMod/wingui/Makefile +186 -0
  649. data/vendor/PDCursesMod/wingui/Makefile.bcc +80 -0
  650. data/vendor/PDCursesMod/wingui/Makefile.dmc +314 -0
  651. data/vendor/PDCursesMod/wingui/Makefile.vc +144 -0
  652. data/vendor/PDCursesMod/wingui/Makefile.wcc +32 -0
  653. data/vendor/PDCursesMod/wingui/README.md +92 -0
  654. data/vendor/PDCursesMod/wingui/pdcclip.c +6 -0
  655. data/vendor/PDCursesMod/wingui/pdcdisp.c +576 -0
  656. data/vendor/PDCursesMod/wingui/pdckbd.c +89 -0
  657. data/vendor/PDCursesMod/wingui/pdcscrn.c +2235 -0
  658. data/vendor/PDCursesMod/wingui/pdcsetsc.c +124 -0
  659. data/vendor/PDCursesMod/wingui/pdcutil.c +44 -0
  660. data/vendor/PDCursesMod/wingui/pdcwin.h +85 -0
  661. data/vendor/PDCursesMod/x11/Makefile.in +1047 -0
  662. data/vendor/PDCursesMod/x11/README.md +227 -0
  663. data/vendor/PDCursesMod/x11/aclocal.m4 +553 -0
  664. data/vendor/PDCursesMod/x11/config.guess +1774 -0
  665. data/vendor/PDCursesMod/x11/config.h.in +37 -0
  666. data/vendor/PDCursesMod/x11/config.sub +1907 -0
  667. data/vendor/PDCursesMod/x11/configure +5944 -0
  668. data/vendor/PDCursesMod/x11/configure.ac +175 -0
  669. data/vendor/PDCursesMod/x11/pdcclip.c +254 -0
  670. data/vendor/PDCursesMod/x11/pdcdisp.c +418 -0
  671. data/vendor/PDCursesMod/x11/pdcgetsc.c +28 -0
  672. data/vendor/PDCursesMod/x11/pdckbd.c +743 -0
  673. data/vendor/PDCursesMod/x11/pdcscrn.c +848 -0
  674. data/vendor/PDCursesMod/x11/pdcsetsc.c +108 -0
  675. data/vendor/PDCursesMod/x11/pdcutil.c +41 -0
  676. data/vendor/PDCursesMod/x11/pdcx11.h +82 -0
  677. data/vendor/PDCursesMod/x11/sb.c +331 -0
  678. data/vendor/PDCursesMod/x11/scrlbox.c +348 -0
  679. data/vendor/PDCursesMod/x11/scrlbox.h +47 -0
  680. data/vendor/PDCursesMod/x11/xcurses-config.in +81 -0
  681. data/vendor/PDCursesMod/x11new/Makefile +151 -0
  682. data/vendor/PDCursesMod/x11new/README.md +63 -0
  683. data/vendor/PDCursesMod/x11new/pdcclip.c +221 -0
  684. data/vendor/PDCursesMod/x11new/pdcdisp.c +195 -0
  685. data/vendor/PDCursesMod/x11new/pdcgetsc.c +27 -0
  686. data/vendor/PDCursesMod/x11new/pdckbd.c +722 -0
  687. data/vendor/PDCursesMod/x11new/pdcscrn.c +277 -0
  688. data/vendor/PDCursesMod/x11new/pdcsetsc.c +90 -0
  689. data/vendor/PDCursesMod/x11new/pdcutil.c +38 -0
  690. data/vendor/PDCursesMod/x11new/pdcx11.h +16 -0
  691. metadata +692 -246
  692. data/vendor/PDCurses/.gitignore +0 -47
  693. data/vendor/PDCurses/.travis.yml +0 -49
  694. data/vendor/PDCurses/CMakeLists.txt +0 -68
  695. data/vendor/PDCurses/HISTORY.md +0 -2036
  696. data/vendor/PDCurses/IMPLEMNT.md +0 -327
  697. data/vendor/PDCurses/Makefile +0 -27
  698. data/vendor/PDCurses/README.md +0 -77
  699. data/vendor/PDCurses/acs_defs.h +0 -265
  700. data/vendor/PDCurses/appveyor.yml +0 -218
  701. data/vendor/PDCurses/cmake/README.md +0 -71
  702. data/vendor/PDCurses/cmake/build_dependencies.cmake +0 -178
  703. data/vendor/PDCurses/cmake/build_options.cmake +0 -25
  704. data/vendor/PDCurses/cmake/dll_version.cmake +0 -26
  705. data/vendor/PDCurses/cmake/gen_config_header.cmake +0 -43
  706. data/vendor/PDCurses/cmake/get_version.cmake +0 -17
  707. data/vendor/PDCurses/cmake/project_common.cmake +0 -121
  708. data/vendor/PDCurses/cmake/sdl2_ttf/CMakeLists.txt +0 -83
  709. data/vendor/PDCurses/cmake/version.in.cmake +0 -73
  710. data/vendor/PDCurses/cmake/watcom_open_dos16_toolchain.cmake +0 -96
  711. data/vendor/PDCurses/cmake/watcom_open_dos32_toolchain.cmake +0 -106
  712. data/vendor/PDCurses/cmake/watcom_open_os2v2_toolchain.cmake +0 -105
  713. data/vendor/PDCurses/curses.h +0 -1846
  714. data/vendor/PDCurses/curspriv.h +0 -134
  715. data/vendor/PDCurses/demos/firework.c +0 -144
  716. data/vendor/PDCurses/demos/newtest.c +0 -581
  717. data/vendor/PDCurses/demos/ozdemo.c +0 -447
  718. data/vendor/PDCurses/demos/ptest.c +0 -283
  719. data/vendor/PDCurses/demos/rain.c +0 -157
  720. data/vendor/PDCurses/demos/testcurs.c +0 -1607
  721. data/vendor/PDCurses/demos/tui.c +0 -1048
  722. data/vendor/PDCurses/demos/tui.h +0 -65
  723. data/vendor/PDCurses/demos/tuidemo.c +0 -233
  724. data/vendor/PDCurses/demos/version.c +0 -61
  725. data/vendor/PDCurses/demos/worm.c +0 -432
  726. data/vendor/PDCurses/demos/xmas.c +0 -955
  727. data/vendor/PDCurses/dos/CMakeLists.txt +0 -47
  728. data/vendor/PDCurses/dos/Makefile +0 -105
  729. data/vendor/PDCurses/dos/Makefile.bcc +0 -83
  730. data/vendor/PDCurses/dos/Makefile.dmc +0 -257
  731. data/vendor/PDCurses/dos/Makefile.msc +0 -113
  732. data/vendor/PDCurses/dos/Makefile.wcc +0 -107
  733. data/vendor/PDCurses/dos/README.md +0 -51
  734. data/vendor/PDCurses/dos/bccdos.lrf +0 -9
  735. data/vendor/PDCurses/dos/mscdos.lrf +0 -50
  736. data/vendor/PDCurses/dos/pdcclip.c +0 -132
  737. data/vendor/PDCurses/dos/pdcdisp.c +0 -135
  738. data/vendor/PDCurses/dos/pdcdos.h +0 -194
  739. data/vendor/PDCurses/dos/pdcgetsc.c +0 -98
  740. data/vendor/PDCurses/dos/pdckbd.c +0 -513
  741. data/vendor/PDCurses/dos/pdcscrn.c +0 -785
  742. data/vendor/PDCurses/dos/pdcsetsc.c +0 -101
  743. data/vendor/PDCurses/dos/pdcutil.c +0 -212
  744. data/vendor/PDCurses/libobjs.mif +0 -26
  745. data/vendor/PDCurses/makedist.mif +0 -20
  746. data/vendor/PDCurses/man/Makefile +0 -37
  747. data/vendor/PDCurses/man/README.md +0 -21
  748. data/vendor/PDCurses/man/intro.md +0 -361
  749. data/vendor/PDCurses/man/manext.c +0 -119
  750. data/vendor/PDCurses/man/sdl.md +0 -152
  751. data/vendor/PDCurses/man/sdl2.md +0 -58
  752. data/vendor/PDCurses/man/x11.md +0 -407
  753. data/vendor/PDCurses/ncurses/CMakeLists.txt +0 -66
  754. data/vendor/PDCurses/ncurses/makefile +0 -29
  755. data/vendor/PDCurses/os2/Makefile +0 -132
  756. data/vendor/PDCurses/os2/Makefile.bcc +0 -90
  757. data/vendor/PDCurses/os2/Makefile.wcc +0 -43
  758. data/vendor/PDCurses/os2/iccos2.lrf +0 -50
  759. data/vendor/PDCurses/os2/iccos2.mak +0 -256
  760. data/vendor/PDCurses/os2/pdcclip.c +0 -188
  761. data/vendor/PDCurses/os2/pdcdisp.c +0 -93
  762. data/vendor/PDCurses/os2/pdcgetsc.c +0 -89
  763. data/vendor/PDCurses/os2/pdckbd.c +0 -521
  764. data/vendor/PDCurses/os2/pdcos2.h +0 -55
  765. data/vendor/PDCurses/os2/pdcscrn.c +0 -449
  766. data/vendor/PDCurses/os2/pdcsetsc.c +0 -112
  767. data/vendor/PDCurses/os2/pdcutil.c +0 -52
  768. data/vendor/PDCurses/panel.h +0 -56
  769. data/vendor/PDCurses/pdcurses/addch.c +0 -693
  770. data/vendor/PDCurses/pdcurses/addchstr.c +0 -245
  771. data/vendor/PDCurses/pdcurses/addstr.c +0 -240
  772. data/vendor/PDCurses/pdcurses/attr.c +0 -359
  773. data/vendor/PDCurses/pdcurses/beep.c +0 -68
  774. data/vendor/PDCurses/pdcurses/bkgd.c +0 -223
  775. data/vendor/PDCurses/pdcurses/border.c +0 -411
  776. data/vendor/PDCurses/pdcurses/clear.c +0 -159
  777. data/vendor/PDCurses/pdcurses/color.c +0 -298
  778. data/vendor/PDCurses/pdcurses/debug.c +0 -109
  779. data/vendor/PDCurses/pdcurses/delch.c +0 -96
  780. data/vendor/PDCurses/pdcurses/deleteln.c +0 -211
  781. data/vendor/PDCurses/pdcurses/deprec.c +0 -27
  782. data/vendor/PDCurses/pdcurses/getch.c +0 -417
  783. data/vendor/PDCurses/pdcurses/getstr.c +0 -474
  784. data/vendor/PDCurses/pdcurses/getyx.c +0 -139
  785. data/vendor/PDCurses/pdcurses/inch.c +0 -127
  786. data/vendor/PDCurses/pdcurses/inchstr.c +0 -214
  787. data/vendor/PDCurses/pdcurses/initscr.c +0 -367
  788. data/vendor/PDCurses/pdcurses/inopts.c +0 -324
  789. data/vendor/PDCurses/pdcurses/insch.c +0 -271
  790. data/vendor/PDCurses/pdcurses/insstr.c +0 -264
  791. data/vendor/PDCurses/pdcurses/instr.c +0 -246
  792. data/vendor/PDCurses/pdcurses/kernel.c +0 -259
  793. data/vendor/PDCurses/pdcurses/keyname.c +0 -157
  794. data/vendor/PDCurses/pdcurses/mouse.c +0 -438
  795. data/vendor/PDCurses/pdcurses/move.c +0 -57
  796. data/vendor/PDCurses/pdcurses/outopts.c +0 -159
  797. data/vendor/PDCurses/pdcurses/overlay.c +0 -214
  798. data/vendor/PDCurses/pdcurses/pad.c +0 -260
  799. data/vendor/PDCurses/pdcurses/panel.c +0 -633
  800. data/vendor/PDCurses/pdcurses/printw.c +0 -126
  801. data/vendor/PDCurses/pdcurses/refresh.c +0 -279
  802. data/vendor/PDCurses/pdcurses/scanw.c +0 -578
  803. data/vendor/PDCurses/pdcurses/scr_dump.c +0 -213
  804. data/vendor/PDCurses/pdcurses/scroll.c +0 -101
  805. data/vendor/PDCurses/pdcurses/slk.c +0 -591
  806. data/vendor/PDCurses/pdcurses/termattr.c +0 -182
  807. data/vendor/PDCurses/pdcurses/terminfo.c +0 -217
  808. data/vendor/PDCurses/pdcurses/touch.c +0 -163
  809. data/vendor/PDCurses/pdcurses/util.c +0 -312
  810. data/vendor/PDCurses/pdcurses/window.c +0 -569
  811. data/vendor/PDCurses/sdl1/Makefile +0 -129
  812. data/vendor/PDCurses/sdl1/Makefile.mng +0 -110
  813. data/vendor/PDCurses/sdl1/README.md +0 -31
  814. data/vendor/PDCurses/sdl1/deffont.h +0 -385
  815. data/vendor/PDCurses/sdl1/deficon.h +0 -23
  816. data/vendor/PDCurses/sdl1/pdcclip.c +0 -131
  817. data/vendor/PDCurses/sdl1/pdcdisp.c +0 -373
  818. data/vendor/PDCurses/sdl1/pdcgetsc.c +0 -30
  819. data/vendor/PDCurses/sdl1/pdckbd.c +0 -405
  820. data/vendor/PDCurses/sdl1/pdcscrn.c +0 -414
  821. data/vendor/PDCurses/sdl1/pdcsdl.h +0 -31
  822. data/vendor/PDCurses/sdl1/pdcsetsc.c +0 -64
  823. data/vendor/PDCurses/sdl1/pdcutil.c +0 -40
  824. data/vendor/PDCurses/sdl1/sdltest.c +0 -79
  825. data/vendor/PDCurses/sdl2/CMakeLists.txt +0 -76
  826. data/vendor/PDCurses/sdl2/Makefile +0 -135
  827. data/vendor/PDCurses/sdl2/Makefile.vc +0 -164
  828. data/vendor/PDCurses/sdl2/README.md +0 -34
  829. data/vendor/PDCurses/sdl2/deffont.h +0 -385
  830. data/vendor/PDCurses/sdl2/deficon.h +0 -23
  831. data/vendor/PDCurses/sdl2/pdcclip.c +0 -93
  832. data/vendor/PDCurses/sdl2/pdcdisp.c +0 -534
  833. data/vendor/PDCurses/sdl2/pdcgetsc.c +0 -30
  834. data/vendor/PDCurses/sdl2/pdckbd.c +0 -480
  835. data/vendor/PDCurses/sdl2/pdcscrn.c +0 -443
  836. data/vendor/PDCurses/sdl2/pdcsdl.h +0 -33
  837. data/vendor/PDCurses/sdl2/pdcsetsc.c +0 -67
  838. data/vendor/PDCurses/sdl2/pdcutil.c +0 -39
  839. data/vendor/PDCurses/sdl2/sdltest.c +0 -81
  840. data/vendor/PDCurses/term.h +0 -48
  841. data/vendor/PDCurses/version.mif +0 -7
  842. data/vendor/PDCurses/vt/CMakeLists.txt +0 -28
  843. data/vendor/PDCurses/vt/Makefile +0 -135
  844. data/vendor/PDCurses/vt/Makefile.bcc +0 -111
  845. data/vendor/PDCurses/vt/Makefile.dmc +0 -258
  846. data/vendor/PDCurses/vt/Makefile.vc +0 -144
  847. data/vendor/PDCurses/vt/Makefile.wcc +0 -107
  848. data/vendor/PDCurses/vt/README.md +0 -64
  849. data/vendor/PDCurses/vt/pdcclip.c +0 -20
  850. data/vendor/PDCurses/vt/pdcdisp.c +0 -284
  851. data/vendor/PDCurses/vt/pdckbd.c +0 -394
  852. data/vendor/PDCurses/vt/pdcscrn.c +0 -434
  853. data/vendor/PDCurses/vt/pdcsetsc.c +0 -45
  854. data/vendor/PDCurses/vt/pdcutil.c +0 -43
  855. data/vendor/PDCurses/vt/pdcvt.h +0 -16
  856. data/vendor/PDCurses/watcom.mif +0 -68
  857. data/vendor/PDCurses/wincon/CMakeLists.txt +0 -27
  858. data/vendor/PDCurses/wincon/Makefile.bcc +0 -88
  859. data/vendor/PDCurses/wincon/Makefile.dmc +0 -256
  860. data/vendor/PDCurses/wincon/Makefile.lcc +0 -273
  861. data/vendor/PDCurses/wincon/Makefile.mng +0 -176
  862. data/vendor/PDCurses/wincon/Makefile.vc +0 -144
  863. data/vendor/PDCurses/wincon/Makefile.wcc +0 -51
  864. data/vendor/PDCurses/wincon/README.md +0 -85
  865. data/vendor/PDCurses/wincon/pdcclip.c +0 -174
  866. data/vendor/PDCurses/wincon/pdcdisp.c +0 -143
  867. data/vendor/PDCurses/wincon/pdcgetsc.c +0 -55
  868. data/vendor/PDCurses/wincon/pdckbd.c +0 -786
  869. data/vendor/PDCurses/wincon/pdcscrn.c +0 -717
  870. data/vendor/PDCurses/wincon/pdcsetsc.c +0 -91
  871. data/vendor/PDCurses/wincon/pdcurses.ico +0 -0
  872. data/vendor/PDCurses/wincon/pdcurses.rc +0 -28
  873. data/vendor/PDCurses/wincon/pdcutil.c +0 -41
  874. data/vendor/PDCurses/wincon/pdcwin.h +0 -31
  875. data/vendor/PDCurses/wingui/CMakeLists.txt +0 -27
  876. data/vendor/PDCurses/wingui/Makefile.bcc +0 -85
  877. data/vendor/PDCurses/wingui/Makefile.dmc +0 -259
  878. data/vendor/PDCurses/wingui/Makefile.lcc +0 -273
  879. data/vendor/PDCurses/wingui/Makefile.mng +0 -171
  880. data/vendor/PDCurses/wingui/Makefile.vc +0 -144
  881. data/vendor/PDCurses/wingui/Makefile.wcc +0 -51
  882. data/vendor/PDCurses/wingui/README.md +0 -93
  883. data/vendor/PDCurses/wingui/pdcclip.c +0 -174
  884. data/vendor/PDCurses/wingui/pdcdisp.c +0 -718
  885. data/vendor/PDCurses/wingui/pdckbd.c +0 -143
  886. data/vendor/PDCurses/wingui/pdcscrn.c +0 -2797
  887. data/vendor/PDCurses/wingui/pdcsetsc.c +0 -89
  888. data/vendor/PDCurses/wingui/pdcurses.ico +0 -0
  889. data/vendor/PDCurses/wingui/pdcurses.rc +0 -28
  890. data/vendor/PDCurses/wingui/pdcutil.c +0 -61
  891. data/vendor/PDCurses/wingui/pdcwin.h +0 -122
  892. data/vendor/PDCurses/x11/Makefile.in +0 -754
  893. data/vendor/PDCurses/x11/PDCurses.spec +0 -82
  894. data/vendor/PDCurses/x11/README.md +0 -62
  895. data/vendor/PDCurses/x11/ScrollBox.c +0 -319
  896. data/vendor/PDCurses/x11/ScrollBox.h +0 -51
  897. data/vendor/PDCurses/x11/ScrollBoxP.h +0 -70
  898. data/vendor/PDCurses/x11/aclocal.m4 +0 -994
  899. data/vendor/PDCurses/x11/big_icon.xbm +0 -46
  900. data/vendor/PDCurses/x11/compose.h +0 -201
  901. data/vendor/PDCurses/x11/config.guess +0 -1500
  902. data/vendor/PDCurses/x11/config.h.in +0 -100
  903. data/vendor/PDCurses/x11/config.sub +0 -1616
  904. data/vendor/PDCurses/x11/configure +0 -6700
  905. data/vendor/PDCurses/x11/configure.ac +0 -295
  906. data/vendor/PDCurses/x11/debian/changelog +0 -6
  907. data/vendor/PDCurses/x11/debian/compat +0 -1
  908. data/vendor/PDCurses/x11/debian/control +0 -11
  909. data/vendor/PDCurses/x11/debian/copyright +0 -27
  910. data/vendor/PDCurses/x11/debian/rules +0 -98
  911. data/vendor/PDCurses/x11/little_icon.xbm +0 -14
  912. data/vendor/PDCurses/x11/ncurses_cfg.h +0 -45
  913. data/vendor/PDCurses/x11/pdcclip.c +0 -173
  914. data/vendor/PDCurses/x11/pdcdisp.c +0 -85
  915. data/vendor/PDCurses/x11/pdcgetsc.c +0 -28
  916. data/vendor/PDCurses/x11/pdckbd.c +0 -104
  917. data/vendor/PDCurses/x11/pdcscrn.c +0 -258
  918. data/vendor/PDCurses/x11/pdcsetsc.c +0 -95
  919. data/vendor/PDCurses/x11/pdcutil.c +0 -52
  920. data/vendor/PDCurses/x11/pdcx11.c +0 -316
  921. data/vendor/PDCurses/x11/pdcx11.h +0 -191
  922. data/vendor/PDCurses/x11/sb.c +0 -155
  923. data/vendor/PDCurses/x11/x11.c +0 -3686
  924. data/vendor/PDCurses/x11/xcurses-config.in +0 -81
  925. /data/vendor/{PDCurses → PDCursesMod}/cmake/make_uninstall.cmake +0 -0
  926. /data/vendor/{PDCurses → PDCursesMod}/cmake/resource.in.cmake +0 -0
  927. /data/vendor/{PDCurses → PDCursesMod}/cmake/target_arch.cmake +0 -0
  928. /data/vendor/{PDCurses → PDCursesMod}/demos/README.md +0 -0
  929. /data/vendor/{PDCurses → PDCursesMod}/ncurses/README.md +0 -0
  930. /data/vendor/{PDCurses → PDCursesMod}/os2/CMakeLists.txt +0 -0
  931. /data/vendor/{PDCurses → PDCursesMod}/os2/README.md +0 -0
  932. /data/vendor/{PDCurses → PDCursesMod}/pdcurses/README.md +0 -0
  933. /data/vendor/{PDCurses → PDCursesMod}/vt/pdcgetsc.c +0 -0
  934. /data/vendor/{PDCurses → PDCursesMod}/wingui/pdcgetsc.c +0 -0
  935. /data/vendor/{PDCurses → PDCursesMod}/x11/install-sh +0 -0
@@ -0,0 +1,1693 @@
1
+ /* PDCurses */
2
+
3
+ #include "pdcdos.h"
4
+ #include "pdcvesa.h"
5
+ #include "font.h"
6
+
7
+ #include "../common/pdccolor.h"
8
+ #include "../common/pdccolor.c"
9
+
10
+ #include <stdlib.h>
11
+ #include <string.h>
12
+
13
+ struct PDC_video_state PDC_state;
14
+
15
+ static int saved_scrnmode[3];
16
+
17
+ static void _load_palette(void);
18
+ static int _get_mode_info(unsigned mode, struct ModeInfoBlock *mode_info);
19
+ static unsigned _find_video_mode(int rows, int cols);
20
+ static unsigned _find_mode(
21
+ struct ModeInfoBlock *mode_info,
22
+ unsigned long mode_addr,
23
+ int rows, int cols);
24
+ #ifdef PDC_FLAT
25
+ static unsigned long _map_frame_buffer(unsigned long phys_addr,
26
+ unsigned long size);
27
+ static void _unmap_frame_buffer(unsigned long phys_addr);
28
+ #endif
29
+ #if defined(__WATCOMC__) && defined(__386__)
30
+ static int __dpmi_allocate_dos_memory(int paras, int *sel_or_max);
31
+ static int __dpmi_free_dos_memory(int sel);
32
+ static int __dpmi_allocate_ldt_descriptors(int count);
33
+ static int __dpmi_free_ldt_descriptor(int sel);
34
+ static int __dpmi_set_segment_base_address(int sel, unsigned long addr);
35
+ static int __dpmi_set_segment_limit(int sel, unsigned long limit);
36
+ static void dosmemget(unsigned long addr, size_t size, void *buf);
37
+ static void dosmemput(const void *buf, size_t size, unsigned long addr);
38
+ #endif
39
+ static int _psf_font_open(const char *name, bool bold);
40
+ static int _vgafont_open(void);
41
+
42
+ /* _get_scrn_mode() - Return the current BIOS video mode */
43
+
44
+ static int _get_scrn_mode(void)
45
+ {
46
+ PDCREGS regs;
47
+
48
+ memset(&regs, 0, sizeof(regs));
49
+ regs.W.ax = 0x4F03;
50
+ PDCINT(0x10, regs);
51
+ if (regs.h.ah == 0) {
52
+ return (int)regs.W.bx;
53
+ }
54
+
55
+ regs.h.ah = 0x0f;
56
+ PDCINT(0x10, regs);
57
+
58
+ return (int)regs.h.al;
59
+ }
60
+
61
+ /* _set_scrn_mode() - Sets the BIOS Video Mode Number */
62
+
63
+ static void _set_scrn_mode(int new_mode)
64
+ {
65
+ PDCREGS regs;
66
+
67
+ memset(&regs, 0, sizeof(regs));
68
+ if (new_mode >= 0x100) {
69
+ regs.W.ax = 0x4F02;
70
+ regs.W.bx = new_mode;
71
+ } else {
72
+ regs.h.ah = 0;
73
+ regs.h.al = (unsigned char) new_mode;
74
+ }
75
+ PDCINT(0x10, regs);
76
+ PDC_state.scrn_mode = new_mode;
77
+
78
+ LINES = PDC_get_rows();
79
+ COLS = PDC_get_columns();
80
+ }
81
+
82
+ /* close the physical screen -- may restore the screen to its state
83
+ before PDC_scr_open(); miscellaneous cleanup */
84
+
85
+ void PDC_scr_close(void)
86
+ {
87
+ #ifdef PDC_FLAT
88
+ _unmap_frame_buffer(PDC_state.linear_addr);
89
+ __dpmi_free_ldt_descriptor(PDC_state.linear_sel);
90
+ #endif
91
+
92
+ _set_scrn_mode(0x03);
93
+ }
94
+
95
+ void PDC_scr_free(void)
96
+ {
97
+ if (PDC_state.font_close != NULL)
98
+ {
99
+ PDC_state.font_close(FALSE);
100
+ PDC_state.font_close(TRUE);
101
+ }
102
+ }
103
+
104
+ static int default_lines = 25, default_cols = 80;
105
+
106
+ /* Set the location of the underline */
107
+ static void _set_underline(void)
108
+ {
109
+ unsigned width = (PDC_state.font_width + 7) / 8;
110
+ unsigned height = PDC_state.font_height;
111
+ unsigned size = width * height;
112
+ unsigned i;
113
+ const unsigned char *underscore = PDC_state.font_glyph_data(FALSE, 0x5F);
114
+
115
+ /* Set underscore at first line of U+005F that is not blank */
116
+ for (i = 0; i < size; ++i)
117
+ {
118
+ if (underscore[i] != 0)
119
+ {
120
+ PDC_state.underline = i / width;
121
+ return;
122
+ }
123
+ }
124
+
125
+ /* How peculiar; U+005F is blank. Make a guess. */
126
+ PDC_state.underline = PDC_state.font_height * 3 / 4;
127
+ }
128
+
129
+ /* open the physical screen -- miscellaneous initialization, may save
130
+ the existing screen for later restoration */
131
+
132
+ int PDC_scr_open(void)
133
+ {
134
+ const char *normal_font, *bold_font;
135
+ PDCREGS regs;
136
+
137
+ PDC_LOG(("PDC_scr_open() - called\n"));
138
+
139
+ /* Check for VGA and bail out if we don't find one */
140
+ memset(&regs, 0, sizeof(regs));
141
+ regs.W.ax = 0x1A00;
142
+ PDCINT(0x10, regs);
143
+ if (regs.h.bl != 8)
144
+ return ERR;
145
+
146
+ SP = calloc(1, sizeof(SCREEN));
147
+
148
+ if (!SP || PDC_init_palette( ))
149
+ return ERR;
150
+
151
+ /* Set up fonts:
152
+ * * first try PDC_FONT and PDC_FONT_BOLD
153
+ * * Fall back to the ROM font if PDC_FONT is not specified
154
+ * * Width must be 8; height must be not greater than 16; the bold font, if
155
+ * specified, must have the same size as the normal font
156
+ */
157
+ normal_font = getenv("PDC_FONT");
158
+ bold_font = getenv("PDC_FONT_BOLD");
159
+ if (normal_font != NULL && normal_font[0] != '\0')
160
+ {
161
+ if (_psf_font_open(normal_font, FALSE) == 0)
162
+ {
163
+ /* Opened the normal font; try the bold font */
164
+ if (_psf_font_open(bold_font, TRUE) == 0
165
+ && PDC_state.font_char_width(FALSE) == PDC_state.font_char_width(TRUE)
166
+ && PDC_state.font_char_height(FALSE) == PDC_state.font_char_height(TRUE))
167
+ PDC_state.have_bold_font = TRUE;
168
+ }
169
+ }
170
+ if (PDC_state.font_glyph_data == NULL)
171
+ {
172
+ if (_vgafont_open() < 0)
173
+ return ERR;
174
+ PDC_state.have_bold_font = FALSE;
175
+ }
176
+ PDC_state.font_width = PDC_state.font_char_width(FALSE);
177
+ PDC_state.font_height = PDC_state.font_char_height(FALSE);
178
+ _set_underline();
179
+ PDC_resize_screen( default_lines, default_cols);
180
+
181
+ SP->orig_attr = FALSE;
182
+
183
+ SP->mouse_wait = PDC_CLICK_PERIOD;
184
+ SP->audible = TRUE;
185
+
186
+ SP->mono = FALSE;
187
+ SP->termattrs = A_COLOR | A_REVERSE | A_UNDERLINE | A_BLINK;
188
+
189
+ SP->_preserve = FALSE;
190
+
191
+ return OK;
192
+ }
193
+
194
+ /* the core of resize_term() */
195
+
196
+ int PDC_resize_screen(int nlines, int ncols)
197
+ {
198
+ PDC_LOG(("PDC_resize_screen() - called. Lines: %d Cols: %d\n",
199
+ nlines, ncols));
200
+
201
+ if( !PDC_state.font_width)
202
+ { /* Specifying an initial screen */
203
+ default_lines = nlines; /* size before calling initscr(). */
204
+ default_cols = ncols;
205
+ return OK;
206
+ }
207
+
208
+ _set_scrn_mode(_find_video_mode(nlines, ncols));
209
+ _load_palette();
210
+ SP->orig_cursor = PDC_get_cursor_mode();
211
+ PDC_curs_set(SP->visibility);
212
+ if (PDC_state.bits_per_pixel <= 8)
213
+ COLORS = 1 << PDC_state.bits_per_pixel;
214
+ else
215
+ COLORS = 256 + (256 * 256 * 256);
216
+
217
+ return OK;
218
+ }
219
+
220
+ void PDC_reset_prog_mode(void)
221
+ {
222
+ PDC_LOG(("PDC_reset_prog_mode() - called.\n"));
223
+ _load_palette();
224
+ }
225
+
226
+ void PDC_reset_shell_mode(void)
227
+ {
228
+ PDC_LOG(("PDC_reset_shell_mode() - called.\n"));
229
+ }
230
+
231
+ void PDC_restore_screen_mode(int i)
232
+ {
233
+ if (i >= 0 && i <= 2)
234
+ {
235
+ _set_scrn_mode(saved_scrnmode[i]);
236
+ }
237
+ }
238
+
239
+ void PDC_save_screen_mode(int i)
240
+ {
241
+ if (i >= 0 && i <= 2)
242
+ {
243
+ saved_scrnmode[i] = _get_scrn_mode();
244
+ }
245
+ }
246
+
247
+ /* _load_palette -- load the current palette into the DAC */
248
+
249
+ static void _load_palette(void)
250
+ {
251
+ if (PDC_state.bits_per_pixel <= 8)
252
+ {
253
+ PDCREGS regs;
254
+ unsigned i;
255
+
256
+ /* Load EGA palette registers as an identity map */
257
+ for (i = 0; i < 16; i++)
258
+ {
259
+ memset(&regs, 0, sizeof(regs));
260
+ regs.W.ax = 0x1000;
261
+ regs.W.bx = i * 0x0101;
262
+ PDCINT(0x10, regs);
263
+ }
264
+
265
+ /* Set 8 bit DACs if available */
266
+ /* This doesn't seem to work with 4 bit color */
267
+ if (PDC_state.bits_per_pixel == 8)
268
+ {
269
+ unsigned dacmax;
270
+
271
+ memset(&regs, 0, sizeof(regs));
272
+ regs.W.ax = 0x4F08;
273
+ regs.W.bx = 0x0800;
274
+ PDCINT(0x10, regs);
275
+ dacmax = (regs.W.ax == 0x004F) ? (1 << regs.h.bh) - 1 : 63;
276
+ PDC_state.red_max = dacmax;
277
+ PDC_state.green_max = dacmax;
278
+ PDC_state.blue_max = dacmax;
279
+ }
280
+
281
+ /* Load the DAC registers from the current palette */
282
+ for (i = 0; i < 1u << PDC_state.bits_per_pixel; i++)
283
+ {
284
+ int r, g, b;
285
+
286
+ PDC_color_content( i, &r, &g, &b);
287
+ PDC_init_color( i, r, g, b);
288
+ }
289
+ }
290
+ }
291
+
292
+ bool PDC_can_change_color(void)
293
+ {
294
+ return TRUE;
295
+ }
296
+
297
+ int PDC_color_content( int color, int *red, int *green, int *blue)
298
+ {
299
+ const PACKED_RGB col = PDC_get_palette_entry( color);
300
+
301
+ *red = DIVROUND( (int32_t)Get_RValue(col) * (int32_t)1000, (int32_t)255);
302
+ *green = DIVROUND( (int32_t)Get_GValue(col) * (int32_t)1000, (int32_t)255);
303
+ *blue = DIVROUND( (int32_t)Get_BValue(col) * (int32_t)1000, (int32_t)255);
304
+
305
+ return OK;
306
+ }
307
+
308
+ int PDC_init_color(int color, int red, int green, int blue)
309
+ {
310
+ const PACKED_RGB new_rgb = PACK_RGB(DIVROUND((int32_t)red * (int32_t)255, (int32_t)1000),
311
+ DIVROUND((int32_t)green * (int32_t)255, (int32_t)1000),
312
+ DIVROUND((int32_t)blue * (int32_t)255, (int32_t)1000));
313
+
314
+ if( !PDC_set_palette_entry( color, new_rgb))
315
+ curscr->_clear = TRUE;
316
+
317
+ if (PDC_state.bits_per_pixel <= 8)
318
+ {
319
+ /* Scale */
320
+ const unsigned r = DIVROUND((unsigned long)red * PDC_state.red_max, 1000);
321
+ const unsigned g = DIVROUND((unsigned long)green * PDC_state.green_max, 1000);
322
+ const unsigned b = DIVROUND((unsigned long)blue * PDC_state.blue_max, 1000);
323
+ PDCREGS regs;
324
+ #if !defined(PDC_FLAT) && !defined(__WATCOMC__)
325
+ struct SREGS sregs;
326
+ #endif
327
+
328
+ if (PDC_state.scrn_mode >= 0x100)
329
+ {
330
+ /* VESA mode in use; first try the VESA function */
331
+ #ifdef PDC_FLAT
332
+ int seg, sel;
333
+ #endif
334
+ unsigned long table;
335
+
336
+ table = ((unsigned long)b << 0)
337
+ | ((unsigned long)g << 8)
338
+ | ((unsigned long)r << 16);
339
+ #ifdef PDC_FLAT
340
+ seg = __dpmi_allocate_dos_memory(1, &sel);
341
+ if (seg < 0)
342
+ return ERR;
343
+ setdosmemdword(seg * 16L, table);
344
+ #endif
345
+ memset(&regs, 0, sizeof(regs));
346
+ regs.W.ax = 0x4F09;
347
+ regs.h.bl = 0;
348
+ regs.W.cx = 1;
349
+ regs.W.dx = color;
350
+ #ifdef PDC_FLAT
351
+ regs.W.di = 0;
352
+ regs.W.es = seg;
353
+ PDCINT(0x10, regs);
354
+ #elif defined(__WATCOMC__)
355
+ regs.W.di = FP_OFF(&table);
356
+ regs.W.es = FP_SEG(&table);
357
+ PDCINT(0x10, regs);
358
+ #else
359
+ regs.W.di = FP_OFF(&table);
360
+ segread(&sregs);
361
+ sregs.es = FP_SEG(&table);
362
+ int86x(0x10, &regs, &regs, &sregs);
363
+ #endif
364
+ #ifdef PDC_FLAT
365
+ __dpmi_free_dos_memory(sel);
366
+ #endif
367
+ if (regs.W.ax == 0x004F)
368
+ return OK;
369
+ }
370
+
371
+ regs.h.dh = r;
372
+ regs.h.ch = g;
373
+ regs.h.cl = b;
374
+
375
+ /* Set single DAC register */
376
+
377
+ regs.W.ax = 0x1010;
378
+ regs.W.bx = color;
379
+
380
+ PDCINT(0x10, regs);
381
+ }
382
+ return OK;
383
+ }
384
+
385
+ static unsigned _find_video_mode(int rows, int cols)
386
+ {
387
+ #ifdef PDC_FLAT
388
+ int vbe_info_sel = -1; /* custodial */
389
+ int vbe_info_seg;
390
+ #endif
391
+ struct VbeInfoBlock vbe_info;
392
+ PDCREGS regs;
393
+ #if !defined(PDC_FLAT) && !defined(__WATCOMC__)
394
+ struct SREGS sregs;
395
+ #endif
396
+ unsigned long mode_addr;
397
+ struct ModeInfoBlock mode_info;
398
+ unsigned vesa_mode;
399
+
400
+ /* Request VESA BIOS information */
401
+ memset(&vbe_info, 0, sizeof(vbe_info));
402
+ memcpy(vbe_info.VbeSignature, "VBE2", 4);
403
+
404
+ #ifdef PDC_FLAT
405
+ vbe_info_seg = __dpmi_allocate_dos_memory(
406
+ (sizeof(vbe_info) + 15) / 16,
407
+ &vbe_info_sel);
408
+ if (vbe_info_seg < 0)
409
+ goto error;
410
+ dosmemput(&vbe_info, sizeof(vbe_info), vbe_info_seg * 16L);
411
+ #endif
412
+
413
+ memset(&regs, 0, sizeof(regs));
414
+ regs.W.ax = 0x4F00;
415
+ #ifdef PDC_FLAT
416
+ regs.W.di = 0;
417
+ regs.W.es = vbe_info_seg;
418
+ PDCINT(0x10, regs);
419
+ #elif defined(__WATCOMC__)
420
+ regs.W.di = FP_OFF(&vbe_info);
421
+ regs.W.es = FP_SEG(&vbe_info);
422
+ PDCINT(0x10, regs);
423
+ #else
424
+ regs.W.di = FP_OFF(&vbe_info);
425
+ segread(&sregs);
426
+ sregs.es = FP_SEG(&vbe_info);
427
+ int86x(0x10, &regs, &regs, &sregs);
428
+ #endif
429
+
430
+ /* Check for successful completion of function: is VESA BIOS present? */
431
+ if (regs.W.ax != 0x004F)
432
+ goto error;
433
+ #ifdef PDC_FLAT
434
+ dosmemget(vbe_info_seg * 16L, sizeof(vbe_info), &vbe_info);
435
+ #endif
436
+ if (memcmp(vbe_info.VbeSignature, "VESA", 4) != 0)
437
+ goto error;
438
+
439
+ /* Get the address of the mode list */
440
+ /* The mode list may be within the DOS memory area allocated above.
441
+ That area must remain allocated and must not be rewritten until
442
+ we're done here. */
443
+ #ifdef PDC_FLAT
444
+ mode_addr = _FAR_POINTER(vbe_info.VideoModePtr >> 16,
445
+ vbe_info.VideoModePtr & 0xFFFF);
446
+ #else
447
+ mode_addr = vbe_info.VideoModePtr;
448
+ #endif
449
+
450
+ /* Look for the best-fitting mode available */
451
+ vesa_mode = _find_mode(&mode_info, mode_addr, rows, cols);
452
+ if (vesa_mode == 0xFFFF)
453
+ vesa_mode = _find_mode(&mode_info, mode_addr, 0, 0);
454
+ if (vesa_mode == 0xFFFF)
455
+ goto error;
456
+
457
+ /* Set up frame buffer window */
458
+ if ((mode_info.WinAAttributes & 0x2) != 0)
459
+ PDC_state.read_win = 0; /* Read through Window A */
460
+ else if ((mode_info.WinBAttributes & 0x2) != 0)
461
+ PDC_state.read_win = 1; /* Read through Window B */
462
+ else
463
+ goto error; /* shouldn't happen */
464
+ if ((mode_info.WinAAttributes & 0x1) != 0)
465
+ PDC_state.write_win = 0; /* Write through Window A */
466
+ else if ((mode_info.WinBAttributes & 0x1) != 0)
467
+ PDC_state.write_win = 1; /* Write through Window B */
468
+ else
469
+ goto error; /* shouldn't happen */
470
+ PDC_state.window[0] = mode_info.WinASegment;
471
+ PDC_state.window[1] = mode_info.WinBSegment;
472
+ if (vesa_mode == 0x12)
473
+ {
474
+ PDC_state.offset[0] = 0;
475
+ PDC_state.offset[1] = 0;
476
+ }
477
+ else
478
+ {
479
+ PDC_state.offset[0] = 0xFFFFFFFF; /* offset is unknown */
480
+ PDC_state.offset[1] = 0xFFFFFFFF;
481
+ }
482
+ PDC_state.window_size = mode_info.WinSize * 1024L;
483
+ PDC_state.window_gran = mode_info.WinGranularity;
484
+ PDC_state.bytes_per_line = mode_info.BytesPerScanLine;
485
+ PDC_state.video_width = mode_info.XResolution;
486
+ PDC_state.video_height = mode_info.YResolution;
487
+ PDC_state.bits_per_pixel = mode_info.BitsPerPixel;
488
+
489
+ #ifdef PDC_FLAT
490
+ /* Enable the linear frame buffer if available */
491
+ if ((mode_info.ModeAttributes & 0x80) != 0)
492
+ {
493
+ do { /* while (FALSE) */
494
+ unsigned win_size;
495
+ unsigned width;
496
+
497
+ width = (vbe_info.VbeVersion >= 0x300)
498
+ ? mode_info.LinBytesPerScanLine
499
+ : mode_info.BytesPerScanLine;
500
+
501
+ PDC_state.linear_sel = __dpmi_allocate_ldt_descriptors(1);
502
+ if (PDC_state.linear_sel < 0)
503
+ break;
504
+ win_size = width * mode_info.YResolution;
505
+ PDC_state.linear_addr = _map_frame_buffer(mode_info.PhysBasePtr, win_size);
506
+ if (PDC_state.linear_addr == 0)
507
+ {
508
+ __dpmi_free_ldt_descriptor(PDC_state.linear_sel);
509
+ PDC_state.linear_sel = 0;
510
+ break;
511
+ }
512
+ __dpmi_set_segment_base_address(PDC_state.linear_sel, PDC_state.linear_addr);
513
+ __dpmi_set_segment_limit(PDC_state.linear_sel, (win_size - 1) | 0xFFF);
514
+ vesa_mode |= 0x4000;
515
+ PDC_state.bytes_per_line = width;
516
+ } while (FALSE);
517
+ }
518
+ #else
519
+ PDC_state.linear_sel = 0;
520
+ #endif
521
+
522
+ if (PDC_state.bits_per_pixel <= 8)
523
+ {
524
+ PDC_state.red_max = 63;
525
+ PDC_state.green_max = 63;
526
+ PDC_state.blue_max = 63;
527
+ }
528
+ else
529
+ {
530
+ #ifdef PDC_FLAT
531
+ if (PDC_state.linear_sel && vbe_info.VbeVersion >= 0x300)
532
+ {
533
+ PDC_state.red_max = (1 << mode_info.LinRedMaskSize) - 1;
534
+ PDC_state.red_pos = mode_info.LinRedFieldPosition;
535
+ PDC_state.green_max = (1 << mode_info.LinGreenMaskSize) - 1;
536
+ PDC_state.green_pos = mode_info.LinGreenFieldPosition;
537
+ PDC_state.blue_max = (1 << mode_info.LinBlueMaskSize) - 1;
538
+ PDC_state.blue_pos = mode_info.LinBlueFieldPosition;
539
+ }
540
+ else
541
+ #endif
542
+ if (mode_info.ModeAttributes & 0x2)
543
+ {
544
+ PDC_state.red_max = (1 << mode_info.RedMaskSize) - 1;
545
+ PDC_state.red_pos = mode_info.RedFieldPosition;
546
+ PDC_state.green_max = (1 << mode_info.GreenMaskSize) - 1;
547
+ PDC_state.green_pos = mode_info.GreenFieldPosition;
548
+ PDC_state.blue_max = (1 << mode_info.BlueMaskSize) - 1;
549
+ PDC_state.blue_pos = mode_info.BlueFieldPosition;
550
+ }
551
+ else
552
+ {
553
+ switch (PDC_state.bits_per_pixel)
554
+ {
555
+ case 15:
556
+ PDC_state.red_max = 31;
557
+ PDC_state.red_pos = 10;
558
+ PDC_state.green_max = 31;
559
+ PDC_state.green_pos = 5;
560
+ PDC_state.blue_max = 31;
561
+ PDC_state.blue_pos = 0;
562
+ break;
563
+
564
+ case 16:
565
+ PDC_state.red_max = 31;
566
+ PDC_state.red_pos = 11;
567
+ PDC_state.green_max = 63;
568
+ PDC_state.green_pos = 5;
569
+ PDC_state.blue_max = 31;
570
+ PDC_state.blue_pos = 0;
571
+ break;
572
+
573
+ case 24:
574
+ case 32:
575
+ PDC_state.red_max = 255;
576
+ PDC_state.red_pos = 16;
577
+ PDC_state.green_max = 255;
578
+ PDC_state.green_pos = 8;
579
+ PDC_state.blue_max = 255;
580
+ PDC_state.blue_pos = 0;
581
+ break;
582
+ }
583
+ }
584
+ }
585
+
586
+ #ifdef PDC_FLAT
587
+ __dpmi_free_dos_memory(vbe_info_sel);
588
+ #endif
589
+ return vesa_mode;
590
+
591
+ error:
592
+ /* If we can't access the VESA BIOS Extensions for any reason, return the
593
+ 640x480 VGA mode */
594
+ #ifdef PDC_FLAT
595
+ if (vbe_info_sel != -1)
596
+ __dpmi_free_dos_memory(vbe_info_sel);
597
+ #endif
598
+
599
+ PDC_state.bits_per_pixel = 4;
600
+ PDC_state.video_width = 640;
601
+ PDC_state.video_height = 480;
602
+ PDC_state.bytes_per_line = 80;
603
+ PDC_state.read_win = 0;
604
+ PDC_state.write_win = 0;
605
+ PDC_state.window[0] = 0xA000;
606
+ PDC_state.window[1] = 0xA000;
607
+ PDC_state.offset[0] = 0;
608
+ PDC_state.offset[1] = 0;
609
+ PDC_state.window_size = (640/8) * 480;
610
+ PDC_state.window_gran = 1;
611
+ PDC_state.red_max = 63;
612
+ PDC_state.green_max = 63;
613
+ PDC_state.blue_max = 63;
614
+
615
+ return 0x12;
616
+ }
617
+
618
+ static unsigned _find_mode(
619
+ struct ModeInfoBlock *mode_info,
620
+ unsigned long mode_addr,
621
+ int rows, int cols)
622
+ {
623
+ unsigned selected_mode;
624
+ unsigned long selected_size;
625
+ unsigned selected_bits;
626
+
627
+ selected_mode = 0xFFFF;
628
+ selected_size = (rows == 0 && cols == 0) ? 0 : 0xFFFFFFFF;
629
+ selected_bits = 0;
630
+
631
+ if (rows * PDC_state.font_height <= 480 && cols * PDC_state.font_width <= 640)
632
+ {
633
+ /* Set up a ModeInfoBlock for mode 0x0012 */
634
+ unsigned new_rows = 480 / PDC_state.font_height;
635
+ unsigned new_cols = 640 / PDC_state.font_width;
636
+ selected_mode = 0x0012;
637
+ selected_size = new_rows * new_cols;
638
+ selected_bits = 4;
639
+ memset(mode_info, 0, sizeof(*mode_info));
640
+ mode_info->ModeAttributes = 0x1F;
641
+ mode_info->WinAAttributes = 0x07;
642
+ mode_info->WinBAttributes = 0x00;
643
+ mode_info->WinGranularity = 1;
644
+ mode_info->WinSize = 38;
645
+ mode_info->WinASegment = 0xA000;
646
+ mode_info->WinBSegment = 0;
647
+ mode_info->WinFuncPtr = 0;
648
+ mode_info->BytesPerScanLine = 80;
649
+ mode_info->XResolution = 640;
650
+ mode_info->YResolution = 480;
651
+ mode_info->NumberOfPlanes = 4;
652
+ mode_info->BitsPerPixel = 4;
653
+ mode_info->NumberOfBanks = 1;
654
+ mode_info->MemoryModel = 3;
655
+ }
656
+
657
+ while (1)
658
+ {
659
+ unsigned mode;
660
+ struct ModeInfoBlock mode_info0;
661
+ unsigned new_rows, new_cols;
662
+ unsigned long new_size;
663
+
664
+ mode = getdosmemword(mode_addr);
665
+ if (mode == 0xFFFF)
666
+ break;
667
+ mode_addr += 2;
668
+
669
+ /* Query the mode info; skip if not supported */
670
+ if (_get_mode_info(mode, &mode_info0) < 0)
671
+ continue;
672
+
673
+ /* Check that the mode is acceptable: */
674
+ /* Supported, graphics mode, color, VGA compatible */
675
+ if ((mode_info0.ModeAttributes & 0x79) != 0x19)
676
+ continue;
677
+ /* Bits per pixel and memory model are acceptable */
678
+ switch (mode_info0.BitsPerPixel)
679
+ {
680
+ case 4:
681
+ if (mode_info0.MemoryModel != 3) /* Planar */
682
+ continue;
683
+ if (mode_info0.NumberOfPlanes != 4)
684
+ continue;
685
+ break;
686
+
687
+ case 8:
688
+ if (mode_info0.MemoryModel != 4) /* Packed pixel */
689
+ continue;
690
+ if (mode_info0.NumberOfPlanes != 1)
691
+ continue;
692
+ break;
693
+
694
+ case 15:
695
+ case 16:
696
+ case 24:
697
+ case 32:
698
+ if (mode_info0.MemoryModel != 6) /* Direct color */
699
+ continue;
700
+ if (mode_info0.NumberOfPlanes != 1)
701
+ continue;
702
+ break;
703
+
704
+ default:
705
+ continue;
706
+ }
707
+
708
+ /* At least as many rows and columns as requested */
709
+ new_cols = mode_info0.XResolution / PDC_state.font_width;
710
+ new_rows = mode_info0.YResolution / PDC_state.font_height;
711
+ if (new_cols < (unsigned)cols || new_rows < (unsigned)rows)
712
+ continue;
713
+
714
+ /* Among modes that are large enough for rows and cols, choose one
715
+ with the most bits per pixel. Among modes with the same pixel depth,
716
+ if rows == 0 and cols == 0, select the largest available size;
717
+ otherwise, select the smallest that can hold that many rows and
718
+ columns. */
719
+ if (mode_info0.BitsPerPixel < selected_bits)
720
+ continue;
721
+ new_size = (unsigned long)new_rows * new_cols;
722
+ if (mode_info0.BitsPerPixel == selected_bits)
723
+ {
724
+ if (rows == 0 && cols == 0)
725
+ {
726
+ if (new_size <= selected_size)
727
+ continue;
728
+ }
729
+ else
730
+ {
731
+ if (new_size >= selected_size)
732
+ continue;
733
+ }
734
+ }
735
+
736
+ /* Select this mode, pending discovery of a better one */
737
+ selected_mode = mode;
738
+ selected_size = new_size;
739
+ selected_bits = mode_info0.BitsPerPixel;
740
+ *mode_info = mode_info0;
741
+ }
742
+
743
+ return selected_mode;
744
+ }
745
+
746
+ static int _get_mode_info(unsigned mode, struct ModeInfoBlock *mode_info)
747
+ {
748
+ struct OldModeInfo
749
+ {
750
+ unsigned mode;
751
+
752
+ unsigned short XResolution; /* horizontal resolution in pixels or characters */
753
+ unsigned short YResolution; /* vertical resolution in pixels or characters */
754
+ unsigned char BitsPerPixel; /* bits per pixel */
755
+ };
756
+ static const struct OldModeInfo old_mode_table[] =
757
+ {
758
+ { 0x0100, 640, 480, 4 },
759
+ { 0x0101, 640, 480, 8 },
760
+ { 0x0102, 800, 600, 4 },
761
+ { 0x0103, 800, 600, 8 },
762
+ { 0x0104, 1024, 768, 4 },
763
+ { 0x0105, 1024, 768, 8 },
764
+ { 0x0106, 1280, 1024, 4 },
765
+ { 0x0107, 1280, 1024, 8 },
766
+ { 0x010D, 320, 200, 15 },
767
+ { 0x010E, 320, 200, 16 },
768
+ { 0x010F, 320, 200, 24 },
769
+ { 0x0110, 640, 480, 15 },
770
+ { 0x0111, 640, 480, 16 },
771
+ { 0x0112, 640, 480, 24 },
772
+ { 0x0113, 800, 600, 15 },
773
+ { 0x0114, 800, 600, 16 },
774
+ { 0x0115, 800, 600, 24 },
775
+ { 0x0116, 1024, 768, 15 },
776
+ { 0x0117, 1024, 768, 16 },
777
+ { 0x0118, 1024, 768, 24 },
778
+ { 0x0119, 1280, 1024, 15 },
779
+ { 0x011A, 1280, 1024, 16 },
780
+ { 0x011B, 1280, 1024, 24 },
781
+ /* sentinel */
782
+ { 0, 0, 0, 0 }
783
+ };
784
+
785
+ #ifdef PDC_FLAT
786
+ int mode_info_sel = -1; /* custodial */
787
+ int mode_info_seg;
788
+ #endif
789
+ PDCREGS regs;
790
+ #if !defined(PDC_FLAT) && !defined(__WATCOMC__)
791
+ struct SREGS sregs;
792
+ #endif
793
+
794
+ memset(mode_info, 0, sizeof(*mode_info));
795
+ #ifdef PDC_FLAT
796
+ mode_info_seg = __dpmi_allocate_dos_memory(
797
+ (sizeof(*mode_info) + 15) / 16,
798
+ &mode_info_sel);
799
+ if (mode_info_seg < 0)
800
+ goto error;
801
+ dosmemput(mode_info, sizeof(*mode_info), mode_info_seg * 16L);
802
+ #endif
803
+
804
+ memset(&regs, 0, sizeof(regs));
805
+ regs.W.ax = 0x4F01;
806
+ regs.W.cx = mode;
807
+ #ifdef PDC_FLAT
808
+ regs.W.di = 0;
809
+ regs.W.es = mode_info_seg;
810
+ PDCINT(0x10, regs);
811
+ #elif defined(__WATCOMC__)
812
+ regs.W.di = FP_OFF(mode_info);
813
+ regs.W.es = FP_SEG(mode_info);
814
+ PDCINT(0x10, regs);
815
+ #else
816
+ regs.W.di = FP_OFF(mode_info);
817
+ segread(&sregs);
818
+ sregs.es = FP_SEG(mode_info);
819
+ int86x(0x10, &regs, &regs, &sregs);
820
+ #endif
821
+
822
+ if (regs.W.ax != 0x004F)
823
+ goto error;
824
+ #ifdef PDC_FLAT
825
+ dosmemget(mode_info_seg * 16L, sizeof(*mode_info), mode_info);
826
+ #endif
827
+ if (!(mode_info->ModeAttributes & 0x0001))
828
+ goto error;
829
+
830
+ if (!(mode_info->ModeAttributes & 0x0002))
831
+ {
832
+ /* Older VESA BIOS that did not return certain mode properties, but
833
+ that has fixed mode numbers; search the table to find the right
834
+ mode properties */
835
+
836
+ unsigned i;
837
+
838
+ for (i = 0; old_mode_table[i].mode != 0; ++i)
839
+ {
840
+ if (mode == old_mode_table[i].mode)
841
+ break;
842
+ }
843
+ if (old_mode_table[i].mode == 0)
844
+ goto error;
845
+
846
+ mode_info->XResolution = old_mode_table[i].XResolution;
847
+ mode_info->YResolution = old_mode_table[i].YResolution;
848
+ mode_info->BitsPerPixel = old_mode_table[i].BitsPerPixel;
849
+ mode_info->NumberOfBanks = 1;
850
+ switch (mode_info->BitsPerPixel)
851
+ {
852
+ case 4:
853
+ mode_info->NumberOfPlanes = 4;
854
+ mode_info->MemoryModel = 3;
855
+ break;
856
+
857
+ case 8:
858
+ mode_info->NumberOfPlanes = 1;
859
+ mode_info->MemoryModel = 4;
860
+ break;
861
+
862
+ default:
863
+ mode_info->NumberOfPlanes = 1;
864
+ mode_info->MemoryModel = 6;
865
+ break;
866
+ }
867
+ }
868
+
869
+ #ifdef PDC_FLAT
870
+ __dpmi_free_dos_memory(mode_info_sel);
871
+ #endif
872
+ return TRUE;
873
+
874
+ error:
875
+ #ifdef PDC_FLAT
876
+ if (mode_info_sel != -1)
877
+ __dpmi_free_dos_memory(mode_info_sel);
878
+ #endif
879
+ return FALSE;
880
+ }
881
+
882
+ /* Make a physical address mapping, to support the linear frame buffer */
883
+ #ifdef __DJGPP__
884
+ static unsigned long
885
+ _map_frame_buffer(unsigned long phys_addr, unsigned long size)
886
+ {
887
+ __dpmi_meminfo info;
888
+ int rc;
889
+
890
+ info.handle = 0;
891
+ info.address = phys_addr;
892
+ info.size = size;
893
+ rc = __dpmi_physical_address_mapping(&info);
894
+
895
+ return rc == 0 ? info.address : 0;
896
+ }
897
+
898
+ static void
899
+ _unmap_frame_buffer(unsigned long phys_addr)
900
+ {
901
+ __dpmi_meminfo info;
902
+
903
+ info.handle = 0;
904
+ info.address = phys_addr;
905
+ info.size = 0;
906
+ __dpmi_free_physical_address_mapping(&info);
907
+ }
908
+ #elif defined(__WATCOMC__) && defined(__386__)
909
+ static unsigned long
910
+ _map_frame_buffer(unsigned long phys_addr, unsigned long size)
911
+ {
912
+ unsigned flags = 0;
913
+ unsigned long r_bxcx = 0;
914
+
915
+ _asm {
916
+ mov ecx, phys_addr;
917
+ mov ebx, ecx;
918
+ shr ebx, 16;
919
+ mov edi, size;
920
+ mov esi, edi;
921
+ shr esi, 16;
922
+ mov eax, 0x0800;
923
+ int 0x31;
924
+ pushfd;
925
+ pop flags;
926
+ shl ebx, 16;
927
+ mov bx, cx;
928
+ mov r_bxcx, ebx;
929
+ }
930
+
931
+ return (flags & 1) ? 0 : r_bxcx;
932
+ }
933
+
934
+ static void
935
+ _unmap_frame_buffer(unsigned long phys_addr)
936
+ {
937
+ _asm {
938
+ mov ecx, phys_addr;
939
+ mov ebx, ecx;
940
+ shr ebx, 16;
941
+ mov eax, 0x0801;
942
+ int 0x31;
943
+ }
944
+ }
945
+ #endif
946
+
947
+ /* DOS memory allocation routines as defined by DJGPP, for use by Watcom */
948
+ #if defined(__WATCOMC__) && defined(__386__)
949
+ static int __dpmi_allocate_dos_memory(int paras, int *sel_or_max)
950
+ {
951
+ int flags = 0, r_ax = 0, r_bx = 0, r_dx = 0;
952
+
953
+ _asm {
954
+ mov ebx, paras;
955
+ mov eax, 0x0100;
956
+ int 0x31;
957
+ pushfd;
958
+ pop flags;
959
+ mov r_ax, eax;
960
+ mov r_bx, ebx;
961
+ mov r_dx, edx;
962
+ }
963
+ if (flags & 0x01)
964
+ {
965
+ /* carry set */
966
+ *sel_or_max = r_bx;
967
+ return -1;
968
+ }
969
+ else
970
+ {
971
+ /* carry clear */
972
+ *sel_or_max = r_dx;
973
+ return r_ax;
974
+ }
975
+ }
976
+
977
+ static int __dpmi_free_dos_memory(int sel)
978
+ {
979
+ int flags = 0;
980
+
981
+ _asm {
982
+ mov edx, sel;
983
+ mov eax, 0x0101;
984
+ int 0x31;
985
+ pushfd;
986
+ pop flags;
987
+ }
988
+ return (flags & 0x01) ? -1 : 0;
989
+ }
990
+
991
+ static int __dpmi_allocate_ldt_descriptors(int count)
992
+ {
993
+ int flags = 0;
994
+ int r_eax = 0;
995
+
996
+ _asm {
997
+ mov ecx, count;
998
+ mov eax, 0x0000;
999
+ int 0x31;
1000
+ pushfd;
1001
+ pop flags;
1002
+ mov r_eax, eax;
1003
+ }
1004
+
1005
+ return (flags & 0x01) ? -1 : r_eax;
1006
+ }
1007
+
1008
+ static int __dpmi_free_ldt_descriptor(int sel)
1009
+ {
1010
+ int flags = 0;
1011
+
1012
+ _asm {
1013
+ mov ebx, sel;
1014
+ mov eax, 0x0001;
1015
+ int 0x31;
1016
+ pushfd;
1017
+ pop flags;
1018
+ }
1019
+ return (flags & 0x01) ? -1 : 0;
1020
+ }
1021
+
1022
+ static int __dpmi_set_segment_base_address(int sel, unsigned long addr)
1023
+ {
1024
+ int flags = 0;
1025
+
1026
+ _asm {
1027
+ mov ebx, sel;
1028
+ mov edx, addr;
1029
+ mov ecx, edx;
1030
+ shr ecx, 16;
1031
+ mov eax, 0x0007;
1032
+ int 0x31;
1033
+ pushfd;
1034
+ pop flags;
1035
+ }
1036
+
1037
+ return (flags & 0x01) ? -1 : 0;
1038
+ }
1039
+
1040
+ static int __dpmi_set_segment_limit(int sel, unsigned long limit)
1041
+ {
1042
+ int flags = 0;
1043
+
1044
+ _asm {
1045
+ mov ebx, sel;
1046
+ mov edx, limit;
1047
+ mov ecx, edx;
1048
+ shr ecx, 16;
1049
+ mov eax, 0x0008;
1050
+ int 0x31;
1051
+ pushfd;
1052
+ pop flags;
1053
+ }
1054
+
1055
+ return (flags & 0x01) ? -1 : 0;
1056
+ }
1057
+
1058
+ static void dosmemget(unsigned long addr, size_t size, void *buf)
1059
+ {
1060
+ memcpy(buf, (const void *)addr, size);
1061
+ }
1062
+
1063
+ static void dosmemput(const void *buf, size_t size, unsigned long addr)
1064
+ {
1065
+ memcpy((void *)addr, buf, size);
1066
+ }
1067
+ #endif
1068
+
1069
+ /*****************************************************************************
1070
+ * Support for a built-in 16 line font *
1071
+ *****************************************************************************/
1072
+
1073
+ static void _vgafont_close(bool bold);
1074
+ static unsigned _vgafont_char_width(bool bold);
1075
+ static unsigned _vgafont_char_height(bool bold);
1076
+ static const unsigned char *_vgafont_glyph_data(bool bold, unsigned long pos);
1077
+
1078
+ #ifdef PDC_WIDE
1079
+ /* This maps Unicode to CP437 */
1080
+
1081
+ static const struct
1082
+ {
1083
+ unsigned short uni;
1084
+ unsigned char pos;
1085
+ } cp437_map[] =
1086
+ {
1087
+ /* Regular mappings */
1088
+ { 0x0000, 0x00 },
1089
+ { 0x263A, 0x01 },
1090
+ { 0x263B, 0x02 },
1091
+ { 0x2665, 0x03 },
1092
+ { 0x2666, 0x04 },
1093
+ { 0x2663, 0x05 },
1094
+ { 0x2660, 0x06 },
1095
+ { 0x2022, 0x07 },
1096
+ { 0x25D8, 0x08 },
1097
+ { 0x25CB, 0x09 },
1098
+ { 0x25D9, 0x0A },
1099
+ { 0x2642, 0x0B },
1100
+ { 0x2640, 0x0C },
1101
+ { 0x266A, 0x0D },
1102
+ { 0x266B, 0x0E },
1103
+ { 0x263C, 0x0F },
1104
+ { 0x25BA, 0x10 },
1105
+ { 0x25C4, 0x11 },
1106
+ { 0x2195, 0x12 },
1107
+ { 0x203C, 0x13 },
1108
+ { 0x00B6, 0x14 },
1109
+ { 0x00A7, 0x15 },
1110
+ { 0x25AC, 0x16 },
1111
+ { 0x21A8, 0x17 },
1112
+ { 0x2191, 0x18 },
1113
+ { 0x2193, 0x19 },
1114
+ { 0x2192, 0x1A },
1115
+ { 0x2190, 0x1B },
1116
+ { 0x221F, 0x1C },
1117
+ { 0x2194, 0x1D },
1118
+ { 0x25B2, 0x1E },
1119
+ { 0x25BC, 0x1F },
1120
+ { 0x2302, 0x7F },
1121
+ { 0x00C7, 0x80 },
1122
+ { 0x00FC, 0x81 },
1123
+ { 0x00E9, 0x82 },
1124
+ { 0x00E2, 0x83 },
1125
+ { 0x00E4, 0x84 },
1126
+ { 0x00E0, 0x85 },
1127
+ { 0x00E5, 0x86 },
1128
+ { 0x00E7, 0x87 },
1129
+ { 0x00EA, 0x88 },
1130
+ { 0x00EB, 0x89 },
1131
+ { 0x00E8, 0x8A },
1132
+ { 0x00EF, 0x8B },
1133
+ { 0x00EE, 0x8C },
1134
+ { 0x00EC, 0x8D },
1135
+ { 0x00C4, 0x8E },
1136
+ { 0x00C5, 0x8F },
1137
+ { 0x00C9, 0x90 },
1138
+ { 0x00E6, 0x91 },
1139
+ { 0x00C6, 0x92 },
1140
+ { 0x00F4, 0x93 },
1141
+ { 0x00F6, 0x94 },
1142
+ { 0x00F2, 0x95 },
1143
+ { 0x00FB, 0x96 },
1144
+ { 0x00F9, 0x97 },
1145
+ { 0x00FF, 0x98 },
1146
+ { 0x00D6, 0x99 },
1147
+ { 0x00DC, 0x9A },
1148
+ { 0x00A2, 0x9B },
1149
+ { 0x00A3, 0x9C },
1150
+ { 0x00A5, 0x9D },
1151
+ { 0x20A7, 0x9E },
1152
+ { 0x0192, 0x9F },
1153
+ { 0x00E1, 0xA0 },
1154
+ { 0x00ED, 0xA1 },
1155
+ { 0x00F3, 0xA2 },
1156
+ { 0x00FA, 0xA3 },
1157
+ { 0x00F1, 0xA4 },
1158
+ { 0x00D1, 0xA5 },
1159
+ { 0x00AA, 0xA6 },
1160
+ { 0x00BA, 0xA7 },
1161
+ { 0x00BF, 0xA8 },
1162
+ { 0x2310, 0xA9 },
1163
+ { 0x00AC, 0xAA },
1164
+ { 0x00BD, 0xAB },
1165
+ { 0x00BC, 0xAC },
1166
+ { 0x00A1, 0xAD },
1167
+ { 0x00AB, 0xAE },
1168
+ { 0x00BB, 0xAF },
1169
+ { 0x2591, 0xB0 },
1170
+ { 0x2592, 0xB1 },
1171
+ { 0x2593, 0xB2 },
1172
+ { 0x2502, 0xB3 },
1173
+ { 0x2524, 0xB4 },
1174
+ { 0x2561, 0xB5 },
1175
+ { 0x2562, 0xB6 },
1176
+ { 0x2556, 0xB7 },
1177
+ { 0x2555, 0xB8 },
1178
+ { 0x2563, 0xB9 },
1179
+ { 0x2551, 0xBA },
1180
+ { 0x2557, 0xBB },
1181
+ { 0x255D, 0xBC },
1182
+ { 0x255C, 0xBD },
1183
+ { 0x255B, 0xBE },
1184
+ { 0x2510, 0xBF },
1185
+ { 0x2514, 0xC0 },
1186
+ { 0x2534, 0xC1 },
1187
+ { 0x252C, 0xC2 },
1188
+ { 0x251C, 0xC3 },
1189
+ { 0x2500, 0xC4 },
1190
+ { 0x253C, 0xC5 },
1191
+ { 0x255E, 0xC6 },
1192
+ { 0x255F, 0xC7 },
1193
+ { 0x255A, 0xC8 },
1194
+ { 0x2554, 0xC9 },
1195
+ { 0x2569, 0xCA },
1196
+ { 0x2566, 0xCB },
1197
+ { 0x2560, 0xCC },
1198
+ { 0x2550, 0xCD },
1199
+ { 0x256C, 0xCE },
1200
+ { 0x2567, 0xCF },
1201
+ { 0x2568, 0xD0 },
1202
+ { 0x2564, 0xD1 },
1203
+ { 0x2565, 0xD2 },
1204
+ { 0x2559, 0xD3 },
1205
+ { 0x2558, 0xD4 },
1206
+ { 0x2552, 0xD5 },
1207
+ { 0x2553, 0xD6 },
1208
+ { 0x256B, 0xD7 },
1209
+ { 0x256A, 0xD8 },
1210
+ { 0x2518, 0xD9 },
1211
+ { 0x250C, 0xDA },
1212
+ { 0x2588, 0xDB },
1213
+ { 0x2584, 0xDC },
1214
+ { 0x258C, 0xDD },
1215
+ { 0x2590, 0xDE },
1216
+ { 0x2580, 0xDF },
1217
+ { 0x03B1, 0xE0 },
1218
+ { 0x00DF, 0xE1 },
1219
+ { 0x0393, 0xE2 },
1220
+ { 0x03C0, 0xE3 },
1221
+ { 0x03A3, 0xE4 },
1222
+ { 0x03C3, 0xE5 },
1223
+ { 0x00B5, 0xE6 },
1224
+ { 0x03C4, 0xE7 },
1225
+ { 0x03A6, 0xE8 },
1226
+ { 0x0398, 0xE9 },
1227
+ { 0x03A9, 0xEA },
1228
+ { 0x03B4, 0xEB },
1229
+ { 0x221E, 0xEC },
1230
+ { 0x03C6, 0xED },
1231
+ { 0x03B5, 0xEE },
1232
+ { 0x2229, 0xEF },
1233
+ { 0x2261, 0xF0 },
1234
+ { 0x00B1, 0xF1 },
1235
+ { 0x2265, 0xF2 },
1236
+ { 0x2264, 0xF3 },
1237
+ { 0x2320, 0xF4 },
1238
+ { 0x2321, 0xF5 },
1239
+ { 0x00F7, 0xF6 },
1240
+ { 0x2248, 0xF7 },
1241
+ { 0x00B0, 0xF8 },
1242
+ { 0x2219, 0xF9 },
1243
+ { 0x00B7, 0xFA },
1244
+ { 0x221A, 0xFB },
1245
+ { 0x207F, 0xFC },
1246
+ { 0x00B2, 0xFD },
1247
+ { 0x25A0, 0xFE },
1248
+ { 0x00A0, 0xFF },
1249
+ /* Extra mappings so ACS_* will work */
1250
+ { 0x00A4, 0x0F },
1251
+ { 0x2260, 0xD8 },
1252
+ { 0x23BA, 0x2D },
1253
+ { 0x23BB, 0x2D },
1254
+ { 0x23BC, 0x2D },
1255
+ { 0x23BD, 0x5F }
1256
+ };
1257
+
1258
+ #define NO_CHAR 0xFE
1259
+ static unsigned char pages[10][256];
1260
+ static unsigned char *map[256];
1261
+
1262
+ static void _build_rom_map(void)
1263
+ {
1264
+ unsigned page = 0;
1265
+ unsigned i;
1266
+
1267
+ memset(pages, NO_CHAR, sizeof(pages));
1268
+ for (i = 0; i < 256; ++i)
1269
+ map[i] = NULL;
1270
+ /* Map ASCII as identity */
1271
+ map[0] = pages[page++];
1272
+ for (i = 0x20; i <= 0x7E; ++i)
1273
+ map[0][i] = i;
1274
+ /* Map according to the list */
1275
+ for (i = 0; i < sizeof(cp437_map)/sizeof(cp437_map[0]); ++i)
1276
+ {
1277
+ unsigned cp = cp437_map[i].uni;
1278
+ unsigned t1 = cp >> 8;
1279
+ unsigned t2 = cp & 0xFF;
1280
+ if (map[t1] == NULL)
1281
+ {
1282
+ if (page >= sizeof(pages)/sizeof(pages[0]))
1283
+ {
1284
+ fprintf(stderr, "Need to adjust size of pages array\n)");
1285
+ abort();
1286
+ }
1287
+ map[t1] = pages[page++];
1288
+ }
1289
+ map[t1][t2] = cp437_map[i].pos;
1290
+ }
1291
+ }
1292
+
1293
+ static unsigned char _unicode_to_cp437(unsigned long cp)
1294
+ {
1295
+ unsigned t1, t2;
1296
+
1297
+ if (cp > 0xFFFF)
1298
+ return NO_CHAR;
1299
+ t1 = cp >> 8;
1300
+ t2 = cp & 0xFF;
1301
+ if (map[t1] == NULL)
1302
+ return NO_CHAR;
1303
+ return map[t1][t2];
1304
+ }
1305
+ #endif
1306
+
1307
+ static int _vgafont_open(void)
1308
+ {
1309
+ #ifdef PDC_WIDE
1310
+ _build_rom_map();
1311
+ #endif
1312
+ PDC_state.font_close = _vgafont_close;
1313
+ PDC_state.font_char_width = _vgafont_char_width;
1314
+ PDC_state.font_char_height = _vgafont_char_height;
1315
+ PDC_state.font_glyph_data = _vgafont_glyph_data;
1316
+ return 0;
1317
+ }
1318
+
1319
+ static void _vgafont_close(bool bold)
1320
+ {
1321
+ INTENTIONALLY_UNUSED_PARAMETER(bold);
1322
+ /* no operation */
1323
+ }
1324
+
1325
+ static unsigned _vgafont_char_width(bool bold)
1326
+ {
1327
+ INTENTIONALLY_UNUSED_PARAMETER(bold);
1328
+ return 8;
1329
+ }
1330
+
1331
+ static unsigned _vgafont_char_height(bool bold)
1332
+ {
1333
+ INTENTIONALLY_UNUSED_PARAMETER(bold);
1334
+ return 14;
1335
+ }
1336
+
1337
+ static const unsigned char *_vgafont_glyph_data(bool bold, unsigned long pos)
1338
+ {
1339
+ unsigned pos437;
1340
+ INTENTIONALLY_UNUSED_PARAMETER(bold);
1341
+ #ifdef PDC_WIDE
1342
+ pos437 = _unicode_to_cp437(pos);
1343
+ #else
1344
+ pos437 = pos & 0xFF;
1345
+ #endif
1346
+ return font_bytes + pos437*14;
1347
+ }
1348
+
1349
+ /*****************************************************************************
1350
+ * Support for PSF fonts *
1351
+ *****************************************************************************/
1352
+
1353
+ /* PSF specification from:
1354
+ https://www.win.tue.nl/~aeb/linux/kbd/font-formats-1.html
1355
+ Only PSF version 2 is supported. */
1356
+
1357
+ #define PSF2_MAGIC "\x72\xb5\x4A\x86"
1358
+
1359
+ /* bits used in flags */
1360
+ #define PSF2_HAS_UNICODE_TABLE 0x01
1361
+
1362
+ /* max version recognized so far */
1363
+ #define PSF2_MAXVERSION 0
1364
+
1365
+ /* UTF8 separators */
1366
+ #define PSF2_SEPARATOR 0xFF
1367
+ #define PSF2_STARTSEQ 0xFE
1368
+
1369
+ struct psf2_header
1370
+ {
1371
+ unsigned char magic[4];
1372
+ unsigned long version;
1373
+ unsigned long headersize; /* offset of bitmaps in file */
1374
+ unsigned long flags;
1375
+ unsigned long length; /* number of glyphs */
1376
+ unsigned long charsize; /* number of bytes for each character */
1377
+ unsigned long height, width; /* max dimensions of glyphs */
1378
+ /* charsize = height * ((width + 7) / 8) */
1379
+ };
1380
+
1381
+ /* Information about a single font */
1382
+ struct font_data
1383
+ {
1384
+ struct psf2_header header;
1385
+ unsigned char **glyphs; /* Bits from the font */
1386
+ size_t **map[17]; /* Map code points to font positions */
1387
+ unsigned char *blank; /* Default glyph */
1388
+ };
1389
+
1390
+ static struct font_data psf_fonts[2]; /* normal and bold */
1391
+
1392
+ static void _psf_font_close(bool bold);
1393
+ static unsigned _psf_font_char_width(bool bold);
1394
+ static unsigned _psf_font_char_height(bool bold);
1395
+ static const unsigned char *_psf_font_glyph_data(
1396
+ bool bold, unsigned long codepoint);
1397
+ static void _psf_font_do_close(struct font_data *fdata);
1398
+ static long _psf_font_read_utf8(FILE *fp);
1399
+ static int _psf_font_map_char(struct font_data *fdata, long codepoint,
1400
+ size_t pos);
1401
+ static const unsigned char *_psf_font_do_glyph_data(
1402
+ struct font_data *fdata, long codepoint);
1403
+
1404
+ /* Open the font with the given file name, as the normal or the bold font.
1405
+ * Return 0 if OK, -1 on any error. */
1406
+ static int _psf_font_open(const char *name, bool bold)
1407
+ {
1408
+ struct font_data *fdata = &psf_fonts[bold != 0];
1409
+ FILE *fp;
1410
+ size_t size;
1411
+ size_t pos;
1412
+
1413
+ memset(fdata, 0, sizeof(*fdata));
1414
+
1415
+ fp = fopen(name, "rb");
1416
+ if (fp == NULL)
1417
+ goto error;
1418
+
1419
+ /* Read and check the header */
1420
+ size = fread(&fdata->header, sizeof(fdata->header), 1, fp);
1421
+ if (size != 1)
1422
+ goto error;
1423
+ if (memcmp(fdata->header.magic, PSF2_MAGIC, 4) != 0)
1424
+ goto error;
1425
+ if (fdata->header.charsize < fdata->header.height * ((fdata->header.width + 7) / 8))
1426
+ goto error;
1427
+
1428
+ /* Read the bitmap data */
1429
+ if (fdata->header.length != (size_t)fdata->header.length)
1430
+ goto error; /* only possible if size_t has less than four bytes */
1431
+ fdata->glyphs = calloc(fdata->header.length, sizeof(fdata->glyphs[0]));
1432
+ if (fdata->glyphs == NULL)
1433
+ goto error;
1434
+ for (pos = 0; pos < fdata->header.length; ++pos)
1435
+ {
1436
+ fdata->glyphs[pos] = malloc(fdata->header.charsize);
1437
+ if (fdata->glyphs[pos] == NULL)
1438
+ goto error;
1439
+ size = fread(fdata->glyphs[pos], 1, fdata->header.charsize, fp);
1440
+ if (size != fdata->header.charsize)
1441
+ goto error;
1442
+ }
1443
+
1444
+ /* Read the Unicode mapping if one is indicated */
1445
+ if (fdata->header.flags & PSF2_HAS_UNICODE_TABLE)
1446
+ {
1447
+ pos = 0;
1448
+ while (1)
1449
+ {
1450
+ long codepoint = _psf_font_read_utf8(fp);
1451
+ if (codepoint == -PSF2_STARTSEQ)
1452
+ {
1453
+ /* Introduces a sequence of combining characters; these are
1454
+ * not supported */
1455
+ do
1456
+ {
1457
+ codepoint = _psf_font_read_utf8(fp);
1458
+ } while (codepoint != -1 && codepoint != -PSF2_SEPARATOR);
1459
+ }
1460
+ if (codepoint == -PSF2_SEPARATOR)
1461
+ {
1462
+ ++pos; /* next glyph position */
1463
+ }
1464
+ else if (codepoint < 0)
1465
+ {
1466
+ break; /* end of file or error */
1467
+ }
1468
+ else
1469
+ {
1470
+ /* single code point mapped to the current position */
1471
+ if (pos >= fdata->header.length)
1472
+ goto error;
1473
+ if (_psf_font_map_char(fdata, codepoint, pos) < 0)
1474
+ goto error;
1475
+ }
1476
+ }
1477
+ }
1478
+
1479
+ /* Provide a blank glyph for nonexistent mappings */
1480
+ if (_psf_font_do_glyph_data(fdata, 0xFFFD) == NULL)
1481
+ {
1482
+ fdata->blank = calloc(1, fdata->header.charsize);
1483
+ if (fdata->blank == NULL)
1484
+ goto error;
1485
+ }
1486
+ else
1487
+ {
1488
+ fdata->blank = NULL;
1489
+ }
1490
+
1491
+ fclose(fp);
1492
+ PDC_state.font_close = _psf_font_close;
1493
+ PDC_state.font_char_width = _psf_font_char_width;
1494
+ PDC_state.font_char_height = _psf_font_char_height;
1495
+ PDC_state.font_glyph_data = _psf_font_glyph_data;
1496
+ return 0;
1497
+
1498
+ error:
1499
+ if (fp != NULL)
1500
+ fclose(fp);
1501
+ _psf_font_do_close(fdata);
1502
+ return -1;
1503
+ }
1504
+
1505
+ /* Close the normal or the bold font */
1506
+ static void _psf_font_close(bool bold)
1507
+ {
1508
+ _psf_font_do_close(&psf_fonts[bold != 0]);
1509
+ }
1510
+
1511
+ /* Free memory associated with a font */
1512
+ static void _psf_font_do_close(struct font_data *fdata)
1513
+ {
1514
+ size_t pos;
1515
+ unsigned i, j;
1516
+
1517
+ /* Free the glyph data */
1518
+ if (fdata->glyphs != NULL)
1519
+ {
1520
+ for (pos = 0; pos < fdata->header.length; ++pos)
1521
+ free(fdata->glyphs[pos]);
1522
+ free(fdata->glyphs);
1523
+ fdata->glyphs = NULL;
1524
+ }
1525
+ free(fdata->blank);
1526
+ fdata->blank = NULL;
1527
+
1528
+ /* Free the Unicode mapping */
1529
+ for (i = 0; i < 17; ++i)
1530
+ {
1531
+ if (fdata->map[i] != NULL)
1532
+ {
1533
+ for (j = 0; j < 256; ++j)
1534
+ free(fdata->map[i][j]);
1535
+ free(fdata->map[i]);
1536
+ fdata->map[i] = NULL;
1537
+ }
1538
+ }
1539
+ }
1540
+
1541
+ /* Local function to read a UTF-8 sequence or a separator from the font file */
1542
+ static long _psf_font_read_utf8(FILE *fp)
1543
+ {
1544
+ int byte;
1545
+ long codepoint;
1546
+ long min;
1547
+ unsigned count;
1548
+
1549
+ /* Read first byte */
1550
+ byte = fgetc(fp);
1551
+ if (byte == EOF)
1552
+ return -1;
1553
+ if (byte == PSF2_STARTSEQ || byte == PSF2_SEPARATOR)
1554
+ return -byte; /* markers meaningful to the font format */
1555
+ if (byte < 0x80)
1556
+ {
1557
+ return byte; /* ASCII */
1558
+ }
1559
+ else if (byte < 0xC2)
1560
+ {
1561
+ return -1; /* Not valid as first byte */
1562
+ }
1563
+ else if (byte < 0xE0)
1564
+ {
1565
+ /* Two byte character */
1566
+ codepoint = byte & 0x1F;
1567
+ min = 0x80;
1568
+ count = 1;
1569
+ }
1570
+ else if (byte < 0xF0)
1571
+ {
1572
+ /* Three byte character */
1573
+ codepoint = byte & 0x0F;
1574
+ min = 0x800;
1575
+ count = 2;
1576
+ }
1577
+ else if (byte < 0xF5)
1578
+ {
1579
+ /* Four byte character */
1580
+ codepoint = byte & 0x07;
1581
+ min = 0x10000;
1582
+ count = 3;
1583
+ }
1584
+ else
1585
+ {
1586
+ return -1; /* Not valid as first byte */
1587
+ }
1588
+
1589
+ /* Read continuation bytes */
1590
+ while (count != 0)
1591
+ {
1592
+ byte = fgetc(fp);
1593
+ if (byte < 0x80 || 0xBF < byte)
1594
+ return -1;
1595
+ codepoint = (codepoint << 6) | (byte & 0x3F);
1596
+ --count;
1597
+ }
1598
+
1599
+ /* Check for overlong, surrogate, out of range */
1600
+ if (codepoint < min || codepoint > 0x10FFFF
1601
+ || (0xD800 <= codepoint && codepoint <= 0xDFFF))
1602
+ return -1;
1603
+
1604
+ return codepoint;
1605
+ }
1606
+
1607
+ /* Local function to establish a mapping from a codepoint to a font position */
1608
+ static int _psf_font_map_char(struct font_data *fdata, long codepoint, size_t pos)
1609
+ {
1610
+ unsigned t1 = codepoint >> 16;
1611
+ unsigned t2 = (codepoint >> 8) & 0xFF;
1612
+ unsigned t3 = codepoint & 0xFF;
1613
+ unsigned i;
1614
+
1615
+ if (fdata->map[t1] == NULL)
1616
+ {
1617
+ fdata->map[t1] = calloc(256, sizeof(fdata->map[0][0]));
1618
+ if (fdata->map[t1] == NULL)
1619
+ return -1;
1620
+ }
1621
+ if (fdata->map[t1][t2] == NULL)
1622
+ {
1623
+ fdata->map[t1][t2] = malloc(256 * sizeof(fdata->map[0][0][0]));
1624
+ if (fdata->map[t1][t2] == NULL)
1625
+ return -1;
1626
+ for (i = 0; i < 256; ++i)
1627
+ fdata->map[t1][t2][i] = (size_t)-1;
1628
+ }
1629
+ fdata->map[t1][t2][t3] = pos;
1630
+ return 0;
1631
+ }
1632
+
1633
+ /* Return the character width in pixels */
1634
+ static unsigned _psf_font_char_width(bool bold)
1635
+ {
1636
+ return psf_fonts[bold != 0].header.width;
1637
+ }
1638
+
1639
+ /* Return the character height in pixels */
1640
+ static unsigned _psf_font_char_height(bool bold)
1641
+ {
1642
+ return psf_fonts[bold != 0].header.height;
1643
+ }
1644
+
1645
+ /* Return the glyph data as read from the file */
1646
+ /* Never returns NULL. If the codepoint is not mapped, returns the mapping
1647
+ * for U+FFFD if that exists, or the blank glyph otherwise */
1648
+ static const unsigned char *_psf_font_glyph_data(
1649
+ bool bold, unsigned long codepoint)
1650
+ {
1651
+ struct font_data *fdata = &psf_fonts[bold != 0];
1652
+ const unsigned char *bitmap;
1653
+
1654
+ bitmap = _psf_font_do_glyph_data(fdata, codepoint);
1655
+ if (bitmap == NULL)
1656
+ bitmap = _psf_font_do_glyph_data(fdata, 0xFFFD);
1657
+ if (bitmap == NULL)
1658
+ bitmap = fdata->blank;
1659
+
1660
+ return bitmap;
1661
+ }
1662
+
1663
+ /* Return the glyph data as read from the file */
1664
+ /* Local function used by PDC_psf_glyph_data; can return NULL */
1665
+ static const unsigned char *_psf_font_do_glyph_data(
1666
+ struct font_data *fdata, long codepoint)
1667
+ {
1668
+ unsigned t1 = codepoint >> 16;
1669
+ unsigned t2 = (codepoint >> 8) & 0xFF;
1670
+ unsigned t3 = codepoint & 0xFF;
1671
+ const unsigned char *bitmap = NULL;
1672
+ size_t pos;
1673
+
1674
+ if (t1 <= 17 && fdata->map[t1] != NULL && fdata->map[t1][t2] != NULL)
1675
+ {
1676
+ pos = fdata->map[t1][t2][t3];
1677
+ if (pos != (size_t)-1)
1678
+ bitmap = fdata->glyphs[pos];
1679
+ }
1680
+ return bitmap;
1681
+ }
1682
+
1683
+ /* PDC_set_resize_limits( ) has no effect in DOSVGA,
1684
+ and probably never will. */
1685
+
1686
+ void PDC_set_resize_limits( const int new_min_lines, const int new_max_lines,
1687
+ const int new_min_cols, const int new_max_cols)
1688
+ {
1689
+ INTENTIONALLY_UNUSED_PARAMETER(new_min_lines);
1690
+ INTENTIONALLY_UNUSED_PARAMETER(new_max_lines);
1691
+ INTENTIONALLY_UNUSED_PARAMETER(new_min_cols);
1692
+ INTENTIONALLY_UNUSED_PARAMETER(new_max_cols);
1693
+ }