aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmit Daniel Kachhap <amit.kachhap@linaro.org>2011-07-22 11:43:56 +0530
committerAmit Daniel Kachhap <amit.kachhap@linaro.org>2011-07-22 12:00:46 +0530
commita659229b2400eb81e92e2172a0eef5d2f71e2023 (patch)
tree4091d50f36ae58d0a0f8471e6a046e2390a0581e
parent12daf075d1b9e916bc8e461eafa38b689b01794f (diff)
downloadandroid_external_libncurses-a659229b2400eb81e92e2172a0eef5d2f71e2023.tar.gz
android_external_libncurses-a659229b2400eb81e92e2172a0eef5d2f71e2023.tar.bz2
android_external_libncurses-a659229b2400eb81e92e2172a0eef5d2f71e2023.zip
Removing unused files.
-rw-r--r--Android.mk.back52
-rw-r--r--test/Makefile.in117
-rw-r--r--test/README679
-rw-r--r--test/aclocal.m42141
-rwxr-xr-xtest/backgroundbin456173 -> 0 bytes
-rw-r--r--test/background.c95
-rwxr-xr-xtest/bluebin468619 -> 0 bytes
-rw-r--r--test/blue.c463
-rwxr-xr-xtest/bsbin518456 -> 0 bytes
-rw-r--r--test/bs.671
-rw-r--r--test/bs.c1256
-rw-r--r--test/bulgarian-utf8.txt6
-rwxr-xr-xtest/cardfilebin522924 -> 0 bytes
-rw-r--r--test/cardfile.c623
-rw-r--r--test/cardfile.dat13
-rwxr-xr-xtest/chgatbin460300 -> 0 bytes
-rw-r--r--test/chgat.c368
-rwxr-xr-xtest/color_setbin455828 -> 0 bytes
-rw-r--r--test/color_set.c92
-rwxr-xr-xtest/configure8140
-rw-r--r--test/configure.in299
-rwxr-xr-xtest/demo_altkeysbin466139 -> 0 bytes
-rw-r--r--test/demo_altkeys.c163
-rwxr-xr-xtest/demo_defkeybin487134 -> 0 bytes
-rw-r--r--test/demo_defkey.c282
-rwxr-xr-xtest/demo_formsbin560966 -> 0 bytes
-rw-r--r--test/demo_forms.c538
-rwxr-xr-xtest/demo_keyokbin458597 -> 0 bytes
-rw-r--r--test/demo_keyok.c82
-rwxr-xr-xtest/demo_menusbin520717 -> 0 bytes
-rw-r--r--test/demo_menus.c900
-rwxr-xr-xtest/demo_panelsbin489667 -> 0 bytes
-rw-r--r--test/demo_panels.c816
-rwxr-xr-xtest/demo_termcapbin370162 -> 0 bytes
-rw-r--r--test/demo_termcap.c171
-rwxr-xr-xtest/dittobin472418 -> 0 bytes
-rw-r--r--test/ditto.c421
-rwxr-xr-xtest/dotsbin370736 -> 0 bytes
-rw-r--r--test/dots.c162
-rwxr-xr-xtest/dots_mvcurbin455722 -> 0 bytes
-rw-r--r--test/dots_mvcur.c171
-rwxr-xr-xtest/echocharbin467566 -> 0 bytes
-rw-r--r--test/echochar.c158
-rw-r--r--test/edit_field.c461
-rw-r--r--test/edit_field.h49
-rwxr-xr-xtest/filterbin482414 -> 0 bytes
-rw-r--r--test/filter.c130
-rwxr-xr-xtest/fireworkbin481922 -> 0 bytes
-rw-r--r--test/firework.c196
-rwxr-xr-xtest/firstlastbin453707 -> 0 bytes
-rw-r--r--test/firstlast.c116
-rwxr-xr-xtest/foldkeysbin483960 -> 0 bytes
-rw-r--r--test/foldkeys.c264
-rwxr-xr-xtest/gdcbin546210 -> 0 bytes
-rw-r--r--test/gdc.664
-rw-r--r--test/gdc.c351
-rwxr-xr-xtest/hanoibin477907 -> 0 bytes
-rw-r--r--test/hanoi.c334
-rwxr-xr-xtest/hashtestbin467146 -> 0 bytes
-rw-r--r--test/hashtest.c246
-rwxr-xr-xtest/inch_widebin304235 -> 0 bytes
-rw-r--r--test/inch_wide.c279
-rwxr-xr-xtest/inchsbin466054 -> 0 bytes
-rw-r--r--test/inchs.c272
-rwxr-xr-xtest/ins_widebin304234 -> 0 bytes
-rw-r--r--test/ins_wide.c525
-rwxr-xr-xtest/insertsbin474723 -> 0 bytes
-rw-r--r--test/inserts.c440
-rwxr-xr-xtest/key_namesbin304235 -> 0 bytes
-rw-r--r--test/key_names.c93
-rwxr-xr-xtest/keynamesbin459443 -> 0 bytes
-rw-r--r--test/keynames.c83
-rwxr-xr-xtest/knightbin486827 -> 0 bytes
-rw-r--r--test/knight.c727
-rw-r--r--test/linux-color.dat48
-rwxr-xr-xtest/listused.sh182
-rwxr-xr-xtest/lrtestbin455391 -> 0 bytes
-rw-r--r--test/lrtest.c182
-rw-r--r--test/mk-test.awk111
-rw-r--r--test/modules89
-rwxr-xr-xtest/movewindowbin489168 -> 0 bytes
-rw-r--r--test/movewindow.c639
-rwxr-xr-xtest/ncursesbin655930 -> 0 bytes
-rw-r--r--test/ncurses.c6571
-rw-r--r--test/ncurses_tst.hin56
-rwxr-xr-xtest/newdemobin468921 -> 0 bytes
-rw-r--r--test/newdemo.c358
-rw-r--r--test/programs86
-rwxr-xr-xtest/railroadbin373239 -> 0 bytes
-rw-r--r--test/railroad.c250
-rwxr-xr-xtest/rainbin478720 -> 0 bytes
-rw-r--r--test/rain.c386
-rwxr-xr-xtest/redrawbin468207 -> 0 bytes
-rw-r--r--test/redraw.c169
-rwxr-xr-xtest/savescreenbin535651 -> 0 bytes
-rw-r--r--test/savescreen.c316
-rwxr-xr-xtest/savescreen.sh55
-rwxr-xr-xtest/tclockbin555049 -> 0 bytes
-rw-r--r--test/tclock.c258
-rw-r--r--test/test.priv.h577
-rwxr-xr-xtest/test_arraysbin326866 -> 0 bytes
-rw-r--r--test/test_arrays.c90
-rwxr-xr-xtest/test_get_wstrbin304239 -> 0 bytes
-rw-r--r--test/test_get_wstr.c361
-rwxr-xr-xtest/test_getstrbin466497 -> 0 bytes
-rw-r--r--test/test_getstr.c363
-rwxr-xr-xtest/test_instrbin465354 -> 0 bytes
-rw-r--r--test/test_instr.c260
-rwxr-xr-xtest/test_inwstrbin304237 -> 0 bytes
-rw-r--r--test/test_inwstr.c269
-rwxr-xr-xtest/test_opaquebin468305 -> 0 bytes
-rw-r--r--test/test_opaque.c471
-rwxr-xr-xtest/testaddchbin455311 -> 0 bytes
-rw-r--r--test/testaddch.c88
-rwxr-xr-xtest/testcursbin499360 -> 0 bytes
-rw-r--r--test/testcurs.c738
-rwxr-xr-xtest/testscanwbin456341 -> 0 bytes
-rw-r--r--test/testscanw.c67
-rwxr-xr-xtest/tracemunch161
-rwxr-xr-xtest/viewbin547187 -> 0 bytes
-rw-r--r--test/view.c573
-rw-r--r--test/widechars-utf8.txt7
-rwxr-xr-xtest/wormbin481889 -> 0 bytes
-rw-r--r--test/worm.c608
-rwxr-xr-xtest/xmasbin498960 -> 0 bytes
-rw-r--r--test/xmas.c1162
-rw-r--r--test/xterm-16color.dat53
-rw-r--r--test/xterm-88color.dat125
128 files changed, 0 insertions, 38638 deletions
diff --git a/Android.mk.back b/Android.mk.back
deleted file mode 100644
index ae3938d..0000000
--- a/Android.mk.back
+++ /dev/null
@@ -1,52 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-c-files-under, ncurses/tty)
-LOCAL_SRC_FILES += $(call all-c-files-under, ncurses/base)
-
-
-ncurses/tty/hardscroll.c \
- ncurses/tty/hashmap.c \
- ncurses/tty/lib_mvcur.c \
- ncurses/tty/lib_tstp.c \
- ncurses/tty/lib_twait.c \
- ncurses/tty/lib_vidattr.c \
- ncurses/tty/tty_update.c \
-
- ncurses/tty/*.c
-
- ncurses/base/*.c
-
-
-
- \
- lib/doc.c \
- lib/cache_mngr.c \
- lib/addr.c \
- lib/socket.c \
- lib/fib_lookup/lookup.c \
- lib/fib_lookup/request.c \
- lib/msg.c \
- lib/object.c \
- lib/attr.c \
- lib/utils.c \
- lib/cache_mngt.c \
- lib/handlers.c \
- lib/genl/ctrl.c \
- lib/genl/mngt.c \
- lib/genl/family.c \
- lib/genl/genl.c \
- lib/route/rtnl.c \
- lib/route/route_utils.c
-
-#LOCAL_CFLAGS :=
-LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
- #kernel/android-2.6.32/include
-
-LOCAL_MODULE_TAGS := eng
-LOCAL_MODULE := libnl
-
-include $(BUILD_SHARED_LIBRARY)
-#include $(BUILD_STATIC_LIBRARY)
-
diff --git a/test/Makefile.in b/test/Makefile.in
deleted file mode 100644
index a495eed..0000000
--- a/test/Makefile.in
+++ /dev/null
@@ -1,117 +0,0 @@
-# $Id: Makefile.in,v 1.102 2008/09/07 13:58:29 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1996-on
-#
-# Makefile for ncurses tests.
-
-# turn off _all_ suffix rules; we'll generate our own
-.SUFFIXES:
-
-SHELL = /bin/sh
-
-@SET_MAKE@
-
-destdir =
-x = @EXEEXT@
-o = .@OBJEXT@
-
-MODEL = ../@DFT_OBJ_SUBDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-includedir = @includedir@
-
-LIBTOOL = @LIBTOOL@
-LIBTOOL_CLEAN = @LIB_CLEAN@
-LIBTOOL_COMPILE = @LIB_COMPILE@
-LIBTOOL_LINK = @LIB_LINK@
-
-CC = @CC@
-CPP = @CPP@
-
-CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
-CPPFLAGS = -I../test -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_LIBTOOL = $(CCFLAGS)
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-REL_VERSION = @cf_cv_rel_version@
-ABI_VERSION = @cf_cv_abi_version@
-LOCAL_LIBDIR = @top_builddir@/lib
-LOCAL_LIBS = @TEST_DEPS@
-MATH_LIB = @MATH_LIB@
-TEST_LIBS = @TEST_LIBS@
-
-LD = @LD@
-LINK = @LINK_TESTS@ $(LIBTOOL_LINK) $(CFLAGS)
-
-LDFLAGS = @LD_MODEL@ @LOCAL_LDFLAGS@ @LDFLAGS@
-
-LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL)
-LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
-LDFLAGS_DEBUG = $(LDFLAGS) $(CFLAGS_DEBUG)
-LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE)
-LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
-
-TEST_ARGS = @LDFLAGS_STATIC@ @TEST_ARGS@ @LDFLAGS_SHARED@
-
-# use these for linking with all of the libraries
-LIBS_DEFAULT = $(TEST_ARGS) @LIBS@ $(TEST_LIBS) $(MATH_LIB)
-LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_DEFAULT)
-
-# use these for linking with the (n)curses library and possibly pthreads
-LIBS_THREADS = `echo "$(TEST_ARGS) @LIBS@" | sed -e 's/-lform.*-lpanel[^ ]*//'` $(TEST_LIBS) $(MATH_LIB) @PTHREAD@
-LDFLAGS_THREADS = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_THREADS)
-
-# use these for linking with the (n)curses library
-LIBS_CURSES = `echo "$(TEST_ARGS) @LIBS@" | sed -e 's/-lform.*-lpanel[^ ]*//'` $(TEST_LIBS) $(MATH_LIB)
-LDFLAGS_CURSES = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_CURSES)
-
-# use these for linking with the tinfo library if we have it, or curses library if not
-LIBS_TINFO = @LDFLAGS_STATIC@ @TINFO_ARGS@ @LDFLAGS_SHARED@ @LIBS@ $(TEST_LIBS) $(MATH_LIB)
-LDFLAGS_TINFO = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
-
-LINT = @LINT@
-LINT_OPTS = @LINT_OPTS@
-LINT_LIBS = -lform -lmenu -lpanel -lncurses @LIBS@
-
-HEADER_DEPS = \
- ../include/curses.h \
- ../include/term.h
-
-# The rest is generated from the "programs" and "modules" files...
diff --git a/test/README b/test/README
deleted file mode 100644
index 8e1c8b6..0000000
--- a/test/README
+++ /dev/null
@@ -1,679 +0,0 @@
--------------------------------------------------------------------------------
--- Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. --
--- --
--- Permission is hereby granted, free of charge, to any person obtaining a --
--- copy of this software and associated documentation files (the --
--- "Software"), to deal in the Software without restriction, including --
--- without limitation the rights to use, copy, modify, merge, publish, --
--- distribute, distribute with modifications, sublicense, and/or sell copies --
--- of the Software, and to permit persons to whom the Software is furnished --
--- to do so, subject to the following conditions: --
--- --
--- The above copyright notice and this permission notice shall be included --
--- in all copies or substantial portions of the Software. --
--- --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN --
--- NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE --
--- USE OR OTHER DEALINGS IN THE SOFTWARE. --
--- --
--- Except as contained in this notice, the name(s) of the above copyright --
--- holders shall not be used in advertising or otherwise to promote the --
--- sale, use or other dealings in this Software without prior written --
--- authorization. --
--------------------------------------------------------------------------------
--- $Id: README,v 1.38 2008/10/18 21:02:45 tom Exp $
--------------------------------------------------------------------------------
-
-The programs in this directory are designed to test your newest toy :-)
-Check the sources for any further details.
-
-blue - Blue Moon, a nifty solitaire (uses color)
-bs.c - the game of Battleships (uses color)
-firework.c - multi-colored fireworks (uses color)
-gdc.c - Great Digital Clock (uses color)
-hanoi.c - the game of hanoi (uses color essentially)
-knight.c - the game of Knight's Tour (uses color)
-lrtest.c - test of access to the lower-right corner
-ncurses.c - multi-test program (uses color)
-newdemo.c - another test from PDCurses (uses color)
-rain.c - rain drops keep falling on my head...
-tclock.c - analog/digital clock
-testcurs.c - a test from the PDCurses people (uses color)
-worm.c - worms run all over your screen (uses color)
-xmas.c - Xmas greeting card
-
-The bs and knight games demonstrate processing of mouse events under xterm.
-This directory also contains:
-
-tracemunch - Perl script to crunch trace scripts to make them easier to read
-
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-
-These programs provide examples of use, but do not comprise a complete set of
-tests. Here is a list of library externals, noting those that are used:
-
-libform:
--------
-TYPE_ALNUM test: demo_forms
-TYPE_ALPHA test: demo_forms ncurses
-TYPE_ENUM test: demo_forms
-TYPE_INTEGER test: demo_forms
-TYPE_IPV4 test: demo_forms
-TYPE_NUMERIC test: demo_forms
-TYPE_REGEXP test: demo_forms
-current_field test: demo_forms edit_field ncurses
-data_ahead test: demo_forms
-data_behind test: demo_forms
-dup_field -
-dynamic_field_info test: demo_forms
-field_arg test: demo_forms
-field_back test: demo_forms
-field_buffer test: cardfile demo_forms edit_field ncurses
-field_count test: demo_forms
-field_fore test: demo_forms
-field_index test: demo_forms
-field_info test: ncurses
-field_init -
-field_just -
-field_opts test: demo_forms ncurses
-field_opts_off test: cardfile demo_forms
-field_opts_on test: demo_forms
-field_pad test: demo_forms
-field_status test: demo_forms
-field_term -
-field_type test: demo_forms
-field_userptr test: edit_field ncurses
-form_driver test: cardfile demo_forms edit_field ncurses
-form_fields test: cardfile demo_forms
-form_init -
-form_opts -
-form_opts_off -
-form_opts_on -
-form_page test: demo_forms
-form_request_by_name -
-form_request_name test: edit_field
-form_sub test: cardfile demo_forms ncurses
-form_term -
-form_userptr -
-form_win test: cardfile demo_forms edit_field ncurses
-free_field test: cardfile demo_forms ncurses
-free_fieldtype test: ncurses
-free_form test: cardfile demo_forms ncurses
-link_field -
-link_fieldtype -
-move_field -
-new_field test: cardfile demo_forms ncurses
-new_fieldtype test: ncurses
-new_form test: cardfile demo_forms ncurses
-new_page test: demo_forms
-pos_form_cursor -
-post_form test: cardfile demo_forms ncurses
-scale_form test: demo_forms ncurses
-set_current_field test: demo_forms
-set_field_back test: cardfile demo_forms edit_field ncurses
-set_field_buffer test: cardfile demo_forms edit_field ncurses
-set_field_fore test: demo_forms
-set_field_init -
-set_field_just test: cardfile demo_forms
-set_field_opts test: demo_forms ncurses
-set_field_pad test: demo_forms
-set_field_status test: demo_forms
-set_field_term -
-set_field_type test: demo_forms ncurses
-set_field_userptr test: demo_forms ncurses
-set_fieldtype_arg -
-set_fieldtype_choice -
-set_form_fields -
-set_form_init -
-set_form_opts -
-set_form_page -
-set_form_sub test: cardfile demo_forms ncurses
-set_form_term -
-set_form_userptr -
-set_form_win test: cardfile demo_forms ncurses
-set_max_field test: demo_forms
-set_new_page test: demo_forms
-unpost_form test: cardfile demo_forms ncurses
-
-libmenu:
--------
-current_item test: demo_menus ncurses
-free_item test: ncurses
-free_menu test: demo_menus ncurses
-item_count test: demo_menus
-item_description -
-item_index test: demo_menus ncurses
-item_init -
-item_name test: demo_menus ncurses
-item_opts -
-item_opts_off -
-item_opts_on -
-item_term -
-item_userptr -
-item_value test: demo_menus ncurses
-item_visible -
-menu_back -
-menu_driver test: demo_menus ncurses
-menu_fore -
-menu_format -
-menu_grey -
-menu_init -
-menu_items test: demo_menus ncurses
-menu_mark test: demo_menus
-menu_opts -
-menu_opts_off test: demo_menus ncurses
-menu_opts_on test: demo_menus
-menu_pad -
-menu_pattern test: demo_menus
-menu_request_by_name -
-menu_request_name -
-menu_spacing test: demo_menus
-menu_sub test: demo_menus
-menu_term -
-menu_userptr -
-menu_win test: demo_menus ncurses
-new_item test: demo_menus ncurses
-new_menu test: demo_menus ncurses
-pos_menu_cursor lib: menu
-post_menu test: demo_menus ncurses
-scale_menu test: demo_menus ncurses
-set_current_item -
-set_item_init -
-set_item_opts -
-set_item_term -
-set_item_userptr -
-set_item_value test: demo_menus ncurses
-set_menu_back test: demo_menus
-set_menu_fore test: demo_menus
-set_menu_format test: demo_menus ncurses
-set_menu_grey -
-set_menu_init -
-set_menu_items -
-set_menu_mark test: demo_menus
-set_menu_opts -
-set_menu_pad -
-set_menu_pattern -
-set_menu_spacing -
-set_menu_sub test: demo_menus ncurses
-set_menu_term -
-set_menu_userptr -
-set_menu_win test: demo_menus ncurses
-set_top_row -
-top_row -
-unpost_menu test: demo_menus ncurses
-
-libncurses:
-----------
-BC -
-COLORS test: echochar ncurses savescreen xmas
-COLOR_PAIR test: background blue bs cardfile demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
-COLOR_PAIRS test: echochar ncurses newdemo savescreen
-COLS test: cardfile demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto echochar edit_field firework foldkeys hashtest inch_wide inchs ins_wide inserts lrtest movewindow ncurses newdemo rain savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm
-ESCDELAY test: test_opaque
-LINES test: cardfile demo_defkey demo_keyok demo_menus demo_panels ditto echochar edit_field firework hanoi hashtest inch_wide inchs ins_wide inserts lrtest movewindow ncurses newdemo rain savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
-PAIR_NUMBER test: ncurses
-PC lib: ncurses
-SP lib: ncurses
-TABSIZE test: test_opaque
-UP -
-acs_map test: gdc ins_wide inserts knight movewindow ncurses newdemo testcurs
-add_wch test: demo_panels ncurses
-add_wchnstr -
-add_wchstr test: view
-addch test: blue bs echochar hashtest ncurses savescreen test_opaque testaddch view worm
-addchnstr -
-addchstr -
-addnstr -
-addnwstr test: ncurses
-addstr test: blue bs cardfile gdc hanoi lrtest ncurses savescreen
-addwstr test: ncurses
-assume_default_colors test: ncurses
-attr_get test: ncurses
-attr_off test: ncurses
-attr_on test: ncurses
-attr_set test: ncurses
-attroff test: echochar filter gdc ncurses tclock
-attron test: bs echochar filter gdc ncurses
-attrset test: bs firework gdc hanoi ncurses rain tclock testaddch testcurs
-baudrate lib: ncurses
-beep test: blue bs cardfile chgat demo_forms demo_menus demo_panels edit_field hanoi inch_wide inchs ins_wide inserts knight movewindow ncurses savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view xmas
-bkgd test: background cardfile demo_forms ncurses savescreen tclock view
-bkgdset test: background ncurses testaddch
-bkgrnd test: ncurses
-bkgrndset test: ncurses
-boolcodes test: test_arrays progs: dump_entry
-boolfnames test: test_arrays progs: dump_entry
-boolnames test: test_arrays progs: dump_entry infocmp
-border -
-border_set -
-box test: cardfile chgat demo_forms demo_menus demo_panels ditto edit_field inch_wide inchs ins_wide inserts lrtest ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
-box_set test: ncurses
-can_change_color test: ncurses
-cbreak test: background blue bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto filter firework foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses newdemo savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
-chgat test: chgat
-clear test: blue bs gdc ncurses testcurs xmas
-clearok test: bs knight
-clrtobot test: demo_menus ncurses
-clrtoeol test: blue bs demo_altkeys demo_menus foldkeys hanoi hashtest movewindow ncurses view
-color_content test: ncurses
-color_set test: color_set ncurses
-copywin test: ncurses testcurs
-cur_term test: dots dots_mvcur lrtest progs: clear tput tset
-curs_set test: echochar firework gdc hanoi lrtest ncurses newdemo rain savescreen tclock testcurs worm xmas
-curscr test: demo_panels edit_field knight lrtest ncurses savescreen tclock view
-curses_version test: ncurses progs: infocmp tic toe tput tset
-def_prog_mode test: bs ncurses
-def_shell_mode lib: ncurses
-define_key test: demo_altkeys demo_defkey foldkeys
-del_curterm lib: ncurses
-delay_output test: newdemo
-delch -
-deleteln -
-delscreen test: ditto dots_mvcur
-delwin test: cardfile chgat demo_forms demo_panels edit_field inch_wide inchs ins_wide inserts movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
-derwin test: cardfile chgat demo_forms demo_menus ditto inch_wide inchs ins_wide inserts movewindow ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque
-doupdate test: cardfile demo_menus demo_panels ditto edit_field ins_wide inserts knight movewindow ncurses redraw savescreen test_get_wstr test_getstr
-dupwin test: edit_field
-echo test: bs hanoi ncurses test_get_wstr test_getstr testcurs testscanw
-echo_wchar test: ncurses
-echochar test: echochar ncurses
-endwin test: background blue bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto dots_mvcur echochar filter firework firstlast foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts key_names keynames knight lrtest movewindow ncurses newdemo rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testaddch testcurs testscanw view worm xmas
-erase test: cardfile demo_menus filter firework firstlast hanoi lrtest ncurses tclock test_opaque testcurs
-erasechar lib: ncurses
-erasewchar -
-filter test: filter
-flash test: cardfile lrtest ncurses tclock testcurs
-flushinp test: ncurses newdemo testcurs
-get_wch -
-get_wstr test: test_get_wstr
-getattrs -
-getbegx test: chgat demo_menus demo_panels movewindow ncurses newdemo redraw testcurs
-getbegy test: chgat demo_menus demo_panels movewindow ncurses newdemo redraw testcurs
-getbkgd test: ncurses
-getbkgrnd test: ncurses
-getcchar test: ncurses view
-getch test: background blue bs chgat color_set demo_altkeys filter firework firstlast foldkeys hanoi hashtest lrtest savescreen tclock test_opaque testaddch testcurs view xmas
-getcurx test: bs chgat demo_altkeys demo_defkey demo_panels foldkeys movewindow ncurses redraw savescreen test_get_wstr test_getstr test_opaque testcurs
-getcury test: bs chgat demo_altkeys demo_defkey demo_panels edit_field foldkeys movewindow ncurses redraw savescreen test_opaque testcurs
-getmaxx test: chgat demo_panels inch_wide inchs movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
-getmaxy test: chgat demo_forms demo_panels inch_wide inchs movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
-getmouse test: bs knight movewindow ncurses
-getn_wstr test: test_get_wstr
-getnstr test: filter ncurses test_getstr
-getparx test: movewindow
-getpary test: movewindow
-getstr test: test_getstr
-getwin test: ncurses
-halfdelay test: view
-has_colors test: background bs cardfile chgat color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testcurs view worm xmas
-has_ic test: lrtest
-has_il lib: ncurses
-has_key lib: ncurses
-hline test: gdc ncurses
-hline_set -
-idcok test: test_opaque
-idlok test: ncurses test_opaque testscanw view
-immedok test: test_opaque
-in_wch test: inch_wide
-in_wchnstr test: inch_wide
-in_wchstr test: inch_wide
-inch test: inchs
-inchnstr test: inchs
-inchstr test: inchs
-init_color test: ncurses
-init_pair test: background blue bs cardfile chgat color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
-initscr test: background blue bs cardfile chgat color_set demo_defkey demo_forms demo_keyok demo_menus demo_panels echochar firework firstlast gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses newdemo rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testaddch testcurs testscanw view worm xmas
-innstr test: test_instr
-innwstr test: test_inwstr
-ins_nwstr test: ins_wide
-ins_wch test: ins_wide
-ins_wstr test: ins_wide
-insch test: ins_wide inserts
-insdelln -
-insertln -
-insnstr test: inserts
-insstr test: inserts
-instr test: test_instr
-intrflush test: demo_forms movewindow
-inwstr test: test_inwstr
-is_cleared test: test_opaque
-is_idcok test: test_opaque
-is_idlok test: test_opaque
-is_immedok test: test_opaque
-is_keypad test: test_opaque
-is_leaveok test: test_opaque
-is_linetouched lib: form
-is_nodelay test: test_opaque
-is_notimeout test: test_opaque
-is_scrollok test: test_opaque
-is_syncok test: test_opaque
-is_term_resized -
-is_wintouched lib: ncurses
-isendwin -
-key_defined test: demo_defkey foldkeys
-key_name test: key_names ncurses
-keybound test: demo_altkeys demo_defkey
-keyname test: demo_altkeys demo_defkey demo_keyok demo_menus edit_field foldkeys keynames movewindow ncurses redraw testcurs view progs: tic
-keyok test: demo_keyok foldkeys
-keypad test: bs cardfile chgat demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto edit_field filter firework foldkeys hashtest inch_wide inchs ins_wide inserts key_names keynames knight lrtest movewindow ncurses redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs testscanw view
-killchar lib: ncurses
-killwchar -
-leaveok test: hanoi test_opaque
-longname test: testcurs progs: tput
-mcprint -
-meta test: key_names keynames ncurses
-mouse_trafo -
-mouseinterval -
-mousemask test: bs demo_forms demo_menus knight movewindow ncurses
-move test: blue bs cardfile chgat demo_altkeys demo_menus echochar foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses savescreen test_get_wstr test_getstr test_instr test_inwstr test_opaque testscanw view xmas
-mvadd_wch test: ncurses
-mvadd_wchnstr -
-mvadd_wchstr -
-mvaddch test: bs gdc hanoi lrtest ncurses rain tclock xmas
-mvaddchnstr test: gdc
-mvaddchstr -
-mvaddnstr -
-mvaddnwstr -
-mvaddstr test: bs demo_forms gdc hanoi knight ncurses rain tclock testcurs xmas
-mvaddwstr -
-mvchgat test: chgat
-mvcur test: dots_mvcur redraw
-mvdelch -
-mvderwin test: movewindow
-mvget_wch -
-mvget_wstr test: test_get_wstr
-mvgetch -
-mvgetn_wstr test: test_get_wstr
-mvgetnstr test: test_getstr
-mvgetstr test: test_getstr
-mvhline test: ncurses
-mvhline_set test: ncurses
-mvin_wch test: inch_wide
-mvin_wchnstr test: inch_wide
-mvin_wchstr test: inch_wide
-mvinch test: inchs
-mvinchnstr test: gdc inchs
-mvinchstr test: inchs
-mvinnstr test: test_instr
-mvinnwstr test: test_inwstr
-mvins_nwstr test: ins_wide
-mvins_wch test: ins_wide
-mvins_wstr test: ins_wide
-mvinsch test: ins_wide inserts
-mvinsnstr test: inserts
-mvinsstr test: inserts
-mvinstr test: test_instr
-mvinwstr test: test_inwstr
-mvprintw test: bs demo_menus firework hanoi ncurses tclock view
-mvscanw -
-mvvline test: ncurses
-mvvline_set test: ncurses
-mvwadd_wch -
-mvwadd_wchnstr lib: form
-mvwadd_wchstr test: inch_wide
-mvwaddch test: movewindow newdemo testcurs xmas
-mvwaddchnstr -
-mvwaddchstr test: inchs
-mvwaddnstr test: newdemo testcurs
-mvwaddnwstr -
-mvwaddstr test: ditto firstlast ins_wide inserts knight ncurses newdemo test_instr testcurs xmas
-mvwaddwstr test: test_inwstr
-mvwchgat test: chgat
-mvwdelch test: ncurses
-mvwget_wch -
-mvwget_wstr test: test_get_wstr
-mvwgetch test: inch_wide inchs test_get_wstr test_getstr test_instr test_inwstr test_opaque
-mvwgetn_wstr test: test_get_wstr
-mvwgetnstr test: test_getstr
-mvwgetstr test: test_getstr
-mvwhline test: movewindow
-mvwhline_set -
-mvwin test: cardfile demo_menus movewindow testcurs xmas
-mvwin_wch test: inch_wide
-mvwin_wchnstr test: inch_wide
-mvwin_wchstr test: inch_wide
-mvwinch test: inchs newdemo testcurs
-mvwinchnstr test: inchs
-mvwinchstr test: inchs
-mvwinnstr test: test_instr testcurs
-mvwinnwstr test: test_inwstr
-mvwins_nwstr test: ins_wide
-mvwins_wch test: ins_wide
-mvwins_wstr test: ins_wide
-mvwinsch test: ins_wide inserts
-mvwinsnstr test: inserts
-mvwinsstr test: inserts testcurs
-mvwinstr test: test_instr
-mvwinwstr test: test_inwstr
-mvwprintw test: chgat demo_panels inch_wide inchs ncurses test_instr test_inwstr testcurs
-mvwscanw test: testcurs
-mvwvline test: ins_wide inserts movewindow
-mvwvline_set -
-napms test: demo_panels ditto dots dots_mvcur echochar firework gdc hanoi lrtest ncurses railroad rain tclock test_opaque testcurs view worm xmas progs: tset
-newpad test: edit_field ncurses testcurs
-newscr lib: ncurses
-newterm test: demo_altkeys ditto dots_mvcur filter foldkeys gdc key_names keynames
-newwin test: cardfile chgat demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto edit_field firstlast inch_wide inchs ins_wide inserts knight movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs xmas
-nl test: demo_forms ncurses rain testcurs
-nocbreak test: testcurs
-nodelay test: ditto firework gdc lrtest ncurses newdemo rain tclock test_opaque view worm xmas
-noecho test: background bs cardfile chgat color_set demo_altkeys demo_defkey demo_forms demo_keyok demo_menus demo_panels ditto firework firstlast foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts knight lrtest movewindow ncurses rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs view worm xmas
-nofilter -
-nonl test: bs demo_forms hashtest movewindow ncurses view worm xmas
-noqiflush -
-noraw test: demo_forms demo_menus ncurses testcurs
-notimeout test: test_opaque
-numcodes test: test_arrays progs: dump_entry
-numfnames test: test_arrays progs: dump_entry
-numnames test: test_arrays progs: dump_entry infocmp
-ospeed progs: tset
-overlay test: ncurses testcurs xmas
-overwrite test: ncurses savescreen
-pair_content test: background color_set
-pecho_wchar -
-pechochar -
-pnoutrefresh test: edit_field ncurses
-prefresh test: testcurs
-printw test: background blue bs color_set demo_altkeys demo_defkey demo_keyok demo_menus filter foldkeys ncurses savescreen testcurs testscanw view
-putp progs: tput
-putwin test: ncurses
-qiflush -
-raw test: demo_forms ncurses redraw testcurs
-redrawwin test: redraw
-refresh test: blue bs demo_defkey demo_forms demo_keyok demo_menus demo_panels echochar filter firstlast gdc hanoi hashtest lrtest movewindow ncurses savescreen tclock testcurs view xmas
-reset_prog_mode test: filter ncurses
-reset_shell_mode test: bs filter savescreen
-resetty -
-resize_term test: view
-resizeterm lib: ncurses
-restartterm -
-ripoffline test: demo_menus ncurses
-savetty -
-scanw test: testcurs testscanw
-scr_dump test: savescreen
-scr_init test: savescreen
-scr_restore test: savescreen
-scr_set test: savescreen
-scrl test: view
-scroll test: testcurs
-scrollok test: demo_altkeys demo_defkey demo_keyok demo_panels ditto foldkeys hashtest knight ncurses redraw test_opaque testcurs testscanw view
-set_curterm lib: ncurses
-set_escdelay test: test_opaque
-set_tabsize test: test_opaque
-set_term lib: ncurses
-setcchar test: demo_panels ins_wide ncurses view
-setscrreg test: view
-setupterm test: dots progs: clear tput tset
-slk_attr -
-slk_attr_off -
-slk_attr_on -
-slk_attr_set -
-slk_attroff lib: ncurses
-slk_attron lib: ncurses
-slk_attrset -
-slk_clear test: ncurses
-slk_color test: ncurses
-slk_init test: ncurses
-slk_label test: ncurses
-slk_noutrefresh -
-slk_refresh test: ncurses
-slk_restore test: ncurses
-slk_set test: ncurses
-slk_touch lib: ncurses
-slk_wset test: ncurses
-standend test: blue gdc ncurses
-standout test: blue ncurses
-start_color test: background blue bs cardfile chgat color_set demo_forms demo_menus demo_panels echochar filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain savescreen tclock testaddch testcurs view worm xmas
-stdscr test: bs chgat demo_altkeys demo_forms demo_menus demo_panels ditto filter firework foldkeys gdc hanoi hashtest inch_wide inchs ins_wide inserts key_names keynames knight lrtest movewindow ncurses rain redraw savescreen tclock test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs testscanw view worm xmas
-strcodes test: test_arrays progs: dump_entry
-strfnames test: test_arrays progs: dump_entry
-strnames test: foldkeys test_arrays progs: dump_entry infocmp tic
-subpad test: testcurs
-subwin test: movewindow ncurses newdemo testcurs
-syncok test: test_opaque
-term_attrs test: ncurses
-termattrs test: ncurses testcurs
-termname test: testcurs
-tgetent test: demo_termcap railroad
-tgetflag test: demo_termcap
-tgetnum test: demo_termcap railroad
-tgetstr test: demo_termcap railroad
-tgoto test: railroad
-tigetflag progs: tput
-tigetnum test: ncurses progs: tput
-tigetstr test: blue demo_defkey foldkeys testcurs progs: tput
-timeout test: rain savescreen
-touchline test: chgat
-touchwin test: chgat demo_menus edit_field filter firstlast inch_wide inchs ins_wide inserts movewindow ncurses redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque xmas
-tparm test: dots dots_mvcur progs: tic tput
-tputs test: dots dots_mvcur railroad progs: clear tset
-trace test: demo_menus hanoi hashtest lrtest ncurses testcurs view worm
-ttytype lib: ncurses
-typeahead test: testcurs
-unctrl test: ncurses redraw testcurs
-unget_wch -
-ungetch test: bs knight
-ungetmouse -
-untouchwin lib: form
-use_default_colors test: filter firework gdc hanoi knight ncurses rain tclock worm xmas
-use_env progs: tput
-use_extended_names progs: infocmp tic
-use_legacy_coding -
-use_screen test: ditto
-use_window test: rain worm
-vid_attr -
-vid_puts -
-vidattr lib: ncurses
-vidputs lib: ncurses
-vline test: gdc ncurses
-vline_set -
-vw_printw -
-vw_scanw -
-vwprintw test: movewindow
-vwscanw lib: ncurses
-wadd_wch test: inch_wide
-wadd_wchnstr lib: form
-wadd_wchstr -
-waddch test: demo_forms demo_panels ditto firstlast inch_wide inchs knight ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque worm
-waddchnstr lib: ncurses
-waddchstr -
-waddnstr lib: menu
-waddnwstr test: ncurses
-waddstr test: chgat demo_forms demo_panels edit_field firstlast ins_wide knight ncurses redraw testcurs
-waddwstr test: ins_wide test_get_wstr
-wattr_get -
-wattr_off lib: ncurses
-wattr_on lib: ncurses
-wattr_set -
-wattroff test: demo_forms ncurses testcurs xmas
-wattron test: testcurs xmas
-wattrset test: demo_forms ncurses newdemo test_get_wstr test_getstr testcurs xmas
-wbkgd test: cardfile demo_forms demo_menus ncurses newdemo testcurs
-wbkgdset test: demo_panels ins_wide inserts ncurses
-wbkgrnd lib: ncurses
-wbkgrndset lib: ncurses
-wborder lib: ncurses
-wborder_set lib: ncurses
-wchgat test: chgat test_get_wstr test_getstr view
-wclear test: ncurses test_opaque testcurs
-wclrtobot test: firstlast inch_wide inchs ncurses test_instr test_inwstr testcurs
-wclrtoeol test: chgat demo_defkey demo_keyok demo_panels firstlast inch_wide inchs ins_wide inserts knight ncurses test_instr test_inwstr testcurs
-wcolor_set lib: ncurses
-wcursyncup lib: form
-wdelch test: ncurses testcurs
-wdeleteln test: testcurs
-wecho_wchar lib: ncurses
-wechochar lib: ncurses
-wenclose lib: form
-werase test: cardfile demo_forms demo_menus demo_panels edit_field firstlast knight ncurses newdemo test_get_wstr test_getstr test_opaque testcurs xmas
-wget_wch test: ins_wide ncurses
-wget_wstr test: test_get_wstr
-wgetbkgrnd lib: ncurses
-wgetch test: cardfile chgat demo_defkey demo_keyok demo_menus demo_panels ditto edit_field gdc inserts knight movewindow ncurses newdemo rain redraw test_opaque testcurs worm
-wgetn_wstr test: ncurses test_get_wstr
-wgetnstr test: ncurses test_getstr
-wgetparent test: test_opaque
-wgetscrreg test: test_opaque
-wgetstr test: test_getstr
-whline test: testcurs
-whline_set lib: ncurses
-win_wch test: inch_wide
-win_wchnstr test: inch_wide
-win_wchstr test: inch_wide
-winch test: inchs knight testcurs
-winchnstr test: inchs
-winchstr test: inchs
-winnstr test: demo_altkeys demo_defkey foldkeys test_instr
-winnwstr test: test_inwstr
-wins_nwstr test: ins_wide
-wins_wch test: ins_wide
-wins_wstr test: ins_wide
-winsch test: ins_wide inserts testcurs
-winsdelln lib: ncurses
-winsertln test: testcurs
-winsnstr test: inserts
-winsstr test: inserts
-winstr test: test_instr
-winwstr test: test_inwstr
-wmouse_trafo lib: form
-wmove test: chgat demo_altkeys demo_defkey demo_keyok demo_menus demo_panels firstlast foldkeys inch_wide inchs ins_wide inserts knight movewindow ncurses newdemo redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs worm
-wnoutrefresh test: demo_menus ditto edit_field inch_wide inchs ins_wide inserts knight movewindow ncurses redraw test_get_wstr test_getstr test_instr test_inwstr test_opaque
-wprintw test: chgat demo_defkey demo_forms demo_keyok demo_menus demo_panels edit_field inch_wide inchs ins_wide inserts knight movewindow ncurses test_get_wstr test_getstr test_instr test_inwstr test_opaque testcurs
-wredrawln test: redraw
-wrefresh test: chgat demo_forms demo_keyok demo_menus demo_panels edit_field firstlast knight lrtest movewindow ncurses newdemo redraw savescreen tclock testcurs view worm xmas
-wresize test: cardfile ncurses
-wscanw test: testcurs
-wscrl test: ncurses testcurs
-wsetscrreg test: ncurses testcurs
-wstandend test: test_opaque xmas
-wstandout test: test_opaque xmas
-wsyncdown test: movewindow
-wsyncup lib: form
-wtimeout test: ncurses
-wtouchln lib: ncurses
-wunctrl lib: ncurses
-wvline test: testcurs
-wvline_set lib: ncurses
-
-libpanel:
---------
-bottom_panel test: demo_panels ncurses
-del_panel test: demo_panels ncurses
-hide_panel test: demo_panels ncurses
-move_panel test: demo_panels ncurses
-new_panel test: cardfile demo_panels ncurses
-panel_above test: demo_panels
-panel_below test: demo_panels
-panel_hidden test: demo_panels
-panel_userptr test: demo_panels ncurses
-panel_window test: cardfile demo_panels ncurses
-replace_panel test: demo_panels
-set_panel_userptr test: demo_panels ncurses
-show_panel test: demo_panels ncurses
-top_panel test: cardfile demo_panels ncurses
-update_panels test: cardfile demo_panels ncurses
diff --git a/test/aclocal.m4 b/test/aclocal.m4
deleted file mode 100644
index afc50fe..0000000
--- a/test/aclocal.m4
+++ /dev/null
@@ -1,2141 +0,0 @@
-dnl***************************************************************************
-dnl Copyright (c) 2003-2007,2008 Free Software Foundation, Inc. *
-dnl *
-dnl Permission is hereby granted, free of charge, to any person obtaining a *
-dnl copy of this software and associated documentation files (the *
-dnl "Software"), to deal in the Software without restriction, including *
-dnl without limitation the rights to use, copy, modify, merge, publish, *
-dnl distribute, distribute with modifications, sublicense, and/or sell *
-dnl copies of the Software, and to permit persons to whom the Software is *
-dnl furnished to do so, subject to the following conditions: *
-dnl *
-dnl The above copyright notice and this permission notice shall be included *
-dnl in all copies or substantial portions of the Software. *
-dnl *
-dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-dnl *
-dnl Except as contained in this notice, the name(s) of the above copyright *
-dnl holders shall not be used in advertising or otherwise to promote the *
-dnl sale, use or other dealings in this Software without prior written *
-dnl authorization. *
-dnl***************************************************************************
-dnl
-dnl $Id: aclocal.m4,v 1.22 2008/02/09 18:22:17 tom Exp $
-dnl
-dnl Author: Thomas E. Dickey
-dnl
-dnl Macros used in NCURSES test programs auto-configuration script.
-dnl
-dnl These macros are maintained separately from NCURSES. The copyright on
-dnl this file applies to the aggregation of macros and does not affect use of
-dnl these macros in other applications.
-dnl
-dnl See http://invisible-island.net/autoconf/ for additional information.
-dnl
-dnl ---------------------------------------------------------------------------
-dnl ---------------------------------------------------------------------------
-dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
-dnl -------------
-dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
-dnl The second parameter if given makes this macro verbose.
-dnl
-dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
-dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
-dnl confused by the quotes (which require backslashes to keep them usable).
-AC_DEFUN([CF_ADD_CFLAGS],
-[
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in $1
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
- ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
- ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
- ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
-AC_SUBST(EXTRA_CPPFLAGS)
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 9 updated: 2008/02/09 13:15:34
-dnl -------------
-dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
-dnl redundant. We don't normally need to add -I/usr/local/include for gcc,
-dnl but old versions (and some misinstalled ones) need that. To make things
-dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
-dnl the include-path).
-AC_DEFUN([CF_ADD_INCDIR],
-[
-if test -n "$1" ; then
- for cf_add_incdir in $1
- do
- while test $cf_add_incdir != /usr/include
- do
- if test -d $cf_add_incdir
- then
- cf_have_incdir=no
- if test -n "$CFLAGS$CPPFLAGS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
- cf_have_incdir=yes; break
- fi
- done
- fi
-
- if test "$cf_have_incdir" = no ; then
- if test "$cf_add_incdir" = /usr/local/include ; then
- if test "$GCC" = yes
- then
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- AC_TRY_COMPILE([#include <stdio.h>],
- [printf("Hello")],
- [],
- [cf_have_incdir=yes])
- CPPFLAGS=$cf_save_CPPFLAGS
- fi
- fi
- fi
-
- if test "$cf_have_incdir" = no ; then
- CF_VERBOSE(adding $cf_add_incdir to include-path)
- ifelse($2,,CPPFLAGS,$2)="-I$cf_add_incdir $ifelse($2,,CPPFLAGS,[$]$2)"
-
- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
- test "$cf_top_incdir" = "$cf_add_incdir" && break
- cf_add_incdir="$cf_top_incdir"
- else
- break
- fi
- fi
- done
- done
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ADD_LIBDIR version: 6 updated: 2008/02/09 13:15:34
-dnl -------------
-dnl Adds to the library-path
-dnl
-dnl Some machines have trouble with multiple -L options.
-dnl
-dnl $1 is the (list of) directory(s) to add
-dnl $2 is the optional name of the variable to update (default LDFLAGS)
-dnl
-AC_DEFUN([CF_ADD_LIBDIR],
-[
-if test -n "$1" ; then
- for cf_add_libdir in $1
- do
- if test $cf_add_libdir = /usr/lib ; then
- :
- elif test -d $cf_add_libdir
- then
- cf_have_libdir=no
- if test -n "$LDFLAGS$LIBS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_libdir in $LDFLAGS $LIBS ; do
- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
- cf_have_libdir=yes; break
- fi
- done
- fi
- if test "$cf_have_libdir" = no ; then
- CF_VERBOSE(adding $cf_add_libdir to library-path)
- ifelse($2,,LDFLAGS,$2)="-L$cf_add_libdir $ifelse($2,,LDFLAGS,[$]$2)"
- fi
- fi
- done
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ADD_SUBDIR_PATH version: 2 updated: 2007/07/29 10:12:59
-dnl ------------------
-dnl Append to a search-list for a nonstandard header/lib-file
-dnl $1 = the variable to return as result
-dnl $2 = the package name
-dnl $3 = the subdirectory, e.g., bin, include or lib
-dnl $4 = the directory under which we will test for subdirectories
-dnl $5 = a directory that we do not want $4 to match
-AC_DEFUN([CF_ADD_SUBDIR_PATH],
-[
-test "$4" != "$5" && \
-test -d "$4" && \
-ifelse([$5],NONE,,[(test $5 = NONE || test -d $5) &&]) {
- test -n "$verbose" && echo " ... testing for $3-directories under $4"
- test -d $4/$3 && $1="[$]$1 $4/$3"
- test -d $4/$3/$2 && $1="[$]$1 $4/$3/$2"
- test -d $4/$3/$2/$3 && $1="[$]$1 $4/$3/$2/$3"
- test -d $4/$2/$3 && $1="[$]$1 $4/$2/$3"
- test -d $4/$2/$3/$2 && $1="[$]$1 $4/$2/$3/$2"
-}
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
-dnl ----------------
-dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
-dnl in the sharutils 4.2 distribution.
-AC_DEFUN([CF_ANSI_CC_CHECK],
-[
-AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
-cf_cv_ansi_cc=no
-cf_save_CFLAGS="$CFLAGS"
-cf_save_CPPFLAGS="$CPPFLAGS"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX -Aa -D_HPUX_SOURCE
-# SVR4 -Xc
-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
-for cf_arg in "-DCC_HAS_PROTOS" \
- "" \
- -qlanglvl=ansi \
- -std1 \
- -Ae \
- "-Aa -D_HPUX_SOURCE" \
- -Xc
-do
- CF_ADD_CFLAGS($cf_arg)
- AC_TRY_COMPILE(
-[
-#ifndef CC_HAS_PROTOS
-#if !defined(__STDC__) || (__STDC__ != 1)
-choke me
-#endif
-#endif
-],[
- int test (int i, double x);
- struct s1 {int (*f) (int a);};
- struct s2 {int (*f) (double a);};],
- [cf_cv_ansi_cc="$cf_arg"; break])
-done
-CFLAGS="$cf_save_CFLAGS"
-CPPFLAGS="$cf_save_CPPFLAGS"
-])
-
-if test "$cf_cv_ansi_cc" != "no"; then
-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
- CF_ADD_CFLAGS($cf_cv_ansi_cc)
-else
- AC_DEFINE(CC_HAS_PROTOS)
-fi
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ANSI_CC_REQD version: 3 updated: 1997/09/06 13:40:44
-dnl ---------------
-dnl For programs that must use an ANSI compiler, obtain compiler options that
-dnl will make it recognize prototypes. We'll do preprocessor checks in other
-dnl macros, since tools such as unproto can fake prototypes, but only part of
-dnl the preprocessor.
-AC_DEFUN([CF_ANSI_CC_REQD],
-[AC_REQUIRE([CF_ANSI_CC_CHECK])
-if test "$cf_cv_ansi_cc" = "no"; then
- AC_ERROR(
-[Your compiler does not appear to recognize prototypes.
-You have the following choices:
- a. adjust your compiler options
- b. get an up-to-date compiler
- c. use a wrapper such as unproto])
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ARG_DISABLE version: 3 updated: 1999/03/30 17:24:31
-dnl --------------
-dnl Allow user to disable a normally-on option.
-AC_DEFUN([CF_ARG_DISABLE],
-[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
-dnl -------------
-dnl Allow user to enable a normally-off option.
-AC_DEFUN([CF_ARG_ENABLE],
-[CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ARG_OPTION version: 3 updated: 1997/10/18 14:42:41
-dnl -------------
-dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
-dnl values.
-dnl
-dnl Parameters:
-dnl $1 = option name
-dnl $2 = help-string
-dnl $3 = action to perform if option is not default
-dnl $4 = action if perform if option is default
-dnl $5 = default option value (either 'yes' or 'no')
-AC_DEFUN([CF_ARG_OPTION],
-[AC_ARG_ENABLE($1,[$2],[test "$enableval" != ifelse($5,no,yes,no) && enableval=ifelse($5,no,no,yes)
- if test "$enableval" != "$5" ; then
-ifelse($3,,[ :]dnl
-,[ $3]) ifelse($4,,,[
- else
- $4])
- fi],[enableval=$5 ifelse($4,,,[
- $4
-])dnl
- ])])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_CACHE version: 10 updated: 2004/05/23 13:03:31
-dnl --------------
-dnl Check if we're accidentally using a cache from a different machine.
-dnl Derive the system name, as a check for reusing the autoconf cache.
-dnl
-dnl If we've packaged config.guess and config.sub, run that (since it does a
-dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
-dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
-dnl which is useful in cross-compiles.
-dnl
-dnl Note: we would use $ac_config_sub, but that is one of the places where
-dnl autoconf 2.5x broke compatibility with autoconf 2.13
-AC_DEFUN([CF_CHECK_CACHE],
-[
-if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
- ifelse([$1],,[AC_CANONICAL_HOST],[$1])
- system_name="$host_os"
-else
- system_name="`(uname -s -r) 2>/dev/null`"
- if test -z "$system_name" ; then
- system_name="`(hostname) 2>/dev/null`"
- fi
-fi
-test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name")
-AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"])
-
-test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name)
-
-if test ".$system_name" != ".$cf_cv_system_name" ; then
- AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
- AC_ERROR("Please remove config.cache and try again.")
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_CFLAGS version: 2 updated: 2001/12/30 19:09:58
-dnl ---------------
-dnl Conditionally add to $CFLAGS and $CPPFLAGS values which are derived from
-dnl a build-configuration such as imake. These have the pitfall that they
-dnl often contain compiler-specific options which we cannot use, mixed with
-dnl preprocessor options that we usually can.
-AC_DEFUN([CF_CHECK_CFLAGS],
-[
-CF_VERBOSE(checking additions to CFLAGS)
-cf_check_cflags="$CFLAGS"
-cf_check_cppflags="$CPPFLAGS"
-CF_ADD_CFLAGS($1,yes)
-if test "$cf_check_cflags" != "$CFLAGS" ; then
-AC_TRY_LINK([#include <stdio.h>],[printf("Hello world");],,
- [CF_VERBOSE(test-compile failed. Undoing change to \$CFLAGS)
- if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
- CF_VERBOSE(but keeping change to \$CPPFLAGS)
- fi
- CFLAGS="$cf_check_flags"])
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_ACS_MAP version: 3 updated: 2003/05/17 22:19:02
-dnl -----------------
-dnl Check for likely values of acs_map[]:
-AC_DEFUN([CF_CURSES_ACS_MAP],
-[
-AC_CACHE_CHECK(for alternate character set array, cf_cv_curses_acs_map,[
-cf_cv_curses_acs_map=unknown
-for name in acs_map _acs_map __acs_map _nc_acs_map
-do
-AC_TRY_LINK([
-#include <${cf_cv_ncurses_header-curses.h}>
-],[
-$name['k'] = ACS_PLUS
-],[cf_cv_curses_acs_map=$name; break])
-done
-])
-
-test "$cf_cv_curses_acs_map" != unknown && AC_DEFINE_UNQUOTED(CURSES_ACS_ARRAY,$cf_cv_curses_acs_map)
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_CHECK_TYPE version: 2 updated: 2003/03/01 23:40:33
-dnl --------------------
-dnl Check if curses.h defines the given type
-AC_DEFUN([CF_CURSES_CHECK_TYPE],
-[
-AC_MSG_CHECKING(for type $1 in ${cf_cv_ncurses_header-curses.h})
-AC_TRY_COMPILE([
-#ifndef _XOPEN_SOURCE_EXTENDED
-#define _XOPEN_SOURCE_EXTENDED
-#endif
-#include <${cf_cv_ncurses_header-curses.h}>],[
-$1 foo
-],cf_result=yes,cf_result=no)
-AC_MSG_RESULT($cf_result)
-if test $cf_result = yes ; then
- CF_UPPER(cf_result,have_type_$1)
- AC_DEFINE_UNQUOTED($cf_result)
-else
- AC_DEFINE_UNQUOTED($1,$2)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_CPPFLAGS version: 9 updated: 2006/02/04 19:44:43
-dnl ------------------
-dnl Look for the curses headers.
-AC_DEFUN([CF_CURSES_CPPFLAGS],[
-
-AC_CACHE_CHECK(for extra include directories,cf_cv_curses_incdir,[
-cf_cv_curses_incdir=no
-case $host_os in #(vi
-hpux10.*) #(vi
- test -d /usr/include/curses_colr && \
- cf_cv_curses_incdir="-I/usr/include/curses_colr"
- ;;
-sunos3*|sunos4*)
- test -d /usr/5lib && \
- test -d /usr/5include && \
- cf_cv_curses_incdir="-I/usr/5include"
- ;;
-esac
-])
-test "$cf_cv_curses_incdir" != no && CPPFLAGS="$cf_cv_curses_incdir $CPPFLAGS"
-
-CF_CURSES_HEADER
-CF_TERM_HEADER
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_FUNCS version: 13 updated: 2007/04/28 09:15:55
-dnl ---------------
-dnl Curses-functions are a little complicated, since a lot of them are macros.
-AC_DEFUN([CF_CURSES_FUNCS],
-[
-AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
-AC_REQUIRE([CF_XOPEN_CURSES])
-AC_REQUIRE([CF_CURSES_TERM_H])
-for cf_func in $1
-do
- CF_UPPER(cf_tr_func,$cf_func)
- AC_MSG_CHECKING(for ${cf_func})
- CF_MSG_LOG(${cf_func})
- AC_CACHE_VAL(cf_cv_func_$cf_func,[
- eval cf_result='$ac_cv_func_'$cf_func
- if test ".$cf_result" != ".no"; then
- AC_TRY_LINK([
-#ifdef HAVE_XCURSES
-#include <xcurses.h>
-char * XCursesProgramName = "test";
-#else
-#include <${cf_cv_ncurses_header-curses.h}>
-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
-#include <ncursesw/term.h>
-#else
-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
-#include <ncurses/term.h>
-#else
-#ifdef HAVE_TERM_H
-#include <term.h>
-#endif
-#endif
-#endif
-#endif],
- [
-#ifndef ${cf_func}
-long foo = (long)(&${cf_func});
-${cf_cv_main_return-return}(foo == 0);
-#endif
- ],
- [cf_result=yes],
- [cf_result=no])
- fi
- eval 'cf_cv_func_'$cf_func'=$cf_result'
- ])
- # use the computed/retrieved cache-value:
- eval 'cf_result=$cf_cv_func_'$cf_func
- AC_MSG_RESULT($cf_result)
- if test $cf_result != no; then
- AC_DEFINE_UNQUOTED(HAVE_${cf_tr_func})
- fi
-done
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_HEADER version: 1 updated: 2005/12/31 13:28:25
-dnl ----------------
-dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
-dnl variations of ncurses' installs.
-dnl
-dnl See also CF_NCURSES_HEADER, which sets the same cache variable.
-AC_DEFUN([CF_CURSES_HEADER],[
-AC_CACHE_CHECK(if we have identified curses headers,cf_cv_ncurses_header,[
-cf_cv_ncurses_header=none
-for cf_header in \
- curses.h \
- ncurses.h \
- ncurses/curses.h \
- ncurses/ncurses.h
-do
-AC_TRY_COMPILE([#include <${cf_header}>],
- [initscr(); tgoto("?", 0,0)],
- [cf_cv_ncurses_header=$cf_header; break],[])
-done
-])
-
-if test "$cf_cv_ncurses_header" = none ; then
- AC_MSG_ERROR(No curses header-files found)
-fi
-
-# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
-AC_CHECK_HEADERS($cf_cv_ncurses_header)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_LIBS version: 26 updated: 2007/07/29 10:32:40
-dnl --------------
-dnl Look for the curses libraries. Older curses implementations may require
-dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
-AC_DEFUN([CF_CURSES_LIBS],[
-
-AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
-AC_MSG_CHECKING(if we have identified curses libraries)
-AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
- [initscr(); tgoto("?", 0,0)],
- cf_result=yes,
- cf_result=no)
-AC_MSG_RESULT($cf_result)
-
-if test "$cf_result" = no ; then
-case $host_os in #(vi
-freebsd*) #(vi
- AC_CHECK_LIB(mytinfo,tgoto,[LIBS="-lmytinfo $LIBS"])
- ;;
-hpux10.*) #(vi
- AC_CHECK_LIB(cur_colr,initscr,[
- LIBS="-lcur_colr $LIBS"
- ac_cv_func_initscr=yes
- ],[
- AC_CHECK_LIB(Hcurses,initscr,[
- # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
- LIBS="-lHcurses $LIBS"
- CPPFLAGS="-D__HP_CURSES -D_HP_CURSES $CPPFLAGS"
- ac_cv_func_initscr=yes
- ])])
- ;;
-linux*) # Suse Linux does not follow /usr/lib convention
- CF_ADD_LIBDIR(/lib)
- ;;
-sunos3*|sunos4*)
- if test -d /usr/5lib ; then
- CF_ADD_LIBDIR(/usr/5lib)
- LIBS="$LIBS -lcurses -ltermcap"
- fi
- ac_cv_func_initscr=yes
- ;;
-esac
-
-if test ".$ac_cv_func_initscr" != .yes ; then
- cf_save_LIBS="$LIBS"
- cf_term_lib=""
- cf_curs_lib=""
-
- if test ".${cf_cv_ncurses_version-no}" != .no
- then
- cf_check_list="ncurses curses cursesX"
- else
- cf_check_list="cursesX curses ncurses"
- fi
-
- # Check for library containing tgoto. Do this before curses library
- # because it may be needed to link the test-case for initscr.
- AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
- for cf_term_lib in $cf_check_list termcap termlib unknown
- do
- AC_CHECK_LIB($cf_term_lib,tgoto,[break])
- done
- ])
-
- # Check for library containing initscr
- test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
- for cf_curs_lib in $cf_check_list xcurses jcurses unknown
- do
- AC_CHECK_LIB($cf_curs_lib,initscr,[break])
- done
- test $cf_curs_lib = unknown && AC_ERROR(no curses library found)
-
- LIBS="-l$cf_curs_lib $cf_save_LIBS"
- if test "$cf_term_lib" = unknown ; then
- AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
- AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
- [initscr()],
- [cf_result=yes],
- [cf_result=no])
- AC_MSG_RESULT($cf_result)
- test $cf_result = no && AC_ERROR(Cannot link curses library)
- elif test "$cf_curs_lib" = "$cf_term_lib" ; then
- :
- elif test "$cf_term_lib" != predefined ; then
- AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
- AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
- [initscr(); tgoto((char *)0, 0, 0);],
- [cf_result=no],
- [
- LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
- AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
- [initscr()],
- [cf_result=yes],
- [cf_result=error])
- ])
- AC_MSG_RESULT($cf_result)
- fi
-fi
-fi
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_TERM_H version: 6 updated: 2003/11/06 19:59:57
-dnl ----------------
-dnl SVr4 curses should have term.h as well (where it puts the definitions of
-dnl the low-level interface). This may not be true in old/broken implementations,
-dnl as well as in misconfigured systems (e.g., gcc configured for Solaris 2.4
-dnl running with Solaris 2.5.1).
-AC_DEFUN([CF_CURSES_TERM_H],
-[
-AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
-
-AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
-# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
-# for <term.h> if we do not find the variant.
-for cf_header in \
- `echo ${cf_cv_ncurses_header-curses.h} | sed -e 's%/.*%/%'`term.h \
- term.h
-do
- AC_TRY_COMPILE([
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <${cf_header}>],
- [WINDOW *x],
- [cf_cv_term_header=$cf_header
- break],
- [cf_cv_term_header=no])
-done
-])
-
-case $cf_cv_term_header in #(vi
-term.h) #(vi
- AC_DEFINE(HAVE_TERM_H)
- ;;
-ncurses/term.h)
- AC_DEFINE(HAVE_NCURSES_TERM_H)
- ;;
-ncursesw/term.h)
- AC_DEFINE(HAVE_NCURSESW_TERM_H)
- ;;
-esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_WACS_MAP version: 3 updated: 2003/05/17 22:19:02
-dnl ------------------
-dnl Check for likely values of wacs_map[]:
-AC_DEFUN([CF_CURSES_WACS_MAP],
-[
-AC_CACHE_CHECK(for wide alternate character set array, cf_cv_curses_wacs_map,[
- cf_cv_curses_wacs_map=unknown
- for name in wacs_map _wacs_map __wacs_map _nc_wacs
- do
- AC_TRY_LINK([
-#ifndef _XOPEN_SOURCE_EXTENDED
-#define _XOPEN_SOURCE_EXTENDED
-#endif
-#include <${cf_cv_ncurses_header-curses.h}>],
- [$name['k'] = *WACS_PLUS],
- [cf_cv_curses_wacs_map=$name
- break])
- done])
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
-dnl ----------
-dnl "dirname" is not portable, so we fake it with a shell script.
-AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_DISABLE_ECHO version: 10 updated: 2003/04/17 22:27:11
-dnl ---------------
-dnl You can always use "make -n" to see the actual options, but it's hard to
-dnl pick out/analyze warning messages when the compile-line is long.
-dnl
-dnl Sets:
-dnl ECHO_LT - symbol to control if libtool is verbose
-dnl ECHO_LD - symbol to prefix "cc -o" lines
-dnl RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
-dnl SHOW_CC - symbol to put before explicit "cc -c" lines
-dnl ECHO_CC - symbol to put before any "cc" line
-dnl
-AC_DEFUN([CF_DISABLE_ECHO],[
-AC_MSG_CHECKING(if you want to see long compiling messages)
-CF_ARG_DISABLE(echo,
- [ --disable-echo display "compiling" commands],
- [
- ECHO_LT='--silent'
- ECHO_LD='@echo linking [$]@;'
- RULE_CC=' @echo compiling [$]<'
- SHOW_CC=' @echo compiling [$]@'
- ECHO_CC='@'
-],[
- ECHO_LT=''
- ECHO_LD=''
- RULE_CC='# compiling'
- SHOW_CC='# compiling'
- ECHO_CC=''
-])
-AC_MSG_RESULT($enableval)
-AC_SUBST(ECHO_LT)
-AC_SUBST(ECHO_LD)
-AC_SUBST(RULE_CC)
-AC_SUBST(SHOW_CC)
-AC_SUBST(ECHO_CC)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_ENABLE_WARNINGS version: 3 updated: 2003/05/24 14:24:29
-dnl ------------------
-dnl Configure-option to enable gcc warnings
-AC_DEFUN([CF_ENABLE_WARNINGS],[
-if ( test "$GCC" = yes || test "$GXX" = yes )
-then
-AC_MSG_CHECKING(if you want to turn on gcc warnings)
-CF_ARG_ENABLE(warnings,
- [ --enable-warnings test: turn on gcc compiler warnings],
- [with_warnings=yes],
- [with_warnings=no])
-AC_MSG_RESULT($with_warnings)
-if test "$with_warnings" = "yes"
-then
- CF_GCC_WARNINGS
-fi
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_FIND_LIBRARY version: 8 updated: 2004/11/23 20:14:58
-dnl ---------------
-dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
-dnl prefer a standard location, and use -L options only if we do not find the
-dnl library in the standard library location(s).
-dnl $1 = library name
-dnl $2 = library class, usually the same as library name
-dnl $3 = includes
-dnl $4 = code fragment to compile/link
-dnl $5 = corresponding function-name
-dnl $6 = flag, nonnull if failure should not cause an error-exit
-dnl
-dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
-dnl to use a -L option.
-AC_DEFUN([CF_FIND_LIBRARY],
-[
- eval 'cf_cv_have_lib_'$1'=no'
- cf_libdir=""
- AC_CHECK_FUNC($5,
- eval 'cf_cv_have_lib_'$1'=yes',[
- cf_save_LIBS="$LIBS"
- AC_MSG_CHECKING(for $5 in -l$1)
- LIBS="-l$1 $LIBS"
- AC_TRY_LINK([$3],[$4],
- [AC_MSG_RESULT(yes)
- eval 'cf_cv_have_lib_'$1'=yes'
- ],
- [AC_MSG_RESULT(no)
- CF_LIBRARY_PATH(cf_search,$2)
- for cf_libdir in $cf_search
- do
- AC_MSG_CHECKING(for -l$1 in $cf_libdir)
- LIBS="-L$cf_libdir -l$1 $cf_save_LIBS"
- AC_TRY_LINK([$3],[$4],
- [AC_MSG_RESULT(yes)
- eval 'cf_cv_have_lib_'$1'=yes'
- break],
- [AC_MSG_RESULT(no)
- LIBS="$cf_save_LIBS"])
- done
- ])
- ])
-eval 'cf_found_library=[$]cf_cv_have_lib_'$1
-ifelse($6,,[
-if test $cf_found_library = no ; then
- AC_ERROR(Cannot link $1 library)
-fi
-])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_CURSES_VERSION version: 4 updated: 2007/04/28 09:15:55
-dnl ----------------------
-dnl Solaris has a data item 'curses_version', which confuses AC_CHECK_FUNCS.
-dnl It's a character string "SVR4", not documented.
-AC_DEFUN([CF_FUNC_CURSES_VERSION],
-[
-AC_CACHE_CHECK(for function curses_version, cf_cv_func_curses_version,[
-AC_TRY_RUN([
-#include <${cf_cv_ncurses_header-curses.h}>
-int main()
-{
- char temp[1024];
- sprintf(temp, "%s\n", curses_version());
- ${cf_cv_main_return-return}(0);
-}]
-,[cf_cv_func_curses_version=yes]
-,[cf_cv_func_curses_version=no]
-,[cf_cv_func_curses_version=unknown])
-rm -f core])
-test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION)
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_GCC_ATTRIBUTES version: 11 updated: 2007/07/29 09:55:12
-dnl -----------------
-dnl Test for availability of useful gcc __attribute__ directives to quiet
-dnl compiler warnings. Though useful, not all are supported -- and contrary
-dnl to documentation, unrecognized directives cause older compilers to barf.
-AC_DEFUN([CF_GCC_ATTRIBUTES],
-[
-if test "$GCC" = yes
-then
-cat > conftest.i <<EOF
-#ifndef GCC_PRINTF
-#define GCC_PRINTF 0
-#endif
-#ifndef GCC_SCANF
-#define GCC_SCANF 0
-#endif
-#ifndef GCC_NORETURN
-#define GCC_NORETURN /* nothing */
-#endif
-#ifndef GCC_UNUSED
-#define GCC_UNUSED /* nothing */
-#endif
-EOF
-if test "$GCC" = yes
-then
- AC_CHECKING([for $CC __attribute__ directives])
-cat > conftest.$ac_ext <<EOF
-#line __oline__ "${as_me-configure}"
-#include "confdefs.h"
-#include "conftest.h"
-#include "conftest.i"
-#if GCC_PRINTF
-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-#else
-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
-#endif
-#if GCC_SCANF
-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-#else
-#define GCC_SCANFLIKE(fmt,var) /*nothing*/
-#endif
-extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
-int main(int argc GCC_UNUSED, char *argv[[]] GCC_UNUSED) { return 0; }
-EOF
- for cf_attribute in scanf printf unused noreturn
- do
- CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
- cf_directive="__attribute__(($cf_attribute))"
- echo "checking for $CC $cf_directive" 1>&AC_FD_CC
- case $cf_attribute in
- scanf|printf)
- cat >conftest.h <<EOF
-#define GCC_$cf_ATTRIBUTE 1
-EOF
- ;;
- *)
- cat >conftest.h <<EOF
-#define GCC_$cf_ATTRIBUTE $cf_directive
-EOF
- ;;
- esac
- if AC_TRY_EVAL(ac_compile); then
- test -n "$verbose" && AC_MSG_RESULT(... $cf_attribute)
- cat conftest.h >>confdefs.h
- fi
- done
-else
- fgrep define conftest.i >>confdefs.h
-fi
-rm -rf conftest*
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
-dnl --------------
-dnl Find version of gcc
-AC_DEFUN([CF_GCC_VERSION],[
-AC_REQUIRE([AC_PROG_CC])
-GCC_VERSION=none
-if test "$GCC" = yes ; then
- AC_MSG_CHECKING(version of $CC)
- GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
- test -z "$GCC_VERSION" && GCC_VERSION=unknown
- AC_MSG_RESULT($GCC_VERSION)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 22 updated: 2007/07/29 09:55:12
-dnl ---------------
-dnl Check if the compiler supports useful warning options. There's a few that
-dnl we don't use, simply because they're too noisy:
-dnl
-dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x)
-dnl -Wredundant-decls (system headers make this too noisy)
-dnl -Wtraditional (combines too many unrelated messages, only a few useful)
-dnl -Wwrite-strings (too noisy, but should review occasionally). This
-dnl is enabled for ncurses using "--enable-const".
-dnl -pedantic
-dnl
-dnl Parameter:
-dnl $1 is an optional list of gcc warning flags that a particular
-dnl application might want to use, e.g., "no-unused" for
-dnl -Wno-unused
-dnl Special:
-dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
-dnl
-AC_DEFUN([CF_GCC_WARNINGS],
-[
-AC_REQUIRE([CF_GCC_VERSION])
-CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
-
-cat > conftest.$ac_ext <<EOF
-#line __oline__ "${as_me-configure}"
-int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
-EOF
-
-if test "$INTEL_COMPILER" = yes
-then
-# The "-wdXXX" options suppress warnings:
-# remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
-# remark #193: zero used for undefined preprocessing identifier
-# remark #593: variable "curs_sb_left_arrow" was set but never used
-# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
-# remark #869: parameter "tw" was never referenced
-# remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
-
- AC_CHECKING([for $CC warning options])
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-Wall"
- for cf_opt in \
- wd1419 \
- wd1682 \
- wd1683 \
- wd1684 \
- wd193 \
- wd279 \
- wd593 \
- wd810 \
- wd869 \
- wd981
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if AC_TRY_EVAL(ac_compile); then
- test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
- done
- CFLAGS="$cf_save_CFLAGS"
-
-elif test "$GCC" = yes
-then
- AC_CHECKING([for $CC warning options])
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-W -Wall"
- cf_warn_CONST=""
- test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
- for cf_opt in \
- Wbad-function-cast \
- Wcast-align \
- Wcast-qual \
- Winline \
- Wmissing-declarations \
- Wmissing-prototypes \
- Wnested-externs \
- Wpointer-arith \
- Wshadow \
- Wstrict-prototypes \
- Wundef $cf_warn_CONST $1
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if AC_TRY_EVAL(ac_compile); then
- test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
- case $cf_opt in #(vi
- Wcast-qual) #(vi
- CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
- ;;
- Winline) #(vi
- case $GCC_VERSION in
- 3.3*)
- CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
- continue;;
- esac
- ;;
- esac
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
- done
- CFLAGS="$cf_save_CFLAGS"
-fi
-rm -f conftest*
-
-AC_SUBST(EXTRA_CFLAGS)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
-dnl -------------
-dnl Check if we must define _GNU_SOURCE to get a reasonable value for
-dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
-dnl (or misfeature) of glibc2, which breaks portability of many applications,
-dnl since it is interwoven with GNU extensions.
-dnl
-dnl Well, yes we could work around it...
-AC_DEFUN([CF_GNU_SOURCE],
-[
-AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
-AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifndef _XOPEN_SOURCE
-make an error
-#endif],
- [cf_cv_gnu_source=no],
- [cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifdef _XOPEN_SOURCE
-make an error
-#endif],
- [cf_cv_gnu_source=no],
- [cf_cv_gnu_source=yes])
- CPPFLAGS="$cf_save"
- ])
-])
-test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_HEADER_PATH version: 8 updated: 2002/11/10 14:46:59
-dnl --------------
-dnl Construct a search-list for a nonstandard header-file
-AC_DEFUN([CF_HEADER_PATH],
-[CF_SUBDIR_PATH($1,$2,include)
-test "$includedir" != NONE && \
-test "$includedir" != "/usr/include" && \
-test -d "$includedir" && {
- test -d $includedir && $1="[$]$1 $includedir"
- test -d $includedir/$2 && $1="[$]$1 $includedir/$2"
-}
-
-test "$oldincludedir" != NONE && \
-test "$oldincludedir" != "/usr/include" && \
-test -d "$oldincludedir" && {
- test -d $oldincludedir && $1="[$]$1 $oldincludedir"
- test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
-}
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_INHERIT_SCRIPT version: 2 updated: 2003/03/01 23:50:42
-dnl -----------------
-dnl If we do not have a given script, look for it in the parent directory.
-AC_DEFUN([CF_INHERIT_SCRIPT],
-[
-test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
-dnl -----------------
-dnl Check if the given compiler is really the Intel compiler for Linux. It
-dnl tries to imitate gcc, but does not return an error when it finds a mismatch
-dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
-dnl
-dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
-dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
-dnl the wrappers for gcc and g++ warnings.
-dnl
-dnl $1 = GCC (default) or GXX
-dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
-dnl $3 = CFLAGS (default) or CXXFLAGS
-AC_DEFUN([CF_INTEL_COMPILER],[
-ifelse($2,,INTEL_COMPILER,[$2])=no
-
-if test "$ifelse($1,,[$1],GCC)" = yes ; then
- case $host_os in
- linux*|gnu*)
- AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
- cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
- ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
- AC_TRY_COMPILE([],[
-#ifdef __INTEL_COMPILER
-#else
-make an error
-#endif
-],[ifelse($2,,INTEL_COMPILER,[$2])=yes
-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
-],[])
- ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
- AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
- ;;
- esac
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_LIBRARY_PATH version: 7 updated: 2002/11/10 14:46:59
-dnl ---------------
-dnl Construct a search-list for a nonstandard library-file
-AC_DEFUN([CF_LIBRARY_PATH],
-[CF_SUBDIR_PATH($1,$2,lib)])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_MSG_LOG version: 4 updated: 2007/07/29 09:55:12
-dnl ----------
-dnl Write a debug message to config.log, along with the line number in the
-dnl configure script.
-AC_DEFUN([CF_MSG_LOG],[
-echo "${as_me-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
-dnl -------------------
-dnl Check if we can compile with ncurses' header file
-dnl $1 is the cache variable to set
-dnl $2 is the header-file to include
-dnl $3 is the root name (ncurses or ncursesw)
-AC_DEFUN([CF_NCURSES_CC_CHECK],[
- AC_TRY_COMPILE([
-]ifelse($3,ncursesw,[
-#define _XOPEN_SOURCE_EXTENDED
-#undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
-#define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
-])[
-#include <$2>],[
-#ifdef NCURSES_VERSION
-]ifelse($3,ncursesw,[
-#ifndef WACS_BSSB
- make an error
-#endif
-])[
-printf("%s\n", NCURSES_VERSION);
-#else
-#ifdef __NCURSES_H
-printf("old\n");
-#else
- make an error
-#endif
-#endif
- ]
- ,[$1=$2]
- ,[$1=no])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CPPFLAGS version: 19 updated: 2007/07/29 13:35:20
-dnl -------------------
-dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
-dnl the CPPFLAGS variable so we can include its header.
-dnl
-dnl The header files may be installed as either curses.h, or ncurses.h (would
-dnl be obsolete, except that some packagers prefer this name to distinguish it
-dnl from a "native" curses implementation). If not installed for overwrite,
-dnl the curses.h file would be in an ncurses subdirectory (e.g.,
-dnl /usr/include/ncurses), but someone may have installed overwriting the
-dnl vendor's curses. Only very old versions (pre-1.9.2d, the first autoconf'd
-dnl version) of ncurses don't define either __NCURSES_H or NCURSES_VERSION in
-dnl the header.
-dnl
-dnl If the installer has set $CFLAGS or $CPPFLAGS so that the ncurses header
-dnl is already in the include-path, don't even bother with this, since we cannot
-dnl easily determine which file it is. In this case, it has to be <curses.h>.
-dnl
-dnl The optional parameter gives the root name of the library, in case it is
-dnl not installed as the default curses library. That is how the
-dnl wide-character version of ncurses is installed.
-AC_DEFUN([CF_NCURSES_CPPFLAGS],
-[AC_REQUIRE([CF_WITH_CURSES_DIR])
-
-AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
-cf_ncuhdr_root=ifelse($1,,ncurses,$1)
-
-test -n "$cf_cv_curses_dir" && \
-test "$cf_cv_curses_dir" != "no" && { \
- CF_ADD_INCDIR($cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root)
-}
-
-AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
- cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
- ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
- for cf_header in $cf_header_list
- do
- CF_NCURSES_CC_CHECK(cf_cv_ncurses_h,$cf_header,$1)
- test "$cf_cv_ncurses_h" != no && break
- done
-])
-
-CF_NCURSES_HEADER
-CF_TERM_HEADER
-
-# some applications need this, but should check for NCURSES_VERSION
-AC_DEFINE(NCURSES)
-
-CF_NCURSES_VERSION
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_HEADER version: 1 updated: 2005/12/31 13:28:37
-dnl -----------------
-dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
-dnl variations of ncurses' installs.
-dnl
-dnl See also CF_CURSES_HEADER, which sets the same cache variable.
-AC_DEFUN([CF_NCURSES_HEADER],[
-
-if test "$cf_cv_ncurses_h" != no ; then
- cf_cv_ncurses_header=$cf_cv_ncurses_h
-else
-
-AC_CACHE_CHECK(for $cf_ncuhdr_root include-path, cf_cv_ncurses_h2,[
- test -n "$verbose" && echo
- CF_HEADER_PATH(cf_search,$cf_ncuhdr_root)
- test -n "$verbose" && echo search path $cf_search
- cf_save2_CPPFLAGS="$CPPFLAGS"
- for cf_incdir in $cf_search
- do
- CF_ADD_INCDIR($cf_incdir)
- for cf_header in \
- ncurses.h \
- curses.h
- do
- CF_NCURSES_CC_CHECK(cf_cv_ncurses_h2,$cf_header,$1)
- if test "$cf_cv_ncurses_h2" != no ; then
- cf_cv_ncurses_h2=$cf_incdir/$cf_header
- test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&AC_FD_MSG
- break
- fi
- test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&AC_FD_MSG
- done
- CPPFLAGS="$cf_save2_CPPFLAGS"
- test "$cf_cv_ncurses_h2" != no && break
- done
- test "$cf_cv_ncurses_h2" = no && AC_ERROR(not found)
- ])
-
- CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
- cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
- if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
- cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
- fi
- CF_ADD_INCDIR($cf_1st_incdir)
-
-fi
-
-# Set definitions to allow ifdef'ing for ncurses.h
-
-case $cf_cv_ncurses_header in # (vi
-*ncurses.h)
- AC_DEFINE(HAVE_NCURSES_H)
- ;;
-esac
-
-case $cf_cv_ncurses_header in # (vi
-ncurses/curses.h|ncurses/ncurses.h)
- AC_DEFINE(HAVE_NCURSES_NCURSES_H)
- ;;
-ncursesw/curses.h|ncursesw/ncurses.h)
- AC_DEFINE(HAVE_NCURSESW_NCURSES_H)
- ;;
-esac
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_LIBS version: 13 updated: 2007/07/29 10:29:20
-dnl ---------------
-dnl Look for the ncurses library. This is a little complicated on Linux,
-dnl because it may be linked with the gpm (general purpose mouse) library.
-dnl Some distributions have gpm linked with (bsd) curses, which makes it
-dnl unusable with ncurses. However, we don't want to link with gpm unless
-dnl ncurses has a dependency, since gpm is normally set up as a shared library,
-dnl and the linker will record a dependency.
-dnl
-dnl The optional parameter gives the root name of the library, in case it is
-dnl not installed as the default curses library. That is how the
-dnl wide-character version of ncurses is installed.
-AC_DEFUN([CF_NCURSES_LIBS],
-[AC_REQUIRE([CF_NCURSES_CPPFLAGS])
-
-cf_nculib_root=ifelse($1,,ncurses,$1)
- # This works, except for the special case where we find gpm, but
- # ncurses is in a nonstandard location via $LIBS, and we really want
- # to link gpm.
-cf_ncurses_LIBS=""
-cf_ncurses_SAVE="$LIBS"
-AC_CHECK_LIB(gpm,Gpm_Open,
- [AC_CHECK_LIB(gpm,initscr,
- [LIBS="$cf_ncurses_SAVE"],
- [cf_ncurses_LIBS="-lgpm"])])
-
-case $host_os in #(vi
-freebsd*)
- # This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
- if test "$cf_nculib_root" = ncurses ; then
- AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
- fi
- ;;
-esac
-
-LIBS="$cf_ncurses_LIBS $LIBS"
-
-if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
-then
- CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
- LIBS="-l$cf_nculib_root $LIBS"
-else
- CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
- [#include <${cf_cv_ncurses_header-curses.h}>],
- [initscr()],
- initscr)
-fi
-
-if test -n "$cf_ncurses_LIBS" ; then
- AC_MSG_CHECKING(if we can link $cf_nculib_root without $cf_ncurses_LIBS)
- cf_ncurses_SAVE="$LIBS"
- for p in $cf_ncurses_LIBS ; do
- q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
- if test "$q" != "$LIBS" ; then
- LIBS="$q"
- fi
- done
- AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
- [initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
- [AC_MSG_RESULT(yes)],
- [AC_MSG_RESULT(no)
- LIBS="$cf_ncurses_SAVE"])
-fi
-
-CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_nculib_root)
-AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_VERSION version: 12 updated: 2007/04/28 09:15:55
-dnl ------------------
-dnl Check for the version of ncurses, to aid in reporting bugs, etc.
-dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
-dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
-AC_DEFUN([CF_NCURSES_VERSION],
-[
-AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
-AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
- cf_cv_ncurses_version=no
- cf_tempfile=out$$
- rm -f $cf_tempfile
- AC_TRY_RUN([
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <stdio.h>
-int main()
-{
- FILE *fp = fopen("$cf_tempfile", "w");
-#ifdef NCURSES_VERSION
-# ifdef NCURSES_VERSION_PATCH
- fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
-# else
- fprintf(fp, "%s\n", NCURSES_VERSION);
-# endif
-#else
-# ifdef __NCURSES_H
- fprintf(fp, "old\n");
-# else
- make an error
-# endif
-#endif
- ${cf_cv_main_return-return}(0);
-}],[
- cf_cv_ncurses_version=`cat $cf_tempfile`],,[
-
- # This will not work if the preprocessor splits the line after the
- # Autoconf token. The 'unproto' program does that.
- cat > conftest.$ac_ext <<EOF
-#include <${cf_cv_ncurses_header-curses.h}>
-#undef Autoconf
-#ifdef NCURSES_VERSION
-Autoconf NCURSES_VERSION
-#else
-#ifdef __NCURSES_H
-Autoconf "old"
-#endif
-;
-#endif
-EOF
- cf_try="$ac_cpp conftest.$ac_ext 2>&AC_FD_CC | grep '^Autoconf ' >conftest.out"
- AC_TRY_EVAL(cf_try)
- if test -f conftest.out ; then
- cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[[^"]]*"%%' -e 's%".*%%'`
- test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
- rm -f conftest.out
- fi
-])
- rm -f $cf_tempfile
-])
-test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PATH_SYNTAX version: 11 updated: 2006/09/02 08:55:46
-dnl --------------
-dnl Check the argument to see that it looks like a pathname. Rewrite it if it
-dnl begins with one of the prefix/exec_prefix variables, and then again if the
-dnl result begins with 'NONE'. This is necessary to work around autoconf's
-dnl delayed evaluation of those symbols.
-AC_DEFUN([CF_PATH_SYNTAX],[
-if test "x$prefix" != xNONE; then
- cf_path_syntax="$prefix"
-else
- cf_path_syntax="$ac_default_prefix"
-fi
-
-case ".[$]$1" in #(vi
-.\[$]\(*\)*|.\'*\'*) #(vi
- ;;
-..|./*|.\\*) #(vi
- ;;
-.[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX
- ;;
-.\[$]{*prefix}*) #(vi
- eval $1="[$]$1"
- case ".[$]$1" in #(vi
- .NONE/*)
- $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
- ;;
- esac
- ;; #(vi
-.no|.NONE/*)
- $1=`echo [$]$1 | sed -e s%NONE%$cf_path_syntax%`
- ;;
-*)
- ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2)
- ;;
-esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PDCURSES_X11 version: 7 updated: 2006/11/12 17:31:59
-dnl ---------------
-dnl Configure for PDCurses' X11 library
-AC_DEFUN([CF_PDCURSES_X11],[
-AC_REQUIRE([CF_X_ATHENA])
-
-AC_PATH_PROGS(XCURSES_CONFIG,xcurses-config,none)
-
-if test "$XCURSES_CONFIG" != none ; then
-
-CPPFLAGS="`$XCURSES_CONFIG --cflags` $CPPFLAGS"
-LIBS="`$XCURSES_CONFIG --libs` $LIBS"
-
-cf_cv_lib_XCurses=yes
-
-else
-
-LDFLAGS="$LDFLAGS $X_LIBS"
-CF_CHECK_CFLAGS($X_CFLAGS)
-AC_CHECK_LIB(X11,XOpenDisplay,
- [LIBS="-lX11 $LIBS"],,
- [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
-AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
-LIBS="-lXCurses $LIBS"
-AC_TRY_LINK([
-#include <xcurses.h>
-char *XCursesProgramName = "test";
-],[XCursesExit();],
-[cf_cv_lib_XCurses=yes],
-[cf_cv_lib_XCurses=no])
-])
-
-fi
-
-if test $cf_cv_lib_XCurses = yes ; then
- AC_DEFINE(UNIX)
- AC_DEFINE(XCURSES)
- AC_DEFINE(HAVE_XCURSES)
-else
- AC_ERROR(Cannot link with XCurses)
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
-dnl -----------------
-dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
-dnl
-dnl POSIX.1-1990 _POSIX_SOURCE
-dnl POSIX.1-1990 and _POSIX_SOURCE and
-dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
-dnl Bindings Option
-dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
-dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
-dnl X/Open 2000 _POSIX_C_SOURCE=200112L
-dnl
-dnl Parameters:
-dnl $1 is the nominal value for _POSIX_C_SOURCE
-AC_DEFUN([CF_POSIX_C_SOURCE],
-[
-cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
-
-cf_save_CFLAGS="$CFLAGS"
-cf_save_CPPFLAGS="$CPPFLAGS"
-
-CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
-CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
-
-AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
- CF_MSG_LOG(if the symbol is already defined go no further)
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifndef _POSIX_C_SOURCE
-make an error
-#endif],
- [cf_cv_posix_c_source=no],
- [cf_want_posix_source=no
- case .$cf_POSIX_C_SOURCE in #(vi
- .[[12]]??*) #(vi
- cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
- ;;
- .2) #(vi
- cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
- cf_want_posix_source=yes
- ;;
- .*)
- cf_want_posix_source=yes
- ;;
- esac
- if test "$cf_want_posix_source" = yes ; then
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifdef _POSIX_SOURCE
-make an error
-#endif],[],
- cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
- fi
- CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
- CFLAGS="$cf_trim_CFLAGS"
- CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
- CF_MSG_LOG(if the second compile does not leave our definition intact error)
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifndef _POSIX_C_SOURCE
-make an error
-#endif],,
- [cf_cv_posix_c_source=no])
- CFLAGS="$cf_save_CFLAGS"
- CPPFLAGS="$cf_save_CPPFLAGS"
- ])
-])
-
-if test "$cf_cv_posix_c_source" != no ; then
- CFLAGS="$cf_trim_CFLAGS"
- CPPFLAGS="$cf_trim_CPPFLAGS"
- if test "$cf_cv_cc_u_d_options" = yes ; then
- cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
- sed -e 's/-D/-U/g' -e 's/=[[^ ]]*//g'`
- CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
- fi
- CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
-fi
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PRG_RULES version: 1 updated: 2006/06/03 11:45:08
-dnl ------------
-dnl Append definitions and rules for the given programs to the subdirectory
-dnl Makefiles, and the recursion rule for the top-level Makefile.
-dnl
-dnl parameters
-dnl $1 = script to run
-dnl $2 = list of subdirectories
-dnl
-dnl variables
-dnl $AWK
-AC_DEFUN([CF_PRG_RULES],
-[
-for cf_dir in $2
-do
- if test ! -d $srcdir/$cf_dir; then
- continue
- elif test -f $srcdir/$cf_dir/programs; then
- $AWK -f $1 $srcdir/$cf_dir/programs >>$cf_dir/Makefile
- fi
-done
-
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
-dnl --------------
-dnl Check if C (preprocessor) -U and -D options are processed in the order
-dnl given rather than by type of option. Some compilers insist on apply all
-dnl of the -U options after all of the -D options. Others allow mixing them,
-dnl and may predefine symbols that conflict with those we define.
-AC_DEFUN([CF_PROG_CC_U_D],
-[
-AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
- cf_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
- AC_TRY_COMPILE([],[
-#ifndef U_D_OPTIONS
-make an undefined-error
-#endif
-#ifdef D_U_OPTIONS
-make a defined-error
-#endif
- ],[
- cf_cv_cc_u_d_options=yes],[
- cf_cv_cc_u_d_options=no])
- CPPFLAGS="$cf_save_CPPFLAGS"
-])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
-dnl ----------------
-dnl Remove all -U and -D options that refer to the given symbol from a list
-dnl of C compiler options. This works around the problem that not all
-dnl compilers process -U and -D options from left-to-right, so a -U option
-dnl cannot be used to cancel the effect of a preceding -D option.
-dnl
-dnl $1 = target (which could be the same as the source variable)
-dnl $2 = source (including '$')
-dnl $3 = symbol to remove
-define([CF_REMOVE_DEFINE],
-[
-# remove $3 symbol from $2
-$1=`echo "$2" | \
- sed -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[[ ]]/ /g' \
- -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[$]//g'`
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
-dnl ---------------
-dnl signal handler, but there are some gcc depedencies in that recommendation.
-dnl Try anyway.
-AC_DEFUN([CF_SIG_ATOMIC_T],
-[
-AC_MSG_CHECKING(for signal global datatype)
-AC_CACHE_VAL(cf_cv_sig_atomic_t,[
- for cf_type in \
- "volatile sig_atomic_t" \
- "sig_atomic_t" \
- "int"
- do
- AC_TRY_COMPILE([
-#include <sys/types.h>
-#include <signal.h>
-#include <stdio.h>
-
-extern $cf_type x;
-$cf_type x;
-static void handler(int sig)
-{
- x = 5;
-}],
- [signal(SIGINT, handler);
- x = 1],
- [cf_cv_sig_atomic_t=$cf_type],
- [cf_cv_sig_atomic_t=no])
- test "$cf_cv_sig_atomic_t" != no && break
- done
- ])
-AC_MSG_RESULT($cf_cv_sig_atomic_t)
-test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_SUBDIR_PATH version: 5 updated: 2007/07/29 09:55:12
-dnl --------------
-dnl Construct a search-list for a nonstandard header/lib-file
-dnl $1 = the variable to return as result
-dnl $2 = the package name
-dnl $3 = the subdirectory, e.g., bin, include or lib
-AC_DEFUN([CF_SUBDIR_PATH],
-[$1=""
-
-CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
-CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
-CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
-CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
-CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40
-dnl ------------------
-dnl Check if we can include <sys/time.h> with <sys/select.h>; this breaks on
-dnl older SCO configurations.
-AC_DEFUN([CF_SYS_TIME_SELECT],
-[
-AC_MSG_CHECKING(if sys/time.h works with sys/select.h)
-AC_CACHE_VAL(cf_cv_sys_time_select,[
-AC_TRY_COMPILE([
-#include <sys/types.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-],[],[cf_cv_sys_time_select=yes],
- [cf_cv_sys_time_select=no])
- ])
-AC_MSG_RESULT($cf_cv_sys_time_select)
-test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_TERM_HEADER version: 1 updated: 2005/12/31 13:26:39
-dnl --------------
-dnl Look for term.h, which is part of X/Open curses. It defines the interface
-dnl to terminfo database. Usually it is in the same include-path as curses.h,
-dnl but some packagers change this, breaking various applications.
-AC_DEFUN([CF_TERM_HEADER],[
-AC_CACHE_CHECK(for terminfo header, cf_cv_term_header,[
-case ${cf_cv_ncurses_header} in #(vi
-*/ncurses.h|*/ncursesw.h) #(vi
- cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[[^.]]*\.h$%term.h%'`
- ;;
-*)
- cf_term_header=term.h
- ;;
-esac
-
-for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
-do
-AC_TRY_COMPILE([#include <stdio.h>
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <$cf_test>
-],[int x = auto_left_margin],[
- cf_cv_term_header="$cf_test"],[
- cf_cv_term_header=unknown
- ])
- test "$cf_cv_term_header" != unknown && break
-done
-])
-
-# Set definitions to allow ifdef'ing to accommodate subdirectories
-
-case $cf_cv_term_header in # (vi
-*term.h)
- AC_DEFINE(HAVE_TERM_H)
- ;;
-esac
-
-case $cf_cv_term_header in # (vi
-ncurses/term.h) #(vi
- AC_DEFINE(HAVE_NCURSES_TERM_H)
- ;;
-ncursesw/term.h)
- AC_DEFINE(HAVE_NCURSESW_TERM_H)
- ;;
-esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59
-dnl --------
-dnl Make an uppercase version of a variable
-dnl $1=uppercase($2)
-AC_DEFUN([CF_UPPER],
-[
-$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_UTF8_LIB version: 4 updated: 2003/03/01 18:36:42
-dnl -----------
-dnl Check for multibyte support, and if not found, utf8 compatibility library
-AC_DEFUN([CF_UTF8_LIB],
-[
-AC_CACHE_CHECK(for multibyte character support,cf_cv_utf8_lib,[
- cf_save_LIBS="$LIBS"
- AC_TRY_LINK([
-#include <stdlib.h>],[putwc(0,0);],
- [cf_cv_utf8_lib=yes],
- [LIBS="-lutf8 $LIBS"
- AC_TRY_LINK([
-#include <libutf8.h>],[putwc(0,0);],
- [cf_cv_utf8_lib=add-on],
- [cf_cv_utf8_lib=no])
- LIBS="$cf_save_LIBS"
-])])
-
-# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
-# ncurses/ncursesw:
-if test "$cf_cv_utf8_lib" = "add-on" ; then
- AC_DEFINE(HAVE_LIBUTF8_H)
- LIBS="-lutf8 $LIBS"
-fi
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
-dnl ----------
-dnl Use AC_VERBOSE w/o the warnings
-AC_DEFUN([CF_VERBOSE],
-[test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
-CF_MSG_LOG([$1])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_WITH_CURSES_DIR version: 2 updated: 2002/11/10 14:46:59
-dnl ------------------
-dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
-dnl libraries.
-AC_DEFUN([CF_WITH_CURSES_DIR],[
-AC_ARG_WITH(curses-dir,
- [ --with-curses-dir=DIR directory in which (n)curses is installed],
- [CF_PATH_SYNTAX(withval)
- cf_cv_curses_dir=$withval],
- [cf_cv_curses_dir=no])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_CURSES version: 8 updated: 2003/11/07 19:47:46
-dnl ---------------
-dnl Test if we should define X/Open source for curses, needed on Digital Unix
-dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
-dnl
-dnl The getbegyx() check is needed for HPUX, which omits legacy macros such
-dnl as getbegy(). The latter is better design, but the former is standard.
-AC_DEFUN([CF_XOPEN_CURSES],
-[
-AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
-AC_CACHE_CHECK(if we must define _XOPEN_SOURCE_EXTENDED,cf_cv_need_xopen_extension,[
-AC_TRY_LINK([
-#include <stdlib.h>
-#include <${cf_cv_ncurses_header-curses.h}>],[
- long x = winnstr(stdscr, "", 0);
- int x1, y1;
- getbegyx(stdscr, y1, x1)],
- [cf_cv_need_xopen_extension=no],
- [AC_TRY_LINK([
-#define _XOPEN_SOURCE_EXTENDED
-#include <stdlib.h>
-#include <${cf_cv_ncurses_header-curses.h}>],[
- long x = winnstr(stdscr, "", 0);
- int x1, y1;
- getbegyx(stdscr, y1, x1)],
- [cf_cv_need_xopen_extension=yes],
- [cf_cv_need_xopen_extension=unknown])])])
-test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 25 updated: 2007/01/29 18:36:38
-dnl ---------------
-dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
-dnl or adapt to the vendor's definitions to get equivalent functionality,
-dnl without losing the common non-POSIX features.
-dnl
-dnl Parameters:
-dnl $1 is the nominal value for _XOPEN_SOURCE
-dnl $2 is the nominal value for _POSIX_C_SOURCE
-AC_DEFUN([CF_XOPEN_SOURCE],[
-
-AC_REQUIRE([CF_PROG_CC_U_D])
-
-cf_XOPEN_SOURCE=ifelse($1,,500,$1)
-cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
-
-case $host_os in #(vi
-aix[[45]]*) #(vi
- CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
- ;;
-freebsd*) #(vi
- # 5.x headers associate
- # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
- # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
- cf_POSIX_C_SOURCE=200112L
- cf_XOPEN_SOURCE=600
- CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
- ;;
-hpux*) #(vi
- CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
- ;;
-irix[[56]].*) #(vi
- CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
- ;;
-linux*|gnu*|k*bsd*-gnu) #(vi
- CF_GNU_SOURCE
- ;;
-mirbsd*) #(vi
- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
- ;;
-netbsd*) #(vi
- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
- ;;
-openbsd*) #(vi
- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
- ;;
-osf[[45]]*) #(vi
- CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
- ;;
-nto-qnx*) #(vi
- CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
- ;;
-sco*) #(vi
- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
- ;;
-solaris*) #(vi
- CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
- ;;
-*)
- AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifndef _XOPEN_SOURCE
-make an error
-#endif],
- [cf_cv_xopen_source=no],
- [cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifdef _XOPEN_SOURCE
-make an error
-#endif],
- [cf_cv_xopen_source=no],
- [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
- CPPFLAGS="$cf_save"
- ])
-])
- if test "$cf_cv_xopen_source" != no ; then
- CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
- CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
- test "$cf_cv_cc_u_d_options" = yes && \
- CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
- fi
- CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
- ;;
-esac
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_X_ATHENA version: 12 updated: 2004/06/15 21:14:41
-dnl -----------
-dnl Check for Xaw (Athena) libraries
-dnl
-dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
-AC_DEFUN([CF_X_ATHENA],
-[AC_REQUIRE([CF_X_TOOLKIT])
-cf_x_athena=${cf_x_athena-Xaw}
-
-AC_MSG_CHECKING(if you want to link with Xaw 3d library)
-withval=
-AC_ARG_WITH(Xaw3d,
- [ --with-Xaw3d link with Xaw 3d library])
-if test "$withval" = yes ; then
- cf_x_athena=Xaw3d
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-AC_MSG_CHECKING(if you want to link with neXT Athena library)
-withval=
-AC_ARG_WITH(neXtaw,
- [ --with-neXtaw link with neXT Athena library])
-if test "$withval" = yes ; then
- cf_x_athena=neXtaw
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-AC_MSG_CHECKING(if you want to link with Athena-Plus library)
-withval=
-AC_ARG_WITH(XawPlus,
- [ --with-XawPlus link with Athena-Plus library])
-if test "$withval" = yes ; then
- cf_x_athena=XawPlus
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-AC_CHECK_LIB(Xext,XextCreateExtension,
- [LIBS="-lXext $LIBS"])
-
-cf_x_athena_lib=""
-
-CF_X_ATHENA_CPPFLAGS($cf_x_athena)
-CF_X_ATHENA_LIBS($cf_x_athena)
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_X_ATHENA_CPPFLAGS version: 2 updated: 2002/10/09 20:00:37
-dnl --------------------
-dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
-dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
-AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
-[
-cf_x_athena_root=ifelse($1,,Xaw,$1)
-cf_x_athena_include=""
-
-for cf_path in default \
- /usr/contrib/X11R6 \
- /usr/contrib/X11R5 \
- /usr/lib/X11R5 \
- /usr/local
-do
- if test -z "$cf_x_athena_include" ; then
- cf_save="$CPPFLAGS"
- cf_test=X11/$cf_x_athena_root/SimpleMenu.h
- if test $cf_path != default ; then
- CPPFLAGS="-I$cf_path/include $cf_save"
- AC_MSG_CHECKING(for $cf_test in $cf_path)
- else
- AC_MSG_CHECKING(for $cf_test)
- fi
- AC_TRY_COMPILE([
-#include <X11/Intrinsic.h>
-#include <$cf_test>],[],
- [cf_result=yes],
- [cf_result=no])
- AC_MSG_RESULT($cf_result)
- if test "$cf_result" = yes ; then
- cf_x_athena_include=$cf_path
- break
- else
- CPPFLAGS="$cf_save"
- fi
- fi
-done
-
-if test -z "$cf_x_athena_include" ; then
- AC_MSG_WARN(
-[Unable to successfully find Athena header files with test program])
-elif test "$cf_x_athena_include" != default ; then
- CPPFLAGS="$CPPFLAGS -I$cf_x_athena_include"
-fi
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_X_ATHENA_LIBS version: 6 updated: 2006/11/30 17:57:11
-dnl ----------------
-dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
-dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
-AC_DEFUN([CF_X_ATHENA_LIBS],
-[AC_REQUIRE([CF_X_TOOLKIT])
-cf_x_athena_root=ifelse($1,,Xaw,$1)
-cf_x_athena_lib=""
-
-for cf_path in default \
- /usr/contrib/X11R6 \
- /usr/contrib/X11R5 \
- /usr/lib/X11R5 \
- /usr/local
-do
- for cf_lib in \
- "-l$cf_x_athena_root -lXmu" \
- "-l$cf_x_athena_root -lXpm -lXmu" \
- "-l${cf_x_athena_root}_s -lXmu_s"
- do
- if test -z "$cf_x_athena_lib" ; then
- cf_save="$LIBS"
- cf_test=XawSimpleMenuAddGlobalActions
- if test $cf_path != default ; then
- LIBS="-L$cf_path/lib $cf_lib $LIBS"
- AC_MSG_CHECKING(for $cf_lib in $cf_path)
- else
- LIBS="$cf_lib $LIBS"
- AC_MSG_CHECKING(for $cf_test in $cf_lib)
- fi
- AC_TRY_LINK([],[$cf_test()],
- [cf_result=yes],
- [cf_result=no])
- AC_MSG_RESULT($cf_result)
- if test "$cf_result" = yes ; then
- cf_x_athena_lib="$cf_lib"
- break
- fi
- LIBS="$cf_save"
- fi
- done
-done
-
-if test -z "$cf_x_athena_lib" ; then
- AC_ERROR(
-[Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
-fi
-
-CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
-AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
-])
-dnl ---------------------------------------------------------------------------
-dnl CF_X_TOOLKIT version: 11 updated: 2006/11/29 19:05:14
-dnl ------------
-dnl Check for X Toolkit libraries
-dnl
-AC_DEFUN([CF_X_TOOLKIT],
-[
-AC_REQUIRE([AC_PATH_XTRA])
-AC_REQUIRE([CF_CHECK_CACHE])
-
-# SYSTEM_NAME=`echo "$cf_cv_system_name"|tr ' ' -`
-
-cf_have_X_LIBS=no
-
-LDFLAGS="$X_LIBS $LDFLAGS"
-CF_CHECK_CFLAGS($X_CFLAGS)
-
-AC_CHECK_FUNC(XOpenDisplay,,[
-AC_CHECK_LIB(X11,XOpenDisplay,
- [LIBS="-lX11 $LIBS"],,
- [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
-
-AC_CHECK_FUNC(XtAppInitialize,,[
-AC_CHECK_LIB(Xt, XtAppInitialize,
- [AC_DEFINE(HAVE_LIBXT)
- cf_have_X_LIBS=Xt
- LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
- [$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
-
-if test $cf_have_X_LIBS = no ; then
- AC_WARN(
-[Unable to successfully link X Toolkit library (-lXt) with
-test program. You will have to check and add the proper libraries by hand
-to makefile.])
-fi
-])dnl
diff --git a/test/background b/test/background
deleted file mode 100755
index 32a32a1..0000000
--- a/test/background
+++ /dev/null
Binary files differ
diff --git a/test/background.c b/test/background.c
deleted file mode 100644
index afbe5f5..0000000
--- a/test/background.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2003,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: background.c,v 1.3 2006/06/03 16:43:08 tom Exp $
- */
-
-#include <test.priv.h>
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- short f, b;
-
- initscr();
- cbreak();
- noecho();
-
- if (has_colors()) {
- start_color();
-
- pair_content(0, &f, &b);
- printw("pair 0 contains (%d,%d)\n", f, b);
- getch();
-
- printw("Initializing pair 1 to red/black\n");
- init_pair(1, COLOR_RED, COLOR_BLACK);
- bkgdset(' ' | COLOR_PAIR(1));
- printw("RED/BLACK\n");
- getch();
-
- printw("Initializing pair 2 to white/blue\n");
- init_pair(2, COLOR_WHITE, COLOR_BLUE);
- bkgdset(' ' | COLOR_PAIR(2));
- printw("WHITE/BLUE\n");
- getch();
-
- printw("Resetting colors to pair 0\n");
- bkgdset(' ' | COLOR_PAIR(0));
- printw("Default Colors\n");
- getch();
-
- printw("Resetting colors to pair 1\n");
- bkgdset(' ' | COLOR_PAIR(1));
- printw("RED/BLACK\n");
- getch();
-
- printw("Setting screen to pair 0\n");
- bkgd(' ' | COLOR_PAIR(0));
- getch();
-
- printw("Setting screen to pair 1\n");
- bkgd(' ' | COLOR_PAIR(1));
- getch();
-
- printw("Setting screen to pair 2\n");
- bkgd(' ' | COLOR_PAIR(2));
- getch();
-
- printw("Setting screen to pair 0\n");
- bkgd(' ' | COLOR_PAIR(0));
- getch();
-
- } else {
- printw("This demo requires a color terminal");
- getch();
- }
- endwin();
-
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/blue b/test/blue
deleted file mode 100755
index 121ef3a..0000000
--- a/test/blue
+++ /dev/null
Binary files differ
diff --git a/test/blue.c b/test/blue.c
deleted file mode 100644
index dac0c76..0000000
--- a/test/blue.c
+++ /dev/null
@@ -1,463 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*****************************************************************************
- * *
- * B l u e M o o n *
- * ================= *
- * V2.2 *
- * A patience game by T.A.Lister *
- * Integral screen support by Eric S. Raymond *
- * *
- *****************************************************************************/
-
-/*
- * Compile this with the command `cc -O blue.c -lcurses -o blue'. For best
- * results, use the ncurses(3) library. On non-Intel machines, SVr4 curses is
- * just as good.
- *
- * $Id: blue.c,v 1.30 2008/08/03 18:20:27 tom Exp $
- */
-
-#include <test.priv.h>
-
-#include <time.h>
-
-#define NOCARD (-1)
-
-#define ACE 0
-#define KING 12
-#define SUIT_LENGTH 13
-
-#define HEARTS 0
-#define SPADES 1
-#define DIAMONDS 2
-#define CLUBS 3
-#define NSUITS 4
-
-#define GRID_WIDTH 14 /* 13+1 */
-#define GRID_LENGTH 56 /* 4*(13+1) */
-#define PACK_SIZE 52
-
-#define BASEROW 1
-#define PROMPTROW 11
-
-#define RED_ON_WHITE 1
-#define BLACK_ON_WHITE 2
-#define BLUE_ON_WHITE 3
-
-static RETSIGTYPE die(int onsig) GCC_NORETURN;
-
-static int deck_size = PACK_SIZE; /* initial deck */
-static int deck[PACK_SIZE];
-
-static int grid[GRID_LENGTH]; /* card layout grid */
-static int freeptr[4]; /* free card space pointers */
-
-static int deal_number = 0;
-
-static chtype ranks[SUIT_LENGTH][2] =
-{
- {' ', 'A'},
- {' ', '2'},
- {' ', '3'},
- {' ', '4'},
- {' ', '5'},
- {' ', '6'},
- {' ', '7'},
- {' ', '8'},
- {' ', '9'},
- {'1', '0'},
- {' ', 'J'},
- {' ', 'Q'},
- {' ', 'K'}
-};
-
-/* Please note, that this is a bad example.
- Color values should not be or'ed in. This
- only works, because the characters used here
- are plain and have no color attribute themselves. */
-#ifdef COLOR_PAIR
-#define OR_COLORS(value,pair) ((value) | COLOR_PAIR(pair))
-#else
-#define OR_COLORS(value,pair) (value)
-#endif
-
-#define PC_COLORS(value,pair) (OR_COLORS(value,pair) | A_ALTCHARSET)
-
-static chtype letters[4] =
-{
- OR_COLORS('h', RED_ON_WHITE), /* hearts */
- OR_COLORS('s', BLACK_ON_WHITE), /* spades */
- OR_COLORS('d', RED_ON_WHITE), /* diamonds */
- OR_COLORS('c', BLACK_ON_WHITE), /* clubs */
-};
-
-#if defined(__i386__) && defined(A_ALTCHARSET) && HAVE_TIGETSTR
-static chtype glyphs[] =
-{
- PC_COLORS('\003', RED_ON_WHITE), /* hearts */
- PC_COLORS('\006', BLACK_ON_WHITE), /* spades */
- PC_COLORS('\004', RED_ON_WHITE), /* diamonds */
- PC_COLORS('\005', BLACK_ON_WHITE), /* clubs */
-};
-#define USE_CP437 1
-#else
-#define USE_CP437 0
-#endif /* __i386__ */
-
-static chtype *suits = letters; /* this may change to glyphs below */
-
-static RETSIGTYPE
-die(int onsig)
-{
- (void) signal(onsig, SIG_IGN);
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-
-static void
-init_vars(void)
-{
- int i;
-
- deck_size = PACK_SIZE;
- for (i = 0; i < PACK_SIZE; i++)
- deck[i] = i;
- for (i = 0; i < 4; i++)
- freeptr[i] = i * GRID_WIDTH;
-}
-
-static void
-shuffle(int size)
-{
- int i, j, numswaps, swapnum, temp;
-
- numswaps = size * 10; /* an arbitrary figure */
-
- for (swapnum = 0; swapnum < numswaps; swapnum++) {
- i = rand() % size;
- j = rand() % size;
- temp = deck[i];
- deck[i] = deck[j];
- deck[j] = temp;
- }
-}
-
-static void
-deal_cards(void)
-{
- int ptr, card = 0, value, csuit, crank, suit, aces[4];
-
- memset(aces, 0, sizeof(aces));
- for (suit = HEARTS; suit <= CLUBS; suit++) {
- ptr = freeptr[suit];
- grid[ptr++] = NOCARD; /* 1st card space is blank */
- while ((ptr % GRID_WIDTH) != 0) {
- value = deck[card++];
- crank = value % SUIT_LENGTH;
- csuit = value / SUIT_LENGTH;
- if (crank == ACE)
- aces[csuit] = ptr;
- grid[ptr++] = value;
- }
- }
-
- if (deal_number == 1) /* shift the aces down to the 1st column */
- for (suit = HEARTS; suit <= CLUBS; suit++) {
- grid[suit * GRID_WIDTH] = suit * SUIT_LENGTH;
- grid[aces[suit]] = NOCARD;
- freeptr[suit] = aces[suit];
- }
-}
-
-static void
-printcard(int value)
-{
- (void) addch(' ');
- if (value == NOCARD)
- (void) addstr(" ");
- else {
- addch(ranks[value % SUIT_LENGTH][0] | COLOR_PAIR(BLUE_ON_WHITE));
- addch(ranks[value % SUIT_LENGTH][1] | COLOR_PAIR(BLUE_ON_WHITE));
- addch(suits[value / SUIT_LENGTH]);
- }
- (void) addch(' ');
-}
-
-static void
-display_cards(int deal)
-{
- int row, card;
-
- clear();
- (void) printw(
- "Blue Moon 2.1 - by Tim Lister & Eric Raymond - Deal %d.\n",
- deal);
- for (row = HEARTS; row <= CLUBS; row++) {
- move(BASEROW + row + row + 2, 1);
- for (card = 0; card < GRID_WIDTH; card++)
- printcard(grid[row * GRID_WIDTH + card]);
- }
-
- move(PROMPTROW + 2, 0);
- refresh();
-#define P(x) (void)printw("%s\n", x)
- P(" This 52-card solitaire starts with the entire deck shuffled and dealt");
- P("out in four rows. The aces are then moved to the left end of the layout,");
- P("making 4 initial free spaces. You may move to a space only the card that");
- P("matches the left neighbor in suit, and is one greater in rank. Kings are");
- P("high, so no cards may be placed to their right (they create dead spaces).");
- P(" When no moves can be made, cards still out of sequence are reshuffled");
- P("and dealt face up after the ends of the partial sequences, leaving a card");
- P("space after each sequence, so that each row looks like a partial sequence");
- P("followed by a space, followed by enough cards to make a row of 14. ");
- P(" A moment's reflection will show that this game cannot take more than 13");
- P("deals. A good score is 1-3 deals, 4-7 is average, 8 or more is poor. ");
-#undef P
- refresh();
-}
-
-static int
-find(int card)
-{
- int i;
-
- if ((card < 0) || (card >= PACK_SIZE))
- return (NOCARD);
- for (i = 0; i < GRID_LENGTH; i++)
- if (grid[i] == card)
- return i;
- return (NOCARD);
-}
-
-static void
-movecard(int src, int dst)
-{
- grid[dst] = grid[src];
- grid[src] = NOCARD;
-
- move(BASEROW + (dst / GRID_WIDTH) * 2 + 2, (dst % GRID_WIDTH) * 5 + 1);
- printcard(grid[dst]);
-
- move(BASEROW + (src / GRID_WIDTH) * 2 + 2, (src % GRID_WIDTH) * 5 + 1);
- printcard(grid[src]);
-
- refresh();
-}
-
-static void
-play_game(void)
-{
- int dead = 0, i, j;
- char c;
- int selection[4], card;
-
- while (dead < 4) {
- dead = 0;
- for (i = 0; i < 4; i++) {
- card = grid[freeptr[i] - 1];
-
- if (((card % SUIT_LENGTH) == KING)
- ||
- (card == NOCARD))
- selection[i] = NOCARD;
- else
- selection[i] = find(card + 1);
-
- if (selection[i] == NOCARD)
- dead++;
- };
-
- if (dead < 4) {
- char live[NSUITS + 1], *lp = live;
-
- for (i = 0; i < 4; i++) {
- if (selection[i] != NOCARD) {
- move(BASEROW + (selection[i] / GRID_WIDTH) * 2 + 3,
- (selection[i] % GRID_WIDTH) * 5);
- (void) printw(" %c ", *lp++ = 'a' + i);
- }
- };
- *lp = '\0';
-
- if (strlen(live) == 1) {
- move(PROMPTROW, 0);
- (void) printw(
- "Making forced moves... ");
- refresh();
- (void) sleep(1);
- c = live[0];
- } else {
- char buf[BUFSIZ];
-
- (void) sprintf(buf,
- "Type [%s] to move, r to redraw, q or INTR to quit: ",
- live);
-
- do {
- move(PROMPTROW, 0);
- (void) addstr(buf);
- move(PROMPTROW, (int) strlen(buf));
- clrtoeol();
- (void) addch(' ');
- } while
- (((c = getch()) < 'a' || c > 'd') && (c != 'r') && (c != 'q'));
- }
-
- for (j = 0; j < 4; j++)
- if (selection[j] != NOCARD) {
- move(BASEROW + (selection[j] / GRID_WIDTH) * 2 + 3,
- (selection[j] % GRID_WIDTH) * 5);
- (void) printw(" ");
- }
-
- if (c == 'r')
- display_cards(deal_number);
- else if (c == 'q')
- die(SIGINT);
- else {
- i = c - 'a';
- if (selection[i] == NOCARD)
- beep();
- else {
- movecard(selection[i], freeptr[i]);
- freeptr[i] = selection[i];
- }
- }
- }
- }
-
- move(PROMPTROW, 0);
- standout();
- (void) printw("Finished deal %d - type any character to continue...", deal_number);
- standend();
- (void) getch();
-}
-
-static int
-collect_discards(void)
-{
- int row, col, cardno = 0, finish, gridno;
-
- for (row = HEARTS; row <= CLUBS; row++) {
- finish = 0;
- for (col = 1; col < GRID_WIDTH; col++) {
- gridno = row * GRID_WIDTH + col;
-
- if ((grid[gridno] != (grid[gridno - 1] + 1)) && (finish == 0)) {
- finish = 1;
- freeptr[row] = gridno;
- };
-
- if ((finish != 0) && (grid[gridno] != NOCARD))
- deck[cardno++] = grid[gridno];
- }
- }
- return cardno;
-}
-
-static void
-game_finished(int deal)
-{
- clear();
- (void) printw("You finished the game in %d deals. This is ", deal);
- standout();
- if (deal < 2)
- (void) addstr("excellent");
- else if (deal < 4)
- (void) addstr("good");
- else if (deal < 8)
- (void) addstr("average");
- else
- (void) addstr("poor");
- standend();
- (void) addstr(". ");
- refresh();
-}
-
-int
-main(int argc, char *argv[])
-{
- CATCHALL(die);
-
- setlocale(LC_ALL, "");
-
- initscr();
-
- /*
- * We use COLOR_GREEN because COLOR_BLACK is wired to the wrong thing.
- */
- start_color();
- init_pair(RED_ON_WHITE, COLOR_RED, COLOR_WHITE);
- init_pair(BLUE_ON_WHITE, COLOR_BLUE, COLOR_WHITE);
- init_pair(BLACK_ON_WHITE, COLOR_BLACK, COLOR_WHITE);
-
-#ifndef COLOR_PAIR
- letters[0] = OR_COLORS('h', RED_ON_WHITE); /* hearts */
- letters[1] = OR_COLORS('s', BLACK_ON_WHITE); /* spades */
- letters[2] = OR_COLORS('d', RED_ON_WHITE); /* diamonds */
- letters[3] = OR_COLORS('c', BLACK_ON_WHITE); /* clubs */
-#if USE_CP437
- glyphs[0] = PC_COLORS('\003', RED_ON_WHITE); /* hearts */
- glyphs[1] = PC_COLORS('\006', BLACK_ON_WHITE); /* spades */
- glyphs[2] = PC_COLORS('\004', RED_ON_WHITE); /* diamonds */
- glyphs[3] = PC_COLORS('\005', BLACK_ON_WHITE); /* clubs */
-#endif
-#endif
-
-#if USE_CP437
- if (tigetstr("smpch"))
- suits = glyphs;
-#endif /* USE_CP437 */
-
- cbreak();
-
- if (argc == 2)
- srand((unsigned) atoi(argv[1]));
- else
- srand((unsigned) time((time_t *) 0));
-
- init_vars();
-
- do {
- deal_number++;
- shuffle(deck_size);
- deal_cards();
- display_cards(deal_number);
- play_game();
- }
- while
- ((deck_size = collect_discards()) != 0);
-
- game_finished(deal_number);
-
- die(SIGINT);
- /*NOTREACHED */
-}
-
-/* blue.c ends here */
diff --git a/test/bs b/test/bs
deleted file mode 100755
index 2f47b51..0000000
--- a/test/bs
+++ /dev/null
Binary files differ
diff --git a/test/bs.6 b/test/bs.6
deleted file mode 100644
index 657f538..0000000
--- a/test/bs.6
+++ /dev/null
@@ -1,71 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders shall not be used in advertising or otherwise to promote the *
-.\" sale, use or other dealings in this Software without prior written *
-.\" authorization. *
-.\"***************************************************************************
-.\"
-.\" $Id: bs.6,v 1.2 2006/04/22 22:42:44 tom Exp $
-.TH BATTLESHIPS 6 "Aug 23, 1989"
-.SH NAME
-bs \- battleships game
-.SH SYNOPSIS
-battle [ -b | -s ] [ -c ]
-.SH DESCRIPTION
-This program allows you to play the familiar Battleships game against the
-computer on a 10x10 board. The interface is visual and largely
-self-explanatory; you place your ships and pick your shots by moving the
-cursor around the `sea' with the rogue/hack motion keys hjklyubn.
-.PP
-Note that when selecting a ship to place, you must type the capital letter
-(these are, after all, capital ships). During ship placement, the `r' command
-may be used to ignore the current position and randomly place your currently
-selected ship. The `R' command will place all remaining ships randomly. The ^L
-command (form feed, ASCII 12) will force a screen redraw).
-.PP
-The command-line arguments control game modes.
-
-.nf
- -b selects a `blitz' variant
- -s selects a `salvo' variant
- -c permits ships to be placed adjacently
-.fi
-
-The `blitz' variant allows a side to shoot for as long as it continues to
-score hits.
-.PP
-The `salvo' game allows a player one shot per turn for each of his/her ships
-still afloat. This puts a premium scoring hits early and knocking out some
-ships and also makes much harder the situation where you face a superior force
-with only your PT-boat.
-.PP
-Normally, ships must be separated by at least one square of open water. The
--c option disables this check and allows them to close-pack.
-.PP
-The algorithm the computer uses once it has found a ship to sink is provably
-optimal. The dispersion criterion for the random-fire algorithm may not be.
-.SH AUTHORS
-Originally written by one Bruce Holloway in 1986. Salvo mode added by Chuck A.
-DeGaul (cbosgd!cad). Visual user interface, `closepack' option, code rewrite
-and manual page by Eric S. Raymond <esr@snark.thyrsus.com> August 1989.
diff --git a/test/bs.c b/test/bs.c
deleted file mode 100644
index f9572be..0000000
--- a/test/bs.c
+++ /dev/null
@@ -1,1256 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * bs.c - original author: Bruce Holloway
- * salvo option by: Chuck A DeGaul
- * with improved user interface, autoconfiguration and code cleanup
- * by Eric S. Raymond <esr@snark.thyrsus.com>
- * v1.2 with color support and minor portability fixes, November 1990
- * v2.0 featuring strict ANSI/POSIX conformance, November 1993.
- * v2.1 with ncurses mouse support, September 1995
- *
- * $Id: bs.c,v 1.47 2008/08/03 18:30:28 tom Exp $
- */
-
-#include <test.priv.h>
-
-#include <time.h>
-
-#ifndef SIGIOT
-#define SIGIOT SIGABRT
-#endif
-
-static int getcoord(int);
-
-/*
- * Constants for tuning the random-fire algorithm. It prefers moves that
- * diagonal-stripe the board with a stripe separation of srchstep. If
- * no such preferred moves are found, srchstep is decremented.
- */
-#define BEGINSTEP 3 /* initial value of srchstep */
-
-/* miscellaneous constants */
-#define SHIPTYPES 5
-#define OTHER (1-turn)
-#define PLAYER 0
-#define COMPUTER 1
-#define MARK_HIT 'H'
-#define MARK_MISS 'o'
-#define CTRLC '\003' /* used as terminate command */
-#define FF '\014' /* used as redraw command */
-
-/* coordinate handling */
-#define BWIDTH 10
-#define BDEPTH 10
-
-/* display symbols */
-#define SHOWHIT '*'
-#define SHOWSPLASH ' '
-#define IS_SHIP(c) (isupper(UChar(c)) ? TRUE : FALSE)
-
-/* how to position us on player board */
-#define PYBASE 3
-#define PXBASE 3
-#define PY(y) (PYBASE + (y))
-#define PX(x) (PXBASE + (x)*3)
-#define pgoto(y, x) (void)move(PY(y), PX(x))
-
-/* how to position us on cpu board */
-#define CYBASE 3
-#define CXBASE 48
-#define CY(y) (CYBASE + (y))
-#define CX(x) (CXBASE + (x)*3)
-#define CYINV(y) ((y) - CYBASE)
-#define CXINV(x) (((x) - CXBASE) / 3)
-#define cgoto(y, x) (void)move(CY(y), CX(x))
-
-#define ONBOARD(x, y) (x >= 0 && x < BWIDTH && y >= 0 && y < BDEPTH)
-
-/* other board locations */
-#define COLWIDTH 80
-#define PROMPTLINE 21 /* prompt line */
-#define SYBASE CYBASE + BDEPTH + 3 /* move key diagram */
-#define SXBASE 63
-#define MYBASE SYBASE - 1 /* diagram caption */
-#define MXBASE 64
-#define HYBASE SYBASE - 1 /* help area */
-#define HXBASE 0
-
-/* this will need to be changed if BWIDTH changes */
-static char numbers[] = " 0 1 2 3 4 5 6 7 8 9";
-
-static char carrier[] = "Aircraft Carrier";
-static char battle[] = "Battleship";
-static char sub[] = "Submarine";
-static char destroy[] = "Destroyer";
-static char ptboat[] = "PT Boat";
-
-static char name[40];
-static char dftname[] = "stranger";
-
-/* direction constants */
-#define E 0
-#define SE 1
-#define S 2
-#define SW 3
-#define W 4
-#define NW 5
-#define N 6
-#define NE 7
-static int xincr[8] =
-{1, 1, 0, -1, -1, -1, 0, 1};
-static int yincr[8] =
-{0, 1, 1, 1, 0, -1, -1, -1};
-
-/* current ship position and direction */
-static int curx = (BWIDTH / 2);
-static int cury = (BDEPTH / 2);
-
-typedef struct {
- char *name; /* name of the ship type */
- int hits; /* how many times has this ship been hit? */
- char symbol; /* symbol for game purposes */
- int length; /* length of ship */
- int x, y; /* coordinates of ship start point */
- int dir; /* direction of `bow' */
- bool placed; /* has it been placed on the board? */
-} ship_t;
-
-static bool checkplace(int b, ship_t * ss, int vis);
-
-#define SHIPIT(name, symbol, length) { name, 0, symbol, length, 0,0, 0, FALSE }
-
-static ship_t plyship[SHIPTYPES] =
-{
- SHIPIT(carrier, 'A', 5),
- SHIPIT(battle, 'B', 4),
- SHIPIT(destroy, 'D', 3),
- SHIPIT(sub, 'S', 3),
- SHIPIT(ptboat, 'P', 2),
-};
-
-static ship_t cpuship[SHIPTYPES] =
-{
- SHIPIT(carrier, 'A', 5),
- SHIPIT(battle, 'B', 4),
- SHIPIT(destroy, 'D', 3),
- SHIPIT(sub, 'S', 3),
- SHIPIT(ptboat, 'P', 2),
-};
-
-/* "Hits" board, and main board. */
-static char hits[2][BWIDTH][BDEPTH];
-static char board[2][BWIDTH][BDEPTH];
-
-static int turn; /* 0=player, 1=computer */
-static int plywon = 0, cpuwon = 0; /* How many games has each won? */
-
-static int salvo, blitz, closepack;
-
-#define PR (void)addstr
-
-static RETSIGTYPE uninitgame(int sig) GCC_NORETURN;
-
-static RETSIGTYPE
-uninitgame(int sig GCC_UNUSED)
-/* end the game, either normally or due to signal */
-{
- clear();
- (void) refresh();
- (void) reset_shell_mode();
- (void) echo();
- (void) endwin();
- ExitProgram(sig ? EXIT_FAILURE : EXIT_SUCCESS);
-}
-
-static void
-announceopts(void)
-/* announce which game options are enabled */
-{
- if (salvo || blitz || closepack) {
- (void) printw("Playing optional game (");
- if (salvo)
- (void) printw("salvo, ");
- else
- (void) printw("nosalvo, ");
- if (blitz)
- (void) printw("blitz ");
- else
- (void) printw("noblitz, ");
- if (closepack)
- (void) printw("closepack)");
- else
- (void) printw("noclosepack)");
- } else
- (void) printw(
- "Playing standard game (noblitz, nosalvo, noclosepack)");
-}
-
-static void
-intro(void)
-{
- char *tmpname;
-
- srand((unsigned) (time(0L) + getpid())); /* Kick the random number generator */
-
- CATCHALL(uninitgame);
-
- if ((tmpname = getlogin()) != 0) {
- (void) strcpy(name, tmpname);
- name[0] = toupper(UChar(name[0]));
- } else
- (void) strcpy(name, dftname);
-
- (void) initscr();
- keypad(stdscr, TRUE);
- (void) def_prog_mode();
- (void) nonl();
- (void) cbreak();
- (void) noecho();
-
-#ifdef PENGUIN
- (void) clear();
- (void) mvaddstr(4, 29, "Welcome to Battleship!");
- (void) move(8, 0);
- PR(" \\\n");
- PR(" \\ \\ \\\n");
- PR(" \\ \\ \\ \\ \\_____________\n");
- PR(" \\ \\ \\_____________ \\ \\/ |\n");
- PR(" \\ \\/ \\ \\/ |\n");
- PR(" \\/ \\_____/ |__\n");
- PR(" ________________/ |\n");
- PR(" \\ S.S. Penguin |\n");
- PR(" \\ /\n");
- PR(" \\___________________________________________________/\n");
-
- (void) mvaddstr(22, 27, "Hit any key to continue...");
- (void) refresh();
- (void) getch();
-#endif /* PENGUIN */
-
-#ifdef A_COLOR
- start_color();
-
- init_pair(COLOR_BLACK, COLOR_BLACK, COLOR_BLACK);
- init_pair(COLOR_GREEN, COLOR_GREEN, COLOR_BLACK);
- init_pair(COLOR_RED, COLOR_RED, COLOR_BLACK);
- init_pair(COLOR_CYAN, COLOR_CYAN, COLOR_BLACK);
- init_pair(COLOR_WHITE, COLOR_WHITE, COLOR_BLACK);
- init_pair(COLOR_MAGENTA, COLOR_MAGENTA, COLOR_BLACK);
- init_pair(COLOR_BLUE, COLOR_BLUE, COLOR_BLACK);
- init_pair(COLOR_YELLOW, COLOR_YELLOW, COLOR_BLACK);
-#endif /* A_COLOR */
-
-#ifdef NCURSES_MOUSE_VERSION
- (void) mousemask(BUTTON1_CLICKED, (mmask_t *) NULL);
-#endif /* NCURSES_MOUSE_VERSION */
-}
-
-/* VARARGS1 */
-static void
-prompt(int n, NCURSES_CONST char *f, const char *s)
-/* print a message at the prompt line */
-{
- (void) move(PROMPTLINE + n, 0);
- (void) clrtoeol();
- (void) printw(f, s);
- (void) refresh();
-}
-
-static void
-error(NCURSES_CONST char *s)
-{
- (void) move(PROMPTLINE + 2, 0);
- (void) clrtoeol();
- if (s) {
- (void) addstr(s);
- (void) beep();
- }
-}
-
-static void
-placeship(int b, ship_t * ss, int vis)
-{
- int l;
-
- for (l = 0; l < ss->length; ++l) {
- int newx = ss->x + l * xincr[ss->dir];
- int newy = ss->y + l * yincr[ss->dir];
-
- board[b][newx][newy] = ss->symbol;
- if (vis) {
- pgoto(newy, newx);
- (void) addch((chtype) ss->symbol);
- }
- }
- ss->hits = 0;
-}
-
-static int
-rnd(int n)
-{
- return (((rand() & 0x7FFF) % n));
-}
-
-static void
-randomplace(int b, ship_t * ss)
-/* generate a valid random ship placement into px,py */
-{
-
- do {
- ss->dir = rnd(2) ? E : S;
- ss->x = rnd(BWIDTH - (ss->dir == E ? ss->length : 0));
- ss->y = rnd(BDEPTH - (ss->dir == S ? ss->length : 0));
- } while
- (!checkplace(b, ss, FALSE));
-}
-
-static void
-initgame(void)
-{
- int i, j, unplaced;
- ship_t *ss;
-
- (void) clear();
- (void) mvaddstr(0, 35, "BATTLESHIPS");
- (void) move(PROMPTLINE + 2, 0);
- announceopts();
-
- memset(board, 0, sizeof(char) * BWIDTH * BDEPTH * 2);
- memset(hits, 0, sizeof(char) * BWIDTH * BDEPTH * 2);
- for (i = 0; i < SHIPTYPES; i++) {
- ss = cpuship + i;
-
- ss->x =
- ss->y =
- ss->dir =
- ss->hits = 0;
- ss->placed = FALSE;
-
- ss = plyship + i;
-
- ss->x =
- ss->y =
- ss->dir =
- ss->hits = 0;
- ss->placed = FALSE;
- }
-
- /* draw empty boards */
- (void) mvaddstr(PYBASE - 2, PXBASE + 5, "Main Board");
- (void) mvaddstr(PYBASE - 1, PXBASE - 3, numbers);
- for (i = 0; i < BDEPTH; ++i) {
- (void) mvaddch(PYBASE + i, PXBASE - 3, (chtype) (i + 'A'));
-#ifdef A_COLOR
- if (has_colors())
- attron(COLOR_PAIR(COLOR_BLUE));
-#endif /* A_COLOR */
- (void) addch(' ');
- for (j = 0; j < BWIDTH; j++)
- (void) addstr(" . ");
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
- (void) addch(' ');
- (void) addch((chtype) (i + 'A'));
- }
- (void) mvaddstr(PYBASE + BDEPTH, PXBASE - 3, numbers);
- (void) mvaddstr(CYBASE - 2, CXBASE + 7, "Hit/Miss Board");
- (void) mvaddstr(CYBASE - 1, CXBASE - 3, numbers);
- for (i = 0; i < BDEPTH; ++i) {
- (void) mvaddch(CYBASE + i, CXBASE - 3, (chtype) (i + 'A'));
-#ifdef A_COLOR
- if (has_colors())
- attron(COLOR_PAIR(COLOR_BLUE));
-#endif /* A_COLOR */
- (void) addch(' ');
- for (j = 0; j < BWIDTH; j++)
- (void) addstr(" . ");
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
- (void) addch(' ');
- (void) addch((chtype) (i + 'A'));
- }
-
- (void) mvaddstr(CYBASE + BDEPTH, CXBASE - 3, numbers);
-
- (void) mvprintw(HYBASE, HXBASE,
- "To position your ships: move the cursor to a spot, then");
- (void) mvprintw(HYBASE + 1, HXBASE,
- "type the first letter of a ship type to select it, then");
- (void) mvprintw(HYBASE + 2, HXBASE,
- "type a direction ([hjkl] or [4862]), indicating how the");
- (void) mvprintw(HYBASE + 3, HXBASE,
- "ship should be pointed. You may also type a ship letter");
- (void) mvprintw(HYBASE + 4, HXBASE,
- "followed by `r' to position it randomly, or type `R' to");
- (void) mvprintw(HYBASE + 5, HXBASE,
- "place all remaining ships randomly.");
-
- (void) mvaddstr(MYBASE, MXBASE, "Aiming keys:");
- (void) mvaddstr(SYBASE, SXBASE, "y k u 7 8 9");
- (void) mvaddstr(SYBASE + 1, SXBASE, " \\|/ \\|/ ");
- (void) mvaddstr(SYBASE + 2, SXBASE, "h-+-l 4-+-6");
- (void) mvaddstr(SYBASE + 3, SXBASE, " /|\\ /|\\ ");
- (void) mvaddstr(SYBASE + 4, SXBASE, "b j n 1 2 3");
-
- /* have the computer place ships */
- for (ss = cpuship; ss < cpuship + SHIPTYPES; ss++) {
- randomplace(COMPUTER, ss);
- placeship(COMPUTER, ss, FALSE);
- }
-
- ss = (ship_t *) NULL;
- do {
- char c, docked[SHIPTYPES + 2], *cp = docked;
-
- /* figure which ships still wait to be placed */
- *cp++ = 'R';
- for (i = 0; i < SHIPTYPES; i++)
- if (!plyship[i].placed)
- *cp++ = plyship[i].symbol;
- *cp = '\0';
-
- /* get a command letter */
- prompt(1, "Type one of [%s] to pick a ship.", docked + 1);
- do {
- c = getcoord(PLAYER);
- } while
- (!strchr(docked, c));
-
- if (c == 'R')
- (void) ungetch('R');
- else {
- /* map that into the corresponding symbol */
- for (ss = plyship; ss < plyship + SHIPTYPES; ss++)
- if (ss->symbol == c)
- break;
-
- prompt(1, "Type one of [hjklrR] to place your %s.", ss->name);
- pgoto(cury, curx);
- }
-
- do {
- c = getch();
- } while
- (!(strchr("hjklrR", c) || c == FF));
-
- if (c == FF) {
- (void) clearok(stdscr, TRUE);
- (void) refresh();
- } else if (c == 'r') {
- assert(ss != 0);
- prompt(1, "Random-placing your %s", ss->name);
- randomplace(PLAYER, ss);
- placeship(PLAYER, ss, TRUE);
- error((char *) NULL);
- ss->placed = TRUE;
- } else if (c == 'R') {
- prompt(1, "Placing the rest of your fleet at random...", "");
- for (ss = plyship; ss < plyship + SHIPTYPES; ss++)
- if (!ss->placed) {
- randomplace(PLAYER, ss);
- placeship(PLAYER, ss, TRUE);
- ss->placed = TRUE;
- }
- error((char *) NULL);
- } else if (strchr("hjkl8462", c)) {
- assert(ss != 0);
- ss->x = curx;
- ss->y = cury;
-
- switch (c) {
- case 'k':
- case '8':
- ss->dir = N;
- break;
- case 'j':
- case '2':
- ss->dir = S;
- break;
- case 'h':
- case '4':
- ss->dir = W;
- break;
- case 'l':
- case '6':
- ss->dir = E;
- break;
- }
-
- if (checkplace(PLAYER, ss, TRUE)) {
- placeship(PLAYER, ss, TRUE);
- error((char *) NULL);
- ss->placed = TRUE;
- }
- }
-
- for (unplaced = i = 0; i < SHIPTYPES; i++)
- unplaced += !plyship[i].placed;
- } while
- (unplaced);
-
- turn = rnd(2);
-
- (void) mvprintw(HYBASE, HXBASE,
- "To fire, move the cursor to your chosen aiming point ");
- (void) mvprintw(HYBASE + 1, HXBASE,
- "and strike any key other than a motion key. ");
- (void) mvprintw(HYBASE + 2, HXBASE,
- " ");
- (void) mvprintw(HYBASE + 3, HXBASE,
- " ");
- (void) mvprintw(HYBASE + 4, HXBASE,
- " ");
- (void) mvprintw(HYBASE + 5, HXBASE,
- " ");
-
- (void) prompt(0, "Press any key to start...", "");
- (void) getch();
-}
-
-static int
-getcoord(int atcpu)
-{
- int ny, nx, c;
-
- if (atcpu)
- cgoto(cury, curx);
- else
- pgoto(cury, curx);
- (void) refresh();
- for (;;) {
- if (atcpu) {
- (void) mvprintw(CYBASE + BDEPTH + 1, CXBASE + 11, "(%d, %c)",
- curx, 'A' + cury);
- cgoto(cury, curx);
- } else {
- (void) mvprintw(PYBASE + BDEPTH + 1, PXBASE + 11, "(%d, %c)",
- curx, 'A' + cury);
- pgoto(cury, curx);
- }
-
- switch (c = getch()) {
- case 'k':
- case '8':
- case KEY_UP:
- ny = cury + BDEPTH - 1;
- nx = curx;
- break;
- case 'j':
- case '2':
- case KEY_DOWN:
- ny = cury + 1;
- nx = curx;
- break;
- case 'h':
- case '4':
- case KEY_LEFT:
- ny = cury;
- nx = curx + BWIDTH - 1;
- break;
- case 'l':
- case '6':
- case KEY_RIGHT:
- ny = cury;
- nx = curx + 1;
- break;
- case 'y':
- case '7':
- case KEY_A1:
- ny = cury + BDEPTH - 1;
- nx = curx + BWIDTH - 1;
- break;
- case 'b':
- case '1':
- case KEY_C1:
- ny = cury + 1;
- nx = curx + BWIDTH - 1;
- break;
- case 'u':
- case '9':
- case KEY_A3:
- ny = cury + BDEPTH - 1;
- nx = curx + 1;
- break;
- case 'n':
- case '3':
- case KEY_C3:
- ny = cury + 1;
- nx = curx + 1;
- break;
- case FF:
- nx = curx;
- ny = cury;
- (void) clearok(stdscr, TRUE);
- (void) refresh();
- break;
-#ifdef NCURSES_MOUSE_VERSION
- case KEY_MOUSE:
- {
- MEVENT myevent;
-
- getmouse(&myevent);
- if (atcpu
- && myevent.y >= CY(0) && myevent.y <= CY(BDEPTH)
- && myevent.x >= CX(0) && myevent.x <= CX(BDEPTH)) {
- curx = CXINV(myevent.x);
- cury = CYINV(myevent.y);
- return (' ');
- } else {
- beep();
- continue;
- }
- }
- /* no fall through */
-#endif /* NCURSES_MOUSE_VERSION */
-
- default:
- if (atcpu)
- (void) mvaddstr(CYBASE + BDEPTH + 1, CXBASE + 11, " ");
- else
- (void) mvaddstr(PYBASE + BDEPTH + 1, PXBASE + 11, " ");
- return (c);
- }
-
- curx = nx % BWIDTH;
- cury = ny % BDEPTH;
- }
-}
-
-static bool
-collidecheck(int b, int y, int x)
-/* is this location on the selected zboard adjacent to a ship? */
-{
- bool collide;
-
- /* anything on the square */
- if ((collide = IS_SHIP(board[b][x][y])) != FALSE)
- return (collide);
-
- /* anything on the neighbors */
- if (!closepack) {
- int i;
-
- for (i = 0; i < 8; i++) {
- int xend, yend;
-
- yend = y + yincr[i];
- xend = x + xincr[i];
- if (ONBOARD(xend, yend)
- && IS_SHIP(board[b][xend][yend])) {
- collide = TRUE;
- break;
- }
- }
- }
- return (collide);
-}
-
-static bool
-checkplace(int b, ship_t * ss, int vis)
-{
- int l, xend, yend;
-
- /* first, check for board edges */
- xend = ss->x + (ss->length - 1) * xincr[ss->dir];
- yend = ss->y + (ss->length - 1) * yincr[ss->dir];
- if (!ONBOARD(xend, yend)) {
- if (vis)
- switch (rnd(3)) {
- case 0:
- error("Ship is hanging from the edge of the world");
- break;
- case 1:
- error("Try fitting it on the board");
- break;
- case 2:
- error("Figure I won't find it if you put it there?");
- break;
- }
- return (FALSE);
- }
-
- for (l = 0; l < ss->length; ++l) {
- if (collidecheck(b, ss->y + l * yincr[ss->dir], ss->x + l * xincr[ss->dir])) {
- if (vis)
- switch (rnd(3)) {
- case 0:
- error("There's already a ship there");
- break;
- case 1:
- error("Collision alert! Aaaaaagh!");
- break;
- case 2:
- error("Er, Admiral, what about the other ship?");
- break;
- }
- return (FALSE);
- }
- }
- return (TRUE);
-}
-
-static int
-awinna(void)
-{
- int i, j;
- ship_t *ss;
-
- for (i = 0; i < 2; ++i) {
- ss = (i) ? cpuship : plyship;
- for (j = 0; j < SHIPTYPES; ++j, ++ss)
- if (ss->length > ss->hits)
- break;
- if (j == SHIPTYPES)
- return (OTHER);
- }
- return (-1);
-}
-
-static ship_t *
-hitship(int x, int y)
-/* register a hit on the targeted ship */
-{
- ship_t *sb, *ss;
- char sym;
- int oldx, oldy;
-
- getyx(stdscr, oldy, oldx);
- sb = (turn) ? plyship : cpuship;
- if ((sym = board[OTHER][x][y]) == 0)
- return ((ship_t *) NULL);
- for (ss = sb; ss < sb + SHIPTYPES; ++ss)
- if (ss->symbol == sym) {
- if (++ss->hits < ss->length) /* still afloat? */
- return ((ship_t *) NULL);
- else { /* sunk! */
- int i, j;
-
- if (!closepack)
- for (j = -1; j <= 1; j++) {
- int bx = ss->x + j * xincr[(ss->dir + 2) % 8];
- int by = ss->y + j * yincr[(ss->dir + 2) % 8];
-
- for (i = -1; i <= ss->length; ++i) {
- int x1, y1;
-
- x1 = bx + i * xincr[ss->dir];
- y1 = by + i * yincr[ss->dir];
- if (ONBOARD(x1, y1)) {
- hits[turn][x1][y1] = MARK_MISS;
- if (turn % 2 == PLAYER) {
- cgoto(y1, x1);
-#ifdef A_COLOR
- if (has_colors())
- attron(COLOR_PAIR(COLOR_GREEN));
-#endif /* A_COLOR */
- (void) addch(MARK_MISS);
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
- } else {
- pgoto(y1, x1);
- (void) addch(SHOWSPLASH);
- }
- }
- }
- }
-
- for (i = 0; i < ss->length; ++i) {
- int x1 = ss->x + i * xincr[ss->dir];
- int y1 = ss->y + i * yincr[ss->dir];
-
- hits[turn][x1][y1] = ss->symbol;
- if (turn % 2 == PLAYER) {
- cgoto(y1, x1);
- (void) addch((chtype) (ss->symbol));
- } else {
- pgoto(y1, x1);
-#ifdef A_COLOR
- if (has_colors())
- attron(COLOR_PAIR(COLOR_RED));
-#endif /* A_COLOR */
- (void) addch(SHOWHIT);
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
- }
- }
-
- (void) move(oldy, oldx);
- return (ss);
- }
- }
- (void) move(oldy, oldx);
- return ((ship_t *) NULL);
-}
-
-static bool
-plyturn(void)
-{
- ship_t *ss;
- bool hit;
- NCURSES_CONST char *m = NULL;
-
- prompt(1, "Where do you want to shoot? ", "");
- for (;;) {
- (void) getcoord(COMPUTER);
- if (hits[PLAYER][curx][cury]) {
- prompt(1, "You shelled this spot already! Try again.", "");
- beep();
- } else
- break;
- }
- hit = IS_SHIP(board[COMPUTER][curx][cury]);
- hits[PLAYER][curx][cury] = (hit ? MARK_HIT : MARK_MISS);
- cgoto(cury, curx);
-#ifdef A_COLOR
- if (has_colors()) {
- if (hit)
- attron(COLOR_PAIR(COLOR_RED));
- else
- attron(COLOR_PAIR(COLOR_GREEN));
- }
-#endif /* A_COLOR */
- (void) addch((chtype) hits[PLAYER][curx][cury]);
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
-
- prompt(1, "You %s.", hit ? "scored a hit" : "missed");
- if (hit && (ss = hitship(curx, cury))) {
- switch (rnd(5)) {
- case 0:
- m = " You sank my %s!";
- break;
- case 1:
- m = " I have this sinking feeling about my %s....";
- break;
- case 2:
- m = " My %s has gone to Davy Jones's locker!";
- break;
- case 3:
- m = " Glub, glub -- my %s is headed for the bottom!";
- break;
- case 4:
- m = " You'll pick up survivors from my %s, I hope...!";
- break;
- }
- (void) printw(m, ss->name);
- (void) beep();
- }
- return (hit);
-}
-
-static int
-sgetc(const char *s)
-{
- const char *s1;
- int ch;
-
- (void) refresh();
- for (;;) {
- ch = getch();
- if (islower(ch))
- ch = toupper(ch);
- if (ch == CTRLC)
- uninitgame(0);
- for (s1 = s; *s1 && ch != *s1; ++s1)
- continue;
- if (*s1) {
- (void) addch((chtype) ch);
- (void) refresh();
- return (ch);
- }
- }
-}
-
-static void
-randomfire(int *px, int *py)
-/* random-fire routine -- implements simple diagonal-striping strategy */
-{
- static int turncount = 0;
- static int srchstep = BEGINSTEP;
- static int huntoffs; /* Offset on search strategy */
- int ypossible[BWIDTH * BDEPTH], xpossible[BWIDTH * BDEPTH], nposs;
- int ypreferred[BWIDTH * BDEPTH], xpreferred[BWIDTH * BDEPTH], npref;
- int x, y, i;
-
- if (turncount++ == 0)
- huntoffs = rnd(srchstep);
-
- /* first, list all possible moves */
- nposs = npref = 0;
- for (x = 0; x < BWIDTH; x++)
- for (y = 0; y < BDEPTH; y++)
- if (!hits[COMPUTER][x][y]) {
- xpossible[nposs] = x;
- ypossible[nposs] = y;
- nposs++;
- if (((x + huntoffs) % srchstep) != (y % srchstep)) {
- xpreferred[npref] = x;
- ypreferred[npref] = y;
- npref++;
- }
- }
-
- if (npref) {
- i = rnd(npref);
-
- *px = xpreferred[i];
- *py = ypreferred[i];
- } else if (nposs) {
- i = rnd(nposs);
-
- *px = xpossible[i];
- *py = ypossible[i];
-
- if (srchstep > 1)
- --srchstep;
- } else {
- error("No moves possible?? Help!");
- ExitProgram(EXIT_FAILURE);
- /*NOTREACHED */
- }
-}
-
-#define S_MISS 0
-#define S_HIT 1
-#define S_SUNK -1
-
-static int
-cpufire(int x, int y)
-/* fire away at given location */
-{
- bool hit, sunk;
- ship_t *ss = NULL;
-
- hits[COMPUTER][x][y] = (hit = (board[PLAYER][x][y])) ? MARK_HIT : MARK_MISS;
- (void) mvprintw(PROMPTLINE, 0,
- "I shoot at %c%d. I %s!", y + 'A', x, hit ? "hit" :
- "miss");
- if ((sunk = (hit && (ss = hitship(x, y)))) != 0)
- (void) printw(" I've sunk your %s", ss->name);
- (void) clrtoeol();
-
- pgoto(y, x);
-#ifdef A_COLOR
- if (has_colors()) {
- if (hit)
- attron(COLOR_PAIR(COLOR_RED));
- else
- attron(COLOR_PAIR(COLOR_GREEN));
- }
-#endif /* A_COLOR */
- (void) addch((chtype) (hit ? SHOWHIT : SHOWSPLASH));
-#ifdef A_COLOR
- attrset(0);
-#endif /* A_COLOR */
-
- return hit ? (sunk ? S_SUNK : S_HIT) : S_MISS;
-}
-
-/*
- * This code implements a fairly irregular FSM, so please forgive the rampant
- * unstructuredness below. The five labels are states which need to be held
- * between computer turns.
- *
- * The FSM is not externally reset to RANDOM_FIRE if the player wins. Instead,
- * the other states check for "impossible" conditions which signify a new
- * game, then if found transition to RANDOM_FIRE.
- */
-static bool
-cputurn(void)
-{
-#define POSSIBLE(x, y) (ONBOARD(x, y) && !hits[COMPUTER][x][y])
-#define RANDOM_FIRE 0
-#define RANDOM_HIT 1
-#define HUNT_DIRECT 2
-#define FIRST_PASS 3
-#define REVERSE_JUMP 4
-#define SECOND_PASS 5
- static int next = RANDOM_FIRE;
- static bool used[4];
- static ship_t ts;
- int navail, x, y, d, n;
- int hit = S_MISS;
-
- switch (next) {
- case RANDOM_FIRE: /* last shot was random and missed */
- refire:
- randomfire(&x, &y);
- if (!(hit = cpufire(x, y)))
- next = RANDOM_FIRE;
- else {
- ts.x = x;
- ts.y = y;
- ts.hits = 1;
- next = (hit == S_SUNK) ? RANDOM_FIRE : RANDOM_HIT;
- }
- break;
-
- case RANDOM_HIT: /* last shot was random and hit */
- used[E / 2] = used[S / 2] = used[W / 2] = used[N / 2] = FALSE;
- /* FALLTHROUGH */
-
- case HUNT_DIRECT: /* last shot hit, we're looking for ship's long axis */
- for (d = navail = 0; d < 4; d++) {
- x = ts.x + xincr[d * 2];
- y = ts.y + yincr[d * 2];
- if (!used[d] && POSSIBLE(x, y))
- navail++;
- else
- used[d] = TRUE;
- }
- if (navail == 0) /* no valid places for shots adjacent... */
- goto refire; /* ...so we must random-fire */
- else {
- n = rnd(navail) + 1;
- for (d = 0; used[d]; d++) ;
- /* used[d] is first that == 0 */
- for (; n > 1; n--)
- while (used[++d]) ;
- /* used[d] is next that == 0 */
-
- assert(d < 4);
- assert(used[d] == FALSE);
-
- used[d] = TRUE;
- x = ts.x + xincr[d * 2];
- y = ts.y + yincr[d * 2];
-
- assert(POSSIBLE(x, y));
-
- if (!(hit = cpufire(x, y)))
- next = HUNT_DIRECT;
- else {
- ts.x = x;
- ts.y = y;
- ts.dir = d * 2;
- ts.hits++;
- next = (hit == S_SUNK) ? RANDOM_FIRE : FIRST_PASS;
- }
- }
- break;
-
- case FIRST_PASS: /* we have a start and a direction now */
- x = ts.x + xincr[ts.dir];
- y = ts.y + yincr[ts.dir];
- if (POSSIBLE(x, y) && (hit = cpufire(x, y))) {
- ts.x = x;
- ts.y = y;
- ts.hits++;
- next = (hit == S_SUNK) ? RANDOM_FIRE : FIRST_PASS;
- } else
- next = REVERSE_JUMP;
- break;
-
- case REVERSE_JUMP: /* nail down the ship's other end */
- d = (ts.dir + 4) % 8;
- x = ts.x + ts.hits * xincr[d];
- y = ts.y + ts.hits * yincr[d];
- if (POSSIBLE(x, y) && (hit = cpufire(x, y))) {
- ts.x = x;
- ts.y = y;
- ts.dir = d;
- ts.hits++;
- next = (hit == S_SUNK) ? RANDOM_FIRE : SECOND_PASS;
- } else
- next = RANDOM_FIRE;
- break;
-
- case SECOND_PASS: /* continue shooting after reversing */
- x = ts.x + xincr[ts.dir];
- y = ts.y + yincr[ts.dir];
- if (POSSIBLE(x, y) && (hit = cpufire(x, y))) {
- ts.x = x;
- ts.y = y;
- ts.hits++;
- next = (hit == S_SUNK) ? RANDOM_FIRE : SECOND_PASS;
- break;
- } else
- next = RANDOM_FIRE;
- break;
- }
-
- /* pause between shots in salvo */
- if (salvo) {
- (void) refresh();
- (void) sleep(1);
- }
-#ifdef DEBUG
- (void) mvprintw(PROMPTLINE + 2, 0,
- "New state %d, x=%d, y=%d, d=%d",
- next, x, y, d);
-#endif /* DEBUG */
- return ((hit) ? TRUE : FALSE);
-}
-
-static int
-playagain(void)
-{
- int j;
- ship_t *ss;
-
- for (ss = cpuship; ss < cpuship + SHIPTYPES; ss++)
- for (j = 0; j < ss->length; j++) {
- cgoto(ss->y + j * yincr[ss->dir], ss->x + j * xincr[ss->dir]);
- (void) addch((chtype) ss->symbol);
- }
-
- if (awinna())
- ++cpuwon;
- else
- ++plywon;
- j = 18 + strlen(name);
- if (plywon >= 10)
- ++j;
- if (cpuwon >= 10)
- ++j;
- (void) mvprintw(1, (COLWIDTH - j) / 2,
- "%s: %d Computer: %d", name, plywon, cpuwon);
-
- prompt(2, (awinna())? "Want to be humiliated again, %s [yn]? "
- : "Going to give me a chance for revenge, %s [yn]? ", name);
- return (sgetc("YN") == 'Y');
-}
-
-static void
-do_options(int c, char *op[])
-{
- register int i;
-
- if (c > 1) {
- for (i = 1; i < c; i++) {
- switch (op[i][0]) {
- default:
- case '?':
- (void) fprintf(stderr, "Usage: battle [-s | -b] [-c]\n");
- (void) fprintf(stderr, "\tWhere the options are:\n");
- (void) fprintf(stderr, "\t-s : play a salvo game\n");
- (void) fprintf(stderr, "\t-b : play a blitz game\n");
- (void) fprintf(stderr, "\t-c : ships may be adjacent\n");
- ExitProgram(EXIT_FAILURE);
- break;
- case '-':
- switch (op[i][1]) {
- case 'b':
- blitz = 1;
- if (salvo == 1) {
- (void) fprintf(stderr,
- "Bad Arg: -b and -s are mutually exclusive\n");
- ExitProgram(EXIT_FAILURE);
- }
- break;
- case 's':
- salvo = 1;
- if (blitz == 1) {
- (void) fprintf(stderr,
- "Bad Arg: -s and -b are mutually exclusive\n");
- ExitProgram(EXIT_FAILURE);
- }
- break;
- case 'c':
- closepack = 1;
- break;
- default:
- (void) fprintf(stderr,
- "Bad arg: type \"%s ?\" for usage message\n",
- op[0]);
- ExitProgram(EXIT_FAILURE);
- }
- }
- }
- }
-}
-
-static int
-scount(int who)
-{
- register int i, shots;
- register ship_t *sp;
-
- if (who)
- sp = cpuship; /* count cpu shots */
- else
- sp = plyship; /* count player shots */
-
- for (i = 0, shots = 0; i < SHIPTYPES; i++, sp++) {
- if (sp->hits >= sp->length)
- continue; /* dead ship */
- else
- shots++;
- }
- return (shots);
-}
-
-int
-main(int argc, char *argv[])
-{
- setlocale(LC_ALL, "");
-
- do_options(argc, argv);
-
- intro();
- do {
- initgame();
- while (awinna() == -1) {
- if (!blitz) {
- if (!salvo) {
- if (turn)
- (void) cputurn();
- else
- (void) plyturn();
- } else {
- register int i;
-
- i = scount(turn);
- while (i--) {
- if (turn) {
- if (cputurn() && awinna() != -1)
- i = 0;
- } else {
- if (plyturn() && awinna() != -1)
- i = 0;
- }
- }
- }
- } else
- while ((turn ? cputurn() : plyturn()) && awinna() == -1)
- continue;
- turn = OTHER;
- }
- } while
- (playagain());
- uninitgame(0);
- /*NOTREACHED */
-}
-
-/* bs.c ends here */
diff --git a/test/bulgarian-utf8.txt b/test/bulgarian-utf8.txt
deleted file mode 100644
index 046c059..0000000
--- a/test/bulgarian-utf8.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Показване на помощна информация -- 1
-Създаване на дялове -- 2
-Избор на дял и форматиране -- 3
-Записване в избрания дял -- 4
-Инсталиране на LILO -- 5
-Изход от програмата -- 6
diff --git a/test/cardfile b/test/cardfile
deleted file mode 100755
index fed15b9..0000000
--- a/test/cardfile
+++ /dev/null
Binary files differ
diff --git a/test/cardfile.c b/test/cardfile.c
deleted file mode 100644
index 68ae4fe..0000000
--- a/test/cardfile.c
+++ /dev/null
@@ -1,623 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey
- *
- * $Id: cardfile.c,v 1.35 2008/08/05 00:42:24 tom Exp $
- *
- * File format: text beginning in column 1 is a title; other text is content.
- */
-
-#include <test.priv.h>
-
-#if USE_LIBFORM && USE_LIBPANEL
-
-#include <form.h>
-#include <panel.h>
-
-#define VISIBLE_CARDS 10
-#define OFFSET_CARD 2
-#define pair_1 1
-#define pair_2 2
-
-#define isVisible(cardp) ((cardp)->panel != 0)
-
-enum {
- MY_CTRL_x = MAX_FORM_COMMAND
- ,MY_CTRL_N
- ,MY_CTRL_P
- ,MY_CTRL_Q
- ,MY_CTRL_W
-};
-
-typedef struct _card {
- struct _card *link;
- PANEL *panel;
- FORM *form;
- char *title;
- char *content;
-} CARD;
-
-static CARD *all_cards;
-static bool try_color = FALSE;
-static char default_name[] = "cardfile.dat";
-
-#if !HAVE_STRDUP
-#define strdup my_strdup
-static char *
-strdup(const char *s)
-{
- char *p = typeMalloc(char, strlen(s) + 1);
- if (p)
- strcpy(p, s);
- return (p);
-}
-#endif /* not HAVE_STRDUP */
-
-static const char *
-skip(const char *buffer)
-{
- while (isspace(UChar(*buffer)))
- buffer++;
- return buffer;
-}
-
-static void
-trim(char *buffer)
-{
- unsigned n = strlen(buffer);
- while (n-- && isspace(UChar(buffer[n])))
- buffer[n] = 0;
-}
-
-/*******************************************************************************/
-
-static CARD *
-add_title(const char *title)
-{
- CARD *card, *p, *q;
-
- for (p = all_cards, q = 0; p != 0; q = p, p = p->link) {
- int cmp = strcmp(p->title, title);
- if (cmp == 0)
- return p;
- if (cmp > 0)
- break;
- }
-
- card = typeCalloc(CARD, 1);
- card->title = strdup(title);
- card->content = strdup("");
-
- if (q == 0) {
- card->link = all_cards;
- all_cards = card;
- } else {
- card->link = q->link;
- q->link = card;
- }
-
- return card;
-}
-
-static void
-add_content(CARD * card, const char *content)
-{
- unsigned total, offset;
-
- content = skip(content);
- if ((total = strlen(content)) != 0) {
- if (card->content != 0 && (offset = strlen(card->content)) != 0) {
- total += 1 + offset;
- card->content = typeRealloc(char, total + 1, card->content);
- if (card->content)
- strcpy(card->content + offset++, " ");
- } else {
- offset = 0;
- if (card->content != 0)
- free(card->content);
- card->content = typeMalloc(char, total + 1);
- }
- if (card->content)
- strcpy(card->content + offset, content);
- }
-}
-
-static CARD *
-new_card(void)
-{
- CARD *card = add_title("");
- add_content(card, "");
- return card;
-}
-
-static CARD *
-find_card(char *title)
-{
- CARD *card;
-
- for (card = all_cards; card != 0; card = card->link)
- if (!strcmp(card->title, title))
- break;
-
- return card;
-}
-
-static void
-read_data(char *fname)
-{
- FILE *fp;
- CARD *card = 0;
- char buffer[BUFSIZ];
-
- if ((fp = fopen(fname, "r")) != 0) {
- while (fgets(buffer, sizeof(buffer), fp)) {
- trim(buffer);
- if (isspace(UChar(*buffer))) {
- if (card == 0)
- card = add_title("");
- add_content(card, buffer);
- } else if ((card = find_card(buffer)) == 0) {
- card = add_title(buffer);
- }
- }
- fclose(fp);
- }
-}
-
-/*******************************************************************************/
-
-static void
-write_data(const char *fname)
-{
- FILE *fp;
- CARD *p = 0;
- int n;
-
- if (!strcmp(fname, default_name))
- fname = "cardfile.out";
-
- if ((fp = fopen(fname, "w")) != 0) {
- for (p = all_cards; p != 0; p = p->link) {
- FIELD **f = form_fields(p->form);
- for (n = 0; f[n] != 0; n++) {
- char *s = field_buffer(f[n], 0);
- if (s != 0
- && (s = strdup(s)) != 0) {
- trim(s);
- fprintf(fp, "%s%s\n", n ? "\t" : "", s);
- free(s);
- }
- }
- }
- fclose(fp);
- }
-}
-
-/*******************************************************************************/
-
-/*
- * Count the cards
- */
-static int
-count_cards(void)
-{
- CARD *p;
- int count = 0;
-
- for (p = all_cards; p != 0; p = p->link)
- count++;
-
- return count;
-}
-
-/*
- * Shuffle the panels to keep them in a natural hierarchy.
- */
-static void
-order_cards(CARD * first, int depth)
-{
- if (first) {
- if (depth && first->link)
- order_cards(first->link, depth - 1);
- if (isVisible(first))
- top_panel(first->panel);
- }
-}
-
-/*
- * Return the next card in the list
- */
-static CARD *
-next_card(CARD * now)
-{
- if (now->link != 0) {
- CARD *tst = now->link;
- if (isVisible(tst))
- now = tst;
- else
- tst = next_card(tst);
- }
- return now;
-}
-
-/*
- * Return the previous card in the list
- */
-static CARD *
-prev_card(CARD * now)
-{
- CARD *p;
- for (p = all_cards; p != 0; p = p->link) {
- if (p->link == now) {
- if (!isVisible(p))
- p = prev_card(p);
- return p;
- }
- }
- return now;
-}
-
-/*
- * Returns the first card in the list that we will display.
- */
-static CARD *
-first_card(CARD * now)
-{
- if (!isVisible(now))
- now = next_card(now);
- return now;
-}
-
-/*******************************************************************************/
-
-static int
-form_virtualize(WINDOW *w)
-{
- int c = wgetch(w);
-
- switch (c) {
- case CTRL('W'):
- return (MY_CTRL_W);
- case CTRL('N'):
- return (MY_CTRL_N);
- case CTRL('P'):
- return (MY_CTRL_P);
- case QUIT:
- case ESCAPE:
- return (MY_CTRL_Q);
-
- case KEY_BACKSPACE:
- return (REQ_DEL_PREV);
- case KEY_DC:
- return (REQ_DEL_CHAR);
- case KEY_LEFT:
- return (REQ_LEFT_CHAR);
- case KEY_RIGHT:
- return (REQ_RIGHT_CHAR);
-
- case KEY_DOWN:
- case KEY_NEXT:
- return (REQ_NEXT_FIELD);
- case KEY_UP:
- case KEY_PREVIOUS:
- return (REQ_PREV_FIELD);
-
- default:
- return (c);
- }
-}
-
-static FIELD **
-make_fields(CARD * p, int form_high, int form_wide)
-{
- FIELD **f = typeCalloc(FIELD *, 3);
-
- f[0] = new_field(1, form_wide, 0, 0, 0, 0);
- set_field_back(f[0], A_REVERSE);
- set_field_buffer(f[0], 0, p->title);
- field_opts_off(f[0], O_BLANK);
-
- f[1] = new_field(form_high - 1, form_wide, 1, 0, 0, 0);
- set_field_buffer(f[1], 0, p->content);
- set_field_just(f[1], JUSTIFY_LEFT);
- field_opts_off(f[1], O_BLANK);
-
- f[2] = 0;
- return f;
-}
-
-static void
-show_legend(void)
-{
- erase();
- move(LINES - 3, 0);
- addstr("^Q/ESC -- exit form ^W -- writes data to file\n");
- addstr("^N -- go to next card ^P -- go to previous card\n");
- addstr("Arrow keys move left/right within a field, up/down between fields");
-}
-
-#if (defined(KEY_RESIZE) && HAVE_WRESIZE) || NO_LEAKS
-static void
-free_form_fields(FIELD ** f)
-{
- int n;
-
- for (n = 0; f[n] != 0; ++n) {
- free_field(f[n]);
- }
- free(f);
-}
-#endif
-
-/*******************************************************************************/
-
-static void
-cardfile(char *fname)
-{
- WINDOW *win;
- CARD *p;
- CARD *top_card;
- int visible_cards;
- int panel_wide;
- int panel_high;
- int form_wide;
- int form_high;
- int y;
- int x;
- int ch = ERR;
- int finished = FALSE;
-
- show_legend();
-
- /* decide how many cards we can display */
- visible_cards = count_cards();
- while (
- (panel_wide = COLS - (visible_cards * OFFSET_CARD)) < 10 ||
- (panel_high = LINES - (visible_cards * OFFSET_CARD) - 5) < 5) {
- --visible_cards;
- }
- form_wide = panel_wide - 2;
- form_high = panel_high - 2;
- y = (visible_cards - 1) * OFFSET_CARD;
- x = 0;
-
- /* make a panel for each CARD */
- for (p = all_cards; p != 0; p = p->link) {
-
- if ((win = newwin(panel_high, panel_wide, y, x)) == 0)
- break;
-
- wbkgd(win, COLOR_PAIR(pair_2));
- keypad(win, TRUE);
- p->panel = new_panel(win);
- box(win, 0, 0);
-
- p->form = new_form(make_fields(p, form_high, form_wide));
- set_form_win(p->form, win);
- set_form_sub(p->form, derwin(win, form_high, form_wide, 1, 1));
- post_form(p->form);
-
- y -= OFFSET_CARD;
- x += OFFSET_CARD;
- }
-
- top_card = first_card(all_cards);
- order_cards(top_card, visible_cards);
-
- while (!finished) {
- update_panels();
- doupdate();
-
- ch = form_virtualize(panel_window(top_card->panel));
- switch (form_driver(top_card->form, ch)) {
- case E_OK:
- break;
- case E_UNKNOWN_COMMAND:
- switch (ch) {
- case MY_CTRL_Q:
- finished = TRUE;
- break;
- case MY_CTRL_P:
- top_card = prev_card(top_card);
- order_cards(top_card, visible_cards);
- break;
- case MY_CTRL_N:
- top_card = next_card(top_card);
- order_cards(top_card, visible_cards);
- break;
- case MY_CTRL_W:
- form_driver(top_card->form, REQ_VALIDATION);
- write_data(fname);
- break;
-#if defined(KEY_RESIZE) && HAVE_WRESIZE
- case KEY_RESIZE:
- /* resizeterm already did "something" reasonable, but it cannot
- * know much about layout. So let's make it nicer.
- */
- panel_wide = COLS - (visible_cards * OFFSET_CARD);
- panel_high = LINES - (visible_cards * OFFSET_CARD) - 5;
-
- form_wide = panel_wide - 2;
- form_high = panel_high - 2;
-
- y = (visible_cards - 1) * OFFSET_CARD;
- x = 0;
-
- show_legend();
- for (p = all_cards; p != 0; p = p->link) {
- FIELD **oldf = form_fields(p->form);
- WINDOW *olds = form_sub(p->form);
-
- if (!isVisible(p))
- continue;
- win = form_win(p->form);
-
- /* move and resize the card as needed
- * FIXME: if the windows are shrunk too much, this won't do
- */
- mvwin(win, y, x);
- wresize(win, panel_high, panel_wide);
-
- /* reconstruct each form. Forms are not resizable, and
- * there appears to be no good way to reload the text in
- * a resized window.
- */
- werase(win);
-
- unpost_form(p->form);
- free_form(p->form);
-
- p->form = new_form(make_fields(p, form_high, form_wide));
- set_form_win(p->form, win);
- set_form_sub(p->form, derwin(win, form_high, form_wide,
- 1, 1));
- post_form(p->form);
-
- free_form_fields(oldf);
- delwin(olds);
-
- box(win, 0, 0);
-
- y -= OFFSET_CARD;
- x += OFFSET_CARD;
- }
- break;
-#endif
- default:
- beep();
- break;
- }
- break;
- default:
- flash();
- break;
- }
- }
-#if NO_LEAKS
- while (all_cards != 0) {
- FIELD **f;
- int count;
-
- p = all_cards;
- all_cards = all_cards->link;
-
- if (isVisible(p)) {
- f = form_fields(p->form);
- count = field_count(p->form);
-
- unpost_form(p->form); /* ...so we can free it */
- free_form(p->form); /* this also disconnects the fields */
-
- free_form_fields(f);
-
- del_panel(p->panel);
- }
- free(p->title);
- free(p->content);
- free(p);
- }
-#endif
-}
-
-static void
-usage(void)
-{
- static const char *msg[] =
- {
- "Usage: view [options] file"
- ,""
- ,"Options:"
- ," -c use color if terminal supports it"
- };
- size_t n;
- for (n = 0; n < SIZEOF(msg); n++)
- fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
-}
-
-/*******************************************************************************/
-
-int
-main(int argc, char *argv[])
-{
- int n;
-
- setlocale(LC_ALL, "");
-
- while ((n = getopt(argc, argv, "c")) != -1) {
- switch (n) {
- case 'c':
- try_color = TRUE;
- break;
- default:
- usage();
- }
- }
-
- initscr();
- cbreak();
- noecho();
-
- if (try_color) {
- if (has_colors()) {
- start_color();
- init_pair(pair_1, COLOR_WHITE, COLOR_BLUE);
- init_pair(pair_2, COLOR_WHITE, COLOR_CYAN);
- bkgd(COLOR_PAIR(pair_1));
- } else {
- try_color = FALSE;
- }
- }
-
- if (optind + 1 == argc) {
- for (n = 1; n < argc; n++)
- read_data(argv[n]);
- if (count_cards() == 0)
- new_card();
- cardfile(argv[1]);
- } else {
- read_data(default_name);
- if (count_cards() == 0)
- new_card();
- cardfile(default_name);
- }
-
- endwin();
-
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the curses form and panel libraries\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/cardfile.dat b/test/cardfile.dat
deleted file mode 100644
index deb4b76..0000000
--- a/test/cardfile.dat
+++ /dev/null
@@ -1,13 +0,0 @@
-title 1
- Some text for title1
- and some more text
-title 2
- The quicker brown fox ran all over the lazy dog.
-put a card before the first two
- This is an example of a simple cardfile.
-show a fourth card
- The fourth card
- has a large amount of data,
- more than the other cards.
- At least, that is what I thought it should do, since I want to see how well
- the forms package handles justification.
diff --git a/test/chgat b/test/chgat
deleted file mode 100755
index 766fb67..0000000
--- a/test/chgat
+++ /dev/null
Binary files differ
diff --git a/test/chgat.c b/test/chgat.c
deleted file mode 100644
index ee51297..0000000
--- a/test/chgat.c
+++ /dev/null
@@ -1,368 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2006-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: chgat.c,v 1.8 2008/02/09 23:19:13 tom Exp $
- *
- * test-driver for chgat/wchgat/mvchgat/mvwchgat
- */
-
-#include <test.priv.h>
-
-#if HAVE_CHGAT
-
-#define SHOW(n) ((n) == ERR ? "ERR" : "OK")
-#define COLOR_DEFAULT (-1)
-
-#if defined(NCURSES_VERSION_PATCH) && NCURSES_VERSION_PATCH < 20060715
-#define touch_if_needed(win, row) touchline(win, row, 1)
-#else
-#define touch_if_needed(win, row) /* nothing */
-#endif
-
-typedef struct {
- unsigned c;
- unsigned v;
- int pair;
- unsigned attr;
- int count;
- int ch;
- const char *c_msg;
- const char *v_msg;
- int y_val;
- int x_val;
- int y_beg, x_beg;
- int y_max, x_max;
-} STATUS;
-
-static const char *
-color_params(unsigned state, int *pair)
-{
- /* *INDENT-OFF* */
- static struct {
- int pair;
- int fg, bg;
- const char *msg;
- } table[] = {
- { 0, COLOR_DEFAULT, COLOR_DEFAULT, "default" },
- { 1, COLOR_RED, COLOR_BLACK, "red/black" },
- { 2, COLOR_WHITE, COLOR_BLUE, "white/blue" },
- };
- /* *INDENT-ON* */
-
- static bool first = TRUE;
- const char *result = 0;
-
- if (has_colors()) {
- if (first) {
- unsigned n;
-
- start_color();
- for (n = 0; n < SIZEOF(table); ++n) {
- init_pair(table[n].pair, table[n].fg, table[n].bg);
- }
- }
- if (state < SIZEOF(table)) {
- *pair = table[state].pair;
- result = table[state].msg;
- }
- }
- return result;
-}
-
-static const char *
-video_params(unsigned state, unsigned *attr)
-{
- /* *INDENT-OFF* */
- static struct {
- unsigned attr;
- const char *msg;
- } table[] = {
- { A_NORMAL, "normal" },
- { A_BOLD, "bold" },
- { A_REVERSE, "reverse" },
- { A_UNDERLINE, "underline" },
- { A_BLINK, "blink" },
- };
- /* *INDENT-ON* */
-
- const char *result = 0;
-
- if (state < SIZEOF(table)) {
- *attr = table[state].attr;
- result = table[state].msg;
- }
- return result;
-}
-
-/* fill the window with a test-pattern */
-static void
-fill_window(WINDOW *win)
-{
- int y, x;
-
- getyx(win, y, x);
- wmove(win, 0, 0);
- while (waddstr(win, "0123456789 abcdefghijklmnopqrstuvwxyz ") != ERR) {
- }
- wmove(win, y, x);
-}
-
-static void
-show_status(WINDOW *win, STATUS * sp)
-{
- int y, x;
-
- getyx(win, y, x);
- wmove(win, 0, 0);
- wprintw(win, "Count %d", sp->count);
- if (sp->v_msg != 0)
- wprintw(win, " Video %s", sp->v_msg);
- if (sp->c_msg != 0)
- wprintw(win, " Color %s", sp->c_msg);
- wclrtoeol(win);
- wmove(win, y, x);
-}
-
-static void
-do_subwindow(WINDOW *win, STATUS * sp, void func(WINDOW *))
-{
- WINDOW *win1 = newwin(sp->y_max - 2, sp->x_max - 2,
- sp->y_beg + 1, sp->x_beg + 1);
-
- if (win1 != 0 && sp->y_max > 4 && sp->x_max > 4) {
- WINDOW *win2 = derwin(win1, sp->y_max - 4, sp->x_max - 4, 1, 1);
-
- if (win2 != 0) {
- box(win1, 0, 0);
- wrefresh(win1);
- func(win2);
-
- delwin(win2);
- } else {
- beep();
- }
- delwin(win1);
- touchwin(win);
- } else {
- beep();
- }
-}
-
-static void
-init_status(WINDOW *win, STATUS * sp)
-{
- memset(sp, 0, sizeof(*sp));
- sp->c = 99;
- sp->v = 99;
- sp->ch = ' ';
-
- keypad(win, TRUE);
- fill_window(win);
-
- getbegyx(win, sp->y_beg, sp->x_beg);
- getmaxyx(win, sp->y_max, sp->x_max);
-}
-
-static void
-show_help(WINDOW *win)
-{
- static const char *table[] =
- {
- "Basic commands:"
- ,"Use h/j/k/l or arrow keys to move the cursor."
- ,"Set the count parameter for chgat by entering digits 0-9."
- ,""
- ,"Other commands:"
- ,"space toggles through the set of video attributes and colors."
- ,"t touches (forces repaint) of the current line."
- ,". calls *chgat at the current position with the given count."
- ,", calls *chgat at the window beginning with the given count."
- ,"= resets count to zero."
- ,"- negates count."
- ,"? shows this help-window"
- ,""
- ,""
- };
-
- int y_max, x_max;
- int row;
-
- getmaxyx(win, y_max, x_max);
- for (row = 0; row < (int) SIZEOF(table) && row < y_max; ++row) {
- mvwprintw(win, row, 0, "%.*s", x_max, table[row]);
- }
- while (wgetch(win) != 'q')
- beep();
-}
-
-static void
-update_status(WINDOW *win, STATUS * sp)
-{
- switch (sp->ch) {
- case ' ': /* next test-iteration */
- if (has_colors()) {
- if ((sp->c_msg = color_params(++(sp->c), &(sp->pair))) == 0) {
- sp->c_msg = color_params(sp->c = 0, &(sp->pair));
- if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == 0) {
- sp->v_msg = video_params(sp->v = 0, &(sp->attr));
- }
- }
- } else {
- if ((sp->v_msg = video_params(++(sp->v), &(sp->attr))) == 0) {
- sp->v_msg = video_params(sp->v = 0, &(sp->attr));
- }
- }
- sp->count = 0;
- show_status(win, sp);
- break;
- case KEY_LEFT:
- case 'h':
- if (sp->x_val > 0)
- wmove(win, sp->y_val, --(sp->x_val));
- break;
- case KEY_DOWN:
- case 'j':
- if (sp->y_val < sp->y_max)
- wmove(win, ++(sp->y_val), sp->x_val);
- break;
- case KEY_UP:
- case 'k':
- if (sp->y_val > 0)
- wmove(win, --(sp->y_val), sp->x_val);
- break;
- case KEY_RIGHT:
- case 'l':
- if (sp->x_val < sp->x_max)
- wmove(win, sp->y_val, ++(sp->x_val));
- break;
- case 't':
- touchline(win, sp->y_val, 1);
- break;
- case '=':
- sp->count = 0;
- show_status(win, sp);
- break;
- case '-':
- sp->count = -(sp->count);
- show_status(win, sp);
- break;
- case '?':
- do_subwindow(win, sp, show_help);
- break;
- default:
- if (isdigit(sp->ch)) {
- sp->count = (sp->count * 10) + (sp->ch - '0');
- show_status(win, sp);
- } else {
- beep();
- }
- break;
- }
-}
-
-static void
-test_wchgat(WINDOW *win)
-{
- STATUS st;
-
- init_status(win, &st);
-
- do {
- switch (st.ch) {
- case '.': /* change from current position */
- wchgat(win, st.count, st.attr, st.pair, (void *) 0);
- touch_if_needed(win, st.y_val);
- break;
- case ',': /* change from beginning of window */
- mvwchgat(win, 0, 0, st.count, st.attr, st.pair, (void *) 0);
- touch_if_needed(win, 0);
- wmove(win, st.y_val, st.x_val);
- break;
- case 'w':
- do_subwindow(win, &st, test_wchgat);
- break;
- case 'q':
- return;
- default:
- update_status(win, &st);
- break;
- }
- } while ((st.ch = wgetch(win)) != ERR);
-}
-
-static void
-test_chgat(void)
-{
- STATUS st;
-
- init_status(stdscr, &st);
-
- do {
- switch (st.ch) {
- case '.': /* change from current position */
- chgat(st.count, st.attr, st.pair, (void *) 0);
- touch_if_needed(stdscr, st.y_val);
- break;
- case ',': /* change from beginning of window */
- mvchgat(0, 0, st.count, st.attr, st.pair, (void *) 0);
- touch_if_needed(stdscr, 0);
- move(st.y_val, st.x_val);
- break;
- case 'w':
- do_subwindow(stdscr, &st, test_wchgat);
- break;
- case 'q':
- return;
- default:
- update_status(stdscr, &st);
- break;
- }
- } while ((st.ch = getch()) != ERR);
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- initscr();
- cbreak();
- noecho();
-
- test_chgat();
- endwin();
-
- ExitProgram(EXIT_SUCCESS);
-}
-
-#else
-int
-main(void)
-{
- printf("This program requires the curses chgat function\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/color_set b/test/color_set
deleted file mode 100755
index 10c1be6..0000000
--- a/test/color_set
+++ /dev/null
Binary files differ
diff --git a/test/color_set.c b/test/color_set.c
deleted file mode 100644
index 2e981cb..0000000
--- a/test/color_set.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2003-2006,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: color_set.c,v 1.6 2008/02/10 00:18:01 tom Exp $
- */
-
-#include <test.priv.h>
-
-#if HAVE_COLOR_SET
-
-#define SHOW(n) ((n) == ERR ? "ERR" : "OK")
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- short f, b;
- int i;
-
- initscr();
- cbreak();
- noecho();
-
- if (has_colors()) {
- start_color();
-
- pair_content(0, &f, &b);
- printw("pair 0 contains (%d,%d)\n", f, b);
- getch();
-
- printw("Initializing pair 1 to red/black\n");
- init_pair(1, COLOR_RED, COLOR_BLACK);
- i = color_set(1, NULL);
- printw("RED/BLACK (%s)\n", SHOW(i));
- getch();
-
- printw("Initializing pair 2 to white/blue\n");
- init_pair(2, COLOR_WHITE, COLOR_BLUE);
- i = color_set(2, NULL);
- printw("WHITE/BLUE (%s)\n", SHOW(i));
- getch();
-
- printw("Resetting colors to pair 0\n");
- i = color_set(0, NULL);
- printw("Default Colors (%s)\n", SHOW(i));
- getch();
-
- printw("Resetting colors to pair 1\n");
- i = color_set(1, NULL);
- printw("RED/BLACK (%s)\n", SHOW(i));
- getch();
-
- } else {
- printw("This demo requires a color terminal");
- getch();
- }
- endwin();
-
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the curses color_set function\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/configure b/test/configure
deleted file mode 100755
index 564fc5c..0000000
--- a/test/configure
+++ /dev/null
@@ -1,8140 +0,0 @@
-#! /bin/sh
-
-# Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13.20030927
-# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-
-# Defaults:
-ac_help=
-ac_default_prefix=/usr/local
-# Any additions from configure.in:
-
-# Initialize some variables set by options.
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-build=NONE
-cache_file=./config.cache
-exec_prefix=NONE
-host=NONE
-no_create=
-nonopt=NONE
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-target=NONE
-verbose=
-x_includes=NONE
-x_libraries=NONE
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-# Initialize some other variables.
-subdirs=
-MFLAGS= MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-# Maximum number of lines to put in a shell here document.
-ac_max_here_lines=12
-
-ac_prev=
-for ac_option
-do
-
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
- ac_prev=
- continue
- fi
-
- case "$ac_option" in
- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
- *) ac_optarg= ;;
- esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
- case "$ac_option" in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
- bindir="$ac_optarg" ;;
-
- -build | --build | --buil | --bui | --bu)
- ac_prev=build ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
- build="$ac_optarg" ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
- cache_file="$ac_optarg" ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
- datadir="$ac_optarg" ;;
-
- -disable-* | --disable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- eval "enable_${ac_feature}=no" ;;
-
- -enable-* | --enable-*)
- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
- fi
- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "enable_${ac_feature}='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
- | --exec | --exe | --ex)
- ac_prev=exec_prefix ;;
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
- exec_prefix="$ac_optarg" ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
- -help | --help | --hel | --he)
- # Omit some internal or obsolete options to make the list less imposing.
- # This message is too long to be a string in the A/UX 3.1 sh.
- cat << EOF
-Usage: configure [options] [host]
-Options: [defaults in brackets after descriptions]
-Configuration:
- --cache-file=FILE cache test results in FILE
- --help print this message
- --no-create do not create output files
- --quiet, --silent do not print \`checking...' messages
- --version print the version of autoconf that created configure
-Directory and file names:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
- [same as prefix]
- --bindir=DIR user executables in DIR [EPREFIX/bin]
- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
- --datadir=DIR read-only architecture-independent data in DIR
- [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data in DIR
- [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
- --includedir=DIR C header files in DIR [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
- --infodir=DIR info documentation in DIR [PREFIX/info]
- --mandir=DIR man documentation in DIR [PREFIX/man]
- --srcdir=DIR find the sources in DIR [configure dir or ..]
- --program-prefix=PREFIX prepend PREFIX to installed program names
- --program-suffix=SUFFIX append SUFFIX to installed program names
- --program-transform-name=PROGRAM
- run sed PROGRAM on installed program names
-EOF
- cat << EOF
-Host type:
- --build=BUILD configure for building on BUILD [BUILD=HOST]
- --host=HOST configure for HOST [guessed]
- --target=TARGET configure for TARGET [TARGET=HOST]
-Features and packages:
- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
- --x-includes=DIR X include files are in DIR
- --x-libraries=DIR X library files are in DIR
-EOF
-cat <<\EOF
---enable and --with options recognized:
- --disable-echo display "compiling" commands
- --enable-warnings test: turn on gcc compiler warnings
- --with-curses-dir=DIR directory in which (n)curses is installed
- --with-5lib use SunOS sysv-libraries
- --with-ncursesw use wide ncurses-libraries (installed)
- --with-ncurses use ncurses-libraries (installed)
- --with-pdcurses compile/link with pdcurses X11 library
- --with-x use the X Window System
- --with-Xaw3d link with Xaw 3d library
- --with-neXtaw link with neXT Athena library
- --with-XawPlus link with Athena-Plus library
-EOF
- exit 0 ;;
-
- -host | --host | --hos | --ho)
- ac_prev=host ;;
- -host=* | --host=* | --hos=* | --ho=*)
- host="$ac_optarg" ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
- includedir="$ac_optarg" ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
- infodir="$ac_optarg" ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
- libdir="$ac_optarg" ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
- libexecdir="$ac_optarg" ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
- | --locals | --local | --loca | --loc | --lo)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
- localstatedir="$ac_optarg" ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
- mandir="$ac_optarg" ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
- no_recursion=yes ;;
-
- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
- | --oldin | --oldi | --old | --ol | --o)
- ac_prev=oldincludedir ;;
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
- oldincludedir="$ac_optarg" ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
- prefix="$ac_optarg" ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
- program_prefix="$ac_optarg" ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
- program_suffix="$ac_optarg" ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
- | --program-transform-n | --program-transform- \
- | --program-transform | --program-transfor \
- | --program-transfo | --program-transf \
- | --program-trans | --program-tran \
- | --progr-tra | --program-tr | --program-t)
- ac_prev=program_transform_name ;;
- -program-transform-name=* | --program-transform-name=* \
- | --program-transform-nam=* | --program-transform-na=* \
- | --program-transform-n=* | --program-transform-=* \
- | --program-transform=* | --program-transfor=* \
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name="$ac_optarg" ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-
- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
- sbindir="$ac_optarg" ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
- | --sharedst | --shareds | --shared | --share | --shar \
- | --sha | --sh)
- ac_prev=sharedstatedir ;;
- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
- sharedstatedir="$ac_optarg" ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
- site="$ac_optarg" ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
- srcdir="$ac_optarg" ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
- sysconfdir="$ac_optarg" ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
- ac_prev=target ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
- target="$ac_optarg" ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
- -version | --version | --versio | --versi | --vers)
- echo "configure generated by autoconf version 2.13.20030927"
- exit 0 ;;
-
- -with-* | --with-*)
- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- case "$ac_option" in
- *=*) ;;
- *) ac_optarg=yes ;;
- esac
- eval "with_${ac_package}='$ac_optarg'" ;;
-
- -without-* | --without-*)
- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
- # Reject names that are not valid shell variable names.
- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
- fi
- ac_package=`echo $ac_package| sed 's/-/_/g'`
- eval "with_${ac_package}=no" ;;
-
- --x)
- # Obsolete; use --with-x.
- with_x=yes ;;
-
- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
- | --x-incl | --x-inc | --x-in | --x-i)
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
- x_includes="$ac_optarg" ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
- x_libraries="$ac_optarg" ;;
-
- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
- ;;
-
- *)
- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
- echo "configure: warning: $ac_option: invalid host type" 1>&2
- fi
- if test "x$nonopt" != xNONE; then
- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
- fi
- nonopt="$ac_option"
- ;;
-
- esac
-done
-
-if test -n "$ac_prev"; then
- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
-fi
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-# File descriptor usage:
-# 0 standard input
-# 1 file creation
-# 2 errors and warnings
-# 3 some systems may open it to /dev/tty
-# 4 used on the Kubota Titan
-# 6 checking for... messages and results
-# 5 compiler messages saved in config.log
-if test "$silent" = yes; then
- exec 6>/dev/null
-else
- exec 6>&1
-fi
-exec 5>./config.log
-
-echo "\
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-" 1>&5
-
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Also quote any args containing shell metacharacters.
-ac_configure_args=
-for ac_arg
-do
- case "$ac_arg" in
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
- | --no-cr | --no-c) ;;
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
- esac
-done
-
-# NLS nuisances.
-# Only set these to C if already set. These must not be set unconditionally
-# because not all systems understand e.g. LANG=C (notably SCO).
-# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
-# Non-C LC_CTYPE values break the ctype check.
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo > confdefs.h
-
-# A filename unique to this package, relative to the directory that
-# configure is in, which we can look for to find out if srcdir is correct.
-ac_unique_file=ncurses.c
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
- ac_prog=$0
- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
- fi
-else
- ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
- else
- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
- fi
-fi
-srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
- else
- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
- fi
-fi
-for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
- echo "loading site script $ac_site_file"
- . "$ac_site_file"
- fi
-done
-
-if test -r "$cache_file"; then
- echo "loading cache $cache_file"
- . $cache_file
-else
- echo "creating cache $cache_file"
- > $cache_file
-fi
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-ac_exeext=
-ac_objext=o
-if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
- ac_n= ac_c='
-' ac_t=' '
- else
- ac_n=-n ac_c= ac_t=
- fi
-else
- ac_n= ac_c='\c' ac_t=
-fi
-
-# If we find X, set shell vars x_includes and x_libraries to the
-# paths, otherwise set no_x=yes.
-# Uses ac_ vars as temps to allow command line to override cache and checks.
-# --without-x overrides everything else, but does not touch the cache.
-echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:540: checking for X" >&5
-
-
-# Check whether --with-x or --without-x was given.
-if test "${with_x+set}" = set; then
- withval="$with_x"
- :
-fi
-
-# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
-if test "x$with_x" = xno; then
- # The user explicitly disabled X.
- have_x=disabled
-else
- if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
- # Both variables are already set.
- have_x=yes
- else
-if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # One or both of the vars are not set, and there is no cached value.
-ac_x_includes=NO ac_x_libraries=NO
-rm -fr conftestdir
-if mkdir conftestdir; then
- cd conftestdir
- # Make sure to not put "make" in the Imakefile rules, since we grep it out.
- cat > Imakefile <<'EOF'
-acfindx:
- @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
-EOF
- if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
- # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
- eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
- # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
- for ac_extension in a so sl; do
- if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
- test -f $ac_im_libdir/libX11.$ac_extension; then
- ac_im_usrlibdir=$ac_im_libdir; break
- fi
- done
- # Screen out bogus values from the imake configuration. They are
- # bogus both because they are the default anyway, and because
- # using them would break gcc on systems where it needs fixed includes.
- case "$ac_im_incroot" in
- /usr/include) ;;
- *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;;
- esac
- case "$ac_im_usrlibdir" in
- /usr/lib | /lib) ;;
- *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;;
- esac
- fi
- cd ..
- rm -fr conftestdir
-fi
-
-if test "$ac_x_includes" = NO; then
- # Guess where to find include files, by looking for this one X11 .h file.
- test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
-
- # First, try using that file with no special directory specified.
-cat > conftest.$ac_ext <<EOF
-#line 603 "configure"
-#include "confdefs.h"
-#include <$x_direct_test_include>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:608: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- # We can compile using X headers with no special include directory.
-ac_x_includes=
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- # Look for the header file in a standard set of common directories.
-# Check X11 before X11Rn because it is often a symlink to the current release.
- for ac_dir in \
- /usr/X11/include \
- /usr/X11R6/include \
- /usr/X11R5/include \
- /usr/X11R4/include \
- \
- /usr/include/X11 \
- /usr/include/X11R6 \
- /usr/include/X11R5 \
- /usr/include/X11R4 \
- \
- /usr/local/X11/include \
- /usr/local/X11R6/include \
- /usr/local/X11R5/include \
- /usr/local/X11R4/include \
- \
- /usr/local/include/X11 \
- /usr/local/include/X11R6 \
- /usr/local/include/X11R5 \
- /usr/local/include/X11R4 \
- \
- /usr/X386/include \
- /usr/x386/include \
- /usr/XFree86/include/X11 \
- \
- /usr/include \
- /usr/local/include \
- /usr/unsupported/include \
- /usr/athena/include \
- /usr/local/x11r5/include \
- /usr/lpp/Xamples/include \
- \
- /usr/openwin/include \
- /usr/openwin/share/include \
- ; \
- do
- if test -r "$ac_dir/$x_direct_test_include"; then
- ac_x_includes=$ac_dir
- break
- fi
- done
-fi
-rm -f conftest*
-fi # $ac_x_includes = NO
-
-if test "$ac_x_libraries" = NO; then
- # Check for the libraries.
-
- test -z "$x_direct_test_library" && x_direct_test_library=Xt
- test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
-
- # See if we find them without any special options.
- # Don't add to $LIBS permanently.
- ac_save_LIBS="$LIBS"
- LIBS="-l$x_direct_test_library $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 677 "configure"
-#include "confdefs.h"
-
-int main() {
-${x_direct_test_function}()
-; return 0; }
-EOF
-if { (eval echo configure:684: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- LIBS="$ac_save_LIBS"
-# We can link X programs with no special library path.
-ac_x_libraries=
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- LIBS="$ac_save_LIBS"
-# First see if replacing the include by lib works.
-# Check X11 before X11Rn because it is often a symlink to the current release.
-for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \
- /usr/X11/lib \
- /usr/X11R6/lib \
- /usr/X11R5/lib \
- /usr/X11R4/lib \
- \
- /usr/lib/X11 \
- /usr/lib/X11R6 \
- /usr/lib/X11R5 \
- /usr/lib/X11R4 \
- \
- /usr/local/X11/lib \
- /usr/local/X11R6/lib \
- /usr/local/X11R5/lib \
- /usr/local/X11R4/lib \
- \
- /usr/local/lib/X11 \
- /usr/local/lib/X11R6 \
- /usr/local/lib/X11R5 \
- /usr/local/lib/X11R4 \
- \
- /usr/X386/lib \
- /usr/x386/lib \
- /usr/XFree86/lib/X11 \
- \
- /usr/lib \
- /usr/local/lib \
- /usr/unsupported/lib \
- /usr/athena/lib \
- /usr/local/x11r5/lib \
- /usr/lpp/Xamples/lib \
- /lib/usr/lib/X11 \
- \
- /usr/openwin/lib \
- /usr/openwin/share/lib \
- ; \
-do
- for ac_extension in a so sl; do
- if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
- ac_x_libraries=$ac_dir
- break 2
- fi
- done
-done
-fi
-rm -f conftest*
-fi # $ac_x_libraries = NO
-
-if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then
- # Didn't find X anywhere. Cache the known absence of X.
- ac_cv_have_x="have_x=no"
-else
- # Record where we found X for the cache.
- ac_cv_have_x="have_x=yes \
- ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
-fi
-fi
- fi
- eval "$ac_cv_have_x"
-fi # $with_x != no
-
-if test "$have_x" != yes; then
- echo "$ac_t""$have_x" 1>&6
- no_x=yes
-else
- # If each of the values was on the command line, it overrides each guess.
- test "x$x_includes" = xNONE && x_includes=$ac_x_includes
- test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
- # Update the cache value to reflect the command line values.
- ac_cv_have_x="have_x=yes \
- ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
- echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6
-fi
-
-
-
-
-
-test -f config.guess || ( test -f ../config.guess && cp ../config.guess ./ )
-
-
-test -f config.sub || ( test -f ../config.sub && cp ../config.sub ./ )
-
-ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
- if test -f $ac_dir/install-sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
- elif test -f $ac_dir/install.sh; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
- fi
-done
-if test -z "$ac_aux_dir"; then
- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
-fi
-ac_config_guess=$ac_aux_dir/config.guess
-ac_config_sub=$ac_aux_dir/config.sub
-ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-
-
-if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
-
-# Make sure we can run config.sub.
-if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
-else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:807: checking host system type" >&5
-
-host_alias=$host
-case "$host_alias" in
-NONE)
- case $nonopt in
- NONE)
- if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
- fi ;;
- *) host_alias=$nonopt ;;
- esac ;;
-esac
-
-host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
-host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$host" 1>&6
-
- system_name="$host_os"
-else
- system_name="`(uname -s -r) 2>/dev/null`"
- if test -z "$system_name" ; then
- system_name="`(hostname) 2>/dev/null`"
- fi
-fi
-test -n "$system_name" && cat >> confdefs.h <<EOF
-#define SYSTEM_NAME "$system_name"
-EOF
-
-if eval "test \"`echo '$''{'cf_cv_system_name'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cf_cv_system_name="$system_name"
-fi
-
-
-test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && echo "$ac_t""Configuring for $cf_cv_system_name" 1>&6
-
-if test ".$system_name" != ".$cf_cv_system_name" ; then
- echo "$ac_t""Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" 1>&6
- { echo "configure: error: "Please remove config.cache and try again."" 1>&2; exit 1; }
-fi
-
-
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:855: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftestmake <<\EOF
-all:
- @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
- eval ac_cv_prog_make_${ac_make}_set=yes
-else
- eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
-fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- SET_MAKE=
-else
- echo "$ac_t""no" 1>&6
- SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-# Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:884: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="gcc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:914: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_prog_rejected=no
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
- fi
- ac_cv_prog_CC="cc"
- break
- fi
- done
- IFS="$ac_save_ifs"
-if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
- if test $# -gt 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
- set dummy "$ac_dir/$ac_word" "$@"
- shift
- ac_cv_prog_CC="$@"
- fi
-fi
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test -z "$CC"; then
- case "`uname -s`" in
- *win32* | *WIN32*)
- # Extract the first word of "cl", so it can be a program name with args.
-set dummy cl; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:965: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CC="cl"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CC="$ac_cv_prog_CC"
-if test -n "$CC"; then
- echo "$ac_t""$CC" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
- ;;
- esac
- fi
- test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:997: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-cat > conftest.$ac_ext << EOF
-
-#line 1008 "configure"
-#include "confdefs.h"
-
-main(){return(0);}
-EOF
-if { (eval echo configure:1013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- ac_cv_prog_cc_works=yes
- # If we can't run a trivial program, we are probably using a cross compiler.
- if (./conftest; exit) 2>/dev/null; then
- ac_cv_prog_cc_cross=no
- else
- ac_cv_prog_cc_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cc_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
-if test $ac_cv_prog_cc_works = no; then
- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1039: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1044: checking whether we are using GNU C" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.c <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1053: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gcc=yes
-else
- ac_cv_prog_gcc=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-else
- GCC=
-fi
-
-ac_test_CFLAGS="${CFLAGS+set}"
-ac_save_CFLAGS="$CFLAGS"
-CFLAGS=
-echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1072: checking whether ${CC-cc} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.c
-if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
- ac_cv_prog_cc_g=yes
-else
- ac_cv_prog_cc_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
-elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-g"
- fi
-else
- if test "$GCC" = yes; then
- CFLAGS="-O2"
- else
- CFLAGS=
- fi
-fi
-
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1104: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- # This must be in double quotes, not single quotes, because CPP may get
- # substituted into the Makefile and "${CC-cc}" will confuse make.
- CPP="${CC-cc} -E"
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp.
- cat > conftest.$ac_ext <<EOF
-#line 1119 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1125: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -E -traditional-cpp"
- cat > conftest.$ac_ext <<EOF
-#line 1136 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1142: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP="${CC-cc} -nologo -E"
- cat > conftest.$ac_ext <<EOF
-#line 1153 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1159: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CPP=/lib/cpp
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-rm -f conftest*
- ac_cv_prog_CPP="$CPP"
-fi
- CPP="$ac_cv_prog_CPP"
-else
- ac_cv_prog_CPP="$CPP"
-fi
-echo "$ac_t""$CPP" 1>&6
-
-for ac_prog in mawk gawk nawk awk
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1188: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AWK'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$AWK"; then
- ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_AWK="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-AWK="$ac_cv_prog_AWK"
-if test -n "$AWK"; then
- echo "$ac_t""$AWK" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$AWK" && break
-done
-
-
-CC_G_OPT="-g"
-CC_SHARED_OPTS=unknown
-CPPFLAGS="$CPPFLAGS"
-DFT_DEP_SUFFIX=""
-DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`
-DFT_UPR_MODEL="NORMAL"
-LD="ld"
-LDFLAGS_SHARED=""
-LDFLAGS_STATIC=""
-LD_MODEL=""
-LD_SHARED_OPTS=""
-LIBTOOL=""
-LIB_CLEAN=""
-LIB_COMPILE=""
-LIB_LINK='${CC}'
-LINK_TESTS=""
-LINT=lint
-LINT_OPTS=""
-LOCAL_LDFLAGS=""
-MATH_LIB="-lm"
-PTHREAD="-lm"
-TEST_ARGS=""
-TEST_DEPS=""
-TEST_LIBS=""
-TINFO_ARGS='$(LIBS_CURSES)'
-cf_cv_abi_version=""
-cf_cv_rel_version=""
-
-cf_cv_screen=curses
-cf_cv_libtype=
-
-echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:1250: checking for Cygwin environment" >&5
-if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1255 "configure"
-#include "confdefs.h"
-
-int main() {
-
-#ifndef __CYGWIN__
-#define __CYGWIN__ __CYGWIN32__
-#endif
-return __CYGWIN__;
-; return 0; }
-EOF
-if { (eval echo configure:1266: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_cygwin=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_cygwin=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_cygwin" 1>&6
-CYGWIN=
-test "$ac_cv_cygwin" = yes && CYGWIN=yes
-echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
-echo "configure:1283: checking for mingw32 environment" >&5
-if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 1288 "configure"
-#include "confdefs.h"
-
-int main() {
-return __MINGW32__;
-; return 0; }
-EOF
-if { (eval echo configure:1295: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_mingw32=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_mingw32=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_mingw32" 1>&6
-MINGW32=
-test "$ac_cv_mingw32" = yes && MINGW32=yes
-
-
-echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1314: checking for executable suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
- ac_cv_exeext=.exe
-else
- rm -f conftest*
- echo 'int main () { return 0; }' > conftest.$ac_ext
- ac_cv_exeext=
- if { (eval echo configure:1324: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
- for file in conftest.*; do
- case $file in
- *.c | *.o | *.obj) ;;
- *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
- esac
- done
- else
- { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
- fi
- rm -f conftest*
- test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
-fi
-fi
-
-EXEEXT=""
-test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
-echo "$ac_t""${ac_cv_exeext}" 1>&6
-ac_exeext=$EXEEXT
-
-echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:1345: checking for object suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- rm -f conftest*
-echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:1351: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- for ac_file in conftest.*; do
- case $ac_file in
- *.c) ;;
- *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
- esac
- done
-else
- { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_objext" 1>&6
-OBJEXT=$ac_cv_objext
-ac_objext=$ac_cv_objext
-
-
-
-echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
-echo "configure:1371: checking for ${CC-cc} option to accept ANSI C" >&5
-if eval "test \"`echo '$''{'cf_cv_ansi_cc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-cf_cv_ansi_cc=no
-cf_save_CFLAGS="$CFLAGS"
-cf_save_CPPFLAGS="$CPPFLAGS"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX -qlanglvl=ansi
-# Ultrix and OSF/1 -std1
-# HP-UX -Aa -D_HPUX_SOURCE
-# SVR4 -Xc
-# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
-for cf_arg in "-DCC_HAS_PROTOS" \
- "" \
- -qlanglvl=ansi \
- -std1 \
- -Ae \
- "-Aa -D_HPUX_SOURCE" \
- -Xc
-do
-
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in $cf_arg
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
-
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
-
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
-
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
-
-
-
- cat > conftest.$ac_ext <<EOF
-#line 1467 "configure"
-#include "confdefs.h"
-
-#ifndef CC_HAS_PROTOS
-#if !defined(__STDC__) || (__STDC__ != 1)
-choke me
-#endif
-#endif
-
-int main() {
-
- int test (int i, double x);
- struct s1 {int (*f) (int a);};
- struct s2 {int (*f) (double a);};
-; return 0; }
-EOF
-if { (eval echo configure:1483: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_ansi_cc="$cf_arg"; break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-done
-CFLAGS="$cf_save_CFLAGS"
-CPPFLAGS="$cf_save_CPPFLAGS"
-
-fi
-
-echo "$ac_t""$cf_cv_ansi_cc" 1>&6
-
-if test "$cf_cv_ansi_cc" != "no"; then
-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
-
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in $cf_cv_ansi_cc
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
-
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
-
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
-
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
-
-
-
-else
- cat >> confdefs.h <<\EOF
-#define CC_HAS_PROTOS 1
-EOF
-
-fi
-fi
-
-
-if test "$cf_cv_ansi_cc" = "no"; then
- { echo "configure: error: Your compiler does not appear to recognize prototypes.
-You have the following choices:
- a. adjust your compiler options
- b. get an up-to-date compiler
- c. use a wrapper such as unproto" 1>&2; exit 1; }
-fi
-
-
-if test "$GCC" = yes
-then
-cat > conftest.i <<EOF
-#ifndef GCC_PRINTF
-#define GCC_PRINTF 0
-#endif
-#ifndef GCC_SCANF
-#define GCC_SCANF 0
-#endif
-#ifndef GCC_NORETURN
-#define GCC_NORETURN /* nothing */
-#endif
-#ifndef GCC_UNUSED
-#define GCC_UNUSED /* nothing */
-#endif
-EOF
-if test "$GCC" = yes
-then
- echo "checking for $CC __attribute__ directives" 1>&6
-echo "configure:1610: checking for $CC __attribute__ directives" >&5
-cat > conftest.$ac_ext <<EOF
-#line 1612 "${as_me-configure}"
-#include "confdefs.h"
-#include "conftest.h"
-#include "conftest.i"
-#if GCC_PRINTF
-#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
-#else
-#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
-#endif
-#if GCC_SCANF
-#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
-#else
-#define GCC_SCANFLIKE(fmt,var) /*nothing*/
-#endif
-extern void wow(char *,...) GCC_SCANFLIKE(1,2);
-extern void oops(char *,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern void foo(void) GCC_NORETURN;
-int main(int argc GCC_UNUSED, char *argv[] GCC_UNUSED) { return 0; }
-EOF
- for cf_attribute in scanf printf unused noreturn
- do
-
-cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- cf_directive="__attribute__(($cf_attribute))"
- echo "checking for $CC $cf_directive" 1>&5
- case $cf_attribute in
- scanf|printf)
- cat >conftest.h <<EOF
-#define GCC_$cf_ATTRIBUTE 1
-EOF
- ;;
- *)
- cat >conftest.h <<EOF
-#define GCC_$cf_ATTRIBUTE $cf_directive
-EOF
- ;;
- esac
- if { (eval echo configure:1650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- test -n "$verbose" && echo "$ac_t""... $cf_attribute" 1>&6
- cat conftest.h >>confdefs.h
- fi
- done
-else
- fgrep define conftest.i >>confdefs.h
-fi
-rm -rf conftest*
-fi
-
-
-echo $ac_n "checking if $CC -U and -D options work together""... $ac_c" 1>&6
-echo "configure:1663: checking if $CC -U and -D options work together" >&5
-if eval "test \"`echo '$''{'cf_cv_cc_u_d_options'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cf_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
- cat > conftest.$ac_ext <<EOF
-#line 1671 "configure"
-#include "confdefs.h"
-
-int main() {
-
-#ifndef U_D_OPTIONS
-make an undefined-error
-#endif
-#ifdef D_U_OPTIONS
-make a defined-error
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:1685: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
-
- cf_cv_cc_u_d_options=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
-
- cf_cv_cc_u_d_options=no
-fi
-rm -f conftest*
- CPPFLAGS="$cf_save_CPPFLAGS"
-
-fi
-
-echo "$ac_t""$cf_cv_cc_u_d_options" 1>&6
-
-
-
-
-
-cf_XOPEN_SOURCE=500
-cf_POSIX_C_SOURCE=199506L
-
-case $host_os in #(vi
-aix[45]*) #(vi
- CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
- ;;
-freebsd*) #(vi
- # 5.x headers associate
- # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
- # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
- cf_POSIX_C_SOURCE=200112L
- cf_XOPEN_SOURCE=600
- CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
- ;;
-hpux*) #(vi
- CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
- ;;
-irix[56].*) #(vi
- CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
- ;;
-linux*|gnu*|k*bsd*-gnu) #(vi
-
-echo $ac_n "checking if we must define _GNU_SOURCE""... $ac_c" 1>&6
-echo "configure:1731: checking if we must define _GNU_SOURCE" >&5
-if eval "test \"`echo '$''{'cf_cv_gnu_source'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-cat > conftest.$ac_ext <<EOF
-#line 1737 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int main() {
-
-#ifndef _XOPEN_SOURCE
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:1747: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_gnu_source=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- cat > conftest.$ac_ext <<EOF
-#line 1757 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int main() {
-
-#ifdef _XOPEN_SOURCE
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:1767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_gnu_source=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_gnu_source=yes
-fi
-rm -f conftest*
- CPPFLAGS="$cf_save"
-
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$cf_cv_gnu_source" 1>&6
-test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
-
- ;;
-mirbsd*) #(vi
- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
- ;;
-netbsd*) #(vi
- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
- ;;
-openbsd*) #(vi
- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
- ;;
-osf[45]*) #(vi
- CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
- ;;
-nto-qnx*) #(vi
- CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
- ;;
-sco*) #(vi
- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
- ;;
-solaris*) #(vi
- CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
- ;;
-*)
- echo $ac_n "checking if we should define _XOPEN_SOURCE""... $ac_c" 1>&6
-echo "configure:1811: checking if we should define _XOPEN_SOURCE" >&5
-if eval "test \"`echo '$''{'cf_cv_xopen_source'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cat > conftest.$ac_ext <<EOF
-#line 1817 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int main() {
-
-#ifndef _XOPEN_SOURCE
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:1827: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_xopen_source=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
- cat > conftest.$ac_ext <<EOF
-#line 1837 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int main() {
-
-#ifdef _XOPEN_SOURCE
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:1847: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_xopen_source=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_xopen_source=$cf_XOPEN_SOURCE
-fi
-rm -f conftest*
- CPPFLAGS="$cf_save"
-
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$cf_cv_xopen_source" 1>&6
- if test "$cf_cv_xopen_source" != no ; then
-
-# remove _XOPEN_SOURCE symbol from $CFLAGS
-CFLAGS=`echo "$CFLAGS" | \
- sed -e 's/-[UD]_XOPEN_SOURCE\(=[^ ]*\)\?[ ]/ /g' \
- -e 's/-[UD]_XOPEN_SOURCE\(=[^ ]*\)\?$//g'`
-
-
-# remove _XOPEN_SOURCE symbol from $CPPFLAGS
-CPPFLAGS=`echo "$CPPFLAGS" | \
- sed -e 's/-[UD]_XOPEN_SOURCE\(=[^ ]*\)\?[ ]/ /g' \
- -e 's/-[UD]_XOPEN_SOURCE\(=[^ ]*\)\?$//g'`
-
- test "$cf_cv_cc_u_d_options" = yes && \
- CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
- fi
-
-cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
-
-cf_save_CFLAGS="$CFLAGS"
-cf_save_CPPFLAGS="$CPPFLAGS"
-
-
-# remove _POSIX_C_SOURCE symbol from $cf_save_CFLAGS
-cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
- sed -e 's/-[UD]_POSIX_C_SOURCE\(=[^ ]*\)\?[ ]/ /g' \
- -e 's/-[UD]_POSIX_C_SOURCE\(=[^ ]*\)\?$//g'`
-
-
-# remove _POSIX_C_SOURCE symbol from $cf_save_CPPFLAGS
-cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
- sed -e 's/-[UD]_POSIX_C_SOURCE\(=[^ ]*\)\?[ ]/ /g' \
- -e 's/-[UD]_POSIX_C_SOURCE\(=[^ ]*\)\?$//g'`
-
-
-echo $ac_n "checking if we should define _POSIX_C_SOURCE""... $ac_c" 1>&6
-echo "configure:1902: checking if we should define _POSIX_C_SOURCE" >&5
-if eval "test \"`echo '$''{'cf_cv_posix_c_source'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-
-echo "${as_me-configure}:1908: testing if the symbol is already defined go no further ..." 1>&5
-
- cat > conftest.$ac_ext <<EOF
-#line 1911 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int main() {
-
-#ifndef _POSIX_C_SOURCE
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:1921: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_posix_c_source=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_want_posix_source=no
- case .$cf_POSIX_C_SOURCE in #(vi
- .[12]??*) #(vi
- cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
- ;;
- .2) #(vi
- cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
- cf_want_posix_source=yes
- ;;
- .*)
- cf_want_posix_source=yes
- ;;
- esac
- if test "$cf_want_posix_source" = yes ; then
- cat > conftest.$ac_ext <<EOF
-#line 1943 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int main() {
-
-#ifdef _POSIX_SOURCE
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:1953: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE"
-fi
-rm -f conftest*
- fi
-
-echo "${as_me-configure}:1964: testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
-
- CFLAGS="$cf_trim_CFLAGS"
- CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
-
-echo "${as_me-configure}:1969: testing if the second compile does not leave our definition intact error ..." 1>&5
-
- cat > conftest.$ac_ext <<EOF
-#line 1972 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-int main() {
-
-#ifndef _POSIX_C_SOURCE
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:1982: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_posix_c_source=no
-fi
-rm -f conftest*
- CFLAGS="$cf_save_CFLAGS"
- CPPFLAGS="$cf_save_CPPFLAGS"
-
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$cf_cv_posix_c_source" 1>&6
-
-if test "$cf_cv_posix_c_source" != no ; then
- CFLAGS="$cf_trim_CFLAGS"
- CPPFLAGS="$cf_trim_CPPFLAGS"
- if test "$cf_cv_cc_u_d_options" = yes ; then
- cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
- sed -e 's/-D/-U/g' -e 's/=[^ ]*//g'`
- CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
- fi
- CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
-fi
-
-
- ;;
-esac
-
-echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:2017: checking for working const" >&5
-if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2022 "configure"
-#include "confdefs.h"
-
-int main() {
-
-/* Ultrix mips cc rejects this. */
-typedef int charset[2]; const charset x;
-/* SunOS 4.1.1 cc rejects this. */
-char const *const *ccp;
-char **p;
-/* NEC SVR4.0.2 mips cc rejects this. */
-struct point {int x, y;};
-static struct point const zero = {0,0};
-/* AIX XL C 1.02.0.0 rejects this.
- It does not let you subtract one const X* pointer from another in an arm
- of an if-expression whose if-part is not a constant expression */
-const char *g = "string";
-ccp = &g + (g ? g-g : 0);
-/* HPUX 7.0 cc rejects these. */
-++ccp;
-p = (char**) ccp;
-ccp = (char const *const *) p;
-{ /* SCO 3.2v4 cc rejects this. */
- char *t;
- char const *s = 0 ? (char *) 0 : (char const *) 0;
-
- *t++ = 0;
-}
-{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */
- int x[] = {25, 17};
- const int *foo = &x[0];
- ++foo;
-}
-{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
- typedef const int *iptr;
- iptr p = 0;
- ++p;
-}
-{ /* AIX XL C 1.02.0.0 rejects this saying
- "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
- struct s { int j; const int *ap[3]; };
- struct s *b; b->j = 5;
-}
-{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
- const int foo = 10;
-}
-
-; return 0; }
-EOF
-if { (eval echo configure:2071: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_c_const=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_c_const=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_c_const" 1>&6
-if test $ac_cv_c_const = no; then
- cat >> confdefs.h <<\EOF
-#define const
-EOF
-
-fi
-
-
-echo $ac_n "checking for signal global datatype""... $ac_c" 1>&6
-echo "configure:2093: checking for signal global datatype" >&5
-if eval "test \"`echo '$''{'cf_cv_sig_atomic_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- for cf_type in \
- "volatile sig_atomic_t" \
- "sig_atomic_t" \
- "int"
- do
- cat > conftest.$ac_ext <<EOF
-#line 2104 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <signal.h>
-#include <stdio.h>
-
-extern $cf_type x;
-$cf_type x;
-static void handler(int sig)
-{
- x = 5;
-}
-int main() {
-signal(SIGINT, handler);
- x = 1
-; return 0; }
-EOF
-if { (eval echo configure:2122: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_sig_atomic_t=$cf_type
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_sig_atomic_t=no
-fi
-rm -f conftest*
- test "$cf_cv_sig_atomic_t" != no && break
- done
-
-fi
-
-echo "$ac_t""$cf_cv_sig_atomic_t" 1>&6
-test "$cf_cv_sig_atomic_t" != no && cat >> confdefs.h <<EOF
-#define SIG_ATOMIC_T $cf_cv_sig_atomic_t
-EOF
-
-
-
-
-echo $ac_n "checking if you want to see long compiling messages""... $ac_c" 1>&6
-echo "configure:2146: checking if you want to see long compiling messages" >&5
-
-# Check whether --enable-echo or --disable-echo was given.
-if test "${enable_echo+set}" = set; then
- enableval="$enable_echo"
- test "$enableval" != no && enableval=yes
- if test "$enableval" != "yes" ; then
-
- ECHO_LT='--silent'
- ECHO_LD='@echo linking $@;'
- RULE_CC=' @echo compiling $<'
- SHOW_CC=' @echo compiling $@'
- ECHO_CC='@'
-
- else
-
- ECHO_LT=''
- ECHO_LD=''
- RULE_CC='# compiling'
- SHOW_CC='# compiling'
- ECHO_CC=''
-
- fi
-else
- enableval=yes
-
- ECHO_LT=''
- ECHO_LD=''
- RULE_CC='# compiling'
- SHOW_CC='# compiling'
- ECHO_CC=''
-
-
-fi
-
-echo "$ac_t""$enableval" 1>&6
-
-
-
-
-
-
-
-
-GCC_VERSION=none
-if test "$GCC" = yes ; then
- echo $ac_n "checking version of $CC""... $ac_c" 1>&6
-echo "configure:2193: checking version of $CC" >&5
- GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
- test -z "$GCC_VERSION" && GCC_VERSION=unknown
- echo "$ac_t""$GCC_VERSION" 1>&6
-fi
-
-
-if ( test "$GCC" = yes || test "$GXX" = yes )
-then
-echo $ac_n "checking if you want to turn on gcc warnings""... $ac_c" 1>&6
-echo "configure:2203: checking if you want to turn on gcc warnings" >&5
-
-# Check whether --enable-warnings or --disable-warnings was given.
-if test "${enable_warnings+set}" = set; then
- enableval="$enable_warnings"
- test "$enableval" != yes && enableval=no
- if test "$enableval" != "no" ; then
- with_warnings=yes
- else
- with_warnings=no
- fi
-else
- enableval=no
- with_warnings=no
-
-fi
-
-echo "$ac_t""$with_warnings" 1>&6
-if test "$with_warnings" = "yes"
-then
-
-
-
-INTEL_COMPILER=no
-
-if test "$GCC" = yes ; then
- case $host_os in
- linux*|gnu*)
- echo $ac_n "checking if this is really Intel C compiler""... $ac_c" 1>&6
-echo "configure:2232: checking if this is really Intel C compiler" >&5
- cf_save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -no-gcc"
- cat > conftest.$ac_ext <<EOF
-#line 2236 "configure"
-#include "confdefs.h"
-
-int main() {
-
-#ifdef __INTEL_COMPILER
-#else
-make an error
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- INTEL_COMPILER=yes
-cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- CFLAGS="$cf_save_CFLAGS"
- echo "$ac_t""$INTEL_COMPILER" 1>&6
- ;;
- esac
-fi
-
-
-cat > conftest.$ac_ext <<EOF
-#line 2266 "${as_me-configure}"
-int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
-EOF
-
-if test "$INTEL_COMPILER" = yes
-then
-# The "-wdXXX" options suppress warnings:
-# remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
-# remark #193: zero used for undefined preprocessing identifier
-# remark #593: variable "curs_sb_left_arrow" was set but never used
-# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
-# remark #869: parameter "tw" was never referenced
-# remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
-
- echo "checking for $CC warning options" 1>&6
-echo "configure:2285: checking for $CC warning options" >&5
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-Wall"
- for cf_opt in \
- wd1419 \
- wd1682 \
- wd1683 \
- wd1684 \
- wd193 \
- wd279 \
- wd593 \
- wd810 \
- wd869 \
- wd981
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (eval echo configure:2301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
- done
- CFLAGS="$cf_save_CFLAGS"
-
-elif test "$GCC" = yes
-then
- echo "checking for $CC warning options" 1>&6
-echo "configure:2311: checking for $CC warning options" >&5
- cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-W -Wall"
- cf_warn_CONST=""
- test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
- for cf_opt in \
- Wbad-function-cast \
- Wcast-align \
- Wcast-qual \
- Winline \
- Wmissing-declarations \
- Wmissing-prototypes \
- Wnested-externs \
- Wpointer-arith \
- Wshadow \
- Wstrict-prototypes \
- Wundef $cf_warn_CONST
- do
- CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (eval echo configure:2330: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
- case $cf_opt in #(vi
- Wcast-qual) #(vi
- CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
- ;;
- Winline) #(vi
- case $GCC_VERSION in
- 3.3*)
- test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6
-
-echo "${as_me-configure}:2341: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
-
-
- continue;;
- esac
- ;;
- esac
- EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
- fi
- done
- CFLAGS="$cf_save_CFLAGS"
-fi
-rm -f conftest*
-
-
-
-fi
-fi
-
-
-
-
-# Check whether --with-curses-dir or --without-curses-dir was given.
-if test "${with_curses_dir+set}" = set; then
- withval="$with_curses_dir"
-
-if test "x$prefix" != xNONE; then
- cf_path_syntax="$prefix"
-else
- cf_path_syntax="$ac_default_prefix"
-fi
-
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
- ;;
-..|./*|.\\*) #(vi
- ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
- ;;
-.\${*prefix}*) #(vi
- eval withval="$withval"
- case ".$withval" in #(vi
- .NONE/*)
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
- esac
- ;; #(vi
-.no|.NONE/*)
- withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
- ;;
-*)
- { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; }
- ;;
-esac
-
- cf_cv_curses_dir=$withval
-else
- cf_cv_curses_dir=no
-fi
-
-
-
-
-# Check whether --with-5lib or --without-5lib was given.
-if test "${with_5lib+set}" = set; then
- withval="$with_5lib"
- LIBS="-L/usr/5lib $LIBS"
- CPPFLAGS="$CPPFLAGS -I/usr/5include"
-fi
-
-
-
-# Check whether --with-ncursesw or --without-ncursesw was given.
-if test "${with_ncursesw+set}" = set; then
- withval="$with_ncursesw"
- cf_cv_screen=ncursesw
-else
-
-
-
-# Check whether --with-ncurses or --without-ncurses was given.
-if test "${with_ncurses+set}" = set; then
- withval="$with_ncurses"
- cf_cv_screen=ncurses
-else
-
-
-
-# Check whether --with-pdcurses or --without-pdcurses was given.
-if test "${with_pdcurses+set}" = set; then
- withval="$with_pdcurses"
- cf_cv_screen=pdcurses
-fi
-
-fi
-
-fi
-
-
-case $cf_cv_screen in
-curses)
-
-
-echo $ac_n "checking for extra include directories""... $ac_c" 1>&6
-echo "configure:2445: checking for extra include directories" >&5
-if eval "test \"`echo '$''{'cf_cv_curses_incdir'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-cf_cv_curses_incdir=no
-case $host_os in #(vi
-hpux10.*) #(vi
- test -d /usr/include/curses_colr && \
- cf_cv_curses_incdir="-I/usr/include/curses_colr"
- ;;
-sunos3*|sunos4*)
- test -d /usr/5lib && \
- test -d /usr/5include && \
- cf_cv_curses_incdir="-I/usr/5include"
- ;;
-esac
-
-fi
-
-echo "$ac_t""$cf_cv_curses_incdir" 1>&6
-test "$cf_cv_curses_incdir" != no && CPPFLAGS="$cf_cv_curses_incdir $CPPFLAGS"
-
-
-echo $ac_n "checking if we have identified curses headers""... $ac_c" 1>&6
-echo "configure:2470: checking if we have identified curses headers" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_header'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-cf_cv_ncurses_header=none
-for cf_header in \
- curses.h \
- ncurses.h \
- ncurses/curses.h \
- ncurses/ncurses.h
-do
-cat > conftest.$ac_ext <<EOF
-#line 2483 "configure"
-#include "confdefs.h"
-#include <${cf_header}>
-int main() {
-initscr(); tgoto("?", 0,0)
-; return 0; }
-EOF
-if { (eval echo configure:2490: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_ncurses_header=$cf_header; break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-done
-
-fi
-
-echo "$ac_t""$cf_cv_ncurses_header" 1>&6
-
-if test "$cf_cv_ncurses_header" = none ; then
- { echo "configure: error: No curses header-files found" 1>&2; exit 1; }
-fi
-
-# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
-for ac_hdr in $cf_cv_ncurses_header
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2513: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2518 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-
-echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
-echo "configure:2552: checking for terminfo header" >&5
-if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-case ${cf_cv_ncurses_header} in #(vi
-*/ncurses.h|*/ncursesw.h) #(vi
- cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
- ;;
-*)
- cf_term_header=term.h
- ;;
-esac
-
-for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
-do
-cat > conftest.$ac_ext <<EOF
-#line 2569 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <$cf_test>
-
-int main() {
-int x = auto_left_margin
-; return 0; }
-EOF
-if { (eval echo configure:2579: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
-
- cf_cv_term_header="$cf_test"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
-
- cf_cv_term_header=unknown
-
-fi
-rm -f conftest*
- test "$cf_cv_term_header" != unknown && break
-done
-
-fi
-
-echo "$ac_t""$cf_cv_term_header" 1>&6
-
-# Set definitions to allow ifdef'ing to accommodate subdirectories
-
-case $cf_cv_term_header in # (vi
-*term.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_TERM_H 1
-EOF
-
- ;;
-esac
-
-case $cf_cv_term_header in # (vi
-ncurses/term.h) #(vi
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_TERM_H 1
-EOF
-
- ;;
-ncursesw/term.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSESW_TERM_H 1
-EOF
-
- ;;
-esac
-
-
-
-echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:2628: checking for ncurses version" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cf_cv_ncurses_version=no
- cf_tempfile=out$$
- rm -f $cf_tempfile
- if test "$cross_compiling" = yes; then
-
-
- # This will not work if the preprocessor splits the line after the
- # Autoconf token. The 'unproto' program does that.
- cat > conftest.$ac_ext <<EOF
-#include <${cf_cv_ncurses_header-curses.h}>
-#undef Autoconf
-#ifdef NCURSES_VERSION
-Autoconf NCURSES_VERSION
-#else
-#ifdef __NCURSES_H
-Autoconf "old"
-#endif
-;
-#endif
-EOF
- cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
- { (eval echo configure:2654: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
- if test -f conftest.out ; then
- cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
- test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
- rm -f conftest.out
- fi
-
-else
- cat > conftest.$ac_ext <<EOF
-#line 2663 "configure"
-#include "confdefs.h"
-
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <stdio.h>
-int main()
-{
- FILE *fp = fopen("$cf_tempfile", "w");
-#ifdef NCURSES_VERSION
-# ifdef NCURSES_VERSION_PATCH
- fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
-# else
- fprintf(fp, "%s\n", NCURSES_VERSION);
-# endif
-#else
-# ifdef __NCURSES_H
- fprintf(fp, "old\n");
-# else
- make an error
-# endif
-#endif
- ${cf_cv_main_return-return}(0);
-}
-EOF
-if { (eval echo configure:2687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-
- cf_cv_ncurses_version=`cat $cf_tempfile`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -fr conftest*
-fi
-
- rm -f $cf_tempfile
-
-fi
-
-echo "$ac_t""$cf_cv_ncurses_version" 1>&6
-test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF
-#define NCURSES 1
-EOF
-
-
-
-
-echo $ac_n "checking if we have identified curses libraries""... $ac_c" 1>&6
-echo "configure:2711: checking if we have identified curses libraries" >&5
-cat > conftest.$ac_ext <<EOF
-#line 2713 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr(); tgoto("?", 0,0)
-; return 0; }
-EOF
-if { (eval echo configure:2720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_result=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_result=no
-fi
-rm -f conftest*
-echo "$ac_t""$cf_result" 1>&6
-
-if test "$cf_result" = no ; then
-case $host_os in #(vi
-freebsd*) #(vi
- echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:2736: checking for tgoto in -lmytinfo" >&5
-ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lmytinfo $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2744 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgoto();
-
-int main() {
-tgoto()
-; return 0; }
-EOF
-if { (eval echo configure:2755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="-lmytinfo $LIBS"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- ;;
-hpux10.*) #(vi
- echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6
-echo "configure:2778: checking for initscr in -lcur_colr" >&5
-ac_lib_var=`echo cur_colr'_'initscr | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lcur_colr $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2786 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char initscr();
-
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure:2797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
-
- LIBS="-lcur_colr $LIBS"
- ac_cv_func_initscr=yes
-
-else
- echo "$ac_t""no" 1>&6
-
- echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6
-echo "configure:2820: checking for initscr in -lHcurses" >&5
-ac_lib_var=`echo Hcurses'_'initscr | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lHcurses $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 2828 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char initscr();
-
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure:2839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
-
- # HP's header uses __HP_CURSES, but user claims _HP_CURSES.
- LIBS="-lHcurses $LIBS"
- CPPFLAGS="-D__HP_CURSES -D_HP_CURSES $CPPFLAGS"
- ac_cv_func_initscr=yes
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
- ;;
-linux*) # Suse Linux does not follow /usr/lib convention
-
-if test -n "/lib" ; then
- for cf_add_libdir in /lib
- do
- if test $cf_add_libdir = /usr/lib ; then
- :
- elif test -d $cf_add_libdir
- then
- cf_have_libdir=no
- if test -n "$LDFLAGS$LIBS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_libdir in $LDFLAGS $LIBS ; do
- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
- cf_have_libdir=yes; break
- fi
- done
- fi
- if test "$cf_have_libdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
-echo "${as_me-configure}:2888: testing adding $cf_add_libdir to library-path ..." 1>&5
-
-
- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
- fi
- fi
- done
-fi
-
- ;;
-sunos3*|sunos4*)
- if test -d /usr/5lib ; then
-
-if test -n "/usr/5lib" ; then
- for cf_add_libdir in /usr/5lib
- do
- if test $cf_add_libdir = /usr/lib ; then
- :
- elif test -d $cf_add_libdir
- then
- cf_have_libdir=no
- if test -n "$LDFLAGS$LIBS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_libdir in $LDFLAGS $LIBS ; do
- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
- cf_have_libdir=yes; break
- fi
- done
- fi
- if test "$cf_have_libdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
-echo "${as_me-configure}:2920: testing adding $cf_add_libdir to library-path ..." 1>&5
-
-
- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
- fi
- fi
- done
-fi
-
- LIBS="$LIBS -lcurses -ltermcap"
- fi
- ac_cv_func_initscr=yes
- ;;
-esac
-
-if test ".$ac_cv_func_initscr" != .yes ; then
- cf_save_LIBS="$LIBS"
- cf_term_lib=""
- cf_curs_lib=""
-
- if test ".${cf_cv_ncurses_version-no}" != .no
- then
- cf_check_list="ncurses curses cursesX"
- else
- cf_check_list="cursesX curses ncurses"
- fi
-
- # Check for library containing tgoto. Do this before curses library
- # because it may be needed to link the test-case for initscr.
- echo $ac_n "checking for tgoto""... $ac_c" 1>&6
-echo "configure:2950: checking for tgoto" >&5
-if eval "test \"`echo '$''{'ac_cv_func_tgoto'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 2955 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char tgoto(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgoto();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_tgoto) || defined (__stub___tgoto)
-choke me
-#else
-tgoto();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:2978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_tgoto=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_tgoto=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'tgoto`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cf_term_lib=predefined
-else
- echo "$ac_t""no" 1>&6
-
- for cf_term_lib in $cf_check_list termcap termlib unknown
- do
- echo $ac_n "checking for tgoto in -l$cf_term_lib""... $ac_c" 1>&6
-echo "configure:2999: checking for tgoto in -l$cf_term_lib" >&5
-ac_lib_var=`echo $cf_term_lib'_'tgoto | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-l$cf_term_lib $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3007 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgoto();
-
-int main() {
-tgoto()
-; return 0; }
-EOF
-if { (eval echo configure:3018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- break
-else
- echo "$ac_t""no" 1>&6
-fi
-
- done
-
-fi
-
-
- # Check for library containing initscr
- test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
- for cf_curs_lib in $cf_check_list xcurses jcurses unknown
- do
- echo $ac_n "checking for initscr in -l$cf_curs_lib""... $ac_c" 1>&6
-echo "configure:3048: checking for initscr in -l$cf_curs_lib" >&5
-ac_lib_var=`echo $cf_curs_lib'_'initscr | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-l$cf_curs_lib $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3056 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char initscr();
-
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure:3067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- break
-else
- echo "$ac_t""no" 1>&6
-fi
-
- done
- test $cf_curs_lib = unknown && { echo "configure: error: no curses library found" 1>&2; exit 1; }
-
- LIBS="-l$cf_curs_lib $cf_save_LIBS"
- if test "$cf_term_lib" = unknown ; then
- echo $ac_n "checking if we can link with $cf_curs_lib library""... $ac_c" 1>&6
-echo "configure:3093: checking if we can link with $cf_curs_lib library" >&5
- cat > conftest.$ac_ext <<EOF
-#line 3095 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure:3102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_result=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_result=no
-fi
-rm -f conftest*
- echo "$ac_t""$cf_result" 1>&6
- test $cf_result = no && { echo "configure: error: Cannot link curses library" 1>&2; exit 1; }
- elif test "$cf_curs_lib" = "$cf_term_lib" ; then
- :
- elif test "$cf_term_lib" != predefined ; then
- echo $ac_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries""... $ac_c" 1>&6
-echo "configure:3118: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
- cat > conftest.$ac_ext <<EOF
-#line 3120 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr(); tgoto((char *)0, 0, 0);
-; return 0; }
-EOF
-if { (eval echo configure:3127: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_result=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
-
- LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
- cat > conftest.$ac_ext <<EOF
-#line 3137 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure:3144: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_result=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_result=error
-fi
-rm -f conftest*
-
-fi
-rm -f conftest*
- echo "$ac_t""$cf_result" 1>&6
- fi
-fi
-fi
-
-
- ;;
-ncurses)
-
-
-cf_ncuhdr_root=ncurses
-
-test -n "$cf_cv_curses_dir" && \
-test "$cf_cv_curses_dir" != "no" && { \
-
-if test -n "$cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
- for cf_add_incdir in $cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root
- do
- while test $cf_add_incdir != /usr/include
- do
- if test -d $cf_add_incdir
- then
- cf_have_incdir=no
- if test -n "$CFLAGS$CPPFLAGS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
- cf_have_incdir=yes; break
- fi
- done
- fi
-
- if test "$cf_have_incdir" = no ; then
- if test "$cf_add_incdir" = /usr/local/include ; then
- if test "$GCC" = yes
- then
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat > conftest.$ac_ext <<EOF
-#line 3196 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int main() {
-printf("Hello")
-; return 0; }
-EOF
-if { (eval echo configure:3203: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_have_incdir=yes
-fi
-rm -f conftest*
- CPPFLAGS=$cf_save_CPPFLAGS
- fi
- fi
- fi
-
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
-echo "${as_me-configure}:3220: testing adding $cf_add_incdir to include-path ..." 1>&5
-
-
- CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
-
- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
- test "$cf_top_incdir" = "$cf_add_incdir" && break
- cf_add_incdir="$cf_top_incdir"
- else
- break
- fi
- fi
- done
- done
-fi
-
-}
-
-echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
-echo "configure:3239: checking for $cf_ncuhdr_root header in include-path" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
- ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
- for cf_header in $cf_header_list
- do
-
- cat > conftest.$ac_ext <<EOF
-#line 3250 "configure"
-#include "confdefs.h"
-
-
-#include <$cf_header>
-int main() {
-
-#ifdef NCURSES_VERSION
-
-printf("%s\n", NCURSES_VERSION);
-#else
-#ifdef __NCURSES_H
-printf("old\n");
-#else
- make an error
-#endif
-#endif
-
-
-; return 0; }
-EOF
-if { (eval echo configure:3271: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_ncurses_h=$cf_header
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_ncurses_h=no
-fi
-rm -f conftest*
-
- test "$cf_cv_ncurses_h" != no && break
- done
-
-fi
-
-echo "$ac_t""$cf_cv_ncurses_h" 1>&6
-
-
-
-if test "$cf_cv_ncurses_h" != no ; then
- cf_cv_ncurses_header=$cf_cv_ncurses_h
-else
-
-echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
-echo "configure:3297: checking for $cf_ncuhdr_root include-path" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- test -n "$verbose" && echo
- cf_search=""
-
-
-test "/usr" != "$prefix" && \
-test -d "/usr" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for include-directories under /usr"
- test -d /usr/include && cf_search="$cf_search /usr/include"
- test -d /usr/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
- test -d /usr/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
- test -d /usr/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
- test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-
-test "$prefix" != "NONE" && \
-test -d "$prefix" && \
- {
- test -n "$verbose" && echo " ... testing for include-directories under $prefix"
- test -d $prefix/include && cf_search="$cf_search $prefix/include"
- test -d $prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
- test -d $prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
- test -d $prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
- test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-
-test "/usr/local" != "$prefix" && \
-test -d "/usr/local" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
- test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
- test -d /usr/local/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
- test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
- test -d /usr/local/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
- test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-
-test "/opt" != "$prefix" && \
-test -d "/opt" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for include-directories under /opt"
- test -d /opt/include && cf_search="$cf_search /opt/include"
- test -d /opt/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
- test -d /opt/include/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
- test -d /opt/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
- test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-
-test "$HOME" != "$prefix" && \
-test -d "$HOME" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for include-directories under $HOME"
- test -d $HOME/include && cf_search="$cf_search $HOME/include"
- test -d $HOME/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
- test -d $HOME/include/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
- test -d $HOME/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
- test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-
-test "$includedir" != NONE && \
-test "$includedir" != "/usr/include" && \
-test -d "$includedir" && {
- test -d $includedir && cf_search="$cf_search $includedir"
- test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root"
-}
-
-test "$oldincludedir" != NONE && \
-test "$oldincludedir" != "/usr/include" && \
-test -d "$oldincludedir" && {
- test -d $oldincludedir && cf_search="$cf_search $oldincludedir"
- test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
-}
-
-
- test -n "$verbose" && echo search path $cf_search
- cf_save2_CPPFLAGS="$CPPFLAGS"
- for cf_incdir in $cf_search
- do
-
-if test -n "$cf_incdir" ; then
- for cf_add_incdir in $cf_incdir
- do
- while test $cf_add_incdir != /usr/include
- do
- if test -d $cf_add_incdir
- then
- cf_have_incdir=no
- if test -n "$CFLAGS$CPPFLAGS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
- cf_have_incdir=yes; break
- fi
- done
- fi
-
- if test "$cf_have_incdir" = no ; then
- if test "$cf_add_incdir" = /usr/local/include ; then
- if test "$GCC" = yes
- then
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat > conftest.$ac_ext <<EOF
-#line 3410 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int main() {
-printf("Hello")
-; return 0; }
-EOF
-if { (eval echo configure:3417: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_have_incdir=yes
-fi
-rm -f conftest*
- CPPFLAGS=$cf_save_CPPFLAGS
- fi
- fi
- fi
-
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
-echo "${as_me-configure}:3434: testing adding $cf_add_incdir to include-path ..." 1>&5
-
-
- CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
-
- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
- test "$cf_top_incdir" = "$cf_add_incdir" && break
- cf_add_incdir="$cf_top_incdir"
- else
- break
- fi
- fi
- done
- done
-fi
-
- for cf_header in \
- ncurses.h \
- curses.h
- do
-
- cat > conftest.$ac_ext <<EOF
-#line 3456 "configure"
-#include "confdefs.h"
-
-
-#include <$cf_header>
-int main() {
-
-#ifdef NCURSES_VERSION
-
-printf("%s\n", NCURSES_VERSION);
-#else
-#ifdef __NCURSES_H
-printf("old\n");
-#else
- make an error
-#endif
-#endif
-
-
-; return 0; }
-EOF
-if { (eval echo configure:3477: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_ncurses_h2=$cf_header
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_ncurses_h2=no
-fi
-rm -f conftest*
-
- if test "$cf_cv_ncurses_h2" != no ; then
- cf_cv_ncurses_h2=$cf_incdir/$cf_header
- test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6
- break
- fi
- test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6
- done
- CPPFLAGS="$cf_save2_CPPFLAGS"
- test "$cf_cv_ncurses_h2" != no && break
- done
- test "$cf_cv_ncurses_h2" = no && { echo "configure: error: not found" 1>&2; exit 1; }
-
-fi
-
-echo "$ac_t""$cf_cv_ncurses_h2" 1>&6
-
- cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
- cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
- if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
- cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
- fi
-
-if test -n "$cf_1st_incdir" ; then
- for cf_add_incdir in $cf_1st_incdir
- do
- while test $cf_add_incdir != /usr/include
- do
- if test -d $cf_add_incdir
- then
- cf_have_incdir=no
- if test -n "$CFLAGS$CPPFLAGS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
- cf_have_incdir=yes; break
- fi
- done
- fi
-
- if test "$cf_have_incdir" = no ; then
- if test "$cf_add_incdir" = /usr/local/include ; then
- if test "$GCC" = yes
- then
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat > conftest.$ac_ext <<EOF
-#line 3535 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int main() {
-printf("Hello")
-; return 0; }
-EOF
-if { (eval echo configure:3542: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_have_incdir=yes
-fi
-rm -f conftest*
- CPPFLAGS=$cf_save_CPPFLAGS
- fi
- fi
- fi
-
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
-echo "${as_me-configure}:3559: testing adding $cf_add_incdir to include-path ..." 1>&5
-
-
- CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
-
- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
- test "$cf_top_incdir" = "$cf_add_incdir" && break
- cf_add_incdir="$cf_top_incdir"
- else
- break
- fi
- fi
- done
- done
-fi
-
-
-fi
-
-# Set definitions to allow ifdef'ing for ncurses.h
-
-case $cf_cv_ncurses_header in # (vi
-*ncurses.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_H 1
-EOF
-
- ;;
-esac
-
-case $cf_cv_ncurses_header in # (vi
-ncurses/curses.h|ncurses/ncurses.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_NCURSES_H 1
-EOF
-
- ;;
-ncursesw/curses.h|ncursesw/ncurses.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSESW_NCURSES_H 1
-EOF
-
- ;;
-esac
-
-
-
-echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
-echo "configure:3607: checking for terminfo header" >&5
-if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-case ${cf_cv_ncurses_header} in #(vi
-*/ncurses.h|*/ncursesw.h) #(vi
- cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
- ;;
-*)
- cf_term_header=term.h
- ;;
-esac
-
-for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
-do
-cat > conftest.$ac_ext <<EOF
-#line 3624 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <$cf_test>
-
-int main() {
-int x = auto_left_margin
-; return 0; }
-EOF
-if { (eval echo configure:3634: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
-
- cf_cv_term_header="$cf_test"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
-
- cf_cv_term_header=unknown
-
-fi
-rm -f conftest*
- test "$cf_cv_term_header" != unknown && break
-done
-
-fi
-
-echo "$ac_t""$cf_cv_term_header" 1>&6
-
-# Set definitions to allow ifdef'ing to accommodate subdirectories
-
-case $cf_cv_term_header in # (vi
-*term.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_TERM_H 1
-EOF
-
- ;;
-esac
-
-case $cf_cv_term_header in # (vi
-ncurses/term.h) #(vi
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_TERM_H 1
-EOF
-
- ;;
-ncursesw/term.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSESW_TERM_H 1
-EOF
-
- ;;
-esac
-
-
-# some applications need this, but should check for NCURSES_VERSION
-cat >> confdefs.h <<\EOF
-#define NCURSES 1
-EOF
-
-
-
-echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:3689: checking for ncurses version" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cf_cv_ncurses_version=no
- cf_tempfile=out$$
- rm -f $cf_tempfile
- if test "$cross_compiling" = yes; then
-
-
- # This will not work if the preprocessor splits the line after the
- # Autoconf token. The 'unproto' program does that.
- cat > conftest.$ac_ext <<EOF
-#include <${cf_cv_ncurses_header-curses.h}>
-#undef Autoconf
-#ifdef NCURSES_VERSION
-Autoconf NCURSES_VERSION
-#else
-#ifdef __NCURSES_H
-Autoconf "old"
-#endif
-;
-#endif
-EOF
- cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
- { (eval echo configure:3715: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
- if test -f conftest.out ; then
- cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
- test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
- rm -f conftest.out
- fi
-
-else
- cat > conftest.$ac_ext <<EOF
-#line 3724 "configure"
-#include "confdefs.h"
-
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <stdio.h>
-int main()
-{
- FILE *fp = fopen("$cf_tempfile", "w");
-#ifdef NCURSES_VERSION
-# ifdef NCURSES_VERSION_PATCH
- fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
-# else
- fprintf(fp, "%s\n", NCURSES_VERSION);
-# endif
-#else
-# ifdef __NCURSES_H
- fprintf(fp, "old\n");
-# else
- make an error
-# endif
-#endif
- ${cf_cv_main_return-return}(0);
-}
-EOF
-if { (eval echo configure:3748: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-
- cf_cv_ncurses_version=`cat $cf_tempfile`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -fr conftest*
-fi
-
- rm -f $cf_tempfile
-
-fi
-
-echo "$ac_t""$cf_cv_ncurses_version" 1>&6
-test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF
-#define NCURSES 1
-EOF
-
-
-
-
-
-cf_nculib_root=ncurses
- # This works, except for the special case where we find gpm, but
- # ncurses is in a nonstandard location via $LIBS, and we really want
- # to link gpm.
-cf_ncurses_LIBS=""
-cf_ncurses_SAVE="$LIBS"
-echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:3779: checking for Gpm_Open in -lgpm" >&5
-ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lgpm $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3787 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char Gpm_Open();
-
-int main() {
-Gpm_Open()
-; return 0; }
-EOF
-if { (eval echo configure:3798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
-echo "configure:3814: checking for initscr in -lgpm" >&5
-ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lgpm $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3822 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char initscr();
-
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure:3833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="$cf_ncurses_SAVE"
-else
- echo "$ac_t""no" 1>&6
-cf_ncurses_LIBS="-lgpm"
-fi
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-case $host_os in #(vi
-freebsd*)
- # This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
- if test "$cf_nculib_root" = ncurses ; then
- echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:3865: checking for tgoto in -lmytinfo" >&5
-ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lmytinfo $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3873 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgoto();
-
-int main() {
-tgoto()
-; return 0; }
-EOF
-if { (eval echo configure:3884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
- ;;
-esac
-
-LIBS="$cf_ncurses_LIBS $LIBS"
-
-if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
-then
-
-if test -n "$cf_cv_curses_dir/lib" ; then
- for cf_add_libdir in $cf_cv_curses_dir/lib
- do
- if test $cf_add_libdir = /usr/lib ; then
- :
- elif test -d $cf_add_libdir
- then
- cf_have_libdir=no
- if test -n "$LDFLAGS$LIBS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_libdir in $LDFLAGS $LIBS ; do
- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
- cf_have_libdir=yes; break
- fi
- done
- fi
- if test "$cf_have_libdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
-echo "${as_me-configure}:3932: testing adding $cf_add_libdir to library-path ..." 1>&5
-
-
- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
- fi
- fi
- done
-fi
-
- LIBS="-l$cf_nculib_root $LIBS"
-else
-
- eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
- cf_libdir=""
- echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:3947: checking for initscr" >&5
-if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 3952 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char initscr(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char initscr();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_initscr) || defined (__stub___initscr)
-choke me
-#else
-initscr();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:3975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_initscr=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_initscr=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'initscr`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-else
- echo "$ac_t""no" 1>&6
-
- cf_save_LIBS="$LIBS"
- echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
-echo "configure:3995: checking for initscr in -l$cf_nculib_root" >&5
- LIBS="-l$cf_nculib_root $LIBS"
- cat > conftest.$ac_ext <<EOF
-#line 3998 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure:4005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- echo "$ac_t""yes" 1>&6
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
- cf_search=""
-
-
-test "/usr" != "$prefix" && \
-test -d "/usr" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for lib-directories under /usr"
- test -d /usr/lib && cf_search="$cf_search /usr/lib"
- test -d /usr/lib/$cf_nculib_root && cf_search="$cf_search /usr/lib/$cf_nculib_root"
- test -d /usr/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
- test -d /usr/$cf_nculib_root/lib && cf_search="$cf_search /usr/$cf_nculib_root/lib"
- test -d /usr/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root"
-}
-
-
-test "$prefix" != "NONE" && \
-test -d "$prefix" && \
- {
- test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
- test -d $prefix/lib && cf_search="$cf_search $prefix/lib"
- test -d $prefix/lib/$cf_nculib_root && cf_search="$cf_search $prefix/lib/$cf_nculib_root"
- test -d $prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
- test -d $prefix/$cf_nculib_root/lib && cf_search="$cf_search $prefix/$cf_nculib_root/lib"
- test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
-}
-
-
-test "/usr/local" != "$prefix" && \
-test -d "/usr/local" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
- test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
- test -d /usr/local/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
- test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
- test -d /usr/local/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
- test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
-}
-
-
-test "/opt" != "$prefix" && \
-test -d "/opt" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for lib-directories under /opt"
- test -d /opt/lib && cf_search="$cf_search /opt/lib"
- test -d /opt/lib/$cf_nculib_root && cf_search="$cf_search /opt/lib/$cf_nculib_root"
- test -d /opt/lib/$cf_nculib_root/lib && cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
- test -d /opt/$cf_nculib_root/lib && cf_search="$cf_search /opt/$cf_nculib_root/lib"
- test -d /opt/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
-}
-
-
-test "$HOME" != "$prefix" && \
-test -d "$HOME" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
- test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
- test -d $HOME/lib/$cf_nculib_root && cf_search="$cf_search $HOME/lib/$cf_nculib_root"
- test -d $HOME/lib/$cf_nculib_root/lib && cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
- test -d $HOME/$cf_nculib_root/lib && cf_search="$cf_search $HOME/$cf_nculib_root/lib"
- test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
-}
-
-
- for cf_libdir in $cf_search
- do
- echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
-echo "configure:4081: checking for -l$cf_nculib_root in $cf_libdir" >&5
- LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
- cat > conftest.$ac_ext <<EOF
-#line 4084 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure:4091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- echo "$ac_t""yes" 1>&6
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
- LIBS="$cf_save_LIBS"
-fi
-rm -f conftest*
- done
-
-fi
-rm -f conftest*
-
-fi
-
-eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
-
-if test $cf_found_library = no ; then
- { echo "configure: error: Cannot link $cf_nculib_root library" 1>&2; exit 1; }
-fi
-
-
-fi
-
-if test -n "$cf_ncurses_LIBS" ; then
- echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
-echo "configure:4122: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
- cf_ncurses_SAVE="$LIBS"
- for p in $cf_ncurses_LIBS ; do
- q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
- if test "$q" != "$LIBS" ; then
- LIBS="$q"
- fi
- done
- cat > conftest.$ac_ext <<EOF
-#line 4131 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
-; return 0; }
-EOF
-if { (eval echo configure:4138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- echo "$ac_t""yes" 1>&6
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
- LIBS="$cf_ncurses_SAVE"
-fi
-rm -f conftest*
-fi
-
-
-cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-cat >> confdefs.h <<EOF
-#define $cf_nculib_ROOT 1
-EOF
-
-
- ;;
-ncursesw)
- cf_cv_libtype=w
-
-echo $ac_n "checking for multibyte character support""... $ac_c" 1>&6
-echo "configure:4164: checking for multibyte character support" >&5
-if eval "test \"`echo '$''{'cf_cv_utf8_lib'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cf_save_LIBS="$LIBS"
- cat > conftest.$ac_ext <<EOF
-#line 4171 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-int main() {
-putwc(0,0);
-; return 0; }
-EOF
-if { (eval echo configure:4179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_cv_utf8_lib=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- LIBS="-lutf8 $LIBS"
- cat > conftest.$ac_ext <<EOF
-#line 4188 "configure"
-#include "confdefs.h"
-
-#include <libutf8.h>
-int main() {
-putwc(0,0);
-; return 0; }
-EOF
-if { (eval echo configure:4196: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_cv_utf8_lib=add-on
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_utf8_lib=no
-fi
-rm -f conftest*
- LIBS="$cf_save_LIBS"
-
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$cf_cv_utf8_lib" 1>&6
-
-# HAVE_LIBUTF8_H is used by ncurses if curses.h is shared between
-# ncurses/ncursesw:
-if test "$cf_cv_utf8_lib" = "add-on" ; then
- cat >> confdefs.h <<\EOF
-#define HAVE_LIBUTF8_H 1
-EOF
-
- LIBS="-lutf8 $LIBS"
-fi
-
-
-
-cf_ncuhdr_root=ncursesw
-
-test -n "$cf_cv_curses_dir" && \
-test "$cf_cv_curses_dir" != "no" && { \
-
-if test -n "$cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
- for cf_add_incdir in $cf_cv_curses_dir/include $cf_cv_curses_dir/include/$cf_ncuhdr_root
- do
- while test $cf_add_incdir != /usr/include
- do
- if test -d $cf_add_incdir
- then
- cf_have_incdir=no
- if test -n "$CFLAGS$CPPFLAGS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
- cf_have_incdir=yes; break
- fi
- done
- fi
-
- if test "$cf_have_incdir" = no ; then
- if test "$cf_add_incdir" = /usr/local/include ; then
- if test "$GCC" = yes
- then
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat > conftest.$ac_ext <<EOF
-#line 4255 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int main() {
-printf("Hello")
-; return 0; }
-EOF
-if { (eval echo configure:4262: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_have_incdir=yes
-fi
-rm -f conftest*
- CPPFLAGS=$cf_save_CPPFLAGS
- fi
- fi
- fi
-
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
-echo "${as_me-configure}:4279: testing adding $cf_add_incdir to include-path ..." 1>&5
-
-
- CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
-
- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
- test "$cf_top_incdir" = "$cf_add_incdir" && break
- cf_add_incdir="$cf_top_incdir"
- else
- break
- fi
- fi
- done
- done
-fi
-
-}
-
-echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
-echo "configure:4298: checking for $cf_ncuhdr_root header in include-path" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
- ( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
- for cf_header in $cf_header_list
- do
-
- cat > conftest.$ac_ext <<EOF
-#line 4309 "configure"
-#include "confdefs.h"
-
-
-#define _XOPEN_SOURCE_EXTENDED
-#undef HAVE_LIBUTF8_H /* in case we used CF_UTF8_LIB */
-#define HAVE_LIBUTF8_H /* to force ncurses' header file to use cchar_t */
-
-#include <$cf_header>
-int main() {
-
-#ifdef NCURSES_VERSION
-
-#ifndef WACS_BSSB
- make an error
-#endif
-
-printf("%s\n", NCURSES_VERSION);
-#else
-#ifdef __NCURSES_H
-printf("old\n");
-#else
- make an error
-#endif
-#endif
-
-
-; return 0; }
-EOF
-if { (eval echo configure:4338: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_ncurses_h=$cf_header
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_ncurses_h=no
-fi
-rm -f conftest*
-
- test "$cf_cv_ncurses_h" != no && break
- done
-
-fi
-
-echo "$ac_t""$cf_cv_ncurses_h" 1>&6
-
-
-
-if test "$cf_cv_ncurses_h" != no ; then
- cf_cv_ncurses_header=$cf_cv_ncurses_h
-else
-
-echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
-echo "configure:4364: checking for $cf_ncuhdr_root include-path" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- test -n "$verbose" && echo
- cf_search=""
-
-
-test "/usr" != "$prefix" && \
-test -d "/usr" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for include-directories under /usr"
- test -d /usr/include && cf_search="$cf_search /usr/include"
- test -d /usr/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
- test -d /usr/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
- test -d /usr/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
- test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-
-test "$prefix" != "NONE" && \
-test -d "$prefix" && \
- {
- test -n "$verbose" && echo " ... testing for include-directories under $prefix"
- test -d $prefix/include && cf_search="$cf_search $prefix/include"
- test -d $prefix/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
- test -d $prefix/include/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
- test -d $prefix/$cf_ncuhdr_root/include && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
- test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-
-test "/usr/local" != "$prefix" && \
-test -d "/usr/local" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for include-directories under /usr/local"
- test -d /usr/local/include && cf_search="$cf_search /usr/local/include"
- test -d /usr/local/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
- test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
- test -d /usr/local/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
- test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-
-test "/opt" != "$prefix" && \
-test -d "/opt" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for include-directories under /opt"
- test -d /opt/include && cf_search="$cf_search /opt/include"
- test -d /opt/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
- test -d /opt/include/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
- test -d /opt/$cf_ncuhdr_root/include && cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
- test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-
-test "$HOME" != "$prefix" && \
-test -d "$HOME" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for include-directories under $HOME"
- test -d $HOME/include && cf_search="$cf_search $HOME/include"
- test -d $HOME/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
- test -d $HOME/include/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
- test -d $HOME/$cf_ncuhdr_root/include && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
- test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-
-test "$includedir" != NONE && \
-test "$includedir" != "/usr/include" && \
-test -d "$includedir" && {
- test -d $includedir && cf_search="$cf_search $includedir"
- test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root"
-}
-
-test "$oldincludedir" != NONE && \
-test "$oldincludedir" != "/usr/include" && \
-test -d "$oldincludedir" && {
- test -d $oldincludedir && cf_search="$cf_search $oldincludedir"
- test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
-}
-
-
- test -n "$verbose" && echo search path $cf_search
- cf_save2_CPPFLAGS="$CPPFLAGS"
- for cf_incdir in $cf_search
- do
-
-if test -n "$cf_incdir" ; then
- for cf_add_incdir in $cf_incdir
- do
- while test $cf_add_incdir != /usr/include
- do
- if test -d $cf_add_incdir
- then
- cf_have_incdir=no
- if test -n "$CFLAGS$CPPFLAGS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
- cf_have_incdir=yes; break
- fi
- done
- fi
-
- if test "$cf_have_incdir" = no ; then
- if test "$cf_add_incdir" = /usr/local/include ; then
- if test "$GCC" = yes
- then
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat > conftest.$ac_ext <<EOF
-#line 4477 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int main() {
-printf("Hello")
-; return 0; }
-EOF
-if { (eval echo configure:4484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_have_incdir=yes
-fi
-rm -f conftest*
- CPPFLAGS=$cf_save_CPPFLAGS
- fi
- fi
- fi
-
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
-echo "${as_me-configure}:4501: testing adding $cf_add_incdir to include-path ..." 1>&5
-
-
- CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
-
- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
- test "$cf_top_incdir" = "$cf_add_incdir" && break
- cf_add_incdir="$cf_top_incdir"
- else
- break
- fi
- fi
- done
- done
-fi
-
- for cf_header in \
- ncurses.h \
- curses.h
- do
-
- cat > conftest.$ac_ext <<EOF
-#line 4523 "configure"
-#include "confdefs.h"
-
-
-#include <$cf_header>
-int main() {
-
-#ifdef NCURSES_VERSION
-
-printf("%s\n", NCURSES_VERSION);
-#else
-#ifdef __NCURSES_H
-printf("old\n");
-#else
- make an error
-#endif
-#endif
-
-
-; return 0; }
-EOF
-if { (eval echo configure:4544: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_ncurses_h2=$cf_header
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_ncurses_h2=no
-fi
-rm -f conftest*
-
- if test "$cf_cv_ncurses_h2" != no ; then
- cf_cv_ncurses_h2=$cf_incdir/$cf_header
- test -n "$verbose" && echo $ac_n " ... found $ac_c" 1>&6
- break
- fi
- test -n "$verbose" && echo " ... tested $cf_incdir/$cf_header" 1>&6
- done
- CPPFLAGS="$cf_save2_CPPFLAGS"
- test "$cf_cv_ncurses_h2" != no && break
- done
- test "$cf_cv_ncurses_h2" = no && { echo "configure: error: not found" 1>&2; exit 1; }
-
-fi
-
-echo "$ac_t""$cf_cv_ncurses_h2" 1>&6
-
- cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
- cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
- if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
- cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
- fi
-
-if test -n "$cf_1st_incdir" ; then
- for cf_add_incdir in $cf_1st_incdir
- do
- while test $cf_add_incdir != /usr/include
- do
- if test -d $cf_add_incdir
- then
- cf_have_incdir=no
- if test -n "$CFLAGS$CPPFLAGS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
- if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
- cf_have_incdir=yes; break
- fi
- done
- fi
-
- if test "$cf_have_incdir" = no ; then
- if test "$cf_add_incdir" = /usr/local/include ; then
- if test "$GCC" = yes
- then
- cf_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
- cat > conftest.$ac_ext <<EOF
-#line 4602 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int main() {
-printf("Hello")
-; return 0; }
-EOF
-if { (eval echo configure:4609: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_have_incdir=yes
-fi
-rm -f conftest*
- CPPFLAGS=$cf_save_CPPFLAGS
- fi
- fi
- fi
-
- if test "$cf_have_incdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_incdir to include-path" 1>&6
-
-echo "${as_me-configure}:4626: testing adding $cf_add_incdir to include-path ..." 1>&5
-
-
- CPPFLAGS="-I$cf_add_incdir $CPPFLAGS"
-
- cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
- test "$cf_top_incdir" = "$cf_add_incdir" && break
- cf_add_incdir="$cf_top_incdir"
- else
- break
- fi
- fi
- done
- done
-fi
-
-
-fi
-
-# Set definitions to allow ifdef'ing for ncurses.h
-
-case $cf_cv_ncurses_header in # (vi
-*ncurses.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_H 1
-EOF
-
- ;;
-esac
-
-case $cf_cv_ncurses_header in # (vi
-ncurses/curses.h|ncurses/ncurses.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_NCURSES_H 1
-EOF
-
- ;;
-ncursesw/curses.h|ncursesw/ncurses.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSESW_NCURSES_H 1
-EOF
-
- ;;
-esac
-
-
-
-echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
-echo "configure:4674: checking for terminfo header" >&5
-if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-case ${cf_cv_ncurses_header} in #(vi
-*/ncurses.h|*/ncursesw.h) #(vi
- cf_term_header=`echo "$cf_cv_ncurses_header" | sed -e 's%ncurses[^.]*\.h$%term.h%'`
- ;;
-*)
- cf_term_header=term.h
- ;;
-esac
-
-for cf_test in $cf_term_header "ncurses/term.h" "ncursesw/term.h"
-do
-cat > conftest.$ac_ext <<EOF
-#line 4691 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <$cf_test>
-
-int main() {
-int x = auto_left_margin
-; return 0; }
-EOF
-if { (eval echo configure:4701: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
-
- cf_cv_term_header="$cf_test"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
-
- cf_cv_term_header=unknown
-
-fi
-rm -f conftest*
- test "$cf_cv_term_header" != unknown && break
-done
-
-fi
-
-echo "$ac_t""$cf_cv_term_header" 1>&6
-
-# Set definitions to allow ifdef'ing to accommodate subdirectories
-
-case $cf_cv_term_header in # (vi
-*term.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_TERM_H 1
-EOF
-
- ;;
-esac
-
-case $cf_cv_term_header in # (vi
-ncurses/term.h) #(vi
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_TERM_H 1
-EOF
-
- ;;
-ncursesw/term.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSESW_TERM_H 1
-EOF
-
- ;;
-esac
-
-
-# some applications need this, but should check for NCURSES_VERSION
-cat >> confdefs.h <<\EOF
-#define NCURSES 1
-EOF
-
-
-
-echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:4756: checking for ncurses version" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cf_cv_ncurses_version=no
- cf_tempfile=out$$
- rm -f $cf_tempfile
- if test "$cross_compiling" = yes; then
-
-
- # This will not work if the preprocessor splits the line after the
- # Autoconf token. The 'unproto' program does that.
- cat > conftest.$ac_ext <<EOF
-#include <${cf_cv_ncurses_header-curses.h}>
-#undef Autoconf
-#ifdef NCURSES_VERSION
-Autoconf NCURSES_VERSION
-#else
-#ifdef __NCURSES_H
-Autoconf "old"
-#endif
-;
-#endif
-EOF
- cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
- { (eval echo configure:4782: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
- if test -f conftest.out ; then
- cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
- test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
- rm -f conftest.out
- fi
-
-else
- cat > conftest.$ac_ext <<EOF
-#line 4791 "configure"
-#include "confdefs.h"
-
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <stdio.h>
-int main()
-{
- FILE *fp = fopen("$cf_tempfile", "w");
-#ifdef NCURSES_VERSION
-# ifdef NCURSES_VERSION_PATCH
- fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
-# else
- fprintf(fp, "%s\n", NCURSES_VERSION);
-# endif
-#else
-# ifdef __NCURSES_H
- fprintf(fp, "old\n");
-# else
- make an error
-# endif
-#endif
- ${cf_cv_main_return-return}(0);
-}
-EOF
-if { (eval echo configure:4815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-
- cf_cv_ncurses_version=`cat $cf_tempfile`
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -fr conftest*
-fi
-
- rm -f $cf_tempfile
-
-fi
-
-echo "$ac_t""$cf_cv_ncurses_version" 1>&6
-test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF
-#define NCURSES 1
-EOF
-
-
-
-
-
-cf_nculib_root=ncursesw
- # This works, except for the special case where we find gpm, but
- # ncurses is in a nonstandard location via $LIBS, and we really want
- # to link gpm.
-cf_ncurses_LIBS=""
-cf_ncurses_SAVE="$LIBS"
-echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:4846: checking for Gpm_Open in -lgpm" >&5
-ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lgpm $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4854 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char Gpm_Open();
-
-int main() {
-Gpm_Open()
-; return 0; }
-EOF
-if { (eval echo configure:4865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
-echo "configure:4881: checking for initscr in -lgpm" >&5
-ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lgpm $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4889 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char initscr();
-
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure:4900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="$cf_ncurses_SAVE"
-else
- echo "$ac_t""no" 1>&6
-cf_ncurses_LIBS="-lgpm"
-fi
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-case $host_os in #(vi
-freebsd*)
- # This is only necessary if you are linking against an obsolete
- # version of ncurses (but it should do no harm, since it's static).
- if test "$cf_nculib_root" = ncurses ; then
- echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:4932: checking for tgoto in -lmytinfo" >&5
-ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lmytinfo $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4940 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char tgoto();
-
-int main() {
-tgoto()
-; return 0; }
-EOF
-if { (eval echo configure:4951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
- ;;
-esac
-
-LIBS="$cf_ncurses_LIBS $LIBS"
-
-if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
-then
-
-if test -n "$cf_cv_curses_dir/lib" ; then
- for cf_add_libdir in $cf_cv_curses_dir/lib
- do
- if test $cf_add_libdir = /usr/lib ; then
- :
- elif test -d $cf_add_libdir
- then
- cf_have_libdir=no
- if test -n "$LDFLAGS$LIBS" ; then
- # a loop is needed to ensure we can add subdirs of existing dirs
- for cf_test_libdir in $LDFLAGS $LIBS ; do
- if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
- cf_have_libdir=yes; break
- fi
- done
- fi
- if test "$cf_have_libdir" = no ; then
- test -n "$verbose" && echo " adding $cf_add_libdir to library-path" 1>&6
-
-echo "${as_me-configure}:4999: testing adding $cf_add_libdir to library-path ..." 1>&5
-
-
- LDFLAGS="-L$cf_add_libdir $LDFLAGS"
- fi
- fi
- done
-fi
-
- LIBS="-l$cf_nculib_root $LIBS"
-else
-
- eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
- cf_libdir=""
- echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:5014: checking for initscr" >&5
-if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5019 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char initscr(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char initscr();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_initscr) || defined (__stub___initscr)
-choke me
-#else
-initscr();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:5042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_initscr=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_initscr=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'initscr`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-else
- echo "$ac_t""no" 1>&6
-
- cf_save_LIBS="$LIBS"
- echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
-echo "configure:5062: checking for initscr in -l$cf_nculib_root" >&5
- LIBS="-l$cf_nculib_root $LIBS"
- cat > conftest.$ac_ext <<EOF
-#line 5065 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure:5072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- echo "$ac_t""yes" 1>&6
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
- cf_search=""
-
-
-test "/usr" != "$prefix" && \
-test -d "/usr" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for lib-directories under /usr"
- test -d /usr/lib && cf_search="$cf_search /usr/lib"
- test -d /usr/lib/$cf_nculib_root && cf_search="$cf_search /usr/lib/$cf_nculib_root"
- test -d /usr/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
- test -d /usr/$cf_nculib_root/lib && cf_search="$cf_search /usr/$cf_nculib_root/lib"
- test -d /usr/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root"
-}
-
-
-test "$prefix" != "NONE" && \
-test -d "$prefix" && \
- {
- test -n "$verbose" && echo " ... testing for lib-directories under $prefix"
- test -d $prefix/lib && cf_search="$cf_search $prefix/lib"
- test -d $prefix/lib/$cf_nculib_root && cf_search="$cf_search $prefix/lib/$cf_nculib_root"
- test -d $prefix/lib/$cf_nculib_root/lib && cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
- test -d $prefix/$cf_nculib_root/lib && cf_search="$cf_search $prefix/$cf_nculib_root/lib"
- test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
-}
-
-
-test "/usr/local" != "$prefix" && \
-test -d "/usr/local" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for lib-directories under /usr/local"
- test -d /usr/local/lib && cf_search="$cf_search /usr/local/lib"
- test -d /usr/local/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
- test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
- test -d /usr/local/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
- test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
-}
-
-
-test "/opt" != "$prefix" && \
-test -d "/opt" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for lib-directories under /opt"
- test -d /opt/lib && cf_search="$cf_search /opt/lib"
- test -d /opt/lib/$cf_nculib_root && cf_search="$cf_search /opt/lib/$cf_nculib_root"
- test -d /opt/lib/$cf_nculib_root/lib && cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
- test -d /opt/$cf_nculib_root/lib && cf_search="$cf_search /opt/$cf_nculib_root/lib"
- test -d /opt/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
-}
-
-
-test "$HOME" != "$prefix" && \
-test -d "$HOME" && \
-(test $prefix = NONE || test -d $prefix) && {
- test -n "$verbose" && echo " ... testing for lib-directories under $HOME"
- test -d $HOME/lib && cf_search="$cf_search $HOME/lib"
- test -d $HOME/lib/$cf_nculib_root && cf_search="$cf_search $HOME/lib/$cf_nculib_root"
- test -d $HOME/lib/$cf_nculib_root/lib && cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
- test -d $HOME/$cf_nculib_root/lib && cf_search="$cf_search $HOME/$cf_nculib_root/lib"
- test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
-}
-
-
- for cf_libdir in $cf_search
- do
- echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
-echo "configure:5148: checking for -l$cf_nculib_root in $cf_libdir" >&5
- LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
- cat > conftest.$ac_ext <<EOF
-#line 5151 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr()
-; return 0; }
-EOF
-if { (eval echo configure:5158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- echo "$ac_t""yes" 1>&6
- eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
- break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
- LIBS="$cf_save_LIBS"
-fi
-rm -f conftest*
- done
-
-fi
-rm -f conftest*
-
-fi
-
-eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
-
-if test $cf_found_library = no ; then
- { echo "configure: error: Cannot link $cf_nculib_root library" 1>&2; exit 1; }
-fi
-
-
-fi
-
-if test -n "$cf_ncurses_LIBS" ; then
- echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
-echo "configure:5189: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
- cf_ncurses_SAVE="$LIBS"
- for p in $cf_ncurses_LIBS ; do
- q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
- if test "$q" != "$LIBS" ; then
- LIBS="$q"
- fi
- done
- cat > conftest.$ac_ext <<EOF
-#line 5198 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
-; return 0; }
-EOF
-if { (eval echo configure:5205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- echo "$ac_t""yes" 1>&6
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- echo "$ac_t""no" 1>&6
- LIBS="$cf_ncurses_SAVE"
-fi
-rm -f conftest*
-fi
-
-
-cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-cat >> confdefs.h <<EOF
-#define $cf_nculib_ROOT 1
-EOF
-
-
- ;;
-pdcurses) #(vi
- if test "$no_x" = yes; then
- # Not all programs may use this symbol, but it does not hurt to define it.
- cat >> confdefs.h <<\EOF
-#define X_DISPLAY_MISSING 1
-EOF
-
- X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
-else
- if test -n "$x_includes"; then
- X_CFLAGS="$X_CFLAGS -I$x_includes"
- fi
-
- # It would also be nice to do this for all -L options, not just this one.
- if test -n "$x_libraries"; then
- X_LIBS="$X_LIBS -L$x_libraries"
- # For Solaris; some versions of Sun CC require a space after -R and
- # others require no space. Words are not sufficient . . . .
- case "`(uname -sr) 2>/dev/null`" in
- "SunOS 5"*)
- echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:5248: checking whether -R must be followed by a space" >&5
- ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
- cat > conftest.$ac_ext <<EOF
-#line 5251 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:5258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_R_nospace=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_R_nospace=no
-fi
-rm -f conftest*
- if test $ac_R_nospace = yes; then
- echo "$ac_t""no" 1>&6
- X_LIBS="$X_LIBS -R$x_libraries"
- else
- LIBS="$ac_xsave_LIBS -R $x_libraries"
- cat > conftest.$ac_ext <<EOF
-#line 5274 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:5281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_R_space=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_R_space=no
-fi
-rm -f conftest*
- if test $ac_R_space = yes; then
- echo "$ac_t""yes" 1>&6
- X_LIBS="$X_LIBS -R $x_libraries"
- else
- echo "$ac_t""neither works" 1>&6
- fi
- fi
- LIBS="$ac_xsave_LIBS"
- esac
- fi
-
- # Check for system-dependent libraries X programs must link with.
- # Do this before checking for the system-independent R6 libraries
- # (-lICE), since we may need -lsocket or whatever for X linking.
-
- if test "$ISC" = yes; then
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
- else
- # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X
- # libraries were built with DECnet support. And karl@cs.umb.edu says
- # the Alpha needs dnet_stub (dnet does not exist).
- echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:5313: checking for dnet_ntoa in -ldnet" >&5
-ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldnet $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 5321 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dnet_ntoa();
-
-int main() {
-dnet_ntoa()
-; return 0; }
-EOF
-if { (eval echo configure:5332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test $ac_cv_lib_dnet_dnet_ntoa = no; then
- echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:5354: checking for dnet_ntoa in -ldnet_stub" >&5
-ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-ldnet_stub $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 5362 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char dnet_ntoa();
-
-int main() {
-dnet_ntoa()
-; return 0; }
-EOF
-if { (eval echo configure:5373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
-
- # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
- # to get the SysV transport functions.
- # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4)
- # needs -lnsl.
- # The nsl library prevents programs from opening the X display
- # on Irix 5.2, according to dickey@clark.net.
- echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:5402: checking for gethostbyname" >&5
-if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5407 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char gethostbyname(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gethostbyname();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
-choke me
-#else
-gethostbyname();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:5430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_gethostbyname=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_gethostbyname=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test $ac_cv_func_gethostbyname = no; then
- echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:5451: checking for gethostbyname in -lnsl" >&5
-ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lnsl $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 5459 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char gethostbyname();
-
-int main() {
-gethostbyname()
-; return 0; }
-EOF
-if { (eval echo configure:5470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
-
- # lieder@skyler.mavd.honeywell.com says without -lsocket,
- # socket/setsockopt and other routines are undefined under SCO ODT
- # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
- # on later versions), says simon@lia.di.epfl.ch: it contains
- # gethostby* variants that don't use the nameserver (or something).
- # -lsocket must be given before -lnsl if both are needed.
- # We assume that if connect needs -lnsl, so does gethostbyname.
- echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:5500: checking for connect" >&5
-if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5505 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char connect(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char connect();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_connect) || defined (__stub___connect)
-choke me
-#else
-connect();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:5528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_connect=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_connect=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test $ac_cv_func_connect = no; then
- echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:5549: checking for connect in -lsocket" >&5
-ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 5557 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char connect();
-
-int main() {
-connect()
-; return 0; }
-EOF
-if { (eval echo configure:5568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
-
- # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
- echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:5592: checking for remove" >&5
-if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5597 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char remove(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char remove();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_remove) || defined (__stub___remove)
-choke me
-#else
-remove();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:5620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_remove=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_remove=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test $ac_cv_func_remove = no; then
- echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:5641: checking for remove in -lposix" >&5
-ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lposix $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 5649 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char remove();
-
-int main() {
-remove()
-; return 0; }
-EOF
-if { (eval echo configure:5660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
-
- # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
- echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:5684: checking for shmat" >&5
-if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5689 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char shmat(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char shmat();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_shmat) || defined (__stub___shmat)
-choke me
-#else
-shmat();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:5712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_shmat=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_shmat=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-fi
-
- if test $ac_cv_func_shmat = no; then
- echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:5733: checking for shmat in -lipc" >&5
-ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lipc $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 5741 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char shmat();
-
-int main() {
-shmat()
-; return 0; }
-EOF
-if { (eval echo configure:5752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- fi
- fi
-
- # Check for libraries that X11R6 Xt/Xaw programs need.
- ac_save_LDFLAGS="$LDFLAGS"
- test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
- # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
- # check for ICE first), but we must link in the order -lSM -lICE or
- # we get undefined symbols. So assume we have SM if we have ICE.
- # These have to be linked with before -lX11, unlike the other
- # libraries we check for below, so use a different variable.
- # --interran@uluru.Stanford.EDU, kb@cs.umb.edu.
- echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6
-echo "configure:5785: checking for IceConnectionNumber in -lICE" >&5
-ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lICE $X_EXTRA_LIBS $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 5793 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char IceConnectionNumber();
-
-int main() {
-IceConnectionNumber()
-; return 0; }
-EOF
-if { (eval echo configure:5804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
-else
- echo "$ac_t""no" 1>&6
-fi
-
- LDFLAGS="$ac_save_LDFLAGS"
-
-fi
-
-
-
-
-
-# SYSTEM_NAME=`echo "$cf_cv_system_name"|tr ' ' -`
-
-cf_have_X_LIBS=no
-
-LDFLAGS="$X_LIBS $LDFLAGS"
-
-test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6
-
-echo "${as_me-configure}:5840: testing checking additions to CFLAGS ..." 1>&5
-
-
-cf_check_cflags="$CFLAGS"
-cf_check_cppflags="$CPPFLAGS"
-
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in $X_CFLAGS
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
- test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
-
-echo "${as_me-configure}:5902: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
-
-
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
- test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
-
-echo "${as_me-configure}:5911: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
-
-
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
- test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
-
-echo "${as_me-configure}:5920: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
-
-
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
-
-
-
-if test "$cf_check_cflags" != "$CFLAGS" ; then
-cat > conftest.$ac_ext <<EOF
-#line 5931 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int main() {
-printf("Hello world");
-; return 0; }
-EOF
-if { (eval echo configure:5938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6
-
-echo "${as_me-configure}:5946: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
-
-
- if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
- test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6
-
-echo "${as_me-configure}:5952: testing but keeping change to \$CPPFLAGS ..." 1>&5
-
-
- fi
- CFLAGS="$cf_check_flags"
-fi
-rm -f conftest*
-fi
-
-
-echo $ac_n "checking for XOpenDisplay""... $ac_c" 1>&6
-echo "configure:5963: checking for XOpenDisplay" >&5
-if eval "test \"`echo '$''{'ac_cv_func_XOpenDisplay'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 5968 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char XOpenDisplay(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char XOpenDisplay();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_XOpenDisplay) || defined (__stub___XOpenDisplay)
-choke me
-#else
-XOpenDisplay();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:5991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_XOpenDisplay=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_XOpenDisplay=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'XOpenDisplay`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-
-echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:6010: checking for XOpenDisplay in -lX11" >&5
-ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 6018 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char XOpenDisplay();
-
-int main() {
-XOpenDisplay()
-; return 0; }
-EOF
-if { (eval echo configure:6029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="-lX11 $LIBS"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-
-echo $ac_n "checking for XtAppInitialize""... $ac_c" 1>&6
-echo "configure:6053: checking for XtAppInitialize" >&5
-if eval "test \"`echo '$''{'ac_cv_func_XtAppInitialize'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 6058 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char XtAppInitialize(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char XtAppInitialize();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_XtAppInitialize) || defined (__stub___XtAppInitialize)
-choke me
-#else
-XtAppInitialize();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:6081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_XtAppInitialize=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_XtAppInitialize=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'XtAppInitialize`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- :
-else
- echo "$ac_t""no" 1>&6
-
-echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6
-echo "configure:6100: checking for XtAppInitialize in -lXt" >&5
-ac_lib_var=`echo Xt'_'XtAppInitialize | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 6108 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char XtAppInitialize();
-
-int main() {
-XtAppInitialize()
-; return 0; }
-EOF
-if { (eval echo configure:6119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- cat >> confdefs.h <<\EOF
-#define HAVE_LIBXT 1
-EOF
-
- cf_have_X_LIBS=Xt
- LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-fi
-
-
-if test $cf_have_X_LIBS = no ; then
- echo "configure: warning: Unable to successfully link X Toolkit library (-lXt) with
-test program. You will have to check and add the proper libraries by hand
-to makefile." 1>&2
-fi
-
-
-cf_x_athena=${cf_x_athena-Xaw}
-
-echo $ac_n "checking if you want to link with Xaw 3d library""... $ac_c" 1>&6
-echo "configure:6157: checking if you want to link with Xaw 3d library" >&5
-withval=
-
-# Check whether --with-Xaw3d or --without-Xaw3d was given.
-if test "${with_Xaw3d+set}" = set; then
- withval="$with_Xaw3d"
- :
-fi
-
-if test "$withval" = yes ; then
- cf_x_athena=Xaw3d
- echo "$ac_t""yes" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking if you want to link with neXT Athena library""... $ac_c" 1>&6
-echo "configure:6174: checking if you want to link with neXT Athena library" >&5
-withval=
-
-# Check whether --with-neXtaw or --without-neXtaw was given.
-if test "${with_neXtaw+set}" = set; then
- withval="$with_neXtaw"
- :
-fi
-
-if test "$withval" = yes ; then
- cf_x_athena=neXtaw
- echo "$ac_t""yes" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking if you want to link with Athena-Plus library""... $ac_c" 1>&6
-echo "configure:6191: checking if you want to link with Athena-Plus library" >&5
-withval=
-
-# Check whether --with-XawPlus or --without-XawPlus was given.
-if test "${with_XawPlus+set}" = set; then
- withval="$with_XawPlus"
- :
-fi
-
-if test "$withval" = yes ; then
- cf_x_athena=XawPlus
- echo "$ac_t""yes" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6
-echo "configure:6208: checking for XextCreateExtension in -lXext" >&5
-ac_lib_var=`echo Xext'_'XextCreateExtension | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lXext $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 6216 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char XextCreateExtension();
-
-int main() {
-XextCreateExtension()
-; return 0; }
-EOF
-if { (eval echo configure:6227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="-lXext $LIBS"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
-cf_x_athena_lib=""
-
-
-cf_x_athena_root=$cf_x_athena
-cf_x_athena_include=""
-
-for cf_path in default \
- /usr/contrib/X11R6 \
- /usr/contrib/X11R5 \
- /usr/lib/X11R5 \
- /usr/local
-do
- if test -z "$cf_x_athena_include" ; then
- cf_save="$CPPFLAGS"
- cf_test=X11/$cf_x_athena_root/SimpleMenu.h
- if test $cf_path != default ; then
- CPPFLAGS="-I$cf_path/include $cf_save"
- echo $ac_n "checking for $cf_test in $cf_path""... $ac_c" 1>&6
-echo "configure:6266: checking for $cf_test in $cf_path" >&5
- else
- echo $ac_n "checking for $cf_test""... $ac_c" 1>&6
-echo "configure:6269: checking for $cf_test" >&5
- fi
- cat > conftest.$ac_ext <<EOF
-#line 6272 "configure"
-#include "confdefs.h"
-
-#include <X11/Intrinsic.h>
-#include <$cf_test>
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:6281: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_result=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_result=no
-fi
-rm -f conftest*
- echo "$ac_t""$cf_result" 1>&6
- if test "$cf_result" = yes ; then
- cf_x_athena_include=$cf_path
- break
- else
- CPPFLAGS="$cf_save"
- fi
- fi
-done
-
-if test -z "$cf_x_athena_include" ; then
- echo "configure: warning: Unable to successfully find Athena header files with test program" 1>&2
-elif test "$cf_x_athena_include" != default ; then
- CPPFLAGS="$CPPFLAGS -I$cf_x_athena_include"
-fi
-
-
-cf_x_athena_root=$cf_x_athena
-cf_x_athena_lib=""
-
-for cf_path in default \
- /usr/contrib/X11R6 \
- /usr/contrib/X11R5 \
- /usr/lib/X11R5 \
- /usr/local
-do
- for cf_lib in \
- "-l$cf_x_athena_root -lXmu" \
- "-l$cf_x_athena_root -lXpm -lXmu" \
- "-l${cf_x_athena_root}_s -lXmu_s"
- do
- if test -z "$cf_x_athena_lib" ; then
- cf_save="$LIBS"
- cf_test=XawSimpleMenuAddGlobalActions
- if test $cf_path != default ; then
- LIBS="-L$cf_path/lib $cf_lib $LIBS"
- echo $ac_n "checking for $cf_lib in $cf_path""... $ac_c" 1>&6
-echo "configure:6328: checking for $cf_lib in $cf_path" >&5
- else
- LIBS="$cf_lib $LIBS"
- echo $ac_n "checking for $cf_test in $cf_lib""... $ac_c" 1>&6
-echo "configure:6332: checking for $cf_test in $cf_lib" >&5
- fi
- cat > conftest.$ac_ext <<EOF
-#line 6335 "configure"
-#include "confdefs.h"
-
-int main() {
-$cf_test()
-; return 0; }
-EOF
-if { (eval echo configure:6342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_result=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_result=no
-fi
-rm -f conftest*
- echo "$ac_t""$cf_result" 1>&6
- if test "$cf_result" = yes ; then
- cf_x_athena_lib="$cf_lib"
- break
- fi
- LIBS="$cf_save"
- fi
- done
-done
-
-if test -z "$cf_x_athena_lib" ; then
- { echo "configure: error: Unable to successfully link Athena library (-l$cf_x_athena_root) with test program" 1>&2; exit 1; }
-fi
-
-
-cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-cat >> confdefs.h <<EOF
-#define $cf_x_athena_LIBS 1
-EOF
-
-
-
-
-
-
-for ac_prog in xcurses-config
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:6383: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_XCURSES_CONFIG'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- case "$XCURSES_CONFIG" in
- /*)
- ac_cv_path_XCURSES_CONFIG="$XCURSES_CONFIG" # Let the user override the test with a path.
- ;;
- ?:/*)
- ac_cv_path_XCURSES_CONFIG="$XCURSES_CONFIG" # Let the user override the test with a dos path.
- ;;
- *)
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_path_XCURSES_CONFIG="$ac_dir/$ac_word"
- break
- fi
- done
- IFS="$ac_save_ifs"
- ;;
-esac
-fi
-XCURSES_CONFIG="$ac_cv_path_XCURSES_CONFIG"
-if test -n "$XCURSES_CONFIG"; then
- echo "$ac_t""$XCURSES_CONFIG" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$XCURSES_CONFIG" && break
-done
-test -n "$XCURSES_CONFIG" || XCURSES_CONFIG="none"
-
-
-if test "$XCURSES_CONFIG" != none ; then
-
-CPPFLAGS="`$XCURSES_CONFIG --cflags` $CPPFLAGS"
-LIBS="`$XCURSES_CONFIG --libs` $LIBS"
-
-cf_cv_lib_XCurses=yes
-
-else
-
-LDFLAGS="$LDFLAGS $X_LIBS"
-
-test -n "$verbose" && echo " checking additions to CFLAGS" 1>&6
-
-echo "${as_me-configure}:6433: testing checking additions to CFLAGS ..." 1>&5
-
-
-cf_check_cflags="$CFLAGS"
-cf_check_cppflags="$CPPFLAGS"
-
-cf_fix_cppflags=no
-cf_new_cflags=
-cf_new_cppflags=
-cf_new_extra_cppflags=
-
-for cf_add_cflags in $X_CFLAGS
-do
-case $cf_fix_cppflags in
-no)
- case $cf_add_cflags in #(vi
- -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
- case $cf_add_cflags in
- -D*)
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
- if test $cf_fix_cppflags = yes ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- elif test "${cf_tst_cflags}" = "\"'" ; then
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
- continue
- fi
- ;;
- esac
- case "$CPPFLAGS" in
- *$cf_add_cflags) #(vi
- ;;
- *) #(vi
- cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
- ;;
- esac
- ;;
- *)
- cf_new_cflags="$cf_new_cflags $cf_add_cflags"
- ;;
- esac
- ;;
-yes)
- cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
-
- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
-
- test "${cf_add_cflags}" != "${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=no
- ;;
-esac
-done
-
-if test -n "$cf_new_cflags" ; then
- test -n "$verbose" && echo " add to \$CFLAGS $cf_new_cflags" 1>&6
-
-echo "${as_me-configure}:6495: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
-
-
- CFLAGS="$CFLAGS $cf_new_cflags"
-fi
-
-if test -n "$cf_new_cppflags" ; then
- test -n "$verbose" && echo " add to \$CPPFLAGS $cf_new_cppflags" 1>&6
-
-echo "${as_me-configure}:6504: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
-
-
- CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
-fi
-
-if test -n "$cf_new_extra_cppflags" ; then
- test -n "$verbose" && echo " add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
-
-echo "${as_me-configure}:6513: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
-
-
- EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
-fi
-
-
-
-
-if test "$cf_check_cflags" != "$CFLAGS" ; then
-cat > conftest.$ac_ext <<EOF
-#line 6524 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int main() {
-printf("Hello world");
-; return 0; }
-EOF
-if { (eval echo configure:6531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- test -n "$verbose" && echo " test-compile failed. Undoing change to \$CFLAGS" 1>&6
-
-echo "${as_me-configure}:6539: testing test-compile failed. Undoing change to \$CFLAGS ..." 1>&5
-
-
- if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
- test -n "$verbose" && echo " but keeping change to \$CPPFLAGS" 1>&6
-
-echo "${as_me-configure}:6545: testing but keeping change to \$CPPFLAGS ..." 1>&5
-
-
- fi
- CFLAGS="$cf_check_flags"
-fi
-rm -f conftest*
-fi
-
-echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:6555: checking for XOpenDisplay in -lX11" >&5
-ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 6563 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char XOpenDisplay();
-
-int main() {
-XOpenDisplay()
-; return 0; }
-EOF
-if { (eval echo configure:6574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- LIBS="-lX11 $LIBS"
-else
- echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for XCurses library""... $ac_c" 1>&6
-echo "configure:6595: checking for XCurses library" >&5
-if eval "test \"`echo '$''{'cf_cv_lib_XCurses'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-LIBS="-lXCurses $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 6602 "configure"
-#include "confdefs.h"
-
-#include <xcurses.h>
-char *XCursesProgramName = "test";
-
-int main() {
-XCursesExit();
-; return 0; }
-EOF
-if { (eval echo configure:6612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_cv_lib_XCurses=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_lib_XCurses=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$cf_cv_lib_XCurses" 1>&6
-
-fi
-
-if test $cf_cv_lib_XCurses = yes ; then
- cat >> confdefs.h <<\EOF
-#define UNIX 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define XCURSES 1
-EOF
-
- cat >> confdefs.h <<\EOF
-#define HAVE_XCURSES 1
-EOF
-
-else
- { echo "configure: error: Cannot link with XCurses" 1>&2; exit 1; }
-fi
-
- ;;
-esac
-
-
-
-case $cf_cv_screen in #(vi
-pdcurses) #(vi
- ;;
-*)
- # look for curses-related libraries
- echo $ac_n "checking for new_panel in -lpanel$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:6657: checking for new_panel in -lpanel$cf_cv_libtype" >&5
-ac_lib_var=`echo panel$cf_cv_libtype'_'new_panel | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lpanel$cf_cv_libtype $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 6665 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char new_panel();
-
-int main() {
-new_panel()
-; return 0; }
-EOF
-if { (eval echo configure:6676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo panel$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lpanel$cf_cv_libtype $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
- echo $ac_n "checking for menu_driver in -lmenu$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:6704: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
-ac_lib_var=`echo menu$cf_cv_libtype'_'menu_driver | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lmenu$cf_cv_libtype $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 6712 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char menu_driver();
-
-int main() {
-menu_driver()
-; return 0; }
-EOF
-if { (eval echo configure:6723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo menu$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lmenu$cf_cv_libtype $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
- echo $ac_n "checking for form_driver in -lform$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:6751: checking for form_driver in -lform$cf_cv_libtype" >&5
-ac_lib_var=`echo form$cf_cv_libtype'_'form_driver | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lform$cf_cv_libtype $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 6759 "configure"
-#include "confdefs.h"
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char form_driver();
-
-int main() {
-form_driver()
-; return 0; }
-EOF
-if { (eval echo configure:6770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo form$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_lib 1
-EOF
-
- LIBS="-lform$cf_cv_libtype $LIBS"
-
-else
- echo "$ac_t""no" 1>&6
-fi
-
-
- # look for curses-related headers
- for ac_hdr in \
- nc_alloc.h \
- nomacros.h \
- form.h \
- menu.h \
- panel.h \
-
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6809: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 6814 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6819: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
- ;;
-esac
-
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:6849: checking return type of signal handlers" >&5
-if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 6854 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
-
-int main() {
-int i;
-; return 0; }
-EOF
-if { (eval echo configure:6871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_type_signal=void
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_type_signal=int
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
-EOF
-
-
-
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:6891: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 6896 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6904: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- ac_cv_header_stdc=yes
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 6921 "configure"
-#include "confdefs.h"
-#include <string.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "memchr" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 6939 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- egrep "free" >/dev/null 2>&1; then
- :
-else
- rm -rf conftest*
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
- :
-else
- cat > conftest.$ac_ext <<EOF
-#line 6960 "configure"
-#include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
-
-EOF
-if { (eval echo configure:6971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
-
-fi
-fi
-
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
- cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
-
-fi
-
-echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:6995: checking whether time.h and sys/time.h may both be included" >&5
-if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 7000 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-int main() {
-struct tm *tp;
-; return 0; }
-EOF
-if { (eval echo configure:7009: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_header_time=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- ac_cv_header_time=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_time" 1>&6
-if test $ac_cv_header_time = yes; then
- cat >> confdefs.h <<\EOF
-#define TIME_WITH_SYS_TIME 1
-EOF
-
-fi
-
-for ac_hdr in \
-getopt.h \
-locale.h \
-stdarg.h \
-sys/ioctl.h \
-sys/select.h \
-sys/time.h \
-termios.h \
-unistd.h \
-
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:7042: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 7047 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7052: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-for ac_func in \
-gettimeofday \
-mblen \
-mbrlen \
-mbrtowc \
-mbsrtowcs \
-mbstowcs \
-mbtowc \
-strdup \
-wcsrtombs \
-wcstombs \
-
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7093: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.$ac_ext <<EOF
-#line 7098 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:7121: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
- cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-
-else
- echo "$ac_t""no" 1>&6
-fi
-done
-
-
-
-echo $ac_n "checking if we must define _XOPEN_SOURCE_EXTENDED""... $ac_c" 1>&6
-echo "configure:7148: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
-if eval "test \"`echo '$''{'cf_cv_need_xopen_extension'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-cat > conftest.$ac_ext <<EOF
-#line 7154 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-
- long x = winnstr(stdscr, "", 0);
- int x1, y1;
- getbegyx(stdscr, y1, x1)
-; return 0; }
-EOF
-if { (eval echo configure:7166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_cv_need_xopen_extension=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cat > conftest.$ac_ext <<EOF
-#line 7174 "configure"
-#include "confdefs.h"
-
-#define _XOPEN_SOURCE_EXTENDED
-#include <stdlib.h>
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-
- long x = winnstr(stdscr, "", 0);
- int x1, y1;
- getbegyx(stdscr, y1, x1)
-; return 0; }
-EOF
-if { (eval echo configure:7187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_cv_need_xopen_extension=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_need_xopen_extension=unknown
-fi
-rm -f conftest*
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$cf_cv_need_xopen_extension" 1>&6
-test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
-
-
-echo $ac_n "checking for term.h""... $ac_c" 1>&6
-echo "configure:7206: checking for term.h" >&5
-if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-
-# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
-# for <term.h> if we do not find the variant.
-for cf_header in \
- `echo ${cf_cv_ncurses_header-curses.h} | sed -e 's%/.*%/%'`term.h \
- term.h
-do
- cat > conftest.$ac_ext <<EOF
-#line 7219 "configure"
-#include "confdefs.h"
-
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <${cf_header}>
-int main() {
-WINDOW *x
-; return 0; }
-EOF
-if { (eval echo configure:7228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_term_header=$cf_header
- break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_term_header=no
-fi
-rm -f conftest*
-done
-
-fi
-
-echo "$ac_t""$cf_cv_term_header" 1>&6
-
-case $cf_cv_term_header in #(vi
-term.h) #(vi
- cat >> confdefs.h <<\EOF
-#define HAVE_TERM_H 1
-EOF
-
- ;;
-ncurses/term.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_TERM_H 1
-EOF
-
- ;;
-ncursesw/term.h)
- cat >> confdefs.h <<\EOF
-#define HAVE_NCURSESW_TERM_H 1
-EOF
-
- ;;
-esac
-
-
-
-
-for cf_func in \
-chgat \
-color_set \
-filter \
-getbegx \
-getcurx \
-getmaxx \
-getnstr \
-getparx \
-getwin \
-mvvline \
-mvwvline \
-napms \
-putwin \
-resize_term \
-resizeterm \
-ripoffline \
-setupterm \
-slk_color \
-slk_init \
-termattrs \
-tgetent \
-tigetnum \
-tigetstr \
-typeahead \
-use_default_colors \
-vsscanf \
-wchgat \
-winsstr \
-wresize \
-
-do
-
-cf_tr_func=`echo "$cf_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- echo $ac_n "checking for ${cf_func}""... $ac_c" 1>&6
-echo "configure:7305: checking for ${cf_func}" >&5
-
-echo "${as_me-configure}:7307: testing ${cf_func} ..." 1>&5
-
- if eval "test \"`echo '$''{'cf_cv_func_$cf_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- eval cf_result='$ac_cv_func_'$cf_func
- if test ".$cf_result" != ".no"; then
- cat > conftest.$ac_ext <<EOF
-#line 7316 "configure"
-#include "confdefs.h"
-
-#ifdef HAVE_XCURSES
-#include <xcurses.h>
-char * XCursesProgramName = "test";
-#else
-#include <${cf_cv_ncurses_header-curses.h}>
-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSESW_TERM_H)
-#include <ncursesw/term.h>
-#else
-#if defined(NCURSES_VERSION) && defined(HAVE_NCURSES_TERM_H)
-#include <ncurses/term.h>
-#else
-#ifdef HAVE_TERM_H
-#include <term.h>
-#endif
-#endif
-#endif
-#endif
-int main() {
-
-#ifndef ${cf_func}
-long foo = (long)(&${cf_func});
-${cf_cv_main_return-return}(foo == 0);
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:7345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_result=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_result=no
-fi
-rm -f conftest*
- fi
- eval 'cf_cv_func_'$cf_func'=$cf_result'
-
-fi
-
- # use the computed/retrieved cache-value:
- eval 'cf_result=$cf_cv_func_'$cf_func
- echo "$ac_t""$cf_result" 1>&6
- if test $cf_result != no; then
- cat >> confdefs.h <<EOF
-#define HAVE_${cf_tr_func} 1
-EOF
-
- fi
-done
-
-
-echo $ac_n "checking for ncurses extended functions""... $ac_c" 1>&6
-echo "configure:7373: checking for ncurses extended functions" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_ext_funcs'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-cat > conftest.$ac_ext <<EOF
-#line 7379 "configure"
-#include "confdefs.h"
-
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-
- (void) assume_default_colors (0, 0);
- (void) curses_version ();
- (void) define_key (0, 0);
- (void) is_term_resized (0, 0);
- (void) key_defined (0);
- (void) keybound (0, 0);
- (void) keyok (0, 0);
- (void) resize_term (0, 0);
- (void) resizeterm (0, 0);
- (void) use_default_colors ();
- (void) use_extended_names (0);
- (void) wresize (0, 0, 0);
-; return 0; }
-EOF
-if { (eval echo configure:7399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_cv_ncurses_ext_funcs=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_ncurses_ext_funcs=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$cf_cv_ncurses_ext_funcs" 1>&6
-test "$cf_cv_ncurses_ext_funcs" != no && cat >> confdefs.h <<\EOF
-#define NCURSES_EXT_FUNCS 1
-EOF
-
-
-echo $ac_n "checking for wide-character functions""... $ac_c" 1>&6
-echo "configure:7419: checking for wide-character functions" >&5
-if eval "test \"`echo '$''{'cf_cv_widechar_funcs'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-cat > conftest.$ac_ext <<EOF
-#line 7425 "configure"
-#include "confdefs.h"
-
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-
- static wchar_t src_wchar[2];
- static cchar_t dst_cchar;
- setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
-
-; return 0; }
-EOF
-if { (eval echo configure:7437: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_cv_widechar_funcs=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_widechar_funcs=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$cf_cv_widechar_funcs" 1>&6
-if test "$cf_cv_widechar_funcs" != no ; then
- cat >> confdefs.h <<\EOF
-#define USE_WIDEC_SUPPORT 1
-EOF
-
-else
- cat >> confdefs.h <<\EOF
-#define USE_WIDEC_SUPPORT 0
-EOF
-
-fi
-
-
-echo $ac_n "checking if sys/time.h works with sys/select.h""... $ac_c" 1>&6
-echo "configure:7465: checking if sys/time.h works with sys/select.h" >&5
-if eval "test \"`echo '$''{'cf_cv_sys_time_select'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-cat > conftest.$ac_ext <<EOF
-#line 7471 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:7486: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_cv_sys_time_select=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_cv_sys_time_select=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$cf_cv_sys_time_select" 1>&6
-test "$cf_cv_sys_time_select" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_SYS_TIME_SELECT 1
-EOF
-
-
-
-echo $ac_n "checking for function curses_version""... $ac_c" 1>&6
-echo "configure:7507: checking for function curses_version" >&5
-if eval "test \"`echo '$''{'cf_cv_func_curses_version'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-if test "$cross_compiling" = yes; then
- cf_cv_func_curses_version=unknown
-else
- cat > conftest.$ac_ext <<EOF
-#line 7516 "configure"
-#include "confdefs.h"
-
-#include <${cf_cv_ncurses_header-curses.h}>
-int main()
-{
- char temp[1024];
- sprintf(temp, "%s\n", curses_version());
- ${cf_cv_main_return-return}(0);
-}
-
-EOF
-if { (eval echo configure:7528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
- cf_cv_func_curses_version=yes
-
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -fr conftest*
- cf_cv_func_curses_version=no
-
-fi
-rm -fr conftest*
-fi
-
-rm -f core
-fi
-
-echo "$ac_t""$cf_cv_func_curses_version" 1>&6
-test "$cf_cv_func_curses_version" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_CURSES_VERSION 1
-EOF
-
-
-
-echo $ac_n "checking for alternate character set array""... $ac_c" 1>&6
-echo "configure:7553: checking for alternate character set array" >&5
-if eval "test \"`echo '$''{'cf_cv_curses_acs_map'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
-cf_cv_curses_acs_map=unknown
-for name in acs_map _acs_map __acs_map _nc_acs_map
-do
-cat > conftest.$ac_ext <<EOF
-#line 7562 "configure"
-#include "confdefs.h"
-
-#include <${cf_cv_ncurses_header-curses.h}>
-
-int main() {
-
-$name['k'] = ACS_PLUS
-
-; return 0; }
-EOF
-if { (eval echo configure:7573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_cv_curses_acs_map=$name; break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-done
-
-fi
-
-echo "$ac_t""$cf_cv_curses_acs_map" 1>&6
-
-test "$cf_cv_curses_acs_map" != unknown && cat >> confdefs.h <<EOF
-#define CURSES_ACS_ARRAY $cf_cv_curses_acs_map
-EOF
-
-
-
-echo $ac_n "checking for wide alternate character set array""... $ac_c" 1>&6
-echo "configure:7594: checking for wide alternate character set array" >&5
-if eval "test \"`echo '$''{'cf_cv_curses_wacs_map'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
-
- cf_cv_curses_wacs_map=unknown
- for name in wacs_map _wacs_map __wacs_map _nc_wacs
- do
- cat > conftest.$ac_ext <<EOF
-#line 7603 "configure"
-#include "confdefs.h"
-
-#ifndef _XOPEN_SOURCE_EXTENDED
-#define _XOPEN_SOURCE_EXTENDED
-#endif
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-$name['k'] = *WACS_PLUS
-; return 0; }
-EOF
-if { (eval echo configure:7614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- cf_cv_curses_wacs_map=$name
- break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
- done
-fi
-
-echo "$ac_t""$cf_cv_curses_wacs_map" 1>&6
-
-
-echo $ac_n "checking for type attr_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
-echo "configure:7630: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5
-cat > conftest.$ac_ext <<EOF
-#line 7632 "configure"
-#include "confdefs.h"
-
-#ifndef _XOPEN_SOURCE_EXTENDED
-#define _XOPEN_SOURCE_EXTENDED
-#endif
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-
-attr_t foo
-
-; return 0; }
-EOF
-if { (eval echo configure:7645: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_result=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_result=no
-fi
-rm -f conftest*
-echo "$ac_t""$cf_result" 1>&6
-if test $cf_result = yes ; then
-
-cf_result=`echo "have_type_attr_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- cat >> confdefs.h <<EOF
-#define $cf_result 1
-EOF
-
-else
- cat >> confdefs.h <<EOF
-#define attr_t long
-EOF
-
-fi
-
-
-echo $ac_n "checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
-echo "configure:7673: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5
-cat > conftest.$ac_ext <<EOF
-#line 7675 "configure"
-#include "confdefs.h"
-
-#ifndef _XOPEN_SOURCE_EXTENDED
-#define _XOPEN_SOURCE_EXTENDED
-#endif
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-
-mbstate_t foo
-
-; return 0; }
-EOF
-if { (eval echo configure:7688: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_result=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_result=no
-fi
-rm -f conftest*
-echo "$ac_t""$cf_result" 1>&6
-if test $cf_result = yes ; then
-
-cf_result=`echo "have_type_mbstate_t" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
- cat >> confdefs.h <<EOF
-#define $cf_result 1
-EOF
-
-else
- cat >> confdefs.h <<EOF
-#define mbstate_t long
-EOF
-
-fi
-
-
-TEST_ARGS="$LIBS"
-LIBS=
-
-
-trap '' 1 2 15
-cat > confcache <<\EOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs. It is not useful on other systems.
-# If it contains results you don't want to keep, you may remove or edit it.
-#
-# By default, configure uses ./config.cache as the cache file,
-# creating it if it does not exist already. You can give configure
-# the --cache-file=FILE option to use a different cache file; that is
-# what configure does when it calls configure scripts in
-# subdirectories, so they share the cache.
-# Giving --cache-file=/dev/null disables caching, for debugging configure.
-# config.status only pays attention to the cache file if you give it the
-# --recheck option to rerun configure.
-#
-EOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(set) 2>&1 |
- case `(ac_space=' '; set | grep ac_space) 2>&1` in
- *ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote substitution
- # turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- -e "s/'/'\\\\''/g" \
- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
- ;;
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
- ;;
- esac >> confcache
-if cmp -s $cache_file confcache; then
- :
-else
- if test -w $cache_file; then
- echo "updating cache $cache_file"
- cat confcache > $cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
-fi
-rm -f confcache
-
-trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Any assignment to VPATH causes Sun make to only execute
-# the first set of double-colon rules, so remove it if not needed.
-# If there is a colon in the path, we need to keep it.
-if test "x$srcdir" = x.; then
- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-fi
-
-trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
-
-DEFS=-DHAVE_CONFIG_H
-
-# Without the "./", some shells look in PATH for config.status.
-: ${CONFIG_STATUS=./config.status}
-
-echo creating $CONFIG_STATUS
-rm -f $CONFIG_STATUS
-cat > $CONFIG_STATUS <<EOF
-#! /bin/sh
-# Generated automatically by configure.
-# Run this file to recreate the current configuration.
-# This directory was configured as follows,
-# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-#
-# $0 $ac_configure_args
-#
-# Compiler output produced by configure, useful for debugging
-# configure, is in ./config.log if it exists.
-
-ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
-for ac_option
-do
- case "\$ac_option" in
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
- echo "$CONFIG_STATUS generated by autoconf version 2.13.20030927"
- exit 0 ;;
- -help | --help | --hel | --he | --h)
- echo "\$ac_cs_usage"; exit 0 ;;
- *) echo "\$ac_cs_usage"; exit 1 ;;
- esac
-done
-
-ac_given_srcdir=$srcdir
-
-trap 'rm -fr `echo "Makefile ncurses_cfg.h:ncurses_tst.hin" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
-EOF
-cat >> $CONFIG_STATUS <<EOF
-
-# Protect against being on the right side of a sed subst in config.status.
-sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
-$ac_vpsub
-$extrasub
-s%@SHELL@%$SHELL%g
-s%@CFLAGS@%$CFLAGS%g
-s%@CPPFLAGS@%$CPPFLAGS%g
-s%@CXXFLAGS@%$CXXFLAGS%g
-s%@FFLAGS@%$FFLAGS%g
-s%@DEFS@%$DEFS%g
-s%@LDFLAGS@%$LDFLAGS%g
-s%@LIBS@%$LIBS%g
-s%@exec_prefix@%$exec_prefix%g
-s%@prefix@%$prefix%g
-s%@program_transform_name@%$program_transform_name%g
-s%@bindir@%$bindir%g
-s%@sbindir@%$sbindir%g
-s%@libexecdir@%$libexecdir%g
-s%@datadir@%$datadir%g
-s%@sysconfdir@%$sysconfdir%g
-s%@sharedstatedir@%$sharedstatedir%g
-s%@localstatedir@%$localstatedir%g
-s%@libdir@%$libdir%g
-s%@includedir@%$includedir%g
-s%@oldincludedir@%$oldincludedir%g
-s%@infodir@%$infodir%g
-s%@mandir@%$mandir%g
-s%@host@%$host%g
-s%@host_alias@%$host_alias%g
-s%@host_cpu@%$host_cpu%g
-s%@host_vendor@%$host_vendor%g
-s%@host_os@%$host_os%g
-s%@SET_MAKE@%$SET_MAKE%g
-s%@CC@%$CC%g
-s%@CPP@%$CPP%g
-s%@AWK@%$AWK%g
-s%@CC_G_OPT@%$CC_G_OPT%g
-s%@CC_SHARED_OPTS@%$CC_SHARED_OPTS%g
-s%@DFT_DEP_SUFFIX@%$DFT_DEP_SUFFIX%g
-s%@DFT_OBJ_SUBDIR@%$DFT_OBJ_SUBDIR%g
-s%@DFT_UPR_MODEL@%$DFT_UPR_MODEL%g
-s%@LD@%$LD%g
-s%@LDFLAGS_SHARED@%$LDFLAGS_SHARED%g
-s%@LDFLAGS_STATIC@%$LDFLAGS_STATIC%g
-s%@LD_MODEL@%$LD_MODEL%g
-s%@LD_SHARED_OPTS@%$LD_SHARED_OPTS%g
-s%@LIBTOOL@%$LIBTOOL%g
-s%@LIB_CLEAN@%$LIB_CLEAN%g
-s%@LIB_COMPILE@%$LIB_COMPILE%g
-s%@LIB_LINK@%$LIB_LINK%g
-s%@LINK_TESTS@%$LINK_TESTS%g
-s%@LINT@%$LINT%g
-s%@LINT_OPTS@%$LINT_OPTS%g
-s%@LOCAL_LDFLAGS@%$LOCAL_LDFLAGS%g
-s%@MATH_LIB@%$MATH_LIB%g
-s%@PTHREAD@%$PTHREAD%g
-s%@TEST_ARGS@%$TEST_ARGS%g
-s%@TEST_DEPS@%$TEST_DEPS%g
-s%@TEST_LIBS@%$TEST_LIBS%g
-s%@TINFO_ARGS@%$TINFO_ARGS%g
-s%@cf_cv_abi_version@%$cf_cv_abi_version%g
-s%@cf_cv_rel_version@%$cf_cv_rel_version%g
-s%@EXEEXT@%$EXEEXT%g
-s%@OBJEXT@%$OBJEXT%g
-s%@EXTRA_CPPFLAGS@%$EXTRA_CPPFLAGS%g
-s%@ECHO_LT@%$ECHO_LT%g
-s%@ECHO_LD@%$ECHO_LD%g
-s%@RULE_CC@%$RULE_CC%g
-s%@SHOW_CC@%$SHOW_CC%g
-s%@ECHO_CC@%$ECHO_CC%g
-s%@EXTRA_CFLAGS@%$EXTRA_CFLAGS%g
-s%@X_CFLAGS@%$X_CFLAGS%g
-s%@X_PRE_LIBS@%$X_PRE_LIBS%g
-s%@X_LIBS@%$X_LIBS%g
-s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
-s%@XCURSES_CONFIG@%$XCURSES_CONFIG%g
-
-CEOF
-EOF
-
-cat >> $CONFIG_STATUS <<\EOF
-
-# Split the substitutions into bite-sized pieces for seds with
-# small command number limits, like on Digital OSF/1 and HP-UX.
-ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
-ac_file=1 # Number of current file.
-ac_beg=1 # First line for current file.
-ac_end=$ac_max_sed_cmds # Line after last line for current file.
-ac_more_lines=:
-ac_sed_cmds=""
-while $ac_more_lines; do
- if test $ac_beg -gt 1; then
- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
- else
- sed "${ac_end}q" conftest.subs > conftest.s$ac_file
- fi
- if test ! -s conftest.s$ac_file; then
- ac_more_lines=false
- rm -f conftest.s$ac_file
- else
- if test -z "$ac_sed_cmds"; then
- ac_sed_cmds="sed -f conftest.s$ac_file"
- else
- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
- fi
- ac_file=`expr $ac_file + 1`
- ac_beg=$ac_end
- ac_end=`expr $ac_end + $ac_max_sed_cmds`
- fi
-done
-if test -z "$ac_sed_cmds"; then
- ac_sed_cmds=cat
-fi
-EOF
-
-cat >> $CONFIG_STATUS <<EOF
-
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
-
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
- # A "../" for each directory in $ac_dir_suffix.
- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
- else
- ac_dir_suffix= ac_dots=
- fi
-
- case "$ac_given_srcdir" in
- .) srcdir=.
- if test -z "$ac_dots"; then top_srcdir=.
- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
- *) # Relative path.
- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
- top_srcdir="$ac_dots$ac_given_srcdir" ;;
- esac
-
-
- echo creating "$ac_file"
- rm -f "$ac_file"
- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
- case "$ac_file" in
- *Makefile*) ac_comsub="1i\\
-# $configure_input" ;;
- *) ac_comsub= ;;
- esac
-
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- sed -e "$ac_comsub
-s%@configure_input@%$configure_input%g
-s%@srcdir@%$srcdir%g
-s%@top_srcdir@%$top_srcdir%g
-" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
-fi; done
-rm -f conftest.s*
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
-ac_dC='\3'
-ac_dD='%g'
-# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
-ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_uB='\([ ]\)%\1#\2define\3'
-ac_uC=' '
-ac_uD='\4%g'
-# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-ac_eB='$%\1#\2define\3'
-ac_eC=' '
-ac_eD='%g'
-
-if test "${CONFIG_HEADERS+set}" != set; then
-EOF
-cat >> $CONFIG_STATUS <<EOF
- CONFIG_HEADERS="ncurses_cfg.h:ncurses_tst.hin"
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-fi
-for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
- case "$ac_file" in
- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
- *) ac_file_in="${ac_file}.in" ;;
- esac
-
- echo creating $ac_file
-
- rm -f conftest.frag conftest.in conftest.out
- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
- cat $ac_file_inputs > conftest.in
-
-EOF
-
-
-# Transform confdefs.h into a list of #define's. We won't use it as a sed
-# script, but as data to insert where we see @DEFS@. We expect AC_SAVE_DEFS to
-# be either 'cat' or 'sort'.
-cat confdefs.h >conftest.vals
-
-# Break up conftest.vals because some shells have a limit on
-# the size of here documents, and old seds have small limits too.
-
-rm -f conftest.tail
-echo ' rm -f conftest.frag' >> $CONFIG_STATUS
-while :
-do
- ac_lines=`grep -c . conftest.vals`
- # grep -c gives empty output for an empty file on some AIX systems.
- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
- # Write chunks of a limited-size here document to conftest.frag.
- echo ' cat >> conftest.frag <<CEOF' >> $CONFIG_STATUS
- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
- echo 'CEOF' >> $CONFIG_STATUS
- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
- rm -f conftest.vals
- mv conftest.tail conftest.vals
-done
-rm -f conftest.vals
-
-# Run sed to substitute the contents of conftest.frag into conftest.in at the
-# marker @DEFS@.
-echo ' cat >> conftest.edit <<CEOF
-/@DEFS@/r conftest.frag
-/@DEFS@/d
-CEOF
-sed -f conftest.edit conftest.in > conftest.out
-rm -f conftest.in
-mv conftest.out conftest.in
-rm -f conftest.edit conftest.frag
-' >> $CONFIG_STATUS
-
-
-cat >> $CONFIG_STATUS <<\EOF
- rm -f conftest.frag conftest.h
- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
- cat conftest.in >> conftest.h
- rm -f conftest.in
- if cmp -s $ac_file conftest.h 2>/dev/null; then
- echo "$ac_file is unchanged"
- rm -f conftest.h
- else
- # Remove last slash and all that follows it. Not all systems have dirname.
- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
- # The file is in a subdirectory.
- test ! -d "$ac_dir" && mkdir "$ac_dir"
- fi
- rm -f $ac_file
- mv conftest.h $ac_file
- fi
-fi; done
-
-EOF
-cat >> $CONFIG_STATUS <<EOF
-# Extra initialization commands, if any
-
-AWK="$AWK"
-ECHO_LD="$ECHO_LD"
-
-EOF
-cat >> $CONFIG_STATUS <<\EOF
-# Extra commands, if any
-
-
-for cf_dir in .
-do
- if test ! -d $srcdir/$cf_dir; then
- continue
- elif test -f $srcdir/$cf_dir/programs; then
- $AWK -f $srcdir/mk-test.awk ECHO_LINK="$ECHO_LD" $srcdir/$cf_dir/programs >>$cf_dir/Makefile
- fi
-done
-
-
- cat >>Makefile <<TEST_EOF
-
-# These rules are generated so we do not rely on suffix rules, which do not
-# work consistently for different make-programs (the '\$(MODEL)/' confuses
-# some, and the '\$x' confuses others).
-TEST_EOF
-LIST=`sed -e 's/[ ].*//' -e '/^[#@]/d' $srcdir/modules`
-for N in $LIST
-do
- cat >>Makefile <<TEST_EOF
-
-\$(MODEL)/$N.o : $N.c \\
- test.priv.h \\
- ncurses_cfg.h
- @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) $N.c
-TEST_EOF
-done
-
-exit 0
-EOF
-chmod +x $CONFIG_STATUS
-rm -fr confdefs* $ac_clean_files
-test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-
diff --git a/test/configure.in b/test/configure.in
deleted file mode 100644
index 66985a4..0000000
--- a/test/configure.in
+++ /dev/null
@@ -1,299 +0,0 @@
-dnl***************************************************************************
-dnl Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
-dnl *
-dnl Permission is hereby granted, free of charge, to any person obtaining a *
-dnl copy of this software and associated documentation files (the *
-dnl "Software"), to deal in the Software without restriction, including *
-dnl without limitation the rights to use, copy, modify, merge, publish, *
-dnl distribute, distribute with modifications, sublicense, and/or sell *
-dnl copies of the Software, and to permit persons to whom the Software is *
-dnl furnished to do so, subject to the following conditions: *
-dnl *
-dnl The above copyright notice and this permission notice shall be included *
-dnl in all copies or substantial portions of the Software. *
-dnl *
-dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-dnl *
-dnl Except as contained in this notice, the name(s) of the above copyright *
-dnl holders shall not be used in advertising or otherwise to promote the *
-dnl sale, use or other dealings in this Software without prior written *
-dnl authorization. *
-dnl***************************************************************************
-dnl
-dnl Author: Thomas E. Dickey 1996, etc.
-dnl
-dnl $Id: configure.in,v 1.67 2008/09/06 22:10:23 tom Exp $
-dnl This is a simple configuration-script for the ncurses test programs that
-dnl allows the test-directory to be separately configured against a reference
-dnl system (i.e., sysvr4 curses)
-dnl
-dnl If you're configuring ncurses, you shouldn't need to use this script.
-dnl It's only for testing purposes.
-dnl
-dnl See http://invisible-island.net/autoconf/ for additional information.
-dnl ---------------------------------------------------------------------------
-AC_PREREQ(2.13.20020210)
-AC_INIT(ncurses.c)
-AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin)
-
-CF_INHERIT_SCRIPT(config.guess)
-CF_INHERIT_SCRIPT(config.sub)
-CF_CHECK_CACHE
-
-AC_PROG_MAKE_SET
-AC_PROG_CC
-AC_PROG_CPP
-AC_PROG_AWK
-
-dnl Things that we don't need (or must override) if we're not building ncurses
-CC_G_OPT="-g" AC_SUBST(CC_G_OPT)
-CC_SHARED_OPTS=unknown AC_SUBST(CC_SHARED_OPTS)
-CPPFLAGS="$CPPFLAGS" AC_SUBST(CPPFLAGS)
-DFT_DEP_SUFFIX="" AC_SUBST(DFT_DEP_SUFFIX)
-DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'` AC_SUBST(DFT_OBJ_SUBDIR)
-DFT_UPR_MODEL="NORMAL" AC_SUBST(DFT_UPR_MODEL)
-LD="ld" AC_SUBST(LD)
-LDFLAGS_SHARED="" AC_SUBST(LDFLAGS_SHARED)
-LDFLAGS_STATIC="" AC_SUBST(LDFLAGS_STATIC)
-LD_MODEL="" AC_SUBST(LD_MODEL)
-LD_SHARED_OPTS="" AC_SUBST(LD_SHARED_OPTS)
-LIBTOOL="" AC_SUBST(LIBTOOL)
-LIB_CLEAN="" AC_SUBST(LIB_CLEAN)
-LIB_COMPILE="" AC_SUBST(LIB_COMPILE)
-LIB_LINK='${CC}' AC_SUBST(LIB_LINK)
-LINK_TESTS="" AC_SUBST(LINK_TESTS)
-LINT=lint AC_SUBST(LINT)
-LINT_OPTS="" AC_SUBST(LINT_OPTS)
-LOCAL_LDFLAGS="" AC_SUBST(LOCAL_LDFLAGS)
-MATH_LIB="-lm" AC_SUBST(MATH_LIB)
-PTHREAD="-lm" AC_SUBST(PTHREAD)
-TEST_ARGS="" AC_SUBST(TEST_ARGS)
-TEST_DEPS="" AC_SUBST(TEST_DEPS)
-TEST_LIBS="" AC_SUBST(TEST_LIBS)
-TINFO_ARGS='$(LIBS_CURSES)' AC_SUBST(TINFO_ARGS)
-cf_cv_abi_version="" AC_SUBST(cf_cv_abi_version)
-cf_cv_rel_version="" AC_SUBST(cf_cv_rel_version)
-
-cf_cv_screen=curses
-cf_cv_libtype=
-
-AC_EXEEXT
-AC_OBJEXT
-
-CF_ANSI_CC_REQD
-CF_GCC_ATTRIBUTES
-CF_XOPEN_SOURCE
-AC_C_CONST
-CF_SIG_ATOMIC_T
-
-CF_DISABLE_ECHO
-CF_ENABLE_WARNINGS
-
-CF_WITH_CURSES_DIR
-
-dnl SunOS 4.x
-AC_ARG_WITH(5lib,
- [ --with-5lib use SunOS sysv-libraries],
- [LIBS="-L/usr/5lib $LIBS"
- CPPFLAGS="$CPPFLAGS -I/usr/5include"])
-
-dnl ---------------------------------------------------------------------------
-dnl NcursesW, installed in conventional location
-AC_ARG_WITH(ncursesw,
- [ --with-ncursesw use wide ncurses-libraries (installed)],
- [cf_cv_screen=ncursesw],[
-
-dnl Ncurses, installed in conventional location
-AC_ARG_WITH(ncurses,
- [ --with-ncurses use ncurses-libraries (installed)],
- [cf_cv_screen=ncurses],[
-
-AC_ARG_WITH(pdcurses,
- [ --with-pdcurses compile/link with pdcurses X11 library],
- [cf_cv_screen=pdcurses])])])
-
-case $cf_cv_screen in
-curses)
- CF_CURSES_CPPFLAGS
- CF_NCURSES_VERSION
- CF_CURSES_LIBS
- ;;
-ncurses)
- CF_NCURSES_CPPFLAGS
- CF_NCURSES_LIBS
- ;;
-ncursesw)
- cf_cv_libtype=w
- CF_UTF8_LIB
- CF_NCURSES_CPPFLAGS(ncursesw)
- CF_NCURSES_LIBS(ncursesw)
- ;;
-pdcurses) #(vi
- CF_PDCURSES_X11
- ;;
-esac
-
-dnl If we've not specified a library, assume we're using sysvr4 libraries
-dnl installed conventionally (e.g., SunOS 5.x - solaris).
-
-dnl Autoconf builds up the $LIBS in reverse order
-
-case $cf_cv_screen in #(vi
-pdcurses) #(vi
- ;;
-*)
- # look for curses-related libraries
- AC_CHECK_LIB(panel$cf_cv_libtype,new_panel)
- AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver)
- AC_CHECK_LIB(form$cf_cv_libtype,form_driver)
-
- # look for curses-related headers
- AC_CHECK_HEADERS( \
- nc_alloc.h \
- nomacros.h \
- form.h \
- menu.h \
- panel.h \
- )
- ;;
-esac
-
-AC_TYPE_SIGNAL
-
-AC_STDC_HEADERS
-AC_HEADER_TIME
-AC_CHECK_HEADERS( \
-getopt.h \
-locale.h \
-stdarg.h \
-sys/ioctl.h \
-sys/select.h \
-sys/time.h \
-termios.h \
-unistd.h \
-)
-
-AC_CHECK_FUNCS( \
-gettimeofday \
-mblen \
-mbrlen \
-mbrtowc \
-mbsrtowcs \
-mbstowcs \
-mbtowc \
-strdup \
-wcsrtombs \
-wcstombs \
-)
-
-CF_CURSES_FUNCS( \
-chgat \
-color_set \
-filter \
-getbegx \
-getcurx \
-getmaxx \
-getnstr \
-getparx \
-getwin \
-mvvline \
-mvwvline \
-napms \
-putwin \
-resize_term \
-resizeterm \
-ripoffline \
-setupterm \
-slk_color \
-slk_init \
-termattrs \
-tgetent \
-tigetnum \
-tigetstr \
-typeahead \
-use_default_colors \
-vsscanf \
-wchgat \
-winsstr \
-wresize \
-)
-
-AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
-AC_TRY_LINK([
-#include <${cf_cv_ncurses_header-curses.h}>],
-[
- (void) assume_default_colors (0, 0);
- (void) curses_version ();
- (void) define_key (0, 0);
- (void) is_term_resized (0, 0);
- (void) key_defined (0);
- (void) keybound (0, 0);
- (void) keyok (0, 0);
- (void) resize_term (0, 0);
- (void) resizeterm (0, 0);
- (void) use_default_colors ();
- (void) use_extended_names (0);
- (void) wresize (0, 0, 0);],
- [cf_cv_ncurses_ext_funcs=yes],
- [cf_cv_ncurses_ext_funcs=no])
-])
-test "$cf_cv_ncurses_ext_funcs" != no && AC_DEFINE(NCURSES_EXT_FUNCS)
-
-AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
-AC_TRY_LINK([
-#include <${cf_cv_ncurses_header-curses.h}>],
-[
- static wchar_t src_wchar[2];
- static cchar_t dst_cchar;
- setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
- ],
- [cf_cv_widechar_funcs=yes],
- [cf_cv_widechar_funcs=no])
-])
-if test "$cf_cv_widechar_funcs" != no ; then
- AC_DEFINE(USE_WIDEC_SUPPORT,1)
-else
- AC_DEFINE(USE_WIDEC_SUPPORT,0)
-fi
-
-CF_SYS_TIME_SELECT
-CF_FUNC_CURSES_VERSION
-CF_CURSES_ACS_MAP
-CF_CURSES_WACS_MAP
-CF_CURSES_CHECK_TYPE(attr_t,long)
-CF_CURSES_CHECK_TYPE(mbstate_t,long)
-
-TEST_ARGS="$LIBS"
-LIBS=
-
-dnl ---------------------------------------------------------------------------
-
-AC_OUTPUT(Makefile,[
-CF_PRG_RULES([$srcdir/mk-test.awk ECHO_LINK="$ECHO_LD"], .)
- cat >>Makefile <<TEST_EOF
-
-# These rules are generated so we do not rely on suffix rules, which do not
-# work consistently for different make-programs (the '\$(MODEL)/' confuses
-# some, and the '\$x' confuses others).
-TEST_EOF
-LIST=`sed -e 's/[[ ]].*//' -e '/^[[#@]]/d' $srcdir/modules`
-for N in $LIST
-do
- cat >>Makefile <<TEST_EOF
-
-\$(MODEL)/$N.o : $N.c \\
- test.priv.h \\
- ncurses_cfg.h
- @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) $N.c
-TEST_EOF
-done
-],[
-AWK="$AWK"
-ECHO_LD="$ECHO_LD"
-],cat)
diff --git a/test/demo_altkeys b/test/demo_altkeys
deleted file mode 100755
index 98f3729..0000000
--- a/test/demo_altkeys
+++ /dev/null
Binary files differ
diff --git a/test/demo_altkeys.c b/test/demo_altkeys.c
deleted file mode 100644
index 9d46ac0..0000000
--- a/test/demo_altkeys.c
+++ /dev/null
@@ -1,163 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2005-2006,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: demo_altkeys.c,v 1.8 2008/04/12 22:06:22 tom Exp $
- *
- * Demonstrate the define_key() function.
- * Thomas Dickey - 2005/10/22
- */
-
-#include <test.priv.h>
-
-#if defined(NCURSES_VERSION) && NCURSES_EXT_FUNCS
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif
-
-#define MY_LOGFILE "demo_altkeys.log"
-#define MY_KEYS (KEY_MAX + 1)
-
-/*
- * Log the most recently-written line to our logfile
- */
-static void
-log_last_line(WINDOW *win)
-{
- FILE *fp;
- int y, x, n;
- char temp[256];
-
- if ((fp = fopen(MY_LOGFILE, "a")) != 0) {
- int need = sizeof(temp) - 1;
- if (need > COLS)
- need = COLS;
- getyx(win, y, x);
- wmove(win, y - 1, 0);
- n = winnstr(win, temp, need);
- while (n-- > 0) {
- if (isspace(UChar(temp[n])))
- temp[n] = '\0';
- else
- break;
- }
- wmove(win, y, x);
- fprintf(fp, "%s\n", temp);
- fclose(fp);
- }
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- int n;
- int ch;
-#if HAVE_GETTIMEOFDAY
- int secs, msecs;
- struct timeval current, previous;
-#endif
-
- unlink(MY_LOGFILE);
-
- newterm(0, stdout, stdin);
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-
- scrollok(stdscr, TRUE);
- keypad(stdscr, TRUE);
- move(0, 0);
-
- /* we do the define_key() calls after keypad(), since the first call to
- * keypad() initializes the corresponding data.
- */
- for (n = 0; n < 255; ++n) {
- char temp[10];
- sprintf(temp, "\033%c", n);
- define_key(temp, n + MY_KEYS);
- }
- for (n = KEY_MIN; n < KEY_MAX; ++n) {
- char *value;
- if ((value = keybound(n, 0)) != 0) {
- char *temp = typeMalloc(char, strlen(value) + 2);
- sprintf(temp, "\033%s", value);
- define_key(temp, n + MY_KEYS);
- free(temp);
- free(value);
- }
- }
-
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&previous, 0);
-#endif
-
- while ((ch = getch()) != ERR) {
- bool escaped = (ch >= MY_KEYS);
- const char *name = keyname(escaped ? (ch - MY_KEYS) : ch);
-
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&current, 0);
- secs = current.tv_sec - previous.tv_sec;
- msecs = (current.tv_usec - previous.tv_usec) / 1000;
- if (msecs < 0) {
- msecs += 1000;
- --secs;
- }
- if (msecs >= 1000) {
- secs += msecs / 1000;
- msecs %= 1000;
- }
- printw("%6d.%03d ", secs, msecs);
- previous = current;
-#endif
- printw("Keycode %d, name %s%s\n",
- ch,
- escaped ? "ESC-" : "",
- name != 0 ? name : "<null>");
- log_last_line(stdscr);
- clrtoeol();
- if (ch == 'q')
- break;
- }
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the ncurses library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/demo_defkey b/test/demo_defkey
deleted file mode 100755
index a99415b..0000000
--- a/test/demo_defkey
+++ /dev/null
Binary files differ
diff --git a/test/demo_defkey.c b/test/demo_defkey.c
deleted file mode 100644
index 195ef54..0000000
--- a/test/demo_defkey.c
+++ /dev/null
@@ -1,282 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: demo_defkey.c,v 1.19 2008/08/04 16:24:47 tom Exp $
- *
- * Demonstrate the define_key() function.
- * Thomas Dickey - 2002/11/23
- */
-
-#include <test.priv.h>
-
-#if defined(NCURSES_VERSION) && NCURSES_EXT_FUNCS
-
-#define MY_LOGFILE "demo_defkey.log"
-
-/*
- * Log the most recently-written line to our logfile
- */
-static void
-log_last_line(WINDOW *win)
-{
- FILE *fp;
- int y, x, n;
- char temp[256];
-
- if ((fp = fopen(MY_LOGFILE, "a")) != 0) {
- int need = sizeof(temp) - 1;
- if (need > COLS)
- need = COLS;
- getyx(win, y, x);
- wmove(win, y - 1, 0);
- n = winnstr(win, temp, need);
- while (n-- > 0) {
- if (isspace(UChar(temp[n])))
- temp[n] = '\0';
- else
- break;
- }
- wmove(win, y, x);
- fprintf(fp, "%s\n", temp);
- fclose(fp);
- }
-}
-
-/*
- * Convert a character to visible form.
- */
-static char *
-visichar(int ch)
-{
- static char temp[10];
-
- ch = UChar(ch);
- assert(ch >= 0 && ch < 256);
- if (ch == '\\') {
- strcpy(temp, "\\\\");
- } else if (ch == '\033') {
- strcpy(temp, "\\E");
- } else if (ch < ' ') {
- sprintf(temp, "\\%03o", ch);
- } else if (ch >= 127) {
- sprintf(temp, "\\%03o", ch);
- } else {
- sprintf(temp, "%c", ch);
- }
- return temp;
-}
-
-/*
- * Convert a string to visible form.
- */
-static char *
-visible(const char *string)
-{
- char *result = 0;
- unsigned need = 1;
- int pass;
- int n;
-
- if (string != 0 && *string != '\0') {
- for (pass = 0; pass < 2; ++pass) {
- for (n = 0; string[n] != '\0'; ++n) {
- char temp[80];
- strcpy(temp, visichar(string[n]));
- if (pass)
- strcat(result, temp);
- else
- need += strlen(temp);
- }
- if (!pass)
- result = typeCalloc(char, need);
- }
- } else {
- result = typeCalloc(char, 1);
- }
- return result;
-}
-
-static void
-really_define_key(WINDOW *win, const char *new_string, int code)
-{
- int rc;
- const char *code_name = keyname(code);
- char *old_string;
- char *vis_string = 0;
- char temp[80];
-
- if (code_name == 0) {
- sprintf(temp, "Keycode %d", code);
- code_name = temp;
- }
-
- if ((old_string = keybound(code, 0)) != 0) {
- wprintw(win, "%s is %s\n",
- code_name,
- vis_string = visible(old_string));
- } else {
- wprintw(win, "%s is not bound\n",
- code_name);
- }
- log_last_line(win);
-
- if (vis_string != 0) {
- free(vis_string);
- vis_string = 0;
- }
-
- vis_string = visible(new_string);
- if ((rc = key_defined(new_string)) > 0) {
- wprintw(win, "%s was bound to %s\n", vis_string, keyname(rc));
- log_last_line(win);
- } else if (new_string != 0 && rc < 0) {
- wprintw(win, "%s conflicts with longer strings\n", vis_string);
- log_last_line(win);
- }
- rc = define_key(new_string, code);
- if (rc == ERR) {
- wprintw(win, "%s unchanged\n", code_name);
- log_last_line(win);
- } else if (new_string != 0) {
- wprintw(win, "%s is now bound to %s\n",
- vis_string,
- code_name);
- log_last_line(win);
- } else if (old_string != 0) {
- wprintw(win, "%s deleted\n", code_name);
- log_last_line(win);
- }
- if (vis_string != 0)
- free(vis_string);
- if (old_string != 0)
- free(old_string);
-}
-
-static void
-duplicate(WINDOW *win, NCURSES_CONST char *name, int code)
-{
- char *value = tigetstr(name);
-
- if (value != 0) {
- const char *prefix = 0;
- char temp[BUFSIZ];
-
- if (!strncmp(value, "\033[", 2)) {
- prefix = "\033O";
- } else if (!strncmp(value, "\033O", 2)) {
- prefix = "\033[";
- }
- if (prefix != 0) {
- sprintf(temp, "%s%s", prefix, value + 2);
- really_define_key(win, temp, code);
- }
- }
-}
-
-static void
-redefine(WINDOW *win, char *string, int code)
-{
- really_define_key(win, string, code);
-}
-
-static void
-remove_definition(WINDOW *win, int code)
-{
- really_define_key(win, 0, code);
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- char *fkeys[12];
- int n;
- int ch;
- WINDOW *win;
-
- unlink(MY_LOGFILE);
-
- initscr();
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-
- printw("This demo is best on xterm: it reverses the definitions for f1-f12,\n");
- printw("adds duplicate definitions for cursor application and normal modes,\n");
- printw("and removes any definitions for the mini keypad. Type any of those:\n");
- refresh();
-
- win = newwin(LINES - 3, COLS, 3, 0);
- scrollok(win, TRUE);
- keypad(win, TRUE);
- wmove(win, 0, 0);
-
- /* we do the define_key() calls after keypad(), since the first call to
- * keypad() initializes the corresponding data.
- */
- for (n = 0; n < 12; ++n) {
- char name[10];
- sprintf(name, "kf%d", n + 1);
- fkeys[n] = tigetstr(name);
- }
- for (n = 0; n < 12; ++n) {
- redefine(win, fkeys[11 - n], KEY_F(n + 1));
- }
-
- duplicate(win, "kcub1", KEY_LEFT);
- duplicate(win, "kcuu1", KEY_UP);
- duplicate(win, "kcud1", KEY_DOWN);
- duplicate(win, "kcuf1", KEY_RIGHT);
-
- remove_definition(win, KEY_A1);
- remove_definition(win, KEY_A3);
- remove_definition(win, KEY_B2);
- remove_definition(win, KEY_C1);
- remove_definition(win, KEY_C3);
-
- really_define_key(win, "\033O", 1023);
-
- while ((ch = wgetch(win)) != ERR) {
- const char *name = keyname(ch);
- wprintw(win, "Keycode %d, name %s\n",
- ch,
- name != 0 ? name : "<null>");
- log_last_line(win);
- wclrtoeol(win);
- if (ch == 'q')
- break;
- }
- endwin();
- ExitProgram(EXIT_FAILURE);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the ncurses library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/demo_forms b/test/demo_forms
deleted file mode 100755
index 9c1bc59..0000000
--- a/test/demo_forms
+++ /dev/null
Binary files differ
diff --git a/test/demo_forms.c b/test/demo_forms.c
deleted file mode 100644
index 0d6a571..0000000
--- a/test/demo_forms.c
+++ /dev/null
@@ -1,538 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2003-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: demo_forms.c,v 1.30 2008/10/18 20:38:20 tom Exp $
- *
- * Demonstrate a variety of functions from the form library.
- * Thomas Dickey - 2003/4/26
- */
-/*
-TYPE_ENUM -
-TYPE_REGEXP -
-dup_field -
-field_init -
-field_just -
-field_term -
-form_init -
-form_opts -
-form_opts_off -
-form_opts_on -
-form_request_by_name -
-form_term -
-form_userptr -
-free_fieldtype -
-link_field -
-link_fieldtype -
-move_field -
-new_page -
-pos_form_cursor -
-set_field_init -
-set_field_term -
-set_fieldtype_arg -
-set_fieldtype_choice -
-set_form_fields -
-set_form_init -
-set_form_opts -
-set_form_page -
-set_form_term -
-set_form_userptr -
-set_max_field -
-*/
-
-#include <test.priv.h>
-
-#if USE_LIBFORM
-
-#include <edit_field.h>
-
-static int d_option = 0;
-static int j_value = 0;
-static int m_value = 0;
-static int o_value = 0;
-static char *t_value = 0;
-
-static FIELD *
-make_label(int frow, int fcol, NCURSES_CONST char *label)
-{
- FIELD *f = new_field(1, (int) strlen(label), frow, fcol, 0, 0);
-
- if (f) {
- set_field_buffer(f, 0, label);
- set_field_opts(f, (int) (field_opts(f) & ~O_ACTIVE));
- }
- return (f);
-}
-
-/*
- * Define each field with an extra one, for reflecting "actual" text.
- */
-static FIELD *
-make_field(int frow, int fcol, int rows, int cols)
-{
- FIELD *f = new_field(rows, cols, frow, fcol, o_value, 1);
-
- if (f) {
- set_field_back(f, A_UNDERLINE);
- /*
- * If -j and -d options are combined, -j loses. It is documented in
- * "Character User Interface Programming", page 12-15 that setting
- * O_STATIC off makes the form library ignore justification.
- */
- set_field_just(f, j_value);
- if (d_option) {
- if (has_colors()) {
- set_field_fore(f, COLOR_PAIR(2));
- set_field_back(f, A_UNDERLINE | COLOR_PAIR(3));
- } else {
- set_field_fore(f, A_BOLD);
- }
- /*
- * The field_opts_off() call dumps core with Solaris curses,
- * but that is a known bug in Solaris' form library -TD
- */
- field_opts_off(f, O_STATIC);
- set_max_field(f, m_value);
- }
-
- /*
- * The userptr is used in edit_field.c's inactive_field().
- */
- set_field_userptr(f, (void *) (long) field_back(f));
- if (t_value)
- set_field_buffer(f, 0, t_value);
- }
- return (f);
-}
-
-static void
-display_form(FORM * f)
-{
- WINDOW *w;
- int rows, cols;
-
- scale_form(f, &rows, &cols);
-
- /*
- * Put the form at the upper-left corner of the display, with just a box
- * around it.
- */
- if ((w = newwin(rows + 2, cols + 4, 0, 0)) != (WINDOW *) 0) {
- set_form_win(f, w);
- set_form_sub(f, derwin(w, rows, cols, 1, 2));
- box(w, 0, 0);
- keypad(w, TRUE);
- }
-
- if (post_form(f) != E_OK)
- wrefresh(w);
-}
-
-static void
-erase_form(FORM * f)
-{
- WINDOW *w = form_win(f);
- WINDOW *s = form_sub(f);
-
- unpost_form(f);
- werase(w);
- wrefresh(w);
- delwin(s);
- delwin(w);
-}
-
-static void
-show_insert_mode(bool insert_mode)
-{
- mvaddstr(5, 57, (insert_mode
- ? "form_status: insert "
- : "form_status: overlay"));
-}
-
-#define O_SELECTABLE (O_ACTIVE | O_VISIBLE)
-
-static FIELD *
-another_field(FORM * form, FIELD * field)
-{
- FIELD **f = form_fields(form);
- FIELD *result = 0;
- int n;
-
- for (n = 0; f[n] != 0; ++n) {
- if (f[n] != field) {
- result = f[n];
- field_opts_on(result, O_SELECTABLE);
- break;
- }
- }
- return result;
-}
-
-static int
-my_form_driver(FORM * form, int c)
-{
- static bool insert_mode = TRUE;
- FIELD *field;
-
- switch (c) {
- case MY_QUIT:
- if (form_driver(form, REQ_VALIDATION) == E_OK)
- return (TRUE);
- break;
- case MY_HELP:
- help_edit_field();
- break;
- case MY_EDT_MODE:
- if ((field = current_field(form)) != 0) {
- set_current_field(form, another_field(form, field));
- if (field_opts(field) & O_EDIT) {
- field_opts_off(field, O_EDIT);
- set_field_status(field, 0);
- } else {
- field_opts_on(field, O_EDIT);
- }
- set_current_field(form, field);
- }
- break;
- case MY_INS_MODE:
- /* there should be a form_status() function, but there is none */
- if (!insert_mode) {
- if (form_driver(form, REQ_INS_MODE) == E_OK) {
- insert_mode = TRUE;
- }
- } else {
- if (form_driver(form, REQ_OVL_MODE) == E_OK) {
- insert_mode = FALSE;
- }
- }
- show_insert_mode(insert_mode);
- refresh();
- break;
- default:
- beep();
- break;
- }
- return (FALSE);
-}
-
-static void
-show_current_field(WINDOW *win, FORM * form)
-{
- FIELD *field;
- FIELDTYPE *type;
- char *buffer;
- int nbuf;
- int field_rows, field_cols, field_max;
-
- if (has_colors()) {
- wbkgd(win, COLOR_PAIR(1));
- }
- werase(win);
- wprintw(win, "Cursor: %d,%d", form->currow, form->curcol);
- if (data_ahead(form))
- waddstr(win, " ahead");
- if (data_behind(form))
- waddstr(win, " behind");
- waddch(win, '\n');
- if ((field = current_field(form)) != 0) {
- wprintw(win, "Page %d%s, Field %d/%d%s:",
- form_page(form),
- new_page(field) ? "*" : "",
- field_index(field), field_count(form),
- field_arg(field) ? "(arg)" : "");
- if ((type = field_type(field)) != 0) {
- if (type == TYPE_ALNUM)
- waddstr(win, "ALNUM");
- else if (type == TYPE_ALPHA)
- waddstr(win, "ALPHA");
- else if (type == TYPE_ENUM)
- waddstr(win, "ENUM");
- else if (type == TYPE_INTEGER)
- waddstr(win, "INTEGER");
-#ifdef NCURSES_VERSION
- else if (type == TYPE_IPV4)
- waddstr(win, "IPV4");
-#endif
- else if (type == TYPE_NUMERIC)
- waddstr(win, "NUMERIC");
- else if (type == TYPE_REGEXP)
- waddstr(win, "REGEXP");
- else
- waddstr(win, "other");
- }
-
- if (field_opts(field) & O_EDIT)
- waddstr(win, " editable");
- else
- waddstr(win, " readonly");
-
- if (field_status(field))
- waddstr(win, " modified");
-
- if (dynamic_field_info(field, &field_rows, &field_cols, &field_max)
- != ERR) {
- wprintw(win, " size %dx%d (max %d)",
- field_rows, field_cols, field_max);
- }
-
- waddch(win, ' ');
- wattrset(win, field_fore(field));
- waddstr(win, "fore");
- wattroff(win, field_fore(field));
-
- waddch(win, '/');
-
- wattrset(win, field_back(field));
- waddstr(win, "back");
- wattroff(win, field_back(field));
-
- wprintw(win, ", pad '%c'",
- field_pad(field));
-
- waddstr(win, "\n");
- for (nbuf = 0; nbuf <= 2; ++nbuf) {
- if ((buffer = field_buffer(field, nbuf)) != 0) {
- wprintw(win, "buffer %d:", nbuf);
- wattrset(win, A_REVERSE);
- waddstr(win, buffer);
- wattroff(win, A_REVERSE);
- waddstr(win, "\n");
- }
- }
- }
- wrefresh(win);
-}
-
-static void
-demo_forms(void)
-{
- WINDOW *w;
- FORM *form;
- FIELD *f[100]; /* FIXME memset to zero */
- int finished = 0, c;
- unsigned n = 0;
- int pg;
- WINDOW *also;
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
-#endif
-
- help_edit_field();
-
- mvaddstr(4, 57, "Forms Entry Test");
- show_insert_mode(TRUE);
-
- refresh();
-
- /* describe the form */
- memset(f, 0, sizeof(f));
- for (pg = 0; pg < 4; ++pg) {
- char label[80];
- sprintf(label, "Sample Form Page %d", pg + 1);
- f[n++] = make_label(0, 15, label);
- set_new_page(f[n - 1], TRUE);
-
- switch (pg) {
- default:
- f[n++] = make_label(2, 0, "Last Name");
- f[n++] = make_field(3, 0, 1, 18);
- set_field_type(f[n - 1], TYPE_ALPHA, 1);
-
- f[n++] = make_label(2, 20, "First Name");
- f[n++] = make_field(3, 20, 1, 12);
- set_field_type(f[n - 1], TYPE_ALPHA, 1);
-
- f[n++] = make_label(2, 34, "Middle Name");
- f[n++] = make_field(3, 34, 1, 12);
- set_field_type(f[n - 1], TYPE_ALPHA, 1);
- break;
- case 1:
- f[n++] = make_label(2, 0, "Last Name");
- f[n++] = make_field(3, 0, 1, 18);
- set_field_type(f[n - 1], TYPE_ALPHA, 1);
-
- f[n++] = make_label(2, 20, "First Name");
- f[n++] = make_field(3, 20, 1, 12);
- set_field_type(f[n - 1], TYPE_ALPHA, 1);
-
- f[n++] = make_label(2, 34, "MI");
- f[n++] = make_field(3, 34, 1, 1);
- set_field_pad(f[n - 1], '?');
- set_field_type(f[n - 1], TYPE_ALPHA, 1);
- break;
- case 2:
- f[n++] = make_label(2, 0, "Host Name");
- f[n++] = make_field(3, 0, 1, 18);
- set_field_type(f[n - 1], TYPE_ALNUM, 1);
-
-#ifdef NCURSES_VERSION
- f[n++] = make_label(2, 20, "IP Address");
- f[n++] = make_field(3, 20, 1, 12);
- set_field_type(f[n - 1], TYPE_IPV4, 1);
-#endif
-
- break;
-
- case 3:
- f[n++] = make_label(2, 0, "Four digits");
- f[n++] = make_field(3, 0, 1, 18);
- set_field_type(f[n - 1], TYPE_INTEGER, 4, 0, 0);
-
- f[n++] = make_label(2, 20, "Numeric");
- f[n++] = make_field(3, 20, 1, 12);
- set_field_type(f[n - 1], TYPE_NUMERIC, 3, -10000.0, 100000000.0);
-
- break;
- }
-
- f[n++] = make_label(5, 0, "Comments");
- f[n++] = make_field(6, 0, 4, 46);
- set_field_buffer(f[n - 1], 0, "HELLO\nWORLD!");
- set_field_buffer(f[n - 1], 1, "Hello\nWorld!");
- }
-
- f[n++] = (FIELD *) 0;
-
- if ((form = new_form(f)) != 0) {
-
- display_form(form);
-
- w = form_win(form);
- also = newwin(getmaxy(stdscr) - getmaxy(w), COLS, getmaxy(w), 0);
- show_current_field(also, form);
-
- while (!finished) {
- switch (edit_field(form, &c)) {
- case E_OK:
- break;
- case E_UNKNOWN_COMMAND:
- finished = my_form_driver(form, c);
- break;
- default:
- beep();
- break;
- }
- show_current_field(also, form);
- }
-
- erase_form(form);
-
- free_form(form);
- }
- for (c = 0; f[c] != 0; c++)
- free_field(f[c]);
- noraw();
- nl();
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(0, (mmask_t *) 0);
-#endif
-}
-
-static void
-usage(void)
-{
- static const char *tbl[] =
- {
- "Usage: demo_forms [options]"
- ,""
- ," -d make fields dynamic"
- ," -j value justify (1=left, 2=center, 3=right)"
- ," -m value set maximum size of dynamic fields"
- ," -o value specify number of offscreen rows in new_field()"
- ," -t value specify text to fill fields initially"
- };
- unsigned int j;
- for (j = 0; j < SIZEOF(tbl); ++j)
- fprintf(stderr, "%s\n", tbl[j]);
- exit(EXIT_FAILURE);
-}
-
-int
-main(int argc, char *argv[])
-{
- int ch;
-
- setlocale(LC_ALL, "");
-
- while ((ch = getopt(argc, argv, "dj:m:o:t:")) != -1) {
- switch (ch) {
- case 'd':
- d_option = TRUE;
- break;
- case 'j':
- j_value = atoi(optarg);
- if (j_value < NO_JUSTIFICATION
- || j_value > JUSTIFY_RIGHT)
- usage();
- break;
- case 'm':
- m_value = atoi(optarg);
- break;
- case 'o':
- o_value = atoi(optarg);
- break;
- case 't':
- t_value = optarg;
- break;
- default:
- usage();
-
- }
- }
-
- initscr();
- cbreak();
- noecho();
- raw();
- nonl(); /* lets us read ^M's */
- intrflush(stdscr, FALSE);
- keypad(stdscr, TRUE);
-
- if (has_colors()) {
- start_color();
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- init_pair(2, COLOR_GREEN, COLOR_BLACK);
- init_pair(3, COLOR_CYAN, COLOR_BLACK);
- bkgd(COLOR_PAIR(1));
- refresh();
- }
-
- demo_forms();
-
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the curses form library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/demo_keyok b/test/demo_keyok
deleted file mode 100755
index 9e94c42..0000000
--- a/test/demo_keyok
+++ /dev/null
Binary files differ
diff --git a/test/demo_keyok.c b/test/demo_keyok.c
deleted file mode 100644
index 8724d98..0000000
--- a/test/demo_keyok.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002-2003,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: demo_keyok.c,v 1.5 2006/11/04 20:09:51 tom Exp $
- *
- * Demonstrate the keyok() function.
- * Thomas Dickey - 2002/11/23
- */
-
-#include <test.priv.h>
-
-#if defined(NCURSES_VERSION) && NCURSES_EXT_FUNCS
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- int lastch = ERR;
- int ch;
- WINDOW *win;
-
- initscr();
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-
- printw("Typing any function key will disable it, but typing it twice in\n");
- printw("a row will turn it back on (just for a demo).");
- refresh();
-
- win = newwin(LINES - 2, COLS, 2, 0);
- scrollok(win, TRUE);
- keypad(win, TRUE);
- wmove(win, 0, 0);
-
- while ((ch = wgetch(win)) != ERR) {
- const char *name = keyname(ch);
- wprintw(win, "Keycode %d, name %s\n",
- ch,
- name != 0 ? name : "<null>");
- wclrtoeol(win);
- wrefresh(win);
- if (ch >= KEY_MIN) {
- keyok(ch, FALSE);
- lastch = ch;
- } else if (lastch >= KEY_MIN) {
- keyok(lastch, TRUE);
- }
- }
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the ncurses library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/demo_menus b/test/demo_menus
deleted file mode 100755
index 732bbdd..0000000
--- a/test/demo_menus
+++ /dev/null
Binary files differ
diff --git a/test/demo_menus.c b/test/demo_menus.c
deleted file mode 100644
index 4d553e2..0000000
--- a/test/demo_menus.c
+++ /dev/null
@@ -1,900 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2005-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: demo_menus.c,v 1.28 2008/08/23 20:31:54 tom Exp $
- *
- * Demonstrate a variety of functions from the menu library.
- * Thomas Dickey - 2005/4/9
- */
-/*
-item_description -
-item_init -
-item_opts -
-item_opts_off -
-item_opts_on -
-item_term -
-item_userptr -
-item_visible -
-menu_back -
-menu_fore -
-menu_format -
-menu_grey -
-menu_init -
-menu_opts -
-menu_pad -
-menu_request_by_name -
-menu_request_name -
-menu_sub -
-menu_term -
-menu_userptr -
-set_current_item -
-set_item_init -
-set_item_opts -
-set_item_term -
-set_item_userptr -
-set_menu_grey -
-set_menu_init -
-set_menu_items -
-set_menu_opts -
-set_menu_pad -
-set_menu_pattern -
-set_menu_spacing -
-set_menu_term -
-set_menu_userptr -
-set_top_row -
-top_row -
-*/
-
-#include <test.priv.h>
-
-#if USE_LIBMENU
-
-#include <menu.h>
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#ifdef NCURSES_VERSION
-#ifdef TRACE
-static unsigned save_trace = TRACE_ORDINARY | TRACE_CALLS;
-extern unsigned _nc_tracing;
-static MENU *mpTrace;
-#endif
-#else
-#undef TRACE
-#endif
-
-typedef enum {
- eBanner = -1
- ,eFile
- ,eSelect
-#ifdef TRACE
- ,eTrace
-#endif
- ,eMAX
-} MenuNo;
-
-#define okMenuNo(n) (((n) > eBanner) && ((n) < eMAX))
-
-#define MENU_Y 1
-
-static MENU *mpBanner;
-static MENU *mpFile;
-static MENU *mpSelect;
-
-static bool loaded_file = FALSE;
-
-#if !HAVE_STRDUP
-#define strdup my_strdup
-static char *
-strdup(char *s)
-{
- char *p = typeMalloc(char, strlen(s) + 1);
- if (p)
- strcpy(p, s);
- return (p);
-}
-#endif /* not HAVE_STRDUP */
-
-/* Common function to allow ^T to toggle trace-mode in the middle of a test
- * so that trace-files can be made smaller.
- */
-static int
-wGetchar(WINDOW *win)
-{
- int c;
-#ifdef TRACE
- while ((c = wgetch(win)) == CTRL('T')) {
- if (_nc_tracing) {
- save_trace = _nc_tracing;
- Trace(("TOGGLE-TRACING OFF"));
- _nc_tracing = 0;
- } else {
- _nc_tracing = save_trace;
- }
- trace(_nc_tracing);
- if (_nc_tracing)
- Trace(("TOGGLE-TRACING ON"));
- }
-#else
- c = wgetch(win);
-#endif
- return c;
-}
-#define Getchar() wGetchar(stdscr)
-
-static int
-menu_virtualize(int c)
-{
- int result;
-
- if (c == '\n' || c == KEY_EXIT)
- result = (MAX_COMMAND + 1);
- else if (c == 'u')
- result = (REQ_SCR_ULINE);
- else if (c == 'd')
- result = (REQ_SCR_DLINE);
- else if (c == 'b' || c == KEY_NPAGE)
- result = (REQ_SCR_UPAGE);
- else if (c == 'f' || c == KEY_PPAGE)
- result = (REQ_SCR_DPAGE);
- else if (c == 'l' || c == KEY_LEFT || c == KEY_BTAB)
- result = (REQ_LEFT_ITEM);
- else if (c == 'n' || c == KEY_DOWN)
- result = (REQ_NEXT_ITEM);
- else if (c == 'p' || c == KEY_UP)
- result = (REQ_PREV_ITEM);
- else if (c == 'r' || c == KEY_RIGHT || c == '\t')
- result = (REQ_RIGHT_ITEM);
- else if (c == ' ')
- result = (REQ_TOGGLE_ITEM);
- else {
- if (c != KEY_MOUSE)
- beep();
- result = (c);
- }
- return result;
-}
-
-static int
-menu_getc(MENU * m)
-{
- return wGetchar(menu_win(m));
-}
-
-static int
-menu_offset(MenuNo number)
-{
- int result = 0;
-
- if (okMenuNo(number)) {
- int spc_desc, spc_rows, spc_cols;
-
-#ifdef NCURSES_VERSION
- menu_spacing(mpBanner, &spc_desc, &spc_rows, &spc_cols);
-#else
- spc_rows = 0;
-#endif
-
- /* FIXME: MENU.itemlen seems the only way to get actual width of items */
- result = (number - (eBanner + 1)) * (mpBanner->itemlen + spc_rows);
- }
- return result;
-}
-
-static MENU *
-menu_create(ITEM ** items, int count, int ncols, MenuNo number)
-{
- MENU *result;
- WINDOW *menuwin;
- int mrows, mcols;
- int y = okMenuNo(number) ? MENU_Y : 0;
- int x = menu_offset(number);
- int margin = (y == MENU_Y) ? 1 : 0;
- int maxcol = (ncols + x) < COLS ? ncols : (COLS - x - 1);
- int maxrow = (count + 1) / ncols;
-
- if ((maxrow + y) >= (LINES - 4))
- maxrow = LINES - 4 - y;
-
- result = new_menu(items);
-
- if (has_colors()) {
- set_menu_fore(result, COLOR_PAIR(1));
- set_menu_back(result, COLOR_PAIR(2));
- }
-
- set_menu_format(result, maxrow, maxcol);
- scale_menu(result, &mrows, &mcols);
-
- if (mcols + (2 * margin + x) >= COLS)
- mcols = COLS - (2 * margin + x);
-
-#ifdef TRACE
- if (number == eTrace)
- menu_opts_off(result, O_ONEVALUE);
- else
- menu_opts_on(result, O_ONEVALUE);
-#endif
-
- menuwin = newwin(mrows + (2 * margin), mcols + (2 * margin), y, x);
- set_menu_win(result, menuwin);
- keypad(menuwin, TRUE);
- if (margin)
- box(menuwin, 0, 0);
-
- set_menu_sub(result, derwin(menuwin, mrows, mcols, margin, margin));
-
- post_menu(result);
-
- return result;
-}
-
-static void
-menu_destroy(MENU * m)
-{
- int count;
-
- Trace(("menu_destroy %p", m));
- if (m != 0) {
- ITEM **items = menu_items(m);
- const char *blob = 0;
-
- count = item_count(m);
- Trace(("menu_destroy %p count %d", m, count));
- if ((count > 0) && (m == mpSelect)) {
- blob = item_name(*items);
- }
-
- unpost_menu(m);
- free_menu(m);
-
- /* free the extra data allocated in build_select_menu() */
- if ((count > 0) && (m == mpSelect)) {
- if (blob && loaded_file) {
- Trace(("freeing blob %p", blob));
- free((char *) blob);
- }
- free(items);
- }
-#ifdef TRACE
- if ((count > 0) && (m == mpTrace)) {
- ITEM **ip = items;
- while (*ip)
- free(*ip++);
- }
-#endif
- }
-}
-
-/* force the given menu to appear */
-static void
-menu_display(MENU * m)
-{
- touchwin(menu_win(m));
- wrefresh(menu_win(m));
-}
-
-/*****************************************************************************/
-
-static void
-build_file_menu(MenuNo number)
-{
- static CONST_MENUS char *labels[] =
- {
- "Exit",
- (char *) 0
- };
- static ITEM *items[SIZEOF(labels)];
-
- ITEM **ip = items;
- CONST_MENUS char **ap;
-
- for (ap = labels; *ap; ap++)
- *ip++ = new_item(*ap, "");
- *ip = (ITEM *) 0;
-
- mpFile = menu_create(items, SIZEOF(labels) - 1, 1, number);
-}
-
-static int
-perform_file_menu(int cmd)
-{
- return menu_driver(mpFile, cmd);
-}
-
-/*****************************************************************************/
-
-static void
-build_select_menu(MenuNo number, char *filename)
-{
- static CONST_MENUS char *labels[] =
- {
- "Lions",
- "Tigers",
- "Bears",
- "(Oh my!)",
- "Newts",
- "Platypi",
- "Lemurs",
- "(Oh really?!)",
- "Leopards",
- "Panthers",
- "Pumas",
- "Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs",
- "Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs, Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs",
- (char *) 0
- };
- static ITEM **items;
-
- ITEM **ip;
- CONST_MENUS char **ap = 0;
- CONST_MENUS char **myList = 0;
- unsigned count = 0;
-
- if (filename != 0) {
- struct stat sb;
- if (stat(filename, &sb) == 0
- && (sb.st_mode & S_IFMT) == S_IFREG
- && sb.st_size != 0) {
- size_t size = (size_t) sb.st_size;
- unsigned j, k;
- char *blob = typeMalloc(char, size + 1);
- CONST_MENUS char **list = typeCalloc(CONST_MENUS char *, size + 1);
-
- items = typeCalloc(ITEM *, size + 1);
- Trace(("build_select_menu blob=%p, items=%p", blob, items));
- if (blob != 0 && list != 0) {
- FILE *fp = fopen(filename, "r");
- if (fp != 0) {
- if (fread(blob, sizeof(char), size, fp) == size) {
- bool mark = TRUE;
- for (j = k = 0; j < size; ++j) {
- if (mark) {
- list[k++] = blob + j;
- mark = FALSE;
- }
- if (blob[j] == '\n') {
- blob[j] = '\0';
- if (k > 0 && *list[k - 1] == '\0')
- --k;
- mark = TRUE;
- } else if (blob[j] == '\t') {
- blob[j] = ' '; /* menu items are printable */
- }
- }
- list[k] = 0;
- count = k;
- ap = myList = list;
- }
- fclose(fp);
- }
- loaded_file = TRUE;
- }
- }
- }
- if (ap == 0) {
- count = SIZEOF(labels) - 1;
- items = typeCalloc(ITEM *, count + 1);
- ap = labels;
- }
-
- ip = items;
- while (*ap != 0)
- *ip++ = new_item(*ap++, "");
- *ip = 0;
-
- mpSelect = menu_create(items, (int) count, 1, number);
- if (myList != 0)
- free(myList);
-}
-
-static int
-perform_select_menu(int cmd)
-{
- return menu_driver(mpSelect, cmd);
-}
-
-/*****************************************************************************/
-
-#ifdef TRACE
-#define T_TBL(name) { #name, name }
-static struct {
- const char *name;
- unsigned mask;
-} t_tbl[] = {
-
- T_TBL(TRACE_DISABLE),
- T_TBL(TRACE_TIMES),
- T_TBL(TRACE_TPUTS),
- T_TBL(TRACE_UPDATE),
- T_TBL(TRACE_MOVE),
- T_TBL(TRACE_CHARPUT),
- T_TBL(TRACE_ORDINARY),
- T_TBL(TRACE_CALLS),
- T_TBL(TRACE_VIRTPUT),
- T_TBL(TRACE_IEVENT),
- T_TBL(TRACE_BITS),
- T_TBL(TRACE_ICALLS),
- T_TBL(TRACE_CCALLS),
- T_TBL(TRACE_DATABASE),
- T_TBL(TRACE_ATTRS),
- T_TBL(TRACE_MAXIMUM),
- {
- (char *) 0, 0
- }
-};
-
-static void
-build_trace_menu(MenuNo number)
-{
- static ITEM *items[SIZEOF(t_tbl)];
-
- ITEM **ip = items;
- int n;
-
- for (n = 0; t_tbl[n].name != 0; n++)
- *ip++ = new_item(t_tbl[n].name, "");
- *ip = (ITEM *) 0;
-
- mpTrace = menu_create(items, SIZEOF(t_tbl) - 1, 2, number);
-}
-
-static char *
-tracetrace(unsigned tlevel)
-{
- static char *buf;
- int n;
-
- if (buf == 0) {
- size_t need = 12;
- for (n = 0; t_tbl[n].name != 0; n++)
- need += strlen(t_tbl[n].name) + 2;
- buf = typeMalloc(char, need);
- }
- sprintf(buf, "0x%02x = {", tlevel);
- if (tlevel == 0) {
- sprintf(buf + strlen(buf), "%s, ", t_tbl[0].name);
- } else {
- for (n = 1; t_tbl[n].name != 0; n++)
- if ((tlevel & t_tbl[n].mask) == t_tbl[n].mask) {
- strcat(buf, t_tbl[n].name);
- strcat(buf, ", ");
- }
- }
- if (buf[strlen(buf) - 2] == ',')
- buf[strlen(buf) - 2] = '\0';
- return (strcat(buf, "}"));
-}
-
-/* fake a dynamically reconfigurable menu using the 0th entry to deselect
- * the others
- */
-static bool
-update_trace_menu(MENU * m)
-{
- ITEM **items;
- ITEM *i, **p;
- bool changed = FALSE;
-
- items = menu_items(m);
- i = current_item(m);
- if (i == items[0]) {
- if (item_value(i)) {
- for (p = items + 1; *p != 0; p++)
- if (item_value(*p)) {
- set_item_value(*p, FALSE);
- changed = TRUE;
- }
- }
- }
- return changed;
-}
-
-static int
-perform_trace_menu(int cmd)
-/* interactively set the trace level */
-{
- ITEM **ip;
- unsigned newtrace;
- int result;
-
- for (ip = menu_items(mpTrace); *ip; ip++) {
- unsigned mask = t_tbl[item_index(*ip)].mask;
- if (mask == 0)
- set_item_value(*ip, _nc_tracing == 0);
- else if ((mask & _nc_tracing) == mask)
- set_item_value(*ip, TRUE);
- }
-
- result = menu_driver(mpTrace, cmd);
-
- if (result == E_OK) {
- if (update_trace_menu(mpTrace) || cmd == REQ_TOGGLE_ITEM) {
- newtrace = 0;
- for (ip = menu_items(mpTrace); *ip; ip++) {
- if (item_value(*ip))
- newtrace |= t_tbl[item_index(*ip)].mask;
- }
- trace(newtrace);
- Trace(("trace level interactively set to %s", tracetrace(_nc_tracing)));
-
- (void) mvprintw(LINES - 2, 0,
- "Trace level is %s\n", tracetrace(_nc_tracing));
- refresh();
- }
- }
- return result;
-}
-#endif /* TRACE */
-
-/*****************************************************************************/
-
-static int
-menu_number(void)
-{
- return item_index(current_item(mpBanner)) - (eBanner + 1);
-}
-
-static MENU *
-current_menu(void)
-{
- MENU *result;
-
- switch (menu_number()) {
- case eFile:
- result = mpFile;
- break;
- case eSelect:
- result = mpSelect;
- break;
-#ifdef TRACE
- case eTrace:
- result = mpTrace;
- break;
-#endif
- default:
- result = 0;
- break;
- }
- return result;
-}
-
-static void
-build_menus(char *filename)
-{
- static CONST_MENUS char *labels[] =
- {
- "File",
- "Select",
-#ifdef TRACE
- "Trace",
-#endif
- (char *) 0
- };
- static ITEM *items[SIZEOF(labels)];
-
- ITEM **ip = items;
- CONST_MENUS char **ap;
-
- for (ap = labels; *ap; ap++)
- *ip++ = new_item(*ap, "");
- *ip = (ITEM *) 0;
-
- mpBanner = menu_create(items, SIZEOF(labels) - 1, SIZEOF(labels) - 1, eBanner);
- set_menu_mark(mpBanner, ">");
-
- build_file_menu(eFile);
- build_select_menu(eSelect, filename);
-#ifdef TRACE
- build_trace_menu(eTrace);
-#endif
-}
-
-static int
-move_menu(MENU * menu, MENU * current, int by_y, int by_x)
-{
- WINDOW *top_win = menu_win(menu);
- WINDOW *sub_win = menu_sub(menu);
- int y0, x0;
- int y1, x1;
- int result;
-
- getbegyx(top_win, y0, x0);
- y0 += by_y;
- x0 += by_x;
-
- getbegyx(sub_win, y1, x1);
- y1 += by_y;
- x1 += by_x;
-
- if ((result = mvwin(top_win, y0, x0)) != ERR) {
-#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH < 20060218)
- sub_win->_begy = y1;
- sub_win->_begx = x1;
-#else
- mvwin(sub_win, y1, x1);
-#endif
- if (menu == current) {
- touchwin(top_win);
- wnoutrefresh(top_win);
- }
- }
- return result;
-}
-
-/*
- * Move the menus around on the screen, to test mvwin().
- */
-static void
-move_menus(MENU * current, int by_y, int by_x)
-{
- if (move_menu(mpBanner, current, by_y, by_x) != ERR) {
- erase();
- wnoutrefresh(stdscr);
- move_menu(mpFile, current, by_y, by_x);
- move_menu(mpSelect, current, by_y, by_x);
-#ifdef TRACE
- move_menu(mpTrace, current, by_y, by_x);
-#endif
- doupdate();
- }
-}
-
-static void
-show_status(int ch, MENU * menu)
-{
- move(LINES - 1, 0);
- printw("key %s, menu %d, mark %s, match %s",
- keyname(ch),
- menu_number(),
- menu_mark(menu),
- menu_pattern(menu));
- clrtoeol();
- refresh();
-}
-
-static void
-perform_menus(void)
-{
- MENU *this_menu;
- MENU *last_menu = mpFile;
- int code = E_UNKNOWN_COMMAND;
- int cmd;
- int ch = ERR;
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
-#endif
-
- menu_display(last_menu);
-
- for (;;) {
-
- if (ch != ERR)
- show_status(ch, last_menu);
-
- ch = menu_getc(mpBanner);
-
- /*
- * Provide for moving the menu around in the screen using shifted
- * cursor keys.
- */
- switch (ch) {
- case KEY_SF:
- move_menus(last_menu, 1, 0);
- continue;
- case KEY_SR:
- move_menus(last_menu, -1, 0);
- continue;
- case KEY_SLEFT:
- move_menus(last_menu, 0, -1);
- continue;
- case KEY_SRIGHT:
- move_menus(last_menu, 0, 1);
- continue;
- }
- cmd = menu_virtualize(ch);
-
- switch (cmd) {
- /*
- * The banner menu acts solely to select one of the other menus.
- * Move between its items, wrapping at the left/right limits.
- */
- case REQ_LEFT_ITEM:
- case REQ_RIGHT_ITEM:
- code = menu_driver(mpBanner, cmd);
- if (code == E_REQUEST_DENIED) {
- if (menu_number() > 0)
- code = menu_driver(mpBanner, REQ_FIRST_ITEM);
- else
- code = menu_driver(mpBanner, REQ_LAST_ITEM);
- }
- break;
- default:
- switch (menu_number()) {
- case eFile:
- code = perform_file_menu(cmd);
- break;
- case eSelect:
- code = perform_select_menu(cmd);
- break;
-#ifdef TRACE
- case eTrace:
- code = perform_trace_menu(cmd);
- break;
-#endif
- }
-
- if ((code == E_REQUEST_DENIED) && (cmd == KEY_MOUSE)) {
- code = menu_driver(mpBanner, cmd);
- }
-
- break;
- }
-
- if (code == E_OK) {
- this_menu = current_menu();
- if (this_menu != last_menu) {
- move(1, 0);
- clrtobot();
- box(menu_win(this_menu), 0, 0);
- refresh();
-
- /* force the current menu to appear */
- menu_display(this_menu);
-
- last_menu = this_menu;
- }
- }
- wrefresh(menu_win(last_menu));
- if (code == E_UNKNOWN_COMMAND
- || code == E_NOT_POSTED) {
- if (menu_number() == eFile)
- break;
- beep();
- }
- if (code == E_REQUEST_DENIED)
- beep();
- continue;
- }
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(0, (mmask_t *) 0);
-#endif
-}
-
-static void
-destroy_menus(void)
-{
- menu_destroy(mpFile);
- menu_destroy(mpSelect);
-#ifdef TRACE
- menu_destroy(mpTrace);
-#endif
- menu_destroy(mpBanner);
-}
-
-#if HAVE_RIPOFFLINE
-static int
-rip_footer(WINDOW *win, int cols)
-{
- wbkgd(win, A_REVERSE);
- werase(win);
- wmove(win, 0, 0);
- wprintw(win, "footer: %d columns", cols);
- wnoutrefresh(win);
- return OK;
-}
-
-static int
-rip_header(WINDOW *win, int cols)
-{
- wbkgd(win, A_REVERSE);
- werase(win);
- wmove(win, 0, 0);
- wprintw(win, "header: %d columns", cols);
- wnoutrefresh(win);
- return OK;
-}
-#endif /* HAVE_RIPOFFLINE */
-
-static void
-usage(void)
-{
- static const char *const tbl[] =
- {
- "Usage: demo_menus [options]"
- ,""
- ,"Options:"
-#if HAVE_RIPOFFLINE
- ," -f rip-off footer line (can repeat)"
- ," -h rip-off header line (can repeat)"
-#endif
-#ifdef TRACE
- ," -t mask specify default trace-level (may toggle with ^T)"
-#endif
- };
- size_t n;
- for (n = 0; n < SIZEOF(tbl); n++)
- fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
-}
-
-int
-main(int argc, char *argv[])
-{
- int c;
-
- setlocale(LC_ALL, "");
-
- while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != -1) {
- switch (c) {
-#if HAVE_RIPOFFLINE
- case 'f':
- ripoffline(-1, rip_footer);
- break;
- case 'h':
- ripoffline(1, rip_header);
- break;
-#endif /* HAVE_RIPOFFLINE */
-#ifdef TRACE
- case 't':
- trace(strtoul(optarg, 0, 0));
- break;
-#endif
- default:
- usage();
- }
- }
-
- initscr();
- noraw();
- cbreak();
- noecho();
-
- if (has_colors()) {
- start_color();
- init_pair(1, COLOR_RED, COLOR_BLACK);
- init_pair(2, COLOR_BLUE, COLOR_WHITE);
- }
- build_menus(argc > 1 ? argv[1] : 0);
- perform_menus();
- destroy_menus();
-
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the curses menu library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/demo_panels b/test/demo_panels
deleted file mode 100755
index 831d5e5..0000000
--- a/test/demo_panels
+++ /dev/null
Binary files differ
diff --git a/test/demo_panels.c b/test/demo_panels.c
deleted file mode 100644
index 55593c0..0000000
--- a/test/demo_panels.c
+++ /dev/null
@@ -1,816 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: demo_panels.c,v 1.33 2008/08/04 13:33:48 tom Exp $
- *
- * Demonstrate a variety of functions from the panel library.
- */
-
-#include <test.priv.h>
-
-#if USE_LIBPANEL
-
-#include <panel.h>
-
-#define LAST_POS '@'
-#define TEMP_POS '>'
-
-typedef void (*InitPanel) (void);
-typedef void (*FillPanel) (PANEL *);
-
-static bool use_colors = FALSE;
-static bool unboxed = FALSE;
-static FILE *log_in;
-static FILE *log_out;
-
-static void
-close_input(void)
-{
- if (log_in != 0) {
- fclose(log_in);
- log_in = 0;
- }
-}
-
-static void
-close_output(void)
-{
- if (log_out != 0) {
- fclose(log_out);
- log_out = 0;
- }
-}
-
-static WINDOW *
-statusline(void)
-{
- WINDOW *result = stdscr;
-
- wmove(result, LINES - 1, 0);
- wclrtoeol(result);
- return result;
-}
-
-static void
-pflush(void)
-{
- update_panels();
- doupdate();
-}
-
-static void
-saywhat(NCURSES_CONST char *text)
-{
- WINDOW *win = statusline();
- if (text != 0 && *text != '\0') {
- waddstr(win, text);
- waddstr(win, "; ");
- }
- waddstr(win, "press any key to continue");
-}
-
-static void
-show_position(NCURSES_CONST char *text,
- NCURSES_CONST char *also,
- int which,
- int ypos,
- int xpos)
-{
- WINDOW *win = statusline();
-
- wprintw(win, "%s for panel %d now %d,%d%s", text, which, ypos, xpos, also);
- wmove(stdscr, ypos, xpos);
-}
-
-static int
-get_position(NCURSES_CONST char *text,
- NCURSES_CONST char *also,
- int which,
- int *xpos,
- int *ypos)
-{
- int result = 0;
- int x1, y1;
- char cmd;
- WINDOW *win;
-
- getyx(stdscr, y1, x1);
- win = statusline();
-
- show_position(text, also, which, y1, x1);
-
- if (log_in != 0) {
- if (fscanf(log_in, "%c%d,%d\n", &cmd, &y1, &x1) == 3) {
- switch (cmd) {
- case LAST_POS:
- result = 1;
- (void) wgetch(stdscr);
- break;
- case TEMP_POS:
- result = 0;
- wrefresh(stdscr);
- napms(100);
- break;
- default:
- result = -1;
- break;
- }
- } else {
- result = -1;
- }
- } else {
-
- switch (wgetch(stdscr)) {
- case QUIT:
- case ESCAPE:
- case ERR:
- result = -1;
- break;
- case ' ':
- result = 1;
- break;
- case KEY_UP:
- if (y1 > 0) {
- --y1;
- } else {
- beep();
- }
- break;
- case KEY_DOWN:
- if (y1 < getmaxy(stdscr)) {
- ++y1;
- } else {
- beep();
- }
- break;
- case KEY_LEFT:
- if (x1 > 0) {
- --x1;
- } else {
- beep();
- }
- break;
- case KEY_RIGHT:
- if (x1 < getmaxx(stdscr)) {
- ++x1;
- } else {
- beep();
- }
- break;
- }
- }
-
- wmove(stdscr, y1, x1);
- *ypos = y1;
- *xpos = x1;
-
- if (result >= 0) {
- if (log_out)
- fprintf(log_out, "%c%d,%d\n",
- ((result > 0)
- ? LAST_POS
- : TEMP_POS),
- y1, x1);
- }
- return result;
-}
-
-static PANEL *
-mkpanel(short color, int rows, int cols, int tly, int tlx)
-{
- WINDOW *win;
- PANEL *pan = 0;
- char *userdata = typeMalloc(char, 3);
-
- if ((win = newwin(rows, cols, tly, tlx)) != 0) {
- keypad(win, TRUE);
- if ((pan = new_panel(win)) == 0) {
- delwin(win);
- } else if (use_colors) {
- short fg = (short) ((color == COLOR_BLUE)
- ? COLOR_WHITE
- : COLOR_BLACK);
- short bg = color;
-
- init_pair(color, fg, bg);
- wbkgdset(win, (chtype) (COLOR_PAIR(color) | ' '));
- } else if (!unboxed) {
- wbkgdset(win, A_BOLD | ' ');
- }
- }
- sprintf(userdata, "p%d", color % 8);
- set_panel_userptr(pan, (NCURSES_CONST void *) userdata);
- return pan;
-}
-
-static void
-my_remove_panel(PANEL ** pans, int which)
-{
- if (pans[which] != 0) {
- PANEL *pan = pans[which];
- WINDOW *win = panel_window(pan);
- char *user = (char *) panel_userptr(pan);
-
- free(user);
- del_panel(pan);
- delwin(win);
-
- pans[which] = 0;
- }
-}
-
-#undef MIN
-#define MIN(a,b) ((a) < (b) ? (a) : (b))
-#define ABS(a) ((a) < 0 ? -(a) : (a))
-
-static void
-my_create_panel(PANEL ** pans, int which, FillPanel myFill)
-{
- PANEL *pan = 0;
- int code;
- short pair = (short) which;
- short fg = (short) ((pair == COLOR_BLUE) ? COLOR_WHITE : COLOR_BLACK);
- short bg = pair;
- int x0, y0, x1, y1;
-
- init_pair(pair, fg, bg);
-
- /* remove the old panel, if any */
- my_remove_panel(pans, which);
-
- /* get the position of one corner */
- wmove(stdscr, getmaxy(stdscr) / 2, getmaxx(stdscr) / 2);
- getyx(stdscr, y0, x0);
- while ((code = get_position("First corner", "", which, &x0, &y0)) == 0) {
- ;
- }
-
- if (code > 0) {
- char also[80];
- sprintf(also, " (first %d,%d)", y0, x0);
- /* get the position of the opposite corner */
- while ((code = get_position("Opposite corner",
- also, which, &x1, &y1)) == 0) {
- ;
- }
-
- if (code > 0) {
- int tly = MIN(y0, y1);
- int tlx = MIN(x0, x1);
- pan = mkpanel(pair, ABS(y1 - y0) + 1, ABS(x1 - x0) + 1, tly, tlx);
- /* finish */
- myFill(pan);
- pans[which] = pan;
- pflush();
- wmove(stdscr, y1, x1);
- }
- }
-}
-
-static void
-my_move_panel(PANEL ** pans, int which, bool continuous)
-{
- if (pans[which] != 0) {
- int code;
- int y0, x0;
- int y1, x1;
- WINDOW *win = panel_window(pans[which]);
- char also[80];
-
- getbegyx(win, y0, x0);
- sprintf(also, " (start %d,%d)", y0, x0);
- wmove(stdscr, y0, x0);
- while ((code = get_position("Move panel", also, which, &x1, &y1)) == 0) {
- if (continuous) {
- move_panel(pans[which], y1, x1);
- pflush();
- }
- }
- if (code > 0) {
- move_panel(pans[which], y1, x1);
- }
- }
-}
-
-static void
-my_resize_panel(PANEL ** pans, int which, FillPanel myFill)
-{
- if (pans[which] != 0) {
- int code;
- int y0, x0;
- int y1, x1;
- WINDOW *win = panel_window(pans[which]);
- char also[80];
-
- getbegyx(win, y0, x0);
- sprintf(also, " (start %d,%d)", y0, x0);
- wmove(stdscr, y0, x0);
- while ((code = get_position("Resize panel",
- also, which, &x1, &y1)) == 0) {
- ;
- }
- if (code > 0) {
- WINDOW *next = newwin(ABS(y1 - y0) + 1,
- ABS(x1 - x0) + 1,
- MIN(y0, y1),
- MIN(x0, x1));
- if (next != 0) {
- keypad(next, TRUE);
- if (use_colors) {
- wbkgdset(next, (chtype) (COLOR_PAIR(which) | ' '));
- } else if (!unboxed) {
- wbkgdset(next, A_BOLD | ' ');
- }
- replace_panel(pans[which], next);
- myFill(pans[which]);
- delwin(win);
- }
- }
- }
-}
-
-static void
-init_panel(void)
-{
- register int y, x;
-
- for (y = 0; y < LINES - 1; y++) {
- for (x = 0; x < COLS; x++)
- wprintw(stdscr, "%d", (y + x) % 10);
- }
-}
-
-static void
-fill_panel(PANEL * pan)
-{
- WINDOW *win = panel_window(pan);
- const char *userptr = (const char *) panel_userptr(pan);
- int num = (userptr && *userptr) ? userptr[1] : '?';
- int y, x;
-
- wmove(win, 1, 1);
- wprintw(win, "-pan%c-", num);
- wclrtoeol(win);
- box(win, 0, 0);
- for (y = 2; y < getmaxy(win) - 1; y++) {
- for (x = 1; x < getmaxx(win) - 1; x++) {
- wmove(win, y, x);
- waddch(win, UChar(num));
- }
- }
-}
-
-static void
-fill_unboxed(PANEL * pan)
-{
- WINDOW *win = panel_window(pan);
- const char *userptr = (const char *) panel_userptr(pan);
- int num = (userptr && *userptr) ? userptr[1] : '?';
- int y, x;
-
- for (y = 0; y < getmaxy(win); y++) {
- for (x = 0; x < getmaxx(win); x++) {
- wmove(win, y, x);
- waddch(win, UChar(num));
- }
- }
-}
-
-#if USE_WIDEC_SUPPORT
-static void
-make_fullwidth_digit(cchar_t *target, int digit)
-{
- wchar_t source[2];
-
- source[0] = digit + 0xff10;
- source[1] = 0;
- setcchar(target, source, A_NORMAL, 0, 0);
-}
-
-static void
-init_wide_panel(void)
-{
- int digit;
- cchar_t temp[10];
-
- for (digit = 0; digit < 10; ++digit)
- make_fullwidth_digit(&temp[digit], digit);
-
- do {
- int y, x;
- getyx(stdscr, y, x);
- digit = (y + x / 2) % 10;
- } while (add_wch(&temp[digit]) != ERR);
-}
-
-static void
-fill_wide_panel(PANEL * pan)
-{
- WINDOW *win = panel_window(pan);
- int num = ((const char *) panel_userptr(pan))[1];
- int y, x;
-
- wmove(win, 1, 1);
- wprintw(win, "-pan%c-", num);
- wclrtoeol(win);
- box(win, 0, 0);
- for (y = 2; y < getmaxy(win) - 1; y++) {
- for (x = 1; x < getmaxx(win) - 1; x++) {
- wmove(win, y, x);
- waddch(win, UChar(num));
- }
- }
-}
-#endif
-
-#define MAX_PANELS 5
-
-static int
-which_panel(PANEL * px[MAX_PANELS + 1], PANEL * pan)
-{
- int result = 0;
- int j;
-
- for (j = 1; j <= MAX_PANELS; ++j) {
- if (px[j] == pan) {
- result = j;
- break;
- }
- }
- return result;
-}
-
-static void
-show_panels(PANEL * px[MAX_PANELS + 1])
-{
- static const char *help[] =
- {
- "",
- "Commands are letter/digit pairs. Digits are the panel number.",
- "",
- " b - put the panel on the bottom of the stack",
- " c - create the panel",
- " d - delete the panel",
- " h - hide the panel",
- " m - move the panel (M for continuous move)",
- " r - resize the panel",
- " s - show the panel",
- " b - put the panel on the top of the stack"
- };
-
- struct {
- bool valid;
- bool hidden;
- PANEL *above;
- PANEL *below;
- } table[MAX_PANELS + 1];
-
- WINDOW *win;
- PANEL *pan;
- int j;
-
- for (j = 1; j <= MAX_PANELS; ++j) {
- table[j].valid = (px[j] != 0);
- if (table[j].valid) {
- table[j].hidden = panel_hidden(px[j]);
- table[j].above = panel_above(px[j]);
- table[j].below = panel_below(px[j]);
- }
- }
-
- if ((win = newwin(LINES - 1, COLS, 0, 0)) != 0) {
- keypad(win, TRUE);
- if ((pan = new_panel(win)) != 0) {
- werase(win);
- mvwprintw(win, 0, 0, "Panels:\n");
- for (j = 1; j <= MAX_PANELS; ++j) {
- if (table[j].valid) {
- wprintw(win, " %d:", j);
- if (table[j].hidden) {
- waddstr(win, " hidden");
- } else {
- if (table[j].above) {
- wprintw(win, " above %d",
- which_panel(px, table[j].above));
- }
- if (table[j].below) {
- wprintw(win, "%s below %d",
- table[j].above ? "," : "",
- which_panel(px, table[j].below));
- }
- }
- waddch(win, '\n');
- }
- }
- for (j = 0; j < (int) SIZEOF(help); ++j) {
- if (wprintw(win, "%s\n", help[j]) == ERR)
- break;
- }
- wgetch(win);
- del_panel(pan);
- pflush();
- }
- delwin(win);
- }
-}
-
-#define wrapper(func) \
-static int my_##func(PANEL *pan) \
-{ \
- int code = ERR; \
- if (pan != 0) { \
- code = func(pan); \
- } \
- return code; \
-}
-/* *INDENT-OFF* */
-wrapper(bottom_panel)
-wrapper(hide_panel)
-wrapper(show_panel)
-wrapper(top_panel)
-/* *INDENT-ON* */
-
-static void
-do_panel(PANEL * px[MAX_PANELS + 1],
- NCURSES_CONST char *cmd,
- FillPanel myFill)
-{
- int which = cmd[1] - '0';
-
- if (which < 1 || which > MAX_PANELS) {
- beep();
- return;
- }
-
- if (log_in != 0) {
- pflush();
- }
-
- saywhat(cmd);
- switch (*cmd) {
- case 'b':
- my_bottom_panel(px[which]);
- break;
- case 'c':
- my_create_panel(px, which, myFill);
- break;
- case 'd':
- my_remove_panel(px, which);
- break;
- case 'h':
- my_hide_panel(px[which]);
- break;
- case 'm':
- my_move_panel(px, which, FALSE);
- break;
- case 'M':
- my_move_panel(px, which, TRUE);
- break;
- case 'r':
- my_resize_panel(px, which, myFill);
- break;
- case 's':
- my_show_panel(px[which]);
- break;
- case 't':
- my_top_panel(px[which]);
- break;
- }
-}
-
-static bool
-ok_letter(int ch)
-{
- return isalpha(UChar(ch)) && strchr("bcdhmMrst", ch) != 0;
-}
-
-static bool
-ok_digit(int ch)
-{
- return isdigit(UChar(ch)) && (ch >= '1') && (ch - '0' <= MAX_PANELS);
-}
-
-/*
- * A command consists of one or more letter/digit pairs separated by a space.
- * Digits are limited to 1..MAX_PANELS.
- *
- * End the command with a newline. Reject other characters.
- */
-static bool
-get_command(PANEL * px[MAX_PANELS + 1], char *buffer, int limit)
-{
- int length = 0;
- int y0, x0;
- int c0, ch;
- WINDOW *win;
-
- getyx(stdscr, y0, x0);
- win = statusline();
- waddstr(win, "Command:");
- buffer[length = 0] = '\0';
-
- if (log_in != 0) {
- if (fgets(buffer, limit - 3, log_in) != 0) {
- length = (int) strlen(buffer);
- while (length > 0 && isspace(UChar(buffer[length - 1])))
- buffer[--length] = '\0';
- waddstr(win, buffer);
- } else {
- close_input();
- }
- (void) wgetch(win);
- } else {
- c0 = 0;
- for (;;) {
- ch = wgetch(win);
- if (ch == ERR || ch == QUIT || ch == ESCAPE) {
- buffer[0] = '\0';
- break;
- } else if (ch == CTRL('L')) {
- wrefresh(curscr);
- } else if (ch == '\n' || ch == KEY_ENTER) {
- break;
- } else if (ch == '?') {
- show_panels(px);
- } else if (length + 3 < limit) {
- if (ch >= KEY_MIN) {
- beep();
- } else if (ok_letter(UChar(ch))) {
- if (isalpha(UChar(c0))) {
- beep();
- } else if (isdigit(UChar(c0))) {
- wprintw(win, " %c", ch);
- buffer[length++] = ' ';
- buffer[length++] = (char) (c0 = ch);
- } else {
- wprintw(win, "%c", ch);
- buffer[length++] = (char) (c0 = ch);
- }
- } else if (ok_digit(ch)) {
- if (isalpha(UChar(c0))) {
- wprintw(win, "%c", ch);
- buffer[length++] = (char) (c0 = ch);
- } else {
- beep();
- }
- } else if (ch == ' ') {
- if (isdigit(UChar(c0))) {
- wprintw(win, "%c", ch);
- buffer[length++] = (char) (c0 = ch);
- } else {
- beep();
- }
- } else {
- beep();
- }
- } else {
- beep();
- }
- }
- }
-
- wmove(stdscr, y0, x0);
-
- buffer[length] = '\0';
- if (log_out && length) {
- fprintf(log_out, "%s\n", buffer);
- }
- return (length != 0);
-}
-
-static void
-demo_panels(InitPanel myInit, FillPanel myFill)
-{
- int itmp;
- PANEL *px[MAX_PANELS + 1];
- char buffer[BUFSIZ];
-
- scrollok(stdscr, FALSE); /* we don't want stdscr to scroll! */
- refresh();
-
- myInit();
- memset(px, 0, sizeof(px));
-
- while (get_command(px, buffer, sizeof(buffer))) {
- int limit = (int) strlen(buffer);
- for (itmp = 0; itmp < limit; itmp += 3) {
- do_panel(px, buffer + itmp, myFill);
- }
- pflush();
- }
-#if NO_LEAKS
- for (itmp = 1; itmp <= MAX_PANELS; ++itmp) {
- my_remove_panel(px, itmp);
- }
-#endif
-}
-
-static void
-usage(void)
-{
- static const char *const tbl[] =
- {
- "Usage: demo_panels [options]"
- ,""
- ,"Options:"
- ," -i file read commands from file"
- ," -o file record commands in file"
- ," -m do not use colors"
-#if USE_WIDEC_SUPPORT
- ," -w use wide-characters in panels and background"
-#endif
- ," -x do not enclose panels in boxes"
- };
- size_t n;
- for (n = 0; n < SIZEOF(tbl); n++)
- fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
-}
-
-int
-main(int argc, char *argv[])
-{
- int c;
- bool monochrome = FALSE;
- InitPanel myInit = init_panel;
- FillPanel myFill = fill_panel;
-
- setlocale(LC_ALL, "");
-
- while ((c = getopt(argc, argv, "i:o:mwx")) != -1) {
- switch (c) {
- case 'i':
- log_in = fopen(optarg, "r");
- break;
- case 'o':
- log_out = fopen(optarg, "w");
- break;
- case 'm':
- monochrome = TRUE;
- break;
-#if USE_WIDEC_SUPPORT
- case 'w':
- myInit = init_wide_panel;
- myFill = fill_wide_panel;
- break;
-#endif
- case 'x':
- unboxed = TRUE;
- break;
- default:
- usage();
- }
- }
- if (unboxed)
- myFill = fill_unboxed;
-
- initscr();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
-
- use_colors = monochrome ? FALSE : has_colors();
- if (use_colors)
- start_color();
-
- demo_panels(myInit, myFill);
- endwin();
-
- close_input();
- close_output();
-
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the curses panel library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/demo_termcap b/test/demo_termcap
deleted file mode 100755
index 2f090d0..0000000
--- a/test/demo_termcap
+++ /dev/null
Binary files differ
diff --git a/test/demo_termcap.c b/test/demo_termcap.c
deleted file mode 100644
index 3e85648..0000000
--- a/test/demo_termcap.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2005-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey
- *
- * $Id: demo_termcap.c,v 1.7 2008/02/09 18:08:36 tom Exp $
- *
- * A simple demo of the termcap interface.
- */
-#define USE_TINFO
-#include <test.priv.h>
-
-#if HAVE_TGETENT
-
-#define isCapName(c) (isgraph(c) && strchr("^#=:\\", c) == 0)
-
-static void
-dumpit(char *cap)
-{
- /*
- * One of the limitations of the termcap interface is that the library
- * cannot determine the size of the buffer passed via tgetstr(), nor the
- * amount of space remaining. This demo simply reuses the whole buffer
- * for each call; a normal termcap application would try to use the buffer
- * to hold all of the strings extracted from the terminal entry.
- */
- char area[1024], *ap = area;
- char *str;
- int num;
-
- if ((str = tgetstr(cap, &ap)) != 0) {
- /*
- * Note that the strings returned are mostly terminfo format, since
- * ncurses does not convert except for a handful of special cases.
- */
- printf("str %s = ", cap);
- while (*str != 0) {
- int ch = UChar(*str++);
- switch (ch) {
- case '\177':
- fputs("^?", stdout);
- break;
- case '\033':
- fputs("\\E", stdout);
- break;
- case '\b':
- fputs("\\b", stdout);
- break;
- case '\f':
- fputs("\\f", stdout);
- break;
- case '\n':
- fputs("\\n", stdout);
- break;
- case '\r':
- fputs("\\r", stdout);
- break;
- case ' ':
- fputs("\\s", stdout);
- break;
- case '\t':
- fputs("\\t", stdout);
- break;
- case '^':
- fputs("\\^", stdout);
- break;
- case ':':
- fputs("\\072", stdout);
- break;
- case '\\':
- fputs("\\\\", stdout);
- break;
- default:
- if (isgraph(ch))
- fputc(ch, stdout);
- else if (ch < 32)
- printf("^%c", ch + '@');
- else
- printf("\\%03o", ch);
- break;
- }
- }
- printf("\n");
- } else if ((num = tgetnum(cap)) >= 0) {
- printf("num %s = %d\n", cap, num);
- } else if ((num = tgetflag(cap)) > 0) {
- printf("flg %s\n", cap);
- }
- fflush(stdout);
-}
-
-static void
-demo_termcap(char *name)
-{
- char buffer[1024];
-
- printf("Terminal type %s\n", name);
- if (tgetent(buffer, name) >= 0) {
- char cap[3];
- int c1, c2;
-
- cap[2] = 0;
- for (c1 = 0; c1 < 256; ++c1) {
- cap[0] = c1;
- if (isCapName(c1)) {
- for (c2 = 0; c2 < 256; ++c2) {
- cap[1] = c2;
- if (isCapName(c2)) {
- dumpit(cap);
- }
- }
- }
- }
- }
-}
-
-int
-main(int argc, char *argv[])
-{
- int n;
- char *name;
-
- if (argc > 1) {
- for (n = 1; n < argc; ++n) {
- demo_termcap(argv[n]);
- }
- } else if ((name = getenv("TERM")) != 0) {
- demo_termcap(name);
- } else {
- static char dumb[] = "dumb";
- demo_termcap(dumb);
- }
-
- ExitProgram(EXIT_SUCCESS);
-}
-
-#else
-int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- printf("This program requires termcap\n");
- exit(EXIT_FAILURE);
-}
-#endif
diff --git a/test/ditto b/test/ditto
deleted file mode 100755
index 974f2a1..0000000
--- a/test/ditto
+++ /dev/null
Binary files differ
diff --git a/test/ditto.c b/test/ditto.c
deleted file mode 100644
index b8aebac..0000000
--- a/test/ditto.c
+++ /dev/null
@@ -1,421 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey (1998-on)
- *
- * $Id: ditto.c,v 1.32 2008/08/04 13:21:41 tom Exp $
- *
- * The program illustrates how to set up multiple screens from a single
- * program.
- *
- * If openpty() is supported, the command line parameters are titles for
- * the windows showing each screen's data.
- *
- * If openpty() is not supported, you must invoke the program by specifying
- * another terminal on the same machine by specifying its device, e.g.,
- * ditto /dev/ttyp1
- */
-#include <test.priv.h>
-#include <sys/stat.h>
-#include <errno.h>
-
-#ifdef USE_PTHREADS
-#include <pthread.h>
-#endif
-
-#ifdef USE_XTERM_PTY
-#include USE_OPENPTY_HEADER
-#endif
-
-#define MAX_FIFO 256
-
-#define THIS_FIFO(n) ((n) % MAX_FIFO)
-#define NEXT_FIFO(n) THIS_FIFO((n) + 1)
-
-typedef struct {
- unsigned long sequence;
- int head;
- int tail;
- int data[MAX_FIFO];
-} FIFO;
-
-typedef struct {
- unsigned long sequence;
-} PEEK;
-
-/*
- * Data "owned" for a single screen. Each screen is divided into windows that
- * show the text read from each terminal. Input from a given screen will also
- * be read into one window per screen.
- */
-typedef struct {
- FILE *input;
- FILE *output;
- SCREEN *screen; /* this screen - curses internal data */
- int which1; /* this screen's index in DITTO[] array */
- int length; /* length of windows[] and peeks[] */
- char **titles; /* per-window titles */
- WINDOW **windows; /* display data from each screen */
- PEEK *peeks; /* indices for each screen's fifo */
- FIFO fifo; /* fifo for this screen */
-#ifdef USE_PTHREADS
- pthread_t thread;
-#endif
-} DITTO;
-
-/*
- * Structure used to pass multiple parameters via the use_screen()
- * single-parameter interface.
- */
-typedef struct {
- int source; /* which screen did character come from */
- int target; /* which screen is character going to */
- DITTO *ditto; /* data for all screens */
-} DDATA;
-
-static void
-failed(const char *s)
-{
- perror(s);
- ExitProgram(EXIT_FAILURE);
-}
-
-static void
-usage(void)
-{
- fprintf(stderr, "usage: ditto [terminal1 ...]\n");
- ExitProgram(EXIT_FAILURE);
-}
-
-/* Add to the head of the fifo, checking for overflow. */
-static void
-put_fifo(FIFO * fifo, int value)
-{
- int next = NEXT_FIFO(fifo->head);
- if (next == fifo->tail)
- fifo->tail = NEXT_FIFO(fifo->tail);
- fifo->data[next] = value;
- fifo->head = next;
- fifo->sequence += 1;
-}
-
-/* Get data from the tail (oldest part) of the fifo, returning -1 if no data.
- * Since each screen can peek into the fifo, we do not update the tail index,
- * but modify the peek-index.
- *
- * FIXME - test/workaround for case where fifo gets more than a buffer
- * ahead of peek.
- */
-static int
-peek_fifo(FIFO * fifo, PEEK * peek)
-{
- int result = -1;
- if (peek->sequence < fifo->sequence) {
- peek->sequence += 1;
- result = fifo->data[THIS_FIFO(peek->sequence)];
- }
- return result;
-}
-
-static FILE *
-open_tty(char *path)
-{
- FILE *fp;
-#ifdef USE_XTERM_PTY
- int amaster;
- int aslave;
- char slave_name[1024];
- char s_option[sizeof(slave_name) + 80];
- char *leaf;
-
- if (openpty(&amaster, &aslave, slave_name, 0, 0) != 0
- || strlen(slave_name) > sizeof(slave_name) - 1)
- failed("openpty");
- if ((leaf = strrchr(slave_name, '/')) == 0) {
- errno = EISDIR;
- failed(slave_name);
- }
- sprintf(s_option, "-S%s/%d", slave_name, aslave);
- if (fork()) {
- execlp("xterm", "xterm", s_option, "-title", path, (char *) 0);
- _exit(0);
- }
- fp = fdopen(amaster, "r+");
- if (fp == 0)
- failed(path);
-#else
- struct stat sb;
-
- if (stat(path, &sb) < 0)
- failed(path);
- if ((sb.st_mode & S_IFMT) != S_IFCHR) {
- errno = ENOTTY;
- failed(path);
- }
- fp = fopen(path, "r+");
- if (fp == 0)
- failed(path);
- printf("opened %s\n", path);
-#endif
- assert(fp != 0);
- return fp;
-}
-
-static void
-init_screen(SCREEN *sp GCC_UNUSED, void *arg)
-{
- DITTO *target = (DITTO *) arg;
- int high, wide;
- int k;
-
- cbreak();
- noecho();
- scrollok(stdscr, TRUE);
- box(stdscr, 0, 0);
-
- target->windows = typeCalloc(WINDOW *, (size_t) target->length);
- target->peeks = typeCalloc(PEEK, (size_t) target->length);
-
- high = (LINES - 2) / target->length;
- wide = (COLS - 2);
- for (k = 0; k < target->length; ++k) {
- WINDOW *outer = newwin(high, wide, 1 + (high * k), 1);
- WINDOW *inner = derwin(outer, high - 2, wide - 2, 1, 1);
-
- box(outer, 0, 0);
- mvwaddstr(outer, 0, 2, target->titles[k]);
- wnoutrefresh(outer);
-
- scrollok(inner, TRUE);
- keypad(inner, TRUE);
-#ifndef USE_PTHREADS
- nodelay(inner, TRUE);
-#endif
-
- target->windows[k] = inner;
- }
- doupdate();
-}
-
-static void
-open_screen(DITTO * target, char **source, int length, int which1)
-{
- if (which1 != 0) {
- target->input =
- target->output = open_tty(source[which1]);
- } else {
- target->input = stdin;
- target->output = stdout;
- }
-
- target->which1 = which1;
- target->titles = source;
- target->length = length;
- target->screen = newterm((char *) 0, /* assume $TERM is the same */
- target->output,
- target->input);
-
- if (target->screen == 0)
- failed("newterm");
-
- (void) USING_SCREEN(target->screen, init_screen, target);
-}
-
-static int
-close_screen(SCREEN *sp GCC_UNUSED, void *arg GCC_UNUSED)
-{
- (void) sp;
- (void) arg;
- return endwin();
-}
-
-/*
- * Read data from the 'source' screen.
- */
-static int
-read_screen(SCREEN *sp GCC_UNUSED, void *arg)
-{
- DDATA *data = (DDATA *) arg;
- DITTO *ditto = &(data->ditto[data->source]);
- WINDOW *win = ditto->windows[data->source];
- int ch = wgetch(win);
-
- if (ch > 0 && ch < 256)
- put_fifo(&(ditto->fifo), ch);
- else
- ch = ERR;
-
- return ch;
-}
-
-/*
- * Write all of the data that's in fifos for the 'target' screen.
- */
-static int
-write_screen(SCREEN *sp GCC_UNUSED, void *arg GCC_UNUSED)
-{
- DDATA *data = (DDATA *) arg;
- DITTO *ditto = &(data->ditto[data->target]);
- bool changed = FALSE;
- int which;
-
- for (which = 0; which < ditto->length; ++which) {
- WINDOW *win = ditto->windows[which];
- FIFO *fifo = &(data->ditto[which].fifo);
- PEEK *peek = &(ditto->peeks[which]);
- int ch;
-
- while ((ch = peek_fifo(fifo, peek)) > 0) {
- changed = TRUE;
-
- waddch(win, (chtype) ch);
- wnoutrefresh(win);
- }
- }
-
- if (changed)
- doupdate();
- return OK;
-}
-
-static void
-show_ditto(DITTO * data, int count, DDATA * ddata)
-{
- int n;
-
- for (n = 0; n < count; n++) {
- ddata->target = n;
- USING_SCREEN(data[n].screen, write_screen, (void *) ddata);
- }
-}
-
-#ifdef USE_PTHREADS
-static void *
-handle_screen(void *arg)
-{
- DDATA ddata;
- int ch;
-
- memset(&ddata, 0, sizeof(ddata));
- ddata.ditto = (DITTO *) arg;
- ddata.source = ddata.ditto->which1;
- ddata.ditto -= ddata.source; /* -> base of array */
-
- for (;;) {
- ch = read_screen(ddata.ditto->screen, &ddata);
- if (ch == CTRL('D')) {
- int later = (ddata.source ? ddata.source : -1);
- int j;
-
- for (j = ddata.ditto->length - 1; j > 0; --j) {
- if (j != later) {
- pthread_cancel(ddata.ditto[j].thread);
- }
- }
- if (later > 0) {
- pthread_cancel(ddata.ditto[later].thread);
- }
- break;
- }
- show_ditto(ddata.ditto, ddata.ditto->length, &ddata);
- }
- return NULL;
-}
-#endif
-
-int
-main(int argc, char *argv[])
-{
- int j;
- DITTO *data;
-#ifndef USE_PTHREADS
- int count;
-#endif
-
- if (argc <= 1)
- usage();
-
- if ((data = typeCalloc(DITTO, (size_t) argc)) == 0)
- failed("calloc data");
-
- for (j = 0; j < argc; j++) {
- open_screen(&data[j], argv, argc, j);
- }
-
-#ifdef USE_PTHREADS
- /*
- * For multi-threaded operation, set up a reader for each of the screens.
- * That uses blocking I/O rather than polling for input, so no calls to
- * napms() are needed.
- */
- for (j = 0; j < argc; j++) {
- (void) pthread_create(&(data[j].thread), NULL, handle_screen, &data[j]);
- }
- pthread_join(data[1].thread, NULL);
-#else
- /*
- * Loop, reading characters from any of the inputs and writing to all
- * of the screens.
- */
- for (count = 0;; ++count) {
- DDATA ddata;
- int ch;
- int which = (count % argc);
-
- napms(20);
-
- ddata.source = which;
- ddata.ditto = data;
-
- ch = USING_SCREEN(data[which].screen, read_screen, &ddata);
- if (ch == CTRL('D')) {
- break;
- } else if (ch != ERR) {
- show_ditto(data, argc, &ddata);
- }
- }
-#endif
-
- /*
- * Cleanup and exit
- */
- for (j = argc - 1; j >= 0; j--) {
- USING_SCREEN(data[j].screen, close_screen, 0);
- fprintf(data[j].output, "**Closed\r\n");
-
- /*
- * Closing before a delscreen() helps ncurses determine that there
- * is no valid output buffer, and can remove the setbuf() data.
- */
- fflush(data[j].output);
- fclose(data[j].output);
- delscreen(data[j].screen);
- }
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/dots b/test/dots
deleted file mode 100755
index 9ff5bca..0000000
--- a/test/dots
+++ /dev/null
Binary files differ
diff --git a/test/dots.c b/test/dots.c
deleted file mode 100644
index 2d64718..0000000
--- a/test/dots.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey <dickey@clark.net> 1999
- *
- * $Id: dots.c,v 1.17 2008/02/09 18:08:50 tom Exp $
- *
- * A simple demo of the terminfo interface.
- */
-#define USE_TINFO
-#include <test.priv.h>
-
-#if HAVE_SETUPTERM
-
-#include <time.h>
-
-#define valid(s) ((s != 0) && s != (char *)-1)
-
-static bool interrupted = FALSE;
-static long total_chars = 0;
-static time_t started;
-
-static int
-outc(TPUTS_ARG c)
-{
- if (interrupted) {
- char tmp = c;
- write(STDOUT_FILENO, &tmp, 1);
- } else {
- putc(c, stdout);
- }
- return 0;
-}
-
-static bool
-outs(char *s)
-{
- if (valid(s)) {
- tputs(s, 1, outc);
- return TRUE;
- }
- return FALSE;
-}
-
-static void
-cleanup(void)
-{
- outs(exit_attribute_mode);
- if (!outs(orig_colors))
- outs(orig_pair);
- outs(clear_screen);
- outs(cursor_normal);
-
- printf("\n\n%ld total chars, rate %.2f/sec\n",
- total_chars,
- ((double) (total_chars) / (time((time_t *) 0) - started)));
-}
-
-static void
-onsig(int n GCC_UNUSED)
-{
- interrupted = TRUE;
-}
-
-static float
-ranf(void)
-{
- long r = (rand() & 077777);
- return ((float) r / 32768.);
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- int x, y, z, p;
- float r;
- float c;
-
- CATCHALL(onsig);
-
- srand((unsigned) time(0));
- setupterm((char *) 0, 1, (int *) 0);
- outs(clear_screen);
- outs(cursor_invisible);
- if (max_colors > 1) {
- if (!valid(set_a_foreground)
- || !valid(set_a_background)
- || (!valid(orig_colors) && !valid(orig_pair)))
- max_colors = -1;
- }
-
- r = (float) (lines - 4);
- c = (float) (columns - 4);
- started = time((time_t *) 0);
-
- while (!interrupted) {
- x = (int) (c * ranf()) + 2;
- y = (int) (r * ranf()) + 2;
- p = (ranf() > 0.9) ? '*' : ' ';
-
- tputs(tparm3(cursor_address, y, x), 1, outc);
- if (max_colors > 0) {
- z = (int) (ranf() * max_colors);
- if (ranf() > 0.01) {
- tputs(tparm2(set_a_foreground, z), 1, outc);
- } else {
- tputs(tparm2(set_a_background, z), 1, outc);
- napms(1);
- }
- } else if (valid(exit_attribute_mode)
- && valid(enter_reverse_mode)) {
- if (ranf() <= 0.01) {
- outs((ranf() > 0.6)
- ? enter_reverse_mode
- : exit_attribute_mode);
- napms(1);
- }
- }
- outc(p);
- fflush(stdout);
- ++total_chars;
- }
- cleanup();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- fprintf(stderr, "This program requires terminfo\n");
- exit(EXIT_FAILURE);
-}
-#endif
diff --git a/test/dots_mvcur b/test/dots_mvcur
deleted file mode 100755
index ec3ba92..0000000
--- a/test/dots_mvcur
+++ /dev/null
Binary files differ
diff --git a/test/dots_mvcur.c b/test/dots_mvcur.c
deleted file mode 100644
index f023023..0000000
--- a/test/dots_mvcur.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1999-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey - 2007
- *
- * $Id: dots_mvcur.c,v 1.2 2008/02/09 18:08:57 tom Exp $
- *
- * A simple demo of the terminfo interface, and mvcur.
- */
-#define USE_TINFO
-#include <test.priv.h>
-
-#if HAVE_SETUPTERM
-
-#include <time.h>
-
-#define valid(s) ((s != 0) && s != (char *)-1)
-
-static bool interrupted = FALSE;
-static long total_chars = 0;
-static time_t started;
-
-static int
-outc(TPUTS_ARG c)
-{
- if (interrupted) {
- char tmp = c;
- write(STDOUT_FILENO, &tmp, 1);
- } else {
- putc(c, stdout);
- }
- return 0;
-}
-
-static bool
-outs(char *s)
-{
- if (valid(s)) {
- tputs(s, 1, outc);
- return TRUE;
- }
- return FALSE;
-}
-
-static void
-cleanup(void)
-{
- outs(exit_attribute_mode);
- if (!outs(orig_colors))
- outs(orig_pair);
- outs(clear_screen);
- outs(cursor_normal);
-
- printf("\n\n%ld total chars, rate %.2f/sec\n",
- total_chars,
- ((double) (total_chars) / (time((time_t *) 0) - started)));
-}
-
-static void
-onsig(int n GCC_UNUSED)
-{
- interrupted = TRUE;
-}
-
-static float
-ranf(void)
-{
- long r = (rand() & 077777);
- return ((float) r / 32768.);
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- int x0 = 1, y0 = 1;
- int x, y, z, p;
- float r;
- float c;
- SCREEN *sp;
-
- CATCHALL(onsig);
-
- srand((unsigned) time(0));
- sp = newterm((char *) 0, stdout, stdin);
- outs(clear_screen);
- outs(cursor_home);
- outs(cursor_invisible);
- if (max_colors > 1) {
- if (!valid(set_a_foreground)
- || !valid(set_a_background)
- || (!valid(orig_colors) && !valid(orig_pair)))
- max_colors = -1;
- }
-
- r = (float) (lines - 4);
- c = (float) (columns - 4);
- started = time((time_t *) 0);
-
- while (!interrupted) {
- x = (int) (c * ranf()) + 2;
- y = (int) (r * ranf()) + 2;
- p = (ranf() > 0.9) ? '*' : ' ';
-
- if (mvcur(y0, x0, y, x) != ERR) {
- x0 = x;
- y0 = y;
- }
-
- if (max_colors > 0) {
- z = (int) (ranf() * max_colors);
- if (ranf() > 0.01) {
- tputs(tparm2(set_a_foreground, z), 1, outc);
- } else {
- tputs(tparm2(set_a_background, z), 1, outc);
- napms(1);
- }
- } else if (valid(exit_attribute_mode)
- && valid(enter_reverse_mode)) {
- if (ranf() <= 0.01) {
- outs((ranf() > 0.6)
- ? enter_reverse_mode
- : exit_attribute_mode);
- napms(1);
- }
- }
- outc(p);
- fflush(stdout);
- ++total_chars;
- }
- cleanup();
- endwin();
- delscreen(sp);
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- fprintf(stderr, "This program requires terminfo\n");
- exit(EXIT_FAILURE);
-}
-#endif
diff --git a/test/echochar b/test/echochar
deleted file mode 100755
index e12e4da..0000000
--- a/test/echochar
+++ /dev/null
Binary files differ
diff --git a/test/echochar.c b/test/echochar.c
deleted file mode 100644
index d4de7ee..0000000
--- a/test/echochar.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2006-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: echochar.c,v 1.6 2008/04/12 22:06:04 tom Exp $
- *
- * Demonstrate the echochar function (compare to dots.c).
- * Thomas Dickey - 2006/11/4
- */
-
-#include <test.priv.h>
-
-#include <time.h>
-
-#define valid(s) ((s != 0) && s != (char *)-1)
-
-static bool interrupted = FALSE;
-static long total_chars = 0;
-static time_t started;
-
-static void
-cleanup(void)
-{
- endwin();
-
- printf("\n\n%ld total chars, rate %.2f/sec\n",
- total_chars,
- ((double) (total_chars) / (time((time_t *) 0) - started)));
-}
-
-static void
-onsig(int n GCC_UNUSED)
-{
- interrupted = TRUE;
-}
-
-static float
-ranf(void)
-{
- long r = (rand() & 077777);
- return ((float) r / 32768.);
-}
-
-static void
-set_color(char *my_pairs, int fg, int bg)
-{
- int pair = (fg * COLORS) + bg;
- if (!my_pairs[pair]) {
- init_pair(pair, fg, bg);
- }
- attron(COLOR_PAIR(pair));
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- int ch, x, y, z, p;
- float r;
- float c;
- bool use_colors;
- bool opt_r = FALSE;
- char *my_pairs = 0;
- int last_fg = 0;
- int last_bg = 0;
-
- while ((ch = getopt(argc, argv, "r")) != -1) {
- switch (ch) {
- case 'r':
- opt_r = TRUE;
- break;
- default:
- fprintf(stderr, "usage: echochar [-r]\n");
- ExitProgram(EXIT_FAILURE);
- }
- }
-
- CATCHALL(onsig);
- initscr();
-
- use_colors = has_colors();
- if (use_colors) {
- start_color();
- if (COLOR_PAIRS > 0) {
- my_pairs = typeCalloc(char, COLOR_PAIRS);
- }
- use_colors = (my_pairs != 0);
- }
-
- srand((unsigned) time(0));
-
- curs_set(0);
-
- r = (float) (LINES - 4);
- c = (float) (COLS - 4);
- started = time((time_t *) 0);
-
- while (!interrupted) {
- x = (int) (c * ranf()) + 2;
- y = (int) (r * ranf()) + 2;
- p = (ranf() > 0.9) ? '*' : ' ';
-
- move(y, x);
- if (use_colors > 0) {
- z = (int) (ranf() * COLORS);
- if (ranf() > 0.01) {
- set_color(my_pairs, z, last_bg);
- last_fg = z;
- } else {
- set_color(my_pairs, last_fg, z);
- last_bg = z;
- napms(1);
- }
- } else {
- if (ranf() <= 0.01) {
- if (ranf() > 0.6)
- attron(A_REVERSE);
- else
- attroff(A_REVERSE);
- napms(1);
- }
- }
- if (opt_r) {
- addch(UChar(p));
- refresh();
- } else {
- echochar(UChar(p));
- }
- ++total_chars;
- }
- cleanup();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/edit_field.c b/test/edit_field.c
deleted file mode 100644
index b240028..0000000
--- a/test/edit_field.c
+++ /dev/null
@@ -1,461 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2003-2006,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: edit_field.c,v 1.14 2008/10/18 20:40:20 tom Exp $
- *
- * A wrapper for form_driver() which keeps track of the user's editing changes
- * for each field, and makes the result available as a null-terminated string
- * in field_buffer(field,1).
- *
- * Thomas Dickey - 2003/4/26.
- */
-
-#include <test.priv.h>
-
-#if USE_LIBFORM
-
-#include <edit_field.h>
-
-static struct {
- int code;
- int result;
- const char *help;
-} commands[] = {
-
- {
- CTRL('A'), REQ_NEXT_CHOICE, ""
- },
- {
- CTRL('B'), REQ_PREV_WORD, "go to previous word"
- },
- {
- CTRL('C'), REQ_CLR_EOL, "clear to end of line"
- },
- {
- CTRL('D'), REQ_DOWN_FIELD, "move downward to field"
- },
- {
- CTRL('E'), REQ_END_FIELD, "go to end of field"
- },
- {
- CTRL('F'), REQ_NEXT_PAGE, "go to next page"
- },
- {
- CTRL('G'), REQ_DEL_WORD, "delete current word"
- },
- {
- CTRL('H'), REQ_DEL_PREV, "delete previous character"
- },
- {
- CTRL('I'), REQ_INS_CHAR, "insert character"
- },
- {
- CTRL('K'), REQ_CLR_EOF, "clear to end of field"
- },
- {
- CTRL('L'), REQ_LEFT_FIELD, "go to field to left"
- },
- {
- CTRL('M'), REQ_NEW_LINE, "insert/overlay new line"
- },
- {
- CTRL('N'), REQ_NEXT_FIELD, "go to next field"
- },
- {
- CTRL('O'), REQ_INS_LINE, "insert blank line at cursor"
- },
- {
- CTRL('P'), REQ_PREV_FIELD, "go to previous field"
- },
- {
- CTRL('Q'), MY_QUIT, "exit form"
- },
- {
- CTRL('R'), REQ_RIGHT_FIELD, "go to field to right"
- },
- {
- CTRL('S'), REQ_BEG_FIELD, "go to beginning of field"
- },
- {
- CTRL('T'), MY_EDT_MODE, "toggle O_EDIT mode, clear field status",
- },
- {
- CTRL('U'), REQ_UP_FIELD, "move upward to field"
- },
- {
- CTRL('V'), REQ_DEL_CHAR, "delete character"
- },
- {
- CTRL('W'), REQ_NEXT_WORD, "go to next word"
- },
- {
- CTRL('X'), REQ_CLR_FIELD, "clear field"
- },
- {
- CTRL('Y'), REQ_DEL_LINE, "delete line"
- },
- {
- CTRL('Z'), REQ_PREV_CHOICE, ""
- },
- {
- CTRL('['), MY_QUIT, "exit form"
- },
- {
- CTRL(']'), MY_INS_MODE, "toggle REQ_INS_MODE/REQ_OVL_MODE",
- },
- {
- KEY_F(1), MY_HELP, "show this screen",
- },
- {
- KEY_BACKSPACE, REQ_DEL_PREV, "delete previous character"
- },
- {
- KEY_DOWN, REQ_DOWN_CHAR, "move down 1 character"
- },
- {
- KEY_END, REQ_LAST_FIELD, "go to last field"
- },
- {
- KEY_HOME, REQ_FIRST_FIELD, "go to first field"
- },
- {
- KEY_LEFT, REQ_LEFT_CHAR, "move left 1 character"
- },
- {
- KEY_LL, REQ_LAST_FIELD, "go to last field"
- },
- {
- KEY_NEXT, REQ_NEXT_FIELD, "go to next field"
- },
- {
- KEY_NPAGE, REQ_NEXT_PAGE, "go to next page"
- },
- {
- KEY_PPAGE, REQ_PREV_PAGE, "go to previous page"
- },
- {
- KEY_PREVIOUS, REQ_PREV_FIELD, "go to previous field"
- },
- {
- KEY_RIGHT, REQ_RIGHT_CHAR, "move right 1 character"
- },
- {
- KEY_UP, REQ_UP_CHAR, "move up 1 character"
- }
-};
-
-static WINDOW *old_window;
-
-static void
-begin_popup(void)
-{
- doupdate();
- old_window = dupwin(curscr);
-}
-
-static void
-end_popup(void)
-{
- touchwin(old_window);
- wnoutrefresh(old_window);
- doupdate();
- delwin(old_window);
-}
-
-/*
- * Display a temporary window listing the keystroke-commands we recognize.
- */
-void
-help_edit_field(void)
-{
- int x0 = 4;
- int y0 = 2;
- int y1 = 0;
- int y2 = 0;
- int wide = COLS - ((x0 + 1) * 2);
- int high = LINES - ((y0 + 1) * 2);
- WINDOW *help = newwin(high, wide, y0, x0);
- WINDOW *data = newpad(2 + SIZEOF(commands), wide - 4);
- unsigned n;
- int ch = ERR;
-
- begin_popup();
-
- keypad(help, TRUE);
- keypad(data, TRUE);
- waddstr(data, "Defined form edit/traversal keys:\n");
- for (n = 0; n < SIZEOF(commands); ++n) {
- const char *name;
-#ifdef NCURSES_VERSION
- if ((name = form_request_name(commands[n].result)) == 0)
-#endif
- name = commands[n].help;
- wprintw(data, "%s -- %s\n",
- keyname(commands[n].code),
- name != 0 ? name : commands[n].help);
- }
- waddstr(data, "Arrow keys move within a field as you would expect.");
- y2 = getcury(data);
-
- do {
- switch (ch) {
- case KEY_HOME:
- y1 = 0;
- break;
- case KEY_END:
- y1 = y2;
- break;
- case KEY_PREVIOUS:
- case KEY_PPAGE:
- if (y1 > 0) {
- y1 -= high / 2;
- if (y1 < 0)
- y1 = 0;
- } else {
- beep();
- }
- break;
- case KEY_NEXT:
- case KEY_NPAGE:
- if (y1 < y2) {
- y1 += high / 2;
- if (y1 >= y2)
- y1 = y2;
- } else {
- beep();
- }
- break;
- case CTRL('P'):
- case KEY_UP:
- if (y1 > 0)
- --y1;
- else
- beep();
- break;
- case CTRL('N'):
- case KEY_DOWN:
- if (y1 < y2)
- ++y1;
- else
- beep();
- break;
- default:
- beep();
- break;
- case ERR:
- break;
- }
- werase(help);
- box(help, 0, 0);
- wnoutrefresh(help);
- pnoutrefresh(data, y1, 0, y0 + 1, x0 + 1, high, wide);
- doupdate();
- } while ((ch = wgetch(data)) != ERR && ch != QUIT && ch != ESCAPE);
- werase(help);
- wrefresh(help);
- delwin(help);
- delwin(data);
-
- end_popup();
-}
-
-static int
-offset_in_field(FORM * form)
-{
- FIELD *field = current_field(form);
- return form->curcol + form->currow * field->dcols;
-}
-
-static void
-inactive_field(FIELD * f)
-{
- void *ptr = field_userptr(f);
- set_field_back(f, (chtype) ptr);
-}
-
-int
-edit_field(FORM * form, int *result)
-{
- int ch = wgetch(form_win(form));
- int status;
- FIELD *before;
- unsigned n;
- char lengths[80];
- int length;
- char *buffer;
- int before_row = form->currow;
- int before_col = form->curcol;
- int before_off = offset_in_field(form);
-
- before = current_field(form);
- set_field_back(before, A_NORMAL);
- if (ch <= KEY_MAX) {
- set_field_back(before, A_REVERSE);
- } else if (ch <= MAX_FORM_COMMAND) {
- inactive_field(before);
- }
-
- *result = ch;
- for (n = 0; n < SIZEOF(commands); ++n) {
- if (commands[n].code == ch) {
- *result = commands[n].result;
- break;
- }
- }
-
- status = form_driver(form, *result);
-
- if (status == E_OK) {
- bool modified = TRUE;
-
- length = 0;
- if ((buffer = field_buffer(before, 1)) != 0)
- length = atoi(buffer);
- if (length < before_off)
- length = before_off;
- switch (*result) {
- case REQ_CLR_EOF:
- length = before_off;
- break;
- case REQ_CLR_EOL:
- if (before_row + 1 == before->rows)
- length = before_off;
- break;
- case REQ_CLR_FIELD:
- length = 0;
- break;
- case REQ_DEL_CHAR:
- if (length > before_off)
- --length;
- break;
- case REQ_DEL_PREV:
- if (length > 0) {
- if (before_col > 0) {
- --length;
- } else if (before_row > 0) {
- length -= before->cols + before_col;
- }
- }
- break;
- case REQ_NEW_LINE:
- length += before->cols;
- break;
-#if 0
- /* FIXME: finish these */
- case REQ_DEL_LINE: /* delete line */
- case REQ_DEL_WORD: /* delete word at cursor */
- case REQ_INS_CHAR: /* insert blank char at cursor */
- case REQ_INS_LINE: /* insert blank line at cursor */
- case REQ_INS_MODE: /* begin insert mode */
- case REQ_OVL_MODE: /* begin overlay mode */
-#endif
- /* ignore all of the motion commands */
- case REQ_SCR_BCHAR: /* FALLTHRU */
- case REQ_SCR_BHPAGE: /* FALLTHRU */
- case REQ_SCR_BLINE: /* FALLTHRU */
- case REQ_SCR_BPAGE: /* FALLTHRU */
- case REQ_SCR_FCHAR: /* FALLTHRU */
- case REQ_SCR_FHPAGE: /* FALLTHRU */
- case REQ_SCR_FLINE: /* FALLTHRU */
- case REQ_SCR_FPAGE: /* FALLTHRU */
- case REQ_SCR_HBHALF: /* FALLTHRU */
- case REQ_SCR_HBLINE: /* FALLTHRU */
- case REQ_SCR_HFHALF: /* FALLTHRU */
- case REQ_SCR_HFLINE: /* FALLTHRU */
- case REQ_BEG_FIELD: /* FALLTHRU */
- case REQ_BEG_LINE: /* FALLTHRU */
- case REQ_DOWN_CHAR: /* FALLTHRU */
- case REQ_DOWN_FIELD: /* FALLTHRU */
- case REQ_END_FIELD: /* FALLTHRU */
- case REQ_END_LINE: /* FALLTHRU */
- case REQ_FIRST_FIELD: /* FALLTHRU */
- case REQ_FIRST_PAGE: /* FALLTHRU */
- case REQ_LAST_FIELD: /* FALLTHRU */
- case REQ_LAST_PAGE: /* FALLTHRU */
- case REQ_LEFT_CHAR: /* FALLTHRU */
- case REQ_LEFT_FIELD: /* FALLTHRU */
- case REQ_NEXT_CHAR: /* FALLTHRU */
- case REQ_NEXT_CHOICE: /* FALLTHRU */
- case REQ_NEXT_FIELD: /* FALLTHRU */
- case REQ_NEXT_LINE: /* FALLTHRU */
- case REQ_NEXT_PAGE: /* FALLTHRU */
- case REQ_NEXT_WORD: /* FALLTHRU */
- case REQ_PREV_CHAR: /* FALLTHRU */
- case REQ_PREV_CHOICE: /* FALLTHRU */
- case REQ_PREV_FIELD: /* FALLTHRU */
- case REQ_PREV_LINE: /* FALLTHRU */
- case REQ_PREV_PAGE: /* FALLTHRU */
- case REQ_PREV_WORD: /* FALLTHRU */
- case REQ_RIGHT_CHAR: /* FALLTHRU */
- case REQ_RIGHT_FIELD: /* FALLTHRU */
- case REQ_SFIRST_FIELD: /* FALLTHRU */
- case REQ_SLAST_FIELD: /* FALLTHRU */
- case REQ_SNEXT_FIELD: /* FALLTHRU */
- case REQ_SPREV_FIELD: /* FALLTHRU */
- case REQ_UP_CHAR: /* FALLTHRU */
- case REQ_UP_FIELD: /* FALLTHRU */
- case REQ_VALIDATION: /* FALLTHRU */
- modified = FALSE;
- break;
-
- default:
- modified = FALSE;
- if (ch >= MIN_FORM_COMMAND) {
- beep();
- } else if (isprint(ch)) {
- modified = TRUE;
- }
- break;
- }
-
- /*
- * If we do not force a re-validation, then field_buffer 0 will
- * be lagging by one character.
- */
- if (modified && form_driver(form, REQ_VALIDATION) == E_OK && *result
- < MIN_FORM_COMMAND)
- ++length;
-
- sprintf(lengths, "%d", length);
- set_field_buffer(before, 1, lengths);
- }
-
- if (current_field(form) != before)
- inactive_field(before);
- return status;
-}
-#else
-
-extern void no_edit_field(void);
-
-void
-no_edit_field(void)
-{
-}
-
-#endif
diff --git a/test/edit_field.h b/test/edit_field.h
deleted file mode 100644
index 6e917c2..0000000
--- a/test/edit_field.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2003-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: edit_field.h,v 1.5 2006/06/03 16:38:57 tom Exp $
- *
- * Interface of edit_field.c
- */
-
-#ifndef EDIT_FORM_H_incl
-#define EDIT_FORM_H_incl 1
-
-#include <form.h>
-
-#define EDIT_FIELD(c) (MAX_FORM_COMMAND + c)
-
-#define MY_HELP EDIT_FIELD('h')
-#define MY_QUIT EDIT_FIELD('q')
-#define MY_EDT_MODE EDIT_FIELD('e')
-#define MY_INS_MODE EDIT_FIELD('t')
-
-extern void help_edit_field(void);
-extern int edit_field(FORM * form, int *result);
-
-#endif /* EDIT_FORM_H_incl */
diff --git a/test/filter b/test/filter
deleted file mode 100755
index 34925c6..0000000
--- a/test/filter
+++ /dev/null
Binary files differ
diff --git a/test/filter.c b/test/filter.c
deleted file mode 100644
index bdcea36..0000000
--- a/test/filter.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey <dickey@clark.net> 1998
- *
- * $Id: filter.c,v 1.11 2006/12/09 16:53:47 tom Exp $
- */
-#include <test.priv.h>
-
-#if HAVE_FILTER
-
-/*
- * An example of the 'filter()' function in ncurses, this program prompts
- * for commands and executes them (like a command shell). It illustrates
- * how ncurses can be used to implement programs that are not full-screen.
- *
- * Ncurses differs slightly from SVr4 curses. The latter does not flush its
- * state when exiting program mode, so the attributes on the command lines of
- * this program 'bleed' onto the executed commands. Rather than use the
- * reset_shell_mode() and reset_prog_mode() functions, we could invoke endwin()
- * and refresh(), but that does not work any better.
- */
-
-static int
-new_command(char *buffer, int length, attr_t underline)
-{
- int code;
-
- attron(A_BOLD);
- printw("Command: ");
- attron(underline);
- code = getnstr(buffer, length);
- /*
- * If this returns anything except ERR/OK, it would be one of ncurses's
- * extensions. Fill the buffer with something harmless that the shell
- * will execute as a comment.
- */
-#ifdef KEY_EVENT
- if (code == KEY_EVENT)
- strcpy(buffer, "# event!");
-#endif
-#ifdef KEY_RESIZE
- if (code == KEY_RESIZE) {
- strcpy(buffer, "# resize!");
- getch();
- }
-#endif
- attroff(underline);
- attroff(A_BOLD);
- printw("\n");
-
- return code;
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- char buffer[80];
- attr_t underline;
-
- setlocale(LC_ALL, "");
-
- filter();
- (void) newterm((char *) 0, stdout, stdin);
- cbreak();
- keypad(stdscr, TRUE);
-
- if (has_colors()) {
- int background = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() != ERR)
- background = -1;
-#endif
- init_pair(1, COLOR_CYAN, background);
- underline = COLOR_PAIR(1);
- } else {
- underline = A_UNDERLINE;
- }
-
- while (new_command(buffer, sizeof(buffer) - 1, underline) != ERR
- && strlen(buffer) != 0) {
- reset_shell_mode();
- printf("\n");
- fflush(stdout);
- system(buffer);
- reset_prog_mode();
- touchwin(stdscr);
- erase();
- refresh();
- }
- printw("done");
- refresh();
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the filter function\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif /* HAVE_FILTER */
diff --git a/test/firework b/test/firework
deleted file mode 100755
index 120d602..0000000
--- a/test/firework
+++ /dev/null
Binary files differ
diff --git a/test/firework.c b/test/firework.c
deleted file mode 100644
index 1337e97..0000000
--- a/test/firework.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: firework.c,v 1.24 2006/05/20 15:36:08 tom Exp $
- */
-#include <test.priv.h>
-
-#include <time.h>
-
-static int my_bg = COLOR_BLACK;
-
-static void
-cleanup(void)
-{
- curs_set(1);
- endwin();
-}
-
-static RETSIGTYPE
-onsig(int n GCC_UNUSED)
-{
- cleanup();
- ExitProgram(EXIT_FAILURE);
-}
-
-static void
-showit(void)
-{
- int ch;
- napms(120);
- if ((ch = getch()) != ERR) {
-#ifdef KEY_RESIZE
- if (ch == KEY_RESIZE) {
- erase();
- } else
-#endif
- if (ch == 'q') {
- cleanup();
- ExitProgram(EXIT_SUCCESS);
- } else if (ch == 's') {
- nodelay(stdscr, FALSE);
- } else if (ch == ' ') {
- nodelay(stdscr, TRUE);
- }
- }
-}
-
-static int
-get_colour(chtype *bold)
-{
- int attr;
- attr = (rand() % 16) + 1;
-
- *bold = A_NORMAL;
- if (attr > 8) {
- *bold = A_BOLD;
- attr &= 7;
- }
- return (attr);
-}
-
-static
-void
-explode(int row, int col)
-{
- chtype bold;
- erase();
- mvprintw(row, col, "-");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 1, col - 1, " - ");
- mvprintw(row + 0, col - 1, "-+-");
- mvprintw(row + 1, col - 1, " - ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 2, col - 2, " --- ");
- mvprintw(row - 1, col - 2, "-+++-");
- mvprintw(row + 0, col - 2, "-+#+-");
- mvprintw(row + 1, col - 2, "-+++-");
- mvprintw(row + 2, col - 2, " --- ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 2, col - 2, " +++ ");
- mvprintw(row - 1, col - 2, "++#++");
- mvprintw(row + 0, col - 2, "+# #+");
- mvprintw(row + 1, col - 2, "++#++");
- mvprintw(row + 2, col - 2, " +++ ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 2, col - 2, " # ");
- mvprintw(row - 1, col - 2, "## ##");
- mvprintw(row + 0, col - 2, "# #");
- mvprintw(row + 1, col - 2, "## ##");
- mvprintw(row + 2, col - 2, " # ");
- showit();
-
- init_pair(1, get_colour(&bold), my_bg);
- attrset(COLOR_PAIR(1) | bold);
- mvprintw(row - 2, col - 2, " # # ");
- mvprintw(row - 1, col - 2, "# #");
- mvprintw(row + 0, col - 2, " ");
- mvprintw(row + 1, col - 2, "# #");
- mvprintw(row + 2, col - 2, " # # ");
- showit();
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- int start, end, row, diff, flag = 0, direction;
- unsigned seed;
-
- CATCHALL(onsig);
-
- initscr();
- noecho();
- cbreak();
- keypad(stdscr, TRUE);
- nodelay(stdscr, TRUE);
-
- if (has_colors()) {
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- my_bg = -1;
-#endif
- }
- curs_set(0);
-
- seed = time((time_t *) 0);
- srand(seed);
- for (;;) {
- do {
- start = rand() % (COLS - 3);
- end = rand() % (COLS - 3);
- start = (start < 2) ? 2 : start;
- end = (end < 2) ? 2 : end;
- direction = (start > end) ? -1 : 1;
- diff = abs(start - end);
- } while (diff < 2 || diff >= LINES - 2);
- attrset(A_NORMAL);
- for (row = 0; row < diff; row++) {
- mvprintw(LINES - row, start + (row * direction),
- (direction < 0) ? "\\" : "/");
- if (flag++) {
- showit();
- erase();
- flag = 0;
- }
- }
- if (flag++) {
- showit();
- flag = 0;
- }
- seed = time((time_t *) 0);
- srand(seed);
- explode(LINES - row, start + (diff * direction));
- erase();
- showit();
- }
-}
diff --git a/test/firstlast b/test/firstlast
deleted file mode 100755
index ff9ae51..0000000
--- a/test/firstlast
+++ /dev/null
Binary files differ
diff --git a/test/firstlast.c b/test/firstlast.c
deleted file mode 100644
index a767640..0000000
--- a/test/firstlast.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2005,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * This test was written by Alexander V. Lukyanov to demonstrate difference
- * between ncurses 4.1 and SVR4 curses
- *
- * $Id: firstlast.c,v 1.5 2006/04/01 19:03:18 tom Exp $
- */
-
-#include <test.priv.h>
-
-static void
-fill(WINDOW *w, const char *str)
-{
- const char *s;
- for (;;) {
- for (s = str; *s; s++) {
- if (waddch(w, UChar(*s)) == ERR) {
- wmove(w, 0, 0);
- return;
- }
- }
- }
-}
-
-int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- WINDOW *large, *small;
- initscr();
- noecho();
-
- large = newwin(20, 60, 2, 10);
- small = newwin(10, 30, 7, 25);
-
- /* test 1 - addch */
- fill(large, "LargeWindow");
-
- refresh();
- wrefresh(large);
- wrefresh(small);
-
- mvwaddstr(small, 5, 5, " Test <place to change> String ");
- wrefresh(small);
- getch();
-
- touchwin(large);
- wrefresh(large);
-
- mvwaddstr(small, 5, 5, " Test <***************> String ");
- wrefresh(small);
-
- /* DIFFERENCE! */
- getch();
-
- /* test 2: erase */
- erase();
- refresh();
- getch();
-
- /* test 3: clrtoeol */
- werase(small);
- wrefresh(small);
- touchwin(large);
- wrefresh(large);
- wmove(small, 5, 0);
- waddstr(small, " clrtoeol>");
- wclrtoeol(small);
- wrefresh(small);
-
- /* DIFFERENCE! */ ;
- getch();
-
- /* test 4: clrtobot */
- werase(small);
- wrefresh(small);
- touchwin(large);
- wrefresh(large);
- wmove(small, 5, 3);
- waddstr(small, " clrtobot>");
- wclrtobot(small);
- wrefresh(small);
-
- /* DIFFERENCE! */
- getch();
-
- endwin();
-
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/foldkeys b/test/foldkeys
deleted file mode 100755
index 86780d6..0000000
--- a/test/foldkeys
+++ /dev/null
Binary files differ
diff --git a/test/foldkeys.c b/test/foldkeys.c
deleted file mode 100644
index 180f151..0000000
--- a/test/foldkeys.c
+++ /dev/null
@@ -1,264 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey, 2006
- *
- * $Id: foldkeys.c,v 1.3 2006/12/09 16:54:07 tom Exp $
- *
- * Demonstrate a method for altering key definitions at runtime.
- *
- * This program reads the key definitions, merging those which have xterm-style
- * modifiers into their equivalents which have no modifiers. It does this
- * merging only for the keys which are defined in the terminal description.
- */
-
-#include <test.priv.h>
-
-#if defined(NCURSES_VERSION) && NCURSES_EXT_FUNCS
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif
-
-#define MY_LOGFILE "demo_foldkeys.log"
-#define MY_KEYS (KEY_MAX + 1)
-
-/*
- * Log the most recently-written line to our logfile
- */
-static void
-log_last_line(WINDOW *win)
-{
- FILE *fp;
- int y, x, n;
- char temp[256];
-
- if ((fp = fopen(MY_LOGFILE, "a")) != 0) {
- int need = sizeof(temp) - 1;
- if (need > COLS)
- need = COLS;
- getyx(win, y, x);
- wmove(win, y - 1, 0);
- n = winnstr(win, temp, need);
- while (n-- > 0) {
- if (isspace(UChar(temp[n])))
- temp[n] = '\0';
- else
- break;
- }
- wmove(win, y, x);
- fprintf(fp, "%s\n", temp);
- fclose(fp);
- }
-}
-
-/*
- * ncurses has no API for telling what the actual last key-code is. That is
- * a secret because the codes past KEY_MAX are computed at run-time and may
- * differ depending on the previous calls to newterm(), etc. It is unlikely
- * that one could have more than a thousand key definitions...
- */
-#define MAX_KEYS 2000
-
-typedef struct {
- const char *name;
- const char *value;
- int code;
- int state;
-} KeyInfo;
-
-static void
-demo_foldkeys(void)
-{
- KeyInfo info[MAX_KEYS];
- int info_len = 0;
- int merged = 0;
- int code;
- int j, k;
-
- /*
- * Tell ncurses that we want to use function keys. That will make it add
- * any user-defined keys that appear in the terminfo.
- */
- keypad(stdscr, TRUE);
-
- /*
- * List the predefined keys using the strnames[] array.
- */
- for (code = 0; code < STRCOUNT; ++code) {
- NCURSES_CONST char *name = strnames[code];
- NCURSES_CONST char *value = tigetstr(name);
- if (value != 0 && value != (NCURSES_CONST char *) -1) {
- info[info_len].name = strnames[code];
- info[info_len].code = key_defined(value);
- info[info_len].value = value;
- info[info_len].state = 0;
- if (info[info_len].code > 0)
- ++info_len;
- }
- }
-
- /*
- * We can get the names for user-defined keys from keyname(). It returns
- * a name like KEY_foo for the predefined keys, which tigetstr() does not
- * understand.
- */
- for (code = KEY_MAX; code < MAX_KEYS; ++code) {
- NCURSES_CONST char *name = keyname(code);
- if (name != 0) {
- info[info_len].name = name;
- info[info_len].code = code;
- info[info_len].value = tigetstr(name);
- info[info_len].state = 0;
- ++info_len;
- }
- }
- printw("Initially %d key definitions\n", info_len);
-
- /*
- * Look for keys that have xterm-style modifiers.
- */
- for (j = 0; j < info_len; ++j) {
- int first, second;
- char final[2];
- char *value;
- if (info[j].state == 0
- && sscanf(info[j].value,
- "\033[%d;%d%c",
- &first,
- &second,
- final) == 3
- && *final != ';'
- && (value = strdup(info[j].value)) != 0) {
- sprintf(value, "\033[%d%c", first, *final);
- for (k = 0; k < info_len; ++k) {
- if (info[k].state == 0
- && !strcmp(info[k].value, value)) {
- info[j].state = 1;
- break;
- }
- }
- if (info[j].state == 0) {
- sprintf(value, "\033O%c", *final);
- for (k = 0; k < info_len; ++k) {
- if (info[k].state == 0
- && !strcmp(info[k].value, value)) {
- info[j].state = 1;
- break;
- }
- }
- }
- if (info[j].state == 1) {
- if ((define_key(info[j].value, info[k].code)) != ERR) {
- printw("map %s to %s\n", info[j].value, info[k].value);
- keyok(info[j].code, FALSE);
- ++merged;
- } else {
- printw("? cannot define_key %d:%s\n", j, info[j].value);
- }
- } else {
- printw("? cannot merge %d:%s\n", j, info[j].value);
- }
- free(value);
- }
- }
- printw("Merged to %d key definitions\n", info_len - merged);
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- int ch;
-#if HAVE_GETTIMEOFDAY
- int secs, msecs;
- struct timeval current, previous;
-#endif
-
- unlink(MY_LOGFILE);
-
- newterm(0, stdout, stdin);
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-
- scrollok(stdscr, TRUE);
- keypad(stdscr, TRUE);
- move(0, 0);
-
- demo_foldkeys();
-
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&previous, 0);
-#endif
-
- while ((ch = getch()) != ERR) {
- bool escaped = (ch >= MY_KEYS);
- const char *name = keyname(escaped ? (ch - MY_KEYS) : ch);
-
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&current, 0);
- secs = current.tv_sec - previous.tv_sec;
- msecs = (current.tv_usec - previous.tv_usec) / 1000;
- if (msecs < 0) {
- msecs += 1000;
- --secs;
- }
- if (msecs >= 1000) {
- secs += msecs / 1000;
- msecs %= 1000;
- }
- printw("%6d.%03d ", secs, msecs);
- previous = current;
-#endif
- printw("Keycode %d, name %s%s\n",
- ch,
- escaped ? "ESC-" : "",
- name != 0 ? name : "<null>");
- log_last_line(stdscr);
- clrtoeol();
- if (ch == 'q')
- break;
- }
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the ncurses library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/gdc b/test/gdc
deleted file mode 100755
index c36f461..0000000
--- a/test/gdc
+++ /dev/null
Binary files differ
diff --git a/test/gdc.6 b/test/gdc.6
deleted file mode 100644
index ed3a4f1..0000000
--- a/test/gdc.6
+++ /dev/null
@@ -1,64 +0,0 @@
-.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2006 Free Software Foundation, Inc. *
-.\" *
-.\" Permission is hereby granted, free of charge, to any person obtaining a *
-.\" copy of this software and associated documentation files (the *
-.\" "Software"), to deal in the Software without restriction, including *
-.\" without limitation the rights to use, copy, modify, merge, publish, *
-.\" distribute, distribute with modifications, sublicense, and/or sell *
-.\" copies of the Software, and to permit persons to whom the Software is *
-.\" furnished to do so, subject to the following conditions: *
-.\" *
-.\" The above copyright notice and this permission notice shall be included *
-.\" in all copies or substantial portions of the Software. *
-.\" *
-.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
-.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
-.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
-.\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
-.\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
-.\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
-.\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
-.\" *
-.\" Except as contained in this notice, the name(s) of the above copyright *
-.\" holders shall not be used in advertising or otherwise to promote the *
-.\" sale, use or other dealings in this Software without prior written *
-.\" authorization. *
-.\"***************************************************************************
-.\"
-.\" $Id: gdc.6,v 1.3 2006/04/22 23:02:15 tom Exp $
-.TH GDC 6
-.SH NAME
-gdc \- grand digital clock (curses)
-.SH SYNOPSIS
-.B gdc
-[-n] [
-[-s] [
-.I n
-]
-.SH DESCRIPTION
-.I Gdc
-runs a digital clock made of reverse-video blanks on a terminal screen.
-If the terminal supports color, the clock is drawn in red.
-You can make the clock stop, pause or resume by pressing a ``q'',
-``s'' or space, respectively.
-.SH OPTIONS
-.TP
-.B -n
-redirects input to /dev/null, making it ignore the stop/pause commands.
-You can still stop it by pressing the interrupt key.
-.TP
-.B -s
-makes digits scroll as they change.
-When running on a fast display, the program breaks up the scrolling into
-subsecond repaints, making the operation appear smooth.
-.PP
-With an optional numeric argument
-.I num
-it stops after
-.I num
-seconds.
-Normally it runs "forever" (counting down from 2 billion seconds).
-.SH AUTHOR
-Amos Shapir, modified for curses by John Lupien.
-Improvements for ncurses by Thomas Dickey.
diff --git a/test/gdc.c b/test/gdc.c
deleted file mode 100644
index ef220fe..0000000
--- a/test/gdc.c
+++ /dev/null
@@ -1,351 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * Grand digital clock for curses compatible terminals
- * Usage: gdc [-s] [n] -- run for n seconds (default infinity)
- * Flags: -s: scroll
- *
- * modified 10-18-89 for curses (jrl)
- * 10-18-89 added signal handling
- *
- * $Id: gdc.c,v 1.31 2008/08/03 23:58:42 tom Exp $
- */
-
-#include <test.priv.h>
-
-#include <time.h>
-
-#define YBASE 10
-#define XBASE 10
-#define XLENGTH 54
-#define YDEPTH 5
-
-#define PAIR_DIGITS 1
-#define PAIR_OTHERS 2
-#define PAIR_FRAMES 3
-
-static short disp[11] =
-{
- 075557, 011111, 071747, 071717, 055711,
- 074717, 074757, 071111, 075757, 075717, 002020
-};
-static long older[6], next[6], newer[6], mask;
-
-static int sigtermed = 0;
-static bool redirected = FALSE;
-static bool hascolor = FALSE;
-
-static RETSIGTYPE
-sighndl(int signo)
-{
- signal(signo, sighndl);
- sigtermed = signo;
- if (redirected) {
- endwin();
- ExitProgram(EXIT_FAILURE);
- }
-}
-
-static void
-drawbox(bool scrolling)
-{
- chtype bottom[XLENGTH + 1];
- int n;
-
- if (hascolor)
- attrset(COLOR_PAIR(PAIR_FRAMES));
-
- mvaddch(YBASE - 1, XBASE - 1, ACS_ULCORNER);
- hline(ACS_HLINE, XLENGTH);
- mvaddch(YBASE - 1, XBASE + XLENGTH, ACS_URCORNER);
-
- mvaddch(YBASE + YDEPTH, XBASE - 1, ACS_LLCORNER);
- if ((mvinchnstr(YBASE + YDEPTH, XBASE, bottom, XLENGTH)) != ERR) {
- for (n = 0; n < XLENGTH; n++) {
- if (!scrolling)
- bottom[n] &= ~A_COLOR;
- bottom[n] = ACS_HLINE | (bottom[n] & (A_ATTRIBUTES | A_COLOR));
- }
- mvaddchnstr(YBASE + YDEPTH, XBASE, bottom, XLENGTH);
- }
- mvaddch(YBASE + YDEPTH, XBASE + XLENGTH, ACS_LRCORNER);
-
- move(YBASE, XBASE - 1);
- vline(ACS_VLINE, YDEPTH);
-
- move(YBASE, XBASE + XLENGTH);
- vline(ACS_VLINE, YDEPTH);
-
- if (hascolor)
- attrset(COLOR_PAIR(PAIR_OTHERS));
-}
-
-static void
-standt(int on)
-{
- if (on) {
- if (hascolor) {
- attron(COLOR_PAIR(PAIR_DIGITS));
- } else {
- attron(A_STANDOUT);
- }
- } else {
- if (hascolor) {
- attron(COLOR_PAIR(PAIR_OTHERS));
- } else {
- attroff(A_STANDOUT);
- }
- }
-}
-
-static void
-set(int t, int n)
-{
- int i, m;
-
- m = 7 << n;
- for (i = 0; i < 5; i++) {
- next[i] |= ((disp[t] >> ((4 - i) * 3)) & 07) << n;
- mask |= (next[i] ^ older[i]) & m;
- }
- if (mask & m)
- mask |= m;
-}
-
-static void
-usage(void)
-{
- static const char *msg[] =
- {
- "Usage: gdc [options] [count]"
- ,""
- ,"Options:"
- ," -n redirect input to /dev/null"
- ," -s scroll each number into place, rather than flipping"
- ,""
- ,"If you specify a count, gdc runs for that number of seconds"
- };
- unsigned j;
- for (j = 0; j < SIZEOF(msg); j++)
- fprintf(stderr, "%s\n", msg[j]);
- ExitProgram(EXIT_FAILURE);
-}
-
-int
-main(int argc, char *argv[])
-{
- time_t now;
- struct tm *tm;
- long t, a;
- int i, j, s, k;
- int count = 0;
- FILE *ofp = stdout;
- FILE *ifp = stdin;
- bool scrol = FALSE;
-
- setlocale(LC_ALL, "");
-
- CATCHALL(sighndl);
-
- while ((k = getopt(argc, argv, "sn")) != -1) {
- switch (k) {
- case 's':
- scrol = TRUE;
- break;
- case 'n':
- ifp = fopen("/dev/null", "r");
- redirected = TRUE;
- break;
- default:
- usage();
- }
- }
- if (optind < argc) {
- count = atoi(argv[optind++]);
- assert(count >= 0);
- }
- if (optind < argc)
- usage();
-
- if (redirected) {
- char *name = getenv("TERM");
- if (name == 0
- || newterm(name, ofp, ifp) == 0) {
- fprintf(stderr, "cannot open terminal\n");
- ExitProgram(EXIT_FAILURE);
- }
-
- } else {
- initscr();
- }
- cbreak();
- noecho();
- nodelay(stdscr, 1);
- curs_set(0);
-
- hascolor = has_colors();
-
- if (hascolor) {
- int bg = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
- init_pair(PAIR_DIGITS, COLOR_BLACK, COLOR_RED);
- init_pair(PAIR_OTHERS, COLOR_RED, bg);
- init_pair(PAIR_FRAMES, COLOR_WHITE, bg);
- attrset(COLOR_PAIR(PAIR_OTHERS));
- }
-
- restart:
- for (j = 0; j < 5; j++)
- older[j] = newer[j] = next[j] = 0;
-
- clear();
- drawbox(FALSE);
-
- do {
- char buf[30];
-
- time(&now);
- tm = localtime(&now);
-
- mask = 0;
- set(tm->tm_sec % 10, 0);
- set(tm->tm_sec / 10, 4);
- set(tm->tm_min % 10, 10);
- set(tm->tm_min / 10, 14);
- set(tm->tm_hour % 10, 20);
- set(tm->tm_hour / 10, 24);
- set(10, 7);
- set(10, 17);
-
- for (k = 0; k < 6; k++) {
- if (scrol) {
- for (i = 0; i < 5; i++)
- newer[i] = (newer[i] & ~mask) | (newer[i + 1] & mask);
- newer[5] = (newer[5] & ~mask) | (next[k] & mask);
- } else
- newer[k] = (newer[k] & ~mask) | (next[k] & mask);
- next[k] = 0;
- for (s = 1; s >= 0; s--) {
- standt(s);
- for (i = 0; i < 6; i++) {
- if ((a = (newer[i] ^ older[i]) & (s ? newer : older)[i])
- != 0) {
- for (j = 0, t = 1 << 26; t; t >>= 1, j++) {
- if (a & t) {
- if (!(a & (t << 1))) {
- move(YBASE + i, XBASE + 2 * j);
- }
- addstr(" ");
- }
- }
- }
- if (!s) {
- older[i] = newer[i];
- }
- }
- if (!s) {
- if (scrol)
- drawbox(TRUE);
- refresh();
- /*
- * If we're scrolling, space out the refreshes to fake
- * movement. That's 7 frames, or 6 intervals, which would
- * be 166 msec if we spread it out over a second. It looks
- * better (but will work on a slow terminal, e.g., less
- * than 9600bd) to squeeze that into a half-second, and use
- * half of 170 msec to ensure that the program doesn't eat
- * a lot of time when asking what time it is, at the top of
- * this loop -T.Dickey
- */
- if (scrol)
- napms(85);
- }
- }
- }
-
- /* this depends on the detailed format of ctime(3) */
- (void) strcpy(buf, ctime(&now));
- (void) strcpy(buf + 10, buf + 19);
- mvaddstr(16, 30, buf);
-
- move(6, 0);
- drawbox(FALSE);
- refresh();
-
- /*
- * If we're not scrolling, wait 1000 msec (1 sec). Use napms() rather
- * than sleep() because the latter does odd things on some systems,
- * e.g., suspending output as well.
- */
- if (scrol)
- napms(500);
- else
- napms(1000);
-
- /*
- * This is a safe way to check if we're interrupted - making the signal
- * handler set a flag that we can check. Since we're running
- * nodelay(), the wgetch() call returns immediately, and in particular
- * will return an error if interrupted. This works only if we can
- * read from the input, of course.
- */
- switch (wgetch(stdscr)) {
- case 'q':
- count = 1;
- break;
- case 's':
- nodelay(stdscr, FALSE);
- break;
- case ' ':
- nodelay(stdscr, TRUE);
- break;
-#ifdef KEY_RESIZE
- case KEY_RESIZE:
-#endif
- case '?':
- goto restart;
- case ERR:
- if (sigtermed) {
- standend();
- endwin();
- fprintf(stderr, "gdc terminated by signal %d\n", sigtermed);
- ExitProgram(EXIT_FAILURE);
- }
- /* FALLTHRU */
- default:
- continue;
- }
- } while (--count);
- standend();
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/hanoi b/test/hanoi
deleted file mode 100755
index fc7c20e..0000000
--- a/test/hanoi
+++ /dev/null
Binary files differ
diff --git a/test/hanoi.c b/test/hanoi.c
deleted file mode 100644
index bd0fb10..0000000
--- a/test/hanoi.c
+++ /dev/null
@@ -1,334 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * Name: Towers of Hanoi.
- *
- * Desc:
- * This is a playable copy of towers of hanoi.
- * Its sole purpose is to demonstrate my Amiga Curses package.
- * This program should compile on any system that has Curses.
- * 'hanoi' will give a manual game with 7 playing pieces.
- * 'hanoi n' will give a manual game with n playing pieces.
- * 'hanoi n a' will give an auto solved game with n playing pieces.
- *
- * Author: Simon J Raybould (sie@fulcrum.bt.co.uk).
- * (This version has been slightly modified by the ncurses maintainers.)
- *
- * Date: 05.Nov.90
- *
- * $Id: hanoi.c,v 1.27 2008/08/04 10:57:59 tom Exp $
- */
-
-#include <test.priv.h>
-
-#define NPEGS 3 /* This is not configurable !! */
-#define MINTILES 3
-#define MAXTILES 9
-#define DEFAULTTILES 7
-#define TOPLINE 6
-#define BASELINE 16
-#define STATUSLINE (LINES-3)
-#define LEFTPEG 19
-#define MIDPEG 39
-#define RIGHTPEG 59
-
-#define LENTOIND(x) (((x)-1)/2)
-#define OTHER(a,b) (3-((a)+(b)))
-
-struct Peg {
- size_t Length[MAXTILES];
- int Count;
-};
-
-static struct Peg Pegs[NPEGS];
-static int PegPos[] =
-{LEFTPEG, MIDPEG, RIGHTPEG};
-static int TileColour[] =
-{
- COLOR_GREEN, /* Length 3 */
- COLOR_MAGENTA, /* Length 5 */
- COLOR_RED, /* Length 7 */
- COLOR_BLUE, /* Length 9 */
- COLOR_CYAN, /* Length 11 */
- COLOR_YELLOW, /* Length 13 */
- COLOR_GREEN, /* Length 15 */
- COLOR_MAGENTA, /* Length 17 */
- COLOR_RED, /* Length 19 */
-};
-static int NMoves = 0;
-static bool AutoFlag = FALSE;
-
-static void InitTiles(int NTiles);
-static void DisplayTiles(void);
-static void MakeMove(int From, int To);
-static void AutoMove(int From, int To, int Num);
-static void Usage(void);
-static int Solved(int NumTiles);
-static int GetMove(int *From, int *To);
-static int InvalidMove(int From, int To);
-
-int
-main(int argc, char **argv)
-{
- int NTiles, FromCol, ToCol;
-
- setlocale(LC_ALL, "");
-
- switch (argc) {
- case 1:
- NTiles = DEFAULTTILES;
- break;
- case 2:
- NTiles = atoi(argv[1]);
- if (NTiles > MAXTILES || NTiles < MINTILES) {
- fprintf(stderr, "Range %d to %d\n", MINTILES, MAXTILES);
- ExitProgram(EXIT_FAILURE);
- }
- break;
- case 3:
- if (strcmp(argv[2], "a")) {
- Usage();
- ExitProgram(EXIT_FAILURE);
- }
- NTiles = atoi(argv[1]);
- if (NTiles > MAXTILES || NTiles < MINTILES) {
- fprintf(stderr, "Range %d to %d\n", MINTILES, MAXTILES);
- ExitProgram(EXIT_FAILURE);
- }
- AutoFlag = TRUE;
- break;
- default:
- Usage();
- ExitProgram(EXIT_FAILURE);
- }
-#ifdef TRACE
- trace(TRACE_MAXIMUM);
-#endif
- initscr();
- if (has_colors()) {
- int i;
- int bg = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
- for (i = 0; i < 9; i++)
- init_pair(i + 1, bg, TileColour[i]);
- }
- cbreak();
- if (LINES < 24) {
- endwin();
- fprintf(stderr, "Min screen length 24 lines\n");
- ExitProgram(EXIT_FAILURE);
- }
- if (AutoFlag) {
- curs_set(0);
- leaveok(stdscr, TRUE); /* Attempt to remove cursor */
- }
- InitTiles(NTiles);
- DisplayTiles();
- if (AutoFlag) {
- do {
- noecho();
- AutoMove(0, 2, NTiles);
- } while (!Solved(NTiles));
- sleep(2);
- } else {
- echo();
- for (;;) {
- if (GetMove(&FromCol, &ToCol))
- break;
- if (InvalidMove(FromCol, ToCol)) {
- mvaddstr(STATUSLINE, 0, "Invalid Move !!");
- refresh();
- beep();
- continue;
- }
- MakeMove(FromCol, ToCol);
- if (Solved(NTiles)) {
- mvprintw(STATUSLINE, 0,
- "Well Done !! You did it in %d moves", NMoves);
- refresh();
- sleep(5);
- break;
- }
- }
- }
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-
-static int
-InvalidMove(int From, int To)
-{
- if (From >= NPEGS)
- return TRUE;
- if (From < 0)
- return TRUE;
- if (To >= NPEGS)
- return TRUE;
- if (To < 0)
- return TRUE;
- if (From == To)
- return TRUE;
- if (!Pegs[From].Count)
- return TRUE;
- if (Pegs[To].Count &&
- Pegs[From].Length[Pegs[From].Count - 1] >
- Pegs[To].Length[Pegs[To].Count - 1])
- return TRUE;
- return FALSE;
-}
-
-static void
-InitTiles(int NTiles)
-{
- int Size, SlotNo;
-
- for (Size = NTiles * 2 + 1, SlotNo = 0; Size >= 3; Size -= 2)
- Pegs[0].Length[SlotNo++] = Size;
-
- Pegs[0].Count = NTiles;
- Pegs[1].Count = 0;
- Pegs[2].Count = 0;
-}
-
-static void
-DisplayTiles(void)
-{
- int Line, peg, SlotNo;
- char TileBuf[BUFSIZ];
-
- erase();
- mvaddstr(1, 24, "T O W E R S O F H A N O I");
- mvaddstr(3, 34, "SJR 1990");
- mvprintw(19, 5, "Moves : %d", NMoves);
- attrset(A_REVERSE);
- mvaddstr(BASELINE, 8,
- " ");
-
- for (Line = TOPLINE; Line < BASELINE; Line++) {
- mvaddch(Line, LEFTPEG, ' ');
- mvaddch(Line, MIDPEG, ' ');
- mvaddch(Line, RIGHTPEG, ' ');
- }
- mvaddch(BASELINE, LEFTPEG, '1');
- mvaddch(BASELINE, MIDPEG, '2');
- mvaddch(BASELINE, RIGHTPEG, '3');
- attrset(A_NORMAL);
-
- /* Draw tiles */
- for (peg = 0; peg < NPEGS; peg++) {
- for (SlotNo = 0; SlotNo < Pegs[peg].Count; SlotNo++) {
- unsigned len = Pegs[peg].Length[SlotNo];
- if (len < sizeof(TileBuf) - 1 && len < (unsigned) PegPos[peg]) {
- memset(TileBuf, ' ', len);
- TileBuf[len] = '\0';
- if (has_colors())
- attrset(COLOR_PAIR(LENTOIND(len)));
- else
- attrset(A_REVERSE);
- mvaddstr(BASELINE - (SlotNo + 1),
- (int) (PegPos[peg] - len / 2),
- TileBuf);
- }
- }
- }
- attrset(A_NORMAL);
- refresh();
-}
-
-static int
-GetMove(int *From, int *To)
-{
- mvaddstr(STATUSLINE, 0, "Next move ('q' to quit) from ");
- clrtoeol();
- refresh();
- if ((*From = getch()) == 'q')
- return TRUE;
- *From -= ('0' + 1);
- addstr(" to ");
- clrtoeol();
- refresh();
-
- if ((*To = getch()) == 'q')
- return TRUE;
- *To -= ('0' + 1);
- refresh();
- if (!AutoFlag)
- napms(500);
-
- move(STATUSLINE, 0);
- clrtoeol();
- refresh();
- return FALSE;
-}
-
-static void
-MakeMove(int From, int To)
-{
- Pegs[From].Count--;
- Pegs[To].Length[Pegs[To].Count] = Pegs[From].Length[Pegs[From].Count];
- Pegs[To].Count++;
- NMoves++;
- DisplayTiles();
-}
-
-static void
-AutoMove(int From, int To, int Num)
-{
- if (Num == 1) {
- MakeMove(From, To);
- napms(500);
- return;
- }
- AutoMove(From, OTHER(From, To), Num - 1);
- MakeMove(From, To);
- napms(500);
- AutoMove(OTHER(From, To), To, Num - 1);
-}
-
-static int
-Solved(int NumTiles)
-{
- int i;
-
- for (i = 1; i < NPEGS; i++)
- if (Pegs[i].Count == NumTiles)
- return TRUE;
- return FALSE;
-}
-
-static void
-Usage(void)
-{
- fprintf(stderr, "Usage: hanoi [<No Of Tiles>] [a]\n");
- fprintf(stderr,
- "The 'a' option causes the tower to be solved automatically\n");
-}
diff --git a/test/hashtest b/test/hashtest
deleted file mode 100755
index 346cbe5..0000000
--- a/test/hashtest
+++ /dev/null
Binary files differ
diff --git a/test/hashtest.c b/test/hashtest.c
deleted file mode 100644
index 6e1b00b..0000000
--- a/test/hashtest.c
+++ /dev/null
@@ -1,246 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * hashtest.c -- test hash mapping
- *
- * Generate timing statistics for vertical-motion optimization.
- *
- * $Id: hashtest.c,v 1.29 2008/08/16 17:26:44 tom Exp $
- */
-
-#include <test.priv.h>
-
-#define LO_CHAR ' '
-#define HI_CHAR '~'
-
-static bool continuous = FALSE;
-static bool reverse_loops = FALSE;
-static bool single_step = FALSE;
-static bool extend_corner = FALSE;
-static int foot_lines = 0;
-static int head_lines = 0;
-
-static void
-cleanup(void)
-{
- move(LINES - 1, 0);
- clrtoeol();
- refresh();
- endwin();
-}
-
-static RETSIGTYPE
-finish(int sig GCC_UNUSED)
-{
- cleanup();
- ExitProgram(EXIT_FAILURE);
-}
-
-static void
-genlines(int base)
-{
- int i, j;
-
-#if USE_TRACE
- if (base == 'a')
- Trace(("Resetting screen"));
- else
- Trace(("Painting `%c' screen", base));
-#endif
-
- /* Do this so writes to lower-right corner don't cause a spurious
- * scrolling operation. This _shouldn't_ break the scrolling
- * optimization, since that's computed in the refresh() call.
- */
- scrollok(stdscr, FALSE);
-
- move(0, 0);
- for (i = 0; i < head_lines; i++)
- for (j = 0; j < COLS; j++)
- addch(UChar((j % 8 == 0) ? ('A' + j / 8) : '-'));
-
- move(head_lines, 0);
- for (i = head_lines; i < LINES - foot_lines; i++) {
- chtype c = (base - LO_CHAR + i) % (HI_CHAR - LO_CHAR + 1) + LO_CHAR;
- int hi = (extend_corner || (i < LINES - 1)) ? COLS : COLS - 1;
- for (j = 0; j < hi; j++)
- addch(c);
- }
-
- for (i = LINES - foot_lines; i < LINES; i++) {
- move(i, 0);
- for (j = 0; j < (extend_corner ? COLS : COLS - 1); j++)
- addch(UChar((j % 8 == 0) ? ('A' + j / 8) : '-'));
- }
-
- scrollok(stdscr, TRUE);
- if (single_step) {
- move(LINES - 1, 0);
- getch();
- } else
- refresh();
-}
-
-static void
-one_cycle(int ch)
-{
- if (continuous) {
- genlines(ch);
- } else if (ch != 'a') {
- genlines('a');
- genlines(ch);
- }
-}
-
-static void
-run_test(bool optimized GCC_UNUSED)
-{
- char ch;
- int lo = continuous ? LO_CHAR : 'a' - LINES;
- int hi = continuous ? HI_CHAR : 'a' + LINES;
-
- if (lo < LO_CHAR)
- lo = LO_CHAR;
- if (hi > HI_CHAR)
- hi = HI_CHAR;
-
-#if defined(TRACE) || defined(NCURSES_TEST)
- if (optimized) {
- Trace(("With hash mapping"));
- _nc_optimize_enable |= OPTIMIZE_HASHMAP;
- } else {
- Trace(("Without hash mapping"));
- _nc_optimize_enable &= ~OPTIMIZE_HASHMAP;
- }
-#endif
-
- if (reverse_loops)
- for (ch = hi; ch >= lo; ch--)
- one_cycle(ch);
- else
- for (ch = lo; ch <= hi; ch++)
- one_cycle(ch);
-}
-
-static void
-usage(void)
-{
- static const char *const tbl[] =
- {
- "Usage: hashtest [options]"
- ,""
- ,"Options:"
- ," -c continuous (don't reset between refresh's)"
- ," -f num leave 'num' lines constant for footer"
- ," -h num leave 'num' lines constant for header"
- ," -l num repeat test 'num' times"
- ," -n test the normal optimizer"
- ," -o test the hashed optimizer"
- ," -r reverse the loops"
- ," -s single-step"
- ," -x assume lower-right corner extension"
- };
- size_t n;
-
- for (n = 0; n < SIZEOF(tbl); n++)
- fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
-}
-
-int
-main(int argc, char *argv[])
-{
- int c;
- int test_loops = 1;
- int test_normal = FALSE;
- int test_optimize = FALSE;
-
- setlocale(LC_ALL, "");
-
- while ((c = getopt(argc, argv, "cf:h:l:norsx")) != -1) {
- switch (c) {
- case 'c':
- continuous = TRUE;
- break;
- case 'f':
- foot_lines = atoi(optarg);
- break;
- case 'h':
- head_lines = atoi(optarg);
- break;
- case 'l':
- test_loops = atoi(optarg);
- assert(test_loops >= 0);
- break;
- case 'n':
- test_normal = TRUE;
- break;
- case 'o':
- test_optimize = TRUE;
- break;
- case 'r':
- reverse_loops = TRUE;
- break;
- case 's':
- single_step = TRUE;
- break;
- case 'x':
- extend_corner = TRUE;
- break;
- default:
- usage();
- }
- }
- if (!test_normal && !test_optimize) {
- test_normal = TRUE;
- test_optimize = TRUE;
- }
-#if USE_TRACE
- trace(TRACE_TIMES);
-#endif
-
- CATCHALL(finish); /* arrange interrupts to terminate */
-
- (void) initscr(); /* initialize the curses library */
- keypad(stdscr, TRUE); /* enable keyboard mapping */
- (void) nonl(); /* tell curses not to do NL->CR/NL on output */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
- scrollok(stdscr, TRUE);
-
- while (test_loops-- > 0) {
- if (test_normal)
- run_test(FALSE);
- if (test_optimize)
- run_test(TRUE);
- }
-
- cleanup(); /* we're done */
- ExitProgram(EXIT_SUCCESS);
-}
-/* hashtest.c ends here */
diff --git a/test/inch_wide b/test/inch_wide
deleted file mode 100755
index f9aa515..0000000
--- a/test/inch_wide
+++ /dev/null
Binary files differ
diff --git a/test/inch_wide.c b/test/inch_wide.c
deleted file mode 100644
index 25af426..0000000
--- a/test/inch_wide.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: inch_wide.c,v 1.6 2007/07/21 18:37:38 tom Exp $
- */
-/*
- int in_wch(cchar_t *wcval);
- int mvin_wch(int y, int x, cchar_t *wcval);
- int mvwin_wch(WINDOW *win, int y, int x, cchar_t *wcval);
- int win_wch(WINDOW *win, cchar_t *wcval);
- int in_wchstr(cchar_t *wchstr);
- int in_wchnstr(cchar_t *wchstr, int n);
- int win_wchstr(WINDOW *win, cchar_t *wchstr);
- int win_wchnstr(WINDOW *win, cchar_t *wchstr, int n);
- int mvin_wchstr(int y, int x, cchar_t *wchstr);
- int mvin_wchnstr(int y, int x, cchar_t *wchstr, int n);
- int mvwin_wchstr(WINDOW *win, int y, int x, cchar_t *wchstr);
- int mvwin_wchnstr(WINDOW *win, int y, int x, cchar_t *wchstr, int n);
-*/
-
-#include <test.priv.h>
-
-#if USE_WIDEC_SUPPORT
-
-#define BASE_Y 7
-#define MAX_COLS 1024
-
-static bool
-Quit(int ch)
-{
- return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
-}
-
-static int
-test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
-{
- WINDOW *txtbox = 0;
- WINDOW *txtwin = 0;
- FILE *fp;
- int j;
- int txt_x = 0, txt_y = 0;
- int base_y;
- int limit;
- cchar_t ch;
- cchar_t text[MAX_COLS];
-
- if (argv[level] == 0) {
- beep();
- return FALSE;
- }
-
- if (level > 1) {
- txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
- box(txtbox, 0, 0);
- wnoutrefresh(txtbox);
-
- txtwin = derwin(txtbox,
- getmaxy(txtbox) - 2,
- getmaxx(txtbox) - 2,
- 1, 1);
- base_y = 0;
- } else {
- txtwin = stdscr;
- base_y = BASE_Y;
- }
-
- keypad(txtwin, TRUE); /* enable keyboard mapping */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-
- txt_y = base_y;
- txt_x = 0;
- wmove(txtwin, txt_y, txt_x);
-
- if ((fp = fopen(argv[level], "r")) != 0) {
- while ((j = fgetc(fp)) != EOF) {
- if (waddch(txtwin, UChar(j)) != OK) {
- break;
- }
- }
- fclose(fp);
- } else {
- wprintw(txtwin, "Cannot open:\n%s", argv[1]);
- }
-
- while (!Quit(j = mvwgetch(txtwin, txt_y, txt_x))) {
- switch (j) {
- case KEY_DOWN:
- case 'j':
- if (txt_y < getmaxy(txtwin) - 1)
- txt_y++;
- else
- beep();
- break;
- case KEY_UP:
- case 'k':
- if (txt_y > base_y)
- txt_y--;
- else
- beep();
- break;
- case KEY_LEFT:
- case 'h':
- if (txt_x > 0)
- txt_x--;
- else
- beep();
- break;
- case KEY_RIGHT:
- case 'l':
- if (txt_x < getmaxx(txtwin) - 1)
- txt_x++;
- else
- beep();
- break;
- case 'w':
- test_inchs(level + 1, argv, chrwin, strwin);
- if (txtbox != 0) {
- touchwin(txtbox);
- wnoutrefresh(txtbox);
- } else {
- touchwin(txtwin);
- wnoutrefresh(txtwin);
- }
- break;
- default:
- beep();
- break;
- }
-
- mvwprintw(chrwin, 0, 0, "char:");
- wclrtoeol(chrwin);
-
- if (txtwin != stdscr) {
- wmove(txtwin, txt_y, txt_x);
- if (win_wch(txtwin, &ch) != ERR) {
- if (wadd_wch(chrwin, &ch) != ERR) {
- for (j = txt_x + 1; j < getmaxx(txtwin); ++j) {
- if (mvwin_wch(txtwin, txt_y, j, &ch) != ERR) {
- if (wadd_wch(chrwin, &ch) == ERR) {
- break;
- }
- } else {
- break;
- }
- }
- }
- }
- } else {
- move(txt_y, txt_x);
- if (in_wch(&ch) != ERR) {
- if (wadd_wch(chrwin, &ch) != ERR) {
- for (j = txt_x + 1; j < getmaxx(txtwin); ++j) {
- if (mvin_wch(txt_y, j, &ch) != ERR) {
- if (wadd_wch(chrwin, &ch) == ERR) {
- break;
- }
- } else {
- break;
- }
- }
- }
- }
- }
- wnoutrefresh(chrwin);
-
- mvwprintw(strwin, 0, 0, "text:");
- wclrtobot(strwin);
-
- limit = getmaxx(strwin) - 5;
-
- if (txtwin != stdscr) {
- wmove(txtwin, txt_y, txt_x);
- if (win_wchstr(txtwin, text) != ERR) {
- mvwadd_wchstr(strwin, 0, 5, text);
- }
-
- wmove(txtwin, txt_y, txt_x);
- if (win_wchnstr(txtwin, text, limit) != ERR) {
- mvwadd_wchstr(strwin, 1, 5, text);
- }
-
- if (mvwin_wchstr(txtwin, txt_y, txt_x, text) != ERR) {
- mvwadd_wchstr(strwin, 2, 5, text);
- }
-
- if (mvwin_wchnstr(txtwin, txt_y, txt_x, text, limit) != ERR) {
- mvwadd_wchstr(strwin, 3, 5, text);
- }
- } else {
- move(txt_y, txt_x);
- if (in_wchstr(text) != ERR) {
- mvwadd_wchstr(strwin, 0, 5, text);
- }
-
- move(txt_y, txt_x);
- if (in_wchnstr(text, limit) != ERR) {
- mvwadd_wchstr(strwin, 1, 5, text);
- }
-
- if (mvin_wchstr(txt_y, txt_x, text) != ERR) {
- mvwadd_wchstr(strwin, 2, 5, text);
- }
-
- if (mvin_wchnstr(txt_y, txt_x, text, limit) != ERR) {
- mvwadd_wchstr(strwin, 3, 5, text);
- }
- }
-
- wnoutrefresh(strwin);
- }
- if (level > 1) {
- delwin(txtwin);
- delwin(txtbox);
- }
- return TRUE;
-}
-
-int
-main(int argc, char *argv[])
-{
- WINDOW *chrbox;
- WINDOW *chrwin;
- WINDOW *strwin;
-
- setlocale(LC_ALL, "");
-
- if (argc < 2) {
- fprintf(stderr, "usage: %s file\n", argv[0]);
- return EXIT_FAILURE;
- }
-
- initscr();
-
- chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
- box(chrbox, 0, 0);
- wnoutrefresh(chrbox);
-
- chrwin = derwin(chrbox, 1, COLS - 2, 1, 1);
- strwin = derwin(chrbox, 4, COLS - 2, 2, 1);
-
- test_inchs(1, argv, chrwin, strwin);
-
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the wide-ncurses library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/inchs b/test/inchs
deleted file mode 100755
index d62dbec..0000000
--- a/test/inchs
+++ /dev/null
Binary files differ
diff --git a/test/inchs.c b/test/inchs.c
deleted file mode 100644
index 180d324..0000000
--- a/test/inchs.c
+++ /dev/null
@@ -1,272 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: inchs.c,v 1.9 2007/07/21 19:01:43 tom Exp $
- *
- * Author: Thomas E Dickey
- */
-/*
- chtype inch(void);
- chtype winch(WINDOW *win);
- chtype mvinch(int y, int x);
- chtype mvwinch(WINDOW *win, int y, int x);
- int inchstr(chtype *chstr);
- int inchnstr(chtype *chstr, int n);
- int winchstr(WINDOW *win, chtype *chstr);
- int winchnstr(WINDOW *win, chtype *chstr, int n);
- int mvinchstr(int y, int x, chtype *chstr);
- int mvinchnstr(int y, int x, chtype *chstr, int n);
- int mvwinchstr(WINDOW *win, int y, int x, chtype *chstr);
- int mvwinchnstr(WINDOW *win, int y, int x, chtype *chstr, int n);
-*/
-
-#include <test.priv.h>
-
-#define BASE_Y 7
-#define MAX_COLS 1024
-
-static bool
-Quit(int ch)
-{
- return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
-}
-
-static int
-test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
-{
- WINDOW *txtbox = 0;
- WINDOW *txtwin = 0;
- FILE *fp;
- int ch, j;
- int txt_x = 0, txt_y = 0;
- int base_y;
- int limit;
- chtype text[MAX_COLS];
-
- if (argv[level] == 0) {
- beep();
- return FALSE;
- }
-
- if (level > 1) {
- txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
- box(txtbox, 0, 0);
- wnoutrefresh(txtbox);
-
- txtwin = derwin(txtbox,
- getmaxy(txtbox) - 2,
- getmaxx(txtbox) - 2,
- 1, 1);
- base_y = 0;
- } else {
- txtwin = stdscr;
- base_y = BASE_Y;
- }
-
- keypad(txtwin, TRUE); /* enable keyboard mapping */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-
- txt_y = base_y;
- txt_x = 0;
- wmove(txtwin, txt_y, txt_x);
-
- if ((fp = fopen(argv[level], "r")) != 0) {
- while ((j = fgetc(fp)) != EOF) {
- if (waddch(txtwin, UChar(j)) != OK) {
- break;
- }
- }
- fclose(fp);
- } else {
- wprintw(txtwin, "Cannot open:\n%s", argv[1]);
- }
-
- while (!Quit(j = mvwgetch(txtwin, txt_y, txt_x))) {
- switch (j) {
- case KEY_DOWN:
- case 'j':
- if (txt_y < getmaxy(txtwin) - 1)
- txt_y++;
- else
- beep();
- break;
- case KEY_UP:
- case 'k':
- if (txt_y > base_y)
- txt_y--;
- else
- beep();
- break;
- case KEY_LEFT:
- case 'h':
- if (txt_x > 0)
- txt_x--;
- else
- beep();
- break;
- case KEY_RIGHT:
- case 'l':
- if (txt_x < getmaxx(txtwin) - 1)
- txt_x++;
- else
- beep();
- break;
- case 'w':
- test_inchs(level + 1, argv, chrwin, strwin);
- if (txtbox != 0) {
- touchwin(txtbox);
- wnoutrefresh(txtbox);
- } else {
- touchwin(txtwin);
- wnoutrefresh(txtwin);
- }
- break;
- default:
- beep();
- break;
- }
-
- mvwprintw(chrwin, 0, 0, "char:");
- wclrtoeol(chrwin);
-
- if (txtwin != stdscr) {
- wmove(txtwin, txt_y, txt_x);
-
- if ((ch = winch(txtwin)) != ERR) {
- if (waddch(chrwin, (chtype) ch) != ERR) {
- for (j = txt_x + 1; j < getmaxx(txtwin); ++j) {
- if ((ch = mvwinch(txtwin, txt_y, j)) != ERR) {
- if (waddch(chrwin, (chtype) ch) == ERR) {
- break;
- }
- } else {
- break;
- }
- }
- }
- }
- } else {
- move(txt_y, txt_x);
-
- if ((ch = inch()) != ERR) {
- if (waddch(chrwin, (chtype) ch) != ERR) {
- for (j = txt_x + 1; j < getmaxx(txtwin); ++j) {
- if ((ch = mvinch(txt_y, j)) != ERR) {
- if (waddch(chrwin, (chtype) ch) == ERR) {
- break;
- }
- } else {
- break;
- }
- }
- }
- }
- }
- wnoutrefresh(chrwin);
-
- mvwprintw(strwin, 0, 0, "text:");
- wclrtobot(strwin);
-
- limit = getmaxx(strwin) - 5;
-
- if (txtwin != stdscr) {
- wmove(txtwin, txt_y, txt_x);
- if (winchstr(txtwin, text) != ERR) {
- mvwaddchstr(strwin, 0, 5, text);
- }
-
- wmove(txtwin, txt_y, txt_x);
- if (winchnstr(txtwin, text, limit) != ERR) {
- mvwaddchstr(strwin, 1, 5, text);
- }
-
- if (mvwinchstr(txtwin, txt_y, txt_x, text) != ERR) {
- mvwaddchstr(strwin, 2, 5, text);
- }
-
- if (mvwinchnstr(txtwin, txt_y, txt_x, text, limit) != ERR) {
- mvwaddchstr(strwin, 3, 5, text);
- }
- } else {
- move(txt_y, txt_x);
- if (inchstr(text) != ERR) {
- mvwaddchstr(strwin, 0, 5, text);
- }
-
- move(txt_y, txt_x);
- if (inchnstr(text, limit) != ERR) {
- mvwaddchstr(strwin, 1, 5, text);
- }
-
- if (mvinchstr(txt_y, txt_x, text) != ERR) {
- mvwaddchstr(strwin, 2, 5, text);
- }
-
- if (mvinchnstr(txt_y, txt_x, text, limit) != ERR) {
- mvwaddchstr(strwin, 3, 5, text);
- }
- }
-
- wnoutrefresh(strwin);
- }
- if (level > 1) {
- delwin(txtwin);
- delwin(txtbox);
- }
- return TRUE;
-}
-
-int
-main(int argc, char *argv[])
-{
- WINDOW *chrbox;
- WINDOW *chrwin;
- WINDOW *strwin;
-
- setlocale(LC_ALL, "");
-
- if (argc < 2) {
- fprintf(stderr, "usage: %s file\n", argv[0]);
- return EXIT_FAILURE;
- }
-
- initscr();
-
- chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
- box(chrbox, 0, 0);
- wnoutrefresh(chrbox);
-
- chrwin = derwin(chrbox, 1, COLS - 2, 1, 1);
- strwin = derwin(chrbox, 4, COLS - 2, 2, 1);
-
- test_inchs(1, argv, chrwin, strwin);
-
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/ins_wide b/test/ins_wide
deleted file mode 100755
index d9268e0..0000000
--- a/test/ins_wide
+++ /dev/null
Binary files differ
diff --git a/test/ins_wide.c b/test/ins_wide.c
deleted file mode 100644
index 33dafe4..0000000
--- a/test/ins_wide.c
+++ /dev/null
@@ -1,525 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: ins_wide.c,v 1.9 2007/07/21 17:41:55 tom Exp $
- *
- * Demonstrate the wins_wstr() and wins_wch functions.
- * Thomas Dickey - 2002/11/23
- *
- * Note: to provide inputs for *ins_wch(), we use setcchar(). A quirk of the
- * X/Open definition for that function is that the string contains no
- * characters with negative width. Any control character (such as tab) falls
- * into that category. So it follows that *ins_wch() cannot render a tab
- * character because there is no legal way to construct a cchar_t containing
- * one. X/Open does not document this, and it would be logical to assume that
- * *ins_wstr() has the same limitation, but it uses a wchar_t string directly,
- * and does not document how tabs are handled.
- */
-
-#include <test.priv.h>
-
-#if USE_WIDEC_SUPPORT
-
-/* definitions to make it simpler to compare with inserts.c */
-#define InsNStr ins_nwstr
-#define InsStr ins_wstr
-#define MvInsNStr mvins_nwstr
-#define MvInsStr mvins_wstr
-#define MvWInsNStr mvwins_nwstr
-#define MvWInsStr mvwins_wstr
-#define WInsNStr wins_nwstr
-#define WInsStr wins_wstr
-
-#define MY_TABSIZE 8
-
-typedef enum {
- oDefault = 0,
- oMove = 1,
- oWindow = 2,
- oMoveWindow = 3
-} Options;
-
-static bool m_opt = FALSE;
-static bool w_opt = FALSE;
-static int n_opt = -1;
-
-static void
-legend(WINDOW *win, int level, Options state, wchar_t *buffer, int length)
-{
- NCURSES_CONST char *showstate;
-
- switch (state) {
- default:
- case oDefault:
- showstate = "";
- break;
- case oMove:
- showstate = " (mvXXX)";
- break;
- case oWindow:
- showstate = " (winXXX)";
- break;
- case oMoveWindow:
- showstate = " (mvwinXXX)";
- break;
- }
-
- wmove(win, 0, 0);
- wprintw(win,
- "The Strings/Chars displays should match. Enter any characters, except:\n");
- wprintw(win,
- "down-arrow or ^N to repeat on next line, 'w' for inner window, 'q' to exit.\n");
- wclrtoeol(win);
- wprintw(win, "Level %d,%s inserted %d characters <", level,
- showstate, length);
- waddwstr(win, buffer);
- waddstr(win, ">");
-}
-
-static int
-ColOf(wchar_t *buffer, int length, int margin)
-{
- int n;
- int result;
-
- for (n = 0, result = margin + 1; n < length; ++n) {
- int ch = buffer[n];
- switch (ch) {
- case '\n':
- /* actually newline should clear the remainder of the line
- * and move to the next line - but that seems a little awkward
- * in this example.
- */
- case '\r':
- result = 0;
- break;
- case '\b':
- if (result > 0)
- --result;
- break;
- case '\t':
- result += (MY_TABSIZE - (result % MY_TABSIZE));
- break;
- case '\177':
- result += 2;
- break;
- default:
- result += wcwidth(ch);
- if (ch < 32)
- ++result;
- break;
- }
- }
- return result;
-}
-
-static int
-ConvertCh(chtype source, cchar_t *target)
-{
- wchar_t tmp_wchar[2];
-
- tmp_wchar[0] = source;
- tmp_wchar[1] = 0;
- if (setcchar(target, tmp_wchar, A_NORMAL, 0, (void *) 0) == ERR) {
- beep();
- return FALSE;
- }
- return TRUE;
-}
-
-static int
-MvWInsCh(WINDOW *win, int y, int x, chtype ch)
-{
- int code;
- cchar_t tmp_cchar;
-
- if (ConvertCh(ch, &tmp_cchar)) {
- code = mvwins_wch(win, y, x, &tmp_cchar);
- } else {
- code = mvwinsch(win, y, x, ch);
- }
- return code;
-}
-
-static int
-MvInsCh(int y, int x, chtype ch)
-{
- int code;
- cchar_t tmp_cchar;
-
- if (ConvertCh(ch, &tmp_cchar)) {
- code = mvins_wch(y, x, &tmp_cchar);
- } else {
- code = mvinsch(y, x, ch);
- }
- return code;
-}
-
-static int
-WInsCh(WINDOW *win, chtype ch)
-{
- int code;
- cchar_t tmp_cchar;
-
- if (ConvertCh(ch, &tmp_cchar)) {
- code = wins_wch(win, &tmp_cchar);
- } else {
- code = winsch(win, ch);
- }
- return code;
-}
-
-static int
-InsCh(chtype ch)
-{
- int code;
- cchar_t tmp_cchar;
-
- if (ConvertCh(ch, &tmp_cchar)) {
- code = ins_wch(&tmp_cchar);
- } else {
- code = insch(ch);
- }
- return code;
-}
-
-#define LEN(n) ((length - (n) > n_opt) ? n_opt : (length - (n)))
-static void
-test_inserts(int level)
-{
- static bool first = TRUE;
-
- wint_t ch;
- int code;
- int limit;
- int row = 1;
- int col;
- int row2, col2;
- int length;
- wchar_t buffer[BUFSIZ];
- WINDOW *look = 0;
- WINDOW *work = 0;
- WINDOW *show = 0;
- int margin = (2 * MY_TABSIZE) - 1;
- Options option = ((m_opt ? oMove : oDefault)
- | ((w_opt || (level > 0)) ? oWindow : oDefault));
-
- if (first) {
- static char cmd[80];
- setlocale(LC_ALL, "");
-
- putenv(strcpy(cmd, "TABSIZE=8"));
-
- initscr();
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
- keypad(stdscr, TRUE);
- }
-
- limit = LINES - 5;
- if (level > 0) {
- look = newwin(limit, COLS - (2 * (level - 1)), 0, level - 1);
- work = newwin(limit - 2, COLS - (2 * level), 1, level);
- show = newwin(4, COLS, limit + 1, 0);
- box(look, 0, 0);
- wnoutrefresh(look);
- limit -= 2;
- } else {
- work = stdscr;
- show = derwin(stdscr, 4, COLS, limit + 1, 0);
- }
- keypad(work, TRUE);
-
- for (col = margin + 1; col < COLS; col += MY_TABSIZE)
- mvwvline(work, row, col, '.', limit - 2);
-
- mvwvline(work, row, margin, ACS_VLINE, limit - 2);
- mvwvline(work, row, margin + 1, ACS_VLINE, limit - 2);
- limit /= 2;
-
- mvwaddstr(work, 1, 2, "String");
- mvwaddstr(work, limit + 1, 2, "Chars");
- wnoutrefresh(work);
-
- buffer[length = 0] = '\0';
- legend(show, level, option, buffer, length);
- wnoutrefresh(show);
-
- doupdate();
-
- /*
- * Show the characters inserted in color, to distinguish from those that
- * are shifted.
- */
- if (has_colors()) {
- start_color();
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- wbkgdset(work, COLOR_PAIR(1) | ' ');
- }
-
- while ((code = wget_wch(work, &ch)) != ERR) {
-
- if (code == KEY_CODE_YES) {
- switch (ch) {
- case KEY_DOWN:
- ch = CTRL('N');
- break;
- case KEY_BACKSPACE:
- ch = '\b';
- break;
- default:
- beep();
- continue;
- }
- } else if (code == ERR) {
- beep();
- break;
- }
- if (ch == 'q')
- break;
-
- wmove(work, row, margin + 1);
- switch (ch) {
- case 'w':
- test_inserts(level + 1);
-
- touchwin(look);
- touchwin(work);
- touchwin(show);
-
- wnoutrefresh(look);
- wnoutrefresh(work);
- wnoutrefresh(show);
-
- doupdate();
- break;
- case CTRL('N'):
- if (row < limit) {
- ++row;
- /* put the whole string in, all at once */
- col2 = margin + 1;
- switch (option) {
- case oDefault:
- if (n_opt > 1) {
- for (col = 0; col < length; col += n_opt) {
- col2 = ColOf(buffer, col, margin);
- if (move(row, col2) != ERR) {
- InsNStr(buffer + col, LEN(col));
- }
- }
- } else {
- if (move(row, col2) != ERR) {
- InsStr(buffer);
- }
- }
- break;
- case oMove:
- if (n_opt > 1) {
- for (col = 0; col < length; col += n_opt) {
- col2 = ColOf(buffer, col, margin);
- MvInsNStr(row, col2, buffer + col, LEN(col));
- }
- } else {
- MvInsStr(row, col2, buffer);
- }
- break;
- case oWindow:
- if (n_opt > 1) {
- for (col = 0; col < length; col += n_opt) {
- col2 = ColOf(buffer, col, margin);
- if (wmove(work, row, col2) != ERR) {
- WInsNStr(work, buffer + col, LEN(col));
- }
- }
- } else {
- if (wmove(work, row, col2) != ERR) {
- WInsStr(work, buffer);
- }
- }
- break;
- case oMoveWindow:
- if (n_opt > 1) {
- for (col = 0; col < length; col += n_opt) {
- col2 = ColOf(buffer, col, margin);
- MvWInsNStr(work, row, col2, buffer + col, LEN(col));
- }
- } else {
- MvWInsStr(work, row, col2, buffer);
- }
- break;
- }
-
- /* do the corresponding single-character insertion */
- row2 = limit + row;
- for (col = 0; col < length; ++col) {
- col2 = ColOf(buffer, col, margin);
- switch (option) {
- case oDefault:
- if (move(row2, col2) != ERR) {
- InsCh((chtype) buffer[col]);
- }
- break;
- case oMove:
- MvInsCh(row2, col2, (chtype) buffer[col]);
- break;
- case oWindow:
- if (wmove(work, row2, col2) != ERR) {
- WInsCh(work, (chtype) buffer[col]);
- }
- break;
- case oMoveWindow:
- MvWInsCh(work, row2, col2, (chtype) buffer[col]);
- break;
- }
- }
- } else {
- beep();
- }
- break;
- case KEY_BACKSPACE:
- ch = '\b';
- /* FALLTHRU */
- default:
- buffer[length++] = ch;
- buffer[length] = '\0';
-
- /* put the string in, one character at a time */
- col = ColOf(buffer, length - 1, margin);
- switch (option) {
- case oDefault:
- if (move(row, col) != ERR) {
- InsStr(buffer + length - 1);
- }
- break;
- case oMove:
- MvInsStr(row, col, buffer + length - 1);
- break;
- case oWindow:
- if (wmove(work, row, col) != ERR) {
- WInsStr(work, buffer + length - 1);
- }
- break;
- case oMoveWindow:
- MvWInsStr(work, row, col, buffer + length - 1);
- break;
- }
-
- /* do the corresponding single-character insertion */
- switch (option) {
- case oDefault:
- if (move(limit + row, col) != ERR) {
- InsCh(ch);
- }
- break;
- case oMove:
- MvInsCh(limit + row, col, ch);
- break;
- case oWindow:
- if (wmove(work, limit + row, col) != ERR) {
- WInsCh(work, ch);
- }
- break;
- case oMoveWindow:
- MvWInsCh(work, limit + row, col, ch);
- break;
- }
-
- wnoutrefresh(work);
-
- legend(show, level, option, buffer, length);
- wnoutrefresh(show);
-
- doupdate();
- break;
- }
- }
- if (level > 0) {
- delwin(show);
- delwin(work);
- delwin(look);
- }
-}
-
-static void
-usage(void)
-{
- static const char *tbl[] =
- {
- "Usage: inserts [options]"
- ,""
- ,"Options:"
- ," -n NUM limit string-inserts to NUM bytes on ^N replay"
- ," -m perform wmove/move separately from insert-functions"
- ," -w use window-parameter even when stdscr would be implied"
- };
- unsigned n;
- for (n = 0; n < SIZEOF(tbl); ++n)
- fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- int ch;
-
- setlocale(LC_ALL, "");
-
- while ((ch = getopt(argc, argv, "mn:w")) != -1) {
- switch (ch) {
- case 'm':
- m_opt = TRUE;
- break;
- case 'n':
- n_opt = atoi(optarg);
- if (n_opt == 0)
- n_opt = -1;
- break;
- case 'w':
- w_opt = TRUE;
- break;
- default:
- usage();
- break;
- }
- }
- if (optind < argc)
- usage();
-
- test_inserts(0);
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the wide-ncurses library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/inserts b/test/inserts
deleted file mode 100755
index f83d536..0000000
--- a/test/inserts
+++ /dev/null
Binary files differ
diff --git a/test/inserts.c b/test/inserts.c
deleted file mode 100644
index 458788a..0000000
--- a/test/inserts.c
+++ /dev/null
@@ -1,440 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2002-2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: inserts.c,v 1.18 2007/07/21 17:41:55 tom Exp $
- *
- * Demonstrate the winsstr() and winsch functions.
- * Thomas Dickey - 2002/10/19
- */
-
-#include <test.priv.h>
-
-#if HAVE_WINSSTR
-
-#define InsNStr insnstr
-#define InsStr insstr
-#define MvInsNStr mvinsnstr
-#define MvInsStr mvinsstr
-#define MvWInsNStr mvwinsnstr
-#define MvWInsStr mvwinsstr
-#define WInsNStr winsnstr
-#define WInsStr winsstr
-
-#define InsCh insch
-#define MvInsCh mvinsch
-#define MvWInsCh mvwinsch
-#define WInsCh winsch
-
-#define MY_TABSIZE 8
-
-typedef enum {
- oDefault = 0,
- oMove = 1,
- oWindow = 2,
- oMoveWindow = 3
-} Options;
-
-static bool m_opt = FALSE;
-static bool w_opt = FALSE;
-static int n_opt = -1;
-
-static void
-legend(WINDOW *win, int level, Options state, char *buffer, int length)
-{
- NCURSES_CONST char *showstate;
-
- switch (state) {
- default:
- case oDefault:
- showstate = "";
- break;
- case oMove:
- showstate = " (mvXXX)";
- break;
- case oWindow:
- showstate = " (winXXX)";
- break;
- case oMoveWindow:
- showstate = " (mvwinXXX)";
- break;
- }
-
- wmove(win, 0, 0);
- wprintw(win,
- "The Strings/Chars displays should match. Enter any characters, except:\n");
- wprintw(win,
- "down-arrow or ^N to repeat on next line, 'w' for inner window, 'q' to exit.\n");
- wclrtoeol(win);
- wprintw(win, "Level %d,%s inserted %d characters <%s>", level,
- showstate, length, buffer);
-}
-
-static int
-ColOf(char *buffer, int length, int margin)
-{
- int n;
- int result;
-
- for (n = 0, result = margin + 1; n < length; ++n) {
- int ch = UChar(buffer[n]);
- switch (ch) {
- case '\n':
- /* actually newline should clear the remainder of the line
- * and move to the next line - but that seems a little awkward
- * in this example.
- */
- case '\r':
- result = 0;
- break;
- case '\b':
- if (result > 0)
- --result;
- break;
- case '\t':
- result += (MY_TABSIZE - (result % MY_TABSIZE));
- break;
- case '\177':
- result += 2;
- break;
- default:
- ++result;
- if (ch < 32)
- ++result;
- break;
- }
- }
- return result;
-}
-
-#define LEN(n) ((length - (n) > n_opt) ? n_opt : (length - (n)))
-static void
-test_inserts(int level)
-{
- static bool first = TRUE;
-
- int ch;
- int limit;
- int row = 1;
- int col;
- int row2, col2;
- int length;
- char buffer[BUFSIZ];
- WINDOW *look = 0;
- WINDOW *work = 0;
- WINDOW *show = 0;
- int margin = (2 * MY_TABSIZE) - 1;
- Options option = (Options) ((unsigned) (m_opt
- ? oMove
- : oDefault)
- | (unsigned) ((w_opt || (level > 0))
- ? oWindow
- : oDefault));
-
- if (first) {
- static char cmd[80];
- setlocale(LC_ALL, "");
-
- putenv(strcpy(cmd, "TABSIZE=8"));
-
- initscr();
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
- keypad(stdscr, TRUE);
- }
-
- limit = LINES - 5;
- if (level > 0) {
- look = newwin(limit, COLS - (2 * (level - 1)), 0, level - 1);
- work = newwin(limit - 2, COLS - (2 * level), 1, level);
- show = newwin(4, COLS, limit + 1, 0);
- box(look, 0, 0);
- wnoutrefresh(look);
- limit -= 2;
- } else {
- work = stdscr;
- show = derwin(stdscr, 4, COLS, limit + 1, 0);
- }
- keypad(work, TRUE);
-
- for (col = margin + 1; col < COLS; col += MY_TABSIZE)
- mvwvline(work, row, col, '.', limit - 2);
-
- mvwvline(work, row, margin, ACS_VLINE, limit - 2);
- mvwvline(work, row, margin + 1, ACS_VLINE, limit - 2);
- limit /= 2;
-
- mvwaddstr(work, 1, 2, "String");
- mvwaddstr(work, limit + 1, 2, "Chars");
- wnoutrefresh(work);
-
- buffer[length = 0] = '\0';
- legend(show, level, option, buffer, length);
- wnoutrefresh(show);
-
- doupdate();
-
- /*
- * Show the characters inserted in color, to distinguish from those that
- * are shifted.
- */
- if (has_colors()) {
- start_color();
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- wbkgdset(work, COLOR_PAIR(1) | ' ');
- }
-
- while ((ch = wgetch(work)) != 'q') {
- if (ch == ERR) {
- beep();
- break;
- }
- wmove(work, row, margin + 1);
- switch (ch) {
- case 'w':
- test_inserts(level + 1);
-
- touchwin(look);
- touchwin(work);
- touchwin(show);
-
- wnoutrefresh(look);
- wnoutrefresh(work);
- wnoutrefresh(show);
-
- doupdate();
- break;
- case CTRL('N'):
- case KEY_DOWN:
- if (row < limit) {
- ++row;
- /* put the whole string in, all at once */
- col2 = margin + 1;
- switch (option) {
- case oDefault:
- if (n_opt > 1) {
- for (col = 0; col < length; col += n_opt) {
- col2 = ColOf(buffer, col, margin);
- if (move(row, col2) != ERR) {
- InsNStr(buffer + col, LEN(col));
- }
- }
- } else {
- if (move(row, col2) != ERR) {
- InsStr(buffer);
- }
- }
- break;
- case oMove:
- if (n_opt > 1) {
- for (col = 0; col < length; col += n_opt) {
- col2 = ColOf(buffer, col, margin);
- MvInsNStr(row, col2, buffer + col, LEN(col));
- }
- } else {
- MvInsStr(row, col2, buffer);
- }
- break;
- case oWindow:
- if (n_opt > 1) {
- for (col = 0; col < length; col += n_opt) {
- col2 = ColOf(buffer, col, margin);
- if (wmove(work, row, col2) != ERR) {
- WInsNStr(work, buffer + col, LEN(col));
- }
- }
- } else {
- if (wmove(work, row, col2) != ERR) {
- WInsStr(work, buffer);
- }
- }
- break;
- case oMoveWindow:
- if (n_opt > 1) {
- for (col = 0; col < length; col += n_opt) {
- col2 = ColOf(buffer, col, margin);
- MvWInsNStr(work, row, col2, buffer + col, LEN(col));
- }
- } else {
- MvWInsStr(work, row, col2, buffer);
- }
- break;
- }
-
- /* do the corresponding single-character insertion */
- row2 = limit + row;
- for (col = 0; col < length; ++col) {
- col2 = ColOf(buffer, col, margin);
- switch (option) {
- case oDefault:
- if (move(row2, col2) != ERR) {
- InsCh(UChar(buffer[col]));
- }
- break;
- case oMove:
- MvInsCh(row2, col2, UChar(buffer[col]));
- break;
- case oWindow:
- if (wmove(work, row2, col2) != ERR) {
- WInsCh(work, UChar(buffer[col]));
- }
- break;
- case oMoveWindow:
- MvWInsCh(work, row2, col2, UChar(buffer[col]));
- break;
- }
- }
- } else {
- beep();
- }
- break;
- case KEY_BACKSPACE:
- ch = '\b';
- /* FALLTHRU */
- default:
- if (ch <= 0 || ch > 255) {
- beep();
- break;
- }
- buffer[length++] = ch;
- buffer[length] = '\0';
-
- /* put the string in, one character at a time */
- col = ColOf(buffer, length - 1, margin);
- switch (option) {
- case oDefault:
- if (move(row, col) != ERR) {
- InsStr(buffer + length - 1);
- }
- break;
- case oMove:
- MvInsStr(row, col, buffer + length - 1);
- break;
- case oWindow:
- if (wmove(work, row, col) != ERR) {
- WInsStr(work, buffer + length - 1);
- }
- break;
- case oMoveWindow:
- MvWInsStr(work, row, col, buffer + length - 1);
- break;
- }
-
- /* do the corresponding single-character insertion */
- switch (option) {
- case oDefault:
- if (move(limit + row, col) != ERR) {
- InsCh(UChar(ch));
- }
- break;
- case oMove:
- MvInsCh(limit + row, col, UChar(ch));
- break;
- case oWindow:
- if (wmove(work, limit + row, col) != ERR) {
- WInsCh(work, UChar(ch));
- }
- break;
- case oMoveWindow:
- MvWInsCh(work, limit + row, col, UChar(ch));
- break;
- }
-
- wnoutrefresh(work);
-
- legend(show, level, option, buffer, length);
- wnoutrefresh(show);
-
- doupdate();
- break;
- }
- }
- if (level > 0) {
- delwin(show);
- delwin(work);
- delwin(look);
- }
-}
-
-static void
-usage(void)
-{
- static const char *tbl[] =
- {
- "Usage: inserts [options]"
- ,""
- ,"Options:"
- ," -n NUM limit string-inserts to NUM bytes on ^N replay"
- ," -m perform wmove/move separately from insert-functions"
- ," -w use window-parameter even when stdscr would be implied"
- };
- unsigned n;
- for (n = 0; n < SIZEOF(tbl); ++n)
- fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- int ch;
-
- setlocale(LC_ALL, "");
-
- while ((ch = getopt(argc, argv, "mn:w")) != -1) {
- switch (ch) {
- case 'm':
- m_opt = TRUE;
- break;
- case 'n':
- n_opt = atoi(optarg);
- if (n_opt == 0)
- n_opt = -1;
- break;
- case 'w':
- w_opt = TRUE;
- break;
- default:
- usage();
- break;
- }
- }
- if (optind < argc)
- usage();
-
- test_inserts(0);
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the winsstr function\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif /* HAVE_WINSSTR */
diff --git a/test/key_names b/test/key_names
deleted file mode 100755
index 0c77b96..0000000
--- a/test/key_names
+++ /dev/null
Binary files differ
diff --git a/test/key_names.c b/test/key_names.c
deleted file mode 100644
index ba45656..0000000
--- a/test/key_names.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: key_names.c,v 1.4 2008/10/11 20:22:37 tom Exp $
- */
-
-#include <test.priv.h>
-
-#if USE_WIDEC_SUPPORT
-
-static void
-usage(void)
-{
- fprintf(stderr, "Usage: key_names [-m] [-s]\n");
- ExitProgram(EXIT_FAILURE);
-}
-
-int
-main(int argc, char *argv[])
-{
- int n;
-
- bool do_setup = FALSE;
- bool do_meta = FALSE;
-
- setlocale(LC_ALL, "");
-
- while ((n = getopt(argc, argv, "ms")) != -1) {
- switch (n) {
- case 'm':
- do_meta = TRUE;
- break;
- case 's':
- do_setup = TRUE;
- break;
- default:
- usage();
- /* NOTREACHED */
- }
- }
-
- if (do_setup) {
- /*
- * Get the terminfo entry into memory, and tell ncurses that we want to
- * use function keys. That will make it add any user-defined keys that
- * appear in the terminfo.
- */
- newterm(getenv("TERM"), stderr, stdin);
- keypad(stdscr, TRUE);
- if (do_meta)
- meta(stdscr, TRUE);
- endwin();
- }
- for (n = -1; n < KEY_MAX + 512; n++) {
- const char *result = key_name(n);
- if (result != 0)
- printf("%d(%5o):%s\n", n, n, result);
- }
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the wide-ncurses library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/keynames b/test/keynames
deleted file mode 100755
index 0888d5d..0000000
--- a/test/keynames
+++ /dev/null
Binary files differ
diff --git a/test/keynames.c b/test/keynames.c
deleted file mode 100644
index 26cfa87..0000000
--- a/test/keynames.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: keynames.c,v 1.9 2008/10/11 20:22:37 tom Exp $
- */
-
-#include <test.priv.h>
-
-static void
-usage(void)
-{
- fprintf(stderr, "Usage: keynames [-m] [-s]\n");
- ExitProgram(EXIT_FAILURE);
-}
-
-int
-main(int argc, char *argv[])
-{
- int n;
- bool do_setup = FALSE;
- bool do_meta = FALSE;
-
- setlocale(LC_ALL, "");
-
- while ((n = getopt(argc, argv, "ms")) != -1) {
- switch (n) {
- case 'm':
- do_meta = TRUE;
- break;
- case 's':
- do_setup = TRUE;
- break;
- default:
- usage();
- /* NOTREACHED */
- }
- }
-
- if (do_setup) {
- /*
- * Get the terminfo entry into memory, and tell ncurses that we want to
- * use function keys. That will make it add any user-defined keys that
- * appear in the terminfo.
- */
- newterm(getenv("TERM"), stderr, stdin);
- keypad(stdscr, TRUE);
- if (do_meta)
- meta(stdscr, TRUE);
- endwin();
- }
-
- for (n = -1; n < KEY_MAX + 512; n++) {
- const char *result = keyname(n);
- if (result != 0)
- printf("%d(%5o):%s\n", n, n, result);
- }
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/knight b/test/knight
deleted file mode 100755
index 4759dcf..0000000
--- a/test/knight
+++ /dev/null
Binary files differ
diff --git a/test/knight.c b/test/knight.c
deleted file mode 100644
index f9ba1dc..0000000
--- a/test/knight.c
+++ /dev/null
@@ -1,727 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * Knight's Tour - a brain game
- *
- * The original of this game was anonymous. It had an unbelievably bogus
- * interface, you actually had to enter square coordinates! Redesign by
- * Eric S. Raymond <esr@snark.thyrsus.com> July 22 1995. Mouse support
- * added September 20th 1995.
- *
- * $Id: knight.c,v 1.28 2008/08/03 23:04:26 tom Exp $
- */
-
-#include <test.priv.h>
-
-/* board size */
-#define BDEPTH 8
-#define BWIDTH 8
-
-/* where to start the instructions */
-#define INSTRY 2
-#define INSTRX 35
-
-/* corner of board */
-#define BOARDY 2
-#define BOARDX 0
-
-/* notification line */
-#define NOTIFYY 21
-
-/* virtual color values */
-#define TRAIL_COLOR 1
-#define PLUS_COLOR 2
-#define MINUS_COLOR 3
-
-#define CX(x) (2 + 4 * (x))
-#define CY(y) (1 + 2 * (y))
-#define cellmove(y, x) wmove(boardwin, CY(y), CX(x))
-#define CXINV(x) (((x) - 1) / 4)
-#define CYINV(y) (((y) - 2) / 2)
-
-typedef struct {
- short x, y;
-} cell;
-
-static WINDOW *boardwin; /* the board window */
-static WINDOW *helpwin; /* the help window */
-static WINDOW *msgwin; /* the message window */
-static cell history[BDEPTH * BWIDTH + 1]; /* choice history */
-static chtype minus = '-'; /* possible-move character */
-static chtype oldch;
-static chtype plus = '+'; /* cursor hot-spot character */
-static chtype trail = '#'; /* trail character */
-static int movecount; /* count of moves so far */
-static int trialcount; /* count of trials so far */
-static short board[BDEPTH][BWIDTH]; /* the squares */
-/* *INDENT-OFF* */
-static const struct {
- int y;
- int x;
-} offsets[] = {
- { 2, 1 },
- { 1, 2 },
- { -1, 2 },
- { -2, 1 },
- { -2, -1 },
- { -1, -2 },
- { 1, -2 },
- { 2, -1 },
-};
-/* *INDENT-ON* */
-
-static void
-init_program(void)
-{
- setlocale(LC_ALL, "");
-
- srand((unsigned) getpid());
- initscr();
- cbreak(); /* immediate char return */
- noecho(); /* no immediate echo */
- boardwin = newwin(BDEPTH * 2 + 1, BWIDTH * 4 + 1, BOARDY, BOARDX);
- helpwin = newwin(0, 0, INSTRY, INSTRX);
- msgwin = newwin(1, INSTRX - 1, NOTIFYY, 0);
- scrollok(msgwin, TRUE);
- keypad(boardwin, TRUE);
-
- if (has_colors()) {
- int bg = COLOR_BLACK;
-
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
-
- (void) init_pair(TRAIL_COLOR, COLOR_CYAN, bg);
- (void) init_pair(PLUS_COLOR, COLOR_RED, bg);
- (void) init_pair(MINUS_COLOR, COLOR_GREEN, bg);
-
- trail |= COLOR_PAIR(TRAIL_COLOR);
- plus |= COLOR_PAIR(PLUS_COLOR);
- minus |= COLOR_PAIR(MINUS_COLOR);
- }
-#ifdef NCURSES_MOUSE_VERSION
- (void) mousemask(BUTTON1_CLICKED, (mmask_t *) NULL);
-#endif /* NCURSES_MOUSE_VERSION */
-
- oldch = minus;
-}
-
-static void
-help1(void)
-/* game explanation -- initial help screen */
-{
- (void) waddstr(helpwin, "Knight's move is a solitaire puzzle. Your\n");
- (void) waddstr(helpwin, "objective is to visit each square of the \n");
- (void) waddstr(helpwin, "chessboard exactly once by making knight's\n");
- (void) waddstr(helpwin, "moves (one square right or left followed \n");
- (void) waddstr(helpwin, "by two squares up or down, or two squares \n");
- (void) waddstr(helpwin, "right or left followed by one square up or\n");
- (void) waddstr(helpwin, "down). You may start anywhere.\n\n");
-
- (void) waddstr(helpwin, "Use arrow keys to move the cursor around.\n");
- (void) waddstr(helpwin, "When you want to move your knight to the \n");
- (void) waddstr(helpwin, "cursor location, press <space> or Enter.\n");
- (void) waddstr(helpwin, "Illegal moves will be rejected with an \n");
- (void) waddstr(helpwin, "audible beep.\n\n");
- (void) waddstr(helpwin, "The program will detect if you solve the\n");
- (void) waddstr(helpwin, "puzzle; also inform you when you run out\n");
- (void) waddstr(helpwin, "of legal moves.\n\n");
-
- (void) mvwaddstr(helpwin, NOTIFYY - INSTRY, 0,
- "Press `?' to go to keystroke help.");
-}
-
-static void
-help2(void)
-/* keystroke help screen */
-{
- (void) waddstr(helpwin, "Possible moves are shown with `-'.\n\n");
-
- (void) waddstr(helpwin, "You can move around with the arrow keys or\n");
- (void) waddstr(helpwin, "with the rogue/hack movement keys. Other\n");
- (void) waddstr(helpwin, "commands allow you to undo moves or redraw.\n");
- (void) waddstr(helpwin, "Your mouse may work; try left-button to\n");
- (void) waddstr(helpwin, "move to the square under the pointer.\n\n");
-
- (void) waddstr(helpwin, "x,q -- exit y k u 7 8 9\n");
- (void) waddstr(helpwin, "r -- redraw screen \\|/ \\|/ \n");
- (void) waddstr(helpwin, "bksp -- undo move h-+-l 4-+-6\n");
- (void) waddstr(helpwin, "a -- autojump /|\\ /|\\ \n");
- (void) waddstr(helpwin, " b j n 1 2 3\n");
-
- (void) waddstr(helpwin, "\nYou can place your knight on the selected\n");
- (void) waddstr(helpwin, "square with spacebar, Enter, or the keypad\n");
- (void) waddstr(helpwin, "center key. Use F/B to review the path.\n");
-
- (void) mvwaddstr(helpwin, NOTIFYY - INSTRY, 0,
- "Press `?' to go to game explanation");
-}
-
-static void
-show_help(bool * keyhelp)
-{
- werase(helpwin);
- if (*keyhelp) {
- help1();
- *keyhelp = FALSE;
- } else {
- help2();
- *keyhelp = TRUE;
- }
- wrefresh(helpwin);
-}
-
-static bool
-chksqr(int r1, int c1)
-{
- if ((r1 < 0) || (r1 > BDEPTH - 1))
- return (FALSE);
- if ((c1 < 0) || (c1 > BWIDTH - 1))
- return (FALSE);
- return ((!board[r1][c1]) ? TRUE : FALSE);
-}
-
-static bool
-chkmoves(int rw, int col)
-/* check to see if valid moves are available */
-{
- unsigned n;
-
- for (n = 0; n < SIZEOF(offsets); n++)
- if (chksqr(rw + offsets[n].y, col + offsets[n].x))
- return (TRUE);
- return (FALSE);
-}
-
-static void
-dosquares(void)
-{
- int i, j;
-
- mvaddstr(0, 20, "KNIGHT'S MOVE -- a logical solitaire");
-
- move(BOARDY, BOARDX);
- waddch(boardwin, ACS_ULCORNER);
- for (j = 0; j < 7; j++) {
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_TTEE);
- }
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_URCORNER);
-
- for (i = 1; i < BDEPTH; i++) {
- move(BOARDY + i * 2 - 1, BOARDX);
- waddch(boardwin, ACS_VLINE);
- for (j = 0; j < BWIDTH; j++) {
- waddch(boardwin, ' ');
- waddch(boardwin, ' ');
- waddch(boardwin, ' ');
- waddch(boardwin, ACS_VLINE);
- }
- move(BOARDY + i * 2, BOARDX);
- waddch(boardwin, ACS_LTEE);
- for (j = 0; j < BWIDTH - 1; j++) {
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_PLUS);
- }
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_RTEE);
- }
-
- move(BOARDY + i * 2 - 1, BOARDX);
- waddch(boardwin, ACS_VLINE);
- for (j = 0; j < BWIDTH; j++) {
- waddch(boardwin, ' ');
- waddch(boardwin, ' ');
- waddch(boardwin, ' ');
- waddch(boardwin, ACS_VLINE);
- }
-
- move(BOARDY + i * 2, BOARDX);
- waddch(boardwin, ACS_LLCORNER);
- for (j = 0; j < BWIDTH - 1; j++) {
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_BTEE);
- }
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_HLINE);
- waddch(boardwin, ACS_LRCORNER);
-}
-
-static void
-mark_possibles(int prow, int pcol, chtype mark)
-{
- unsigned n;
-
- for (n = 0; n < SIZEOF(offsets); n++) {
- if (chksqr(prow + offsets[n].y, pcol + offsets[n].x)) {
- cellmove(prow + offsets[n].y, pcol + offsets[n].x);
- waddch(boardwin, mark);
- }
- }
-}
-
-static void
-find_next_move(int *y, int *x)
-{
- unsigned j, k;
- int found = -1;
- int first = -1;
- int next = 0;
- int oldy, oldx;
- int newy, newx;
-
- if (movecount > 1) {
- oldy = history[movecount - 1].y;
- oldx = history[movecount - 1].x;
- for (j = 0; j < SIZEOF(offsets) * 2; j++) {
- k = j % SIZEOF(offsets);
- newy = oldy + offsets[k].y;
- newx = oldx + offsets[k].x;
- if (chksqr(newy, newx)) {
- if (first < 0)
- first = k;
- if (newy == *y
- && newx == *x) {
- found = k;
- } else if (found >= 0) {
- next = k;
- break;
- }
- }
- }
- if (found < 0)
- next = first;
- if (next >= 0) {
- *y = oldy + offsets[next].y;
- *x = oldx + offsets[next].x;
- }
- } else {
- beep();
- }
-}
-
-static void
-unmarkcell(int row, int column)
-{
- cellmove(row, column);
- waddch(boardwin, '\b');
- waddch(boardwin, ' ');
- waddch(boardwin, minus);
- waddch(boardwin, ' ');
-}
-
-static void
-markcell(chtype tchar, int row, int column)
-{
- cellmove(row, column);
- waddch(boardwin, '\b');
- waddch(boardwin, tchar);
- waddch(boardwin, tchar);
- waddch(boardwin, tchar);
-}
-
-static void
-drawmove(chtype tchar, int oldy, int oldx, int row, int column)
-/* place the stars, update board & currents */
-{
- if (movecount <= 1) {
- int i, j;
-
- for (i = 0; i < BDEPTH; i++) {
- for (j = 0; j < BWIDTH; j++) {
- if (movecount == 0) {
- unmarkcell(i, j);
- } else {
- cellmove(i, j);
- if (winch(boardwin) == minus)
- waddch(boardwin, movecount ? ' ' : minus);
- }
- }
- }
- } else {
- markcell(tchar, oldy, oldx);
- mark_possibles(oldy, oldx, ' ');
- }
-
- if (row >= 0 && column >= 0) {
- markcell(trail, row, column);
- mark_possibles(row, column, minus);
- board[row][column] = TRUE;
- }
-
- wprintw(msgwin, "\nMove %d", movecount);
- if (trialcount != movecount)
- wprintw(msgwin, " (%d tries)", trialcount);
- wclrtoeol(msgwin);
-}
-
-static int
-iabs(int num)
-{
- if (num < 0)
- return (-num);
- else
- return (num);
-}
-
-static bool
-evalmove(int row, int column)
-/* evaluate move */
-{
- if (movecount == 1)
- return (TRUE);
- else if (board[row][column] == TRUE) {
- waddstr(msgwin, "\nYou've already been there.");
- return (FALSE);
- } else {
- int rdif = iabs(row - history[movecount - 1].y);
- int cdif = iabs(column - history[movecount - 1].x);
-
- if (!((rdif == 1) && (cdif == 2)) && !((rdif == 2) && (cdif == 1))) {
- waddstr(msgwin, "\nThat's not a legal knight's move.");
- return (FALSE);
- }
- }
-
- return (TRUE);
-}
-
-static int
-completed(void)
-{
- int i, j, count = 0;
-
- for (i = 0; i < BDEPTH; i++)
- for (j = 0; j < BWIDTH; j++)
- if (board[i][j] != 0)
- count += 1;
- return (count == (BWIDTH * BDEPTH) ? -1 : count);
-}
-
-static void
-no_previous_move(void)
-{
- waddstr(msgwin, "\nNo previous move.");
- beep();
-}
-
-static void
-play(void)
-/* play the game */
-{
- bool keyhelp; /* TRUE if keystroke help is up */
- int i, j, count;
- int lastcol = 0; /* last location visited */
- int lastrow = 0;
- int ny = 0, nx = 0;
- int review = 0; /* review history */
- int rw = 0, col = 0; /* current row and column */
-
- do {
- /* clear screen and draw board */
- werase(boardwin);
- werase(helpwin);
- werase(msgwin);
- dosquares();
- help1();
- wnoutrefresh(stdscr);
- wnoutrefresh(helpwin);
- wnoutrefresh(msgwin);
- wnoutrefresh(boardwin);
- doupdate();
-
- movecount = 0;
- for (i = 0; i < BDEPTH; i++) {
- for (j = 0; j < BWIDTH; j++) {
- board[i][j] = FALSE;
- unmarkcell(i, j);
- }
- }
- memset(history, 0, sizeof(history));
- history[0].y = history[0].x = -1;
- history[1].y = history[1].x = -1;
- lastrow = lastcol = -2;
- movecount = 1;
- trialcount = 1;
- keyhelp = FALSE;
- show_help(&keyhelp);
-
- for (;;) {
- if (rw != lastrow || col != lastcol) {
- if (lastrow >= 0 && lastcol >= 0) {
- cellmove(lastrow, lastcol);
- if (board[lastrow][lastcol])
- waddch(boardwin, trail);
- else
- waddch(boardwin, oldch);
- }
-
- cellmove(rw, col);
- oldch = winch(boardwin);
-
- lastrow = rw;
- lastcol = col;
- }
- cellmove(rw, col);
- waddch(boardwin, plus);
- cellmove(rw, col);
-
- wrefresh(msgwin);
-
- switch (wgetch(boardwin)) {
- case 'k':
- case '8':
- case KEY_UP:
- ny = rw + BDEPTH - 1;
- nx = col;
- break;
- case 'j':
- case '2':
- case KEY_DOWN:
- ny = rw + 1;
- nx = col;
- break;
- case 'h':
- case '4':
- case KEY_LEFT:
- ny = rw;
- nx = col + BWIDTH - 1;
- break;
- case 'l':
- case '6':
- case KEY_RIGHT:
- ny = rw;
- nx = col + 1;
- break;
- case 'y':
- case '7':
- case KEY_A1:
- ny = rw + BDEPTH - 1;
- nx = col + BWIDTH - 1;
- break;
- case 'b':
- case '1':
- case KEY_C1:
- ny = rw + 1;
- nx = col + BWIDTH - 1;
- break;
- case 'u':
- case '9':
- case KEY_A3:
- ny = rw + BDEPTH - 1;
- nx = col + 1;
- break;
- case 'n':
- case '3':
- case KEY_C3:
- ny = rw + 1;
- nx = col + 1;
- break;
-
-#ifdef NCURSES_MOUSE_VERSION
- case KEY_MOUSE:
- {
- MEVENT myevent;
-
- getmouse(&myevent);
- if (myevent.y >= CY(0) && myevent.y <= CY(BDEPTH)
- && myevent.x >= CX(0) && myevent.x <= CX(BWIDTH)) {
- nx = CXINV(myevent.x);
- ny = CYINV(myevent.y);
- ungetch('\n');
- break;
- } else {
- beep();
- continue;
- }
- }
-#endif /* NCURSES_MOUSE_VERSION */
-
- case KEY_B2:
- case '\n':
- case ' ':
- review = 0;
- if (evalmove(rw, col)) {
- drawmove(trail,
- history[movecount - 1].y,
- history[movecount - 1].x,
- rw, col);
- history[movecount].y = rw;
- history[movecount].x = col;
- movecount++;
- trialcount++;
-
- if (!chkmoves(rw, col)) {
- if (completed() < 0) {
- waddstr(msgwin, "\nYou won.");
- } else {
- waddstr(msgwin,
- "\nNo further moves are possible.");
- }
- }
- } else {
- beep();
- }
- break;
-
- case KEY_UNDO:
- case KEY_BACKSPACE:
- case '\b':
- review = 0;
- if (movecount <= 0) {
- no_previous_move();
- } else if (movecount <= 1) {
- ny = history[movecount].y;
- nx = history[movecount].x;
- if (nx < 0 || ny < 0) {
- ny = lastrow;
- nx = lastcol;
- }
- movecount = 0;
- board[ny][nx] = FALSE;
- oldch = minus;
- drawmove(' ', ny, nx, -1, -1);
- movecount = 1;
- trialcount = 1;
- no_previous_move();
- } else {
- int oldy = history[movecount - 1].y;
- int oldx = history[movecount - 1].x;
-
- if (!board[rw][col]) {
- cellmove(rw, col);
- waddch(boardwin, ' ');
- }
-
- board[oldy][oldx] = FALSE;
- --movecount;
- ny = history[movecount - 1].y;
- nx = history[movecount - 1].x;
- if (nx < 0 || ny < 0) {
- ny = oldy;
- nx = oldx;
- }
- drawmove(' ', oldy, oldx, ny, nx);
-
- /* avoid problems if we just changed the current cell */
- cellmove(lastrow, lastcol);
- oldch = winch(boardwin);
- }
- break;
-
- case 'a':
- nx = col;
- ny = rw;
- find_next_move(&ny, &nx);
- break;
-
- case 'F':
- if (review > 0) {
- review--;
- ny = history[movecount - review - 1].y;
- nx = history[movecount - review - 1].x;
- } else {
- beep();
- }
- break;
-
- case 'B':
- if (review < movecount - 2) {
- review++;
- ny = history[movecount - review - 1].y;
- nx = history[movecount - review - 1].x;
- } else {
- beep();
- }
- break;
-
- case KEY_REDO:
- case '\f':
- case 'r':
- clearok(curscr, TRUE);
- wnoutrefresh(stdscr);
- wnoutrefresh(boardwin);
- wnoutrefresh(msgwin);
- wnoutrefresh(helpwin);
- doupdate();
- break;
-
- case 'q':
- case 'x':
- goto dropout;
-
- case '?':
- show_help(&keyhelp);
- break;
-
- default:
- beep();
- break;
- }
-
- col = nx % BWIDTH;
- rw = ny % BDEPTH;
- }
-
- dropout:
- if ((count = completed()) < 0)
- wprintw(msgwin, "\nYou won. Care to try again? ");
- else
- wprintw(msgwin, "\n%d squares filled. Try again? ", count);
- wclrtoeol(msgwin);
- } while
- (tolower(wgetch(msgwin)) == 'y');
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- init_program();
-
- play();
-
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-
-/* knight.c ends here */
diff --git a/test/linux-color.dat b/test/linux-color.dat
deleted file mode 100644
index 528b3f0..0000000
--- a/test/linux-color.dat
+++ /dev/null
@@ -1,48 +0,0 @@
-##############################################################################
-# Copyright (c) 2004,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: linux-color.dat,v 1.2 2006/04/22 21:40:00 tom Exp $
-# These values are derived from linux/drivers/char/vt.c (default_red[],
-# default_grn[] and default_blu[]), commented
-/* the default colour table, for VGA+ colour systems */
-scale:255
-0: 0 0 0
-1: 170 0 0
-2: 0 170 0
-3: 170 85 0
-4: 0 0 170
-5: 170 0 170
-6: 0 170 170
-7: 170 170 170
-8: 85 85 85
-9: 255 85 85
-10: 85 255 85
-11: 255 255 85
-12: 85 85 255
-13: 255 85 255
-14: 85 255 255
-15: 255 255 255
diff --git a/test/listused.sh b/test/listused.sh
deleted file mode 100755
index 525f712..0000000
--- a/test/listused.sh
+++ /dev/null
@@ -1,182 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 2003,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: listused.sh,v 1.7 2006/06/03 16:39:37 tom Exp $
-# A very simple script to list entrypoints that are used by either a test
-# program, or within the libraries. This relies on the output format of 'nm',
-# and assumes that the libraries are configured with TRACE defined, and using
-# these options:
-# --disable-macros
-# --enable-widec
-# Static libraries are used, to provide some filtering based on internal usage
-# of the different symbols.
-
-# keep the sorting independent of locale:
-if test "${LANGUAGE+set}" = set; then LANGUAGE=C; export LANGUAGE; fi
-if test "${LANG+set}" = set; then LANG=C; export LANG; fi
-if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
-if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
-if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-if test "${LC_COLLATE+set}" = set; then LC_COLLATE=C; export LC_COLLATE; fi
-
-NM_OPTS=
-
-if test ! -d ../objects ; then
- echo "? need objects to run this script"
- exit 1
-elif test ! -d ../lib ; then
- echo "? need libraries to run this script"
- exit 1
-fi
-
-PROGS=
-for name in `(echo "test:";sort modules; echo "progs:";sort ../progs/modules) |sed -e 's/[ ].*//' -e '/^[#@]/d'`
-do
- case $name in
- *:)
- PROGS="$PROGS $name"
- ;;
- *)
- NAME=../objects/${name}.o
- if test -f $NAME
- then
- PROGS="$PROGS $NAME"
- fi
- ;;
- esac
-done
-
-# For each library -
-for lib in ../lib/*.a
-do
- LIB=`basename $lib .a`
- case $LIB in
- *_*|*+*)
- continue
- ;;
- esac
-
- tmp=`echo $LIB|sed -e 's/w$//'`
- echo
- echo "${tmp}:"
- echo $tmp |sed -e 's/./-/g'
- # Construct a list of public externals provided by the library.
- WANT=`nm $NM_OPTS $lib |\
- sed -e 's/^[^ ]*//' \
- -e 's/^ *//' \
- -e '/^[ a-z] /d' \
- -e '/:$/d' \
- -e '/^$/d' \
- -e '/^U /d' \
- -e 's/^[A-Z] //' \
- -e '/^_/d' |\
- sort -u`
- # List programs which use that external.
- for name in $WANT
- do
- HAVE=
- tags=
- last=
- for prog in $PROGS
- do
- case $prog in
- *:)
- tags=$prog
- ;;
- *)
- TEST=`nm $NM_OPTS $prog |\
- sed -e 's/^[^ ]*//' \
- -e 's/^ *//' \
- -e '/^[ a-z] /d' \
- -e '/:$/d' \
- -e '/^$/d' \
- -e 's/^[A-Z] //' \
- -e '/^_/d' \
- -e 's/^'${name}'$/_/' \
- -e '/^[^_]/d'`
- if test -n "$TEST"
- then
- have=`basename $prog .o`
- if test -n "$HAVE"
- then
- if test "$last" = "$tags"
- then
- HAVE="$HAVE $have"
- else
- HAVE="$HAVE $tags $have"
- fi
- else
- HAVE="$tags $have"
- fi
- last="$tags"
- fi
- ;;
- esac
- done
- # if we did not find a program using it directly, see if it
- # is used within a library.
- if test -z "$HAVE"
- then
- for tmp in ../lib/*.a
- do
- case $tmp in
- *_*|*+*)
- continue
- ;;
- esac
- TEST=`nm $NM_OPTS $tmp |\
- sed -e 's/^[^ ]*//' \
- -e 's/^ *//' \
- -e '/^[ a-z] /d' \
- -e '/:$/d' \
- -e '/^$/d' \
- -e '/^[A-TV-Z] /d' \
- -e 's/^[A-Z] //' \
- -e '/^_/d' \
- -e 's/^'${name}'$/_/' \
- -e '/^[^_]/d'`
- if test -n "$TEST"
- then
- tmp=`basename $tmp .a |sed -e 's/w$//'`
- HAVE=`echo $tmp | sed -e 's/lib/lib: /'`
- break
- fi
- done
- fi
- test -z "$HAVE" && HAVE="-"
- lenn=`expr 39 - length $name`
- lenn=`expr $lenn / 8`
- tabs=
- while test $lenn != 0
- do
- tabs="${tabs} "
- lenn=`expr $lenn - 1`
- done
- echo "${name}${tabs}${HAVE}"
- done
-done
diff --git a/test/lrtest b/test/lrtest
deleted file mode 100755
index 4ed11bc..0000000
--- a/test/lrtest
+++ /dev/null
Binary files differ
diff --git a/test/lrtest.c b/test/lrtest.c
deleted file mode 100644
index e40b0c1..0000000
--- a/test/lrtest.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * Test lower-right-hand corner access
- *
- * originally by Eric S. Raymond <esr@thyrsus.com>, written for animation
- * and resizing -T.Dickey
- *
- * This can't be part of the ncurses test-program, because ncurses rips off the
- * bottom line to do labels.
- *
- * $Id: lrtest.c,v 1.21 2005/12/31 16:51:53 tom Exp $
- */
-
-#include <test.priv.h>
-
-typedef struct {
- int y, x, mode, dir, inc;
- chtype value;
-} MARK;
-
-/*
- * Make a couple of markers go 'round the border to demonstrate that we can
- * really write to all positions properly.
- */
-static void
-show(MARK *m)
-{
- mvaddch(m->y, m->x, m->value);
- if (m->mode == 0) { /* along the x-direction */
- m->x += m->inc;
- if (m->x >= COLS) {
- m->x = COLS - 1;
- m->inc = -m->dir * m->inc;
- m->y += m->inc;
- m->mode = 1;
- } else if (m->x < 0) {
- m->x = 0;
- m->inc = -m->dir * m->inc;
- m->y += m->inc;
- m->mode = 1;
- }
- } else { /* along the y-direction */
- m->y += m->inc;
- if (m->y >= LINES) {
- m->y = LINES - 1;
- m->inc = m->dir * m->inc;
- m->x += m->inc;
- m->mode = 0;
- } else if (m->y < 0) {
- m->y = 0;
- m->inc = m->dir * m->inc;
- m->x += m->inc;
- m->mode = 0;
- }
- }
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- static MARK marks[] =
- {
- {0, 0, 0, -1, 1, '+' | A_BOLD},
- {0, 0, 1, 1, 2, 'X'},
- {0, 0, 1, -1, 3, 'Y'},
- {0, 8, 0, -1, 1, '+' | A_BOLD},
- {0, 9, 0, -1, 1, '+' | A_BOLD},
- {1, 0, 1, 1, 1, '*' | A_REVERSE},
- {2, 0, 1, 1, 1, '*' | A_REVERSE}
- };
-
- setlocale(LC_ALL, "");
-
- initscr();
- noecho();
- cbreak();
- nodelay(stdscr, TRUE);
- curs_set(0);
-
-#ifdef KEY_RESIZE
- keypad(stdscr, TRUE);
- restart:
-#endif
- move(LINES / 2 - 1, 4);
- if (!(has_ic()
-#if HAVE_SETUPTERM
- /* see PutCharLR() */
- || auto_right_margin
- || (enter_am_mode && exit_am_mode)
-#endif
- )) {
- addstr("Your terminal lacks the capabilities needed to address the\n");
- move(LINES / 2, 4);
- addstr("lower-right-hand corner of the screen.\n");
- } else {
- addstr("This is a test of access to the lower right corner.\n");
- move(LINES / 2, 4);
- addstr("If the top of the box is missing, the test failed.\n");
- move(LINES / 2 + 1, 4);
- addstr("Please report this (with a copy of your terminfo entry).\n");
- move(LINES / 2 + 2, 4);
- addstr("to the ncurses maintainers, at bug-ncurses@gnu.org.\n");
- }
-
- for (;;) {
- int ch;
- unsigned n;
-
- box(stdscr, 0, 0);
- for (n = 0; n < SIZEOF(marks); n++) {
- show(&marks[n]);
- }
-
- if ((ch = getch()) > 0) {
- if (ch == 'q')
- break;
- else if (ch == 's')
- nodelay(stdscr, FALSE);
- else if (ch == ' ')
- nodelay(stdscr, TRUE);
-#ifdef TRACE
- else if (ch == 'T')
- trace(0);
- else if (ch == 't')
- trace(TRACE_CALLS | TRACE_ICALLS | TRACE_UPDATE);
-#endif
-#ifdef KEY_RESIZE
- else if (ch == KEY_RESIZE) {
- for (n = 0; n < SIZEOF(marks); n++) {
- if (marks[n].mode == 0) { /* moving along x-direction */
- if (marks[n].y)
- marks[n].y = LINES - 1;
- } else {
- if (marks[n].x)
- marks[n].x = COLS - 1;
- }
- }
- flash();
- erase();
- wrefresh(curscr);
- goto restart;
- }
-#endif
- }
- napms(50);
- refresh();
- }
-
- curs_set(1);
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-
-/* lrtest.c ends here */
diff --git a/test/mk-test.awk b/test/mk-test.awk
deleted file mode 100644
index 9be0361..0000000
--- a/test/mk-test.awk
+++ /dev/null
@@ -1,111 +0,0 @@
-# $Id: mk-test.awk,v 1.5 2007/01/20 21:28:47 tom Exp $
-##############################################################################
-# Copyright (c) 2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey
-#
-# generate Makefile for ncurses tests.
-BEGIN {
- first = 1;
- count = 0;
- }
-/^#/ {
- next;
- }
-/^$/ {
- next;
- }
- {
- if (first) {
- print "# generated by mk-test.awk\n";
- first = 0;
- }
- progs[count] = $1;
- flags[count] = $2;
- using[count] = $3;
- files[count] = "";
- for (n = 4; n <= NF; ++n) {
- files[count] = sprintf("%s $(MODEL)/%s$o", files[count], $n);
- }
- count = count + 1;
- }
-END {
- for (n = 0; n < count; ++n) {
- if (n == 0) {
- printf "TESTS\t= ";
- } else {
- printf "\t ";
- }
- printf "$(destdir)%s$x", progs[n];
- if (n < count - 1) {
- printf " \\";
- }
- print "";
- }
- print ""
- print "all: $(TESTS)"
- print ""
- print "sources:"
- print ""
- print "tags:"
- print " ctags *.[ch]"
- print ""
- print "libs \\"
- print "install \\"
- print "install.libs \\"
- print "install.test:"
- print ""
- print "uninstall:"
- print "uninstall.libs:"
- print "uninstall.test:"
- print ""
- print "mostlyclean ::"
- print " -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace"
- print ""
- print "clean :: mostlyclean"
- print " -sh -c \"if test -n '$x' ; then $(MAKE) clean x=''; fi\""
- print " -rm -rf *$o screendump *.lis $(TESTS) .libs"
- print ""
- print "distclean :: clean"
- print " -rm -f Makefile ncurses_cfg.h config.*"
- print ""
- print "realclean :: distclean"
- print ""
- print "lint:"
- print " sh -c 'for N in $(TESTS); do echo LINT:$$N; $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(srcdir)/$$N.c $(LINT_LIBS); done'"
-
- if (ECHO_LINK != "") {
- ECHO_LINK="@ echo linking $@ ... ;"
- }
- for (n = 0; n < count; ++n) {
- print "";
- printf "$(destdir)%s$x:%s %s\n", progs[n], files[n], using[n];
- printf "\t%s$(LINK) -o $@%s %s\n", ECHO_LINK, files[n], flags[n];
- }
-
- }
diff --git a/test/modules b/test/modules
deleted file mode 100644
index 2b55566..0000000
--- a/test/modules
+++ /dev/null
@@ -1,89 +0,0 @@
-# $Id: modules,v 1.36 2007/08/18 17:57:08 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey 1997-on
-#
-# Test-Program modules
-
-@ base
-background progs $(srcdir) $(HEADER_DEPS)
-blue progs $(srcdir) $(HEADER_DEPS)
-bs progs $(srcdir) $(HEADER_DEPS)
-cardfile progs $(srcdir) $(HEADER_DEPS) ../include/panel.h ../include/form.h
-chgat progs $(srcdir) $(HEADER_DEPS)
-color_set progs $(srcdir) $(HEADER_DEPS)
-demo_altkeys progs $(srcdir) $(HEADER_DEPS)
-demo_defkey progs $(srcdir) $(HEADER_DEPS)
-demo_forms progs $(srcdir) $(HEADER_DEPS) ../include/form.h $(srcdir)/edit_field.h
-demo_keyok progs $(srcdir) $(HEADER_DEPS)
-demo_menus progs $(srcdir) $(HEADER_DEPS) ../include/menu.h
-demo_panels progs $(srcdir) $(HEADER_DEPS) ../include/panel.h
-demo_termcap progs $(srcdir) $(HEADER_DEPS)
-ditto progs $(srcdir) $(HEADER_DEPS)
-dots progs $(srcdir) $(HEADER_DEPS)
-dots_mvcur progs $(srcdir) $(HEADER_DEPS)
-echochar progs $(srcdir) $(HEADER_DEPS)
-edit_field progs $(srcdir) $(HEADER_DEPS) $(srcdir)/edit_field.h
-filter progs $(srcdir) $(HEADER_DEPS) ../include/form.h
-firework progs $(srcdir) $(HEADER_DEPS)
-firstlast progs $(srcdir) $(HEADER_DEPS)
-foldkeys progs $(srcdir) $(HEADER_DEPS)
-gdc progs $(srcdir) $(HEADER_DEPS)
-hanoi progs $(srcdir) $(HEADER_DEPS)
-hashtest progs $(srcdir) $(HEADER_DEPS)
-inch_wide progs $(srcdir) $(HEADER_DEPS)
-inchs progs $(srcdir) $(HEADER_DEPS)
-ins_wide progs $(srcdir) $(HEADER_DEPS)
-inserts progs $(srcdir) $(HEADER_DEPS)
-key_names progs $(srcdir) $(HEADER_DEPS)
-keynames progs $(srcdir) $(HEADER_DEPS)
-knight progs $(srcdir) $(HEADER_DEPS)
-lrtest progs $(srcdir) $(HEADER_DEPS)
-movewindow progs $(srcdir) $(HEADER_DEPS)
-ncurses progs $(srcdir) $(HEADER_DEPS) ../include/panel.h ../include/menu.h ../include/form.h
-newdemo progs $(srcdir) $(HEADER_DEPS)
-railroad progs $(srcdir) $(HEADER_DEPS)
-rain progs $(srcdir) $(HEADER_DEPS)
-redraw progs $(srcdir) $(HEADER_DEPS)
-savescreen progs $(srcdir) $(HEADER_DEPS)
-tclock progs $(srcdir) $(HEADER_DEPS)
-test_arrays progs $(srcdir) $(HEADER_DEPS)
-test_get_wstr progs $(srcdir) $(HEADER_DEPS)
-test_getstr progs $(srcdir) $(HEADER_DEPS)
-test_instr progs $(srcdir) $(HEADER_DEPS)
-test_inwstr progs $(srcdir) $(HEADER_DEPS)
-test_opaque progs $(srcdir) $(HEADER_DEPS)
-testaddch progs $(srcdir) $(HEADER_DEPS)
-testcurs progs $(srcdir) $(HEADER_DEPS)
-testscanw progs $(srcdir) $(HEADER_DEPS)
-view progs $(srcdir) $(HEADER_DEPS)
-worm progs $(srcdir) $(HEADER_DEPS)
-xmas progs $(srcdir) $(HEADER_DEPS)
-
-# vile:makemode
diff --git a/test/movewindow b/test/movewindow
deleted file mode 100755
index 526aefe..0000000
--- a/test/movewindow
+++ /dev/null
Binary files differ
diff --git a/test/movewindow.c b/test/movewindow.c
deleted file mode 100644
index d826e58..0000000
--- a/test/movewindow.c
+++ /dev/null
@@ -1,639 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2006-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: movewindow.c,v 1.22 2008/04/12 22:01:41 tom Exp $
- *
- * Demonstrate move functions for windows and derived windows from the curses
- * library.
- *
- * Thomas Dickey - 2006/2/11
- */
-/*
-derwin
-mvderwin
-subwin
-mvwin
- */
-
-#include <test.priv.h>
-#include <stdarg.h>
-
-#ifdef HAVE_XCURSES
-#undef derwin
-#endif
-
-#ifdef NCURSES_VERSION
-#define CONST_FMT const
-#else
-#define CONST_FMT /* nothing */
-#endif
-
-#undef LINE_MAX
-
-#define LINE_MIN 2
-#define LINE_MAX (LINES - 2)
-#define COL_MIN 2
-#define COL_MAX (COLS - 2)
-
-typedef struct {
- int y, x;
-} PAIR;
-
-typedef struct {
- WINDOW *parent; /* need this since WINDOW->_parent is not portable */
- WINDOW *child; /* the actual value */
-} FRAME;
-
-static void head_line(CONST_FMT char *fmt,...) GCC_PRINTFLIKE(1, 2);
-static void tail_line(CONST_FMT char *fmt,...) GCC_PRINTFLIKE(1, 2);
-
-static unsigned num_windows;
-static FRAME *all_windows;
-
-static void
-message(int lineno, CONST_FMT char *fmt, va_list argp)
-{
- int y, x;
-
- getyx(stdscr, y, x);
- move(lineno, 0);
- clrtoeol();
-
-#ifdef HAVE_XCURSES
- {
- char buffer[1024];
- vsprintf(buffer, fmt, argp);
- addstr(buffer);
- }
-#else
- vwprintw(stdscr, fmt, argp);
-#endif
-
- move(y, x);
- refresh();
-}
-
-static void
-head_line(CONST_FMT char *fmt,...)
-{
- va_list argp;
-
- va_start(argp, fmt);
- message(0, fmt, argp);
- va_end(argp);
-}
-
-static void
-tail_line(CONST_FMT char *fmt,...)
-{
- va_list argp;
-
- va_start(argp, fmt);
- message(LINES - 1, fmt, argp);
- va_end(argp);
-}
-
-/*
- * Arrow keys move cursor, return location at current on non-arrow key.
- */
-static PAIR *
-selectcell(WINDOW *parent, int uli, int ulj, int lri, int lrj)
-{
- static PAIR res; /* result cell */
- int si = lri - uli + 1; /* depth of the select area */
- int sj = lrj - ulj + 1; /* width of the select area */
- int i = 0, j = 0; /* offsets into the select area */
-
- res.y = uli;
- res.x = ulj;
- for (;;) {
- tail_line("Upper left [%2d,%2d] Lower right [%2d,%2d] -> %d,%d",
- uli, ulj,
- lri, lrj,
- uli + i, ulj + j);
- wmove(parent, uli + i, ulj + j);
-
- switch (wgetch(parent)) {
- case KEY_UP:
- i += si - 1;
- break;
- case KEY_DOWN:
- i++;
- break;
- case KEY_LEFT:
- j += sj - 1;
- break;
- case KEY_RIGHT:
- j++;
- break;
- case QUIT:
- case ESCAPE:
- return ((PAIR *) 0);
-#ifdef NCURSES_MOUSE_VERSION
- case KEY_MOUSE:
- {
- MEVENT event;
-
- getmouse(&event);
- if (event.y > uli && event.x > ulj) {
- i = event.y - uli;
- j = event.x - ulj;
- } else {
- beep();
- break;
- }
- }
- /* FALLTHRU */
-#endif
- default:
- res.y = uli + i;
- res.x = ulj + j;
- return (&res);
- }
- i %= si;
- j %= sj;
- }
-}
-
-/*
- * Ask user for a window definition.
- */
-static bool
-getwindow(WINDOW *parent, PAIR * ul, PAIR * lr)
-{
- int min_col = (parent == stdscr) ? COL_MIN : 0;
- int max_col = (parent == stdscr) ? COL_MAX : getmaxx(parent);
- int min_line = (parent == stdscr) ? LINE_MIN : 0;
- int max_line = (parent == stdscr) ? LINE_MAX : getmaxy(parent);
- PAIR *tmp;
- bool result = FALSE;
-
- head_line("Use arrows to move cursor, anything else to mark corner 1");
- if ((tmp = selectcell(parent, min_line, min_col, max_line, max_col)) != 0) {
- *ul = *tmp;
- mvwaddch(parent, ul->y, ul->x, '*');
-
- head_line("Use arrows to move cursor, anything else to mark corner 2");
- if ((tmp = selectcell(parent, ul->y, ul->x, max_line, max_col)) != 0) {
- *lr = *tmp;
- mvwaddch(parent, lr->y, lr->x, '*');
- wmove(parent, lr->y, lr->x);
- wsyncdown(parent);
- wrefresh(parent);
- result = (lr->y != ul->y && lr->x != ul->x);
- }
- }
- head_line("done");
- return result;
-}
-
-/*
- * Draw a box inside the given window.
- */
-static void
-box_inside(WINDOW *win)
-{
- int y0, x0;
- int y1, x1;
-
- getyx(win, y0, x0);
- getmaxyx(win, y1, x1);
-
- mvwhline(win, 0, 0, ACS_HLINE, x1);
- mvwhline(win, y1 - 1, 0, ACS_HLINE, x1);
-
- mvwvline(win, 0, 0, ACS_VLINE, y1);
- mvwvline(win, 0, x1 - 1, ACS_VLINE, y1);
-
- mvwaddch(win, 0, 0, ACS_ULCORNER);
- mvwaddch(win, y1 - 1, 0, ACS_LLCORNER);
- mvwaddch(win, 0, x1 - 1, ACS_URCORNER);
- mvwaddch(win, y1 - 1, x1 - 1, ACS_LRCORNER);
-
- wsyncdown(win);
- wmove(win, y0, x0);
- wrefresh(win);
-}
-
-/*
- * Add a window to our list.
- */
-static void
-add_window(WINDOW *parent, WINDOW *child)
-{
- static unsigned have = 0;
- unsigned need = ((num_windows + 1) | 31) + 1;
-
- keypad(child, TRUE);
- if (need > have) {
- all_windows = typeRealloc(FRAME, need, all_windows);
- }
- all_windows[num_windows].parent = parent;
- all_windows[num_windows].child = child;
- num_windows++;
-}
-
-static int
-window2num(WINDOW *win)
-{
- int n;
- int result = -1;
- for (n = 0; n < (int) num_windows; ++n) {
- if (win == all_windows[n].child) {
- result = n;
- break;
- }
- }
- return result;
-}
-
-static WINDOW *
-parent_of(WINDOW *win)
-{
- WINDOW *result = 0;
- int n = window2num(win);
- if (n >= 0)
- result = all_windows[n].parent;
- return result;
-}
-
-static void
-repaint_one(WINDOW *win)
-{
- touchwin(win);
- wnoutrefresh(win);
-}
-
-static void
-refresh_all(WINDOW *win)
-{
- unsigned n;
-
- for (n = 0; n < num_windows; ++n) {
- if (all_windows[n].child != win) {
- repaint_one(all_windows[n].child);
- }
- }
-
- repaint_one(win);
- doupdate();
-}
-
-static WINDOW *
-next_window(WINDOW *win)
-{
- WINDOW *result = win;
- int n = window2num(win);
-
- if (n++ >= 0) {
- result = all_windows[n % num_windows].child;
- wmove(result, 0, 0);
- wrefresh(result);
- }
- return result;
-}
-
-static WINDOW *
-prev_window(WINDOW *win)
-{
- WINDOW *result = win;
- int n = window2num(win);
-
- if (n-- >= 0) {
- if (n < 0)
- n = num_windows - 1;
- result = all_windows[n % num_windows].child;
- wmove(result, 0, 0);
- wrefresh(result);
- }
- return result;
-}
-
-static void
-recur_move_window(WINDOW *parent, int dy, int dx)
-{
- unsigned n;
-
- for (n = 0; n < num_windows; ++n) {
- if (all_windows[n].parent == parent) {
- int y0, x0;
-
- getbegyx(all_windows[n].child, y0, x0);
- mvwin(all_windows[n].child, y0 + dy, x0 + dx);
- recur_move_window(all_windows[n].child, dy, dx);
- }
- }
-}
-
-/*
- * test mvwin().
- */
-static bool
-move_window(WINDOW *win, bool recur)
-{
- WINDOW *parent = parent_of(win);
- bool result = FALSE;
-
- if (parent != 0) {
- bool top = (parent == stdscr);
- int min_col = top ? COL_MIN : 0;
- int max_col = top ? COL_MAX : getmaxx(parent);
- int min_line = top ? LINE_MIN : 0;
- int max_line = top ? LINE_MAX : getmaxy(parent);
- PAIR *tmp;
-
- head_line("Select new position for %swindow", top ? "" : "sub");
-
- if ((tmp = selectcell(parent,
- min_line, min_col,
- max_line, max_col)) != 0) {
- int y0, x0;
- getbegyx(parent, y0, x0);
- /*
- * Note: Moving a subwindow has the effect of moving a viewport
- * around the screen. The parent window retains the contents of
- * the subwindow in the original location, but the viewport will
- * show the contents (again) at the new location. So it will look
- * odd when testing.
- */
- if (mvwin(win, y0 + tmp->y, x0 + tmp->x) != ERR) {
- if (recur) {
- recur_move_window(win, tmp->y, tmp->x);
- }
- refresh_all(win);
- doupdate();
- result = TRUE;
- }
- }
- }
- return result;
-}
-
-/*
- * test mvderwin().
- */
-static bool
-move_subwin(WINDOW *win)
-{
- WINDOW *parent = parent_of(win);
- bool result = FALSE;
-
- if (parent != 0) {
- bool top = (parent == stdscr);
- if (!top) {
- int min_col = top ? COL_MIN : 0;
- int max_col = top ? COL_MAX : getmaxx(parent);
- int min_line = top ? LINE_MIN : 0;
- int max_line = top ? LINE_MAX : getmaxy(parent);
- PAIR *tmp;
-
- head_line("Select new position for subwindow");
-
- if ((tmp = selectcell(parent,
- min_line, min_col,
- max_line, max_col)) != 0) {
- int y0, x0;
- getbegyx(parent, y0, x0);
- if (mvderwin(win, y0 + tmp->y, x0 + tmp->x) != ERR) {
- refresh_all(win);
- doupdate();
- result = TRUE;
- }
- }
- }
- }
- return result;
-}
-
-static void
-fill_window(WINDOW *win, chtype ch)
-{
- int y, x;
- int y0, x0;
- int y1, x1;
-
- getyx(win, y0, x0);
- getmaxyx(win, y1, x1);
- for (y = 0; y < y1; ++y) {
- for (x = 0; x < x1; ++x) {
- mvwaddch(win, y, x, ch);
- }
- }
- wsyncdown(win);
- wmove(win, y0, x0);
- wrefresh(win);
-}
-
-#define lines_of(ul,lr) (lr.y - ul.y + 1)
-#define cols_of(ul,lr) (lr.x - ul.x + 1)
-#define pair_of(ul) ul.y, ul.x
-
-static WINDOW *
-create_my_window(WINDOW *current)
-{
- PAIR ul, lr;
- WINDOW *result = 0;
-
- if (getwindow(stdscr, &ul, &lr)) {
- result = newwin(lines_of(ul, lr), cols_of(ul, lr), pair_of(ul));
- if (result != 0) {
- fill_window(result, 'c');
- add_window(stdscr, result);
- }
- }
- if (result == 0)
- result = current;
- return result;
-}
-
-static WINDOW *
-create_my_derwin(WINDOW *parent)
-{
- PAIR ul, lr;
- WINDOW *result = 0;
-
- if (getwindow(parent, &ul, &lr)) {
- result = derwin(parent, lines_of(ul, lr), cols_of(ul, lr), pair_of(ul));
- if (result != 0) {
- fill_window(result, 'd');
- add_window(parent, result);
- }
- }
- if (result == 0)
- result = parent;
- return result;
-}
-
-static WINDOW *
-create_my_subwin(WINDOW *parent)
-{
- PAIR ul, lr;
- WINDOW *result = 0;
-
- if (getwindow(parent, &ul, &lr)) {
- result = subwin(parent,
- lines_of(ul, lr),
- cols_of(ul, lr),
- ul.y + getbegy(parent),
- ul.x + getbegx(parent));
- if (result != 0) {
- fill_window(result, 's');
- add_window(parent, result);
- }
- }
- if (result == 0)
- result = parent;
- return result;
-}
-
-static void
-show_help(WINDOW *current)
-{
- /* *INDENT-OFF* */
- static struct {
- int key;
- CONST_FMT char * msg;
- } help[] = {
- { '?', "Show this screen" },
- { 'b', "Draw a box inside the current window" },
- { 'c', "Create a new window" },
- { 'd', "Create a new derived window" },
- { 'f', "Fill the current window with the next character" },
- { 'm', "Move the current window" },
- { 'M', "Move the current window (and its children)" },
- { 'q', "Quit" },
- { 's', "Create a new subwindow" },
- { 't', "Move the current subwindow (moves content)" },
- { CTRL('L'), "Repaint all windows, doing current one last" },
- { CTRL('N'), "Cursor to next window" },
- { CTRL('P'), "Cursor to previous window" },
- };
- /* *INDENT-ON* */
-
- WINDOW *mywin = newwin(LINES, COLS, 0, 0);
- int row;
-
- for (row = 0; row < LINES - 2 && row < (int) SIZEOF(help); ++row) {
- wmove(mywin, row + 1, 1);
- wprintw(mywin, "%s", keyname(help[row].key));
- wmove(mywin, row + 1, 20);
- wprintw(mywin, "%s", help[row].msg);
- }
- box_inside(mywin);
- wmove(mywin, 1, 1);
- wgetch(mywin);
- delwin(mywin);
- refresh_all(current);
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- WINDOW *current_win;
- int ch;
- bool done = FALSE;
-
- initscr();
- cbreak();
- noecho();
- nonl();
- intrflush(stdscr, FALSE);
-
- add_window(0, current_win = stdscr);
-
-#ifdef NCURSES_MOUSE_VERSION
- (void) mousemask(BUTTON1_CLICKED, (mmask_t *) NULL);
-#endif /* NCURSES_MOUSE_VERSION */
-
- while (!done && (ch = wgetch(current_win)) != ERR) {
- switch (ch) {
- case '?':
- show_help(current_win);
- break;
- case 'b':
- box_inside(current_win);
- break;
- case 'c':
- current_win = create_my_window(current_win);
- break;
- case 'd':
- current_win = create_my_derwin(current_win);
- break;
- case 'f':
- fill_window(current_win, (chtype) wgetch(current_win));
- break;
- case 'm':
- case 'M':
- if (!move_window(current_win, (ch == 'M'))) {
- tail_line("error");
- continue;
- }
- break;
- case 'q':
- done = TRUE;
- break;
- case 's':
- current_win = create_my_subwin(current_win);
- break;
- case 't':
- if (!move_subwin(current_win)) {
- tail_line("error");
- continue;
- }
- break;
- case CTRL('L'):
- refresh_all(current_win);
- break;
- case CTRL('N'):
- current_win = next_window(current_win);
- break;
- case CTRL('P'):
- current_win = prev_window(current_win);
- break;
-#if 0
- /* want to allow cursor to move around the current window too */
- /* want to test the resizing of windows and subwindows too */
- /* want to allow deleting a window also */
-#endif
- default:
- tail_line("unrecognized key (use '?' for help)");
- beep();
- continue;
- }
- tail_line("size [%d,%d] begin [%d,%d] parent [%d,%d]",
- getmaxy(current_win),
- getmaxx(current_win),
- getbegy(current_win),
- getbegx(current_win),
- getpary(current_win),
- getparx(current_win));
- wmove(current_win, 0, 0);
- }
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/ncurses b/test/ncurses
deleted file mode 100755
index 2b9a31f..0000000
--- a/test/ncurses
+++ /dev/null
Binary files differ
diff --git a/test/ncurses.c b/test/ncurses.c
deleted file mode 100644
index 3fd7dfa..0000000
--- a/test/ncurses.c
+++ /dev/null
@@ -1,6571 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/****************************************************************************
-
-NAME
- ncurses.c --- ncurses library exerciser
-
-SYNOPSIS
- ncurses
-
-DESCRIPTION
- An interactive test module for the ncurses library.
-
-AUTHOR
- Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
- Thomas E. Dickey (beginning revision 1.27 in 1996).
-
-$Id: ncurses.c,v 1.329 2008/09/27 14:34:58 tom Exp $
-
-***************************************************************************/
-
-#include <test.priv.h>
-
-#ifdef __hpux
-#undef mvwdelch /* HPUX 11.23 macro will not compile */
-#endif
-
-#if HAVE_GETTIMEOFDAY
-#if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT
-#include <sys/time.h>
-#endif
-#if HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#endif
-
-#if USE_LIBPANEL
-#include <panel.h>
-#endif
-
-#if USE_LIBMENU
-#include <menu.h>
-#endif
-
-#if USE_LIBFORM
-#include <form.h>
-#endif
-
-#ifdef NCURSES_VERSION
-
-#define NCURSES_CONST_PARAM const void
-
-#ifdef TRACE
-static unsigned save_trace = TRACE_ORDINARY | TRACE_ICALLS | TRACE_CALLS;
-extern unsigned _nc_tracing;
-#endif
-
-#else
-
-#define NCURSES_CONST_PARAM char
-
-#define mmask_t chtype /* not specified in XSI */
-
-#ifndef ACS_S3
-#ifdef CURSES_ACS_ARRAY
-#define ACS_S3 (CURSES_ACS_ARRAY['p']) /* scan line 3 */
-#define ACS_S7 (CURSES_ACS_ARRAY['r']) /* scan line 7 */
-#define ACS_LEQUAL (CURSES_ACS_ARRAY['y']) /* less/equal */
-#define ACS_GEQUAL (CURSES_ACS_ARRAY['z']) /* greater/equal */
-#define ACS_PI (CURSES_ACS_ARRAY['{']) /* Pi */
-#define ACS_NEQUAL (CURSES_ACS_ARRAY['|']) /* not equal */
-#define ACS_STERLING (CURSES_ACS_ARRAY['}']) /* UK pound sign */
-#else
-#define ACS_S3 (A_ALTCHARSET + 'p') /* scan line 3 */
-#define ACS_S7 (A_ALTCHARSET + 'r') /* scan line 7 */
-#define ACS_LEQUAL (A_ALTCHARSET + 'y') /* less/equal */
-#define ACS_GEQUAL (A_ALTCHARSET + 'z') /* greater/equal */
-#define ACS_PI (A_ALTCHARSET + '{') /* Pi */
-#define ACS_NEQUAL (A_ALTCHARSET + '|') /* not equal */
-#define ACS_STERLING (A_ALTCHARSET + '}') /* UK pound sign */
-#endif
-#endif /* ACS_S3 */
-
-#ifdef CURSES_WACS_ARRAY
-#define WACS_S3 (&(CURSES_WACS_ARRAY['p'])) /* scan line 3 */
-#define WACS_S7 (&(CURSES_WACS_ARRAY['r'])) /* scan line 7 */
-#define WACS_LEQUAL (&(CURSES_WACS_ARRAY['y'])) /* less/equal */
-#define WACS_GEQUAL (&(CURSES_WACS_ARRAY['z'])) /* greater/equal */
-#define WACS_PI (&(CURSES_WACS_ARRAY['{'])) /* Pi */
-#define WACS_NEQUAL (&(CURSES_WACS_ARRAY['|'])) /* not equal */
-#define WACS_STERLING (&(CURSES_WACS_ARRAY['}'])) /* UK pound sign */
-#endif
-
-#endif
-
-#if HAVE_WCSRTOMBS
-#define count_wchars(src, len, state) wcsrtombs(0, &src, len, state)
-#define trans_wchars(dst, src, len, state) wcsrtombs(dst, &src, len, state)
-#define reset_wchars(state) memset(&state, 0, sizeof(state))
-#elif HAVE_WCSTOMBS && HAVE_MBTOWC && HAVE_MBLEN
-#define count_wchars(src, len, state) wcstombs(0, src, len)
-#define trans_wchars(dst, src, len, state) wcstombs(dst, src, len)
-#define reset_wchars(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0)
-#define state_unused
-#endif
-
-#if HAVE_MBSRTOWCS
-#define count_mbytes(src, len, state) mbsrtowcs(0, &src, len, state)
-#define trans_mbytes(dst, src, len, state) mbsrtowcs(dst, &src, len, state)
-#define reset_mbytes(state) memset(&state, 0, sizeof(state))
-#elif HAVE_MBSTOWCS && HAVE_MBTOWC && HAVE_MBLEN
-#define count_mbytes(src, len, state) mbstowcs(0, src, len)
-#define trans_mbytes(dst, src, len, state) mbstowcs(dst, src, len)
-#define reset_mbytes(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0)
-#define state_unused
-#endif
-
-#define ToggleAcs(temp,real) temp = ((temp == real) ? 0 : real)
-
-#define P(string) printw("%s\n", string)
-
-#define BLANK ' ' /* this is the background character */
-
-#undef max_colors
-static int max_colors; /* the actual number of colors we'll use */
-static int min_colors; /* the minimum color code */
-static bool use_colors; /* true if we use colors */
-
-#undef max_pairs
-static int max_pairs; /* ...and the number of color pairs */
-
-typedef struct {
- short red;
- short green;
- short blue;
-} RGB_DATA;
-
-static RGB_DATA *all_colors;
-
-static void main_menu(bool);
-
-/* The behavior of mvhline, mvvline for negative/zero length is unspecified,
- * though we can rely on negative x/y values to stop the macro.
- */
-static void
-do_h_line(int y, int x, chtype c, int to)
-{
- if ((to) > (x))
- mvhline(y, x, c, (to) - (x));
-}
-
-static void
-do_v_line(int y, int x, chtype c, int to)
-{
- if ((to) > (y))
- mvvline(y, x, c, (to) - (y));
-}
-
-static void
-Repaint(void)
-{
- touchwin(stdscr);
- touchwin(curscr);
- wrefresh(curscr);
-}
-
-static bool
-isQuit(int c)
-{
- return ((c) == QUIT || (c) == ESCAPE);
-}
-#define case_QUIT QUIT: case ESCAPE
-
-/* Common function to allow ^T to toggle trace-mode in the middle of a test
- * so that trace-files can be made smaller.
- */
-static int
-wGetchar(WINDOW *win)
-{
- int c;
-#ifdef TRACE
- while ((c = wgetch(win)) == CTRL('T')) {
- if (_nc_tracing) {
- save_trace = _nc_tracing;
- Trace(("TOGGLE-TRACING OFF"));
- _nc_tracing = 0;
- } else {
- _nc_tracing = save_trace;
- }
- trace(_nc_tracing);
- if (_nc_tracing)
- Trace(("TOGGLE-TRACING ON"));
- }
-#else
- c = wgetch(win);
-#endif
- return c;
-}
-#define Getchar() wGetchar(stdscr)
-
-/* replaces wgetnstr(), since we want to be able to edit values */
-static void
-wGetstring(WINDOW *win, char *buffer, int limit)
-{
- int y0, x0, x, ch;
- bool done = FALSE;
-
- echo();
- getyx(win, y0, x0);
- wattrset(win, A_REVERSE);
-
- x = (int) strlen(buffer);
- while (!done) {
- if (x > (int) strlen(buffer))
- x = (int) strlen(buffer);
- wmove(win, y0, x0);
- wprintw(win, "%-*s", limit, buffer);
- wmove(win, y0, x0 + x);
- switch (ch = wGetchar(win)) {
- case '\n':
- case KEY_ENTER:
- done = TRUE;
- break;
- case CTRL('U'):
- *buffer = '\0';
- break;
- case '\b':
- case KEY_BACKSPACE:
- case KEY_DC:
- if (x > 0) {
- int j;
- for (j = --x; (buffer[j] = buffer[j + 1]) != '\0'; ++j) {
- ;
- }
- } else {
- beep();
- }
- break;
- case KEY_LEFT:
- if (x > 0) {
- --x;
- } else {
- flash();
- }
- break;
- case KEY_RIGHT:
- ++x;
- break;
- default:
- if (!isprint(ch) || ch >= KEY_MIN) {
- beep();
- } else if ((int) strlen(buffer) < limit) {
- int j;
- for (j = (int) strlen(buffer) + 1; j > x; --j) {
- buffer[j] = buffer[j - 1];
- }
- buffer[x++] = (char) ch;
- } else {
- flash();
- }
- }
- }
-
- wattroff(win, A_REVERSE);
- wmove(win, y0, x0);
- noecho();
-}
-
-#if USE_WIDEC_SUPPORT
-static wchar_t
-fullwidth_of(int ch)
-{
- return (ch + 0xff10 - '0');
-}
-
-static void
-make_fullwidth_text(wchar_t *target, const char *source)
-{
- int ch;
- while ((ch = *source++) != 0) {
- *target++ = fullwidth_of(ch);
- }
- *target = 0;
-}
-
-static void
-make_narrow_text(wchar_t *target, const char *source)
-{
- int ch;
- while ((ch = *source++) != 0) {
- *target++ = ch;
- }
- *target = 0;
-}
-
-static void
-make_fullwidth_digit(cchar_t *target, int digit)
-{
- wchar_t source[2];
-
- source[0] = fullwidth_of(digit + '0');
- source[1] = 0;
- setcchar(target, source, A_NORMAL, 0, 0);
-}
-
-static int
-wGet_wchar(WINDOW *win, wint_t *result)
-{
- int c;
-#ifdef TRACE
- while ((c = wget_wch(win, result)) == CTRL('T')) {
- if (_nc_tracing) {
- save_trace = _nc_tracing;
- Trace(("TOGGLE-TRACING OFF"));
- _nc_tracing = 0;
- } else {
- _nc_tracing = save_trace;
- }
- trace(_nc_tracing);
- if (_nc_tracing)
- Trace(("TOGGLE-TRACING ON"));
- }
-#else
- c = wget_wch(win, result);
-#endif
- return c;
-}
-#define Get_wchar(result) wGet_wchar(stdscr, result)
-
-/* replaces wgetn_wstr(), since we want to be able to edit values */
-static void
-wGet_wstring(WINDOW *win, wchar_t *buffer, int limit)
-{
- int y0, x0, x;
- wint_t ch;
- bool done = FALSE;
- bool fkey = FALSE;
-
- echo();
- getyx(win, y0, x0);
- wattrset(win, A_REVERSE);
-
- x = (int) wcslen(buffer);
- while (!done) {
- if (x > (int) wcslen(buffer))
- x = (int) wcslen(buffer);
-
- /* clear the "window' */
- wmove(win, y0, x0);
- wprintw(win, "%*s", limit, " ");
-
- /* write the existing buffer contents */
- wmove(win, y0, x0);
- waddnwstr(win, buffer, limit);
-
- /* positions the cursor past character 'x' */
- wmove(win, y0, x0);
- waddnwstr(win, buffer, x);
-
- switch (wGet_wchar(win, &ch)) {
- case KEY_CODE_YES:
- fkey = TRUE;
- switch (ch) {
- case KEY_ENTER:
- ch = '\n';
- fkey = FALSE;
- break;
- case KEY_BACKSPACE:
- case KEY_DC:
- ch = '\b';
- fkey = FALSE;
- break;
- case KEY_LEFT:
- case KEY_RIGHT:
- break;
- default:
- ch = (wint_t) -1;
- break;
- }
- break;
- case OK:
- fkey = FALSE;
- break;
- default:
- ch = (wint_t) -1;
- fkey = TRUE;
- break;
- }
-
- switch (ch) {
- case '\n':
- done = TRUE;
- break;
- case CTRL('U'):
- *buffer = '\0';
- break;
- case '\b':
- if (x > 0) {
- int j;
- for (j = --x; (buffer[j] = buffer[j + 1]) != '\0'; ++j) {
- ;
- }
- } else {
- beep();
- }
- break;
- case KEY_LEFT:
- if (x > 0) {
- --x;
- } else {
- beep();
- }
- break;
- case KEY_RIGHT:
- ++x;
- break;
- default:
- if (fkey) {
- beep();
- } else if ((int) wcslen(buffer) < limit) {
- int j;
- for (j = (int) wcslen(buffer) + 1; j > x; --j) {
- buffer[j] = buffer[j - 1];
- }
- buffer[x++] = (wchar_t) ch;
- } else {
- beep();
- }
- }
- }
-
- wattroff(win, A_REVERSE);
- wmove(win, y0, x0);
- noecho();
-}
-
-#endif
-
-static void
-Pause(void)
-{
- move(LINES - 1, 0);
- addstr("Press any key to continue... ");
- (void) Getchar();
-}
-
-static void
-Cannot(const char *what)
-{
- printw("\nThis %s terminal %s\n\n", getenv("TERM"), what);
- Pause();
-}
-
-static void
-ShellOut(bool message)
-{
- if (message)
- addstr("Shelling out...");
- def_prog_mode();
- endwin();
- system("sh");
- if (message)
- addstr("returned from shellout.\n");
- refresh();
-}
-
-#ifdef NCURSES_MOUSE_VERSION
-/*
- * This function is the same as _tracemouse(), but we cannot count on that
- * being available in the non-debug library.
- */
-static const char *
-mouse_decode(MEVENT const *ep)
-{
- static char buf[80 + (5 * 10) + (32 * 15)];
-
- (void) sprintf(buf, "id %2d at (%2d, %2d, %2d) state %4lx = {",
- ep->id, ep->x, ep->y, ep->z, (unsigned long) ep->bstate);
-
-#define SHOW(m, s) if ((ep->bstate & m)==m) {strcat(buf,s); strcat(buf, ", ");}
-
- SHOW(BUTTON1_RELEASED, "release-1");
- SHOW(BUTTON1_PRESSED, "press-1");
- SHOW(BUTTON1_CLICKED, "click-1");
- SHOW(BUTTON1_DOUBLE_CLICKED, "doubleclick-1");
- SHOW(BUTTON1_TRIPLE_CLICKED, "tripleclick-1");
-#if NCURSES_MOUSE_VERSION == 1
- SHOW(BUTTON1_RESERVED_EVENT, "reserved-1");
-#endif
-
- SHOW(BUTTON2_RELEASED, "release-2");
- SHOW(BUTTON2_PRESSED, "press-2");
- SHOW(BUTTON2_CLICKED, "click-2");
- SHOW(BUTTON2_DOUBLE_CLICKED, "doubleclick-2");
- SHOW(BUTTON2_TRIPLE_CLICKED, "tripleclick-2");
-#if NCURSES_MOUSE_VERSION == 1
- SHOW(BUTTON2_RESERVED_EVENT, "reserved-2");
-#endif
-
- SHOW(BUTTON3_RELEASED, "release-3");
- SHOW(BUTTON3_PRESSED, "press-3");
- SHOW(BUTTON3_CLICKED, "click-3");
- SHOW(BUTTON3_DOUBLE_CLICKED, "doubleclick-3");
- SHOW(BUTTON3_TRIPLE_CLICKED, "tripleclick-3");
-#if NCURSES_MOUSE_VERSION == 1
- SHOW(BUTTON3_RESERVED_EVENT, "reserved-3");
-#endif
-
- SHOW(BUTTON4_RELEASED, "release-4");
- SHOW(BUTTON4_PRESSED, "press-4");
- SHOW(BUTTON4_CLICKED, "click-4");
- SHOW(BUTTON4_DOUBLE_CLICKED, "doubleclick-4");
- SHOW(BUTTON4_TRIPLE_CLICKED, "tripleclick-4");
-#if NCURSES_MOUSE_VERSION == 1
- SHOW(BUTTON4_RESERVED_EVENT, "reserved-4");
-#endif
-
-#if NCURSES_MOUSE_VERSION == 2
- SHOW(BUTTON5_RELEASED, "release-5");
- SHOW(BUTTON5_PRESSED, "press-5");
- SHOW(BUTTON5_CLICKED, "click-5");
- SHOW(BUTTON5_DOUBLE_CLICKED, "doubleclick-5");
- SHOW(BUTTON5_TRIPLE_CLICKED, "tripleclick-5");
-#endif
-
- SHOW(BUTTON_CTRL, "ctrl");
- SHOW(BUTTON_SHIFT, "shift");
- SHOW(BUTTON_ALT, "alt");
- SHOW(ALL_MOUSE_EVENTS, "all-events");
- SHOW(REPORT_MOUSE_POSITION, "position");
-
-#undef SHOW
-
- if (buf[strlen(buf) - 1] == ' ')
- buf[strlen(buf) - 2] = '\0';
- (void) strcat(buf, "}");
- return (buf);
-}
-#endif /* NCURSES_MOUSE_VERSION */
-
-/****************************************************************************
- *
- * Character input test
- *
- ****************************************************************************/
-
-static void
-setup_getch(WINDOW *win, bool flags[])
-{
- keypad(win, flags['k']); /* should be redundant, but for testing */
- meta(win, flags['m']); /* force this to a known state */
- if (flags['e'])
- echo();
- else
- noecho();
-}
-
-static void
-wgetch_help(WINDOW *win, bool flags[])
-{
- static const char *help[] =
- {
- "e -- toggle echo mode"
- ,"g -- triggers a getstr test"
- ,"k -- toggle keypad/literal mode"
- ,"m -- toggle meta (7-bit/8-bit) mode"
- ,"^q -- quit"
- ,"s -- shell out\n"
- ,"w -- create a new window"
-#ifdef SIGTSTP
- ,"z -- suspend this process"
-#endif
- };
- int y, x;
- unsigned chk = ((SIZEOF(help) + 1) / 2);
- unsigned n;
-
- getyx(win, y, x);
- move(0, 0);
- printw("Type any key to see its %s value. Also:\n",
- flags['k'] ? "keypad" : "literal");
- for (n = 0; n < SIZEOF(help); ++n) {
- int row = 1 + (int) (n % chk);
- int col = (n >= chk) ? COLS / 2 : 0;
- int flg = ((strstr(help[n], "toggle") != 0)
- && (flags[UChar(*help[n])] != FALSE));
- if (flg)
- standout();
- mvprintw(row, col, "%s", help[n]);
- if (col == 0)
- clrtoeol();
- if (flg)
- standend();
- }
- wrefresh(stdscr);
- wmove(win, y, x);
-}
-
-static void
-wgetch_wrap(WINDOW *win, int first_y)
-{
- int last_y = getmaxy(win) - 1;
- int y = getcury(win) + 1;
-
- if (y >= last_y)
- y = first_y;
- wmove(win, y, 0);
- wclrtoeol(win);
-}
-
-#if defined(NCURSES_VERSION) && defined(KEY_RESIZE) && HAVE_WRESIZE
-typedef struct {
- WINDOW *text;
- WINDOW *frame;
-} WINSTACK;
-
-static WINSTACK *winstack = 0;
-static unsigned len_winstack = 0;
-
-static void
-forget_boxes(void)
-{
- if (winstack != 0) {
- free(winstack);
- }
- winstack = 0;
- len_winstack = 0;
-}
-
-static void
-remember_boxes(unsigned level, WINDOW *txt_win, WINDOW *box_win)
-{
- unsigned need = (level + 1) * 2;
-
- assert(level < COLS);
-
- if (winstack == 0) {
- len_winstack = 20;
- winstack = typeMalloc(WINSTACK, len_winstack);
- } else if (need >= len_winstack) {
- len_winstack = need;
- winstack = typeRealloc(WINSTACK, len_winstack, winstack);
- }
- winstack[level].text = txt_win;
- winstack[level].frame = box_win;
-}
-
-#if USE_SOFTKEYS && (NCURSES_VERSION_PATCH < 20071229) && NCURSES_EXT_FUNCS
-static void
-slk_repaint(void)
-{
- /* this chunk is now done in resize_term() */
- slk_touch();
- slk_clear();
- slk_noutrefresh();
-}
-
-#else
-#define slk_repaint() /* nothing */
-#endif
-
-/*
- * For wgetch_test(), we create pairs of windows - one for a box, one for text.
- * Resize both and paint the box in the parent.
- */
-static void
-resize_boxes(unsigned level, WINDOW *win)
-{
- unsigned n;
- int base = 5;
- int high = LINES - base;
- int wide = COLS;
-
- touchwin(stdscr);
- wnoutrefresh(stdscr);
-
- slk_repaint();
-
- for (n = 0; n < level; ++n) {
- wresize(winstack[n].frame, high, wide);
- wresize(winstack[n].text, high - 2, wide - 2);
- high -= 2;
- wide -= 2;
- werase(winstack[n].text);
- box(winstack[n].frame, 0, 0);
- wnoutrefresh(winstack[n].frame);
- wprintw(winstack[n].text,
- "size %dx%d\n",
- getmaxy(winstack[n].text),
- getmaxx(winstack[n].text));
- wnoutrefresh(winstack[n].text);
- if (winstack[n].text == win)
- break;
- }
- doupdate();
-}
-#else
-#define forget_boxes() /* nothing */
-#define remember_boxes(level,text,frame) /* nothing */
-#endif
-
-static void
-wgetch_test(unsigned level, WINDOW *win, int delay)
-{
- char buf[BUFSIZ];
- int first_y, first_x;
- int c;
- int incount = 0;
- bool flags[256];
- bool blocking = (delay < 0);
-
- memset(flags, FALSE, sizeof(flags));
- flags[UChar('k')] = (win == stdscr);
-
- setup_getch(win, flags);
- wtimeout(win, delay);
- getyx(win, first_y, first_x);
-
- wgetch_help(win, flags);
- wsetscrreg(win, first_y, getmaxy(win) - 1);
- scrollok(win, TRUE);
-
- for (;;) {
- while ((c = wGetchar(win)) == ERR) {
- incount++;
- if (blocking) {
- (void) wprintw(win, "%05d: input error", incount);
- break;
- } else {
- (void) wprintw(win, "%05d: input timed out", incount);
- }
- wgetch_wrap(win, first_y);
- }
- if (c == ERR && blocking) {
- wprintw(win, "ERR");
- wgetch_wrap(win, first_y);
- } else if (isQuit(c)) {
- break;
- } else if (c == 'e') {
- flags[UChar('e')] = !flags[UChar('e')];
- setup_getch(win, flags);
- wgetch_help(win, flags);
- } else if (c == 'g') {
- waddstr(win, "getstr test: ");
- echo();
- wgetnstr(win, buf, sizeof(buf) - 1);
- noecho();
- wprintw(win, "I saw %d characters:\n\t`%s'.", (int) strlen(buf), buf);
- wclrtoeol(win);
- wgetch_wrap(win, first_y);
- } else if (c == 'k') {
- flags[UChar('k')] = !flags[UChar('k')];
- setup_getch(win, flags);
- wgetch_help(win, flags);
- } else if (c == 'm') {
- flags[UChar('m')] = !flags[UChar('m')];
- setup_getch(win, flags);
- wgetch_help(win, flags);
- } else if (c == 's') {
- ShellOut(TRUE);
- } else if (c == 'w') {
- int high = getmaxy(win) - 1 - first_y + 1;
- int wide = getmaxx(win) - first_x;
- int old_y, old_x;
- int new_y = first_y + getbegy(win);
- int new_x = first_x + getbegx(win);
-
- getyx(win, old_y, old_x);
- if (high > 2 && wide > 2) {
- WINDOW *wb = newwin(high, wide, new_y, new_x);
- WINDOW *wi = newwin(high - 2, wide - 2, new_y + 1, new_x + 1);
-
- box(wb, 0, 0);
- wrefresh(wb);
- wmove(wi, 0, 0);
- remember_boxes(level, wi, wb);
- wgetch_test(level + 1, wi, delay);
- delwin(wi);
- delwin(wb);
-
- wgetch_help(win, flags);
- wmove(win, old_y, old_x);
- touchwin(win);
- wrefresh(win);
- doupdate();
- }
-#ifdef SIGTSTP
- } else if (c == 'z') {
- kill(getpid(), SIGTSTP);
-#endif
- } else {
- wprintw(win, "Key pressed: %04o ", c);
-#ifdef NCURSES_MOUSE_VERSION
- if (c == KEY_MOUSE) {
- int y, x;
- MEVENT event;
-
- getmouse(&event);
- wprintw(win, "KEY_MOUSE, %s", mouse_decode(&event));
- getyx(win, y, x);
- move(event.y, event.x);
- addch('*');
- wmove(win, y, x);
- } else
-#endif /* NCURSES_MOUSE_VERSION */
- if (c >= KEY_MIN) {
-#if defined(NCURSES_VERSION) && defined(KEY_RESIZE) && HAVE_WRESIZE
- if (c == KEY_RESIZE) {
- resize_boxes(level, win);
- }
-#endif
- (void) waddstr(win, keyname(c));
- } else if (c > 0x80) {
- unsigned c2 = (unsigned) (c & 0x7f);
- if (isprint(c2))
- (void) wprintw(win, "M-%c", UChar(c2));
- else
- (void) wprintw(win, "M-%s", unctrl(c2));
- waddstr(win, " (high-half character)");
- } else {
- if (isprint(c))
- (void) wprintw(win, "%c (ASCII printable character)", c);
- else
- (void) wprintw(win, "%s (ASCII control character)",
- unctrl(UChar(c)));
- }
- wgetch_wrap(win, first_y);
- }
- }
-
- wtimeout(win, -1);
-}
-
-static int
-begin_getch_test(void)
-{
- char buf[BUFSIZ];
- int delay;
-
- refresh();
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
-#endif
-
- (void) printw("Delay in 10ths of a second (<CR> for blocking input)? ");
- echo();
- getnstr(buf, sizeof(buf) - 1);
- noecho();
- nonl();
-
- if (isdigit(UChar(buf[0]))) {
- delay = atoi(buf) * 100;
- } else {
- delay = -1;
- }
- raw();
- move(5, 0);
- return delay;
-}
-
-static void
-finish_getch_test(void)
-{
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(0, (mmask_t *) 0);
-#endif
- erase();
- noraw();
- nl();
- endwin();
-}
-
-static void
-getch_test(void)
-{
- int delay = begin_getch_test();
-
- slk_restore();
- wgetch_test(0, stdscr, delay);
- forget_boxes();
- finish_getch_test();
-}
-
-#if USE_WIDEC_SUPPORT
-/*
- * For wget_wch_test(), we create pairs of windows - one for a box, one for text.
- * Resize both and paint the box in the parent.
- */
-#if defined(KEY_RESIZE) && HAVE_WRESIZE
-static void
-resize_wide_boxes(unsigned level, WINDOW *win)
-{
- unsigned n;
- int base = 5;
- int high = LINES - base;
- int wide = COLS;
-
- touchwin(stdscr);
- wnoutrefresh(stdscr);
-
- slk_repaint();
-
- for (n = 0; n < level; ++n) {
- wresize(winstack[n].frame, high, wide);
- wresize(winstack[n].text, high - 2, wide - 2);
- high -= 2;
- wide -= 2;
- werase(winstack[n].text);
- box_set(winstack[n].frame, 0, 0);
- wnoutrefresh(winstack[n].frame);
- wprintw(winstack[n].text,
- "size %dx%d\n",
- getmaxy(winstack[n].text),
- getmaxx(winstack[n].text));
- wnoutrefresh(winstack[n].text);
- if (winstack[n].text == win)
- break;
- }
- doupdate();
-}
-#endif /* KEY_RESIZE */
-
-static char *
-wcstos(const wchar_t *src)
-{
- int need;
- char *result = 0;
- const wchar_t *tmp = src;
-#ifndef state_unused
- mbstate_t state;
-#endif
-
- reset_wchars(state);
- if ((need = (int) count_wchars(tmp, 0, &state)) > 0) {
- unsigned have = (unsigned) need;
- if ((result = typeCalloc(char, have + 1)) != 0) {
- tmp = src;
- if (trans_wchars(result, tmp, have, &state) != have) {
- free(result);
- result = 0;
- }
- }
- }
- return result;
-}
-
-static void
-wget_wch_test(unsigned level, WINDOW *win, int delay)
-{
- wchar_t wchar_buf[BUFSIZ];
- wint_t wint_buf[BUFSIZ];
- int first_y, first_x;
- wint_t c;
- int incount = 0;
- bool flags[256];
- bool blocking = (delay < 0);
- int y, x, code;
- char *temp;
-
- memset(flags, FALSE, sizeof(flags));
- flags[UChar('k')] = (win == stdscr);
-
- setup_getch(win, flags);
- wtimeout(win, delay);
- getyx(win, first_y, first_x);
-
- wgetch_help(win, flags);
- wsetscrreg(win, first_y, getmaxy(win) - 1);
- scrollok(win, TRUE);
-
- for (;;) {
- while ((code = wGet_wchar(win, &c)) == ERR) {
- incount++;
- if (blocking) {
- (void) wprintw(win, "%05d: input error", incount);
- break;
- } else {
- (void) wprintw(win, "%05d: input timed out", incount);
- }
- wgetch_wrap(win, first_y);
- }
- if (code == ERR && blocking) {
- wprintw(win, "ERR");
- wgetch_wrap(win, first_y);
- } else if (isQuit((int) c)) {
- break;
- } else if (c == 'e') {
- flags[UChar('e')] = !flags[UChar('e')];
- setup_getch(win, flags);
- wgetch_help(win, flags);
- } else if (c == 'g') {
- waddstr(win, "getstr test: ");
- echo();
- code = wgetn_wstr(win, wint_buf, sizeof(wint_buf) - 1);
- noecho();
- if (code == ERR) {
- wprintw(win, "wgetn_wstr returns an error.");
- } else {
- int n;
- for (n = 0; (wchar_buf[n] = (wchar_t) wint_buf[n]) != 0; ++n) {
- ;
- }
- if ((temp = wcstos(wchar_buf)) != 0) {
- wprintw(win, "I saw %d characters:\n\t`%s'.",
- (int) wcslen(wchar_buf), temp);
- free(temp);
- } else {
- wprintw(win, "I saw %d characters (cannot convert).",
- (int) wcslen(wchar_buf));
- }
- }
- wclrtoeol(win);
- wgetch_wrap(win, first_y);
- } else if (c == 'k') {
- flags[UChar('k')] = !flags[UChar('k')];
- setup_getch(win, flags);
- wgetch_help(win, flags);
- } else if (c == 'm') {
- flags[UChar('m')] = !flags[UChar('m')];
- setup_getch(win, flags);
- wgetch_help(win, flags);
- } else if (c == 's') {
- ShellOut(TRUE);
- } else if (c == 'w') {
- int high = getmaxy(win) - 1 - first_y + 1;
- int wide = getmaxx(win) - first_x;
- int old_y, old_x;
- int new_y = first_y + getbegy(win);
- int new_x = first_x + getbegx(win);
-
- getyx(win, old_y, old_x);
- if (high > 2 && wide > 2) {
- WINDOW *wb = newwin(high, wide, new_y, new_x);
- WINDOW *wi = newwin(high - 2, wide - 2, new_y + 1, new_x + 1);
-
- box_set(wb, 0, 0);
- wrefresh(wb);
- wmove(wi, 0, 0);
- remember_boxes(level, wi, wb);
- wget_wch_test(level + 1, wi, delay);
- delwin(wi);
- delwin(wb);
-
- wgetch_help(win, flags);
- wmove(win, old_y, old_x);
- touchwin(win);
- wrefresh(win);
- }
-#ifdef SIGTSTP
- } else if (c == 'z') {
- kill(getpid(), SIGTSTP);
-#endif
- } else {
- wprintw(win, "Key pressed: %04o ", (int) c);
-#ifdef NCURSES_MOUSE_VERSION
- if (c == KEY_MOUSE) {
- MEVENT event;
-
- getmouse(&event);
- wprintw(win, "KEY_MOUSE, %s", mouse_decode(&event));
- getyx(win, y, x);
- move(event.y, event.x);
- addch('*');
- wmove(win, y, x);
- } else
-#endif /* NCURSES_MOUSE_VERSION */
- if (code == KEY_CODE_YES) {
-#if defined(KEY_RESIZE) && HAVE_WRESIZE
- if (c == KEY_RESIZE) {
- resize_wide_boxes(level, win);
- }
-#endif
- (void) waddstr(win, key_name((wchar_t) c));
- } else {
- if (c < 256 && iscntrl(c)) {
- (void) wprintw(win, "%s (control character)", unctrl(c));
- } else {
- wchar_t c2 = (wchar_t) c;
- waddnwstr(win, &c2, 1);
- (void) wprintw(win, " = %#x (printable character)", (unsigned) c);
- }
- }
- wgetch_wrap(win, first_y);
- }
- }
-
- wtimeout(win, -1);
-}
-
-static void
-get_wch_test(void)
-{
- int delay = begin_getch_test();
-
- slk_restore();
- wget_wch_test(0, stdscr, delay);
- forget_boxes();
- finish_getch_test();
-}
-#endif
-
-/****************************************************************************
- *
- * Character attributes test
- *
- ****************************************************************************/
-
-#if HAVE_SETUPTERM || HAVE_TGETENT
-#define get_ncv() TIGETNUM("ncv","NC")
-#define get_xmc() TIGETNUM("xmc","sg")
-#else
-#define get_ncv() -1
-#define get_xmc() -1
-#endif
-
-#if !HAVE_TERMATTRS
-static chtype
-my_termattrs(void)
-{
- static int first = TRUE;
- static chtype result = 0;
-
- if (first) {
-#if !HAVE_TIGETSTR
- char buffer[4096];
- char parsed[4096];
- char *area_pointer = parsed;
-
- tgetent(buffer, getenv("TERM"));
-#endif
-
- if (TIGETSTR("smso", "so"))
- result |= A_STANDOUT;
- if (TIGETSTR("smul", "us"))
- result |= A_UNDERLINE;
- if (TIGETSTR("rev", "mr"))
- result |= A_REVERSE;
- if (TIGETSTR("blink", "mb"))
- result |= A_BLINK;
- if (TIGETSTR("dim", "mh"))
- result |= A_DIM;
- if (TIGETSTR("bold", "md"))
- result |= A_BOLD;
- if (TIGETSTR("smacs", "ac"))
- result |= A_ALTCHARSET;
-
- first = FALSE;
- }
- return result;
-}
-#define termattrs() my_termattrs()
-#endif
-
-#define MAX_ATTRSTRING 31
-#define LEN_ATTRSTRING 26
-
-static char attr_test_string[MAX_ATTRSTRING + 1];
-
-static void
-attr_legend(WINDOW *helpwin)
-{
- int row = 1;
- int col = 1;
-
- mvwprintw(helpwin, row++, col,
- "ESC to exit.");
- mvwprintw(helpwin, row++, col,
- "^L repaints.");
- ++row;
- mvwprintw(helpwin, row++, col,
- "Modify the test strings:");
- mvwprintw(helpwin, row++, col,
- " A digit sets gaps on each side of displayed attributes");
- mvwprintw(helpwin, row++, col,
- " </> shifts the text left/right. ");
- ++row;
- mvwprintw(helpwin, row++, col,
- "Toggles:");
- if (use_colors) {
- mvwprintw(helpwin, row++, col,
- " f/F/b/F toggle foreground/background background color");
- mvwprintw(helpwin, row++, col,
- " t/T toggle text/background color attribute");
- }
- mvwprintw(helpwin, row++, col,
- " a/A toggle ACS (alternate character set) mapping");
- mvwprintw(helpwin, row++, col,
- " v/V toggle video attribute to combine with each line");
-}
-
-static void
-show_color_attr(int fg, int bg, int tx)
-{
- if (use_colors) {
- printw(" Colors (fg %d, bg %d", fg, bg);
- if (tx >= 0)
- printw(", text %d", tx);
- printw("),");
- }
-}
-
-static bool
-cycle_color_attr(int ch, short *fg, short *bg, short *tx)
-{
- bool error = FALSE;
-
- if (use_colors) {
- switch (ch) {
- case 'f':
- *fg = (short) (*fg + 1);
- break;
- case 'F':
- *fg = (short) (*fg - 1);
- break;
- case 'b':
- *bg = (short) (*bg + 1);
- break;
- case 'B':
- *bg = (short) (*bg - 1);
- break;
- case 't':
- *tx = (short) (*tx + 1);
- break;
- case 'T':
- *tx = (short) (*tx - 1);
- break;
- default:
- beep();
- error = TRUE;
- break;
- }
- if (*fg >= COLORS)
- *fg = (short) min_colors;
- if (*fg < min_colors)
- *fg = (short) (COLORS - 1);
- if (*bg >= COLORS)
- *bg = (short) min_colors;
- if (*bg < min_colors)
- *bg = (short) (COLORS - 1);
- if (*tx >= COLORS)
- *tx = -1;
- if (*tx < -1)
- *tx = (short) (COLORS - 1);
- } else {
- beep();
- error = TRUE;
- }
- return error;
-}
-
-static void
-adjust_attr_string(int adjust)
-{
- int first = ((int) UChar(attr_test_string[0])) + adjust;
- int last = first + LEN_ATTRSTRING;
-
- if (first >= ' ' && last <= '~') { /* 32..126 */
- int j, k;
- for (j = 0, k = first; j < MAX_ATTRSTRING && k <= last; ++j, ++k) {
- attr_test_string[j] = (char) k;
- if (((k + 1 - first) % 5) == 0) {
- if (++j >= MAX_ATTRSTRING)
- break;
- attr_test_string[j] = ' ';
- }
- }
- while (j < MAX_ATTRSTRING)
- attr_test_string[j++] = ' ';
- attr_test_string[j] = '\0';
- } else {
- beep();
- }
-}
-
-static void
-init_attr_string(void)
-{
- attr_test_string[0] = 'a';
- adjust_attr_string(0);
-}
-
-static int
-show_attr(int row, int skip, bool arrow, chtype attr, const char *name)
-{
- int ncv = get_ncv();
- chtype test = attr & (chtype) (~A_ALTCHARSET);
-
- if (arrow)
- mvprintw(row, 5, "-->");
- mvprintw(row, 8, "%s mode:", name);
- mvprintw(row, 24, "|");
- if (skip)
- printw("%*s", skip, " ");
- /*
- * Just for testing, write text using the alternate character set one
- * character at a time (to pass its rendition directly), and use the
- * string operation for the other attributes.
- */
- if (attr & A_ALTCHARSET) {
- const char *s;
- chtype ch;
-
- for (s = attr_test_string; *s != '\0'; ++s) {
- ch = UChar(*s);
- addch(ch | attr);
- }
- } else {
- attrset(attr);
- addstr(attr_test_string);
- attroff(attr);
- }
- if (skip)
- printw("%*s", skip, " ");
- printw("|");
- if (test != A_NORMAL) {
- if (!(termattrs() & test)) {
- printw(" (N/A)");
- } else {
- if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) {
- static const chtype table[] =
- {
- A_STANDOUT,
- A_UNDERLINE,
- A_REVERSE,
- A_BLINK,
- A_DIM,
- A_BOLD,
-#ifdef A_INVIS
- A_INVIS,
-#endif
- A_PROTECT,
- A_ALTCHARSET
- };
- unsigned n;
- bool found = FALSE;
- for (n = 0; n < SIZEOF(table); n++) {
- if ((table[n] & attr) != 0
- && ((1 << n) & ncv) != 0) {
- found = TRUE;
- break;
- }
- }
- if (found)
- printw(" (NCV)");
- }
- if ((termattrs() & test) != test)
- printw(" (Part)");
- }
- }
- return row + 2;
-}
-/* *INDENT-OFF* */
-static const struct {
- chtype attr;
- NCURSES_CONST char * name;
-} attrs_to_test[] = {
- { A_STANDOUT, "STANDOUT" },
- { A_REVERSE, "REVERSE" },
- { A_BOLD, "BOLD" },
- { A_UNDERLINE, "UNDERLINE" },
- { A_DIM, "DIM" },
- { A_BLINK, "BLINK" },
- { A_PROTECT, "PROTECT" },
-#ifdef A_INVIS
- { A_INVIS, "INVISIBLE" },
-#endif
- { A_NORMAL, "NORMAL" },
-};
-/* *INDENT-ON* */
-
-static bool
-attr_getc(int *skip, short *fg, short *bg, short *tx, int *ac, unsigned *kc)
-{
- bool result = TRUE;
- bool error = FALSE;
- WINDOW *helpwin;
-
- do {
- int ch = Getchar();
-
- error = FALSE;
- if (ch < 256 && isdigit(ch)) {
- *skip = (ch - '0');
- } else {
- switch (ch) {
- case CTRL('L'):
- Repaint();
- break;
- case '?':
- if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
- box(helpwin, 0, 0);
- attr_legend(helpwin);
- wGetchar(helpwin);
- delwin(helpwin);
- }
- break;
- case 'a':
- *ac = 0;
- break;
- case 'A':
- *ac = A_ALTCHARSET;
- break;
- case 'v':
- if (*kc == 0)
- *kc = SIZEOF(attrs_to_test) - 1;
- else
- *kc -= 1;
- break;
- case 'V':
- *kc += 1;
- if (*kc >= SIZEOF(attrs_to_test))
- *kc = 0;
- break;
- case '<':
- adjust_attr_string(-1);
- break;
- case '>':
- adjust_attr_string(1);
- break;
- case case_QUIT:
- result = FALSE;
- break;
- default:
- error = cycle_color_attr(ch, fg, bg, tx);
- break;
- }
- }
- } while (error);
- return result;
-}
-
-static void
-attr_test(void)
-/* test text attributes */
-{
- int n;
- int skip = get_xmc();
- short fg = COLOR_BLACK; /* color pair 0 is special */
- short bg = COLOR_BLACK;
- short tx = -1;
- int ac = 0;
- unsigned j, k;
-
- if (skip < 0)
- skip = 0;
-
- n = skip; /* make it easy */
- k = SIZEOF(attrs_to_test) - 1;
- init_attr_string();
-
- do {
- int row = 2;
- chtype normal = A_NORMAL | BLANK;
- chtype extras = (chtype) ac;
-
- if (use_colors) {
- short pair = (short) (fg != COLOR_BLACK || bg != COLOR_BLACK);
- if (pair != 0) {
- pair = 1;
- if (init_pair(pair, fg, bg) == ERR) {
- beep();
- } else {
- normal |= COLOR_PAIR(pair);
- }
- }
- if (tx >= 0) {
- pair = 2;
- if (init_pair(pair, tx, bg) == ERR) {
- beep();
- } else {
- extras |= COLOR_PAIR(pair);
- }
- }
- }
- bkgd(normal);
- bkgdset(normal);
- erase();
-
- box(stdscr, 0, 0);
- mvaddstr(0, 20, "Character attribute test display");
-
- for (j = 0; j < SIZEOF(attrs_to_test); ++j) {
- bool arrow = (j == k);
- row = show_attr(row, n, arrow,
- extras |
- attrs_to_test[j].attr |
- attrs_to_test[k].attr,
- attrs_to_test[j].name);
- }
-
- mvprintw(row, 8,
- "This terminal does %shave the magic-cookie glitch",
- get_xmc() > -1 ? "" : "not ");
- mvprintw(row + 1, 8, "Enter '?' for help.");
- show_color_attr(fg, bg, tx);
- printw(" ACS (%d)", ac != 0);
-
- refresh();
- } while (attr_getc(&n, &fg, &bg, &tx, &ac, &k));
-
- bkgdset(A_NORMAL | BLANK);
- erase();
- endwin();
-}
-
-#if USE_WIDEC_SUPPORT
-static wchar_t wide_attr_test_string[MAX_ATTRSTRING + 1];
-
-static void
-wide_adjust_attr_string(int adjust)
-{
- int first = ((int) UChar(wide_attr_test_string[0])) + adjust;
- int last = first + LEN_ATTRSTRING;
-
- if (first >= ' ' && last <= '~') { /* 32..126 */
- int j, k;
- for (j = 0, k = first; j < MAX_ATTRSTRING && k <= last; ++j, ++k) {
- wide_attr_test_string[j] = k;
- if (((k + 1 - first) % 5) == 0) {
- if (++j >= MAX_ATTRSTRING)
- break;
- wide_attr_test_string[j] = ' ';
- }
- }
- while (j < MAX_ATTRSTRING)
- wide_attr_test_string[j++] = ' ';
- wide_attr_test_string[j] = '\0';
- } else {
- beep();
- }
-}
-
-static void
-wide_init_attr_string(void)
-{
- wide_attr_test_string[0] = 'a';
- wide_adjust_attr_string(0);
-}
-
-static void
-set_wide_background(short pair)
-{
- cchar_t normal;
- wchar_t blank[2];
-
- blank[0] = ' ';
- blank[1] = 0;
- setcchar(&normal, blank, A_NORMAL, pair, 0);
- bkgrnd(&normal);
- bkgrndset(&normal);
-}
-
-static attr_t
-get_wide_background(void)
-{
- attr_t result = A_NORMAL;
- attr_t attr;
- cchar_t ch;
- short pair;
- wchar_t wch[10];
-
- if (getbkgrnd(&ch) != ERR) {
- if (getcchar(&ch, wch, &attr, &pair, 0) != ERR) {
- result = attr;
- }
- }
- return result;
-}
-
-static int
-wide_show_attr(int row, int skip, bool arrow, chtype attr, short pair, const char *name)
-{
- int ncv = get_ncv();
- chtype test = attr & ~WA_ALTCHARSET;
-
- if (arrow)
- mvprintw(row, 5, "-->");
- mvprintw(row, 8, "%s mode:", name);
- mvprintw(row, 24, "|");
- if (skip)
- printw("%*s", skip, " ");
-
- /*
- * Just for testing, write text using the alternate character set one
- * character at a time (to pass its rendition directly), and use the
- * string operation for the other attributes.
- */
- if (attr & WA_ALTCHARSET) {
- const wchar_t *s;
- cchar_t ch;
-
- for (s = wide_attr_test_string; *s != L'\0'; ++s) {
- wchar_t fill[2];
- fill[0] = *s;
- fill[1] = L'\0';
- setcchar(&ch, fill, attr, pair, 0);
- add_wch(&ch);
- }
- } else {
- attr_t old_attr;
- short old_pair;
-
- attr_get(&old_attr, &old_pair, 0);
- attr_set(attr, pair, 0);
- addwstr(wide_attr_test_string);
- attr_set(old_attr, old_pair, 0);
- }
- if (skip)
- printw("%*s", skip, " ");
- printw("|");
- if (test != A_NORMAL) {
- if (!(term_attrs() & test)) {
- printw(" (N/A)");
- } else {
- if (ncv > 0 && (get_wide_background() & A_COLOR)) {
- static const attr_t table[] =
- {
- WA_STANDOUT,
- WA_UNDERLINE,
- WA_REVERSE,
- WA_BLINK,
- WA_DIM,
- WA_BOLD,
- WA_INVIS,
- WA_PROTECT,
- WA_ALTCHARSET
- };
- unsigned n;
- bool found = FALSE;
- for (n = 0; n < SIZEOF(table); n++) {
- if ((table[n] & attr) != 0
- && ((1 << n) & ncv) != 0) {
- found = TRUE;
- break;
- }
- }
- if (found)
- printw(" (NCV)");
- }
- if ((term_attrs() & test) != test)
- printw(" (Part)");
- }
- }
- return row + 2;
-}
-
-static bool
-wide_attr_getc(int *skip, short *fg, short *bg, short *tx, int *ac, unsigned *kc)
-{
- bool result = TRUE;
- bool error = FALSE;
- WINDOW *helpwin;
-
- do {
- int ch = Getchar();
-
- error = FALSE;
- if (ch < 256 && isdigit(ch)) {
- *skip = (ch - '0');
- } else {
- switch (ch) {
- case CTRL('L'):
- Repaint();
- break;
- case '?':
- if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
- box_set(helpwin, 0, 0);
- attr_legend(helpwin);
- wGetchar(helpwin);
- delwin(helpwin);
- }
- break;
- case 'a':
- *ac = 0;
- break;
- case 'A':
- *ac = A_ALTCHARSET;
- break;
- case 'v':
- if (*kc == 0)
- *kc = SIZEOF(attrs_to_test) - 1;
- else
- *kc -= 1;
- break;
- case 'V':
- *kc += 1;
- if (*kc >= SIZEOF(attrs_to_test))
- *kc = 0;
- break;
- case '<':
- wide_adjust_attr_string(-1);
- break;
- case '>':
- wide_adjust_attr_string(1);
- break;
- case case_QUIT:
- result = FALSE;
- break;
- default:
- error = cycle_color_attr(ch, fg, bg, tx);
- break;
- }
- }
- } while (error);
- return result;
-}
-
-static void
-wide_attr_test(void)
-/* test text attributes using wide-character calls */
-{
- int n;
- int skip = get_xmc();
- short fg = COLOR_BLACK; /* color pair 0 is special */
- short bg = COLOR_BLACK;
- short tx = -1;
- int ac = 0;
- unsigned j, k;
-
- if (skip < 0)
- skip = 0;
-
- n = skip; /* make it easy */
- k = SIZEOF(attrs_to_test) - 1;
- wide_init_attr_string();
-
- do {
- int row = 2;
- short pair = 0;
- short extras = 0;
-
- if (use_colors) {
- pair = (short) (fg != COLOR_BLACK || bg != COLOR_BLACK);
- if (pair != 0) {
- pair = 1;
- if (init_pair(pair, fg, bg) == ERR) {
- beep();
- }
- }
- extras = pair;
- if (tx >= 0) {
- extras = 2;
- if (init_pair(extras, tx, bg) == ERR) {
- beep();
- }
- }
- }
- set_wide_background(pair);
- erase();
-
- box_set(stdscr, 0, 0);
- mvaddstr(0, 20, "Character attribute test display");
-
- for (j = 0; j < SIZEOF(attrs_to_test); ++j) {
- row = wide_show_attr(row, n, j == k,
- ac |
- attrs_to_test[j].attr |
- attrs_to_test[k].attr,
- extras,
- attrs_to_test[j].name);
- }
-
- mvprintw(row, 8,
- "This terminal does %shave the magic-cookie glitch",
- get_xmc() > -1 ? "" : "not ");
- mvprintw(row + 1, 8, "Enter '?' for help.");
- show_color_attr(fg, bg, tx);
- printw(" ACS (%d)", ac != 0);
-
- refresh();
- } while (wide_attr_getc(&n, &fg, &bg, &tx, &ac, &k));
-
- set_wide_background(0);
- erase();
- endwin();
-}
-#endif
-
-/****************************************************************************
- *
- * Color support tests
- *
- ****************************************************************************/
-
-static NCURSES_CONST char *the_color_names[] =
-{
- "black",
- "red",
- "green",
- "yellow",
- "blue",
- "magenta",
- "cyan",
- "white",
- "BLACK",
- "RED",
- "GREEN",
- "YELLOW",
- "BLUE",
- "MAGENTA",
- "CYAN",
- "WHITE"
-};
-
-static void
-show_color_name(int y, int x, int color, bool wide)
-{
- if (move(y, x) != ERR) {
- char temp[80];
- int width = 8;
-
- if (wide) {
- sprintf(temp, "%02d", color);
- width = 4;
- } else if (color >= 8) {
- sprintf(temp, "[%02d]", color);
- } else {
- strcpy(temp, the_color_names[color]);
- }
- printw("%-*.*s", width, width, temp);
- }
-}
-
-static void
-color_legend(WINDOW *helpwin, bool wide)
-{
- int row = 1;
- int col = 1;
-
- mvwprintw(helpwin, row++, col,
- "ESC to exit.");
- ++row;
- mvwprintw(helpwin, row++, col,
- "Use up/down arrow to scroll through the display if it is");
- mvwprintw(helpwin, row++, col,
- "longer than one screen. Control/N and Control/P can be used");
- mvwprintw(helpwin, row++, col,
- "in place of up/down arrow. Use pageup/pagedown to scroll a");
- mvwprintw(helpwin, row++, col,
- "full screen; control/B and control/F can be used here.");
- ++row;
- mvwprintw(helpwin, row++, col,
- "Toggles:");
- mvwprintw(helpwin, row++, col,
- " a/A toggle altcharset off/on");
- mvwprintw(helpwin, row++, col,
- " b/B toggle bold off/on");
- mvwprintw(helpwin, row++, col,
- " n/N toggle text/number on/off");
- mvwprintw(helpwin, row++, col,
- " w/W toggle width between 8/16 colors");
-#if USE_WIDEC_SUPPORT
- if (wide) {
- mvwprintw(helpwin, row++, col,
- "Wide characters:");
- mvwprintw(helpwin, row++, col,
- " x/X toggle text between ASCII and wide-character");
- }
-#else
- (void) wide;
-#endif
-}
-
-#define set_color_test(name, value) if (name != value) { name = value; base_row = 0; }
-
-/* generate a color test pattern */
-static void
-color_test(void)
-{
- short i;
- int top = 0, width;
- int base_row = 0;
- int grid_top = top + 3;
- int page_size = (LINES - grid_top);
- int pairs_max = PAIR_NUMBER(A_COLOR) + 1;
- int row_limit;
- int per_row;
- char numbered[80];
- const char *hello;
- bool done = FALSE;
- bool opt_acsc = FALSE;
- bool opt_bold = FALSE;
- bool opt_wide = FALSE;
- bool opt_nums = FALSE;
- WINDOW *helpwin;
-
- if (pairs_max > COLOR_PAIRS)
- pairs_max = COLOR_PAIRS;
-
- while (!done) {
- int shown = 0;
-
- /* this assumes an 80-column line */
- if (opt_wide) {
- width = 4;
- hello = "Test";
- per_row = (COLORS > 8) ? 16 : 8;
- } else {
- width = 8;
- hello = "Hello";
- per_row = 8;
- }
-
- row_limit = (pairs_max + per_row - 1) / per_row;
-
- move(0, 0);
- (void) printw("There are %d color pairs and %d colors\n",
- pairs_max, COLORS);
-
- clrtobot();
- (void) mvprintw(top + 1, 0,
- "%dx%d matrix of foreground/background colors, bold *%s*\n",
- row_limit,
- per_row,
- opt_bold ? "on" : "off");
-
- /* show color names/numbers across the top */
- for (i = 0; i < per_row; i++)
- show_color_name(top + 2, (i + 1) * width, i, opt_wide);
-
- /* show a grid of colors, with color names/ numbers on the left */
- for (i = (short) (base_row * per_row); i < pairs_max; i++) {
- int row = grid_top + (i / per_row) - base_row;
- int col = (i % per_row + 1) * width;
- short pair = i;
-
- if (row >= 0 && move(row, col) != ERR) {
- short fg = (short) (i % COLORS);
- short bg = (short) (i / COLORS);
-
- init_pair(pair, fg, bg);
- attron((attr_t) COLOR_PAIR(pair));
- if (opt_acsc)
- attron((attr_t) A_ALTCHARSET);
- if (opt_bold)
- attron((attr_t) A_BOLD);
-
- if (opt_nums) {
- sprintf(numbered, "{%02X}", i);
- hello = numbered;
- }
- printw("%-*.*s", width, width, hello);
- attrset(A_NORMAL);
-
- if ((i % per_row) == 0 && (i % COLORS) == 0) {
- show_color_name(row, 0, i / COLORS, opt_wide);
- }
- ++shown;
- } else if (shown) {
- break;
- }
- }
-
- switch (wGetchar(stdscr)) {
- case 'a':
- opt_acsc = FALSE;
- break;
- case 'A':
- opt_acsc = TRUE;
- break;
- case 'b':
- opt_bold = FALSE;
- break;
- case 'B':
- opt_bold = TRUE;
- break;
- case 'n':
- opt_nums = FALSE;
- break;
- case 'N':
- opt_nums = TRUE;
- break;
- case case_QUIT:
- done = TRUE;
- continue;
- case 'w':
- set_color_test(opt_wide, FALSE);
- break;
- case 'W':
- set_color_test(opt_wide, TRUE);
- break;
- case CTRL('p'):
- case KEY_UP:
- if (base_row <= 0) {
- beep();
- } else {
- base_row -= 1;
- }
- break;
- case CTRL('n'):
- case KEY_DOWN:
- if (base_row + page_size >= row_limit) {
- beep();
- } else {
- base_row += 1;
- }
- break;
- case CTRL('b'):
- case KEY_PREVIOUS:
- case KEY_PPAGE:
- if (base_row <= 0) {
- beep();
- } else {
- base_row -= (page_size - 1);
- if (base_row < 0)
- base_row = 0;
- }
- break;
- case CTRL('f'):
- case KEY_NEXT:
- case KEY_NPAGE:
- if (base_row + page_size >= row_limit) {
- beep();
- } else {
- base_row += page_size - 1;
- if (base_row + page_size >= row_limit) {
- base_row = row_limit - page_size - 1;
- }
- }
- break;
- case '?':
- if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
- box(helpwin, 0, 0);
- color_legend(helpwin, FALSE);
- wGetchar(helpwin);
- delwin(helpwin);
- }
- break;
- default:
- beep();
- continue;
- }
- }
-
- erase();
- endwin();
-}
-
-#if USE_WIDEC_SUPPORT
-/* generate a color test pattern */
-static void
-wide_color_test(void)
-{
- int c;
- int i;
- int top = 0, width;
- int base_row = 0;
- int grid_top = top + 3;
- int page_size = (LINES - grid_top);
- int pairs_max = COLOR_PAIRS;
- int row_limit;
- int per_row;
- char numbered[80];
- const char *hello;
- bool done = FALSE;
- bool opt_acsc = FALSE;
- bool opt_bold = FALSE;
- bool opt_wide = FALSE;
- bool opt_nums = FALSE;
- bool opt_xchr = FALSE;
- wchar_t buffer[10];
- WINDOW *helpwin;
-
- while (!done) {
- int shown = 0;
-
- /* this assumes an 80-column line */
- if (opt_wide) {
- width = 4;
- hello = "Test";
- per_row = (COLORS > 8) ? 16 : 8;
- } else {
- width = 8;
- hello = "Hello";
- per_row = 8;
- }
- if (opt_xchr) {
- make_fullwidth_text(buffer, hello);
- width *= 2;
- per_row /= 2;
- } else {
- make_narrow_text(buffer, hello);
- }
-
- row_limit = (pairs_max + per_row - 1) / per_row;
-
- move(0, 0);
- (void) printw("There are %d color pairs and %d colors\n",
- pairs_max, COLORS);
-
- clrtobot();
- (void) mvprintw(top + 1, 0,
- "%dx%d matrix of foreground/background colors, bold *%s*\n",
- row_limit,
- per_row,
- opt_bold ? "on" : "off");
-
- /* show color names/numbers across the top */
- for (i = 0; i < per_row; i++)
- show_color_name(top + 2, (i + 1) * width, i, opt_wide);
-
- /* show a grid of colors, with color names/ numbers on the left */
- for (i = (base_row * per_row); i < pairs_max; i++) {
- int row = grid_top + (i / per_row) - base_row;
- int col = (i % per_row + 1) * width;
- short pair = (short) i;
-
- if (row >= 0 && move(row, col) != ERR) {
- init_pair(pair, (short) (i % COLORS), (short) (i / COLORS));
- color_set(pair, NULL);
- if (opt_acsc)
- attr_on((attr_t) A_ALTCHARSET, NULL);
- if (opt_bold)
- attr_on((attr_t) A_BOLD, NULL);
-
- if (opt_nums) {
- sprintf(numbered, "{%02X}", i);
- if (opt_xchr) {
- make_fullwidth_text(buffer, numbered);
- } else {
- make_narrow_text(buffer, numbered);
- }
- }
- addnwstr(buffer, width);
- attr_set(A_NORMAL, 0, NULL);
-
- if ((i % per_row) == 0 && (i % COLORS) == 0) {
- show_color_name(row, 0, i / COLORS, opt_wide);
- }
- ++shown;
- } else if (shown) {
- break;
- }
- }
-
- switch (c = wGetchar(stdscr)) {
- case 'a':
- opt_acsc = FALSE;
- break;
- case 'A':
- opt_acsc = TRUE;
- break;
- case 'b':
- opt_bold = FALSE;
- break;
- case 'B':
- opt_bold = TRUE;
- break;
- case 'n':
- opt_nums = FALSE;
- break;
- case 'N':
- opt_nums = TRUE;
- break;
- case case_QUIT:
- done = TRUE;
- continue;
- case 'w':
- set_color_test(opt_wide, FALSE);
- break;
- case 'W':
- set_color_test(opt_wide, TRUE);
- break;
- case 'x':
- opt_xchr = FALSE;
- break;
- case 'X':
- opt_xchr = TRUE;
- break;
- case CTRL('p'):
- case KEY_UP:
- if (base_row <= 0) {
- beep();
- } else {
- base_row -= 1;
- }
- break;
- case CTRL('n'):
- case KEY_DOWN:
- if (base_row + page_size >= row_limit) {
- beep();
- } else {
- base_row += 1;
- }
- break;
- case CTRL('b'):
- case KEY_PREVIOUS:
- case KEY_PPAGE:
- if (base_row <= 0) {
- beep();
- } else {
- base_row -= (page_size - 1);
- if (base_row < 0)
- base_row = 0;
- }
- break;
- case CTRL('f'):
- case KEY_NEXT:
- case KEY_NPAGE:
- if (base_row + page_size >= row_limit) {
- beep();
- } else {
- base_row += page_size - 1;
- if (base_row + page_size >= row_limit) {
- base_row = row_limit - page_size - 1;
- }
- }
- break;
- case '?':
- if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
- box(helpwin, 0, 0);
- color_legend(helpwin, TRUE);
- wGetchar(helpwin);
- delwin(helpwin);
- }
- break;
- default:
- beep();
- continue;
- }
- }
-
- erase();
- endwin();
-}
-#endif /* USE_WIDEC_SUPPORT */
-
-static void
-change_color(short current, int field, int value, int usebase)
-{
- short red, green, blue;
-
- color_content(current, &red, &green, &blue);
-
- switch (field) {
- case 0:
- red = (short) (usebase ? (red + value) : value);
- break;
- case 1:
- green = (short) (usebase ? (green + value) : value);
- break;
- case 2:
- blue = (short) (usebase ? (blue + value) : value);
- break;
- }
-
- if (init_color(current, red, green, blue) == ERR)
- beep();
-}
-
-static void
-init_all_colors(void)
-{
- short c;
-
- for (c = 0; c < COLORS; ++c)
- init_color(c,
- all_colors[c].red,
- all_colors[c].green,
- all_colors[c].blue);
-}
-
-#define scaled_rgb(n) ((255 * (n)) / 1000)
-
-static void
-color_edit(void)
-/* display the color test pattern, without trying to edit colors */
-{
- int i;
- int current = 0;
- int this_c = 0, value = 0, field = 0;
- int last_c;
- int top_color = 0;
- int page_size = (LINES - 6);
-
- init_all_colors();
- refresh();
-
- for (i = 0; i < max_colors; i++)
- init_pair((short) i, (short) COLOR_WHITE, (short) i);
-
- mvprintw(LINES - 2, 0, "Number: %d", value);
-
- do {
- short red, green, blue;
-
- attron(A_BOLD);
- mvaddstr(0, 20, "Color RGB Value Editing");
- attroff(A_BOLD);
-
- for (i = (short) top_color;
- (i - top_color < page_size)
- && (i < max_colors); i++) {
- char numeric[80];
-
- sprintf(numeric, "[%d]", i);
- mvprintw(2 + i - top_color, 0, "%c %-8s:",
- (i == current ? '>' : ' '),
- (i < (int) SIZEOF(the_color_names)
- ? the_color_names[i] : numeric));
- attrset(COLOR_PAIR(i));
- addstr(" ");
- attrset(A_NORMAL);
-
- color_content((short) i, &red, &green, &blue);
- addstr(" R = ");
- if (current == i && field == 0)
- attron(A_STANDOUT);
- printw("%04d", red);
- if (current == i && field == 0)
- attrset(A_NORMAL);
- addstr(", G = ");
- if (current == i && field == 1)
- attron(A_STANDOUT);
- printw("%04d", green);
- if (current == i && field == 1)
- attrset(A_NORMAL);
- addstr(", B = ");
- if (current == i && field == 2)
- attron(A_STANDOUT);
- printw("%04d", blue);
- if (current == i && field == 2)
- attrset(A_NORMAL);
- attrset(A_NORMAL);
- printw(" ( %3d %3d %3d )",
- scaled_rgb(red),
- scaled_rgb(green),
- scaled_rgb(blue));
- }
-
- mvaddstr(LINES - 3, 0,
- "Use up/down to select a color, left/right to change fields.");
- mvaddstr(LINES - 2, 0,
- "Modify field by typing nnn=, nnn-, or nnn+. ? for help.");
-
- move(2 + current - top_color, 0);
-
- last_c = this_c;
- this_c = Getchar();
- if (this_c < 256 && isdigit(this_c) && !isdigit(last_c))
- value = 0;
-
- switch (this_c) {
- case CTRL('b'):
- case KEY_PPAGE:
- if (current > 0)
- current -= (page_size - 1);
- else
- beep();
- break;
-
- case CTRL('f'):
- case KEY_NPAGE:
- if (current < (max_colors - 1))
- current += (page_size - 1);
- else
- beep();
- break;
-
- case CTRL('p'):
- case KEY_UP:
- current = (current == 0 ? (max_colors - 1) : current - 1);
- break;
-
- case CTRL('n'):
- case KEY_DOWN:
- current = (current == (max_colors - 1) ? 0 : current + 1);
- break;
-
- case KEY_RIGHT:
- field = (field == 2 ? 0 : field + 1);
- break;
-
- case KEY_LEFT:
- field = (field == 0 ? 2 : field - 1);
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- value = value * 10 + (this_c - '0');
- break;
-
- case '+':
- change_color((short) current, field, value, 1);
- break;
-
- case '-':
- change_color((short) current, field, -value, 1);
- break;
-
- case '=':
- change_color((short) current, field, value, 0);
- break;
-
- case '?':
- erase();
- P(" RGB Value Editing Help");
- P("");
- P("You are in the RGB value editor. Use the arrow keys to select one of");
- P("the fields in one of the RGB triples of the current colors; the one");
- P("currently selected will be reverse-video highlighted.");
- P("");
- P("To change a field, enter the digits of the new value; they are echoed");
- P("as entered. Finish by typing `='. The change will take effect instantly.");
- P("To increment or decrement a value, use the same procedure, but finish");
- P("with a `+' or `-'.");
- P("");
- P("Press 'm' to invoke the top-level menu with the current color settings.");
- P("To quit, do ESC");
-
- Pause();
- erase();
- break;
-
- case 'm':
- endwin();
- main_menu(FALSE);
- refresh();
- break;
-
- case case_QUIT:
- break;
-
- default:
- beep();
- break;
- }
-
- if (current < 0)
- current = 0;
- if (current >= max_colors)
- current = max_colors - 1;
- if (current < top_color)
- top_color = current;
- if (current - top_color >= page_size)
- top_color = current - (page_size - 1);
-
- mvprintw(LINES - 1, 0, "Number: %d", value);
- clrtoeol();
- } while
- (!isQuit(this_c));
-
- erase();
-
- /*
- * ncurses does not reset each color individually when calling endwin().
- */
- init_all_colors();
-
- endwin();
-}
-
-/****************************************************************************
- *
- * Soft-key label test
- *
- ****************************************************************************/
-
-#if USE_SOFTKEYS
-
-#define SLK_HELP 17
-#define SLK_WORK (SLK_HELP + 3)
-
-static void
-slk_help(void)
-{
- static const char *table[] =
- {
- "Available commands are:"
- ,""
- ,"^L -- repaint this message and activate soft keys"
- ,"a/d -- activate/disable soft keys"
- ,"c -- set centered format for labels"
- ,"l -- set left-justified format for labels"
- ,"r -- set right-justified format for labels"
- ,"[12345678] -- set label; labels are numbered 1 through 8"
- ,"e -- erase stdscr (should not erase labels)"
- ,"s -- test scrolling of shortened screen"
-#if HAVE_SLK_COLOR
- ,"F/B -- cycle through foreground/background colors"
-#endif
- ,"ESC -- return to main menu"
- ,""
- ,"Note: if activating the soft keys causes your terminal to scroll up"
- ,"one line, your terminal auto-scrolls when anything is written to the"
- ,"last screen position. The ncurses code does not yet handle this"
- ,"gracefully."
- };
- unsigned j;
-
- move(2, 0);
- for (j = 0; j < SIZEOF(table); ++j) {
- P(table[j]);
- }
- refresh();
-}
-
-#if HAVE_SLK_COLOR
-static void
-call_slk_color(short fg, short bg)
-{
- init_pair(1, bg, fg);
- slk_color(1);
- mvprintw(SLK_WORK, 0, "Colors %d/%d\n", fg, bg);
- clrtoeol();
- refresh();
-}
-#endif
-
-static void
-slk_test(void)
-/* exercise the soft keys */
-{
- int c, fmt = 1;
- char buf[9];
- char *s;
-#if HAVE_SLK_COLOR
- short fg = COLOR_BLACK;
- short bg = COLOR_WHITE;
-#endif
-
- c = CTRL('l');
-#if HAVE_SLK_COLOR
- if (use_colors) {
- call_slk_color(fg, bg);
- }
-#endif
-
- do {
- move(0, 0);
- switch (c) {
- case CTRL('l'):
- erase();
- attron(A_BOLD);
- mvaddstr(0, 20, "Soft Key Exerciser");
- attroff(A_BOLD);
-
- slk_help();
- /* fall through */
-
- case 'a':
- slk_restore();
- break;
-
- case 'e':
- wclear(stdscr);
- break;
-
- case 's':
- mvprintw(SLK_WORK, 0, "Press Q to stop the scrolling-test: ");
- while ((c = Getchar()) != 'Q' && (c != ERR))
- addch((chtype) c);
- break;
-
- case 'd':
- slk_clear();
- break;
-
- case 'l':
- fmt = 0;
- break;
-
- case 'c':
- fmt = 1;
- break;
-
- case 'r':
- fmt = 2;
- break;
-
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- (void) mvaddstr(SLK_WORK, 0, "Please enter the label value: ");
- strcpy(buf, "");
- if ((s = slk_label(c - '0')) != 0) {
- strncpy(buf, s, 8);
- }
- wGetstring(stdscr, buf, 8);
- slk_set((c - '0'), buf, fmt);
- slk_refresh();
- move(SLK_WORK, 0);
- clrtobot();
- break;
-
- case case_QUIT:
- goto done;
-
-#if HAVE_SLK_COLOR
- case 'F':
- if (use_colors) {
- fg = (short) ((fg + 1) % COLORS);
- call_slk_color(fg, bg);
- }
- break;
- case 'B':
- if (use_colors) {
- bg = (short) ((bg + 1) % COLORS);
- call_slk_color(fg, bg);
- }
- break;
-#endif
-#if defined(NCURSES_VERSION) && defined(KEY_RESIZE) && HAVE_WRESIZE
- case KEY_RESIZE:
- wnoutrefresh(stdscr);
- break;
-#endif
-
- default:
- beep();
- }
- } while (!isQuit(c = Getchar()));
-
- done:
- slk_clear();
- erase();
- endwin();
-}
-
-#if USE_WIDEC_SUPPORT
-#define SLKLEN 8
-static void
-wide_slk_test(void)
-/* exercise the soft keys */
-{
- int c, fmt = 1;
- wchar_t buf[SLKLEN + 1];
- char *s;
- short fg = COLOR_BLACK;
- short bg = COLOR_WHITE;
-
- c = CTRL('l');
- if (use_colors) {
- call_slk_color(fg, bg);
- }
- do {
- move(0, 0);
- switch (c) {
- case CTRL('l'):
- erase();
- attr_on(WA_BOLD, NULL);
- mvaddstr(0, 20, "Soft Key Exerciser");
- attr_off(WA_BOLD, NULL);
-
- slk_help();
- /* fall through */
-
- case 'a':
- slk_restore();
- break;
-
- case 'e':
- wclear(stdscr);
- break;
-
- case 's':
- mvprintw(SLK_WORK, 0, "Press Q to stop the scrolling-test: ");
- while ((c = Getchar()) != 'Q' && (c != ERR))
- addch((chtype) c);
- break;
-
- case 'd':
- slk_clear();
- break;
-
- case 'l':
- fmt = 0;
- break;
-
- case 'c':
- fmt = 1;
- break;
-
- case 'r':
- fmt = 2;
- break;
-
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- (void) mvaddstr(SLK_WORK, 0, "Please enter the label value: ");
- *buf = 0;
- if ((s = slk_label(c - '0')) != 0) {
- char *temp = strdup(s);
- size_t used = strlen(temp);
- size_t want = SLKLEN;
- size_t test;
-#ifndef state_unused
- mbstate_t state;
-#endif
-
- buf[0] = L'\0';
- while (want > 0 && used != 0) {
- const char *base = s;
- reset_mbytes(state);
- test = count_mbytes(base, 0, &state);
- if (test == (size_t) -1) {
- temp[--used] = 0;
- } else if (test > want) {
- temp[--used] = 0;
- } else {
- reset_mbytes(state);
- trans_mbytes(buf, base, want, &state);
- break;
- }
- }
- free(temp);
- }
- wGet_wstring(stdscr, buf, SLKLEN);
- slk_wset((c - '0'), buf, fmt);
- slk_refresh();
- move(SLK_WORK, 0);
- clrtobot();
- break;
-
- case case_QUIT:
- goto done;
-
- case 'F':
- if (use_colors) {
- fg = (short) ((fg + 1) % COLORS);
- call_slk_color(fg, bg);
- }
- break;
- case 'B':
- if (use_colors) {
- bg = (short) ((bg + 1) % COLORS);
- call_slk_color(fg, bg);
- }
- break;
-#if defined(NCURSES_VERSION) && defined(KEY_RESIZE) && HAVE_WRESIZE
- case KEY_RESIZE:
- wnoutrefresh(stdscr);
- break;
-#endif
- default:
- beep();
- }
- } while (!isQuit(c = Getchar()));
-
- done:
- slk_clear();
- erase();
- endwin();
-}
-#endif
-#endif /* SLK_INIT */
-
-/****************************************************************************
- *
- * Alternate character-set stuff
- *
- ****************************************************************************/
-/* *INDENT-OFF* */
-static struct {
- chtype attr;
- const char *name;
-} attrs_to_cycle[] = {
- { A_NORMAL, "normal" },
- { A_BOLD, "bold" },
- { A_REVERSE, "reverse" },
- { A_UNDERLINE, "underline" },
-};
-/* *INDENT-ON* */
-
-static bool
-cycle_attr(int ch, unsigned *at_code, chtype *attr)
-{
- bool result = TRUE;
-
- switch (ch) {
- case 'v':
- if ((*at_code += 1) >= SIZEOF(attrs_to_cycle))
- *at_code = 0;
- break;
- case 'V':
- if (*at_code == 1)
- *at_code = SIZEOF(attrs_to_cycle) - 1;
- else
- *at_code -= 1;
- break;
- default:
- result = FALSE;
- break;
- }
- if (result)
- *attr = attrs_to_cycle[*at_code].attr;
- return result;
-}
-
-static bool
-cycle_colors(int ch, int *fg, int *bg, short *pair)
-{
- bool result = FALSE;
-
- if (use_colors) {
- result = TRUE;
- switch (ch) {
- case 'F':
- if ((*fg -= 1) < 0)
- *fg = COLORS - 1;
- break;
- case 'f':
- if ((*fg += 1) >= COLORS)
- *fg = 0;
- break;
- case 'B':
- if ((*bg -= 1) < 0)
- *bg = COLORS - 1;
- break;
- case 'b':
- if ((*bg += 1) >= COLORS)
- *bg = 0;
- break;
- default:
- result = FALSE;
- break;
- }
- if (result) {
- *pair = (short) (*fg != COLOR_BLACK || *bg != COLOR_BLACK);
- if (*pair != 0) {
- *pair = 1;
- if (init_pair(*pair, (short) *fg, (short) *bg) == ERR) {
- result = FALSE;
- }
- }
- }
- }
- return result;
-}
-
-/* ISO 6429: codes 0x80 to 0x9f may be control characters that cause the
- * terminal to perform functions. The remaining codes can be graphic.
- */
-static void
-show_upper_chars(unsigned first, int repeat, attr_t attr, short pair)
-{
- bool C1 = (first == 128);
- unsigned code;
- unsigned last = first + 31;
- int reply;
-
- erase();
- attron(A_BOLD);
- mvprintw(0, 20, "Display of %s Character Codes %d to %d",
- C1 ? "C1" : "GR", first, last);
- attroff(A_BOLD);
- refresh();
-
- for (code = first; code <= last; code++) {
- int count = repeat;
- int row = 2 + ((int) (code - first) % 16);
- int col = ((int) (code - first) / 16) * COLS / 2;
- char tmp[80];
- sprintf(tmp, "%3u (0x%x)", code, code);
- mvprintw(row, col, "%*s: ", COLS / 4, tmp);
-
- do {
- if (C1)
- nodelay(stdscr, TRUE);
- echochar(code | attr | COLOR_PAIR(pair));
- if (C1) {
- /* (yes, this _is_ crude) */
- while ((reply = Getchar()) != ERR) {
- addch(UChar(reply));
- napms(10);
- }
- nodelay(stdscr, FALSE);
- }
- } while (--count > 0);
- }
-}
-
-#define PC_COLS 4
-
-static void
-show_pc_chars(int repeat, attr_t attr, short pair)
-{
- unsigned code;
-
- erase();
- attron(A_BOLD);
- mvprintw(0, 20, "Display of PC Character Codes");
- attroff(A_BOLD);
- refresh();
-
- for (code = 0; code < 16; ++code) {
- mvprintw(2, (int) code * PC_COLS + 8, "%X", code);
- }
- for (code = 0; code < 256; code++) {
- int count = repeat;
- int row = 3 + (int) (code / 16) + (code >= 128);
- int col = 8 + (int) (code % 16) * PC_COLS;
- if ((code % 16) == 0)
- mvprintw(row, 0, "0x%02x:", code);
- move(row, col);
- do {
- switch (code) {
- case '\n':
- case '\r':
- case '\b':
- case '\f':
- case '\033':
- case 0x9b:
- /*
- * Skip the ones that do not work.
- */
- break;
- default:
- addch(code | A_ALTCHARSET | attr | COLOR_PAIR(pair));
- break;
- }
- } while (--count > 0);
- }
-}
-
-static void
-show_box_chars(int repeat, attr_t attr, short pair)
-{
- (void) repeat;
- attr |= COLOR_PAIR(pair);
-
- erase();
- attron(A_BOLD);
- mvaddstr(0, 20, "Display of the ACS Line-Drawing Set");
- attroff(A_BOLD);
- refresh();
- box(stdscr, 0, 0);
- /* *INDENT-OFF* */
- mvhline(LINES / 2, 0, ACS_HLINE | attr, COLS);
- mvvline(0, COLS / 2, ACS_VLINE | attr, LINES);
- mvaddch(0, COLS / 2, ACS_TTEE | attr);
- mvaddch(LINES / 2, COLS / 2, ACS_PLUS | attr);
- mvaddch(LINES - 1, COLS / 2, ACS_BTEE | attr);
- mvaddch(LINES / 2, 0, ACS_LTEE | attr);
- mvaddch(LINES / 2, COLS - 1, ACS_RTEE | attr);
- /* *INDENT-ON* */
-
-}
-
-static int
-show_1_acs(int n, int repeat, const char *name, chtype code)
-{
- const int height = 16;
- int row = 2 + (n % height);
- int col = (n / height) * COLS / 2;
-
- mvprintw(row, col, "%*s : ", COLS / 4, name);
- do {
- addch(code);
- } while (--repeat > 0);
- return n + 1;
-}
-
-static void
-show_acs_chars(int repeat, attr_t attr, short pair)
-/* display the ACS character set */
-{
- int n;
-
-#define BOTH(name) #name, (name | attr | COLOR_PAIR(pair))
-
- erase();
- attron(A_BOLD);
- mvaddstr(0, 20, "Display of the ACS Character Set");
- attroff(A_BOLD);
- refresh();
-
- n = show_1_acs(0, repeat, BOTH(ACS_ULCORNER));
- n = show_1_acs(n, repeat, BOTH(ACS_URCORNER));
- n = show_1_acs(n, repeat, BOTH(ACS_LLCORNER));
- n = show_1_acs(n, repeat, BOTH(ACS_LRCORNER));
-
- n = show_1_acs(n, repeat, BOTH(ACS_LTEE));
- n = show_1_acs(n, repeat, BOTH(ACS_RTEE));
- n = show_1_acs(n, repeat, BOTH(ACS_TTEE));
- n = show_1_acs(n, repeat, BOTH(ACS_BTEE));
-
- n = show_1_acs(n, repeat, BOTH(ACS_HLINE));
- n = show_1_acs(n, repeat, BOTH(ACS_VLINE));
-
- /*
- * HPUX's ACS definitions are broken here. Just give up.
- */
-#if !(defined(__hpux) && !defined(NCURSES_VERSION))
- n = show_1_acs(n, repeat, BOTH(ACS_LARROW));
- n = show_1_acs(n, repeat, BOTH(ACS_RARROW));
- n = show_1_acs(n, repeat, BOTH(ACS_UARROW));
- n = show_1_acs(n, repeat, BOTH(ACS_DARROW));
-
- n = show_1_acs(n, repeat, BOTH(ACS_BLOCK));
- n = show_1_acs(n, repeat, BOTH(ACS_BOARD));
- n = show_1_acs(n, repeat, BOTH(ACS_LANTERN));
- n = show_1_acs(n, repeat, BOTH(ACS_BULLET));
- n = show_1_acs(n, repeat, BOTH(ACS_CKBOARD));
- n = show_1_acs(n, repeat, BOTH(ACS_DEGREE));
- n = show_1_acs(n, repeat, BOTH(ACS_DIAMOND));
- n = show_1_acs(n, repeat, BOTH(ACS_PLMINUS));
- n = show_1_acs(n, repeat, BOTH(ACS_PLUS));
-
- n = show_1_acs(n, repeat, BOTH(ACS_GEQUAL));
- n = show_1_acs(n, repeat, BOTH(ACS_NEQUAL));
- n = show_1_acs(n, repeat, BOTH(ACS_LEQUAL));
-
- n = show_1_acs(n, repeat, BOTH(ACS_STERLING));
- n = show_1_acs(n, repeat, BOTH(ACS_PI));
- n = show_1_acs(n, repeat, BOTH(ACS_S1));
- n = show_1_acs(n, repeat, BOTH(ACS_S3));
- n = show_1_acs(n, repeat, BOTH(ACS_S7));
- n = show_1_acs(n, repeat, BOTH(ACS_S9));
-#endif
-}
-
-static void
-acs_display(void)
-{
- int c = 'a';
- char *term = getenv("TERM");
- const char *pch_kludge = ((term != 0 && strstr(term, "linux"))
- ? "p=PC, "
- : "");
- chtype attr = A_NORMAL;
- int digit = 0;
- int repeat = 1;
- int fg = COLOR_BLACK;
- int bg = COLOR_BLACK;
- unsigned at_code = 0;
- short pair = 0;
- void (*last_show_acs) (int, attr_t, short) = 0;
-
- do {
- switch (c) {
- case CTRL('L'):
- Repaint();
- break;
- case 'a':
- ToggleAcs(last_show_acs, show_acs_chars);
- break;
- case 'p':
- if (*pch_kludge)
- ToggleAcs(last_show_acs, show_pc_chars);
- else
- beep();
- break;
- case 'x':
- ToggleAcs(last_show_acs, show_box_chars);
- break;
- case '0':
- case '1':
- case '2':
- case '3':
- digit = (c - '0');
- last_show_acs = 0;
- break;
- case '-':
- if (digit > 0) {
- --digit;
- last_show_acs = 0;
- } else {
- beep();
- }
- break;
- case '+':
- if (digit < 3) {
- ++digit;
- last_show_acs = 0;
- } else {
- beep();
- }
- break;
- case '>':
- if (repeat < (COLS / 4))
- ++repeat;
- break;
- case '<':
- if (repeat > 1)
- --repeat;
- break;
- default:
- if (cycle_attr(c, &at_code, &attr)
- || cycle_colors(c, &fg, &bg, &pair)) {
- break;
- } else {
- beep();
- }
- break;
- }
- if (last_show_acs != 0)
- last_show_acs(repeat, attr, pair);
- else
- show_upper_chars((unsigned) (digit * 32 + 128), repeat, attr, pair);
-
- mvprintw(LINES - 3, 0,
- "Note: ANSI terminals may not display C1 characters.");
- mvprintw(LINES - 2, 0,
- "Select: a=ACS, x=box, %s0=C1, 1-3,+/- non-ASCII, </> repeat, ESC=quit",
- pch_kludge);
- if (use_colors) {
- mvprintw(LINES - 1, 0,
- "v/V, f/F, b/B cycle through video attributes (%s) and color %d/%d.",
- attrs_to_cycle[at_code].name,
- fg, bg);
- } else {
- mvprintw(LINES - 1, 0,
- "v/V cycles through video attributes (%s).",
- attrs_to_cycle[at_code].name);
- }
- refresh();
- } while (!isQuit(c = Getchar()));
-
- Pause();
- erase();
- endwin();
-}
-
-#if USE_WIDEC_SUPPORT
-static cchar_t *
-merge_wide_attr(cchar_t *dst, const cchar_t *src, attr_t attr, short pair)
-{
- int count = getcchar(src, NULL, NULL, NULL, 0);
- wchar_t *wch = 0;
- attr_t ignore_attr;
- short ignore_pair;
-
- *dst = *src;
- if (count > 0) {
- if ((wch = typeMalloc(wchar_t, (unsigned) count + 1)) != 0) {
- if (getcchar(src, wch, &ignore_attr, &ignore_pair, 0) != ERR) {
- attr |= (ignore_attr & A_ALTCHARSET);
- setcchar(dst, wch, attr, pair, 0);
- }
- free(wch);
- }
- }
- return dst;
-}
-
-static void
-show_upper_widechars(int first, int repeat, int space, attr_t attr, short pair)
-{
- cchar_t temp;
- wchar_t code;
- int last = first + 31;
-
- erase();
- attron(A_BOLD);
- mvprintw(0, 20, "Display of Character Codes %d to %d", first, last);
- attroff(A_BOLD);
-
- for (code = first; (int) code <= last; code++) {
- int row = 2 + ((code - first) % 16);
- int col = ((code - first) / 16) * COLS / 2;
- wchar_t codes[10];
- char tmp[80];
- int count = repeat;
- int y, x;
-
- memset(&codes, 0, sizeof(codes));
- codes[0] = code;
- sprintf(tmp, "%3ld (0x%lx)", (long) code, (long) code);
- mvprintw(row, col, "%*s: ", COLS / 4, tmp);
- setcchar(&temp, codes, attr, pair, 0);
- do {
- /*
- * Give non-spacing characters something to combine with. If we
- * don't, they'll bunch up in a heap on the space after the ":".
- * Mark them with reverse-video to make them simpler to find on
- * the display.
- */
- if (wcwidth(code) == 0)
- addch(space | A_REVERSE);
- /*
- * This could use add_wch(), but is done for comparison with the
- * normal 'f' test (and to make a test-case for echo_wchar()).
- * The screen will flicker because the erase() at the top of the
- * function is met by the builtin refresh() in echo_wchar().
- */
- echo_wchar(&temp);
- /*
- * The repeat-count may make text wrap - avoid that.
- */
- getyx(stdscr, y, x);
- if (x >= col + (COLS / 2) - 2)
- break;
- } while (--count > 0);
- }
-}
-
-static int
-show_1_wacs(int n, int repeat, const char *name, const cchar_t *code)
-{
- const int height = 16;
- int row = 2 + (n % height);
- int col = (n / height) * COLS / 2;
-
- mvprintw(row, col, "%*s : ", COLS / 4, name);
- while (repeat-- >= 0) {
- add_wch(code);
- }
- return n + 1;
-}
-
-#define MERGE_ATTR(wch) merge_wide_attr(&temp, wch, attr, pair)
-
-static void
-show_wacs_chars(int repeat, attr_t attr, short pair)
-/* display the wide-ACS character set */
-{
- cchar_t temp;
-
- int n;
-
-/*#define BOTH2(name) #name, &(name) */
-#define BOTH2(name) #name, MERGE_ATTR(name)
-
- erase();
- attron(A_BOLD);
- mvaddstr(0, 20, "Display of the Wide-ACS Character Set");
- attroff(A_BOLD);
- refresh();
-
- n = show_1_wacs(0, repeat, BOTH2(WACS_ULCORNER));
- n = show_1_wacs(n, repeat, BOTH2(WACS_URCORNER));
- n = show_1_wacs(n, repeat, BOTH2(WACS_LLCORNER));
- n = show_1_wacs(n, repeat, BOTH2(WACS_LRCORNER));
-
- n = show_1_wacs(n, repeat, BOTH2(WACS_LTEE));
- n = show_1_wacs(n, repeat, BOTH2(WACS_RTEE));
- n = show_1_wacs(n, repeat, BOTH2(WACS_TTEE));
- n = show_1_wacs(n, repeat, BOTH2(WACS_BTEE));
-
- n = show_1_wacs(n, repeat, BOTH2(WACS_HLINE));
- n = show_1_wacs(n, repeat, BOTH2(WACS_VLINE));
-
- n = show_1_wacs(n, repeat, BOTH2(WACS_LARROW));
- n = show_1_wacs(n, repeat, BOTH2(WACS_RARROW));
- n = show_1_wacs(n, repeat, BOTH2(WACS_UARROW));
- n = show_1_wacs(n, repeat, BOTH2(WACS_DARROW));
-
- n = show_1_wacs(n, repeat, BOTH2(WACS_BLOCK));
- n = show_1_wacs(n, repeat, BOTH2(WACS_BOARD));
- n = show_1_wacs(n, repeat, BOTH2(WACS_LANTERN));
- n = show_1_wacs(n, repeat, BOTH2(WACS_BULLET));
- n = show_1_wacs(n, repeat, BOTH2(WACS_CKBOARD));
- n = show_1_wacs(n, repeat, BOTH2(WACS_DEGREE));
- n = show_1_wacs(n, repeat, BOTH2(WACS_DIAMOND));
- n = show_1_wacs(n, repeat, BOTH2(WACS_PLMINUS));
- n = show_1_wacs(n, repeat, BOTH2(WACS_PLUS));
-
-#ifdef CURSES_WACS_ARRAY
- n = show_1_wacs(n, repeat, BOTH2(WACS_GEQUAL));
- n = show_1_wacs(n, repeat, BOTH2(WACS_NEQUAL));
- n = show_1_wacs(n, repeat, BOTH2(WACS_LEQUAL));
-
- n = show_1_wacs(n, repeat, BOTH2(WACS_STERLING));
- n = show_1_wacs(n, repeat, BOTH2(WACS_PI));
- n = show_1_wacs(n, repeat, BOTH2(WACS_S1));
- n = show_1_wacs(n, repeat, BOTH2(WACS_S3));
- n = show_1_wacs(n, repeat, BOTH2(WACS_S7));
- n = show_1_wacs(n, repeat, BOTH2(WACS_S9));
-#endif
-}
-
-#undef MERGE_ATTR
-
-#define MERGE_ATTR(wch) merge_wide_attr(&temp, wch, attr, pair)
-
-static void
-show_wbox_chars(int repeat, attr_t attr, short pair)
-{
- cchar_t temp;
-
- (void) repeat;
- erase();
- attron(A_BOLD);
- mvaddstr(0, 20, "Display of the Wide-ACS Line-Drawing Set");
- attroff(A_BOLD);
- refresh();
-
- attr_set(attr, pair, 0);
- box_set(stdscr, 0, 0);
- attr_set(A_NORMAL, 0, 0);
- /* *INDENT-OFF* */
- mvhline_set(LINES / 2, 0, MERGE_ATTR(WACS_HLINE), COLS);
- mvvline_set(0, COLS / 2, MERGE_ATTR(WACS_VLINE), LINES);
- mvadd_wch(0, COLS / 2, MERGE_ATTR(WACS_TTEE));
- mvadd_wch(LINES / 2, COLS / 2, MERGE_ATTR(WACS_PLUS));
- mvadd_wch(LINES - 1, COLS / 2, MERGE_ATTR(WACS_BTEE));
- mvadd_wch(LINES / 2, 0, MERGE_ATTR(WACS_LTEE));
- mvadd_wch(LINES / 2, COLS - 1, MERGE_ATTR(WACS_RTEE));
- /* *INDENT-ON* */
-
-}
-
-#undef MERGE_ATTR
-
-static int
-show_2_wacs(int n, const char *name, const char *code, attr_t attr, short pair)
-{
- const int height = 16;
- int row = 2 + (n % height);
- int col = (n / height) * COLS / 2;
- char temp[80];
-
- mvprintw(row, col, "%*s : ", COLS / 4, name);
- attr_set(attr, pair, 0);
- addstr(strcpy(temp, code));
- attr_set(A_NORMAL, 0, 0);
- return n + 1;
-}
-
-#define SHOW_UTF8(n, name, code) show_2_wacs(n, name, code, attr, pair)
-
-static void
-show_utf8_chars(int repeat, attr_t attr, short pair)
-{
- int n;
-
- (void) repeat;
- erase();
- attron(A_BOLD);
- mvaddstr(0, 20, "Display of the Wide-ACS Character Set");
- attroff(A_BOLD);
- refresh();
- /* *INDENT-OFF* */
- n = SHOW_UTF8(0, "WACS_ULCORNER", "\342\224\214");
- n = SHOW_UTF8(n, "WACS_URCORNER", "\342\224\220");
- n = SHOW_UTF8(n, "WACS_LLCORNER", "\342\224\224");
- n = SHOW_UTF8(n, "WACS_LRCORNER", "\342\224\230");
-
- n = SHOW_UTF8(n, "WACS_LTEE", "\342\224\234");
- n = SHOW_UTF8(n, "WACS_RTEE", "\342\224\244");
- n = SHOW_UTF8(n, "WACS_TTEE", "\342\224\254");
- n = SHOW_UTF8(n, "WACS_BTEE", "\342\224\264");
-
- n = SHOW_UTF8(n, "WACS_HLINE", "\342\224\200");
- n = SHOW_UTF8(n, "WACS_VLINE", "\342\224\202");
-
- n = SHOW_UTF8(n, "WACS_LARROW", "\342\206\220");
- n = SHOW_UTF8(n, "WACS_RARROW", "\342\206\222");
- n = SHOW_UTF8(n, "WACS_UARROW", "\342\206\221");
- n = SHOW_UTF8(n, "WACS_DARROW", "\342\206\223");
-
- n = SHOW_UTF8(n, "WACS_BLOCK", "\342\226\256");
- n = SHOW_UTF8(n, "WACS_BOARD", "\342\226\222");
- n = SHOW_UTF8(n, "WACS_LANTERN", "\342\230\203");
- n = SHOW_UTF8(n, "WACS_BULLET", "\302\267");
- n = SHOW_UTF8(n, "WACS_CKBOARD", "\342\226\222");
- n = SHOW_UTF8(n, "WACS_DEGREE", "\302\260");
- n = SHOW_UTF8(n, "WACS_DIAMOND", "\342\227\206");
- n = SHOW_UTF8(n, "WACS_PLMINUS", "\302\261");
- n = SHOW_UTF8(n, "WACS_PLUS", "\342\224\274");
- n = SHOW_UTF8(n, "WACS_GEQUAL", "\342\211\245");
- n = SHOW_UTF8(n, "WACS_NEQUAL", "\342\211\240");
- n = SHOW_UTF8(n, "WACS_LEQUAL", "\342\211\244");
-
- n = SHOW_UTF8(n, "WACS_STERLING", "\302\243");
- n = SHOW_UTF8(n, "WACS_PI", "\317\200");
- n = SHOW_UTF8(n, "WACS_S1", "\342\216\272");
- n = SHOW_UTF8(n, "WACS_S3", "\342\216\273");
- n = SHOW_UTF8(n, "WACS_S7", "\342\216\274");
- n = SHOW_UTF8(n, "WACS_S9", "\342\216\275");
- /* *INDENT-ON* */
-
-}
-
-/* display the wide-ACS character set */
-static void
-wide_acs_display(void)
-{
- int c = 'a';
- int digit = 0;
- int repeat = 1;
- int space = ' ';
- chtype attr = A_NORMAL;
- int fg = COLOR_BLACK;
- int bg = COLOR_BLACK;
- unsigned at_code = 0;
- short pair = 0;
- void (*last_show_wacs) (int, attr_t, short) = 0;
-
- do {
- switch (c) {
- case CTRL('L'):
- Repaint();
- break;
- case 'a':
- ToggleAcs(last_show_wacs, show_wacs_chars);
- break;
- case 'x':
- ToggleAcs(last_show_wacs, show_wbox_chars);
- break;
- case 'u':
- ToggleAcs(last_show_wacs, show_utf8_chars);
- break;
- default:
- if (c < 256 && isdigit(c)) {
- digit = (c - '0');
- last_show_wacs = 0;
- } else if (c == '+') {
- ++digit;
- last_show_wacs = 0;
- } else if (c == '-' && digit > 0) {
- --digit;
- last_show_wacs = 0;
- } else if (c == '>' && repeat < (COLS / 4)) {
- ++repeat;
- } else if (c == '<' && repeat > 1) {
- --repeat;
- } else if (c == '_') {
- space = (space == ' ') ? '_' : ' ';
- last_show_wacs = 0;
- } else if (cycle_attr(c, &at_code, &attr)
- || cycle_colors(c, &fg, &bg, &pair)) {
- if (last_show_wacs != 0)
- break;
- } else {
- beep();
- break;
- }
- break;
- }
- if (last_show_wacs != 0)
- last_show_wacs(repeat, attr, pair);
- else
- show_upper_widechars(digit * 32 + 128, repeat, space, attr, pair);
-
- mvprintw(LINES - 3, 0,
- "Select: a WACS, x box, u UTF-8, 0-9,+/- non-ASCII, </> repeat, ESC=quit");
- if (use_colors) {
- mvprintw(LINES - 2, 0,
- "v/V, f/F, b/B cycle through video attributes (%s) and color %d/%d.",
- attrs_to_cycle[at_code].name,
- fg, bg);
- } else {
- mvprintw(LINES - 2, 0,
- "v/V cycles through video attributes (%s).",
- attrs_to_cycle[at_code].name);
- }
- refresh();
- } while (!isQuit(c = Getchar()));
-
- Pause();
- erase();
- endwin();
-}
-
-#endif
-
-/*
- * Graphic-rendition test (adapted from vttest)
- */
-static void
-test_sgr_attributes(void)
-{
- int pass;
-
- for (pass = 0; pass < 2; pass++) {
- chtype normal = ((pass == 0 ? A_NORMAL : A_REVERSE)) | BLANK;
-
- /* Use non-default colors if possible to exercise bce a little */
- if (use_colors) {
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- normal |= COLOR_PAIR(1);
- }
- bkgdset(normal);
- erase();
- mvprintw(1, 20, "Graphic rendition test pattern:");
-
- mvprintw(4, 1, "vanilla");
-
-#define set_sgr(mask) bkgdset((normal^(mask)));
- set_sgr(A_BOLD);
- mvprintw(4, 40, "bold");
-
- set_sgr(A_UNDERLINE);
- mvprintw(6, 6, "underline");
-
- set_sgr(A_BOLD | A_UNDERLINE);
- mvprintw(6, 45, "bold underline");
-
- set_sgr(A_BLINK);
- mvprintw(8, 1, "blink");
-
- set_sgr(A_BLINK | A_BOLD);
- mvprintw(8, 40, "bold blink");
-
- set_sgr(A_UNDERLINE | A_BLINK);
- mvprintw(10, 6, "underline blink");
-
- set_sgr(A_BOLD | A_UNDERLINE | A_BLINK);
- mvprintw(10, 45, "bold underline blink");
-
- set_sgr(A_REVERSE);
- mvprintw(12, 1, "negative");
-
- set_sgr(A_BOLD | A_REVERSE);
- mvprintw(12, 40, "bold negative");
-
- set_sgr(A_UNDERLINE | A_REVERSE);
- mvprintw(14, 6, "underline negative");
-
- set_sgr(A_BOLD | A_UNDERLINE | A_REVERSE);
- mvprintw(14, 45, "bold underline negative");
-
- set_sgr(A_BLINK | A_REVERSE);
- mvprintw(16, 1, "blink negative");
-
- set_sgr(A_BOLD | A_BLINK | A_REVERSE);
- mvprintw(16, 40, "bold blink negative");
-
- set_sgr(A_UNDERLINE | A_BLINK | A_REVERSE);
- mvprintw(18, 6, "underline blink negative");
-
- set_sgr(A_BOLD | A_UNDERLINE | A_BLINK | A_REVERSE);
- mvprintw(18, 45, "bold underline blink negative");
-
- bkgdset(normal);
- mvprintw(LINES - 2, 1, "%s background. ", pass == 0 ? "Dark" :
- "Light");
- clrtoeol();
- Pause();
- }
-
- bkgdset(A_NORMAL | BLANK);
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Windows and scrolling tester.
- *
- ****************************************************************************/
-
-#define BOTLINES 4 /* number of line stolen from screen bottom */
-
-typedef struct {
- int y, x;
-} pair;
-
-#define FRAME struct frame
-FRAME
-{
- FRAME *next, *last;
- bool do_scroll;
- bool do_keypad;
- WINDOW *wind;
-};
-
-#if defined(NCURSES_VERSION)
-#if (NCURSES_VERSION_PATCH < 20070331) && NCURSES_EXT_FUNCS
-#define is_keypad(win) (win)->_use_keypad
-#define is_scrollok(win) (win)->_scroll
-#elif !defined(is_keypad)
-#define is_keypad(win) FALSE
-#define is_scrollok(win) FALSE
-#endif
-#else
-#define is_keypad(win) FALSE
-#define is_scrollok(win) FALSE
-#endif
-
-static WINDOW *
-frame_win(FRAME * curp)
-{
- return (curp != 0) ? curp->wind : stdscr;
-}
-
-/* We need to know if these flags are actually set, so don't look in FRAME.
- * These names are known to work with SVr4 curses as well as ncurses. The
- * _use_keypad name does not work with Solaris 8.
- */
-static bool
-HaveKeypad(FRAME * curp)
-{
- WINDOW *win = frame_win(curp);
- (void) win;
- return is_keypad(win);
-}
-
-static bool
-HaveScroll(FRAME * curp)
-{
- WINDOW *win = frame_win(curp);
- (void) win;
- return is_scrollok(win);
-}
-
-static void
-newwin_legend(FRAME * curp)
-{
- static const struct {
- const char *msg;
- int code;
- } legend[] = {
- {
- "^C = create window", 0
- },
- {
- "^N = next window", 0
- },
- {
- "^P = previous window", 0
- },
- {
- "^F = scroll forward", 0
- },
- {
- "^B = scroll backward", 0
- },
- {
- "^K = keypad(%s)", 1
- },
- {
- "^S = scrollok(%s)", 2
- },
- {
- "^W = save window to file", 0
- },
- {
- "^R = restore window", 0
- },
-#if HAVE_WRESIZE
- {
- "^X = resize", 0
- },
-#endif
- {
- "^Q%s = exit", 3
- }
- };
- size_t n;
- int x;
- bool do_keypad = HaveKeypad(curp);
- bool do_scroll = HaveScroll(curp);
- char buf[BUFSIZ];
-
- move(LINES - 4, 0);
- for (n = 0; n < SIZEOF(legend); n++) {
- switch (legend[n].code) {
- default:
- strcpy(buf, legend[n].msg);
- break;
- case 1:
- sprintf(buf, legend[n].msg, do_keypad ? "yes" : "no");
- break;
- case 2:
- sprintf(buf, legend[n].msg, do_scroll ? "yes" : "no");
- break;
- case 3:
- sprintf(buf, legend[n].msg, do_keypad ? "/ESC" : "");
- break;
- }
- x = getcurx(stdscr);
- addstr((COLS < (x + 3 + (int) strlen(buf))) ? "\n" : (n ? ", " : ""));
- addstr(buf);
- }
- clrtoeol();
-}
-
-static void
-transient(FRAME * curp, NCURSES_CONST char *msg)
-{
- newwin_legend(curp);
- if (msg) {
- mvaddstr(LINES - 1, 0, msg);
- refresh();
- napms(1000);
- }
-
- move(LINES - 1, 0);
- printw("%s characters are echoed, window should %sscroll.",
- HaveKeypad(curp) ? "Non-arrow" : "All other",
- HaveScroll(curp) ? "" : "not ");
- clrtoeol();
-}
-
-static void
-newwin_report(FRAME * curp)
-/* report on the cursor's current position, then restore it */
-{
- WINDOW *win = frame_win(curp);
- int y, x;
-
- if (win != stdscr)
- transient(curp, (char *) 0);
- getyx(win, y, x);
- move(LINES - 1, COLS - 17);
- printw("Y = %2d X = %2d", y, x);
- if (win != stdscr)
- refresh();
- else
- wmove(win, y, x);
-}
-
-static pair *
-selectcell(int uli, int ulj, int lri, int lrj)
-/* arrows keys move cursor, return location at current on non-arrow key */
-{
- static pair res; /* result cell */
- int si = lri - uli + 1; /* depth of the select area */
- int sj = lrj - ulj + 1; /* width of the select area */
- int i = 0, j = 0; /* offsets into the select area */
-
- res.y = uli;
- res.x = ulj;
- for (;;) {
- move(uli + i, ulj + j);
- newwin_report((FRAME *) 0);
-
- switch (Getchar()) {
- case KEY_UP:
- i += si - 1;
- break;
- case KEY_DOWN:
- i++;
- break;
- case KEY_LEFT:
- j += sj - 1;
- break;
- case KEY_RIGHT:
- j++;
- break;
- case case_QUIT:
- return ((pair *) 0);
-#ifdef NCURSES_MOUSE_VERSION
- case KEY_MOUSE:
- {
- MEVENT event;
-
- getmouse(&event);
- if (event.y > uli && event.x > ulj) {
- i = event.y - uli;
- j = event.x - ulj;
- } else {
- beep();
- break;
- }
- }
- /* FALLTHRU */
-#endif
- default:
- res.y = uli + i;
- res.x = ulj + j;
- return (&res);
- }
- i %= si;
- j %= sj;
- }
-}
-
-static void
-outerbox(pair ul, pair lr, bool onoff)
-/* draw or erase a box *outside* the given pair of corners */
-{
- mvaddch(ul.y - 1, lr.x - 1, onoff ? ACS_ULCORNER : ' ');
- mvaddch(ul.y - 1, lr.x + 1, onoff ? ACS_URCORNER : ' ');
- mvaddch(lr.y + 1, lr.x + 1, onoff ? ACS_LRCORNER : ' ');
- mvaddch(lr.y + 1, ul.x - 1, onoff ? ACS_LLCORNER : ' ');
- move(ul.y - 1, ul.x);
- hline(onoff ? ACS_HLINE : ' ', lr.x - ul.x + 1);
- move(ul.y, ul.x - 1);
- vline(onoff ? ACS_VLINE : ' ', lr.y - ul.y + 1);
- move(lr.y + 1, ul.x);
- hline(onoff ? ACS_HLINE : ' ', lr.x - ul.x + 1);
- move(ul.y, lr.x + 1);
- vline(onoff ? ACS_VLINE : ' ', lr.y - ul.y + 1);
-}
-
-static WINDOW *
-getwindow(void)
-/* Ask user for a window definition */
-{
- WINDOW *rwindow;
- pair ul, lr, *tmp;
-
- move(0, 0);
- clrtoeol();
- addstr("Use arrows to move cursor, anything else to mark corner 1");
- refresh();
- if ((tmp = selectcell(2, 1, LINES - BOTLINES - 2, COLS - 2)) == (pair *) 0)
- return ((WINDOW *) 0);
- memcpy(&ul, tmp, sizeof(pair));
- mvaddch(ul.y - 1, ul.x - 1, ACS_ULCORNER);
- move(0, 0);
- clrtoeol();
- addstr("Use arrows to move cursor, anything else to mark corner 2");
- refresh();
- if ((tmp = selectcell(ul.y, ul.x, LINES - BOTLINES - 2, COLS - 2)) ==
- (pair *) 0)
- return ((WINDOW *) 0);
- memcpy(&lr, tmp, sizeof(pair));
-
- rwindow = subwin(stdscr, lr.y - ul.y + 1, lr.x - ul.x + 1, ul.y, ul.x);
-
- outerbox(ul, lr, TRUE);
- refresh();
-
- wrefresh(rwindow);
-
- move(0, 0);
- clrtoeol();
- return (rwindow);
-}
-
-static void
-newwin_move(FRAME * curp, int dy, int dx)
-{
- WINDOW *win = frame_win(curp);
- int cur_y, cur_x;
- int max_y, max_x;
-
- getyx(win, cur_y, cur_x);
- getmaxyx(win, max_y, max_x);
- if ((cur_x += dx) < 0)
- cur_x = 0;
- else if (cur_x >= max_x)
- cur_x = max_x - 1;
- if ((cur_y += dy) < 0)
- cur_y = 0;
- else if (cur_y >= max_y)
- cur_y = max_y - 1;
- wmove(win, cur_y, cur_x);
-}
-
-static FRAME *
-delete_framed(FRAME * fp, bool showit)
-{
- FRAME *np = 0;
-
- if (fp != 0) {
- fp->last->next = fp->next;
- fp->next->last = fp->last;
-
- if (showit) {
- werase(fp->wind);
- wrefresh(fp->wind);
- }
- delwin(fp->wind);
-
- np = (fp == fp->next) ? 0 : fp->next;
- free(fp);
- }
- return np;
-}
-
-static void
-acs_and_scroll(void)
-/* Demonstrate windows */
-{
- int c;
- FRAME *current = (FRAME *) 0, *neww;
- WINDOW *usescr = stdscr;
-#if HAVE_PUTWIN && HAVE_GETWIN
- FILE *fp;
-#endif
-
-#define DUMPFILE "screendump"
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(BUTTON1_CLICKED, (mmask_t *) 0);
-#endif
- c = CTRL('C');
- raw();
- do {
- transient((FRAME *) 0, (char *) 0);
- switch (c) {
- case CTRL('C'):
- if ((neww = typeCalloc(FRAME, 1)) == 0) {
- goto breakout;
- }
- if ((neww->wind = getwindow()) == (WINDOW *) 0) {
- free(neww);
- goto breakout;
- }
-
- if (current == 0) { /* First element, */
- neww->next = neww; /* so point it at itself */
- neww->last = neww;
- } else {
- neww->next = current->next;
- neww->last = current;
- neww->last->next = neww;
- neww->next->last = neww;
- }
- current = neww;
- /* SVr4 curses sets the keypad on all newly-created windows to
- * false. Someone reported that PDCurses makes new windows inherit
- * this flag. Remove the following 'keypad()' call to test this
- */
- keypad(current->wind, TRUE);
- current->do_keypad = HaveKeypad(current);
- current->do_scroll = HaveScroll(current);
- break;
-
- case CTRL('N'): /* go to next window */
- if (current)
- current = current->next;
- break;
-
- case CTRL('P'): /* go to previous window */
- if (current)
- current = current->last;
- break;
-
- case CTRL('F'): /* scroll current window forward */
- if (current)
- wscrl(frame_win(current), 1);
- break;
-
- case CTRL('B'): /* scroll current window backwards */
- if (current)
- wscrl(frame_win(current), -1);
- break;
-
- case CTRL('K'): /* toggle keypad mode for current */
- if (current) {
- current->do_keypad = !current->do_keypad;
- keypad(current->wind, current->do_keypad);
- }
- break;
-
- case CTRL('S'):
- if (current) {
- current->do_scroll = !current->do_scroll;
- scrollok(current->wind, current->do_scroll);
- }
- break;
-
-#if HAVE_PUTWIN && HAVE_GETWIN
- case CTRL('W'): /* save and delete window */
- if ((current != 0) && (current == current->next)) {
- transient(current, "Will not save/delete ONLY window");
- break;
- } else if ((fp = fopen(DUMPFILE, "w")) == (FILE *) 0) {
- transient(current, "Can't open screen dump file");
- } else {
- (void) putwin(frame_win(current), fp);
- (void) fclose(fp);
-
- current = delete_framed(current, TRUE);
- }
- break;
-
- case CTRL('R'): /* restore window */
- if ((fp = fopen(DUMPFILE, "r")) == (FILE *) 0) {
- transient(current, "Can't open screen dump file");
- } else {
- if ((neww = typeCalloc(FRAME, 1)) != 0) {
-
- neww->next = current ? current->next : 0;
- neww->last = current;
- neww->last->next = neww;
- neww->next->last = neww;
-
- neww->wind = getwin(fp);
-
- wrefresh(neww->wind);
- }
- (void) fclose(fp);
- }
- break;
-#endif
-
-#if HAVE_WRESIZE
- case CTRL('X'): /* resize window */
- if (current) {
- pair *tmp, ul, lr;
- int i, mx, my;
-
- move(0, 0);
- clrtoeol();
- addstr("Use arrows to move cursor, anything else to mark new corner");
- refresh();
-
- getbegyx(current->wind, ul.y, ul.x);
-
- tmp = selectcell(ul.y, ul.x, LINES - BOTLINES - 2, COLS - 2);
- if (tmp == (pair *) 0) {
- beep();
- break;
- }
-
- getmaxyx(current->wind, lr.y, lr.x);
- lr.y += (ul.y - 1);
- lr.x += (ul.x - 1);
- outerbox(ul, lr, FALSE);
- wnoutrefresh(stdscr);
-
- /* strictly cosmetic hack for the test */
- getmaxyx(current->wind, my, mx);
- if (my > tmp->y - ul.y) {
- getyx(current->wind, lr.y, lr.x);
- wmove(current->wind, tmp->y - ul.y + 1, 0);
- wclrtobot(current->wind);
- wmove(current->wind, lr.y, lr.x);
- }
- if (mx > tmp->x - ul.x)
- for (i = 0; i < my; i++) {
- wmove(current->wind, i, tmp->x - ul.x + 1);
- wclrtoeol(current->wind);
- }
- wnoutrefresh(current->wind);
-
- memcpy(&lr, tmp, sizeof(pair));
- (void) wresize(current->wind, lr.y - ul.y + 0, lr.x - ul.x + 0);
-
- getbegyx(current->wind, ul.y, ul.x);
- getmaxyx(current->wind, lr.y, lr.x);
- lr.y += (ul.y - 1);
- lr.x += (ul.x - 1);
- outerbox(ul, lr, TRUE);
- wnoutrefresh(stdscr);
-
- wnoutrefresh(current->wind);
- move(0, 0);
- clrtoeol();
- doupdate();
- }
- break;
-#endif /* HAVE_WRESIZE */
-
- case KEY_F(10): /* undocumented --- use this to test area clears */
- selectcell(0, 0, LINES - 1, COLS - 1);
- clrtobot();
- refresh();
- break;
-
- case KEY_UP:
- newwin_move(current, -1, 0);
- break;
- case KEY_DOWN:
- newwin_move(current, 1, 0);
- break;
- case KEY_LEFT:
- newwin_move(current, 0, -1);
- break;
- case KEY_RIGHT:
- newwin_move(current, 0, 1);
- break;
-
- case KEY_BACKSPACE:
- /* FALLTHROUGH */
- case KEY_DC:
- {
- int y, x;
- getyx(frame_win(current), y, x);
- if (--x < 0) {
- if (--y < 0)
- break;
- x = getmaxx(frame_win(current)) - 1;
- }
- mvwdelch(frame_win(current), y, x);
- }
- break;
-
- case '\r':
- c = '\n';
- /* FALLTHROUGH */
-
- default:
- if (current)
- waddch(current->wind, (chtype) c);
- else
- beep();
- break;
- }
- newwin_report(current);
- usescr = frame_win(current);
- wrefresh(usescr);
- } while
- (!isQuit(c = wGetchar(usescr))
- && (c != ERR));
-
- breakout:
- while (current != 0)
- current = delete_framed(current, FALSE);
-
- scrollok(stdscr, TRUE); /* reset to driver's default */
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(0, (mmask_t *) 0);
-#endif
- noraw();
- erase();
- endwin();
-}
-
-/****************************************************************************
- *
- * Panels tester
- *
- ****************************************************************************/
-
-#if USE_LIBPANEL
-static int nap_msec = 1;
-
-static NCURSES_CONST char *mod[] =
-{
- "test ",
- "TEST ",
- "(**) ",
- "*()* ",
- "<--> ",
- "LAST "
-};
-
-/*+-------------------------------------------------------------------------
- wait_a_while(msec)
---------------------------------------------------------------------------*/
-static void
-wait_a_while(int msec GCC_UNUSED)
-{
-#if HAVE_NAPMS
- if (nap_msec == 1)
- wGetchar(stdscr);
- else
- napms(nap_msec);
-#else
- if (nap_msec == 1)
- wGetchar(stdscr);
- else if (msec > 1000)
- sleep((unsigned) msec / 1000);
- else
- sleep(1);
-#endif
-} /* end of wait_a_while */
-
-/*+-------------------------------------------------------------------------
- saywhat(text)
---------------------------------------------------------------------------*/
-static void
-saywhat(NCURSES_CONST char *text)
-{
- wmove(stdscr, LINES - 1, 0);
- wclrtoeol(stdscr);
- if (text != 0 && *text != '\0') {
- waddstr(stdscr, text);
- waddstr(stdscr, "; ");
- }
- waddstr(stdscr, "press any key to continue");
-} /* end of saywhat */
-
-/*+-------------------------------------------------------------------------
- mkpanel(rows,cols,tly,tlx) - alloc a win and panel and associate them
---------------------------------------------------------------------------*/
-static PANEL *
-mkpanel(short color, int rows, int cols, int tly, int tlx)
-{
- WINDOW *win;
- PANEL *pan = 0;
-
- if ((win = newwin(rows, cols, tly, tlx)) != 0) {
- if ((pan = new_panel(win)) == 0) {
- delwin(win);
- } else if (use_colors) {
- short fg = (short) ((color == COLOR_BLUE) ? COLOR_WHITE : COLOR_BLACK);
- short bg = color;
-
- init_pair(color, fg, bg);
- wbkgdset(win, (chtype) (COLOR_PAIR(color) | ' '));
- } else {
- wbkgdset(win, A_BOLD | ' ');
- }
- }
- return pan;
-} /* end of mkpanel */
-
-/*+-------------------------------------------------------------------------
- rmpanel(pan)
---------------------------------------------------------------------------*/
-static void
-rmpanel(PANEL * pan)
-{
- WINDOW *win = panel_window(pan);
- del_panel(pan);
- delwin(win);
-} /* end of rmpanel */
-
-/*+-------------------------------------------------------------------------
- pflush()
---------------------------------------------------------------------------*/
-static void
-pflush(void)
-{
- update_panels();
- doupdate();
-} /* end of pflush */
-
-/*+-------------------------------------------------------------------------
- fill_panel(win)
---------------------------------------------------------------------------*/
-static void
-init_panel(void)
-{
- register int y, x;
-
- for (y = 0; y < LINES - 1; y++) {
- for (x = 0; x < COLS; x++)
- wprintw(stdscr, "%d", (y + x) % 10);
- }
-}
-
-static void
-fill_panel(PANEL * pan)
-{
- WINDOW *win = panel_window(pan);
- const char *userptr = (const char *) panel_userptr(pan);
- int num = (userptr && *userptr) ? userptr[1] : '?';
- int y, x;
-
- wmove(win, 1, 1);
- wprintw(win, "-pan%c-", num);
- wclrtoeol(win);
- box(win, 0, 0);
- for (y = 2; y < getmaxy(win) - 1; y++) {
- for (x = 1; x < getmaxx(win) - 1; x++) {
- wmove(win, y, x);
- waddch(win, UChar(num));
- }
- }
-}
-
-#if USE_WIDEC_SUPPORT
-static void
-init_wide_panel(void)
-{
- int digit;
- cchar_t temp[10];
-
- for (digit = 0; digit < 10; ++digit)
- make_fullwidth_digit(&temp[digit], digit);
-
- do {
- int y, x;
- getyx(stdscr, y, x);
- digit = (y + x / 2) % 10;
- } while (add_wch(&temp[digit]) != ERR);
-}
-
-static void
-fill_wide_panel(PANEL * pan)
-{
- WINDOW *win = panel_window(pan);
- const char *userptr = (const char *) panel_userptr(pan);
- int num = (userptr && *userptr) ? userptr[1] : '?';
- int y, x;
-
- wmove(win, 1, 1);
- wprintw(win, "-pan%c-", num);
- wclrtoeol(win);
- box(win, 0, 0);
- for (y = 2; y < getmaxy(win) - 1; y++) {
- for (x = 1; x < getmaxx(win) - 1; x++) {
- wmove(win, y, x);
- waddch(win, UChar(num));
- }
- }
-}
-#endif
-
-#define MAX_PANELS 5
-
-static void
-canned_panel(PANEL * px[MAX_PANELS + 1], NCURSES_CONST char *cmd)
-{
- int which = cmd[1] - '0';
-
- saywhat(cmd);
- switch (*cmd) {
- case 'h':
- hide_panel(px[which]);
- break;
- case 's':
- show_panel(px[which]);
- break;
- case 't':
- top_panel(px[which]);
- break;
- case 'b':
- bottom_panel(px[which]);
- break;
- case 'd':
- rmpanel(px[which]);
- break;
- }
- pflush();
- wait_a_while(nap_msec);
-}
-
-static void
-demo_panels(void (*InitPanel) (void), void (*FillPanel) (PANEL *))
-{
- int count;
- int itmp;
- PANEL *px[MAX_PANELS + 1];
-
- scrollok(stdscr, FALSE); /* we don't want stdscr to scroll! */
- refresh();
-
- InitPanel();
- for (count = 0; count < 5; count++) {
- px[1] = mkpanel(COLOR_RED,
- LINES / 2 - 2,
- COLS / 8 + 1,
- 0,
- 0);
- set_panel_userptr(px[1], (NCURSES_CONST void *) "p1");
-
- px[2] = mkpanel(COLOR_GREEN,
- LINES / 2 + 1,
- COLS / 7,
- LINES / 4,
- COLS / 10);
- set_panel_userptr(px[2], (NCURSES_CONST void *) "p2");
-
- px[3] = mkpanel(COLOR_YELLOW,
- LINES / 4,
- COLS / 10,
- LINES / 2,
- COLS / 9);
- set_panel_userptr(px[3], (NCURSES_CONST void *) "p3");
-
- px[4] = mkpanel(COLOR_BLUE,
- LINES / 2 - 2,
- COLS / 8,
- LINES / 2 - 2,
- COLS / 3);
- set_panel_userptr(px[4], (NCURSES_CONST void *) "p4");
-
- px[5] = mkpanel(COLOR_MAGENTA,
- LINES / 2 - 2,
- COLS / 8,
- LINES / 2,
- COLS / 2 - 2);
- set_panel_userptr(px[5], (NCURSES_CONST void *) "p5");
-
- FillPanel(px[1]);
- FillPanel(px[2]);
- FillPanel(px[3]);
- FillPanel(px[4]);
- FillPanel(px[5]);
-
- hide_panel(px[4]);
- hide_panel(px[5]);
- pflush();
- saywhat("");
- wait_a_while(nap_msec);
-
- saywhat("h3 s1 s2 s4 s5");
- move_panel(px[1], 0, 0);
- hide_panel(px[3]);
- show_panel(px[1]);
- show_panel(px[2]);
- show_panel(px[4]);
- show_panel(px[5]);
- pflush();
- wait_a_while(nap_msec);
-
- canned_panel(px, "s1");
- canned_panel(px, "s2");
-
- saywhat("m2");
- move_panel(px[2], LINES / 3 + 1, COLS / 8);
- pflush();
- wait_a_while(nap_msec);
-
- canned_panel(px, "s3");
-
- saywhat("m3");
- move_panel(px[3], LINES / 4 + 1, COLS / 15);
- pflush();
- wait_a_while(nap_msec);
-
- canned_panel(px, "b3");
- canned_panel(px, "s4");
- canned_panel(px, "s5");
- canned_panel(px, "t3");
- canned_panel(px, "t1");
- canned_panel(px, "t2");
- canned_panel(px, "t3");
- canned_panel(px, "t4");
-
- for (itmp = 0; itmp < 6; itmp++) {
- WINDOW *w4 = panel_window(px[4]);
- WINDOW *w5 = panel_window(px[5]);
-
- saywhat("m4");
- wmove(w4, LINES / 8, 1);
- waddstr(w4, mod[itmp]);
- move_panel(px[4], LINES / 6, itmp * (COLS / 8));
- wmove(w5, LINES / 6, 1);
- waddstr(w5, mod[itmp]);
- pflush();
- wait_a_while(nap_msec);
-
- saywhat("m5");
- wmove(w4, LINES / 6, 1);
- waddstr(w4, mod[itmp]);
- move_panel(px[5], LINES / 3 - 1, (itmp * 10) + 6);
- wmove(w5, LINES / 8, 1);
- waddstr(w5, mod[itmp]);
- pflush();
- wait_a_while(nap_msec);
- }
-
- saywhat("m4");
- move_panel(px[4], LINES / 6, itmp * (COLS / 8));
- pflush();
- wait_a_while(nap_msec);
-
- canned_panel(px, "t5");
- canned_panel(px, "t2");
- canned_panel(px, "t1");
- canned_panel(px, "d2");
- canned_panel(px, "h3");
- canned_panel(px, "d1");
- canned_panel(px, "d4");
- canned_panel(px, "d5");
- canned_panel(px, "d3");
-
- wait_a_while(nap_msec);
- if (nap_msec == 1)
- break;
- nap_msec = 100L;
- }
-
- erase();
- endwin();
-}
-#endif /* USE_LIBPANEL */
-
-/****************************************************************************
- *
- * Pad tester
- *
- ****************************************************************************/
-
-#define GRIDSIZE 3
-
-static bool pending_pan = FALSE;
-static bool show_panner_legend = TRUE;
-
-static int
-panner_legend(int line)
-{
- static const char *const legend[] =
- {
- "Use arrow keys (or U,D,L,R) to pan, ESC to quit, ! to shell-out.",
- "Use +,- (or j,k) to grow/shrink the panner vertically.",
- "Use <,> (or h,l) to grow/shrink the panner horizontally.",
- "Number repeats. Toggle legend:? filler:a timer:t scrollmark:s."
- };
- int n = ((int) SIZEOF(legend) - (LINES - line));
- if (line < LINES && (n >= 0)) {
- move(line, 0);
- if (show_panner_legend)
- printw("%s", legend[n]);
- clrtoeol();
- return show_panner_legend;
- }
- return FALSE;
-}
-
-static void
-panner_h_cleanup(int from_y, int from_x, int to_x)
-{
- if (!panner_legend(from_y))
- do_h_line(from_y, from_x, ' ', to_x);
-}
-
-static void
-panner_v_cleanup(int from_y, int from_x, int to_y)
-{
- if (!panner_legend(from_y))
- do_v_line(from_y, from_x, ' ', to_y);
-}
-
-static void
-fill_pad(WINDOW *panpad, bool pan_lines)
-{
- int y, x;
- unsigned gridcount = 0;
-
- wmove(panpad, 0, 0);
- for (y = 0; y < getmaxy(panpad); y++) {
- for (x = 0; x < getmaxx(panpad); x++) {
- if (y % GRIDSIZE == 0 && x % GRIDSIZE == 0) {
- if (y == 0 && x == 0)
- waddch(panpad, pan_lines ? ACS_ULCORNER : '+');
- else if (y == 0)
- waddch(panpad, pan_lines ? ACS_TTEE : '+');
- else if (y == 0 || x == 0)
- waddch(panpad, pan_lines ? ACS_LTEE : '+');
- else
- waddch(panpad, (chtype) ((pan_lines ? 'a' : 'A') +
- (int) (gridcount++ % 26)));
- } else if (y % GRIDSIZE == 0)
- waddch(panpad, pan_lines ? ACS_HLINE : '-');
- else if (x % GRIDSIZE == 0)
- waddch(panpad, pan_lines ? ACS_VLINE : '|');
- else
- waddch(panpad, ' ');
- }
- }
-}
-
-static void
-panner(WINDOW *pad,
- int top_x, int top_y, int porty, int portx,
- int (*pgetc) (WINDOW *))
-{
-#if HAVE_GETTIMEOFDAY
- struct timeval before, after;
- bool timing = TRUE;
-#endif
- bool pan_lines = FALSE;
- bool scrollers = TRUE;
- int basex = 0;
- int basey = 0;
- int pxmax, pymax, lowend, highend, c;
-
- getmaxyx(pad, pymax, pxmax);
- scrollok(stdscr, FALSE); /* we don't want stdscr to scroll! */
-
- c = KEY_REFRESH;
- do {
-#ifdef NCURSES_VERSION
- /*
- * During shell-out, the user may have resized the window. Adjust
- * the port size of the pad to accommodate this. Ncurses automatically
- * resizes all of the normal windows to fit on the new screen.
- */
- if (top_x > COLS)
- top_x = COLS;
- if (portx > COLS)
- portx = COLS;
- if (top_y > LINES)
- top_y = LINES;
- if (porty > LINES)
- porty = LINES;
-#endif
- switch (c) {
- case KEY_REFRESH:
- erase();
-
- /* FALLTHRU */
- case '?':
- if (c == '?')
- show_panner_legend = !show_panner_legend;
- panner_legend(LINES - 4);
- panner_legend(LINES - 3);
- panner_legend(LINES - 2);
- panner_legend(LINES - 1);
- break;
- case 'a':
- pan_lines = !pan_lines;
- fill_pad(pad, pan_lines);
- pending_pan = FALSE;
- break;
-
-#if HAVE_GETTIMEOFDAY
- case 't':
- timing = !timing;
- if (!timing)
- panner_legend(LINES - 1);
- break;
-#endif
- case 's':
- scrollers = !scrollers;
- break;
-
- /* Move the top-left corner of the pad, keeping the bottom-right
- * corner fixed.
- */
- case 'h': /* increase-columns: move left edge to left */
- if (top_x <= 0)
- beep();
- else {
- panner_v_cleanup(top_y, top_x, porty);
- top_x--;
- }
- break;
-
- case 'j': /* decrease-lines: move top-edge down */
- if (top_y >= porty)
- beep();
- else {
- panner_h_cleanup(top_y - 1, top_x - (top_x > 0), portx);
- top_y++;
- }
- break;
-
- case 'k': /* increase-lines: move top-edge up */
- if (top_y <= 0)
- beep();
- else {
- top_y--;
- panner_h_cleanup(top_y, top_x, portx);
- }
- break;
-
- case 'l': /* decrease-columns: move left-edge to right */
- if (top_x >= portx)
- beep();
- else {
- panner_v_cleanup(top_y - (top_y > 0), top_x - 1, porty);
- top_x++;
- }
- break;
-
- /* Move the bottom-right corner of the pad, keeping the top-left
- * corner fixed.
- */
- case KEY_IC: /* increase-columns: move right-edge to right */
- if (portx >= pxmax || portx >= COLS)
- beep();
- else {
- panner_v_cleanup(top_y - (top_y > 0), portx - 1, porty);
- ++portx;
- }
- break;
-
- case KEY_IL: /* increase-lines: move bottom-edge down */
- if (porty >= pymax || porty >= LINES)
- beep();
- else {
- panner_h_cleanup(porty - 1, top_x - (top_x > 0), portx);
- ++porty;
- }
- break;
-
- case KEY_DC: /* decrease-columns: move bottom edge up */
- if (portx <= top_x)
- beep();
- else {
- portx--;
- panner_v_cleanup(top_y - (top_y > 0), portx, porty);
- }
- break;
-
- case KEY_DL: /* decrease-lines */
- if (porty <= top_y)
- beep();
- else {
- porty--;
- panner_h_cleanup(porty, top_x - (top_x > 0), portx);
- }
- break;
-
- case KEY_LEFT: /* pan leftwards */
- if (basex > 0)
- basex--;
- else
- beep();
- break;
-
- case KEY_RIGHT: /* pan rightwards */
- if (basex + portx - (pymax > porty) < pxmax)
- basex++;
- else
- beep();
- break;
-
- case KEY_UP: /* pan upwards */
- if (basey > 0)
- basey--;
- else
- beep();
- break;
-
- case KEY_DOWN: /* pan downwards */
- if (basey + porty - (pxmax > portx) < pymax)
- basey++;
- else
- beep();
- break;
-
- case 'H':
- case KEY_HOME:
- case KEY_FIND:
- basey = 0;
- break;
-
- case 'E':
- case KEY_END:
- case KEY_SELECT:
- basey = pymax - porty;
- if (basey < 0)
- basey = 0;
- break;
-
- default:
- beep();
- break;
- }
-
- mvaddch(top_y - 1, top_x - 1, ACS_ULCORNER);
- do_v_line(top_y, top_x - 1, ACS_VLINE, porty);
- do_h_line(top_y - 1, top_x, ACS_HLINE, portx);
-
- if (scrollers && (pxmax > portx - 1)) {
- int length = (portx - top_x - 1);
- float ratio = ((float) length) / ((float) pxmax);
-
- lowend = (int) ((float) top_x + ((float) basex * ratio));
- highend = (int) ((float) top_x + ((float) (basex + length) * ratio));
-
- do_h_line(porty - 1, top_x, ACS_HLINE, lowend);
- if (highend < portx) {
- attron(A_REVERSE);
- do_h_line(porty - 1, lowend, ' ', highend + 1);
- attroff(A_REVERSE);
- do_h_line(porty - 1, highend + 1, ACS_HLINE, portx);
- }
- } else
- do_h_line(porty - 1, top_x, ACS_HLINE, portx);
-
- if (scrollers && (pymax > porty - 1)) {
- int length = (porty - top_y - 1);
- float ratio = ((float) length) / ((float) pymax);
-
- lowend = (int) ((float) top_y + ((float) basey * ratio));
- highend = (int) ((float) top_y + ((float) (basey + length) * ratio));
-
- do_v_line(top_y, portx - 1, ACS_VLINE, lowend);
- if (highend < porty) {
- attron(A_REVERSE);
- do_v_line(lowend, portx - 1, ' ', highend + 1);
- attroff(A_REVERSE);
- do_v_line(highend + 1, portx - 1, ACS_VLINE, porty);
- }
- } else
- do_v_line(top_y, portx - 1, ACS_VLINE, porty);
-
- mvaddch(top_y - 1, portx - 1, ACS_URCORNER);
- mvaddch(porty - 1, top_x - 1, ACS_LLCORNER);
- mvaddch(porty - 1, portx - 1, ACS_LRCORNER);
-
- if (!pending_pan) {
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&before, 0);
-#endif
- wnoutrefresh(stdscr);
-
- pnoutrefresh(pad,
- basey, basex,
- top_y, top_x,
- porty - (pxmax > portx) - 1,
- portx - (pymax > porty) - 1);
-
- doupdate();
-#if HAVE_GETTIMEOFDAY
- if (timing) {
- double elapsed;
- gettimeofday(&after, 0);
- elapsed = (after.tv_sec + after.tv_usec / 1.0e6)
- - (before.tv_sec + before.tv_usec / 1.0e6);
- move(LINES - 1, COLS - 12);
- printw("Secs: %2.03f", elapsed);
- refresh();
- }
-#endif
- }
-
- } while
- ((c = pgetc(pad)) != KEY_EXIT);
-
- scrollok(stdscr, TRUE); /* reset to driver's default */
-}
-
-static int
-padgetch(WINDOW *win)
-{
- static int count;
- static int last;
- int c;
-
- if ((pending_pan = (count > 0)) != FALSE) {
- count--;
- pending_pan = (count != 0);
- } else {
- for (;;) {
- switch (c = wGetchar(win)) {
- case '!':
- ShellOut(FALSE);
- /* FALLTHRU */
- case CTRL('r'):
- endwin();
- refresh();
- c = KEY_REFRESH;
- break;
- case CTRL('l'):
- c = KEY_REFRESH;
- break;
- case 'U':
- c = KEY_UP;
- break;
- case 'D':
- c = KEY_DOWN;
- break;
- case 'R':
- c = KEY_RIGHT;
- break;
- case 'L':
- c = KEY_LEFT;
- break;
- case '+':
- c = KEY_IL;
- break;
- case '-':
- c = KEY_DL;
- break;
- case '>':
- c = KEY_IC;
- break;
- case '<':
- c = KEY_DC;
- break;
- case ERR: /* FALLTHRU */
- case case_QUIT:
- count = 0;
- c = KEY_EXIT;
- break;
- default:
- if (c >= '0' && c <= '9') {
- count = count * 10 + (c - '0');
- continue;
- }
- break;
- }
- last = c;
- break;
- }
- if (count > 0)
- count--;
- }
- return (last);
-}
-
-#define PAD_HIGH 200
-#define PAD_WIDE 200
-
-static void
-demo_pad(void)
-/* Demonstrate pads. */
-{
- WINDOW *panpad = newpad(PAD_HIGH, PAD_WIDE);
-
- if (panpad == 0) {
- Cannot("cannot create requested pad");
- return;
- }
-
- fill_pad(panpad, FALSE);
-
- panner_legend(LINES - 4);
- panner_legend(LINES - 3);
- panner_legend(LINES - 2);
- panner_legend(LINES - 1);
-
- keypad(panpad, TRUE);
-
- /* Make the pad (initially) narrow enough that a trace file won't wrap.
- * We'll still be able to widen it during a test, since that's required
- * for testing boundaries.
- */
- panner(panpad, 2, 2, LINES - 5, COLS - 15, padgetch);
-
- delwin(panpad);
- endwin();
- erase();
-}
-
-/****************************************************************************
- *
- * Tests from John Burnell's PDCurses tester
- *
- ****************************************************************************/
-
-static void
-Continue(WINDOW *win)
-{
- noecho();
- wmove(win, 10, 1);
- mvwaddstr(win, 10, 1, " Press any key to continue");
- wrefresh(win);
- wGetchar(win);
-}
-
-static void
-flushinp_test(WINDOW *win)
-/* Input test, adapted from John Burnell's PDCurses tester */
-{
- int w, h, bx, by, sw, sh, i;
-
- WINDOW *subWin;
- wclear(win);
-
- getmaxyx(win, h, w);
- getbegyx(win, by, bx);
- sw = w / 3;
- sh = h / 3;
- if ((subWin = subwin(win, sh, sw, by + h - sh - 2, bx + w - sw - 2)) == 0)
- return;
-
-#ifdef A_COLOR
- if (use_colors) {
- init_pair(2, COLOR_CYAN, COLOR_BLUE);
- wbkgd(subWin, COLOR_PAIR(2) | ' ');
- }
-#endif
- wattrset(subWin, A_BOLD);
- box(subWin, ACS_VLINE, ACS_HLINE);
- mvwaddstr(subWin, 2, 1, "This is a subwindow");
- wrefresh(win);
-
- /*
- * This used to set 'nocbreak()'. However, Alexander Lukyanov says that
- * it only happened to "work" on SVr4 because that implementation does not
- * emulate nocbreak+noecho mode, whereas ncurses does. To get the desired
- * test behavior, we're using 'cbreak()', which will allow a single
- * character to return without needing a newline. - T.Dickey 1997/10/11.
- */
- cbreak();
- mvwaddstr(win, 0, 1, "This is a test of the flushinp() call.");
-
- mvwaddstr(win, 2, 1, "Type random keys for 5 seconds.");
- mvwaddstr(win, 3, 1,
- "These should be discarded (not echoed) after the subwindow goes away.");
- wrefresh(win);
-
- for (i = 0; i < 5; i++) {
- mvwprintw(subWin, 1, 1, "Time = %d", i);
- wrefresh(subWin);
- napms(1000);
- flushinp();
- }
-
- delwin(subWin);
- werase(win);
- flash();
- wrefresh(win);
- napms(1000);
-
- mvwaddstr(win, 2, 1,
- "If you were still typing when the window timer expired,");
- mvwaddstr(win, 3, 1,
- "or else you typed nothing at all while it was running,");
- mvwaddstr(win, 4, 1,
- "test was invalid. You'll see garbage or nothing at all. ");
- mvwaddstr(win, 6, 1, "Press a key");
- wmove(win, 9, 10);
- wrefresh(win);
- echo();
- wGetchar(win);
- flushinp();
- mvwaddstr(win, 12, 0,
- "If you see any key other than what you typed, flushinp() is broken.");
- Continue(win);
-
- wmove(win, 9, 10);
- wdelch(win);
- wrefresh(win);
- wmove(win, 12, 0);
- clrtoeol();
- waddstr(win,
- "What you typed should now have been deleted; if not, wdelch() failed.");
- Continue(win);
-
- cbreak();
-}
-
-/****************************************************************************
- *
- * Menu test
- *
- ****************************************************************************/
-
-#if USE_LIBMENU
-
-#define MENU_Y 8
-#define MENU_X 8
-
-static int
-menu_virtualize(int c)
-{
- if (c == '\n' || c == KEY_EXIT)
- return (MAX_COMMAND + 1);
- else if (c == 'u')
- return (REQ_SCR_ULINE);
- else if (c == 'd')
- return (REQ_SCR_DLINE);
- else if (c == 'b' || c == KEY_NPAGE)
- return (REQ_SCR_UPAGE);
- else if (c == 'f' || c == KEY_PPAGE)
- return (REQ_SCR_DPAGE);
- else if (c == 'n' || c == KEY_DOWN)
- return (REQ_NEXT_ITEM);
- else if (c == 'p' || c == KEY_UP)
- return (REQ_PREV_ITEM);
- else if (c == ' ')
- return (REQ_TOGGLE_ITEM);
- else {
- if (c != KEY_MOUSE)
- beep();
- return (c);
- }
-}
-
-static CONST_MENUS char *animals[] =
-{
- "Lions",
- "Tigers",
- "Bears",
- "(Oh my!)",
- "Newts",
- "Platypi",
- "Lemurs",
- "(Oh really?!)",
- "Leopards",
- "Panthers",
- "Pumas",
- "Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs",
- "Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs, Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs",
- (char *) 0
-};
-
-static void
-menu_test(void)
-{
- MENU *m;
- ITEM *items[SIZEOF(animals)];
- ITEM **ip = items;
- CONST_MENUS char **ap;
- int mrows, mcols, c;
- WINDOW *menuwin;
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
-#endif
- mvaddstr(0, 0, "This is the menu test:");
- mvaddstr(2, 0, " Use up and down arrow to move the select bar.");
- mvaddstr(3, 0, " 'n' and 'p' act like arrows.");
- mvaddstr(4, 0,
- " 'b' and 'f' scroll up/down (page), 'u' and 'd' (line).");
- mvaddstr(5, 0, " Press return to exit.");
- refresh();
-
- for (ap = animals; *ap; ap++) {
- if ((*ip = new_item(*ap, "")) != 0)
- ++ip;
- }
- *ip = (ITEM *) 0;
-
- m = new_menu(items);
-
- set_menu_format(m, (SIZEOF(animals) + 1) / 2, 1);
- scale_menu(m, &mrows, &mcols);
-
- menuwin = newwin(mrows + 2, mcols + 2, MENU_Y, MENU_X);
- set_menu_win(m, menuwin);
- keypad(menuwin, TRUE);
- box(menuwin, 0, 0);
-
- set_menu_sub(m, derwin(menuwin, mrows, mcols, 1, 1));
-
- post_menu(m);
-
- while ((c = menu_driver(m, menu_virtualize(wGetchar(menuwin)))) != E_UNKNOWN_COMMAND) {
- if (c == E_NOT_POSTED)
- break;
- if (c == E_REQUEST_DENIED)
- beep();
- continue;
- }
-
- (void) mvprintw(LINES - 2, 0,
- "You chose: %s\n", item_name(current_item(m)));
- (void) addstr("Press any key to continue...");
- wGetchar(stdscr);
-
- unpost_menu(m);
- delwin(menuwin);
-
- free_menu(m);
- for (ip = items; *ip; ip++)
- free_item(*ip);
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(0, (mmask_t *) 0);
-#endif
-}
-
-#ifdef TRACE
-#define T_TBL(name) { #name, name }
-static struct {
- const char *name;
- unsigned mask;
-} t_tbl[] = {
-
- T_TBL(TRACE_DISABLE),
- T_TBL(TRACE_TIMES),
- T_TBL(TRACE_TPUTS),
- T_TBL(TRACE_UPDATE),
- T_TBL(TRACE_MOVE),
- T_TBL(TRACE_CHARPUT),
- T_TBL(TRACE_ORDINARY),
- T_TBL(TRACE_CALLS),
- T_TBL(TRACE_VIRTPUT),
- T_TBL(TRACE_IEVENT),
- T_TBL(TRACE_BITS),
- T_TBL(TRACE_ICALLS),
- T_TBL(TRACE_CCALLS),
- T_TBL(TRACE_DATABASE),
- T_TBL(TRACE_ATTRS),
- T_TBL(TRACE_MAXIMUM),
- {
- (char *) 0, 0
- }
-};
-
-static char *
-tracetrace(unsigned tlevel)
-{
- static char *buf;
- int n;
-
- if (buf == 0) {
- size_t need = 12;
- for (n = 0; t_tbl[n].name != 0; n++)
- need += strlen(t_tbl[n].name) + 2;
- buf = typeMalloc(char, need);
- }
- sprintf(buf, "0x%02x = {", tlevel);
- if (tlevel == 0) {
- sprintf(buf + strlen(buf), "%s, ", t_tbl[0].name);
- } else {
- for (n = 1; t_tbl[n].name != 0; n++)
- if ((tlevel & t_tbl[n].mask) == t_tbl[n].mask) {
- strcat(buf, t_tbl[n].name);
- strcat(buf, ", ");
- }
- }
- if (buf[strlen(buf) - 2] == ',')
- buf[strlen(buf) - 2] = '\0';
- return (strcat(buf, "}"));
-}
-
-/* fake a dynamically reconfigurable menu using the 0th entry to deselect
- * the others
- */
-static int
-run_trace_menu(MENU * m)
-{
- ITEM **items;
- ITEM *i, **p;
-
- for (;;) {
- bool changed = FALSE;
- switch (menu_driver(m, menu_virtualize(wGetchar(menu_win(m))))) {
- case E_UNKNOWN_COMMAND:
- return FALSE;
- default:
- items = menu_items(m);
- i = current_item(m);
- if (i == items[0]) {
- if (item_value(i)) {
- for (p = items + 1; *p != 0; p++)
- if (item_value(*p)) {
- set_item_value(*p, FALSE);
- changed = TRUE;
- }
- }
- } else {
- for (p = items + 1; *p != 0; p++)
- if (item_value(*p)) {
- set_item_value(items[0], FALSE);
- changed = TRUE;
- break;
- }
- }
- if (!changed)
- return TRUE;
- }
- }
-}
-
-static void
-trace_set(void)
-/* interactively set the trace level */
-{
- MENU *m;
- ITEM *items[SIZEOF(t_tbl)];
- ITEM **ip = items;
- int mrows, mcols;
- unsigned newtrace;
- int n;
- WINDOW *menuwin;
-
- mvaddstr(0, 0, "Interactively set trace level:");
- mvaddstr(2, 0, " Press space bar to toggle a selection.");
- mvaddstr(3, 0, " Use up and down arrow to move the select bar.");
- mvaddstr(4, 0, " Press return to set the trace level.");
- mvprintw(6, 0, "(Current trace level is %s)", tracetrace(_nc_tracing));
-
- refresh();
-
- for (n = 0; t_tbl[n].name != 0; n++) {
- if ((*ip = new_item(t_tbl[n].name, "")) != 0) {
- ++ip;
- }
- }
- *ip = (ITEM *) 0;
-
- m = new_menu(items);
-
- set_menu_format(m, 0, 2);
- scale_menu(m, &mrows, &mcols);
-
- menu_opts_off(m, O_ONEVALUE);
- menuwin = newwin(mrows + 2, mcols + 2, MENU_Y, MENU_X);
- set_menu_win(m, menuwin);
- keypad(menuwin, TRUE);
- box(menuwin, 0, 0);
-
- set_menu_sub(m, derwin(menuwin, mrows, mcols, 1, 1));
-
- post_menu(m);
-
- for (ip = menu_items(m); *ip; ip++) {
- unsigned mask = t_tbl[item_index(*ip)].mask;
- if (mask == 0)
- set_item_value(*ip, _nc_tracing == 0);
- else if ((mask & _nc_tracing) == mask)
- set_item_value(*ip, TRUE);
- }
-
- while (run_trace_menu(m))
- continue;
-
- newtrace = 0;
- for (ip = menu_items(m); *ip; ip++)
- if (item_value(*ip))
- newtrace |= t_tbl[item_index(*ip)].mask;
- trace(newtrace);
- Trace(("trace level interactively set to %s", tracetrace(_nc_tracing)));
-
- (void) mvprintw(LINES - 2, 0,
- "Trace level is %s\n", tracetrace(_nc_tracing));
- (void) addstr("Press any key to continue...");
- wGetchar(stdscr);
-
- unpost_menu(m);
- delwin(menuwin);
-
- free_menu(m);
- for (ip = items; *ip; ip++)
- free_item(*ip);
-}
-#endif /* TRACE */
-#endif /* USE_LIBMENU */
-
-/****************************************************************************
- *
- * Forms test
- *
- ****************************************************************************/
-#if USE_LIBFORM
-static FIELD *
-make_label(int frow, int fcol, NCURSES_CONST char *label)
-{
- FIELD *f = new_field(1, (int) strlen(label), frow, fcol, 0, 0);
-
- if (f) {
- set_field_buffer(f, 0, label);
- set_field_opts(f, (int) (field_opts(f) & ~O_ACTIVE));
- }
- return (f);
-}
-
-static FIELD *
-make_field(int frow, int fcol, int rows, int cols, bool secure)
-{
- FIELD *f = new_field(rows, cols, frow, fcol, 0, secure ? 1 : 0);
-
- if (f) {
- set_field_back(f, A_UNDERLINE);
- set_field_userptr(f, (void *) 0);
- }
- return (f);
-}
-
-static void
-display_form(FORM * f)
-{
- WINDOW *w;
- int rows, cols;
-
- scale_form(f, &rows, &cols);
-
- if ((w = newwin(rows + 2, cols + 4, 0, 0)) != (WINDOW *) 0) {
- set_form_win(f, w);
- set_form_sub(f, derwin(w, rows, cols, 1, 2));
- box(w, 0, 0);
- keypad(w, TRUE);
- }
-
- if (post_form(f) != E_OK)
- wrefresh(w);
-}
-
-static void
-erase_form(FORM * f)
-{
- WINDOW *w = form_win(f);
- WINDOW *s = form_sub(f);
-
- unpost_form(f);
- werase(w);
- wrefresh(w);
- delwin(s);
- delwin(w);
-}
-
-static int
-edit_secure(FIELD * me, int c)
-{
- int rows, cols, frow, fcol, nrow, nbuf;
-
- if (field_info(me, &rows, &cols, &frow, &fcol, &nrow, &nbuf) == E_OK
- && nbuf > 0) {
- char *source = field_buffer(me, 1);
- char temp[80];
- long len;
-
- strcpy(temp, source ? source : "");
- len = (long) (char *) field_userptr(me);
- if (c <= KEY_MAX) {
- if (isgraph(c) && (len + 1) < (int) sizeof(temp)) {
- temp[len++] = (char) c;
- temp[len] = 0;
- set_field_buffer(me, 1, temp);
- c = '*';
- } else {
- c = 0;
- }
- } else {
- switch (c) {
- case REQ_BEG_FIELD:
- case REQ_CLR_EOF:
- case REQ_CLR_EOL:
- case REQ_DEL_LINE:
- case REQ_DEL_WORD:
- case REQ_DOWN_CHAR:
- case REQ_END_FIELD:
- case REQ_INS_CHAR:
- case REQ_INS_LINE:
- case REQ_LEFT_CHAR:
- case REQ_NEW_LINE:
- case REQ_NEXT_WORD:
- case REQ_PREV_WORD:
- case REQ_RIGHT_CHAR:
- case REQ_UP_CHAR:
- c = 0; /* we don't want to do inline editing */
- break;
- case REQ_CLR_FIELD:
- if (len) {
- temp[0] = 0;
- set_field_buffer(me, 1, temp);
- }
- break;
- case REQ_DEL_CHAR:
- case REQ_DEL_PREV:
- if (len) {
- temp[--len] = 0;
- set_field_buffer(me, 1, temp);
- }
- break;
- }
- }
- set_field_userptr(me, (void *) len);
- }
- return c;
-}
-
-static int
-form_virtualize(FORM * f, WINDOW *w)
-{
- /* *INDENT-OFF* */
- static const struct {
- int code;
- int result;
- } lookup[] = {
- { CTRL('A'), REQ_NEXT_CHOICE },
- { CTRL('B'), REQ_PREV_WORD },
- { CTRL('C'), REQ_CLR_EOL },
- { CTRL('D'), REQ_DOWN_FIELD },
- { CTRL('E'), REQ_END_FIELD },
- { CTRL('F'), REQ_NEXT_PAGE },
- { CTRL('G'), REQ_DEL_WORD },
- { CTRL('H'), REQ_DEL_PREV },
- { CTRL('I'), REQ_INS_CHAR },
- { CTRL('K'), REQ_CLR_EOF },
- { CTRL('L'), REQ_LEFT_FIELD },
- { CTRL('M'), REQ_NEW_LINE },
- { CTRL('N'), REQ_NEXT_FIELD },
- { CTRL('O'), REQ_INS_LINE },
- { CTRL('P'), REQ_PREV_FIELD },
- { CTRL('R'), REQ_RIGHT_FIELD },
- { CTRL('S'), REQ_BEG_FIELD },
- { CTRL('U'), REQ_UP_FIELD },
- { CTRL('V'), REQ_DEL_CHAR },
- { CTRL('W'), REQ_NEXT_WORD },
- { CTRL('X'), REQ_CLR_FIELD },
- { CTRL('Y'), REQ_DEL_LINE },
- { CTRL('Z'), REQ_PREV_CHOICE },
- { ESCAPE, MAX_FORM_COMMAND + 1 },
- { KEY_BACKSPACE, REQ_DEL_PREV },
- { KEY_DOWN, REQ_DOWN_CHAR },
- { KEY_END, REQ_LAST_FIELD },
- { KEY_HOME, REQ_FIRST_FIELD },
- { KEY_LEFT, REQ_LEFT_CHAR },
- { KEY_LL, REQ_LAST_FIELD },
- { KEY_NEXT, REQ_NEXT_FIELD },
- { KEY_NPAGE, REQ_NEXT_PAGE },
- { KEY_PPAGE, REQ_PREV_PAGE },
- { KEY_PREVIOUS, REQ_PREV_FIELD },
- { KEY_RIGHT, REQ_RIGHT_CHAR },
- { KEY_UP, REQ_UP_CHAR },
- { QUIT, MAX_FORM_COMMAND + 1 }
- };
- /* *INDENT-ON* */
-
- static int mode = REQ_INS_MODE;
- int c = wGetchar(w);
- unsigned n;
- FIELD *me = current_field(f);
- bool current = TRUE;
-
- if (c == CTRL(']')) {
- if (mode == REQ_INS_MODE) {
- mode = REQ_OVL_MODE;
- } else {
- mode = REQ_INS_MODE;
- }
- c = mode;
- } else {
- for (n = 0; n < SIZEOF(lookup); n++) {
- if (lookup[n].code == c) {
- c = lookup[n].result;
- break;
- }
- }
- }
- mvprintw(0, COLS - 6, "(%s)", mode == REQ_INS_MODE ? "INS" : "OVL");
-
- /*
- * Force the field that the user is typing into to be in reverse video,
- * while the other fields are shown underlined.
- */
- switch (c) {
- case REQ_BEG_FIELD:
- case REQ_CLR_EOF:
- case REQ_CLR_EOL:
- case REQ_CLR_FIELD:
- case REQ_DEL_CHAR:
- case REQ_DEL_LINE:
- case REQ_DEL_PREV:
- case REQ_DEL_WORD:
- case REQ_END_FIELD:
- case REQ_INS_CHAR:
- case REQ_INS_LINE:
- case REQ_LEFT_CHAR:
- case REQ_LEFT_FIELD:
- case REQ_NEXT_WORD:
- case REQ_RIGHT_CHAR:
- current = TRUE;
- break;
- default:
- current = (c < KEY_MAX);
- break;
- }
- if (current) {
- c = edit_secure(me, c);
- set_field_back(me, A_REVERSE);
- } else {
- c = edit_secure(me, c);
- set_field_back(me, A_UNDERLINE);
- }
- return c;
-}
-
-static int
-my_form_driver(FORM * form, int c)
-{
- if (c == (MAX_FORM_COMMAND + 1)
- && form_driver(form, REQ_VALIDATION) == E_OK)
- return (TRUE);
- else {
- beep();
- return (FALSE);
- }
-}
-
-#ifdef NCURSES_VERSION
-#define FIELDCHECK_CB(func) bool func(FIELD * fld, const void * data GCC_UNUSED)
-#define CHAR_CHECK_CB(func) bool func(int ch, const void *data GCC_UNUSED)
-#else
-#define FIELDCHECK_CB(func) int func(FIELD * fld, char * data GCC_UNUSED)
-#define CHAR_CHECK_CB(func) int func(int ch, char *data GCC_UNUSED)
-#endif
-
-/*
- * Allow a middle initial, optionally with a '.' to end it.
- */
-static
-FIELDCHECK_CB(mi_field_check)
-{
- char *s = field_buffer(fld, 0);
- int state = 0;
- int n;
-
- for (n = 0; s[n] != '\0'; ++n) {
- switch (state) {
- case 0:
- if (s[n] == '.') {
- if (n != 1)
- return FALSE;
- state = 2;
- } else if (isspace(UChar(s[n]))) {
- state = 2;
- }
- break;
- case 2:
- if (!isspace(UChar(s[n])))
- return FALSE;
- break;
- }
- }
-
- /* force the form to display a leading capital */
- if (islower(UChar(s[0]))) {
- s[0] = (char) toupper(UChar(s[0]));
- set_field_buffer(fld, 0, s);
- }
- return TRUE;
-}
-
-static
-CHAR_CHECK_CB(mi_char_check)
-{
- return ((isalpha(ch) || ch == '.') ? TRUE : FALSE);
-}
-
-/*
- * Passwords should be at least 6 characters.
- */
-static
-FIELDCHECK_CB(pw_field_check)
-{
- char *s = field_buffer(fld, 0);
- int n;
-
- for (n = 0; s[n] != '\0'; ++n) {
- if (isspace(UChar(s[n]))) {
- if (n < 6)
- return FALSE;
- }
- }
- return TRUE;
-}
-
-static
-CHAR_CHECK_CB(pw_char_check)
-{
- return (isgraph(ch) ? TRUE : FALSE);
-}
-
-static void
-demo_forms(void)
-{
- WINDOW *w;
- FORM *form;
- FIELD *f[12], *secure;
- FIELDTYPE *fty_middle = new_fieldtype(mi_field_check, mi_char_check);
- FIELDTYPE *fty_passwd = new_fieldtype(pw_field_check, pw_char_check);
- int finished = 0, c;
- unsigned n = 0;
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
-#endif
-
- move(18, 0);
- addstr("Defined edit/traversal keys: ^Q/ESC- exit form\n");
- addstr("^N -- go to next field ^P -- go to previous field\n");
- addstr("Home -- go to first field End -- go to last field\n");
- addstr("^L -- go to field to left ^R -- go to field to right\n");
- addstr("^U -- move upward to field ^D -- move downward to field\n");
- addstr("^W -- go to next word ^B -- go to previous word\n");
- addstr("^S -- go to start of field ^E -- go to end of field\n");
- addstr("^H -- delete previous char ^Y -- delete line\n");
- addstr("^G -- delete current word ^C -- clear to end of line\n");
- addstr("^K -- clear to end of field ^X -- clear field\n");
- addstr("Arrow keys move within a field as you would expect. ^] toggles overlay mode.");
-
- mvaddstr(4, 57, "Forms Entry Test");
-
- refresh();
-
- /* describe the form */
- memset(f, 0, sizeof(f));
- f[n++] = make_label(0, 15, "Sample Form");
-
- f[n++] = make_label(2, 0, "Last Name");
- f[n++] = make_field(3, 0, 1, 18, FALSE);
- set_field_type(f[n - 1], TYPE_ALPHA, 1);
-
- f[n++] = make_label(2, 20, "First Name");
- f[n++] = make_field(3, 20, 1, 12, FALSE);
- set_field_type(f[n - 1], TYPE_ALPHA, 1);
-
- f[n++] = make_label(2, 34, "Middle Name");
- f[n++] = make_field(3, 34, 1, 12, FALSE);
- set_field_type(f[n - 1], fty_middle);
-
- f[n++] = make_label(5, 0, "Comments");
- f[n++] = make_field(6, 0, 4, 46, FALSE);
-
- f[n++] = make_label(5, 20, "Password:");
- secure =
- f[n++] = make_field(5, 30, 1, 9, TRUE);
- set_field_type(f[n - 1], fty_passwd);
- f[n++] = (FIELD *) 0;
-
- if ((form = new_form(f)) != 0) {
-
- display_form(form);
-
- w = form_win(form);
- raw();
- nonl(); /* lets us read ^M's */
- while (!finished) {
- switch (form_driver(form, c = form_virtualize(form, w))) {
- case E_OK:
- mvaddstr(5, 57, field_buffer(secure, 1));
- clrtoeol();
- refresh();
- break;
- case E_UNKNOWN_COMMAND:
- finished = my_form_driver(form, c);
- break;
- default:
- beep();
- break;
- }
- }
-
- erase_form(form);
-
- free_form(form);
- }
- for (c = 0; f[c] != 0; c++)
- free_field(f[c]);
- free_fieldtype(fty_middle);
- free_fieldtype(fty_passwd);
- noraw();
- nl();
-
-#ifdef NCURSES_MOUSE_VERSION
- mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
-#endif
-}
-#endif /* USE_LIBFORM */
-
-/****************************************************************************
- *
- * Overlap test
- *
- ****************************************************************************/
-
-static void
-fillwin(WINDOW *win, char ch)
-{
- int y, x;
- int y1, x1;
-
- getmaxyx(win, y1, x1);
- for (y = 0; y < y1; y++) {
- wmove(win, y, 0);
- for (x = 0; x < x1; x++)
- waddch(win, UChar(ch));
- }
-}
-
-static void
-crosswin(WINDOW *win, char ch)
-{
- int y, x;
- int y1, x1;
-
- getmaxyx(win, y1, x1);
- for (y = 0; y < y1; y++) {
- for (x = 0; x < x1; x++)
- if (((x > (x1 - 1) / 3) && (x <= (2 * (x1 - 1)) / 3))
- || (((y > (y1 - 1) / 3) && (y <= (2 * (y1 - 1)) / 3)))) {
- wmove(win, y, x);
- waddch(win, UChar(ch));
- }
- }
-}
-
-#define OVERLAP_FLAVORS 5
-
-static void
-overlap_helpitem(int state, int item, char *message)
-{
- int row = (item / 2);
- int col = ((item % 2) ? COLS / 2 : 0);
-
- move(LINES - 6 + row, col);
- printw("%c%c = %s", state == row ? '>' : ' ', 'a' + item, message);
- clrtoeol();
-}
-
-static void
-overlap_test_1_attr(WINDOW *win, int flavor, int col)
-{
- short cpair = (short) (1 + (flavor * 2) + col);
-
- switch (flavor) {
- case 0:
- wattrset(win, A_NORMAL);
- break;
- case 1:
- wattrset(win, A_BOLD);
- break;
- case 2:
- init_pair(cpair, COLOR_BLUE, COLOR_WHITE);
- wattrset(win, COLOR_PAIR(cpair) | A_NORMAL);
- break;
- case 3:
- init_pair(cpair, COLOR_WHITE, COLOR_BLUE);
- wattrset(win, COLOR_PAIR(cpair) | A_BOLD);
- break;
- }
-}
-
-static void
-overlap_test_2_attr(WINDOW *win, int flavor, int col)
-{
- short cpair = (short) (9 + (flavor * 2) + col);
-
- switch (flavor) {
- case 0:
- /* no effect */
- break;
- case 1:
- /* no effect */
- break;
- case 2:
- init_pair(cpair, COLOR_RED, COLOR_GREEN);
- wbkgdset(win, ' ' | A_BLINK | COLOR_PAIR(cpair));
- break;
- case 3:
- wbkgdset(win, ' ' | A_NORMAL);
- break;
- }
-}
-
-static int
-overlap_help(int state, int flavors[OVERLAP_FLAVORS])
-{
- int row;
- int col;
- int item;
- const char *ths, *tht;
- char msg[80];
-
- if (state < 0)
- state += OVERLAP_FLAVORS;
- state = state % OVERLAP_FLAVORS;
- assert(state >= 0 && state < OVERLAP_FLAVORS);
-
- for (item = 0; item < (2 * OVERLAP_FLAVORS); ++item) {
- row = item / 2;
- col = item % 2;
- ths = col ? "B" : "A";
- tht = col ? "A" : "B";
-
- switch (row) {
- case 0:
- flavors[row] = 0;
- sprintf(msg, "refresh %s, then %s, then doupdate.", ths, tht);
- break;
- case 1:
- if (use_colors) {
- flavors[row] %= 4;
- } else {
- flavors[row] %= 2;
- }
- overlap_test_1_attr(stdscr, flavors[row], col);
- sprintf(msg, "fill window %s with letter %s.", ths, ths);
- break;
- case 2:
- if (use_colors) {
- flavors[row] %= 4;
- } else {
- flavors[row] %= 2;
- }
- switch (flavors[row]) {
- case 0:
- sprintf(msg, "cross pattern in window %s.", ths);
- break;
- case 1:
- sprintf(msg, "draw box in window %s.", ths);
- break;
- case 2:
- sprintf(msg, "set background of window %s.", ths);
- break;
- case 3:
- sprintf(msg, "reset background of window %s.", ths);
- break;
- }
- break;
- case 3:
- flavors[row] = 0;
- sprintf(msg, "clear window %s.", ths);
- break;
- case 4:
- flavors[row] %= 4;
- switch (flavors[row]) {
- case 0:
- sprintf(msg, "overwrite %s onto %s.", ths, tht);
- break;
- case 1:
- sprintf(msg, "copywin(FALSE) %s onto %s.", ths, tht);
- break;
- case 2:
- sprintf(msg, "copywin(TRUE) %s onto %s.", ths, tht);
- break;
- case 3:
- sprintf(msg, "overlay %s onto %s.", ths, tht);
- break;
- }
- break;
- }
- overlap_helpitem(state, item, msg);
- wattrset(stdscr, A_NORMAL);
- wbkgdset(stdscr, ' ' | A_NORMAL);
- }
- move(LINES - 1, 0);
- printw("^Q/ESC = terminate test. Up/down/space select test variations (%d %d).",
- state, flavors[state]);
-
- return state;
-}
-
-static void
-overlap_test_0(WINDOW *a, WINDOW *b)
-{
- touchwin(a);
- touchwin(b);
- wnoutrefresh(a);
- wnoutrefresh(b);
- doupdate();
-}
-
-static void
-overlap_test_1(int flavor, int col, WINDOW *a, char fill)
-{
- overlap_test_1_attr(a, flavor, col);
- fillwin(a, fill);
- wattrset(a, A_NORMAL);
-}
-
-static void
-overlap_test_2(int flavor, int col, WINDOW *a, char fill)
-{
- overlap_test_2_attr(a, flavor, col);
- switch (flavor) {
- case 0:
- crosswin(a, fill);
- break;
- case 1:
- box(a, 0, 0);
- break;
- case 2:
- /* done in overlap_test_2_attr */
- break;
- case 3:
- /* done in overlap_test_2_attr */
- break;
- }
-}
-
-static void
-overlap_test_3(WINDOW *a)
-{
- wclear(a);
- wmove(a, 0, 0);
-}
-
-static void
-overlap_test_4(int flavor, WINDOW *a, WINDOW *b)
-{
- switch (flavor) {
- case 0:
- overwrite(a, b);
- break;
- case 1:
- copywin(a, b, 0, 0, 0, 0, getmaxy(b), getmaxx(b), FALSE);
- break;
- case 2:
- copywin(a, b, 0, 0, 0, 0, getmaxy(b), getmaxx(b), TRUE);
- break;
- case 3:
- overlay(a, b);
- break;
- }
-}
-
-/* test effects of overlapping windows */
-static void
-overlap_test(void)
-{
- int ch;
- int state, flavor[OVERLAP_FLAVORS];
-
- WINDOW *win1 = newwin(9, 20, 3, 3);
- WINDOW *win2 = newwin(9, 20, 9, 16);
-
- curs_set(0);
- raw();
- refresh();
- move(0, 0);
- printw("This test shows the behavior of wnoutrefresh() with respect to\n");
- printw("the shared region of two overlapping windows A and B. The cross\n");
- printw("pattern in each window does not overlap the other.\n");
-
- memset(flavor, 0, sizeof(flavor));
- state = overlap_help(0, flavor);
-
- while (!isQuit(ch = Getchar()))
- switch (ch) {
- case 'a': /* refresh window A first, then B */
- overlap_test_0(win1, win2);
- break;
-
- case 'b': /* refresh window B first, then A */
- overlap_test_0(win2, win1);
- break;
-
- case 'c': /* fill window A so it's visible */
- overlap_test_1(flavor[1], 0, win1, 'A');
- break;
-
- case 'd': /* fill window B so it's visible */
- overlap_test_1(flavor[1], 1, win2, 'B');
- break;
-
- case 'e': /* cross test pattern in window A */
- overlap_test_2(flavor[2], 0, win1, 'A');
- break;
-
- case 'f': /* cross test pattern in window A */
- overlap_test_2(flavor[2], 1, win2, 'B');
- break;
-
- case 'g': /* clear window A */
- overlap_test_3(win1);
- break;
-
- case 'h': /* clear window B */
- overlap_test_3(win2);
- break;
-
- case 'i': /* overwrite A onto B */
- overlap_test_4(flavor[4], win1, win2);
- break;
-
- case 'j': /* overwrite B onto A */
- overlap_test_4(flavor[4], win2, win1);
- break;
-
- case CTRL('n'):
- case KEY_DOWN:
- state = overlap_help(state + 1, flavor);
- break;
-
- case CTRL('p'):
- case KEY_UP:
- state = overlap_help(state - 1, flavor);
- break;
-
- case ' ':
- flavor[state] += 1;
- state = overlap_help(state, flavor);
- break;
-
- case '?':
- state = overlap_help(state, flavor);
- break;
-
- default:
- beep();
- break;
- }
-
- delwin(win2);
- delwin(win1);
- erase();
- curs_set(1);
- endwin();
-}
-
-/****************************************************************************
- *
- * Main sequence
- *
- ****************************************************************************/
-
-static bool
-do_single_test(const char c)
-/* perform a single specified test */
-{
- switch (c) {
- case 'a':
- getch_test();
- break;
-
-#if USE_WIDEC_SUPPORT
- case 'A':
- get_wch_test();
- break;
-#endif
-
- case 'b':
- attr_test();
- break;
-
-#if USE_WIDEC_SUPPORT
- case 'B':
- wide_attr_test();
- break;
-#endif
-
- case 'c':
- if (!use_colors)
- Cannot("does not support color.");
- else
- color_test();
- break;
-
-#if USE_WIDEC_SUPPORT
- case 'C':
- if (!use_colors)
- Cannot("does not support color.");
- else
- wide_color_test();
- break;
-#endif
-
- case 'd':
- if (!use_colors)
- Cannot("does not support color.");
- else if (!can_change_color())
- Cannot("has hardwired color values.");
- else
- color_edit();
- break;
-
-#if USE_SOFTKEYS
- case 'e':
- slk_test();
- break;
-#endif
-
-#if USE_WIDEC_SUPPORT
- case 'E':
- wide_slk_test();
- break;
-#endif
- case 'f':
- acs_display();
- break;
-
-#if USE_WIDEC_SUPPORT
- case 'F':
- wide_acs_display();
- break;
-#endif
-
-#if USE_LIBPANEL
- case 'o':
- demo_panels(init_panel, fill_panel);
- break;
-#endif
-
-#if USE_WIDEC_SUPPORT && USE_LIBPANEL
- case 'O':
- demo_panels(init_wide_panel, fill_wide_panel);
- break;
-#endif
-
- case 'g':
- acs_and_scroll();
- break;
-
- case 'i':
- flushinp_test(stdscr);
- break;
-
- case 'k':
- test_sgr_attributes();
- break;
-
-#if USE_LIBMENU
- case 'm':
- menu_test();
- break;
-#endif
-
- case 'p':
- demo_pad();
- break;
-
-#if USE_LIBFORM
- case 'r':
- demo_forms();
- break;
-#endif
-
- case 's':
- overlap_test();
- break;
-
-#if USE_LIBMENU && defined(TRACE)
- case 't':
- trace_set();
- break;
-#endif
-
- case '?':
- break;
-
- default:
- return FALSE;
- }
-
- return TRUE;
-}
-
-static void
-usage(void)
-{
- static const char *const tbl[] =
- {
- "Usage: ncurses [options]"
- ,""
- ,"Options:"
-#ifdef NCURSES_VERSION
- ," -a f,b set default-colors (assumed white-on-black)"
- ," -d use default-colors if terminal supports them"
-#endif
-#if USE_SOFTKEYS
- ," -e fmt specify format for soft-keys test (e)"
-#endif
-#if HAVE_RIPOFFLINE
- ," -f rip-off footer line (can repeat)"
- ," -h rip-off header line (can repeat)"
-#endif
- ," -m do not use colors"
- ," -p file rgb values to use in 'd' rather than ncurses's builtin"
-#if USE_LIBPANEL
- ," -s msec specify nominal time for panel-demo (default: 1, to hold)"
-#endif
-#ifdef TRACE
- ," -t mask specify default trace-level (may toggle with ^T)"
-#endif
- };
- size_t n;
- for (n = 0; n < SIZEOF(tbl); n++)
- fprintf(stderr, "%s\n", tbl[n]);
- ExitProgram(EXIT_FAILURE);
-}
-
-static void
-set_terminal_modes(void)
-{
- noraw();
- cbreak();
- noecho();
- scrollok(stdscr, TRUE);
- idlok(stdscr, TRUE);
- keypad(stdscr, TRUE);
-}
-
-#ifdef SIGUSR1
-static RETSIGTYPE
-announce_sig(int sig)
-{
- (void) fprintf(stderr, "Handled signal %d\r\n", sig);
-}
-#endif
-
-#if HAVE_RIPOFFLINE
-static int
-rip_footer(WINDOW *win, int cols)
-{
- wbkgd(win, A_REVERSE);
- werase(win);
- wmove(win, 0, 0);
- wprintw(win, "footer: window %p, %d columns", win, cols);
- wnoutrefresh(win);
- return OK;
-}
-
-static int
-rip_header(WINDOW *win, int cols)
-{
- wbkgd(win, A_REVERSE);
- werase(win);
- wmove(win, 0, 0);
- wprintw(win, "header: window %p, %d columns", win, cols);
- wnoutrefresh(win);
- return OK;
-}
-#endif /* HAVE_RIPOFFLINE */
-
-static void
-main_menu(bool top)
-{
- char command;
-
- do {
- (void) puts("This is the ncurses main menu");
- (void) puts("a = keyboard and mouse input test");
-#if USE_WIDEC_SUPPORT
- (void) puts("A = wide-character keyboard and mouse input test");
-#endif
- (void) puts("b = character attribute test");
-#if USE_WIDEC_SUPPORT
- (void) puts("B = wide-character attribute test");
-#endif
- (void) puts("c = color test pattern");
-#if USE_WIDEC_SUPPORT
- (void) puts("C = color test pattern using wide-character calls");
-#endif
- if (top)
- (void) puts("d = edit RGB color values");
-#if USE_SOFTKEYS
- (void) puts("e = exercise soft keys");
-#if USE_WIDEC_SUPPORT
- (void) puts("E = exercise soft keys using wide-characters");
-#endif
-#endif
- (void) puts("f = display ACS characters");
-#if USE_WIDEC_SUPPORT
- (void) puts("F = display Wide-ACS characters");
-#endif
- (void) puts("g = display windows and scrolling");
- (void) puts("i = test of flushinp()");
- (void) puts("k = display character attributes");
-#if USE_LIBMENU
- (void) puts("m = menu code test");
-#endif
-#if USE_LIBPANEL
- (void) puts("o = exercise panels library");
-#if USE_WIDEC_SUPPORT
- (void) puts("O = exercise panels with wide-characters");
-#endif
-#endif
- (void) puts("p = exercise pad features");
- (void) puts("q = quit");
-#if USE_LIBFORM
- (void) puts("r = exercise forms code");
-#endif
- (void) puts("s = overlapping-refresh test");
-#if USE_LIBMENU && defined(TRACE)
- (void) puts("t = set trace level");
-#endif
- (void) puts("? = repeat this command summary");
-
- (void) fputs("> ", stdout);
- (void) fflush(stdout); /* necessary under SVr4 curses */
-
- /*
- * This used to be an 'fgets()' call. However (on Linux, at least)
- * mixing stream I/O and 'read()' (used in the library) causes the
- * input stream to be flushed when switching between the two.
- */
- command = 0;
- for (;;) {
- char ch = '\0';
- if (read(fileno(stdin), &ch, 1) <= 0) {
- if (command == 0)
- command = 'q';
- break;
- } else if (command == 0 && !isspace(UChar(ch))) {
- command = ch;
- } else if (ch == '\n' || ch == '\r') {
- if ((command == 'd') && !top) {
- (void) fputs("Do not nest test-d\n", stdout);
- command = 0;
- }
- if (command != 0)
- break;
- (void) fputs("> ", stdout);
- (void) fflush(stdout);
- }
- }
-
- if (do_single_test(command)) {
- /*
- * This may be overkill; it's intended to reset everything back
- * to the initial terminal modes so that tests don't get in
- * each other's way.
- */
- flushinp();
- set_terminal_modes();
- reset_prog_mode();
- clear();
- refresh();
- endwin();
- if (command == '?') {
- (void) puts("This is the ncurses capability tester.");
- (void)
- puts("You may select a test from the main menu by typing the");
- (void)
- puts("key letter of the choice (the letter to left of the =)");
- (void)
- puts("at the > prompt. Type `q' to exit.");
- }
- continue;
- }
- } while
- (command != 'q');
-}
-
-/*+-------------------------------------------------------------------------
- main(argc,argv)
---------------------------------------------------------------------------*/
-
-#define okCOLOR(n) ((n) >= 0 && (n) < max_colors)
-#define okRGB(n) ((n) >= 0 && (n) <= 1000)
-
-int
-main(int argc, char *argv[])
-{
- int c;
- int my_e_param = 1;
-#ifdef NCURSES_VERSION
- int default_fg = COLOR_WHITE;
- int default_bg = COLOR_BLACK;
- bool assumed_colors = FALSE;
- bool default_colors = FALSE;
-#endif
- char *palette_file = 0;
- bool monochrome = FALSE;
-
- setlocale(LC_ALL, "");
-
- while ((c = getopt(argc, argv, "a:de:fhmp:s:t:")) != -1) {
- switch (c) {
-#ifdef NCURSES_VERSION
- case 'a':
- assumed_colors = TRUE;
- sscanf(optarg, "%d,%d", &default_fg, &default_bg);
- break;
- case 'd':
- default_colors = TRUE;
- break;
-#endif
- case 'e':
- my_e_param = atoi(optarg);
-#ifdef NCURSES_VERSION
- if (my_e_param > 3) /* allow extended layouts */
- usage();
-#else
- if (my_e_param > 1)
- usage();
-#endif
- break;
-#if HAVE_RIPOFFLINE
- case 'f':
- ripoffline(-1, rip_footer);
- break;
- case 'h':
- ripoffline(1, rip_header);
- break;
-#endif /* HAVE_RIPOFFLINE */
- case 'm':
- monochrome = TRUE;
- break;
- case 'p':
- palette_file = optarg;
- break;
-#if USE_LIBPANEL
- case 's':
- nap_msec = atol(optarg);
- break;
-#endif
-#ifdef TRACE
- case 't':
- save_trace = (unsigned) strtol(optarg, 0, 0);
- break;
-#endif
- default:
- usage();
- }
- }
-
- /*
- * If there's no menus (unlikely for ncurses!), then we'll have to set
- * tracing on initially, just in case the user wants to test something that
- * doesn't involve wGetchar.
- */
-#ifdef TRACE
- /* enable debugging */
-#if !USE_LIBMENU
- trace(save_trace);
-#else
- if (!isatty(fileno(stdin)))
- trace(save_trace);
-#endif /* USE_LIBMENU */
-#endif /* TRACE */
-
-#if USE_SOFTKEYS
- /* tell it we're going to play with soft keys */
- slk_init(my_e_param);
-#endif
-
-#ifdef SIGUSR1
- /* set up null signal catcher so we can see what interrupts to getch do */
- signal(SIGUSR1, announce_sig);
-#endif
-
- /* we must initialize the curses data structure only once */
- initscr();
- bkgdset(BLANK);
-
- /* tests, in general, will want these modes */
- use_colors = monochrome ? FALSE : has_colors();
-
- if (use_colors) {
- start_color();
-#ifdef NCURSES_VERSION_PATCH
- max_colors = COLORS; /* was > 16 ? 16 : COLORS */
-#if HAVE_USE_DEFAULT_COLORS
- if (default_colors) {
- use_default_colors();
- min_colors = -1;
- }
-#if NCURSES_VERSION_PATCH >= 20000708
- else if (assumed_colors)
- assume_default_colors(default_fg, default_bg);
-#endif
-#endif
-#else /* normal SVr4 curses */
- max_colors = COLORS; /* was > 8 ? 8 : COLORS */
-#endif
- max_pairs = COLOR_PAIRS; /* was > 256 ? 256 : COLOR_PAIRS */
-
- if (can_change_color()) {
- short cp;
- all_colors = typeMalloc(RGB_DATA, (unsigned) max_colors);
- for (cp = 0; cp < max_colors; ++cp) {
- color_content(cp,
- &all_colors[cp].red,
- &all_colors[cp].green,
- &all_colors[cp].blue);
- }
- if (palette_file != 0) {
- FILE *fp = fopen(palette_file, "r");
- if (fp != 0) {
- char buffer[BUFSIZ];
- int red, green, blue;
- int scale = 1000;
- while (fgets(buffer, sizeof(buffer), fp) != 0) {
- if (sscanf(buffer, "scale:%d", &c) == 1) {
- scale = c;
- } else if (sscanf(buffer, "%d:%d %d %d",
- &c,
- &red,
- &green,
- &blue) == 4
- && okCOLOR(c)
- && okRGB(red)
- && okRGB(green)
- && okRGB(blue)) {
- all_colors[c].red = (short) ((red * 1000) / scale);
- all_colors[c].green = (short) ((green * 1000) / scale);
- all_colors[c].blue = (short) ((blue * 1000) / scale);
- }
- }
- fclose(fp);
- }
- }
- }
- }
- set_terminal_modes();
- def_prog_mode();
-
- /*
- * Return to terminal mode, so we're guaranteed of being able to
- * select terminal commands even if the capabilities are wrong.
- */
- endwin();
-
-#if HAVE_CURSES_VERSION
- (void) printf("Welcome to %s. Press ? for help.\n", curses_version());
-#elif defined(NCURSES_VERSION_MAJOR) && defined(NCURSES_VERSION_MINOR) && defined(NCURSES_VERSION_PATCH)
- (void) printf("Welcome to ncurses %d.%d.%d. Press ? for help.\n",
- NCURSES_VERSION_MAJOR,
- NCURSES_VERSION_MINOR,
- NCURSES_VERSION_PATCH);
-#else
- (void) puts("Welcome to ncurses. Press ? for help.");
-#endif
-
- main_menu(TRUE);
-
- ExitProgram(EXIT_SUCCESS);
-}
-
-/* ncurses.c ends here */
diff --git a/test/ncurses_tst.hin b/test/ncurses_tst.hin
deleted file mode 100644
index 1d77cbd..0000000
--- a/test/ncurses_tst.hin
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1998 *
- ****************************************************************************/
-/*
- * $Id: ncurses_tst.hin,v 1.2 1998/02/11 12:14:05 tom Exp $
- *
- * This is a template-file used to generate the "ncurses_cfg.h" file.
- *
- * Rather than list every definition, the configuration script substitutes
- * the definitions that it finds using 'sed'. You need a patch (971222)
- * to autoconf 2.12 to do this.
- */
-#ifndef NC_CONFIG_H
-#define NC_CONFIG_H
-@DEFS@
-
- /* The C compiler may not treat these properly but C++ has to */
-#ifdef __cplusplus
-#undef const
-#undef inline
-#else
-#if defined(lint) || defined(TRACE)
-#undef inline
-#define inline /* nothing */
-#endif
-#endif
-
-#endif /* NC_CONFIG_H */
diff --git a/test/newdemo b/test/newdemo
deleted file mode 100755
index 0d5d49c..0000000
--- a/test/newdemo
+++ /dev/null
Binary files differ
diff --git a/test/newdemo.c b/test/newdemo.c
deleted file mode 100644
index d43996b..0000000
--- a/test/newdemo.c
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * newdemo.c - A demo program using PDCurses. The program illustrate
- * the use of colours for text output.
- *
- * $Id: newdemo.c,v 1.31 2008/08/03 20:19:38 tom Exp $
- */
-
-#include <test.priv.h>
-
-#include <time.h>
-
-/*
- * The Australian map
- */
-static CONST_MENUS char *AusMap[16] =
-{
- " A A ",
- " N.T. AAAAA AAAA ",
- " AAAAAAAAAAA AAAAAAAA ",
- " AAAAAAAAAAAAAAAAAAAAAAAAA Qld.",
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
- " AAAAAAAAAAAAAAAAAAAAAAAAAAAA ",
- " AAAAAAAAAAAAAAAAAAAAAAAAA N.S.W.",
- "W.A. AAAAAAAAA AAAAAA Vic.",
- " AAA S.A. AA",
- " A Tas.",
- ""
-};
-
-/*
- * Funny messages
- */
-#define NMESSAGES 6
-
-static NCURSES_CONST char *messages[] =
-{
- "Hello from the Land Down Under",
- "The Land of crocs. and a big Red Rock",
- "Where the sunflower runs along the highways",
- "the dusty red roads lead one to loneliness",
- "Blue sky in the morning and",
- "freezing nights and twinkling stars",
- ""
-};
-
-/*
- * Trap interrupt
- */
-static RETSIGTYPE
-trap(int sig GCC_UNUSED)
-{
- endwin();
- ExitProgram(EXIT_FAILURE);
-}
-
-/*
- * Wait for user
- */
-static int
-WaitForUser(WINDOW *win)
-{
- time_t t;
- chtype key;
-
- nodelay(win, TRUE);
- t = time((time_t *) 0);
- while (1) {
- if ((int) (key = wgetch(win)) != ERR) {
- if (key == 'q' || key == 'Q')
- return 1;
- else
- return 0;
- }
- if (time((time_t *) 0) - t > 5)
- return 0;
- }
-}
-
-static void
-set_colors(WINDOW *win, int pair, int foreground, int background)
-{
- if (has_colors()) {
- if (pair > COLOR_PAIRS)
- pair = COLOR_PAIRS;
- init_pair(pair, foreground, background);
- wattrset(win, COLOR_PAIR(pair));
- }
-}
-
-static chtype
-use_colors(WINDOW *win, int pair, chtype attrs)
-{
- if (has_colors()) {
- if (pair > COLOR_PAIRS)
- pair = COLOR_PAIRS;
- attrs |= COLOR_PAIR(pair);
- }
- wattrset(win, attrs);
- return attrs;
-}
-
-/*
- * Test sub windows
- */
-static int
-SubWinTest(WINDOW *win)
-{
- int w, h, sw, sh, bx, by;
- WINDOW *swin1, *swin2, *swin3;
-
- getmaxyx(win, h, w);
- getbegyx(win, by, bx);
- sw = w / 3;
- sh = h / 3;
- if ((swin1 = subwin(win, sh, sw, by + 3, bx + 5)) == NULL)
- return 1;
- if ((swin2 = subwin(win, sh, sw, by + 4, bx + 8)) == NULL)
- return 1;
- if ((swin3 = subwin(win, sh, sw, by + 5, bx + 11)) == NULL)
- return 1;
-
- set_colors(swin1, 8, COLOR_RED, COLOR_BLUE);
- werase(swin1);
- mvwaddstr(swin1, 0, 3, "Sub-window 1");
- wrefresh(swin1);
-
- set_colors(swin2, 9, COLOR_CYAN, COLOR_MAGENTA);
- werase(swin2);
- mvwaddstr(swin2, 0, 3, "Sub-window 2");
- wrefresh(swin2);
-
- set_colors(swin3, 10, COLOR_YELLOW, COLOR_GREEN);
- werase(swin3);
- mvwaddstr(swin3, 0, 3, "Sub-window 3");
- wrefresh(swin3);
-
- delwin(swin1);
- delwin(swin2);
- delwin(swin3);
- WaitForUser(win);
- return 0;
-}
-
-static int
-bounce(int n, int *dir, int len)
-{
- if (*dir > 0)
- ++n;
- else
- --n;
- if (n <= 1 || n >= len - 2)
- *dir = *dir ? 0 : 1;
- return n;
-}
-
-/*
- * Bouncing balls
- */
-static int
-BouncingBalls(WINDOW *win)
-{
- int w, h;
- int x1, y1, xd1, yd1;
- int x2, y2, xd2, yd2;
- int x3, y3, xd3, yd3;
-
- getmaxyx(win, h, w);
-
- x1 = 2 + rand() % (w - 4);
- y1 = 2 + rand() % (h - 4);
- x2 = 2 + rand() % (w - 4);
- y2 = 2 + rand() % (h - 4);
- x3 = 2 + rand() % (w - 4);
- y3 = 2 + rand() % (h - 4);
-
- xd1 = 1;
- yd1 = 1;
- xd2 = 1;
- yd2 = 0;
- xd3 = 0;
- yd3 = 1;
-
- nodelay(win, TRUE);
-
- while (wgetch(win) == ERR) {
- x1 = bounce(x1, &xd1, w);
- y1 = bounce(y1, &yd1, h);
- x2 = bounce(x2, &xd2, w);
- y2 = bounce(y2, &yd2, h);
- x3 = bounce(x3, &xd3, w);
- y3 = bounce(y3, &yd3, h);
-
- set_colors(win, 11, COLOR_RED, COLOR_BLUE);
- mvwaddch(win, y1, x1, 'O');
-
- set_colors(win, 12, COLOR_BLUE, COLOR_RED);
- mvwaddch(win, y2, x2, '*');
-
- set_colors(win, 13, COLOR_YELLOW, COLOR_WHITE);
- mvwaddch(win, y3, x3, '@');
-
- wmove(win, 0, 0);
- wrefresh(win);
- delay_output(100);
- }
- return 0;
-}
-
-/*
- * Main driver
- */
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- WINDOW *win;
- int w, x, y, i, j, k;
- char buffer[200];
- const char *message;
- int width, height;
- chtype save[80];
- chtype c;
-
- setlocale(LC_ALL, "");
-
- CATCHALL(trap);
-
- initscr();
- if (has_colors())
- start_color();
- cbreak();
- curs_set(0);
- width = 48;
- height = 14; /* Create a drawing window */
- win = newwin(height, width, (LINES - height) / 2, (COLS - width) / 2);
- if (win == NULL) {
- endwin();
- ExitProgram(EXIT_FAILURE);
- }
-
- while (1) {
- set_colors(win, 1, COLOR_WHITE, COLOR_BLUE);
- werase(win);
-
- set_colors(win, 2, COLOR_RED, COLOR_RED);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- /* Do ramdom output of a character */
- use_colors(win, 1, A_NORMAL);
- c = 'a';
- for (i = 0; i < 5000; ++i) {
- x = rand() % (width - 2) + 1;
- y = rand() % (height - 2) + 1;
- mvwaddch(win, y, x, c);
- wrefresh(win);
- nodelay(win, TRUE);
- if (wgetch(win) != ERR)
- break;
- if (i == 2000) {
- c = 'b';
- set_colors(win, 3, COLOR_CYAN, COLOR_YELLOW);
- }
- }
-
- SubWinTest(win);
- /* Erase and draw green window */
- set_colors(win, 4, COLOR_YELLOW, COLOR_GREEN);
- wbkgd(win, use_colors(win, 4, A_BOLD));
- werase(win);
- wrefresh(win);
- /* Draw RED bounding box */
- use_colors(win, 2, A_NORMAL);
- box(win, ' ', ' ');
- wrefresh(win);
- /* Display Australia map */
- use_colors(win, 4, A_BOLD);
- i = 0;
- while (*AusMap[i]) {
- mvwaddstr(win, i + 1, 8, AusMap[i]);
- wrefresh(win);
- delay_output(50);
- ++i;
- }
-
- set_colors(win, 5, COLOR_BLUE, COLOR_WHITE);
- use_colors(win, 5, A_BLINK);
- mvwaddstr(win, height - 2, 6, " PDCurses 2.1 for DOS, OS/2 and Unix");
- wrefresh(win);
-
- /* Draw running messages */
- set_colors(win, 6, COLOR_YELLOW, COLOR_WHITE);
- message = messages[j = 0];
- i = 1;
- w = width - 2;
- strcpy(buffer, message);
- while (j < NMESSAGES) {
- while ((int) strlen(buffer) < w) {
- strcat(buffer, " ... ");
- strcat(buffer, messages[++j % NMESSAGES]);
- }
-
- if (i < w)
- mvwaddnstr(win, height / 2, w - i, buffer, i);
- else
- mvwaddnstr(win, height / 2, 1, buffer, w);
-
- wrefresh(win);
- nodelay(win, TRUE);
- if (wgetch(win) != ERR) {
- flushinp();
- break;
- }
- if (i++ >= w) {
- for (k = 0; (buffer[k] = buffer[k + 1]) != '\0'; k++) ;
- }
- delay_output(100);
- }
-
- j = 0;
- /* Draw running As across in RED */
- set_colors(win, 7, COLOR_RED, COLOR_GREEN);
- memset(save, ' ', sizeof(save));
- for (i = 2; i < width - 4; ++i) {
- k = mvwinch(win, 4, i);
- if (k == ERR)
- break;
- save[j++] = c = k;
- c &= A_CHARTEXT;
- mvwaddch(win, 4, i, c);
- }
- wrefresh(win);
-
- /* Put a message up wait for a key */
- i = height - 2;
- use_colors(win, 5, A_NORMAL);
- mvwaddstr(win, i, 5, " Type a key to continue or 'Q' to quit ");
- wrefresh(win);
-
- if (WaitForUser(win) == 1)
- break;
-
- j = 0; /* Restore the old line */
- for (i = 2; i < width - 4; ++i)
- mvwaddch(win, 4, i, save[j++]);
- wrefresh(win);
-
- BouncingBalls(win);
- /* Put a message up wait for a key */
- i = height - 2;
- use_colors(win, 5, A_NORMAL);
- mvwaddstr(win, i, 5, " Type a key to continue or 'Q' to quit ");
- wrefresh(win);
- if (WaitForUser(win) == 1)
- break;
- }
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/programs b/test/programs
deleted file mode 100644
index 9949a4c..0000000
--- a/test/programs
+++ /dev/null
@@ -1,86 +0,0 @@
-# $Id: programs,v 1.14 2008/08/16 21:47:39 tom Exp $
-##############################################################################
-# Copyright (c) 2006-2007,2008 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Thomas E. Dickey
-#
-# programs used for ncurses tests
-background $(LDFLAGS_CURSES) $(LOCAL_LIBS) background
-blue $(LDFLAGS_CURSES) $(LOCAL_LIBS) blue
-bs $(LDFLAGS_CURSES) $(LOCAL_LIBS) bs
-cardfile $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) cardfile
-chgat $(LDFLAGS_CURSES) $(LOCAL_LIBS) chgat
-color_set $(LDFLAGS_CURSES) $(LOCAL_LIBS) color_set
-demo_altkeys $(LDFLAGS_CURSES) $(LOCAL_LIBS) demo_altkeys
-demo_defkey $(LDFLAGS_CURSES) $(LOCAL_LIBS) demo_defkey
-demo_forms $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) demo_forms edit_field
-demo_keyok $(LDFLAGS_CURSES) $(LOCAL_LIBS) demo_keyok
-demo_menus $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) demo_menus
-demo_panels $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) demo_panels
-demo_termcap $(LDFLAGS_TINFO) $(LOCAL_LIBS) demo_termcap
-ditto $(LDFLAGS_THREADS) $(LOCAL_LIBS) ditto
-dots $(LDFLAGS_TINFO) $(LOCAL_LIBS) dots
-dots_mvcur $(LDFLAGS_CURSES) $(LOCAL_LIBS) dots_mvcur
-echochar $(LDFLAGS_CURSES) $(LOCAL_LIBS) echochar
-filter $(LDFLAGS_CURSES) $(LOCAL_LIBS) filter
-firework $(LDFLAGS_CURSES) $(LOCAL_LIBS) firework
-firstlast $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) firstlast
-foldkeys $(LDFLAGS_CURSES) $(LOCAL_LIBS) foldkeys
-gdc $(LDFLAGS_CURSES) $(LOCAL_LIBS) gdc
-hanoi $(LDFLAGS_CURSES) $(LOCAL_LIBS) hanoi
-hashtest $(LDFLAGS_CURSES) $(LOCAL_LIBS) hashtest
-inch_wide $(LDFLAGS_CURSES) $(LOCAL_LIBS) inch_wide
-inchs $(LDFLAGS_CURSES) $(LOCAL_LIBS) inchs
-ins_wide $(LDFLAGS_CURSES) $(LOCAL_LIBS) ins_wide
-inserts $(LDFLAGS_CURSES) $(LOCAL_LIBS) inserts
-key_names $(LDFLAGS_CURSES) $(LOCAL_LIBS) key_names
-keynames $(LDFLAGS_CURSES) $(LOCAL_LIBS) keynames
-knight $(LDFLAGS_CURSES) $(LOCAL_LIBS) knight
-lrtest $(LDFLAGS_CURSES) $(LOCAL_LIBS) lrtest
-movewindow $(LDFLAGS_CURSES) $(LOCAL_LIBS) movewindow
-ncurses $(LDFLAGS_DEFAULT) $(LOCAL_LIBS) ncurses
-newdemo $(LDFLAGS_CURSES) $(LOCAL_LIBS) newdemo
-railroad $(LDFLAGS_TINFO) $(LOCAL_LIBS) railroad
-rain $(LDFLAGS_THREADS) $(LOCAL_LIBS) rain
-redraw $(LDFLAGS_CURSES) $(LOCAL_LIBS) redraw
-savescreen $(LDFLAGS_CURSES) $(LOCAL_LIBS) savescreen
-tclock $(LDFLAGS_CURSES) $(LOCAL_LIBS) tclock
-test_arrays $(LDFLAGS_TINFO) $(LOCAL_LIBS) test_arrays
-test_get_wstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_get_wstr
-test_getstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_getstr
-test_instr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_instr
-test_inwstr $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_inwstr
-test_opaque $(LDFLAGS_CURSES) $(LOCAL_LIBS) test_opaque
-testaddch $(LDFLAGS_CURSES) $(LOCAL_LIBS) testaddch
-testcurs $(LDFLAGS_CURSES) $(LOCAL_LIBS) testcurs
-testscanw $(LDFLAGS_CURSES) $(LOCAL_LIBS) testscanw
-view $(LDFLAGS_CURSES) $(LOCAL_LIBS) view
-worm $(LDFLAGS_THREADS) $(LOCAL_LIBS) worm
-xmas $(LDFLAGS_CURSES) $(LOCAL_LIBS) xmas
-
-# vile:makemode
diff --git a/test/railroad b/test/railroad
deleted file mode 100755
index ca68e7a..0000000
--- a/test/railroad
+++ /dev/null
Binary files differ
diff --git a/test/railroad.c b/test/railroad.c
deleted file mode 100644
index 160823d..0000000
--- a/test/railroad.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2000-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey - 2000
- *
- * $Id: railroad.c,v 1.16 2008/02/09 18:08:43 tom Exp $
- *
- * A simple demo of the termcap interface.
- */
-#define USE_TINFO
-#include <test.priv.h>
-
-#if HAVE_TGETENT
-
-static char *wipeit;
-static char *moveit;
-static int length;
-static int height;
-
-static char *finisC;
-static char *finisS;
-static char *finisU;
-
-static char *startC;
-static char *startS;
-static char *startU;
-
-static char *backup;
-
-static bool interrupted = FALSE;
-
-static int
-outc(TPUTS_ARG c)
-{
- if (interrupted) {
- char tmp = c;
- write(STDOUT_FILENO, &tmp, 1);
- } else {
- putc(c, stdout);
- }
- return 0;
-}
-
-static void
-PutChar(int ch)
-{
- putchar(ch);
- fflush(stdout);
- napms(moveit ? 10 : 50); /* not really termcap... */
-}
-
-static void
-Backup(void)
-{
- tputs(backup != 0 ? backup : "\b", 1, outc);
-}
-
-static void
-ShowCursor(int flag)
-{
- if (startC != 0 && finisC != 0) {
- tputs(flag ? startC : finisC, 1, outc);
- }
-}
-
-static void
-StandOut(int flag)
-{
- if (startS != 0 && finisS != 0) {
- tputs(flag ? startS : finisS, 1, outc);
- }
-}
-
-static void
-Underline(int flag)
-{
- if (startU != 0 && finisU != 0) {
- tputs(flag ? startU : finisU, 1, outc);
- }
-}
-
-static void
-ShowSign(char *string)
-{
- char *base = string;
- int ch, first, last;
-
- if (moveit != 0) {
- tputs(tgoto(moveit, 0, height - 1), 1, outc);
- tputs(wipeit, 1, outc);
- }
-
- while (*string != 0) {
- ch = *string;
- if (ch != ' ') {
- if (moveit != 0) {
- for (first = length - 2; first >= (string - base); first--) {
- if (first < length - 1) {
- tputs(tgoto(moveit, first + 1, height - 1), 1, outc);
- PutChar(' ');
- }
- tputs(tgoto(moveit, first, height - 1), 1, outc);
- PutChar(ch);
- }
- } else {
- last = ch;
- if (isalpha(ch)) {
- first = isupper(ch) ? 'A' : 'a';
- } else if (isdigit(ch)) {
- first = '0';
- } else {
- first = ch;
- }
- if (first < last) {
- Underline(1);
- while (first < last) {
- PutChar(first);
- Backup();
- first++;
- }
- Underline(0);
- }
- }
- if (moveit != 0)
- Backup();
- }
- StandOut(1);
- PutChar(ch);
- StandOut(0);
- fflush(stdout);
- string++;
- }
- if (moveit != 0)
- tputs(wipeit, 1, outc);
- putchar('\n');
-}
-
-static void
-cleanup(void)
-{
- Underline(0);
- StandOut(0);
- ShowCursor(1);
-}
-
-static void
-onsig(int n GCC_UNUSED)
-{
- interrupted = TRUE;
- cleanup();
- ExitProgram(EXIT_FAILURE);
-}
-
-static void
-railroad(char **args)
-{
- NCURSES_CONST char *name = getenv("TERM");
- char buffer[1024];
- char area[1024], *ap = area;
-
- if (name == 0)
- name = "dumb";
- if (tgetent(buffer, name) >= 0) {
-
- wipeit = tgetstr("ce", &ap);
- height = tgetnum("li");
- length = tgetnum("co");
- moveit = tgetstr("cm", &ap);
-
- if (wipeit == 0
- || moveit == 0
- || height <= 0
- || length <= 0) {
- wipeit = 0;
- moveit = 0;
- height = 0;
- length = 0;
- }
-
- startS = tgetstr("so", &ap);
- finisS = tgetstr("se", &ap);
-
- startU = tgetstr("us", &ap);
- finisU = tgetstr("ue", &ap);
-
- backup = tgetstr("le", &ap);
-
- startC = tgetstr("ve", &ap);
- finisC = tgetstr("vi", &ap);
-
- ShowCursor(0);
-
- CATCHALL(onsig);
-
- while (*args) {
- ShowSign(*args++);
- }
- ShowCursor(1);
- }
-}
-
-int
-main(int argc, char *argv[])
-{
- if (argc > 1) {
- railroad(argv + 1);
- } else {
- static char world[] = "Hello World";
- static char *hello[] =
- {world, 0};
- railroad(hello);
- }
- ExitProgram(EXIT_SUCCESS);
-}
-
-#else
-int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- printf("This program requires termcap\n");
- exit(EXIT_FAILURE);
-}
-#endif
diff --git a/test/rain b/test/rain
deleted file mode 100755
index fc9712d..0000000
--- a/test/rain
+++ /dev/null
Binary files differ
diff --git a/test/rain.c b/test/rain.c
deleted file mode 100644
index f4a5e7f..0000000
--- a/test/rain.c
+++ /dev/null
@@ -1,386 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2006,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: rain.c,v 1.34 2008/05/24 23:34:34 tom Exp $
- */
-#include <test.priv.h>
-
-/* rain 11/3/1980 EPS/CITHEP */
-
-#ifdef USE_PTHREADS
-#include <pthread.h>
-#endif
-
-WANT_USE_WINDOW();
-
-#define MAX_THREADS 10
-#define MAX_DROP 5
-
-struct DATA;
-
-typedef void (*DrawPart) (struct DATA *);
-
-typedef struct DATA {
- int y, x;
-#ifdef USE_PTHREADS
- DrawPart func;
- int state;
-#endif
-} DATA;
-
-#ifdef USE_PTHREADS
-pthread_cond_t cond_next_drop;
-pthread_mutex_t mutex_next_drop;
-static int used_threads;
-
-typedef struct {
- pthread_t myself;
- long counter;
-} STATS;
-
-static STATS drop_threads[MAX_THREADS];
-#endif
-
-static void
-onsig(int n GCC_UNUSED)
-{
- curs_set(1);
- endwin();
- ExitProgram(EXIT_FAILURE);
-}
-
-static float
-ranf(void)
-{
- long r = (rand() & 077777);
- return ((float) r / 32768.);
-}
-
-static int
-random_x(void)
-{
- return (((float) (COLS - 4) * ranf()) + 2);
-}
-
-static int
-random_y(void)
-{
- return (((float) (LINES - 4) * ranf()) + 2);
-}
-
-static int
-next_j(int j)
-{
- if (j == 0)
- j = MAX_DROP - 1;
- else
- --j;
- if (has_colors()) {
- int z = (int) (3 * ranf());
- chtype color = COLOR_PAIR(z);
- if (z)
- color |= A_BOLD;
- attrset(color);
- }
- return j;
-}
-
-static void
-part1(DATA * drop)
-{
- mvaddch(drop->y, drop->x, '.');
-}
-
-static void
-part2(DATA * drop)
-{
- mvaddch(drop->y, drop->x, 'o');
-}
-
-static void
-part3(DATA * drop)
-{
- mvaddch(drop->y, drop->x, 'O');
-}
-
-static void
-part4(DATA * drop)
-{
- mvaddch(drop->y - 1, drop->x, '-');
- mvaddstr(drop->y, drop->x - 1, "|.|");
- mvaddch(drop->y + 1, drop->x, '-');
-}
-
-static void
-part5(DATA * drop)
-{
- mvaddch(drop->y - 2, drop->x, '-');
- mvaddstr(drop->y - 1, drop->x - 1, "/ \\");
- mvaddstr(drop->y, drop->x - 2, "| O |");
- mvaddstr(drop->y + 1, drop->x - 1, "\\ /");
- mvaddch(drop->y + 2, drop->x, '-');
-}
-
-static void
-part6(DATA * drop)
-{
- mvaddch(drop->y - 2, drop->x, ' ');
- mvaddstr(drop->y - 1, drop->x - 1, " ");
- mvaddstr(drop->y, drop->x - 2, " ");
- mvaddstr(drop->y + 1, drop->x - 1, " ");
- mvaddch(drop->y + 2, drop->x, ' ');
-}
-
-#ifdef USE_PTHREADS
-static void
-napsome(void)
-{
- napms(60);
-}
-
-/*
- * This runs inside the use_window() mutex.
- */
-static int
-really_draw(WINDOW *win, void *arg)
-{
- DATA *data = (DATA *) arg;
-
- (void) win;
- next_j(data->state);
- data->func(data);
- refresh();
- return OK;
-}
-
-static void
-draw_part(void (*func) (DATA *), int state, DATA * data)
-{
- data->func = func;
- data->state = state;
- use_window(stdscr, really_draw, (void *) data);
- napsome();
-}
-
-/*
- * Tell the threads that one of them can start work on a new raindrop.
- * They may all be busy if we're sending requests too rapidly.
- */
-static int
-put_next_drop(void)
-{
- pthread_cond_signal(&cond_next_drop);
- pthread_mutex_unlock(&mutex_next_drop);
-
- return 0;
-}
-
-/*
- * Wait until we're assigned the task of drawing a new raindrop.
- */
-static int
-get_next_drop(void)
-{
- pthread_mutex_lock(&mutex_next_drop);
- pthread_cond_wait(&cond_next_drop, &mutex_next_drop);
-
- return TRUE;
-}
-
-static void *
-draw_drop(void *arg)
-{
- DATA mydata;
- int mystats;
-
- /*
- * Find myself in the list of threads so we can count the number of loops.
- */
- for (mystats = 0; mystats < MAX_THREADS; ++mystats) {
- if (drop_threads[mystats].myself == pthread_self())
- break;
- }
-
- do {
- if (mystats < MAX_THREADS)
- drop_threads[mystats].counter++;
-
- /*
- * Make a copy of caller's data. We're cheating for the cases after
- * the first loop since we still have a pointer into the main thread
- * to the data which it uses for setting up this thread (but it has
- * been modified to use different coordinates).
- */
- mydata = *(DATA *) arg;
-
- draw_part(part1, 0, &mydata);
- draw_part(part2, 1, &mydata);
- draw_part(part3, 2, &mydata);
- draw_part(part4, 3, &mydata);
- draw_part(part5, 4, &mydata);
- draw_part(part6, 0, &mydata);
- } while (get_next_drop());
-
- return NULL;
-}
-
-/*
- * The description of pthread_create() is misleading, since it implies that
- * threads will exit cleanly after their function returns.
- *
- * Since they do not (and the number of threads is limited by system
- * resources), make a limited number of threads, and signal any that are
- * waiting when we want a thread past that limit.
- */
-static int
-start_drop(DATA * data)
-{
- int rc;
-
- if (!used_threads) {
- /* mutex and condition for signalling thread */
- pthread_mutex_init(&mutex_next_drop, NULL);
- pthread_cond_init(&cond_next_drop, NULL);
- }
-
- if (used_threads < MAX_THREADS) {
- rc = pthread_create(&(drop_threads[used_threads].myself),
- NULL,
- draw_drop,
- data);
- ++used_threads;
- } else {
- rc = put_next_drop();
- }
- return rc;
-}
-#endif
-
-static int
-get_input(void)
-{
- return USING_WINDOW(stdscr, wgetch);
-}
-
-int
-main(int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- bool done = FALSE;
- DATA drop;
-#ifndef USE_PTHREADS
- DATA last[MAX_DROP];
-#endif
- int j = 0;
-
- setlocale(LC_ALL, "");
-
- CATCHALL(onsig);
-
- initscr();
- if (has_colors()) {
- int bg = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
- init_pair(1, COLOR_BLUE, bg);
- init_pair(2, COLOR_CYAN, bg);
- }
- nl();
- noecho();
- curs_set(0);
- timeout(0);
-
-#ifndef USE_PTHREADS
- for (j = MAX_DROP; --j >= 0;) {
- last[j].x = random_x();
- last[j].y = random_y();
- }
- j = 0;
-#endif
-
- while (!done) {
- drop.x = random_x();
- drop.y = random_y();
-
-#ifdef USE_PTHREADS
- if (start_drop(&drop) != 0) {
- beep();
- }
-#else
- /*
- * The non-threaded code draws parts of each drop on each loop.
- */
- part1(&drop);
-
- part2(&last[j]);
-
- j = next_j(j);
- part3(&last[j]);
-
- j = next_j(j);
- part4(&last[j]);
-
- j = next_j(j);
- part5(&last[j]);
-
- j = next_j(j);
- part6(&last[j]);
-
- last[j] = drop;
-#endif
-
- switch (get_input()) {
- case ('q'):
- case ('Q'):
- done = TRUE;
- break;
- case 's':
- nodelay(stdscr, FALSE);
- break;
- case ' ':
- nodelay(stdscr, TRUE);
- break;
-#ifdef KEY_RESIZE
- case (KEY_RESIZE):
- break;
-#endif
- }
- napms(50);
- }
- curs_set(1);
- endwin();
-#ifdef USE_PTHREADS
- printf("Counts per thread:\n");
- for (j = 0; j < MAX_THREADS; ++j)
- printf(" %d:%ld\n", j, drop_threads[j].counter);
-#endif
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/redraw b/test/redraw
deleted file mode 100755
index 49f7eba..0000000
--- a/test/redraw
+++ /dev/null
Binary files differ
diff --git a/test/redraw.c b/test/redraw.c
deleted file mode 100644
index 82e6378..0000000
--- a/test/redraw.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2006,2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: redraw.c,v 1.4 2007/06/30 17:55:06 tom Exp $
- *
- * Demonstrate the redrawwin() and wredrawln() functions.
- * Thomas Dickey - 2006/11/4
- */
-
-#include <test.priv.h>
-
-static void
-trash(int beg_x, int max_x, int cur_x)
-{
- int x;
-
- for (x = cur_x; x > beg_x; --x) {
- putchar('\b');
- }
- for (x = beg_x; x < max_x; ++x) {
- if (x < cur_x)
- putchar('<');
- else if (x == cur_x)
- putchar('=');
- else if (x > cur_x)
- putchar('>');
- }
- for (x = max_x; x > cur_x; --x) {
- putchar('\b');
- }
-}
-
-static void
-test_redraw(WINDOW *win)
-{
- WINDOW *win1;
- WINDOW *win2;
- bool done = FALSE;
- int ch, y, x;
- int max_y, max_x;
- int beg_y, beg_x;
-
- scrollok(win, TRUE);
- keypad(win, TRUE);
- getmaxyx(win, max_y, max_x);
- getbegyx(win, beg_y, beg_x);
- while (!done) {
- ch = wgetch(win);
- getyx(win, y, x);
- switch (ch) {
- case 'q':
- /* FALLTHRU */
- case ESCAPE:
- done = TRUE;
- break;
- case 'w':
- win1 = newwin(max_y, max_x,
- beg_y, beg_x);
- win2 = newwin(max_y - 2, max_x - 2,
- beg_y + 1, beg_x + 1);
- box(win1, 0, 0);
- wrefresh(win1);
-
- test_redraw(win2);
-
- delwin(win2);
- delwin(win1);
-
- touchwin(win);
- break;
-
- case '!':
- /*
- * redrawwin() and wredrawln() do not take into account the
- * possibility that the cursor may have moved. That makes them
- * cumbersome for using with a shell command. So we simply
- * trash the current line of the window using backspace/overwrite.
- */
- trash(beg_x, max_x, x + beg_x);
- break;
-
-#ifdef NCURSES_VERSION
- case '@':
- /*
- * For a shell command, we can work around the problem noted above
- * using mvcur(). It is ifdef'd for NCURSES, since X/Open does
- * not define the case where the old location is unknown.
- */
- system("date");
- mvcur(-1, -1, y, x);
- break;
-#endif
-
- case CTRL('W'):
- redrawwin(win);
- break;
-
- case CTRL('L'):
- wredrawln(win, y, 1);
- break;
-
- case KEY_UP:
- if (y > 0)
- wmove(win, y - 1, x);
- break;
-
- case KEY_DOWN:
- if (y < max_y)
- wmove(win, y + 1, x);
- break;
-
- case KEY_LEFT:
- if (x > 0)
- wmove(win, y, x - 1);
- break;
-
- case KEY_RIGHT:
- if (x < max_x)
- wmove(win, y, x + 1);
- break;
-
- default:
- if (ch > KEY_MIN) {
- waddstr(win, keyname(ch));
- } else {
- waddstr(win, unctrl(UChar(ch)));
- }
- break;
- }
- wnoutrefresh(win);
- doupdate();
- }
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- initscr();
- raw();
- noecho();
- test_redraw(stdscr);
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/savescreen b/test/savescreen
deleted file mode 100755
index 3d82d45..0000000
--- a/test/savescreen
+++ /dev/null
Binary files differ
diff --git a/test/savescreen.c b/test/savescreen.c
deleted file mode 100644
index 09f328b..0000000
--- a/test/savescreen.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: savescreen.c,v 1.10 2007/07/21 17:57:37 tom Exp $
- *
- * Demonstrate save/restore functions from the curses library.
- * Thomas Dickey - 2007/7/14
- */
-
-#include <test.priv.h>
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif
-
-static bool use_init = FALSE;
-
-static void
-setup_next(void)
-{
- curs_set(1);
- reset_shell_mode();
-}
-
-static void
-cleanup(char *files[])
-{
- int n;
-
- for (n = 0; files[n] != 0; ++n) {
- unlink(files[n]);
- }
-}
-
-static int
-load_screen(char *filename)
-{
- int result;
-
- if (use_init) {
- if ((result = scr_init(filename)) != ERR)
- result = scr_restore(filename);
- } else {
- result = scr_set(filename);
- }
- return result;
-}
-
-/*
- * scr_restore() or scr_set() operates on curscr. If we read a character using
- * getch() that will refresh stdscr, wiping out the result. To avoid that,
- * copy the data back from curscr to stdscr.
- */
-static void
-after_load(void)
-{
- overwrite(curscr, stdscr);
- doupdate();
-}
-
-static void
-show_what(int which, int last)
-{
- int y, x;
- time_t now = time((time_t *) 0);
-
- getyx(stdscr, y, x);
-
- move(0, 0);
- printw("Saved %d of %d - %s", which, last + 1, ctime(&now));
-
- move(y, x);
-
- refresh();
-}
-
-static int
-get_command(int which, int last)
-{
- int ch;
-
- timeout(100);
-
- do {
- show_what(which, last);
- ch = getch();
- } while (ch == ERR);
-
- return ch;
-}
-
-static void
-usage(void)
-{
- static const char *msg[] =
- {
- "Usage: savescreen [-r] files",
- "",
- "Options:",
- " -i use scr_init/scr_restore rather than scr_set",
- " -r replay the screen-dump files"
- };
- unsigned n;
- for (n = 0; n < SIZEOF(msg); ++n) {
- fprintf(stderr, "%s\n", msg[n]);
- }
- ExitProgram(EXIT_FAILURE);
-}
-
-int
-main(int argc, char *argv[])
-{
- int ch;
- int which = 0;
- int last;
- bool replaying = FALSE;
- bool done = FALSE;
- char **files;
-
- while ((ch = getopt(argc, argv, "ir")) != -1) {
- switch (ch) {
- case 'i':
- use_init = TRUE;
- break;
- case 'r':
- replaying = TRUE;
- break;
- default:
- usage();
- break;
- }
- }
-
- initscr();
- cbreak();
- noecho();
- keypad(stdscr, TRUE);
- curs_set(0);
- if (has_colors()) {
- start_color();
- for (ch = 0; ch < COLOR_PAIRS; ++ch) {
- short pair = ch % COLOR_PAIRS;
- init_pair(pair, COLOR_WHITE, ch % COLORS);
- }
- }
-
- files = argv + optind;
- last = argc - optind - 1;
- if (replaying) {
-
- /*
- * Use the last file as the initial/current screen.
- */
- if (last < 0) {
- endwin();
- printf("No screen-dumps given\n");
- ExitProgram(EXIT_FAILURE);
- }
-
- which = last;
- if (load_screen(files[which]) == ERR) {
- endwin();
- printf("Cannot load screen-dump %s\n", files[which]);
- ExitProgram(EXIT_FAILURE);
- }
- after_load();
-
- while (!done && (ch = getch()) != ERR) {
- switch (ch) {
- case 'n':
- /*
- * If we got a "next" here, skip to the final screen before
- * moving to the next process.
- */
- setup_next();
- which = last;
- done = TRUE;
- break;
- case 'q':
- endwin();
- cleanup(files);
- done = TRUE;
- break;
- case KEY_BACKSPACE:
- case '\b':
- if (--which < 0)
- which = last;
- break;
- case ' ':
- if (++which > last)
- which = 0;
- break;
- default:
- beep();
- continue;
- }
-
- if (ch == 'q') {
- ;
- } else if (scr_restore(files[which]) == ERR) {
- endwin();
- printf("Cannot load screen-dump %s\n", files[which]);
- cleanup(files);
- ExitProgram(EXIT_FAILURE);
- } else {
- wrefresh(curscr);
- }
- }
- } else {
- int y;
- int x;
-
- move(2, 0);
- printw("Use h,j,k,l or arrows to move around the screen\n");
- printw("Press 'q' to quit, ' ' to dump a screen\n");
- printw("When the last screen has been dumped, press 'n' to run the\n");
- printw("screen-loader. That allows only 'q', backspace and ' ' for\n");
- printw("stepping through the dumped/restored screens.\n");
- getyx(stdscr, y, x);
-
- while (!done) {
- switch (ch = get_command(which, last)) {
- case 'n':
- setup_next();
- done = TRUE;
- break;
- case 'q':
- endwin();
- cleanup(files);
- done = TRUE;
- break;
- case ' ':
- if (files[which] != 0) {
- show_what(which + 1, last);
- if (scr_dump(files[which]) == ERR) {
- endwin();
- printf("Cannot write screen-dump %s\n", files[which]);
- cleanup(files);
- done = TRUE;
- break;
- }
- ++which;
- if (has_colors()) {
- short pair = which % COLOR_PAIRS;
- bkgd(COLOR_PAIR(pair));
- }
- } else {
- beep();
- }
- break;
- case KEY_LEFT:
- case 'h':
- if (--x < 0)
- x = COLS - 1;
- break;
- case KEY_DOWN:
- case 'j':
- if (++y >= LINES)
- y = 1;
- break;
- case KEY_UP:
- case 'k':
- if (--y < 1)
- y = LINES - 1;
- break;
- case KEY_RIGHT:
- case 'l':
- if (++x >= COLS)
- x = 0;
- break;
- }
- if (!done) {
- time_t now = time((time_t *) 0);
-
- move(0, 0);
- addstr(ctime(&now));
- move(y, x);
- addch('#' | A_REVERSE);
- move(y, x);
- }
- }
- }
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/savescreen.sh b/test/savescreen.sh
deleted file mode 100755
index 481d3ff..0000000
--- a/test/savescreen.sh
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/sh
-##############################################################################
-# Copyright (c) 2007 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: savescreen.sh,v 1.3 2007/07/14 21:50:26 tom Exp $
-#
-# Use this script to exercise "savescreen".
-# It starts by generating a series of temporary-filenames, which are passed
-# to the test-program. Loop as long as the first file named exists.
-PARAMS=
-NFILES=4
-PREFIX=savescreen-$$
-n=0
-BEGINS=$PREFIX-$n.tmp
-while test $n != $NFILES
-do
- LATEST=$PREFIX-$n.tmp
- PARAMS="$PARAMS $LATEST"
- n=`expr $n + 1`
-done
-
-./savescreen $PARAMS
-if test -f $BEGINS
-then
- while test -f $BEGINS
- do
- ./savescreen -r $PARAMS
- done
-else
- echo "No screens were saved"
-fi
diff --git a/test/tclock b/test/tclock
deleted file mode 100755
index babea7d..0000000
--- a/test/tclock
+++ /dev/null
Binary files differ
diff --git a/test/tclock.c b/test/tclock.c
deleted file mode 100644
index 394ee81..0000000
--- a/test/tclock.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/* $Id: tclock.c,v 1.25 2005/04/16 16:39:27 tom Exp $ */
-
-#include <test.priv.h>
-
-#include <math.h>
-
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif
-
-/*
- tclock - analog/digital clock for curses.
- If it gives you joy, then
- (a) I'm glad
- (b) you need to get out more :-)
-
- This program is copyright Howard Jones, September 1994
- (ha.jones@ic.ac.uk). It may be freely distributed as
- long as this copyright message remains intact, and any
- modifications are clearly marked as such. [In fact, if
- you modify it, I wouldn't mind the modifications back,
- especially if they add any nice features. A good one
- would be a precalc table for the 60 hand positions, so
- that the floating point stuff can be ditched. As I said,
- it was a 20 hackup minute job.]
-
- COMING SOON: tfishtank. Be the envy of your mac-owning
- colleagues.
-*/
-
-/* To compile: cc -o tclock tclock.c -lcurses -lm */
-
-#ifndef PI
-#define PI 3.141592654
-#endif
-
-#define sign(_x) (_x<0?-1:1)
-
-#define ASPECT 2.2
-#define ROUND(value) ((int)((value) + 0.5))
-
-#define A2X(angle,radius) ROUND(ASPECT * radius * sin(angle))
-#define A2Y(angle,radius) ROUND(radius * cos(angle))
-
-/* Plot a point */
-static void
-plot(int x, int y, char col)
-{
- mvaddch(y, x, (chtype) col);
-}
-
-/* Draw a diagonal(arbitrary) line using Bresenham's alogrithm. */
-static void
-dline(int pair, int from_x, int from_y, int x2, int y2, char ch)
-{
- int dx, dy;
- int ax, ay;
- int sx, sy;
- int x, y;
- int d;
-
- if (has_colors())
- attrset(COLOR_PAIR(pair));
-
- dx = x2 - from_x;
- dy = y2 - from_y;
-
- ax = abs(dx * 2);
- ay = abs(dy * 2);
-
- sx = sign(dx);
- sy = sign(dy);
-
- x = from_x;
- y = from_y;
-
- if (ax > ay) {
- d = ay - (ax / 2);
-
- while (1) {
- plot(x, y, ch);
- if (x == x2)
- return;
-
- if (d >= 0) {
- y += sy;
- d -= ax;
- }
- x += sx;
- d += ay;
- }
- } else {
- d = ax - (ay / 2);
-
- while (1) {
- plot(x, y, ch);
- if (y == y2)
- return;
-
- if (d >= 0) {
- x += sx;
- d -= ay;
- }
- y += sy;
- d += ax;
- }
- }
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- int i, cx, cy;
- double cr, mradius, hradius, mangle, hangle;
- double sangle, sradius, hours;
- int hdx, hdy;
- int mdx, mdy;
- int sdx, sdy;
- int ch;
- int lastbeep = -1;
- bool odd = FALSE;
- time_t tim;
- struct tm *t;
- char szChar[10];
- char *text;
- int my_bg = COLOR_BLACK;
-#if HAVE_GETTIMEOFDAY
- struct timeval current;
- double fraction = 0.0;
-#endif
-
- setlocale(LC_ALL, "");
-
- initscr();
- noecho();
- cbreak();
- nodelay(stdscr, TRUE);
- curs_set(0);
-
- if (has_colors()) {
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- my_bg = -1;
-#endif
- init_pair(1, COLOR_RED, my_bg);
- init_pair(2, COLOR_MAGENTA, my_bg);
- init_pair(3, COLOR_GREEN, my_bg);
- init_pair(4, COLOR_WHITE, COLOR_BLUE);
- }
-#ifdef KEY_RESIZE
- keypad(stdscr, TRUE);
- restart:
-#endif
- cx = (COLS - 1) / 2; /* 39 */
- cy = LINES / 2; /* 12 */
- if (cx / ASPECT < cy)
- cr = cx / ASPECT;
- else
- cr = cy;
- sradius = (5 * cr) / 6; /* 10 */
- mradius = (3 * cr) / 4; /* 9 */
- hradius = cr / 2; /* 6 */
-
- for (i = 0; i < 12; i++) {
- sangle = (i + 1) * (2.0 * PI) / 12.0;
- sdx = A2X(sangle, sradius);
- sdy = A2Y(sangle, sradius);
- sprintf(szChar, "%d", i + 1);
-
- mvaddstr(cy - sdy, cx + sdx, szChar);
- }
-
- mvaddstr(0, 0, "ASCII Clock by Howard Jones (ha.jones@ic.ac.uk),1994");
-
- sradius = (4 * sradius) / 5;
- for (;;) {
- napms(100);
-
- tim = time(0);
- t = localtime(&tim);
-
- hours = (t->tm_hour + (t->tm_min / 60.0));
- if (hours > 12.0)
- hours -= 12.0;
-
- mangle = ((t->tm_min + (t->tm_sec / 60.0)) * (2 * PI) / 60.0);
- mdx = A2X(mangle, mradius);
- mdy = A2Y(mangle, mradius);
-
- hangle = ((hours) * (2.0 * PI) / 12.0);
- hdx = A2X(hangle, hradius);
- hdy = A2Y(hangle, hradius);
-
-#if HAVE_GETTIMEOFDAY
- gettimeofday(&current, 0);
- fraction = (current.tv_usec / 1.0e6);
-#endif
- sangle = ((t->tm_sec + fraction) * (2.0 * PI) / 60.0);
- sdx = A2X(sangle, sradius);
- sdy = A2Y(sangle, sradius);
-
- dline(3, cx, cy, cx + mdx, cy - mdy, '#');
-
- attrset(A_REVERSE);
- dline(2, cx, cy, cx + hdx, cy - hdy, '.');
- attroff(A_REVERSE);
-
- if (has_colors())
- attrset(COLOR_PAIR(1));
-
- dline(1, cx, cy, cx + sdx, cy - sdy, 'O');
-
- if (has_colors())
- attrset(COLOR_PAIR(0));
-
- text = ctime(&tim);
- mvprintw(2, 0, "%.*s", (int) (strlen(text) - 1), text);
- refresh();
- if ((t->tm_sec % 5) == 0
- && t->tm_sec != lastbeep) {
- lastbeep = t->tm_sec;
- if (has_colors()) {
- odd = !odd;
- bkgd((chtype) (odd ? COLOR_PAIR(4) : COLOR_PAIR(0)));
- }
- beep();
- }
-
- if ((ch = getch()) != ERR) {
-#ifdef KEY_RESIZE
- if (ch == KEY_RESIZE) {
- flash();
- erase();
- wrefresh(curscr);
- goto restart;
- }
-#endif
- break;
- }
-
- dline(0, cx, cy, cx + hdx, cy - hdy, ' ');
- dline(0, cx, cy, cx + mdx, cy - mdy, ' ');
- dline(0, cx, cy, cx + sdx, cy - sdy, ' ');
-
- }
-
- curs_set(1);
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/test.priv.h b/test/test.priv.h
deleted file mode 100644
index 7c1f39f..0000000
--- a/test/test.priv.h
+++ /dev/null
@@ -1,577 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/****************************************************************************
- * Author: Thomas E. Dickey 1996-on *
- ****************************************************************************/
-/* $Id: test.priv.h,v 1.79 2008/10/04 21:53:41 tom Exp $ */
-
-#ifndef __TEST_PRIV_H
-#define __TEST_PRIV_H 1
-
-#include <ncurses_cfg.h>
-
-/*
- * Fix ifdef's that look for the form/menu/panel libraries, if we are building
- * with wide-character ncurses.
- */
-#ifdef HAVE_LIBFORMW
-#define HAVE_LIBFORMW 1
-#endif
-
-#ifdef HAVE_LIBMENUW
-#define HAVE_LIBMENUW 1
-#endif
-
-#ifdef HAVE_LIBPANELW
-#define HAVE_LIBPANELW 1
-#endif
-
-/*
- * Fallback definitions to accommodate broken compilers.
- */
-#ifndef HAVE_CURSES_VERSION
-#define HAVE_CURSES_VERSION 0
-#endif
-
-#ifndef HAVE_CHGAT
-#define HAVE_CHGAT 0
-#endif
-
-#ifndef HAVE_COLOR_SET
-#define HAVE_COLOR_SET 0
-#endif
-
-#ifndef HAVE_FILTER
-#define HAVE_FILTER 0
-#endif
-
-#ifndef HAVE_FORM_H
-#define HAVE_FORM_H 0
-#endif
-
-#ifndef HAVE_GETBEGX
-#define HAVE_GETBEGX 0
-#endif
-
-#ifndef HAVE_GETCURX
-#define HAVE_GETCURX 0
-#endif
-
-#ifndef HAVE_GETMAXX
-#define HAVE_GETMAXX 0
-#endif
-
-#ifndef HAVE_GETOPT_H
-#define HAVE_GETOPT_H 0
-#endif
-
-#ifndef HAVE_GETPARX
-#define HAVE_GETPARX 0
-#endif
-
-#ifndef HAVE_GETWIN
-#define HAVE_GETWIN 0
-#endif
-
-#ifndef HAVE_LIBFORM
-#define HAVE_LIBFORM 0
-#endif
-
-#ifndef HAVE_LIBMENU
-#define HAVE_LIBMENU 0
-#endif
-
-#ifndef HAVE_LIBPANEL
-#define HAVE_LIBPANEL 0
-#endif
-
-#ifndef HAVE_LOCALE_H
-#define HAVE_LOCALE_H 0
-#endif
-
-#ifndef HAVE_MENU_H
-#define HAVE_MENU_H 0
-#endif
-
-#ifndef HAVE_MVVLINE
-#define HAVE_MVVLINE 0
-#endif
-
-#ifndef HAVE_MVWVLINE
-#define HAVE_MVWVLINE 0
-#endif
-
-#ifndef HAVE_NAPMS
-#define HAVE_NAPMS 1
-#endif
-
-#ifndef HAVE_NC_ALLOC_H
-#define HAVE_NC_ALLOC_H 0
-#endif
-
-#ifndef HAVE_PANEL_H
-#define HAVE_PANEL_H 0
-#endif
-
-#ifndef HAVE_PUTWIN
-#define HAVE_PUTWIN 0
-#endif
-
-#ifndef HAVE_RESIZE_TERM
-#define HAVE_RESIZE_TERM 0
-#endif
-
-#ifndef HAVE_RIPOFFLINE
-#define HAVE_RIPOFFLINE 0
-#endif
-
-#ifndef HAVE_SETUPTERM
-#define HAVE_SETUPTERM 0
-#endif
-
-#ifndef HAVE_SLK_COLOR
-#define HAVE_SLK_COLOR 0
-#endif
-
-#ifndef HAVE_SLK_INIT
-#define HAVE_SLK_INIT 0
-#endif
-
-#ifndef HAVE_TERMATTRS
-#define HAVE_TERMATTRS 0
-#endif
-
-#ifndef HAVE_TERMNAME
-#define HAVE_TERMNAME 0
-#endif
-
-#ifndef HAVE_TGETENT
-#define HAVE_TGETENT 0
-#endif
-
-#ifndef HAVE_TIGETNUM
-#define HAVE_TIGETNUM 0
-#endif
-
-#ifndef HAVE_TYPEAHEAD
-#define HAVE_TYPEAHEAD 0
-#endif
-
-#ifndef HAVE_TIGETSTR
-#define HAVE_TIGETSTR 0
-#endif
-
-#ifndef HAVE_WINSSTR
-#define HAVE_WINSSTR 0
-#endif
-
-#ifndef HAVE_USE_DEFAULT_COLORS
-#define HAVE_USE_DEFAULT_COLORS 0
-#endif
-
-#ifndef HAVE_WRESIZE
-#define HAVE_WRESIZE 0
-#endif
-
-#ifndef NCURSES_EXT_FUNCS
-#define NCURSES_EXT_FUNCS 0
-#endif
-
-#ifndef NEED_PTEM_H
-#define NEED_PTEM_H 0
-#endif
-
-#ifndef NO_LEAKS
-#define NO_LEAKS 0
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-
-#if HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <signal.h> /* include before curses.h to work around glibc bug */
-
-#if defined(HAVE_XCURSES)
-#include <xcurses.h>
-#elif defined(HAVE_NCURSESW_NCURSES_H)
-#include <ncursesw/curses.h>
-#elif defined(HAVE_NCURSES_NCURSES_H)
-#include <ncurses/curses.h>
-#else
-#include <curses.h>
-#endif
-
-#if defined(HAVE_XCURSES)
-/* no other headers */
-#undef HAVE_SETUPTERM /* nonfunctional */
-#define HAVE_SETUPTERM 0
-#undef HAVE_TGETENT /* nonfunctional */
-#define HAVE_TGETENT 0
-#undef HAVE_TIGETSTR /* nonfunctional */
-#define HAVE_TIGETSTR 0
-#elif defined(HAVE_NCURSESW_TERM_H)
-#include <ncursesw/term.h>
-#elif defined(HAVE_NCURSES_TERM_H)
-#include <ncurses/term.h>
-#elif defined(HAVE_TERM_H)
-#include <term.h>
-#endif
-
-/*
- * Not all curses.h implementations include unctrl.h,
- * Solaris 10 xpg4 for example.
- */
-#if defined(NCURSES_VERSION) || defined(_XOPEN_CURSES)
-#if defined(HAVE_NCURSESW_NCURSES_H)
-#include <ncursesw/unctrl.h>
-#elif defined(HAVE_NCURSES_NCURSES_H)
-#include <ncurses/unctrl.h>
-#else
-#include <unctrl.h>
-#endif
-#endif
-
-#if HAVE_GETOPT_H
-#include <getopt.h>
-#else
-/* 'getopt()' may be prototyped in <stdlib.h>, but declaring its variables
- * doesn't hurt.
- */
-extern char *optarg;
-extern int optind;
-#endif /* HAVE_GETOPT_H */
-
-#if HAVE_LOCALE_H
-#include <locale.h>
-#else
-#define setlocale(name,string) /* nothing */
-#endif
-
-#include <assert.h>
-#include <ctype.h>
-
-#ifndef GCC_NORETURN
-#define GCC_NORETURN /* nothing */
-#endif
-#ifndef GCC_PRINTFLIKE
-#define GCC_PRINTFLIKE(a,b) /* nothing */
-#endif
-#ifndef GCC_UNUSED
-#define GCC_UNUSED /* nothing */
-#endif
-
-#ifndef HAVE_GETNSTR
-#define getnstr(s,n) getstr(s)
-#endif
-
-#ifndef USE_SOFTKEYS
-#if HAVE_SLK_INIT
-#define USE_SOFTKEYS 1
-#else
-#define USE_SOFTKEYS 0
-#endif
-#endif
-
-#ifndef USE_WIDEC_SUPPORT
-#if defined(_XOPEN_SOURCE_EXTENDED) && defined(WACS_ULCORNER)
-#define USE_WIDEC_SUPPORT 1
-#else
-#define USE_WIDEC_SUPPORT 0
-#endif
-#endif
-
-#if HAVE_PANEL_H && HAVE_LIBPANEL
-#define USE_LIBPANEL 1
-#else
-#define USE_LIBPANEL 0
-#endif
-
-#if HAVE_MENU_H && HAVE_LIBMENU
-#define USE_LIBMENU 1
-#else
-#define USE_LIBMENU 0
-#endif
-
-#if HAVE_FORM_H && HAVE_LIBFORM
-#define USE_LIBFORM 1
-#else
-#define USE_LIBFORM 0
-#endif
-
-#ifndef HAVE_TYPE_ATTR_T
-#if !USE_WIDEC_SUPPORT && !defined(attr_t)
-#define attr_t chtype
-#endif
-#endif
-
-#undef NCURSES_CH_T
-#if !USE_WIDEC_SUPPORT
-#define NCURSES_CH_T chtype
-#else
-#define NCURSES_CH_T cchar_t
-#endif
-
-#ifndef NCURSES_OPAQUE
-#define NCURSES_OPAQUE 0
-#endif
-
-#ifndef CCHARW_MAX
-#define CCHARW_MAX 5
-#endif
-
-#undef CTRL
-#define CTRL(x) ((x) & 0x1f)
-
-#define QUIT CTRL('Q')
-#define ESCAPE CTRL('[')
-
-#ifndef KEY_MIN
-#define KEY_MIN 256 /* not defined in Solaris 8 */
-#endif
-
-/*
- * Workaround for HPUX
- */
-#if defined(__hpux) && !defined(NCURSES_VERSION)
-#define getbegx(w) __getbegx(w)
-#define getbegy(w) __getbegy(w)
-#define getcurx(w) __getcurx(w)
-#define getcury(w) __getcury(w)
-#define getmaxx(w) __getmaxx(w)
-#define getmaxy(w) __getmaxy(w)
-#define getparx(w) __getparx(w)
-#define getpary(w) __getpary(w)
-#endif
-
-/*
- * These usually are implemented as macros, but may be functions.
- */
-#if !defined(getcurx) && !HAVE_GETCURX
-#define getcurx(win) ((win)?(win)->_curx:ERR)
-#define getcury(win) ((win)?(win)->_cury:ERR)
-#endif
-
-#if !defined(getbegx) && !HAVE_GETBEGX
-#define getbegx(win) ((win)?(win)->_begx:ERR)
-#define getbegy(win) ((win)?(win)->_begy:ERR)
-#endif
-
-#if !defined(getmaxx) && !HAVE_GETMAXX
-#define getmaxx(win) ((win)?((win)->_maxx + 1):ERR)
-#define getmaxy(win) ((win)?((win)->_maxy + 1):ERR)
-#endif
-
-/*
- * Solaris 10 xpg4:
-#define __m_getparx(w) ((w)->_parent == (WINDOW *) 0 ? -1 \
- : (w)->_begx - (w)->_parent->_begx)
- */
-#if !defined(getparx) && !HAVE_GETPARX
-#ifdef __m_getparx
-#define getparx(win) __m_getparx(win)
-#define getpary(win) __m_getpary(win)
-#else
-#define getparx(win) ((win)?((win)->_parx + 1):ERR)
-#define getpary(win) ((win)?((win)->_pary + 1):ERR)
-#endif
-#endif
-
-#if !defined(mvwvline) && !HAVE_MVWVLINE
-#define mvwvline(w,y,x,ch,n) (move(y,x) == ERR ? ERR : wvline(w,ch,n))
-#define mvwhline(w,y,x,ch,n) (move(y,x) == ERR ? ERR : whline(w,ch,n))
-#endif
-
-#if !defined(mvvline) && !HAVE_MVVLINE
-#define mvvline(y,x,ch,n) (move(y,x) == ERR ? ERR : vline(ch,n))
-#define mvhline(y,x,ch,n) (move(y,x) == ERR ? ERR : hline(ch,n))
-#endif
-
-/*
- * Try to accommodate curses implementations that have no terminfo support.
- */
-#if HAVE_TIGETNUM
-#define TIGETNUM(ti,tc) tigetnum(ti)
-#else
-#define TIGETNUM(ti,tc) tgetnum(tc)
-#endif
-
-#if HAVE_TIGETSTR
-#define TIGETSTR(ti,tc) tigetstr(ti)
-#else
-#define TIGETSTR(ti,tc) tgetstr(tc,&area_pointer)
-#endif
-
-/* ncurses implements tparm() with varargs, X/Open with a fixed-parameter list
- * (which is incompatible with legacy usage, doesn't solve any problems).
- */
-#define tparm3(a,b,c) tparm(a,b,c,0,0,0,0,0,0,0)
-#define tparm2(a,b) tparm(a,b,0,0,0,0,0,0,0,0)
-
-#define UChar(c) ((unsigned char)(c))
-
-#define SIZEOF(table) (sizeof(table)/sizeof(table[0]))
-
-#if defined(NCURSES_VERSION) && HAVE_NC_ALLOC_H
-#include <nc_alloc.h>
-#if HAVE_NC_FREEALL && defined(USE_TINFO)
-#undef ExitProgram
-#define ExitProgram(code) _nc_free_tinfo(code)
-#endif
-#else
-#define typeMalloc(type,n) (type *) malloc((n) * sizeof(type))
-#define typeCalloc(type,elts) (type *) calloc((elts), sizeof(type))
-#define typeRealloc(type,n,p) (type *) realloc(p, (n) * sizeof(type))
-#endif
-
-#ifndef ExitProgram
-#define ExitProgram(code) exit(code)
-#endif
-
-#ifndef EXIT_SUCCESS
-#define EXIT_SUCCESS 0
-#endif
-#ifndef EXIT_FAILURE
-#define EXIT_FAILURE 1
-#endif
-
-/* Use this to quiet gcc's -Wwrite-strings warnings, but accommodate SVr4
- * curses which doesn't have const parameters declared (so far) in the places
- * that XSI shows.
- */
-#ifndef NCURSES_CONST
-#define NCURSES_CONST /* nothing */
-#endif
-
-/* out-of-band values for representing absent capabilities */
-#define ABSENT_BOOLEAN ((signed char)-1) /* 255 */
-#define ABSENT_NUMERIC (-1)
-#define ABSENT_STRING (char *)0
-
-/* out-of-band values for representing cancels */
-#define CANCELLED_BOOLEAN ((signed char)-2) /* 254 */
-#define CANCELLED_NUMERIC (-2)
-#define CANCELLED_STRING (char *)(-1)
-
-#define VALID_BOOLEAN(s) ((unsigned char)(s) <= 1) /* reject "-1" */
-#define VALID_NUMERIC(s) ((s) >= 0)
-#define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
-
-#define VT_ACSC "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~"
-
-#define CATCHALL(handler) { \
- int nsig; \
- for (nsig = SIGHUP; nsig < SIGTERM; ++nsig) \
- if (nsig != SIGKILL) \
- signal(nsig, handler); \
- }
-
-/*
- * Workaround for clean(er) compile with Solaris's legacy curses.
- * The same would be needed for HPUX 10.20
- */
-#ifndef TPUTS_ARG
-#if defined(sun) && !defined(_XOPEN_CURSES) && !defined(NCURSES_VERSION_PATCH)
-#define TPUTS_ARG char
-extern char *tgoto(char *, int, int); /* available, but not prototyped */
-#else
-#define TPUTS_ARG int
-#endif
-#endif
-
-/*
- * Workarounds for Solaris's X/Open curses
- */
-#if defined(sun) && defined(_XOPEN_CURSES) && !defined(NCURSES_VERSION_PATCH)
-#if !defined(KEY_MIN) && defined(__KEY_MIN)
-#define KEY_MIN __KEY_MIN
-#endif
-#if !defined(KEY_MAX) && defined(__KEY_MIN)
-#define KEY_MAX __KEY_MAX
-#endif
-#endif
-
-/*
- * ncurses uses const in some places where X/Open does (or did) not allow.
- */
-#ifdef NCURSES_VERSION
-#define CONST_MENUS const
-#else
-#define CONST_MENUS /* nothing */
-#endif
-
-#ifndef HAVE_USE_WINDOW
-#if !defined(NCURSES_VERSION_PATCH) || (NCURSES_VERSION_PATCH < 20070915) || !NCURSES_EXT_FUNCS
-#define HAVE_USE_WINDOW 0
-#else
-#define HAVE_USE_WINDOW 1
-#endif
-#endif
-
-/*
- * Simplify setting up demo of threading with these macros.
- */
-
-#if !HAVE_USE_WINDOW
-typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);
-typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);
-#endif
-
-#if HAVE_USE_WINDOW
-#define USING_WINDOW(w,func) use_window(w, (NCURSES_WINDOW_CB) func, w)
-#define USING_WINDOW2(w,func,data) use_window(w, (NCURSES_WINDOW_CB) func, data)
-#define WANT_USE_WINDOW() extern void _nc_want_use_window(void)
-#else
-#define USING_WINDOW(w,func) func(w)
-#define USING_WINDOW2(w,func,data) func(w,data)
-#define WANT_USE_WINDOW() extern void _nc_want_use_window(void)
-#endif
-
-#if HAVE_USE_WINDOW
-#define USING_SCREEN(s,func,data) use_screen(s, (NCURSES_SCREEN_CB) func, data)
-#define WANT_USE_SCREEN() extern void _nc_want_use_screen(void)
-#else
-#define USING_SCREEN(s,func,data) func(s,data)
-#define WANT_USE_SCREEN() extern void _nc_want_use_screen(void)
-#endif
-
-#ifdef TRACE
-#define Trace(p) _tracef p
-#define USE_TRACE 1
-#else
-#define Trace(p) /* nothing */
-#define USE_TRACE 0
-#endif
-
-#define init_mb(state) memset(&state, 0, sizeof(state))
-
-#endif /* __TEST_PRIV_H */
diff --git a/test/test_arrays b/test/test_arrays
deleted file mode 100755
index e027e39..0000000
--- a/test/test_arrays
+++ /dev/null
Binary files differ
diff --git a/test/test_arrays.c b/test/test_arrays.c
deleted file mode 100644
index ff6a10b..0000000
--- a/test/test_arrays.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: test_arrays.c,v 1.3 2008/02/09 18:09:43 tom Exp $
- *
- * Author: Thomas E Dickey
- *
- * Demonstrate the public arrays from the terminfo library.
-
-extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];
-extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];
-extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];
-extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];
-extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];
-extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];
-extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];
-extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];
-extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];
-
- */
-
-#define USE_TINFO
-#include <test.priv.h>
-
-#if defined(NCURSES_VERSION) || !defined(_XOPEN_CURSES)
-
-#define DUMP(name) dump_array(#name, name)
-
-static void
-dump_array(const char *name, NCURSES_CONST char *const *list)
-{
- int n;
-
- printf("%s:\n", name);
- for (n = 0; list[n] != 0; ++n) {
- printf("%5d:%s\n", n, list[n]);
- }
-}
-
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- DUMP(boolnames);
- DUMP(boolcodes);
- DUMP(boolfnames);
-
- DUMP(numnames);
- DUMP(numcodes);
- DUMP(numfnames);
-
- DUMP(strnames);
- DUMP(strcodes);
- DUMP(strfnames);
-
- ExitProgram(EXIT_SUCCESS);
-}
-
-#else
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
-{
- printf("This program requires the terminfo arrays\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/test_get_wstr b/test/test_get_wstr
deleted file mode 100755
index 9825d47..0000000
--- a/test/test_get_wstr
+++ /dev/null
Binary files differ
diff --git a/test/test_get_wstr.c b/test/test_get_wstr.c
deleted file mode 100644
index 7ae3730..0000000
--- a/test/test_get_wstr.c
+++ /dev/null
@@ -1,361 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: test_get_wstr.c,v 1.5 2007/08/11 17:01:43 tom Exp $
- *
- * Author: Thomas E Dickey
- *
- * Demonstrate the get_wstr functions from the curses library.
-
- int get_wstr(wint_t *wstr);
- int getn_wstr(wint_t *wstr, int n);
- int wget_wstr(WINDOW *win, wint_t *wstr);
- int wgetn_wstr(WINDOW *win, wint_t *wstr, int n);
- int mvget_wstr(int y, int x, wint_t *wstr);
- int mvgetn_wstr(int y, int x, wint_t *wstr, int n);
- int mvwget_wstr(WINDOW *win, int y, int x, wint_t *wstr);
- int mvwgetn_wstr(WINDOW *win, int y, int x, wint_t *wstr, int n);
- */
-
-#include <test.priv.h>
-
-#if USE_WIDEC_SUPPORT
-
-#define BASE_Y 6
-#define MAX_COLS 1024
-
-typedef enum {
- eGetStr = 0,
- eGetNStr,
- eMvGetStr,
- eMvGetNStr,
- eMaxFlavor
-} Flavors;
-
-static bool
-Quit(int ch)
-{
- return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
-}
-
-static int
-Remainder(WINDOW *txtwin)
-{
- int result = getmaxx(txtwin) - getcurx(txtwin);
- return (result > 0) ? result : 0;
-}
-
-/*
- * Show a highlighted line in the place where input will happen.
- */
-static void
-ShowPrompt(WINDOW *txtwin, int limit)
-{
- wchgat(txtwin, limit, A_REVERSE, 0, NULL);
- wnoutrefresh(txtwin);
-}
-
-static void
-MovePrompt(WINDOW *txtwin, int limit, int y, int x)
-{
- wchgat(txtwin, Remainder(txtwin), A_NORMAL, 0, NULL);
- wmove(txtwin, y, x);
- ShowPrompt(txtwin, limit);
-}
-
-static int
-ShowFlavor(WINDOW *strwin, WINDOW *txtwin, int flavor, int limit)
-{
- const char *name = "?";
- bool limited = FALSE;
- bool wins = (txtwin != stdscr);
- int result;
-
- switch (flavor) {
- case eGetStr:
- name = wins ? "wget_wstr" : "get_wstr";
- break;
- case eGetNStr:
- limited = TRUE;
- name = wins ? "wgetn_wstr" : "getn_wstr";
- break;
- case eMvGetStr:
- name = wins ? "mvwget_wstr" : "mvget_wstr";
- break;
- case eMvGetNStr:
- limited = TRUE;
- name = wins ? "mvwgetn_wstr" : "mvgetn_wstr";
- break;
- case eMaxFlavor:
- break;
- }
-
- wmove(strwin, 0, 0);
- werase(strwin);
-
- if (limited) {
- wprintw(strwin, "%s(%d):", name, limit);
- } else {
- wprintw(strwin, "%s:", name);
- }
- result = limited ? limit : Remainder(txtwin);
- ShowPrompt(txtwin, result);
-
- wnoutrefresh(strwin);
- return result;
-}
-
-static int
-test_get_wstr(int level, char **argv, WINDOW *strwin)
-{
- WINDOW *txtbox = 0;
- WINDOW *txtwin = 0;
- FILE *fp;
- int ch;
- int rc;
- int txt_x = 0, txt_y = 0;
- int base_y;
- int flavor = 0;
- int limit = getmaxx(strwin) - 5;
- int actual;
- wint_t buffer[MAX_COLS];
-
- if (argv[level] == 0) {
- beep();
- return FALSE;
- }
-
- if (level > 1) {
- txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
- box(txtbox, 0, 0);
- wnoutrefresh(txtbox);
-
- txtwin = derwin(txtbox,
- getmaxy(txtbox) - 2,
- getmaxx(txtbox) - 2,
- 1, 1);
- base_y = 0;
- } else {
- txtwin = stdscr;
- base_y = BASE_Y;
- }
-
- keypad(txtwin, TRUE); /* enable keyboard mapping */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-
- txt_y = base_y;
- txt_x = 0;
- wmove(txtwin, txt_y, txt_x);
-
- if ((fp = fopen(argv[level], "r")) != 0) {
- while ((ch = fgetc(fp)) != EOF) {
- if (waddch(txtwin, UChar(ch)) != OK) {
- break;
- }
- }
- fclose(fp);
- } else {
- wprintw(txtwin, "Cannot open:\n%s", argv[1]);
- }
-
- wmove(txtwin, txt_y, txt_x);
- actual = ShowFlavor(strwin, txtwin, flavor, limit);
- while (!Quit(ch = mvwgetch(txtwin, txt_y, txt_x))) {
- switch (ch) {
- case KEY_DOWN:
- case 'j':
- if (txt_y < getmaxy(txtwin) - 1) {
- MovePrompt(txtwin, actual, ++txt_y, txt_x);
- } else {
- beep();
- }
- break;
- case KEY_UP:
- case 'k':
- if (txt_y > base_y) {
- MovePrompt(txtwin, actual, --txt_y, txt_x);
- } else {
- beep();
- }
- break;
- case KEY_LEFT:
- case 'h':
- if (txt_x > 0) {
- MovePrompt(txtwin, actual, txt_y, --txt_x);
- } else {
- beep();
- }
- break;
- case KEY_RIGHT:
- case 'l':
- if (txt_x < getmaxx(txtwin) - 1) {
- MovePrompt(txtwin, actual, txt_y, ++txt_x);
- } else {
- beep();
- }
- break;
-
- case 'w':
- test_get_wstr(level + 1, argv, strwin);
- if (txtbox != 0) {
- touchwin(txtbox);
- wnoutrefresh(txtbox);
- } else {
- touchwin(txtwin);
- wnoutrefresh(txtwin);
- }
- break;
-
- case '-':
- if (limit > 0) {
- actual = ShowFlavor(strwin, txtwin, flavor, --limit);
- MovePrompt(txtwin, actual, txt_y, txt_x);
- } else {
- beep();
- }
- break;
-
- case '+':
- actual = ShowFlavor(strwin, txtwin, flavor, ++limit);
- MovePrompt(txtwin, actual, txt_y, txt_x);
- break;
-
- case '<':
- if (flavor > 0) {
- actual = ShowFlavor(strwin, txtwin, --flavor, limit);
- MovePrompt(txtwin, actual, txt_y, txt_x);
- } else {
- beep();
- }
- break;
-
- case '>':
- if (flavor + 1 < eMaxFlavor) {
- actual = ShowFlavor(strwin, txtwin, ++flavor, limit);
- MovePrompt(txtwin, actual, txt_y, txt_x);
- } else {
- beep();
- }
- break;
-
- case ':':
- actual = ShowFlavor(strwin, txtwin, flavor, limit);
- *buffer = '\0';
- rc = ERR;
- echo();
- wattrset(txtwin, A_REVERSE);
- switch (flavor) {
- case eGetStr:
- if (txtwin != stdscr) {
- wmove(txtwin, txt_y, txt_x);
- rc = wget_wstr(txtwin, buffer);
- } else {
- move(txt_y, txt_x);
- rc = get_wstr(buffer);
- }
- break;
- case eGetNStr:
- if (txtwin != stdscr) {
- wmove(txtwin, txt_y, txt_x);
- rc = wgetn_wstr(txtwin, buffer, limit);
- } else {
- move(txt_y, txt_x);
- rc = getn_wstr(buffer, limit);
- }
- break;
- case eMvGetStr:
- if (txtwin != stdscr) {
- rc = mvwget_wstr(txtwin, txt_y, txt_x, buffer);
- } else {
- rc = mvget_wstr(txt_y, txt_x, buffer);
- }
- break;
- case eMvGetNStr:
- if (txtwin != stdscr) {
- rc = mvwgetn_wstr(txtwin, txt_y, txt_x, buffer, limit);
- } else {
- rc = mvgetn_wstr(txt_y, txt_x, buffer, limit);
- }
- break;
- case eMaxFlavor:
- break;
- }
- noecho();
- wattrset(txtwin, A_NORMAL);
- wprintw(strwin, "%d", rc);
- waddwstr(strwin, (wchar_t *) buffer);
- wnoutrefresh(strwin);
- break;
- default:
- beep();
- break;
- }
- doupdate();
- }
- if (level > 1) {
- delwin(txtwin);
- delwin(txtbox);
- }
- return TRUE;
-}
-
-int
-main(int argc, char *argv[])
-{
- WINDOW *chrbox;
- WINDOW *strwin;
-
- setlocale(LC_ALL, "");
-
- if (argc < 2) {
- fprintf(stderr, "usage: %s file\n", argv[0]);
- return EXIT_FAILURE;
- }
-
- initscr();
-
- chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
- box(chrbox, 0, 0);
- wnoutrefresh(chrbox);
-
- strwin = derwin(chrbox, 4, COLS - 2, 1, 1);
-
- test_get_wstr(1, argv, strwin);
-
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the wide-ncurses library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/test_getstr b/test/test_getstr
deleted file mode 100755
index ed34cf5..0000000
--- a/test/test_getstr
+++ /dev/null
Binary files differ
diff --git a/test/test_getstr.c b/test/test_getstr.c
deleted file mode 100644
index 25dbecf..0000000
--- a/test/test_getstr.c
+++ /dev/null
@@ -1,363 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: test_getstr.c,v 1.8 2008/02/09 18:09:35 tom Exp $
- *
- * Author: Thomas E Dickey
- *
- * Demonstrate the getstr functions from the curses library.
-
- int getstr(char *str);
- int getnstr(char *str, int n);
- int wgetstr(WINDOW *win, char *str);
- int wgetnstr(WINDOW *win, char *str, int n);
- int mvgetstr(int y, int x, char *str);
- int mvwgetstr(WINDOW *win, int y, int x, char *str);
- int mvgetnstr(int y, int x, char *str, int n);
- int mvwgetnstr(WINDOW *, int y, int x, char *str, int n);
- */
-
-#include <test.priv.h>
-
-#if HAVE_CHGAT
-/* Solaris SVr4 curses lacks wchgat, mvgetnstr, mvwgetnstr */
-
-#define BASE_Y 6
-#define MAX_COLS 1024
-
-typedef enum {
- eGetStr = 0,
- eGetNStr,
- eMvGetStr,
- eMvGetNStr,
- eMaxFlavor
-} Flavors;
-
-static bool
-Quit(int ch)
-{
- return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
-}
-
-static int
-Remainder(WINDOW *txtwin)
-{
- int result = getmaxx(txtwin) - getcurx(txtwin);
- return (result > 0) ? result : 0;
-}
-
-/*
- * Show a highlighted line in the place where input will happen.
- */
-static void
-ShowPrompt(WINDOW *txtwin, int limit)
-{
- wchgat(txtwin, limit, A_REVERSE, 0, NULL);
- wnoutrefresh(txtwin);
-}
-
-static void
-MovePrompt(WINDOW *txtwin, int limit, int y, int x)
-{
- wchgat(txtwin, Remainder(txtwin), A_NORMAL, 0, NULL);
- wmove(txtwin, y, x);
- ShowPrompt(txtwin, limit);
-}
-
-static int
-ShowFlavor(WINDOW *strwin, WINDOW *txtwin, int flavor, int limit)
-{
- const char *name = "?";
- bool limited = FALSE;
- bool wins = (txtwin != stdscr);
- int result;
-
- switch (flavor) {
- case eGetStr:
- name = wins ? "wgetstr" : "getstr";
- break;
- case eGetNStr:
- limited = TRUE;
- name = wins ? "wgetnstr" : "getnstr";
- break;
- case eMvGetStr:
- name = wins ? "mvwgetstr" : "mvgetstr";
- break;
- case eMvGetNStr:
- limited = TRUE;
- name = wins ? "mvwgetnstr" : "mvgetnstr";
- break;
- case eMaxFlavor:
- break;
- }
-
- wmove(strwin, 0, 0);
- werase(strwin);
-
- if (limited) {
- wprintw(strwin, "%s(%d):", name, limit);
- } else {
- wprintw(strwin, "%s:", name);
- }
- result = limited ? limit : Remainder(txtwin);
- ShowPrompt(txtwin, result);
-
- wnoutrefresh(strwin);
- return result;
-}
-
-static int
-test_getstr(int level, char **argv, WINDOW *strwin)
-{
- WINDOW *txtbox = 0;
- WINDOW *txtwin = 0;
- FILE *fp;
- int ch;
- int rc;
- int txt_x = 0, txt_y = 0;
- int base_y;
- int flavor = 0;
- int limit = getmaxx(strwin) - 5;
- int actual;
-
- char buffer[MAX_COLS];
-
- if (argv[level] == 0) {
- beep();
- return FALSE;
- }
-
- if (level > 1) {
- txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
- box(txtbox, 0, 0);
- wnoutrefresh(txtbox);
-
- txtwin = derwin(txtbox,
- getmaxy(txtbox) - 2,
- getmaxx(txtbox) - 2,
- 1, 1);
- base_y = 0;
- } else {
- txtwin = stdscr;
- base_y = BASE_Y;
- }
-
- keypad(txtwin, TRUE); /* enable keyboard mapping */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-
- txt_y = base_y;
- txt_x = 0;
- wmove(txtwin, txt_y, txt_x);
-
- if ((fp = fopen(argv[level], "r")) != 0) {
- while ((ch = fgetc(fp)) != EOF) {
- if (waddch(txtwin, UChar(ch)) != OK) {
- break;
- }
- }
- fclose(fp);
- } else {
- wprintw(txtwin, "Cannot open:\n%s", argv[1]);
- }
-
- wmove(txtwin, txt_y, txt_x);
- actual = ShowFlavor(strwin, txtwin, flavor, limit);
- while (!Quit(ch = mvwgetch(txtwin, txt_y, txt_x))) {
- switch (ch) {
- case KEY_DOWN:
- case 'j':
- if (txt_y < getmaxy(txtwin) - 1) {
- MovePrompt(txtwin, actual, ++txt_y, txt_x);
- } else {
- beep();
- }
- break;
- case KEY_UP:
- case 'k':
- if (txt_y > base_y) {
- MovePrompt(txtwin, actual, --txt_y, txt_x);
- } else {
- beep();
- }
- break;
- case KEY_LEFT:
- case 'h':
- if (txt_x > 0) {
- MovePrompt(txtwin, actual, txt_y, --txt_x);
- } else {
- beep();
- }
- break;
- case KEY_RIGHT:
- case 'l':
- if (txt_x < getmaxx(txtwin) - 1) {
- MovePrompt(txtwin, actual, txt_y, ++txt_x);
- } else {
- beep();
- }
- break;
-
- case 'w':
- test_getstr(level + 1, argv, strwin);
- if (txtbox != 0) {
- touchwin(txtbox);
- wnoutrefresh(txtbox);
- } else {
- touchwin(txtwin);
- wnoutrefresh(txtwin);
- }
- break;
-
- case '-':
- if (limit > 0) {
- actual = ShowFlavor(strwin, txtwin, flavor, --limit);
- MovePrompt(txtwin, actual, txt_y, txt_x);
- } else {
- beep();
- }
- break;
-
- case '+':
- actual = ShowFlavor(strwin, txtwin, flavor, ++limit);
- MovePrompt(txtwin, actual, txt_y, txt_x);
- break;
-
- case '<':
- if (flavor > 0) {
- actual = ShowFlavor(strwin, txtwin, --flavor, limit);
- MovePrompt(txtwin, actual, txt_y, txt_x);
- } else {
- beep();
- }
- break;
-
- case '>':
- if (flavor + 1 < eMaxFlavor) {
- actual = ShowFlavor(strwin, txtwin, ++flavor, limit);
- MovePrompt(txtwin, actual, txt_y, txt_x);
- } else {
- beep();
- }
- break;
-
- case ':':
- actual = ShowFlavor(strwin, txtwin, flavor, limit);
- *buffer = '\0';
- rc = ERR;
- echo();
- wattrset(txtwin, A_REVERSE);
- switch (flavor) {
- case eGetStr:
- if (txtwin != stdscr) {
- wmove(txtwin, txt_y, txt_x);
- rc = wgetstr(txtwin, buffer);
- } else {
- move(txt_y, txt_x);
- rc = getstr(buffer);
- }
- break;
- case eGetNStr:
- if (txtwin != stdscr) {
- wmove(txtwin, txt_y, txt_x);
- rc = wgetnstr(txtwin, buffer, limit);
- } else {
- move(txt_y, txt_x);
- rc = getnstr(buffer, limit);
- }
- break;
- case eMvGetStr:
- if (txtwin != stdscr) {
- rc = mvwgetstr(txtwin, txt_y, txt_x, buffer);
- } else {
- rc = mvgetstr(txt_y, txt_x, buffer);
- }
- break;
- case eMvGetNStr:
- if (txtwin != stdscr) {
- rc = mvwgetnstr(txtwin, txt_y, txt_x, buffer, limit);
- } else {
- rc = mvgetnstr(txt_y, txt_x, buffer, limit);
- }
- break;
- case eMaxFlavor:
- break;
- }
- noecho();
- wattrset(txtwin, A_NORMAL);
- wprintw(strwin, "%d:%s", rc, buffer);
- wnoutrefresh(strwin);
- break;
- default:
- beep();
- break;
- }
- doupdate();
- }
- if (level > 1) {
- delwin(txtwin);
- delwin(txtbox);
- }
- return TRUE;
-}
-
-int
-main(int argc, char *argv[])
-{
- WINDOW *chrbox;
- WINDOW *strwin;
-
- setlocale(LC_ALL, "");
-
- if (argc < 2) {
- fprintf(stderr, "usage: %s file\n", argv[0]);
- return EXIT_FAILURE;
- }
-
- initscr();
-
- chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
- box(chrbox, 0, 0);
- wnoutrefresh(chrbox);
-
- strwin = derwin(chrbox, 4, COLS - 2, 1, 1);
-
- test_getstr(1, argv, strwin);
-
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-
-#else
-int
-main(void)
-{
- printf("This program requires the curses chgat function\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/test_instr b/test/test_instr
deleted file mode 100755
index 0d876e4..0000000
--- a/test/test_instr
+++ /dev/null
Binary files differ
diff --git a/test/test_instr.c b/test/test_instr.c
deleted file mode 100644
index b24f772..0000000
--- a/test/test_instr.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: test_instr.c,v 1.4 2007/07/21 19:38:04 tom Exp $
- *
- * Author: Thomas E Dickey
- *
- * Demonstrate the instr functions from the curses library.
-
- int instr(char *str);
- int innstr(char *str, int n);
- int winstr(WINDOW *win, char *str);
- int winnstr(WINDOW *win, char *str, int n);
- int mvinstr(int y, int x, char *str);
- int mvinnstr(int y, int x, char *str, int n);
- int mvwinstr(WINDOW *win, int y, int x, char *str);
- int mvwinnstr(WINDOW *win, int y, int x, char *str, int n);
- */
-
-#include <test.priv.h>
-
-#define BASE_Y 6
-#define MAX_COLS 1024
-
-static bool
-Quit(int ch)
-{
- return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
-}
-
-static void
-show_1st(WINDOW *win, int line, char *buffer)
-{
- mvwaddstr(win, line, 5, buffer);
-}
-
-static void
-showmore(WINDOW *win, int line, char *buffer)
-{
- wmove(win, line, 0);
- wclrtoeol(win);
- show_1st(win, line, buffer);
-}
-
-static int
-test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
-{
- WINDOW *txtbox = 0;
- WINDOW *txtwin = 0;
- FILE *fp;
- int ch;
- int txt_x = 0, txt_y = 0;
- int base_y;
- int limit = getmaxx(strwin) - 5;
-
- char buffer[MAX_COLS];
-
- if (argv[level] == 0) {
- beep();
- return FALSE;
- }
-
- if (level > 1) {
- txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
- box(txtbox, 0, 0);
- wnoutrefresh(txtbox);
-
- txtwin = derwin(txtbox,
- getmaxy(txtbox) - 2,
- getmaxx(txtbox) - 2,
- 1, 1);
- base_y = 0;
- } else {
- txtwin = stdscr;
- base_y = BASE_Y;
- }
-
- keypad(txtwin, TRUE); /* enable keyboard mapping */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-
- txt_y = base_y;
- txt_x = 0;
- wmove(txtwin, txt_y, txt_x);
-
- if ((fp = fopen(argv[level], "r")) != 0) {
- while ((ch = fgetc(fp)) != EOF) {
- if (waddch(txtwin, UChar(ch)) != OK) {
- break;
- }
- }
- fclose(fp);
- } else {
- wprintw(txtwin, "Cannot open:\n%s", argv[1]);
- }
-
- while (!Quit(ch = mvwgetch(txtwin, txt_y, txt_x))) {
- switch (ch) {
- case KEY_DOWN:
- case 'j':
- if (txt_y < getmaxy(txtwin) - 1)
- txt_y++;
- else
- beep();
- break;
- case KEY_UP:
- case 'k':
- if (txt_y > base_y)
- txt_y--;
- else
- beep();
- break;
- case KEY_LEFT:
- case 'h':
- if (txt_x > 0)
- txt_x--;
- else
- beep();
- break;
- case KEY_RIGHT:
- case 'l':
- if (txt_x < getmaxx(txtwin) - 1)
- txt_x++;
- else
- beep();
- break;
- case 'w':
- test_inchs(level + 1, argv, chrwin, strwin);
- if (txtbox != 0) {
- touchwin(txtbox);
- wnoutrefresh(txtbox);
- } else {
- touchwin(txtwin);
- wnoutrefresh(txtwin);
- }
- break;
- case '-':
- if (limit > 0) {
- --limit;
- } else {
- beep();
- }
- break;
- case '+':
- ++limit;
- break;
- default:
- beep();
- break;
- }
-
- mvwprintw(chrwin, 0, 0, "line:");
- wclrtoeol(chrwin);
-
- if (txtwin != stdscr) {
- wmove(txtwin, txt_y, txt_x);
-
- if (winstr(txtwin, buffer) != ERR) {
- show_1st(chrwin, 0, buffer);
- }
- if (mvwinstr(txtwin, txt_y, txt_x, buffer) != ERR) {
- showmore(chrwin, 1, buffer);
- }
- } else {
- move(txt_y, txt_x);
-
- if (instr(buffer) != ERR) {
- show_1st(chrwin, 0, buffer);
- }
- if (mvinstr(txt_y, txt_x, buffer) != ERR) {
- showmore(chrwin, 1, buffer);
- }
- }
- wnoutrefresh(chrwin);
-
- mvwprintw(strwin, 0, 0, "%4d:", limit);
- wclrtobot(strwin);
-
- if (txtwin != stdscr) {
- wmove(txtwin, txt_y, txt_x);
- if (winnstr(txtwin, buffer, limit) != ERR) {
- show_1st(strwin, 0, buffer);
- }
-
- if (mvwinnstr(txtwin, txt_y, txt_x, buffer, limit) != ERR) {
- showmore(strwin, 1, buffer);
- }
- } else {
- move(txt_y, txt_x);
- if (innstr(buffer, limit) != ERR) {
- show_1st(strwin, 0, buffer);
- }
-
- if (mvinnstr(txt_y, txt_x, buffer, limit) != ERR) {
- showmore(strwin, 1, buffer);
- }
- }
-
- wnoutrefresh(strwin);
- }
- if (level > 1) {
- delwin(txtwin);
- delwin(txtbox);
- }
- return TRUE;
-}
-
-int
-main(int argc, char *argv[])
-{
- WINDOW *chrbox;
- WINDOW *chrwin;
- WINDOW *strwin;
-
- setlocale(LC_ALL, "");
-
- if (argc < 2) {
- fprintf(stderr, "usage: %s file\n", argv[0]);
- return EXIT_FAILURE;
- }
-
- initscr();
-
- chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
- box(chrbox, 0, 0);
- wnoutrefresh(chrbox);
-
- chrwin = derwin(chrbox, 2, COLS - 2, 1, 1);
- strwin = derwin(chrbox, 2, COLS - 2, 3, 1);
-
- test_inchs(1, argv, chrwin, strwin);
-
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/test_inwstr b/test/test_inwstr
deleted file mode 100755
index 7d5626a..0000000
--- a/test/test_inwstr
+++ /dev/null
Binary files differ
diff --git a/test/test_inwstr.c b/test/test_inwstr.c
deleted file mode 100644
index fe2b645..0000000
--- a/test/test_inwstr.c
+++ /dev/null
@@ -1,269 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: test_inwstr.c,v 1.3 2007/07/21 22:47:42 tom Exp $
- *
- * Author: Thomas E Dickey
- *
- * Demonstrate the inwstr functions from the curses library.
-
- int inwstr(wchar_t *str);
- int innwstr(wchar_t *str, int n);
- int winwstr(WINDOW *win, wchar_t *str);
- int winnwstr(WINDOW *win, wchar_t *str, int n);
- int mvinwstr(int y, int x, wchar_t *str);
- int mvinnwstr(int y, int x, wchar_t *str, int n);
- int mvwinwstr(WINDOW *win, int y, int x, wchar_t *str);
- int mvwinnwstr(WINDOW *win, int y, int x, wchar_t *str, int n);
- */
-
-#include <test.priv.h>
-
-#if USE_WIDEC_SUPPORT
-
-#define BASE_Y 6
-#define MAX_COLS 1024
-
-static bool
-Quit(int ch)
-{
- return (ch == ERR || ch == 'q' || ch == QUIT || ch == ESCAPE);
-}
-
-static void
-show_1st(WINDOW *win, int line, wchar_t *buffer)
-{
- mvwaddwstr(win, line, 5, buffer);
-}
-
-static void
-showmore(WINDOW *win, int line, wchar_t *buffer)
-{
- wmove(win, line, 0);
- wclrtoeol(win);
- show_1st(win, line, buffer);
-}
-
-static int
-test_inchs(int level, char **argv, WINDOW *chrwin, WINDOW *strwin)
-{
- WINDOW *txtbox = 0;
- WINDOW *txtwin = 0;
- FILE *fp;
- int ch;
- int txt_x = 0, txt_y = 0;
- int base_y;
- int limit = getmaxx(strwin) - 5;
- wchar_t buffer[MAX_COLS];
-
- if (argv[level] == 0) {
- beep();
- return FALSE;
- }
-
- if (level > 1) {
- txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
- box(txtbox, 0, 0);
- wnoutrefresh(txtbox);
-
- txtwin = derwin(txtbox,
- getmaxy(txtbox) - 2,
- getmaxx(txtbox) - 2,
- 1, 1);
- base_y = 0;
- } else {
- txtwin = stdscr;
- base_y = BASE_Y;
- }
-
- keypad(txtwin, TRUE); /* enable keyboard mapping */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-
- txt_y = base_y;
- txt_x = 0;
- wmove(txtwin, txt_y, txt_x);
-
- if ((fp = fopen(argv[level], "r")) != 0) {
- while ((ch = fgetc(fp)) != EOF) {
- if (waddch(txtwin, UChar(ch)) != OK) {
- break;
- }
- }
- fclose(fp);
- } else {
- wprintw(txtwin, "Cannot open:\n%s", argv[1]);
- }
-
- while (!Quit(ch = mvwgetch(txtwin, txt_y, txt_x))) {
- switch (ch) {
- case KEY_DOWN:
- case 'j':
- if (txt_y < getmaxy(txtwin) - 1)
- txt_y++;
- else
- beep();
- break;
- case KEY_UP:
- case 'k':
- if (txt_y > base_y)
- txt_y--;
- else
- beep();
- break;
- case KEY_LEFT:
- case 'h':
- if (txt_x > 0)
- txt_x--;
- else
- beep();
- break;
- case KEY_RIGHT:
- case 'l':
- if (txt_x < getmaxx(txtwin) - 1)
- txt_x++;
- else
- beep();
- break;
- case 'w':
- test_inchs(level + 1, argv, chrwin, strwin);
- if (txtbox != 0) {
- touchwin(txtbox);
- wnoutrefresh(txtbox);
- } else {
- touchwin(txtwin);
- wnoutrefresh(txtwin);
- }
- break;
- case '-':
- if (limit > 0) {
- --limit;
- } else {
- beep();
- }
- break;
- case '+':
- ++limit;
- break;
- default:
- beep();
- break;
- }
-
- mvwprintw(chrwin, 0, 0, "line:");
- wclrtoeol(chrwin);
-
- if (txtwin != stdscr) {
- wmove(txtwin, txt_y, txt_x);
-
- if (winwstr(txtwin, buffer) != ERR) {
- show_1st(chrwin, 0, buffer);
- }
- if (mvwinwstr(txtwin, txt_y, txt_x, buffer) != ERR) {
- showmore(chrwin, 1, buffer);
- }
- } else {
- move(txt_y, txt_x);
-
- if (inwstr(buffer) != ERR) {
- show_1st(chrwin, 0, buffer);
- }
- if (mvinwstr(txt_y, txt_x, buffer) != ERR) {
- showmore(chrwin, 1, buffer);
- }
- }
- wnoutrefresh(chrwin);
-
- mvwprintw(strwin, 0, 0, "%4d:", limit);
- wclrtobot(strwin);
-
- if (txtwin != stdscr) {
- wmove(txtwin, txt_y, txt_x);
- if (winnwstr(txtwin, buffer, limit) != ERR) {
- show_1st(strwin, 0, buffer);
- }
-
- if (mvwinnwstr(txtwin, txt_y, txt_x, buffer, limit) != ERR) {
- showmore(strwin, 1, buffer);
- }
- } else {
- move(txt_y, txt_x);
- if (innwstr(buffer, limit) != ERR) {
- show_1st(strwin, 0, buffer);
- }
-
- if (mvinnwstr(txt_y, txt_x, buffer, limit) != ERR) {
- showmore(strwin, 1, buffer);
- }
- }
-
- wnoutrefresh(strwin);
- }
- if (level > 1) {
- delwin(txtwin);
- delwin(txtbox);
- }
- return TRUE;
-}
-
-int
-main(int argc, char *argv[])
-{
- WINDOW *chrbox;
- WINDOW *chrwin;
- WINDOW *strwin;
-
- setlocale(LC_ALL, "");
-
- if (argc < 2) {
- fprintf(stderr, "usage: %s file\n", argv[0]);
- return EXIT_FAILURE;
- }
-
- initscr();
-
- chrbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
- box(chrbox, 0, 0);
- wnoutrefresh(chrbox);
-
- chrwin = derwin(chrbox, 2, COLS - 2, 1, 1);
- strwin = derwin(chrbox, 2, COLS - 2, 3, 1);
-
- test_inchs(1, argv, chrwin, strwin);
-
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the wide-ncurses library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/test_opaque b/test/test_opaque
deleted file mode 100755
index 95a9d32..0000000
--- a/test/test_opaque
+++ /dev/null
Binary files differ
diff --git a/test/test_opaque.c b/test/test_opaque.c
deleted file mode 100644
index f1ab78c..0000000
--- a/test/test_opaque.c
+++ /dev/null
@@ -1,471 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * $Id: test_opaque.c,v 1.7 2008/07/05 23:18:40 tom Exp $
- *
- * Author: Thomas E Dickey
- *
- * Demonstrate the opaque functions from the curses library.
-
- WINDOW * wgetparent (const WINDOW *);
- bool is_cleared(const WINDOW *win);
- bool is_idcok(const WINDOW *win);
- bool is_idlok(const WINDOW *win);
- bool is_immedok(const WINDOW *win);
- bool is_keypad(const WINDOW *win);
- bool is_leaveok(const WINDOW *win);
- bool is_nodelay(const WINDOW *win);
- bool is_notimeout(const WINDOW *win);
- bool is_scrollok(const WINDOW *win);
- bool is_syncok(const WINDOW *win);
- int wgetscrreg (const WINDOW *, int *, int *);
- */
-
-#include <test.priv.h>
-
-#define BASE_Y 6
-#define MAX_COLS 1024
-
-#if defined(NCURSES_VERSION_PATCH) && (NCURSES_VERSION_PATCH >= 20080119) && NCURSES_EXT_FUNCS
-
-static bool
-Quit(int ch)
-{
- return (ch == 'q' || ch == QUIT || ch == ESCAPE);
-}
-
-typedef bool(*BoolOpaque) (WINDOW *, int);
-
-static bool
-test_opaque_cleared(WINDOW *win, int mode)
-{
- if (mode >= 0) {
- if (mode)
- wclear(win);
- }
- return is_cleared(win);
-}
-
-static bool
-test_opaque_idcok(WINDOW *win, int mode)
-{
- if (mode >= 0) {
- idcok(win, mode);
- }
- return is_idcok(win);
-}
-
-static bool
-test_opaque_idlok(WINDOW *win, int mode)
-{
- if (mode >= 0) {
- idlok(win, mode);
- }
- return is_idlok(win);
-}
-
-static bool
-test_opaque_immedok(WINDOW *win, int mode)
-{
- if (mode >= 0) {
- immedok(win, mode);
- }
- return is_immedok(win);
-}
-
-static bool
-test_opaque_keypad(WINDOW *win, int mode)
-{
- if (mode >= 0) {
- keypad(win, mode);
- }
- return is_keypad(win);
-}
-
-static bool
-test_opaque_leaveok(WINDOW *win, int mode)
-{
- if (mode >= 0) {
- leaveok(win, mode);
- }
- return is_leaveok(win);
-}
-
-static bool
-test_opaque_nodelay(WINDOW *win, int mode)
-{
- if (mode >= 0) {
- nodelay(win, mode);
- }
- return is_nodelay(win);
-}
-
-static bool
-test_opaque_notimeout(WINDOW *win, int mode)
-{
- if (mode >= 0) {
- notimeout(win, mode);
- }
- return is_notimeout(win);
-}
-
-static bool
-test_opaque_scrollok(WINDOW *win, int mode)
-{
- if (mode >= 0) {
- scrollok(win, mode);
- }
- return is_scrollok(win);
-}
-
-static bool
-test_opaque_syncok(WINDOW *win, int mode)
-{
- if (mode >= 0) {
- syncok(win, mode);
- }
- return is_syncok(win);
-}
-
-static int
-status_y(WINDOW *stswin, int cell)
-{
- return (cell % getmaxy(stswin));
-}
-
-static int
-status_x(WINDOW *stswin, int cell)
-{
- return (15 * (cell / getmaxy(stswin)));
-}
-
-static void
-to_keyword(WINDOW *stswin, int cell)
-{
- wmove(stswin, status_y(stswin, cell), status_x(stswin, cell));
-}
-
-static void
-to_result(WINDOW *stswin, int cell, bool before)
-{
- int y = status_y(stswin, cell);
- int x = status_x(stswin, cell) + 11;
- if (!before)
- ++x;
- wmove(stswin, y, x);
-}
-
-static void
-show_keyword(WINDOW *stswin, int cell, int active, const char *name)
-{
- to_keyword(stswin, cell);
- if (active == cell)
- wstandout(stswin);
- wprintw(stswin, "%s:", name);
- if (active == cell)
- wstandend(stswin);
-}
-/* *INDENT-OFF* */
-static struct {
- const char *name;
- BoolOpaque func;
-} bool_funcs[] = {
- { "cleared", test_opaque_cleared },
- { "idcok", test_opaque_idcok },
- { "idlok", test_opaque_idlok },
- { "immedok", test_opaque_immedok },
- { "keypad", test_opaque_keypad },
- { "leaveok", test_opaque_leaveok },
- { "nodelay", test_opaque_nodelay },
- { "notimeout", test_opaque_notimeout },
- { "scrollok", test_opaque_scrollok },
- { "syncok", test_opaque_syncok }
-};
-/* *INDENT-ON* */
-
-/*
- * Display and/or allow update for the properties accessed in the opaque
- * window. Some may change state after refreshing the window, so we
- * distinguish between them using the 'before' parameter.
- */
-static int
-show_opaque(WINDOW *stswin, WINDOW *txtwin, bool before, int active)
-{
- int n;
- int top, bottom;
-
- if (before) {
- werase(stswin);
- }
- for (n = 0; n < (int) SIZEOF(bool_funcs); ++n) {
- show_keyword(stswin, n, active, bool_funcs[n].name);
-
- to_result(stswin, n, before);
- wprintw(stswin, "%c", bool_funcs[n].func(txtwin, -1) ? 'T' : 'F');
- }
-
- show_keyword(stswin, n, active, "wgetparent");
- to_result(stswin, n, TRUE);
- wprintw(stswin, "%p", wgetparent(txtwin));
-
- ++n;
- show_keyword(stswin, n, active, "wgetscrreg");
- to_result(stswin, n, TRUE);
- if (wgetscrreg(txtwin, &top, &bottom) == OK)
- wprintw(stswin, "%d,%d", top, bottom);
-
- wnoutrefresh(stswin);
- return active;
-}
-
-static int
-test_opaque(int level, char **argv, WINDOW *stswin)
-{
- WINDOW *txtbox = 0;
- WINDOW *txtwin = 0;
- FILE *fp;
- int ch;
- int txt_x = 0, txt_y = 0;
- int base_y;
- bool in_status = FALSE;
- int active = 0;
-
- if (argv[level] == 0) {
- beep();
- return FALSE;
- }
-
- if (level > 1) {
- txtbox = newwin(LINES - BASE_Y, COLS - level, BASE_Y, level);
- box(txtbox, 0, 0);
- wnoutrefresh(txtbox);
-
- txtwin = derwin(txtbox,
- getmaxy(txtbox) - 2,
- getmaxx(txtbox) - 2,
- 1, 1);
- base_y = 0;
- } else {
- txtwin = stdscr;
- base_y = BASE_Y;
- }
-
- keypad(txtwin, TRUE); /* enable keyboard mapping */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-
- txt_y = base_y;
- txt_x = 0;
- wmove(txtwin, txt_y, txt_x);
-
- if ((fp = fopen(argv[level], "r")) != 0) {
- while ((ch = fgetc(fp)) != EOF) {
- if (waddch(txtwin, UChar(ch)) != OK) {
- break;
- }
- }
- fclose(fp);
- } else {
- wprintw(txtwin, "Cannot open:\n%s", argv[1]);
- }
-
- for (;;) {
- if (in_status) {
- to_keyword(stswin, active);
-
- ch = wgetch(stswin);
- show_opaque(stswin, txtwin, TRUE, active);
- if (Quit(ch))
- break;
-
- switch (ch) {
- case '\t':
- in_status = FALSE;
- break;
- case KEY_DOWN:
- case 'j':
- if (active < (int) SIZEOF(bool_funcs) - 1)
- active++;
- else
- beep();
- break;
- case KEY_UP:
- case 'k':
- if (active > 0)
- active--;
- else
- beep();
- break;
- case ' ':
- bool_funcs[active].func(txtwin,
- !bool_funcs[active].func(txtwin, -1));
- break;
- default:
- beep();
- break;
- }
- show_opaque(stswin, txtwin, FALSE, in_status ? active : -1);
- } else {
- ch = mvwgetch(txtwin, txt_y, txt_x);
- show_opaque(stswin, txtwin, TRUE, -1);
- if (Quit(ch))
- break;
-
- switch (ch) {
- case '\t':
- in_status = TRUE;
- break;
- case KEY_DOWN:
- case 'j':
- if (txt_y < getmaxy(txtwin) - 1)
- txt_y++;
- else
- beep();
- break;
- case KEY_UP:
- case 'k':
- if (txt_y > base_y)
- txt_y--;
- else
- beep();
- break;
- case KEY_LEFT:
- case 'h':
- if (txt_x > 0)
- txt_x--;
- else
- beep();
- break;
- case KEY_RIGHT:
- case 'l':
- if (txt_x < getmaxx(txtwin) - 1)
- txt_x++;
- else
- beep();
- break;
- case 'w':
- test_opaque(level + 1, argv, stswin);
- if (txtbox != 0) {
- touchwin(txtbox);
- wnoutrefresh(txtbox);
- } else {
- touchwin(txtwin);
- wnoutrefresh(txtwin);
- }
- break;
- default:
- beep();
- napms(100);
- break;
- }
-
- show_opaque(stswin, txtwin, FALSE, -1);
- }
- }
- if (level > 1) {
- delwin(txtwin);
- delwin(txtbox);
- }
- return TRUE;
-}
-
-static void
-test_set_escdelay(void)
-{
- set_escdelay((100 + ESCDELAY) / 2);
-}
-
-static void
-test_set_tabsize(void)
-{
- int y0, x0;
- int y, x;
- int save_tabsize = TABSIZE;
-
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
-
- for (y = 0; y < LINES; ++y) {
- set_tabsize(y + 1);
- if (move(y, 0) == ERR)
- break;
- for (x = 0; x < COLS;) {
- addch('\t');
- if (addch('*') == ERR) {
- break;
- }
- getyx(stdscr, y0, x0);
- if (y0 != y || x0 == x) {
- break;
- }
- }
- }
- getch();
- erase();
-
- set_tabsize(save_tabsize);
-}
-
-int
-main(int argc, char *argv[])
-{
- WINDOW *stsbox;
- WINDOW *stswin;
-
- setlocale(LC_ALL, "");
-
- if (argc < 2) {
- fprintf(stderr, "usage: %s file\n", argv[0]);
- return EXIT_FAILURE;
- }
-
- initscr();
-
- test_set_escdelay();
- test_set_tabsize();
-
- stsbox = derwin(stdscr, BASE_Y, COLS, 0, 0);
- box(stsbox, 0, 0);
- wnoutrefresh(stsbox);
-
- stswin = derwin(stsbox, BASE_Y - 2, COLS - 2, 1, 1);
- keypad(stswin, TRUE);
-
- test_opaque(1, argv, stswin);
-
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
-#else
-int
-main(void)
-{
- printf("This program requires the ncurses library\n");
- ExitProgram(EXIT_FAILURE);
-}
-#endif
diff --git a/test/testaddch b/test/testaddch
deleted file mode 100755
index 6422b10..0000000
--- a/test/testaddch
+++ /dev/null
Binary files differ
diff --git a/test/testaddch.c b/test/testaddch.c
deleted file mode 100644
index c1651c6..0000000
--- a/test/testaddch.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * This is an example written by Alexander V. Lukyanov <lav@yars.free.net>,
- * to demonstrate an inconsistency between ncurses and SVr4 curses.
- *
- * $Id: testaddch.c,v 1.6 2006/04/01 19:08:03 tom Exp $
- */
-#include <test.priv.h>
-
-static void
-attr_addstr(const char *s, chtype a)
-{
- while (*s)
- addch(((unsigned char) (*s++)) | a);
-}
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- unsigned i;
- chtype back, set, attr;
-
- setlocale(LC_ALL, "");
-
- initscr();
- start_color();
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- init_pair(2, COLOR_WHITE, COLOR_RED);
- init_pair(3, COLOR_BLACK, COLOR_MAGENTA);
- init_pair(4, COLOR_BLACK, COLOR_GREEN);
- init_pair(5, COLOR_BLACK, COLOR_CYAN);
- init_pair(6, COLOR_BLACK, COLOR_YELLOW);
- init_pair(7, COLOR_BLACK, COLOR_WHITE);
-
- for (i = 0; i < 8; i++) {
- back = (i & 1) ? A_BOLD | 'B' : ' ';
- set = (i & 2) ? A_REVERSE : 0;
- attr = (i & 4) ? COLOR_PAIR(4) : 0;
-
- bkgdset(back);
- attrset(set);
-
- attr_addstr("Test string with spaces -> <-\n", attr);
- }
- addch('\n');
- for (i = 0; i < 8; i++) {
- back = (i & 1) ? A_BOLD | 'B' | COLOR_PAIR(1) : ' ';
- set = (i & 2) ? A_REVERSE | COLOR_PAIR(2) : 0;
- attr = (i & 4) ? COLOR_PAIR(4) : 0;
-
- bkgdset(back);
- attrset(set);
-
- attr_addstr("Test string with spaces -> <-\n", attr);
- }
-
- getch();
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/testcurs b/test/testcurs
deleted file mode 100755
index 62bbf5d..0000000
--- a/test/testcurs
+++ /dev/null
Binary files differ
diff --git a/test/testcurs.c b/test/testcurs.c
deleted file mode 100644
index 6a2e53f..0000000
--- a/test/testcurs.c
+++ /dev/null
@@ -1,738 +0,0 @@
-/*
- *
- * This is a test program for the PDCurses screen package for IBM PC type
- * machines.
- *
- * This program was written by John Burnell (johnb@kea.am.dsir.govt.nz)
- * wrs(5/28/93) -- modified to be consistent (perform identically) with either
- * PDCurses or under Unix System V, R4
- *
- * $Id: testcurs.c,v 1.39 2008/08/03 17:58:09 tom Exp $
- */
-
-#include <test.priv.h>
-
-#if defined(XCURSES)
-char *XCursesProgramName = "testcurs";
-#endif
-
-static int initTest(WINDOW **);
-static void display_menu(int, int);
-static void inputTest(WINDOW *);
-static void introTest(WINDOW *);
-static void outputTest(WINDOW *);
-static void padTest(WINDOW *);
-static void scrollTest(WINDOW *);
-#if defined(PDCURSES) && !defined(XCURSES)
-static void resizeTest(WINDOW *);
-#endif
-
-struct commands {
- NCURSES_CONST char *text;
- void (*function) (WINDOW *);
-};
-typedef struct commands COMMAND;
-
-static const COMMAND command[] =
-{
- {"General Test", introTest},
- {"Pad Test", padTest},
-#if defined(PDCURSES) && !defined(XCURSES)
- {"Resize Test", resizeTest},
-#endif
- {"Scroll Test", scrollTest},
- {"Input Test", inputTest},
- {"Output Test", outputTest}
-};
-#define MAX_OPTIONS (int) SIZEOF(command)
-
-#if !HAVE_STRDUP
-#define strdup my_strdup
-static char *
-strdup(char *s)
-{
- char *p = typeMalloc(char, strlen(s) + 1);
- if (p)
- strcpy(p, s);
- return (p);
-}
-#endif /* not HAVE_STRDUP */
-
-static int width, height;
-
-int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
-{
- WINDOW *win;
- int key;
- int old_option = (-1);
- int new_option = 0;
- bool quit = FALSE;
- int n;
-
- setlocale(LC_ALL, "");
-
-#ifdef PDCDEBUG
- PDC_debug("testcurs started\n");
-#endif
- if (!initTest(&win))
- ExitProgram(EXIT_FAILURE);
-
- erase();
- display_menu(old_option, new_option);
- for (;;) {
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
- wbkgd(win, COLOR_PAIR(1));
- } else
- wbkgd(win, A_REVERSE);
-#else
- wbkgd(win, A_REVERSE);
-#endif
- werase(win);
-
- noecho();
- keypad(stdscr, TRUE);
- raw();
- key = getch();
- if (key < KEY_MIN && key > 0 && isalpha(key)) {
- if (islower(key))
- key = toupper(key);
- for (n = 0; n < MAX_OPTIONS; ++n) {
- if (key == command[n].text[0]) {
- display_menu(old_option, new_option = n);
- key = ' ';
- break;
- }
- }
- }
- switch (key) {
- case 10:
- case 13:
- case KEY_ENTER:
- erase();
- refresh();
- (*command[new_option].function) (win);
- erase();
- display_menu(old_option, new_option);
- break;
- case KEY_UP:
- new_option = ((new_option == 0)
- ? new_option
- : new_option - 1);
- display_menu(old_option, new_option);
- break;
- case KEY_DOWN:
- new_option = ((new_option == (MAX_OPTIONS - 1))
- ? new_option
- : new_option + 1);
- display_menu(old_option, new_option);
- break;
- case 'Q':
- case 'q':
- quit = TRUE;
- break;
- default:
- beep();
- break;
- case ' ':
- break;
- }
- if (quit == TRUE)
- break;
- }
-
- delwin(win);
-
- endwin();
-#ifdef XCURSES
- XCursesExit();
-#endif
- ExitProgram(EXIT_SUCCESS);
-}
-
-static void
-Continue(WINDOW *win)
-{
- int y1 = getmaxy(win);
- int x1 = getmaxx(win);
- int y0 = y1 < 10 ? y1 : 10;
- int x0 = 1;
- chtype save;
-
- save = mvwinch(win, y0, x1 - 1);
-
- mvwaddstr(win, y0, x0, " Press any key to continue");
- wclrtoeol(win);
- getyx(win, y0, x0);
-
- mvwaddch(win, y0, x1 - 1, save);
-
- wmove(win, y0, x0);
- raw();
- wgetch(win);
-}
-
-static int
-initTest(WINDOW **win)
-{
-#ifdef PDCDEBUG
- PDC_debug("initTest called\n");
-#endif
-#ifdef TRACE
- trace(TRACE_MAXIMUM);
-#endif
- initscr();
-#ifdef PDCDEBUG
- PDC_debug("after initscr()\n");
-#endif
-#ifdef A_COLOR
- if (has_colors())
- start_color();
-#endif
- width = 60;
- height = 13; /* Create a drawing window */
- *win = newwin(height, width, (LINES - height) / 2, (COLS - width) / 2);
- if (*win == NULL) {
- endwin();
- return 0;
- }
- return 1;
-}
-
-static void
-introTest(WINDOW *win)
-{
- wmove(win, height / 2 - 5, width / 2);
- wvline(win, ACS_VLINE, 10);
- wmove(win, height / 2, width / 2 - 10);
- whline(win, ACS_HLINE, 20);
- Continue(win);
-
- beep();
- werase(win);
-
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- cbreak();
- mvwaddstr(win, 1, 1,
- "You should have rectangle in the middle of the screen");
- mvwaddstr(win, 2, 1, "You should have heard a beep");
- Continue(win);
- return;
-}
-
-static void
-scrollTest(WINDOW *win)
-{
- int i;
- int half;
- int OldY;
- NCURSES_CONST char *Message = "The window will now scroll slowly";
-
- wclear(win);
- OldY = getmaxy(win);
- half = OldY / 2;
- mvwprintw(win, OldY - 2, 1, Message);
- wrefresh(win);
- scrollok(win, TRUE);
- for (i = 1; i <= OldY; i++) {
- napms(600);
- scroll(win);
- wrefresh(win);
- }
-
- werase(win);
- for (i = 1; i < OldY; i++) {
- mvwprintw(win, i, 1, "Line %d", i);
- }
- mvwprintw(win, OldY - 2, 1, "The top of the window will scroll");
- wmove(win, 1, 1);
- wsetscrreg(win, 0, half - 1);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- for (i = 1; i <= half; i++) {
- napms(600);
- scroll(win);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- }
-
- werase(win);
- for (i = 1; i < OldY; i++) {
- mvwprintw(win, i, 1, "Line %d", i);
- }
- mvwprintw(win, 1, 1, "The bottom of the window will scroll");
- wmove(win, OldY - 2, 1);
- wsetscrreg(win, half, --OldY);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- for (i = half; i <= OldY; i++) {
- napms(600);
- wscrl(win, -1);
- box(win, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
- }
- wsetscrreg(win, 0, OldY);
-}
-
-static void
-inputTest(WINDOW *win)
-{
- int answered;
- int repeat;
- int w, h, bx, by, sw, sh, i, c, num;
- char buffer[80];
- WINDOW *subWin;
- wclear(win);
-
- getmaxyx(win, h, w);
- getbegyx(win, by, bx);
- sw = w / 3;
- sh = h / 3;
- if ((subWin = subwin(win, sh, sw, by + h - sh - 2, bx + w - sw - 2)) == NULL)
- return;
-
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(2, COLOR_WHITE, COLOR_RED);
- wbkgd(subWin, COLOR_PAIR(2) | A_BOLD);
- } else
- wbkgd(subWin, A_BOLD);
-#else
- wbkgd(subWin, A_BOLD);
-#endif
- box(subWin, ACS_VLINE, ACS_HLINE);
- wrefresh(win);
-
- nocbreak();
- mvwaddstr(win, 2, 1, "Press some keys for 5 seconds");
- mvwaddstr(win, 1, 1, "Pressing ^C should do nothing");
- wrefresh(win);
-
- werase(subWin);
- box(subWin, ACS_VLINE, ACS_HLINE);
- for (i = 0; i < 5; i++) {
- mvwprintw(subWin, 1, 1, "Time = %d", i);
- wrefresh(subWin);
- napms(1000);
- flushinp();
- }
-
- delwin(subWin);
- werase(win);
- flash();
- wrefresh(win);
- napms(500);
-
- mvwaddstr(win, 2, 1, "Press a key, followed by ENTER");
- wmove(win, 9, 10);
- wrefresh(win);
- echo();
- noraw();
- wgetch(win);
- flushinp();
-
- wmove(win, 9, 10);
- wdelch(win);
- mvwaddstr(win, 4, 1, "The character should now have been deleted");
- Continue(win);
-
- wclear(win);
- mvwaddstr(win, 1, 1, "Press keys (or mouse buttons) to show their names");
- mvwaddstr(win, 2, 1, "Press spacebar to finish");
- wrefresh(win);
-
- keypad(win, TRUE);
- raw();
- noecho();
-
-#if HAVE_TYPEAHEAD
- typeahead(-1);
-#endif
-
-#if defined(PDCURSES)
- mouse_set(ALL_MOUSE_EVENTS);
-#endif
-
- for (;;) {
- wmove(win, 3, 5);
- c = wgetch(win);
- wclrtobot(win);
- if (c >= KEY_MIN)
- wprintw(win, "Key Pressed: %s", keyname(c));
- else if (isprint(c))
- wprintw(win, "Key Pressed: %c", c);
- else
- wprintw(win, "Key Pressed: %s", unctrl(UChar(c)));
-#if defined(PDCURSES)
- if (c == KEY_MOUSE) {
- int button = 0;
- request_mouse_pos();
- if (BUTTON_CHANGED(1))
- button = 1;
- else if (BUTTON_CHANGED(2))
- button = 2;
- else if (BUTTON_CHANGED(3))
- button = 3;
- else
- button = 0;
- wmove(win, 4, 18);
- wprintw(win, "Button %d: ", button);
- if (MOUSE_MOVED)
- wprintw(win, "moved: ");
- else if ((BUTTON_STATUS(button) & BUTTON_ACTION_MASK) == BUTTON_PRESSED)
- wprintw(win, "pressed: ");
- else if ((BUTTON_STATUS(button) & BUTTON_ACTION_MASK) == BUTTON_DOUBLE_CLICKED)
- wprintw(win, "double: ");
- else
- wprintw(win, "released: ");
- wprintw(win, " Position: Y: %d X: %d", MOUSE_Y_POS, MOUSE_X_POS);
- }
-#endif
- wrefresh(win);
- if (c == ' ')
- break;
- }
-#if 0
- nodelay(win, TRUE);
- wgetch(win);
- nodelay(win, FALSE);
-#endif
-#if defined(PDCURSES)
- mouse_set(0L);
-#endif
- refresh();
-
- repeat = 0;
- do {
- static const char *fmt[] =
- {
- "%d %10s",
- "%d %[a-zA-Z]s",
- "%d %[][a-zA-Z]s",
- "%d %[^0-9]"
- };
- const char *format = fmt[repeat % SIZEOF(fmt)];
-
- wclear(win);
- mvwaddstr(win, 3, 2, "The window should have moved");
- mvwaddstr(win, 4, 2,
- "This text should have appeared without you pressing a key");
- mvwprintw(win, 6, 2,
- "Scanning with format \"%s\"", format);
- mvwin(win, 2 + 2 * (repeat % 4), 1 + 2 * (repeat % 4));
- erase();
- refresh();
- wrefresh(win);
- echo();
- noraw();
- num = 0;
- *buffer = 0;
- answered = mvwscanw(win, 7, 6, strdup(format), &num, buffer);
- mvwprintw(win, 8, 6,
- "String: %s Number: %d (%d values read)",
- buffer, num, answered);
- Continue(win);
- ++repeat;
- } while (answered > 0);
-}
-
-static void
-outputTest(WINDOW *win)
-{
- WINDOW *win1;
- char Buffer[80];
- chtype ch;
- int by, bx;
-
-#if !HAVE_TIGETSTR
-#if HAVE_TGETENT
- char tc_buffer[4096];
- char tc_parsed[4096];
- char *area_pointer = tc_parsed;
- tgetent(tc_buffer, getenv("TERM"));
-#else
-#define tgetstr(a,b) 0
-#endif
-#endif /* !HAVE_TIGETSTR */
-
- nl();
- wclear(win);
- mvwaddstr(win, 1, 1,
- "You should now have a screen in the upper left corner, and this text should have wrapped");
- mvwin(win, 2, 1);
- waddstr(win, "\nThis text should be down\n");
- waddstr(win, "and broken into two here ^");
- Continue(win);
-
- wclear(win);
- wattron(win, A_BOLD);
- mvwaddstr(win, 1, 1, "A new window will appear with this text in it");
- mvwaddstr(win, 8, 1, "Press any key to continue");
- wrefresh(win);
- wgetch(win);
-
- getbegyx(win, by, bx);
-
- if (LINES < 24 || COLS < 75) {
- mvwaddstr(win, 5, 1,
- "Some tests have been skipped as they require a");
- mvwaddstr(win, 6, 1, "display of at least 24 LINES by 75 COLUMNS");
- Continue(win);
- } else {
- win1 = newwin(10, 50, 14, 25);
- if (win1 == NULL) {
- endwin();
- return;
- }
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(3, COLOR_BLUE, COLOR_WHITE);
- wbkgd(win1, COLOR_PAIR(3));
- } else
- wbkgd(win1, A_NORMAL);
-#else
- wbkgd(win1, A_NORMAL);
-#endif
- wclear(win1);
- mvwaddstr(win1, 5, 1,
- "This text should appear; using overlay option");
- copywin(win, win1, 0, 0, 0, 0, 9, 49, TRUE);
-
-#if defined(PDCURSES) && !defined(XCURSES)
- box(win1, 0xb3, 0xc4);
-#else
- box(win1, ACS_VLINE, ACS_HLINE);
-#endif
- wmove(win1, 8, 26);
- wrefresh(win1);
- wgetch(win1);
-
- wclear(win1);
- wattron(win1, A_BLINK);
- mvwaddstr(win1, 4, 1,
- "This blinking text should appear in only the second window");
- wattroff(win1, A_BLINK);
- mvwin(win1, by, bx);
- overlay(win, win1);
- mvwin(win1, 14, 25);
- wmove(win1, 8, 26);
- wrefresh(win1);
- wgetch(win1);
- delwin(win1);
- }
-
- clear();
- wclear(win);
- wrefresh(win);
- mvwaddstr(win, 6, 2, "This line shouldn't appear");
- mvwaddstr(win, 4, 2, "Only half of the next line is visible");
- mvwaddstr(win, 5, 2, "Only half of the next line is visible");
- wmove(win, 6, 1);
- wclrtobot(win);
- wmove(win, 5, 20);
- wclrtoeol(win);
- mvwaddstr(win, 8, 2, "This line also shouldn't appear");
- wmove(win, 8, 1);
- wdeleteln(win);
- Continue(win);
-
- wmove(win, 5, 9);
- ch = winch(win);
-
- wclear(win);
- wmove(win, 6, 2);
- waddstr(win, "The next char should be l: ");
- winsch(win, ch);
- Continue(win);
-
-#if HAVE_WINSSTR
- mvwinsstr(win, 6, 2, "A1B2C3D4E5");
- Continue(win);
-#endif
-
- wmove(win, 5, 1);
- winsertln(win);
- mvwaddstr(win, 5, 2, "The lines below should have moved down");
- Continue(win);
-
- wclear(win);
- wmove(win, 2, 2);
- wprintw(win, "This is a formatted string in a window: %d %s\n", 42,
- "is it");
- mvwaddstr(win, 10, 1, "Enter a string: ");
- wrefresh(win);
- noraw();
- echo();
- *Buffer = 0;
- wscanw(win, "%s", Buffer);
-
- printw("This is a formatted string in stdscr: %d %s\n", 42, "is it");
- mvaddstr(10, 1, "Enter a string: ");
- *Buffer = 0;
- scanw("%s", Buffer);
-
- if (TIGETSTR("cvvis", "vs") != 0) {
- wclear(win);
- curs_set(2);
- mvwaddstr(win, 1, 1, "The cursor should appear as a block (visible)");
- Continue(win);
- }
-
- if (TIGETSTR("civis", "vi") != 0) {
- wclear(win);
- curs_set(0);
- mvwaddstr(win, 1, 1,
- "The cursor should have disappeared (invisible)");
- Continue(win);
- }
-
- if (TIGETSTR("cnorm", "ve") != 0) {
- wclear(win);
- curs_set(1);
- mvwaddstr(win, 1, 1, "The cursor should be an underline (normal)");
- Continue(win);
- }
-#ifdef A_COLOR
- if (has_colors()) {
- wclear(win);
- mvwaddstr(win, 1, 1, "Colors should change after you press a key");
- Continue(win);
- init_pair(1, COLOR_RED, COLOR_WHITE);
- wrefresh(win);
- }
-#endif
-
- werase(win);
-
-#if HAVE_TERMNAME
- mvwaddstr(win, 1, 1, "Information About Your Terminal");
- mvwaddstr(win, 3, 1, termname());
- mvwaddstr(win, 4, 1, longname());
- if (termattrs() & A_BLINK)
- mvwaddstr(win, 5, 1, "This terminal supports blinking.");
- else
- mvwaddstr(win, 5, 1, "This terminal does NOT support blinking.");
-#endif
-
- mvwaddnstr(win, 7, 5, "Have a nice day!ok", 16);
- wrefresh(win);
-
- mvwinnstr(win, 7, 5, Buffer, 18);
- mvaddstr(LINES - 2, 10, Buffer);
- refresh();
- Continue(win);
-}
-
-#if defined(PDCURSES) && !defined(XCURSES)
-static void
-resizeTest(WINDOW *dummy GCC_UNUSED)
-{
- WINDOW *win1;
-
- savetty();
-
- clear();
- refresh();
-# if defined(OS2)
- resize_term(50, 120);
-# else
- resize_term(50, 80);
-# endif
-
- win1 = newwin(10, 50, 14, 25);
- if (win1 == NULL) {
- endwin();
- return;
- }
-#ifdef A_COLOR
- if (has_colors()) {
- init_pair(3, COLOR_BLUE, COLOR_WHITE);
- wattrset(win1, COLOR_PAIR(3));
- }
-#endif
- wclear(win1);
-
- mvwaddstr(win1, 1, 1, "The screen may now have 50 lines");
- Continue(win1);
-
- wclear(win1);
- resetty();
-
- mvwaddstr(win1, 1, 1, "The screen should now be reset");
- Continue(win1);
-
- delwin(win1);
-
- clear();
- refresh();
-
-}
-#endif
-
-static void
-padTest(WINDOW *dummy GCC_UNUSED)
-{
- WINDOW *pad, *spad;
-
- if ((pad = newpad(50, 100)) != 0) {
- wattron(pad, A_REVERSE);
- mvwaddstr(pad, 5, 2, "This is a new pad");
- wattrset(pad, A_NORMAL);
- mvwaddstr(pad, 8, 0,
- "The end of this line should be truncated here:except now");
- mvwaddstr(pad, 11, 1, "This line should not appear.It will now");
- wmove(pad, 10, 1);
- wclrtoeol(pad);
- mvwaddstr(pad, 10, 1, " Press any key to continue");
- prefresh(pad, 0, 0, 0, 0, 10, 45);
- keypad(pad, TRUE);
- raw();
- wgetch(pad);
-
- spad = subpad(pad, 12, 25, 6, 52);
- mvwaddstr(spad, 2, 2, "This is a new subpad");
- box(spad, 0, 0);
- prefresh(pad, 0, 0, 0, 0, 15, 75);
- keypad(pad, TRUE);
- raw();
- wgetch(pad);
-
- mvwaddstr(pad, 35, 2, "This is displayed at line 35 in the pad");
- mvwaddstr(pad, 40, 1, " Press any key to continue");
- prefresh(pad, 30, 0, 0, 0, 10, 45);
- keypad(pad, TRUE);
- raw();
- wgetch(pad);
-
- delwin(pad);
- }
-}
-
-static void
-display_menu(int old_option, int new_option)
-{
- int i;
-
- assert((new_option >= 0) && (new_option < MAX_OPTIONS));
-
- attrset(A_NORMAL);
- mvaddstr(3, 20, "PDCurses Test Program");
-
- for (i = 0; i < (int) MAX_OPTIONS; i++)
- mvaddstr(5 + i, 25, command[i].text);
-
- if ((old_option >= 0) && (old_option < MAX_OPTIONS))
- mvaddstr(5 + old_option, 25, command[old_option].text);
-
- attrset(A_REVERSE);
- mvaddstr(5 + new_option, 25, command[new_option].text);
- attrset(A_NORMAL);
- mvaddstr(13, 3,
- "Use Up and Down Arrows to select - Enter to run - Q to quit");
- refresh();
-}
diff --git a/test/testscanw b/test/testscanw
deleted file mode 100755
index 0930240..0000000
--- a/test/testscanw
+++ /dev/null
Binary files differ
diff --git a/test/testscanw.c b/test/testscanw.c
deleted file mode 100644
index 79589c2..0000000
--- a/test/testscanw.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/* gleaned from a web-search, shows a bug combining scanw and implicit scroll.
- * Date: 1997/03/17
- * From: bayern@morpheus.cis.yale.edu
- *
- * $Id: testscanw.c,v 1.11 2006/04/01 19:08:03 tom Exp $
- */
-#include <test.priv.h>
-
-int
-main(int argc, char *argv[])
-{
- long badanswer = 1;
- long *response = &badanswer;
-
- setlocale(LC_ALL, "");
-
- initscr();
- scrollok(stdscr, TRUE);
- idlok(stdscr, TRUE);
- echo();
-
-#if 0
- trace(TRACE_UPDATE | TRACE_CALLS);
-#endif
- while (argc > 1) {
- if (isdigit(UChar(*argv[1])))
- move(atoi(argv[1]), 0);
- else if (!strcmp(argv[1], "-k"))
- keypad(stdscr, TRUE);
- argc--, argv++;
- }
-
- while (badanswer) {
- printw("Enter a number (0 to quit):\n");
- printw("--> ");
- scanw("%20ld", response); /* yes, it's a pointer */
- }
- endwin();
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/tracemunch b/test/tracemunch
deleted file mode 100755
index 1ea6f4b..0000000
--- a/test/tracemunch
+++ /dev/null
@@ -1,161 +0,0 @@
-#!/usr/bin/perl -w
-# $Id: tracemunch,v 1.6 2005/03/12 21:48:23 tom Exp $
-##############################################################################
-# Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# tracemunch -- compactify ncurses trace logs
-#
-# The error logs produced by ncurses with tracing enabled can be very tedious
-# to wade through. This script helps by compacting runs of log lines that
-# can be conveniently expressed as higher-level operations.
-use strict;
-
-our $putattr="PutAttrChar\\({{ '(.)' = 0[0-7]+ }}\\) at \\(([0-9]+), ([0-9]+)\\)";
-our $waddnstr="waddnstr\\(0x([0-9a-f]+),\"([^\"]+)\",[0-9]+\\) called {A_NORMAL}";
-
-our $win_nums=0;
-our $curscr="";
-our $newscr="";
-our $stdscr="";
-our @win_addr;
-
-sub transaddr
-{
- my $n;
- my $arg = $_[0];
-
- $arg =~ s/$curscr/curscr/g if ($curscr);
- $arg =~ s/$newscr/newscr/g if ($newscr);
- $arg =~ s/$stdscr/stdscr/g if ($stdscr);
- for $n (0..$#win_addr) {
- $arg =~ s/$win_addr[$n]/window$n/g if $win_addr[$n];
- }
-
- return $arg;
-}
-
-while (<STDIN>)
-{
- my $addr;
- my $n;
- my $awaiting;
-
-CLASSIFY: {
- # Transform window pointer addresses so it's easier to compare logs
- $awaiting = "curscr" if ($_ =~ /creating curscr/);
- $awaiting = "newscr" if ($_ =~ /creating newscr/);
- $awaiting = "stdscr" if ($_ =~ /creating stdscr/);
- if ($_ =~ /^create :window 0x([0-9a-f]+)/) {
- $addr = "0x$1";
- if ($awaiting eq "curscr") {
- $curscr = $addr;
- } elsif ($awaiting eq "newscr") {
- $newscr = $addr;
- } elsif ($awaiting eq "stdscr") {
- $stdscr = $addr;
- } else {
- $win_addr[$win_nums] = $addr;
- $win_nums = $win_nums + 1;
- }
- $awaiting = "";
- } elsif ($_ =~ /^\.\.\.deleted win=0x([0-9a-f]+)/) {
- $addr = "0x$1";
- $_ = &transaddr($_);
- if ($addr eq $curscr) {
- $curscr = "";
- } elsif ($addr eq $newscr) {
- $newscr = "";
- } elsif ($addr eq $stdscr) {
- $stdscr = "";
- } else {
- for $n (0..$#win_addr) {
- if ($win_addr[$n] eq $addr) {
- $win_addr[$n] = "";
- }
- }
- }
- }
-
- # Compactify runs of PutAttrChar calls (TR_CHARPUT)
- if ($_ =~ /$putattr/)
- {
- my $putattr_chars = $1;
- my $starty = $2;
- my $startx = $3;
- while (<STDIN>)
- {
- if ($_ =~ /$putattr/) {
- $putattr_chars .= $1;
- } else {
- last;
- }
- }
- print "RUN of PutAttrChar()s: \"$putattr_chars\" from ${starty}, ${startx}\n";
- redo CLASSIFY;
- }
-
- # Compactify runs of waddnstr calls (TR_CALLS)
- if ($_ =~ /$waddnstr/)
- {
- my $waddnstr_chars = $2;
- my $winaddr = $1;
- while (<STDIN>)
- {
- if ($_ =~ /$waddnstr/ && $1 eq $winaddr) {
- $waddnstr_chars .= $2;
- } else {
- last;
- }
- }
- my $winaddstr = &transaddr($winaddr);
- print "RUN of waddnstr()s: $winaddr, \"$waddnstr_chars\"\n";
- redo CLASSIFY;
- }
-
- # More transformations can go here
-
- # Repeated runs of anything
- my $anyline = &transaddr($_);
- my $repeatcount = 1;
- while (<STDIN>) {
- if (&transaddr($_) eq $anyline) {
- $repeatcount++;
- } else {
- last;
- }
- }
- if ($repeatcount > 1) {
- print "${repeatcount} REPEATS OF $anyline";
- } else {
- print $anyline
- }
- redo CLASSIFY if $_;
-
- } # :CLASSIFY
-}
-
-# tracemunch ends here
diff --git a/test/view b/test/view
deleted file mode 100755
index 2e35bb1..0000000
--- a/test/view
+++ /dev/null
Binary files differ
diff --git a/test/view.c b/test/view.c
deleted file mode 100644
index 9f2d72f..0000000
--- a/test/view.c
+++ /dev/null
@@ -1,573 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
- * view.c -- a silly little viewer program
- *
- * written by Eric S. Raymond <esr@snark.thyrsus.com> December 1994
- * to test the scrolling code in ncurses.
- *
- * modified by Thomas Dickey <dickey@clark.net> July 1995 to demonstrate
- * the use of 'resizeterm()', and May 2000 to illustrate wide-character
- * handling.
- *
- * Takes a filename argument. It's a simple file-viewer with various
- * scroll-up and scroll-down commands.
- *
- * n -- scroll one line forward
- * p -- scroll one line back
- *
- * Either command accepts a numeric prefix interpreted as a repeat count.
- * Thus, typing `5n' should scroll forward 5 lines in the file.
- *
- * The way you can tell this is working OK is that, in the trace file,
- * there should be one scroll operation plus a small number of line
- * updates, as opposed to a whole-page update. This means the physical
- * scroll operation worked, and the refresh() code only had to do a
- * partial repaint.
- *
- * $Id: view.c,v 1.69 2008/09/06 22:10:50 tom Exp $
- */
-
-#include <test.priv.h>
-
-#include <time.h>
-
-#undef CTRL /* conflict on AIX 5.2 with <sys/ioctl.h> */
-
-#if HAVE_TERMIOS_H
-# include <termios.h>
-#else
-# include <sgtty.h>
-#endif
-
-#if !defined(sun) || !HAVE_TERMIOS_H
-# if HAVE_SYS_IOCTL_H
-# include <sys/ioctl.h>
-# endif
-#endif
-
-#define my_pair 1
-
-/* This is needed to compile 'struct winsize' */
-#if NEED_PTEM_H
-#include <sys/stream.h>
-#include <sys/ptem.h>
-#endif
-
-#if USE_WIDEC_SUPPORT
-#if HAVE_MBTOWC && HAVE_MBLEN
-#define reset_mbytes(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0)
-#define count_mbytes(buffer,length,state) mblen(buffer,length)
-#define check_mbytes(wch,buffer,length,state) \
- (int) mbtowc(&wch, buffer, length)
-#define state_unused
-#elif HAVE_MBRTOWC && HAVE_MBRLEN
-#define reset_mbytes(state) init_mb(state)
-#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state)
-#define check_mbytes(wch,buffer,length,state) \
- (int) mbrtowc(&wch, buffer, length, &state)
-#else
-make an error
-#endif
-#endif /* USE_WIDEC_SUPPORT */
-
-static RETSIGTYPE finish(int sig) GCC_NORETURN;
-static void show_all(const char *tag);
-
-#if defined(SIGWINCH) && defined(TIOCGWINSZ) && HAVE_RESIZE_TERM
-#define CAN_RESIZE 1
-#else
-#define CAN_RESIZE 0
-#endif
-
-#if CAN_RESIZE
-static RETSIGTYPE adjust(int sig);
-static int interrupted;
-#endif
-
-static bool waiting = FALSE;
-static int shift = 0;
-static bool try_color = FALSE;
-
-static char *fname;
-static NCURSES_CH_T **vec_lines;
-static NCURSES_CH_T **lptr;
-static int num_lines;
-
-static void
-usage(void)
-{
- static const char *msg[] =
- {
- "Usage: view [options] file"
- ,""
- ,"Options:"
- ," -c use color if terminal supports it"
- ," -i ignore INT, QUIT, TERM signals"
- ," -n NUM specify maximum number of lines (default 1000)"
-#if defined(KEY_RESIZE)
- ," -r use old-style sigwinch handler rather than KEY_RESIZE"
-#endif
-#ifdef TRACE
- ," -t trace screen updates"
- ," -T NUM specify trace mask"
-#endif
- };
- size_t n;
- for (n = 0; n < SIZEOF(msg); n++)
- fprintf(stderr, "%s\n", msg[n]);
- ExitProgram(EXIT_FAILURE);
-}
-
-static int
-ch_len(NCURSES_CH_T * src)
-{
- int result = 0;
-#if USE_WIDEC_SUPPORT
-#endif
-
-#if USE_WIDEC_SUPPORT
- while (getcchar(src++, NULL, NULL, NULL, NULL) > 0)
- result++;
-#else
- while (*src++)
- result++;
-#endif
- return result;
-}
-
-/*
- * Allocate a string into an array of chtype's. If UTF-8 mode is
- * active, translate the string accordingly.
- */
-static NCURSES_CH_T *
-ch_dup(char *src)
-{
- unsigned len = strlen(src);
- NCURSES_CH_T *dst = typeMalloc(NCURSES_CH_T, len + 1);
- unsigned j, k;
-#if USE_WIDEC_SUPPORT
- wchar_t wstr[CCHARW_MAX + 1];
- wchar_t wch;
- int l = 0;
- size_t rc;
- int width;
-#ifndef state_unused
- mbstate_t state;
-#endif
-#endif /* USE_WIDEC_SUPPORT */
-
-#if USE_WIDEC_SUPPORT
- reset_mbytes(state);
-#endif
- for (j = k = 0; j < len; j++) {
-#if USE_WIDEC_SUPPORT
- rc = check_mbytes(wch, src + j, len - j, state);
- if (rc == (size_t) -1 || rc == (size_t) -2)
- break;
- j += rc - 1;
- if ((width = wcwidth(wch)) < 0)
- break;
- if ((width > 0 && l > 0) || l == CCHARW_MAX) {
- wstr[l] = L'\0';
- l = 0;
- if (setcchar(dst + k, wstr, 0, 0, NULL) != OK)
- break;
- ++k;
- }
- if (width == 0 && l == 0)
- wstr[l++] = L' ';
- wstr[l++] = wch;
-#else
- dst[k++] = src[j];
-#endif
- }
-#if USE_WIDEC_SUPPORT
- if (l > 0) {
- wstr[l] = L'\0';
- if (setcchar(dst + k, wstr, 0, 0, NULL) == OK)
- ++k;
- }
- wstr[0] = L'\0';
- setcchar(dst + k, wstr, 0, 0, NULL);
-#else
- dst[k] = 0;
-#endif
- return dst;
-}
-
-int
-main(int argc, char *argv[])
-{
- int MAXLINES = 1000;
- FILE *fp;
- char buf[BUFSIZ];
- int i;
- int my_delay = 0;
- NCURSES_CH_T **olptr;
- int value = 0;
- bool done = FALSE;
- bool got_number = FALSE;
-#if CAN_RESIZE
- bool nonposix_resize = FALSE;
-#endif
- const char *my_label = "Input";
-
- setlocale(LC_ALL, "");
-
-#ifndef NCURSES_VERSION
- /*
- * We know ncurses will catch SIGINT if we don't establish our own handler.
- * Other versions of curses may/may not catch it.
- */
- (void) signal(SIGINT, finish); /* arrange interrupts to terminate */
-#endif
-
- while ((i = getopt(argc, argv, "cin:rtT:")) != -1) {
- switch (i) {
- case 'c':
- try_color = TRUE;
- break;
- case 'i':
- CATCHALL(SIG_IGN);
- break;
- case 'n':
- if ((MAXLINES = atoi(optarg)) < 1 ||
- (MAXLINES + 2) <= 1)
- usage();
- break;
-#if CAN_RESIZE
- case 'r':
- nonposix_resize = TRUE;
- break;
-#endif
-#ifdef TRACE
- case 'T':
- trace((unsigned) atoi(optarg));
- break;
- case 't':
- trace(TRACE_CALLS);
- break;
-#endif
- default:
- usage();
- }
- }
- if (optind + 1 != argc)
- usage();
-
- if ((vec_lines = typeMalloc(NCURSES_CH_T *, MAXLINES + 2)) == 0)
- usage();
-
- fname = argv[optind];
- if ((fp = fopen(fname, "r")) == 0) {
- perror(fname);
- ExitProgram(EXIT_FAILURE);
- }
-#if CAN_RESIZE
- if (nonposix_resize)
- (void) signal(SIGWINCH, adjust); /* arrange interrupts to resize */
-#endif
-
- /* slurp the file */
- for (lptr = &vec_lines[0]; (lptr - vec_lines) < MAXLINES; lptr++) {
- char temp[BUFSIZ], *s, *d;
- int col;
-
- if (fgets(buf, sizeof(buf), fp) == 0)
- break;
-
- /* convert tabs so that shift will work properly */
- for (s = buf, d = temp, col = 0; (*d = *s) != '\0'; s++) {
- if (*d == '\n') {
- *d = '\0';
- break;
- } else if (*d == '\t') {
- col = (col | 7) + 1;
- while ((d - temp) != col)
- *d++ = ' ';
- } else
-#if USE_WIDEC_SUPPORT
- col++, d++;
-#else
- if (isprint(UChar(*d))) {
- col++;
- d++;
- } else {
- sprintf(d, "\\%03o", UChar(*s));
- d += strlen(d);
- col = (d - temp);
- }
-#endif
- }
- *lptr = ch_dup(temp);
- }
- (void) fclose(fp);
- num_lines = lptr - vec_lines;
-
- (void) initscr(); /* initialize the curses library */
- keypad(stdscr, TRUE); /* enable keyboard mapping */
- (void) nonl(); /* tell curses not to do NL->CR/NL on output */
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
- nodelay(stdscr, TRUE);
- idlok(stdscr, TRUE); /* allow use of insert/delete line */
-
- if (try_color) {
- if (has_colors()) {
- start_color();
- init_pair(my_pair, COLOR_WHITE, COLOR_BLUE);
- bkgd(COLOR_PAIR(my_pair));
- } else {
- try_color = FALSE;
- }
- }
-
- lptr = vec_lines;
- while (!done) {
- int n, c;
-
- if (!got_number)
- show_all(my_label);
-
- n = 0;
- for (;;) {
-#if CAN_RESIZE
- if (interrupted) {
- adjust(0);
- my_label = "interrupt";
- }
-#endif
- waiting = TRUE;
- c = getch();
- waiting = FALSE;
- if ((c < 127) && isdigit(c)) {
- if (!got_number) {
- mvprintw(0, 0, "Count: ");
- clrtoeol();
- }
- addch(UChar(c));
- value = 10 * value + (c - '0');
- got_number = TRUE;
- } else
- break;
- }
- if (got_number && value) {
- n = value;
- } else {
- n = 1;
- }
-
- if (c != ERR)
- my_label = keyname(c);
- switch (c) {
- case KEY_DOWN:
- case 'n':
- olptr = lptr;
- for (i = 0; i < n; i++)
- if ((lptr - vec_lines) < (num_lines - LINES + 1))
- lptr++;
- else
- break;
- scrl(lptr - olptr);
- break;
-
- case KEY_UP:
- case 'p':
- olptr = lptr;
- for (i = 0; i < n; i++)
- if (lptr > vec_lines)
- lptr--;
- else
- break;
- scrl(lptr - olptr);
- break;
-
- case 'h':
- case KEY_HOME:
- lptr = vec_lines;
- break;
-
- case 'e':
- case KEY_END:
- if (num_lines > LINES)
- lptr = vec_lines + num_lines - LINES + 1;
- else
- lptr = vec_lines;
- break;
-
- case 'r':
- case KEY_RIGHT:
- shift += n;
- break;
-
- case 'l':
- case KEY_LEFT:
- shift -= n;
- if (shift < 0) {
- shift = 0;
- beep();
- }
- break;
-
- case 'q':
- done = TRUE;
- break;
-
-#ifdef KEY_RESIZE
- case KEY_RESIZE: /* ignore this; ncurses will repaint */
- break;
-#endif
- case 's':
- if (got_number) {
- halfdelay(my_delay = n);
- } else {
- nodelay(stdscr, FALSE);
- my_delay = -1;
- }
- break;
- case ' ':
- nodelay(stdscr, TRUE);
- my_delay = 0;
- break;
- case ERR:
- if (!my_delay)
- napms(50);
- break;
- default:
- beep();
- break;
- }
- if (c >= KEY_MIN || (c > 0 && !isdigit(c))) {
- got_number = FALSE;
- value = 0;
- }
- }
-
- finish(0); /* we're done */
-}
-
-static RETSIGTYPE
-finish(int sig)
-{
- endwin();
-#if NO_LEAKS
- if (vec_lines != 0) {
- int n;
- for (n = 0; n < num_lines; ++n) {
- free(vec_lines[n]);
- }
- free(vec_lines);
- }
-#endif
- ExitProgram(sig != 0 ? EXIT_FAILURE : EXIT_SUCCESS);
-}
-
-#if CAN_RESIZE
-/*
- * This uses functions that are "unsafe", but it seems to work on SunOS and
- * Linux. Usually: the "unsafe" refers to the functions that POSIX lists
- * which may be called from a signal handler. Those do not include buffered
- * I/O, which is used for instance in wrefresh(). To be really portable, you
- * should use the KEY_RESIZE return (which relies on ncurses' sigwinch
- * handler).
- *
- * The 'wrefresh(curscr)' is needed to force the refresh to start from the top
- * of the screen -- some xterms mangle the bitmap while resizing.
- */
-static RETSIGTYPE
-adjust(int sig)
-{
- if (waiting || sig == 0) {
- struct winsize size;
-
- if (ioctl(fileno(stdout), TIOCGWINSZ, &size) == 0) {
- resize_term(size.ws_row, size.ws_col);
- wrefresh(curscr); /* Linux needs this */
- show_all(sig ? "SIGWINCH" : "interrupt");
- }
- interrupted = FALSE;
- } else {
- interrupted = TRUE;
- }
- (void) signal(SIGWINCH, adjust); /* some systems need this */
-}
-#endif /* CAN_RESIZE */
-
-static void
-show_all(const char *tag)
-{
- int i;
- char temp[BUFSIZ];
- NCURSES_CH_T *s;
- time_t this_time;
-
-#if CAN_RESIZE
- sprintf(temp, "%.20s (%3dx%3d) col %d ", tag, LINES, COLS, shift);
- i = strlen(temp);
- if ((i + 7) < (int) sizeof(temp))
- sprintf(temp + i, "view %.*s", (int) (sizeof(temp) - 7 - i), fname);
-#else
- (void) tag;
- sprintf(temp, "view %.*s", (int) sizeof(temp) - 7, fname);
-#endif
- move(0, 0);
- printw("%.*s", COLS, temp);
- clrtoeol();
- this_time = time((time_t *) 0);
- strcpy(temp, ctime(&this_time));
- if ((i = strlen(temp)) != 0) {
- temp[--i] = 0;
- if (move(0, COLS - i - 2) != ERR)
- printw(" %s", temp);
- }
-
- scrollok(stdscr, FALSE); /* prevent screen from moving */
- for (i = 1; i < LINES; i++) {
- move(i, 0);
- printw("%3ld:", (long) (lptr + i - vec_lines));
- clrtoeol();
- if ((s = lptr[i - 1]) != 0) {
- int len = ch_len(s);
- if (len > shift) {
-#if USE_WIDEC_SUPPORT
- add_wchstr(s + shift);
-#else
- addchstr(s + shift);
-#endif
- }
-#if defined(NCURSES_VERSION) || defined(HAVE_WCHGAT)
- if (try_color)
- wchgat(stdscr, -1, A_NORMAL, my_pair, NULL);
-#endif
- }
- }
- setscrreg(1, LINES - 1);
- scrollok(stdscr, TRUE);
- refresh();
-}
diff --git a/test/widechars-utf8.txt b/test/widechars-utf8.txt
deleted file mode 100644
index 43ecd0f..0000000
--- a/test/widechars-utf8.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-APPLE -- It's an APPLE.
-DOG -- No, that's not my DOG.
-ORANGE -- Yeah, that's JUICY.
-CHICKEN -- Normally not a PET.
-CAT -- No, never put a DOG and a CAT together!
-FISH -- Cats like FISH.
-LEMON -- You KNOW how it TASTES.
diff --git a/test/worm b/test/worm
deleted file mode 100755
index 0e3ee90..0000000
--- a/test/worm
+++ /dev/null
Binary files differ
diff --git a/test/worm.c b/test/worm.c
deleted file mode 100644
index 2029b34..0000000
--- a/test/worm.c
+++ /dev/null
@@ -1,608 +0,0 @@
-/****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. *
- * *
- * Permission is hereby granted, free of charge, to any person obtaining a *
- * copy of this software and associated documentation files (the *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-/*
-
- @@@ @@@ @@@@@@@@@@ @@@@@@@@@@@ @@@@@@@@@@@@
- @@@ @@@ @@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@@@@@
- @@@ @@@ @@@@ @@@@ @@@@ @@@@ @@@ @@@@
- @@@ @@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
- @@@ @@@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@
- @@@@ @@@@ @@@@ @@@ @@@ @@@ @@@ @@@ @@@
- @@@@@@@@@@@@ @@@@ @@@@ @@@ @@@ @@@ @@@
- @@@@ @@@@ @@@@@@@@@@@@ @@@ @@@ @@@ @@@
- @@ @@ @@@@@@@@@@ @@@ @@@ @@@ @@@
-
- Eric P. Scott
- Caltech High Energy Physics
- October, 1980
-
- Hacks to turn this into a test frame for cursor movement:
- Eric S. Raymond <esr@snark.thyrsus.com>
- January, 1995
-
- July 1995 (esr): worms is now in living color! :-)
-
-Options:
- -f fill screen with copies of 'WORM' at start.
- -l <n> set worm length
- -n <n> set number of worms
- -t make worms leave droppings
- -T <start> <end> set trace interval
- -S set single-stepping during trace interval
- -N suppress cursor-movement optimization
-
- This program makes a good torture-test for the ncurses cursor-optimization
- code. You can use -T to set the worm move interval over which movement
- traces will be dumped. The program stops and waits for one character of
- input at the beginning and end of the interval.
-
- $Id: worm.c,v 1.58 2008/10/04 21:54:09 tom Exp $
-*/
-
-#include <test.priv.h>
-
-#ifdef USE_PTHREADS
-#include <pthread.h>
-#endif
-
-WANT_USE_WINDOW();
-
-#define MAX_WORMS 40
-#define MAX_LENGTH 1024
-
-static chtype flavor[] =
-{
- 'O', '*', '#', '$', '%', '0', '@',
-};
-static const short xinc[] =
-{
- 1, 1, 1, 0, -1, -1, -1, 0
-}, yinc[] =
-{
- -1, 0, 1, 1, 1, 0, -1, -1
-};
-
-typedef struct worm {
- int orientation;
- int head;
- short *xpos;
- short *ypos;
- chtype attrs;
-#ifdef USE_PTHREADS
- pthread_t thread;
-#endif
-} WORM;
-
-static unsigned long sequence = 0;
-static bool quitting = FALSE;
-
-static WORM worm[MAX_WORMS];
-static short **refs;
-static int last_x, last_y;
-
-static const char *field;
-static int length = 16, number = 3;
-static chtype trail = ' ';
-
-static unsigned pending;
-#ifdef TRACE
-static int generation, trace_start, trace_end;
-#endif /* TRACE */
-/* *INDENT-OFF* */
-static const struct options {
- int nopts;
- int opts[3];
-} normal[8]={
- { 3, { 7, 0, 1 } },
- { 3, { 0, 1, 2 } },
- { 3, { 1, 2, 3 } },
- { 3, { 2, 3, 4 } },
- { 3, { 3, 4, 5 } },
- { 3, { 4, 5, 6 } },
- { 3, { 5, 6, 7 } },
- { 3, { 6, 7, 0 } }
-}, upper[8]={
- { 1, { 1, 0, 0 } },
- { 2, { 1, 2, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 2, { 4, 5, 0 } },
- { 1, { 5, 0, 0 } },
- { 2, { 1, 5, 0 } }
-}, left[8]={
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 2, { 2, 3, 0 } },
- { 1, { 3, 0, 0 } },
- { 2, { 3, 7, 0 } },
- { 1, { 7, 0, 0 } },
- { 2, { 7, 0, 0 } }
-}, right[8]={
- { 1, { 7, 0, 0 } },
- { 2, { 3, 7, 0 } },
- { 1, { 3, 0, 0 } },
- { 2, { 3, 4, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 2, { 6, 7, 0 } }
-}, lower[8]={
- { 0, { 0, 0, 0 } },
- { 2, { 0, 1, 0 } },
- { 1, { 1, 0, 0 } },
- { 2, { 1, 5, 0 } },
- { 1, { 5, 0, 0 } },
- { 2, { 5, 6, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } }
-}, upleft[8]={
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 1, { 3, 0, 0 } },
- { 2, { 1, 3, 0 } },
- { 1, { 1, 0, 0 } }
-}, upright[8]={
- { 2, { 3, 5, 0 } },
- { 1, { 3, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 1, { 5, 0, 0 } }
-}, lowleft[8]={
- { 3, { 7, 0, 1 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 1, { 1, 0, 0 } },
- { 2, { 1, 7, 0 } },
- { 1, { 7, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } }
-}, lowright[8]={
- { 0, { 0, 0, 0 } },
- { 1, { 7, 0, 0 } },
- { 2, { 5, 7, 0 } },
- { 1, { 5, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } },
- { 0, { 0, 0, 0 } }
-};
-/* *INDENT-ON* */
-
-static void
-cleanup(void)
-{
- USING_WINDOW(stdscr, wrefresh);
- curs_set(1);
- endwin();
-}
-
-static RETSIGTYPE
-onsig(int sig GCC_UNUSED)
-{
- cleanup();
- ExitProgram(EXIT_FAILURE);
-}
-
-static float
-ranf(void)
-{
- long r = (rand() & 077777);
- return ((float) r / 32768.);
-}
-
-static int
-draw_worm(WINDOW *win, void *data)
-{
- WORM *w = (WORM *) data;
- const struct options *op;
- unsigned mask = ~(1 << (w - worm));
- chtype attrs = w->attrs | ((mask & pending) ? A_REVERSE : 0);
-
- int x;
- int y;
- int h;
-
- bool done = FALSE;
-
- if ((x = w->xpos[h = w->head]) < 0) {
- wmove(win, y = w->ypos[h] = last_y, x = w->xpos[h] = 0);
- waddch(win, attrs);
- refs[y][x]++;
- } else {
- y = w->ypos[h];
- }
-
- if (x > last_x)
- x = last_x;
- if (y > last_y)
- y = last_y;
-
- if (++h == length)
- h = 0;
-
- if (w->xpos[w->head = h] >= 0) {
- int x1, y1;
- x1 = w->xpos[h];
- y1 = w->ypos[h];
- if (y1 < LINES
- && x1 < COLS
- && --refs[y1][x1] == 0) {
- wmove(win, y1, x1);
- waddch(win, trail);
- }
- }
-
- op = &(x == 0
- ? (y == 0
- ? upleft
- : (y == last_y
- ? lowleft
- : left))
- : (x == last_x
- ? (y == 0
- ? upright
- : (y == last_y
- ? lowright
- : right))
- : (y == 0
- ? upper
- : (y == last_y
- ? lower
- : normal))))[w->orientation];
-
- switch (op->nopts) {
- case 0:
- done = TRUE;
- break;
- case 1:
- w->orientation = op->opts[0];
- break;
- default:
- w->orientation = op->opts[(int) (ranf() * (float) op->nopts)];
- break;
- }
-
- if (!done) {
- x += xinc[w->orientation];
- y += yinc[w->orientation];
- wmove(win, y, x);
-
- if (y < 0)
- y = 0;
- waddch(win, attrs);
-
- w->ypos[h] = y;
- w->xpos[h] = x;
- refs[y][x]++;
- }
-
- return done;
-}
-
-#ifdef USE_PTHREADS
-static bool
-quit_worm(int bitnum)
-{
- pending |= (1 << bitnum);
- napms(10); /* let the other thread(s) have a chance */
- pending &= ~(1 << bitnum);
- return quitting;
-}
-
-static void *
-start_worm(void *arg)
-{
- unsigned long compare = 0;
- Trace(("start_worm"));
- while (!quit_worm(((struct worm *) arg) - worm)) {
- while (compare < sequence) {
- ++compare;
- use_window(stdscr, draw_worm, arg);
- }
- }
- Trace(("...start_worm (done)"));
- return NULL;
-}
-#endif
-
-static bool
-draw_all_worms(void)
-{
- bool done = FALSE;
- int n;
- struct worm *w;
-
-#ifdef USE_PTHREADS
- static bool first = TRUE;
- if (first) {
- first = FALSE;
- for (n = 0, w = &worm[0]; n < number; n++, w++) {
- int rc;
- rc = pthread_create(&(w->thread), NULL, start_worm, w);
- }
- }
-#else
- for (n = 0, w = &worm[0]; n < number; n++, w++) {
- if (USING_WINDOW2(stdscr, draw_worm, w))
- done = TRUE;
- }
-#endif
- return done;
-}
-
-static int
-get_input(void)
-{
- int ch;
- ch = USING_WINDOW(stdscr, wgetch);
- return ch;
-}
-
-#ifdef KEY_RESIZE
-static int
-update_refs(WINDOW *win)
-{
- int x, y;
-
- (void) win;
- if (last_x != COLS - 1) {
- for (y = 0; y <= last_y; y++) {
- refs[y] = typeRealloc(short, COLS, refs[y]);
- for (x = last_x + 1; x < COLS; x++)
- refs[y][x] = 0;
- }
- last_x = COLS - 1;
- }
- if (last_y != LINES - 1) {
- for (y = LINES; y <= last_y; y++)
- free(refs[y]);
- refs = typeRealloc(short *, LINES, refs);
- for (y = last_y + 1; y < LINES; y++) {
- refs[y] = typeMalloc(short, COLS);
- for (x = 0; x < COLS; x++)
- refs[y][x] = 0;
- }
- last_y = LINES - 1;
- }
- return OK;
-}
-#endif
-
-int
-main(int argc, char *argv[])
-{
- int x, y;
- int n;
- struct worm *w;
- short *ip;
- bool done = FALSE;
-
- setlocale(LC_ALL, "");
-
- for (x = 1; x < argc; x++) {
- char *p;
- p = argv[x];
- if (*p == '-')
- p++;
- switch (*p) {
- case 'f':
- field = "WORM";
- break;
- case 'l':
- if (++x == argc)
- goto usage;
- if ((length = atoi(argv[x])) < 2 || length > MAX_LENGTH) {
- fprintf(stderr, "%s: Invalid length\n", *argv);
- ExitProgram(EXIT_FAILURE);
- }
- break;
- case 'n':
- if (++x == argc)
- goto usage;
- if ((number = atoi(argv[x])) < 1 || number > MAX_WORMS) {
- fprintf(stderr, "%s: Invalid number of worms\n", *argv);
- ExitProgram(EXIT_FAILURE);
- }
- break;
- case 't':
- trail = '.';
- break;
-#ifdef TRACE
- case 'T':
- trace_start = atoi(argv[++x]);
- trace_end = atoi(argv[++x]);
- break;
- case 'N':
- _nc_optimize_enable ^= OPTIMIZE_ALL; /* declared by ncurses */
- break;
-#endif /* TRACE */
- default:
- usage:
- fprintf(stderr,
- "usage: %s [-field] [-length #] [-number #] [-trail]\n", *argv);
- ExitProgram(EXIT_FAILURE);
- }
- }
-
- signal(SIGINT, onsig);
- initscr();
- noecho();
- cbreak();
- nonl();
-
- curs_set(0);
-
- last_y = LINES - 1;
- last_x = COLS - 1;
-
-#ifdef A_COLOR
- if (has_colors()) {
- int bg = COLOR_BLACK;
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- bg = -1;
-#endif
-
-#define SET_COLOR(num, fg) \
- init_pair(num+1, fg, bg); \
- flavor[num] |= COLOR_PAIR(num+1) | A_BOLD
-
- SET_COLOR(0, COLOR_GREEN);
- SET_COLOR(1, COLOR_RED);
- SET_COLOR(2, COLOR_CYAN);
- SET_COLOR(3, COLOR_WHITE);
- SET_COLOR(4, COLOR_MAGENTA);
- SET_COLOR(5, COLOR_BLUE);
- SET_COLOR(6, COLOR_YELLOW);
- }
-#endif /* A_COLOR */
-
- refs = typeMalloc(short *, LINES);
- for (y = 0; y < LINES; y++) {
- refs[y] = typeMalloc(short, COLS);
- for (x = 0; x < COLS; x++) {
- refs[y][x] = 0;
- }
- }
-
-#ifdef BADCORNER
- /* if addressing the lower right corner doesn't work in your curses */
- refs[last_y][last_x] = 1;
-#endif /* BADCORNER */
-
- for (n = number, w = &worm[0]; --n >= 0; w++) {
- w->attrs = flavor[n % SIZEOF(flavor)];
- w->orientation = 0;
- w->head = 0;
-
- if (!(ip = typeMalloc(short, (length + 1)))) {
- fprintf(stderr, "%s: out of memory\n", *argv);
- ExitProgram(EXIT_FAILURE);
- }
- w->xpos = ip;
- for (x = length; --x >= 0;)
- *ip++ = -1;
- if (!(ip = typeMalloc(short, (length + 1)))) {
- fprintf(stderr, "%s: out of memory\n", *argv);
- ExitProgram(EXIT_FAILURE);
- }
- w->ypos = ip;
- for (y = length; --y >= 0;)
- *ip++ = -1;
- }
- if (field) {
- const char *p;
- p = field;
- for (y = last_y; --y >= 0;) {
- for (x = COLS; --x >= 0;) {
- addch((chtype) (*p++));
- if (!*p)
- p = field;
- }
- }
- }
- USING_WINDOW(stdscr, wrefresh);
- nodelay(stdscr, TRUE);
-
- while (!done) {
- int ch;
-
- ++sequence;
- if ((ch = get_input()) > 0) {
-#ifdef TRACE
- if (trace_start || trace_end) {
- if (generation == trace_start) {
- trace(TRACE_CALLS);
- get_input();
- } else if (generation == trace_end) {
- trace(0);
- get_input();
- }
-
- generation++;
- }
-#endif
-
-#ifdef KEY_RESIZE
- if (ch == KEY_RESIZE) {
- USING_WINDOW(stdscr, update_refs);
- }
-#endif
-
- /*
- * Make it simple to put this into single-step mode, or resume
- * normal operation -T.Dickey
- */
- if (ch == 'q') {
- quitting = TRUE;
- done = TRUE;
- continue;
- } else if (ch == 's') {
- nodelay(stdscr, FALSE);
- } else if (ch == ' ') {
- nodelay(stdscr, TRUE);
- }
- }
-
- done = draw_all_worms();
- napms(10);
- USING_WINDOW(stdscr, wrefresh);
- }
-
- Trace(("Cleanup"));
- cleanup();
-#ifdef NO_LEAKS
- for (y = 0; y < LINES; y++) {
- free(refs[y]);
- }
- free(refs);
- for (n = number, w = &worm[0]; --n >= 0; w++) {
- free(w->xpos);
- free(w->ypos);
- }
-#endif
-#ifdef USE_PTHREADS
- /*
- * Do this just in case one of the threads did not really exit.
- */
- Trace(("join all threads"));
- for (n = 0; n < number; n++) {
- pthread_join(worm[n].thread, NULL);
- }
-#endif
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/xmas b/test/xmas
deleted file mode 100755
index d60b74a..0000000
--- a/test/xmas
+++ /dev/null
Binary files differ
diff --git a/test/xmas.c b/test/xmas.c
deleted file mode 100644
index b838bae..0000000
--- a/test/xmas.c
+++ /dev/null
@@ -1,1162 +0,0 @@
-/******************************************************************************/
-/* asciixmas */
-/* December 1989 Larry Bartz Indianapolis, IN */
-/* */
-/* */
-/* I'm dreaming of an ascii character-based monochrome Christmas, */
-/* Just like the one's I used to know! */
-/* Via a full duplex communications channel, */
-/* At 9600 bits per second, */
-/* Even though it's kinda slow. */
-/* */
-/* I'm dreaming of an ascii character-based monochrome Christmas, */
-/* With ev'ry C program I write! */
-/* May your screen be merry and bright! */
-/* And may all your Christmases be amber or green, */
-/* (for reduced eyestrain and improved visibility)! */
-/* */
-/* */
-/* */
-/* */
-/* */
-/* IMPLEMENTATION */
-/* */
-/* Feel free to modify the defined string FROMWHO to reflect you, your */
-/* organization, your site, whatever. */
-/* */
-/* This really looks a lot better if you can turn off your cursor before */
-/* execution. I wanted to do that here but very few termcap entries or */
-/* terminfo definitions have the appropriate string defined. If you know */
-/* the string(s) for the terminal(s) you use or which your site supports, */
-/* you could call asciixmas from within a shell in which you issue the */
-/* string to the terminal. The cursor is distracting but it doesn't really */
-/* ruin the show. */
-/* */
-/* At our site, we invoke this for our users just after login and the */
-/* determination of terminal type. */
-/* */
-/* */
-/* PORTABILITY */
-/* */
-/* I wrote this using only the very simplest curses functions so that it */
-/* might be the most portable. I was personally able to test on five */
-/* different cpu/UNIX combinations. */
-/* */
-/* */
-/* COMPILE */
-/* */
-/* usually this: */
-/* */
-/* cc -O asciixmas.c -lcurses -o asciixmas -s */
-/* */
-/* */
-/* Zilog S8000 models 11, 21, 31, etc with ZEUS variant of SYSTEM III */
-/* maybe other SYSTEM III also: */
-/* */
-/* cc asciixmas.c -lcurses -ltermlib -o asciixmas -s */
-/* */
-/* as above with optional "peephole optimizer" installed: */
-/* */
-/* cc -O asciixmas.c -lcurses -ltermlib -o asciixmas -s */
-/* */
-/* */
-/* Zilog S8000 models 32, 130 with WE32100 chip and SYS V, REL2 */
-/* maybe 3B2 also? */
-/* */
-/* cc -f -O -K sd asciixmas.c -lcurses -o asciixmas -s */
-/* */
-/* */
-/* Pyramid, Sequent, any other "dual universe" types compile and execute */
-/* under either universe. The compile line for the ucb universe (as you */
-/* might expect) is the same as for SYS III UNIX: */
-/* */
-/* cc -O asciixmas.c -lcurses -ltermlib -o asciixmas -s */
-/* */
-/* The above compile will also hold true for other BSD systems. (I hope) */
-/* */
-/* */
-/* */
-/* */
-/* For the Scrooges out there among you who don't want this thing to loop */
-/* forever (or until the user hits a key), insert this into your compile */
-/* line just after "cc" : */
-/* */
-/* -DNOLOOP */
-/* */
-/* like so: */
-/* */
-/* cc -DNOLOOP -O asciixmas.c -lcurses -o asciixmas -s */
-/* */
-/* */
-/* */
-/******************************************************************************/
-
-/*
- * $Id: xmas.c,v 1.24 2008/08/03 11:08:59 tom Exp $
- */
-#include <test.priv.h>
-
-#define FROMWHO "Mark Hessling - (M.Hessling@gu.edu.au)"
-
-static int my_bg = COLOR_BLACK;
-static int y_pos, x_pos;
-
-static WINDOW *treescrn;
-static WINDOW *treescrn2;
-static WINDOW *treescrn3;
-static WINDOW *treescrn4;
-static WINDOW *treescrn5;
-static WINDOW *treescrn6;
-static WINDOW *treescrn7;
-static WINDOW *treescrn8;
-static WINDOW *dotdeer0;
-static WINDOW *stardeer0;
-static WINDOW *lildeer0;
-static WINDOW *lildeer1;
-static WINDOW *lildeer2;
-static WINDOW *lildeer3;
-static WINDOW *middeer0;
-static WINDOW *middeer1;
-static WINDOW *middeer2;
-static WINDOW *middeer3;
-static WINDOW *bigdeer0;
-static WINDOW *bigdeer1;
-static WINDOW *bigdeer2;
-static WINDOW *bigdeer3;
-static WINDOW *bigdeer4;
-static WINDOW *lookdeer0;
-static WINDOW *lookdeer1;
-static WINDOW *lookdeer2;
-static WINDOW *lookdeer3;
-static WINDOW *lookdeer4;
-static WINDOW *w_holiday;
-static WINDOW *w_del_msg;
-static bool *my_pairs;
-
-static int boxit(void);
-static int seas(void);
-static int greet(void);
-static int fromwho(void);
-static int tree(void);
-static int balls(void);
-static int star(void);
-static int strng1(void);
-static int strng2(void);
-static int strng3(void);
-static int strng4(void);
-static int strng5(void);
-static int reindeer(void);
-static int blinkit(void);
-
-static RETSIGTYPE done(int sig) GCC_NORETURN;
-
-static void
-set_color(WINDOW *win, chtype color)
-{
- if (has_colors()) {
- int n = (color + 1);
- if (my_pairs == 0)
- my_pairs = typeCalloc(bool, COLORS + 1);
- if (!my_pairs[n]) {
- init_pair(n, color, my_bg);
- my_pairs[n] = TRUE;
- }
- wattroff(win, A_COLOR);
- wattron(win, COLOR_PAIR(n));
- }
-}
-
-static void
-unset_color(WINDOW *win)
-{
- if (has_colors())
- wattrset(win, COLOR_PAIR(0));
-}
-
-static void
-look_out(int msecs)
-{
- napms(msecs);
- if (getch() != ERR) {
- beep();
- done(0);
- }
-}
-
-int
-main(int argc GCC_UNUSED, char **argv GCC_UNUSED)
-{
- int loopy;
-
- setlocale(LC_ALL, "");
-
- initscr();
- noecho();
- nonl();
- refresh();
-
- CATCHALL(done);
-
- if (has_colors()) {
- start_color();
-#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
- my_bg = -1;
-#endif
- }
- curs_set(0);
-
- if ((treescrn = newwin(16, 27, 3, 53)) == 0 ||
- (treescrn2 = newwin(16, 27, 3, 53)) == 0 ||
- (treescrn3 = newwin(16, 27, 3, 53)) == 0 ||
- (treescrn4 = newwin(16, 27, 3, 53)) == 0 ||
- (treescrn5 = newwin(16, 27, 3, 53)) == 0 ||
- (treescrn6 = newwin(16, 27, 3, 53)) == 0 ||
- (treescrn7 = newwin(16, 27, 3, 53)) == 0 ||
- (treescrn8 = newwin(16, 27, 3, 53)) == 0 ||
-
- (dotdeer0 = newwin(3, 71, 0, 8)) == 0 ||
-
- (stardeer0 = newwin(4, 56, 0, 8)) == 0 ||
-
- (lildeer0 = newwin(7, 53, 0, 8)) == 0 ||
- (lildeer1 = newwin(2, 4, 0, 0)) == 0 ||
- (lildeer2 = newwin(2, 4, 0, 0)) == 0 ||
- (lildeer3 = newwin(2, 4, 0, 0)) == 0 ||
-
- (middeer0 = newwin(15, 42, 0, 8)) == 0 ||
- (middeer1 = newwin(3, 7, 0, 0)) == 0 ||
- (middeer2 = newwin(3, 7, 0, 0)) == 0 ||
- (middeer3 = newwin(3, 7, 0, 0)) == 0 ||
-
- (bigdeer0 = newwin(10, 23, 0, 0)) == 0 ||
- (bigdeer1 = newwin(10, 23, 0, 0)) == 0 ||
- (bigdeer2 = newwin(10, 23, 0, 0)) == 0 ||
- (bigdeer3 = newwin(10, 23, 0, 0)) == 0 ||
- (bigdeer4 = newwin(10, 23, 0, 0)) == 0 ||
-
- (lookdeer0 = newwin(10, 25, 0, 0)) == 0 ||
- (lookdeer1 = newwin(10, 25, 0, 0)) == 0 ||
- (lookdeer2 = newwin(10, 25, 0, 0)) == 0 ||
- (lookdeer3 = newwin(10, 25, 0, 0)) == 0 ||
- (lookdeer4 = newwin(10, 25, 0, 0)) == 0 ||
-
- (w_holiday = newwin(1, 26, 3, 27)) == 0 ||
-
- (w_del_msg = newwin(1, 19, 23, 60)) == 0) {
- endwin();
- fprintf(stderr, "Cannot create windows - screen too small\n");
- ExitProgram(EXIT_FAILURE);
- }
-
- mvwaddstr(w_del_msg, 0, 0, "Hit any key to quit");
-
- mvwaddstr(w_holiday, 0, 0, "H A P P Y H O L I D A Y S");
-
- /* set up the windows for our various reindeer */
-
- /* lildeer1 */
- mvwaddch(lildeer1, 0, 0, (chtype) 'V');
- mvwaddch(lildeer1, 1, 0, (chtype) '@');
- mvwaddch(lildeer1, 1, 1, (chtype) '<');
- mvwaddch(lildeer1, 1, 2, (chtype) '>');
- mvwaddch(lildeer1, 1, 3, (chtype) '~');
-
- /* lildeer2 */
- mvwaddch(lildeer2, 0, 0, (chtype) 'V');
- mvwaddch(lildeer2, 1, 0, (chtype) '@');
- mvwaddch(lildeer2, 1, 1, (chtype) '|');
- mvwaddch(lildeer2, 1, 2, (chtype) '|');
- mvwaddch(lildeer2, 1, 3, (chtype) '~');
-
- /* lildeer3 */
- mvwaddch(lildeer3, 0, 0, (chtype) 'V');
- mvwaddch(lildeer3, 1, 0, (chtype) '@');
- mvwaddch(lildeer3, 1, 1, (chtype) '>');
- mvwaddch(lildeer3, 1, 2, (chtype) '<');
- mvwaddch(lildeer2, 1, 3, (chtype) '~');
-
- /* middeer1 */
- mvwaddch(middeer1, 0, 2, (chtype) 'y');
- mvwaddch(middeer1, 0, 3, (chtype) 'y');
- mvwaddch(middeer1, 1, 2, (chtype) '0');
- mvwaddch(middeer1, 1, 3, (chtype) '(');
- mvwaddch(middeer1, 1, 4, (chtype) '=');
- mvwaddch(middeer1, 1, 5, (chtype) ')');
- mvwaddch(middeer1, 1, 6, (chtype) '~');
- mvwaddch(middeer1, 2, 3, (chtype) '\\');
- mvwaddch(middeer1, 2, 4, (chtype) '/');
-
- /* middeer2 */
- mvwaddch(middeer2, 0, 2, (chtype) 'y');
- mvwaddch(middeer2, 0, 3, (chtype) 'y');
- mvwaddch(middeer2, 1, 2, (chtype) '0');
- mvwaddch(middeer2, 1, 3, (chtype) '(');
- mvwaddch(middeer2, 1, 4, (chtype) '=');
- mvwaddch(middeer2, 1, 5, (chtype) ')');
- mvwaddch(middeer2, 1, 6, (chtype) '~');
- mvwaddch(middeer2, 2, 3, (chtype) '|');
- mvwaddch(middeer2, 2, 5, (chtype) '|');
-
- /* middeer3 */
- mvwaddch(middeer3, 0, 2, (chtype) 'y');
- mvwaddch(middeer3, 0, 3, (chtype) 'y');
- mvwaddch(middeer3, 1, 2, (chtype) '0');
- mvwaddch(middeer3, 1, 3, (chtype) '(');
- mvwaddch(middeer3, 1, 4, (chtype) '=');
- mvwaddch(middeer3, 1, 5, (chtype) ')');
- mvwaddch(middeer3, 1, 6, (chtype) '~');
- mvwaddch(middeer3, 2, 2, (chtype) '/');
- mvwaddch(middeer3, 2, 6, (chtype) '\\');
-
- /* bigdeer1 */
- mvwaddch(bigdeer1, 0, 17, (chtype) '\\');
- mvwaddch(bigdeer1, 0, 18, (chtype) '/');
- mvwaddch(bigdeer1, 0, 20, (chtype) '\\');
- mvwaddch(bigdeer1, 0, 21, (chtype) '/');
- mvwaddch(bigdeer1, 1, 18, (chtype) '\\');
- mvwaddch(bigdeer1, 1, 20, (chtype) '/');
- mvwaddch(bigdeer1, 2, 19, (chtype) '|');
- mvwaddch(bigdeer1, 2, 20, (chtype) '_');
- mvwaddch(bigdeer1, 3, 18, (chtype) '/');
- mvwaddch(bigdeer1, 3, 19, (chtype) '^');
- mvwaddch(bigdeer1, 3, 20, (chtype) '0');
- mvwaddch(bigdeer1, 3, 21, (chtype) '\\');
- mvwaddch(bigdeer1, 4, 17, (chtype) '/');
- mvwaddch(bigdeer1, 4, 18, (chtype) '/');
- mvwaddch(bigdeer1, 4, 19, (chtype) '\\');
- mvwaddch(bigdeer1, 4, 22, (chtype) '\\');
- mvwaddstr(bigdeer1, 5, 7, "^~~~~~~~~// ~~U");
- mvwaddstr(bigdeer1, 6, 7, "( \\_____( /");
- mvwaddstr(bigdeer1, 7, 8, "( ) /");
- mvwaddstr(bigdeer1, 8, 9, "\\\\ /");
- mvwaddstr(bigdeer1, 9, 11, "\\>/>");
-
- /* bigdeer2 */
- mvwaddch(bigdeer2, 0, 17, (chtype) '\\');
- mvwaddch(bigdeer2, 0, 18, (chtype) '/');
- mvwaddch(bigdeer2, 0, 20, (chtype) '\\');
- mvwaddch(bigdeer2, 0, 21, (chtype) '/');
- mvwaddch(bigdeer2, 1, 18, (chtype) '\\');
- mvwaddch(bigdeer2, 1, 20, (chtype) '/');
- mvwaddch(bigdeer2, 2, 19, (chtype) '|');
- mvwaddch(bigdeer2, 2, 20, (chtype) '_');
- mvwaddch(bigdeer2, 3, 18, (chtype) '/');
- mvwaddch(bigdeer2, 3, 19, (chtype) '^');
- mvwaddch(bigdeer2, 3, 20, (chtype) '0');
- mvwaddch(bigdeer2, 3, 21, (chtype) '\\');
- mvwaddch(bigdeer2, 4, 17, (chtype) '/');
- mvwaddch(bigdeer2, 4, 18, (chtype) '/');
- mvwaddch(bigdeer2, 4, 19, (chtype) '\\');
- mvwaddch(bigdeer2, 4, 22, (chtype) '\\');
- mvwaddstr(bigdeer2, 5, 7, "^~~~~~~~~// ~~U");
- mvwaddstr(bigdeer2, 6, 7, "(( )____( /");
- mvwaddstr(bigdeer2, 7, 7, "( / |");
- mvwaddstr(bigdeer2, 8, 8, "\\/ |");
- mvwaddstr(bigdeer2, 9, 9, "|> |>");
-
- /* bigdeer3 */
- mvwaddch(bigdeer3, 0, 17, (chtype) '\\');
- mvwaddch(bigdeer3, 0, 18, (chtype) '/');
- mvwaddch(bigdeer3, 0, 20, (chtype) '\\');
- mvwaddch(bigdeer3, 0, 21, (chtype) '/');
- mvwaddch(bigdeer3, 1, 18, (chtype) '\\');
- mvwaddch(bigdeer3, 1, 20, (chtype) '/');
- mvwaddch(bigdeer3, 2, 19, (chtype) '|');
- mvwaddch(bigdeer3, 2, 20, (chtype) '_');
- mvwaddch(bigdeer3, 3, 18, (chtype) '/');
- mvwaddch(bigdeer3, 3, 19, (chtype) '^');
- mvwaddch(bigdeer3, 3, 20, (chtype) '0');
- mvwaddch(bigdeer3, 3, 21, (chtype) '\\');
- mvwaddch(bigdeer3, 4, 17, (chtype) '/');
- mvwaddch(bigdeer3, 4, 18, (chtype) '/');
- mvwaddch(bigdeer3, 4, 19, (chtype) '\\');
- mvwaddch(bigdeer3, 4, 22, (chtype) '\\');
- mvwaddstr(bigdeer3, 5, 7, "^~~~~~~~~// ~~U");
- mvwaddstr(bigdeer3, 6, 6, "( ()_____( /");
- mvwaddstr(bigdeer3, 7, 6, "/ / /");
- mvwaddstr(bigdeer3, 8, 5, "|/ \\");
- mvwaddstr(bigdeer3, 9, 5, "/> \\>");
-
- /* bigdeer4 */
- mvwaddch(bigdeer4, 0, 17, (chtype) '\\');
- mvwaddch(bigdeer4, 0, 18, (chtype) '/');
- mvwaddch(bigdeer4, 0, 20, (chtype) '\\');
- mvwaddch(bigdeer4, 0, 21, (chtype) '/');
- mvwaddch(bigdeer4, 1, 18, (chtype) '\\');
- mvwaddch(bigdeer4, 1, 20, (chtype) '/');
- mvwaddch(bigdeer4, 2, 19, (chtype) '|');
- mvwaddch(bigdeer4, 2, 20, (chtype) '_');
- mvwaddch(bigdeer4, 3, 18, (chtype) '/');
- mvwaddch(bigdeer4, 3, 19, (chtype) '^');
- mvwaddch(bigdeer4, 3, 20, (chtype) '0');
- mvwaddch(bigdeer4, 3, 21, (chtype) '\\');
- mvwaddch(bigdeer4, 4, 17, (chtype) '/');
- mvwaddch(bigdeer4, 4, 18, (chtype) '/');
- mvwaddch(bigdeer4, 4, 19, (chtype) '\\');
- mvwaddch(bigdeer4, 4, 22, (chtype) '\\');
- mvwaddstr(bigdeer4, 5, 7, "^~~~~~~~~// ~~U");
- mvwaddstr(bigdeer4, 6, 6, "( )______( /");
- mvwaddstr(bigdeer4, 7, 5, "(/ \\");
- mvwaddstr(bigdeer4, 8, 0, "v___= ----^");
-
- /* lookdeer1 */
- mvwaddstr(lookdeer1, 0, 16, "\\/ \\/");
- mvwaddstr(lookdeer1, 1, 17, "\\Y/ \\Y/");
- mvwaddstr(lookdeer1, 2, 19, "\\=/");
- mvwaddstr(lookdeer1, 3, 17, "^\\o o/^");
- mvwaddstr(lookdeer1, 4, 17, "//( )");
- mvwaddstr(lookdeer1, 5, 7, "^~~~~~~~~// \\O/");
- mvwaddstr(lookdeer1, 6, 7, "( \\_____( /");
- mvwaddstr(lookdeer1, 7, 8, "( ) /");
- mvwaddstr(lookdeer1, 8, 9, "\\\\ /");
- mvwaddstr(lookdeer1, 9, 11, "\\>/>");
-
- /* lookdeer2 */
- mvwaddstr(lookdeer2, 0, 16, "\\/ \\/");
- mvwaddstr(lookdeer2, 1, 17, "\\Y/ \\Y/");
- mvwaddstr(lookdeer2, 2, 19, "\\=/");
- mvwaddstr(lookdeer2, 3, 17, "^\\o o/^");
- mvwaddstr(lookdeer2, 4, 17, "//( )");
- mvwaddstr(lookdeer2, 5, 7, "^~~~~~~~~// \\O/");
- mvwaddstr(lookdeer2, 6, 7, "(( )____( /");
- mvwaddstr(lookdeer2, 7, 7, "( / |");
- mvwaddstr(lookdeer2, 8, 8, "\\/ |");
- mvwaddstr(lookdeer2, 9, 9, "|> |>");
-
- /* lookdeer3 */
- mvwaddstr(lookdeer3, 0, 16, "\\/ \\/");
- mvwaddstr(lookdeer3, 1, 17, "\\Y/ \\Y/");
- mvwaddstr(lookdeer3, 2, 19, "\\=/");
- mvwaddstr(lookdeer3, 3, 17, "^\\o o/^");
- mvwaddstr(lookdeer3, 4, 17, "//( )");
- mvwaddstr(lookdeer3, 5, 7, "^~~~~~~~~// \\O/");
- mvwaddstr(lookdeer3, 6, 6, "( ()_____( /");
- mvwaddstr(lookdeer3, 7, 6, "/ / /");
- mvwaddstr(lookdeer3, 8, 5, "|/ \\");
- mvwaddstr(lookdeer3, 9, 5, "/> \\>");
-
- /* lookdeer4 */
- mvwaddstr(lookdeer4, 0, 16, "\\/ \\/");
- mvwaddstr(lookdeer4, 1, 17, "\\Y/ \\Y/");
- mvwaddstr(lookdeer4, 2, 19, "\\=/");
- mvwaddstr(lookdeer4, 3, 17, "^\\o o/^");
- mvwaddstr(lookdeer4, 4, 17, "//( )");
- mvwaddstr(lookdeer4, 5, 7, "^~~~~~~~~// \\O/");
- mvwaddstr(lookdeer4, 6, 6, "( )______( /");
- mvwaddstr(lookdeer4, 7, 5, "(/ \\");
- mvwaddstr(lookdeer4, 8, 0, "v___= ----^");
-
- /***********************************************/
- cbreak();
- nodelay(stdscr, TRUE);
- for (;;) {
- clear();
- werase(treescrn);
- touchwin(w_del_msg);
- touchwin(treescrn);
- werase(treescrn2);
- touchwin(treescrn2);
- werase(treescrn8);
- touchwin(treescrn8);
- refresh();
- look_out(150);
- boxit();
- refresh();
- look_out(150);
- seas();
- refresh();
- look_out(150);
- greet();
- refresh();
- look_out(150);
- fromwho();
- refresh();
- look_out(150);
- tree();
- look_out(150);
- balls();
- look_out(150);
- star();
- look_out(150);
- strng1();
- strng2();
- strng3();
- strng4();
- strng5();
-
- /* set up the windows for our blinking trees */
- /* **************************************** */
- /* treescrn3 */
-
- overlay(treescrn, treescrn3);
-
- /*balls */
- mvwaddch(treescrn3, 4, 18, ' ');
- mvwaddch(treescrn3, 7, 6, ' ');
- mvwaddch(treescrn3, 8, 19, ' ');
- mvwaddch(treescrn3, 11, 22, ' ');
-
- /*star */
- mvwaddch(treescrn3, 0, 12, '*');
-
- /*strng1 */
- mvwaddch(treescrn3, 3, 11, ' ');
-
- /*strng2 */
- mvwaddch(treescrn3, 5, 13, ' ');
- mvwaddch(treescrn3, 6, 10, ' ');
-
- /*strng3 */
- mvwaddch(treescrn3, 7, 16, ' ');
- mvwaddch(treescrn3, 7, 14, ' ');
-
- /*strng4 */
- mvwaddch(treescrn3, 10, 13, ' ');
- mvwaddch(treescrn3, 10, 10, ' ');
- mvwaddch(treescrn3, 11, 8, ' ');
-
- /*strng5 */
- mvwaddch(treescrn3, 11, 18, ' ');
- mvwaddch(treescrn3, 12, 13, ' ');
-
- /* treescrn4 */
-
- overlay(treescrn, treescrn4);
-
- /*balls */
- mvwaddch(treescrn4, 3, 9, ' ');
- mvwaddch(treescrn4, 4, 16, ' ');
- mvwaddch(treescrn4, 7, 6, ' ');
- mvwaddch(treescrn4, 8, 19, ' ');
- mvwaddch(treescrn4, 11, 2, ' ');
- mvwaddch(treescrn4, 12, 23, ' ');
-
- /*star */
- wstandout(treescrn4);
- mvwaddch(treescrn4, 0, 12, '*');
- wstandend(treescrn4);
-
- /*strng1 */
- mvwaddch(treescrn4, 3, 13, ' ');
-
- /*strng2 */
-
- /*strng3 */
- mvwaddch(treescrn4, 7, 15, ' ');
- mvwaddch(treescrn4, 8, 11, ' ');
-
- /*strng4 */
- mvwaddch(treescrn4, 9, 16, ' ');
- mvwaddch(treescrn4, 10, 12, ' ');
- mvwaddch(treescrn4, 11, 8, ' ');
-
- /*strng5 */
- mvwaddch(treescrn4, 11, 18, ' ');
- mvwaddch(treescrn4, 12, 14, ' ');
-
- /* treescrn5 */
-
- overlay(treescrn, treescrn5);
-
- /*balls */
- mvwaddch(treescrn5, 3, 15, ' ');
- mvwaddch(treescrn5, 10, 20, ' ');
- mvwaddch(treescrn5, 12, 1, ' ');
-
- /*star */
- mvwaddch(treescrn5, 0, 12, '*');
-
- /*strng1 */
- mvwaddch(treescrn5, 3, 11, ' ');
-
- /*strng2 */
- mvwaddch(treescrn5, 5, 12, ' ');
-
- /*strng3 */
- mvwaddch(treescrn5, 7, 14, ' ');
- mvwaddch(treescrn5, 8, 10, ' ');
-
- /*strng4 */
- mvwaddch(treescrn5, 9, 15, ' ');
- mvwaddch(treescrn5, 10, 11, ' ');
- mvwaddch(treescrn5, 11, 7, ' ');
-
- /*strng5 */
- mvwaddch(treescrn5, 11, 17, ' ');
- mvwaddch(treescrn5, 12, 13, ' ');
-
- /* treescrn6 */
-
- overlay(treescrn, treescrn6);
-
- /*balls */
- mvwaddch(treescrn6, 6, 7, ' ');
- mvwaddch(treescrn6, 7, 18, ' ');
- mvwaddch(treescrn6, 10, 4, ' ');
- mvwaddch(treescrn6, 11, 23, ' ');
-
- /*star */
- wstandout(treescrn6);
- mvwaddch(treescrn6, 0, 12, '*');
- wstandend(treescrn6);
-
- /*strng1 */
-
- /*strng2 */
- mvwaddch(treescrn6, 5, 11, ' ');
-
- /*strng3 */
- mvwaddch(treescrn6, 7, 13, ' ');
- mvwaddch(treescrn6, 8, 9, ' ');
-
- /*strng4 */
- mvwaddch(treescrn6, 9, 14, ' ');
- mvwaddch(treescrn6, 10, 10, ' ');
- mvwaddch(treescrn6, 11, 6, ' ');
-
- /*strng5 */
- mvwaddch(treescrn6, 11, 16, ' ');
- mvwaddch(treescrn6, 12, 12, ' ');
-
- /* treescrn7 */
-
- overlay(treescrn, treescrn7);
-
- /*balls */
- mvwaddch(treescrn7, 3, 15, ' ');
- mvwaddch(treescrn7, 6, 7, ' ');
- mvwaddch(treescrn7, 7, 18, ' ');
- mvwaddch(treescrn7, 10, 4, ' ');
- mvwaddch(treescrn7, 11, 22, ' ');
-
- /*star */
- mvwaddch(treescrn7, 0, 12, '*');
-
- /*strng1 */
- mvwaddch(treescrn7, 3, 12, ' ');
-
- /*strng2 */
- mvwaddch(treescrn7, 5, 13, ' ');
- mvwaddch(treescrn7, 6, 9, ' ');
-
- /*strng3 */
- mvwaddch(treescrn7, 7, 15, ' ');
- mvwaddch(treescrn7, 8, 11, ' ');
-
- /*strng4 */
- mvwaddch(treescrn7, 9, 16, ' ');
- mvwaddch(treescrn7, 10, 12, ' ');
- mvwaddch(treescrn7, 11, 8, ' ');
-
- /*strng5 */
- mvwaddch(treescrn7, 11, 18, ' ');
- mvwaddch(treescrn7, 12, 14, ' ');
-
- look_out(150);
- reindeer();
-
- touchwin(w_holiday);
- wrefresh(w_holiday);
- wrefresh(w_del_msg);
-
- look_out(500);
- for (loopy = 0; loopy < 100; loopy++) {
- blinkit();
- }
-
-#ifdef NOLOOP
- done(0);
-#endif
- }
- /*NOTREACHED */
-}
-
-static int
-boxit(void)
-{
- int x = 0;
-
- while (x < 20) {
- mvaddch(x, 7, '|');
- ++x;
- }
-
- x = 8;
-
- while (x < 80) {
- mvaddch(19, x, '_');
- ++x;
- }
-
- x = 0;
-
- while (x < 80) {
- mvaddch(22, x, '_');
- ++x;
- }
-
- return (0);
-}
-
-static int
-seas(void)
-{
- mvaddch(4, 1, 'S');
- mvaddch(6, 1, 'E');
- mvaddch(8, 1, 'A');
- mvaddch(10, 1, 'S');
- mvaddch(12, 1, 'O');
- mvaddch(14, 1, 'N');
- mvaddch(16, 1, '`');
- mvaddch(18, 1, 'S');
-
- return (0);
-}
-
-static int
-greet(void)
-{
- mvaddch(3, 5, 'G');
- mvaddch(5, 5, 'R');
- mvaddch(7, 5, 'E');
- mvaddch(9, 5, 'E');
- mvaddch(11, 5, 'T');
- mvaddch(13, 5, 'I');
- mvaddch(15, 5, 'N');
- mvaddch(17, 5, 'G');
- mvaddch(19, 5, 'S');
-
- return (0);
-}
-
-static int
-fromwho(void)
-{
- mvaddstr(21, 13, FROMWHO);
- return (0);
-}
-
-static int
-tree(void)
-{
- set_color(treescrn, COLOR_GREEN);
- mvwaddch(treescrn, 1, 11, (chtype) '/');
- mvwaddch(treescrn, 2, 11, (chtype) '/');
- mvwaddch(treescrn, 3, 10, (chtype) '/');
- mvwaddch(treescrn, 4, 9, (chtype) '/');
- mvwaddch(treescrn, 5, 9, (chtype) '/');
- mvwaddch(treescrn, 6, 8, (chtype) '/');
- mvwaddch(treescrn, 7, 7, (chtype) '/');
- mvwaddch(treescrn, 8, 6, (chtype) '/');
- mvwaddch(treescrn, 9, 6, (chtype) '/');
- mvwaddch(treescrn, 10, 5, (chtype) '/');
- mvwaddch(treescrn, 11, 3, (chtype) '/');
- mvwaddch(treescrn, 12, 2, (chtype) '/');
-
- mvwaddch(treescrn, 1, 13, (chtype) '\\');
- mvwaddch(treescrn, 2, 13, (chtype) '\\');
- mvwaddch(treescrn, 3, 14, (chtype) '\\');
- mvwaddch(treescrn, 4, 15, (chtype) '\\');
- mvwaddch(treescrn, 5, 15, (chtype) '\\');
- mvwaddch(treescrn, 6, 16, (chtype) '\\');
- mvwaddch(treescrn, 7, 17, (chtype) '\\');
- mvwaddch(treescrn, 8, 18, (chtype) '\\');
- mvwaddch(treescrn, 9, 18, (chtype) '\\');
- mvwaddch(treescrn, 10, 19, (chtype) '\\');
- mvwaddch(treescrn, 11, 21, (chtype) '\\');
- mvwaddch(treescrn, 12, 22, (chtype) '\\');
-
- mvwaddch(treescrn, 4, 10, (chtype) '_');
- mvwaddch(treescrn, 4, 14, (chtype) '_');
- mvwaddch(treescrn, 8, 7, (chtype) '_');
- mvwaddch(treescrn, 8, 17, (chtype) '_');
-
- mvwaddstr(treescrn, 13, 0, "//////////// \\\\\\\\\\\\\\\\\\\\\\\\");
-
- mvwaddstr(treescrn, 14, 11, "| |");
- mvwaddstr(treescrn, 15, 11, "|_|");
-
- unset_color(treescrn);
- wrefresh(treescrn);
- wrefresh(w_del_msg);
-
- return (0);
-}
-
-static int
-balls(void)
-{
- overlay(treescrn, treescrn2);
-
- set_color(treescrn2, COLOR_BLUE);
- mvwaddch(treescrn2, 3, 9, (chtype) '@');
- mvwaddch(treescrn2, 3, 15, (chtype) '@');
- mvwaddch(treescrn2, 4, 8, (chtype) '@');
- mvwaddch(treescrn2, 4, 16, (chtype) '@');
- mvwaddch(treescrn2, 5, 7, (chtype) '@');
- mvwaddch(treescrn2, 5, 17, (chtype) '@');
- mvwaddch(treescrn2, 7, 6, (chtype) '@');
- mvwaddch(treescrn2, 7, 18, (chtype) '@');
- mvwaddch(treescrn2, 8, 5, (chtype) '@');
- mvwaddch(treescrn2, 8, 19, (chtype) '@');
- mvwaddch(treescrn2, 10, 4, (chtype) '@');
- mvwaddch(treescrn2, 10, 20, (chtype) '@');
- mvwaddch(treescrn2, 11, 2, (chtype) '@');
- mvwaddch(treescrn2, 11, 22, (chtype) '@');
- mvwaddch(treescrn2, 12, 1, (chtype) '@');
- mvwaddch(treescrn2, 12, 23, (chtype) '@');
-
- unset_color(treescrn2);
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-star(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_YELLOW);
-
- mvwaddch(treescrn2, 0, 12, (chtype) '*');
- wstandend(treescrn2);
-
- unset_color(treescrn2);
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng1(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 3, 13, (chtype) '\'');
- mvwaddch(treescrn2, 3, 12, (chtype) ':');
- mvwaddch(treescrn2, 3, 11, (chtype) '.');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng2(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 5, 14, (chtype) '\'');
- mvwaddch(treescrn2, 5, 13, (chtype) ':');
- mvwaddch(treescrn2, 5, 12, (chtype) '.');
- mvwaddch(treescrn2, 5, 11, (chtype) ',');
- mvwaddch(treescrn2, 6, 10, (chtype) '\'');
- mvwaddch(treescrn2, 6, 9, (chtype) ':');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng3(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 7, 16, (chtype) '\'');
- mvwaddch(treescrn2, 7, 15, (chtype) ':');
- mvwaddch(treescrn2, 7, 14, (chtype) '.');
- mvwaddch(treescrn2, 7, 13, (chtype) ',');
- mvwaddch(treescrn2, 8, 12, (chtype) '\'');
- mvwaddch(treescrn2, 8, 11, (chtype) ':');
- mvwaddch(treescrn2, 8, 10, (chtype) '.');
- mvwaddch(treescrn2, 8, 9, (chtype) ',');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng4(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 9, 17, (chtype) '\'');
- mvwaddch(treescrn2, 9, 16, (chtype) ':');
- mvwaddch(treescrn2, 9, 15, (chtype) '.');
- mvwaddch(treescrn2, 9, 14, (chtype) ',');
- mvwaddch(treescrn2, 10, 13, (chtype) '\'');
- mvwaddch(treescrn2, 10, 12, (chtype) ':');
- mvwaddch(treescrn2, 10, 11, (chtype) '.');
- mvwaddch(treescrn2, 10, 10, (chtype) ',');
- mvwaddch(treescrn2, 11, 9, (chtype) '\'');
- mvwaddch(treescrn2, 11, 8, (chtype) ':');
- mvwaddch(treescrn2, 11, 7, (chtype) '.');
- mvwaddch(treescrn2, 11, 6, (chtype) ',');
- mvwaddch(treescrn2, 12, 5, (chtype) '\'');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-strng5(void)
-{
- wattrset(treescrn2, A_BOLD | A_BLINK);
- set_color(treescrn2, COLOR_WHITE);
-
- mvwaddch(treescrn2, 11, 19, (chtype) '\'');
- mvwaddch(treescrn2, 11, 18, (chtype) ':');
- mvwaddch(treescrn2, 11, 17, (chtype) '.');
- mvwaddch(treescrn2, 11, 16, (chtype) ',');
- mvwaddch(treescrn2, 12, 15, (chtype) '\'');
- mvwaddch(treescrn2, 12, 14, (chtype) ':');
- mvwaddch(treescrn2, 12, 13, (chtype) '.');
- mvwaddch(treescrn2, 12, 12, (chtype) ',');
-
- wattroff(treescrn2, A_BOLD | A_BLINK);
- unset_color(treescrn2);
-
- /* save a fully lit tree */
- overlay(treescrn2, treescrn);
-
- wrefresh(treescrn2);
- wrefresh(w_del_msg);
- return (0);
-}
-
-static int
-blinkit(void)
-{
- static int cycle;
-
- if (cycle > 4) {
- cycle = 0;
- }
-
- touchwin(treescrn8);
-
- switch (cycle) {
- case 0:
- overlay(treescrn3, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- case 1:
- overlay(treescrn4, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- case 2:
- overlay(treescrn5, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- case 3:
- overlay(treescrn6, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- case 4:
- overlay(treescrn7, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
- break;
- }
- touchwin(treescrn8);
-
- /*ALL ON************************************************** */
-
- overlay(treescrn, treescrn8);
- wrefresh(treescrn8);
- wrefresh(w_del_msg);
-
- ++cycle;
- return (0);
-}
-
-static void
-deer_step(WINDOW *win, int y, int x)
-{
- mvwin(win, y, x);
- wrefresh(win);
- wrefresh(w_del_msg);
- look_out(5);
-}
-
-static int
-reindeer(void)
-{
- int looper;
- y_pos = 0;
-
- for (x_pos = 70; x_pos > 62; x_pos--) {
- if (x_pos < 62) {
- y_pos = 1;
- }
- for (looper = 0; looper < 4; looper++) {
- mvwaddch(dotdeer0, y_pos, x_pos, (chtype) '.');
- wrefresh(dotdeer0);
- wrefresh(w_del_msg);
- werase(dotdeer0);
- wrefresh(dotdeer0);
- wrefresh(w_del_msg);
- look_out(50);
- }
- }
-
- y_pos = 2;
-
- for (; x_pos > 50; x_pos--) {
- for (looper = 0; looper < 4; looper++) {
-
- if (x_pos < 56) {
- y_pos = 3;
-
- mvwaddch(stardeer0, y_pos, x_pos, (chtype) '*');
- wrefresh(stardeer0);
- wrefresh(w_del_msg);
- werase(stardeer0);
- wrefresh(stardeer0);
- wrefresh(w_del_msg);
- } else {
- mvwaddch(dotdeer0, y_pos, x_pos, (chtype) '*');
- wrefresh(dotdeer0);
- wrefresh(w_del_msg);
- werase(dotdeer0);
- wrefresh(dotdeer0);
- wrefresh(w_del_msg);
- }
- }
- }
-
- x_pos = 58;
-
- for (y_pos = 2; y_pos < 5; y_pos++) {
-
- touchwin(lildeer0);
- wrefresh(lildeer0);
- wrefresh(w_del_msg);
-
- for (looper = 0; looper < 4; looper++) {
- deer_step(lildeer3, y_pos, x_pos);
- deer_step(lildeer2, y_pos, x_pos);
- deer_step(lildeer1, y_pos, x_pos);
- deer_step(lildeer2, y_pos, x_pos);
- deer_step(lildeer3, y_pos, x_pos);
-
- touchwin(lildeer0);
- wrefresh(lildeer0);
- wrefresh(w_del_msg);
-
- x_pos -= 2;
- }
- }
-
- x_pos = 35;
-
- for (y_pos = 5; y_pos < 10; y_pos++) {
-
- touchwin(middeer0);
- wrefresh(middeer0);
- wrefresh(w_del_msg);
-
- for (looper = 0; looper < 2; looper++) {
- deer_step(middeer3, y_pos, x_pos);
- deer_step(middeer2, y_pos, x_pos);
- deer_step(middeer1, y_pos, x_pos);
- deer_step(middeer2, y_pos, x_pos);
- deer_step(middeer3, y_pos, x_pos);
-
- touchwin(middeer0);
- wrefresh(middeer0);
- wrefresh(w_del_msg);
-
- x_pos -= 3;
- }
- }
-
- look_out(300);
-
- y_pos = 1;
-
- for (x_pos = 8; x_pos < 16; x_pos++) {
- deer_step(bigdeer4, y_pos, x_pos);
- deer_step(bigdeer3, y_pos, x_pos);
- deer_step(bigdeer2, y_pos, x_pos);
- deer_step(bigdeer1, y_pos, x_pos);
- deer_step(bigdeer2, y_pos, x_pos);
- deer_step(bigdeer3, y_pos, x_pos);
- deer_step(bigdeer4, y_pos, x_pos);
- deer_step(bigdeer0, y_pos, x_pos);
- }
-
- --x_pos;
-
- for (looper = 0; looper < 6; looper++) {
- deer_step(lookdeer4, y_pos, x_pos);
- deer_step(lookdeer3, y_pos, x_pos);
- deer_step(lookdeer2, y_pos, x_pos);
- deer_step(lookdeer1, y_pos, x_pos);
- deer_step(lookdeer2, y_pos, x_pos);
- deer_step(lookdeer3, y_pos, x_pos);
- deer_step(lookdeer4, y_pos, x_pos);
- }
-
- deer_step(lookdeer0, y_pos, x_pos);
-
- for (; y_pos < 10; y_pos++) {
- for (looper = 0; looper < 2; looper++) {
- deer_step(bigdeer4, y_pos, x_pos);
- deer_step(bigdeer3, y_pos, x_pos);
- deer_step(bigdeer2, y_pos, x_pos);
- deer_step(bigdeer1, y_pos, x_pos);
- deer_step(bigdeer2, y_pos, x_pos);
- deer_step(bigdeer3, y_pos, x_pos);
- deer_step(bigdeer4, y_pos, x_pos);
- }
- deer_step(bigdeer0, y_pos, x_pos);
- }
-
- --y_pos;
-
- deer_step(lookdeer3, y_pos, x_pos);
- return (0);
-}
-
-static RETSIGTYPE
-done(int sig GCC_UNUSED)
-{
- CATCHALL(done);
-
- move(LINES - 1, 0);
- refresh();
- endwin();
- curs_set(1);
-
-#if NO_LEAKS
- if (my_pairs != 0)
- free(my_pairs);
-#endif
-
- ExitProgram(EXIT_SUCCESS);
-}
diff --git a/test/xterm-16color.dat b/test/xterm-16color.dat
deleted file mode 100644
index 6d47d93..0000000
--- a/test/xterm-16color.dat
+++ /dev/null
@@ -1,53 +0,0 @@
-##############################################################################
-# Copyright (c) 2004,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: xterm-16color.dat,v 1.2 2006/04/22 21:40:00 tom Exp $
-# This illustrates the predefined colors for XFree86 xterm's "xterm-16color".
-# If you set $TERM to "xterm-88color" (and have xterm compiled to support the
-# 88-color or 256-color feature), you can use the ncurses 'd' screen to
-# manipulate the colors shown in the screen. The 'd' screen is limited to
-# the first 16 colors, and xterm happens to use the same first 16 colors in
-# the extended color models that support initc.
-#
-# The colors shown are for xterm patch #189.
-scale:255
-0: 0 0 0 black
-1: 205 0 0 red3
-2: 0 205 0 green3
-3: 205 205 0 yellow3
-4: 30 144 255 DodgerBlue1
-5: 205 0 205 magenta3
-6: 0 205 205 cyan3
-7: 229 229 229 gray90
-8: 127 127 127 gray50
-9: 255 0 0 red
-10: 0 255 0 green
-11: 255 255 0 yellow
-12: 99 184 255 SteelBlue1
-13: 255 0 255 magenta
-14: 0 255 255 cyan
-15: 255 255 255 white
diff --git a/test/xterm-88color.dat b/test/xterm-88color.dat
deleted file mode 100644
index cd8aa1c..0000000
--- a/test/xterm-88color.dat
+++ /dev/null
@@ -1,125 +0,0 @@
-##############################################################################
-# Copyright (c) 2005,2006 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-# $Id: xterm-88color.dat,v 1.2 2006/04/22 21:40:00 tom Exp $
-# This illustrates the predefined colors for XFree86 xterm's "xterm-16color".
-# If you set $TERM to "xterm-88color" (and have xterm compiled to support the
-# 88-color or 256-color feature), you can use the ncurses 'd' screen to
-# manipulate the colors shown in the screen. The 'd' screen is limited to
-# the first 16 colors, and xterm happens to use the same first 16 colors in
-# the extended color models that support initc.
-#
-# The colors shown are for xterm patch #189.
-scale:255
-0: 0 0 0 black
-1: 205 0 0 red3
-2: 0 205 0 green3
-3: 205 205 0 yellow3
-4: 30 144 255 DodgerBlue1
-5: 205 0 205 magenta3
-6: 0 205 205 cyan3
-7: 229 229 229 gray90
-8: 127 127 127 gray50
-9: 255 0 0 red
-10: 0 255 0 green
-11: 255 255 0 yellow
-12: 99 184 255 SteelBlue1
-13: 255 0 255 magenta
-14: 0 255 255 cyan
-15: 255 255 255 white
-16: 0 0 0
-17: 0 0 139
-18: 0 0 205
-19: 0 0 255
-20: 0 139 0
-21: 0 139 139
-22: 0 139 205
-23: 0 139 255
-24: 0 205 0
-25: 0 205 139
-26: 0 205 205
-27: 0 205 255
-28: 0 255 0
-29: 0 255 139
-30: 0 255 205
-31: 0 255 255
-32: 139 0 0
-33: 139 0 139
-34: 139 0 205
-35: 139 0 255
-36: 139 139 0
-37: 139 139 139
-38: 139 139 205
-39: 139 139 255
-40: 139 205 0
-41: 139 205 139
-42: 139 205 205
-43: 139 205 255
-44: 139 255 0
-45: 139 255 139
-46: 139 255 205
-47: 139 255 255
-48: 205 0 0
-49: 205 0 139
-50: 205 0 205
-51: 205 0 255
-52: 205 139 0
-53: 205 139 139
-54: 205 139 205
-55: 205 139 255
-56: 205 205 0
-57: 205 205 139
-58: 205 205 205
-59: 205 205 255
-60: 205 255 0
-61: 205 255 139
-62: 205 255 205
-63: 205 255 255
-64: 255 0 0
-65: 255 0 139
-66: 255 0 205
-67: 255 0 255
-68: 255 139 0
-69: 255 139 139
-70: 255 139 205
-71: 255 139 255
-72: 255 205 0
-73: 255 205 139
-74: 255 205 205
-75: 255 205 255
-76: 255 255 0
-77: 255 255 139
-78: 255 255 205
-79: 255 255 255
-80: 46 46 46
-81: 92 92 92
-82: 113 113 113
-83: 139 139 139
-84: 162 162 162
-85: 185 185 185
-86: 208 208 208
-87: 231 231 231