curses 1.3.0 → 1.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/macos.yml +19 -0
- data/.github/workflows/ubuntu.yml +26 -0
- data/.github/workflows/windows.yml +25 -0
- data/History.md +34 -0
- data/README.md +14 -46
- data/Rakefile +0 -86
- data/curses.gemspec +2 -3
- data/ext/curses/curses.c +70 -58
- data/ext/curses/extconf.rb +134 -21
- data/lib/curses.rb +5 -12
- data/sample/addch.rb +16 -0
- data/sample/attr_demo.rb +32 -0
- data/sample/colors.rb +26 -0
- data/sample/menu.rb +3 -3
- data/sample/mouse_move.rb +75 -0
- data/vendor/PDCurses/.gitignore +47 -0
- data/vendor/PDCurses/.travis.yml +49 -0
- data/vendor/PDCurses/CMakeLists.txt +68 -0
- data/vendor/PDCurses/HISTORY.md +2036 -0
- data/vendor/PDCurses/IMPLEMNT.md +327 -0
- data/vendor/PDCurses/README.md +77 -0
- data/vendor/PDCurses/acs_defs.h +265 -0
- data/vendor/PDCurses/appveyor.yml +218 -0
- data/vendor/PDCurses/cmake/README.md +71 -0
- data/vendor/PDCurses/cmake/build_dependencies.cmake +178 -0
- data/vendor/PDCurses/cmake/build_options.cmake +25 -0
- data/vendor/PDCurses/cmake/dll_version.cmake +26 -0
- data/vendor/PDCurses/cmake/gen_config_header.cmake +43 -0
- data/vendor/PDCurses/cmake/get_version.cmake +17 -0
- data/vendor/PDCurses/cmake/make_uninstall.cmake +19 -0
- data/vendor/PDCurses/cmake/project_common.cmake +121 -0
- data/vendor/PDCurses/cmake/resource.in.cmake +52 -0
- data/vendor/PDCurses/cmake/sdl2_ttf/CMakeLists.txt +83 -0
- data/vendor/PDCurses/cmake/target_arch.cmake +36 -0
- data/vendor/PDCurses/cmake/version.in.cmake +73 -0
- data/vendor/PDCurses/cmake/watcom_open_dos16_toolchain.cmake +96 -0
- data/vendor/PDCurses/cmake/watcom_open_dos32_toolchain.cmake +106 -0
- data/vendor/PDCurses/cmake/watcom_open_os2v2_toolchain.cmake +105 -0
- data/vendor/PDCurses/curses.h +1846 -0
- data/vendor/PDCurses/curspriv.h +134 -0
- data/vendor/PDCurses/demos/README.md +25 -0
- data/vendor/PDCurses/demos/firework.c +144 -0
- data/vendor/PDCurses/demos/newtest.c +581 -0
- data/vendor/PDCurses/demos/ozdemo.c +447 -0
- data/vendor/PDCurses/demos/ptest.c +283 -0
- data/vendor/PDCurses/demos/rain.c +157 -0
- data/vendor/PDCurses/demos/testcurs.c +1607 -0
- data/vendor/PDCurses/demos/tui.c +1048 -0
- data/vendor/PDCurses/demos/tui.h +65 -0
- data/vendor/PDCurses/demos/tuidemo.c +233 -0
- data/vendor/PDCurses/demos/version.c +61 -0
- data/vendor/PDCurses/demos/worm.c +432 -0
- data/vendor/PDCurses/demos/xmas.c +955 -0
- data/vendor/PDCurses/dos/CMakeLists.txt +47 -0
- data/vendor/PDCurses/dos/Makefile.bcc +83 -0
- data/vendor/PDCurses/dos/Makefile.dmc +257 -0
- data/vendor/PDCurses/dos/Makefile.msc +113 -0
- data/vendor/PDCurses/dos/Makefile.wcc +107 -0
- data/vendor/PDCurses/dos/README.md +51 -0
- data/vendor/PDCurses/dos/bccdos.lrf +9 -0
- data/vendor/PDCurses/dos/mscdos.lrf +50 -0
- data/vendor/PDCurses/dos/pdcclip.c +132 -0
- data/vendor/PDCurses/dos/pdcdisp.c +135 -0
- data/vendor/PDCurses/dos/pdcdos.h +194 -0
- data/vendor/PDCurses/dos/pdcgetsc.c +98 -0
- data/vendor/PDCurses/dos/pdckbd.c +513 -0
- data/vendor/PDCurses/dos/pdcscrn.c +785 -0
- data/vendor/PDCurses/dos/pdcsetsc.c +101 -0
- data/vendor/PDCurses/dos/pdcutil.c +212 -0
- data/vendor/PDCurses/libobjs.mif +26 -0
- data/vendor/PDCurses/makedist.mif +20 -0
- data/vendor/PDCurses/man/README.md +21 -0
- data/vendor/PDCurses/man/intro.md +361 -0
- data/vendor/PDCurses/man/manext.c +119 -0
- data/vendor/PDCurses/man/sdl.md +152 -0
- data/vendor/PDCurses/man/sdl2.md +58 -0
- data/vendor/PDCurses/man/x11.md +407 -0
- data/vendor/PDCurses/ncurses/CMakeLists.txt +66 -0
- data/vendor/PDCurses/ncurses/README.md +26 -0
- data/vendor/PDCurses/ncurses/makefile +29 -0
- data/vendor/PDCurses/os2/CMakeLists.txt +41 -0
- data/vendor/PDCurses/os2/Makefile.bcc +90 -0
- data/vendor/PDCurses/os2/Makefile.wcc +43 -0
- data/vendor/PDCurses/os2/README.md +43 -0
- data/vendor/PDCurses/os2/iccos2.lrf +50 -0
- data/vendor/PDCurses/os2/iccos2.mak +256 -0
- data/vendor/PDCurses/os2/pdcclip.c +188 -0
- data/vendor/PDCurses/os2/pdcdisp.c +93 -0
- data/vendor/PDCurses/os2/pdcgetsc.c +89 -0
- data/vendor/PDCurses/os2/pdckbd.c +521 -0
- data/vendor/PDCurses/os2/pdcos2.h +55 -0
- data/vendor/PDCurses/os2/pdcscrn.c +449 -0
- data/vendor/PDCurses/os2/pdcsetsc.c +112 -0
- data/vendor/PDCurses/os2/pdcutil.c +52 -0
- data/vendor/PDCurses/panel.h +56 -0
- data/vendor/PDCurses/pdcurses/README.md +25 -0
- data/vendor/PDCurses/pdcurses/addch.c +693 -0
- data/vendor/PDCurses/pdcurses/addchstr.c +245 -0
- data/vendor/PDCurses/pdcurses/addstr.c +240 -0
- data/vendor/PDCurses/pdcurses/attr.c +359 -0
- data/vendor/PDCurses/pdcurses/beep.c +68 -0
- data/vendor/PDCurses/pdcurses/bkgd.c +223 -0
- data/vendor/PDCurses/pdcurses/border.c +411 -0
- data/vendor/PDCurses/pdcurses/clear.c +159 -0
- data/vendor/PDCurses/pdcurses/color.c +298 -0
- data/vendor/PDCurses/pdcurses/debug.c +109 -0
- data/vendor/PDCurses/pdcurses/delch.c +96 -0
- data/vendor/PDCurses/pdcurses/deleteln.c +211 -0
- data/vendor/PDCurses/pdcurses/deprec.c +27 -0
- data/vendor/PDCurses/pdcurses/getch.c +417 -0
- data/vendor/PDCurses/pdcurses/getstr.c +474 -0
- data/vendor/PDCurses/pdcurses/getyx.c +139 -0
- data/vendor/PDCurses/pdcurses/inch.c +127 -0
- data/vendor/PDCurses/pdcurses/inchstr.c +214 -0
- data/vendor/PDCurses/pdcurses/initscr.c +367 -0
- data/vendor/PDCurses/pdcurses/inopts.c +324 -0
- data/vendor/PDCurses/pdcurses/insch.c +271 -0
- data/vendor/PDCurses/pdcurses/insstr.c +264 -0
- data/vendor/PDCurses/pdcurses/instr.c +246 -0
- data/vendor/PDCurses/pdcurses/kernel.c +259 -0
- data/vendor/PDCurses/pdcurses/keyname.c +157 -0
- data/vendor/PDCurses/pdcurses/mouse.c +438 -0
- data/vendor/PDCurses/pdcurses/move.c +57 -0
- data/vendor/PDCurses/pdcurses/outopts.c +159 -0
- data/vendor/PDCurses/pdcurses/overlay.c +214 -0
- data/vendor/PDCurses/pdcurses/pad.c +260 -0
- data/vendor/PDCurses/pdcurses/panel.c +633 -0
- data/vendor/PDCurses/pdcurses/printw.c +126 -0
- data/vendor/PDCurses/pdcurses/refresh.c +279 -0
- data/vendor/PDCurses/pdcurses/scanw.c +578 -0
- data/vendor/PDCurses/pdcurses/scr_dump.c +213 -0
- data/vendor/PDCurses/pdcurses/scroll.c +101 -0
- data/vendor/PDCurses/pdcurses/slk.c +591 -0
- data/vendor/PDCurses/pdcurses/termattr.c +182 -0
- data/vendor/PDCurses/pdcurses/terminfo.c +217 -0
- data/vendor/PDCurses/pdcurses/touch.c +163 -0
- data/vendor/PDCurses/pdcurses/util.c +312 -0
- data/vendor/PDCurses/pdcurses/window.c +569 -0
- data/vendor/PDCurses/sdl1/Makefile.mng +110 -0
- data/vendor/PDCurses/sdl1/README.md +31 -0
- data/vendor/PDCurses/sdl1/deffont.h +385 -0
- data/vendor/PDCurses/sdl1/deficon.h +23 -0
- data/vendor/PDCurses/sdl1/pdcclip.c +131 -0
- data/vendor/PDCurses/sdl1/pdcdisp.c +373 -0
- data/vendor/PDCurses/sdl1/pdcgetsc.c +30 -0
- data/vendor/PDCurses/sdl1/pdckbd.c +405 -0
- data/vendor/PDCurses/sdl1/pdcscrn.c +414 -0
- data/vendor/PDCurses/sdl1/pdcsdl.h +31 -0
- data/vendor/PDCurses/sdl1/pdcsetsc.c +64 -0
- data/vendor/PDCurses/sdl1/pdcutil.c +40 -0
- data/vendor/PDCurses/sdl1/sdltest.c +79 -0
- data/vendor/PDCurses/sdl2/CMakeLists.txt +76 -0
- data/vendor/PDCurses/sdl2/Makefile.vc +164 -0
- data/vendor/PDCurses/sdl2/README.md +34 -0
- data/vendor/PDCurses/sdl2/deffont.h +385 -0
- data/vendor/PDCurses/sdl2/deficon.h +23 -0
- data/vendor/PDCurses/sdl2/pdcclip.c +93 -0
- data/vendor/PDCurses/sdl2/pdcdisp.c +534 -0
- data/vendor/PDCurses/sdl2/pdcgetsc.c +30 -0
- data/vendor/PDCurses/sdl2/pdckbd.c +480 -0
- data/vendor/PDCurses/sdl2/pdcscrn.c +443 -0
- data/vendor/PDCurses/sdl2/pdcsdl.h +33 -0
- data/vendor/PDCurses/sdl2/pdcsetsc.c +67 -0
- data/vendor/PDCurses/sdl2/pdcutil.c +39 -0
- data/vendor/PDCurses/sdl2/sdltest.c +81 -0
- data/vendor/PDCurses/term.h +48 -0
- data/vendor/PDCurses/version.mif +7 -0
- data/vendor/PDCurses/vt/CMakeLists.txt +28 -0
- data/vendor/PDCurses/vt/Makefile.bcc +111 -0
- data/vendor/PDCurses/vt/Makefile.dmc +258 -0
- data/vendor/PDCurses/vt/Makefile.vc +144 -0
- data/vendor/PDCurses/vt/Makefile.wcc +107 -0
- data/vendor/PDCurses/vt/README.md +64 -0
- data/vendor/PDCurses/vt/pdcclip.c +20 -0
- data/vendor/PDCurses/vt/pdcdisp.c +284 -0
- data/vendor/PDCurses/vt/pdcgetsc.c +27 -0
- data/vendor/PDCurses/vt/pdckbd.c +394 -0
- data/vendor/PDCurses/vt/pdcscrn.c +434 -0
- data/vendor/PDCurses/vt/pdcsetsc.c +45 -0
- data/vendor/PDCurses/vt/pdcutil.c +43 -0
- data/vendor/PDCurses/vt/pdcvt.h +16 -0
- data/vendor/PDCurses/watcom.mif +68 -0
- data/vendor/PDCurses/wincon/CMakeLists.txt +27 -0
- data/vendor/PDCurses/wincon/Makefile.bcc +88 -0
- data/vendor/PDCurses/wincon/Makefile.dmc +256 -0
- data/vendor/PDCurses/wincon/Makefile.lcc +273 -0
- data/vendor/PDCurses/wincon/Makefile.mng +176 -0
- data/vendor/PDCurses/wincon/Makefile.vc +144 -0
- data/vendor/PDCurses/wincon/Makefile.wcc +51 -0
- data/vendor/PDCurses/wincon/README.md +85 -0
- data/vendor/PDCurses/wincon/pdcclip.c +174 -0
- data/vendor/PDCurses/wincon/pdcdisp.c +143 -0
- data/vendor/PDCurses/wincon/pdcgetsc.c +55 -0
- data/vendor/PDCurses/wincon/pdckbd.c +786 -0
- data/vendor/PDCurses/wincon/pdcscrn.c +717 -0
- data/vendor/PDCurses/wincon/pdcsetsc.c +91 -0
- data/vendor/PDCurses/wincon/pdcurses.ico +0 -0
- data/vendor/PDCurses/wincon/pdcurses.rc +28 -0
- data/vendor/PDCurses/wincon/pdcutil.c +41 -0
- data/vendor/PDCurses/wincon/pdcwin.h +31 -0
- data/vendor/PDCurses/wingui/CMakeLists.txt +27 -0
- data/vendor/PDCurses/wingui/Makefile.bcc +85 -0
- data/vendor/PDCurses/wingui/Makefile.dmc +259 -0
- data/vendor/PDCurses/wingui/Makefile.lcc +273 -0
- data/vendor/PDCurses/wingui/Makefile.mng +171 -0
- data/vendor/PDCurses/wingui/Makefile.vc +144 -0
- data/vendor/PDCurses/wingui/Makefile.wcc +51 -0
- data/vendor/PDCurses/wingui/README.md +93 -0
- data/vendor/PDCurses/wingui/pdcclip.c +174 -0
- data/vendor/PDCurses/wingui/pdcdisp.c +718 -0
- data/vendor/PDCurses/wingui/pdcgetsc.c +30 -0
- data/vendor/PDCurses/wingui/pdckbd.c +143 -0
- data/vendor/PDCurses/wingui/pdcscrn.c +2797 -0
- data/vendor/PDCurses/wingui/pdcsetsc.c +89 -0
- data/vendor/PDCurses/wingui/pdcurses.ico +0 -0
- data/vendor/PDCurses/wingui/pdcurses.rc +28 -0
- data/vendor/PDCurses/wingui/pdcutil.c +61 -0
- data/vendor/PDCurses/wingui/pdcwin.h +122 -0
- data/vendor/PDCurses/x11/Makefile.in +754 -0
- data/vendor/PDCurses/x11/PDCurses.spec +82 -0
- data/vendor/PDCurses/x11/README.md +62 -0
- data/vendor/PDCurses/x11/ScrollBox.c +319 -0
- data/vendor/PDCurses/x11/ScrollBox.h +51 -0
- data/vendor/PDCurses/x11/ScrollBoxP.h +70 -0
- data/vendor/PDCurses/x11/aclocal.m4 +994 -0
- data/vendor/PDCurses/x11/big_icon.xbm +46 -0
- data/vendor/PDCurses/x11/compose.h +201 -0
- data/vendor/PDCurses/x11/config.guess +1500 -0
- data/vendor/PDCurses/x11/config.h.in +100 -0
- data/vendor/PDCurses/x11/config.sub +1616 -0
- data/vendor/PDCurses/x11/configure +6700 -0
- data/vendor/PDCurses/x11/configure.ac +295 -0
- data/vendor/PDCurses/x11/debian/changelog +6 -0
- data/vendor/PDCurses/x11/debian/compat +1 -0
- data/vendor/PDCurses/x11/debian/control +11 -0
- data/vendor/PDCurses/x11/debian/copyright +27 -0
- data/vendor/PDCurses/x11/debian/rules +98 -0
- data/vendor/PDCurses/x11/install-sh +253 -0
- data/vendor/PDCurses/x11/little_icon.xbm +14 -0
- data/vendor/PDCurses/x11/ncurses_cfg.h +45 -0
- data/vendor/PDCurses/x11/pdcclip.c +173 -0
- data/vendor/PDCurses/x11/pdcdisp.c +85 -0
- data/vendor/PDCurses/x11/pdcgetsc.c +28 -0
- data/vendor/PDCurses/x11/pdckbd.c +104 -0
- data/vendor/PDCurses/x11/pdcscrn.c +258 -0
- data/vendor/PDCurses/x11/pdcsetsc.c +95 -0
- data/vendor/PDCurses/x11/pdcutil.c +52 -0
- data/vendor/PDCurses/x11/pdcx11.c +316 -0
- data/vendor/PDCurses/x11/pdcx11.h +191 -0
- data/vendor/PDCurses/x11/sb.c +155 -0
- data/vendor/PDCurses/x11/x11.c +3686 -0
- data/vendor/PDCurses/x11/xcurses-config.in +81 -0
- metadata +258 -24
- data/.travis.yml +0 -16
- data/appveyor.yml +0 -16
@@ -0,0 +1,49 @@
|
|
1
|
+
language: c
|
2
|
+
|
3
|
+
os:
|
4
|
+
- linux
|
5
|
+
- osx
|
6
|
+
|
7
|
+
compiler:
|
8
|
+
- gcc
|
9
|
+
- clang
|
10
|
+
|
11
|
+
env:
|
12
|
+
- BUILD_TYPE=Debug CMAKE_ARGS="-DPDC_WIDE=OFF -DPDC_UTF8=OFF -DPDCDEBUG=ON"
|
13
|
+
- BUILD_TYPE=Debug CMAKE_ARGS="-DPDC_WIDE=OFF -DPDC_UTF8=ON -DPDCDEBUG=ON"
|
14
|
+
- BUILD_TYPE=Debug CMAKE_ARGS="-DPDC_WIDE=ON -DPDC_UTF8=OFF -DPDCDEBUG=ON"
|
15
|
+
|
16
|
+
- BUILD_TYPE=Release CMAKE_ARGS="-DPDC_WIDE=OFF -DPDC_UTF8=OFF"
|
17
|
+
- BUILD_TYPE=Release CMAKE_ARGS="-DPDC_WIDE=OFF -DPDC_UTF8=ON"
|
18
|
+
- BUILD_TYPE=Release CMAKE_ARGS="-DPDC_WIDE=ON -DPDC_UTF8=OFF"
|
19
|
+
|
20
|
+
- BUILD_TYPE=MinSizeRel CMAKE_ARGS="-DPDC_WIDE=OFF -DPDC_UTF8=OFF"
|
21
|
+
- BUILD_TYPE=MinSizeRel CMAKE_ARGS="-DPDC_WIDE=OFF -DPDC_UTF8=ON"
|
22
|
+
- BUILD_TYPE=MinSizeRel CMAKE_ARGS="-DPDC_WIDE=ON -DPDC_UTF8=OFF"
|
23
|
+
|
24
|
+
addons:
|
25
|
+
apt:
|
26
|
+
packages:
|
27
|
+
- libncurses5-dev
|
28
|
+
- libncursesw5-dev
|
29
|
+
- libxaw7-dev
|
30
|
+
|
31
|
+
install:
|
32
|
+
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"; fi
|
33
|
+
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then mkdir ${DEPS_DIR} && cd ${DEPS_DIR} && pwd; fi
|
34
|
+
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then travis_retry wget --no-check-certificate https://cmake.org/files/v3.11/cmake-3.11.0-Linux-x86_64.tar.gz; fi
|
35
|
+
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then echo "96d67e21f0983ebf0fffc5b106ec338c *cmake-3.11.0-Linux-x86_64.tar.gz" > cmake_md5.txt; fi
|
36
|
+
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then md5sum -c cmake_md5.txt; fi
|
37
|
+
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then tar -xvf cmake-3.11.0-Linux-x86_64.tar.gz > /dev/null; fi
|
38
|
+
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then mv cmake-3.11.0-Linux-x86_64 cmake-install; fi
|
39
|
+
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then PATH=${DEPS_DIR}/cmake-install:${DEPS_DIR}/cmake-install/bin:$PATH; fi
|
40
|
+
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ncurses; fi
|
41
|
+
|
42
|
+
before_script:
|
43
|
+
- cd ${TRAVIS_BUILD_DIR}
|
44
|
+
- mkdir build && cd build
|
45
|
+
- cmake -DCMAKE_VERBOSE_MAKEFILE=FALSE -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
|
46
|
+
-DCMAKE_INSTALL_PREFIX=${TRAVIS_BUILD_DIR}/build/dist ${CMAKE_ARGS}
|
47
|
+
..
|
48
|
+
script:
|
49
|
+
- cmake --build . --config ${BUILD_TYPE} --target install
|
@@ -0,0 +1,68 @@
|
|
1
|
+
cmake_minimum_required(VERSION 3.11)
|
2
|
+
|
3
|
+
if(NOT CMAKE_BUILD_TYPE)
|
4
|
+
set(CMAKE_BUILD_TYPE "MinSizeRel" CACHE STRING "Choose the type of build, options are: Debug, Release, or MinSizeRel." FORCE)
|
5
|
+
message(STATUS "CMAKE_BUILD_TYPE not set, defaulting to MinSizeRel.")
|
6
|
+
endif()
|
7
|
+
|
8
|
+
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_SOURCE_DIR}/cmake")
|
9
|
+
|
10
|
+
include (get_version)
|
11
|
+
|
12
|
+
if(MSVC)
|
13
|
+
set(CMAKE_DEBUG_POSTFIX d)
|
14
|
+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP") # enable parallel builds
|
15
|
+
endif()
|
16
|
+
|
17
|
+
message(STATUS "Generator .............. ${CMAKE_GENERATOR}")
|
18
|
+
message(STATUS "Build Type ............. ${CMAKE_BUILD_TYPE}")
|
19
|
+
|
20
|
+
include(build_options)
|
21
|
+
include(build_dependencies)
|
22
|
+
|
23
|
+
project(pdcurses VERSION "${CURSES_VERSION}" LANGUAGES C)
|
24
|
+
message(STATUS "PDC Version ............ ${PROJECT_VERSION}")
|
25
|
+
|
26
|
+
include(gen_config_header)
|
27
|
+
|
28
|
+
file(GLOB pdcurses_src_files pdcurses/*.c)
|
29
|
+
|
30
|
+
if(CYGWIN)
|
31
|
+
message(STATUS "Windows Kit UM lib path = ${WINDOWS_KIT_LIBRARY_DIR}")
|
32
|
+
link_directories(${WINDOWS_KIT_LIBRARY_DIR})
|
33
|
+
endif()
|
34
|
+
|
35
|
+
if(PDC_DOS_BUILD) # currently requires a unique toolchain file
|
36
|
+
|
37
|
+
add_subdirectory(dos)
|
38
|
+
|
39
|
+
elseif(PDC_OS2_BUILD) # currently requires a unique toolchain file
|
40
|
+
|
41
|
+
add_subdirectory(os2)
|
42
|
+
|
43
|
+
else()
|
44
|
+
|
45
|
+
add_subdirectory(ncurses)
|
46
|
+
|
47
|
+
if(PDC_SDL2_BUILD)
|
48
|
+
|
49
|
+
add_subdirectory(sdl2)
|
50
|
+
|
51
|
+
endif()
|
52
|
+
|
53
|
+
if(UNIX)
|
54
|
+
add_subdirectory(vt)
|
55
|
+
endif()
|
56
|
+
|
57
|
+
if(WIN32)
|
58
|
+
|
59
|
+
add_subdirectory(wincon)
|
60
|
+
add_subdirectory(wingui)
|
61
|
+
|
62
|
+
endif()
|
63
|
+
|
64
|
+
endif()
|
65
|
+
|
66
|
+
add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_SOURCE_DIR}/cmake/make_uninstall.cmake")
|
67
|
+
|
68
|
+
set(CPACK_COMPONENTS_ALL applications)
|
@@ -0,0 +1,2036 @@
|
|
1
|
+
PDCurses 4.0.4 - 2019 Jan 20
|
2
|
+
=========================
|
3
|
+
Major new feature:
|
4
|
+
-------------------
|
5
|
+
|
6
|
+
- New VT backend. Works within an xterm or xterm-based terminal and some
|
7
|
+
other terminals. Mostly works in the Linux console, and on Win10
|
8
|
+
directly and on Win9x/DOS if ANSI.SYS (or NANSI or NNANSI .SYS or .COM)
|
9
|
+
are installed.
|
10
|
+
|
11
|
+
Minor new features:
|
12
|
+
-------------------
|
13
|
+
|
14
|
+
- SDL2 variant: dimmed, bold, blinking, and RGB text are handled, as is
|
15
|
+
window resizing.
|
16
|
+
|
17
|
+
- DOS variant: cross-compilation from GNU/Linux works with both DJGPP and
|
18
|
+
Watcom C/C++; and, 16-bit and 32-bit Watcom makefiles have been combined
|
19
|
+
into one
|
20
|
+
|
21
|
+
- Many modifications (and some bug fixes) taken from William McBrine's
|
22
|
+
branch. An effort has been made to narrow the gap between the forks
|
23
|
+
where possible. But both forks are moving targets with different
|
24
|
+
design choices and priorities.
|
25
|
+
|
26
|
+
- Demos improved to show version info
|
27
|
+
|
28
|
+
Bug fixes
|
29
|
+
-------------------
|
30
|
+
- compilation warnings/errors with some compilers in some variants #53, #57, #58, #65, ...
|
31
|
+
|
32
|
+
- newtest sample was broken in all widw variants #60
|
33
|
+
|
34
|
+
- the paste button printed debug output #62
|
35
|
+
|
36
|
+
- some corner cases (midnight crossing, atomicity of tick count reads) in
|
37
|
+
DOS version of napms() were not handled well
|
38
|
+
|
39
|
+
PDCurses 4.0.2 - 2017 Sep 12
|
40
|
+
=========================
|
41
|
+
Major new features:
|
42
|
+
-------------------
|
43
|
+
|
44
|
+
- New WinGUI (Windows GUI) and SDL2 backends.
|
45
|
+
SDL1 is still supported, but may eventually go away.
|
46
|
+
|
47
|
+
- Bold, italic, underlined, overlined, dimmed, 'strikeout', blinking text,
|
48
|
+
256 colors and color pairs, and full RGB colors.
|
49
|
+
These are all supported in WinGUI and mostly supported in X11, SDL1 and SDL2.
|
50
|
+
|
51
|
+
- In WinGUI, one can choose a font, and both programmatic and user resizing
|
52
|
+
are supported.
|
53
|
+
(Recompiling is necessary to change the font in X11.)
|
54
|
+
|
55
|
+
- (WinGUI only) Support of SMP Unicode (points beyond 64K) and combining
|
56
|
+
characters.
|
57
|
+
This may be extended to X11 and SDL2 eventually.
|
58
|
+
|
59
|
+
- Demos corrected to be buildable and testable with `ncurses`.
|
60
|
+
|
61
|
+
Minor new features
|
62
|
+
-------------------
|
63
|
+
(note that not all of these are available on all backends)
|
64
|
+
|
65
|
+
- Support for up to nine mouse buttons and wheel and tilt-wheel mice, and
|
66
|
+
double and triple mouse clicks
|
67
|
+
|
68
|
+
- (X11, WinGUI, Win32) Extended range of keys that are recognized. This
|
69
|
+
now includes most of the "oddball" keys such as 'browser back' and
|
70
|
+
'favorites' found on some keyboards.
|
71
|
+
|
72
|
+
- Blinking cursors in WinGUI and X11 of various shapes (this could be
|
73
|
+
extended to SDLx eventually).
|
74
|
+
|
75
|
+
- In X11 and WinGUI, one can call resize_term( ) before initscr( ) to set
|
76
|
+
the initial window size.
|
77
|
+
|
78
|
+
- Soft Label Keys (SLKs) are considerably more flexible, with the ability
|
79
|
+
to set arbitrary numbers of keys and groupings.
|
80
|
+
See slk.c for details. This applies to all backends.
|
81
|
+
|
82
|
+
- Many changes to `testcurs` to test all these new features, and `newtest`
|
83
|
+
added to test still more features.
|
84
|
+
|
85
|
+
- Option to get detailed version information of the used PDCurses library
|
86
|
+
at run time with new exported `PDC_version` as `PDC_version_info` structure.
|
87
|
+
|
88
|
+
- ACS_x and WACS_x #defines extended to include a lot of "alternative
|
89
|
+
characters" that overlap in Unicode and CP-437: double-line box chars,
|
90
|
+
card suits, vulgar fractions, etc.
|
91
|
+
This applies to all backends. See `acs_defs.h` for the full list.
|
92
|
+
|
93
|
+
- Cleaned up some makefiles for Win32 and WinGUI.
|
94
|
+
On both platforms, `vcwin32.mak` can now be used with the Intel(R) compiler,
|
95
|
+
and `mingwin32.mak` can be used to cross-compile from Linux, or in
|
96
|
+
`command.com` under Windows, or with Cygwin/MSYS.
|
97
|
+
Also added a makefile for Digital Mars for the DOS version.
|
98
|
+
|
99
|
+
- The "def" files that were needed before to create PDCurses on Windows
|
100
|
+
are removed as they are no longer necessary.
|
101
|
+
|
102
|
+
PDCurses 3.4 - 2008/09/08
|
103
|
+
=========================
|
104
|
+
|
105
|
+
Nothing much new this time, but I've been sitting on some bug fixes for
|
106
|
+
almost a year, so it's overdue. Apart from bugs, the main changes are in
|
107
|
+
the documentation.
|
108
|
+
|
109
|
+
New features:
|
110
|
+
-------------------
|
111
|
+
|
112
|
+
- setsyx() is now a function rather than a macro.
|
113
|
+
|
114
|
+
Bug fixes and such:
|
115
|
+
-------------------
|
116
|
+
|
117
|
+
- In x11, the xc_atrtab table size was under-calculated by half,
|
118
|
+
resulting in crashes at (oddly) certain line counts. (It should've
|
119
|
+
crashed a lot more.) Reported by Mark Hessling.
|
120
|
+
|
121
|
+
- Test for moved cursor was omitting the window origin offset. Reported
|
122
|
+
by Carey Evans.
|
123
|
+
|
124
|
+
- Is DOS and OS/2, the value for max items in key_table was still wrong.
|
125
|
+
Reported by C.E.
|
126
|
+
|
127
|
+
- Changed isendwin() so it won't crash after delscreen().
|
128
|
+
|
129
|
+
- Ensure zero-termination in PDC_mbstowcs() and PDC_wcstombs().
|
130
|
+
|
131
|
+
- Disable QuickEdit Mode when enabling mouse input for the Win32
|
132
|
+
console; reported by "Zalapkrakna".
|
133
|
+
|
134
|
+
- Fix for building under Innotek C (I hope). Report by Elbert Pol, fix
|
135
|
+
courtesy of Paul Smedley.
|
136
|
+
|
137
|
+
- Unified exports list with no duplicates -- pdcurses.def is now built
|
138
|
+
from components at compile time.
|
139
|
+
|
140
|
+
- Don't install curspriv.h, and don't include it with binary
|
141
|
+
distributions.
|
142
|
+
|
143
|
+
- Building DLLs with LCC is no longer supported, due to the primitive
|
144
|
+
nature of its make.exe.
|
145
|
+
|
146
|
+
- Export the terminfo stub functions from the DLLs, too.
|
147
|
+
|
148
|
+
- Added support for Apple's ".dylib" in configure. Suggested by Marc
|
149
|
+
Vaillant (who says it's needed with OS 10.5.)
|
150
|
+
|
151
|
+
- In sdl1/Makefile.mng, ensure that CC is set.
|
152
|
+
|
153
|
+
- In the gcc makefiles, "$?" didn't really have the desired effect --
|
154
|
+
_all_ the dependencies showed up on the command line, including
|
155
|
+
curses.h, and pdcurses.a twice. And apparently, this can mess up some
|
156
|
+
old version (?) of MinGW. So, revert to spelling out "tuidemo.o
|
157
|
+
tui.o". Reported by "Howard L."
|
158
|
+
|
159
|
+
- Extensive documentation revision and reorganizing. More to do here.
|
160
|
+
For example, I moved the build instructions from INSTALL (which never
|
161
|
+
really described installation) to the platform-specific READMEs.
|
162
|
+
|
163
|
+
- New indentation standard: four spaces, no tabs.
|
164
|
+
|
165
|
+
------------------------------------------------------------------------
|
166
|
+
|
167
|
+
PDCurses 3.3 - 2007/07/11
|
168
|
+
=========================
|
169
|
+
|
170
|
+
This release adds an SDL backend, refines the demos, and is faster in
|
171
|
+
some cases.
|
172
|
+
|
173
|
+
New features:
|
174
|
+
-------------------
|
175
|
+
|
176
|
+
- SDL port. See INSTALL, doc/sdl.txt and sdl1/* for details.
|
177
|
+
|
178
|
+
- Double-buffering -- minimize screen writes by checking, in doupdate()
|
179
|
+
and wnoutrefresh(), whether the changes to curscr are really changes.
|
180
|
+
In most cases, this makes no difference (writes were already limited
|
181
|
+
to areas marked as changed), but it can greatly reduce the overhead
|
182
|
+
from touchwin(). It also helps if you have small, separated updates on
|
183
|
+
the same line.
|
184
|
+
|
185
|
+
- The PDC_RGB colors can now be used, or not, with any platform (as long
|
186
|
+
as the same options are used when compiling both the library and
|
187
|
+
apps). This may help if you have apps that are hardwired to assume
|
188
|
+
certain definitions.
|
189
|
+
|
190
|
+
- Restored the use_default_colors() stuff from the ncurses versions of
|
191
|
+
the rain and worm demos, to make them "transparent" (this is useful
|
192
|
+
now, with the SDL port); added transparency to newdemo.
|
193
|
+
|
194
|
+
- Added setlocale() to tuidemo, to make it easier to browse files with
|
195
|
+
non-ASCII characters.
|
196
|
+
|
197
|
+
- Sped up firework demo by replacing unneeded clear() and init_pair()
|
198
|
+
calls.
|
199
|
+
|
200
|
+
- Allow exit from ptest demo by typing 'q'.
|
201
|
+
|
202
|
+
- New functions for implementors: PDC_pair_content() and PDC_init_pair()
|
203
|
+
(the old pdc_atrtab stuff was arguably the last remnant of code in the
|
204
|
+
pdcurses directory that was based on platform details).
|
205
|
+
|
206
|
+
Bug fixes and such:
|
207
|
+
-------------------
|
208
|
+
|
209
|
+
- Implicit wrefresh() needs to be called from wgetch() when the window's
|
210
|
+
cursor position is changed, even if there are no other changes.
|
211
|
+
|
212
|
+
- Set SP->audible on a per-platform basis, as was documented in
|
213
|
+
IMPLEMNT, but not actually being done.
|
214
|
+
|
215
|
+
- Minor tweaks for efficiency and readability, notably with wscrl().
|
216
|
+
|
217
|
+
- tuidemo didn't work correctly on monochrome screens when A_COLOR was
|
218
|
+
defined -- the color pair numbers appeared as the corresponding
|
219
|
+
character; also, the input box was (I now realize) broken with ncurses
|
220
|
+
since our 2.7, and broke more subtly with PDCurses' new implicit
|
221
|
+
refresh handling; also, the path to the default file for the Browse
|
222
|
+
function was a bit off.
|
223
|
+
|
224
|
+
- Assume in the demos that curs_set() is always available -- there's no
|
225
|
+
good test for this, and the existing tests were bogus.
|
226
|
+
|
227
|
+
- Made the command-line parameter for ptest work. (If given an argument,
|
228
|
+
it delays that number of milliseconds between changes, instead of
|
229
|
+
waiting for a key, and automatically loops five times.)
|
230
|
+
|
231
|
+
- Building the Win32 DLL with MinGW or Cygwin wouldn't work from outside
|
232
|
+
the platform directory.
|
233
|
+
|
234
|
+
- Building the X11 port with Cygwin required manually editing the
|
235
|
+
Makefile after configuring; no longer. Reported by Warren W. Gay.
|
236
|
+
|
237
|
+
- Minor tightening of configure and makefiles.
|
238
|
+
|
239
|
+
- Bogus references to "ACS_BLCORNER" in the border man page. Reported by
|
240
|
+
"Walrii".
|
241
|
+
|
242
|
+
- slk_wlabel() was not documented.
|
243
|
+
|
244
|
+
- Spelling cleanup.
|
245
|
+
|
246
|
+
- Changed RCSIDs to not end with a semicolon -- avoids warnings when
|
247
|
+
compiling with the -pedantic option.
|
248
|
+
|
249
|
+
- Merged latin-1.txt into x11.txt.
|
250
|
+
|
251
|
+
- Updated config.guess and config.sub to more recent versions.
|
252
|
+
|
253
|
+
------------------------------------------------------------------------
|
254
|
+
|
255
|
+
PDCurses 3.2 - 2007/06/06
|
256
|
+
=========================
|
257
|
+
|
258
|
+
This release mainly covers changes to the build process, along with a
|
259
|
+
few structural changes.
|
260
|
+
|
261
|
+
New features:
|
262
|
+
-------------------
|
263
|
+
|
264
|
+
- The panel library has been folded into the main library. What this
|
265
|
+
means is that you no longer need to specify "-lpanel" or equivalent
|
266
|
+
when linking programs that use panel functionality with PDCurses;
|
267
|
+
however, panel.lib/.a is still provided (as a copy of pdcurses.lib/.a)
|
268
|
+
so that you can, optionally, build your projects with no changes. It
|
269
|
+
also means that panel functionality is available with the DLL or
|
270
|
+
shared library. Note that panel.h remains separate from curses.h.
|
271
|
+
|
272
|
+
- Setting the PDCURSES_SRCDIR environment variable is no longer required
|
273
|
+
before building, unless you want to build in a location other than the
|
274
|
+
platform directory. (See INSTALL.)
|
275
|
+
|
276
|
+
- MinGW and Cygwin makefiles support building DLLs, via the "DLL=Y"
|
277
|
+
option. Partly due to Timofei Shatrov.
|
278
|
+
|
279
|
+
- Support for the Digital Mars compiler.
|
280
|
+
|
281
|
+
- Watcom makefiles now use the "loaddll" feature.
|
282
|
+
|
283
|
+
Bug fixes and such:
|
284
|
+
-------------------
|
285
|
+
|
286
|
+
- Eliminated the platform defines (DOS, WIN32, OS2, XCURSES) from
|
287
|
+
curses.h, except for X11-specific SCREEN elements and functions.
|
288
|
+
Dynamically-linked X11 apps built against an old version will have
|
289
|
+
their red and blue swapped until rebuilt. (You can define PDC_RGB to
|
290
|
+
build the library with the old color scheme, but it would also have to
|
291
|
+
be defined when building any new app.) Any app that depends on
|
292
|
+
PDCurses to determine the platform it's building on will have to make
|
293
|
+
other arrangements.
|
294
|
+
|
295
|
+
- Documentation cleanup -- added more details; removed some content that
|
296
|
+
didn't apply to PDCurses; moved the doc-building tool to the doc
|
297
|
+
directory; changed *.man to *.txt.
|
298
|
+
|
299
|
+
- The EMX makefile now accepts "DLL=Y", builds pdcurses.dll instead of
|
300
|
+
curses.dll, builds either the static library or the DLL (not both at
|
301
|
+
once), and links all the demos with the DLL when building it.
|
302
|
+
|
303
|
+
- In Win32, read the registry only when needed: when init_color() or
|
304
|
+
color_content() is called, instead of at startup.
|
305
|
+
|
306
|
+
- A few additional consts in declarations.
|
307
|
+
|
308
|
+
- The Win32 compilers that build DLLs now use common .def files.
|
309
|
+
|
310
|
+
- panel.h functions sorted by name, as with other .h files; curses.h is
|
311
|
+
no longer included by repeated inclusions of panel.h or term.h.
|
312
|
+
|
313
|
+
- Simplified Borland makefiles.
|
314
|
+
|
315
|
+
- Makefile.aix.in depended on a file, xcurses.exp, that was never there.
|
316
|
+
This problem was fixed as part of the change to common .def files;
|
317
|
+
however, I still haven't been able to test building on AIX.
|
318
|
+
|
319
|
+
------------------------------------------------------------------------
|
320
|
+
|
321
|
+
PDCurses 3.1 - 2007/05/03
|
322
|
+
=========================
|
323
|
+
|
324
|
+
Primarily clipboard-related fixes, and special UTF-8 support.
|
325
|
+
|
326
|
+
New features:
|
327
|
+
-------------------
|
328
|
+
|
329
|
+
- "Force UTF-8" mode, a compile-time option to force the use of UTF-8
|
330
|
+
for multibyte strings, instead of the system locale. (Mainly for
|
331
|
+
Windows, where UTF-8 doesn't work well in the console.) See INSTALL.
|
332
|
+
|
333
|
+
- Multibyte string support in PDC_*clipboard() functions, and in Win32's
|
334
|
+
PDC_set_title().
|
335
|
+
|
336
|
+
- Added the global string "ttytype", per other curses implementations,
|
337
|
+
for compatibility with old BSD curses.
|
338
|
+
|
339
|
+
- Real functions for the "quasi-standard aliases" -- crmode(),
|
340
|
+
nocrmode(), draino(), resetterm(), fixterm() and saveterm().
|
341
|
+
(Corresponding macros removed.)
|
342
|
+
|
343
|
+
Bug fixes and such:
|
344
|
+
-------------------
|
345
|
+
|
346
|
+
- In Win32, under NT-family OSes, the scrollback buffer would be
|
347
|
+
restored by endwin(), but would not be turned off again when resuming
|
348
|
+
curses after an endwin(). The result was an odd, partly-scrolled-up
|
349
|
+
display. Now, the buffer is toggled by PDC_reset_prog_mode() and
|
350
|
+
PDC_reset_shell_mode(), so it's properly turned off when returning
|
351
|
+
from an endwin().
|
352
|
+
|
353
|
+
- In 3.0, selection in X11 didn't work. (Well, the selecting worked, but
|
354
|
+
the pasting elsewhere didn't.) This was due to the attempted fix
|
355
|
+
"don't return selection start as a press event," so that's been
|
356
|
+
reverted for now.
|
357
|
+
|
358
|
+
- PDC_setclipboard() was locking up in X11. Reported by Mark Hessling.
|
359
|
+
|
360
|
+
- Missing underscore in the declaration of XC_say() prevented
|
361
|
+
compilation with PDCDEBUG defined. Reported by M.H.
|
362
|
+
|
363
|
+
- Off-by-one error in copywin() -- the maximum coordinates for the
|
364
|
+
destination window should be inclusive. Reported by Tiago Dionizio.
|
365
|
+
|
366
|
+
- Start in echo mode, per X/Open. Reported by T.D.
|
367
|
+
|
368
|
+
- Strip leading and trailing spaces from slk labels, per a literal
|
369
|
+
reading of X/Open. Suggested by Alexey Miheev (about ncurses, but it
|
370
|
+
also applies here).
|
371
|
+
|
372
|
+
- The #endif for __PDCURSES__ needs to come _after_ the closing of the
|
373
|
+
extern "C". This has been broken since June 2005. Fortunately (?), it
|
374
|
+
only shows up if the file is included multiple times, and then only in
|
375
|
+
C++. Reported on the DOSBox forums.
|
376
|
+
|
377
|
+
- Use CF_OEMTEXT instead of CF_TEXT in the narrow versions of the
|
378
|
+
clipboard functions in Win32, to match the console.
|
379
|
+
|
380
|
+
- Changed the format of the string returned from longname().
|
381
|
+
|
382
|
+
- In the clipboard test in the testcurs demo, use a single mvprintw() to
|
383
|
+
display the return from PDC_getclipboard(), instead of a loop of
|
384
|
+
addch(), which was incompatible with multibyte strings.
|
385
|
+
|
386
|
+
- Moved has_key() into the keyname module, and documented it.
|
387
|
+
|
388
|
+
- Moved RIPPEDOFFLINE to curspriv.h.
|
389
|
+
|
390
|
+
- Typos in IMPLEMNT.
|
391
|
+
|
392
|
+
------------------------------------------------------------------------
|
393
|
+
|
394
|
+
PDCurses 3.0 - 2007/04/01
|
395
|
+
=========================
|
396
|
+
|
397
|
+
The focuses for this release are X/Open conformance, i18n, better color
|
398
|
+
support, cleaner code, and more consistency across platforms.
|
399
|
+
|
400
|
+
This is only a brief summary of the changes. For more details, consult
|
401
|
+
the CVS log.
|
402
|
+
|
403
|
+
New features:
|
404
|
+
-------------------
|
405
|
+
|
406
|
+
- An almost complete implementation of X/Open curses, including the
|
407
|
+
wide-character and attr_t functions (but excluding terminfo). The
|
408
|
+
wide-character functions work only in Win32 and X11, for now, and
|
409
|
+
require building the library with the appropriate options (see
|
410
|
+
INSTALL). Note that this is a simplistic implementation, with exactly
|
411
|
+
one wchar_t per cchar_t; the only characters it handles properly are
|
412
|
+
those that are one column wide.
|
413
|
+
|
414
|
+
- Support for X Input Methods in the X11 port (see INSTALL). When built
|
415
|
+
this way, the internal compose key support is disabled in favor of
|
416
|
+
XIM's, which is a lot more complete, although you lose the box cursor.
|
417
|
+
|
418
|
+
- Multibyte character support in the non-wide string handling functions,
|
419
|
+
per X/Open. This only works when the library is built with wide-
|
420
|
+
character support enabled.
|
421
|
+
|
422
|
+
- Mouse support for DOS and OS/2. The DOS version includes untested
|
423
|
+
support for scroll wheels, via the "CuteMouse" driver.
|
424
|
+
|
425
|
+
- An ncurses-compatible mouse interface, which can work in parallel with
|
426
|
+
the traditional PDCurses mouse interface. See the man page (or
|
427
|
+
mouse.c) for details.
|
428
|
+
|
429
|
+
- DOS and OS/2 can now return modifiers as keys, as in Win32 and X11.
|
430
|
+
|
431
|
+
- COLORS, which had been fixed at 8, is now either 8 or 16, depending on
|
432
|
+
the terminal -- usually 16. When it's 8, blinking mode is enabled
|
433
|
+
(controlled as before by the A_BLINK attribute); when it's 16, bright
|
434
|
+
background colors are used instead. On platforms where it can be
|
435
|
+
changed, the mode is toggled by the new function PDC_set_blink().
|
436
|
+
PDCurses tries to set PDC_set_blink(FALSE) at startup. (In Win32, it's
|
437
|
+
always set to FALSE; in DOS, with other than an EGA or VGA card, it
|
438
|
+
can't be.) Also, COLORS is now set to 0 until start_color() is called.
|
439
|
+
|
440
|
+
- Corresponding to the change in COLORS, COLOR_PAIRS is now 256.
|
441
|
+
|
442
|
+
- Working init_color() and color_content(). The OS/2 version of
|
443
|
+
init_color() works only in a full-screen session; the Win32 version
|
444
|
+
works only in windowed mode, and only in NT-family OSes; the DOS
|
445
|
+
version works only with VGA adapters (real or simulated). The Win32
|
446
|
+
version is based mostly on James Brown's setconsoleinfo.c
|
447
|
+
(www.catch22.net).
|
448
|
+
|
449
|
+
- use_default_colors(), assume_default_colors(), and curses_version(),
|
450
|
+
after ncurses.
|
451
|
+
|
452
|
+
- Added global int TABSIZE, after ncurses and Solaris curses; removed
|
453
|
+
window-specific _tabsize.
|
454
|
+
|
455
|
+
- Logical extension to the wide-character slk_ funcs: slk_wlabel(), for
|
456
|
+
retrieving the label as a wide-character string.
|
457
|
+
|
458
|
+
- A non-macro implementation of ncurses' wresize().
|
459
|
+
|
460
|
+
- Working putwin(), getwin(), scr_dump() and scr_restore().
|
461
|
+
|
462
|
+
- A working acs_map[]. Characters from the ACS are now stored in window
|
463
|
+
structures as a regular character plus the A_ALTCHARSET attribute, and
|
464
|
+
rendered to the ACS only when displayed. (This allows, for example,
|
465
|
+
the correct display on one platform of windows saved from another.)
|
466
|
+
|
467
|
+
- In X11, allow selection and paste of UTF8_STRING.
|
468
|
+
|
469
|
+
- The testcurs demo now includes a color chart and init_color() test, a
|
470
|
+
wide character input test, a display of wide ACS characters with
|
471
|
+
sample Unicode text, a specific test of flash(), more info in the
|
472
|
+
resize test, and attempts to change the width as well as the height.
|
473
|
+
|
474
|
+
- Command-line option for MSVC to build DLLs (see INSTALL). Also, the
|
475
|
+
naming distinction for DLLs ("curses" vs. "pdcurses") is abandoned,
|
476
|
+
and either the static lib or DLL is built, not both at once (except
|
477
|
+
for X11).
|
478
|
+
|
479
|
+
- For backwards compatibility, a special module just for deprecated
|
480
|
+
functions -- currently PDC_check_bios_key(), PDC_get_bios_key(),
|
481
|
+
PDC_get_ctrl_break() and PDC_set_ctrl_break(). These shouldn't be used
|
482
|
+
in applications, but currently are... in fact, all the "private"
|
483
|
+
functions (in curspriv.h) are subject to change and should be avoided.
|
484
|
+
|
485
|
+
- A new document, IMPLEMNT, describing PDCurses' internal functions for
|
486
|
+
those wishing to port it to new platforms.
|
487
|
+
|
488
|
+
- Mark Hessling has released the X11 port to the public domain.
|
489
|
+
(However, x11/ScrollBox* retain their separate copyright and MIT-like
|
490
|
+
license.)
|
491
|
+
|
492
|
+
Bug fixes and such:
|
493
|
+
-------------------
|
494
|
+
|
495
|
+
- Most of the macros have been removed (along with the NOMACROS ifdef).
|
496
|
+
The only remaining ones are those which have to be macros to work, and
|
497
|
+
those that are required by X/Open to be macros. There were numerous
|
498
|
+
problems with the macros, and no apparent reason to keep them, except
|
499
|
+
tradition -- although it was PCcurses 1.x that first omitted them.
|
500
|
+
|
501
|
+
- Clean separation of platform-specific code from the rest. Outside of
|
502
|
+
the platform directories, there remain only a few ifdefs in curses.h
|
503
|
+
and curspriv.h.
|
504
|
+
|
505
|
+
- General reorganization and simplification.
|
506
|
+
|
507
|
+
- Documentation revisions.
|
508
|
+
|
509
|
+
- When expanding control characters in addch() or insch(), retain the
|
510
|
+
attributes from the chtype.
|
511
|
+
|
512
|
+
- Preserve the A_ALTCHARSET attribute in addch() and insch().
|
513
|
+
|
514
|
+
- Per X/Open, beep() should always return OK.
|
515
|
+
|
516
|
+
- On platforms with a controlling terminal (i.e., not X11), curs_set(1)
|
517
|
+
now sets the cursor to the shape it had at the time of initscr(),
|
518
|
+
rather than always making it small. (Exception for DOS: If the video
|
519
|
+
mode has been changed by PDC_resize_screen(), curs_set(1) reverts to
|
520
|
+
line 6/7.) The shape is taken from SP->orig_cursor (the meaning of
|
521
|
+
which is platform-specific).
|
522
|
+
|
523
|
+
- Stop updating the cursor position when the cursor is invisible (this
|
524
|
+
gives a huge performance boost in Win 9x); update the cursor position
|
525
|
+
from curs_set() if changing from invisible to visible.
|
526
|
+
|
527
|
+
- Some tweaking of the behavior of def_prog_mode(), def_shell_mode(),
|
528
|
+
savetty(), reset_prog_mode(), reset_shell_mode() and resetty()...
|
529
|
+
still not quite right.
|
530
|
+
|
531
|
+
- flash() was not implemented for Win32 or X. A portable implementation
|
532
|
+
is now used for all platforms. Note that it's much slower than the
|
533
|
+
old (DOS and OS/2) version, but this is only apparent on an extremely
|
534
|
+
slow machine, such as an XT.
|
535
|
+
|
536
|
+
- In getstr(), backspacing on high-bit characters caused a double
|
537
|
+
backspace.
|
538
|
+
|
539
|
+
- hline() and vline() used an incorrect (off by one) interpretation of
|
540
|
+
_maxx and _maxy. If values of n greater than the max were specified,
|
541
|
+
these functions could access unallocated memory.
|
542
|
+
|
543
|
+
- innstr() is supposed to return the number of characters read, not just
|
544
|
+
OK or ERR. Reported by Mike Aubury.
|
545
|
+
|
546
|
+
- A proper implementation of insch() -- the PDC_chadd()-based version
|
547
|
+
wasn't handling the control characters correctly.
|
548
|
+
|
549
|
+
- Return ASCII and control key names from keyname() (problem revealed by
|
550
|
+
ncurses' movewindow test); also, per X/Open, return "UNKNOWN KEY" when
|
551
|
+
appropriate, rather than "NO KEY NAME".
|
552
|
+
|
553
|
+
- Turn off the cursor from leaveok(TRUE), even in X11; leaveok(FALSE)
|
554
|
+
now calls curs_set(1), regardless of the previous state of the cursor.
|
555
|
+
|
556
|
+
- In the slk area, BUTTON_CLICKED events now translate to function keys,
|
557
|
+
along with the previously recognized BUTTON_PRESSED events. Of course,
|
558
|
+
it should really be checking the events specified by map_button(),
|
559
|
+
which still doesn't work.
|
560
|
+
|
561
|
+
- napms(0) now returns immediately.
|
562
|
+
|
563
|
+
- A unified napms() implementation for DOS -- no longer throttles the
|
564
|
+
CPU when built with any compiler.
|
565
|
+
|
566
|
+
- Allow backspace editing of the nocbreak() buffer.
|
567
|
+
|
568
|
+
- pair_content(0, ...) is valid.
|
569
|
+
|
570
|
+
- There was no check to ensure that the pnoutrefresh() window fit within
|
571
|
+
the screen. It now returns an ERR if it doesn't.
|
572
|
+
|
573
|
+
- In X11, resize_term() must be called with parameters (0, 0), and only
|
574
|
+
when SP->resized is set, else it returns ERR.
|
575
|
+
|
576
|
+
- Copy _bkgd in resize_window(). Patch found on Frederic L. W. Meunier's
|
577
|
+
web site.
|
578
|
+
|
579
|
+
- slk_clear() now removes the buttons completely, as in ncurses.
|
580
|
+
|
581
|
+
- Use the current foreground color for the line attributes (underline,
|
582
|
+
left, right), unless PDC_set_line_color() is explicitly called. After
|
583
|
+
setting the line color, you can reset it to this mode via
|
584
|
+
"PDC_set_line_color(-1)".
|
585
|
+
|
586
|
+
- Removed non-macro implementations of COLOR_PAIR() and PAIR_NUMBER().
|
587
|
+
|
588
|
+
- Dispensed with PDC_chadd() and PDC_chins() -- waddch() and winsch()
|
589
|
+
are now (again) the core functions.
|
590
|
+
|
591
|
+
- Dropped or made static many obsolete, unused, and/or broken functions,
|
592
|
+
including PDC_chg_attrs(), PDC_cursor_on() and _off(),
|
593
|
+
PDC_fix_cursor(), PDC_get_attribute(), PDC_get_cur_col() and _row(),
|
594
|
+
PDC_set_80x25(), PDC_set_cursor_mode(), PDC_set_rows(),
|
595
|
+
PDC_wunderline(), PDC_wleftline(), PDC_wrightline(),
|
596
|
+
XCursesModifierPress() and XCurses_refresh_scrollbar().
|
597
|
+
|
598
|
+
- Obsolete/unused defines: _BCHAR, _GOCHAR, _STOPCHAR, _PRINTCHAR
|
599
|
+
_ENDLINE, _FULLWIN and _SCROLLWIN.
|
600
|
+
|
601
|
+
- Obsolete/unused elements of the WINDOW struct: _pmax*, _lastp*,
|
602
|
+
_lasts*.
|
603
|
+
|
604
|
+
- Obsolete/unused elements of the SCREEN struct: orgcbr, visible_cursor,
|
605
|
+
sizeable, shell, blank, cursor, orig_emulation, font, orig_font,
|
606
|
+
tahead, adapter, scrnmode, kbdinfo, direct_video, video_page,
|
607
|
+
video_seg, video_ofs, bogus_adapter. (Some of these persist outside
|
608
|
+
the SCREEN struct, in the platform directories.) Added mouse_wait and
|
609
|
+
key_code.
|
610
|
+
|
611
|
+
- Removed all the EMALLOC stuff. Straight malloc calls were used
|
612
|
+
elsewhere; it was undocumented outside of comments in curspriv.h; and
|
613
|
+
there are better ways to use a substitute malloc().
|
614
|
+
|
615
|
+
- Single mouse clicks are now reportable on all platforms (not just
|
616
|
+
double-clicks). And in general, mouse event reporting is more
|
617
|
+
consistent across platforms.
|
618
|
+
|
619
|
+
- The mouse cursor no longer appears in full-screen mode in Win32 unless
|
620
|
+
a nonzero mouse event mask is used.
|
621
|
+
|
622
|
+
- ALT-keypad input now works in Win32.
|
623
|
+
|
624
|
+
- In Win32, SetConsoleMode(ENABLE_WINDOW_INPUT) is not useful, and
|
625
|
+
appears to be the source of a four-year-old bug report (hanging in
|
626
|
+
THE) by Phil Smith.
|
627
|
+
|
628
|
+
- Removed the PDC_THREAD_BUILD stuff, which has never worked. For the
|
629
|
+
record: PDCurses is not thread-safe. Neither is ncurses; and the
|
630
|
+
X/Open curses spec explicitly makes it a non-requirement.
|
631
|
+
|
632
|
+
- With the internal compose key system in the X11 port, modifier keys
|
633
|
+
were breaking out of the compose state, making it impossible to type
|
634
|
+
accented capitals, etc. Also, Multi_key is now the default compose
|
635
|
+
key, instead of leaving it undefined by default; and a few more combos
|
636
|
+
are supported.
|
637
|
+
|
638
|
+
- In X11, the first reported mouse event after startup always read as a
|
639
|
+
double-click at position 0, 0. (This bug was introduced in 2.8.)
|
640
|
+
|
641
|
+
- In X11, don't return selection start as a press event. (Shift-click on
|
642
|
+
button 1 is still returned.)
|
643
|
+
|
644
|
+
- In X11, properly handle pasting of high-bit chars. (It was doing an
|
645
|
+
unwanted sign extension.)
|
646
|
+
|
647
|
+
- In X11, BUTTON_MOVED was never returned, although PDC_MOUSE_MOVED was
|
648
|
+
set.
|
649
|
+
|
650
|
+
- The fix in 2.8 for the scroll wheel in X11 wasn't very good -- it did
|
651
|
+
report the events as scroll wheel events, but it doubled them. Here's
|
652
|
+
a proper fix.
|
653
|
+
|
654
|
+
- Changed mouse handling in X11: Simpler translation table, with
|
655
|
+
XCursesPasteSelection() called from XCursesButton() instead of the
|
656
|
+
translation table; require shift with button 1 or 2 for select or
|
657
|
+
paste when mouse events are being reported (as with ncurses), allowing
|
658
|
+
passthrough of simple button 2 events. This fixes the previously
|
659
|
+
unreliable button 2 behavior.
|
660
|
+
|
661
|
+
- Modifier keys are now returned on key up in X11, as in Win32. And in
|
662
|
+
general, modifier key reporting is more consistent across platforms.
|
663
|
+
|
664
|
+
- Modifiers are not returned as keys when a mouse click has occurred
|
665
|
+
since the key press.
|
666
|
+
|
667
|
+
- In BIOS mode (in DOS), count successive identical output bytes, and
|
668
|
+
make only one BIOS call for all of them. This dramatically improves
|
669
|
+
performance.
|
670
|
+
|
671
|
+
- The cursor position was not always updated correctly in BIOS mode.
|
672
|
+
|
673
|
+
- In testcurs, the way the ACS test was written, it would really only
|
674
|
+
work with a) PDCurses (with any compiler), or b) gcc (with any
|
675
|
+
curses). Here's a more portable implementation.
|
676
|
+
|
677
|
+
- Better reporting of mouse events in testcurs.
|
678
|
+
|
679
|
+
- Blank out buffer and num before the scanw() test in testcurs, in case
|
680
|
+
the user just hits enter or etc.; clear the screen after resizing.
|
681
|
+
|
682
|
+
- Allow tuidemo to use the last line.
|
683
|
+
|
684
|
+
- Separate left/right modifier keys are now reported properly in Win32.
|
685
|
+
(Everything was being reported as _R.)
|
686
|
+
|
687
|
+
- Attempts to redirect input in Win32 now cause program exit and an
|
688
|
+
error message, instead of hanging.
|
689
|
+
|
690
|
+
- Dropped support for the Microway NDP compiler.
|
691
|
+
|
692
|
+
- Some modules renamed, rearranged.
|
693
|
+
|
694
|
+
- Fixes for errors and warnings when building with Visual C++ 2005.
|
695
|
+
|
696
|
+
- In MSVC, the panel library didn't work with the DLL.
|
697
|
+
|
698
|
+
- Complete export lists for DLLs.
|
699
|
+
|
700
|
+
- Simplified makefiles; moved common elements to .mif files; better
|
701
|
+
optimization; strip demos when possible.
|
702
|
+
|
703
|
+
- Changed makefile targets of "pdcurses.a/lib" and "panel.a/lib" to
|
704
|
+
$(LIBCURSES) and $(LIBPANEL). Suggestion of Doug Kaufman.
|
705
|
+
|
706
|
+
- Changed "install" target in the makefile to a double-colon rule, to
|
707
|
+
get around a conflict with INSTALL on non-case-sensitive filesystems,
|
708
|
+
such as Mac OS X's HFS+. Reported by Douglas Godfrey et al.
|
709
|
+
|
710
|
+
- Make PDCurses.man dependent on manext. Suggestion of Tiziano Mueller.
|
711
|
+
|
712
|
+
- Set up configure.ac so autoheader works; removed some obsolescent
|
713
|
+
macros. Partly the suggestion of T.M.
|
714
|
+
|
715
|
+
- The X11 port now builds in the x11 directory (including the demos), as
|
716
|
+
with other ports.
|
717
|
+
|
718
|
+
- The X11 port should now build on more 64-bit systems. Partly due to
|
719
|
+
M.H.
|
720
|
+
|
721
|
+
- The default window title and icons for the X11 port are now "PDCurses"
|
722
|
+
instead of "XCurses".
|
723
|
+
|
724
|
+
- Internal functions and variables made static where possible.
|
725
|
+
|
726
|
+
- Adopted a somewhat more consistent naming style: Internal functions
|
727
|
+
with external linkage, and only those, have the prefix "PDC_";
|
728
|
+
external variables that aren't part of the API use "pdc_"; static
|
729
|
+
functions use "_"; and "XC_" and "xc_" prefixes are used for functions
|
730
|
+
and variables, respectively, that are shared between both processes in
|
731
|
+
the X11 port. Also eliminated camel casing, where possible.
|
732
|
+
|
733
|
+
- Changed the encoding for non-ASCII characters in comments and
|
734
|
+
documentation from Latin-1 to UTF-8.
|
735
|
+
|
736
|
+
------------------------------------------------------------------------
|
737
|
+
|
738
|
+
PDCurses 2.8 - 2006/04/01
|
739
|
+
=========================
|
740
|
+
|
741
|
+
As with the previous version, you should assume that apps linked against
|
742
|
+
older dynamic versions of the library won't work with this one until
|
743
|
+
recompiled.
|
744
|
+
|
745
|
+
New features:
|
746
|
+
|
747
|
+
- Simpler, faster.
|
748
|
+
|
749
|
+
- Declarations for all supported, standard functions, per the X/Open
|
750
|
+
Curses 4.2 spec, with the notable exception of getch() and ungetch().
|
751
|
+
You can disable the use of the macro versions by defining NOMACROS
|
752
|
+
before including curses.h (see xmas.c for an example). NOMACROS yields
|
753
|
+
smaller but theoretically slower executables.
|
754
|
+
|
755
|
+
- New functions: vwprintw(), vwscanw(), vw_printw() and vw_scanw(). This
|
756
|
+
completes the list of X/Open 4.2 functions, except for those concerned
|
757
|
+
with attr_t and wide characters. Some (especially the terminfo/termcap
|
758
|
+
functions) aren't yet fully fleshed out, though.
|
759
|
+
|
760
|
+
- Non-macro implementations for COLOR_PAIR(), PAIR_NUMBER(), getbkgd(),
|
761
|
+
mvgetnstr(), mvwgetnstr(), mvhline(), mvvline(), mvwhline(), and
|
762
|
+
mvwvline(). (The macros are still available, too.)
|
763
|
+
|
764
|
+
- newterm() works now, in a limited way -- the parameters are ignored,
|
765
|
+
and only the first invocation will work (i.e., only one SCREEN can be
|
766
|
+
used).
|
767
|
+
|
768
|
+
- start_color() works now -- which is to say, if you _don't_ call it,
|
769
|
+
you'll only get monochrome output. Also, without calling it, the
|
770
|
+
terminal's default colors will be used, where supported (currently
|
771
|
+
only in Win32). This is equivalent to the PDC_ORIGINAL_COLORS behavior
|
772
|
+
introduced in 2.7, except that _only_ the default colors will be used.
|
773
|
+
(PDC_ORIGINAL_COLORS is still available, if you want to combine the
|
774
|
+
use of specific colors and the default colors.)
|
775
|
+
|
776
|
+
- New logic for termname() and longname(): termname() always returns
|
777
|
+
"pdcurses"; longname() returns "PDCurses for [platform] [adapter]
|
778
|
+
[COLOR/MONO]-YxX" (adapter is only defined for DOS and OS/2). This is
|
779
|
+
the first time these functions return _anything_ in Win32.
|
780
|
+
|
781
|
+
- New installation method for XCurses: the header files are placed in a
|
782
|
+
subdirectory "xcurses" within the include directory, rather than being
|
783
|
+
renamed. (But the renamed xcurses.h and xpanel.h are also installed,
|
784
|
+
for backwards compatibility.) curspriv.h and term.h are now available,
|
785
|
+
and existing curses-based code need no longer be edited to use
|
786
|
+
XCurses' curses.h. And with no more need for explicit XCursesExit()
|
787
|
+
calls (see below), your code need not be changed at all to move from
|
788
|
+
another curses implementation to XCurses. It can be as simple as "gcc
|
789
|
+
-I/usr/local/include/xcurses -lXCurses -oprogname progname.c".
|
790
|
+
|
791
|
+
- Combined readme.* into this HISTORY file, and incorporated the old 1.x
|
792
|
+
(PCcurses) history.
|
793
|
+
|
794
|
+
- New functionality for the testcurs demo: ACS character display; menu
|
795
|
+
support for PgUp, PgDn, Home and End; centered menu; and it can now
|
796
|
+
be resized in X.
|
797
|
+
|
798
|
+
- Added modified versions of the rain and worm demos from ncurses.
|
799
|
+
|
800
|
+
Bug fixes and such:
|
801
|
+
|
802
|
+
- Big cleanup of dead and redundant code, including unneeded defines,
|
803
|
+
ifdefs, and structure elements.
|
804
|
+
|
805
|
+
- flushinp() was not implemented for Win32.
|
806
|
+
|
807
|
+
- resetty() was not restoring LINES and COLS.
|
808
|
+
|
809
|
+
- nonl() made '\n' print a line feed without carriage return. This was
|
810
|
+
incorrect.
|
811
|
+
|
812
|
+
- Removed bogus implementation of intrflush().
|
813
|
+
|
814
|
+
- The line-breakout optimization system, disabled by default in 2.7, is
|
815
|
+
removed in 2.8. It simply didn't work, and never has. (The typeahead()
|
816
|
+
function remains, for compatibility, but does nothing.)
|
817
|
+
|
818
|
+
- The declarations for the printw() and scanw() function families were
|
819
|
+
erroneously ifdef'd.
|
820
|
+
|
821
|
+
- Safer printw() calls on platforms that support vsnprintf().
|
822
|
+
|
823
|
+
- Use the native vsscanf() in DJGPP, MinGW and Cygwin.
|
824
|
+
|
825
|
+
- ACS_BLOCK now works in X.
|
826
|
+
|
827
|
+
- Explicit calls to XCursesExit() are no longer needed.
|
828
|
+
|
829
|
+
- XCURSES is now defined automatically if not DOS, OS2 or WIN32.
|
830
|
+
|
831
|
+
- The default icon for XCurses wasn't working (had to remove the focus
|
832
|
+
hint code to fix this). Also, the default title is now "XCurses"
|
833
|
+
instead of "main".
|
834
|
+
|
835
|
+
- Incorrect dimensions (undercounting by two in each direction) were
|
836
|
+
shown while resizing in X.
|
837
|
+
|
838
|
+
- Scroll wheel events were not always correctly reported in X.
|
839
|
+
|
840
|
+
- 32 bits are enough for the "long" chtype, but 64 bits were used on a
|
841
|
+
64-bit system, wasting memory. Now conditioned on _LP64. This could be
|
842
|
+
faster, too.
|
843
|
+
|
844
|
+
- The short, 16-bit chtype now works with XCurses.
|
845
|
+
|
846
|
+
- Corrected return value for is_linetouched(), is_wintouched(),
|
847
|
+
can_change_color() and isendwin() (bool instead of int).
|
848
|
+
|
849
|
+
- timeout(), wtimeout(), idcok() and immedok() return void.
|
850
|
+
|
851
|
+
- pair_content() takes a short.
|
852
|
+
|
853
|
+
- Replaced incorrect usages of attr_t with chtype. attr_t is still
|
854
|
+
typedef'd, for backwards compatibility. (It's supposed to be used for
|
855
|
+
the WA_*-style functions, which PDCurses doesn't yet support.)
|
856
|
+
|
857
|
+
- Added const where required by the spec, and in other appropriate
|
858
|
+
places.
|
859
|
+
|
860
|
+
- Removed PDC_usleep(). napms() is now the core delay routine.
|
861
|
+
|
862
|
+
- Fixed poll() support in napms().
|
863
|
+
|
864
|
+
- Various changes to the internal PDC_* functions -- don't depend on
|
865
|
+
these, and don't use them unless you absolutely have to.
|
866
|
+
|
867
|
+
- Some routines accessed window structures in their variable
|
868
|
+
declarations, _before_ checking for a NULL window pointer.
|
869
|
+
|
870
|
+
- Dropped support for the undocumented PDC_FULL_DISPLAY, wtitle(), and
|
871
|
+
PDC_print().
|
872
|
+
|
873
|
+
- Cleaned up remaining warnings.
|
874
|
+
|
875
|
+
- Reduced unnecessary #include directives -- speeds up compilation.
|
876
|
+
|
877
|
+
- Fix for demos build in Borland/DOS -- the makefile in 2.7 didn't
|
878
|
+
specify the memory model. Reported by Erwin Waterlander.
|
879
|
+
|
880
|
+
- Simplified the makefiles; e.g., some now build each demo in a single
|
881
|
+
step, and Watcom no longer uses demos.lnk. Also, the demo exes are now
|
882
|
+
stripped when possible; maximum compression used for archives built
|
883
|
+
by the makefiles; xcurses-config removed as part of "make distclean";
|
884
|
+
and I tweaked optimization for some platforms.
|
885
|
+
|
886
|
+
- Reverted to /usr/local/ as default installation directory for XCurses.
|
887
|
+
|
888
|
+
- Upgraded to autoconf 2.59... instantly doubling the size of the
|
889
|
+
configure script. Ah well. Otherwise, simplified the build system.
|
890
|
+
|
891
|
+
- Dropped support for pre-ANSI compilers. (It hasn't worked since at
|
892
|
+
least version 2.4, anyway.)
|
893
|
+
|
894
|
+
- Revised and, I hope, clarified the boilerplate and other comments.
|
895
|
+
|
896
|
+
- Simplified logging and RCS ids; added RCS ids where missing.
|
897
|
+
|
898
|
+
- Consistent formatting for all code, approximately equivalent to
|
899
|
+
"indent -kr -i8 -bl -bli0", with adjustments for 80 columns.
|
900
|
+
|
901
|
+
------------------------------------------------------------------------
|
902
|
+
|
903
|
+
PDCurses 2.7 - 2005/12/30
|
904
|
+
=========================
|
905
|
+
|
906
|
+
INTRODUCTION:
|
907
|
+
|
908
|
+
Hello all. As of a few weeks ago, I'm the new maintainer for PDCurses.
|
909
|
+
Here's a brief summary of changes in this release. (More details are
|
910
|
+
available in the CVS log and trackers on SourceForge.)
|
911
|
+
|
912
|
+
NEW FEATURES:
|
913
|
+
|
914
|
+
- Functions: delscreen(), getattrs(), has_key(), slk_color(),
|
915
|
+
wcolor_set(), wtimeout().
|
916
|
+
|
917
|
+
- Macros: color_set(), mvhline(), mvvline(), mvwgetnstr(), mvwhline(),
|
918
|
+
mvwvline(), timeout(), wresize().
|
919
|
+
|
920
|
+
- Stub implementations of terminfo functions (including a term.h).
|
921
|
+
|
922
|
+
- More stubs for compatibility: filter(), getwin(), putwin(),
|
923
|
+
noqiflush(), qiflush(), scr_dump(), scr_init(), scr_restore(),
|
924
|
+
scr_set(), use_env(), vidattr(), vidputs().
|
925
|
+
|
926
|
+
- The terminal's default colors are used as curses' default colors when
|
927
|
+
the environment variable "PDC_ORIGINAL_COLORS" is set to any value
|
928
|
+
(Win32 only at the moment).
|
929
|
+
|
930
|
+
- Simplified build system.
|
931
|
+
|
932
|
+
- Replaced PDC_STATIC_BUILD with its opposite, PDC_DLL_BUILD (see .mak
|
933
|
+
files for more info).
|
934
|
+
|
935
|
+
- Minimal implementation of color_content() -- no longer a stub.
|
936
|
+
|
937
|
+
- Added the remaining ACS defines (ACS_S3, ACS_BBSS, etc.) for
|
938
|
+
DOS/OS2/Win; "enhanced" versions of existing ACS characters used.
|
939
|
+
|
940
|
+
- Support for scroll wheels.
|
941
|
+
|
942
|
+
- Support for Pacific C.
|
943
|
+
|
944
|
+
BUGS FIXED:
|
945
|
+
|
946
|
+
- Builds correctly (including demos) on all tested platforms (see
|
947
|
+
below); nearly all compiler warnings have been cleaned up; the ptest
|
948
|
+
demo is built on all platforms; "clean" targets are improved.
|
949
|
+
|
950
|
+
- The ability to build ncurses_tests has been restored (see demos dir).
|
951
|
+
|
952
|
+
- Line-breakout optimization now defaults to off (equivalent to
|
953
|
+
"typeahead(-1)"), so output is not interrupted by keystrokes (it's
|
954
|
+
supposed to resume on the next refresh(), which wasn't working).
|
955
|
+
|
956
|
+
- Implicit wrefresh() in wgetch() was not being invoked in nodelay mode.
|
957
|
+
|
958
|
+
- subpad() was erroneously offsetting from the origin coordinates of the
|
959
|
+
parent pad (which are always -1,-1).
|
960
|
+
|
961
|
+
- In wborder(), whline(), and wvline(), the current (wattrset) attribute
|
962
|
+
was being used, but not the current background (wbkgd).
|
963
|
+
|
964
|
+
- Allow Russian 'r' character ASCII 0xe0 to be returned.
|
965
|
+
|
966
|
+
- termattrs() now also returns A_UNDERLINE, A_REVERSE.
|
967
|
+
|
968
|
+
- In Win32, with large scrollback buffers set, there was an unwanted
|
969
|
+
"scrollup" effect on startup.
|
970
|
+
|
971
|
+
- Revamped keyboard handling for Win32.
|
972
|
+
|
973
|
+
- New screen resize method for Win32.
|
974
|
+
|
975
|
+
- napms(), delay_output(), etc. now work with Cygwin.
|
976
|
+
|
977
|
+
- curs_set(0) wasn't working in Win32 in full-screen (ALT-ENTER) mode --
|
978
|
+
the cursor stayed on.
|
979
|
+
|
980
|
+
- The A_REVERSE attribute was broken in XCurses.
|
981
|
+
|
982
|
+
- On 64-bit systems, XCurses was ignoring every other keystroke.
|
983
|
+
|
984
|
+
- Added focus hints for XCurses.
|
985
|
+
|
986
|
+
- Demos (except for tuidemo) once again have their proper titles in
|
987
|
+
XCurses (using Xinitscr() instead of the obsolete XCursesProgramName).
|
988
|
+
|
989
|
+
- The 16-bit chtype is a working option again (by removing #define
|
990
|
+
CHTYPE_LONG from curses.h), except in XCurses. It's not recommended;
|
991
|
+
but if your needs are limited, it still works.
|
992
|
+
|
993
|
+
- Reset screen size in resetty() under DOS, as in Win32 and OS/2.
|
994
|
+
|
995
|
+
- Changes for cursor size under DOS.
|
996
|
+
|
997
|
+
- Automatic setting of BIOS mode for CGA under DOS now works.
|
998
|
+
|
999
|
+
- The cursor is now always updated in PDC_gotoxy(); this fixes the
|
1000
|
+
problem of missing characters in BIOS mode.
|
1001
|
+
|
1002
|
+
- Macros nocbreak(), cbreak(), nocrmode(), crmode(), nodelay(),
|
1003
|
+
nl() and nonl() now return OK.
|
1004
|
+
|
1005
|
+
- ERR and OK are now defined as -1 and 0, respectively, for
|
1006
|
+
compatibility with other curses implementations -- note that this
|
1007
|
+
change is not binary compatible; you'll have to rebuild programs that
|
1008
|
+
use shared/dynamic libraries.
|
1009
|
+
|
1010
|
+
- Added "const" to prototypes where appropriate.
|
1011
|
+
|
1012
|
+
- Miscellaneous code cleanup.
|
1013
|
+
|
1014
|
+
ACKNOWLEDGEMENTS:
|
1015
|
+
|
1016
|
+
- Walter Briscoe
|
1017
|
+
- Jean-Pierre Demailly
|
1018
|
+
- Ruslan Fedyarov
|
1019
|
+
- Warren Gay
|
1020
|
+
- Florian Grosse-Coosmann
|
1021
|
+
- Vladimir Kokovic
|
1022
|
+
- Matt Maloy
|
1023
|
+
- K.H. Man
|
1024
|
+
- Michael Ryazanov
|
1025
|
+
- Ron Thibodeau
|
1026
|
+
- Alexandr Zamaraev
|
1027
|
+
|
1028
|
+
and of course, MARK HESSLING, for his over 13 years of service as the
|
1029
|
+
maintainer of PDCurses. Plus, thanks to all who've reported bugs or
|
1030
|
+
requested features. Apologies to anyone I've forgotten.
|
1031
|
+
|
1032
|
+
I've tested this version on Turbo C++ 3.0 and Borland C++ 3.1 for DOS;
|
1033
|
+
DJGPP 2.X; Open Watcom 1.3 for DOS (16 and 32-bit), Windows and OS/2;
|
1034
|
+
EMX 0.9d and the "newgcc" version of EMX; Borland C++ 5.5 for Windows;
|
1035
|
+
recent versions of MinGW, Cygwin, LCC-Win32 and Microsoft Visual C++;
|
1036
|
+
and gcc under several flavors of Linux, Mac OS X, *BSD and Solaris.
|
1037
|
+
|
1038
|
+
-- William McBrine
|
1039
|
+
|
1040
|
+
------------------------------------------------------------------------
|
1041
|
+
|
1042
|
+
PDCurses 2.6 - 2003/01/08
|
1043
|
+
=========================
|
1044
|
+
|
1045
|
+
INTRODUCTION:
|
1046
|
+
|
1047
|
+
This release of PDCurses includes the following changes:
|
1048
|
+
|
1049
|
+
BUGS FIXED:
|
1050
|
+
|
1051
|
+
- Allow accented characters on Win32 platform when run on non-English
|
1052
|
+
keyboards.
|
1053
|
+
|
1054
|
+
- Allow "special" characters like Ctrl-S, Ctrl-Q under OS/2 to be returned.
|
1055
|
+
|
1056
|
+
- Some bugs with halfdelay() fixed by William McBrine.
|
1057
|
+
|
1058
|
+
- pechochar() should now work correctly.
|
1059
|
+
|
1060
|
+
- redrawwin() macro in curses.h was incorrect - fixed by Alberto Ornaghi
|
1061
|
+
|
1062
|
+
- Don't include "special" characters like KEY_SHIFT_L to be returned in
|
1063
|
+
getnstr() family. Bug 542913
|
1064
|
+
|
1065
|
+
- Entering TAB in wgetnstr() no longer exceeds requested buffer size.
|
1066
|
+
Bug 489233
|
1067
|
+
|
1068
|
+
- Fixed bug 550066, scrollok() and pads.
|
1069
|
+
Also beep() called when buffer exceeded. Bug 562041.
|
1070
|
+
|
1071
|
+
- Reverse video of X11 selection reinstated. Pablo Garcia Abio??
|
1072
|
+
|
1073
|
+
- Right Alt modifier now works like left Alt modifier under Win32
|
1074
|
+
|
1075
|
+
- Add support for all libXaw replacement libraries with Scrollbar bug.
|
1076
|
+
Note that for this to work, you still have to change the libXaw
|
1077
|
+
replacement libraries to fix the bug :-(
|
1078
|
+
|
1079
|
+
- Don't trap signals in XCurses if calling application has ignored them.
|
1080
|
+
Change by Frank Heckenbach.
|
1081
|
+
|
1082
|
+
- Bug reports from Warren W. Gay:
|
1083
|
+
- Fix termattrs() to return A_REVERSE and A_BLINK on all platforms.
|
1084
|
+
- Fix definition of getsyx() and setsyx() to be consistent with
|
1085
|
+
ncurses. Bug 624424.
|
1086
|
+
- Fix definition of echo() and noecho(). Bug 625001.
|
1087
|
+
- Fix definition of keypad() and leaveok(). Bug 632653.
|
1088
|
+
- Missing panel_hidden() prototype. Bug 649320.
|
1089
|
+
|
1090
|
+
- Fixed bug with calling def_prog_mode(), resize_term(),
|
1091
|
+
reset_prog_mode(); the resize details were being lost.
|
1092
|
+
|
1093
|
+
NEW FEATURES:
|
1094
|
+
|
1095
|
+
- Clipboard support now available on DOS platform, but handled
|
1096
|
+
internally to the currently running process.
|
1097
|
+
|
1098
|
+
- New X11 resource: textCursor, allows the text cursor to be specified
|
1099
|
+
as a vertical bar, or the standard horizontal bar. Thanks to Frank
|
1100
|
+
Heckenbach for the suggestion.
|
1101
|
+
|
1102
|
+
NEW COMPILER SUPPORT:
|
1103
|
+
|
1104
|
+
- lcc-win32 now works correctly
|
1105
|
+
|
1106
|
+
------------------------------------------------------------------------
|
1107
|
+
|
1108
|
+
PDCurses 2.5 - 2001/11/26
|
1109
|
+
=========================
|
1110
|
+
|
1111
|
+
INTRODUCTION:
|
1112
|
+
|
1113
|
+
This release of PDCurses includes the following changes:
|
1114
|
+
|
1115
|
+
- Set BASE address for Win32 DLL
|
1116
|
+
|
1117
|
+
- Add KEY_SUP and KEY_SDOWN.
|
1118
|
+
|
1119
|
+
- Add PDC_set_line_color()
|
1120
|
+
|
1121
|
+
- Add blink support as bold background
|
1122
|
+
|
1123
|
+
- Add bold colors
|
1124
|
+
|
1125
|
+
- Add getbkgd() macro
|
1126
|
+
|
1127
|
+
- Add new PDC functions for adding underline, overline, leftline and
|
1128
|
+
rightline
|
1129
|
+
|
1130
|
+
- Add support for shifted keypad keys.
|
1131
|
+
|
1132
|
+
- Allow more keypad keys to work under Win32
|
1133
|
+
|
1134
|
+
- Change Win32 and OS/2 DLL name to curses.dll
|
1135
|
+
|
1136
|
+
- Change example resources to allow overriding from the command line
|
1137
|
+
|
1138
|
+
- Changes for building cleanly on OS/2
|
1139
|
+
|
1140
|
+
- Changes to handle building XCurses under AIX
|
1141
|
+
|
1142
|
+
- Check if prefresh() and pnoutrefresh() parameters are valid.
|
1143
|
+
|
1144
|
+
- Ensure build/install works from any directory
|
1145
|
+
|
1146
|
+
- Handle platforms where X11 headers do not typedef XPointer.
|
1147
|
+
|
1148
|
+
- Mention that Flexos is likely out-of-date.
|
1149
|
+
|
1150
|
+
- Pass delaytenths to XCurses_rawgetch()
|
1151
|
+
|
1152
|
+
- Remove boldFont
|
1153
|
+
|
1154
|
+
- Updates for cursor blinking and italic.
|
1155
|
+
|
1156
|
+
BUGS FIXED:
|
1157
|
+
|
1158
|
+
- Fix bug with getting Win32 clipboard contents. Added new
|
1159
|
+
PDC_freeclipboard() function.
|
1160
|
+
|
1161
|
+
- Fix bug with halfdelay()
|
1162
|
+
|
1163
|
+
- Fix bug with mouse interrupting programs that are not trapping mouse
|
1164
|
+
events under Win32.
|
1165
|
+
|
1166
|
+
- Fix return value from curs_set()
|
1167
|
+
|
1168
|
+
- Reverse the left and right pointing bars in ALT_CHARSET
|
1169
|
+
|
1170
|
+
NEW COMPILER SUPPORT:
|
1171
|
+
|
1172
|
+
- Add QNX-RTP port
|
1173
|
+
|
1174
|
+
------------------------------------------------------------------------
|
1175
|
+
|
1176
|
+
PDCurses 2.4 - 2000/01/17
|
1177
|
+
=========================
|
1178
|
+
|
1179
|
+
INTRODUCTION:
|
1180
|
+
|
1181
|
+
This release of PDCurses includes the following changes:
|
1182
|
+
|
1183
|
+
- full support of X11 selection handling
|
1184
|
+
|
1185
|
+
- removed the need for the cursos2.h file
|
1186
|
+
|
1187
|
+
- enabled the "shifted" key on the numeric keypad
|
1188
|
+
|
1189
|
+
- added native clipboard support for X11, Win32 and OS/2
|
1190
|
+
|
1191
|
+
- added extra functions for obtaining internal PDCurses status
|
1192
|
+
|
1193
|
+
- added clipboard and key modifier tests in testcurs.c
|
1194
|
+
|
1195
|
+
- fixes for panel library
|
1196
|
+
|
1197
|
+
- key modifiers pressed by themselves are now returned as keys:
|
1198
|
+
KEY_SHIFT_L KEY_SHIFT_R KEY_CONTROL_L KEY_CONTROL_R KEY_ALT_L KEY_ALT_R
|
1199
|
+
This works on Win32 and X11 ports only
|
1200
|
+
|
1201
|
+
- Added X11 shared library support
|
1202
|
+
|
1203
|
+
- Added extra slk formats supported by ncurses
|
1204
|
+
|
1205
|
+
- Fixed bug with resizing the terminal when slk were on.
|
1206
|
+
|
1207
|
+
- Changed behavior of slk_attrset(), slk_attron() slk_attroff()
|
1208
|
+
functions to work more like ncurses.
|
1209
|
+
|
1210
|
+
BUGS FIXED:
|
1211
|
+
|
1212
|
+
- some minor bug and portability fixes were included in this release
|
1213
|
+
|
1214
|
+
NEW FUNCTIONS:
|
1215
|
+
|
1216
|
+
- PDC_getclipboard() and PDC_setclipboard() for accessing the native
|
1217
|
+
clipboard (X11, Win32 and OS/2)
|
1218
|
+
|
1219
|
+
- PDC_set_title() for setting the title of the window (X11 and Win32
|
1220
|
+
only)
|
1221
|
+
|
1222
|
+
- PDC_get_input_fd() for getting the file handle of the PDCurses input
|
1223
|
+
|
1224
|
+
- PDC_get_key_modifiers() for getting the keyboard modifier settings at
|
1225
|
+
the time of the last (w)getch()
|
1226
|
+
|
1227
|
+
- Xinitscr() (only for X11 port) which allows standard X11 switches to
|
1228
|
+
be passed to the application
|
1229
|
+
|
1230
|
+
NEW COMPILER SUPPORT:
|
1231
|
+
|
1232
|
+
- MingW32 GNU compiler under Win95/NT
|
1233
|
+
|
1234
|
+
- Cygnus Win32 GNU compiler under Win95/NT
|
1235
|
+
|
1236
|
+
- Borland C++ for OS/2 1.0+
|
1237
|
+
|
1238
|
+
- lcc-win32 compiler under Win95/NT
|
1239
|
+
|
1240
|
+
ACKNOWLEDGEMENTS: (for this release)
|
1241
|
+
|
1242
|
+
- Georg Fuchs for various changes.
|
1243
|
+
- Juan David Palomar for pointing out getnstr() was not implemented.
|
1244
|
+
- William McBrine for fix to allow black/black as valid color pair.
|
1245
|
+
- Peter Preus for pointing out the missing bccos2.mak file.
|
1246
|
+
- Laura Michaels for a couple of bug fixes and changes required to
|
1247
|
+
support Mingw32 compiler.
|
1248
|
+
- Frank Heckenbach for PDC_get_input_fd() and some portability fixes and
|
1249
|
+
the fixes for panel library.
|
1250
|
+
- Matthias Burian for the lcc-win32 compiler support.
|
1251
|
+
|
1252
|
+
------------------------------------------------------------------------
|
1253
|
+
|
1254
|
+
PDCurses 2.3 - 1998/07/09
|
1255
|
+
=========================
|
1256
|
+
|
1257
|
+
INTRODUCTION:
|
1258
|
+
|
1259
|
+
This release of PDCurses includes the following changes:
|
1260
|
+
|
1261
|
+
- added more System V R4 functions
|
1262
|
+
|
1263
|
+
- added Win32 port
|
1264
|
+
|
1265
|
+
- the X11 port is now fully functional
|
1266
|
+
|
1267
|
+
- the MS Visual C++ Win32 port now includes a DLL
|
1268
|
+
|
1269
|
+
- both the X11 and Win32 ports support the mouse
|
1270
|
+
|
1271
|
+
- the slk..() functions are now functional
|
1272
|
+
|
1273
|
+
- support for scrollbars under X11 are experimental at this stage
|
1274
|
+
|
1275
|
+
- long chtype extended to non-Unix ports
|
1276
|
+
|
1277
|
+
The name of the statically built library is pdcurses.lib (or
|
1278
|
+
pdcurses.a). The name of the DLL import library (where applicable) is
|
1279
|
+
curses.lib.
|
1280
|
+
|
1281
|
+
BUGS FIXED:
|
1282
|
+
|
1283
|
+
- some minor bugs were corrected in this release
|
1284
|
+
|
1285
|
+
NEW FUNCTIONS:
|
1286
|
+
|
1287
|
+
- slk..() functions
|
1288
|
+
|
1289
|
+
NEW COMPILER SUPPORT:
|
1290
|
+
|
1291
|
+
- MS Visual C++ under Win95/NT
|
1292
|
+
|
1293
|
+
- Watcom C++ under OS/2, Win32 and DOS
|
1294
|
+
|
1295
|
+
- two EMX ports have been provided:
|
1296
|
+
- OS/2 only using OS/2 APIs
|
1297
|
+
- OS/2 and DOS using EMX video support routines
|
1298
|
+
|
1299
|
+
EXTRA OPTIONS:
|
1300
|
+
|
1301
|
+
PDCurses recognizes two environment variables which determines the
|
1302
|
+
initialization and finalization behavior. These environment variables
|
1303
|
+
do not apply to the X11 port.
|
1304
|
+
|
1305
|
+
PDC_PRESERVE_SCREEN -
|
1306
|
+
If this environment variable is set, PDCurses will not clear the screen
|
1307
|
+
to the default white on black on startup. This allows you to overlay
|
1308
|
+
a window over the top of the existing screen background.
|
1309
|
+
|
1310
|
+
PDC_RESTORE_SCREEN -
|
1311
|
+
If this environment variable is set, PDCurses will take a copy of the
|
1312
|
+
contents of the screen at the time that PDCurses is started; initscr(),
|
1313
|
+
and when endwin() is called, the screen will be restored.
|
1314
|
+
|
1315
|
+
|
1316
|
+
ACKNOWLEDGEMENTS: (for this release)
|
1317
|
+
|
1318
|
+
- Chris Szurgot for original Win32 port.
|
1319
|
+
- Gurusamy Sarathy for some updates to the Win32 port.
|
1320
|
+
- Kim Huron for the slk..() functions.
|
1321
|
+
- Florian Grosse Coosmann for some bug fixes.
|
1322
|
+
- Esa Peuha for reducing compiler warnings.
|
1323
|
+
- Augustin Martin Domingo for patches to X11 port to enable accented
|
1324
|
+
characters.
|
1325
|
+
|
1326
|
+
------------------------------------------------------------------------
|
1327
|
+
|
1328
|
+
PDCurses 2.2 - 1995/02/12
|
1329
|
+
=========================
|
1330
|
+
|
1331
|
+
INTRODUCTION:
|
1332
|
+
|
1333
|
+
This release of PDCurses has includes a number of major changes:
|
1334
|
+
|
1335
|
+
- The portable library functions are now grouped together into single
|
1336
|
+
files with the same arrangement as System V R4 curses.
|
1337
|
+
|
1338
|
+
- A panels library has been included. This panels library was written by
|
1339
|
+
Warren Tucker.
|
1340
|
+
|
1341
|
+
- Quite a few more functions have been supplied by Wade Schauer and
|
1342
|
+
incorporated into release 2.2. Wade also supplied the support for the
|
1343
|
+
Microway NDP C/C++ 32 bit DOS compiler.
|
1344
|
+
|
1345
|
+
- The curses datatype has been changed from an unsigned int to a long.
|
1346
|
+
This allows more attributes to be stored as well as increasing the
|
1347
|
+
number of color-pairs from 32 to 64.
|
1348
|
+
|
1349
|
+
- Xwindows port (experimental at the moment).
|
1350
|
+
|
1351
|
+
BUGS FIXED:
|
1352
|
+
|
1353
|
+
- mvwin() checked the wrong coordinates
|
1354
|
+
|
1355
|
+
- removed DESQview shadow memory buffer checking bug in curses.h in
|
1356
|
+
\#define for wstandout()
|
1357
|
+
|
1358
|
+
- lots of others I can't remember
|
1359
|
+
|
1360
|
+
NEW FUNCTIONS:
|
1361
|
+
|
1362
|
+
- Too many to mention. See intro.man for a complete list of the
|
1363
|
+
functions PDCurses now supports.
|
1364
|
+
|
1365
|
+
COMPILER SUPPORT:
|
1366
|
+
|
1367
|
+
- DJGPP 1.12 is now supported. The run-time error that caused programs
|
1368
|
+
to crash has been removed.
|
1369
|
+
|
1370
|
+
- emx 0.9a is supported. A program compiled for OS/2 should also work
|
1371
|
+
under DOS if you use the VID=EMX switch when compiling. See the
|
1372
|
+
makefile for details.
|
1373
|
+
|
1374
|
+
- The Microway NDP C/C++ DOS compiler is now supported. Thanks to Wade
|
1375
|
+
Schauer for this port.
|
1376
|
+
|
1377
|
+
- The Watcom C++ 10.0 DOS compiler is now supported. Thanks to Pieter
|
1378
|
+
Kunst for this port.
|
1379
|
+
|
1380
|
+
- The library now has many functions grouped together to reduce the size
|
1381
|
+
of the library and to improve the speed of compilation.
|
1382
|
+
|
1383
|
+
- The "names" of a couple of the compilers in the makefile has changed;
|
1384
|
+
CSET2 is now ICC and GO32 is now GCC.
|
1385
|
+
|
1386
|
+
EXTRA OPTIONS:
|
1387
|
+
|
1388
|
+
One difference between the behavior of PDCurses and Unix curses is the
|
1389
|
+
attributes that are displayed when a character is cleared. Under Unix
|
1390
|
+
curses, no attributes are displayed, so the result is always black.
|
1391
|
+
Under PDCurses, these functions clear with the current attributes in
|
1392
|
+
effect at the time. With the introduction of the bkgd functions, by
|
1393
|
+
default, PDCurses clears using the value set by (w)bkgd(). To have
|
1394
|
+
PDCurses behave the same way as it did before release 2.2, compile with
|
1395
|
+
-DPDCURSES_WCLR
|
1396
|
+
|
1397
|
+
ACKNOWLEDGEMENTS: (for this release)
|
1398
|
+
|
1399
|
+
Pieter Kunst, David Nugent, Warren Tucker, Darin Haugen, Stefan Strack,
|
1400
|
+
Wade Schauer and others who either alerted me to bugs or supplied
|
1401
|
+
fixes.
|
1402
|
+
|
1403
|
+
------------------------------------------------------------------------
|
1404
|
+
|
1405
|
+
PDCurses 2.1 - 1993/06/20
|
1406
|
+
=========================
|
1407
|
+
|
1408
|
+
INTRODUCTION:
|
1409
|
+
|
1410
|
+
The current code contains bug fixes for the DOS and OS/2 releases and
|
1411
|
+
also includes an alpha release for Unix. The Unix release uses another
|
1412
|
+
public domain package (mytinfo) to handle the low-level screen writes.
|
1413
|
+
mytinfo was posted to comp.sources.unix (or misc) in December 1992 or
|
1414
|
+
January 1993. Unless you are a glutton for punishment I would recommend
|
1415
|
+
you avoid the Unix port at this stage.
|
1416
|
+
|
1417
|
+
The other major addition to PDCurses is the support for DJGPP (the DOS
|
1418
|
+
port of GNU C++). Thanks to David Nugent <davidn@csource.oz.au>.
|
1419
|
+
|
1420
|
+
Other additions are copywin() function, function debugging support and
|
1421
|
+
getting the small and medium memory models to work. The testcurs.c demo
|
1422
|
+
program has also been changed significantly and a new demo program,
|
1423
|
+
tuidemo, has been added.
|
1424
|
+
|
1425
|
+
Some people have suggested including information on where to get dmake
|
1426
|
+
from. oak.oakland.edu in /pub/msdos/c
|
1427
|
+
|
1428
|
+
OTHER NOTES:
|
1429
|
+
|
1430
|
+
Under DOS, by default, screen writes to a CGA monitor are done via the
|
1431
|
+
video BIOS rather than by direct video memory writes. This is due to
|
1432
|
+
the CGA "snow" problem. If you have a CGA monitor and do not suffer
|
1433
|
+
from snow, you can compile private\_queryad.c with CGA_DIRECT defined.
|
1434
|
+
This will then use cause PDCurses to write directly to the CGA video
|
1435
|
+
memory.
|
1436
|
+
|
1437
|
+
Function debugging: Firstly to get function debugging, you have to
|
1438
|
+
compile the library with OPT=N in the makefile. This also turns on
|
1439
|
+
compiler debugging. You can control when you want PDCurses to write to
|
1440
|
+
the debug file (called trace in the current directory) by using the
|
1441
|
+
functions traceon() and traceoff() in your program.
|
1442
|
+
|
1443
|
+
Microsoft C 6.00 Users note:
|
1444
|
+
----------------------------
|
1445
|
+
|
1446
|
+
With the addition of several new functions, using dmake to compile
|
1447
|
+
PDCurses now causes the compiler to run "out of heap space in pass 2".
|
1448
|
+
Using the 6.00AX version (DOS-Extended) to compile PDCurses fixes this
|
1449
|
+
problem; hence the -EM switch.
|
1450
|
+
|
1451
|
+
Functional changes
|
1452
|
+
------------------
|
1453
|
+
|
1454
|
+
Added OS/2 DLL support.
|
1455
|
+
|
1456
|
+
A few curses functions have been fixed to exhibit their correct
|
1457
|
+
behavior and make them more functionally portable with System V
|
1458
|
+
curses. The functions that have changed are overlay(), overwrite() and
|
1459
|
+
typeahead.
|
1460
|
+
|
1461
|
+
overlay() and overwrite()
|
1462
|
+
|
1463
|
+
Both of theses functions in PDCurses 2.0 allowed for one window to be
|
1464
|
+
effectively placed on top of another, and the characters in the first
|
1465
|
+
window were overlaid or overwritten starting at 0,0 in both windows.
|
1466
|
+
This behavior of these functions was not correct. These functions only
|
1467
|
+
operate on windows that physically overlap with respect to the
|
1468
|
+
displayed screen. To achieve the same functionality as before, use the
|
1469
|
+
new function copywin(). See the manual page for further details.
|
1470
|
+
|
1471
|
+
typeahead()
|
1472
|
+
|
1473
|
+
This function in PDCurses 2.0 effectively checked to see if there were
|
1474
|
+
any characters remaining in the keyboard buffer. This is not the
|
1475
|
+
behavior exhibited by System V curses. This function is intended
|
1476
|
+
purely to set a flag so that curses can check while updating the
|
1477
|
+
physical screen if any keyboard input is pending. To achieve the same
|
1478
|
+
effect with typeahead() under PDCurses 2.1 the following code should be
|
1479
|
+
used.
|
1480
|
+
|
1481
|
+
In place of...
|
1482
|
+
|
1483
|
+
while(!typeahead(stdin))
|
1484
|
+
{
|
1485
|
+
/* do something until any key is pressed... */
|
1486
|
+
}
|
1487
|
+
|
1488
|
+
use...
|
1489
|
+
|
1490
|
+
/* getch() to return ERR if no key pending */
|
1491
|
+
nodelay(stdscr,TRUE);
|
1492
|
+
while(getch() == (ERR))
|
1493
|
+
{
|
1494
|
+
/* do something until any key is pressed... */
|
1495
|
+
}
|
1496
|
+
|
1497
|
+
|
1498
|
+
ACKNOWLEDGEMENTS: (in no particular order)
|
1499
|
+
|
1500
|
+
Jason Shumate, Pieter Kunst, David Nugent, Andreas Otte, Pasi
|
1501
|
+
Hamalainen, James McLennan, Duane Paulson, Ib Hojme
|
1502
|
+
|
1503
|
+
Apologies to anyone I may have left out.
|
1504
|
+
|
1505
|
+
------------------------------------------------------------------------
|
1506
|
+
|
1507
|
+
PDCurses 2.0 - 1992/11/23
|
1508
|
+
=========================
|
1509
|
+
|
1510
|
+
INTRODUCTION:
|
1511
|
+
|
1512
|
+
Well, here it finally is; PDCurses v2.0.
|
1513
|
+
|
1514
|
+
PDCurses v2.0 is an almost total rewrite of PCcurses 1.4 done by John
|
1515
|
+
'Frotz' Fa'atuai, the previous maintainer. It adds support for OS/2 as
|
1516
|
+
well as DOS.
|
1517
|
+
|
1518
|
+
This version has been tested with Microsoft C v6.0, QuickC v2.0 and
|
1519
|
+
Borland C++ 2.0 under DOS and Microsoft C v6.0 and TopSpeed c v3.02
|
1520
|
+
under OS/2 2.0. Also the library has been compiled successfully with
|
1521
|
+
emx 0.8e, C Set/2 and Watcom 9. Most testing was done with the large
|
1522
|
+
memory model, where applicable. The large memory model is probably the
|
1523
|
+
best model to use.
|
1524
|
+
|
1525
|
+
The amount of testing has not been as extensive as I would have liked,
|
1526
|
+
but demands on releasing a product have outweighed the product's
|
1527
|
+
quality. Nothing new with that !! Hopefully with wider circulation,
|
1528
|
+
more bugs will be fixed more quickly.
|
1529
|
+
|
1530
|
+
I have included just 1 makefile which is suitable for dmake 3.8 for
|
1531
|
+
both DOS and OS/2. The makefile does not rely on customization of the
|
1532
|
+
dmake.ini file.
|
1533
|
+
|
1534
|
+
If you discover bugs, and especially if you have fixes, please let me
|
1535
|
+
know ASAP.
|
1536
|
+
|
1537
|
+
The source to the library is distributed as a zip file made with zip
|
1538
|
+
1.9. You will need Info-ZIP unzip 5.0 to unzip. Follow the directions
|
1539
|
+
below to compile the library.
|
1540
|
+
|
1541
|
+
DIRECTIONS:
|
1542
|
+
|
1543
|
+
1. Create a new directory in which to unzip pdcurs20.zip. This will
|
1544
|
+
create a curses directory and a number of subdirectories containing
|
1545
|
+
source code for the library and utilities and the documentation.
|
1546
|
+
|
1547
|
+
2. Make changes to the makefile where necessary:
|
1548
|
+
Change the MODEL or model macro to the appropriate value (if it
|
1549
|
+
applies to your compiler). Use model for Borland compilers.
|
1550
|
+
|
1551
|
+
Change any paths in the defined macros to be suitable for your
|
1552
|
+
compiler.
|
1553
|
+
|
1554
|
+
3. Invoke DMAKE [-e environment_options] [target]
|
1555
|
+
|
1556
|
+
where environment_options are:
|
1557
|
+
|
1558
|
+
OS (host operating system)
|
1559
|
+
COMP (compiler)
|
1560
|
+
OPT (optimized version or debug version) - optional. default Y
|
1561
|
+
TOS (target operating system) - optional. default OS
|
1562
|
+
|
1563
|
+
see the makefile for valid combinations
|
1564
|
+
|
1565
|
+
targets: all, demos, lcursesd.lib, manual...
|
1566
|
+
|
1567
|
+
NB. dmake is case sensitive with targets, so those environments that
|
1568
|
+
use an upper case model value (eg MSC) MUST specify the library
|
1569
|
+
target as for eg. Lcursesd.lib
|
1570
|
+
|
1571
|
+
The makefile is by default set up for Borland C++. The use of -e
|
1572
|
+
environment_options override these defaults. If you prefer, you can
|
1573
|
+
just change the defaults in the makefile and invoke it without the
|
1574
|
+
-e switch.
|
1575
|
+
|
1576
|
+
OTHER NOTES:
|
1577
|
+
|
1578
|
+
The documentation for the library is built into each source file, a
|
1579
|
+
couple of specific doc files and the header files. A program is
|
1580
|
+
supplied (manext) to build the manual. This program gets compiled when
|
1581
|
+
you build the documentation.
|
1582
|
+
|
1583
|
+
To generate the library response file correctly, I had to write a quick
|
1584
|
+
and dirty program (buildlrf) to achieve this. Originally the makefiles
|
1585
|
+
just had statements like: "echo -+$(OBJ)\$* & >> $(LRF)" which appended
|
1586
|
+
a suitable line to the response file. Unfortunately under some
|
1587
|
+
combinations of makefiles and command processors (eg. nmake and 4DOS)
|
1588
|
+
the & would get treated as stderr and the echo command would fail.
|
1589
|
+
|
1590
|
+
The original source for PDCurses that I received from the previous
|
1591
|
+
maintainer contained support for the FLEXOS operating system. Not
|
1592
|
+
having access to it, I could not test the changes I made so its support
|
1593
|
+
has fallen by the wayside. If you really need to have PDCurses running
|
1594
|
+
under FLEXOS, contact me and I will see what can be arranged.
|
1595
|
+
|
1596
|
+
Under DOS, by default, screen writes to a CGA monitor are done via the
|
1597
|
+
video BIOS rather than by direct video memory writes. This is due to
|
1598
|
+
the CGA "snow" problem. If you have a CGA monitor and do not suffer
|
1599
|
+
from snow, you can compile private\_queryad.c with CGA_DIRECT defined.
|
1600
|
+
This will then use cause PDCurses to write directly to the CGA video
|
1601
|
+
memory.
|
1602
|
+
|
1603
|
+
Added System V color support.
|
1604
|
+
|
1605
|
+
COMPILER-SPECIFIC NOTES:
|
1606
|
+
|
1607
|
+
Microsoft C
|
1608
|
+
-----------
|
1609
|
+
|
1610
|
+
It is possible with MSC 6.0 to build the OS/2 libraries and demo
|
1611
|
+
programs from within DOS. This is the only case where it is possible to
|
1612
|
+
specify the value of TOS on the command line to be OS2 and the value of
|
1613
|
+
OS be DOS.
|
1614
|
+
|
1615
|
+
C Set/2
|
1616
|
+
-------
|
1617
|
+
|
1618
|
+
I have only tested the library using the migration libraries. I doubt
|
1619
|
+
that the demo programs will work without them.
|
1620
|
+
|
1621
|
+
emx
|
1622
|
+
---
|
1623
|
+
|
1624
|
+
Testing has been done with 0.8e of emx together with the 16_to_32
|
1625
|
+
libraries. The emx\lib directory should include the vio32.lib and
|
1626
|
+
kbd32.lib libraries from the 16_to_32 package.
|
1627
|
+
|
1628
|
+
BUGS and UNFINISHED BUSINESS:
|
1629
|
+
|
1630
|
+
- PDC_set_ctrl_break() function does not work under OS/2.
|
1631
|
+
|
1632
|
+
- win_print() and PDC_print() do not work under OS/2.
|
1633
|
+
|
1634
|
+
- The file todo.man in the doc directory also lists those functions of
|
1635
|
+
System V 3.2 curses not yet implemented. Any volunteers?
|
1636
|
+
|
1637
|
+
ACKNOWLEDGEMENTS:
|
1638
|
+
|
1639
|
+
- John 'Frotz' Fa'atuai, the previous maintainer for providing an
|
1640
|
+
excellent base for further development.
|
1641
|
+
- John Burnell <johnb@kea.am.dsir.govt.nz>, for the OS/2 port.
|
1642
|
+
- John Steele, Jason (finally NOT a John) Shumate....
|
1643
|
+
for various fixes and suggestions.
|
1644
|
+
- Eberhardt Mattes (author of emx) for allowing code based on his
|
1645
|
+
C library to be included with PDCurses.
|
1646
|
+
- Several others for their support, moral and actual.
|
1647
|
+
|
1648
|
+
-- Mark Hessling
|
1649
|
+
|
1650
|
+
------------------------------------------------------------------------
|
1651
|
+
|
1652
|
+
PDCurses 2.0Beta - 1991/12/21
|
1653
|
+
=============================
|
1654
|
+
|
1655
|
+
Changed back from short to int. (int is the correct size for the default
|
1656
|
+
platform. Short might be too short on some platforms. This is more
|
1657
|
+
portable. I, also, made this mistake.)
|
1658
|
+
|
1659
|
+
Many functions are now macros. If you want the real thing, #undef the
|
1660
|
+
macro. (X/Open requirement.)
|
1661
|
+
|
1662
|
+
Merged many sources into current release.
|
1663
|
+
|
1664
|
+
Added many X/Open routines (not quite all yet).
|
1665
|
+
|
1666
|
+
Added internal documentation to all routines.
|
1667
|
+
|
1668
|
+
Added a HISTORY file to the environment.
|
1669
|
+
|
1670
|
+
Added a CONTRIB file to the environment.
|
1671
|
+
|
1672
|
+
------------------------------------------------------------------------
|
1673
|
+
|
1674
|
+
PDCurses 1.5Beta - 1990/07/14
|
1675
|
+
=============================
|
1676
|
+
|
1677
|
+
Added many levels of compiler support. Added mixed prototypes for all
|
1678
|
+
"internal" routines. Removed all assembly language. Added EGA/VGA
|
1679
|
+
support. Converted all #ifdef to #if in all modules except CURSES.H and
|
1680
|
+
CURSPRIV.H. Always include ASSERT.H. Added support for an external
|
1681
|
+
malloc(), calloc() and free(). Added support for FAST_VIDEO
|
1682
|
+
(direct-memory writes). Added various memory model support (for
|
1683
|
+
FAST_VIDEO). Added much of the December 1988 X/Open Curses
|
1684
|
+
specification.
|
1685
|
+
|
1686
|
+
-- John 'Frotz' Fa'atuai
|
1687
|
+
|
1688
|
+
------------------------------------------------------------------------
|
1689
|
+
|
1690
|
+
PCcurses 1.4 - 1990/01/14
|
1691
|
+
=========================
|
1692
|
+
|
1693
|
+
In PCcurses v.1.4, both portability improvements and bugfixes have
|
1694
|
+
been made. The files have been changed to allow lint-free compilation
|
1695
|
+
with Microsoft C v.5.1, and with Turbo C v.2.0. The source should still
|
1696
|
+
compile without problems on older compilers, although this has not been
|
1697
|
+
verified.
|
1698
|
+
|
1699
|
+
The makefiles have been changed to suit both the public release and
|
1700
|
+
the author, who maintains a special kind of libraries for himself. In
|
1701
|
+
the case of Microsoft C, changes were done in the makefile to lower the
|
1702
|
+
warning level to 2 (was 3). This was to avoid ANSI warnings which are
|
1703
|
+
abundant because PCcurses does not attempt to follow strict ANSI C
|
1704
|
+
standard.
|
1705
|
+
|
1706
|
+
BUG FIXES FROM V.1.3 TO V.1.4:
|
1707
|
+
|
1708
|
+
!!!IMPORTANT CHANGE!!!
|
1709
|
+
|
1710
|
+
The definitions for OK and ERR in curses.h were exchanged. This was
|
1711
|
+
done to be more consistent with UNIX versions. Also, it permits
|
1712
|
+
functions like newwin() and subwin() to return 0 (=NULL) when they fail
|
1713
|
+
due to memory shortage. This incompatibility with UNIX curses was
|
1714
|
+
pointed out by Fred C. Smith. If you have tested success/failure by
|
1715
|
+
comparisons to anything other than ERR and OK, your applications will
|
1716
|
+
need to be be changed on that point. Sorry... but presumably most of you
|
1717
|
+
used the symbolic constants?
|
1718
|
+
|
1719
|
+
(END OF IMPORTANT CHANGE)
|
1720
|
+
|
1721
|
+
Fred also pointed out a bug in the file update.c. The bug caused the
|
1722
|
+
first character printed after 'unauthorized' screen changes (like during
|
1723
|
+
a shell escape, for example) to be placed at the wrong screen position.
|
1724
|
+
This happened even if the normal precautions (clear / touch / refresh)
|
1725
|
+
were taken. The problem has now been fixed.
|
1726
|
+
|
1727
|
+
PCcurses is currently also being used on a 68000 system with
|
1728
|
+
hard-coded ESCape sequences for ANSI terminals. However, ints used by
|
1729
|
+
the 68000 C compiler are 32 bits. Therefore ints have been turned into
|
1730
|
+
shorts wherever possible in the code (otherwise all window structures
|
1731
|
+
occupy twice as much space as required on the 68000). This does not
|
1732
|
+
affect PC versions since normally both ints and shorts are 16 bits for
|
1733
|
+
PC C compilers.
|
1734
|
+
|
1735
|
+
At some places in the source code there are references made to the
|
1736
|
+
68000 version. There are also a makefile, a curses68.c file, and a
|
1737
|
+
curses68.cmd file. These are for making, low-level I/O, and linking
|
1738
|
+
commands when building the 68000 version. These files are probably
|
1739
|
+
useful to no-one but the author, since it is very specific for its
|
1740
|
+
special hardware environment. Still in an effort to keep all
|
1741
|
+
curses-related sources in one place they are included. Note however that
|
1742
|
+
PCcurses will not officially support a non-PC environment.
|
1743
|
+
|
1744
|
+
The file cursesio.c, which was included in the package at revision
|
1745
|
+
level 1.2, and which was to be an alternative to the cursesio.asm file,
|
1746
|
+
has been verified to behave incorrectly in the function _curseskeytst().
|
1747
|
+
The problem was that the value of 'cflag' does not contain the proper
|
1748
|
+
data for the test that is attempted. Furthermore, neither Turbo C or
|
1749
|
+
Microsoft C allows any way to return the data that is needed, and
|
1750
|
+
consequently you should not use cursesio.c. The best solution is to
|
1751
|
+
simply use the ASM version. In v.1.2 and v.1.3, the user could edit the
|
1752
|
+
makefile to select which version he wanted to use. The makefiles in
|
1753
|
+
v.1.4 have removed this possibility forcing the use of the ASM file, and
|
1754
|
+
cursesio.c has been dropped from the distribution.
|
1755
|
+
|
1756
|
+
A bug in the wgetstr() function caused PCcurses to echo characters
|
1757
|
+
when reading a keyboard string, even if the echo had been turned off.
|
1758
|
+
Thanks to Per Foreby at Lund University, Sweden, for this. Per also
|
1759
|
+
reported bugs concerning the handling of characters with bit 8 set.
|
1760
|
+
Their ASCII code were considered as lower than 32, so they were erased
|
1761
|
+
etc. like control characters, i.e. erasing two character positions. The
|
1762
|
+
control character test was changed to cope with this.
|
1763
|
+
|
1764
|
+
The overlay() and overwrite() functions were changed so that the
|
1765
|
+
overlaying window is positioned at its 'own' coordinates inside the
|
1766
|
+
underlying window (it used to be at the underlying window's [0,0]
|
1767
|
+
position). There is some controversy about this - the documentation for
|
1768
|
+
different curses versions say different things. I think the choice made
|
1769
|
+
is the most reasonable.
|
1770
|
+
|
1771
|
+
The border() and wborder() functions were changed to actually draw a
|
1772
|
+
border, since this seems to be the correct behavior of these functions.
|
1773
|
+
They used to just set the border characters to be used by box(). These
|
1774
|
+
functions are not present in standard BSD UNIX curses.
|
1775
|
+
|
1776
|
+
The subwin() function previously did not allow the subwindow to be as
|
1777
|
+
big as the original window in which it was created. This has now been
|
1778
|
+
fixed. There was also the problem that the default size (set by
|
1779
|
+
specifying numlines or numcols (or both) as 0 made the resulting actual
|
1780
|
+
size 1 line/column too small.
|
1781
|
+
|
1782
|
+
There were a few spelling errors in function names, both in the
|
1783
|
+
function declarations and in curses.h. This was reported by Carlos
|
1784
|
+
Amaral at INESC in Portugal. Thanks! There was also an unnecessary (but
|
1785
|
+
harmless) parameter in a function call at one place.
|
1786
|
+
|
1787
|
+
------------------------------------------------------------------------
|
1788
|
+
|
1789
|
+
PCcurses 1.3 - 1988/10/05
|
1790
|
+
=========================
|
1791
|
+
|
1792
|
+
The file 'border.c' is now included. It allows you to explicitly
|
1793
|
+
specify what characters should be used as box borders when the box()
|
1794
|
+
functions are called. If the new border characters are non-0, they
|
1795
|
+
override the border characters specified in the box() call. In my
|
1796
|
+
understanding, this functionality is required for AT&T UNIX sV.3
|
1797
|
+
compatibility. Thanks for this goes to Tony L. Hansen
|
1798
|
+
(hansen@pegasus.UUCP) for posting an article about it on Usenet
|
1799
|
+
(newsgroup comp.unix.questions; his posting was not related at all to
|
1800
|
+
PCcurses).
|
1801
|
+
|
1802
|
+
The only other difference between v.1.2 and v.1.3 is that the latter
|
1803
|
+
has been changed to avoid warning diagnostics if the source files are
|
1804
|
+
compiled with warning switches on (for Microsoft this means '-W3', for
|
1805
|
+
Turbo C it means '-w -w-pro'). Of these, the Turbo C warning check is
|
1806
|
+
clearly to be used rather than Microsoft, even if neither of them comes
|
1807
|
+
even close to a real UNIX 'lint'. Some of the warnings in fact indicated
|
1808
|
+
real bugs, mostly functions that did not return correct return values or
|
1809
|
+
types.
|
1810
|
+
|
1811
|
+
The makefiles for both MSC and TRC have been modified to produce
|
1812
|
+
warning messages as part of normal compilation.
|
1813
|
+
|
1814
|
+
------------------------------------------------------------------------
|
1815
|
+
|
1816
|
+
PCcurses 1.2 - 1988/10/02
|
1817
|
+
=========================
|
1818
|
+
|
1819
|
+
The changes from v.1.1 to v.1.2 are minor. The biggest change is that
|
1820
|
+
there was a bug related to limiting the cursor movement if the
|
1821
|
+
application tried to move it outside the screen (something that should
|
1822
|
+
not be done anyway). Such erroneous application behavior is now handled
|
1823
|
+
appropriately.
|
1824
|
+
|
1825
|
+
All modules have been changed to have a revision string in them, which
|
1826
|
+
makes it easier to determine what version is linked into a program (or
|
1827
|
+
what library version you have).
|
1828
|
+
|
1829
|
+
There is now a 'cursesio.c' file. That file does the same as
|
1830
|
+
'cursesio.asm' (i.e. it provides the interface to the lower-level system
|
1831
|
+
I/O routines). It is written in C and thus it is (possibly) more
|
1832
|
+
portable than the assembler version (but still not so portable since it
|
1833
|
+
uses 8086 INT XX calls directly). When one creates new curses libraries,
|
1834
|
+
one chooses whether to use the assembler or the C version of cursesio.
|
1835
|
+
The choice is made by commenting out the appropriate dependencies for
|
1836
|
+
cursesio.obj, near the end of the makefiles.
|
1837
|
+
|
1838
|
+
There is now a 'setmode.c' file. That file contains functions that
|
1839
|
+
save and restore terminal modes. They do it into other variables than do
|
1840
|
+
savetty() and resetty(), so one should probably use either
|
1841
|
+
savetty()/resetty() or the new functions only - and not mix the both
|
1842
|
+
ways unless one really knows what one does.
|
1843
|
+
|
1844
|
+
Diff lists vs v.1.0 are no longer included in the distribution. The
|
1845
|
+
make utility still is. PCcurses v.1.2 still compiles with Microsoft C
|
1846
|
+
v.4.0, and with Borland Turbo C v.1.0. There is as far as I know no
|
1847
|
+
reason to believe that it does not compile under Microsoft C v.3.0 and
|
1848
|
+
5.x, or Turbo C v.1.5, but this has not been tested.
|
1849
|
+
|
1850
|
+
There are two makefiles included, one for Microsoft C, one for Turbo
|
1851
|
+
C. They are both copies of my personal makefiles, and as such they
|
1852
|
+
reflect the directory structure on my own computer. This will have to be
|
1853
|
+
changed before you run make. Check $(INCDIR) and $(LIBDIR) in
|
1854
|
+
particular, and make the choice of ASM or C cursesio version as
|
1855
|
+
mentioned above (the distribution version uses the C version of
|
1856
|
+
cursesio).
|
1857
|
+
|
1858
|
+
The manual file (curses.man) has been changed at appropriate places.
|
1859
|
+
|
1860
|
+
I would like to thank the following persons for their help:
|
1861
|
+
|
1862
|
+
Brandon S. Allbery (alberry@ncoast.UUCP)
|
1863
|
+
for running comp.binaries.ibm.pc (at that time)
|
1864
|
+
and comp.source.misc.
|
1865
|
+
|
1866
|
+
Steve Balogh (Steve@cit5.cit.oz.AU)
|
1867
|
+
for writing a set of manual pages and posting
|
1868
|
+
them to the net.
|
1869
|
+
|
1870
|
+
Torbjorn Lindh
|
1871
|
+
for finding bugs and suggesting raw
|
1872
|
+
character output routines.
|
1873
|
+
|
1874
|
+
Nathan Glasser (nathan@eddie.mit.edu)
|
1875
|
+
for finding and reporting bugs.
|
1876
|
+
|
1877
|
+
Ingvar Olafsson (...enea!hafro!ingvar)
|
1878
|
+
for finding and reporting bugs.
|
1879
|
+
|
1880
|
+
Eric Rosco (...enea!ipmoea!ericr)
|
1881
|
+
for finding and reporting bugs.
|
1882
|
+
|
1883
|
+
Steve Creps (creps@silver.bacs.indiana.edu)
|
1884
|
+
for doing a lot of work - among others
|
1885
|
+
posting bug fixes to the net, and writing
|
1886
|
+
the new cursesio.c module.
|
1887
|
+
|
1888
|
+
N. Dean Pentcheff (dean@violet.berkeley.edu)
|
1889
|
+
for finding bugs and rewriting cursesio.asm
|
1890
|
+
for Turbo 'C' 1.5.
|
1891
|
+
|
1892
|
+
Finally, Jeff Dean (parcvax,hplabs}!cdp!jeff)
|
1893
|
+
(jeff@ads.arpa)
|
1894
|
+
has had a shareware version of curses deliverable since
|
1895
|
+
about half a year before I released PCcurses 1.0 on Use-
|
1896
|
+
Net. He is very concerned about confusion between the two
|
1897
|
+
packages, and therefore any references on the network
|
1898
|
+
should make clear whether they reference Dean's PCcurses
|
1899
|
+
or Larsson's PCcurses.
|
1900
|
+
|
1901
|
+
------------------------------------------------------------------------
|
1902
|
+
|
1903
|
+
PCcurses 1.1 - 1988/03/06
|
1904
|
+
=========================
|
1905
|
+
|
1906
|
+
The changes from v.1.0 to v.1.1 are minor. There are a few bug fixes,
|
1907
|
+
and new (non-portable) functions for verbatim IBM character font display
|
1908
|
+
have been added (in charadd.c and charins.c). The manual file
|
1909
|
+
(curses.man) has been changed at appropriate places.
|
1910
|
+
|
1911
|
+
In the file v10tov11.dif there are listings of the differences between
|
1912
|
+
version 1.0 and 1.1. The diff listings are in UNIX diff(1) format.
|
1913
|
+
|
1914
|
+
Version 1.1 compiles with Turbo C v.1.0, as well as Microsoft C v.3.0
|
1915
|
+
and v.4.0. On the release disk there is a make.exe utility which is very
|
1916
|
+
similar to UNIX make (If the package was mailed to you, the make utility
|
1917
|
+
will be in uuencoded format - in make.uu - and must be uudecoded first).
|
1918
|
+
It is much more powerful than Microsoft's different MAKEs; the latter
|
1919
|
+
ones will NOT generate libraries properly if used with the PCcurses
|
1920
|
+
makefiles.
|
1921
|
+
|
1922
|
+
There are three makefiles:
|
1923
|
+
|
1924
|
+
makefile generic MSC 3.0 makefile
|
1925
|
+
makefile.ms MSC 4.0 makefile
|
1926
|
+
makefile.tc Turbo C 1.0 makefile
|
1927
|
+
|
1928
|
+
To make a library with for example Turbo C, make directories to hold
|
1929
|
+
.H and .LIB files (these directories are the 'standard places'), edit
|
1930
|
+
makefile.tc for this, and type
|
1931
|
+
|
1932
|
+
make -f makefile.tc all
|
1933
|
+
|
1934
|
+
and libraries for all memory models will be created in the .LIB
|
1935
|
+
directory, while the include files will end up in the .H directory. Also
|
1936
|
+
read what is said about installation below!
|
1937
|
+
|
1938
|
+
------------------------------------------------------------------------
|
1939
|
+
|
1940
|
+
PCcurses 1.0 - 1987/08/24
|
1941
|
+
=========================
|
1942
|
+
|
1943
|
+
This is the release notes for the PCcurses v.1.0 cursor/window control
|
1944
|
+
package. PCcurses offers the functionality of UNIX curses, plus some
|
1945
|
+
extras. Normally it should be possible to port curses-based programs
|
1946
|
+
from UNIX curses to PCcurses on the IBM PC without changes. PCcurses is
|
1947
|
+
a port/ rewrite of Pavel Curtis' public domain 'ncurses' package. All
|
1948
|
+
the code has been re-written - it is not just an edit of ncurses (or
|
1949
|
+
UNIX curses). I mention this to clarify any copyright violation claims.
|
1950
|
+
The data structures and ideas are very similar to ncurses. As for UNIX
|
1951
|
+
curses, I have not even seen any sources for it.
|
1952
|
+
|
1953
|
+
For an introduction to the use of 'curses' and its derivatives, you
|
1954
|
+
should read 'Screen Updating and Cursor Movement Optimization: A Library
|
1955
|
+
Package' by Kenneth C. R. C. Arnold, which describes the original
|
1956
|
+
Berkeley UNIX version of curses. It is available as part of the UNIX
|
1957
|
+
manuals. The other source of information is 'The Ncurses Reference
|
1958
|
+
Manual' by Pavel Curtis. The latter is part of Curtis' ncurses package.
|
1959
|
+
|
1960
|
+
The only other documentation provided is a 'man' page which describes
|
1961
|
+
all the included functions in a very terse way. In the sources, each
|
1962
|
+
function is preceded by a rather thorough description of what the
|
1963
|
+
function does. I didn't have time to write a nice manual/tutorial -
|
1964
|
+
sorry.
|
1965
|
+
|
1966
|
+
PCcurses is released as a number of source files, a man page, and a
|
1967
|
+
make file. A uuencoded copy of a 'make' utility, and a manpage for the
|
1968
|
+
'make' is also provided to make it easier to put together PCcurses
|
1969
|
+
libraries. Even if you are not interested in PCcurses, it may be
|
1970
|
+
worthwhile to grab the make.
|
1971
|
+
|
1972
|
+
The makefile assumes the presence of the Microsoft C compiler (3.0 or
|
1973
|
+
4.0), Microsoft MASM and LIB, plus some MS-DOS utilities. The reason for
|
1974
|
+
supplying MAKE.EXE is that the Microsoft 'MAKE:s' are much inferior to a
|
1975
|
+
real UNIX make. The supplied make is a port of a public domain make,
|
1976
|
+
published on Usenet. It is almost completely compatible with UNIX make.
|
1977
|
+
When generating the curses libraries, the makefile will direct make to
|
1978
|
+
do some directory creating and file copying, and then re-invoke itself
|
1979
|
+
with new targets. The workings of the makefile are not absolutely
|
1980
|
+
crystal clear at first sight... just start it and see what it does.
|
1981
|
+
|
1982
|
+
For portability, the curses libraries depend on one assembler file for
|
1983
|
+
access to the BIOS routines. There is no support for the EGA, but both
|
1984
|
+
CGA, MGA, and the HGA can be used. The libraries are originally for
|
1985
|
+
Microsoft C, but all C modules should be portable right away. In the
|
1986
|
+
assembler file, segment names probably need to be changed, and possibly
|
1987
|
+
the parameter passing scheme. I think Turbo C will work right away - as
|
1988
|
+
far as I understand, all its conventions are compatible with Microsoft
|
1989
|
+
C.
|
1990
|
+
|
1991
|
+
There are some parts left out between ncurses and PCcurses. One is the
|
1992
|
+
support for multiple terminals - not very interesting on a PC anyway.
|
1993
|
+
Because we KNOW what terminal we have, there is no need for a termcap or
|
1994
|
+
terminfo library. PCcurses also has some things that neither curses nor
|
1995
|
+
ncurses have. Compared to the original UNIX curses, PCcurses has lots of
|
1996
|
+
extras.
|
1997
|
+
|
1998
|
+
The BIOS routines are used directly, which gives fast screen updates.
|
1999
|
+
PCcurses does not do direct writes to screen RAM - in my opinion it is
|
2000
|
+
a bit ugly to rely that much on hardware compatibility. Anyone could fix
|
2001
|
+
that, of course...
|
2002
|
+
|
2003
|
+
One of the more serious problems with PCcurses is the way in which
|
2004
|
+
normal, cbreak, and raw input modes are done. All those details are in
|
2005
|
+
the 'charget' module - I do raw I/O via the BIOS, and perform any
|
2006
|
+
buffering myself. If an application program uses PCcurses, it should do
|
2007
|
+
ALL its I/O via PCcurses calls, otherwise the mix of normal and
|
2008
|
+
PCcurses I/O may mess up the display. I think my code is reasonable...
|
2009
|
+
comments are welcome, provided you express them nicely...
|
2010
|
+
|
2011
|
+
To install, copy all files to a work directory, edit 'makefile' to
|
2012
|
+
define the standard include and library file directory names of your
|
2013
|
+
choice (these directories must exist already, and their path names must
|
2014
|
+
be relative to the root directory, not to the current one). You must
|
2015
|
+
also run uudecode on make.uu, to generate MAKE.EXE. You can do that on
|
2016
|
+
your PC, if you have uudecode there, otherwise you can do it under UNIX
|
2017
|
+
and do a binary transfer to the PC. When you have MAKE.EXE in your work
|
2018
|
+
directory (or in your /bin directory), type make.
|
2019
|
+
|
2020
|
+
Make will now create 4 sub-directories (one for each memory model),
|
2021
|
+
copy some assembler include files into them, copy two include files to
|
2022
|
+
your include directory, CHDIR to each sub-directory and re-invoke itself
|
2023
|
+
with other make targets to compile and assemble all the source files
|
2024
|
+
into the appropriate directories. Then the library manager is run to
|
2025
|
+
create the library files in your desired library directory. Presto!
|
2026
|
+
|
2027
|
+
If you only want to generate a library for one memory model, type
|
2028
|
+
'make small', 'make large', etc. The name of the memory model must be in
|
2029
|
+
lower case, like in the makefile.
|
2030
|
+
|
2031
|
+
I think the package is fairly well debugged - but then again, that's
|
2032
|
+
what I always think. It was completed in May-87, and no problems found
|
2033
|
+
yet. Now it's your turn... Comments, suggestions and bug reports and
|
2034
|
+
fixes (no flames please) to
|
2035
|
+
|
2036
|
+
-- Bjorn Larsson
|