From 66439eb2f727e3fc026ca70b44fc51e12e36299b Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Thu, 1 Nov 2018 13:47:25 +0100 Subject: [PATCH] remove xgraph from ngspice distribution. ngspice supports gnuplot instead. 30 year old legacy code, not maintained. Does not compile on MS Windows, compiles on Cygwin, but xgraph.exe crahes immediately. Lots of compiler warnings. --- configure.ac | 17 - xgraph/INSTALL | 190 - xgraph/Makefile.am | 63 - xgraph/Makefile.in | 665 ---- xgraph/README | 26 - xgraph/README.ANNOUNCE | 84 - xgraph/README.GENERAL | 74 - xgraph/README.HARDCOPY | 288 -- xgraph/README.INSTALL | 79 - xgraph/README.NEWFEATURES | 43 - xgraph/aclocal.m4 | 907 ----- xgraph/alloc.c | 290 -- xgraph/autoconf.h.in | 67 - xgraph/bitmaps/dot.11 | 4 - xgraph/bitmaps/gray | 6 - xgraph/bitmaps/mark1.11 | 6 - xgraph/bitmaps/mark2.11 | 6 - xgraph/bitmaps/mark3.11 | 6 - xgraph/bitmaps/mark4.11 | 6 - xgraph/bitmaps/mark5.11 | 6 - xgraph/bitmaps/mark6.11 | 6 - xgraph/bitmaps/mark7.11 | 6 - xgraph/bitmaps/mark8.11 | 6 - xgraph/configure | 6465 ---------------------------------- xgraph/configure.in | 42 - xgraph/copyright.h | 65 - xgraph/derivative.c | 130 - xgraph/dialog.c | 943 ----- xgraph/draw.c | 1263 ------- xgraph/examples/Animation.xg | 2047 ----------- xgraph/examples/bar.xg | 21 - xgraph/examples/surface.xg | 1805 ---------- xgraph/examples/surface2.xg | 631 ---- xgraph/examples/surface3.xg | 667 ---- xgraph/examples/xgtest.xg | 725 ---- xgraph/general.h | 0 xgraph/hard_devices.c | 97 - xgraph/hard_devices.h | 41 - xgraph/hpgl.c | 337 -- xgraph/idraw.c | 499 --- xgraph/init.c | 622 ---- xgraph/params.c | 567 --- xgraph/params.h | 127 - xgraph/plotter.h | 60 - xgraph/ps.c | 620 ---- xgraph/read.c | 365 -- xgraph/st.c | 571 --- xgraph/st.h | 119 - xgraph/stamp-h.in | 1 - xgraph/tgif.c | 330 -- xgraph/xgX.c | 480 --- xgraph/xgout.h | 65 - xgraph/xgraph.c | 1282 ------- xgraph/xgraph.h | 210 -- xgraph/xgraph.man | 389 -- xgraph/xtb.c | 1618 --------- xgraph/xtb.h | 192 - 57 files changed, 26247 deletions(-) delete mode 100644 xgraph/INSTALL delete mode 100644 xgraph/Makefile.am delete mode 100644 xgraph/Makefile.in delete mode 100644 xgraph/README delete mode 100644 xgraph/README.ANNOUNCE delete mode 100644 xgraph/README.GENERAL delete mode 100644 xgraph/README.HARDCOPY delete mode 100644 xgraph/README.INSTALL delete mode 100644 xgraph/README.NEWFEATURES delete mode 100644 xgraph/aclocal.m4 delete mode 100644 xgraph/alloc.c delete mode 100644 xgraph/autoconf.h.in delete mode 100644 xgraph/bitmaps/dot.11 delete mode 100644 xgraph/bitmaps/gray delete mode 100644 xgraph/bitmaps/mark1.11 delete mode 100644 xgraph/bitmaps/mark2.11 delete mode 100644 xgraph/bitmaps/mark3.11 delete mode 100644 xgraph/bitmaps/mark4.11 delete mode 100644 xgraph/bitmaps/mark5.11 delete mode 100644 xgraph/bitmaps/mark6.11 delete mode 100644 xgraph/bitmaps/mark7.11 delete mode 100644 xgraph/bitmaps/mark8.11 delete mode 100755 xgraph/configure delete mode 100644 xgraph/configure.in delete mode 100644 xgraph/copyright.h delete mode 100644 xgraph/derivative.c delete mode 100644 xgraph/dialog.c delete mode 100644 xgraph/draw.c delete mode 100644 xgraph/examples/Animation.xg delete mode 100644 xgraph/examples/bar.xg delete mode 100644 xgraph/examples/surface.xg delete mode 100644 xgraph/examples/surface2.xg delete mode 100644 xgraph/examples/surface3.xg delete mode 100644 xgraph/examples/xgtest.xg delete mode 100644 xgraph/general.h delete mode 100644 xgraph/hard_devices.c delete mode 100644 xgraph/hard_devices.h delete mode 100644 xgraph/hpgl.c delete mode 100644 xgraph/idraw.c delete mode 100644 xgraph/init.c delete mode 100644 xgraph/params.c delete mode 100644 xgraph/params.h delete mode 100644 xgraph/plotter.h delete mode 100644 xgraph/ps.c delete mode 100644 xgraph/read.c delete mode 100644 xgraph/st.c delete mode 100644 xgraph/st.h delete mode 100644 xgraph/stamp-h.in delete mode 100644 xgraph/tgif.c delete mode 100644 xgraph/xgX.c delete mode 100644 xgraph/xgout.h delete mode 100644 xgraph/xgraph.c delete mode 100644 xgraph/xgraph.h delete mode 100644 xgraph/xgraph.man delete mode 100644 xgraph/xtb.c delete mode 100644 xgraph/xtb.h diff --git a/configure.ac b/configure.ac index c10f4825e..4b751304c 100644 --- a/configure.ac +++ b/configure.ac @@ -185,11 +185,6 @@ AC_ARG_ENABLE([cluster], AC_ARG_ENABLE([help], [AS_HELP_STRING([--enable-help], [Force building nghelp (deprecated)])]) -# --enable-xgraph: Compile the xgraph plotting program. Default is "no". -# Xgraph is a plotting package for X11 once very popular. -AC_ARG_ENABLE([xgraph], - [AS_HELP_STRING([--enable-xgraph], [Enable xgraph compilation.])]) - # --with-fftw3: Use fftw3 for Fourier transforms. Default is "yes". AC_ARG_WITH([fftw3], [AS_HELP_STRING([--with-fftw3[=yes/no]], [Use fftw3 for Fourier transforms. Default=yes.])]) @@ -912,18 +907,6 @@ if test "x$enable_smltmsdebug" = xyes; then AC_DEFINE([D_DBG_SMALLTIMES], [], [Define if we want debug distortion analysis (SMALLTIMES)]) AC_MSG_RESULT([WARNING: Distortion analysis debug *D_DBG_SMALLTIMES* is enabled]) fi -if test "x$enable_xgraph" = xyes; then - AC_MSG_RESULT([Xgraph compilation enabled.]) - AC_CONFIG_SUBDIRS([xgraph]) - XGRAPHDIR="xgraph" - NOTXGRAPH="" -else - XGRAPHDIR="" - NOTXGRAPH="xgraph" -fi - -AC_SUBST([XGRAPHDIR]) -AC_SUBST([NOTXGRAPH]) AC_PROG_YACC AC_PATH_PROG([BISON], [bison]) diff --git a/xgraph/INSTALL b/xgraph/INSTALL deleted file mode 100644 index 92e3dc91d..000000000 --- a/xgraph/INSTALL +++ /dev/null @@ -1,190 +0,0 @@ - -XGRAPH INSTALLATION -=================== - - -Quick Start ------------ - -- download the source code -- extract tar file with gzip (gnu zip, not pkzip) and tar - (typically "gunzip - -BEFORE posting to the mailing list. Mailing list info can be found at -the xgraph web page. - - -Xgraph-specific configure options ---------------------------------- - -Use - --with-additional-includes=/path/to/includes -and - --with-additional-libs=/path/to/libs - -if configure can't find particular includes or libraries on your -system. - - -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. - diff --git a/xgraph/Makefile.am b/xgraph/Makefile.am deleted file mode 100644 index c52a85bd5..000000000 --- a/xgraph/Makefile.am +++ /dev/null @@ -1,63 +0,0 @@ -## Process this file with automake to produce Makefile.in - -# Copyright (C) 1999 by John Heidemann - -## shallow -AUTOMAKE_OPTIONS = 1.0 foreign - -bin_PROGRAMS = xgraph -xgraph_c_sources = \ - xgraph.c xgX.c hard_devices.c dialog.c hpgl.c \ - ps.c idraw.c xtb.c st.c params.c alloc.c draw.c \ - init.c read.c tgif.c derivative.c \ - copyright.h \ - general.h \ - hard_devices.h \ - params.h \ - plotter.h \ - st.h \ - xgout.h \ - xgraph.h \ - xtb.h -xgraph_SOURCES = $(xgraph_c_sources) - -man_MANS = xgraph.man - -EXTRA_DIST = \ - $(man_MANS) \ - README.ANNOUNCE \ - README.GENERAL \ - README.HARDCOPY \ - README.INSTALL \ - README.NEWFEATURES \ - bitmaps/dot.11 \ - bitmaps/gray \ - bitmaps/mark1.11 \ - bitmaps/mark2.11 \ - bitmaps/mark3.11 \ - bitmaps/mark4.11 \ - bitmaps/mark5.11 \ - bitmaps/mark6.11 \ - bitmaps/mark7.11 \ - bitmaps/mark8.11 \ - examples/Animation.xg \ - examples/bar.xg \ - examples/surface.xg \ - examples/surface2.xg \ - examples/surface3.xg \ - examples/xgtest.xg - - -# C_WARNINGS = -Wall -C_WARNINGS = -CFLAGS=$(ADDITIONAL_INCLUDES) $(C_WARNINGS) -g $(X_CFLAGS) - -xgraph_LDADD= $(ADDITIONAL_LIBS) $(X_LIBS) $(X_PRE_LIBS) $(X_EXTRA_LIBS) -lX11 -lm - -MAINTAINERCLEANFILES= Makefile.in - -mrproper: maintainer-clean - rm -f `find . -type f -name "*~" -print` - rm -f `find . -type f -name "*.orig" -print` - rm -f `find . -type f -name "*.rej" -print` - diff --git a/xgraph/Makefile.in b/xgraph/Makefile.in deleted file mode 100644 index ba538fd30..000000000 --- a/xgraph/Makefile.in +++ /dev/null @@ -1,665 +0,0 @@ -# Makefile.in generated by automake 1.9.6 from Makefile.am. -# @configure_input@ - -# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, -# 2003, 2004, 2005 Free Software Foundation, Inc. -# This Makefile.in is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -@SET_MAKE@ - -# Copyright (C) 1999 by John Heidemann - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ -pkgdatadir = $(datadir)/@PACKAGE@ -pkglibdir = $(libdir)/@PACKAGE@ -pkgincludedir = $(includedir)/@PACKAGE@ -top_builddir = . -am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd -INSTALL = @INSTALL@ -install_sh_DATA = $(install_sh) -c -m 644 -install_sh_PROGRAM = $(install_sh) -c -install_sh_SCRIPT = $(install_sh) -c -INSTALL_HEADER = $(INSTALL_DATA) -transform = $(program_transform_name) -NORMAL_INSTALL = : -PRE_INSTALL = : -POST_INSTALL = : -NORMAL_UNINSTALL = : -PRE_UNINSTALL = : -POST_UNINSTALL = : -bin_PROGRAMS = xgraph$(EXEEXT) -subdir = . -DIST_COMMON = README $(am__configure_deps) $(srcdir)/../depcomp \ - $(srcdir)/../install-sh $(srcdir)/../missing \ - $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(srcdir)/autoconf.h.in $(top_srcdir)/configure INSTALL -ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in -am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ - $(ACLOCAL_M4) -am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ - configure.lineno configure.status.lineno -mkinstalldirs = $(install_sh) -d -CONFIG_HEADER = autoconf.h -CONFIG_CLEAN_FILES = -am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(manmdir)" -binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) -PROGRAMS = $(bin_PROGRAMS) -am__objects_1 = xgraph.$(OBJEXT) xgX.$(OBJEXT) hard_devices.$(OBJEXT) \ - dialog.$(OBJEXT) hpgl.$(OBJEXT) ps.$(OBJEXT) idraw.$(OBJEXT) \ - xtb.$(OBJEXT) st.$(OBJEXT) params.$(OBJEXT) alloc.$(OBJEXT) \ - draw.$(OBJEXT) init.$(OBJEXT) read.$(OBJEXT) tgif.$(OBJEXT) \ - derivative.$(OBJEXT) -am_xgraph_OBJECTS = $(am__objects_1) -xgraph_OBJECTS = $(am_xgraph_OBJECTS) -am__DEPENDENCIES_1 = -xgraph_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ - $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) -DEFAULT_INCLUDES = -I. -I$(srcdir) -I. -depcomp = $(SHELL) $(top_srcdir)/../depcomp -am__depfiles_maybe = depfiles -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -CCLD = $(CC) -LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES = $(xgraph_SOURCES) -DIST_SOURCES = $(xgraph_SOURCES) -manmdir = $(mandir)/manm -NROFF = nroff -MANS = $(man_MANS) -ETAGS = etags -CTAGS = ctags -DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) -distdir = $(PACKAGE)-$(VERSION) -top_distdir = $(distdir) -am__remove_distdir = \ - { test ! -d $(distdir) \ - || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ - && rm -fr $(distdir); }; } -DIST_ARCHIVES = $(distdir).tar.gz -GZIP_ENV = --best -distuninstallcheck_listfiles = find . -type f -print -distcleancheck_listfiles = find . -type f -print -ACLOCAL = @ACLOCAL@ -ADDITIONAL_INCLUDES = @ADDITIONAL_INCLUDES@ -ADDITIONAL_LIBS = @ADDITIONAL_LIBS@ -AMDEP_FALSE = @AMDEP_FALSE@ -AMDEP_TRUE = @AMDEP_TRUE@ -AMTAR = @AMTAR@ -AUTOCONF = @AUTOCONF@ -AUTOHEADER = @AUTOHEADER@ -AUTOMAKE = @AUTOMAKE@ -AWK = @AWK@ -CC = @CC@ -CCDEPMODE = @CCDEPMODE@ -CFLAGS = $(ADDITIONAL_INCLUDES) $(C_WARNINGS) -g $(X_CFLAGS) -CPP = @CPP@ -CPPFLAGS = @CPPFLAGS@ -CYGPATH_W = @CYGPATH_W@ -DEFS = @DEFS@ -DEPDIR = @DEPDIR@ -ECHO_C = @ECHO_C@ -ECHO_N = @ECHO_N@ -ECHO_T = @ECHO_T@ -EGREP = @EGREP@ -EXEEXT = @EXEEXT@ -INSTALL_DATA = @INSTALL_DATA@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ -INSTALL_SCRIPT = @INSTALL_SCRIPT@ -INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ -LDFLAGS = @LDFLAGS@ -LIBOBJS = @LIBOBJS@ -LIBS = @LIBS@ -LTLIBOBJS = @LTLIBOBJS@ -MAINT = @MAINT@ -MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ -MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ -MAKEINFO = @MAKEINFO@ -OBJEXT = @OBJEXT@ -PACKAGE = @PACKAGE@ -PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ -PACKAGE_NAME = @PACKAGE_NAME@ -PACKAGE_STRING = @PACKAGE_STRING@ -PACKAGE_TARNAME = @PACKAGE_TARNAME@ -PACKAGE_VERSION = @PACKAGE_VERSION@ -PATH_SEPARATOR = @PATH_SEPARATOR@ -SET_MAKE = @SET_MAKE@ -SHELL = @SHELL@ -STRIP = @STRIP@ -VERSION = @VERSION@ -X_CFLAGS = @X_CFLAGS@ -X_EXTRA_LIBS = @X_EXTRA_LIBS@ -X_LIBS = @X_LIBS@ -X_PRE_LIBS = @X_PRE_LIBS@ -ac_ct_CC = @ac_ct_CC@ -ac_ct_STRIP = @ac_ct_STRIP@ -am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ -am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ -am__include = @am__include@ -am__leading_dot = @am__leading_dot@ -am__quote = @am__quote@ -am__tar = @am__tar@ -am__untar = @am__untar@ -bindir = @bindir@ -build_alias = @build_alias@ -datadir = @datadir@ -exec_prefix = @exec_prefix@ -host_alias = @host_alias@ -includedir = @includedir@ -infodir = @infodir@ -install_sh = @install_sh@ -libdir = @libdir@ -libexecdir = @libexecdir@ -localstatedir = @localstatedir@ -mandir = @mandir@ -mkdir_p = @mkdir_p@ -oldincludedir = @oldincludedir@ -prefix = @prefix@ -program_transform_name = @program_transform_name@ -sbindir = @sbindir@ -sharedstatedir = @sharedstatedir@ -sysconfdir = @sysconfdir@ -target_alias = @target_alias@ -AUTOMAKE_OPTIONS = 1.0 foreign -xgraph_c_sources = \ - xgraph.c xgX.c hard_devices.c dialog.c hpgl.c \ - ps.c idraw.c xtb.c st.c params.c alloc.c draw.c \ - init.c read.c tgif.c derivative.c \ - copyright.h \ - general.h \ - hard_devices.h \ - params.h \ - plotter.h \ - st.h \ - xgout.h \ - xgraph.h \ - xtb.h - -xgraph_SOURCES = $(xgraph_c_sources) -man_MANS = xgraph.man -EXTRA_DIST = \ - $(man_MANS) \ - README.ANNOUNCE \ - README.GENERAL \ - README.HARDCOPY \ - README.INSTALL \ - README.NEWFEATURES \ - bitmaps/dot.11 \ - bitmaps/gray \ - bitmaps/mark1.11 \ - bitmaps/mark2.11 \ - bitmaps/mark3.11 \ - bitmaps/mark4.11 \ - bitmaps/mark5.11 \ - bitmaps/mark6.11 \ - bitmaps/mark7.11 \ - bitmaps/mark8.11 \ - examples/Animation.xg \ - examples/bar.xg \ - examples/surface.xg \ - examples/surface2.xg \ - examples/surface3.xg \ - examples/xgtest.xg - - -# C_WARNINGS = -Wall -C_WARNINGS = -xgraph_LDADD = $(ADDITIONAL_LIBS) $(X_LIBS) $(X_PRE_LIBS) $(X_EXTRA_LIBS) -lX11 -lm -MAINTAINERCLEANFILES = Makefile.in -all: autoconf.h - $(MAKE) $(AM_MAKEFLAGS) all-am - -.SUFFIXES: -.SUFFIXES: .c .o .obj -am--refresh: - @: -$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) - @for dep in $?; do \ - case '$(am__configure_deps)' in \ - *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ - cd $(srcdir) && $(AUTOMAKE) --foreign \ - && exit 0; \ - exit 1;; \ - esac; \ - done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ - cd $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile -.PRECIOUS: Makefile -Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - @case '$?' in \ - *config.status*) \ - echo ' $(SHELL) ./config.status'; \ - $(SHELL) ./config.status;; \ - *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ - esac; - -$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) - $(SHELL) ./config.status --recheck - -$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(srcdir) && $(AUTOCONF) -$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) - cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) - -autoconf.h: stamp-h1 - @if test ! -f $@; then \ - rm -f stamp-h1; \ - $(MAKE) stamp-h1; \ - else :; fi - -stamp-h1: $(srcdir)/autoconf.h.in $(top_builddir)/config.status - @rm -f stamp-h1 - cd $(top_builddir) && $(SHELL) ./config.status autoconf.h -$(srcdir)/autoconf.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) - cd $(top_srcdir) && $(AUTOHEADER) - rm -f stamp-h1 - touch $@ - -distclean-hdr: - -rm -f autoconf.h stamp-h1 -install-binPROGRAMS: $(bin_PROGRAMS) - @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ - if test -f $$p \ - ; then \ - f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ - $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ - else :; fi; \ - done - -uninstall-binPROGRAMS: - @$(NORMAL_UNINSTALL) - @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ - echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ - rm -f "$(DESTDIR)$(bindir)/$$f"; \ - done - -clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) -xgraph$(EXEEXT): $(xgraph_OBJECTS) $(xgraph_DEPENDENCIES) - @rm -f xgraph$(EXEEXT) - $(LINK) $(xgraph_LDFLAGS) $(xgraph_OBJECTS) $(xgraph_LDADD) $(LIBS) - -mostlyclean-compile: - -rm -f *.$(OBJEXT) - -distclean-compile: - -rm -f *.tab.c - -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/alloc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/derivative.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dialog.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/draw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hard_devices.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hpgl.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idraw.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/init.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/params.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ps.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/st.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgif.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgX.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgraph.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xtb.Po@am__quote@ - -.c.o: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c $< - -.c.obj: -@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ -@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi -@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` -uninstall-info-am: -install-manm: $(manm_MANS) $(man_MANS) - @$(NORMAL_INSTALL) - test -z "$(manmdir)" || $(mkdir_p) "$(DESTDIR)$(manmdir)" - @list='$(manm_MANS) $(dist_manm_MANS) $(nodist_manm_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.m*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ - else file=$$i; fi; \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - m*) ;; \ - *) ext='m' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(manmdir)/$$inst'"; \ - $(INSTALL_DATA) "$$file" "$(DESTDIR)$(manmdir)/$$inst"; \ - done -uninstall-manm: - @$(NORMAL_UNINSTALL) - @list='$(manm_MANS) $(dist_manm_MANS) $(nodist_manm_MANS)'; \ - l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ - for i in $$l2; do \ - case "$$i" in \ - *.m*) list="$$list $$i" ;; \ - esac; \ - done; \ - for i in $$list; do \ - ext=`echo $$i | sed -e 's/^.*\\.//'`; \ - case "$$ext" in \ - m*) ;; \ - *) ext='m' ;; \ - esac; \ - inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ - inst=`echo $$inst | sed -e 's/^.*\///'`; \ - inst=`echo $$inst | sed '$(transform)'`.$$ext; \ - echo " rm -f '$(DESTDIR)$(manmdir)/$$inst'"; \ - rm -f "$(DESTDIR)$(manmdir)/$$inst"; \ - done - -ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - mkid -fID $$unique -tags: TAGS - -TAGS: $(HEADERS) $(SOURCES) autoconf.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) autoconf.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ - test -n "$$unique" || unique=$$empty_fix; \ - $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ - $$tags $$unique; \ - fi -ctags: CTAGS -CTAGS: $(HEADERS) $(SOURCES) autoconf.h.in $(TAGS_DEPENDENCIES) \ - $(TAGS_FILES) $(LISP) - tags=; \ - here=`pwd`; \ - list='$(SOURCES) $(HEADERS) autoconf.h.in $(LISP) $(TAGS_FILES)'; \ - unique=`for i in $$list; do \ - if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ - done | \ - $(AWK) ' { files[$$0] = 1; } \ - END { for (i in files) print i; }'`; \ - test -z "$(CTAGS_ARGS)$$tags$$unique" \ - || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ - $$tags $$unique - -GTAGS: - here=`$(am__cd) $(top_builddir) && pwd` \ - && cd $(top_srcdir) \ - && gtags -i $(GTAGS_ARGS) $$here - -distclean-tags: - -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags - -distdir: $(DISTFILES) - $(am__remove_distdir) - mkdir $(distdir) - $(mkdir_p) $(distdir)/.. $(distdir)/bitmaps $(distdir)/examples - @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ - topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ - list='$(DISTFILES)'; for file in $$list; do \ - case $$file in \ - $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ - $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ - esac; \ - if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ - dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ - if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - dir="/$$dir"; \ - $(mkdir_p) "$(distdir)$$dir"; \ - else \ - dir=''; \ - fi; \ - if test -d $$d/$$file; then \ - if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ - cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ - fi; \ - cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ - else \ - test -f $(distdir)/$$file \ - || cp -p $$d/$$file $(distdir)/$$file \ - || exit 1; \ - fi; \ - done - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ - ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ - ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ - || chmod -R a+r $(distdir) -dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -dist-bzip2: distdir - tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 - $(am__remove_distdir) - -dist-tarZ: distdir - tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z - $(am__remove_distdir) - -dist-shar: distdir - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz - $(am__remove_distdir) - -dist-zip: distdir - -rm -f $(distdir).zip - zip -rq $(distdir).zip $(distdir) - $(am__remove_distdir) - -dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - $(am__remove_distdir) - -# This target untars the dist file and tries a VPATH configuration. Then -# it guarantees that the distribution is self-contained by making another -# tarfile. -distcheck: dist - case '$(DIST_ARCHIVES)' in \ - *.tar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ - *.tar.bz2*) \ - bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ - *.tar.Z*) \ - uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ - *.shar.gz*) \ - GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ - *.zip*) \ - unzip $(distdir).zip ;;\ - esac - chmod -R a-w $(distdir); chmod a+w $(distdir) - mkdir $(distdir)/_build - mkdir $(distdir)/_inst - chmod a-w $(distdir) - dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ - && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ - && cd $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ - $(DISTCHECK_CONFIGURE_FLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) \ - && $(MAKE) $(AM_MAKEFLAGS) dvi \ - && $(MAKE) $(AM_MAKEFLAGS) check \ - && $(MAKE) $(AM_MAKEFLAGS) install \ - && $(MAKE) $(AM_MAKEFLAGS) installcheck \ - && $(MAKE) $(AM_MAKEFLAGS) uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ - distuninstallcheck \ - && chmod -R a-w "$$dc_install_base" \ - && ({ \ - (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ - && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ - distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ - } || { rm -rf "$$dc_destdir"; exit 1; }) \ - && rm -rf "$$dc_destdir" \ - && $(MAKE) $(AM_MAKEFLAGS) dist \ - && rm -rf $(DIST_ARCHIVES) \ - && $(MAKE) $(AM_MAKEFLAGS) distcleancheck - $(am__remove_distdir) - @(echo "$(distdir) archives ready for distribution: "; \ - list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ - sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' -distuninstallcheck: - @cd $(distuninstallcheck_dir) \ - && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ - || { echo "ERROR: files left after uninstall:" ; \ - if test -n "$(DESTDIR)"; then \ - echo " (check DESTDIR support)"; \ - fi ; \ - $(distuninstallcheck_listfiles) ; \ - exit 1; } >&2 -distcleancheck: distclean - @if test '$(srcdir)' = . ; then \ - echo "ERROR: distcleancheck can only run from a VPATH build" ; \ - exit 1 ; \ - fi - @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ - || { echo "ERROR: files left in build directory after distclean:" ; \ - $(distcleancheck_listfiles) ; \ - exit 1; } >&2 -check-am: all-am -check: check-am -all-am: Makefile $(PROGRAMS) $(MANS) autoconf.h -installdirs: - for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(manmdir)"; do \ - test -z "$$dir" || $(mkdir_p) "$$dir"; \ - done -install: install-am -install-exec: install-exec-am -install-data: install-data-am -uninstall: uninstall-am - -install-am: all-am - @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am - -installcheck: installcheck-am -install-strip: - $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ - install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ - `test -z '$(STRIP)' || \ - echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install -mostlyclean-generic: - -clean-generic: - -distclean-generic: - -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) - -maintainer-clean-generic: - @echo "This command is intended for maintainers to use" - @echo "it deletes files that may require special tools to rebuild." - -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) -clean: clean-am - -clean-am: clean-binPROGRAMS clean-generic mostlyclean-am - -distclean: distclean-am - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf ./$(DEPDIR) - -rm -f Makefile -distclean-am: clean-am distclean-compile distclean-generic \ - distclean-hdr distclean-tags - -dvi: dvi-am - -dvi-am: - -html: html-am - -info: info-am - -info-am: - -install-data-am: install-man - -install-exec-am: install-binPROGRAMS - -install-info: install-info-am - -install-man: install-manm - -installcheck-am: - -maintainer-clean: maintainer-clean-am - -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf $(top_srcdir)/autom4te.cache - -rm -rf ./$(DEPDIR) - -rm -f Makefile -maintainer-clean-am: distclean-am maintainer-clean-generic - -mostlyclean: mostlyclean-am - -mostlyclean-am: mostlyclean-compile mostlyclean-generic - -pdf: pdf-am - -pdf-am: - -ps: ps-am - -ps-am: - -uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-man - -uninstall-man: uninstall-manm - -.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ - clean-binPROGRAMS clean-generic ctags dist dist-all dist-bzip2 \ - dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \ - distclean-compile distclean-generic distclean-hdr \ - distclean-tags distcleancheck distdir distuninstallcheck dvi \ - dvi-am html html-am info info-am install install-am \ - install-binPROGRAMS install-data install-data-am install-exec \ - install-exec-am install-info install-info-am install-man \ - install-manm install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ - ps ps-am tags uninstall uninstall-am uninstall-binPROGRAMS \ - uninstall-info-am uninstall-man uninstall-manm - - -mrproper: maintainer-clean - rm -f `find . -type f -name "*~" -print` - rm -f `find . -type f -name "*.orig" -print` - rm -f `find . -type f -name "*.rej" -print` -# Tell versions [3.59,3.63) of GNU make to not export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: diff --git a/xgraph/README b/xgraph/README deleted file mode 100644 index f6c79de88..000000000 --- a/xgraph/README +++ /dev/null @@ -1,26 +0,0 @@ - -xgraph 12.1 - - -distributed by the VINT project - - - -Welcome to the VINT release of xgraph. -Xgraph is an X-Windows application that includes: - - - interactive plotting and graphing, by David Harrison of UC Berkeley - - animation and derivatives, added by Paul Walker of NCSA - - portability and bug fixes, by the VINT project - - -See the file "INSTALL" for installation instructions. - -If you have installation problems or questions, check: - - - -BEFORE posting to the mailing list. Mailing list info can be found at -the xgraph web page. - - diff --git a/xgraph/README.ANNOUNCE b/xgraph/README.ANNOUNCE deleted file mode 100644 index 977f4013d..000000000 --- a/xgraph/README.ANNOUNCE +++ /dev/null @@ -1,84 +0,0 @@ - -A new version of xgraph is now available. Xgraph is a popular -two-dimensional plotting program that accepts data in a form similar -to the unix program graph and displays line graphs, scatter plots, or -bar charts on an X11 display. These graphs are fully annotated with a -title, axis numbering and labels, and a legend. Zooming in on regions -of a graph is supported. The program can automatically generate -hardcopy output to Postscript printers and HPGL plotters. A new -option allows xgraph output to be directly pasted into idraw for -further annotation. - -This program is NOT a widget. It is a stand-alone program written at -the Xlib level and should run on any machine with a reasonable -implementation of X11 release 3 or later. The source for the program -is available through anonymous ftp to shambhala.Berkeley.EDU -(128.32.132.54): - - % ftp shambhala.Berkeley.EDU - Name: anonymous - Password: - ftp> cd pub - ftp> binary - ftp> get xgraph-11.tar.Z - ftp> quit - % uncompress xgraph-11.tar.Z - % tar xf xgraph-11.tar - -This will create a directory called xgraph-11. In that directory -you will find a file called README.INSTALL that contains directions -for building the program. I plan to submit the sources to the -moderator of comp.sources.x after I have tested the program under X11 -release 4 (meaning a few weeks after the X Consortium releases the -distribution). - -Those who do not have ftp access can obtain the source for xgraph -using a mail archive system I have installed on dent.Berkeley.EDU -(courtesy of Brian Reid at Digital). An example is given below: - - To: ucbvax!dent!archive-server - Subject: send programs xgraph.shar.01 xgraph.shar.02 - - send programs xgraph.shar.03 xgraph.shar.04 xgraph.shar.05 - send programs xgraph.shar.06 xgraph.shar.07 xgraph.shar.08 - -The archive server will send you these files as time and load permits. -They are standard shell archives and can be unpacked by running them -through /bin/sh (in order). If you would like to know more about the -mail server, send a message with a subject of "help". I am afraid I -am no mail wizard so I cannot help you determine a path to dent. - -For those familar with xgraph, the most important changes are -summarized below: - -- A new data reader has been written that allows discontinuous data in - each data set. Also, nearly all of the display options for xgraph - can be set in the data file. The reader is also more forgiving - about blank lines and excess white space. - -- A new option has been added to the Postscript hardcopy facility to - allow xgraph output to be included in other documents using psfig. - As mentioned above, xgraph output can be imported into idraw for - further annotation if necessary. - -- I received lots of complaints about the way xgraph obtains fonts and - visuals. The new xgraph uses a much simpler scheme to obtain these - resources and has fall back code to insure it will run in almost any - situation. - -- Options handling has been cleaned up substantially. Xgraph options - can now be specified as X resources (~/.Xdefaults), in the data - file, or on the command line. - -- Drawing is somewhat faster on some servers due to a better choice of - initial defaults. - -Please send all bug reports, questions, comments or suggestions to -the electronic address below. - - David Harrison - UC Berkeley Electronics Research Lab - (davidh@ic.Berkeley.EDU, ...!ucbvax!ucbcad!davidh) - - - diff --git a/xgraph/README.GENERAL b/xgraph/README.GENERAL deleted file mode 100644 index 0296af327..000000000 --- a/xgraph/README.GENERAL +++ /dev/null @@ -1,74 +0,0 @@ - -This directory contains source for the X11 version of xgraph, a -two-dimensional data plotting program. Those familar with the X10 -version of this program will find that is completely compatible. -However, there are a few important notes and changes you should -be aware of: - -1. The program was developed and tested on X11 release 3 on a - color VAXstation GPX and on a color DECstation 3100. It should - work on most other servers without change but has not been tested - on these other configurations. If you have problems, please send - a note to: - - davidh@ic.Berkeley.EDU - or - ...!ucbvax!ucbcad!davidh - -2. This version includes an improved hardcopy facility. - An additional option, "Include in Document", has been added since - the first X11 release. A new output type, Idraw, has also been - added. See the manual page for details about the hardcopy dialog. - -3. There are several changes to the input format for xgraph. However, - the new format is compatible with the old and there should be no - problem running xgraph with old data sets. The new form allows - discontinuous data in data sets (using the "move" operator), - parameter specification using a format similar to that found in the - ~/.Xdefaults file, and comments. See the manual page for details. - -4. In some cases, xgraph uses dashed lines to distinguish different - data sets. Some servers are notoriously slow at rendering dashed - lines. Be prepared for a significantly reduced performance on - those servers. - -5. Xgraph now uses software clipping to clip data to its display - windows. This means you should be able to zoom in much farther - on large data sets than was possible under the X10 version. - -6. Xgraph used to use some rather sophisticated heuristics to handle - visuals and colormaps. Due to complaints, I have removed these - heuristics. Xgraph will display on whatever screen is specified in - the DISPLAY environment variable or on the command line. - -7. I plan to add full ICCCM support when X11 release 4 becomes - available. In the meantime, the program should work under most - window mangers (it is somewhat conformant already). - -8. As a follow-on to (7), note that the operation of the program - is heavily influenced by your choice of window managers. Focus - based window managers (like dxwm from Digital) will require you - to set focus in the text input slots of the hardcopy dialog box. - -9. Many people have sent me notes about the state of code of xgraph. - Xgraph was constructed initially as a challenge from another - programmer here at Berkeley. The first version of the program was - written in an afternoon. Since then, the program has "evolved" - quite dramatically. Since this is not my primary work, I generally - tacked on features quickly as the need became apparent. Some day, - I would truely like to rewrite it. Until then, please bear with - me. - -10. Since xgraph has become quite popular, those in positions of power - have recommended I add the standard UC Berkeley copyright notice - to this software. See copyright.h for details. - -11. Many people have sent me suggestions and comments. Some have - written new code or sent patches to fix problems. I greately - appreciate these contributions. Special thanks go to Beorn Johnson - and Alan Kramer for the idraw output code. - - David Harrison - UC Berkeley Electronics Research Lab - (davidh@ic.Berkeley.EDU, ...!ucbvax!ucbcad!davidh) - diff --git a/xgraph/README.HARDCOPY b/xgraph/README.HARDCOPY deleted file mode 100644 index d198776e7..000000000 --- a/xgraph/README.HARDCOPY +++ /dev/null @@ -1,288 +0,0 @@ -/* - * Hardcopy Interface for Xgraph - * - * Major differences from first version: - * A flags argument has been added to xg_init(). This new argument - * is used to specify a new binary option: D_DOCU. See below - * for details. - * - * Four new parameters are passed to the device initialization routine: - * title_family, title_size, axis_family, and axis_size. See the - * description of xg_init() for details. - * - * Clipping is done automatically by xgraph. The xg_clip() routine - * is obsolete. - * - * The xg_line() routine has become the xg_seg() routine. It now - * draws segments rather than a series of lines. - * - * A new field (max_segs) in the device structure now specifies - * the maximum number of segments the device can handle in a group. - */ - - -/* - * Adding an output device to xgraph - * - * Step 1 - * Write versions of the following routines for your device: - * xg_init(), xg_text(), xg_seg(), xg_dot(), and xg_end(). - * The interface and function of these routines are described - * in detail below. These routines should be named according - * to your device. For example, the initialization routine - * for the Postscript output device is psInit(). Also, name - * your source file after your device (e.g. the postscript - * routines are in the file ps.c). Instructions continue - * after the description of the interface routines. - * - * The definitions below are quoted here as a convenience. In - * your output module, you can include "xgout.h" to obtain these - * definitions. - */ - -#define D_COLOR 0x01 -#define ERRBUFSIZE 2048 - -#define D_DOCU 0x01 - -typedef struct xg_out { - int dev_flags; /* Device characteristic flags */ - int area_w, area_h; /* Width and height in pixels */ - int bdr_pad; /* Padding from border */ - int axis_pad; /* Extra space around axis labels */ - int tick_len; /* Length of a tick mark */ - int legend_pad; /* Top of legend text to legend line */ - int axis_width; /* Width of big character of axis font */ - int axis_height; /* Height of big character of axis font */ - int title_width; /* Width of big character of title font */ - int title_height; /* Height of big character of title font */ - int max_segs; /* Maximum number of segments in group */ - - void (*xg_text)(); /* Draws text at a location */ - void (*xg_seg)(); /* Draws a series of segments */ - void (*xg_dot)(); /* Draws a dot or marker at a location */ - void (*xg_end)(); /* Stops the drawing sequence */ - - char *user_state; /* User supplied state information */ -} xgOut; - - -int xg_init(strm, width, height, title_family, title_size, - axis_family, axis_size, out_info, errmsg) -FILE *strm; /* Output stream */ -int width, height; /* Size of space (microns) */ -char *title_family; /* Name of title font family */ -double title_size; /* Title font height (points) */ -char *axis_family; /* Name of axis font family */ -double axis_size; /* Axis font height (points) */ -int flags; /* Flags (see below) */ -xgOut *out_info; /* Device info (RETURN) */ -char errmsg[ERRBUFSIZE]; /* Error message area */ -/* - * This routine is called by xgraph just before drawing is to - * begin. The desired size of the plot is given by `width' - * and `height'. The parameters `title_family', `title_size', - * `axis_family', and `axis_size' specify the names of the - * title and axis fonts and their vertical sizes (in points). - * These parameters can be ignored if your device does not - * support multiple fonts. The `flags' argument specifies - * certain binary flags to the output routines. These - * flags are: - * D_DOCU: - * If this flag is set, it indicates the user has specified that - * the output will be included in some larger document. Devices - * may choose to use this information to produce output that - * can be integrated into documents with less effort. For example, - * the Postscript output routines produce bounding box information - * when this flag is set. - * The routine should fill in all of the fields of `out_info' with - * appropriate values. The values are described below: - * area_w, area_h: - * Size of the drawing space in device coordinates. - * This should take in account the requested area - * given by `width', and `height'. - * bdr_pad: - * Xgraph will leave this number of device coordinates around - * all of the outer edges of the graph. - * axis_pad: - * Additional space around axis labels (in devcoords) - * so that the labels do not appear crowded. - * legend_pad: - * Space (in devcoords) from the top of legend text to - * the representative line drawn above the legend text. - * tick_len: - * Size of a tick mark placed on axis (in devcoords) - * axis_width: - * An estimate of the width of a large character in - * the axis font (in devcoords). This can be an overestimate. An - * underestimate may produce bad results. - * axis_height: - * An estimate of the height of a large character in - * the axis labeling font (in devcoords). - * title_width, title_height: - * Same as above except for the title font. - * max_segs: - * Due to buffering constraints, some devices may not be able to - * handle massive segment lists. This parameter tells xgraph not - * to send more than `max_segs' segments in one request. - * Output to the device should be written to the stream `strm'. - * The functions are described individually below. After filling - * in the parameters and setting the function pointers, the routine - * should initialize its drawing state and store any extra needed - * information in `user_state'. This value will be passed to all - * other routines during the drawing sequence. If the device - * cannot initialize, it should return a zero status and fill - * `errmsg' with an informative error message. - */ - -/* Text justifications */ -#define T_CENTER 0 -#define T_LEFT 1 -#define T_UPPERLEFT 2 -#define T_TOP 3 -#define T_UPPERRIGHT 4 -#define T_RIGHT 5 -#define T_LOWERRIGHT 6 -#define T_BOTTOM 7 -#define T_LOWERLEFT 8 - -/* Text styles */ -#define T_AXIS 0 -#define T_TITLE 1 - -void xg_text(user_state, x, y, text, just, style) -char *user_state; /* Value set in xg_init */ -int x, y; /* Text position (pixels) */ -char *text; /* Null terminated text */ -int just; /* Justification (above) */ -int style; /* Text style (above) */ -/* - * This routine should draw text at the indicated position using - * the indicated justification and style. The justification refers - * to the location of the point in reference to the text. For example, - * if just is T_LOWERLEFT, (x,y) should be located at the lower left - * edge of the text string. - */ - -/* Line Styles */ -#define L_AXIS 0 -#define L_ZERO 1 -#define L_VAR 2 - -void xg_seg(user_state, ns, seglist, width, style, lappr, color) -char *user_state; /* Value set in xg_init */ -int ns; /* Number of segments */ -XSegment *seglist; /* X array of segments */ -int width; /* Width of lines */ -int style; /* See above */ -int lappr; /* Line appearence */ -int color; /* Line color (if any) */ -/* - * This routine draws a number of line segments at the points - * given in `seglist'. Note that contiguous segments need not share - * endpoints but often do. All segments should be `width' devcoords wide - * and drawn in style `style'. The `width' may be zero meaning that - * the line should be drawn as thin as the device allows. If `style' is - * L_VAR, the parameters `color' and `lappr' should be used to draw the - * line. Both parameters vary from 0 to 7. If the device is capable of - * color, `color' varies faster than `style'. If the device - * has no color, `style' will vary faster than `color' and - * `color' can be safely ignored. However, if the - * the device has more than 8 line appearences, the two can - * be combined to specify 64 line style variations. - * Xgraph promises not to send more than the `max_segs' in the - * xgOut structure passed back from xg_init(). - */ - -/* Marker styles */ -#define P_PIXEL 0 -#define P_DOT 1 -#define P_MARK 2 - -void xg_dot(user_state, x, y, style, type, color) -char *user_state; /* Value set in xg_init */ -int x, y; /* Location in pixel units */ -int style; /* Dot style */ -int type; /* Type of marker */ -int color; /* Marker color (if any) */ -/* - * This routine should draw a marker at location `x,y'. If the - * style is P_PIXEL, the dot should be a single pixel. If - * the style is P_DOT, the dot should be a reasonably large - * dot. If the style is P_MARK, it should be a distinguished - * mark which is specified by `type' (0-7). If the output - * device is capable of color, the marker should be drawn in - * `color' (0-7) which corresponds with the color for xg_line. - */ - -void xg_end(user_state) -char *user_state; -/* - * This routine is called after a drawing sequence is complete. - * It can be used to clean up the user state and set the device - * state appropriately. This routine is optional in the structure. - */ - -/* - * Adding an output device to xgraph - * - * Step 2 - * Edit the file hard_devices.c. Declare your initialization - * function and add your device to the list of devices, - * hard_devices[]. The structure hard_dev is described below - * and is defined in hard_devices.h: - */ - -#define MFNAME 25 - -typedef enum hard_dev_docu_defn { NONE, NO, YES } hard_dev_docu; - -typedef struct hard_dev { - char *dev_name; /* Device name */ - int (*dev_init)(); /* Initialization function */ - char *dev_spec; /* Default pipe program */ - char dev_file[MFNAME]; /* Default file name */ - char dev_printer[MFNAME]; /* Default printer name */ - double dev_max_dim; /* Default maximum dimension (cm) */ - char dev_title_font[MFNAME];/* Default name of title font */ - double dev_title_size; /* Default size of title font (pnts) */ - char dev_axis_font[MFNAME]; /* Default name of axis font */ - double dev_axis_size; /* Default size of axis font (pnts) */ - hard_dev_docu dev_docu; /* Document predicate */ -}; - -/* - * dev_spec: - * The dev_spec field should be a command that directly outputs to - * your device. The command should contain one %s directive that - * will be filled in with the name of the device from the hardcopy - * dialog. - * dev_file: - * The default file to write output to if the user selects `To File'. - * dev_printer: - * The default printer to write output to if the user selects - * `To Device'. - * dev_max_dim: - * The default maximum dimension for the device in centimeters. - * dev_title_font, dev_title_size: - * The default title font and size. Sizes are specified in - * points (1/72 inch). - * dev_axis_font, dev_axis_size: - * The default axis font and size. - * dev_docu - * Some devices may require extra preparation when including xgraph - * output in a document. This parameter indicates the default - * value of the Document predicate in the hardcopy dialog. If - * the value is NONE, the device doesn't need any special preparation - * for producing output for inclusion in documents. - */ - -/* - * Adding an output device to xgraph - * - * Step 3 - * Edit the file Makefile. Add your source file to the SRC variable - * and the corresponding object file to the OBJ variable. Finally, - * remake xgraph. Your device should now be available in the - * hardcopy dialog. - */ diff --git a/xgraph/README.INSTALL b/xgraph/README.INSTALL deleted file mode 100644 index de072ba7f..000000000 --- a/xgraph/README.INSTALL +++ /dev/null @@ -1,79 +0,0 @@ - -This file contains instructions for building the X11 version of xgraph. -When unpacked, the source is distributed in three directories: - - xgraph-11 Source for the program - xgraph-11/bitmaps Bitmaps used for cursors and markers - xgraph-11/examples Sample data for trying out the program - -First, you should examine the file hard_devices.c. This file lists -the default hardcopy parameters for each hardcopy output device. Some -of these defaults are site-specific and should be taylored to your -site. For example, at our site, the default HPGL plotter is called -"paper" and the default Postscript printer is called "lps40". You can -change these names in this file. See hard_devices.h for a description -of the initialization fields. - -If you do not like the default values for xgraph options, you can -change these by editing the default values as listed on the third page -in xgraph.c. Remember that changing these values changes the default -behaviour for everyone running the program. Personal preference -should be left for specification in the user's Xresources or Xdefaults -file. - -An Imakefile is provided for compiling the program in an X11 release 3 -source tree. If you have such a source tree, type the following in -the xgraph-11 directory: - - % make TOP= - -where is the top level directory of the X11 release -3 source tree. If you don't have an X11 source tree but you have all -of the X libraries and include files installed in "standard -locations", type the following the in the xgraph-11 directory: - - % make -f Makefile.std - -Either of these commands will produce an executable xgraph in the -xgraph-11 directory. If you are installing the program in an X11 -source tree, you can use the following to install the program and -manual page in the proper locations: - - % make TOP= install - % make TOP= install.man - -You might want to try these commands with the "-n" option once to make -sure the program and manual page are installed in the proper -directories. If they aren't, you may want to change the DESTDIR -variable and try again. If you really need to change the Makefile -options, you can generate a new Makefile from the Imakefile using -imake as provided on the X11 release tape. - -Several example data sets are provided in the xgraph-11/examples -directory. Try the following to check out xgraph: - - % xgraph examples/xgtest.xg - -This should produce a graph with a series of parabolic curves. - -Other documentation files are included. A summary of these -files is given below: - -README.ANNOUNCE Message submitted to comp.windows.x announcing - the program and how to obtain it. - -README.GENERAL Important notes about differences and quirks - of the program. - -README.HARDCOPY Documenation for writing your own hardcopy - driver library. - -README.INSTALL This file. - -xgraph.man Xgraph manual page. - - David Harrison - UC Berkeley Electronics Research Lab - (davidh@ic.Berkeley.EDU, ...!ucbvax!ucbcad!davidh) - - diff --git a/xgraph/README.NEWFEATURES b/xgraph/README.NEWFEATURES deleted file mode 100644 index 2580de307..000000000 --- a/xgraph/README.NEWFEATURES +++ /dev/null @@ -1,43 +0,0 @@ -This code is essentially XGraph release 11.4, with some modifications -which were made for use by the NCSA Relativity group. -These modifications were made by Paul Walker, and he should be -contacted at the below address if you have any problems/questions -regarding these features. - -1. Animation. XGraph will now do a *very* crude animation of - your data sets. It occasionally has problems with refreshes - and will consequently run your animation three of four times. - Consider this an undocumented feature! You can adjust the - speed of the animation with the -dl option. I find "2" works - well on a sparc displaying on MacX, "5" on a sparc on its - own display, and "10" on an SGI or RS6K on its own display. - Remeber, this animation is not being advertised as anything - other than very crude, so if you are looking for production - quality video, turn elsewhere. We find it useful as it will - quickly generate animation which shows time evolution. - -2. Differentation. You can press the "Derivative" button to - see the first and second derivatives of your data set. The - method is a standard centered difference. You cannot display - higher than second derivatives. Animation, zooming, etc... - work in each of the derivative windows. Endpoints are found - linearly interpolating inner values to ends, so pay them - little heed! - -3. New Color Map. We couldn't differentiate the colors once we - got past yellow, so we created a new color map. If you don't - like it, look in init.c for the variable "defColors" and - comment out the new one, replacing it with the commented - old one. Of course, you are free to insert your own choices - here also ... Just use standard X color names. - - -These modifications were made by Paul Walker, and distributed with the -Original author's consent. See Copyright.h for information about -distribution and ownership of these changes. Contact Paul Walker at - -Paul Walker -NCSA -605 E. Springfield Ave -Champaign IL 61820 -pwalker@ncsa.uiuc.edu diff --git a/xgraph/aclocal.m4 b/xgraph/aclocal.m4 deleted file mode 100644 index 04faae590..000000000 --- a/xgraph/aclocal.m4 +++ /dev/null @@ -1,907 +0,0 @@ -# generated automatically by aclocal 1.9.6 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005 Free Software Foundation, Inc. -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY, to the extent permitted by law; without -# even the implied warranty of MERCHANTABILITY or FITNESS FOR A -# PARTICULAR PURPOSE. - -# Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION so it can be traced. -# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], - [AM_AUTOMAKE_VERSION([1.9.6])]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 7 - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE]) -AC_SUBST([$1_FALSE]) -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 8 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH]) -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -#serial 3 - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - - -# Copyright (C) 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -AC_DEFUN([AM_WITH_DMALLOC], -[AC_MSG_CHECKING([if malloc debugging is wanted]) -AC_ARG_WITH(dmalloc, -[ --with-dmalloc use dmalloc, as in - http://www.dmalloc.com/dmalloc.tar.gz], -[if test "$withval" = yes; then - AC_MSG_RESULT(yes) - AC_DEFINE(WITH_DMALLOC,1, - [Define if using the dmalloc debugging malloc package]) - LIBS="$LIBS -ldmalloc" - LDFLAGS="$LDFLAGS -g" -else - AC_MSG_RESULT(no) -fi], [AC_MSG_RESULT(no)]) -]) - -AU_DEFUN([fp_WITH_DMALLOC], [AM_WITH_DMALLOC]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 12 - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.58])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) -AM_PROG_INSTALL_SH -AM_PROG_INSTALL_STRIP -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -]) -]) - - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $1 | $1:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -install_sh=${install_sh-"$am_aux_dir/install-sh"} -AC_SUBST(install_sh)]) - -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -AC_DEFUN([AM_MAINTAINER_MODE], -[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode is disabled by default - AC_ARG_ENABLE(maintainer-mode, -[ --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - USE_MAINTAINER_MODE=$enableval, - USE_MAINTAINER_MODE=no) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST(MAINT)dnl -] -) - -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - -# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_MKDIR_P -# --------------- -# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. -# -# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories -# created by `make install' are always world readable, even if the -# installer happens to have an overly restrictive umask (e.g. 077). -# This was a mistake. There are at least two reasons why we must not -# use `-m 0755': -# - it causes special bits like SGID to be ignored, -# - it may be too restrictive (some setups expect 775 directories). -# -# Do not use -m 0755 and let people choose whatever they expect by -# setting umask. -# -# We cannot accept any implementation of `mkdir' that recognizes `-p'. -# Some implementations (such as Solaris 8's) are not thread-safe: if a -# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' -# concurrently, both version can detect that a/ is missing, but only -# one can create it and the other will error out. Consequently we -# restrict ourselves to GNU make (using the --version option ensures -# this.) -AC_DEFUN([AM_PROG_MKDIR_P], -[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -fi -AC_SUBST([mkdir_p])]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 3 - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# ------------------------------ -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) - -# _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 -# Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 4 - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT(yes)]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor `install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -# -# This file is free software; the Free Software Foundation -# gives unlimited permission to copy and/or distribute it, -# with or without modifications, as long as this notice is preserved. - -# serial 2 - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) -m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar /dev/null 2>&1 && break - fi -done -rm -rf conftest.dir - -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - diff --git a/xgraph/alloc.c b/xgraph/alloc.c deleted file mode 100644 index fd3a606b6..000000000 --- a/xgraph/alloc.c +++ /dev/null @@ -1,290 +0,0 @@ -/* $Header$ */ -/* - * - * alloc.c : Memory checked Malloc. This malloc keeps track of memory usage. - * - * Routines: - * char * Malloc(); - * char * Calloc(); - * char * Realloc(); - * void Free(); - * unsigned MemStat(); - * unsigned MemPtr(); - * void MemChain(); - * - * $Log$ - * Revision 1.3 2011-05-08 08:54:21 rlar - * rename macros public and private --> PUBLIC and PRIVATE - * - * Revision 1.2 2011/04/27 18:30:17 rlar - * code cleanup - * - * Revision 1.1 2004/01/25 09:00:49 pnenzi - * - * Added xgraph plotting program. - * - * Revision 1.1.1.1 1999/12/03 23:15:53 heideman - * xgraph-12.0 - * - * Revision 1.10 1991/02/01 08:12:55 christos - * Overhaul... Simplified and added calloc. - * - * Revision 1.9 1990/10/02 18:11:24 christos - * Another Realloc() bug! - * - * Revision 1.8 90/10/02 17:32:45 christos - * Fixed Realloc() bug. - * - * Revision 1.7 90/08/24 02:28:15 christos - * Changed bigstruct_t to align_t - * for lint. - * - * Revision 1.6 90/07/15 17:31:33 christos - * Fixed MemPtr Bug - * - * Revision 1.5 90/07/11 16:19:31 christos - * Added Realloc() - * - * Revision 1.4 90/03/21 12:58:44 christos - * Fixed void buggy computations. - * - * Revision 1.3 90/02/26 02:15:11 christos - * ANSI conformance. - * - * Revision 1.2 89/08/29 14:08:25 christos - * Fixed. - * - * Revision 1.1 89/03/27 14:23:40 christos - * Initial revision - * - */ -#ifndef lint -static char rcsid[] = "$Id$"; - -#endif /* lint */ -#include -#ifdef __STDC__ -#include -#include -#else -extern char *malloc(); -extern char *calloc(); -extern char *realloc(); -extern void free(); -extern void abort(); -extern char *memset(); - -#endif - -#ifndef NIL -#define NIL(a) ((a *) 0) -#endif /* NIL */ - -#ifndef MIN -#define MIN(a, b) ((a) > (b) ? (b) : (a)) -#endif /* MIN */ - -#ifndef MAX -#define MAX(a, b) ((a) < (b) ? (b) : (a)) -#endif /* MAX */ - -#ifndef PRIVATE -#define PRIVATE static -#endif - -#ifndef PUBLIC -#define PUBLIC -#endif - - -#define SIG_GOOD 0x01020304 -#define SIG_FREE 0x04030201 -#define OVERHEAD (sizeof(long) + sizeof(unsigned)) - -PRIVATE unsigned memused = 0; -PRIVATE unsigned memalloc = 0; - -#ifdef __STDC__ -typedef void *Ptr; - -#else -typedef char *Ptr; - -#endif - -/* _chaina(): - * Check things for validity and allocate space - */ -PRIVATE Ptr -_chaina(n, routine, action, tptr) -unsigned n; - -Ptr(*routine) (); -char *action; -Ptr tptr; -{ - char *ptr; - - if (n == 0) { - (void) fprintf(stderr, "*** %s zero length block.\n", - action); - if (tptr != (Ptr) 0) { - ptr = tptr; - *((long *) ptr) = SIG_GOOD; - memused += *((unsigned *) &ptr[sizeof(long)]); - memalloc++; - } - abort(); - } - - ptr = (tptr == (Ptr) 0) ? (char *) routine (n + OVERHEAD) : - (char *) routine (tptr, n + OVERHEAD); - - if (ptr == NIL(char)) { - if (tptr != (Ptr) 0) - *((long *) tptr) = SIG_GOOD; - (void) fprintf(stderr, - "*** Out of memory in %s (current allocation %d).\n", - action, memused, n); - - abort(); - } - *((long *) ptr) = SIG_GOOD; - memused += (*((unsigned *) &ptr[sizeof(long)]) = n); - memalloc++; - ptr += OVERHEAD; - return ((Ptr) ptr); -} /* end _chaina */ - - -/* _chainc(): - * Check the pointer given - */ -PRIVATE unsigned -_chainc(ptr, action) -char **ptr; -char *action; -{ - static char *msg = "*** %s %s pointer.\n"; - - if (*ptr == NIL(char)) { - (void) fprintf(stderr, msg, action, "nil"); - abort(); - } - *ptr -= OVERHEAD; - switch (*((long *) *ptr)) { - case SIG_GOOD: - return (*((unsigned *) &((*ptr)[sizeof(long)]))); - case SIG_FREE: - (void) fprintf(stderr, msg, action, "free"); - abort(); - default: - (void) fprintf(stderr, msg, action, "invalid"); - abort(); - } - return (0); -} /* end _chainc */ - - -/* Malloc(): - * real alloc - */ -PUBLIC Ptr -Malloc(n) -unsigned n; -{ - static char *routine = "malloc"; - - return (_chaina(n, malloc, routine, (Ptr) 0)); -} /* end Malloc */ - - -/* Calloc(): - * real alloc - */ -PUBLIC Ptr -Calloc(n, sz) -unsigned n, - sz; -{ - Ptr ptr; - static char *routine = "calloc"; - - n *= sz; - ptr = _chaina(n, malloc, routine, (Ptr) 0); - memset((char *) ptr, 0, n); - return (ptr); -} /* end Calloc */ - - -/* Realloc(): - * real alloc - */ -PUBLIC Ptr -Realloc(ptr, n) -Ptr ptr; -unsigned n; -{ - static char *routine = "realloc"; - - memused -= _chainc((char **) &ptr, routine); - memalloc--; - *((long *) ptr) = SIG_FREE; - return (_chaina(n, realloc, routine, ptr)); -} /* end Realloc */ - - -/* Free(): - * free memory counting the number of bytes freed - */ -PUBLIC void -Free(ptr) -Ptr ptr; -{ - static char *routine = "free"; - - memused -= _chainc((char **) &ptr, routine); - memalloc--; - *((long *) ptr) = SIG_FREE; - free(ptr); -} /* end Free */ - - -/* MemChain(): - * Dump the chain - */ -PUBLIC void -MemChain() -{ - if (memused == 0 && memalloc == 0) - (void) fprintf(stdout, "\tNo memory allocated.\n"); - else { - (void) fprintf(stdout, "\t%u Bytes allocated in %u chunks.\n", memused, - memalloc); - (void) fprintf(stdout, "\tAverage chunk length %u bytes.\n", - memused / memalloc); - } -} /* end MemChain */ - - -/* MemStat(): - * return the amount of memory in use - */ -PUBLIC unsigned -MemStat() -{ - return (memused); -} /* end MemStat */ - - -/* MemPtr(): - * return the amount of memory used by the pointer - */ -PUBLIC unsigned -MemPtr(ptr) -Ptr ptr; -{ - static char *routine = "get size"; - - return (_chainc((char **) &ptr, routine)); -} /* end MemPtr */ diff --git a/xgraph/autoconf.h.in b/xgraph/autoconf.h.in deleted file mode 100644 index c4ce87952..000000000 --- a/xgraph/autoconf.h.in +++ /dev/null @@ -1,67 +0,0 @@ -/* autoconf.h.in. Generated from configure.in by autoheader. */ - -/* Define to 1 if you have the header file. */ -#undef HAVE_FLOAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_LIMITS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the `strcasecmp' function. */ -#undef HAVE_STRCASECMP - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION - -/* Define if using the dmalloc debugging malloc package */ -#undef WITH_DMALLOC - -/* Define to 1 if the X Window System is missing or not being used. */ -#undef X_DISPLAY_MISSING diff --git a/xgraph/bitmaps/dot.11 b/xgraph/bitmaps/dot.11 deleted file mode 100644 index 29fa09d71..000000000 --- a/xgraph/bitmaps/dot.11 +++ /dev/null @@ -1,4 +0,0 @@ -#define dot_width 8 -#define dot_height 8 -static char dot_bits[] = { - 0x00, 0x3c, 0x7e, 0x7e, 0x7e, 0x7e, 0x3c, 0x00}; diff --git a/xgraph/bitmaps/gray b/xgraph/bitmaps/gray deleted file mode 100644 index 12ff0b981..000000000 --- a/xgraph/bitmaps/gray +++ /dev/null @@ -1,6 +0,0 @@ -#define gray_width 16 -#define gray_height 16 -static char gray_bits[] = { - 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, - 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa, - 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x55, 0xaa, 0xaa}; diff --git a/xgraph/bitmaps/mark1.11 b/xgraph/bitmaps/mark1.11 deleted file mode 100644 index c049d44d7..000000000 --- a/xgraph/bitmaps/mark1.11 +++ /dev/null @@ -1,6 +0,0 @@ -#define mark1_width 8 -#define mark1_height 8 -#define mark1_x_hot 3 -#define mark1_y_hot 3 -static char mark1_bits[] = { - 0x00, 0x00, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00}; diff --git a/xgraph/bitmaps/mark2.11 b/xgraph/bitmaps/mark2.11 deleted file mode 100644 index 25137a453..000000000 --- a/xgraph/bitmaps/mark2.11 +++ /dev/null @@ -1,6 +0,0 @@ -#define mark2_width 8 -#define mark2_height 8 -#define mark2_x_hot 3 -#define mark2_y_hot 3 -static char mark2_bits[] = { - 0x00, 0x3e, 0x22, 0x22, 0x22, 0x3e, 0x00, 0x00}; diff --git a/xgraph/bitmaps/mark3.11 b/xgraph/bitmaps/mark3.11 deleted file mode 100644 index d1d92737d..000000000 --- a/xgraph/bitmaps/mark3.11 +++ /dev/null @@ -1,6 +0,0 @@ -#define mark3_width 8 -#define mark3_height 8 -#define mark3_x_hot 3 -#define mark3_y_hot 3 -static char mark3_bits[] = { - 0x00, 0x1c, 0x36, 0x22, 0x36, 0x1c, 0x00, 0x00}; diff --git a/xgraph/bitmaps/mark4.11 b/xgraph/bitmaps/mark4.11 deleted file mode 100644 index 213693674..000000000 --- a/xgraph/bitmaps/mark4.11 +++ /dev/null @@ -1,6 +0,0 @@ -#define mark4_width 8 -#define mark4_height 8 -#define mark4_x_hot 3 -#define mark4_y_hot 3 -static char mark4_bits[] = { - 0x00, 0x22, 0x14, 0x08, 0x14, 0x22, 0x00, 0x00}; diff --git a/xgraph/bitmaps/mark5.11 b/xgraph/bitmaps/mark5.11 deleted file mode 100644 index 1200f0794..000000000 --- a/xgraph/bitmaps/mark5.11 +++ /dev/null @@ -1,6 +0,0 @@ -#define mark5_width 8 -#define mark5_height 8 -#define mark5_x_hot 3 -#define mark5_y_hot 3 -static char mark5_bits[] = { - 0x00, 0x08, 0x14, 0x22, 0x14, 0x08, 0x00, 0x00}; diff --git a/xgraph/bitmaps/mark6.11 b/xgraph/bitmaps/mark6.11 deleted file mode 100644 index 41393ea1a..000000000 --- a/xgraph/bitmaps/mark6.11 +++ /dev/null @@ -1,6 +0,0 @@ -#define mark6_width 8 -#define mark6_height 8 -#define mark6_x_hot 3 -#define mark6_y_hot 3 -static char mark6_bits[] = { - 0x00, 0x1c, 0x14, 0x1c, 0x14, 0x1c, 0x00, 0x00}; diff --git a/xgraph/bitmaps/mark7.11 b/xgraph/bitmaps/mark7.11 deleted file mode 100644 index 846782480..000000000 --- a/xgraph/bitmaps/mark7.11 +++ /dev/null @@ -1,6 +0,0 @@ -#define mark7_width 8 -#define mark7_height 8 -#define mark7_x_hot 3 -#define mark7_y_hot 3 -static char mark7_bits[] = { - 0x00, 0x1c, 0x2a, 0x36, 0x2a, 0x1c, 0x00, 0x00}; diff --git a/xgraph/bitmaps/mark8.11 b/xgraph/bitmaps/mark8.11 deleted file mode 100644 index c1b98f911..000000000 --- a/xgraph/bitmaps/mark8.11 +++ /dev/null @@ -1,6 +0,0 @@ -#define mark8_width 8 -#define mark8_height 8 -#define mark8_x_hot 3 -#define mark8_y_hot 3 -static char mark8_bits[] = { - 0x00, 0x3e, 0x1c, 0x08, 0x1c, 0x3e, 0x00, 0x00}; diff --git a/xgraph/configure b/xgraph/configure deleted file mode 100755 index 92d4ef2dc..000000000 --- a/xgraph/configure +++ /dev/null @@ -1,6465 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59. -# -# Copyright (C) 2003 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_config_libobj_dir=. -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="xgraph.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_SYS_STAT_H -# include -#endif -#if STDC_HEADERS -# include -# include -#else -# if HAVE_STDLIB_H -# include -# endif -#endif -#if HAVE_STRING_H -# if !STDC_HEADERS && HAVE_MEMORY_H -# include -# endif -# include -#endif -#if HAVE_STRINGS_H -# include -#endif -#if HAVE_INTTYPES_H -# include -#else -# if HAVE_STDINT_H -# include -# endif -#endif -#if HAVE_UNISTD_H -# include -#endif" - -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS EGREP ADDITIONAL_INCLUDES ADDITIONAL_LIBS LIBOBJS LTLIBOBJS' -ac_subst_files='' - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -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' - -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 - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # 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_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$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 ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) 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 | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$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 | -n) - 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_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - 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 "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -# 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_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - 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 "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || - { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 - { (exit 1); exit 1; }; } -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_CC_set=${CC+set} -ac_env_CC_value=$CC -ac_cv_env_CC_set=${CC+set} -ac_cv_env_CC_value=$CC -ac_env_CFLAGS_set=${CFLAGS+set} -ac_env_CFLAGS_value=$CFLAGS -ac_cv_env_CFLAGS_set=${CFLAGS+set} -ac_cv_env_CFLAGS_value=$CFLAGS -ac_env_LDFLAGS_set=${LDFLAGS+set} -ac_env_LDFLAGS_value=$LDFLAGS -ac_cv_env_LDFLAGS_set=${LDFLAGS+set} -ac_cv_env_LDFLAGS_value=$LDFLAGS -ac_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_env_CPPFLAGS_value=$CPPFLAGS -ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} -ac_cv_env_CPPFLAGS_value=$CPPFLAGS -ac_env_CPP_set=${CPP+set} -ac_env_CPP_value=$CPP -ac_cv_env_CPP_set=${CPP+set} -ac_cv_env_CPP_value=$CPP - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # 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 <<_ACEOF -\`configure' configures this package to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -_ACEOF - - cat <<_ACEOF -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_ACEOF - - cat <<\_ACEOF - -Program names: - --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 - -X features: - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR -_ACEOF -fi - -if test -n "$ac_init_help"; then - - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-dmalloc use dmalloc, as in - http://www.dmalloc.com/dmalloc.tar.gz - --with-x use the X Window System ---with-additional-includes=path ---with-additional-libs=path - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - CPP C preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_srcdir/configure.gnu; then - echo - $SHELL $ac_srcdir/configure.gnu --help=recursive - elif test -f $ac_srcdir/configure; then - echo - $SHELL $ac_srcdir/configure --help=recursive - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd "$ac_popdir" - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF - -Copyright (C) 2003 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by $as_me, which was -generated by GNU Autoconf 2.59. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_sep= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - # Get rid of the leading space. - ac_sep=" " - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------- ## -## Output files. ## -## ------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=$`echo $ac_var` - echo "$ac_var='"'"'$ac_val'"'"'" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - sed "/^$/d" confdefs.h | sort - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# 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 - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# 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 "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - - - - - - - - - - - - -am__api_version="1.9" -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 - elif test -f $ac_dir/shtool; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 -# Just in case -sleep 1 -echo timestamp > conftest.file -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -test "$program_prefix" != NONE && - program_transform_name="s,^,$program_prefix,;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$,$program_suffix,;$program_transform_name" -# Double any \ or $. echo might interpret backslashes. -# By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm conftest.sed - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then - # We used to keeping the `.' as first argument, in order to - # allow $(mkdir_p) to be used without argument. As in - # $(mkdir_p) $(somedir) - # where $(somedir) is conditionally defined. However this is wrong - # for two reasons: - # 1. if the package is installed by a user who cannot write `.' - # make install will fail, - # 2. the above comment should most certainly read - # $(mkdir_p) $(DESTDIR)$(somedir) - # so it does not work when $(somedir) is undefined and - # $(DESTDIR) is not. - # To support the latter case, we have to write - # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), - # so the `.' trick is pointless. - mkdir_p='mkdir -p --' -else - # On NextStep and OpenStep, the `mkdir' command does not - # recognize any option. It will interpret all options as - # directories to create, and then abort because `.' already - # exists. - for d in ./-p ./--version; - do - test -d $d && rmdir $d - done - # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. - if test -f "$ac_aux_dir/mkinstalldirs"; then - mkdir_p='$(mkinstalldirs)' - else - mkdir_p='$(install_sh) -d' - fi -fi - -for ac_prog in gawk mawk 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 "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AWK="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - echo "$as_me:$LINENO: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$AWK" && break -done - -echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\_ACEOF -all: - @echo 'ac_maketemp="$(MAKE)"' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 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 conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -# test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && - test -f $srcdir/config.status; then - { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE=xgraph - VERSION=12.1 - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -install_sh=${install_sh-"$am_aux_dir/install-sh"} - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - echo "$as_me:$LINENO: result: $STRIP" >&5 -echo "${ECHO_T}$STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_STRIP="strip" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -echo "${ECHO_T}$ac_ct_STRIP" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - STRIP=$ac_ct_STRIP -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - - - - ac_config_headers="$ac_config_headers autoconf.h" - - -echo "$as_me:$LINENO: checking if malloc debugging is wanted" >&5 -echo $ECHO_N "checking if malloc debugging is wanted... $ECHO_C" >&6 - -# Check whether --with-dmalloc or --without-dmalloc was given. -if test "${with_dmalloc+set}" = set; then - withval="$with_dmalloc" - if test "$withval" = yes; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -cat >>confdefs.h <<\_ACEOF -#define WITH_DMALLOC 1 -_ACEOF - - LIBS="$LIBS -ldmalloc" - LDFLAGS="$LDFLAGS -g" -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi; - - -echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 -echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 - # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then - enableval="$enable_maintainer_mode" - USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi; - echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 -echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 - - -if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="gcc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -else - CC="$ac_cv_prog_CC" -fi - -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 "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -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 $# != 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 - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:$LINENO: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl -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 "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_CC="$ac_prog" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - - -test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:$LINENO:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Find the output, starting from the most likely. This scheme is -# not robust to junk in `.', hence go to wildcards (a.*) only as a last -# resort. - -# Be careful to initialize this variable, since it used to be cached. -# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. -ac_cv_exeext= -# b.out is created by i960 compilers. -for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) - ;; - conftest.$ac_ext ) - # This is the source file. - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - # FIXME: I believe we export ac_cv_exeext for Libtool, - # but it would be cool to find out if it's true. Does anybody - # maintain Libtool? --akim. - export ac_cv_exeext - break;; - * ) - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_file" >&5 -echo "${ECHO_T}$ac_file" >&6 - -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:$LINENO: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:$LINENO: checking for suffix of executables" >&5 -echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -echo "${ECHO_T}$ac_cv_exeext" >&6 - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -echo "$as_me:$LINENO: checking for suffix of object files" >&5 -echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 -if test "${ac_cv_c_compiler_gnu+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_compiler_gnu=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 -GCC=`test $ac_compiler_gnu = yes && echo yes` -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -CFLAGS="-g" -echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_g+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_prog_cc_g=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_g" >&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 "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 -echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 -if test "${ac_cv_prog_cc_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_prog_cc_stdc=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std1 is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std1. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -# 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 10.20 and later -Ae -# HP-UX older versions -Aa -D_HPUX_SOURCE -# SVR4 -Xc -D__EXTENSIONS__ -for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext -done -rm -f conftest.$ac_ext conftest.$ac_objext -CC=$ac_save_CC - -fi - -case "x$ac_cv_prog_cc_stdc" in - x|xno) - echo "$as_me:$LINENO: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -# Some people use a C++ compiler to compile C. Since we use `exit', -# in C++ we need to declare it. In case someone uses the same compiler -# for both compiling C and C++ we need to have the C++ compiler decide -# the declaration of exit, since it's the most demanding environment. -cat >conftest.$ac_ext <<_ACEOF -#ifndef __cplusplus - choke me -#endif -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - '' \ - 'extern "C" void std::exit (int) throw (); using std::exit;' \ - 'extern "C" void std::exit (int); using std::exit;' \ - 'extern "C" void exit (int) throw ();' \ - 'extern "C" void exit (int);' \ - 'void exit (int);' -do - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -#include -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -continue -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -done -rm -f conftest* -if test -n "$ac_declaration"; then - echo '#ifdef __cplusplus' >>confdefs.h - echo $ac_declaration >>confdefs.h - echo '#endif' >>confdefs.h -fi - -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -DEPDIR="${am__leading_dot}deps" - - ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo done -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# We grep out `Entering directory' and `Leaving directory' -# messages which can occur if `w' ends up in MAKEFLAGS. -# In particular we don't look at `^make:' because GNU make might -# be invoked under some other name (usually "gmake"), in which -# case it prints its new name instead of `make'. -if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then - am__include=include - am__quote= - _am_result=GNU -fi -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then - am__include=.include - am__quote="\"" - _am_result=BSD - fi -fi - - -echo "$as_me:$LINENO: result: $_am_result" >&5 -echo "${ECHO_T}$_am_result" >&6 -rm -f confinc confmf - -# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then - enableval="$enable_dependency_tracking" - -fi; -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi - - -if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - - - -depcc="$CC" am_compiler_list= - -echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - case $depmode in - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - none) break ;; - esac - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. - if depmode=$depmode \ - source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - - -if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -echo "$as_me:$LINENO: result: $CPP" >&5 -echo "${ECHO_T}$CPP" >&6 -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether non-existent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # Broken: success on invalid input. -continue -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - -if test "x$ac_path_x_has_been_run" != xyes; then - echo "$as_me:$LINENO: checking for X" >&5 -echo $ECHO_N "checking for X... $ECHO_C" >&6 - -ac_path_x_has_been_run=yes - -# 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 test "${ac_cv_have_x+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&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 conftest.dir -if mkdir conftest.dir; then - cd conftest.dir - # Make sure to not put "make" in the Imakefile rules, since we grep it out. - cat >Imakefile <<'_ACEOF' -acfindx: - @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' -_ACEOF - 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 conftest.dir -fi - -# Standard set of common directories for X headers. -# Check X11 before X11Rn because it is often a symlink to the current release. -ac_x_header_dirs=' -/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' - -if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for a specified header file. - # First, try using that file with no special directory specified. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - # We can compile using X headers with no special include directory. -ac_x_includes= -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Intrinsic.h"; then - ac_x_includes=$ac_dir - break - fi -done -fi -rm -f conftest.err conftest.$ac_ext -fi # $ac_x_includes = no - -if test "$ac_x_libraries" = no; then - # Check for the libraries. - # See if we find them without any special options. - # Don't add to $LIBS permanently. - ac_save_LIBS=$LIBS - LIBS="-lXt $LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -XtMalloc (0) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - LIBS=$ac_save_LIBS -# We can link X programs with no special library path. -ac_x_libraries= -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -LIBS=$ac_save_LIBS -for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` -do - # Don't even attempt the hair of trying to link an X program! - for ac_extension in a so sl; do - if test -r $ac_dir/libXt.$ac_extension; then - ac_x_libraries=$ac_dir - break 2 - fi - done -done -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -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 "$as_me:$LINENO: result: $have_x" >&5 -echo "${ECHO_T}$have_x" >&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" - # It might be that x_includes is empty (headers are found in the - # standard search path. Then output the corresponding message - ac_out_x_includes=$x_includes - test "x$x_includes" = x && ac_out_x_includes="in standard search path" - echo "$as_me:$LINENO: result: libraries $x_libraries, headers $ac_out_x_includes" >&5 -echo "${ECHO_T}libraries $x_libraries, headers $ac_out_x_includes" >&6 -fi - -fi -if test "$no_x" = yes; then - # Not all programs may use this symbol, but it does not hurt to define it. - -cat >>confdefs.h <<\_ACEOF -#define X_DISPLAY_MISSING 1 -_ACEOF - - 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 "$as_me:$LINENO: checking whether -R must be followed by a space" >&5 -echo $ECHO_N "checking whether -R must be followed by a space... $ECHO_C" >&6 - ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_R_nospace=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_R_nospace=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test $ac_R_nospace = yes; then - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 - X_LIBS="$X_LIBS -R$x_libraries" - else - LIBS="$ac_xsave_LIBS -R $x_libraries" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_R_space=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_R_space=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test $ac_R_space = yes; then - echo "$as_me:$LINENO: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - X_LIBS="$X_LIBS -R $x_libraries" - else - echo "$as_me:$LINENO: result: neither works" >&5 -echo "${ECHO_T}neither works" >&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 says this is needed for Ultrix, if the X - # libraries were built with DECnet support. And Karl Berry says - # the Alpha needs dnet_stub (dnet does not exist). - ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* 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; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5 -echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6 -if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* 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; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dnet_dnet_ntoa=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dnet_dnet_ntoa=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 -echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6 -if test $ac_cv_lib_dnet_dnet_ntoa = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" -fi - - if test $ac_cv_lib_dnet_dnet_ntoa = no; then - echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5 -echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6 -if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet_stub $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* 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; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dnet_stub_dnet_ntoa=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_dnet_stub_dnet_ntoa=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 -echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6 -if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" -fi - - fi -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$ac_xsave_LIBS" - - # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, - # to get the SysV transport functions. - # Chad R. Larson 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 T.E. Dickey. - # The functions gethostbyname, getservbyname, and inet_addr are - # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. - echo "$as_me:$LINENO: checking for gethostbyname" >&5 -echo $ECHO_N "checking for gethostbyname... $ECHO_C" >&6 -if test "${ac_cv_func_gethostbyname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define gethostbyname to an innocuous variant, in case declares gethostbyname. - For example, HP-UX 11i declares gettimeofday. */ -#define gethostbyname innocuous_gethostbyname - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char gethostbyname (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef gethostbyname - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char gethostbyname (); -/* 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 -char (*f) () = gethostbyname; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != gethostbyname; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_gethostbyname=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_gethostbyname=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 -echo "${ECHO_T}$ac_cv_func_gethostbyname" >&6 - - if test $ac_cv_func_gethostbyname = no; then - echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 -echo $ECHO_N "checking for gethostbyname in -lnsl... $ECHO_C" >&6 -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* 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; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_nsl_gethostbyname=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_nsl_gethostbyname=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 -echo "${ECHO_T}$ac_cv_lib_nsl_gethostbyname" >&6 -if test $ac_cv_lib_nsl_gethostbyname = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" -fi - - if test $ac_cv_lib_nsl_gethostbyname = no; then - echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5 -echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6 -if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbsd $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* 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; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_bsd_gethostbyname=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_bsd_gethostbyname=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 -echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6 -if test $ac_cv_lib_bsd_gethostbyname = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" -fi - - 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 Leinen: it contains gethostby* - # variants that don't use the name server (or something). -lsocket - # must be given before -lnsl if both are needed. We assume that - # if connect needs -lnsl, so does gethostbyname. - echo "$as_me:$LINENO: checking for connect" >&5 -echo $ECHO_N "checking for connect... $ECHO_C" >&6 -if test "${ac_cv_func_connect+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define connect to an innocuous variant, in case declares connect. - For example, HP-UX 11i declares gettimeofday. */ -#define connect innocuous_connect - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char connect (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef connect - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char connect (); -/* 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 -char (*f) () = connect; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != connect; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_connect=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_connect=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 -echo "${ECHO_T}$ac_cv_func_connect" >&6 - - if test $ac_cv_func_connect = no; then - echo "$as_me:$LINENO: checking for connect in -lsocket" >&5 -echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6 -if test "${ac_cv_lib_socket_connect+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $X_EXTRA_LIBS $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* 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; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_socket_connect=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_socket_connect=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 -echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6 -if test $ac_cv_lib_socket_connect = yes; then - X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" -fi - - fi - - # Guillermo Gomez says -lposix is necessary on A/UX. - echo "$as_me:$LINENO: checking for remove" >&5 -echo $ECHO_N "checking for remove... $ECHO_C" >&6 -if test "${ac_cv_func_remove+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define remove to an innocuous variant, in case declares remove. - For example, HP-UX 11i declares gettimeofday. */ -#define remove innocuous_remove - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char remove (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef remove - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char remove (); -/* 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 -char (*f) () = remove; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != remove; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_remove=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_remove=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5 -echo "${ECHO_T}$ac_cv_func_remove" >&6 - - if test $ac_cv_func_remove = no; then - echo "$as_me:$LINENO: checking for remove in -lposix" >&5 -echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6 -if test "${ac_cv_lib_posix_remove+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lposix $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* 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; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_posix_remove=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_posix_remove=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 -echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6 -if test $ac_cv_lib_posix_remove = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" -fi - - fi - - # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. - echo "$as_me:$LINENO: checking for shmat" >&5 -echo $ECHO_N "checking for shmat... $ECHO_C" >&6 -if test "${ac_cv_func_shmat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define shmat to an innocuous variant, in case declares shmat. - For example, HP-UX 11i declares gettimeofday. */ -#define shmat innocuous_shmat - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shmat (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shmat - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -char shmat (); -/* 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 -char (*f) () = shmat; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != shmat; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_shmat=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_func_shmat=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5 -echo "${ECHO_T}$ac_cv_func_shmat" >&6 - - if test $ac_cv_func_shmat = no; then - echo "$as_me:$LINENO: checking for shmat in -lipc" >&5 -echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6 -if test "${ac_cv_lib_ipc_shmat+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lipc $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* 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; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_ipc_shmat=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_ipc_shmat=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 -echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6 -if test $ac_cv_lib_ipc_shmat = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" -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. - # John Interrante, Karl Berry - echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5 -echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6 -if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lICE $X_EXTRA_LIBS $LIBS" -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -#endif -/* 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; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_ICE_IceConnectionNumber=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_lib_ICE_IceConnectionNumber=no -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 -echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6 -if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then - X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" -fi - - LDFLAGS=$ac_save_LDFLAGS - -fi - - -echo "$as_me:$LINENO: checking for egrep" >&5 -echo $ECHO_N "checking for egrep... $ECHO_C" >&6 -if test "${ac_cv_prog_egrep+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if echo a | (grep -E '(a|b)') >/dev/null 2>&1 - then ac_cv_prog_egrep='grep -E' - else ac_cv_prog_egrep='egrep' - fi -fi -echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 -echo "${ECHO_T}$ac_cv_prog_egrep" >&6 - EGREP=$ac_cv_prog_egrep - - -echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 -if test "${ac_cv_header_stdc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_cv_header_stdc=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - 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 <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - 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 <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#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); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -echo "${ECHO_T}$ac_cv_header_stdc" >&6 -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - - - - - -for ac_header in float.h limits.h stdlib.h string.h strings.h unistd.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 -else - # Is the header compilable? -echo "$as_me:$LINENO: checking $ac_header usability" >&5 -echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_header_compiler=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -ac_header_compiler=no -fi -rm -f conftest.err conftest.$ac_objext conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -echo "${ECHO_T}$ac_header_compiler" >&6 - -# Is the header present? -echo "$as_me:$LINENO: checking $ac_header presence" >&5 -echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - ac_cpp_err=$ac_cpp_err$ac_c_werror_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_header_preproc=yes -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_preproc=no -fi -rm -f conftest.err conftest.$ac_ext -echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -echo "${ECHO_T}$ac_header_preproc" >&6 - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - ( - cat <<\_ASBOX -## ------------------------------------------ ## -## Report this to the AC_PACKAGE_NAME lists. ## -## ------------------------------------------ ## -_ASBOX - ) | - sed "s/^/$as_me: WARNING: /" >&2 - ;; -esac -echo "$as_me:$LINENO: checking for $ac_header" >&5 -echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 -if eval "test \"\${$as_ac_Header+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 - -fi -if test `eval echo '${'$as_ac_Header'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - -for ac_func in strcasecmp -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:$LINENO: checking for $ac_func" >&5 -echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 -if eval "test \"\${$as_ac_var+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -/* Define $ac_func to an innocuous variant, in case declares $ac_func. - For example, HP-UX 11i declares gettimeofday. */ -#define $ac_func innocuous_$ac_func - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any gcc2 internal prototype to avoid an error. */ -#ifdef __cplusplus -extern "C" -{ -#endif -/* 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 (); -/* 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 -char (*f) () = $ac_func; -#endif -#ifdef __cplusplus -} -#endif - -int -main () -{ -return f != $ac_func; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -eval "$as_ac_var=no" -fi -rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 -echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 -if test `eval echo '${'$as_ac_var'}'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - -# Check whether --with-additional-includes or --without-additional-includes was given. -if test "${with_additional_includes+set}" = set; then - withval="$with_additional_includes" - ADDITIONAL_INCLUDES=$withval -else - ADDITIONAL_INCLUDES="" -fi; - -# Check whether --with-additional-libs or --without-additional-libs was given. -if test "${with_additional_libs+set}" = set; then - withval="$with_additional_libs" - ADDITIONAL_LIBS=$withval -else - ADDITIONAL_LIBS="" -fi; - - - - - ac_config_files="$ac_config_files Makefile" - -cat >confcache <<\_ACEOF -# 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, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# 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 \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if diff $cache_file confcache >/dev/null 2>&1; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -DEFS=-DHAVE_CONFIG_H - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_i=`echo "$ac_i" | - sed 's/\$U\././;s/\.o$//;s/\.obj$//'` - # 2. Add them. - ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi -DUALCASE=1; export DUALCASE # for MKS sh - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# Work around bugs in pre-3.0 UWIN ksh. -$as_unset ENV MAIL MAILPATH -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -for as_var in \ - LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ - LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ - LC_TELEPHONE LC_TIME -do - if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then - eval $as_var=C; export $as_var - else - $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conf$$.sh - echo "exit 0" >>conf$$.sh - chmod +x conf$$.sh - if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conf$$.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } - $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by $as_me, which was -generated by GNU Autoconf 2.59. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -q, --quiet do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE - -Configuration files: -$config_files - -Configuration headers: -$config_headers - -Configuration commands: -$config_commands - -Report bugs to ." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.59, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2003 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - ac_shift=: - ;; - -*) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_option=$1 - ac_need_defaults=false;; - esac - - case $ac_option in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - CONFIG_FILES="$CONFIG_FILES $ac_optarg" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" - ac_need_defaults=false;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -if \$ac_cs_recheck; then - echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 - exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion -fi - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# -# INIT-COMMANDS section. -# - -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - -_ACEOF - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "autoconf.h" ) CONFIG_HEADERS="$CONFIG_HEADERS autoconf.h" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason to put it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./confstat$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@CYGPATH_W@,$CYGPATH_W,;t t -s,@PACKAGE@,$PACKAGE,;t t -s,@VERSION@,$VERSION,;t t -s,@ACLOCAL@,$ACLOCAL,;t t -s,@AUTOCONF@,$AUTOCONF,;t t -s,@AUTOMAKE@,$AUTOMAKE,;t t -s,@AUTOHEADER@,$AUTOHEADER,;t t -s,@MAKEINFO@,$MAKEINFO,;t t -s,@install_sh@,$install_sh,;t t -s,@STRIP@,$STRIP,;t t -s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t -s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t -s,@mkdir_p@,$mkdir_p,;t t -s,@AWK@,$AWK,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@am__leading_dot@,$am__leading_dot,;t t -s,@AMTAR@,$AMTAR,;t t -s,@am__tar@,$am__tar,;t t -s,@am__untar@,$am__untar,;t t -s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t -s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t -s,@MAINT@,$MAINT,;t t -s,@CC@,$CC,;t t -s,@CFLAGS@,$CFLAGS,;t t -s,@LDFLAGS@,$LDFLAGS,;t t -s,@CPPFLAGS@,$CPPFLAGS,;t t -s,@ac_ct_CC@,$ac_ct_CC,;t t -s,@EXEEXT@,$EXEEXT,;t t -s,@OBJEXT@,$OBJEXT,;t t -s,@DEPDIR@,$DEPDIR,;t t -s,@am__include@,$am__include,;t t -s,@am__quote@,$am__quote,;t t -s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t -s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t -s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t -s,@CCDEPMODE@,$CCDEPMODE,;t t -s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t -s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t -s,@CPP@,$CPP,;t t -s,@X_CFLAGS@,$X_CFLAGS,;t t -s,@X_PRE_LIBS@,$X_PRE_LIBS,;t t -s,@X_LIBS@,$X_LIBS,;t t -s,@X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t -s,@EGREP@,$EGREP,;t t -s,@ADDITIONAL_INCLUDES@,$ADDITIONAL_INCLUDES,;t t -s,@ADDITIONAL_LIBS@,$ADDITIONAL_LIBS,;t t -s,@LIBOBJS@,$LIBOBJS,;t t -s,@LTLIBOBJS@,$LTLIBOBJS,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # 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_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # 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" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_HEADER section. -# - -# 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=' ' -ac_dD=',;t' -# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". -ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_uB='$,\1#\2define\3' -ac_uC=' ' -ac_uD=',;t' - -for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - # Do quote $f, to prevent DOS paths from being IFS'd. - echo "$f";; - *) # Relative - if test -f "$f"; then - # Build tree - echo "$f" - elif test -f "$srcdir/$f"; then - # Source tree - echo "$srcdir/$f" - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - # Remove the trailing spaces. - sed 's/[ ]*$//' $ac_file_inputs >$tmp/in - -_ACEOF - -# Transform confdefs.h into two sed scripts, `conftest.defines' and -# `conftest.undefs', that substitutes the proper values into -# config.h.in to produce config.h. The first handles `#define' -# templates, and the second `#undef' templates. -# And first: Protect against being on the right side of a sed subst in -# config.status. Protect against being in an unquoted here document -# in config.status. -rm -f conftest.defines conftest.undefs -# Using a here document instead of a string reduces the quoting nightmare. -# Putting comments in sed scripts is not portable. -# -# `end' is used to avoid that the second main sed command (meant for -# 0-ary CPP macros) applies to n-ary macro definitions. -# See the Autoconf documentation for `clear'. -cat >confdef2sed.sed <<\_ACEOF -s/[\\&,]/\\&/g -s,[\\$`],\\&,g -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp -t end -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp -: end -_ACEOF -# If some macros were called several times there might be several times -# the same #defines, which is useless. Nevertheless, we may not want to -# sort them, since we want the *last* AC-DEFINE to be honored. -uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines -sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs -rm -f confdef2sed.sed - -# This sed command replaces #undef with comments. This is necessary, for -# example, in the case of _POSIX_SOURCE, which is predefined and required -# on some systems where configure will not decide to define it. -cat >>conftest.undefs <<\_ACEOF -s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, -_ACEOF - -# Break up conftest.defines because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS -echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS -echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS -echo ' :' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.defines >/dev/null -do - # Write a limited-size here document to $tmp/defines.sed. - echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#define' lines. - echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/defines.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines -echo ' fi # grep' >>$CONFIG_STATUS -echo >>$CONFIG_STATUS - -# Break up conftest.undefs because some shells have a limit on the size -# of here documents, and old seds have small limits too (100 cmds). -echo ' # Handle all the #undef templates' >>$CONFIG_STATUS -rm -f conftest.tail -while grep . conftest.undefs >/dev/null -do - # Write a limited-size here document to $tmp/undefs.sed. - echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS - # Speed up: don't consider the non `#undef' - echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS - # Work around the forget-to-reset-the-flag bug. - echo 't clr' >>$CONFIG_STATUS - echo ': clr' >>$CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS - echo 'CEOF - sed -f $tmp/undefs.sed $tmp/in >$tmp/out - rm -f $tmp/in - mv $tmp/out $tmp/in -' >>$CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail - rm -f conftest.undefs - mv conftest.tail conftest.undefs -done -rm -f conftest.undefs - -cat >>$CONFIG_STATUS <<\_ACEOF - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - echo "/* Generated by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if diff $ac_file $tmp/config.h >/dev/null 2>&1; then - { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - rm -f $ac_file - mv $tmp/config.h $ac_file - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi -# Compute $ac_file's index in $config_headers. -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $ac_file | $ac_file:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || -$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X$ac_file : 'X\(//\)[^/]' \| \ - X$ac_file : 'X\(//\)$' \| \ - X$ac_file : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X$ac_file | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'`/stamp-h$_am_stamp_count -done -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_dir=`(dirname "$ac_dest") 2>/dev/null || -$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_dest" : 'X\(//\)[^/]' \| \ - X"$ac_dest" : 'X\(//\)$' \| \ - X"$ac_dest" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_dest" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p "$ac_dir" - else - as_dir="$ac_dir" - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; }; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac - -# Do not use `cd foo && pwd` to compute absolute paths, because -# the directories may not exist. -case `pwd` in -.) ac_abs_builddir="$ac_dir";; -*) - case "$ac_dir" in - .) ac_abs_builddir=`pwd`;; - [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; - *) ac_abs_builddir=`pwd`/"$ac_dir";; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_builddir=${ac_top_builddir}.;; -*) - case ${ac_top_builddir}. in - .) ac_abs_top_builddir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; - *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_srcdir=$ac_srcdir;; -*) - case $ac_srcdir in - .) ac_abs_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; - *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; - esac;; -esac -case $ac_abs_builddir in -.) ac_abs_top_srcdir=$ac_top_srcdir;; -*) - case $ac_top_srcdir in - .) ac_abs_top_srcdir=$ac_abs_builddir;; - [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; - *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; - esac;; -esac - - - { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 -echo "$as_me: executing $ac_dest commands" >&6;} - case $ac_dest in - depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # So let's grep whole file. - if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then - dirpart=`(dirname "$mf") 2>/dev/null || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`(dirname "$file") 2>/dev/null || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { if $as_mkdir_p; then - mkdir -p $dirpart/$fdir - else - as_dir=$dirpart/$fdir - as_dirs= - while test ! -d "$as_dir"; do - as_dirs="$as_dir $as_dirs" - as_dir=`(dirname "$as_dir") 2>/dev/null || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - done - test ! -n "$as_dirs" || mkdir $as_dirs - fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5 -echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;} - { (exit 1); exit 1; }; }; } - - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done -done - ;; - esac -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - - diff --git a/xgraph/configure.in b/xgraph/configure.in deleted file mode 100644 index 476e7299c..000000000 --- a/xgraph/configure.in +++ /dev/null @@ -1,42 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -dnl configure.in script for xgraph package -dnl - -AC_INIT -AC_CONFIG_SRCDIR([xgraph.c]) -AM_INIT_AUTOMAKE(xgraph,12.1) - -AC_CONFIG_HEADERS([autoconf.h]) - -AM_WITH_DMALLOC - -dnl Enable maintainer commands only if requested -AM_MAINTAINER_MODE - -dnl Checks for programs. -AC_PROG_CC - -dnl Checks for libraries. -AC_PATH_XTRA - -dnl check header files. -AC_CHECK_HEADERS(float.h limits.h stdlib.h string.h strings.h unistd.h) - -dnl checks for typedefs -dnl checks for structures -dnl checks for compiler characteristics - -dnl checks for library functions -AC_CHECK_FUNCS(strcasecmp) - -dnl checks for system services - -AC_ARG_WITH(additional-includes, --with-additional-includes=path, ADDITIONAL_INCLUDES=$withval,ADDITIONAL_INCLUDES="") -AC_ARG_WITH(additional-libs, --with-additional-libs=path, ADDITIONAL_LIBS=$withval,ADDITIONAL_LIBS="") -AC_SUBST(ADDITIONAL_INCLUDES) -AC_SUBST(ADDITIONAL_LIBS) - - -AC_CONFIG_FILES([Makefile]) -AC_OUTPUT - diff --git a/xgraph/copyright.h b/xgraph/copyright.h deleted file mode 100644 index b40b03f41..000000000 --- a/xgraph/copyright.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * xgraph - program to graphically display numerical data - * - * David Harrison - * University of California, Berkeley - * 1989 - * - * Animation, Differentiation by Paul Walker - * NCSA and University of Illinois at Urbana Champaign Dept. of Physics - * - * Copyright (c) 1988, 1989, Regents of the University of California. - * All rights reserved. - * - * Use and copying of this software and preparation of derivative works - * based upon this software are permitted. However, any distribution of - * this software or derivative works must include the above copyright - * notice. - * - * This software is made available AS IS, and neither the Electronics - * Research Laboratory or the University of California make any - * warranty about the software, its performance or its conformity to - * any specification. - * - -Animation and differentiation routines were added by Paul Walker, -NCSA and UIUC Dept of Physics. The following copyright and disclaimer -applies to these parts of the code only. - -UNIVERSITY OF ILLINOIS (UI), NATIONAL CENTER FOR SUPERCOMPUTING -APPLICATIONS (NCSA), Software Distribution Policy for Copyrighted Software - -The above mentioned modifications to XGraph made with the authors consent are -copyrighted, but available without fee for education, academic research -and non-commercial purposes. The modifications are copyrighted in the name of -the UI, and ownership of the modifications remains with the UI. Users may -distribute the binary and source code to third parties provided that the -copyright notice and this statement appears on all copies and that no -charge is made for such copies. Any entity wishing to integrate all or -part of the source code into a product for commercial use or resale, -should contact the University of Illinois, c/o NCSA, to negotiate an -appropriate license for such commercial use. - -UI MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR ANY -PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. THE -UI SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY THE USER OF THIS -SOFTWARE. The software may have been developed under agreements between -the UI and the Federal Government which entitle the Government to certain -rights. - -By copying this program, you, the user, agree to abide by the copyright -conditions and understandings with respect to any software which is marked -with a copyright notice. - -Send all comments about the modifications to Paul Walker, -pwalker@ncsa.uiuc.edu - - * - */ - -#ifndef _RIGHTS_ -#define _RIGHTS_ - -static char copyright[] = "Copyright (c) 1989, Regents of the University of California. All rights reserved."; - -#endif /* _RIGHTS_ */ diff --git a/xgraph/derivative.c b/xgraph/derivative.c deleted file mode 100644 index dc14434b9..000000000 --- a/xgraph/derivative.c +++ /dev/null @@ -1,130 +0,0 @@ -/* This entire routine written by PW. */ - -#include -#include -#include "xgraph.h" - -void -Der1() -{ - PointList *theList, *D1List, *D2List; - double m,b; - int i; - - - for (i=0;inumPoints = D2List->numPoints = theList->numPoints; - D1List->xvec = (double *)malloc(sizeof(double)*theList->numPoints); - D1List->yvec = (double *)malloc(sizeof(double)*theList->numPoints); - D1List->next = NULL; - D2List->xvec = (double *)malloc(sizeof(double)*theList->numPoints); - D2List->yvec = (double *)malloc(sizeof(double)*theList->numPoints); - D2List->next = NULL; - - for (j=1;jnumPoints-1;j++) { - D1List->xvec[j] = D2List->xvec[j] = theList->xvec[j]; - D1List->yvec[j] = (theList->yvec[j+1] - theList->yvec[j-1]) / - (theList->xvec[j+1] - theList->xvec[j-1]); - D2List->yvec[j] = (theList->yvec[j+1] + theList->yvec[j-1] - - 2.0*theList->yvec[j]) / - ((theList->xvec[j+1] - theList->xvec[j]) * - (theList->xvec[j]-theList->xvec[j-1])); - - } - - /* Extrapolate to get the endpoints ... */ - /* end near 0 */ - D1List->xvec[0] = theList->xvec[0]; - D1List->xvec[theList->numPoints-1] = - theList->xvec[theList->numPoints-1]; - m = (D1List->yvec[2]-D1List->yvec[1]) / - (theList->xvec[2]-theList->xvec[1]); - b = D1List->yvec[1] - m*theList->xvec[1]; - D1List->yvec[0] = m*theList->xvec[0] + b; - /* end near numPoints-1 */ - m = (D1List->yvec[theList->numPoints-2]- - D1List->yvec[theList->numPoints-3]) / - (theList->xvec[theList->numPoints-2]- - theList->xvec[theList->numPoints-3]); - b = D1List->yvec [theList->numPoints-2] - - m*theList->xvec[theList->numPoints-2]; - D1List->yvec[theList->numPoints-1] = - m*theList->xvec[theList->numPoints-1] + b; - - /* Extrapolate to get the endpoints ... */ - /* end near 0 */ - D2List->xvec[0] = theList->xvec[0]; - D2List->xvec[theList->numPoints-1] = - theList->xvec[theList->numPoints-1]; - m = (D2List->yvec[2]-D2List->yvec[1]) / - (theList->xvec[2]-theList->xvec[1]); - b = D2List->yvec[1] - m*theList->xvec[1]; - D2List->yvec[0] = m*theList->xvec[0] + b; - /* end near numPoints-1 */ - m = (D2List->yvec[theList->numPoints-2]- - D2List->yvec[theList->numPoints-3]) / - (theList->xvec[theList->numPoints-2]- - theList->xvec[theList->numPoints-3]); - b = D2List->yvec[theList->numPoints-2] - - m*theList->xvec[theList->numPoints-2]; - D2List->yvec[theList->numPoints-1] = - m*theList->xvec[theList->numPoints-1] + b; - - theList = theList->next; - if (theList) { - D1List->next = (PointList *)malloc(sizeof(PointList)); - D2List->next = (PointList *)malloc(sizeof(PointList)); - D1List = D1List->next; - D2List = D2List->next; - } - } - } -} - -void -Bounds(loX, loY, hiX, hiY, Ord) - double *loX, *loY, *hiX, *hiY; - int Ord; -{ - int i; - PointList *theList; - if ((Ord<1) || (Ord>2)) { - printf ("Internal Error - Cannot eval deriv > 2 in Bounds.\n"); - exit(1); - } - *loX = *loY = *hiX = *hiY = 0.0; - for (i=0;inumPoints;j++) { - *loX = (theList->xvec[j]<*loX?theList->xvec[j]:*loX); - *loY = (theList->yvec[j]<*loY?theList->yvec[j]:*loY); - *hiX = (theList->xvec[j]>*hiX?theList->xvec[j]:*hiX); - *hiY = (theList->yvec[j]>*hiY?theList->yvec[j]:*hiY); - } - theList = theList->next; - } - } -} diff --git a/xgraph/dialog.c b/xgraph/dialog.c deleted file mode 100644 index 3f88bfc83..000000000 --- a/xgraph/dialog.c +++ /dev/null @@ -1,943 +0,0 @@ -/* - * Xgraph Dialog Boxes - * - * This file constructs the hardcopy and error dialog - * boxes used by xgraph. It uses the mini-toolbox given - * in toolbox.c. - */ - -#include "copyright.h" -#include "xgout.h" -#include "xgraph.h" -#include "hard_devices.h" -#include "xtb.h" -#include "params.h" -#include -#include - -void do_error(); - -#define MAXCHBUF 1024 - -#ifdef SHADOW -#define gray_width 16 -#define gray_height 16 -static short gray_bits[] = -{ - 0x5555, 0xaaaa, 0x5555, 0xaaaa, - 0x5555, 0xaaaa, 0x5555, 0xaaaa, - 0x5555, 0xaaaa, 0x5555, 0xaaaa, - 0x5555, 0xaaaa, 0x5555, 0xaaaa}; - -#endif - -static void make_msg_box(); -static void del_msg_box(); -static int getline_xgraph(char**,char*); - - -#define D_VPAD 2 -#define D_HPAD 2 -#define D_INT 4 -#define D_BRDR 2 -#define D_INP 35 -#define D_DSP 10 -#define D_FS 10 - -struct d_info { - char *prog; /* Program name */ - xtb_data cookie; /* Info used by do_harcopy */ - Window choices; /* Output device choices */ - Window fod; /* File or device flag */ - Window fodspec; /* File or device spec */ - Window docu_p; /* Document predicate */ - Window dimspec; /* Maximum dimension spec */ - Window tf_family; /* Title font family spec */ - Window tf_size; /* Title font size spec */ - Window af_family; /* Axis font family spec */ - Window af_size; /* Axis font size spec */ -}; - -#define BACKSPACE 0010 -#define DELETE 0177 -#define CONTROL_U 0025 -#define CONTROL_X 0030 - -/*ARGSUSED*/ -static xtb_hret -df_fun(win, ch, text, val) -Window win; /* Widget window */ -int ch; /* Typed character */ -char *text; /* Copy of text */ -xtb_data val; /* User info */ - -/* - * This is the handler function for the text widget for - * specifing the file or device name. It supports simple - * line editing operations. - */ -{ - if ((ch == BACKSPACE) || (ch == DELETE)) { - if (!xtb_ti_dch(win)) - XBell(disp, 0); - } - else if ((ch == CONTROL_U) || (ch == CONTROL_X)) { - (void) xtb_ti_set(win, "", (xtb_data) 0); - } - else { - /* Insert if printable - ascii dependent */ - if ((ch < ' ') || (ch >= DELETE) || !xtb_ti_ins(win, ch)) { - XBell(disp, 0); - } - } - return XTB_HANDLED; -} - -/*ARGSUSED*/ -static xtb_hret -ok_fun(win, bval, info) -Window win; /* Button window */ -int bval; /* Button value */ -xtb_data info; /* Local button info */ - -/* - * This is the handler function for when the `Ok' button - * is hit. It sets the button, does the hardcopy output, - * and turns the button off. It returns a status which - * deactivates the dialog. - */ -{ - struct d_info *real_info = (struct d_info *) info; - int val, - dev_p, - doc_p; - char file_or_dev[MAXCHBUF], - dim_spec[MAXCHBUF], - *dev_spec; - char tfam[MAXCHBUF], - afam[MAXCHBUF]; - char tsizstr[MAXCHBUF], - asizstr[MAXCHBUF]; - double centimeters, - tsize, - asize; - xtb_hret rtn; - - (void) xtb_bt_set(win, 1, (xtb_data) 0, 0); - val = xtb_br_get(real_info->choices); - if ((val >= 0) && (val < hard_count)) { - dev_p = xtb_br_get(real_info->fod); - if ((dev_p == 0) || (dev_p == 1)) { - xtb_ti_get(real_info->fodspec, file_or_dev, (xtb_data *) 0); - doc_p = xtb_bt_get(real_info->docu_p, (xtb_data *) 0, (int *) 0); - xtb_ti_get(real_info->dimspec, dim_spec, (xtb_data *) 0); - if (sscanf(dim_spec, "%lf", ¢imeters) == 1) { - xtb_ti_get(real_info->tf_family, tfam, (xtb_data *) 0); - xtb_ti_get(real_info->af_family, afam, (xtb_data *) 0); - xtb_ti_get(real_info->tf_size, tsizstr, (xtb_data *) 0); - if (sscanf(tsizstr, "%lf", &tsize) == 1) { - xtb_ti_get(real_info->af_size, asizstr, (xtb_data *) 0); - if (sscanf(asizstr, "%lf", &asize) == 1) { - /* Got all the info */ - if (dev_p) { - dev_spec = (char *) 0; - } - else { - dev_spec = hard_devices[val].dev_spec; - } - do_hardcopy(real_info->prog, real_info->cookie, - hard_devices[val].dev_init, dev_spec, - file_or_dev, centimeters, - tfam, tsize, afam, asize, doc_p); - rtn = XTB_STOP; - } - else { - /* Bad axis size */ - do_error("Bad axis font size\n"); - rtn = XTB_HANDLED; - } - } - else { - /* Bad title size */ - do_error("Bad title font size\n"); - rtn = XTB_HANDLED; - } - } - else { - /* Bad max dimension */ - do_error("Bad maximum dimension\n"); - rtn = XTB_HANDLED; - } - } - else { - /* Bad device spec */ - do_error("Must specify `To File' or `To Device'\n"); - rtn = XTB_HANDLED; - } - } - else { - /* Bad value spec */ - do_error("Must specify an output device\n"); - rtn = XTB_HANDLED; - } - (void) xtb_bt_set(win, 0, (xtb_data) 0, 0); - return rtn; -} - -/*ARGSUSED*/ -static xtb_hret -can_fun(win, val, info) -Window win; /* Button window */ -int val; /* Button value */ -xtb_data info; /* Local button info */ - -/* - * This is the handler function for the cancel button. It - * turns itself on and off and then exits with a status - * which kills the dialog. - */ -{ - (void) xtb_bt_set(win, 1, (xtb_data) 0, 0); - (void) xtb_bt_set(win, 0, (xtb_data) 0, 0); - return XTB_STOP; -} - - -/*ARGSUSED*/ -static xtb_hret -docu_fun(win, val, info) -Window win; /* Button window */ -int val; /* Button value */ -xtb_data info; /* Local button info */ - -/* - * This is the handler function for the document button. It - * toggles it's state. - */ -{ - int state; - - state = xtb_bt_get(win, (xtb_data *) 0, (int *) 0); - xtb_bt_set(win, (state == 0), (xtb_data) 0, 0); - return XTB_HANDLED; -} - -/*ARGSUSED*/ -static xtb_hret -dev_fun(win, old, new, info) -Window win; /* Button row window */ -int old; /* Previous button */ -int new; /* Current button */ -xtb_data info; /* User data */ - -/* - * This routine swaps the device specific information - * in the dialog based on what device is selected. The - * information passed is the information for the whole - * dialog. - */ -{ - struct d_info *data = (struct d_info *) info; - char text[MAXCHBUF]; - int fod_spot, - inactive; - - fod_spot = xtb_br_get(data->fod); - if ((old >= 0) && (old < hard_count)) { - /* Save old info */ - xtb_ti_get(data->fodspec, text, (xtb_data *) 0); - if (fod_spot == 1) { - strncpy(hard_devices[old].dev_file, text, MFNAME - 1); - } - else if (fod_spot == 0) { - strncpy(hard_devices[old].dev_printer, text, MFNAME - 1); - } - if (xtb_bt_get(data->docu_p, (xtb_data *) 0, &inactive)) { - if (inactive) - hard_devices[old].dev_docu = NONE; - else - hard_devices[old].dev_docu = YES; - } - else if (inactive) - hard_devices[old].dev_docu = NONE; - else - hard_devices[old].dev_docu = NO; - xtb_ti_get(data->dimspec, text, (xtb_data *) 0); - if (sscanf(text, "%lf", &hard_devices[old].dev_max_dim) != 1) { - do_error("Warning: can't read maximum dimension"); - } - xtb_ti_get(data->tf_family, text, (xtb_data *) 0); - strncpy(hard_devices[old].dev_title_font, text, MFNAME - 1); - xtb_ti_get(data->tf_size, text, (xtb_data *) 0); - if (sscanf(text, "%lf", &hard_devices[old].dev_title_size) != 1) { - do_error("Warning: can't read title font size"); - } - xtb_ti_get(data->af_family, text, (xtb_data *) 0); - strncpy(hard_devices[old].dev_axis_font, text, MFNAME - 1); - xtb_ti_get(data->af_size, text, (xtb_data *) 0); - if (sscanf(text, "%lf", &hard_devices[old].dev_axis_size) != 1) { - do_error("Warning: can't read axis font size"); - } - } - /* Insert new info */ - if ((new >= 0) && (new < hard_count)) { - if (fod_spot == 1) { - xtb_ti_set(data->fodspec, hard_devices[new].dev_file, (xtb_data) 0); - } - else if (fod_spot == 0) { - xtb_ti_set(data->fodspec, hard_devices[new].dev_printer, - (xtb_data) 0); - } - else { - xtb_ti_set(data->fodspec, "", (xtb_data) 0); - } - switch (hard_devices[new].dev_docu) { - case NONE: - (void) xtb_bt_set(data->docu_p, 0, (xtb_data) 0, 1); - break; - case NO: - (void) xtb_bt_set(data->docu_p, 0, (xtb_data) 0, 0); - break; - case YES: - (void) xtb_bt_set(data->docu_p, 1, (xtb_data) 0, 0); - break; - } - (void) sprintf(text, "%lg", hard_devices[new].dev_max_dim); - xtb_ti_set(data->dimspec, text, (xtb_data) 0); - xtb_ti_set(data->tf_family, hard_devices[new].dev_title_font, - (xtb_data) 0); - (void) sprintf(text, "%lg", hard_devices[new].dev_title_size); - xtb_ti_set(data->tf_size, text, (xtb_data) 0); - xtb_ti_set(data->af_family, hard_devices[new].dev_axis_font, - (xtb_data) 0); - (void) sprintf(text, "%lg", hard_devices[new].dev_axis_size); - xtb_ti_set(data->af_size, text, (xtb_data) 0); - } - return XTB_HANDLED; -} - -/*ARGSUSED*/ -static xtb_hret -fd_fun(win, old, new, info) -Window win; /* Button row window */ -int old; /* Previous button */ -int new; /* Current button */ -xtb_data info; /* User data */ - -/* - * This routine swaps the default file or device names - * based on the state of the file or device buttons. - * The information passed is the information for the whole - * dialog. - */ -{ - struct d_info *data = (struct d_info *) info; - char text[MAXCHBUF]; - int which_one; - - which_one = xtb_br_get(data->choices); - if ((which_one >= 0) && (which_one < hard_count)) { - if (old == 0) { - /* Save into device space */ - xtb_ti_get(data->fodspec, text, (xtb_data *) 0); - strncpy(hard_devices[which_one].dev_printer, text, MFNAME - 1); - } - else if (old == 1) { - /* Save into file space */ - xtb_ti_get(data->fodspec, text, (xtb_data *) 0); - which_one = xtb_br_get(data->choices); - strncpy(hard_devices[which_one].dev_file, text, MFNAME - 1); - } - if (new == 0) { - /* Restore into device */ - xtb_ti_set(data->fodspec, hard_devices[which_one].dev_printer, - (xtb_data *) 0); - } - else if (new == 1) { - xtb_ti_set(data->fodspec, hard_devices[which_one].dev_file, - (xtb_data *) 0); - } - } - return XTB_HANDLED; -} - - -/* Indices for frames made in make_dialog */ -enum d_frames_defn { - TITLE_F, ODEVLBL_F, ODEVROW_F, DISPLBL_F, DISPROW_F, FDLBL_F, - FDINP_F, OPTLBL_F, DOCU_F, MDIMLBL_F, MDIMI_F, TFLBL_F, TFFAMLBL_F, TFFAM_F, - TFSIZLBL_F, TFSIZ_F, AFLBL_F, AFFAMLBL_F, AFFAM_F, AFSIZLBL_F, AFSIZ_F, - OK_F, CAN_F, BAR_F, LAST_F -} d_frames; - -#define AF(ix) af[(int) (ix)] - -#define BAR_SLACK 10 - -static void -make_dialog(win, spawned, prog, cookie, okbtn, frame) -Window win; /* Parent window */ -Window spawned; /* Spawned from window */ -char *prog; /* Program name */ -xtb_data cookie; /* Info for do_hardcopy */ -xtb_frame *okbtn; /* Frame for OK button */ -xtb_frame *frame; /* Returned window/size */ - -/* - * This routine constructs a new dialog for asking the user about - * hardcopy devices. The dialog and its size is returned in - * `frame'. The window of the `ok' button is returned in `btnwin'. - * This can be used to reset some of the button state to reuse the dialog. - */ -{ - Window overall; - xtb_frame AF(LAST_F); - xtb_fmt *def, - *cntrl, - *mindim, - *tfarea, - *afarea; - Cursor diag_cursor; - XColor fg_color, - bg_color; - XSizeHints hints; - unsigned long wamask; - XSetWindowAttributes wattr; - struct d_info *info; - int i, - found, - max_width, - which_one, - fodi; - char **names; - static char *fodstrs[] = - {"To Device", "To File"}; - XFontStruct *bigFont = PM_FONT("TitleFont"); - XFontStruct *medFont = PM_FONT("LabelFont"); - char *Odevice = PM_STR("Device"); - char *Odisp = PM_STR("Disposition"); - char *OfileDev = PM_STR("FileOrDev"); - - wamask = CWBackPixel | CWBorderPixel | CWOverrideRedirect | - CWSaveUnder | CWColormap; - wattr.background_pixel = PM_PIXEL("Background"); - wattr.border_pixel = PM_PIXEL("Border"); - wattr.override_redirect = True; - wattr.save_under = True; - wattr.colormap = cmap; - overall = XCreateWindow(disp, win, 0, 0, 1, 1, D_BRDR, - depth, InputOutput, vis, - wamask, &wattr); - frame->win = overall; - frame->width = frame->height = frame->x_loc = frame->y_loc = 0; - XStoreName(disp, overall, "Hardcopy Dialog"); - XSetTransientForHint(disp, spawned, overall); - info = (struct d_info *) Malloc(sizeof(struct d_info)); - info->prog = prog; - info->cookie = cookie; - - /* Make all frames */ - xtb_to_new(overall, "Hardcopy Options", bigFont, &AF(TITLE_F)); - xtb_to_new(overall, "Output device:", medFont, &AF(ODEVLBL_F)); - found = -1; - names = (char **) Malloc((unsigned) (sizeof(char *) * hard_count)); - for (i = 0; i < hard_count; i++) { - names[i] = hard_devices[i].dev_name; - if (strcmp(Odevice, names[i]) == 0) { - found = i; - } - } - xtb_br_new(overall, hard_count, names, found, - dev_fun, (xtb_data) info, &AF(ODEVROW_F)); - info->choices = AF(ODEVROW_F).win; - xtb_to_new(overall, "Disposition:", medFont, &AF(DISPLBL_F)); - found = -1; - for (i = 0; i < 2; i++) { - if (strcmp(Odisp, fodstrs[i]) == 0) { - found = i; - } - } - xtb_br_new(overall, 2, fodstrs, found, - fd_fun, (xtb_data) info, &AF(DISPROW_F)); - info->fod = AF(DISPROW_F).win; - xtb_to_new(overall, "File or Device Name:", medFont, &AF(FDLBL_F)); - xtb_ti_new(overall, "", D_INP, df_fun, (xtb_data) 0, &AF(FDINP_F)); - if (OfileDev && strlen(OfileDev)) { - which_one = xtb_br_get(info->choices); - if ((which_one >= 0) && (which_one < hard_count)) { - fodi = xtb_br_get(info->fod); - if (fodi == 0) { - strncpy(hard_devices[which_one].dev_printer, OfileDev, MFNAME - 1); - } - else if (fodi == 1) { - strncpy(hard_devices[which_one].dev_file, OfileDev, MFNAME - 1); - } - } - } - info->fodspec = AF(FDINP_F).win; - xtb_to_new(overall, "Optional Parameters", bigFont, &AF(OPTLBL_F)); - xtb_bt_new(overall, "Include in Document", docu_fun, (xtb_data) 0, &AF(DOCU_F)); - info->docu_p = AF(DOCU_F).win; - xtb_to_new(overall, "Maximum Dimension (cm):", medFont, &AF(MDIMLBL_F)); - xtb_ti_new(overall, "", D_DSP, df_fun, (xtb_data) 0, &AF(MDIMI_F)); - info->dimspec = AF(MDIMI_F).win; - xtb_to_new(overall, "Title Font", medFont, &AF(TFLBL_F)); - xtb_to_new(overall, "Family:", medFont, &AF(TFFAMLBL_F)); - xtb_ti_new(overall, "", MFNAME, df_fun, (xtb_data) 0, &AF(TFFAM_F)); - info->tf_family = AF(TFFAM_F).win; - xtb_to_new(overall, "Size (pnts):", medFont, &AF(TFSIZLBL_F)); - xtb_ti_new(overall, "", D_FS, df_fun, (xtb_data) 0, &AF(TFSIZ_F)); - info->tf_size = AF(TFSIZ_F).win; - xtb_to_new(overall, "Axis Font", medFont, &AF(AFLBL_F)); - xtb_to_new(overall, "Family:", medFont, &AF(AFFAMLBL_F)); - xtb_ti_new(overall, "", MFNAME, df_fun, (xtb_data) 0, &AF(AFFAM_F)); - info->af_family = AF(AFFAM_F).win; - xtb_to_new(overall, "Size (pnts):", medFont, &AF(AFSIZLBL_F)); - xtb_ti_new(overall, "", D_FS, df_fun, (xtb_data) 0, &AF(AFSIZ_F)); - info->af_size = AF(AFSIZ_F).win; - xtb_bt_new(overall, " Ok ", ok_fun, (xtb_data) info, &AF(OK_F)); - xtb_bt_new(overall, "Cancel", can_fun, (xtb_data) 0, &AF(CAN_F)); - /* Dividing bar */ - max_width = 0; - for (i = 0; i < ((int) BAR_F); i++) { - if (AF(i).width > max_width) - max_width = AF(i).width; - } - xtb_bk_new(overall, max_width - BAR_SLACK, 1, &AF(BAR_F)); - - /* Set device specific info */ - (void) dev_fun(info->choices, -1, xtb_br_get(info->choices), (xtb_data) info); - (void) fd_fun(info->fod, -1, xtb_br_get(info->fod), (xtb_data) info); - - /* - * Now place elements - could make this one expression but pcc is too - * wimpy. - */ - cntrl = xtb_vert(XTB_LEFT, D_VPAD, D_INT, - xtb_hort(XTB_CENTER, D_HPAD, D_INT, - xtb_w(&AF(ODEVLBL_F)), - xtb_w(&AF(ODEVROW_F)), NE), - xtb_hort(XTB_CENTER, D_HPAD, D_INT, - xtb_w(&AF(DISPLBL_F)), - xtb_w(&AF(DISPROW_F)), NE), - xtb_hort(XTB_CENTER, D_HPAD, D_INT, - xtb_w(&AF(FDLBL_F)), - xtb_w(&AF(FDINP_F)), NE), - NE); - - mindim = xtb_vert(XTB_LEFT, D_VPAD, D_INT, - xtb_hort(XTB_CENTER, D_HPAD, D_INT, - xtb_w(&AF(MDIMLBL_F)), - xtb_w(&AF(MDIMI_F)), - NE), - NE); - - tfarea = xtb_vert(XTB_LEFT, D_VPAD, D_INT, - xtb_hort(XTB_CENTER, D_HPAD, D_INT, - xtb_w(&AF(TFFAMLBL_F)), - xtb_w(&AF(TFFAM_F)), - xtb_w(&AF(TFSIZLBL_F)), - xtb_w(&AF(TFSIZ_F)), NE), - NE); - - afarea = xtb_vert(XTB_LEFT, D_VPAD, D_INT, - xtb_hort(XTB_CENTER, D_HPAD, D_INT, - xtb_w(&AF(AFFAMLBL_F)), - xtb_w(&AF(AFFAM_F)), - xtb_w(&AF(AFSIZLBL_F)), - xtb_w(&AF(AFSIZ_F)), NE), - NE); - - def = xtb_fmt_do - (xtb_vert(XTB_CENTER, D_VPAD, D_INT, - xtb_w(&AF(TITLE_F)), - cntrl, - xtb_w(&AF(BAR_F)), - xtb_w(&AF(OPTLBL_F)), - mindim, - xtb_w(&AF(DOCU_F)), - xtb_w(&AF(TFLBL_F)), - tfarea, - xtb_w(&AF(AFLBL_F)), - afarea, - xtb_hort(XTB_CENTER, D_HPAD, D_INT, - xtb_w(&AF(OK_F)), xtb_w(&AF(CAN_F)), NE), - NE), - &frame->width, &frame->height); - xtb_mv_frames(LAST_F, af); - xtb_fmt_free(def); - - /* Make window large enough to contain the info */ - XResizeWindow(disp, overall, frame->width, frame->height); - hints.flags = PSize; - hints.width = frame->width; - hints.height = frame->height; - XSetNormalHints(disp, overall, &hints); - diag_cursor = XCreateFontCursor(disp, XC_dotbox); - fg_color.pixel = PM_PIXEL("Foreground"); - XQueryColor(disp, cmap, &fg_color); - bg_color.pixel = PM_PIXEL("Background"); - XQueryColor(disp, cmap, &bg_color); - XRecolorCursor(disp, diag_cursor, &fg_color, &bg_color); - XDefineCursor(disp, overall, diag_cursor); - frame->width += (2 * D_BRDR); - frame->height += (2 * D_BRDR); - *okbtn = AF(OK_F); -} - - - -#ifdef SHADOW -Window -make_shadow(w, h) -int w, - h; - -/* - * Makes a shadow window for a pop-up window of the specified size. - * Needs hint work as well. Try no background window. - */ -{ - Window shadow; - Bitmap gray_bm; - Pixmap gray_pm; - - gray_bm = XStoreBitmap(gray_width, gray_height, gray_bits); - gray_pm = XMakePixmap(gray_bm, PM_PIXEL("Foreground"), PM_PIXEL("Background")); - shadow = XCreateWindow(RootWindow, 0, 0, w, h, 0, BlackPixmap, gray_pm); - XFreePixmap(gray_pm); - XFreeBitmap(gray_bm); - return shadow; -} - -#endif - - - -#define SH_W 5 -#define SH_H 5 - -void -ho_dialog(parent, prog, cookie) -Window parent; /* Parent window */ -char *prog; /* Program name */ -xtb_data cookie; /* Info passed to do_hardcopy */ - -/* - * Asks the user about hardcopy devices. A table of hardcopy - * device names and function pointers to their initialization - * functions is assumed to be in the global `hard_devices' and - * `hard_count'. Returns a non-zero status if the dialog was - * sucessfully posted. Calls do_hardcopy in xgraph to actually - * output information. - */ -{ -#ifdef SHADOW - static Window shadow; - -#endif - static Window dummy; - static xtb_frame overall = - {(Window) 0, 0, 0, 0, 0}; - static xtb_frame okbtn; - XEvent evt; - XWindowAttributes winInfo; - XSizeHints hints; - struct d_info *info; - - if (!overall.win) { - make_dialog(RootWindow(disp, screen), parent, prog, cookie, - &okbtn, &overall); -#ifdef SHADOW - shadow = make_shadow(d_w, d_h); -#endif - } - else { - /* Change the button information */ - (void) xtb_bt_get(okbtn.win, (xtb_data *) & info, (int *) 0); - info->prog = prog; - info->cookie = cookie; - } - XGetWindowAttributes(disp, parent, &winInfo); - XTranslateCoordinates(disp, parent, RootWindow(disp, screen), - 0, 0, &winInfo.x, &winInfo.y, &dummy); - XMoveWindow(disp, overall.win, - (int) (winInfo.x + winInfo.width / 2 - overall.width / 2), - (int) (winInfo.y + winInfo.height / 2 - overall.height / 2)); - hints.flags = PPosition; - hints.x = winInfo.x + winInfo.width / 2 - overall.width / 2; - hints.y = winInfo.y + winInfo.height / 2 - overall.height / 2; - XSetNormalHints(disp, overall.win, &hints); -#ifdef SHADOW - XMoveWindow(disp, shadow, winInfo.x + winInfo.width / 2 - d_w / 2 + SH_W, - winInfo.y + winInfo.height / 2 - d_h / 2 + SH_H); - hints.flags = PPosition; - hints.x = winInfo.x + winInfo.width / 2 - d_w / 2 + SH_W; - hints.y = winInfo.y + winInfo.height / 2 - d_h / 2 + SH_H; - XSetNormalHints(disp, shadow, &hints); - XRaiseWindow(disp, shadow); - XMapWindow(disp, shadow); -#endif - XRaiseWindow(disp, overall.win); - XMapWindow(disp, overall.win); - do { - XNextEvent(disp, &evt); - } while (xtb_dispatch(&evt) != XTB_STOP); - XUnmapWindow(disp, overall.win); -#ifdef SHADOW - XUnmapWindow(disp, shadow); -#endif -} - - - -/*ARGSUSED*/ -static xtb_hret -err_func(win, bval, info) -Window win; /* Button window */ -int bval; /* Button value */ -xtb_data info; /* Local button info */ - -/* - * Handler function for button in error box. Simply stops dialog. - */ -{ - (void) xtb_bt_set(win, 1, (xtb_data) 0, 0); - (void) xtb_bt_set(win, 0, (xtb_data) 0, 0); - return XTB_STOP; -} - - -struct err_info { - Window title; - Window contbtn; - int num_lines; - int alloc_lines; - Window *lines; -}; - -#define E_LINES 2 -#define E_VPAD 3 -#define E_HPAD 3 -#define E_INTER 1 -#define ML 256 - -static void -make_msg_box(text, title, frame) -char *text; /* Error text */ -char *title; /* Title text */ -xtb_frame *frame; /* Returned frame */ - -/* - * Makes an error box with a title. - */ -{ - XSizeHints hints; - struct err_info *new_info; - xtb_frame tf, - cf, - lf; - char *lineptr, - line[ML]; - int y, - i; - unsigned long wamask; - XSetWindowAttributes wattr; - XFontStruct *bigFont = PM_FONT("TitleFont"); - XFontStruct *medFont = PM_FONT("LabelFont"); - - wamask = CWBackPixel | CWBorderPixel | CWOverrideRedirect | - CWSaveUnder | CWColormap; - wattr.background_pixel = PM_PIXEL("Background"); - wattr.border_pixel = PM_PIXEL("Border"); - wattr.override_redirect = True; - wattr.save_under = True; - wattr.colormap = cmap; - frame->win = XCreateWindow(disp, RootWindow(disp, screen), - 0, 0, 1, 1, D_BRDR, - depth, InputOutput, vis, - wamask, &wattr); - frame->x_loc = frame->y_loc = frame->width = frame->height = 0; - XStoreName(disp, frame->win, "Error Dialog"); - XSetTransientForHint(disp, RootWindow(disp, screen), frame->win); - new_info = (struct err_info *) Malloc((unsigned) sizeof(struct err_info)); - xtb_to_new(frame->win, title, bigFont, &tf); - new_info->title = tf.win; - if (tf.width > frame->width) - frame->width = tf.width; - - xtb_bt_new(frame->win, "Dismiss", err_func, (xtb_data) 0, &cf); - new_info->contbtn = cf.win; - if (cf.width > frame->width) - frame->width = cf.width; - - new_info->alloc_lines = E_LINES; - new_info->num_lines = 0; - new_info->lines = (Window *) Malloc((unsigned) (sizeof(Window) * E_LINES)); - /* zero the memory out of paranoia */ - memset(new_info->lines, 0, sizeof(Window) * E_LINES); - - lineptr = text; - while (getline_xgraph(&lineptr, line)) { - if (new_info->num_lines >= new_info->alloc_lines) { - int old_alloc_lines_size = new_info->alloc_lines * sizeof(Window); - new_info->alloc_lines *= 2; - new_info->lines = (Window *) Realloc((char *) new_info->lines, - (unsigned) - (new_info->alloc_lines * - sizeof(Window))); - memset(((char*)new_info->lines) + old_alloc_lines_size, - 0, old_alloc_lines_size); - } - xtb_to_new(frame->win, line, medFont, &lf); - new_info->lines[new_info->num_lines] = lf.win; - new_info->num_lines += 1; - if (lf.width > frame->width) - frame->width = lf.width; - } - - - /* Placement */ - frame->width += (2 * E_HPAD); - y = E_VPAD; - /* Title */ - XMoveWindow(disp, new_info->title, (int) (frame->width / 2 - tf.width / 2), y); - y += (tf.height + E_INTER); - /* All lines */ - for (i = 0; i < new_info->num_lines; i++) { - XMoveWindow(disp, new_info->lines[i], E_HPAD, y); - y += (lf.height + E_INTER); - } - /* Button */ - XMoveWindow(disp, new_info->contbtn, (int) (frame->width / 2 - cf.width / 2), y); - y += (cf.height + E_INTER); - - /* Make dialog the right size */ - y += (E_VPAD - E_INTER); - XResizeWindow(disp, frame->win, frame->width, (unsigned int) y); - hints.flags = PSize; - hints.width = frame->width; - hints.height = (unsigned int) y; - XSetNormalHints(disp, frame->win, &hints); - frame->width += (2 * D_BRDR); - frame->height = y + (2 * D_BRDR); - xtb_register(frame->win, (xtb_hret(*) ()) 0, (xtb_data) new_info); -} - -void -msg_box(title, text) -char *title, - *text; - -/* - * This posts a dialog that contains lines of text and a continue - * button. The text may be multiple lines. The dialog is remade - * each time. - */ -{ -#ifdef SHADOW - Window shadow; - -#endif - XWindowAttributes info; - XEvent evt; - XSizeHints hints; - xtb_frame text_frame; - - make_msg_box(text, title, &text_frame); -#ifdef SHADOW - shadow = make_shadow(w, h); -#endif - XGetWindowAttributes(disp, RootWindow(disp, screen), &info); - XMoveWindow(disp, text_frame.win, (int) (info.width / 2 - text_frame.width / 2), - (int) (info.height / 2 - text_frame.height / 2)); - hints.flags = PPosition; - hints.x = info.width / 2 - text_frame.width / 2; - hints.y = info.height / 2 - text_frame.height / 2; - XSetNormalHints(disp, text_frame.win, &hints); -#ifdef SHADOW - XMoveWindow(disp, shadow, info.width / 2 - w / 2 + SH_W, - info.height / 2 - h / 2 + SH_H); - hints.flags = PPosition; - hints.x = info.width / 2 - w / 2 + SH_W; - hints.y = info.height / 2 - h / 2 + SH_H; - XSetNormalHints(disp, text_frame.win, &hints); - XRaiseWindow(disp, shadow); - XMapWindow(disp, shadow); -#endif - XRaiseWindow(disp, text_frame.win); - XMapWindow(disp, text_frame.win); - do { - XNextEvent(disp, &evt); - } while (xtb_dispatch(&evt) != XTB_STOP); -#ifdef SHADOW - XDestroyWindow(disp, shadow); -#endif - del_msg_box(text_frame.win); -} - -void -do_error(err_text) -char *err_text; -{ - if (PM_INT("Output Device") == D_XWINDOWS) - msg_box("Xgraph Error", err_text); - else - fputs(err_text, stderr); -} - - - -static int -getline_xgraph(tptr, lptr) -char **tptr; -char *lptr; - -/* - * Returns next line from tptr. Assumes `lptr' is large enough to - * accept the line. - */ -{ - char *start; - - start = *tptr; - while (*tptr && **tptr && (**tptr != '\n')) { - (*tptr)++; - } - if (*tptr > start) { - (void) strncpy(lptr, start, (*tptr - start)); - lptr[*tptr - start] = '\0'; - if (**tptr == '\n') - (*tptr)++; - return 1; - } - else { - return 0; - } -} - - - -static void -del_msg_box(msg) -Window msg; - -/* - * Deletes all components of an msg box - */ -{ - struct err_info *info; - char *dummy; - int i; - - if (xtb_unregister(msg, (xtb_data *) & info)) { - xtb_to_del(info->title); - xtb_bt_del(info->contbtn, (xtb_data *) & dummy); - for (i = 0; i < info->num_lines; i++) { - xtb_to_del(info->lines[i]); - } - Free((char *) info->lines); - Free((char *) info); - XDestroyWindow(disp, msg); - } -} diff --git a/xgraph/draw.c b/xgraph/draw.c deleted file mode 100644 index 0c44a6930..000000000 --- a/xgraph/draw.c +++ /dev/null @@ -1,1263 +0,0 @@ -/* $Header$ */ -/* - * draw.c: xgraph drawing code - * - * Routines: - * void DrawWindow(); - * - * $Log$ - * Revision 1.1 2004-01-25 09:00:49 pnenzi - * - * Added xgraph plotting program. - * - * Revision 1.1.1.1 1999/12/03 23:15:53 heideman - * xgraph-12.0 - * - */ -#ifndef lint -static char rcsid[] = "$Id$"; -#endif - -#include "copyright.h" -#include -#include -#include -#include -#include "xgraph.h" -#include "xtb.h" -#include "hard_devices.h" -#include "params.h" - - -static void DrawTitle(); -static void DrawGridAndAxis(); -static void WriteValue(); -static void DrawData(); -static void DrawLegend(); -static int TransformCompute(); -static double initGrid(); -static double stepGrid(); -static double RoundUp(); -static void set_mark_flags(); - -void -DrawWindow(win_info) -LocalWin *win_info; /* Window information */ - -/* - * Draws the data in the window. Does not clear the window. - * The data is scaled so that all of the data will fit. - * Grid lines are drawn at the nearest power of 10 in engineering - * notation. Draws axis numbers along bottom and left hand edges. - * Centers title at top of window. - */ -{ - /* Figure out the transformation constants */ - if (TransformCompute(win_info)) { - - /* Draw the title */ - DrawTitle(win_info); - - /* Draw the legend */ - if (!PM_BOOL("NoLegend")) - DrawLegend(win_info); - - /* Draw the axis unit labels, grid lines, and grid labels */ - DrawGridAndAxis(win_info); - - /* Draw the data sets themselves */ - DrawData(win_info); - } -} - - - - -static void -DrawTitle(wi) -LocalWin *wi; /* Window information */ - -/* - * This routine draws the title of the graph centered in - * the window. It is spaced down from the top by an amount - * specified by the constant PADDING. The font must be - * fixed width. The routine returns the height of the - * title in pixels. - */ -{ - if (wi->DOrder == 0) - wi->dev_info.xg_text(wi->dev_info.user_state, - (int)(wi->dev_info.area_w*0.95) , - wi->dev_info.axis_pad, - PM_STR("TitleText"), T_UPPERRIGHT, T_TITLE); - else if (wi->DOrder == 1) - wi->dev_info.xg_text(wi->dev_info.user_state, - (int)(wi->dev_info.area_w*0.95) , - wi->dev_info.axis_pad, - "First Derivative", T_UPPERRIGHT, T_TITLE); - else if (wi->DOrder == 2) - wi->dev_info.xg_text(wi->dev_info.user_state, - (int)(wi->dev_info.area_w*0.95) , - wi->dev_info.axis_pad, - "Second Derivative", T_UPPERRIGHT, T_TITLE); -} - - - - -static int -TransformCompute(wi) -LocalWin *wi; /* Window information */ - -/* - * This routine figures out how to draw the axis labels and grid lines. - * Both linear and logarithmic axes are supported. Axis labels are - * drawn in engineering notation. The power of the axes are labeled - * in the normal axis labeling spots. The routine also figures - * out the necessary transformation information for the display - * of the points (it touches XOrgX, XOrgY, UsrOrgX, UsrOrgY, and - * UnitsPerPixel). - */ -{ - double bbCenX, - bbCenY, - bbHalfWidth, - bbHalfHeight; - int idx, - maxName, - leftWidth; - char err[MAXBUFSIZE]; - char *XUnitText = PM_STR("XUnitText"); - - /* - * First, we figure out the origin in the X window. Above the space we - * have the title and the Y axis unit label. To the left of the space we - * have the Y axis grid labels. - */ - - wi->XOrgX = wi->dev_info.bdr_pad + (7 * wi->dev_info.axis_width) - + wi->dev_info.bdr_pad; - wi->XOrgY = wi->dev_info.bdr_pad + wi->dev_info.title_height - + wi->dev_info.bdr_pad + wi->dev_info.axis_height - + wi->dev_info.axis_height / 2 + wi->dev_info.bdr_pad; - - /* - * Now we find the lower right corner. Below the space we have the X axis - * grid labels. To the right of the space we have the X axis unit label - * and the legend. We assume the worst case size for the unit label. - */ - - maxName = 0; - for (idx = 0; idx < MAXSETS; idx++) { - if (PlotData[idx].list) { - int tempSize; - - tempSize = strlen(PlotData[idx].setName); - if (tempSize > maxName) - maxName = tempSize; - } - } - if (PM_BOOL("NoLegend")) - maxName = 0; - /* Worst case size of the X axis label: */ - leftWidth = (strlen(XUnitText)) * wi->dev_info.axis_width; - if ((maxName * wi->dev_info.axis_width) + wi->dev_info.bdr_pad > leftWidth) - leftWidth = maxName * wi->dev_info.axis_width + wi->dev_info.bdr_pad; - - wi->XOppX = wi->dev_info.area_w - wi->dev_info.bdr_pad - leftWidth; - wi->XOppY = wi->dev_info.area_h - wi->dev_info.bdr_pad - - wi->dev_info.axis_height - wi->dev_info.bdr_pad; - - if ((wi->XOrgX >= wi->XOppX) || (wi->XOrgY >= wi->XOppY)) { - do_error(strcpy(err, "Drawing area is too small\n")); - return 0; - } - - /* - * We now have a bounding box for the drawing region. Figure out the units - * per pixel using the data set bounding box. - */ - wi->XUnitsPerPixel = (wi->hiX - wi->loX) / - ((double) (wi->XOppX - wi->XOrgX)); - wi->YUnitsPerPixel = (wi->hiY - wi->loY) / - ((double) (wi->XOppY - wi->XOrgY)); - - /* - * Find origin in user coordinate space. We keep the center of the - * original bounding box in the same place. - */ - bbCenX = (wi->loX + wi->hiX) / 2.0; - bbCenY = (wi->loY + wi->hiY) / 2.0; - bbHalfWidth = ((double) (wi->XOppX - wi->XOrgX)) / 2.0 * wi->XUnitsPerPixel; - bbHalfHeight = ((double) (wi->XOppY - wi->XOrgY)) / 2.0 * wi->YUnitsPerPixel; - wi->UsrOrgX = bbCenX - bbHalfWidth; - wi->UsrOrgY = bbCenY - bbHalfHeight; - wi->UsrOppX = bbCenX + bbHalfWidth; - wi->UsrOppY = bbCenY + bbHalfHeight; - - /* - * Everything is defined so we can now use the SCREENX and SCREENY - * transformations. - */ - return 1; -} - -static void -DrawGridAndAxis(wi) -LocalWin *wi; /* Window information */ - -/* - * This routine draws grid line labels in engineering notation, - * the grid lines themselves, and unit labels on the axes. - */ -{ - int expX, - expY; /* Engineering powers */ - int startX; - int Yspot, - Xspot; - char power[10], - value[10], - final[MAXBUFSIZE + 10]; - double Xincr, - Yincr, - Xstart, - Ystart, - Yindex, - Xindex, - larger; - XSegment segs[2]; - double initGrid(), - stepGrid(); - int tickFlag = PM_BOOL("Ticks"); - int axisFlag = PM_BOOL("TickAxis"); - int logXFlag = PM_BOOL("LogX"); - int logYFlag = PM_BOOL("LogY"); - char *XUnitText = PM_STR("XUnitText"); - char *YUnitText = PM_STR("YUnitText"); - - /* - * Grid display powers are computed by taking the log of the largest - * numbers and rounding down to the nearest multiple of 3. - */ - if (logXFlag) { - expX = 0; - } - else { - if (fabs(wi->UsrOrgX) > fabs(wi->UsrOppX)) { - larger = fabs(wi->UsrOrgX); - } - else { - larger = fabs(wi->UsrOppX); - } - expX = ((int) floor(nlog10(larger) / 3.0)) * 3; - } - if (logYFlag) { - expY = 0; - } - else { - if (fabs(wi->UsrOrgY) > fabs(wi->UsrOppY)) { - larger = fabs(wi->UsrOrgY); - } - else { - larger = fabs(wi->UsrOppY); - } - expY = ((int) floor(nlog10(larger) / 3.0)) * 3; - } - - /* - * With the powers computed, we can draw the axis labels. - */ - if (expY != 0) { - (void) strcpy(final, YUnitText); - (void) strcat(final, " x 10"); - Xspot = wi->dev_info.bdr_pad + - ((strlen(YUnitText) + 5) * wi->dev_info.axis_width); - Yspot = wi->dev_info.bdr_pad * 2 + wi->dev_info.title_height + - wi->dev_info.axis_height / 2; - wi->dev_info.xg_text(wi->dev_info.user_state, - Xspot, Yspot, final, T_RIGHT, T_AXIS); - (void) sprintf(power, "%d", expY); - wi->dev_info.xg_text(wi->dev_info.user_state, - Xspot, Yspot, power, T_LOWERLEFT, T_AXIS); - } - else { - Yspot = wi->dev_info.bdr_pad * 2 + wi->dev_info.title_height; - wi->dev_info.xg_text(wi->dev_info.user_state, - wi->dev_info.bdr_pad, Yspot, YUnitText, - T_UPPERLEFT, T_AXIS); - } - - startX = wi->dev_info.area_w - wi->dev_info.bdr_pad; - if (expX != 0) { - (void) sprintf(power, "%d", expX); - startX -= (strlen(power) * wi->dev_info.axis_width); - wi->dev_info.xg_text(wi->dev_info.user_state, - startX, wi->XOppY, power, T_LOWERLEFT, T_AXIS); - (void) strcpy(final, XUnitText); - (void) strcat(final, " x 10"); - wi->dev_info.xg_text(wi->dev_info.user_state, - startX, wi->XOppY, final, T_RIGHT, T_AXIS); - } - else { - wi->dev_info.xg_text(wi->dev_info.user_state, - startX, wi->XOppY, XUnitText, T_RIGHT, T_AXIS); - } - - /* - * First, the grid line labels - */ - Yincr = (wi->dev_info.axis_pad + wi->dev_info.axis_height) * - wi->YUnitsPerPixel; - Ystart = initGrid(wi->UsrOrgY, Yincr, logYFlag); - for (Yindex = Ystart; Yindex < wi->UsrOppY; Yindex = stepGrid()) { - Yspot = SCREENY(wi, Yindex); - /* Write the axis label */ - WriteValue(value, PM_STR("Format X"), Yindex, expY, logYFlag); - wi->dev_info.xg_text(wi->dev_info.user_state, - wi->dev_info.bdr_pad + - (7 * wi->dev_info.axis_width), - Yspot, value, T_RIGHT, T_AXIS); - } - - Xincr = (wi->dev_info.axis_pad + (wi->dev_info.axis_width * 7)) * - wi->XUnitsPerPixel; - Xstart = initGrid(wi->UsrOrgX, Xincr, logXFlag); - - for (Xindex = Xstart; Xindex < wi->UsrOppX; Xindex = stepGrid()) { - Xspot = SCREENX(wi, Xindex); - /* Write the axis label */ - WriteValue(value, PM_STR("Format Y"), Xindex, expX, logXFlag); - wi->dev_info.xg_text(wi->dev_info.user_state, - Xspot, - wi->dev_info.area_h - wi->dev_info.bdr_pad, - value, T_BOTTOM, T_AXIS); - } - - /* - * Now, the grid lines or tick marks - */ - Yincr = (wi->dev_info.axis_pad + wi->dev_info.axis_height) * - wi->YUnitsPerPixel; - Ystart = initGrid(wi->UsrOrgY, Yincr, logYFlag); - for (Yindex = Ystart; Yindex < wi->UsrOppY; Yindex = stepGrid()) { - Yspot = SCREENY(wi, Yindex); - /* Draw the grid line or tick mark */ - if (tickFlag && !(axisFlag && Yindex == Ystart)) { - segs[0].x1 = wi->XOrgX; - segs[0].x2 = wi->XOrgX + wi->dev_info.tick_len; - segs[1].x1 = wi->XOppX - wi->dev_info.tick_len; - segs[1].x2 = wi->XOppX; - segs[0].y1 = segs[0].y2 = segs[1].y1 = segs[1].y2 = Yspot; - } - else { - segs[0].x1 = wi->XOrgX; - segs[0].x2 = wi->XOppX; - segs[0].y1 = segs[0].y2 = Yspot; - } - if ((ABS(Yindex) < ZERO_THRES) && !logYFlag) { - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, segs, PM_INT("ZeroWidth"), - L_ZERO, 0, 0); - if (tickFlag) { - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, &(segs[1]), PM_INT("ZeroWidth"), - L_ZERO, 0, 0); - } - } - else { - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, segs, PM_INT("GridSize"), - L_AXIS, 0, 0); - if (tickFlag) { - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, &(segs[1]), PM_INT("GridSize"), - L_AXIS, 0, 0); - } - } - } - - Xincr = (wi->dev_info.axis_pad + (wi->dev_info.axis_width * 7)) * - wi->XUnitsPerPixel; - Xstart = initGrid(wi->UsrOrgX, Xincr, logXFlag); - for (Xindex = Xstart; Xindex < wi->UsrOppX; Xindex = stepGrid()) { - Xspot = SCREENX(wi, Xindex); - /* Draw the grid line or tick marks */ - if (tickFlag && !(axisFlag && Xindex == Xstart)) { - segs[0].x1 = segs[0].x2 = segs[1].x1 = segs[1].x2 = Xspot; - segs[0].y1 = wi->XOrgY; - segs[0].y2 = wi->XOrgY + wi->dev_info.tick_len; - segs[1].y1 = wi->XOppY - wi->dev_info.tick_len; - segs[1].y2 = wi->XOppY; - } - else { - segs[0].x1 = segs[0].x2 = Xspot; - segs[0].y1 = wi->XOrgY; - segs[0].y2 = wi->XOppY; - } - if ((ABS(Xindex) < ZERO_THRES) && !logXFlag) { - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, segs, PM_INT("ZeroWidth"), L_ZERO, 0, 0); - if (tickFlag) { - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, &(segs[1]), PM_INT("ZeroWidth"), - L_ZERO, 0, 0); - - } - } - else { - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, segs, PM_INT("GridSize"), L_AXIS, 0, 0); - if (tickFlag) { - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, &(segs[1]), PM_INT("GridSize"), L_AXIS, 0, 0); - } - } - } - /* Check to see if he wants a bounding box */ - if (PM_BOOL("BoundBox")) { - XSegment bb[4]; - - /* Draw bounding box */ - bb[0].x1 = bb[0].x2 = bb[1].x1 = bb[3].x2 = wi->XOrgX; - bb[0].y1 = bb[2].y2 = bb[3].y1 = bb[3].y2 = wi->XOrgY; - bb[1].x2 = bb[2].x1 = bb[2].x2 = bb[3].x1 = wi->XOppX; - bb[0].y2 = bb[1].y1 = bb[1].y2 = bb[2].y1 = wi->XOppY; - wi->dev_info.xg_seg(wi->dev_info.user_state, - 4, bb, PM_INT("GridSize"), L_AXIS, 0, 0); - } -} - -static double gridBase, - gridStep, - gridJuke[101]; -static int gridNJuke, - gridCurJuke; - -#define ADD_GRID(val) (gridJuke[gridNJuke++] = log10(val)) - -static double -initGrid(low, step, logFlag) -double low; /* desired low value */ -double step; /* desired step (user coords) */ -int logFlag; /* is axis logarithmic? */ -{ - double ratio, - x; - double RoundUp(), - stepGrid(); - - gridNJuke = gridCurJuke = 0; - gridJuke[gridNJuke++] = 0.0; - - if (logFlag) { - ratio = pow(10.0, step); - gridBase = floor(low); - gridStep = ceil(step); - if (ratio <= 3.0) { - if (ratio > 2.0) { - ADD_GRID(3.0); - } - else if (ratio > 1.333) { - ADD_GRID(2.0); - ADD_GRID(5.0); - } - else if (ratio > 1.25) { - ADD_GRID(1.5); - ADD_GRID(2.0); - ADD_GRID(3.0); - ADD_GRID(5.0); - ADD_GRID(7.0); - } - else { - for (x = 1.0; x < 10.0 && (x + .5) / (x + .4) >= ratio; x += .5) { - ADD_GRID(x + .1); - ADD_GRID(x + .2); - ADD_GRID(x + .3); - ADD_GRID(x + .4); - ADD_GRID(x + .5); - } - if (floor(x) != x) - ADD_GRID(x += .5); - for (; x < 10.0 && (x + 1.0) / (x + .5) >= ratio; x += 1.0) { - ADD_GRID(x + .5); - ADD_GRID(x + 1.0); - } - for (; x < 10.0 && (x + 1.0) / x >= ratio; x += 1.0) { - ADD_GRID(x + 1.0); - } - if (x == 7.0) { - gridNJuke--; - x = 6.0; - } - if (x < 7.0) { - ADD_GRID(x + 2.0); - } - if (x == 10.0) - gridNJuke--; - } - x = low - gridBase; - for (gridCurJuke = -1; x >= gridJuke[gridCurJuke + 1]; gridCurJuke++) { - } - } - } - else { - gridStep = RoundUp(step); - gridBase = floor(low / gridStep) * gridStep; - } - return (stepGrid()); -} - -static double -stepGrid() -{ - if (++gridCurJuke >= gridNJuke) { - gridCurJuke = 0; - gridBase += gridStep; - } - return (gridBase + gridJuke[gridCurJuke]); -} - -static double -RoundUp(val) -double val; /* Value */ - -/* - * This routine rounds up the given positive number such that - * it is some power of ten times either 1, 2, or 5. It is - * used to find increments for grid lines. - */ -{ - int exponent, - idx; - - exponent = (int) floor(nlog10(val)); - if (exponent < 0) { - for (idx = exponent; idx < 0; idx++) { - val *= 10.0; - } - } - else { - for (idx = 0; idx < exponent; idx++) { - val /= 10.0; - } - } - if (val > 5.0) - val = 10.0; - else if (val > 2.0) - val = 5.0; - else if (val > 1.0) - val = 2.0; - else - val = 1.0; - if (exponent < 0) { - for (idx = exponent; idx < 0; idx++) { - val /= 10.0; - } - } - else { - for (idx = 0; idx < exponent; idx++) { - val *= 10.0; - } - } - return val; -} - -static void -WriteValue(str, fmt, val, expv, logFlag) -char *str; /* String to write into */ -char *fmt; /* Format to print str */ -double val; /* Value to print */ -int expv; /* Exponent */ -int logFlag; /* Is this a log axis? */ - -/* - * Writes the value provided into the string in a fixed format - * consisting of seven characters. The format is: - * -ddd.dd - */ -{ - int idx; - - if (logFlag) { - if (val == floor(val)) { - if (strcmp(fmt, "%.2f") == 0) - fmt = "%.0e"; - val = pow(10.0, val); - } - else { - if (strcmp(fmt, "%.2f") == 0) - fmt = "%.2g"; - val = pow(10.0, val - floor(val)); - } - } - else { - if (expv < 0) { - for (idx = expv; idx < 0; idx++) { - val *= 10.0; - } - } - else { - for (idx = 0; idx < expv; idx++) { - val /= 10.0; - } - } - } - if (strchr(fmt, 'd') || strchr(fmt, 'x')) - (void) sprintf(str, fmt, (int) val); - else - (void) sprintf(str, fmt, val); -} - - -#define LEFT_CODE 0x01 -#define RIGHT_CODE 0x02 -#define BOTTOM_CODE 0x04 -#define TOP_CODE 0x08 - -/* Clipping algorithm from Neumann and Sproull by Cohen and Sutherland */ -#define C_CODE(xval, yval, rtn) \ -rtn = 0; \ -if ((xval) < wi->UsrOrgX) rtn = LEFT_CODE; \ -else if ((xval) > wi->UsrOppX) rtn = RIGHT_CODE; \ -if ((yval) < wi->UsrOrgY) rtn |= BOTTOM_CODE; \ -else if ((yval) > wi->UsrOppY) rtn |= TOP_CODE - -void -EraseData(wi) -LocalWin *wi; - -/* - * This routine draws the data sets themselves using the macros - * for translating coordinates. - */ -{ - double sx1, - sy1, - sx2, - sy2, - tx = 0, - ty = 0; - int idx, - subindex; - int code1, - code2, - cd, - mark_inside; - int X_idx, StoreIDX; /* PW */ - XSegment *ptr; - PointList *thisList, - *lastList; - int markFlag, - pixelMarks, - bigPixel, - colorMark; - int noLines = PM_BOOL("NoLines"); - int lineWidth = PM_INT("LineWidth"); - - /* PW Suggests we Flush and set first */ - set_mark_flags(&markFlag, &pixelMarks, &bigPixel, &colorMark); - for (idx = 0; idx < MAXSETS; idx++) { - if (wi->DOrder == 0) - thisList = PlotData[idx].list; - else if (wi->DOrder == 1) - thisList = DataD1[idx].list; - else if (wi->DOrder == 2) - thisList = DataD2[idx].list; - else { - printf ("Internal Error differentiating - order > 2!\n"); - exit (1); - } - while (thisList) { - X_idx = 0; - for (subindex = 0; subindex < thisList->numPoints - 1; subindex++) { - /* Put segment in (sx1,sy1) (sx2,sy2) */ - sx1 = thisList->xvec[subindex]; - sy1 = thisList->yvec[subindex]; - sx2 = thisList->xvec[subindex + 1]; - sy2 = thisList->yvec[subindex + 1]; - /* Now clip to current window boundary */ - C_CODE(sx1, sy1, code1); - C_CODE(sx2, sy2, code2); - mark_inside = (code1 == 0); - while (code1 || code2) { - if (code1 & code2) - break; - cd = (code1 ? code1 : code2); - if (cd & LEFT_CODE) { /* Crosses left edge */ - ty = sy1 + (sy2 - sy1) * (wi->UsrOrgX - sx1) / - (sx2 - sx1); - tx = wi->UsrOrgX; - } - else if (cd & RIGHT_CODE) { /* Crosses right edge */ - ty = sy1 + (sy2 - sy1) * (wi->UsrOppX - sx1) / - (sx2 - sx1); - tx = wi->UsrOppX; - } - else if (cd & BOTTOM_CODE) {/* Crosses bottom edge */ - tx = sx1 + (sx2 - sx1) * (wi->UsrOrgY - sy1) / - (sy2 - sy1); - ty = wi->UsrOrgY; - } - else if (cd & TOP_CODE) { /* Crosses top edge */ - tx = sx1 + (sx2 - sx1) * (wi->UsrOppY - sy1) / - (sy2 - sy1); - ty = wi->UsrOppY; - } - if (cd == code1) { - sx1 = tx; - sy1 = ty; - C_CODE(sx1, sy1, code1); - } - else { - sx2 = tx; - sy2 = ty; - C_CODE(sx2, sy2, code2); - } - } - if (!code1 && !code2) { - /* Add segment to list */ - Xsegs[0][X_idx].x1 = Xsegs[1][X_idx].x1; - Xsegs[0][X_idx].y1 = Xsegs[1][X_idx].y1; - Xsegs[0][X_idx].x2 = Xsegs[1][X_idx].x2; - Xsegs[0][X_idx].y2 = Xsegs[1][X_idx].y2; - Xsegs[1][X_idx].x1 = SCREENX(wi, sx1); - Xsegs[1][X_idx].y1 = SCREENY(wi, sy1); - Xsegs[1][X_idx].x2 = SCREENX(wi, sx2); - Xsegs[1][X_idx].y2 = SCREENY(wi, sy2); - X_idx++; - } - - /* Draw markers if requested and they are in drawing region */ - if (markFlag && mark_inside) { - if (pixelMarks) { - if (bigPixel) { - wi->dev_info.xg_dot(wi->dev_info.user_state, - Xsegs[1][X_idx - 1].x1, - Xsegs[1][X_idx - 1].y1, - P_DOT, 0, idx % MAXATTR); - } - else { - wi->dev_info.xg_dot(wi->dev_info.user_state, - Xsegs[1][X_idx - 1].x1, - Xsegs[1][X_idx - 1].y1, - P_PIXEL, 0, PIXVALUE(idx)); - } - } - else { - /* Distinctive markers */ - wi->dev_info.xg_dot(wi->dev_info.user_state, - Xsegs[1][X_idx - 1].x1, - Xsegs[1][X_idx - 1].y1, - P_MARK, MARKSTYLE(idx), - PIXVALUE(idx)); - } - } - - /* Draw bar elements if requested */ - if (PM_BOOL("BarGraph")) { - int barPixels, - baseSpot; - XSegment line; - - barPixels = (int) ((PM_DBL("BarWidth") / - wi->XUnitsPerPixel) + 0.5); - if (barPixels <= 0) - barPixels = 1; - baseSpot = SCREENY(wi, PM_DBL("BarBase")); - line.x1 = line.x2 = Xsegs[1][X_idx - 1].x1 + - (int) ((PM_DBL("BarOffset") * idx / - wi->XUnitsPerPixel) + 0.5); - if (PM_BOOL("StackGraph") && idx != 0) - line.y1 = Xsegs[0][X_idx - 1].y1; - else - line.y1 = baseSpot; - line.y2 = Xsegs[1][X_idx - 1].y1; - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, &line, barPixels, L_VAR, - LINESTYLE(idx), PIXVALUE(idx)); - } - } - /* Handle last marker */ - if (markFlag && (thisList->numPoints > 0)) { - C_CODE(thisList->xvec[thisList->numPoints - 1], - thisList->yvec[thisList->numPoints - 1], - mark_inside); - if (mark_inside == 0) { - if (pixelMarks) { - if (bigPixel) { - wi->dev_info.xg_dot(wi->dev_info.user_state, - Xsegs[1][X_idx - 1].x2, - Xsegs[1][X_idx - 1].y2, - P_DOT, 0, idx % MAXATTR); - } - else { - wi->dev_info.xg_dot(wi->dev_info.user_state, - Xsegs[1][X_idx - 1].x2, - Xsegs[1][X_idx - 1].y2, - P_PIXEL, 0, PIXVALUE(idx)); - } - } - else { - /* Distinctive markers */ - wi->dev_info.xg_dot(wi->dev_info.user_state, - Xsegs[1][X_idx - 1].x2, - Xsegs[1][X_idx - 1].y2, - P_MARK, MARKSTYLE(idx), - PIXVALUE(idx)); - } - } - } - /* Handle last bar */ - if ((thisList->numPoints > 0) && PM_BOOL("BarGraph")) { - int barPixels, - baseSpot; - XSegment line; - - barPixels = (int) ((PM_DBL("BarWidth") / - wi->XUnitsPerPixel) + 0.5); - if (barPixels <= 0) - barPixels = 1; - baseSpot = SCREENY(wi, PM_DBL("BarBase")); - line.x1 = line.x2 = Xsegs[1][X_idx - 1].x2 + - (int) ((PM_DBL("BarOffset") * idx / - wi->XUnitsPerPixel) + 0.5); - if (PM_BOOL("StackGraph") && idx != 0) - line.y1 = Xsegs[0][X_idx - 1].y2; - else - line.y1 = baseSpot; - line.y2 = Xsegs[1][X_idx - 1].y2; - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, &line, barPixels, L_VAR, - LINESTYLE(idx), PIXVALUE(idx)); - } - - /* Erase segments */ - if ((thisList->numPoints > 0) && (!noLines) && (X_idx > 0)) { - ptr = Xsegs[1]; - while (X_idx > wi->dev_info.max_segs) { - wi->dev_info.xg_seg(wi->dev_info.user_state, - wi->dev_info.max_segs, ptr, - lineWidth, L_VAR, - 16, (int)(1)); - /*LINESTYLE(8), (int)(1));*/ - ptr += wi->dev_info.max_segs; - X_idx -= wi->dev_info.max_segs; - } - wi->dev_info.xg_seg(wi->dev_info.user_state, - X_idx, ptr, - lineWidth, L_VAR, - 16,(int)(1)); - } - /* Next subset */ - thisList = thisList->next; - } - } - XFlush (disp); -} - - -static void -DrawData(wi) -LocalWin *wi; - -/* - * This routine draws the data sets themselves using the macros - * for translating coordinates. - */ -{ - double sx1, - sy1, - sx2, - sy2, - tx = 0, - ty = 0; - int idx, - subindex; - int code1, - code2, - cd, - mark_inside; - int X_idx, StoreIDX; /* PW */ - XSegment *ptr; - PointList *thisList, - *lastList; - int markFlag, - pixelMarks, - bigPixel, - colorMark; - int noLines = PM_BOOL("NoLines"); - int lineWidth = PM_INT("LineWidth"); - /* PW */ - int theDelay; - - /* PW Suggests we Flush and set first */ - theDelay = PM_INT("DelayValue")*100000; - XFlush(disp); - if (PM_BOOL("Animate")) sleep(1); - set_mark_flags(&markFlag, &pixelMarks, &bigPixel, &colorMark); - for (idx = 0; idx < MAXSETS; idx++) { - if (wi->DOrder == 0) - thisList = PlotData[idx].list; - else if (wi->DOrder == 1) - thisList = DataD1[idx].list; - else if (wi->DOrder == 2) - thisList = DataD2[idx].list; - else { - printf ("Internal Error differentiating - order > 2!\n"); - exit (1); - } - while (thisList) { - X_idx = 0; - for (subindex = 0; subindex < thisList->numPoints - 1; subindex++) { - /* Put segment in (sx1,sy1) (sx2,sy2) */ - sx1 = thisList->xvec[subindex]; - sy1 = thisList->yvec[subindex]; - sx2 = thisList->xvec[subindex + 1]; - sy2 = thisList->yvec[subindex + 1]; - /* Now clip to current window boundary */ - C_CODE(sx1, sy1, code1); - C_CODE(sx2, sy2, code2); - mark_inside = (code1 == 0); - while (code1 || code2) { - if (code1 & code2) - break; - cd = (code1 ? code1 : code2); - if (cd & LEFT_CODE) { /* Crosses left edge */ - ty = sy1 + (sy2 - sy1) * (wi->UsrOrgX - sx1) / - (sx2 - sx1); - tx = wi->UsrOrgX; - } - else if (cd & RIGHT_CODE) { /* Crosses right edge */ - ty = sy1 + (sy2 - sy1) * (wi->UsrOppX - sx1) / - (sx2 - sx1); - tx = wi->UsrOppX; - } - else if (cd & BOTTOM_CODE) {/* Crosses bottom edge */ - tx = sx1 + (sx2 - sx1) * (wi->UsrOrgY - sy1) / - (sy2 - sy1); - ty = wi->UsrOrgY; - } - else if (cd & TOP_CODE) { /* Crosses top edge */ - tx = sx1 + (sx2 - sx1) * (wi->UsrOppY - sy1) / - (sy2 - sy1); - ty = wi->UsrOppY; - } - if (cd == code1) { - sx1 = tx; - sy1 = ty; - C_CODE(sx1, sy1, code1); - } - else { - sx2 = tx; - sy2 = ty; - C_CODE(sx2, sy2, code2); - } - } - if (!code1 && !code2) { - /* Add segment to list */ - Xsegs[0][X_idx].x1 = Xsegs[1][X_idx].x1; - Xsegs[0][X_idx].y1 = Xsegs[1][X_idx].y1; - Xsegs[0][X_idx].x2 = Xsegs[1][X_idx].x2; - Xsegs[0][X_idx].y2 = Xsegs[1][X_idx].y2; - Xsegs[1][X_idx].x1 = SCREENX(wi, sx1); - Xsegs[1][X_idx].y1 = SCREENY(wi, sy1); - Xsegs[1][X_idx].x2 = SCREENX(wi, sx2); - Xsegs[1][X_idx].y2 = SCREENY(wi, sy2); - X_idx++; - } - - /* Draw markers if requested and they are in drawing region */ - if (markFlag && mark_inside) { - if (pixelMarks) { - if (bigPixel) { - wi->dev_info.xg_dot(wi->dev_info.user_state, - Xsegs[1][X_idx - 1].x1, - Xsegs[1][X_idx - 1].y1, - P_DOT, 0, idx % MAXATTR); - } - else { - wi->dev_info.xg_dot(wi->dev_info.user_state, - Xsegs[1][X_idx - 1].x1, - Xsegs[1][X_idx - 1].y1, - P_PIXEL, 0, PIXVALUE(idx)); - } - } - else { - /* Distinctive markers */ - wi->dev_info.xg_dot(wi->dev_info.user_state, - Xsegs[1][X_idx - 1].x1, - Xsegs[1][X_idx - 1].y1, - P_MARK, MARKSTYLE(idx), - PIXVALUE(idx)); - } - } - - /* Draw bar elements if requested */ - if (PM_BOOL("BarGraph")) { - int barPixels, - baseSpot; - XSegment line; - - barPixels = (int) ((PM_DBL("BarWidth") / - wi->XUnitsPerPixel) + 0.5); - if (barPixels <= 0) - barPixels = 1; - baseSpot = SCREENY(wi, PM_DBL("BarBase")); - line.x1 = line.x2 = Xsegs[1][X_idx - 1].x1 + - (int) ((PM_DBL("BarOffset") * idx / - wi->XUnitsPerPixel) + 0.5); - if (PM_BOOL("StackGraph") && idx != 0) - line.y1 = Xsegs[0][X_idx - 1].y1; - else - line.y1 = baseSpot; - line.y2 = Xsegs[1][X_idx - 1].y1; - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, &line, barPixels, L_VAR, - LINESTYLE(idx), PIXVALUE(idx)); - } - } - /* Handle last marker */ - if (markFlag && (thisList->numPoints > 0)) { - C_CODE(thisList->xvec[thisList->numPoints - 1], - thisList->yvec[thisList->numPoints - 1], - mark_inside); - if (mark_inside == 0) { - if (pixelMarks) { - if (bigPixel) { - wi->dev_info.xg_dot(wi->dev_info.user_state, - Xsegs[1][X_idx - 1].x2, - Xsegs[1][X_idx - 1].y2, - P_DOT, 0, idx % MAXATTR); - } - else { - wi->dev_info.xg_dot(wi->dev_info.user_state, - Xsegs[1][X_idx - 1].x2, - Xsegs[1][X_idx - 1].y2, - P_PIXEL, 0, PIXVALUE(idx)); - } - } - else { - /* Distinctive markers */ - wi->dev_info.xg_dot(wi->dev_info.user_state, - Xsegs[1][X_idx - 1].x2, - Xsegs[1][X_idx - 1].y2, - P_MARK, MARKSTYLE(idx), - PIXVALUE(idx)); - } - } - } - /* Handle last bar */ - if ((thisList->numPoints > 0) && PM_BOOL("BarGraph")) { - int barPixels, - baseSpot; - XSegment line; - - barPixels = (int) ((PM_DBL("BarWidth") / - wi->XUnitsPerPixel) + 0.5); - if (barPixels <= 0) - barPixels = 1; - baseSpot = SCREENY(wi, PM_DBL("BarBase")); - line.x1 = line.x2 = Xsegs[1][X_idx - 1].x2 + - (int) ((PM_DBL("BarOffset") * idx / - wi->XUnitsPerPixel) + 0.5); - if (PM_BOOL("StackGraph") && idx != 0) - line.y1 = Xsegs[0][X_idx - 1].y2; - else - line.y1 = baseSpot; - line.y2 = Xsegs[1][X_idx - 1].y2; - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, &line, barPixels, L_VAR, - LINESTYLE(idx), PIXVALUE(idx)); - } - - /* Draw segments */ - if (!PM_BOOL("Animate")) { - if (thisList->numPoints > 0 && (!noLines) && (X_idx > 0)) { - ptr = Xsegs[1]; - while (X_idx > wi->dev_info.max_segs) { - wi->dev_info.xg_seg(wi->dev_info.user_state, - wi->dev_info.max_segs, ptr, - lineWidth, L_VAR, - LINESTYLE(idx), PIXVALUE(idx)); - ptr += wi->dev_info.max_segs; - X_idx -= wi->dev_info.max_segs; - } - wi->dev_info.xg_seg(wi->dev_info.user_state, - X_idx, ptr, - lineWidth, L_VAR, - LINESTYLE(idx), PIXVALUE(idx)); - } - } else { - StoreIDX = X_idx; - if (thisList->numPoints > 0 && (!noLines) && (X_idx > 0)) { - ptr = Xsegs[1]; - while (X_idx > wi->dev_info.max_segs) { - wi->dev_info.xg_seg(wi->dev_info.user_state, - wi->dev_info.max_segs, ptr, - lineWidth, L_VAR, - LINESTYLE(1), PIXVALUE(2)); - ptr += wi->dev_info.max_segs; - X_idx -= wi->dev_info.max_segs; - } - wi->dev_info.xg_seg(wi->dev_info.user_state, - X_idx, ptr, - lineWidth, L_VAR, - LINESTYLE(1), PIXVALUE(2)); - } - XFlush (disp); - for (X_idx=1;X_idxnumPoints > 0) && (!noLines) && (X_idx > 0)) { - ptr = Xsegs[1]; - while (X_idx > wi->dev_info.max_segs) { - wi->dev_info.xg_seg(wi->dev_info.user_state, - wi->dev_info.max_segs, ptr, - lineWidth, L_VAR, - 16, (int)(1)); - /*LINESTYLE(8), (int)(1));*/ - ptr += wi->dev_info.max_segs; - X_idx -= wi->dev_info.max_segs; - } - wi->dev_info.xg_seg(wi->dev_info.user_state, - X_idx, ptr, - lineWidth, L_VAR, - 16,(int)(1)); - } - } - /* Next subset */ - lastList = thisList; - thisList = thisList->next; - } /* End While */ - } - if (PM_BOOL("Animate")) { - X_idx = StoreIDX; - thisList = lastList; - if (thisList->numPoints > 0 && (!noLines) && (X_idx > 0)) { - ptr = Xsegs[1]; - while (X_idx > wi->dev_info.max_segs) { - wi->dev_info.xg_seg(wi->dev_info.user_state, - wi->dev_info.max_segs, ptr, - lineWidth, L_VAR, - LINESTYLE(1), PIXVALUE(2)); - ptr += wi->dev_info.max_segs; - X_idx -= wi->dev_info.max_segs; - } - wi->dev_info.xg_seg(wi->dev_info.user_state, - X_idx, ptr, - lineWidth, L_VAR, - LINESTYLE(1), PIXVALUE(2)); - } - } - XFlush (disp); -} - - - -static void -DrawLegend(wi) -LocalWin *wi; - -/* - * This draws a legend of the data sets displayed. Only those that - * will fit are drawn. - */ -{ - int idx, - spot, - lineLen, - oneLen, - incr; - XSegment leg_line; - int markFlag, - pixelMarks, - bigPixel, - colorMark; - - set_mark_flags(&markFlag, &pixelMarks, &bigPixel, &colorMark); - spot = wi->XOrgY; - lineLen = 0; - incr = 2 + wi->dev_info.axis_height + wi->dev_info.bdr_pad; - /* First pass draws the text */ - for (idx = 0; idx < MAXSETS; idx++) { - if ((PlotData[idx].list) && - (spot + wi->dev_info.axis_height + 2 < wi->XOppY)) { - /* Meets the criteria */ - oneLen = strlen(PlotData[idx].setName); - if (oneLen > lineLen) - lineLen = oneLen; - wi->dev_info.xg_text(wi->dev_info.user_state, - wi->XOppX + wi->dev_info.bdr_pad, - spot + 2, - PlotData[idx].setName, - T_UPPERLEFT, T_AXIS); - spot += incr; - } - } - lineLen = lineLen * wi->dev_info.axis_width; - leg_line.x1 = wi->XOppX + wi->dev_info.bdr_pad; - leg_line.x2 = leg_line.x1 + lineLen; - spot = wi->XOrgY; - /* second pass draws the lines */ - for (idx = 0; idx < MAXSETS; idx++) { - if ((PlotData[idx].list) && - (spot + wi->dev_info.axis_height + 2 < wi->XOppY)) { - leg_line.y1 = leg_line.y2 = spot - wi->dev_info.legend_pad; - if (PM_BOOL("BarGraph")) - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, &leg_line, - incr / 4, - L_VAR, LINESTYLE(idx), PIXVALUE(idx)); - if (!PM_BOOL("NoLines")) - wi->dev_info.xg_seg(wi->dev_info.user_state, - 1, &leg_line, 1, L_VAR, - LINESTYLE(idx), PIXVALUE(idx)); - if (markFlag && !pixelMarks) { - wi->dev_info.xg_dot(wi->dev_info.user_state, - leg_line.x1, leg_line.y1, - P_MARK, MARKSTYLE(idx), PIXVALUE(idx)); - - } - spot += incr; - } - } -} -static void -set_mark_flags(markFlag, pixelMarks, bigPixel, colorMark) -int *markFlag; -int *pixelMarks; -int *bigPixel; -int *colorMark; - -/* - * Determines the values of the old boolean flags based on the - * new values in the parameters database. - */ -{ - *markFlag = 0; - *pixelMarks = 0; - *colorMark = 0; - *bigPixel = 0; - if (PM_BOOL("Markers")) { - *markFlag = 1; - *pixelMarks = 0; - *colorMark = 0; - } - if (PM_BOOL("PixelMarkers")) { - *markFlag = 1; - *pixelMarks = 1; - *bigPixel = 0; - } - if (PM_BOOL("LargePixels")) { - *markFlag = 1; - *pixelMarks = 1; - *bigPixel = 1; - } - if (PM_BOOL("StyleMarkers")) { - *markFlag = 1; - *pixelMarks = 0; - *colorMark = 1; - } -} - -#undef DELAY diff --git a/xgraph/examples/Animation.xg b/xgraph/examples/Animation.xg deleted file mode 100644 index 28b57c714..000000000 --- a/xgraph/examples/Animation.xg +++ /dev/null @@ -1,2047 +0,0 @@ -"z gxx 0.0000 --0.05 0.997641723566 -0.05 0.997641723566 -0.15 0.997688420568 -0.25 0.997779058894 -0.35 0.997908396435 -0.45 0.998069206559 -0.55 0.998252945848 -0.65 0.998450501969 -0.75 0.998652931126 -0.85 0.998852103626 -0.95 0.999041196353 -1.05 0.999214997968 -1.15 0.999370021113 -1.25 0.999504441055 -1.35 0.99961789849 -1.45 0.999711213891 -1.55 0.999786061989 -1.65 0.999844649119 -1.75 0.999889425853 -1.85 0.999922855036 -1.95 0.999947243536 -2.05 0.999964636285 -2.15 0.999976764383 -2.25 0.999985035417 -2.35 0.999990553103 -2.45 0.999994154417 -2.55 0.999996454475 -2.65 0.999997892112 -2.75 0.999998771632 -2.85 0.999999298345 -2.95 0.999999607145 -3.05 0.999999784396 -3.15 0.999999884017 -3.25 0.999999938843 -3.35 0.999999968391 -3.45 0.999999983986 -3.55 0.999999992048 -3.65 0.999999996129 -3.75 0.999999998153 -3.85 0.999999999136 -3.95 0.999999999604 -4.05 0.999999999822 -4.15 0.999999999922 -4.25 0.999999999966 -4.35 0.999999999986 -4.45 0.999999999994 -4.55 0.999999999998 -4.65 0.999999999999 -4.75 1 -4.85 1 -4.95 1 -5.05 1 -5.15 1 -5.25 1 -5.35 1 -5.45 1 -5.55 1 -5.65 1 -5.75 1 -5.85 1 -5.95 1 -6.05 1 -6.15 1 -6.25 1 - -"z gxx 0.4000 --0.05 0.999706545368 -0.05 0.999706545368 -0.15 0.999703189866 -0.25 0.999697158584 -0.35 0.999689702454 -0.45 0.999682446531 -0.55 0.99967713991 -0.65 0.999675396322 -0.75 0.999678468315 -0.85 0.999687088943 -0.95 0.999701400259 -1.05 0.999720971099 -1.15 0.999744891364 -1.25 0.999771918998 -1.35 0.999800650755 -1.45 0.99982968859 -1.55 0.999857779075 -1.65 0.999883911568 -1.75 0.999907369953 -1.85 0.999927740814 -1.95 0.999944886619 -2.05 0.999958895546 -2.15 0.99997001998 -2.25 0.999978614149 -2.35 0.999985078609 -2.45 0.999989816136 -2.55 0.9999932007 -2.65 0.999995558932 -2.75 0.999997162077 -2.85 0.999998225739 -2.95 0.999998914708 -3.05 0.999999350481 -3.15 0.999999619677 -3.25 0.999999782118 -3.35 0.999999877881 -3.45 0.999999933038 -3.55 0.999999964081 -3.65 0.999999981153 -3.75 0.999999990328 -3.85 0.999999995145 -3.95 0.999999997617 -4.05 0.999999998857 -4.15 0.999999999464 -4.25 0.999999999754 -4.35 0.99999999989 -4.45 0.999999999952 -4.55 0.999999999979 -4.65 0.999999999991 -4.75 0.999999999997 -4.85 0.999999999999 -4.95 0.999999999999 -5.05 1 -5.15 1 -5.25 1 -5.35 1 -5.45 1 -5.55 1 -5.65 1 -5.75 1 -5.85 1 -5.95 1 -6.05 1 -6.15 1 -6.25 1 - -"z gxx 0.8000 --0.05 1.00168649912 -0.05 1.00168649912 -0.15 1.00165315178 -0.25 1.00158810871 -0.35 1.00149456166 -0.45 1.00137702664 -0.55 1.0012410381 -0.65 1.00109277503 -0.75 1.0009386473 -0.85 1.0007848762 -0.95 1.00063710507 -1.05 1.00050007451 -1.15 1.00037739036 -1.25 1.00027140257 -1.35 1.0001831999 -1.45 1.00011271162 -1.55 1.00005889523 -1.65 1.00001998058 -1.75 0.999993737256 -1.85 0.99997773346 -1.95 0.999969560755 -2.05 0.999967007472 -2.15 0.999968173395 -2.25 0.99997152711 -2.35 0.999975914157 -2.45 0.999980528192 -2.55 0.999984858695 -2.65 0.999988627862 -2.75 0.999991726898 -2.85 0.99999415883 -2.95 0.999995991794 -3.05 0.999997324147 -3.15 0.999998260776 -3.25 0.999998898827 -3.35 0.999999320622 -3.45 0.999999591481 -3.55 0.999999760565 -3.65 0.999999863223 -3.75 0.999999923859 -3.85 0.999999958708 -3.95 0.999999978195 -4.05 0.999999988795 -4.15 0.999999994402 -4.25 0.999999997284 -4.35 0.999999998723 -4.45 0.999999999419 -4.55 0.999999999745 -4.65 0.999999999893 -4.75 0.999999999957 -4.85 0.999999999984 -4.95 0.999999999994 -5.05 0.999999999998 -5.15 1 -5.25 1 -5.35 1 -5.45 1 -5.55 1 -5.65 1 -5.75 1 -5.85 1 -5.95 1 -6.05 1 -6.15 1 -6.25 1 - -"z gxx 1.2000 --0.05 1.00056326055 -0.05 1.00056326055 -0.15 1.00056743515 -0.25 1.0005748418 -0.35 1.00058372348 -0.45 1.00059174651 -0.55 1.00059631438 -0.65 1.00059491387 -0.75 1.00058544618 -0.85 1.00056649945 -0.95 1.00053752851 -1.05 1.00049892181 -1.15 1.00045195153 -1.25 1.00039861908 -1.35 1.00034142147 -1.45 1.00028307379 -1.55 1.00022622675 -1.65 1.00017321584 -1.75 1.00012587166 -1.85 1.00008540902 -1.95 1.00005239935 -2.05 1.00002681844 -2.15 1.00000815161 -2.25 0.999995533173 -2.35 0.999987896122 -2.45 0.999984111019 -2.55 0.999983099283 -2.65 0.999983912836 -2.75 0.999985778855 -2.85 0.999988113565 -2.95 0.999990512212 -3.05 0.999992723594 -3.15 0.999994617089 -3.25 0.999996148637 -3.35 0.999997330097 -3.45 0.99999820445 -3.55 0.999998827603 -3.65 0.999999256404 -3.75 0.999999541783 -3.85 0.999999725685 -3.95 0.999999840513 -4.05 0.999999910005 -4.15 0.999999950763 -4.25 0.999999973921 -4.35 0.999999986657 -4.45 0.999999993427 -4.55 0.999999996897 -4.65 0.999999998608 -4.75 0.999999999414 -4.85 0.999999999774 -4.95 0.999999999925 -5.05 0.999999999983 -5.15 1 -5.25 1.00000000001 -5.35 1 -5.45 1 -5.55 1 -5.65 1 -5.75 1 -5.85 1 -5.95 1 -6.05 1 -6.15 1 -6.25 1 - -"z gxx 1.6000 --0.05 0.999439372017 -0.05 0.999439372017 -0.15 0.999453567533 -0.25 0.999481407271 -0.35 0.999521800571 -0.45 0.999573143429 -0.55 0.999633362661 -0.65 0.999699983451 -0.75 0.99977022529 -0.85 0.999841129161 -0.95 0.999909714406 -1.05 0.999973157638 -1.15 1.00002897955 -1.25 1.00007522019 -1.35 1.00011058077 -1.45 1.0001345119 -1.55 1.00014723342 -1.65 1.00014968017 -1.75 1.00014337862 -1.85 1.00013026949 -1.95 1.00011249951 -2.05 1.00009220946 -2.15 1.00007134506 -2.25 1.00005151225 -2.35 1.00003388989 -2.45 1.00001920321 -2.55 1.00000775189 -2.65 0.999999479451 -2.75 0.999994067159 -2.85 0.999991034962 -2.95 0.999989834944 -3.05 0.999989927085 -3.15 0.999990832307 -3.25 0.999992162374 -3.35 0.999993629722 -3.45 0.999995042252 -3.55 0.999996288714 -3.65 0.999997319823 -3.75 0.999998129102 -3.85 0.999998736058 -3.95 0.999999173002 -4.05 0.999999475802 -4.15 0.999999678169 -4.25 0.999999808737 -4.35 0.999999890099 -4.45 0.999999939057 -4.55 0.99999996748 -4.65 0.999999983377 -4.75 0.999999991918 -4.85 0.999999996308 -4.95 0.999999998452 -5.05 0.999999999435 -5.15 0.999999999848 -5.25 0.999999999999 -5.35 1.00000000004 -5.45 1.00000000004 -5.55 1.00000000003 -5.65 1.00000000002 -5.75 1.00000000001 -5.85 1.00000000001 -5.95 1 -6.05 1 -6.15 1 -6.25 1 - -"z gxx 2.0000 --0.05 0.999647797461 -0.05 0.999647797461 -0.15 0.999648883773 -0.25 0.999651219097 -0.35 0.999655123308 -0.45 0.999661057802 -0.55 0.999669592669 -0.65 0.999681350727 -0.75 0.999696927112 -0.85 0.999716790007 -0.95 0.999741175181 -1.05 0.999769991953 -1.15 0.999802759484 -1.25 0.999838589201 -1.35 0.999876222335 -1.45 0.999914122325 -1.55 0.999950612281 -1.65 0.999984039629 -1.75 1.00001294507 -1.85 1.00003621191 -1.95 1.00005317472 -2.05 1.00006367259 -2.15 1.00006804087 -2.25 1.00006704475 -2.35 1.00006176663 -2.45 1.00005346586 -2.55 1.00004343213 -2.65 1.00003285338 -2.75 1.00002271447 -2.85 1.00001373638 -2.95 1.0000063577 -3.05 1.00000075358 -3.15 0.999996882125 -3.25 0.999994545918 -3.35 0.999993456697 -3.45 0.999993293575 -3.55 0.999993748489 -3.65 0.999994556316 -3.75 0.999995510115 -3.85 0.999996464086 -3.95 0.999997327898 -4.05 0.999998056119 -4.15 0.999998635963 -4.25 0.999999075652 -4.35 0.999999394767 -4.45 0.999999617133 -4.55 0.99999976617 -4.65 0.999999862331 -4.75 0.999999922058 -4.85 0.999999957737 -4.95 0.999999978194 -5.05 0.999999989413 -5.15 0.999999995263 -5.25 0.999999998134 -5.35 0.999999999434 -5.45 0.999999999956 -5.55 1.00000000012 -5.65 1.00000000014 -5.75 1.00000000011 -5.85 1.00000000008 -5.95 1.00000000005 -6.05 1.00000000003 -6.15 1.00000000002 -6.25 1 - -"z gxx 2.4000 --0.05 0.999971670716 -0.05 0.999971670716 -0.15 0.999970619145 -0.25 0.999968416496 -0.35 0.999964900001 -0.45 0.999959907436 -0.55 0.999953353536 -0.65 0.999945301631 -0.75 0.999936014799 -0.85 0.999925975673 -0.95 0.999915870222 -1.05 0.999906536952 -1.15 0.999898887826 -1.25 0.99989381065 -1.35 0.999892064732 -1.45 0.999894182731 -1.55 0.999900391572 -1.65 0.999910564035 -1.75 0.999924209704 -1.85 0.999940509292 -1.95 0.99995839044 -2.05 0.999976636775 -2.15 0.999994016513 -2.25 1.00000941336 -2.35 1.00002194167 -2.45 1.00003103015 -2.55 1.00003646304 -2.65 1.0000383748 -2.75 1.00003720147 -2.85 1.00003359874 -2.95 1.00002834128 -3.05 1.00002221983 -3.15 1.00001595126 -3.25 1.00001011283 -3.35 1.00000510622 -3.45 1.00000115137 -3.55 0.999998304968 -3.65 0.999996495651 -3.75 0.999995566862 -3.85 0.999995319215 -3.95 0.999995546402 -4.05 0.999996061278 -4.15 0.999996711312 -4.25 0.9999973845 -4.35 0.999998008024 -4.45 0.999998542315 -4.55 0.999998972993 -4.65 0.999999302614 -4.75 0.999999543468 -4.85 0.999999712041 -4.95 0.999999825249 -5.05 0.999999898238 -5.15 0.99999994339 -5.25 0.999999970139 -5.35 0.99999998526 -5.45 0.999999993364 -5.55 0.999999997434 -5.65 0.999999999308 -5.75 1.00000000006 -5.85 1.00000000029 -5.95 1.0000000003 -6.05 1.00000000024 -6.15 1.0000000002 -6.25 1 - -"z gxx 2.8000 --0.05 0.99999067393 -0.05 0.99999067393 -0.15 0.999992393611 -0.25 0.999995579289 -0.35 0.999999763045 -0.45 1.00000433299 -0.55 1.00000861973 -0.65 1.00001198277 -0.75 1.00001388345 -0.85 1.00001393635 -0.95 1.00001193788 -1.05 1.00000787509 -1.15 1.00000192024 -1.25 0.999994415846 -1.35 0.999985852584 -1.45 0.999976839757 -1.55 0.999968066438 -1.65 0.999960251596 -1.75 0.999954083659 -1.85 0.999950153304 -1.95 0.99994888674 -2.05 0.999950489182 -2.15 0.999954908649 -2.25 0.999961828295 -2.35 0.999970691494 -2.45 0.999980758539 -2.55 0.999991188335 -2.65 1.00000113398 -2.75 1.00000983842 -2.85 1.00001671631 -2.95 1.00002141018 -3.05 1.00002381374 -3.15 1.00002406029 -3.25 1.00002248054 -3.35 1.0000195385 -3.45 1.00001575764 -3.55 1.00001164953 -3.65 1.00000765556 -3.75 1.00000410859 -3.85 1.00000121676 -3.95 0.999999067613 -4.05 0.999997647523 -4.15 0.999996869989 -4.25 0.999996606254 -4.35 0.999996713074 -4.45 0.99999705428 -4.55 0.999997514752 -4.65 0.99999800708 -4.75 0.999998472312 -4.85 0.999998876656 -4.95 0.999999206048 -5.05 0.999999460156 -5.15 0.999999646895 -5.25 0.999999778065 -5.35 0.999999866276 -5.45 0.999999923079 -5.55 0.999999958063 -5.65 0.999999978606 -5.75 0.99999999005 -5.85 0.999999996052 -5.95 0.999999998998 -6.05 1.00000000039 -6.15 1.00000000119 -6.25 1 - -"z gxx 3.2000 --0.05 0.999936182767 -0.05 0.999936182767 -0.15 0.999938960441 -0.25 0.999944256037 -0.35 0.999951590966 -0.45 0.999960339755 -0.55 0.999969816366 -0.65 0.999979356473 -0.75 0.999988380691 -0.85 0.999996430752 -0.95 1.00000317856 -1.05 1.00000841463 -1.15 1.00001202569 -1.25 1.00001397149 -1.35 1.00001426813 -1.45 1.00001298137 -1.55 1.00001022964 -1.65 1.00000619339 -1.75 1.00000112542 -1.85 0.99999535672 -1.95 0.999989292589 -2.05 0.999983395616 -2.15 0.999978154431 -2.25 0.999974040183 -2.35 0.999971455666 -2.45 0.999970684522 -2.55 0.999971849181 -2.65 0.999974885766 -2.75 0.999979541959 -2.85 0.999985400178 -2.95 0.99999192407 -3.05 0.999998522128 -3.15 1.00000461908 -3.25 1.00000972412 -3.35 1.00001348559 -3.45 1.00001572392 -3.55 1.00001643866 -3.65 1.00001579008 -3.75 1.00001406014 -3.85 1.00001160101 -3.95 1.00000878075 -4.05 1.00000593516 -4.15 1.00000333256 -4.25 1.00000115467 -4.35 0.999999493715 -4.45 0.999998362612 -4.55 0.999997713744 -4.65 0.999997461281 -4.75 0.999997502656 -4.85 0.999997736136 -4.95 0.999998072949 -5.05 0.999998443791 -5.15 0.999998800528 -5.25 0.999999114455 -5.35 0.999999372556 -5.45 0.999999573051 -5.55 0.999999721152 -5.65 0.999999825587 -5.75 0.99999989609 -5.85 0.999999941847 -5.95 0.999999970746 -6.05 0.9999999892 -6.15 1.00000000236 -6.25 1 - -"z gxx 3.6000 --0.05 0.999905094072 -0.05 0.999905094072 -0.15 0.999908125223 -0.25 0.999913910281 -0.35 0.999921940887 -0.45 0.99993155871 -0.55 0.999942052773 -0.65 0.999952752025 -0.75 0.999963095834 -0.85 0.999972672736 -0.95 0.999981226621 -1.05 0.999988636927 -1.15 0.999994883417 -1.25 1.0000000066 -1.35 1.00000407248 -1.45 1.0000071468 -1.55 1.00000928041 -1.65 1.00001050495 -1.75 1.00001083704 -1.85 1.00001028851 -1.95 1.00000888084 -2.05 1.00000666153 -2.15 1.00000372015 -2.25 1.00000020141 -2.35 0.999996311803 -2.45 0.999992317179 -2.55 0.999988528802 -2.65 0.999985277873 -2.75 0.999982880538 -2.85 0.999981598024 -2.95 0.999981598348 -3.05 0.999982926681 -3.15 0.999985490607 -3.25 0.9999890642 -3.35 0.999993311643 -3.45 0.999997827525 -3.55 1.00000218786 -3.65 1.00000600377 -3.75 1.00000896911 -3.85 1.00001089446 -3.95 1.00001172242 -4.05 1.00001152254 -4.15 1.00001046836 -4.25 1.00000880172 -4.35 1.00000679182 -4.45 1.00000469632 -4.55 1.0000027307 -4.65 1.00000104935 -4.75 0.999999739381 -4.85 0.999998825401 -4.95 0.999998282122 -5.05 0.999998050828 -5.15 0.999998056127 -5.25 0.999998220279 -5.35 0.99999847357 -5.45 0.999998760341 -5.55 0.999999041141 -5.65 0.999999291968 -5.75 0.999999501757 -5.85 0.999999669152 -5.95 0.999999799345 -6.05 0.999999901475 -6.15 0.999999986749 -6.25 1 - -"z gxx 4.0000 --0.05 0.999887068806 -0.05 0.999887068806 -0.15 0.99989038182 -0.25 0.999896700184 -0.35 0.999905459624 -0.45 0.999915929261 -0.55 0.999927320036 -0.65 0.999938888575 -0.75 0.99995001735 -0.85 0.999960260166 -0.95 0.999969351697 -1.05 0.999977187847 -1.15 0.999983788285 -1.25 0.99998925306 -1.35 0.999993722721 -1.45 0.999997347295 -1.55 1.00000026563 -1.65 1.00000259378 -1.75 1.00000441998 -1.85 1.00000580359 -1.95 1.00000677657 -2.05 1.0000073465 -2.15 1.00000750155 -2.25 1.00000721763 -2.35 1.00000646836 -2.45 1.00000523736 -2.55 1.00000353225 -2.65 1.00000139816 -2.75 0.999998928116 -2.85 0.999996267459 -2.95 0.999993609619 -3.05 0.999991181971 -3.15 0.999989222373 -3.25 0.99998794911 -3.35 0.999987528878 -3.45 0.999988048492 -3.55 0.99998949591 -3.65 0.999991754847 -3.75 0.999994614956 -3.85 0.999997796739 -3.95 1.00000098759 -4.05 1.00000388314 -4.15 1.00000622709 -4.25 1.00000784265 -4.35 1.00000865068 -4.45 1.00000867185 -4.55 1.00000801368 -4.65 1.00000684572 -4.75 1.00000536856 -4.85 1.00000378255 -4.95 1.00000226174 -5.05 1.00000093638 -5.15 0.999999885442 -5.25 0.999999138304 -5.35 0.999998683371 -5.45 0.999998480517 -5.55 0.999998474455 -5.65 0.999998606641 -5.75 0.999998824274 -5.85 0.999999085814 -5.95 0.99999936319 -6.05 0.99999964128 -6.15 0.999999915417 -6.25 1 - -"z gxx 4.4000 --0.05 0.999871536909 -0.05 0.999871536909 -0.15 0.9998751867 -0.25 0.999882149165 -0.35 0.999891805215 -0.45 0.999903351211 -0.55 0.999915916701 -0.65 0.999928677858 -0.75 0.999940945863 -0.85 0.999952218184 -0.95 0.999962190985 -1.05 0.999970739672 -1.15 0.99997787965 -1.25 0.999983720181 -1.35 0.999988421646 -1.45 0.999992162246 -1.55 0.999995115892 -1.65 0.999997439936 -1.75 0.999999269909 -1.85 1.00000071826 -1.95 1.00000187481 -2.05 1.00000280764 -2.15 1.00000356372 -2.25 1.00000416956 -2.35 1.00000463195 -2.45 1.00000493943 -2.55 1.00000506493 -2.65 1.00000497021 -2.75 1.00000461229 -2.85 1.00000395232 -2.95 1.00000296608 -3.05 1.00000165528 -3.15 1.00000005757 -3.25 0.999998252937 -3.35 0.999996364103 -3.45 0.999994549236 -3.55 0.999992986618 -3.65 0.999991852687 -3.75 0.999991296576 -3.85 0.999991415496 -3.95 0.999992235639 -4.05 0.999993702668 -4.15 0.999995684271 -4.25 0.999997985135 -4.35 1.00000037233 -4.45 1.00000260702 -4.55 1.00000447715 -4.65 1.00000582533 -4.75 1.00000656718 -4.85 1.00000669732 -4.95 1.00000628262 -5.05 1.000005445 -5.15 1.00000433783 -5.25 1.00000312092 -5.35 1.00000193848 -5.45 1.00000090355 -5.55 1.00000009016 -5.65 0.99999953288 -5.75 0.999999232061 -5.85 0.999999162263 -5.95 0.999999281317 -6.05 0.999999538058 -6.15 0.999999877572 -6.25 1 - -"z gxx 4.8000 --0.05 0.999856338212 -0.05 0.999856338212 -0.15 0.999860328384 -0.25 0.999867944926 -0.35 0.999878518913 -0.45 0.99989118013 -0.55 0.999904982996 -0.65 0.999919028504 -0.75 0.999932560057 -0.85 0.99994502005 -0.95 0.999956064921 -1.05 0.999965545749 -1.15 0.999973467098 -1.25 0.999979937842 -1.35 0.999985125216 -1.45 0.999989218767 -1.55 0.999992406346 -1.65 0.999994860816 -1.75 0.999996734494 -1.85 0.999998158102 -1.95 0.999999241725 -2.05 1.00000007629 -2.15 1.00000073499 -2.25 1.00000127451 -2.35 1.00000173618 -2.45 1.00000214724 -2.55 1.00000252192 -2.65 1.00000286254 -2.75 1.00000316035 -2.85 1.00000339637 -2.95 1.00000354238 -3.05 1.00000356283 -3.15 1.00000341806 -3.25 1.00000306942 -3.35 1.0000024864 -3.45 1.0000016552 -3.55 1.00000058737 -3.65 0.999999326702 -3.75 0.999997952101 -3.85 0.999996574686 -3.95 0.999995328208 -4.05 0.99999435333 -4.15 0.999993777828 -4.25 0.999993695956 -4.35 0.999994150843 -4.45 0.99999512355 -4.55 0.999996531417 -4.65 0.999998236692 -4.75 1.0000000645 -4.85 1.00000182736 -4.95 1.00000335196 -5.05 1.00000450342 -5.15 1.00000520272 -5.25 1.00000543411 -5.35 1.00000524172 -5.45 1.00000471661 -5.55 1.00000397717 -5.65 1.00000314702 -5.75 1.00000233447 -5.85 1.00000161672 -5.95 1.00000103106 -6.05 1.00000057349 -6.15 1.00000020438 -6.25 1 - -"z gxx 5.2000 --0.05 0.999841264524 -0.05 0.999841264524 -0.15 0.999845585263 -0.25 0.999853838519 -0.35 0.99986530956 -0.45 0.999879066563 -0.55 0.999894093793 -0.65 0.999909421303 -0.75 0.999924227793 -0.85 0.999937902465 -0.95 0.999950062941 -1.05 0.999960536286 -1.15 0.999969316207 -1.25 0.999976510986 -1.35 0.999982294179 -1.45 0.999986865523 -1.55 0.999990424601 -1.65 0.999993156099 -1.75 0.999995223575 -1.85 0.999996768283 -1.95 0.99999791032 -2.05 0.999998750413 -2.15 0.999999371606 -2.25 0.999999840775 -2.35 1.00000021007 -2.45 1.00000051852 -2.55 1.00000079373 -2.65 1.00000105379 -2.75 1.00000130905 -2.85 1.00000156366 -2.95 1.00000181668 -3.05 1.00000206266 -3.15 1.00000229157 -3.25 1.00000248838 -3.35 1.00000263253 -3.45 1.00000269794 -3.55 1.00000265409 -3.65 1.00000246886 -3.75 1.00000211336 -3.85 1.00000156861 -3.95 1.00000083297 -4.05 0.999999928967 -4.15 0.99999890747 -4.25 0.999997847563 -4.35 0.999996850903 -4.45 0.999996030636 -4.55 0.999995496134 -4.65 0.999995335957 -4.75 0.999995602121 -4.85 0.99999629877 -4.95 0.999997377727 -5.05 0.999998742173 -5.15 1.00000025817 -5.25 1.00000177214 -5.35 1.00000313115 -5.45 1.00000420232 -5.55 1.00000488788 -5.65 1.00000513351 -5.75 1.00000492946 -5.85 1.00000430555 -5.95 1.00000332246 -6.05 1.00000206235 -6.15 1.00000062106 -6.25 1 - -"z gxx 5.6000 --0.05 0.999826307736 -0.05 0.999826307736 -0.15 0.999830947464 -0.25 0.999839816339 -0.35 0.999852157454 -0.45 0.99986698176 -0.55 0.999883207585 -0.65 0.999899797336 -0.75 0.99991586699 -0.85 0.999930753191 -0.95 0.999944034379 -1.05 0.999955512725 -1.15 0.999965170218 -1.25 0.999973114069 -1.35 0.999979524257 -1.45 0.999984611345 -1.55 0.999988587606 -1.65 0.999991650506 -1.75 0.999993975435 -1.85 0.999995714086 -1.95 0.99999699554 -2.05 0.99999792821 -2.15 0.999998601796 -2.25 0.99999908907 -2.35 0.999999447599 -2.45 0.99999972154 -2.55 0.999999943556 -2.65 1.00000013678 -2.75 1.00000031676 -2.85 1.00000049315 -2.95 1.00000067133 -3.05 1.00000085357 -3.15 1.00000104 -3.25 1.00000122925 -3.35 1.00000141872 -3.45 1.00000160438 -3.55 1.00000178027 -3.65 1.00000193749 -3.75 1.00000206322 -3.85 1.00000214 -3.95 1.00000214584 -4.05 1.00000205594 -4.15 1.00000184606 -4.25 1.00000149778 -4.35 1.00000100484 -4.45 1.00000037927 -4.55 0.999999655616 -4.65 0.999998891719 -4.75 0.999998164588 -4.85 0.999997561304 -4.95 0.999997165783 -5.05 0.999997043446 -5.15 0.999997226696 -5.25 0.999997704364 -5.35 0.999998417943 -5.45 0.999999266414 -5.55 1.00000011993 -5.65 1.00000084071 -5.75 1.00000130785 -5.85 1.00000144117 -5.95 1.00000121929 -6.05 1.00000068742 -6.15 0.999999952513 -6.25 1 - -"z gxx 6.0000 --0.05 0.999811469634 -0.05 0.999811469634 -0.15 0.999816416617 -0.25 0.99982587964 -0.35 0.99983906315 -0.45 0.999854925126 -0.55 0.999872322037 -0.65 0.999890151797 -0.75 0.999907469428 -0.85 0.999923559367 -0.95 0.999937960057 -1.05 0.999950447274 -1.15 0.99996098962 -1.25 0.99996969183 -1.35 0.999976739436 -1.45 0.9999823536 -1.55 0.999986759651 -1.65 0.999990168665 -1.75 0.999992768969 -1.85 0.999994723877 -1.95 0.999996172515 -2.05 0.999997231739 -2.15 0.999997998177 -2.25 0.999998550161 -2.35 0.999998949642 -2.45 0.999999244212 -2.55 0.999999469286 -2.65 0.999999650348 -2.75 0.999999805134 -2.85 0.999999945583 -2.95 1.00000007946 -3.05 1.00000021163 -3.15 1.00000034494 -3.25 1.00000048085 -3.35 1.00000061994 -3.45 1.00000076222 -3.55 1.00000090746 -3.65 1.00000105546 -3.75 1.00000120613 -3.85 1.00000135927 -3.95 1.00000151403 -4.05 1.00000166781 -4.15 1.0000018148 -4.25 1.00000194436 -4.35 1.00000203985 -4.45 1.00000207833 -4.55 1.00000203177 -4.65 1.00000187011 -4.75 1.000001566 -4.85 1.00000110068 -4.95 1.00000047002 -5.05 0.999999689382 -5.15 0.999998796383 -5.25 0.99999785056 -5.35 0.999996929747 -5.45 0.999996123291 -5.55 0.999995522758 -5.65 0.999995211099 -5.75 0.99999525152 -5.85 0.999995677462 -5.95 0.999996485177 -6.05 0.999997630221 -6.15 0.999999028875 -6.25 1 - -"z gxx 6.4000 --0.05 0.999796751607 -0.05 0.999796751607 -0.15 0.999801994152 -0.25 0.999812029882 -0.35 0.999826028034 -0.45 0.999842897789 -0.55 0.999861437799 -0.65 0.99988048465 -0.75 0.999899034248 -0.85 0.999916319229 -0.95 0.99993183725 -1.05 0.999945336124 -1.15 0.999956769209 -1.25 0.999966237049 -1.35 0.999973929428 -1.45 0.999980077342 -1.55 0.999984918939 -1.65 0.999988679093 -1.75 0.99999155956 -1.85 0.999993735954 -1.95 0.999995358222 -2.05 0.999996552475 -2.15 0.999997423064 -2.25 0.999998054614 -2.35 0.999998514047 -2.45 0.999998852746 -2.55 0.999999108883 -2.65 0.999999309856 -2.75 0.999999474685 -2.85 0.999999616221 -2.95 0.999999743036 -3.05 0.999999860945 -3.15 0.999999974139 -3.25 1.00000008596 -3.35 1.00000019937 -3.45 1.00000031717 -3.55 1.00000044205 -3.65 1.00000057642 -3.75 1.00000072219 -3.85 1.00000088033 -3.95 1.00000105038 -4.05 1.00000122974 -4.15 1.00000141282 -4.25 1.00000159013 -4.35 1.00000174736 -4.45 1.00000186476 -4.55 1.00000191727 -4.65 1.00000187577 -4.75 1.00000170996 -4.85 1.00000139316 -4.95 1.00000090863 -5.05 1.00000025689 -5.15 0.999999462225 -5.25 0.99999857681 -5.35 0.999997680271 -5.45 0.999996873505 -5.55 0.999996266551 -5.65 0.999995961846 -5.75 0.999996035684 -5.85 0.999996521584 -5.95 0.999997399381 -6.05 0.999998592963 -6.15 0.999999977902 -6.25 1 - -"z gxx 6.8000 --0.05 0.999782154508 -0.05 0.999782154508 -0.15 0.999787681046 -0.25 0.999798268212 -0.35 0.999813053361 -0.45 0.999830900941 -0.55 0.999850555774 -0.65 0.999870796299 -0.75 0.999890561234 -0.85 0.999909031949 -0.95 0.999925664641 -1.05 0.999940177674 -1.15 0.999952507313 -1.25 0.99996274812 -1.35 0.999971092698 -1.45 0.999977780926 -1.55 0.999983063317 -1.65 0.999987178484 -1.75 0.999990341838 -1.85 0.999992741656 -1.95 0.999994539134 -2.05 0.999995870065 -2.15 0.999996846946 -2.25 0.999997561122 -2.35 0.999998084955 -2.45 0.999998474151 -2.55 0.999998770264 -2.65 0.999999003304 -2.75 0.99999919431 -2.85 0.999999357724 -2.95 0.999999503429 -3.05 0.999999638376 -3.15 0.999999767772 -3.25 0.999999895816 -3.35 1.00000002601 -3.45 1.00000016109 -3.55 1.00000030257 -3.65 1.00000045005 -3.75 1.00000060038 -3.85 1.00000074679 -3.95 1.00000087847 -4.05 1.00000098063 -4.15 1.00000103565 -4.25 1.00000102528 -4.35 1.00000093402 -4.45 1.00000075329 -4.55 1.0000004858 -4.65 1.00000014893 -4.75 0.999999776076 -4.85 0.999999414899 -4.95 0.999999121756 -5.05 0.999998952748 -5.15 0.999998952538 -5.25 0.999999143188 -5.35 0.999999515758 -5.45 1.00000002724 -5.55 1.00000060453 -5.65 1.00000115544 -5.75 1.00000158516 -5.85 1.00000181467 -5.95 1.00000179719 -6.05 1.00000152872 -6.15 1.00000105003 -6.25 1 - -"z gxx 7.2000 --0.05 0.999767678796 -0.05 0.999767678796 -0.15 0.999773477942 -0.25 0.999784595563 -0.35 0.999800140316 -0.45 0.999818935847 -0.55 0.999839677048 -0.65 0.999861087396 -0.75 0.999882050422 -0.85 0.999901696905 -0.95 0.999919441057 -1.05 0.999934970412 -1.15 0.999948202349 -1.25 0.999959223646 -1.35 0.999968228212 -1.45 0.999975463755 -1.55 0.999981192581 -1.65 0.999985666893 -1.75 0.999989115894 -1.85 0.999991740852 -1.95 0.999993714607 -2.05 0.99999518305 -2.15 0.999996267242 -2.25 0.999997065672 -2.35 0.99999765662 -2.45 0.999998100679 -2.55 0.999998443449 -2.65 0.999998718304 -2.75 0.999998949043 -2.85 0.999999152241 -2.95 0.999999339129 -3.05 0.999999516916 -3.15 0.999999689545 -3.25 0.999999857946 -3.35 1.00000001994 -3.45 1.00000016999 -3.55 1.00000029916 -3.65 1.00000039538 -3.75 1.00000044457 -3.85 1.00000043254 -3.95 1.00000034775 -4.05 1.00000018479 -4.15 0.999999947806 -4.25 0.999999653354 -4.35 0.999999331579 -4.45 0.999999025033 -4.55 0.999998784608 -4.65 0.9999986627 -4.75 0.999998704429 -4.85 0.999998938409 -4.95 0.99999936899 -5.05 0.999999971876 -5.15 1.00000069451 -5.25 1.00000146163 -5.35 1.00000218524 -5.45 1.00000277721 -5.55 1.00000316213 -5.65 1.00000328799 -5.75 1.00000313298 -5.85 1.00000270743 -5.95 1.00000205124 -6.05 1.00000122764 -6.15 1.00000031464 -6.25 1 - -"z gxx 7.6000 --0.05 0.99975332464 -0.05 0.99975332464 -0.15 0.999759385254 -0.25 0.999771012738 -0.35 0.999787290086 -0.45 0.999807003906 -0.55 0.999828802953 -0.65 0.999851358899 -0.75 0.999873502161 -0.85 0.999894313733 -0.95 0.999913165475 -1.05 0.999929712849 -1.15 0.999943852633 -1.25 0.99995566203 -1.35 0.999965334704 -1.45 0.999973125071 -1.55 0.999979306597 -1.65 0.999984144896 -1.75 0.999987883156 -1.85 0.999990736088 -1.95 0.999992888798 -2.05 0.999994497996 -2.15 0.999995694054 -2.25 0.999996583327 -2.35 0.999997250593 -2.45 0.999997761611 -2.55 0.999998165775 -2.65 0.99999849872 -2.75 0.999998784718 -2.85 0.999999038715 -2.95 0.999999267949 -3.05 0.999999473211 -3.15 0.999999649938 -3.25 0.999999789379 -3.35 0.999999880139 -3.45 0.999999910274 -3.55 0.999999870018 -3.65 0.999999754955 -3.75 0.999999569193 -3.85 0.999999327882 -3.95 0.999999058287 -4.05 0.999998798691 -4.15 0.999998594715 -4.25 0.999998493139 -4.35 0.999998533986 -4.45 0.999998742219 -4.55 0.999999120847 -4.65 0.999999647201 -4.75 1.00000027371 -4.85 1.00000093357 -4.95 1.0000015506 -5.05 1.00000205152 -5.15 1.00000237822 -5.25 1.0000024974 -5.35 1.00000240577 -5.45 1.00000212962 -5.55 1.00000171906 -5.65 1.00000123823 -5.75 1.00000075332 -5.85 1.00000032103 -5.95 0.999999979407 -6.05 0.999999742832 -6.15 0.999999601983 -6.25 1 - -"z gxx 8.0000 --0.05 0.99973909285 -0.05 0.99973909285 -0.15 0.999745404078 -0.25 0.999757521302 -0.35 0.999774504712 -0.45 0.999795107469 -0.55 0.999817935843 -0.65 0.999841612819 -0.75 0.999864917828 -0.85 0.999886883019 -0.95 0.999906837705 -1.05 0.999924404207 -1.15 0.999939457127 -1.25 0.999952062399 -1.35 0.99996241197 -1.45 0.999970765913 -1.55 0.99997740833 -1.65 0.999982618239 -1.75 0.999986653217 -1.85 0.99998974208 -1.95 0.999992082922 -2.05 0.999993843798 -2.15 0.999995164444 -2.25 0.999996158324 -2.35 0.999996914819 -2.45 0.999997501568 -2.55 0.999997966978 -2.65 0.999998342909 -2.75 0.999998647513 -2.85 0.999998888225 -2.95 0.999999064966 -3.05 0.999999173573 -3.15 0.999999209454 -3.25 0.99999917129 -3.35 0.999999064426 -3.45 0.999998903425 -3.55 0.999998713162 -3.65 0.999998527863 -3.75 0.999998387822 -3.85 0.999998333902 -3.95 0.999998400553 -4.05 0.999998608597 -4.15 0.999998959346 -4.25 0.999999431639 -4.35 0.999999982889 -4.45 1.00000055443 -4.55 1.00000108046 -4.65 1.00000149884 -4.75 1.00000176165 -4.85 1.00000184322 -4.95 1.00000174396 -5.05 1.00000148934 -5.15 1.00000112447 -5.25 1.00000070549 -5.35 1.00000028979 -5.45 0.999999926992 -5.55 0.999999652338 -5.65 0.999999483455 -5.75 0.999999420687 -5.85 0.999999450398 -5.95 0.999999550041 -6.05 0.999999693578 -6.15 0.999999855935 -6.25 1 - -"z gxx 8.4000 --0.05 0.999724995636 -0.05 0.999724995636 -0.15 0.999731546881 -0.25 0.999744134131 -0.35 0.999761797456 -0.45 0.999783259964 -0.55 0.999807088963 -0.65 0.999831861823 -0.75 0.999856309196 -0.85 0.99987941551 -0.95 0.999900467606 -1.05 0.999919053898 -1.15 0.999935025553 -1.25 0.999948435851 -1.35 0.999959473797 -1.45 0.999968404251 -1.55 0.999975521445 -1.65 0.999981117512 -1.75 0.999985464087 -1.85 0.99998880334 -1.95 0.999991344798 -2.05 0.999993265174 -2.15 0.999994709595 -2.25 0.999995793537 -2.35 0.999996605369 -2.45 0.999997209586 -2.55 0.999997650827 -2.65 0.999997958618 -2.75 0.999998152618 -2.85 0.999998247977 -2.95 0.999998260265 -3.05 0.999998209366 -3.15 0.999998121696 -3.25 0.99999803025 -3.35 0.999997972262 -3.45 0.999997984688 -3.55 0.999998098222 -3.65 0.999998331059 -3.75 0.999998683823 -3.85 0.999999137128 -3.95 0.999999652708 -4.05 1.00000017838 -4.15 1.00000065611 -4.25 1.00000103174 -4.35 1.00000126426 -4.45 1.0000013328 -4.55 1.00000123976 -4.65 1.00000100969 -4.75 1.00000068415 -4.85 1.000000314 -4.95 0.999999950605 -5.05 0.999999637946 -5.15 0.999999406762 -5.25 0.999999271761 -5.35 0.999999231934 -5.45 0.999999273514 -5.55 0.999999374618 -5.65 0.99999951042 -5.75 0.999999657764 -5.85 0.999999798452 -5.95 0.999999920891 -6.05 1.00000002018 -6.15 1.00000009703 -6.25 1 - -"z gxx 8.8000 --0.05 0.99971114024 -0.05 0.99971114024 -0.15 0.999717920806 -0.25 0.999730958077 -0.35 0.999749274542 -0.45 0.999771566515 -0.55 0.999796365803 -0.65 0.999822207308 -0.75 0.999847775331 -0.85 0.999872008068 -0.95 0.999894150391 -1.05 0.999913756458 -1.15 0.999930653007 -1.25 0.999944879226 -1.35 0.999956619412 -1.45 0.999966141111 -1.55 0.99997374611 -1.65 0.999979736431 -1.75 0.999984393759 -1.85 0.999987968942 -1.95 0.999990678032 -2.05 0.999992702195 -2.15 0.999994189828 -2.25 0.999995260098 -2.35 0.999996007537 -2.45 0.999996507377 -2.55 0.999996821172 -2.65 0.999997002026 -2.75 0.999997098651 -2.85 0.999997157569 -2.95 0.999997223034 -3.05 0.999997334732 -3.15 0.999997523841 -3.25 0.99999780852 -3.35 0.999998190184 -3.45 0.999998651894 -3.55 0.999999159789 -3.65 0.999999667815 -3.75 1.00000012511 -3.85 1.00000048475 -3.95 1.00000071195 -4.05 1.00000079016 -4.15 1.00000072357 -4.25 1.00000053579 -4.35 1.00000026505 -4.45 0.999999957062 -4.55 0.999999657215 -4.65 0.999999403591 -4.75 0.999999222011 -4.85 0.999999123846 -4.95 0.999999106622 -5.05 0.999999156942 -5.15 0.999999254844 -5.25 0.9999993785 -5.35 0.999999508308 -5.45 0.999999629643 -5.55 0.999999734009 -5.65 0.999999818707 -5.75 0.999999885467 -5.85 0.999999938592 -5.95 0.999999983163 -6.05 1.00000002366 -6.15 1.00000006317 -6.25 1 - -"z gxx 9.2000 --0.05 0.999698109438 -0.05 0.999698109438 -0.15 0.999705107486 -0.25 0.999718572456 -0.35 0.999737511753 -0.45 0.999760598163 -0.55 0.999786331528 -0.65 0.999813207575 -0.75 0.999839866835 -0.85 0.99986520278 -0.95 0.999888418519 -1.05 0.999909032767 -1.15 0.999926845258 -1.25 0.999941877256 -1.35 0.999954303489 -1.45 0.999964388696 -1.55 0.999972436739 -1.65 0.999978755022 -1.75 0.999983633029 -1.85 0.999987331763 -1.95 0.999990080479 -2.05 0.999992077622 -2.15 0.999993493833 -2.25 0.999994475576 -2.35 0.999995148496 -2.45 0.999995619876 -2.55 0.999995979816 -2.65 0.999996301032 -2.75 0.999996637586 -2.85 0.999997023228 -2.95 0.999997470335 -3.05 0.999997970469 -3.15 0.999998497308 -3.25 0.999999012116 -3.35 0.999999471238 -3.45 0.99999983443 -3.55 1.00000007249 -3.65 1.00000017265 -3.75 1.00000014075 -3.85 0.99999999977 -3.95 0.999999785279 -4.05 0.999999538955 -4.15 0.999999301509 -4.25 0.999999106507 -4.35 0.999998976124 -4.45 0.999998919397 -4.55 0.999998932991 -4.65 0.999999003985 -4.75 0.999999113867 -4.85 0.999999242786 -4.95 0.999999373165 -5.05 0.999999492107 -5.15 0.999999592331 -5.25 0.99999967181 -5.35 0.999999732503 -5.45 0.999999778705 -5.55 0.999999815479 -5.65 0.999999847481 -5.75 0.999999878301 -5.85 0.999999910264 -5.95 0.999999944574 -6.05 0.999999981611 -6.15 1.00000002124 -6.25 1 - -"z gxx 9.6000 --0.05 0.999687569929 -0.05 0.999687569929 -0.15 0.999694773473 -0.25 0.99970864338 -0.35 0.99972817416 -0.45 0.9997520178 -0.55 0.999778644868 -0.65 0.999806513941 -0.75 0.999834222549 -0.85 0.99986061853 -0.95 0.999884860514 -1.05 0.999906427479 -1.15 0.99992508696 -1.25 0.999940837301 -1.35 0.999953840333 -1.45 0.999964357971 -1.55 0.999972700983 -1.65 0.999979192833 -1.75 0.999984147351 -1.85 0.99998785673 -1.95 0.999990585894 -2.05 0.999992569922 -2.15 0.99999401242 -2.25 0.999995083904 -2.35 0.999995920203 -2.45 0.999996621455 -2.55 0.999997252528 -2.65 0.9999978456 -2.75 0.999998405295 -2.85 0.999998916227 -2.95 0.999999352176 -3.05 0.999999685654 -3.15 0.999999896343 -3.25 0.999999977035 -3.35 0.999999936195 -3.45 0.999999796955 -3.55 0.999999593131 -3.65 0.999999363362 -3.75 0.99999914479 -3.85 0.99999896757 -3.95 0.999998851186 -4.05 0.999998803064 -4.15 0.999998819429 -4.25 0.999998887974 -4.35 0.999998991545 -4.45 0.999999112008 -4.55 0.9999992335 -4.65 0.999999344535 -4.75 0.999999438784 -4.85 0.999999514661 -4.95 0.999999574106 -5.05 0.999999621044 -5.15 0.999999659947 -5.25 0.999999694778 -5.35 0.999999728419 -5.45 0.999999762543 -5.55 0.999999797791 -5.65 0.999999834098 -5.75 0.999999871046 -5.85 0.99999990815 -5.95 0.999999945047 -6.05 0.999999981592 -6.15 1.00000001786 -6.25 1 - -"z gxx 10.0000 --0.05 0.99967974117 -0.05 0.99967974117 -0.15 0.999687151956 -0.25 0.999701430438 -0.35 0.999721558327 -0.45 0.999746166539 -0.55 0.999773695383 -0.65 0.99980256438 -0.75 0.999831325322 -0.85 0.999858777354 -0.95 0.999884032213 -1.05 0.999906528685 -1.15 0.999926005031 -1.25 0.999942444068 -1.35 0.999956006895 -1.45 0.999966968566 -1.55 0.999975664022 -1.65 0.999982447419 -1.75 0.999987664069 -1.85 0.99999163224 -1.95 0.999994631835 -2.05 0.999996897801 -2.15 0.999998617236 -2.25 0.999999929953 -2.35 1.00000093255 -2.45 1.00000168567 -2.55 1.00000222379 -2.65 1.00000256591 -2.75 1.00000272569 -2.85 1.00000271943 -2.95 1.00000257063 -3.05 1.00000231112 -3.15 1.00000197893 -3.25 1.00000161413 -3.35 1.00000125393 -3.45 1.00000092825 -3.55 1.00000065678 -3.65 1.00000044801 -3.75 1.00000030012 -3.85 1.00000020352 -3.95 1.00000014422 -4.05 1.00000010724 -4.15 1.00000007957 -4.25 1.000000052 -4.35 1.00000001975 -4.45 0.999999982038 -4.55 0.999999940986 -4.65 0.999999900171 -4.75 0.99999986336 -4.85 0.999999833588 -4.95 0.999999812698 -5.05 0.999999801293 -5.15 0.999999798951 -5.25 0.999999804586 -5.35 0.999999816794 -5.45 0.999999834142 -5.55 0.999999855347 -5.65 0.999999879348 -5.75 0.999999905322 -5.85 0.999999932642 -5.95 0.999999960826 -6.05 0.999999989488 -6.15 1.0000000183 -6.25 1 - -"z gxx 10.4000 --0.05 0.999661510652 -0.05 0.999661510652 -0.15 0.999669161311 -0.25 0.999683912976 -0.35 0.999704733553 -0.45 0.999730232096 -0.55 0.999758818897 -0.65 0.999788876641 -0.75 0.999818916474 -0.85 0.999847697398 -0.95 0.999874296149 -1.05 0.99989812547 -1.15 0.999918908439 -1.25 0.999936622919 -1.35 0.999951432147 -1.45 0.999963615432 -1.55 0.9999735085 -1.65 0.999981458072 -1.75 0.999987791267 -1.85 0.999992798022 -1.95 0.999996723742 -2.05 0.99999976933 -2.15 1.00000209608 -2.25 1.00000383324 -2.35 1.00000508632 -2.45 1.0000059446 -2.55 1.00000648664 -2.65 1.0000067834 -2.75 1.00000689892 -2.85 1.00000688933 -2.95 1.00000680105 -3.05 1.0000066692 -3.15 1.00000651684 -3.25 1.00000635558 -3.35 1.00000618745 -3.45 1.0000060078 -3.55 1.00000580869 -3.65 1.00000558204 -3.75 1.00000532225 -3.85 1.00000502765 -3.95 1.0000047009 -4.05 1.00000434834 -4.15 1.00000397874 -4.25 1.00000360189 -4.35 1.00000322721 -4.45 1.00000286288 -4.55 1.00000251531 -4.65 1.0000021891 -4.75 1.00000188719 -4.85 1.00000161119 -4.95 1.00000136173 -5.05 1.00000113872 -5.15 1.00000094156 -5.25 1.00000076926 -5.35 1.00000062048 -5.45 1.00000049359 -5.55 1.00000038667 -5.65 1.00000029753 -5.75 1.00000022373 -5.85 1.00000016261 -5.95 1.00000011135 -6.05 1.00000006699 -6.15 1.00000002646 -6.25 1 - -"z gxx 10.8000 --0.05 0.999607100909 -0.05 0.999607100909 -0.15 0.999614985494 -0.25 0.999630203631 -0.35 0.999651719789 -0.45 0.999678136545 -0.55 0.999707853895 -0.65 0.999739240211 -0.75 0.999770788753 -0.85 0.999801237802 -0.95 0.999829641081 -1.05 0.999855385981 -1.15 0.999878167242 -1.25 0.999897930645 -1.35 0.999914803497 -1.45 0.999929026709 -1.55 0.999940898399 -1.65 0.999950733379 -1.75 0.999958838129 -1.85 0.999965497962 -1.95 0.999970972033 -2.05 0.999975492257 -2.15 0.999979263379 -2.25 0.999982462813 -2.35 0.99998523996 -2.45 0.999987715453 -2.55 0.999989980972 -2.65 0.999992100241 -2.75 0.999994111473 -2.85 0.999996031228 -2.95 0.999997859342 -3.05 0.999999584394 -3.15 1.00000118909 -3.25 1.00000265502 -3.35 1.00000396626 -3.45 1.00000511165 -3.55 1.0000060857 -3.65 1.00000688836 -3.75 1.00000752408 -3.85 1.00000800054 -3.95 1.0000083274 -4.05 1.00000851544 -4.15 1.00000857601 -4.25 1.00000852074 -4.35 1.0000083616 -4.45 1.00000811085 -4.55 1.00000778111 -4.65 1.00000738524 -4.75 1.00000693614 -4.85 1.00000644653 -4.95 1.00000592855 -5.05 1.0000053935 -5.15 1.0000048515 -5.25 1.00000431124 -5.35 1.00000377981 -5.45 1.00000326252 -5.55 1.00000276292 -5.65 1.00000228275 -5.75 1.00000182207 -5.85 1.0000013794 -5.95 1.00000095189 -6.05 1.00000053561 -6.15 1.00000012581 -6.25 1 - -"z gxx 11.2000 --0.05 0.999549794955 -0.05 0.999549794955 -0.15 0.999557734773 -0.25 0.999573070538 -0.35 0.999594778296 -0.45 0.999621471841 -0.55 0.999651556473 -0.65 0.999683395065 -0.75 0.999715461559 -0.85 0.999746460811 -0.95 0.999775401745 -1.05 0.999801621066 -1.15 0.999824764439 -1.25 0.999844738487 -1.35 0.999861648937 -1.45 0.999875738193 -1.55 0.999887330993 -1.65 0.999896791842 -1.75 0.999904494005 -1.85 0.999910797827 -1.95 0.99991603579 -2.05 0.999920502363 -2.15 0.999924447612 -2.25 0.999928074176 -2.35 0.999931537466 -2.45 0.999934948774 -2.55 0.999938380753 -2.65 0.999941874409 -2.75 0.99994544668 -2.85 0.999949097645 -2.95 0.999952816665 -3.05 0.999956586982 -3.15 0.999960388689 -3.25 0.999964200269 -3.35 0.999967999098 -3.45 0.999971761408 -3.55 0.999975462136 -3.65 0.99997907495 -3.75 0.999982572586 -3.85 0.999985927477 -3.95 0.999989112585 -4.05 0.999992102303 -4.15 0.999994873309 -4.25 0.99999740531 -4.35 0.999999681621 -4.45 1.00000168957 -4.55 1.00000342075 -4.65 1.00000487108 -4.75 1.00000604077 -4.85 1.00000693415 -4.95 1.00000755936 -5.05 1.00000792797 -5.15 1.00000805456 -5.25 1.0000079562 -5.35 1.00000765192 -5.45 1.00000716223 -5.55 1.00000650862 -5.65 1.00000571312 -5.75 1.00000479801 -5.85 1.00000378555 -5.95 1.00000269784 -6.05 1.00000155679 -6.15 1.00000038413 -6.25 1 - -"z gxx 11.6000 --0.05 0.999617325266 -0.05 0.999617325266 -0.15 0.999625195866 -0.25 0.99964038506 -0.35 0.999661851034 -0.45 0.99968817782 -0.55 0.999717727803 -0.65 0.99974880897 -0.75 0.999779832796 -0.85 0.999809441388 -0.95 0.999836589496 -1.05 0.999860576606 -1.15 0.999881033961 -1.25 0.999897878361 -1.35 0.999911247703 -1.45 0.999921432244 -1.55 0.999928811966 -1.65 0.999933805774 -1.75 0.999936834209 -1.85 0.999938294599 -1.95 0.999938546338 -2.05 0.999937903772 -2.15 0.999936634538 -2.25 0.999934961648 -2.35 0.999933067989 -2.45 0.999931102128 -2.55 0.999929184458 -2.65 0.999927412915 -2.75 0.999925867733 -2.85 0.999924614997 -2.95 0.999923709018 -3.05 0.99992319375 -3.15 0.999923103545 -3.25 0.999923463513 -3.35 0.999924289696 -3.45 0.999925589143 -3.55 0.999927359967 -3.65 0.999929591379 -3.75 0.999932263739 -3.85 0.999935348663 -3.95 0.999938809237 -4.05 0.999942600394 -4.15 0.99994666952 -4.25 0.9999509573 -4.35 0.999955398853 -4.45 0.999959925125 -4.55 0.999964464538 -4.65 0.999968944848 -4.75 0.999973295152 -4.85 0.999977447996 -4.95 0.999981341495 -5.05 0.999984921399 -5.15 0.999988143014 -5.25 0.999990972897 -5.35 0.99999339024 -5.45 0.999995387873 -5.55 0.999996972817 -5.65 0.999998166343 -5.75 0.999999003511 -5.85 0.99999953218 -5.95 0.999999811525 -6.05 0.999999910053 -6.15 0.999999903314 -6.25 1 - -"z gxx 12.0000 --0.05 0.999773503672 -0.05 0.999773503672 -0.15 0.999781679199 -0.25 0.999797455811 -0.35 0.999819749692 -0.45 0.999847088574 -0.55 0.999877771043 -0.65 0.999910040817 -0.75 0.999942250536 -0.85 0.999972992454 -0.95 1.000001181 -1.05 1.00002608256 -1.15 1.00004729822 -1.25 1.00006471277 -1.35 1.00007842636 -1.45 1.00008868379 -1.55 1.00009581247 -1.65 1.00010017415 -1.75 1.00010213162 -1.85 1.00010202812 -1.95 1.00010017638 -2.05 1.00009685401 -2.15 1.00009230289 -2.25 1.00008673082 -2.35 1.00008031468 -2.45 1.00007320422 -2.55 1.00006552654 -2.65 1.00005739071 -2.75 1.00004889241 -2.85 1.00004011835 -2.95 1.00003115021 -3.05 1.00002206778 -3.15 1.00001295133 -3.25 1.00000388301 -3.35 0.999994947383 -3.45 0.99998623113 -3.55 0.999977822162 -3.65 0.999969808202 -3.75 0.999962275071 -3.85 0.99995530478 -3.95 0.999948973605 -4.05 0.999943350206 -4.15 0.999938493938 -4.25 0.999934453392 -4.35 0.999931265273 -4.45 0.999928953633 -4.55 0.999927529524 -4.65 0.999926991077 -4.75 0.999927324001 -4.85 0.999928502484 -4.95 0.999930490434 -5.05 0.999933243002 -5.15 0.999936708286 -5.25 0.999940829122 -5.35 0.999945544844 -5.45 0.999950792912 -5.55 0.999956510306 -5.65 0.99996263462 -5.75 0.99996910477 -5.85 0.999975861351 -5.95 0.999982846565 -6.05 0.999990003805 -6.15 0.999997277148 -6.25 1 - - diff --git a/xgraph/examples/bar.xg b/xgraph/examples/bar.xg deleted file mode 100644 index 69a64122d..000000000 --- a/xgraph/examples/bar.xg +++ /dev/null @@ -1,21 +0,0 @@ -TitleText: Sample Bar Graph -BarGraph: true -BarBase: 0.0 -BarWidth: 0.25 -NoLines: true -YUnitText: Widgets/Year -XUnitText: Year -"Frobs" -79.75 5.6 -80.75 8.3 -81.75 2.2 - -"Blobs" -80 8.0 -81 6.4 -82 1.2 - -"Zygotes" -80.25 9.1 -81.25 10.8 -82.25 8.3 diff --git a/xgraph/examples/surface.xg b/xgraph/examples/surface.xg deleted file mode 100644 index cec827652..000000000 --- a/xgraph/examples/surface.xg +++ /dev/null @@ -1,1805 +0,0 @@ -TitleText: Surface Plot -Ticks: true -BoundBox: on -move 319.000000 317.000000 -draw 351.000000 336.000000 -move 319.000000 317.000000 -draw 351.000000 336.000000 -move 265.000000 348.000000 -draw 319.000000 317.000000 -move 265.000000 348.000000 -draw 319.000000 317.000000 -move 351.000000 336.000000 -draw 384.000000 354.000000 -move 351.000000 336.000000 -draw 384.000000 354.000000 -move 298.000000 367.000000 -draw 351.000000 336.000000 -move 351.000000 336.000000 -draw 351.000000 336.000000 -move 384.000000 354.000000 -draw 417.000000 372.000000 -move 384.000000 354.000000 -draw 417.000000 372.000000 -move 331.000000 385.000000 -draw 384.000000 354.000000 -move 384.000000 354.000000 -draw 384.000000 354.000000 -move 417.000000 372.000000 -draw 433.000000 381.000000 -move 417.000000 372.000000 -draw 433.000000 381.000000 -move 364.000000 403.000000 -draw 417.000000 372.000000 -move 417.000000 372.000000 -draw 417.000000 372.000000 -move 433.000000 381.000000 -draw 458.000000 395.000000 -move 433.000000 381.000000 -draw 458.000000 395.000000 -move 380.000000 412.000000 -draw 433.000000 381.000000 -move 433.000000 381.000000 -draw 433.000000 381.000000 -move 458.000000 395.000000 -draw 482.000000 408.000000 -move 458.000000 395.000000 -draw 482.000000 408.000000 -move 404.000000 425.000000 -draw 458.000000 395.000000 -move 458.000000 395.000000 -draw 458.000000 395.000000 -move 482.000000 408.000000 -draw 490.000000 413.000000 -move 482.000000 408.000000 -draw 490.000000 413.000000 -move 428.000000 439.000000 -draw 482.000000 408.000000 -move 482.000000 408.000000 -draw 482.000000 408.000000 -move 490.000000 413.000000 -draw 498.000000 417.000000 -move 490.000000 413.000000 -draw 498.000000 417.000000 -move 437.000000 443.000000 -draw 490.000000 413.000000 -move 490.000000 413.000000 -draw 490.000000 413.000000 -move 498.000000 417.000000 -draw 506.000000 422.000000 -move 498.000000 417.000000 -draw 506.000000 422.000000 -move 445.000000 448.000000 -draw 498.000000 417.000000 -move 498.000000 417.000000 -draw 498.000000 417.000000 -move 506.000000 422.000000 -draw 514.000000 426.000000 -move 506.000000 422.000000 -draw 514.000000 426.000000 -move 453.000000 452.000000 -draw 506.000000 422.000000 -move 506.000000 422.000000 -draw 506.000000 422.000000 -move 514.000000 426.000000 -draw 546.000000 444.000000 -move 514.000000 426.000000 -draw 546.000000 444.000000 -move 461.000000 457.000000 -draw 514.000000 426.000000 -move 514.000000 426.000000 -draw 514.000000 426.000000 -move 546.000000 444.000000 -draw 578.000000 462.000000 -move 546.000000 444.000000 -draw 578.000000 462.000000 -move 493.000000 475.000000 -draw 546.000000 444.000000 -move 546.000000 444.000000 -draw 546.000000 444.000000 -move 578.000000 462.000000 -draw 610.000000 480.000000 -move 578.000000 462.000000 -draw 610.000000 480.000000 -move 525.000000 492.000000 -draw 578.000000 462.000000 -move 578.000000 462.000000 -draw 578.000000 462.000000 -move 610.000000 480.000000 -draw 642.000000 498.000000 -move 610.000000 480.000000 -draw 642.000000 498.000000 -move 557.000000 510.000000 -draw 610.000000 480.000000 -move 610.000000 480.000000 -draw 610.000000 480.000000 -move 642.000000 498.000000 -draw 674.000000 515.000000 -move 642.000000 498.000000 -draw 674.000000 515.000000 -move 589.000000 528.000000 -draw 642.000000 498.000000 -move 642.000000 498.000000 -draw 642.000000 498.000000 -move 674.000000 515.000000 -draw 705.000000 533.000000 -move 674.000000 515.000000 -draw 705.000000 533.000000 -move 620.000000 545.000000 -draw 674.000000 515.000000 -move 674.000000 515.000000 -draw 674.000000 515.000000 -move 705.000000 533.000000 -draw 737.000000 550.000000 -move 705.000000 533.000000 -draw 737.000000 550.000000 -move 652.000000 563.000000 -draw 705.000000 533.000000 -move 705.000000 533.000000 -draw 705.000000 533.000000 -move 737.000000 550.000000 -draw 768.000000 568.000000 -move 737.000000 550.000000 -draw 768.000000 568.000000 -move 683.000000 580.000000 -draw 737.000000 550.000000 -move 737.000000 550.000000 -draw 737.000000 550.000000 -move 768.000000 568.000000 -draw 799.000000 585.000000 -move 768.000000 568.000000 -draw 799.000000 585.000000 -move 714.000000 597.000000 -draw 768.000000 568.000000 -move 768.000000 568.000000 -draw 768.000000 568.000000 -move 799.000000 585.000000 -draw 830.000000 602.000000 -move 799.000000 585.000000 -draw 830.000000 602.000000 -move 746.000000 615.000000 -draw 799.000000 585.000000 -move 799.000000 585.000000 -draw 799.000000 585.000000 -move 830.000000 602.000000 -draw 838.000000 607.000000 -move 830.000000 602.000000 -draw 838.000000 607.000000 -move 777.000000 632.000000 -draw 830.000000 602.000000 -move 830.000000 602.000000 -draw 830.000000 602.000000 -move 838.000000 607.000000 -draw 846.000000 611.000000 -move 838.000000 607.000000 -draw 846.000000 611.000000 -move 784.000000 636.000000 -draw 838.000000 607.000000 -move 838.000000 607.000000 -draw 838.000000 607.000000 -move 846.000000 611.000000 -draw 853.000000 615.000000 -move 846.000000 611.000000 -draw 853.000000 615.000000 -move 792.000000 640.000000 -draw 846.000000 611.000000 -move 846.000000 611.000000 -draw 846.000000 611.000000 -move 853.000000 615.000000 -draw 861.000000 620.000000 -move 853.000000 615.000000 -draw 861.000000 620.000000 -move 800.000000 645.000000 -draw 853.000000 615.000000 -move 853.000000 615.000000 -draw 853.000000 615.000000 -move 861.000000 620.000000 -draw 884.000000 633.000000 -move 861.000000 620.000000 -draw 884.000000 633.000000 -move 808.000000 649.000000 -draw 861.000000 620.000000 -move 861.000000 620.000000 -draw 861.000000 620.000000 -move 884.000000 633.000000 -draw 907.000000 645.000000 -move 884.000000 633.000000 -draw 907.000000 645.000000 -move 831.000000 662.000000 -draw 884.000000 633.000000 -move 884.000000 633.000000 -draw 884.000000 633.000000 -move 907.000000 645.000000 -draw 923.000000 654.000000 -move 907.000000 645.000000 -draw 923.000000 654.000000 -move 854.000000 675.000000 -draw 907.000000 645.000000 -move 907.000000 645.000000 -draw 907.000000 645.000000 -move 923.000000 654.000000 -draw 953.000000 671.000000 -move 923.000000 654.000000 -draw 953.000000 671.000000 -move 869.000000 683.000000 -draw 923.000000 654.000000 -move 923.000000 654.000000 -draw 923.000000 654.000000 -move 953.000000 671.000000 -draw 984.000000 688.000000 -move 953.000000 671.000000 -draw 984.000000 688.000000 -move 900.000000 700.000000 -draw 953.000000 671.000000 -move 953.000000 671.000000 -draw 953.000000 671.000000 -move 984.000000 688.000000 -draw 1014.000000 705.000000 -move 984.000000 688.000000 -draw 1014.000000 705.000000 -move 930.000000 717.000000 -draw 984.000000 688.000000 -move 984.000000 688.000000 -draw 984.000000 688.000000 -move 961.000000 734.000000 -draw 1014.000000 705.000000 -move 1014.000000 705.000000 -draw 1014.000000 705.000000 -move 265.000000 348.000000 -draw 298.000000 367.000000 -move 265.000000 348.000000 -draw 266.000000 349.000000 -move 212.000000 379.000000 -draw 265.000000 348.000000 -move 212.000000 379.000000 -draw 265.000000 348.000000 -move 298.000000 367.000000 -draw 331.000000 385.000000 -move 245.000000 397.000000 -draw 298.000000 367.000000 -move 331.000000 385.000000 -draw 364.000000 403.000000 -move 278.000000 415.000000 -draw 331.000000 385.000000 -move 364.000000 403.000000 -draw 380.000000 412.000000 -move 311.000000 433.000000 -draw 364.000000 403.000000 -move 380.000000 412.000000 -draw 404.000000 425.000000 -move 327.000000 442.000000 -draw 380.000000 412.000000 -move 404.000000 425.000000 -draw 428.000000 439.000000 -move 351.000000 456.000000 -draw 404.000000 425.000000 -move 428.000000 439.000000 -draw 437.000000 443.000000 -move 376.000000 469.000000 -draw 428.000000 439.000000 -move 437.000000 443.000000 -draw 445.000000 448.000000 -move 384.000000 474.000000 -draw 437.000000 443.000000 -move 445.000000 448.000000 -draw 453.000000 452.000000 -move 392.000000 478.000000 -draw 445.000000 448.000000 -move 453.000000 452.000000 -draw 461.000000 457.000000 -move 400.000000 483.000000 -draw 453.000000 452.000000 -move 461.000000 457.000000 -draw 493.000000 475.000000 -move 408.000000 487.000000 -draw 461.000000 457.000000 -move 493.000000 475.000000 -draw 525.000000 492.000000 -move 440.000000 505.000000 -draw 493.000000 475.000000 -move 525.000000 492.000000 -draw 557.000000 510.000000 -move 472.000000 522.000000 -draw 525.000000 492.000000 -move 557.000000 510.000000 -draw 589.000000 528.000000 -move 504.000000 540.000000 -draw 557.000000 510.000000 -move 589.000000 528.000000 -draw 620.000000 545.000000 -move 536.000000 557.000000 -draw 589.000000 528.000000 -move 620.000000 545.000000 -draw 652.000000 563.000000 -move 567.000000 575.000000 -draw 620.000000 545.000000 -move 652.000000 563.000000 -draw 683.000000 580.000000 -move 599.000000 592.000000 -draw 652.000000 563.000000 -move 683.000000 580.000000 -draw 714.000000 597.000000 -move 630.000000 609.000000 -draw 683.000000 580.000000 -move 714.000000 597.000000 -draw 746.000000 615.000000 -move 661.000000 627.000000 -draw 714.000000 597.000000 -move 746.000000 615.000000 -draw 777.000000 632.000000 -move 693.000000 644.000000 -draw 746.000000 615.000000 -move 777.000000 632.000000 -draw 784.000000 636.000000 -move 724.000000 661.000000 -draw 777.000000 632.000000 -move 784.000000 636.000000 -draw 792.000000 640.000000 -move 731.000000 665.000000 -draw 784.000000 636.000000 -move 792.000000 640.000000 -draw 800.000000 645.000000 -move 739.000000 669.000000 -draw 792.000000 640.000000 -move 800.000000 645.000000 -draw 808.000000 649.000000 -move 747.000000 674.000000 -draw 800.000000 645.000000 -move 808.000000 649.000000 -draw 831.000000 662.000000 -move 755.000000 678.000000 -draw 808.000000 649.000000 -move 831.000000 662.000000 -draw 854.000000 675.000000 -move 778.000000 691.000000 -draw 831.000000 662.000000 -move 854.000000 675.000000 -draw 869.000000 683.000000 -move 801.000000 703.000000 -draw 854.000000 675.000000 -move 869.000000 683.000000 -draw 900.000000 700.000000 -move 816.000000 712.000000 -draw 869.000000 683.000000 -move 900.000000 700.000000 -draw 930.000000 717.000000 -move 847.000000 729.000000 -draw 900.000000 700.000000 -move 930.000000 717.000000 -draw 961.000000 734.000000 -move 877.000000 745.000000 -draw 930.000000 717.000000 -move 908.000000 762.000000 -draw 961.000000 734.000000 -move 212.000000 379.000000 -draw 245.000000 397.000000 -move 212.000000 379.000000 -draw 213.000000 380.000000 -move 160.000000 410.000000 -draw 212.000000 379.000000 -move 160.000000 410.000000 -draw 212.000000 379.000000 -move 245.000000 397.000000 -draw 278.000000 415.000000 -move 193.000000 428.000000 -draw 245.000000 397.000000 -move 278.000000 415.000000 -draw 311.000000 433.000000 -move 225.000000 446.000000 -draw 278.000000 415.000000 -move 311.000000 433.000000 -draw 327.000000 442.000000 -move 258.000000 464.000000 -draw 311.000000 433.000000 -move 327.000000 442.000000 -draw 351.000000 456.000000 -move 274.000000 473.000000 -draw 327.000000 442.000000 -move 351.000000 456.000000 -draw 376.000000 469.000000 -move 299.000000 486.000000 -draw 351.000000 456.000000 -move 376.000000 469.000000 -draw 384.000000 474.000000 -move 323.000000 499.000000 -draw 376.000000 469.000000 -move 384.000000 474.000000 -draw 392.000000 478.000000 -move 331.000000 504.000000 -draw 384.000000 474.000000 -move 392.000000 478.000000 -draw 400.000000 483.000000 -move 339.000000 508.000000 -draw 392.000000 478.000000 -move 400.000000 483.000000 -draw 408.000000 487.000000 -move 347.000000 513.000000 -draw 400.000000 483.000000 -move 408.000000 487.000000 -draw 440.000000 505.000000 -move 355.000000 517.000000 -draw 408.000000 487.000000 -move 440.000000 505.000000 -draw 472.000000 522.000000 -move 387.000000 535.000000 -draw 440.000000 505.000000 -move 472.000000 522.000000 -draw 504.000000 540.000000 -move 419.000000 552.000000 -draw 472.000000 522.000000 -move 504.000000 540.000000 -draw 536.000000 557.000000 -move 451.000000 570.000000 -draw 504.000000 540.000000 -move 536.000000 557.000000 -draw 567.000000 575.000000 -move 483.000000 587.000000 -draw 536.000000 557.000000 -move 567.000000 575.000000 -draw 599.000000 592.000000 -move 515.000000 604.000000 -draw 567.000000 575.000000 -move 599.000000 592.000000 -draw 630.000000 609.000000 -move 546.000000 621.000000 -draw 599.000000 592.000000 -move 630.000000 609.000000 -draw 661.000000 627.000000 -move 578.000000 639.000000 -draw 630.000000 609.000000 -move 661.000000 627.000000 -draw 693.000000 644.000000 -move 609.000000 656.000000 -draw 661.000000 627.000000 -move 693.000000 644.000000 -draw 724.000000 661.000000 -move 640.000000 673.000000 -draw 693.000000 644.000000 -move 724.000000 661.000000 -draw 731.000000 665.000000 -move 671.000000 690.000000 -draw 724.000000 661.000000 -move 731.000000 665.000000 -draw 739.000000 669.000000 -move 679.000000 694.000000 -draw 731.000000 665.000000 -move 739.000000 669.000000 -draw 747.000000 674.000000 -move 687.000000 698.000000 -draw 739.000000 669.000000 -move 747.000000 674.000000 -draw 755.000000 678.000000 -move 694.000000 703.000000 -draw 747.000000 674.000000 -move 755.000000 678.000000 -draw 778.000000 691.000000 -move 702.000000 707.000000 -draw 755.000000 678.000000 -move 778.000000 691.000000 -draw 801.000000 703.000000 -move 725.000000 719.000000 -draw 778.000000 691.000000 -move 801.000000 703.000000 -draw 816.000000 712.000000 -move 748.000000 732.000000 -draw 801.000000 703.000000 -move 816.000000 712.000000 -draw 847.000000 729.000000 -move 764.000000 740.000000 -draw 816.000000 712.000000 -move 847.000000 729.000000 -draw 877.000000 745.000000 -move 794.000000 757.000000 -draw 847.000000 729.000000 -move 877.000000 745.000000 -draw 908.000000 762.000000 -move 825.000000 774.000000 -draw 877.000000 745.000000 -move 855.000000 790.000000 -draw 908.000000 762.000000 -move 160.000000 410.000000 -draw 193.000000 428.000000 -move 160.000000 410.000000 -draw 161.000000 411.000000 -move 107.000000 441.000000 -draw 160.000000 410.000000 -move 107.000000 441.000000 -draw 160.000000 410.000000 -move 193.000000 428.000000 -draw 225.000000 446.000000 -move 140.000000 458.000000 -draw 193.000000 428.000000 -move 225.000000 446.000000 -draw 258.000000 464.000000 -move 173.000000 476.000000 -draw 225.000000 446.000000 -move 258.000000 464.000000 -draw 274.000000 473.000000 -move 206.000000 494.000000 -draw 258.000000 464.000000 -move 274.000000 473.000000 -draw 299.000000 486.000000 -move 222.000000 503.000000 -draw 274.000000 473.000000 -move 299.000000 486.000000 -draw 323.000000 499.000000 -move 246.000000 516.000000 -draw 299.000000 486.000000 -move 323.000000 499.000000 -draw 331.000000 504.000000 -move 271.000000 529.000000 -draw 323.000000 499.000000 -move 331.000000 504.000000 -draw 339.000000 508.000000 -move 279.000000 534.000000 -draw 331.000000 504.000000 -move 339.000000 508.000000 -draw 347.000000 513.000000 -move 287.000000 538.000000 -draw 339.000000 508.000000 -move 347.000000 513.000000 -draw 355.000000 517.000000 -move 295.000000 542.000000 -draw 347.000000 513.000000 -move 355.000000 517.000000 -draw 387.000000 535.000000 -move 303.000000 547.000000 -draw 355.000000 517.000000 -move 387.000000 535.000000 -draw 419.000000 552.000000 -move 335.000000 564.000000 -draw 387.000000 535.000000 -move 419.000000 552.000000 -draw 451.000000 570.000000 -move 367.000000 582.000000 -draw 419.000000 552.000000 -move 451.000000 570.000000 -draw 483.000000 587.000000 -move 399.000000 599.000000 -draw 451.000000 570.000000 -move 483.000000 587.000000 -draw 515.000000 604.000000 -move 431.000000 616.000000 -draw 483.000000 587.000000 -move 515.000000 604.000000 -draw 546.000000 621.000000 -move 462.000000 633.000000 -draw 515.000000 604.000000 -move 546.000000 621.000000 -draw 578.000000 639.000000 -move 494.000000 651.000000 -draw 546.000000 621.000000 -move 578.000000 639.000000 -draw 609.000000 656.000000 -move 525.000000 668.000000 -draw 578.000000 639.000000 -move 609.000000 656.000000 -draw 640.000000 673.000000 -move 557.000000 684.000000 -draw 609.000000 656.000000 -move 640.000000 673.000000 -draw 671.000000 690.000000 -move 588.000000 701.000000 -draw 640.000000 673.000000 -move 671.000000 690.000000 -draw 679.000000 694.000000 -move 619.000000 717.000000 -draw 671.000000 690.000000 -move 679.000000 694.000000 -draw 687.000000 698.000000 -move 626.000000 721.000000 -draw 679.000000 694.000000 -move 687.000000 698.000000 -draw 694.000000 703.000000 -move 634.000000 725.000000 -draw 687.000000 698.000000 -move 694.000000 703.000000 -draw 702.000000 707.000000 -move 642.000000 729.000000 -draw 694.000000 703.000000 -move 702.000000 707.000000 -draw 725.000000 719.000000 -move 650.000000 734.000000 -draw 702.000000 707.000000 -move 725.000000 719.000000 -draw 748.000000 732.000000 -move 673.000000 747.000000 -draw 725.000000 719.000000 -move 748.000000 732.000000 -draw 764.000000 740.000000 -move 696.000000 760.000000 -draw 748.000000 732.000000 -move 764.000000 740.000000 -draw 794.000000 757.000000 -move 711.000000 769.000000 -draw 764.000000 740.000000 -move 794.000000 757.000000 -draw 825.000000 774.000000 -move 742.000000 785.000000 -draw 794.000000 757.000000 -move 825.000000 774.000000 -draw 855.000000 790.000000 -move 772.000000 802.000000 -draw 825.000000 774.000000 -move 803.000000 819.000000 -draw 855.000000 790.000000 -move 107.000000 441.000000 -draw 140.000000 458.000000 -move 107.000000 441.000000 -draw 108.000000 442.000000 -move 56.000000 471.000000 -draw 107.000000 441.000000 -move 56.000000 471.000000 -draw 107.000000 441.000000 -move 140.000000 458.000000 -draw 173.000000 476.000000 -move 88.000000 489.000000 -draw 140.000000 458.000000 -move 173.000000 476.000000 -draw 206.000000 494.000000 -move 121.000000 506.000000 -draw 173.000000 476.000000 -move 206.000000 494.000000 -draw 222.000000 503.000000 -move 154.000000 524.000000 -draw 206.000000 494.000000 -move 222.000000 503.000000 -draw 246.000000 516.000000 -move 170.000000 533.000000 -draw 222.000000 503.000000 -move 246.000000 516.000000 -draw 271.000000 529.000000 -move 194.000000 547.000000 -draw 246.000000 516.000000 -move 271.000000 529.000000 -draw 279.000000 534.000000 -move 218.000000 564.000000 -draw 271.000000 529.000000 -move 279.000000 534.000000 -draw 287.000000 538.000000 -move 227.000000 571.000000 -draw 279.000000 534.000000 -move 287.000000 538.000000 -draw 295.000000 542.000000 -move 235.000000 578.000000 -draw 287.000000 538.000000 -move 295.000000 542.000000 -draw 303.000000 547.000000 -move 243.000000 582.000000 -draw 295.000000 542.000000 -move 303.000000 547.000000 -draw 335.000000 564.000000 -move 251.000000 583.000000 -draw 303.000000 547.000000 -move 335.000000 564.000000 -draw 367.000000 582.000000 -move 283.000000 594.000000 -draw 335.000000 564.000000 -move 367.000000 582.000000 -draw 399.000000 599.000000 -move 315.000000 611.000000 -draw 367.000000 582.000000 -move 399.000000 599.000000 -draw 431.000000 616.000000 -move 347.000000 628.000000 -draw 399.000000 599.000000 -move 431.000000 616.000000 -draw 462.000000 633.000000 -move 379.000000 645.000000 -draw 431.000000 616.000000 -move 462.000000 633.000000 -draw 494.000000 651.000000 -move 410.000000 662.000000 -draw 462.000000 633.000000 -move 494.000000 651.000000 -draw 525.000000 668.000000 -move 442.000000 679.000000 -draw 494.000000 651.000000 -move 525.000000 668.000000 -draw 557.000000 684.000000 -move 473.000000 694.000000 -draw 525.000000 668.000000 -move 557.000000 684.000000 -draw 588.000000 701.000000 -move 505.000000 679.000000 -draw 557.000000 684.000000 -move 588.000000 701.000000 -draw 619.000000 717.000000 -move 588.000000 701.000000 -draw 588.000000 701.000000 -move 619.000000 717.000000 -draw 626.000000 721.000000 -move 619.000000 717.000000 -draw 619.000000 717.000000 -move 626.000000 721.000000 -draw 634.000000 725.000000 -move 626.000000 721.000000 -draw 626.000000 721.000000 -move 634.000000 725.000000 -draw 642.000000 729.000000 -move 634.000000 725.000000 -draw 634.000000 725.000000 -move 642.000000 729.000000 -draw 650.000000 734.000000 -move 642.000000 729.000000 -draw 642.000000 729.000000 -move 650.000000 734.000000 -draw 673.000000 747.000000 -move 650.000000 734.000000 -draw 650.000000 734.000000 -move 673.000000 747.000000 -draw 696.000000 760.000000 -move 621.000000 747.000000 -draw 673.000000 747.000000 -move 696.000000 760.000000 -draw 711.000000 769.000000 -move 644.000000 779.000000 -draw 696.000000 760.000000 -move 711.000000 769.000000 -draw 742.000000 785.000000 -move 659.000000 792.000000 -draw 711.000000 769.000000 -move 742.000000 785.000000 -draw 772.000000 802.000000 -move 690.000000 813.000000 -draw 742.000000 785.000000 -move 772.000000 802.000000 -draw 803.000000 819.000000 -move 720.000000 830.000000 -draw 772.000000 802.000000 -move 751.000000 847.000000 -draw 803.000000 819.000000 -move 56.000000 471.000000 -draw 88.000000 489.000000 -move 56.000000 471.000000 -draw 57.000000 472.000000 -move 48.000000 475.000000 -draw 56.000000 471.000000 -move 48.000000 475.000000 -draw 56.000000 471.000000 -move 88.000000 489.000000 -draw 121.000000 506.000000 -move 81.000000 493.000000 -draw 88.000000 489.000000 -move 121.000000 506.000000 -draw 154.000000 524.000000 -move 114.000000 511.000000 -draw 121.000000 506.000000 -move 154.000000 524.000000 -draw 170.000000 533.000000 -move 146.000000 528.000000 -draw 154.000000 524.000000 -move 170.000000 533.000000 -draw 194.000000 547.000000 -move 162.000000 537.000000 -draw 170.000000 533.000000 -move 194.000000 547.000000 -draw 218.000000 564.000000 -move 187.000000 551.000000 -draw 194.000000 547.000000 -move 218.000000 564.000000 -draw 227.000000 571.000000 -move 211.000000 571.000000 -draw 218.000000 564.000000 -move 227.000000 571.000000 -draw 235.000000 578.000000 -move 219.000000 585.000000 -draw 227.000000 571.000000 -move 235.000000 578.000000 -draw 243.000000 582.000000 -move 226.000000 627.000000 -draw 235.000000 578.000000 -move 243.000000 582.000000 -draw 251.000000 583.000000 -move 233.000000 650.000000 -draw 243.000000 582.000000 -move 251.000000 583.000000 -draw 283.000000 594.000000 -move 242.000000 634.000000 -draw 251.000000 583.000000 -move 283.000000 594.000000 -draw 315.000000 611.000000 -move 275.000000 602.000000 -draw 283.000000 594.000000 -move 315.000000 611.000000 -draw 347.000000 628.000000 -move 307.000000 615.000000 -draw 315.000000 611.000000 -move 347.000000 628.000000 -draw 379.000000 645.000000 -move 339.000000 632.000000 -draw 347.000000 628.000000 -move 379.000000 645.000000 -draw 410.000000 662.000000 -move 371.000000 649.000000 -draw 379.000000 645.000000 -move 410.000000 662.000000 -draw 442.000000 679.000000 -move 403.000000 665.000000 -draw 410.000000 662.000000 -move 442.000000 679.000000 -draw 473.000000 694.000000 -move 434.000000 680.000000 -draw 442.000000 679.000000 -move 473.000000 694.000000 -draw 505.000000 679.000000 -move 466.000000 691.000000 -draw 473.000000 694.000000 -move 505.000000 679.000000 -draw 506.000000 677.000000 -move 505.000000 679.000000 -draw 505.000000 679.000000 -move 569.000000 418.000000 -draw 572.000000 459.000000 -move 610.000000 713.000000 -draw 621.000000 747.000000 -move 590.000000 706.000000 -draw 591.000000 702.000000 -move 621.000000 747.000000 -draw 644.000000 779.000000 -move 613.000000 764.000000 -draw 621.000000 747.000000 -move 644.000000 779.000000 -draw 659.000000 792.000000 -move 636.000000 788.000000 -draw 644.000000 779.000000 -move 659.000000 792.000000 -draw 690.000000 813.000000 -move 652.000000 799.000000 -draw 659.000000 792.000000 -move 690.000000 813.000000 -draw 720.000000 830.000000 -move 682.000000 817.000000 -draw 690.000000 813.000000 -move 720.000000 830.000000 -draw 751.000000 847.000000 -move 713.000000 834.000000 -draw 720.000000 830.000000 -move 743.000000 851.000000 -draw 751.000000 847.000000 -move 48.000000 475.000000 -draw 81.000000 493.000000 -move 48.000000 475.000000 -draw 49.000000 476.000000 -move 40.000000 480.000000 -draw 48.000000 475.000000 -move 40.000000 480.000000 -draw 48.000000 475.000000 -move 81.000000 493.000000 -draw 114.000000 511.000000 -move 73.000000 498.000000 -draw 81.000000 493.000000 -move 114.000000 511.000000 -draw 146.000000 528.000000 -move 106.000000 515.000000 -draw 114.000000 511.000000 -move 146.000000 528.000000 -draw 162.000000 537.000000 -move 139.000000 533.000000 -draw 146.000000 528.000000 -move 162.000000 537.000000 -draw 187.000000 551.000000 -move 155.000000 542.000000 -draw 162.000000 537.000000 -move 187.000000 551.000000 -draw 211.000000 571.000000 -move 179.000000 555.000000 -draw 187.000000 551.000000 -move 211.000000 571.000000 -draw 219.000000 585.000000 -move 203.000000 568.000000 -draw 211.000000 571.000000 -move 219.000000 585.000000 -draw 226.000000 627.000000 -move 211.000000 572.000000 -draw 219.000000 585.000000 -move 226.000000 627.000000 -draw 233.000000 650.000000 -move 217.000000 693.000000 -draw 226.000000 627.000000 -move 233.000000 650.000000 -draw 242.000000 634.000000 -move 223.000000 761.000000 -draw 233.000000 650.000000 -move 242.000000 634.000000 -draw 275.000000 602.000000 -move 233.000000 689.000000 -draw 242.000000 634.000000 -move 275.000000 602.000000 -draw 307.000000 615.000000 -move 268.000000 612.000000 -draw 275.000000 602.000000 -move 307.000000 615.000000 -draw 339.000000 632.000000 -move 300.000000 619.000000 -draw 307.000000 615.000000 -move 339.000000 632.000000 -draw 371.000000 649.000000 -move 332.000000 634.000000 -draw 339.000000 632.000000 -move 371.000000 649.000000 -draw 403.000000 665.000000 -move 363.000000 650.000000 -draw 371.000000 649.000000 -move 403.000000 665.000000 -draw 434.000000 680.000000 -move 395.000000 666.000000 -draw 403.000000 665.000000 -move 434.000000 680.000000 -draw 466.000000 691.000000 -move 427.000000 680.000000 -draw 434.000000 680.000000 -move 466.000000 691.000000 -draw 467.000000 690.000000 -move 458.000000 688.000000 -draw 466.000000 691.000000 -move 562.000000 450.000000 -draw 569.000000 418.000000 -move 555.000000 332.000000 -draw 561.000000 452.000000 -move 569.000000 418.000000 -draw 573.000000 459.000000 -move 564.000000 153.000000 -draw 569.000000 418.000000 -move 570.000000 389.000000 -draw 574.000000 460.000000 -move 590.000000 706.000000 -draw 590.000000 706.000000 -move 575.000000 768.000000 -draw 581.000000 697.000000 -move 590.000000 706.000000 -draw 613.000000 764.000000 -move 582.000000 772.000000 -draw 590.000000 706.000000 -move 613.000000 764.000000 -draw 636.000000 788.000000 -move 606.000000 785.000000 -draw 613.000000 764.000000 -move 636.000000 788.000000 -draw 652.000000 799.000000 -move 629.000000 797.000000 -draw 636.000000 788.000000 -move 652.000000 799.000000 -draw 682.000000 817.000000 -move 644.000000 805.000000 -draw 652.000000 799.000000 -move 682.000000 817.000000 -draw 713.000000 834.000000 -move 675.000000 822.000000 -draw 682.000000 817.000000 -move 713.000000 834.000000 -draw 743.000000 851.000000 -move 705.000000 838.000000 -draw 713.000000 834.000000 -move 735.000000 855.000000 -draw 743.000000 851.000000 -move 40.000000 480.000000 -draw 73.000000 498.000000 -move 40.000000 480.000000 -draw 41.000000 481.000000 -move 33.000000 484.000000 -draw 40.000000 480.000000 -move 33.000000 484.000000 -draw 40.000000 480.000000 -move 73.000000 498.000000 -draw 106.000000 515.000000 -move 66.000000 502.000000 -draw 73.000000 498.000000 -move 106.000000 515.000000 -draw 139.000000 533.000000 -move 98.000000 520.000000 -draw 106.000000 515.000000 -move 139.000000 533.000000 -draw 155.000000 542.000000 -move 131.000000 537.000000 -draw 139.000000 533.000000 -move 155.000000 542.000000 -draw 179.000000 555.000000 -move 147.000000 546.000000 -draw 155.000000 542.000000 -move 179.000000 555.000000 -draw 203.000000 568.000000 -move 172.000000 559.000000 -draw 179.000000 555.000000 -move 203.000000 568.000000 -draw 211.000000 572.000000 -move 196.000000 572.000000 -draw 203.000000 568.000000 -move 211.000000 572.000000 -draw 217.000000 693.000000 -move 204.000000 576.000000 -draw 211.000000 572.000000 -move 217.000000 693.000000 -draw 223.000000 761.000000 -move 210.000000 671.000000 -draw 217.000000 693.000000 -move 223.000000 761.000000 -draw 233.000000 689.000000 -move 216.000000 736.000000 -draw 223.000000 761.000000 -move 233.000000 689.000000 -draw 268.000000 612.000000 -move 233.000000 689.000000 -draw 233.000000 689.000000 -move 268.000000 612.000000 -draw 300.000000 619.000000 -move 268.000000 612.000000 -draw 268.000000 612.000000 -move 300.000000 619.000000 -draw 332.000000 634.000000 -move 292.000000 621.000000 -draw 300.000000 619.000000 -move 332.000000 634.000000 -draw 363.000000 650.000000 -move 324.000000 636.000000 -draw 332.000000 634.000000 -move 363.000000 650.000000 -draw 395.000000 666.000000 -move 356.000000 652.000000 -draw 363.000000 650.000000 -move 395.000000 666.000000 -draw 427.000000 680.000000 -move 388.000000 667.000000 -draw 395.000000 666.000000 -move 427.000000 680.000000 -draw 458.000000 688.000000 -move 419.000000 681.000000 -draw 427.000000 680.000000 -move 458.000000 688.000000 -draw 459.000000 687.000000 -move 451.000000 688.000000 -draw 458.000000 688.000000 -move 542.000000 442.000000 -draw 555.000000 332.000000 -move 555.000000 332.000000 -draw 564.000000 153.000000 -move 547.000000 345.000000 -draw 555.000000 332.000000 -move 564.000000 153.000000 -draw 570.000000 389.000000 -move 556.000000 239.000000 -draw 564.000000 153.000000 -move 575.000000 768.000000 -draw 575.000000 768.000000 -move 570.000000 389.000000 -draw 571.000000 407.000000 -move 570.000000 389.000000 -draw 570.000000 389.000000 -move 575.000000 768.000000 -draw 582.000000 772.000000 -move 567.000000 772.000000 -draw 575.000000 768.000000 -move 582.000000 772.000000 -draw 606.000000 785.000000 -move 575.000000 776.000000 -draw 582.000000 772.000000 -move 606.000000 785.000000 -draw 629.000000 797.000000 -move 598.000000 789.000000 -draw 606.000000 785.000000 -move 629.000000 797.000000 -draw 644.000000 805.000000 -move 621.000000 801.000000 -draw 629.000000 797.000000 -move 644.000000 805.000000 -draw 675.000000 822.000000 -move 636.000000 809.000000 -draw 644.000000 805.000000 -move 675.000000 822.000000 -draw 705.000000 838.000000 -move 667.000000 826.000000 -draw 675.000000 822.000000 -move 705.000000 838.000000 -draw 735.000000 855.000000 -move 697.000000 842.000000 -draw 705.000000 838.000000 -move 728.000000 859.000000 -draw 735.000000 855.000000 -move 33.000000 484.000000 -draw 66.000000 502.000000 -move 33.000000 484.000000 -draw 34.000000 485.000000 -move 25.000000 489.000000 -draw 33.000000 484.000000 -move 25.000000 489.000000 -draw 33.000000 484.000000 -move 66.000000 502.000000 -draw 98.000000 520.000000 -move 58.000000 506.000000 -draw 66.000000 502.000000 -move 98.000000 520.000000 -draw 131.000000 537.000000 -move 91.000000 524.000000 -draw 98.000000 520.000000 -move 131.000000 537.000000 -draw 147.000000 546.000000 -move 123.000000 542.000000 -draw 131.000000 537.000000 -move 147.000000 546.000000 -draw 172.000000 559.000000 -move 140.000000 550.000000 -draw 147.000000 546.000000 -move 172.000000 559.000000 -draw 196.000000 572.000000 -move 164.000000 563.000000 -draw 172.000000 559.000000 -move 196.000000 572.000000 -draw 204.000000 576.000000 -move 188.000000 576.000000 -draw 196.000000 572.000000 -move 204.000000 576.000000 -draw 210.000000 671.000000 -move 196.000000 581.000000 -draw 204.000000 576.000000 -move 210.000000 671.000000 -draw 216.000000 736.000000 -move 203.000000 656.000000 -draw 210.000000 671.000000 -move 216.000000 736.000000 -draw 217.000000 731.000000 -move 209.000000 707.000000 -draw 216.000000 736.000000 -move 266.000000 617.000000 -draw 292.000000 621.000000 -move 292.000000 621.000000 -draw 324.000000 636.000000 -move 285.000000 622.000000 -draw 292.000000 621.000000 -move 324.000000 636.000000 -draw 356.000000 652.000000 -move 317.000000 637.000000 -draw 324.000000 636.000000 -move 356.000000 652.000000 -draw 388.000000 667.000000 -move 348.000000 653.000000 -draw 356.000000 652.000000 -move 388.000000 667.000000 -draw 419.000000 681.000000 -move 380.000000 668.000000 -draw 388.000000 667.000000 -move 419.000000 681.000000 -draw 451.000000 688.000000 -move 412.000000 681.000000 -draw 419.000000 681.000000 -move 451.000000 688.000000 -draw 452.000000 687.000000 -move 443.000000 688.000000 -draw 451.000000 688.000000 -move 535.000000 438.000000 -draw 547.000000 345.000000 -move 547.000000 345.000000 -draw 556.000000 239.000000 -move 540.000000 384.000000 -draw 547.000000 345.000000 -move 556.000000 239.000000 -draw 557.000000 228.000000 -move 548.000000 298.000000 -draw 556.000000 239.000000 -move 566.000000 689.000000 -draw 567.000000 772.000000 -move 567.000000 772.000000 -draw 575.000000 776.000000 -move 560.000000 776.000000 -draw 567.000000 772.000000 -move 575.000000 776.000000 -draw 598.000000 789.000000 -move 567.000000 780.000000 -draw 575.000000 776.000000 -move 598.000000 789.000000 -draw 621.000000 801.000000 -move 590.000000 793.000000 -draw 598.000000 789.000000 -move 621.000000 801.000000 -draw 636.000000 809.000000 -move 613.000000 805.000000 -draw 621.000000 801.000000 -move 636.000000 809.000000 -draw 667.000000 826.000000 -move 629.000000 814.000000 -draw 636.000000 809.000000 -move 667.000000 826.000000 -draw 697.000000 842.000000 -move 659.000000 830.000000 -draw 667.000000 826.000000 -move 697.000000 842.000000 -draw 728.000000 859.000000 -move 690.000000 846.000000 -draw 697.000000 842.000000 -move 720.000000 863.000000 -draw 728.000000 859.000000 -move 25.000000 489.000000 -draw 58.000000 506.000000 -move 25.000000 489.000000 -draw 26.000000 490.000000 -move 18.000000 493.000000 -draw 25.000000 489.000000 -move 18.000000 493.000000 -draw 25.000000 489.000000 -move 58.000000 506.000000 -draw 91.000000 524.000000 -move 50.000000 511.000000 -draw 58.000000 506.000000 -move 91.000000 524.000000 -draw 123.000000 542.000000 -move 83.000000 528.000000 -draw 91.000000 524.000000 -move 123.000000 542.000000 -draw 140.000000 550.000000 -move 116.000000 546.000000 -draw 123.000000 542.000000 -move 140.000000 550.000000 -draw 164.000000 563.000000 -move 132.000000 555.000000 -draw 140.000000 550.000000 -move 164.000000 563.000000 -draw 188.000000 576.000000 -move 156.000000 568.000000 -draw 164.000000 563.000000 -move 188.000000 576.000000 -draw 196.000000 581.000000 -move 181.000000 581.000000 -draw 188.000000 576.000000 -move 196.000000 581.000000 -draw 203.000000 656.000000 -move 189.000000 585.000000 -draw 196.000000 581.000000 -move 203.000000 656.000000 -draw 209.000000 707.000000 -move 195.000000 643.000000 -draw 203.000000 656.000000 -move 209.000000 707.000000 -draw 210.000000 703.000000 -move 203.000000 672.000000 -draw 209.000000 707.000000 -move 266.000000 619.000000 -draw 285.000000 622.000000 -move 285.000000 622.000000 -draw 317.000000 637.000000 -move 277.000000 623.000000 -draw 285.000000 622.000000 -move 317.000000 637.000000 -draw 348.000000 653.000000 -move 309.000000 639.000000 -draw 317.000000 637.000000 -move 348.000000 653.000000 -draw 380.000000 668.000000 -move 341.000000 654.000000 -draw 348.000000 653.000000 -move 380.000000 668.000000 -draw 412.000000 681.000000 -move 373.000000 669.000000 -draw 380.000000 668.000000 -move 412.000000 681.000000 -draw 443.000000 688.000000 -move 404.000000 682.000000 -draw 412.000000 681.000000 -move 443.000000 688.000000 -draw 445.000000 687.000000 -move 436.000000 691.000000 -draw 443.000000 688.000000 -move 533.000000 437.000000 -draw 540.000000 384.000000 -move 540.000000 384.000000 -draw 548.000000 298.000000 -move 532.000000 430.000000 -draw 540.000000 384.000000 -move 548.000000 298.000000 -draw 549.000000 291.000000 -move 540.000000 336.000000 -draw 548.000000 298.000000 -move 558.000000 685.000000 -draw 560.000000 776.000000 -move 560.000000 776.000000 -draw 567.000000 780.000000 -move 552.000000 780.000000 -draw 560.000000 776.000000 -move 567.000000 780.000000 -draw 590.000000 793.000000 -move 560.000000 785.000000 -draw 567.000000 780.000000 -move 590.000000 793.000000 -draw 613.000000 805.000000 -move 583.000000 797.000000 -draw 590.000000 793.000000 -move 613.000000 805.000000 -draw 629.000000 814.000000 -move 606.000000 809.000000 -draw 613.000000 805.000000 -move 629.000000 814.000000 -draw 659.000000 830.000000 -move 621.000000 818.000000 -draw 629.000000 814.000000 -move 659.000000 830.000000 -draw 690.000000 846.000000 -move 652.000000 834.000000 -draw 659.000000 830.000000 -move 690.000000 846.000000 -draw 720.000000 863.000000 -move 682.000000 851.000000 -draw 690.000000 846.000000 -move 713.000000 867.000000 -draw 720.000000 863.000000 -move 18.000000 493.000000 -draw 50.000000 511.000000 -move 18.000000 493.000000 -draw 19.000000 494.000000 -move 16.000000 494.000000 -draw 18.000000 493.000000 -move 16.000000 494.000000 -draw 18.000000 493.000000 -move 50.000000 511.000000 -draw 83.000000 528.000000 -move 49.000000 512.000000 -draw 50.000000 511.000000 -move 83.000000 528.000000 -draw 116.000000 546.000000 -move 81.000000 530.000000 -draw 83.000000 528.000000 -move 116.000000 546.000000 -draw 132.000000 555.000000 -move 114.000000 547.000000 -draw 116.000000 546.000000 -move 132.000000 555.000000 -draw 156.000000 568.000000 -move 130.000000 556.000000 -draw 132.000000 555.000000 -move 156.000000 568.000000 -draw 181.000000 581.000000 -move 154.000000 569.000000 -draw 156.000000 568.000000 -move 181.000000 581.000000 -draw 189.000000 585.000000 -move 179.000000 582.000000 -draw 181.000000 581.000000 -move 189.000000 585.000000 -draw 195.000000 643.000000 -move 187.000000 586.000000 -draw 189.000000 585.000000 -move 195.000000 643.000000 -draw 203.000000 672.000000 -move 194.000000 638.000000 -draw 195.000000 643.000000 -move 203.000000 672.000000 -draw 204.000000 668.000000 -move 203.000000 672.000000 -draw 203.000000 672.000000 -move 266.000000 620.000000 -draw 277.000000 623.000000 -move 277.000000 623.000000 -draw 309.000000 639.000000 -move 275.000000 623.000000 -draw 277.000000 623.000000 -move 309.000000 639.000000 -draw 341.000000 654.000000 -move 307.000000 639.000000 -draw 309.000000 639.000000 -move 341.000000 654.000000 -draw 373.000000 669.000000 -move 339.000000 654.000000 -draw 341.000000 654.000000 -move 373.000000 669.000000 -draw 404.000000 682.000000 -move 371.000000 669.000000 -draw 373.000000 669.000000 -move 404.000000 682.000000 -draw 436.000000 691.000000 -move 402.000000 683.000000 -draw 404.000000 682.000000 -move 436.000000 691.000000 -draw 447.000000 687.000000 -move 434.000000 691.000000 -draw 436.000000 691.000000 -move 532.000000 430.000000 -draw 532.000000 430.000000 -move 532.000000 430.000000 -draw 540.000000 336.000000 -move 532.000000 430.000000 -draw 532.000000 430.000000 -move 540.000000 336.000000 -draw 541.000000 331.000000 -move 538.000000 344.000000 -draw 540.000000 336.000000 -move 550.000000 683.000000 -draw 552.000000 780.000000 -move 552.000000 780.000000 -draw 560.000000 785.000000 -move 550.000000 781.000000 -draw 552.000000 780.000000 -move 560.000000 785.000000 -draw 583.000000 797.000000 -move 558.000000 786.000000 -draw 560.000000 785.000000 -move 583.000000 797.000000 -draw 606.000000 809.000000 -move 581.000000 798.000000 -draw 583.000000 797.000000 -move 606.000000 809.000000 -draw 621.000000 818.000000 -move 604.000000 810.000000 -draw 606.000000 809.000000 -move 621.000000 818.000000 -draw 652.000000 834.000000 -move 619.000000 819.000000 -draw 621.000000 818.000000 -move 652.000000 834.000000 -draw 682.000000 851.000000 -move 650.000000 835.000000 -draw 652.000000 834.000000 -move 682.000000 851.000000 -draw 713.000000 867.000000 -move 680.000000 852.000000 -draw 682.000000 851.000000 -move 711.000000 868.000000 -draw 713.000000 867.000000 -move 16.000000 494.000000 -draw 49.000000 512.000000 -move 16.000000 494.000000 -draw 17.000000 495.000000 -move 14.000000 495.000000 -draw 16.000000 494.000000 -move 14.000000 495.000000 -draw 16.000000 494.000000 -move 49.000000 512.000000 -draw 81.000000 530.000000 -move 47.000000 513.000000 -draw 49.000000 512.000000 -move 81.000000 530.000000 -draw 114.000000 547.000000 -move 79.000000 531.000000 -draw 81.000000 530.000000 -move 114.000000 547.000000 -draw 130.000000 556.000000 -move 112.000000 548.000000 -draw 114.000000 547.000000 -move 130.000000 556.000000 -draw 154.000000 569.000000 -move 128.000000 557.000000 -draw 130.000000 556.000000 -move 154.000000 569.000000 -draw 179.000000 582.000000 -move 153.000000 570.000000 -draw 154.000000 569.000000 -move 179.000000 582.000000 -draw 187.000000 586.000000 -move 177.000000 583.000000 -draw 179.000000 582.000000 -move 187.000000 586.000000 -draw 194.000000 638.000000 -move 185.000000 587.000000 -draw 187.000000 586.000000 -move 194.000000 638.000000 -draw 195.000000 641.000000 -move 192.000000 633.000000 -draw 194.000000 638.000000 -move 265.000000 620.000000 -draw 275.000000 623.000000 -move 275.000000 623.000000 -draw 307.000000 639.000000 -move 273.000000 624.000000 -draw 275.000000 623.000000 -move 307.000000 639.000000 -draw 339.000000 654.000000 -move 305.000000 639.000000 -draw 307.000000 639.000000 -move 339.000000 654.000000 -draw 371.000000 669.000000 -move 337.000000 655.000000 -draw 339.000000 654.000000 -move 371.000000 669.000000 -draw 402.000000 683.000000 -move 369.000000 670.000000 -draw 371.000000 669.000000 -move 402.000000 683.000000 -draw 434.000000 691.000000 -move 400.000000 683.000000 -draw 402.000000 683.000000 -move 434.000000 691.000000 -draw 437.000000 690.000000 -move 432.000000 692.000000 -draw 434.000000 691.000000 -move 531.000000 436.000000 -draw 538.000000 344.000000 -move 538.000000 344.000000 -draw 539.000000 340.000000 -move 536.000000 352.000000 -draw 538.000000 344.000000 -move 548.000000 683.000000 -draw 550.000000 781.000000 -move 550.000000 781.000000 -draw 558.000000 786.000000 -move 548.000000 782.000000 -draw 550.000000 781.000000 -move 558.000000 786.000000 -draw 581.000000 798.000000 -move 556.000000 787.000000 -draw 558.000000 786.000000 -move 581.000000 798.000000 -draw 604.000000 810.000000 -move 579.000000 799.000000 -draw 581.000000 798.000000 -move 604.000000 810.000000 -draw 619.000000 819.000000 -move 602.000000 811.000000 -draw 604.000000 810.000000 -move 619.000000 819.000000 -draw 650.000000 835.000000 -move 617.000000 820.000000 -draw 619.000000 819.000000 -move 650.000000 835.000000 -draw 680.000000 852.000000 -move 648.000000 836.000000 -draw 650.000000 835.000000 -move 680.000000 852.000000 -draw 711.000000 868.000000 -move 679.000000 853.000000 -draw 680.000000 852.000000 -move 709.000000 869.000000 -draw 711.000000 868.000000 -move 14.000000 495.000000 -draw 47.000000 513.000000 -move 14.000000 495.000000 -draw 15.000000 496.000000 -move 12.000000 496.000000 -draw 14.000000 495.000000 -move 12.000000 496.000000 -draw 14.000000 495.000000 -move 47.000000 513.000000 -draw 79.000000 531.000000 -move 45.000000 514.000000 -draw 47.000000 513.000000 -move 79.000000 531.000000 -draw 112.000000 548.000000 -move 77.000000 532.000000 -draw 79.000000 531.000000 -move 112.000000 548.000000 -draw 128.000000 557.000000 -move 110.000000 549.000000 -draw 112.000000 548.000000 -move 128.000000 557.000000 -draw 153.000000 570.000000 -move 126.000000 558.000000 -draw 128.000000 557.000000 -move 153.000000 570.000000 -draw 177.000000 583.000000 -move 151.000000 571.000000 -draw 153.000000 570.000000 -move 177.000000 583.000000 -draw 185.000000 587.000000 -move 175.000000 584.000000 -draw 177.000000 583.000000 -move 185.000000 587.000000 -draw 192.000000 633.000000 -move 183.000000 588.000000 -draw 185.000000 587.000000 -move 192.000000 633.000000 -draw 193.000000 635.000000 -move 190.000000 625.000000 -draw 192.000000 633.000000 -move 265.000000 621.000000 -draw 273.000000 624.000000 -move 273.000000 624.000000 -draw 305.000000 639.000000 -move 272.000000 624.000000 -draw 273.000000 624.000000 -move 305.000000 639.000000 -draw 337.000000 655.000000 -move 303.000000 640.000000 -draw 305.000000 639.000000 -move 337.000000 655.000000 -draw 369.000000 670.000000 -move 335.000000 655.000000 -draw 337.000000 655.000000 -move 369.000000 670.000000 -draw 400.000000 683.000000 -move 367.000000 670.000000 -draw 369.000000 670.000000 -move 400.000000 683.000000 -draw 432.000000 692.000000 -move 398.000000 683.000000 -draw 400.000000 683.000000 -move 432.000000 692.000000 -draw 456.000000 687.000000 -move 430.000000 693.000000 -draw 432.000000 692.000000 -move 461.000000 689.000000 -draw 462.000000 688.000000 -move 530.000000 435.000000 -draw 536.000000 352.000000 -move 536.000000 352.000000 -draw 537.000000 348.000000 -move 534.000000 361.000000 -draw 536.000000 352.000000 -move 546.000000 683.000000 -draw 548.000000 782.000000 -move 548.000000 782.000000 -draw 556.000000 787.000000 -move 546.000000 783.000000 -draw 548.000000 782.000000 -move 556.000000 787.000000 -draw 579.000000 799.000000 -move 554.000000 788.000000 -draw 556.000000 787.000000 -move 579.000000 799.000000 -draw 602.000000 811.000000 -move 577.000000 800.000000 -draw 579.000000 799.000000 -move 602.000000 811.000000 -draw 617.000000 820.000000 -move 600.000000 812.000000 -draw 602.000000 811.000000 -move 617.000000 820.000000 -draw 648.000000 836.000000 -move 616.000000 821.000000 -draw 617.000000 820.000000 -move 648.000000 836.000000 -draw 679.000000 853.000000 -move 646.000000 837.000000 -draw 648.000000 836.000000 -move 679.000000 853.000000 -draw 709.000000 869.000000 -move 677.000000 854.000000 -draw 679.000000 853.000000 -move 707.000000 870.000000 -draw 709.000000 869.000000 -move 12.000000 496.000000 -draw 45.000000 514.000000 -move 12.000000 496.000000 -draw 13.000000 497.000000 -move 10.000000 498.000000 -draw 12.000000 496.000000 -move 10.000000 498.000000 -draw 12.000000 496.000000 -move 45.000000 514.000000 -draw 77.000000 532.000000 -move 43.000000 515.000000 -draw 45.000000 514.000000 -move 77.000000 532.000000 -draw 110.000000 549.000000 -move 76.000000 533.000000 -draw 77.000000 532.000000 -move 110.000000 549.000000 -draw 126.000000 558.000000 -move 108.000000 550.000000 -draw 110.000000 549.000000 -move 126.000000 558.000000 -draw 151.000000 571.000000 -move 124.000000 559.000000 -draw 126.000000 558.000000 -move 151.000000 571.000000 -draw 175.000000 584.000000 -move 149.000000 572.000000 -draw 151.000000 571.000000 -move 175.000000 584.000000 -draw 183.000000 588.000000 -move 173.000000 585.000000 -draw 175.000000 584.000000 -move 183.000000 588.000000 -draw 190.000000 625.000000 -move 181.000000 589.000000 -draw 183.000000 588.000000 -move 190.000000 625.000000 -draw 191.000000 626.000000 -move 190.000000 625.000000 -draw 190.000000 625.000000 -move 271.000000 624.000000 -draw 272.000000 624.000000 -move 272.000000 624.000000 -draw 303.000000 640.000000 -move 270.000000 624.000000 -draw 272.000000 624.000000 -move 303.000000 640.000000 -draw 335.000000 655.000000 -move 302.000000 640.000000 -draw 303.000000 640.000000 -move 335.000000 655.000000 -draw 367.000000 670.000000 -move 333.000000 655.000000 -draw 335.000000 655.000000 -move 367.000000 670.000000 -draw 398.000000 683.000000 -move 365.000000 670.000000 -draw 367.000000 670.000000 -move 398.000000 683.000000 -draw 430.000000 693.000000 -move 397.000000 684.000000 -draw 398.000000 683.000000 -move 430.000000 693.000000 -draw 461.000000 689.000000 -move 428.000000 694.000000 -draw 430.000000 693.000000 -move 461.000000 689.000000 -draw 463.000000 686.000000 -move 459.000000 692.000000 -draw 461.000000 689.000000 -move 529.000000 434.000000 -draw 534.000000 361.000000 -move 534.000000 361.000000 -draw 535.000000 357.000000 -move 532.000000 374.000000 -draw 534.000000 361.000000 -move 545.000000 683.000000 -draw 546.000000 783.000000 -move 546.000000 783.000000 -draw 554.000000 788.000000 -move 544.000000 784.000000 -draw 546.000000 783.000000 -move 554.000000 788.000000 -draw 577.000000 800.000000 -move 552.000000 789.000000 -draw 554.000000 788.000000 -move 577.000000 800.000000 -draw 600.000000 812.000000 -move 575.000000 801.000000 -draw 577.000000 800.000000 -move 600.000000 812.000000 -draw 616.000000 821.000000 -move 598.000000 814.000000 -draw 600.000000 812.000000 -move 616.000000 821.000000 -draw 646.000000 837.000000 -move 614.000000 822.000000 -draw 616.000000 821.000000 -move 646.000000 837.000000 -draw 677.000000 854.000000 -move 644.000000 838.000000 -draw 646.000000 837.000000 -move 677.000000 854.000000 -draw 707.000000 870.000000 -move 675.000000 855.000000 -draw 677.000000 854.000000 -move 705.000000 871.000000 -draw 707.000000 870.000000 -move 10.000000 498.000000 -draw 43.000000 515.000000 -move 10.000000 498.000000 -draw 11.000000 499.000000 -move 43.000000 515.000000 -draw 76.000000 533.000000 -move 76.000000 533.000000 -draw 108.000000 550.000000 -move 108.000000 550.000000 -draw 124.000000 559.000000 -move 124.000000 559.000000 -draw 149.000000 572.000000 -move 149.000000 572.000000 -draw 173.000000 585.000000 -move 173.000000 585.000000 -draw 181.000000 589.000000 -move 181.000000 589.000000 -draw 186.000000 601.000000 -move 265.000000 622.000000 -draw 270.000000 624.000000 -move 270.000000 624.000000 -draw 302.000000 640.000000 -move 302.000000 640.000000 -draw 333.000000 655.000000 -move 333.000000 655.000000 -draw 365.000000 670.000000 -move 365.000000 670.000000 -draw 397.000000 684.000000 -move 397.000000 684.000000 -draw 428.000000 694.000000 -move 428.000000 694.000000 -draw 459.000000 692.000000 -move 459.000000 692.000000 -draw 464.000000 686.000000 -move 528.000000 434.000000 -draw 532.000000 374.000000 -move 532.000000 374.000000 -draw 533.000000 368.000000 -move 542.000000 683.000000 -draw 544.000000 784.000000 -move 544.000000 784.000000 -draw 552.000000 789.000000 -move 552.000000 789.000000 -draw 575.000000 801.000000 -move 575.000000 801.000000 -draw 598.000000 814.000000 -move 598.000000 814.000000 -draw 614.000000 822.000000 -move 614.000000 822.000000 -draw 644.000000 838.000000 -move 644.000000 838.000000 -draw 675.000000 855.000000 -move 675.000000 855.000000 -draw 705.000000 871.000000 diff --git a/xgraph/examples/surface2.xg b/xgraph/examples/surface2.xg deleted file mode 100644 index 8738208d2..000000000 --- a/xgraph/examples/surface2.xg +++ /dev/null @@ -1,631 +0,0 @@ -TitleText: Another Surface Plot -ticks: on -boundbox: on -move 367.000000 10.000000 -draw 390.000000 22.000000 -move 367.000000 10.000000 -draw 390.000000 22.000000 -move 320.000000 188.000000 -draw 367.000000 10.000000 -move 320.000000 188.000000 -draw 367.000000 10.000000 -move 390.000000 22.000000 -draw 412.000000 33.000000 -move 390.000000 22.000000 -draw 412.000000 33.000000 -move 343.000000 200.000000 -draw 390.000000 22.000000 -move 390.000000 22.000000 -draw 390.000000 22.000000 -move 412.000000 33.000000 -draw 457.000000 56.000000 -move 412.000000 33.000000 -draw 457.000000 56.000000 -move 365.000000 211.000000 -draw 412.000000 33.000000 -move 412.000000 33.000000 -draw 412.000000 33.000000 -move 457.000000 56.000000 -draw 523.000000 91.000000 -move 457.000000 56.000000 -draw 523.000000 91.000000 -move 410.000000 234.000000 -draw 457.000000 56.000000 -move 457.000000 56.000000 -draw 457.000000 56.000000 -move 523.000000 91.000000 -draw 545.000000 102.000000 -move 523.000000 91.000000 -draw 545.000000 102.000000 -move 477.000000 267.000000 -draw 523.000000 91.000000 -move 523.000000 91.000000 -draw 523.000000 91.000000 -move 545.000000 102.000000 -draw 589.000000 125.000000 -move 545.000000 102.000000 -draw 589.000000 125.000000 -move 500.000000 258.000000 -draw 545.000000 102.000000 -move 545.000000 102.000000 -draw 545.000000 102.000000 -move 589.000000 125.000000 -draw 632.000000 147.000000 -move 589.000000 125.000000 -draw 632.000000 147.000000 -move 544.000000 246.000000 -draw 589.000000 125.000000 -move 589.000000 125.000000 -draw 589.000000 125.000000 -move 632.000000 147.000000 -draw 675.000000 170.000000 -move 632.000000 147.000000 -draw 675.000000 170.000000 -move 588.000000 242.000000 -draw 632.000000 147.000000 -move 632.000000 147.000000 -draw 632.000000 147.000000 -move 675.000000 170.000000 -draw 718.000000 192.000000 -move 675.000000 170.000000 -draw 718.000000 192.000000 -move 631.000000 290.000000 -draw 675.000000 170.000000 -move 675.000000 170.000000 -draw 675.000000 170.000000 -move 718.000000 192.000000 -draw 739.000000 203.000000 -move 718.000000 192.000000 -draw 739.000000 203.000000 -move 674.000000 345.000000 -draw 718.000000 192.000000 -move 718.000000 192.000000 -draw 718.000000 192.000000 -move 739.000000 203.000000 -draw 803.000000 235.000000 -move 739.000000 203.000000 -draw 803.000000 235.000000 -move 695.000000 376.000000 -draw 739.000000 203.000000 -move 739.000000 203.000000 -draw 739.000000 203.000000 -move 803.000000 235.000000 -draw 845.000000 257.000000 -move 803.000000 235.000000 -draw 845.000000 257.000000 -move 759.000000 409.000000 -draw 803.000000 235.000000 -move 803.000000 235.000000 -draw 803.000000 235.000000 -move 845.000000 257.000000 -draw 865.000000 268.000000 -move 845.000000 257.000000 -draw 865.000000 268.000000 -move 801.000000 430.000000 -draw 845.000000 257.000000 -move 845.000000 257.000000 -draw 845.000000 257.000000 -move 865.000000 268.000000 -draw 886.000000 279.000000 -move 865.000000 268.000000 -draw 886.000000 279.000000 -move 822.000000 440.000000 -draw 865.000000 268.000000 -move 865.000000 268.000000 -draw 865.000000 268.000000 -move 843.000000 451.000000 -draw 886.000000 279.000000 -move 886.000000 279.000000 -draw 886.000000 279.000000 -move 320.000000 188.000000 -draw 343.000000 200.000000 -move 320.000000 188.000000 -draw 321.000000 189.000000 -move 287.000000 245.000000 -draw 320.000000 188.000000 -move 287.000000 245.000000 -draw 320.000000 188.000000 -move 343.000000 200.000000 -draw 365.000000 211.000000 -move 310.000000 257.000000 -draw 343.000000 200.000000 -move 365.000000 211.000000 -draw 410.000000 234.000000 -move 332.000000 268.000000 -draw 365.000000 211.000000 -move 410.000000 234.000000 -draw 477.000000 267.000000 -move 378.000000 290.000000 -draw 410.000000 234.000000 -move 477.000000 267.000000 -draw 500.000000 258.000000 -move 445.000000 323.000000 -draw 477.000000 267.000000 -move 500.000000 258.000000 -draw 544.000000 246.000000 -move 467.000000 311.000000 -draw 500.000000 258.000000 -move 544.000000 246.000000 -draw 588.000000 242.000000 -move 511.000000 297.000000 -draw 544.000000 246.000000 -move 588.000000 242.000000 -draw 631.000000 290.000000 -move 555.000000 287.000000 -draw 588.000000 242.000000 -move 631.000000 290.000000 -draw 674.000000 345.000000 -move 599.000000 340.000000 -draw 631.000000 290.000000 -move 674.000000 345.000000 -draw 695.000000 376.000000 -move 642.000000 398.000000 -draw 674.000000 345.000000 -move 695.000000 376.000000 -draw 759.000000 409.000000 -move 663.000000 431.000000 -draw 695.000000 376.000000 -move 759.000000 409.000000 -draw 801.000000 430.000000 -move 727.000000 463.000000 -draw 759.000000 409.000000 -move 801.000000 430.000000 -draw 822.000000 440.000000 -move 769.000000 484.000000 -draw 801.000000 430.000000 -move 822.000000 440.000000 -draw 843.000000 451.000000 -move 790.000000 495.000000 -draw 822.000000 440.000000 -move 811.000000 505.000000 -draw 843.000000 451.000000 -move 287.000000 245.000000 -draw 310.000000 257.000000 -move 287.000000 245.000000 -draw 288.000000 246.000000 -move 222.000000 329.000000 -draw 287.000000 245.000000 -move 222.000000 329.000000 -draw 287.000000 245.000000 -move 310.000000 257.000000 -draw 332.000000 268.000000 -move 245.000000 340.000000 -draw 310.000000 257.000000 -move 332.000000 268.000000 -draw 378.000000 290.000000 -move 267.000000 351.000000 -draw 332.000000 268.000000 -move 378.000000 290.000000 -draw 445.000000 323.000000 -move 313.000000 373.000000 -draw 378.000000 290.000000 -move 445.000000 323.000000 -draw 467.000000 311.000000 -move 380.000000 405.000000 -draw 445.000000 323.000000 -move 467.000000 311.000000 -draw 511.000000 297.000000 -move 403.000000 389.000000 -draw 467.000000 311.000000 -move 511.000000 297.000000 -draw 555.000000 287.000000 -move 447.000000 371.000000 -draw 511.000000 297.000000 -move 555.000000 287.000000 -draw 599.000000 340.000000 -move 491.000000 359.000000 -draw 555.000000 287.000000 -move 599.000000 340.000000 -draw 642.000000 398.000000 -move 535.000000 414.000000 -draw 599.000000 340.000000 -move 642.000000 398.000000 -draw 663.000000 431.000000 -move 578.000000 475.000000 -draw 642.000000 398.000000 -move 663.000000 431.000000 -draw 727.000000 463.000000 -move 599.000000 512.000000 -draw 663.000000 431.000000 -move 727.000000 463.000000 -draw 769.000000 484.000000 -move 663.000000 543.000000 -draw 727.000000 463.000000 -move 769.000000 484.000000 -draw 790.000000 495.000000 -move 705.000000 564.000000 -draw 769.000000 484.000000 -move 790.000000 495.000000 -draw 811.000000 505.000000 -move 727.000000 574.000000 -draw 790.000000 495.000000 -move 748.000000 584.000000 -draw 811.000000 505.000000 -move 222.000000 329.000000 -draw 245.000000 340.000000 -move 222.000000 329.000000 -draw 223.000000 329.000000 -move 190.000000 748.000000 -draw 222.000000 329.000000 -move 190.000000 748.000000 -draw 222.000000 329.000000 -move 245.000000 340.000000 -draw 267.000000 351.000000 -move 213.000000 759.000000 -draw 245.000000 340.000000 -move 267.000000 351.000000 -draw 313.000000 373.000000 -move 237.000000 769.000000 -draw 267.000000 351.000000 -move 313.000000 373.000000 -draw 380.000000 405.000000 -move 283.000000 790.000000 -draw 313.000000 373.000000 -move 380.000000 405.000000 -draw 403.000000 389.000000 -move 352.000000 821.000000 -draw 380.000000 405.000000 -move 403.000000 389.000000 -draw 447.000000 371.000000 -move 381.000000 430.000000 -draw 403.000000 389.000000 -move 447.000000 371.000000 -draw 491.000000 359.000000 -move 426.000000 407.000000 -draw 447.000000 371.000000 -move 491.000000 359.000000 -draw 535.000000 414.000000 -move 470.000000 392.000000 -draw 491.000000 359.000000 -move 535.000000 414.000000 -draw 578.000000 475.000000 -move 513.000000 450.000000 -draw 535.000000 414.000000 -move 578.000000 475.000000 -draw 599.000000 512.000000 -move 556.000000 514.000000 -draw 578.000000 475.000000 -move 599.000000 512.000000 -draw 663.000000 543.000000 -move 576.000000 922.000000 -draw 599.000000 512.000000 -move 663.000000 543.000000 -draw 705.000000 564.000000 -move 641.000000 952.000000 -draw 663.000000 543.000000 -move 705.000000 564.000000 -draw 727.000000 574.000000 -move 684.000000 971.000000 -draw 705.000000 564.000000 -move 727.000000 574.000000 -draw 748.000000 584.000000 -move 706.000000 981.000000 -draw 727.000000 574.000000 -move 727.000000 991.000000 -draw 748.000000 584.000000 -move 190.000000 748.000000 -draw 213.000000 759.000000 -move 190.000000 748.000000 -draw 191.000000 748.000000 -move 168.000000 759.000000 -draw 190.000000 748.000000 -move 168.000000 759.000000 -draw 190.000000 748.000000 -move 213.000000 759.000000 -draw 237.000000 769.000000 -move 192.000000 769.000000 -draw 213.000000 759.000000 -move 237.000000 769.000000 -draw 283.000000 790.000000 -move 215.000000 780.000000 -draw 237.000000 769.000000 -move 283.000000 790.000000 -draw 352.000000 821.000000 -move 261.000000 800.000000 -draw 283.000000 790.000000 -move 352.000000 821.000000 -draw 381.000000 430.000000 -move 330.000000 831.000000 -draw 352.000000 821.000000 -move 381.000000 430.000000 -draw 426.000000 407.000000 -move 381.000000 430.000000 -draw 381.000000 430.000000 -move 426.000000 407.000000 -draw 470.000000 392.000000 -move 405.000000 419.000000 -draw 426.000000 407.000000 -move 470.000000 392.000000 -draw 513.000000 450.000000 -move 449.000000 404.000000 -draw 470.000000 392.000000 -move 513.000000 450.000000 -draw 556.000000 514.000000 -move 492.000000 461.000000 -draw 513.000000 450.000000 -move 556.000000 514.000000 -draw 576.000000 922.000000 -move 535.000000 525.000000 -draw 556.000000 514.000000 -move 576.000000 922.000000 -draw 641.000000 952.000000 -move 554.000000 932.000000 -draw 576.000000 922.000000 -move 641.000000 952.000000 -draw 684.000000 971.000000 -move 620.000000 962.000000 -draw 641.000000 952.000000 -move 684.000000 971.000000 -draw 706.000000 981.000000 -move 663.000000 981.000000 -draw 684.000000 971.000000 -move 706.000000 981.000000 -draw 727.000000 991.000000 -move 684.000000 991.000000 -draw 706.000000 981.000000 -move 706.000000 1000.000000 -draw 727.000000 991.000000 -move 168.000000 759.000000 -draw 192.000000 769.000000 -move 168.000000 759.000000 -draw 170.000000 760.000000 -move 145.000000 770.000000 -draw 168.000000 759.000000 -move 145.000000 770.000000 -draw 168.000000 759.000000 -move 192.000000 769.000000 -draw 215.000000 780.000000 -move 168.000000 781.000000 -draw 192.000000 769.000000 -move 215.000000 780.000000 -draw 261.000000 800.000000 -move 191.000000 791.000000 -draw 215.000000 780.000000 -move 261.000000 800.000000 -draw 330.000000 831.000000 -move 238.000000 812.000000 -draw 261.000000 800.000000 -move 330.000000 831.000000 -draw 331.000000 831.000000 -move 306.000000 843.000000 -draw 330.000000 831.000000 -move 381.000000 431.000000 -draw 405.000000 419.000000 -move 405.000000 419.000000 -draw 449.000000 404.000000 -move 381.000000 488.000000 -draw 405.000000 419.000000 -move 449.000000 404.000000 -draw 492.000000 461.000000 -move 425.000000 509.000000 -draw 449.000000 404.000000 -move 492.000000 461.000000 -draw 535.000000 525.000000 -move 468.000000 530.000000 -draw 492.000000 461.000000 -move 535.000000 525.000000 -draw 554.000000 932.000000 -move 512.000000 553.000000 -draw 535.000000 525.000000 -move 554.000000 932.000000 -draw 620.000000 962.000000 -move 530.000000 943.000000 -draw 554.000000 932.000000 -move 620.000000 962.000000 -draw 663.000000 981.000000 -move 596.000000 972.000000 -draw 620.000000 962.000000 -move 663.000000 981.000000 -draw 684.000000 991.000000 -move 639.000000 992.000000 -draw 663.000000 981.000000 -move 684.000000 991.000000 -draw 706.000000 1000.000000 -move 661.000000 1001.000000 -draw 684.000000 991.000000 -move 682.000000 1011.000000 -draw 706.000000 1000.000000 -move 145.000000 770.000000 -draw 168.000000 781.000000 -move 145.000000 770.000000 -draw 147.000000 771.000000 -move 141.000000 772.000000 -draw 145.000000 770.000000 -move 141.000000 772.000000 -draw 145.000000 770.000000 -move 168.000000 781.000000 -draw 191.000000 791.000000 -move 165.000000 782.000000 -draw 168.000000 781.000000 -move 191.000000 791.000000 -draw 238.000000 812.000000 -move 188.000000 793.000000 -draw 191.000000 791.000000 -move 238.000000 812.000000 -draw 306.000000 843.000000 -move 234.000000 813.000000 -draw 238.000000 812.000000 -move 306.000000 843.000000 -draw 307.000000 843.000000 -move 303.000000 844.000000 -draw 306.000000 843.000000 -move 377.000000 486.000000 -draw 381.000000 488.000000 -move 381.000000 488.000000 -draw 425.000000 509.000000 -move 377.000000 492.000000 -draw 381.000000 488.000000 -move 425.000000 509.000000 -draw 468.000000 530.000000 -move 421.000000 513.000000 -draw 425.000000 509.000000 -move 468.000000 530.000000 -draw 512.000000 553.000000 -move 465.000000 534.000000 -draw 468.000000 530.000000 -move 512.000000 553.000000 -draw 530.000000 943.000000 -move 508.000000 556.000000 -draw 512.000000 553.000000 -move 530.000000 943.000000 -draw 596.000000 972.000000 -move 527.000000 944.000000 -draw 530.000000 943.000000 -move 596.000000 972.000000 -draw 639.000000 992.000000 -move 592.000000 974.000000 -draw 596.000000 972.000000 -move 639.000000 992.000000 -draw 661.000000 1001.000000 -move 636.000000 993.000000 -draw 639.000000 992.000000 -move 661.000000 1001.000000 -draw 682.000000 1011.000000 -move 657.000000 1003.000000 -draw 661.000000 1001.000000 -move 679.000000 1012.000000 -draw 682.000000 1011.000000 -move 141.000000 772.000000 -draw 165.000000 782.000000 -move 141.000000 772.000000 -draw 143.000000 773.000000 -move 139.000000 773.000000 -draw 141.000000 772.000000 -move 139.000000 773.000000 -draw 141.000000 772.000000 -move 165.000000 782.000000 -draw 188.000000 793.000000 -move 162.000000 783.000000 -draw 165.000000 782.000000 -move 188.000000 793.000000 -draw 234.000000 813.000000 -move 186.000000 794.000000 -draw 188.000000 793.000000 -move 234.000000 813.000000 -draw 303.000000 844.000000 -move 232.000000 815.000000 -draw 234.000000 813.000000 -move 303.000000 844.000000 -draw 304.000000 844.000000 -move 301.000000 845.000000 -draw 303.000000 844.000000 -move 377.000000 492.000000 -draw 377.000000 492.000000 -move 377.000000 492.000000 -draw 421.000000 513.000000 -move 377.000000 492.000000 -draw 377.000000 492.000000 -move 421.000000 513.000000 -draw 465.000000 534.000000 -move 419.000000 517.000000 -draw 421.000000 513.000000 -move 465.000000 534.000000 -draw 508.000000 556.000000 -move 463.000000 538.000000 -draw 465.000000 534.000000 -move 508.000000 556.000000 -draw 527.000000 944.000000 -move 506.000000 559.000000 -draw 508.000000 556.000000 -move 527.000000 944.000000 -draw 592.000000 974.000000 -move 525.000000 946.000000 -draw 527.000000 944.000000 -move 592.000000 974.000000 -draw 636.000000 993.000000 -move 590.000000 975.000000 -draw 592.000000 974.000000 -move 636.000000 993.000000 -draw 657.000000 1003.000000 -move 634.000000 994.000000 -draw 636.000000 993.000000 -move 657.000000 1003.000000 -draw 679.000000 1012.000000 -move 655.000000 1004.000000 -draw 657.000000 1003.000000 -move 677.000000 1013.000000 -draw 679.000000 1012.000000 -move 139.000000 773.000000 -draw 162.000000 783.000000 -move 139.000000 773.000000 -draw 141.000000 774.000000 -move 138.000000 774.000000 -draw 139.000000 773.000000 -move 138.000000 774.000000 -draw 139.000000 773.000000 -move 162.000000 783.000000 -draw 186.000000 794.000000 -move 161.000000 784.000000 -draw 162.000000 783.000000 -move 186.000000 794.000000 -draw 232.000000 815.000000 -move 185.000000 794.000000 -draw 186.000000 794.000000 -move 232.000000 815.000000 -draw 301.000000 845.000000 -move 231.000000 815.000000 -draw 232.000000 815.000000 -move 301.000000 845.000000 -draw 302.000000 845.000000 -move 300.000000 846.000000 -draw 301.000000 845.000000 -move 377.000000 497.000000 -draw 419.000000 517.000000 -move 419.000000 517.000000 -draw 463.000000 538.000000 -move 418.000000 519.000000 -draw 419.000000 517.000000 -move 463.000000 538.000000 -draw 506.000000 559.000000 -move 462.000000 540.000000 -draw 463.000000 538.000000 -move 506.000000 559.000000 -draw 525.000000 946.000000 -move 505.000000 562.000000 -draw 506.000000 559.000000 -move 525.000000 946.000000 -draw 590.000000 975.000000 -move 523.000000 946.000000 -draw 525.000000 946.000000 -move 590.000000 975.000000 -draw 634.000000 994.000000 -move 589.000000 975.000000 -draw 590.000000 975.000000 -move 634.000000 994.000000 -draw 655.000000 1004.000000 -move 632.000000 995.000000 -draw 634.000000 994.000000 -move 655.000000 1004.000000 -draw 677.000000 1013.000000 -move 654.000000 1004.000000 -draw 655.000000 1004.000000 -move 675.000000 1014.000000 -draw 677.000000 1013.000000 -move 138.000000 774.000000 -draw 161.000000 784.000000 -move 138.000000 774.000000 -draw 139.000000 774.000000 -move 161.000000 784.000000 -draw 185.000000 794.000000 -move 185.000000 794.000000 -draw 231.000000 815.000000 -move 231.000000 815.000000 -draw 300.000000 846.000000 -move 300.000000 846.000000 -draw 301.000000 845.000000 -move 376.000000 499.000000 -draw 418.000000 519.000000 -move 418.000000 519.000000 -draw 462.000000 540.000000 -move 462.000000 540.000000 -draw 505.000000 562.000000 -move 505.000000 562.000000 -draw 523.000000 946.000000 -move 523.000000 946.000000 -draw 589.000000 975.000000 -move 589.000000 975.000000 -draw 632.000000 995.000000 -move 632.000000 995.000000 -draw 654.000000 1004.000000 -move 654.000000 1004.000000 -draw 675.000000 1014.000000 diff --git a/xgraph/examples/surface3.xg b/xgraph/examples/surface3.xg deleted file mode 100644 index f07492ec6..000000000 --- a/xgraph/examples/surface3.xg +++ /dev/null @@ -1,667 +0,0 @@ -TitleText: Last Surface Plot -ticks: on -Boundbox: on -move 641.000000 167.000000 -draw 664.000000 156.000000 -move 641.000000 167.000000 -draw 664.000000 156.000000 -move 664.000000 156.000000 -draw 664.000000 156.000000 -move 661.000000 10.000000 -draw 664.000000 156.000000 -move 614.000000 32.000000 -draw 641.000000 167.000000 -move 614.000000 32.000000 -draw 641.000000 167.000000 -move 641.000000 167.000000 -draw 641.000000 167.000000 -move 638.000000 21.000000 -draw 641.000000 167.000000 -move 568.000000 55.000000 -draw 614.000000 32.000000 -move 568.000000 55.000000 -draw 614.000000 32.000000 -move 614.000000 32.000000 -draw 615.000000 33.000000 -move 614.000000 32.000000 -draw 615.000000 33.000000 -move 501.000000 89.000000 -draw 568.000000 55.000000 -move 501.000000 89.000000 -draw 568.000000 55.000000 -move 568.000000 55.000000 -draw 570.000000 56.000000 -move 568.000000 55.000000 -draw 569.000000 56.000000 -move 478.000000 100.000000 -draw 501.000000 89.000000 -move 478.000000 100.000000 -draw 501.000000 89.000000 -move 501.000000 89.000000 -draw 502.000000 90.000000 -move 501.000000 89.000000 -draw 502.000000 90.000000 -move 434.000000 122.000000 -draw 478.000000 100.000000 -move 434.000000 122.000000 -draw 478.000000 100.000000 -move 478.000000 100.000000 -draw 479.000000 101.000000 -move 478.000000 100.000000 -draw 479.000000 101.000000 -move 389.000000 145.000000 -draw 434.000000 122.000000 -move 389.000000 145.000000 -draw 434.000000 122.000000 -move 434.000000 122.000000 -draw 435.000000 123.000000 -move 434.000000 122.000000 -draw 435.000000 123.000000 -move 345.000000 167.000000 -draw 389.000000 145.000000 -move 345.000000 167.000000 -draw 389.000000 145.000000 -move 389.000000 145.000000 -draw 391.000000 145.000000 -move 389.000000 145.000000 -draw 391.000000 145.000000 -move 302.000000 188.000000 -draw 345.000000 167.000000 -move 302.000000 188.000000 -draw 345.000000 167.000000 -move 345.000000 167.000000 -draw 347.000000 167.000000 -move 345.000000 167.000000 -draw 347.000000 167.000000 -move 280.000000 199.000000 -draw 302.000000 188.000000 -move 280.000000 199.000000 -draw 302.000000 188.000000 -move 302.000000 188.000000 -draw 303.000000 189.000000 -move 302.000000 188.000000 -draw 303.000000 189.000000 -move 215.000000 232.000000 -draw 280.000000 199.000000 -move 215.000000 232.000000 -draw 280.000000 199.000000 -move 280.000000 199.000000 -draw 281.000000 200.000000 -move 280.000000 199.000000 -draw 281.000000 200.000000 -move 173.000000 253.000000 -draw 215.000000 232.000000 -move 173.000000 253.000000 -draw 215.000000 232.000000 -move 215.000000 232.000000 -draw 217.000000 232.000000 -move 215.000000 232.000000 -draw 217.000000 232.000000 -move 152.000000 406.000000 -draw 173.000000 253.000000 -move 152.000000 406.000000 -draw 173.000000 253.000000 -move 173.000000 253.000000 -draw 174.000000 254.000000 -move 173.000000 253.000000 -draw 174.000000 254.000000 -move 130.000000 417.000000 -draw 152.000000 406.000000 -move 130.000000 417.000000 -draw 152.000000 406.000000 -move 152.000000 406.000000 -draw 153.000000 399.000000 -move 152.000000 406.000000 -draw 153.000000 264.000000 -move 130.000000 417.000000 -draw 131.000000 417.000000 -move 130.000000 417.000000 -draw 131.000000 275.000000 -move 638.000000 21.000000 -draw 661.000000 10.000000 -move 661.000000 10.000000 -draw 663.000000 11.000000 -move 615.000000 33.000000 -draw 616.000000 32.000000 -move 615.000000 33.000000 -draw 638.000000 21.000000 -move 638.000000 21.000000 -draw 639.000000 22.000000 -move 570.000000 56.000000 -draw 615.000000 33.000000 -move 615.000000 33.000000 -draw 615.000000 33.000000 -move 615.000000 33.000000 -draw 617.000000 34.000000 -move 615.000000 33.000000 -draw 616.000000 34.000000 -move 502.000000 90.000000 -draw 570.000000 56.000000 -move 502.000000 90.000000 -draw 503.000000 90.000000 -move 570.000000 56.000000 -draw 572.000000 57.000000 -move 479.000000 101.000000 -draw 502.000000 90.000000 -move 479.000000 101.000000 -draw 502.000000 90.000000 -move 502.000000 90.000000 -draw 504.000000 91.000000 -move 502.000000 90.000000 -draw 503.000000 91.000000 -move 435.000000 123.000000 -draw 479.000000 101.000000 -move 435.000000 123.000000 -draw 479.000000 101.000000 -move 479.000000 101.000000 -draw 482.000000 102.000000 -move 479.000000 101.000000 -draw 481.000000 102.000000 -move 391.000000 145.000000 -draw 435.000000 123.000000 -move 391.000000 145.000000 -draw 435.000000 123.000000 -move 435.000000 123.000000 -draw 437.000000 124.000000 -move 435.000000 123.000000 -draw 436.000000 124.000000 -move 347.000000 167.000000 -draw 391.000000 145.000000 -move 347.000000 167.000000 -draw 391.000000 145.000000 -move 391.000000 145.000000 -draw 393.000000 146.000000 -move 391.000000 145.000000 -draw 392.000000 146.000000 -move 303.000000 189.000000 -draw 347.000000 167.000000 -move 303.000000 189.000000 -draw 347.000000 167.000000 -move 347.000000 167.000000 -draw 349.000000 168.000000 -move 347.000000 167.000000 -draw 348.000000 168.000000 -move 281.000000 200.000000 -draw 303.000000 189.000000 -move 281.000000 200.000000 -draw 303.000000 189.000000 -move 303.000000 189.000000 -draw 305.000000 190.000000 -move 303.000000 189.000000 -draw 304.000000 190.000000 -move 217.000000 232.000000 -draw 281.000000 200.000000 -move 217.000000 232.000000 -draw 281.000000 200.000000 -move 281.000000 200.000000 -draw 283.000000 201.000000 -move 281.000000 200.000000 -draw 282.000000 201.000000 -move 174.000000 254.000000 -draw 217.000000 232.000000 -move 174.000000 254.000000 -draw 217.000000 232.000000 -move 217.000000 232.000000 -draw 219.000000 233.000000 -move 217.000000 232.000000 -draw 218.000000 233.000000 -move 173.000000 254.000000 -draw 174.000000 254.000000 -move 153.000000 264.000000 -draw 174.000000 254.000000 -move 174.000000 254.000000 -draw 176.000000 255.000000 -move 174.000000 254.000000 -draw 175.000000 255.000000 -move 131.000000 275.000000 -draw 153.000000 264.000000 -move 153.000000 264.000000 -draw 154.000000 265.000000 -move 131.000000 275.000000 -draw 133.000000 276.000000 -move 663.000000 11.000000 -draw 663.000000 11.000000 -move 665.000000 12.000000 -draw 667.000000 13.000000 -move 663.000000 11.000000 -draw 667.000000 13.000000 -move 617.000000 34.000000 -draw 618.000000 34.000000 -move 572.000000 57.000000 -draw 617.000000 34.000000 -move 617.000000 34.000000 -draw 619.000000 35.000000 -move 504.000000 91.000000 -draw 572.000000 57.000000 -move 572.000000 57.000000 -draw 575.000000 59.000000 -move 482.000000 102.000000 -draw 504.000000 91.000000 -move 504.000000 91.000000 -draw 507.000000 93.000000 -move 437.000000 124.000000 -draw 482.000000 102.000000 -move 482.000000 102.000000 -draw 485.000000 104.000000 -move 393.000000 146.000000 -draw 437.000000 124.000000 -move 437.000000 124.000000 -draw 440.000000 126.000000 -move 349.000000 168.000000 -draw 393.000000 146.000000 -move 393.000000 146.000000 -draw 396.000000 148.000000 -move 305.000000 190.000000 -draw 349.000000 168.000000 -move 349.000000 168.000000 -draw 352.000000 170.000000 -move 283.000000 201.000000 -draw 305.000000 190.000000 -move 305.000000 190.000000 -draw 308.000000 192.000000 -move 219.000000 233.000000 -draw 283.000000 201.000000 -move 283.000000 201.000000 -draw 287.000000 203.000000 -move 176.000000 255.000000 -draw 219.000000 233.000000 -move 219.000000 233.000000 -draw 222.000000 235.000000 -move 173.000000 256.000000 -draw 176.000000 255.000000 -move 176.000000 255.000000 -draw 179.000000 256.000000 -move 665.000000 14.000000 -draw 667.000000 13.000000 -move 667.000000 13.000000 -draw 667.000000 13.000000 -move 667.000000 13.000000 -draw 690.000000 26.000000 -move 667.000000 13.000000 -draw 690.000000 26.000000 -move 665.000000 36.000000 -draw 667.000000 37.000000 -move 575.000000 59.000000 -draw 620.000000 37.000000 -move 507.000000 93.000000 -draw 575.000000 59.000000 -move 575.000000 59.000000 -draw 598.000000 71.000000 -move 485.000000 104.000000 -draw 507.000000 93.000000 -move 507.000000 93.000000 -draw 531.000000 105.000000 -move 440.000000 126.000000 -draw 485.000000 104.000000 -move 485.000000 104.000000 -draw 508.000000 116.000000 -move 396.000000 148.000000 -draw 440.000000 126.000000 -move 440.000000 126.000000 -draw 476.000000 790.000000 -move 352.000000 170.000000 -draw 396.000000 148.000000 -move 396.000000 148.000000 -draw 430.000000 812.000000 -move 308.000000 192.000000 -draw 352.000000 170.000000 -move 352.000000 170.000000 -draw 384.000000 831.000000 -move 287.000000 203.000000 -draw 308.000000 192.000000 -move 308.000000 192.000000 -draw 332.000000 204.000000 -move 222.000000 235.000000 -draw 287.000000 203.000000 -move 287.000000 203.000000 -draw 310.000000 215.000000 -move 179.000000 256.000000 -draw 222.000000 235.000000 -move 222.000000 235.000000 -draw 245.000000 247.000000 -move 173.000000 259.000000 -draw 179.000000 256.000000 -move 179.000000 256.000000 -draw 203.000000 268.000000 -move 171.000000 274.000000 -draw 181.000000 279.000000 -move 667.000000 37.000000 -draw 690.000000 26.000000 -move 690.000000 26.000000 -draw 690.000000 26.000000 -move 690.000000 26.000000 -draw 711.000000 37.000000 -move 690.000000 26.000000 -draw 711.000000 37.000000 -move 665.000000 38.000000 -draw 667.000000 37.000000 -move 667.000000 37.000000 -draw 688.000000 49.000000 -move 598.000000 71.000000 -draw 621.000000 60.000000 -move 665.000000 60.000000 -draw 665.000000 60.000000 -move 531.000000 105.000000 -draw 598.000000 71.000000 -move 598.000000 71.000000 -draw 619.000000 82.000000 -move 508.000000 116.000000 -draw 531.000000 105.000000 -move 531.000000 105.000000 -draw 552.000000 116.000000 -move 476.000000 790.000000 -draw 508.000000 116.000000 -move 508.000000 116.000000 -draw 529.000000 127.000000 -move 430.000000 812.000000 -draw 476.000000 790.000000 -move 476.000000 790.000000 -draw 497.000000 801.000000 -move 384.000000 831.000000 -draw 430.000000 812.000000 -move 430.000000 812.000000 -draw 451.000000 822.000000 -move 332.000000 204.000000 -draw 384.000000 831.000000 -move 384.000000 831.000000 -draw 406.000000 841.000000 -move 310.000000 215.000000 -draw 332.000000 204.000000 -move 332.000000 204.000000 -draw 333.000000 205.000000 -move 245.000000 247.000000 -draw 310.000000 215.000000 -move 310.000000 215.000000 -draw 331.000000 225.000000 -move 203.000000 268.000000 -draw 245.000000 247.000000 -move 245.000000 247.000000 -draw 266.000000 257.000000 -move 181.000000 279.000000 -draw 203.000000 268.000000 -move 203.000000 268.000000 -draw 224.000000 279.000000 -move 169.000000 285.000000 -draw 181.000000 279.000000 -move 181.000000 279.000000 -draw 202.000000 289.000000 -move 168.000000 293.000000 -draw 181.000000 300.000000 -move 688.000000 49.000000 -draw 711.000000 37.000000 -move 711.000000 37.000000 -draw 711.000000 37.000000 -move 711.000000 37.000000 -draw 732.000000 49.000000 -move 711.000000 37.000000 -draw 732.000000 49.000000 -move 665.000000 60.000000 -draw 688.000000 49.000000 -move 688.000000 49.000000 -draw 709.000000 60.000000 -move 619.000000 82.000000 -draw 665.000000 60.000000 -move 665.000000 60.000000 -draw 686.000000 71.000000 -move 552.000000 116.000000 -draw 619.000000 82.000000 -move 619.000000 82.000000 -draw 640.000000 94.000000 -move 529.000000 127.000000 -draw 552.000000 116.000000 -move 552.000000 116.000000 -draw 587.000000 732.000000 -move 497.000000 801.000000 -draw 529.000000 127.000000 -move 529.000000 127.000000 -draw 565.000000 787.000000 -move 451.000000 822.000000 -draw 497.000000 801.000000 -move 497.000000 801.000000 -draw 519.000000 812.000000 -move 406.000000 841.000000 -draw 451.000000 822.000000 -move 451.000000 822.000000 -draw 473.000000 832.000000 -move 406.000000 841.000000 -draw 406.000000 841.000000 -move 406.000000 841.000000 -draw 428.000000 852.000000 -move 331.000000 225.000000 -draw 334.000000 224.000000 -move 377.000000 747.000000 -draw 382.000000 868.000000 -move 266.000000 257.000000 -draw 331.000000 225.000000 -move 331.000000 225.000000 -draw 359.000000 833.000000 -move 224.000000 279.000000 -draw 266.000000 257.000000 -move 266.000000 257.000000 -draw 287.000000 268.000000 -move 202.000000 289.000000 -draw 224.000000 279.000000 -move 224.000000 279.000000 -draw 245.000000 289.000000 -move 181.000000 300.000000 -draw 202.000000 289.000000 -move 202.000000 289.000000 -draw 223.000000 300.000000 -move 181.000000 300.000000 -draw 202.000000 310.000000 -move 709.000000 60.000000 -draw 732.000000 49.000000 -move 732.000000 49.000000 -draw 732.000000 49.000000 -move 732.000000 49.000000 -draw 818.000000 739.000000 -move 732.000000 49.000000 -draw 818.000000 739.000000 -move 686.000000 71.000000 -draw 709.000000 60.000000 -move 709.000000 60.000000 -draw 794.000000 750.000000 -move 640.000000 94.000000 -draw 686.000000 71.000000 -move 686.000000 71.000000 -draw 770.000000 760.000000 -move 587.000000 732.000000 -draw 640.000000 94.000000 -move 640.000000 94.000000 -draw 723.000000 781.000000 -move 565.000000 787.000000 -draw 587.000000 732.000000 -move 587.000000 732.000000 -draw 653.000000 812.000000 -move 519.000000 812.000000 -draw 565.000000 787.000000 -move 565.000000 787.000000 -draw 630.000000 822.000000 -move 473.000000 832.000000 -draw 519.000000 812.000000 -move 519.000000 812.000000 -draw 583.000000 843.000000 -move 428.000000 852.000000 -draw 473.000000 832.000000 -move 473.000000 832.000000 -draw 538.000000 863.000000 -move 382.000000 868.000000 -draw 428.000000 852.000000 -move 428.000000 852.000000 -draw 492.000000 882.000000 -move 359.000000 833.000000 -draw 382.000000 868.000000 -move 382.000000 868.000000 -draw 447.000000 902.000000 -move 287.000000 268.000000 -draw 359.000000 833.000000 -move 359.000000 833.000000 -draw 424.000000 912.000000 -move 245.000000 289.000000 -draw 287.000000 268.000000 -move 287.000000 268.000000 -draw 357.000000 941.000000 -move 223.000000 300.000000 -draw 245.000000 289.000000 -move 245.000000 289.000000 -draw 313.000000 960.000000 -move 202.000000 310.000000 -draw 223.000000 300.000000 -move 223.000000 300.000000 -draw 291.000000 970.000000 -move 202.000000 310.000000 -draw 269.000000 979.000000 -move 794.000000 750.000000 -draw 818.000000 739.000000 -move 818.000000 739.000000 -draw 818.000000 739.000000 -move 818.000000 739.000000 -draw 850.000000 756.000000 -move 818.000000 739.000000 -draw 850.000000 756.000000 -move 770.000000 760.000000 -draw 794.000000 750.000000 -move 794.000000 750.000000 -draw 826.000000 766.000000 -move 723.000000 781.000000 -draw 770.000000 760.000000 -move 770.000000 760.000000 -draw 802.000000 776.000000 -move 653.000000 812.000000 -draw 723.000000 781.000000 -move 723.000000 781.000000 -draw 755.000000 797.000000 -move 630.000000 822.000000 -draw 653.000000 812.000000 -move 653.000000 812.000000 -draw 685.000000 827.000000 -move 583.000000 843.000000 -draw 630.000000 822.000000 -move 630.000000 822.000000 -draw 662.000000 837.000000 -move 538.000000 863.000000 -draw 583.000000 843.000000 -move 583.000000 843.000000 -draw 615.000000 858.000000 -move 492.000000 882.000000 -draw 538.000000 863.000000 -move 538.000000 863.000000 -draw 570.000000 878.000000 -move 447.000000 902.000000 -draw 492.000000 882.000000 -move 492.000000 882.000000 -draw 524.000000 897.000000 -move 424.000000 912.000000 -draw 447.000000 902.000000 -move 447.000000 902.000000 -draw 479.000000 917.000000 -move 357.000000 941.000000 -draw 424.000000 912.000000 -move 424.000000 912.000000 -draw 456.000000 927.000000 -move 313.000000 960.000000 -draw 357.000000 941.000000 -move 357.000000 941.000000 -draw 389.000000 956.000000 -move 291.000000 970.000000 -draw 313.000000 960.000000 -move 313.000000 960.000000 -draw 345.000000 975.000000 -move 269.000000 979.000000 -draw 291.000000 970.000000 -move 291.000000 970.000000 -draw 323.000000 985.000000 -move 269.000000 979.000000 -draw 301.000000 994.000000 -move 826.000000 766.000000 -draw 850.000000 756.000000 -move 850.000000 756.000000 -draw 850.000000 756.000000 -move 850.000000 756.000000 -draw 894.000000 777.000000 -move 850.000000 756.000000 -draw 894.000000 777.000000 -move 802.000000 776.000000 -draw 826.000000 766.000000 -move 826.000000 766.000000 -draw 870.000000 787.000000 -move 755.000000 797.000000 -draw 802.000000 776.000000 -move 802.000000 776.000000 -draw 846.000000 798.000000 -move 685.000000 827.000000 -draw 755.000000 797.000000 -move 755.000000 797.000000 -draw 799.000000 818.000000 -move 662.000000 837.000000 -draw 685.000000 827.000000 -move 685.000000 827.000000 -draw 729.000000 848.000000 -move 615.000000 858.000000 -draw 662.000000 837.000000 -move 662.000000 837.000000 -draw 706.000000 858.000000 -move 570.000000 878.000000 -draw 615.000000 858.000000 -move 615.000000 858.000000 -draw 659.000000 878.000000 -move 524.000000 897.000000 -draw 570.000000 878.000000 -move 570.000000 878.000000 -draw 614.000000 898.000000 -move 479.000000 917.000000 -draw 524.000000 897.000000 -move 524.000000 897.000000 -draw 568.000000 918.000000 -move 456.000000 927.000000 -draw 479.000000 917.000000 -move 479.000000 917.000000 -draw 523.000000 937.000000 -move 389.000000 956.000000 -draw 456.000000 927.000000 -move 456.000000 927.000000 -draw 500.000000 947.000000 -move 345.000000 975.000000 -draw 389.000000 956.000000 -move 389.000000 956.000000 -draw 433.000000 976.000000 -move 323.000000 985.000000 -draw 345.000000 975.000000 -move 345.000000 975.000000 -draw 389.000000 995.000000 -move 301.000000 994.000000 -draw 323.000000 985.000000 -move 323.000000 985.000000 -draw 367.000000 1005.000000 -move 301.000000 994.000000 -draw 345.000000 1014.000000 -move 870.000000 787.000000 -draw 894.000000 777.000000 -move 894.000000 777.000000 -draw 894.000000 777.000000 -move 846.000000 798.000000 -draw 870.000000 787.000000 -move 799.000000 818.000000 -draw 846.000000 798.000000 -move 729.000000 848.000000 -draw 799.000000 818.000000 -move 706.000000 858.000000 -draw 729.000000 848.000000 -move 659.000000 878.000000 -draw 706.000000 858.000000 -move 614.000000 898.000000 -draw 659.000000 878.000000 -move 568.000000 918.000000 -draw 614.000000 898.000000 -move 523.000000 937.000000 -draw 568.000000 918.000000 -move 500.000000 947.000000 -draw 523.000000 937.000000 -move 433.000000 976.000000 -draw 500.000000 947.000000 -move 389.000000 995.000000 -draw 433.000000 976.000000 -move 367.000000 1005.000000 -draw 389.000000 995.000000 -move 345.000000 1014.000000 -draw 367.000000 1005.000000 diff --git a/xgraph/examples/xgtest.xg b/xgraph/examples/xgtest.xg deleted file mode 100644 index 3fddf3cc4..000000000 --- a/xgraph/examples/xgtest.xg +++ /dev/null @@ -1,725 +0,0 @@ -Device: Postscript -Disposition: To File -FileOrDev: /usr/tmp/hpgl.out -TitleText: Sample Xgraph Data -"Alpha --5 29 --4.9 27.91 --4.8 26.84 --4.7 25.79 --4.6 24.76 --4.5 23.75 --4.4 22.76 --4.3 21.79 --4.2 20.84 --4.1 19.91 --4 19 --3.9 18.11 --3.8 17.24 --3.7 16.39 --3.6 15.56 --3.5 14.75 --3.4 13.96 --3.3 13.19 --3.2 12.44 --3.1 11.71 --3 11 --2.9 10.31 --2.8 9.64 --2.7 8.99 --2.6 8.36 --2.5 7.75 --2.4 7.16 --2.3 6.59 --2.2 6.04 --2.1 5.51 --2 5 --1.9 4.51 --1.8 4.04 --1.7 3.59 --1.6 3.16 --1.5 2.75 --1.4 2.36 --1.3 1.99 --1.2 1.64 --1.1 1.31 --1 1 --0.9 0.71 --0.8 0.44 --0.7 0.19 --0.6 -0.04 --0.5 -0.25 --0.4 -0.44 --0.3 -0.61 --0.2 -0.76 --0.1 -0.89 --1.02696E-15 -1 -0.1 -1.09 -0.2 -1.16 -0.3 -1.21 -0.4 -1.24 -0.5 -1.25 -0.6 -1.24 -0.7 -1.21 -0.8 -1.16 -0.9 -1.09 -1 -1 -1.1 -0.89 -1.2 -0.76 -1.3 -0.61 -1.4 -0.44 -1.5 -0.25 -1.6 -0.04 -1.7 0.19 -1.8 0.44 -1.9 0.71 -2 1 -2.1 1.31 -2.2 1.64 -2.3 1.99 -2.4 2.36 -2.5 2.75 -2.6 3.16 -2.7 3.59 -2.8 4.04 -2.9 4.51 -3 5 -3.1 5.51 -3.2 6.04 -3.3 6.59 -3.4 7.16 -3.5 7.75 -3.6 8.36 -3.7 8.99 -3.8 9.64 -3.9 10.31 -4 11 -4.1 11.71 -4.2 12.44 -4.3 13.19 -4.4 13.96 -4.5 14.75 -4.6 15.56 -4.7 16.39 -4.8 17.24 -4.9 18.11 -5 19 - -"Beta --5 33 --4.9 31.81 --4.8 30.64 --4.7 29.49 --4.6 28.36 --4.5 27.25 --4.4 26.16 --4.3 25.09 --4.2 24.04 --4.1 23.01 --4 22 --3.9 21.01 --3.8 20.04 --3.7 19.09 --3.6 18.16 --3.5 17.25 --3.4 16.36 --3.3 15.49 --3.2 14.64 --3.1 13.81 --3 13 --2.9 12.21 --2.8 11.44 --2.7 10.69 --2.6 9.96 --2.5 9.25 --2.4 8.56 --2.3 7.89 --2.2 7.24 --2.1 6.61 --2 6 --1.9 5.41 --1.8 4.84 --1.7 4.29 --1.6 3.76 --1.5 3.25 --1.4 2.76 --1.3 2.29 --1.2 1.84 --1.1 1.41 --1 1 --0.9 0.61 --0.8 0.24 --0.7 -0.11 --0.6 -0.44 --0.5 -0.75 --0.4 -1.04 --0.3 -1.31 --0.2 -1.56 --0.1 -1.79 --1.02696E-15 -2 -0.1 -2.19 -0.2 -2.36 -0.3 -2.51 -0.4 -2.64 -0.5 -2.75 -0.6 -2.84 -0.7 -2.91 -0.8 -2.96 -0.9 -2.99 -1 -3 -1.1 -2.99 -1.2 -2.96 -1.3 -2.91 -1.4 -2.84 -1.5 -2.75 -1.6 -2.64 -1.7 -2.51 -1.8 -2.36 -1.9 -2.19 -2 -2 -2.1 -1.79 -2.2 -1.56 -2.3 -1.31 -2.4 -1.04 -2.5 -0.75 -2.6 -0.44 -2.7 -0.11 -2.8 0.24 -2.9 0.61 -3 1 -3.1 1.41 -3.2 1.84 -3.3 2.29 -3.4 2.76 -3.5 3.25 -3.6 3.76 -3.7 4.29 -3.8 4.84 -3.9 5.41 -4 6 -4.1 6.61 -4.2 7.24 -4.3 7.89 -4.4 8.56 -4.5 9.25 -4.6 9.96 -4.7 10.69 -4.8 11.44 -4.9 12.21 -5 13 - -"Gamma --5 37 --4.9 35.71 --4.8 34.44 --4.7 33.19 --4.6 31.96 --4.5 30.75 --4.4 29.56 --4.3 28.39 --4.2 27.24 --4.1 26.11 --4 25 --3.9 23.91 --3.8 22.84 --3.7 21.79 --3.6 20.76 --3.5 19.75 --3.4 18.76 --3.3 17.79 --3.2 16.84 --3.1 15.91 --3 15 --2.9 14.11 --2.8 13.24 --2.7 12.39 --2.6 11.56 --2.5 10.75 --2.4 9.96 --2.3 9.19 --2.2 8.44 --2.1 7.71 --2 7 --1.9 6.31 --1.8 5.64 --1.7 4.99 --1.6 4.36 --1.5 3.75 --1.4 3.16 --1.3 2.59 --1.2 2.04 --1.1 1.51 --1 1 --0.9 0.51 --0.8 0.04 --0.7 -0.41 --0.6 -0.84 --0.5 -1.25 --0.4 -1.64 --0.3 -2.01 --0.2 -2.36 --0.1 -2.69 --1.02696E-15 -3 -0.1 -3.29 -0.2 -3.56 -0.3 -3.81 -0.4 -4.04 -0.5 -4.25 -0.6 -4.44 -0.7 -4.61 -0.8 -4.76 -0.9 -4.89 -1 -5 -1.1 -5.09 -1.2 -5.16 -1.3 -5.21 -1.4 -5.24 -1.5 -5.25 -1.6 -5.24 -1.7 -5.21 -1.8 -5.16 -1.9 -5.09 -2 -5 -2.1 -4.89 -2.2 -4.76 -2.3 -4.61 -2.4 -4.44 -2.5 -4.25 -2.6 -4.04 -2.7 -3.81 -2.8 -3.56 -2.9 -3.29 -3 -3 -3.1 -2.69 -3.2 -2.36 -3.3 -2.01 -3.4 -1.64 -3.5 -1.25 -3.6 -0.84 -3.7 -0.41 -3.8 0.04 -3.9 0.51 -4 1 -4.1 1.51 -4.2 2.04 -4.3 2.59 -4.4 3.16 -4.5 3.75 -4.6 4.36 -4.7 4.99 -4.8 5.64 -4.9 6.31 -5 7 - -"Delta --5 41 --4.9 39.61 --4.8 38.24 --4.7 36.89 --4.6 35.56 --4.5 34.25 --4.4 32.96 --4.3 31.69 --4.2 30.44 --4.1 29.21 --4 28 --3.9 26.81 --3.8 25.64 --3.7 24.49 --3.6 23.36 --3.5 22.25 --3.4 21.16 --3.3 20.09 --3.2 19.04 --3.1 18.01 --3 17 --2.9 16.01 --2.8 15.04 --2.7 14.09 --2.6 13.16 --2.5 12.25 --2.4 11.36 --2.3 10.49 --2.2 9.64 --2.1 8.81 --2 8 --1.9 7.21 --1.8 6.44 --1.7 5.69 --1.6 4.96 --1.5 4.25 --1.4 3.56 --1.3 2.89 --1.2 2.24 --1.1 1.61 --1 1 --0.9 0.41 --0.8 -0.16 --0.7 -0.71 --0.6 -1.24 --0.5 -1.75 --0.4 -2.24 --0.3 -2.71 --0.2 -3.16 --0.1 -3.59 --1.02696E-15 -4 -0.1 -4.39 -0.2 -4.76 -0.3 -5.11 -0.4 -5.44 -0.5 -5.75 -0.6 -6.04 -0.7 -6.31 -0.8 -6.56 -0.9 -6.79 -1 -7 -1.1 -7.19 -1.2 -7.36 -1.3 -7.51 -1.4 -7.64 -1.5 -7.75 -1.6 -7.84 -1.7 -7.91 -1.8 -7.96 -1.9 -7.99 -2 -8 -2.1 -7.99 -2.2 -7.96 -2.3 -7.91 -2.4 -7.84 -2.5 -7.75 -2.6 -7.64 -2.7 -7.51 -2.8 -7.36 -2.9 -7.19 -3 -7 -3.1 -6.79 -3.2 -6.56 -3.3 -6.31 -3.4 -6.04 -3.5 -5.75 -3.6 -5.44 -3.7 -5.11 -3.8 -4.76 -3.9 -4.39 -4 -4 -4.1 -3.59 -4.2 -3.16 -4.3 -2.71 -4.4 -2.24 -4.5 -1.75 -4.6 -1.24 -4.7 -0.71 -4.8 -0.16 -4.9 0.41 -5 1 - -"Epsilon --5 45 --4.9 43.51 --4.8 42.04 --4.7 40.59 --4.6 39.16 --4.5 37.75 --4.4 36.36 --4.3 34.99 --4.2 33.64 --4.1 32.31 --4 31 --3.9 29.71 --3.8 28.44 --3.7 27.19 --3.6 25.96 --3.5 24.75 --3.4 23.56 --3.3 22.39 --3.2 21.24 --3.1 20.11 --3 19 --2.9 17.91 --2.8 16.84 --2.7 15.79 --2.6 14.76 --2.5 13.75 --2.4 12.76 --2.3 11.79 --2.2 10.84 --2.1 9.91 --2 9 --1.9 8.11 --1.8 7.24 --1.7 6.39 --1.6 5.56 --1.5 4.75 --1.4 3.96 --1.3 3.19 --1.2 2.44 --1.1 1.71 --1 1 --0.9 0.31 --0.8 -0.36 --0.7 -1.01 --0.6 -1.64 --0.5 -2.25 --0.4 -2.84 --0.3 -3.41 --0.2 -3.96 --0.1 -4.49 --1.02696E-15 -5 -0.1 -5.49 -0.2 -5.96 -0.3 -6.41 -0.4 -6.84 -0.5 -7.25 -0.6 -7.64 -0.7 -8.01 -0.8 -8.36 -0.9 -8.69 -1 -9 -1.1 -9.29 -1.2 -9.56 -1.3 -9.81 -1.4 -10.04 -1.5 -10.25 -1.6 -10.44 -1.7 -10.61 -1.8 -10.76 -1.9 -10.89 -2 -11 -2.1 -11.09 -2.2 -11.16 -2.3 -11.21 -2.4 -11.24 -2.5 -11.25 -2.6 -11.24 -2.7 -11.21 -2.8 -11.16 -2.9 -11.09 -3 -11 -3.1 -10.89 -3.2 -10.76 -3.3 -10.61 -3.4 -10.44 -3.5 -10.25 -3.6 -10.04 -3.7 -9.81 -3.8 -9.56 -3.9 -9.29 -4 -9 -4.1 -8.69 -4.2 -8.36 -4.3 -8.01 -4.4 -7.64 -4.5 -7.25 -4.6 -6.84 -4.7 -6.41 -4.8 -5.96 -4.9 -5.49 -5 -5 - -"Zeta --5 49 --4.9 47.41 --4.8 45.84 --4.7 44.29 --4.6 42.76 --4.5 41.25 --4.4 39.76 --4.3 38.29 --4.2 36.84 --4.1 35.41 --4 34 --3.9 32.61 --3.8 31.24 --3.7 29.89 --3.6 28.56 --3.5 27.25 --3.4 25.96 --3.3 24.69 --3.2 23.44 --3.1 22.21 --3 21 --2.9 19.81 --2.8 18.64 --2.7 17.49 --2.6 16.36 --2.5 15.25 --2.4 14.16 --2.3 13.09 --2.2 12.04 --2.1 11.01 --2 10 --1.9 9.01 --1.8 8.04 --1.7 7.09 --1.6 6.16 --1.5 5.25 --1.4 4.36 --1.3 3.49 --1.2 2.64 --1.1 1.81 --1 1 --0.9 0.21 --0.8 -0.56 --0.7 -1.31 --0.6 -2.04 --0.5 -2.75 --0.4 -3.44 --0.3 -4.11 --0.2 -4.76 --0.1 -5.39 --1.02696E-15 -6 -0.1 -6.59 -0.2 -7.16 -0.3 -7.71 -0.4 -8.24 -0.5 -8.75 -0.6 -9.24 -0.7 -9.71 -0.8 -10.16 -0.9 -10.59 -1 -11 -1.1 -11.39 -1.2 -11.76 -1.3 -12.11 -1.4 -12.44 -1.5 -12.75 -1.6 -13.04 -1.7 -13.31 -1.8 -13.56 -1.9 -13.79 -2 -14 -2.1 -14.19 -2.2 -14.36 -2.3 -14.51 -2.4 -14.64 -2.5 -14.75 -2.6 -14.84 -2.7 -14.91 -2.8 -14.96 -2.9 -14.99 -3 -15 -3.1 -14.99 -3.2 -14.96 -3.3 -14.91 -3.4 -14.84 -3.5 -14.75 -3.6 -14.64 -3.7 -14.51 -3.8 -14.36 -3.9 -14.19 -4 -14 -4.1 -13.79 -4.2 -13.56 -4.3 -13.31 -4.4 -13.04 -4.5 -12.75 -4.6 -12.44 -4.7 -12.11 -4.8 -11.76 -4.9 -11.39 -5 -11 - -"Eta --5 53 --4.9 51.31 --4.8 49.64 --4.7 47.99 --4.6 46.36 --4.5 44.75 --4.4 43.16 --4.3 41.59 --4.2 40.04 --4.1 38.51 --4 37 --3.9 35.51 --3.8 34.04 --3.7 32.59 --3.6 31.16 --3.5 29.75 --3.4 28.36 --3.3 26.99 --3.2 25.64 --3.1 24.31 --3 23 --2.9 21.71 --2.8 20.44 --2.7 19.19 --2.6 17.96 --2.5 16.75 --2.4 15.56 --2.3 14.39 --2.2 13.24 --2.1 12.11 --2 11 --1.9 9.91 --1.8 8.84 --1.7 7.79 --1.6 6.76 --1.5 5.75 --1.4 4.76 --1.3 3.79 --1.2 2.84 --1.1 1.91 --1 1 --0.9 0.11 --0.8 -0.76 --0.7 -1.61 --0.6 -2.44 --0.5 -3.25 --0.4 -4.04 --0.3 -4.81 --0.2 -5.56 --0.1 -6.29 --1.02696E-15 -7 -0.1 -7.69 -0.2 -8.36 -0.3 -9.01 -0.4 -9.64 -0.5 -10.25 -0.6 -10.84 -0.7 -11.41 -0.8 -11.96 -0.9 -12.49 -1 -13 -1.1 -13.49 -1.2 -13.96 -1.3 -14.41 -1.4 -14.84 -1.5 -15.25 -1.6 -15.64 -1.7 -16.01 -1.8 -16.36 -1.9 -16.69 -2 -17 -2.1 -17.29 -2.2 -17.56 -2.3 -17.81 -2.4 -18.04 -2.5 -18.25 -2.6 -18.44 -2.7 -18.61 -2.8 -18.76 -2.9 -18.89 -3 -19 -3.1 -19.09 -3.2 -19.16 -3.3 -19.21 -3.4 -19.24 -3.5 -19.25 -3.6 -19.24 -3.7 -19.21 -3.8 -19.16 -3.9 -19.09 -4 -19 -4.1 -18.89 -4.2 -18.76 -4.3 -18.61 -4.4 -18.44 -4.5 -18.25 -4.6 -18.04 -4.7 -17.81 -4.8 -17.56 -4.9 -17.29 -5 -17 - diff --git a/xgraph/general.h b/xgraph/general.h deleted file mode 100644 index e69de29bb..000000000 diff --git a/xgraph/hard_devices.c b/xgraph/hard_devices.c deleted file mode 100644 index 4bf54c9ad..000000000 --- a/xgraph/hard_devices.c +++ /dev/null @@ -1,97 +0,0 @@ -/* $Header$ */ -/* - * Hardcopy Devices - * - * This file contains the basic output device table. The hardcopy - * dialog is automatically constructed from this table. - * - * $Log$ - * Revision 1.1 2004-01-25 09:00:49 pnenzi - * - * Added xgraph plotting program. - * - * Revision 1.1.1.1 1999/12/03 23:15:52 heideman - * xgraph-12.0 - * - */ -#ifndef lint -static char rcsid[] = "$Id$"; - -#endif - -#include -#include "copyright.h" -#include "xgout.h" -#include "hard_devices.h" -#include "params.h" - -extern int hpglInit(); -extern int psInit(); -extern int idrawInit(); -extern int tgifInit(); - -struct hard_dev hard_devices[] = -{ - {"HPGL", hpglInit, "lpr -P%s", "xgraph.hpgl", "paper", - 27.5, "1", 14.0, "1", 12.0, NONE}, - {"Postscript", psInit, "lpr -P%s", "xgraph.ps", "$PRINTER", - 19.0, "Times-Bold", 18.0, "Times-Roman", 12.0, NO}, - {"Idraw", idrawInit, - "cat > /usr/tmp/idraw.tmp.ps; %s /usr/tmp/idraw.tmp.ps&", - "~/.clipboard", "/usr/bin/X11/idraw", 19.0, "Times-Bold", 18.0, - "Times-Roman", 12.0, NONE}, - {"Tgif", tgifInit, - "cat > /usr/tmp/xgraph.obj; %s /usr/tmp/xgraph &", - "xgraph.obj", "/usr/bin/X11/tgif", 19.0, "Times-Bold", 18.0, - "Times-Roman", 12.0, NONE} -}; - -int hard_count = sizeof(hard_devices) / sizeof(struct hard_dev); - -#define CHANGE_D(name, field) \ -if (param_get(name, &val)) { \ - if (val.type == DBL) { \ - hard_devices[idx].field = val.dblv.value; \ - } \ -} - -#define CHANGE_S(name, field) \ -if (param_get(name, &val)) { \ - if (val.type == STR) { \ - (void) strcpy(hard_devices[idx].field, val.strv.value); \ - } \ -} - - -void -hard_init() -/* - * Changes values in hard_devices structures in accordance with - * parameters set using the parameters module. - */ -{ - char nn[BUFSIZ]; - int idx; - params val; - - for (idx = 0; idx < hard_count; idx++) { - (void) sprintf(nn, "%s.Dimension", hard_devices[idx].dev_name); - CHANGE_D(nn, dev_max_dim); - (void) sprintf(nn, "%s.OutputTitleFont", hard_devices[idx].dev_name); - CHANGE_S(nn, dev_title_font); - (void) sprintf(nn, "%s.OutputTitleSize", hard_devices[idx].dev_name); - CHANGE_D(nn, dev_title_size); - (void) sprintf(nn, "%s.OutputAxisFont", hard_devices[idx].dev_name); - CHANGE_S(nn, dev_axis_font); - (void) sprintf(nn, "%s.OutputAxisSize", hard_devices[idx].dev_name); - CHANGE_D(nn, dev_axis_size); - if (hard_devices[idx].dev_printer[0] == '$') { - extern char *getenv(); - char *ptr; - if ((ptr = getenv(&hard_devices[idx].dev_printer[1]))) { - (void) strncpy(hard_devices[idx].dev_printer, ptr, MFNAME - 1); - hard_devices[idx].dev_printer[MFNAME - 1] = '\0'; - } - } - } -} diff --git a/xgraph/hard_devices.h b/xgraph/hard_devices.h deleted file mode 100644 index c56f755c7..000000000 --- a/xgraph/hard_devices.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Hardcopy Device Header - * - * This file declares the types required for the hardcopy table - * found in hard_devices.c. - */ - -#ifndef _h_hard_devices -#define _h_hard_devices - -#define MFNAME 25 - -typedef enum hard_dev_docu_defn { - NONE, NO, YES -} hard_dev_docu; - -struct hard_dev { - char *dev_name; /* Device name */ - int (*dev_init) (); /* Initialization function */ - char *dev_spec; /* Default pipe program */ - char dev_file[MFNAME]; /* Default file name */ - char dev_printer[MFNAME];/* Default printer name */ - double dev_max_dim; /* Default maximum dimension (cm) */ - char dev_title_font[MFNAME]; /* Default name of title font */ - double dev_title_size; /* Default size of title font (pnts) */ - char dev_axis_font[MFNAME]; /* Default name of axis font */ - double dev_axis_size; /* Default size of axis font (pnts) */ - hard_dev_docu dev_docu; /* Document predicate */ -}; - -extern int hard_count; -extern struct hard_dev hard_devices[]; - -#define D_HPGL 0 -#define D_POSTSCRIPT 1 -#define D_IDRAW 2 -#define D_TGIF 3 -#define D_XWINDOWS 4 - -extern void hard_init(); -#endif /* _h_hard_devices */ diff --git a/xgraph/hpgl.c b/xgraph/hpgl.c deleted file mode 100644 index bab16ccc6..000000000 --- a/xgraph/hpgl.c +++ /dev/null @@ -1,337 +0,0 @@ -/* - * HPGL Output - * - * Tom Quarles - */ - -#define MAPX(state,x) ( (x) + P1X + state->clipminX ) -#define MAPY(state,y) ( MAXY - (y) + P1Y - state->clipminY) - -#include "copyright.h" -#include "xgraph.h" -#include "plotter.h" -#include -#include - -static void hpglText(); -static void hpglSeg(); -static void hpglDot(); -static void hpglEnd(); - -static xgOut hpglInfo = -{ - D_COLOR, /* device characteristics */ - MAXX, /* width */ - MAXY, /* height */ - 200, /* border padding */ - 0, /* extra space around axis labels */ - 250, /* tick length - approx 1/4 inch */ - 50, /* spacing above legend lables */ - 0, /* axis font width */ - 0, /* axis font height */ - 0, /* title font width */ - 0, /* title font height */ - 1000000, /* maximum number of segments */ - - hpglText, /* text output function */ - hpglSeg, /* segment drawing function */ - hpglDot, /* dot/marker drawing function */ - hpglEnd, /* end of plot function */ - - NULL, /* userInfo */ -}; - -typedef struct { - double axis_w; - double axis_h; - double title_w; - double title_h; - FILE *plotterFile; - int clipminX; - int clipminY; - int clipmaxX; - int clipmaxY; -} mydata; - -/*ARGSUSED*/ -int -hpglInit(stream, width, height, title_family, title_size, - axis_family, axis_size, flags, outInfo, errmsg) -FILE *stream; /* output stream */ -int width; /* desired width of space in microns */ -int height; /* desired height in microns */ -char *title_family; /* name of font for titles */ -double title_size; /* size of font for titles */ -char *axis_family; /* name of font for axes */ -double axis_size; /* size of font for axes */ -int flags; /* predicate values (ignored) */ -xgOut *outInfo; /* my structure */ -char errmsg[ERRBUFSIZE]; /* a place to complain to */ -{ - mydata *myInfo; - - myInfo = (mydata *) Malloc(sizeof(mydata)); - if (myInfo == NULL) - return 0; - *outInfo = hpglInfo; - outInfo->area_w = MIN(MAXX, width / 25); - outInfo->area_h = MIN(MAXY, height / 25); - /* magic formulas: input sizes are in points = 1/72 inch */ - /* my sizes are in cm */ - /* plotter units are in units of .025mm ~= 1/1016 inch */ - /* - * have to warn of height 1.5 times larger or get bitten by plotter's - * internal padding - */ - /* widths are (arbitrarily) selected to be 2/3 of the height */ - /* (cancels with width factor) */ - myInfo->axis_w = axis_size * .666 * 2.54 / 72.; - myInfo->axis_h = axis_size * 2.54 / 72.; - myInfo->title_w = title_size * .666 * 2.54 / 72.; - myInfo->title_h = title_size * 2.54 / 72.; - - outInfo->axis_pad = axis_size * 1016. * 1.5 / 72.; - outInfo->axis_width = axis_size * 1016. * 1.5 / 72.; - outInfo->axis_height = axis_size * 1016. * .666 / 72.; - outInfo->title_width = title_size * 1016. * 1.5 / 72.; - outInfo->title_height = title_size * 1016. * .666 / 72.; - outInfo->user_state = (char *) myInfo; - myInfo->plotterFile = stream; - myInfo->clipminX = 0; - myInfo->clipminY = 0; - myInfo->clipmaxX = MAXX; - myInfo->clipmaxY = MAXY; - fprintf(myInfo->plotterFile, "PG;IN;\n"); - fprintf(myInfo->plotterFile, "DI1,0;\n"); - fprintf(myInfo->plotterFile, "IW%d,%d,%d,%d;\n", MAPX(myInfo, 0), - MAPY(myInfo, myInfo->clipmaxY - myInfo->clipminY), - MAPX(myInfo, myInfo->clipmaxX - myInfo->clipminX), - MAPY(myInfo, 0)); - return (1); -} - -static void -hpglText(userState, x, y, text, just, style) -mydata *userState; /* my state information */ -int x, - y; /* coords of text origin */ -char *text; /* what to put there */ -int just; /* how to justify */ - - /* - * where the origin is relative to where the text should go as a function of - * the various values of just - * - * T_UPPERLEFT T_TOP T_UPPERRIGHT T_LEFT T_CENTER T_RIGHT - * T_LOWERLEFT T_BOTTOM T_LOWERRIGHT - * - */ -int style; /* T_AXIS = axis font, T_TITLE = title font */ - -{ - fprintf(userState->plotterFile, "PU;SP%d;", TEXTCOLOR); - fprintf(userState->plotterFile, "PA%d,%d;", MAPX(userState, x), MAPY(userState, y)); - switch (style) { - case T_AXIS: - fprintf(userState->plotterFile, "SI%f,%f;", userState->axis_w, userState->axis_h); - break; - case T_TITLE: - fprintf(userState->plotterFile, "SI%f,%f;", userState->title_w, userState->title_h); - break; - default: - printf("bad text style %d in hpglText\n", style); - exit(1); - break; - } - switch (just) { - case T_UPPERLEFT: - fprintf(userState->plotterFile, "LO3;\n"); - break; - case T_TOP: - fprintf(userState->plotterFile, "LO6;\n"); - break; - case T_UPPERRIGHT: - fprintf(userState->plotterFile, "LO9;\n"); - break; - case T_LEFT: - fprintf(userState->plotterFile, "LO2;\n"); - break; - case T_CENTER: - fprintf(userState->plotterFile, "LO5;\n"); - break; - case T_RIGHT: - fprintf(userState->plotterFile, "LO8;\n"); - break; - case T_LOWERLEFT: - fprintf(userState->plotterFile, "LO1;\n"); - break; - case T_BOTTOM: - fprintf(userState->plotterFile, "LO4;\n"); - break; - case T_LOWERRIGHT: - fprintf(userState->plotterFile, "LO7;\n"); - break; - default: - printf("bad justification type %d in hpglText\n", just); - exit(1); - break; - } - fprintf(userState->plotterFile, "LB%s\03;", text); -} - - - -static int penselect[8] = -{PEN1, PEN2, PEN3, PEN4, PEN5, PEN6, PEN7, PEN8}; -static int lineselect[8] = -{LINE1, LINE2, LINE3, LINE4, LINE5, LINE6, - LINE7, LINE8}; - - - -static void -hpglSeg(userState, ns, segs, width, style, lappr, color) -mydata *userState; /* my state information (not used) */ -int ns; /* number of segments */ -XSegment *segs; /* X array of segments */ -int width; /* width of lines in pixels */ -int style; /* L_VAR = dotted, L_AXIS = grid, L_ZERO = axis */ -int lappr; /* line style */ -int color; /* line color */ -{ - int i; - - if (style == L_ZERO) { - fprintf(userState->plotterFile, "SP%d;", PENAXIS); /* select correct pen */ - fprintf(userState->plotterFile, "LT;"); /* solid line style */ - } - else if (style == L_AXIS) { - fprintf(userState->plotterFile, "SP%d;", PENGRID); /* select correct pen */ - fprintf(userState->plotterFile, "LT;"); /* solid line style */ - } - else if (style == L_VAR) { - if ((color < 0) || (color > 7)) { - printf("out of range line color %d in hpglLine\n", color); - exit(1); - } - fprintf(userState->plotterFile, "SP%d;", penselect[color]); /* select correct pen */ - if ((lappr < 0) || (lappr > 7)) { - printf("out of range line style %d in hpglLine\n", lappr); - exit(1); - } - if (lappr == 0) { - fprintf(userState->plotterFile, "LT;"); /* select solid line - * type */ - } - else { - fprintf(userState->plotterFile, "LT%d;", lineselect[lappr]); /* select line type */ - } - } - else { - printf("unknown style %d in hpglLine\n", style); - exit(1); - } - for (i = 0; i < ns; i++) { - if (!i || ((segs[i].x1 != segs[i - 1].x2) || (segs[i].y1 != segs[i - 1].y2))) { - /* MOVE */ - fprintf(userState->plotterFile, "PU;PA%d,%d;\n", MAPX(userState, segs[i].x1), - MAPY(userState, segs[i].y1)); - } - /* DRAW */ - if (width <= 1) { - fprintf(userState->plotterFile, "PD;PA%d,%d;\n", MAPX(userState, segs[i].x2), - MAPY(userState, segs[i].y2)); - } - else { /* ugly - wide lines -> rectangles */ - double frac; - int lx, - ly; - int urx, - ury, - ulx, - uly, - llx, - lly, - lrx, - lry; - - frac = (width / 2) / sqrt((double) - ((segs[i].x1 - segs[i].x2) * - (segs[i].x1 - segs[i].x2)) + - ((segs[i].y1 - segs[i].y2) * - (segs[i].y1 - segs[i].y2))); - lx = frac * (segs[i].y2 - segs[i].y1); - ly = -frac * (segs[i].x2 - segs[i].x1); - urx = segs[i].x2 + lx; - ury = segs[i].y2 + ly; - ulx = segs[i].x2 - lx; - uly = segs[i].y2 - ly; - llx = segs[i].x1 - lx; - lly = segs[i].y1 - ly; - lrx = segs[i].x1 + lx; - lry = segs[i].y1 + ly; - fprintf(userState->plotterFile, "PU;PA%d,%d;", MAPX(userState, llx), - MAPY(userState, lly)); - fprintf(userState->plotterFile, "PM0;"); - fprintf(userState->plotterFile, "PD,PA%d,%D;PA%d,%D;PA%d,%d;\n", - MAPX(userState, lrx), MAPY(userState, lry), - MAPX(userState, urx), MAPY(userState, ury), - MAPX(userState, ulx), MAPY(userState, uly)); - fprintf(userState->plotterFile, "PM2;FP;EP;"); - } - } - fprintf(userState->plotterFile, "PU;"); -} - -static char *markselect[8] = -{MARK1, MARK2, MARK3, MARK4, MARK5, MARK6, - MARK7, MARK8}; - -static void -hpglDot(userState, x, y, style, type, color) -mydata *userState; /* my state information (not used) */ -int x, - y; /* coord of dot */ -int style; /* type of dot */ -int type; /* dot style variation */ -int color; /* color of dot */ -{ - /* move to given coord */ - fprintf(userState->plotterFile, "PU;PA%d,%d;\n", MAPX(userState, x), MAPY(userState, y)); - if ((color < 0) || (color > 7)) { - printf("unknown color %d in hpglDot\n", color); - exit(1); - } - fprintf(userState->plotterFile, "SP%d;", penselect[color]); - if (style == P_PIXEL) { - fprintf(userState->plotterFile, "PD;PU;\n"); - } - else if (style == P_DOT) { - fprintf(userState->plotterFile, "LT;PM0;CI40;PM2;FT;EP;\n"); - } - else if (style == P_MARK) { - if ((type < 0) || (type > 7)) { - printf("unknown marker type %d in hpglDot\n", type); - exit(1); - } - /* - * fprintf(userState->plotterFile,"LT;CA5;LO4;SI0.1;LB%s\03;\n",marksele - * ct[type]); - */ - fprintf(userState->plotterFile, "LT;CS5;LO4;SI0.15;SM%s;PR0,0;SM;CS;\n", markselect[type]); - } - else { - printf("unknown marker style %d in hpglDot\n", style); - exit(1); - } -} - -static void -hpglEnd(userState) -mydata *userState; /* my state information (not used) */ - -{ - fprintf(userState->plotterFile, "SP;PG;IN;\n"); - fflush(userState->plotterFile); - return; -} diff --git a/xgraph/idraw.c b/xgraph/idraw.c deleted file mode 100644 index 620263b8d..000000000 --- a/xgraph/idraw.c +++ /dev/null @@ -1,499 +0,0 @@ -/* - * Idraw Output - * - * Beorn Johnson - * Alan Kramer - * David Harrison - */ - -#include -#include -#include -#include "hard_devices.h" -#include "xgout.h" - -#define HEIGHT 792 -#define FIX(X) X = HEIGHT - X; - -typedef struct { - char *title_font; - char *axis_font; - int title_size; - int axis_size; - FILE *strm; -} Info; - -char *idraw_prologue[] = -{ - "%I Idraw 4", - "Begin", - "%I b u", - "%I cfg u", - "%I cbg u", - "%I f u", - "%I p u", - "%I t", - "[ 1 0 0 1 0 0 ] concat", - "/originalCTM matrix currentmatrix def", - 0 -}; - -/* - * Hardcopy Interface for Xgraph - * - * Major differences from first version: - * Four new parameters are passed to the device initialization routine: - * title_family, title_size, axis_family, and axis_size. See the - * description of xg_init() for details. - * - * Clipping is done automatically by xgraph. The xg_clip() routine - * is obsolete. - * - * The xg_line() routine has become the xg_seg() routine. It now - * draws segments rather than a series of lines. - * - * A new field (max_segs) in the device structure now specifies - * the maximum number of segments the device can handle in a group. - */ - - -/* - * Adding an output device to xgraph - * - * Step 1 - * Write versions of the following routines for your device: - * xg_init(), xg_text(), xg_seg(), xg_dot(), and xg_end(). - * The interface and function of these routines are described - * in detail below. These routines should be named according - * to your device. For example, the initialization routine - * for the Postscript output device is psInit(). Also, name - * your source file after your device (e.g. the postscript - * routines are in the file ps.c). Instructions continue - * after the description of the interface routines. - */ - - -void idrawText(); -void idrawDot(); -void idrawSeg(); -void idrawEnd(); - -int -idrawInit(strm, width, height, title_family, title_size, - axis_family, axis_size, flags, out_info, errmsg) -FILE *strm; /* Output stream */ -int width, - height; /* Size of space (microns) */ -char *title_family; /* Name of title font family */ -double title_size; /* Title font height (points) */ -char *axis_family; /* Name of axis font family */ -double axis_size; /* Axis font height (points) */ -int flags; /* Flags */ -xgOut *out_info; /* Device info (RETURN) */ -char errmsg[ERRBUFSIZE]; /* Error message area */ - -/* - * This routine is called by xgraph just before drawing is to - * begin. The desired size of the plot is given by `width' - * and `height'. The parameters `title_family', `title_size', - * `axis_family', and `axis_size' specify the names of the - * title and axis fonts and their vertical sizes (in points). - * These parameters can be ignored if your device does not - * support multiple fonts. Binary flags are specified in - * the `flags' field. These include: - * D_DOCU: - * If this flag is set, it indicates the user has specified that - * the output will be included in some larger document. Devices - * may choose to use this information to produce output that - * can be integrated into documents with less effort. For example, - * the Postscript output routines produce bounding box information - * when this flag is set. - * The routine should fill in all of the fields of `out_info' with - * appropriate values. The values are described below: - * area_w, area_h: - * Size of the drawing space in device coordinates. - * This should take in account the requested area - * given by `width', and `height'. - * bdr_pad: - * Xgraph will leave this number of device coordinates around - * all of the outer edges of the graph. - * axis_pad: - * Additional space around axis labels (in devcoords) - * so that the labels do not appear crowded. - * legend_pad: - * Space (in devcoords) from the top of legend text to - * the representative line drawn above the legend text. - * tick_len: - * Size of a tick mark placed on axis (in devcoords) - * axis_width: - * An estimate of the width of a large character in - * the axis font (in devcoords). This can be an overestimate. An - * underestimate may produce bad results. - * axis_height: - * An estimate of the height of a large character in - * the axis labeling font (in devcoords). - * title_width, title_height: - * Same as above except for the title font. - * max_segs: - * Due to buffering constraints, some devices may not be able to - * handle massive segment lists. This parameter tells xgraph not - * to send more than `max_segs' segments in one request. - * Output to the device should be written to the stream `strm'. - * The functions are described individually below. After filling - * in the parameters and setting the function pointers, the routine - * should initialize its drawing state and store any extra needed - * information in `user_state'. This value will be passed to all - * other routines during the drawing sequence. If the device - * cannot initialize, it should return a zero status and fill - * `errmsg' with an informative error message. - */ -{ - Info *idraw_info; - char **l; - double scx, - scy; - - idraw_info = (Info *) Malloc(sizeof(*idraw_info)); - - for (l = idraw_prologue; *l; l++) - fprintf(strm, "%s\n", *l); - - out_info->dev_flags = 0; - scx = width / 612; - scy = height / 792.0; - if (scx > scy) { - scy /= scx; - scx = 1; - } - else { - scx /= scy; - scy = 1; - } - out_info->bdr_pad = title_size / 4; - out_info->axis_pad = 2.0 * axis_size; - out_info->legend_pad = 0; - - out_info->area_w = width * 0.00283; /* pts per micron */ - out_info->area_h = height * 0.00283; - - out_info->tick_len = axis_size; - out_info->axis_height = axis_size; - out_info->title_height = title_size; - out_info->axis_width = (axis_size * 5.0) / 12.0; - out_info->title_width = (title_size * 5.0) / 12.0; - out_info->max_segs = 100; - out_info->xg_text = idrawText; - out_info->xg_seg = idrawSeg; - out_info->xg_dot = idrawDot; - out_info->xg_end = idrawEnd; - out_info->user_state = (char *) idraw_info; - - idraw_info->title_font = title_family; - idraw_info->axis_font = axis_family; - idraw_info->title_size = title_size; - idraw_info->axis_size = axis_size; - idraw_info->strm = strm; - return 1; -} - -/* Text justifications */ -#define T_CENTER 0 -#define T_LEFT 1 -#define T_UPPERLEFT 2 -#define T_TOP 3 -#define T_UPPERRIGHT 4 -#define T_RIGHT 5 -#define T_LOWERRIGHT 6 -#define T_BOTTOM 7 -#define T_LOWERLEFT 8 - -/* Text styles */ -#define T_AXIS 0 -#define T_TITLE 1 - -static void -idraw_just(x, y, just, size, len) -int *x, - *y; /* Given location (lower left) */ -int just; /* Justification */ -int size; /* Size in points */ -int len; /* Number of chars */ - -/* - * Unfortunately, idraw really can't display text with a justification. - * This is a horrible hack to try to get around the problem. It tries - * to compute a rough bounding box for the text based on the text height - * and the string length and offset `x,y' appropriately for the justification. - * This is only a hack... - */ -{ - int t_width, - t_height; - - t_height = size; - t_width = (size * len * 5) / 12; /* Horrible estimate */ - - switch (just) { - case T_CENTER: - *x -= t_width / 2; - *y += t_height / 2; - break; - case T_LEFT: - *y += t_height / 2; - break; - case T_UPPERLEFT: - /* nothing */ - break; - case T_TOP: - *x -= t_width / 2; - break; - case T_UPPERRIGHT: - *x -= t_width; - break; - case T_RIGHT: - *x -= t_width; - *y += t_height / 2; - break; - case T_LOWERRIGHT: - *x -= t_width; - *y += t_height; - break; - case T_BOTTOM: - *x -= t_width / 2; - *y += t_height; - break; - case T_LOWERLEFT: - *y += t_height; - break; - } - - /* - * Also, idraw seems to put a space above all text it draws. The - * computation below compensates for this. - */ - *y += (size / 3); -} - -void -idrawText(user_state, x, y, text, just, style) -char *user_state; /* Value set in xg_init */ -int x, - y; /* Text position (pixels) */ -char *text; /* Null terminated text */ -int just; /* Justification (above) */ -int style; /* Text style (above) */ - -/* - * This routine should draw text at the indicated position using - * the indicated justification and style. The justification refers - * to the location of the point in reference to the text. For example, - * if just is T_LOWERLEFT, (x,y) should be located at the lower left - * edge of the text string. - */ -{ - char *font; - int size; - Info *idraw = (Info *) user_state; - - FIX(y); - font = style == T_AXIS ? idraw->axis_font : - idraw->title_font; - size = style == T_AXIS ? idraw->axis_size : - idraw->title_size; - - idraw_just(&x, &y, just, size, strlen(text)); - - fprintf(idraw->strm, "Begin %%I Text\n"); - fprintf(idraw->strm, "%%I cfg Black\n"); - fprintf(idraw->strm, "0 0 0 SetCFg\n"); - fprintf(idraw->strm, "%%I f *%s*-%d-*\n", font, size); - fprintf(idraw->strm, "/%s %d SetF\n", font, size); - fprintf(idraw->strm, "%%I t\n"); - fprintf(idraw->strm, "[ 1 0 0 1 %d %d ] concat\n", x, y); - fprintf(idraw->strm, "%%I\n"); - fprintf(idraw->strm, "[\n"); - fprintf(idraw->strm, "(%s)\n", text); - fprintf(idraw->strm, "] Text\n"); - fprintf(idraw->strm, "End\n"); - -} - -/* Line Styles */ -#define L_AXIS 0 -#define L_ZERO 1 -#define L_VAR 2 - -void -idrawSeg(user_state, ns, seglist, width, style, lappr, color) -char *user_state; /* Value set in xg_init */ -int ns; /* Number of segments */ -XSegment *seglist; /* X array of segments */ -int width; /* Width of lines */ -int style; /* See above */ -int lappr; /* Line appearence */ -int color; /* Line color (if any) */ - -/* - * This routine draws a number of line segments at the points - * given in `seglist'. Note that contiguous segments need not share - * endpoints but often do. All segments should be `width' devcoords wide - * and drawn in style `style'. If `style' is L_VAR, the parameters - * `color' and `lappr' should be used to draw the line. Both - * parameters vary from 0 to 7. If the device is capable of - * color, `color' varies faster than `style'. If the device - * has no color, `style' will vary faster than `color' and - * `color' can be safely ignored. However, if the - * the device has more than 8 line appearences, the two can - * be combined to specify 64 line style variations. - * Xgraph promises not to send more than the `max_segs' in the - * xgOut structure passed back from xg_init(). - */ -{ - Info *idraw = (Info *) user_state; - short to_style; - int i, - j, - k; - - static unsigned short style_list[] = - { - 0xffff, 0xf0f0, 0xcccc, 0xaaaa, - 0xf060, 0xf198, 0x7f55, 0x0000, - }; - - to_style = style == L_AXIS ? 65535 - : style == L_ZERO ? 65535 - : style_list[lappr]; - - for (i = 0; i < ns; i++) { - FIX(seglist[i].y1); - FIX(seglist[i].y2); - } - - for (i = 0; i < ns; i = j) { - - for (j = i + 1; j < ns - && seglist[j - 1].x2 == seglist[j].x1 - && seglist[j - 1].y2 == seglist[j].y1; - j++); - - fprintf(idraw->strm, "Begin %%I MLine\n"); - fprintf(idraw->strm, "%%I b %d\n", to_style); - fprintf(idraw->strm, "%d 0 0 [", width); - /* fprintf(idraw -> strm, "%d"); */ - fprintf(idraw->strm, "] 0 SetB\n"); - fprintf(idraw->strm, "%%I cfg Black\n"); - fprintf(idraw->strm, "0 0 0 SetCFg\n"); - fprintf(idraw->strm, "%%I cbg White\n"); - fprintf(idraw->strm, "1 1 1 SetCBg\n"); - fprintf(idraw->strm, "none SetP %%I p n\n"); - fprintf(idraw->strm, "%%I t u\n"); - - fprintf(idraw->strm, "%%I %d\n", j - i + 1); - - for (k = i; k < j; k++) - fprintf(idraw->strm, "%d %d\n", - seglist[k].x1, seglist[k].y1); - - fprintf(idraw->strm, "%d %d\n", - seglist[k - 1].x2, seglist[k - 1].y2); - - fprintf(idraw->strm, "%d MLine\n", j - i + 1); - fprintf(idraw->strm, "End\n"); - } - - -} - -/* Marker styles */ -#define P_PIXEL 0 -#define P_DOT 1 -#define P_MARK 2 - -void -idrawDot(user_state, x, y, style, type, color) -char *user_state; /* Value set in xg_init */ -int x, - y; /* Location in pixel units */ -int style; /* Dot style */ -int type; /* Type of marker */ -int color; /* Marker color (if any) */ - -/* - * This routine should draw a marker at location `x,y'. If the - * style is P_PIXEL, the dot should be a single pixel. If - * the style is P_DOT, the dot should be a reasonably large - * dot. If the style is P_MARK, it should be a distinguished - * mark which is specified by `type' (0-7). If the output - * device is capable of color, the marker should be drawn in - * `color' (0-7) which corresponds with the color for xg_line. - */ -{ -} - -void -idrawEnd(user_state) -char *user_state; - -/* - * This routine is called after a drawing sequence is complete. - * It can be used to clean up the user state and set the device - * state appropriately. This routine is optional in the structure. - */ -{ - Info *idraw = (Info *) user_state; - - fprintf(idraw->strm, "End %%I eop\n"); - fclose(idraw->strm); -} - -/* - * Adding an output device to xgraph - * - * Step 2 - * Edit the file hard_devices.c. Declare your initialization - * function and add your device to the list of devices, - * hard_devices[]. The structure hard_dev is described below: - */ - -#ifdef notdef -extern int idrawInit(); - -struct hard_dev idraw = -{ - "idraw format", idrawInit, - 0, ".clipboard", 0, - 25, "Times-Bold", 18, "Times", 12 -}; - -#endif - -/* - * dev_spec: - * The dev_spec field should be a command that directly outputs to - * your device. The command should contain one %s directive that - * will be filled in with the name of the device from the hardcopy - * dialog. - * dev_file: - * The default file to write output to if the user selects `To File'. - * dev_printer: - * The default printer to write output to if the user selects - * `To Device'. - * dev_max_dim: - * The default maximum dimension for the device in centimeters. - * dev_title_font, dev_title_size: - * The default title font and size. Sizes are specified in - * points (1/72 inch). - * dev_axis_font, dev_axis_size: - * The default axis font and size. - */ - -/* - * Adding an output device to xgraph - * - * Step 3 - * Edit the file Makefile. Add your source file to the SRC variable - * and the corresponding object file to the OBJ variable. Finally, - * remake xgraph. Your device should now be available in the - * hardcopy dialog. - */ diff --git a/xgraph/init.c b/xgraph/init.c deleted file mode 100644 index bd38273c4..000000000 --- a/xgraph/init.c +++ /dev/null @@ -1,622 +0,0 @@ -/* $Header$ */ -/* - * init.c: xgraph initialization code - * - * Routines: - * InitSets(); - * ParseArgs(); - * ReadDefaults(); - * - * $Log$ - * Revision 1.1 2004-01-25 09:00:49 pnenzi - * - * Added xgraph plotting program. - * - * Revision 1.2 1999/12/19 00:52:06 heideman - * warning suppresion, slightly different flot ahndling - * - * Revision 1.1.1.1 1999/12/03 23:15:53 heideman - * xgraph-12.0 - * - */ -#ifndef lint -static char rcsid[] = "$Id$"; -#endif - -#include "copyright.h" -#include -#include -#include -#include -#include "xgraph.h" -#include "xtb.h" -#include "hard_devices.h" -#include "params.h" - -/* - * Default settings for xgraph parameters - */ - -/* PW */ -#define DEF_ANIMATE "off" -#define DEF_DELAY_VALUE "2" -#define DEF_BORDER_WIDTH "2" -#define DEF_BORDER_COLOR "Black" -#define DEF_TITLE_TEXT "X Graph" -#define DEF_XUNIT_TEXT "X" -#define DEF_YUNIT_TEXT "Y" -#define DEF_TICK_FLAG "off" -#define DEF_TICKAXIS_FLAG "off" -#define DEF_MARK_FLAG "off" -#define DEF_PIXMARK_FLAG "off" -#define DEF_LARGEPIX_FLAG "off" -#define DEF_DIFFMARK_FLAG "off" -#define DEF_BB_FLAG "off" -#define DEF_NOLINE_FLAG "off" -#define DEF_NOLEGEND_FLAG "off" -#define DEF_NOBUTTON_FLAG "off" -#define DEF_LOGX_FLAG "off" -#define DEF_LOGY_FLAG "off" -#define DEF_BAR_FLAG "off" -#define DEF_STK_FLAG "off" -#define DEF_FITX_FLAG "off" -#define DEF_FITY_FLAG "off" -#define DEF_BAR_BASE "0.0" -#define DEF_BAR_OFFS "0.0" -#define DEF_BAR_WIDTH "-1.0" -#define DEF_LINE_WIDTH "0" -#define DEF_GRID_SIZE "0" -#define DEF_GRID_STYLE "10" -#define DEF_LABEL_FONT "helvetica-10" -#define DEF_TITLE_FONT "helvetica-18" -#define DEF_GEOMETRY "" -#define DEF_REVERSE "off" -/* PW Changes these to please JM */ -#define DEF_FMT_X "%.4f" -#define DEF_FMT_Y "%.4f" -#define DEF_DEVICE "" -#define DEF_OUTPUT_DEVICE D_XWINDOWS -#define DEF_DISPOSITION "To Device" -#define DEF_FILEORDEV "" -#define DEF_DOCUMENT "off" -#define DEF_SCALE "1.0" - -#define DEF_MARKER_FLAG "off" -#define DEF_DIFFMARK_FLAG "off" -#define DEF_PIXMARK_FLAG "off" -#define DEF_LARGEPIX_FLAG "off" - -/* Low > High means set it based on the data */ -#define DEF_LOW_LIMIT "1.0" -#define DEF_HIGH_LIMIT "0.0" - -/* Black and white defaults */ -#define DEF_BW_BACKGROUND "white" -#define DEF_BW_BORDER "black" -#define DEF_BW_ZEROCOLOR "black" -#define DEF_BW_ZEROWIDTH "3" -#define DEF_BW_ZEROSTYLE "1" -#define DEF_BW_FOREGROUND "black" - -/* Color defaults */ -#define DEF_COL_BACKGROUND "#ccc" -#define DEF_COL_BORDER "black" -#define DEF_COL_ZEROCOLOR "white" -#define DEF_COL_ZEROWIDTH "0" -#define DEF_COL_ZEROSTYLE "1" -#define DEF_COL_FOREGROUND "black" -#define DEF_COL_FIRSTSTYLE "1" - -/* Default line styles */ -static char *defStyle[MAXATTR] = -{ - "1", "10", "11110000", "010111", "1110", - "1111111100000000", "11001111", "0011000111" -}; - -/* Default color names */ -/*static char *defColors[MAXATTR] = -{ - "red", "SpringGreen", "blue", "yellow", - "cyan", "sienna", "orange", "coral" -};*/ -static char *defColors[MAXATTR] = -{ - "red", "SpringGreen", "blue", "yellow", - "purple", "orange", "hotpink", "cyan" -}; - -void -InitSets(o) -int o; - -/* - * Initializes the data sets with default information. Sets up - * original values for parameters in parameters package. - */ -{ - int idx; - char buf[1024]; - - if (o == D_XWINDOWS) { - /* - * Used to do all kinds of searching through visuals, etc. Got - * complaints -- so back to the simple version. - */ - vis = DefaultVisual(disp, DefaultScreen(disp)); - cmap = DefaultColormap(disp, DefaultScreen(disp)); - screen = DefaultScreen(disp); - depth = DefaultDepth(disp, DefaultScreen(disp)); - param_init(disp, cmap); - } - else - param_init(NULL, 0); - - - param_set("Debug", BOOL, "false"); - param_set("Geometry", STR, DEF_GEOMETRY); - param_set("ReverseVideo", BOOL, DEF_REVERSE); - - param_set("BorderSize", INT, DEF_BORDER_WIDTH); - param_set("TitleText", STR, DEF_TITLE_TEXT); - param_set("XUnitText", STR, DEF_XUNIT_TEXT); - param_set("YUnitText", STR, DEF_YUNIT_TEXT); /* YUnits */ - param_set("Ticks", BOOL, DEF_TICK_FLAG); - param_set("TickAxis", BOOL, DEF_TICKAXIS_FLAG); - - param_set("Markers", BOOL, DEF_MARKER_FLAG); /* markFlag (-m) */ - param_set("StyleMarkers", BOOL, DEF_DIFFMARK_FLAG); /* colorMark (-M) */ - param_set("PixelMarkers", BOOL, DEF_PIXMARK_FLAG); /* pixelMarks (-p) */ - param_set("LargePixels", BOOL, DEF_LARGEPIX_FLAG); /* bigPixel (-P) */ - - param_set("BoundBox", BOOL, DEF_BB_FLAG); - param_set("NoLines", BOOL, DEF_NOLINE_FLAG); - param_set("NoLegend", BOOL, DEF_NOLEGEND_FLAG); - param_set("NoButton", BOOL, DEF_NOBUTTON_FLAG); - param_set("LogX", BOOL, DEF_LOGX_FLAG); - param_set("LogY", BOOL, DEF_LOGY_FLAG); /* logYFlag */ - param_set("BarGraph", BOOL, DEF_BAR_FLAG); - param_set("StackGraph", BOOL, DEF_STK_FLAG); - param_set("FitX", BOOL, DEF_FITX_FLAG); - param_set("FitY", BOOL, DEF_FITY_FLAG); - param_set("BarBase", DBL, DEF_BAR_BASE); - param_set("BarWidth", DBL, DEF_BAR_WIDTH); - param_set("BarOffset", DBL, DEF_BAR_OFFS); - param_set("LineWidth", INT, DEF_LINE_WIDTH); - param_set("GridSize", INT, DEF_GRID_SIZE); - param_set("GridStyle", STYLE, DEF_GRID_STYLE); - param_set("Format X", STR, DEF_FMT_X); - param_set("Format Y", STR, DEF_FMT_Y); - - param_set("Device", STR, DEF_DEVICE); - param_set("Disposition", STR, DEF_DISPOSITION); - param_set("FileOrDev", STR, DEF_FILEORDEV); - sprintf(buf, "%d", o); - param_set("Output Device", INT, buf); - param_set("Document", BOOL, DEF_DOCUMENT); - param_set("Scale", DBL, DEF_SCALE); - - /* Set the user bounding box */ - param_set("XLowLimit", DBL, DEF_LOW_LIMIT); - param_set("YLowLimit", DBL, DEF_LOW_LIMIT); - param_set("XHighLimit", DBL, DEF_HIGH_LIMIT); - param_set("YHighLimit", DBL, DEF_HIGH_LIMIT); - - /* Depends critically on whether the display has color */ - if (depth < 4) { - /* Its black and white */ - param_set("Background", PIXEL, DEF_BW_BACKGROUND); - param_set("Border", PIXEL, DEF_BW_BORDER); - param_set("ZeroColor", PIXEL, DEF_BW_ZEROCOLOR); - param_set("ZeroWidth", INT, DEF_BW_ZEROWIDTH); - param_set("ZeroStyle", STYLE, DEF_BW_ZEROSTYLE); - param_set("Foreground", PIXEL, DEF_BW_FOREGROUND); - /* Initialize set defaults */ - for (idx = 0; idx < MAXATTR; idx++) { - (void) sprintf(buf, "%d.Style", idx); - param_set(buf, STYLE, defStyle[idx]); - (void) sprintf(buf, "%d.Color", idx); - param_set(buf, PIXEL, DEF_BW_FOREGROUND); - } - } - else { - /* Its color */ - param_set("Background", PIXEL, DEF_COL_BACKGROUND); - param_set("Border", PIXEL, DEF_COL_BORDER); - param_set("ZeroColor", PIXEL, DEF_COL_ZEROCOLOR); - param_set("ZeroWidth", INT, DEF_COL_ZEROWIDTH); - param_set("ZeroStyle", STYLE, DEF_COL_ZEROSTYLE); - param_set("Foreground", PIXEL, DEF_COL_FOREGROUND); - /* Initalize attribute colors defaults */ - for (idx = 0; idx < MAXATTR; idx++) { - (void) sprintf(buf, "%d.Style", idx); - param_set(buf, STYLE, defStyle[idx]); - (void) sprintf(buf, "%d.Color", idx); - param_set(buf, PIXEL, defColors[idx]); - } - } - - param_set("LabelFont", FONT, DEF_LABEL_FONT); - param_set("TitleFont", FONT, DEF_TITLE_FONT); - /* PW */ - param_set("Animate", BOOL, DEF_ANIMATE); - param_set("DelayValue", INT, DEF_DELAY_VALUE); - - /* Initialize the data sets */ - for (idx = 0; idx < MAXSETS; idx++) { - (void) sprintf(buf, "Set %d", idx); - PlotData[idx].setName = STRDUP(buf); - PlotData[idx].list = (PointList *) 0; - } -} - - - -static char *def_str; - -#define DEF(name, type) \ -if (def_str = XGetDefault(disp, Prog_Name, name)) { \ - param_set(name, type, def_str); \ -} - -void -ReadDefaults() -/* - * Reads X default values which override the hard-coded defaults - * set up by InitSets. - */ -{ - char newname[100]; - int idx; - - DEF("Debug", BOOL); - DEF("Geometry", STR); - DEF("Background", PIXEL); - DEF("BorderSize", INT); - DEF("Border", PIXEL); - DEF("GridSize", INT); - DEF("GridStyle", STYLE); - DEF("Foreground", PIXEL); - DEF("ZeroColor", PIXEL); - DEF("ZeroStyle", STYLE); - DEF("ZeroWidth", INT); - DEF("LabelFont", FONT); - DEF("TitleFont", FONT); - DEF("Ticks", BOOL); - DEF("TickAxis", BOOL); - DEF("Device", STR); - DEF("Disposition", STR); - DEF("FileOrDev", STR); - DEF("PixelMarkers", BOOL); - DEF("LargePixels", BOOL); - DEF("Markers", BOOL); - DEF("StyleMarkers", BOOL); - DEF("BoundBox", BOOL); - DEF("NoLines", BOOL); - DEF("LineWidth", INT); - /* PW */ - DEF("Animate",BOOL); - DEF("DelayValue",INT); - /* End PW */ - - /* Read device specific parameters */ - for (idx = 0; idx < hard_count; idx++) { - sprintf(newname, "%s.Dimension", hard_devices[idx].dev_name); - DEF(newname, DBL); /* hard_devices[idx].dev_max_dim */ - sprintf(newname, "%s.OutputTitleFont", hard_devices[idx].dev_name); - DEF(newname, STR); /* hard_devices[idx].dev_title_font */ - sprintf(newname, "%s.OutputTitleSize", hard_devices[idx].dev_name); - DEF(newname, DBL); /* hard_devices[idx].dev_title_size */ - sprintf(newname, "%s.OutputAxisFont", hard_devices[idx].dev_name); - DEF(newname, STR); /* hard_devices[idx].dev_axis_font */ - sprintf(newname, "%s.OutputAxisSize", hard_devices[idx].dev_name); - DEF(newname, DBL); /* hard_devices[idx].dev_axis_size */ - } - - - /* Read the default line and color attributes */ - for (idx = 0; idx < MAXATTR; idx++) { - (void) sprintf(newname, "%d.Style", idx); - DEF(newname, STYLE); /* AllAttrs[idx].lineStyleLen */ - (void) sprintf(newname, "%d.Color", idx); - DEF(newname, PIXEL); /* AllAttrs[idx].pixelValue */ - } - - DEF("ReverseVideo", BOOL); -} - - -#define FS(str) (void) fprintf(stderr, str) - -static void -argerror(err, val) -char *err, - *val; -{ - (void) fprintf(stderr, "Error: %s: %s\n\n", val, err); - - FS("Usage: xgraph [-device ]\n"); - FS("\t[-bd border_color] [-bg background_color] [-fg foreground_color]\n"); - FS("\t[-bar] [-brb bar_base] [-brw bar_width] [-bof bar_offset] [-stk]\n"); - FS("\t[-bw bdr_width] [-db] [-gw grid_size] [-fitx] [-fity]\n"); - FS("\t[-gs grid_style] [-lf label_font] [-lnx] [-lny] [-lw line_width]\n"); - FS("\t[-lx x1,x2] [-ly y1,y2] [-m] [-M] [-nl] [-ng] [-nb] [-p] [-P]\n"); - FS("\t[-rv] [-t title] [-tf title_font] [-tk] [-scale factor]\n"); - FS("\t[-x x_unit_name] [-y y_unit_name] [-fmtx format] [-fmty format]\n"); - FS("\t[[-geometry |=]W=H+X+Y] [[-display] :.]\n"); - FS("\t[-Pprinter|-o output_file|-O output_file] [[- set_name]\n"); - FS("\t[-zg zero_color] [-zw zero_size] [-a] [-dl ] input_files...\n\n"); - FS("-bar Draw bar graph with base -brb, width -brw, and offset -bof\n"); - FS("-stk Draw bar graph stacking data sets.\n"); - FS("-fitx Scale all sets to fit the x-axis [0,1].\n"); - FS("-fity Scale all sets to fit the y-axis [0,1].\n"); - FS("-fmtx Printf format for the x-axis\n"); - FS("-fmty Printf format for the y-axis\n"); - FS("-scale Scale the output file with factor\n"); - FS("-O fn Printer ready output file\n"); - FS("-o fn Encapsulated (document) output file\n"); - FS("-bb Draw bounding box around data\n"); - FS("-db Turn on debugging\n"); - FS("-lnx Logarithmic scale for X axis\n"); - FS("-lny Logarithmic scale for Y axis\n"); - FS("-m -M Mark points distinctively (M varies with color)\n"); - FS("-nl Don't draw lines (scatter plot)\n"); - FS("-ng Don't draw legend\n"); - FS("-nb Don't draw buttons\n"); - FS("-p -P Mark points with dot (P means big dot)\n"); - FS("-rv Reverse video on black and white displays\n"); - FS("-tk Draw tick marks instead of full grid\n"); - FS("-a Start in animation mode\n"); - FS("-dl Animation delay. Default is 2\n"); - - exit(1); -} - -#define ARG(opt, name) \ -if (strcmp(argv[idx], opt) == 0) { \ - if (do_it) param_set(name, BOOL, "on"); \ - idx++; continue; \ -} - -#define ARG2(opt, name, type, missing) \ -if (strcmp(argv[idx], opt) == 0) { \ - if (idx+1 >= argc) argerror(missing, argv[idx]); \ - if (do_it) param_set(name, type, argv[idx+1]); \ - idx += 2; continue;\ -} - -#define MAXLO 30 - -int -ParseArgs(argc, argv, do_it) -int argc; -char *argv[]; -int do_it; - -/* - * This routine parses the argument list for xgraph. There are too - * many to mention here so I won't. If `do_it' is non-zero, options - * are actually changed. If `do_it' is zero, the argument list - * is parsed but the options aren't set. The routine is called - * once to obtain the input files then again after the data is - * read to set the options. - */ -{ - int idx, - set, - dflag; - char *hi; - - dflag = DEF_OUTPUT_DEVICE; - - idx = 1; - while (idx < argc) { - if (argv[idx][0] == '-') { - /* Check to see if its a data set name */ - if (sscanf(argv[idx], "-%d", &set) == 1) { - /* The next string is a set name */ - if (idx + 1 >= argc) - argerror("missing set name", argv[idx]); - if (do_it) { - PlotData[set].setName = argv[idx + 1]; - } - idx += 2; - } - else { - /* Some non-dataset option */ - ARG2("-x", "XUnitText", STR, "missing axis name"); - ARG2("-y", "YUnitText", STR, "missing axis name"); - ARG2("-t", "TitleText", STR, "missing plot title"); - ARG2("-fg", "Foreground", PIXEL, "missing color name"); - ARG2("-bg", "Background", PIXEL, "missing color name"); - ARG2("-bd", "Border", PIXEL, "missing color name"); - ARG2("-bw", "BorderSize", INT, "missing border size"); - ARG2("-zg", "ZeroColor", PIXEL, "missing color name"); - ARG2("-zw", "ZeroWidth", INT, "missing width"); - ARG2("-tf", "TitleFont", FONT, "missing font name"); - ARG2("-lf", "LabelFont", FONT, "missing font name"); - /* PW */ - ARG2("-dl", "DelayValue", INT, "missing delay value"); - /* Doesn't make much sense to PW why this must be - switched, but it must. */ - ARG2("-digy", "Format X", STR, "Missing C-String"); - ARG2("-digx", "Format Y", STR, "Missing C-String"); - ARG("-a", "Animate"); - /* End PW */ - ARG("-rv", "ReverseVideo"); - ARG("-tk", "Ticks"); - ARG("-tkax", "TickAxis"); - ARG("-bb", "BoundBox"); - if (strcmp(argv[idx], "-lx") == 0) { - /* Limit the X coordinates */ - if (idx + 1 >= argc) - argerror("missing coordinate(s)", - argv[idx]); - if (hi = index(argv[idx + 1], ',')) { - char low[MAXLO]; - - (void) strncpy(low, argv[idx + 1], hi - argv[idx + 1]); - low[hi - argv[idx + 1]] = '\0'; - hi++; - if (do_it) { - param_set("XLowLimit", DBL, argv[idx + 1]); - param_set("XHighLimit", DBL, hi); - } - } - else { - argerror("limit coordinates not specified right", - argv[idx]); - } - idx += 2; - continue; - } - if (strcmp(argv[idx], "-ly") == 0) { - /* Limit the Y coordinates */ - if (idx + 1 >= argc) - argerror("missing coordinate(s)", - argv[idx]); - if (hi = index(argv[idx + 1], ',')) { - char low[MAXLO]; - - (void) strncpy(low, argv[idx + 1], hi - argv[idx + 1]); - low[hi - argv[idx + 1]] = '\0'; - hi++; - if (do_it) { - param_set("YLowLimit", DBL, argv[idx + 1]); - param_set("YHighLimit", DBL, hi); - } - } - else { - argerror("limit coordinates not specified right", - argv[idx]); - } - idx += 2; - continue; - } - ARG2("-lw", "LineWidth", INT, "missing line width"); - ARG("-nl", "NoLines"); - ARG("-ng", "NoLegend"); - ARG("-nb", "NoButton"); - ARG("-m", "Markers"); - ARG("-M", "StyleMarkers"); - ARG("-p", "PixelMarkers"); - ARG("-P", "LargePixels"); - ARG("-lnx", "LogX"); - ARG("-lny", "LogY"); - ARG("-bar", "BarGraph"); - ARG("-stk", "StackGraph"); - ARG("-fitx", "FitX"); - ARG("-fity", "FitY"); - ARG2("-brw", "BarWidth", DBL, "missing width"); - ARG2("-bof", "BarOffset", DBL, "missing offset"); - ARG2("-brb", "BarBase", DBL, "missing base"); - ARG("-db", "Debug"); - ARG2("-gw", "GridSize", INT, "missing grid size"); - ARG2("-gs", "GridStyle", STYLE, "missing grid style"); - if (strcmp(argv[idx], "-display") == 0) { - /* Harmless display specification */ - dflag = D_XWINDOWS; - disp_name = argv[idx+1]; - idx += 2; - continue; - } - if (strcmp(argv[idx], "-geometry") == 0) { - if (do_it) - param_set("Geometry", STR, argv[idx + 1]); - idx += 2; - continue; - } - if (strcmp(argv[idx], "-device") == 0) { - if (idx + 1 >= argc) - argerror("missing device", argv[idx]); - if (strcmp(argv[++idx], "hpgl") == 0) - dflag = D_HPGL; - else if (strcmp(argv[idx], "idraw") == 0) - dflag = D_IDRAW; - else if (strcmp(argv[idx], "x") == 0) - dflag = D_XWINDOWS; - else if (strcmp(argv[idx], "ps") == 0) - dflag = D_POSTSCRIPT; - else if (strcmp(argv[idx], "tgif") == 0) - dflag = D_TGIF; - else - argerror("bad device specification", argv[idx]); - idx++; - continue; - } - if (strncmp(argv[idx], "-P", 2) == 0) { - /* Printer spec */ - if (do_it) - param_set("Disposition", STR, "To Device"); - if (do_it) - param_set("FileOrDev", STR, &(argv[idx][2])); - idx++; - continue; - } - if (strcmp(argv[idx], "-o") == 0) { - if (do_it) - param_set("Disposition", STR, "To File"); - if (idx + 1 >= argc) - argerror("missing file", argv[idx]); - if (do_it) - param_set("FileOrDev", STR, argv[idx + 1]); - idx += 2; - continue; - } - if (strcmp(argv[idx], "-O") == 0) { - if (do_it) - param_set("Disposition", STR, "To File"); - if (do_it) - param_set("Document", BOOL, "on"); - if (idx + 1 >= argc) - argerror("missing file", argv[idx]); - if (do_it) - param_set("FileOrDev", STR, argv[idx + 1]); - idx += 2; - continue; - } - if (strcmp(argv[idx], "-fmtx") == 0) { - if (idx + 1 >= argc) - argerror("missing x format", argv[idx]); - if (do_it) - param_set("Format Y", STR, argv[idx + 1]); - idx += 2; - continue; - } - if (strcmp(argv[idx], "-fmty") == 0) { - if (idx + 1 >= argc) - argerror("missing y format", argv[idx]); - if (do_it) - param_set("Format X", STR, argv[idx + 1]); - idx += 2; - continue; - } - if (strcmp(argv[idx], "-scale") == 0) { - if (idx + 1 >= argc) - argerror("scale factor", argv[idx]); - if (do_it) - param_set("Scale", DBL, argv[idx + 1]); - idx += 2; - continue; - } - argerror("unknown option", argv[idx]); - } - } - else if (argv[idx][0] == '=') { - /* Its a geometry specification */ - if (do_it) - param_set("Geometry", STR, argv[idx] + 1); - idx++; - } - else { - /* It might be the host:display string */ - if (rindex(argv[idx], ':') == (char *) 0) { - /* Should be an input file */ - inFileNames[numFiles] = argv[idx]; - numFiles++; - } - idx++; - } - } - return (dflag); -} diff --git a/xgraph/params.c b/xgraph/params.c deleted file mode 100644 index 84c8fdbb0..000000000 --- a/xgraph/params.c +++ /dev/null @@ -1,567 +0,0 @@ -/* $Header$ */ -/* - * Xgraph Parameters - * - * This file contains routines for setting and retrieving - * various X style display parameters for xgraph. - * - * $Log$ - * Revision 1.1 2004-01-25 09:00:49 pnenzi - * - * Added xgraph plotting program. - * - * Revision 1.2 1999/12/08 19:32:41 heideman - * strcasecmp portability fix - * - * Revision 1.1.1.1 1999/12/03 23:15:52 heideman - * xgraph-12.0 - * - */ -#ifndef lint -static char rcsid[] = "$Id$"; - -#endif - -#include -#include -#include "st.h" -#include "params.h" -#include "hard_devices.h" -#include "xgraph.h" /* for string.h */ - -/* For use by convenience macros */ -params param_temp, - *param_temp_ptr; -XColor param_null_color = -{0, 0, 0, 0, 0, 0}; -param_style param_null_style = -{STYLE, 0, (char *) 0}; - -static st_table *param_table = (st_table *) 0; - -typedef struct param_full_defn { - param_types type; - char *text_form; - params *real_form; -} param_full; - - -#define ISO_FONT "*-*-%s-medium-r-normal-*-*-%d-*-*-*-*-iso8859-*" -static Display *param_disp; -static Colormap param_cmap; -static int param_scrn; - -static void free_resource(); -static params *resolve_entry(); -static int strihash(); -static int do_color(); -static int do_font(); -static int do_style(); -static int do_bool(); - -#define DEF_INT "0" -#define DEF_STR "" -#define DEF_FONT "fixed" -#define DEF_PIXEL "black" -#define DEF_STYLE "1" -#define DEF_BOOL "false" -#define DEF_DBL "0.0" - -#define DEF_MAX_FONT 1024 -#define DEF_MAX_NAMES 10 - -#define DUP(str) \ -strcpy((char *) Malloc((unsigned) (strlen(str)+1)), (str)) - - -void -param_init(disp, cmap) -Display *disp; /* X Connection */ -Colormap cmap; /* Colormap for colors */ - -/* - * Initializes parameter package. The display and colormap arguments - * are used to resolve font and pixel values. - */ -{ - param_table = st_init_table(stricmp, strihash); - if (disp != NULL) { - param_disp = disp; - param_cmap = cmap; - /* This could also be a parameter for greater generality */ - param_scrn = DefaultScreen(disp); - } -} - - - -void -param_set(name, type, val) -char *name; /* Name of parameter */ -param_types type; /* Type */ -char *val; /* Text form for value */ - -/* - * Sets the parameter with the given name to have the type - * `type' and the text value `value'. This will be evaluated - * to its full form the first time it is referenced using - * param_get(). If it is already filled, the old value - * will be reclaimed. - */ -{ - param_full *entry; - - if (!param_table) { - (void) fprintf(stderr, "Parameter table not initialized\n"); - return; - } - if (st_lookup(param_table, name, (char **) &entry)) { - if (entry->real_form) - free_resource(entry->real_form); - entry->real_form = (params *) 0; - } - else { - entry = (param_full *) Malloc(sizeof(param_full)); - entry->text_form = (char *) 0; - entry->real_form = (params *) 0; - (void) st_insert(param_table, DUP(name), (char *) entry); - } - entry->type = type; - if (entry->text_form) - (void) Free((char *) (entry->text_form)); - entry->text_form = DUP(val); -} - - -void -param_reset(name, val) -char *name; /* Name of parameter */ -char *val; /* Text form for value */ - -/* - * This routine sets the value of an existing parameter to a new - * value. The type of the parameter remains the same. Changes - * in type should be done by using param_set() directly. - */ -{ - param_full *entry; - - if (!param_table) { - (void) fprintf(stderr, "Parameter table not initialized\n"); - return; - } - if (st_lookup(param_table, name, (char **) &entry)) - param_set(name, entry->type, val); - else - (void) fprintf(stderr, "Cannot reset unknown parameter `%s'\n", name); -} - - - - -params * -param_get(name, val) -char *name; /* Name of parameter */ -params *val; /* Result value */ - -/* - * Retrieves a value from the parameter table. The value - * is placed in `val'. If successful, the routine will - * return `val'. Otherwise, it will return zero. - */ -{ - param_full *entry; - - if (!param_table) { - (void) fprintf(stderr, "Parameter table not initialized\n"); - return (params *) 0; - } - if (st_lookup(param_table, name, (char **) &entry)) { - if (!entry->real_form) - entry->real_form = resolve_entry(name, entry->type, - entry->text_form); - *val = *(entry->real_form); - return val; - } - else { - return (params *) 0; - } -} - - -static void -free_resource(val) -params *val; /* Value to free */ - -/* - * Reclaims a resource based on its type. - */ -{ - switch (val->type) { - case INT: - case STR: - case BOOL: - case DBL: - /* No reclaimation necessary */ - break; - case PIXEL: - if ((val->pixv.value.pixel != WhitePixel(param_disp, param_scrn)) && - (val->pixv.value.pixel != BlackPixel(param_disp, param_scrn))) - XFreeColors(param_disp, param_cmap, &(val->pixv.value.pixel), 1, 0); - break; - case FONT: - XFreeFont(param_disp, val->fontv.value); - break; - case STYLE: - (void) Free(val->stylev.dash_list); - break; - } - (void) Free((char *) val); -} - - - -static params * -resolve_entry(name, type, form) -char *name; /* Name of item for errors */ -param_types type; /* What type of thing */ -char *form; /* Textual form */ - -/* - * Allocates and returns an appropriate parameter structure - * by translating `form' into its native type as given by `type'. - * If it can't translate the given form, it will fall back onto - * the default. - */ -{ - static char paramstr[] = - "Parameter %s: can't translate `%s' into a %s (defaulting to `%s')\n"; - params *result = (params *) Malloc(sizeof(params)); - - result->type = type; - switch (type) { - case INT: - if (sscanf(form, "%d", &result->intv.value) != 1) { - (void) fprintf(stderr, paramstr, name, form, "integer", DEF_INT); - result->intv.value = atoi(DEF_INT); - } - break; - case STR: - result->strv.value = form; - break; - case PIXEL: - if (!do_color(form, &result->pixv.value)) { - (void) fprintf(stderr, paramstr, name, form, "color", DEF_PIXEL); - (void) do_color(DEF_PIXEL, &result->pixv.value); - } - break; - case FONT: - if (!do_font(form, &result->fontv.value)) { - (void) fprintf(stderr, paramstr, name, form, "font", DEF_FONT); - (void) do_font(DEF_FONT, &result->fontv.value); - } - break; - case STYLE: - if (!do_style(form, &result->stylev)) { - (void) fprintf(stderr, paramstr, name, form, "line style", - DEF_STYLE); - (void) do_style(DEF_STYLE, &result->stylev); - } - break; - case BOOL: - if (!do_bool(form, &result->boolv.value)) { - (void) fprintf(stderr, paramstr, name, form, "boolean flag", - DEF_BOOL); - (void) do_bool(DEF_BOOL, &result->boolv.value); - } - break; - case DBL: - if (sscanf(form, "%lf", &result->dblv.value) != 1) { - (void) fprintf(stderr, paramstr, name, form, "double", DEF_DBL); - result->dblv.value = atof(DEF_DBL); - } - break; - } - return result; -} - - - -static int -do_color(name, color) -char *name; /* Name for color */ -XColor *color; /* Returned color */ - -/* - * Translates `name' into a color and attempts to get the pixel - * for the color using XAllocColor(). - */ -{ - int result = 1; - - if (PM_INT("Output Device") == D_XWINDOWS) { - if (XParseColor(param_disp, param_cmap, name, color)) { - if (stricmp(name, "black") == 0) { - color->pixel = BlackPixel(param_disp, param_scrn); - XQueryColor(param_disp, param_cmap, color); - } - else if (stricmp(name, "white") == 0) { - color->pixel = WhitePixel(param_disp, param_scrn); - XQueryColor(param_disp, param_cmap, color); - } - else - result = XAllocColor(param_disp, param_cmap, color); - } - else - result = 0; - } - return result; -} - - - -static int -do_font(name, font_info) -char *name; /* Name of desired font */ -XFontStruct **font_info; /* Returned font information */ - -/* - * This routine translates a font name into a font structure. The - * font name can be in two forms. The first form is -. - * The family is a family name (like helvetica) and the size is - * in points (like 12). If the font is not in this form, it - * is assumed to be a regular X font name specification and - * is looked up using the standard means. - */ -{ - char name_copy[DEF_MAX_FONT], - query_spec[DEF_MAX_FONT]; - char *font_family, - *font_size, - **font_list; - int font_size_value, - font_count, - i; - - /* First attempt to interpret as font family/size */ - if (PM_INT("Output Device") == D_XWINDOWS) { - (void) strcpy(name_copy, name); - if (font_size = index(name_copy, '-')) { - *font_size = '\0'; - font_family = name_copy; - font_size++; - font_size_value = atoi(font_size); - if (font_size_value > 0) { - /* - * Still a little iffy -- what about weight and roman vs. other - */ - (void) sprintf(query_spec, ISO_FONT, - font_family, font_size_value * 10); - font_list = XListFonts(param_disp, query_spec, - DEF_MAX_NAMES, &font_count); - - /* Load first one that you can */ - for (i = 0; i < font_count; i++) - if (*font_info = XLoadQueryFont(param_disp, font_list[i])) - break; - if (*font_info) - return 1; - } - } - /* Assume normal font name */ - return (int) (*font_info = XLoadQueryFont(param_disp, name)); - } -} - - -static int -do_style(list, val) -char *list; /* List of ones and zeros */ -param_style *val; /* Line style returned */ - -/* - * Translates a string representation of a dash specification into - * a form suitable for use in XSetDashes(). Assumes `list' - * is a null terminated string of ones and zeros. - */ -{ - char *i, - *spot, - last_char; - int count; - - for (i = list; *i; i++) - if ((*i != '0') && (*i != '1')) - break; - - if (!*i) { - val->len = 0; - last_char = '\0'; - for (i = list; *i; i++) { - if (*i != last_char) { - val->len += 1; - last_char = *i; - } - } - val->dash_list = (char *) Malloc((unsigned) - (sizeof(char) * val->len + 1)); - last_char = *list; - spot = val->dash_list; - count = 0; - for (i = list; *i; i++) { - if (*i != last_char) { - *spot++ = (char) count; - last_char = *i; - count = 1; - } - else - count++; - } - *spot = (char) count; - return 1; - } - else { - return 0; - } -} - - -static char *positive[] = -{"on", "yes", "true", "1", "affirmative", (char *) 0}; -static char *negative[] = -{"off", "no", "false", "0", "negative", (char *) 0}; - -static int -do_bool(name, val) -char *name; /* String representation */ -int *val; /* Returned value */ - -/* - * Translates a string representation into a suitable binary value. - * Can parse all kinds of interesting boolean type words. - */ -{ - char **term; - - for (term = positive; *term; term++) { - if (stricmp(name, *term) == 0) - break; - } - if (*term) { - *val = 1; - return 1; - } - for (term = negative; *term; term++) - if (stricmp(name, *term) == 0) - break; - - if (*term) { - *val = 0; - return 1; - } - return 0; -} - - - -/*ARGSUSED*/ -static enum st_retval -dump_it(key, value, arg) -char *key, - *value, - *arg; -{ - param_full *val = (param_full *) value; - - (void) fprintf(stdout, "%s (", key); - switch (val->type) { - case INT: - (void) fprintf(stdout, "INT"); - break; - case STR: - (void) fprintf(stdout, "STR"); - break; - case PIXEL: - (void) fprintf(stdout, "PIXEL"); - break; - case FONT: - (void) fprintf(stdout, "FONT"); - break; - case STYLE: - (void) fprintf(stdout, "STYLE"); - break; - case BOOL: - (void) fprintf(stdout, "BOOL"); - break; - case DBL: - (void) fprintf(stdout, "DBL"); - break; - } - (void) fprintf(stdout, ") = %s\n", val->text_form); - return ST_CONTINUE; -} - -void -param_dump() -/* - * Dumps all of the parameter values to standard output. - */ -{ - st_foreach(param_table, dump_it, (char *) 0); -} - - - -#ifdef HAVE_STRCASECMP -int -stricmp(a, b) - char *a, *b; -{ - return strcasecmp(a, b); -} -#else -int -stricmp(a, b) -register char *a, - *b; - -/* - * This routine compares two strings disregarding case. - */ -{ - register int value; - - if ((a == (char *) 0) || (b == (char *) 0)) { - return a - b; - } - - for ( /* nothing */ ; - ((*a | *b) && - !(value = ((isupper(*a) ? *a - 'A' + 'a' : *a) - - (isupper(*b) ? *b - 'A' + 'a' : *b)))); - a++, b++) - /* Empty Body */ ; - - return value; -} - -#endif - -static int -strihash(string, modulus) -register char *string; -int modulus; - -/* Case insensitive computation */ -{ - register int val = 0; - register int c; - - while ((c = *string++) != '\0') { - if (isupper(c)) - c = tolower(c); - val = val * 997 + c; - } - - return ((val < 0) ? -val : val) % modulus; -} diff --git a/xgraph/params.h b/xgraph/params.h deleted file mode 100644 index 3fff8f935..000000000 --- a/xgraph/params.h +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Xgraph parameters - */ - -#ifndef _PARAMS_H_ -#define _PARAMS_H_ - -#include "xgraph.h" - -/* If you have an ANSI compiler, some checking will be done */ -#ifdef __STDC__ -#define DECLARE(func, rtn, args) extern rtn func args -#else -#define DECLARE(func, rtn, args) extern rtn func () -#endif - -typedef enum param_types_defn { - INT, STR, PIXEL, FONT, STYLE, BOOL, DBL -} param_types; - -typedef struct params_int_defn { - param_types type; /* INT */ - int value; -} param_int; - -typedef struct params_str_defn { - param_types type; /* STR */ - char *value; -} param_str; - -typedef struct params_pix_defn { - param_types type; /* PIXEL */ - XColor value; -} param_pix; - -typedef struct params_font_defn { - param_types type; /* FONT */ - XFontStruct *value; -} param_font; - -typedef struct params_style_defn { - param_types type; /* STYLE */ - int len; - char *dash_list; -} param_style; - -typedef struct params_bool_defn { - param_types type; /* BOOL */ - int value; -} param_bool; - -typedef struct params_dbl_defn { - param_types type; /* DBL */ - double value; -} param_dbl; - -typedef union params_defn { - param_types type; - param_int intv; /* INT */ - param_str strv; /* STR */ - param_pix pixv; /* PIXEL */ - param_font fontv; /* FONT */ - param_style stylev; /* STYLE */ - param_bool boolv; /* BOOL */ - param_dbl dblv; /* DBL */ -} params; - -DECLARE(param_init, void, (Display * disp, Colormap cmap)); -DECLARE(param_set, void, (char *name, param_types type, char *val)); -DECLARE(param_reset, void, (char *name, char *val)); -DECLARE(param_get, params *, (char *name, params * val)); -DECLARE(param_dump, void, ()); - -#ifdef stricmp -#undef stricmp -#endif -DECLARE(stricmp, int, (char *a, char *b)); - -/* Some convenience macros */ - -extern params param_temp, - *param_temp_ptr; -extern XColor param_null_color; -extern param_style param_null_style; - -#define PM_INT(name) \ -((param_temp_ptr = param_get(name, ¶m_temp)) ? \ - param_temp_ptr->intv.value : \ - (abort(), (int) 0)) - -#define PM_STR(name) \ -((param_temp_ptr = param_get(name, ¶m_temp)) ? \ - param_temp_ptr->strv.value : \ - (abort(), (char *) 0)) - -#define PM_COLOR(name) \ -((param_temp_ptr = param_get(name, ¶m_temp)) ? \ - param_temp_ptr->pixv.value : \ - (abort(), param_null_color)) - -#define PM_PIXEL(name) \ -((param_temp_ptr = param_get(name, ¶m_temp)) ? \ - param_temp_ptr->pixv.value.pixel : \ - (abort(), (Pixel) 0)) - -#define PM_FONT(name) \ -((param_temp_ptr = param_get(name, ¶m_temp)) ? \ - param_temp_ptr->fontv.value : \ - (abort(), (XFontStruct *) 0)) - -#define PM_STYLE(name) \ -((param_temp_ptr = param_get(name, ¶m_temp)) ? \ - param_temp_ptr->stylev : \ - (abort(), param_null_style)) - -#define PM_BOOL(name) \ -((param_temp_ptr = param_get(name, ¶m_temp)) ? \ - param_temp_ptr->boolv.value : \ - (abort(), 0)) - -#define PM_DBL(name) \ -((param_temp_ptr = param_get(name, ¶m_temp)) ? \ - param_temp_ptr->dblv.value : \ - (abort(), 0.0)) - - -#endif /* _PARAMS_H_ */ diff --git a/xgraph/plotter.h b/xgraph/plotter.h deleted file mode 100644 index 54662056d..000000000 --- a/xgraph/plotter.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef _h_plotter -#define _h_plotter - /* - * HP plotter definition - these are dependent on the SPECIFIC MODEL of HP - * plotter used, and should always be modified when going to a new - * plotter. - * - * all dimensions are in plotter units. - * - * MINX and MINY are the smallest x and y values that are inside the soft - * clip limits of the plotter MAXX and MAXY are the largest x and y values - * that are inside the soft clip limits of the plotter MINUS MINX and - * MINY, so they give the dimension of the soft clip area. - * - * PLOTTERTYPE is a character string which identifies the plotter that should - * be used. control information will be read for - * ~cad/lib/technology/$TECHNOLOGY/$PLOTTERTYPE.map and output will go to - * /usr/ucb/lpr -Pplt$PLOTTERTYPE - * - */ -#define PLOTTERTYPE "7550" -#define P1X 80 -#define P1Y 320 -#define P2X 10080 -#define P2Y 7520 -#define MAXX 10000 -#define MAXY 7200 - -#define PLOTTERNAME "paper" - -#define PENGRID 1 -#define PENAXIS 2 -#define TEXTCOLOR 1 -#define PEN1 3 -#define PEN2 4 -#define PEN3 5 -#define PEN4 6 -#define PEN5 7 -#define PEN6 8 -#define PEN7 2 -#define PEN8 1 - -#define LINE1 2 -#define LINE2 4 -#define LINE3 5 -#define LINE4 6 -#define LINE5 2 -#define LINE6 4 -#define LINE7 5 -#define LINE8 6 - -#define MARK1 "L" -#define MARK2 "K" -#define MARK3 "M" -#define MARK4 "O" -#define MARK5 "G" -#define MARK6 "F" -#define MARK7 "E" -#define MARK8 "A" -#endif /* _h_plotter */ diff --git a/xgraph/ps.c b/xgraph/ps.c deleted file mode 100644 index cab6f9648..000000000 --- a/xgraph/ps.c +++ /dev/null @@ -1,620 +0,0 @@ -/* - * Postscript output for xgraph - * - * Rick Spickelmier - * David Harrison - */ - -#include "copyright.h" -#include -#include "xgraph.h" - -/* - * Basic scaling parameters - */ - -#define VDPI 1200.0 -#define LDIM 11.0 -#define SDIM 8.5 -#define MICRONS_PER_INCH 2.54E+04 -#define POINTS_PER_INCH 72.0 -#define INCHES_PER_POINT 1.0/72.0 - -/* - * Aesthetic parameters (inches) - */ - -#define PS_BDR_PAD 0.075 -#define PS_AXIS_PAD 0.1 -#define PS_LEG_PAD 0.025 -#define PS_TICK_LEN 0.125 -#define BASE_DASH (1.0/48.0) - -#define BASE_WIDTH (1.0/8.0) -#define PS_AXIS_WBASE 1 -#define PS_ZERO_WBASE 4 -#define PS_DATA_WBASE 7 -#define PS_PIXEL 4 -#define PS_DOT 12 -#define PS_MARK 12 - -/* - * Other constants - */ - -#define FONT_WIDTH_EST 0.55 -#define PS_MAX_SEGS 1000 -#define PS_NO_TSTYLE -1 -#define PS_NO_DSTYLE -1 -#define PS_NO_WIDTH -1 -#define PS_NO_LSTYLE -1 -#define PS_NO_COLOR -1 - -/* - * Working macros - */ - -#define OUT (void) fprintf -#define PS(str) OUT(psFile, str) -#define PSU(str) OUT(ui->psFile, str) -#define IY(val) (ui->height_devs - val) - -#define TEXTCOLOR 0 -#define MAXCOLOR 8 /* Number of gray scales supported */ - -/* - * Globals - */ - -static double PS_scale; /* devs/micron */ - -/* - * Externals and forwards - */ - -static void psScale(), psFonts(), psMarks(), psText(), psSeg(), psDot(), psEnd(); - - -/* - * Local structures - */ - -struct userInfo { - FILE *psFile; - int currentTextStyle; - int currentDashStyle; - int currentWidth; - int currentLStyle; - int currentColor; - int baseWidth; - int height_devs; - char *title_family; - double title_size; - char *axis_family; - double axis_size; - int flags; -}; - - - -int -rd(dbl) -double dbl; - -/* Short and sweet rounding function */ -{ - if (dbl < 0.0) { - return ((int) (dbl - 0.5)); - } - else { - return ((int) (dbl + 0.5)); - } -} - -/*ARGSUSED*/ -int -psInit(psFile, width, height, tf, ts, af, as, flags, outInfo, errmsg) -FILE *psFile; /* Output file */ -int width, - height; /* In microns */ -char *tf, - *af; /* Title and axis font */ -double ts, - as; /* Title and axis size */ -int flags; /* Predicate flags */ -xgOut *outInfo; /* Returned device info */ -char errmsg[ERRBUFSIZE]; /* Returned error message */ - -/* - * The basic coordinate system is points (roughly 1/72 inch). - * However, most laser printers can do much better than that. - * We invent a coordinate system based on VDPI dots per inch. - * This goes along the long side of the page. The long side - * of the page is LDIM inches in length, the short side - * SDIM inches in length. We we call this unit a `dev'. - * We map `width' and `height' into devs. - */ -{ - struct userInfo *ui; - double font_size; - - ui = (struct userInfo *) Malloc(sizeof(struct userInfo)); - ui->psFile = psFile; - ui->currentTextStyle = PS_NO_TSTYLE; - ui->currentDashStyle = PS_NO_DSTYLE; - ui->currentWidth = PS_NO_WIDTH; - ui->currentLStyle = PS_NO_LSTYLE; - ui->currentColor = PS_NO_COLOR; - ui->title_family = tf; - ui->title_size = ts; - ui->axis_family = af; - ui->axis_size = as; - /* Roughly, one-eighth a point in devs */ - ui->baseWidth = rd(VDPI / POINTS_PER_INCH * BASE_WIDTH); - ui->flags = flags; - - PS_scale = VDPI / MICRONS_PER_INCH; - - outInfo->dev_flags = 0; - outInfo->area_w = rd(((double) width) * PS_scale); - outInfo->area_h = rd(((double) height) * PS_scale); - ui->height_devs = outInfo->area_h; - outInfo->bdr_pad = rd(PS_BDR_PAD * VDPI); - outInfo->axis_pad = rd(PS_AXIS_PAD * VDPI); - outInfo->legend_pad = rd(PS_LEG_PAD * VDPI); - outInfo->tick_len = rd(PS_TICK_LEN * VDPI); - - /* Font estimates */ - font_size = as * INCHES_PER_POINT * VDPI; - outInfo->axis_height = rd(font_size); - outInfo->axis_width = rd(font_size * FONT_WIDTH_EST); - font_size = ts * INCHES_PER_POINT * VDPI; - outInfo->title_height = rd(font_size); - outInfo->title_width = rd(font_size * FONT_WIDTH_EST); - - outInfo->max_segs = PS_MAX_SEGS; - - outInfo->xg_text = psText; - outInfo->xg_seg = psSeg; - outInfo->xg_dot = psDot; - outInfo->xg_end = psEnd; - outInfo->user_state = (char *) ui; - - /* Postscript file identification */ - PS("%%!\n"); - - /* Definitions */ - psScale(psFile, width, height, flags); - psFonts(psFile); - psMarks(psFile); - - PS("%%\n%% Main body begins here\n%%\n"); - return 1; -} - - - - -static void -psHeader(psFile, docu_flag) -FILE *psFile; -int docu_flag; - -/* - * Prints out a standard greeting to the Postscript file. - */ -{ - PS("%%%%EndComments\n"); - PS("%%\n"); - PS("%% Xgraph postscript output\n"); - PS("%% Rick Spickelmier and David Harrison\n"); - PS("%% University of California, Berkeley\n"); - if (docu_flag) { - PS("%%\n"); - PS("%% Output produced for inclusion in another document.\n"); - PS("%% This file will not work properly if sent directly to a printer.\n"); - } - PS("%%\n"); -} - - -static void -psScale(psFile, width, height, flags) -FILE *psFile; /* Output stream */ -int width; /* Output width */ -int height; /* Output height */ -int flags; /* Output options */ - -/* - * This routine figures out how transform the basic postscript - * transformation into one suitable for direct use by - * the drawing primitives. Two variables X-CENTER-PLOT - * and Y-CENTER-PLOT determine whether the plot is centered - * on the page. If `flags' has D_DOCU set, then the plot - * will not be rotated or centered and a bounding box will - * be displayed. - */ -{ - double factor; - double pnt_width, - pnt_height; - - if (flags & D_DOCU) { - OUT(psFile, "%%%%BoundingBox: %ld %ld %ld %ld\n", - 0, 0, - (int) (((double) width) / - (MICRONS_PER_INCH * INCHES_PER_POINT) + 0.5), - (int) (((double) height) / - (MICRONS_PER_INCH * INCHES_PER_POINT) + 0.5) - ); - psHeader(psFile, 1); - PS("%% Rotation and centering are turned off for inclusion in a document\n"); - } - else { - psHeader(psFile, 0); - PS("%% Scaling information\n"); - PS("%%\n"); - PS("%% Change these if you would like to change the centering\n"); - PS("%% of the plot in either dimension\n"); - PS("/X-CENTER-PLOT 1 def\n"); - PS("/Y-CENTER-PLOT 1 def\n"); - PS("%%\n"); - /* - * Determine page size - */ - PS("%% Page size computation\n"); - PS("clippath pathbbox\n"); - PS("/page-height exch def\n"); - PS("/page-width exch def\n"); - PS("pop pop\n"); - - /* - * First: rotation. If the width is greater than the short dimension, - * do the rotation. - */ - pnt_width = ((double) width) / MICRONS_PER_INCH * POINTS_PER_INCH; - pnt_height = ((double) height) / MICRONS_PER_INCH * POINTS_PER_INCH; - PS("%% Determine whether rotation is required\n"); - OUT(psFile, "%lg page-width gt\n", pnt_width); - PS("{ %% Rotation required\n"); - PS(" 90 rotate\n"); - PS(" 0 page-width neg translate\n"); - PS(" %% Handle centering\n"); - PS(" Y-CENTER-PLOT 1 eq { %% Center in y\n"); - OUT(psFile, " page-height %lg sub 2 div\n", pnt_width); - PS(" } { %% Don't center in y\n"); - PS(" 0\n"); - PS(" } ifelse\n"); - PS(" X-CENTER-PLOT 1 eq { %% Center in x\n"); - OUT(psFile, " page-width %lg sub 2 div\n", pnt_height); - PS(" } { %% Don't center in x\n"); - PS(" 0\n"); - PS(" } ifelse\n"); - PS(" translate\n"); - PS("} { %% No rotation - just handle centering\n"); - PS(" X-CENTER-PLOT 1 eq { %% Center in x\n"); - OUT(psFile, " page-width %lg sub 2 div\n", pnt_width); - PS(" } { %% Don't center in x\n"); - PS(" 0\n"); - PS(" } ifelse\n"); - PS(" Y-CENTER-PLOT 1 eq { %% Center in y\n"); - OUT(psFile, " page-height %lg sub 2 div\n", pnt_height); - PS(" } { %% Don't center in y\n"); - PS(" 0\n"); - PS(" } ifelse\n"); - PS(" translate\n"); - PS("} ifelse\n"); - } - - /* - * Now: scaling. We have points. We want devs. - */ - factor = POINTS_PER_INCH / VDPI; - PS("%% Set the scale\n"); - OUT(psFile, "%lg %lg scale\n", factor, factor); -} - - - -static void -psFonts(psFile) -FILE *psFile; /* Output stream */ - -/* - * Downloads code for drawing title and axis labels - */ -{ - PS("%% Font Handling Functions\n"); - PS("%%\n"); - PS("%% Function giving y-offset to center of font\n"); - PS("%% Assumes font is set and uses numbers to gauge center\n"); - PS("%%\n"); - PS("/choose-font %% stack: fontsize fontname => ---\n"); - PS("{\n"); - PS(" findfont \n"); - PS(" exch scalefont \n"); - PS(" setfont\n"); - PS(" newpath\n"); - PS(" 0 0 moveto (0) true charpath flattenpath pathbbox\n"); - PS(" /top exch def pop\n"); - PS(" /bottom exch def pop\n"); - PS(" bottom top bottom top add 2 div\n"); - PS(" /center-font-val exch def \n"); - PS(" /upper-font-val exch def \n"); - PS(" /lower-font-val exch def\n"); - PS("} def\n"); - PS("%%\n"); - PS("%% Justfication offset routines\n"); - PS("%%\n"); - PS("/center-x-just %% stack: (string) x y => (string) newx y\n"); - PS("{\n"); - PS(" exch 2 index stringwidth pop 2 div sub exch\n"); - PS("} def\n"); - PS("%%\n"); - PS("/left-x-just %% stack: (string) x y => (string) newx y\n"); - PS("{ \n"); - PS("} def\n"); - PS("%%\n"); - PS("/right-x-just %% stack: (string) x y => (string) newx y\n"); - PS("{\n"); - PS(" exch 2 index stringwidth pop sub exch\n"); - PS("} def\n"); - PS("%%\n"); - PS("/center-y-just %% stack: (string) x y => (string) x newy\n"); - PS("{\n"); - PS(" center-font-val sub\n"); - PS("} def\n"); - PS("%%\n"); - PS("/lower-y-just %% stack: (string) x y => (string) x newy\n"); - PS("{\n"); - PS(" lower-font-val sub\n"); - PS("} def\n"); - PS("%%\n"); - PS("/upper-y-just %% stack: (string) x y => (string) x newy\n"); - PS("{\n"); - PS(" upper-font-val sub\n"); - PS("} def\n"); - PS("%%\n"); - PS("%% Shows a string on the page subject to justification\n"); - PS("%% \n"); - PS("/just-string %% stack: (string) x y just => ---\n"); - PS("{\n"); - PS(" dup 0 eq { pop center-x-just center-y-just } if\n"); - PS(" dup 1 eq { pop left-x-just center-y-just } if\n"); - PS(" dup 2 eq { pop left-x-just upper-y-just } if\n"); - PS(" dup 3 eq { pop center-x-just upper-y-just } if\n"); - PS(" dup 4 eq { pop right-x-just upper-y-just } if\n"); - PS(" dup 5 eq { pop right-x-just center-y-just } if\n"); - PS(" dup 6 eq { pop right-x-just lower-y-just } if\n"); - PS(" dup 7 eq { pop center-x-just lower-y-just } if\n"); - PS(" dup 8 eq { pop left-x-just lower-y-just } if\n"); - PS(" moveto show\n"); - PS("} def\n"); - PS("%%\n"); -} - - - -static void -psMarks(psFile) -FILE *psFile; - -/* - * Writes out marker definitions - */ -{ - PS("%% Marker definitions\n"); - PS("/mark0 {/size exch def /y exch def /x exch def\n"); - PS("newpath x size sub y size sub moveto\n"); - PS("size size add 0 rlineto 0 size size add rlineto\n"); - PS("0 size size add sub 0 rlineto closepath fill} def\n"); - - PS("/mark1 {/size exch def /y exch def /x exch def\n"); - PS("newpath x size sub y size sub moveto\n"); - PS("size size add 0 rlineto 0 size size add rlineto\n"); - PS("0 size size add sub 0 rlineto closepath stroke} def\n"); - - PS("/mark2 {/size exch def /y exch def /x exch def\n"); - PS("newpath x y moveto x y size 0 360 arc stroke} def\n"); - - PS("/mark3 {/size exch def /y exch def /x exch def\n"); - PS("newpath x size sub y size sub moveto x size add y size add lineto\n"); - PS("x size sub y size add moveto x size add y size sub lineto stroke} def\n"); - - PS("/mark4 {/size exch def /y exch def /x exch def\n"); - PS("newpath x size sub y moveto x y size add lineto\n"); - PS("x size add y lineto x y size sub lineto\n"); - PS("closepath stroke} def\n"); - - PS("/mark5 {/size exch def /y exch def /x exch def\n"); - PS("x y size mark1\n"); - PS("newpath x size sub y moveto size size add 0 rlineto stroke} def\n"); - - PS("/mark6 {/size exch def /y exch def /x exch def\n"); - PS("newpath x y moveto x y size 0 360 arc fill} def\n"); - - PS("/mark7 {/size exch def /y exch def /x exch def\n"); - PS("newpath x y moveto x size sub y size sub lineto\n"); - PS("x size add y size sub lineto closepath fill\n"); - PS("newpath x y moveto x size add y size add lineto\n"); - PS("x size sub y size add lineto closepath fill} def\n"); -} - - - -static void -psText(state, x, y, text, just, style) -char *state; /* Really (struct userInfo *) */ -int x, - y; /* Text position (devs) */ -char *text; /* Text itself */ -int just; /* Justification */ -int style; /* Style */ - -/* - * Draws text at the given location with the given justification - * and style. - */ -{ - struct userInfo *ui = (struct userInfo *) state; - - if (TEXTCOLOR != ui->currentColor) { - OUT(ui->psFile, "%lg setgray\n", (double) TEXTCOLOR / 8); - ui->currentColor = TEXTCOLOR; - } - - if (style != ui->currentTextStyle) { - switch (style) { - case T_AXIS: - OUT(ui->psFile, "%lg /%s choose-font\n", - ui->axis_size * INCHES_PER_POINT * VDPI, ui->axis_family); - break; - case T_TITLE: - OUT(ui->psFile, "%lg /%s choose-font\n", - ui->title_size * INCHES_PER_POINT * VDPI, ui->title_family); - break; - } - ui->currentTextStyle = style; - } - OUT(ui->psFile, "(%s) %d %d %d just-string\n", text, x, IY(y), just); -} - - - -/*ARGSUSED*/ -static void -psSeg(state, ns, seglist, width, style, lappr, color) -char *state; /* Really (struct userInfo *) */ -int ns; /* Number of segments */ -XSegment *seglist; /* X array of segments */ -int width; /* Width of lines (devcoords) */ -int style; /* L_AXIS, L_ZERO, L_VAR */ -int lappr; /* Zero to seven */ -int color; /* Zero to seven */ - -/* - * Draws a number of line segments. Grid lines are drawn using - * light lines. Variable lines (L_VAR) are drawn wider. This - * version ignores the color argument. - */ -{ - struct userInfo *ui = (struct userInfo *) state; - int newwidth = 0, - i; - - if ((style != ui->currentLStyle) || (width != ui->currentWidth)) { - switch (style) { - case L_AXIS: - newwidth = PS_AXIS_WBASE * ui->baseWidth; - PSU("[] 0 setdash\n"); - break; - case L_ZERO: - newwidth = PS_ZERO_WBASE * ui->baseWidth; - PSU("[] 0 setdash\n"); - break; - case L_VAR: - newwidth = PS_DATA_WBASE * ui->baseWidth; - break; - } - ui->currentWidth = MAX(newwidth, width); - ui->currentLStyle = style; - OUT(ui->psFile, "%d setlinewidth\n", ui->currentWidth); - } - if (width > 4) { - if (color > MAXCOLOR) - color -= MAXCOLOR; - else - lappr = 0; - } - else - color = TEXTCOLOR; - - if ((lappr != ui->currentDashStyle) && (style == L_VAR)) { - if (lappr == 0) { - PSU("[] 0 setdash\n"); - } - else { - OUT(ui->psFile, "[%lg] 0 setdash\n", - ((double) lappr) * BASE_DASH * VDPI); - } - ui->currentDashStyle = lappr; - } - if ((color != ui->currentColor) && (style == L_VAR)) { - OUT(ui->psFile, "%lg setgray\n", (double) color / MAXCOLOR); - ui->currentColor = color; - } - PSU("newpath\n"); - OUT(ui->psFile, " %d %d moveto\n", seglist[0].x1, IY(seglist[0].y1)); - OUT(ui->psFile, " %d %d lineto\n", seglist[0].x2, IY(seglist[0].y2)); - for (i = 1; i < ns; i++) { - if ((seglist[i].x1 != seglist[i - 1].x2) || - (seglist[i].y1 != seglist[i - 1].y2)) { - OUT(ui->psFile, " %d %d moveto\n", seglist[i].x1, IY(seglist[i].y1)); - } - OUT(ui->psFile, " %d %d lineto\n", seglist[i].x2, IY(seglist[i].y2)); - } - PSU("stroke\n"); -} - - - -/*ARGSUSED*/ -static void -psDot(state, x, y, style, type, color) -char *state; /* state information */ -int x, - y; /* coord of dot */ -int style; /* type of dot */ -int type; /* dot style variation */ -int color; /* color of dot */ - -/* - * Prints out a dot at the given location - */ -{ - struct userInfo *ui = (struct userInfo *) state; - - if (ui->currentDashStyle != PS_NO_DSTYLE) { - OUT(ui->psFile, "[] 0 setdash "); - ui->currentDashStyle = PS_NO_DSTYLE; - } - if (ui->currentWidth != PS_ZERO_WBASE * ui->baseWidth) { - ui->currentWidth = PS_ZERO_WBASE * ui->baseWidth; - OUT(ui->psFile, "%d setlinewidth ", ui->currentWidth); - } - if (color > MAXCOLOR) - color -= MAXCOLOR; - if ((color != ui->currentColor)) { - OUT(ui->psFile, "%lg setgray\n", (double) color / MAXCOLOR); - ui->currentColor = color; - } - - switch (style) { - case P_PIXEL: - OUT(ui->psFile, "newpath %d %d moveto %d %d %d 0 360 arc fill\n", - x, IY(y), x, IY(y), PS_PIXEL * ui->baseWidth); - break; - case P_DOT: - OUT(ui->psFile, "newpath %d %d moveto %d %d %d 0 360 arc fill\n", - x, IY(y), x, IY(y), PS_DOT * ui->baseWidth); - break; - case P_MARK: - OUT(ui->psFile, "%d %d %d mark%d\n", - x, IY(y), PS_MARK * ui->baseWidth, type); - break; - } - return; -} - - -static void -psEnd(userState) -char *userState; /* state information */ -{ - struct userInfo *ui = (struct userInfo *) userState; - - if (!(ui->flags & D_DOCU)) { - PSU("showpage\n"); - } - PSU("%% End of xgraph output\n"); -} diff --git a/xgraph/read.c b/xgraph/read.c deleted file mode 100644 index 7c97b110b..000000000 --- a/xgraph/read.c +++ /dev/null @@ -1,365 +0,0 @@ -/* $Header$ */ -/* - * read.c: Dataset read code - * - * Routines: - * int ReadData(); - * - * $Log$ - * Revision 1.1 2004-01-25 09:00:49 pnenzi - * - * Added xgraph plotting program. - * - * Revision 1.2 1999/12/03 23:17:45 heideman - * apply xgraph_no_animation.patch - * - * Revision 1.1.1.1 1999/12/03 23:15:53 heideman - * xgraph-12.0 - * - */ -#ifndef lint -static char rcsid[] = "$Id$"; -#endif - -#include "copyright.h" -#include -#include -#include -#include -#include "xgraph.h" -#include "xtb.h" -#include "hard_devices.h" -#include "params.h" -/* - * New dataset reading code - */ - -static int setNumber = 0; -static PointList **curSpot = (PointList **) 0; -static PointList *curList = (PointList *) 0; -static int newGroup = 0; -static int redundant_set = 0; - -#ifdef DO_DER -extern void Der1(); -#endif - -static int -rdSet(fn) -char *fn; /* Reading from file `fn' */ - -/* - * Set up new dataset. Will return zero if there are too many data sets. - */ -{ - char setname[100]; - - if (!redundant_set) { - if (setNumber < MAXSETS) { - (void) sprintf(setname, "Set %d", setNumber); - if ((strcmp(PlotData[setNumber].setName, setname) == 0) && fn) { - PlotData[setNumber].setName = fn; - } - curSpot = &(PlotData[setNumber].list); - PlotData[setNumber].list = (PointList *) 0; - newGroup = 1; - setNumber++; - redundant_set = 1; - return 1; - } - else { - return 0; - } - } - else { - return 1; - } -} - -static void -rdSetName(name) -char *name; /* New set name */ - -/* - * Sets the name of a data set. Automatically makes a copy. - */ -{ - PlotData[setNumber - 1].setName = STRDUP(name); -} - -static void -rdGroup() -/* - * Set up for reading new group of points within a dataset. - */ -{ - newGroup = 1; -} - -static void -rdPoint(xval, yval) -double xval, - yval; /* New point */ - -/* - * Adds a new point to the current group of the current - * data set. - */ -{ - if (newGroup) { - *curSpot = (PointList *) Malloc(sizeof(PointList)); - curList = *curSpot; - curSpot = &(curList->next); - curList->numPoints = 0; - curList->allocSize = INITSIZE; - curList->xvec = (double *) Malloc((unsigned) - (INITSIZE * sizeof(double))); - curList->yvec = (double *) Malloc((unsigned) - (INITSIZE * sizeof(double))); - curList->next = (PointList *) 0; - newGroup = 0; - } - if (curList->numPoints >= curList->allocSize) { - curList->allocSize *= 2; - curList->xvec = (double *) Realloc((char *) curList->xvec, - (unsigned) (curList->allocSize * - sizeof(double))); - curList->yvec = (double *) Realloc((char *) curList->yvec, - (unsigned) (curList->allocSize * - sizeof(double))); - } - - curList->xvec[curList->numPoints] = xval; - curList->yvec[curList->numPoints] = yval; - - (curList->numPoints)++; - redundant_set = 0; -} - -static int -rdFindMax() -/* - * Returns the maximum number of items in any one group of any - * data set. - */ -{ - int i; - PointList *list; - int max = -1; - - for (i = 0; i < setNumber; i++) { - for (list = PlotData[i].list; list; list = list->next) { - if (list->numPoints > max) - max = list->numPoints; - } - } - return max; -} - - -typedef enum line_type { - EMPTY, COMMENT, SETNAME, DRAWPNT, MOVEPNT, SETPARAM, ERROR -} LineType; - -typedef struct point_defn { - double xval, - yval; -} Point; - -typedef struct parmval_defn { - char *name, - *value; -} ParmVals; - -typedef struct line_info { - LineType type; - union val_defn { - char *str; /* SETNAME, ERROR */ - Point pnt; /* DRAWPNT, MOVEPNT */ - ParmVals parm; /* SETPARAM */ - } val; -} LineInfo; - -static LineType -parse_line(line, result) -char *line; /* Line to parse */ -LineInfo *result; /* Returned result */ - -/* - * Parses `line' into one of the types given in the definition - * of LineInfo. The appropriate values are filled into `result'. - * Below are the current formats for each type: - * EMPTY: All white space - * COMMENT: Starts with "#" - * SETNAME: A name enclosed in double quotes - * DRAWPNT: Two numbers optionally preceded by keyword "draw" - * MOVEPNT: Two numbers preceded by keyword "move" - * SETPARAM: Two non-null strings separated by ":" - * ERROR: Not any of the above (an error message is returned) - * Note that often the values are pointers into the line itself - * and should be copied if they are to be used over a long period. - */ -{ - char *first; - - /* Find first non-space character */ - while (*line && isspace(*line)) - line++; - if (*line) { - if (*line == '#') { - /* comment */ - result->type = COMMENT; - } - else if (*line == '"') { - /* setname */ - result->type = SETNAME; - line++; - result->val.str = line; - while (*line && (*line != '\n') && (*line != '"')) - line++; - if (*line) - *line = '\0'; - } - else { - first = line; - while (*line && !isspace(*line)) - line++; - if (*line) { - *line = '\0'; - if (stricmp(first, "move") == 0) { - /* MOVEPNT */ - if (sscanf(line + 1, "%lf %lf", - &result->val.pnt.xval, - &result->val.pnt.yval) == 2) { - result->type = MOVEPNT; - } - else { - result->type = ERROR; - result->val.str = "Cannot read move coordinates"; - } - } - else if (stricmp(first, "draw") == 0) { - /* DRAWPNT */ - if (sscanf(line + 1, "%lf %lf", - &result->val.pnt.xval, - &result->val.pnt.yval) == 2) { - result->type = DRAWPNT; - } - else { - result->type = ERROR; - result->val.str = "Cannot read draw coordinates"; - } - } - else if (first[strlen(first) - 1] == ':') { - /* SETPARAM */ - first[strlen(first) - 1] = '\0'; - result->val.parm.name = first; - line++; - while (*line && isspace(*line)) - line++; - /* may be a \n at end of it */ - if (line[strlen(line) - 1] == '\n') { - line[strlen(line) - 1] = '\0'; - } - result->val.parm.value = line; - result->type = SETPARAM; - } - else if (sscanf(first, "%lf", &result->val.pnt.xval) == 1) { - /* DRAWPNT */ - if (sscanf(line + 1, "%lf", &result->val.pnt.yval) == 1) { - result->type = DRAWPNT; - } - else { - result->type = ERROR; - result->val.str = "Cannot read second coordinate"; - } - } - else { - /* ERROR */ - result->type = ERROR; - result->val.str = "Unknown line type"; - } - } - else { - /* ERROR */ - result->type = ERROR; - result->val.str = "Premature end of line"; - } - } - } - else { - /* empty */ - result->type = EMPTY; - } - return result->type; -} - - -int -ReadData(stream, filename) -FILE *stream; -char *filename; - -/* - * Reads in the data sets from the supplied stream. If the format - * is correct, it returns the current maximum number of points across - * all data sets. If there is an error, it returns -1. - */ -{ - char buffer[MAXBUFSIZE]; - LineInfo info; - int line_count = 0; - int errors = 0; - - if (!rdSet(filename)) { - (void) fprintf(stderr, "Error in file `%s' at line %d:\n %s\n", - filename, line_count, - "Too many data sets - extra data ignored"); - return -1; - } - while (fgets(buffer, MAXBUFSIZE, stream)) { - line_count++; - switch (parse_line(buffer, &info)) { - case EMPTY: - if (!rdSet(filename)) { - (void) fprintf(stderr, "Error in file `%s' at line %d:\n %s\n", - filename, line_count, - "Too many data sets - extra data ignored"); - return -1; - } - break; - case COMMENT: - /* nothing */ - break; - case SETNAME: - rdSetName(info.val.str); - break; - case DRAWPNT: - rdPoint(info.val.pnt.xval, info.val.pnt.yval); - break; - case MOVEPNT: - rdGroup(); - rdPoint(info.val.pnt.xval, info.val.pnt.yval); - break; - case SETPARAM: - param_reset(info.val.parm.name, info.val.parm.value); - break; - default: - if (filename) { - (void) fprintf(stderr, "Error in file `%s' at line %d:\n %s\n", - filename, line_count, info.val.str); - errors++; - } - break; - } - } -#ifdef DO_DER - Der1(); -#endif - if (errors) - return -1; - else - return rdFindMax(); -} - - diff --git a/xgraph/st.c b/xgraph/st.c deleted file mode 100644 index 5e9b4a55b..000000000 --- a/xgraph/st.c +++ /dev/null @@ -1,571 +0,0 @@ -/*LINTLIBRARY*/ -/* - * String Table (Hash) Package - * - * Peter Moore - * University of California, Berkeley - * 1985 - * - * This is a general purpose hash table package. - */ - -#include -#include "copyright.h" -#include "st.h" -#include "xgraph.h" - -#define max(a,b) ((a) > (b) ? (a) : (b)) -#define nil(type) ((type *) 0) -#define alloc(type) (type *) Malloc(sizeof(type)) - -#define ABS(x) ((x) < 0 ? -(x) : (x)) -#define ST_NUMCMP(x,y) ((int) (x) - (int) (y)) -#define ST_NUMHASH(x,size) (ABS((int)x)%(size)) -#define ST_PTRHASH(x,size) ((int)((unsigned)(x)>>2)%size) -#define EQUAL(func, x, y) \ - ((((func) == st_numcmp) || ((func) == st_ptrcmp)) ?\ - (ST_NUMCMP((x),(y)) == 0) : ((*func)((x), (y)) == 0)) - - -#define do_hash(key, table)\ - ((table->hash == st_ptrhash) ? ST_PTRHASH((key),(table)->num_bins) :\ - (table->hash == st_numhash) ? ST_NUMHASH((key), (table)->num_bins) :\ - table->hash ((key), (table)->num_bins)) - -char st_pkg_name[] = "st"; - -/* Possible error conditions */ -char *st_no_mem = "out of memory"; -char *st_bad_ret = "bad return code from function passed to st_foreach"; -char *st_bad_gen = "null or zero generator"; - -/* Forward declarations */ -int st_numhash(), st_ptrhash(), st_numcmp(), st_ptrcmp(); -static void rehash(); -static void errRaise(); - - -st_table * -st_init_table_with_params(compare, hash, size, density, grow_factor, - reorder_flag) -int (*compare) (); -int (*hash) (); -int size; -int density; -double grow_factor; -int reorder_flag; - -/* Detailed table allocator */ -{ - st_table *new; - - new = alloc(st_table); - if (!new) { - errRaise(st_pkg_name, ST_NO_MEM, st_no_mem); - /* NOTREACHED */ - } - new->compare = compare; - new->hash = hash; - new->num_entries = 0; - new->max_density = density; - new->grow_factor = grow_factor; - new->reorder_flag = reorder_flag; - if (size <= 0) { - size = 1; - } - new->num_bins = size; - new->bins = - (st_table_entry **) Calloc((unsigned) size, sizeof(st_table_entry *)); - if (!new->bins) { - Free((char *) new); - errRaise(st_pkg_name, ST_NO_MEM, st_no_mem); - /* NOTREACHED */ - } - return new; -} - -st_table * -st_init_table(compare, hash) -int (*compare) (); -int (*hash) (); - -/* Default table allocator */ -{ - return st_init_table_with_params(compare, hash, ST_DEFAULT_INIT_TABLE_SIZE, - ST_DEFAULT_MAX_DENSITY, - ST_DEFAULT_GROW_FACTOR, - ST_DEFAULT_REORDER_FLAG); -} - - -void -st_Free_table(table) -st_table *table; - -/* Destroy a table */ -{ - register st_table_entry *ptr, - *next; - int i; - - for (i = 0; i < table->num_bins; i++) { - ptr = table->bins[i]; - while (ptr != nil(st_table_entry)) { - next = ptr->next; - Free((char *) ptr); - ptr = next; - } - } - Free((char *) table->bins); - Free((char *) table); -} - - -#define PTR_NOT_EQUAL(table, ptr, user_key)\ -(ptr != nil(st_table_entry) && !EQUAL(table->compare, user_key, (ptr)->key)) - -#define FIND_ENTRY(table, hash_val, key, ptr, last) \ - (last) = &(table)->bins[hash_val];\ - (ptr) = *(last);\ - while (PTR_NOT_EQUAL((table), (ptr), (key))) {\ - (last) = &(ptr)->next; (ptr) = *(last);\ - }\ - if ((ptr) != nil(st_table_entry) && (table)->reorder_flag) {\ - *(last) = (ptr)->next;\ - (ptr)->next = (table)->bins[hash_val];\ - (table)->bins[hash_val] = (ptr);\ - } - -int -st_lookup(table, key, value) -st_table *table; -register char *key; -char **value; - -/* Look up item in table -- return zero if not found */ -{ - int hash_val; - register st_table_entry *ptr, - **last; - - hash_val = do_hash(key, table); - - FIND_ENTRY(table, hash_val, key, ptr, last); - - if (ptr == nil(st_table_entry)) { - return 0; - } - else { - if (value != nil(char *)) - *value = ptr->record; - return 1; - } -} - -#define ADD_DIRECT(table, key, value, hash_val, new)\ -{\ - if (table->num_entries/table->num_bins >= table->max_density) {\ - (void) rehash(table);\ - hash_val = do_hash(key,table);\ - }\ - \ - new = alloc(st_table_entry);\ - \ - if (new) {\ - new->key = key;\ - new->record = value;\ - new->next = table->bins[hash_val];\ - table->bins[hash_val] = new;\ - table->num_entries++;\ - } else {\ - errRaise(st_pkg_name, ST_NO_MEM, st_no_mem);\ - /* NOTREACHED */ \ - } \ -} - -int -st_insert(table, key, value) -register st_table *table; -register char *key; -char *value; - -/* Insert an item into the table - replacing if it already exists */ -{ - int hash_val; - st_table_entry *new; - register st_table_entry *ptr, - **last; - - hash_val = do_hash(key, table); - - FIND_ENTRY(table, hash_val, key, ptr, last); - - if (ptr == nil(st_table_entry)) { - ADD_DIRECT(table, key, value, hash_val, new); - return 0; - } - else { - ptr->record = value; - return 1; - } -} - -void -st_add_direct(table, key, value) -st_table *table; -char *key; -char *value; - -/* Add item to table without checking for existing item */ -{ - int hash_val; - st_table_entry *new; - - hash_val = do_hash(key, table); - ADD_DIRECT(table, key, value, hash_val, new); -} - -int -st_find_or_add(table, key, slot) -st_table *table; -char *key; -char ***slot; - -/* Return slot for key - make one if one doesn't exist */ -{ - int hash_val; - st_table_entry *new, - *ptr, - **last; - - hash_val = do_hash(key, table); - - FIND_ENTRY(table, hash_val, key, ptr, last); - - if (ptr == nil(st_table_entry)) { - ADD_DIRECT(table, key, (char *) 0, hash_val, new); - if (slot != nil(char **)) - *slot = &new->record; - return 0; - } - else { - if (slot != nil(char **)) - *slot = &ptr->record; - return 1; - } -} - -int -st_find(table, key, slot) -st_table *table; -char *key; -char ***slot; - -/* Finds an entry in table */ -{ - int hash_val; - st_table_entry *ptr, - **last; - - hash_val = do_hash(key, table); - - FIND_ENTRY(table, hash_val, key, ptr, last); - - if (ptr == nil(st_table_entry)) { - return 0; - } - else { - if (slot != nil(char **)) - *slot = &ptr->record; - return 1; - } -} - -static void -rehash(table) -register st_table *table; - -/* Grows table */ -{ - register st_table_entry *ptr, - *next, - **old_bins = table->bins; - int i, - old_num_bins = table->num_bins, - hash_val; - - table->num_bins = table->grow_factor * old_num_bins; - - if (table->num_bins % 2 == 0) { - table->num_bins += 1; - } - - table->bins = - (st_table_entry **) Calloc((unsigned) table->num_bins, - sizeof(st_table_entry *)); - - if (!table->bins) { - /* If out of memory: don't resize */ - table->bins = old_bins; - table->num_bins = old_num_bins; - return; - } - - table->num_entries = 0; - - for (i = 0; i < old_num_bins; i++) { - ptr = old_bins[i]; - while (ptr != nil(st_table_entry)) { - next = ptr->next; - hash_val = do_hash(ptr->key, table); - ptr->next = table->bins[hash_val]; - table->bins[hash_val] = ptr; - table->num_entries++; - ptr = next; - } - } - Free((char *) old_bins); -} - -st_table * -st_copy(old_table) -st_table *old_table; -{ - st_table *new_table; - st_table_entry *ptr, - *new; - int i, - num_bins = old_table->num_bins; - - new_table = alloc(st_table); - if (new_table == nil(st_table)) { - errRaise(st_pkg_name, ST_NO_MEM, st_no_mem); - /* NOTREACHED */ - } - - *new_table = *old_table; - new_table->bins = - (st_table_entry **) Calloc((unsigned) num_bins, sizeof(st_table_entry *)); - - if (new_table->bins == nil(st_table_entry *)) { - Free((char *) new_table); - errRaise(st_pkg_name, ST_NO_MEM, st_no_mem); - /* NOTREACHED */ - } - - for (i = 0; i < num_bins; i++) { - new_table->bins[i] = nil(st_table_entry); - ptr = old_table->bins[i]; - while (ptr != nil(st_table_entry)) { - new = alloc(st_table_entry); - if (new == nil(st_table_entry)) { - Free((char *) new_table->bins); - Free((char *) new_table); - errRaise(st_pkg_name, ST_NO_MEM, st_no_mem); - /* NOTREACHED */ - } - *new = *ptr; - new->next = new_table->bins[i]; - new_table->bins[i] = new; - ptr = ptr->next; - } - } - return new_table; -} - -int -st_delete(table, keyp, value) -register st_table *table; -register char **keyp; -char **value; -{ - int hash_val; - char *key = *keyp; - register st_table_entry *ptr, - **last; - - hash_val = do_hash(key, table); - - FIND_ENTRY(table, hash_val, key, ptr, last); - - if (ptr == nil(st_table_entry)) { - return 0; - } - - *last = ptr->next; - if (value != nil(char *)) - *value = ptr->record; - *keyp = ptr->key; - Free((char *) ptr); - table->num_entries--; - return 1; -} - -int -st_foreach(table, func, arg) -st_table *table; -enum st_retval (*func) (); -char *arg; -{ - st_table_entry *ptr, - **last; - enum st_retval retval; - int i; - - for (i = 0; i < table->num_bins; i++) { - last = &table->bins[i]; - ptr = *last; - while (ptr != nil(st_table_entry)) { - retval = func (ptr->key, ptr->record, arg); - switch (retval) { - case ST_CONTINUE: - last = &ptr->next; - ptr = *last; - break; - case ST_STOP: - return 0; - case ST_DELETE: - *last = ptr->next; - Free((char *) ptr); - ptr = *last; - break; - default: - errRaise(st_pkg_name, ST_BAD_RET, st_bad_ret); - /* NOTREACHED */ - } - } - } - return 1; -} - -int -st_strhash(string, modulus) -register char *string; -int modulus; -{ - register int val = 0; - register int c; - - while ((c = *string++) != '\0') { - val = val * 997 + c; - } - - return ((val < 0) ? -val : val) % modulus; -} - -int -st_numhash(x, size) -char *x; -int size; -{ - return ST_NUMHASH(x, size); -} - -int -st_ptrhash(x, size) -char *x; -int size; -{ - return ST_PTRHASH(x, size); -} - -int -st_numcmp(x, y) -char *x; -char *y; -{ - return ST_NUMCMP(x, y); -} - -int -st_ptrcmp(x, y) -char *x; -char *y; -{ - return ST_NUMCMP(x, y); -} - -st_generator * -st_init_gen(table) -st_table *table; - -/* Initializes generation of items in table */ -{ - st_generator *gen; - - gen = alloc(st_generator); - if (!gen) { - errRaise(st_pkg_name, ST_NO_MEM, st_no_mem); - /* NOTREACHED */ - } - gen->table = table; - gen->entry = nil(st_table_entry); - gen->idx = 0; - return gen; -} - - -int -st_gen(gen, key_p, value_p) -st_generator *gen; -char **key_p; -char **value_p; - -/* Generates next item in generation sequence */ -{ - register int i; - - if (!gen) { - errRaise(st_pkg_name, ST_BAD_GEN, st_bad_gen); - /* NOTREACHED */ - } - - if (gen->entry == nil(st_table_entry)) { - /* try to find next entry */ - for (i = gen->idx; i < gen->table->num_bins; i++) { - if (gen->table->bins[i] != nil(st_table_entry)) { - gen->idx = i + 1; - gen->entry = gen->table->bins[i]; - break; - } - } - if (gen->entry == nil(st_table_entry)) { - return 0; /* that's all folks ! */ - } - } - *key_p = gen->entry->key; - if (value_p != 0) - *value_p = gen->entry->record; - gen->entry = gen->entry->next; - return 1; -} - - -void -st_Free_gen(gen) -st_generator *gen; -{ - if (gen) { - Free((char *) gen); - } - else { - errRaise(st_pkg_name, ST_BAD_GEN, st_bad_gen); - /* NOTREACHED */ - } -} - - -static void -errRaise(pkg, num, msg) -char *pkg; -int num; -char *msg; - -/* - * In this standalone version of st, and error raise causes - * an abort after printing a message. - */ -{ - (void) fprintf(stderr, "%s: %s\n", pkg, msg); - abort(); -} diff --git a/xgraph/st.h b/xgraph/st.h deleted file mode 100644 index 1e09a27ed..000000000 --- a/xgraph/st.h +++ /dev/null @@ -1,119 +0,0 @@ -/* $Header$ */ - -#ifndef ST_INCLUDED -#define ST_INCLUDED - -/* Function prototypes */ -#ifdef __STDC__ -#define ARGS(args) args -#else -#define ARGS(args) () -#endif - -extern char st_pkg_name[]; - -/* Fatal error codes */ -#define ST_NO_MEM 0 -#define ST_BAD_RET 1 -#define ST_BAD_GEN 2 - -typedef struct st_table_entry st_table_entry; -struct st_table_entry { - char *key; - char *record; - st_table_entry *next; -}; - -typedef struct st_table st_table; -struct st_table { - int (*compare) (); - int (*hash) (); - int num_bins; - int num_entries; - int max_density; - int reorder_flag; - double grow_factor; - st_table_entry **bins; -}; - -typedef struct st_generator st_generator; -struct st_generator { - st_table *table; - st_table_entry *entry; - int idx; -}; - -#define st_is_member(table,key) st_lookup(table,key,(char **) 0) -#define st_count(table) ((table)->num_entries) - -enum st_retval { - ST_CONTINUE, ST_STOP, ST_DELETE -}; - -extern st_table *st_init_table_with_params - ARGS((int (*compare) (), int (*hash) (), int size, int density, - double grow_factor, int reorder_flag)); - -extern st_table *st_init_table - ARGS((int (*compare) (), int (*hash) ())); - -extern void st_free_table - ARGS((st_table * table)); - -extern int st_lookup - ARGS((st_table * table, char *key, char **value)); - -extern int st_insert - ARGS((st_table * table, char *key, char *value)); - -extern void st_add_direct - ARGS((st_table * table, char *key, char *value)); - -extern int st_find_or_add - ARGS((st_table * table, char *key, char ***slot)); - -extern int st_find - ARGS((st_table * table, char *key, char ***slot)); - -extern st_table *st_copy - ARGS((st_table * old_table)); - -extern int st_delete - ARGS((st_table * table, char **keyp, char **value)); - -extern int st_foreach - ARGS((st_table * table, enum st_retval(*func) (), char *arg)); - -extern int st_strhash - ARGS((char *string, int modulus)); - -extern int st_numhash - ARGS((char *x, int size)); - -extern int st_ptrhash - ARGS((char *x, int size)); - -extern int st_numcmp - ARGS((char *x, char *y)); - -extern int st_ptrcmp - ARGS((char *x, char *y)); - -extern st_generator *st_init_gen - ARGS((st_table * table)); - -extern int st_gen - ARGS((st_generator * gen, char **key_p, char **value_p)); - -extern void st_free_gen - ARGS((st_generator * gen)); - -#define ST_DEFAULT_MAX_DENSITY 5 -#define ST_DEFAULT_INIT_TABLE_SIZE 11 -#define ST_DEFAULT_GROW_FACTOR 2.0 -#define ST_DEFAULT_REORDER_FLAG 0 - -#define st_foreach_item(table, gen, key_p, value_p) \ - for(gen=st_init_gen(table); st_gen(gen,key_p,value_p) || (st_free_gen(gen),0);) - -#endif /* ST_INCLUDED */ diff --git a/xgraph/stamp-h.in b/xgraph/stamp-h.in deleted file mode 100644 index 9788f7023..000000000 --- a/xgraph/stamp-h.in +++ /dev/null @@ -1 +0,0 @@ -timestamp diff --git a/xgraph/tgif.c b/xgraph/tgif.c deleted file mode 100644 index 40e1aa1ca..000000000 --- a/xgraph/tgif.c +++ /dev/null @@ -1,330 +0,0 @@ -/* - * Tgif Output - * - * Christos Zoulas - */ - -#include -#include /* for strlen() */ -#include -#include "hard_devices.h" -#include "xgout.h" - -#define COLOR "DarkSlateGray" - -typedef struct { - char *title_font; - char *axis_font; - int title_size; - int axis_size; - FILE *strm; -} Info; - -char *tgif_prologue[] = -{ - "state(0,13,0,0,0,16,1,5,1,1,0,0,1,0,1,0,1,0,4,0,0,0,10,0).\n", - "%\n", - "% Tgif xgraph output.\n", - "%\n", - 0 -}; - -/* - * Hardcopy Interface for Xgraph - * - * Major differences from first version: - * Four new parameters are passed to the device initialization routine: - * title_family, title_size, axis_family, and axis_size. See the - * description of xg_init() for details. - * - * Clipping is done automatically by xgraph. The xg_clip() routine - * is obsolete. - * - * The xg_line() routine has become the xg_seg() routine. It now - * draws segments rather than a series of lines. - * - * A new field (max_segs) in the device structure now specifies - * the maximum number of segments the device can handle in a group. - */ - - - - -void tgifText(); -void tgifDot(); -void tgifSeg(); -void tgifEnd(); - -int -tgifInit(strm, width, height, title_family, title_size, - axis_family, axis_size, flags, out_info, errmsg) -FILE *strm; /* Output stream */ -int width, - height; /* Size of space (microns) */ -char *title_family; /* Name of title font family */ -double title_size; /* Title font height (points) */ -char *axis_family; /* Name of axis font family */ -double axis_size; /* Axis font height (points) */ -int flags; /* Flags */ -xgOut *out_info; /* Device info (RETURN) */ -char errmsg[ERRBUFSIZE]; /* Error message area */ - -{ - Info *tgif_info; - char **l; - double scx, - scy; - - tgif_info = (Info *) Malloc(sizeof(*tgif_info)); - - for (l = tgif_prologue; *l; l++) - fprintf(strm, "%s\n", *l); - - out_info->dev_flags = 0; - scx = width / 512.0; - scy = height / 512.0; - if (scx > scy) { - scy /= scx; - scx = 1; - } - else { - scx /= scy; - scy = 1; - } - out_info->bdr_pad = title_size / 4; - out_info->axis_pad = 2.0 * axis_size; - out_info->legend_pad = 0; - - out_info->area_w = width * 0.00283 * scx; /* pts per micron */ - out_info->area_h = height * 0.00283 * scy; - - out_info->tick_len = axis_size; - out_info->axis_height = axis_size; - out_info->title_height = title_size; - out_info->axis_width = (axis_size * 5.0) / 12.0; - out_info->title_width = (title_size * 5.0) / 12.0; - out_info->max_segs = 100; - out_info->xg_text = tgifText; - out_info->xg_seg = tgifSeg; - out_info->xg_dot = tgifDot; - out_info->xg_end = tgifEnd; - out_info->user_state = (char *) tgif_info; - - tgif_info->title_font = title_family; - tgif_info->axis_font = axis_family; - tgif_info->title_size = title_size; - tgif_info->axis_size = axis_size; - tgif_info->strm = strm; - return 1; -} - -/* Text justifications */ -#define T_CENTER 0 -#define T_LEFT 1 -#define T_UPPERLEFT 2 -#define T_TOP 3 -#define T_UPPERRIGHT 4 -#define T_RIGHT 5 -#define T_LOWERRIGHT 6 -#define T_BOTTOM 7 -#define T_LOWERLEFT 8 - -/* Text styles */ -#define T_AXIS 0 -#define T_TITLE 1 - -static void -tgif_just(x, y, just, size, len) -int *x, - *y; /* Given location (lower left) */ -int just; /* Justification */ -int size; /* Size in points */ -int len; /* Number of chars */ - -/* - * Unfortunately, tgif really can't display text with a justification. - * This is a horrible hack to try to get around the problem. It tries - * to compute a rough bounding box for the text based on the text height - * and the string length and offset `x,y' appropriately for the justification. - * This is only a hack... - */ -{ - int t_width, - t_height; - - t_height = size; - t_width = (size * len * 5) / 12; /* Horrible estimate */ - - switch (just) { - case T_CENTER: - *x -= t_width / 2; - *y -= t_height / 2; - break; - case T_LEFT: - *y -= t_height / 2; - break; - case T_UPPERLEFT: - /* nothing */ - break; - case T_TOP: - *x -= t_width / 2; - break; - case T_UPPERRIGHT: - *x -= t_width; - break; - case T_RIGHT: - *x -= t_width; - *y -= t_height / 2; - break; - case T_LOWERRIGHT: - *x -= t_width; - *y -= t_height; - break; - case T_BOTTOM: - *x -= t_width / 2; - *y -= t_height; - break; - case T_LOWERLEFT: - *y -= t_height; - break; - } - - /* - * Also, tgif seems to put a space above all text it draws. The - * computation below compensates for this. - */ - *y += (size / 3); -} - -void -tgifText(user_state, x, y, text, just, style) -char *user_state; /* Value set in xg_init */ -int x, - y; /* Text position (pixels) */ -char *text; /* Null terminated text */ -int just; /* Justification (above) */ -int style; /* Text style (above) */ - -/* - * This routine should draw text at the indicated position using - * the indicated justification and style. The justification refers - * to the location of the point in reference to the text. For example, - * if just is T_LOWERLEFT, (x,y) should be located at the lower left - * edge of the text string. - */ -{ - char *font; - int size; - Info *tgif = (Info *) user_state; - - /* - * Obj = text(_Color,_X,_Y,_Font,_TextStyle,_TextSize,_NumLines,_TextJust, - * _TextRotate,_PenPat,_BBoxW,_BBoxH,_Id,_TextDPI,_Asc,_Des, - * _ObjFill,_Vspace,StrList), - */ - /* font ok too */ - style == T_AXIS ? tgif->axis_font : - tgif->title_font; - /* ok 0, 1 as in tgif */ - size = style == T_AXIS ? tgif->axis_size : - tgif->title_size; - tgif_just(&x, &y, just, size, strlen(text)); - - if (size <= 8) - size = 0; - else if (size <= 10) - size = 1; - else if (size <= 12) - size = 2; - else if (size <= 14) - size = 3; - else if (size <= 18) - size = 4; - else - size = 5; - - fprintf(tgif->strm, - "text('%s',%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,[\n\t", - COLOR, x, y, 0, style, size, 1, 0, 0, 1, 0, 0, 0, 0, 18, 4, 0, 0); - fprintf(tgif->strm, - "\"%s\"]).\n", text); -} - -/* Line Styles */ -#define L_AXIS 0 -#define L_ZERO 1 -#define L_VAR 2 - -void -tgifSeg(user_state, ns, seglist, width, style, lappr, color) -char *user_state; /* Value set in xg_init */ -int ns; /* Number of segments */ -XSegment *seglist; /* X array of segments */ -int width; /* Width of lines */ -int style; /* See above */ -int lappr; /* Line appearence */ -int color; /* Line color (if any) */ -{ - Info *tgif = (Info *) user_state; - int i, - j, - k; - - /* - * poly(_Color,_NumVs,_Vs,_LineStyle,_LineWidth,_PenPat,_Id,_Spline, - * _ObjFill,_Dash,AttrList), - */ - static int style_list[] = - { - 1, 10, 7, 6, 5, 4, 3, 2 - }; - - for (i = 0; i < ns; i++) { - fprintf(tgif->strm, "poly('%s',2,[%d,%d,%d,%d],", COLOR, - seglist[i].x1, seglist[i].y1, - seglist[i].x2, seglist[i].y2); - fprintf(tgif->strm, "%d,%d,%d,%d,%d,%d,%d,[\n]).\n", 0, width, - style_list[lappr], 0, 0, style_list[lappr], 0); - } -} - -/* Marker styles */ -#define P_PIXEL 0 -#define P_DOT 1 -#define P_MARK 2 - -void -tgifDot(user_state, x, y, style, type, color) -char *user_state; /* Value set in xg_init */ -int x, - y; /* Location in pixel units */ -int style; /* Dot style */ -int type; /* Type of marker */ -int color; /* Marker color (if any) */ - -/* - * This routine should draw a marker at location `x,y'. If the - * style is P_PIXEL, the dot should be a single pixel. If - * the style is P_DOT, the dot should be a reasonably large - * dot. If the style is P_MARK, it should be a distinguished - * mark which is specified by `type' (0-7). If the output - * device is capable of color, the marker should be drawn in - * `color' (0-7) which corresponds with the color for xg_line. - */ -{ -} - -void -tgifEnd(user_state) -char *user_state; - -/* - * This routine is called after a drawing sequence is complete. - * It can be used to clean up the user state and set the device - * state appropriately. This routine is optional in the structure. - */ -{ - Info *tgif = (Info *) user_state; - - fclose(tgif->strm); -} diff --git a/xgraph/xgX.c b/xgraph/xgX.c deleted file mode 100644 index 5d20cf053..000000000 --- a/xgraph/xgX.c +++ /dev/null @@ -1,480 +0,0 @@ -/* - * Generic Output Driver for X - * X version 11 - * - * This is the primary output driver used by the new X graph - * to display output to the X server. It has been factored - * out of the original xgraph to allow mulitple hardcopy - * output devices to share xgraph's capabilities. Note: - * xgraph is still heavily X oriented. This is not intended - * for porting to other window systems. - */ - -#include "copyright.h" -#include "xgout.h" -#include "params.h" - -#define PADDING 2 -#define SPACE 10 -#define TICKLENGTH 5 -#define MAXSEGS 1000 - -struct x_state { - Window win; /* Primary window */ -}; - -void text_X(); -void seg_X(); -void dot_X(); - - -typedef struct attr_set { - char lineStyle[MAXLS]; - int lineStyleLen; - Pixel pixelValue; - Pixmap markStyle; -} AttrSet; - -static AttrSet AllAttrs[MAXATTR]; - -static Pixmap dotMap = (Pixmap) 0; - -/* - * Marker bitmaps - */ - -#include "bitmaps/dot.11" - -#include "bitmaps/mark1.11" -#include "bitmaps/mark2.11" -#include "bitmaps/mark3.11" -#include "bitmaps/mark4.11" -#include "bitmaps/mark5.11" -#include "bitmaps/mark6.11" -#include "bitmaps/mark7.11" -#include "bitmaps/mark8.11" - -/* Sizes exported for marker drawing */ -static unsigned int dot_w = dot_width; -static unsigned int dot_h = dot_height; -static unsigned int mark_w = mark1_width; -static unsigned int mark_h = mark1_height; -static int mark_cx = mark1_x_hot; -static int mark_cy = mark1_y_hot; - - - -void -set_X(new_win, out_info) -Window new_win; /* Newly created window */ -xgOut *out_info; /* Information to set */ - -/* - * Sets some of the common parameters for the X output device. - */ -{ - struct x_state *new_state; - XFontStruct *font; - - out_info->dev_flags = ((depth > 3) ? D_COLOR : 0); - out_info->area_w = out_info->area_h = 0; /* Set later */ - out_info->bdr_pad = PADDING; - out_info->axis_pad = SPACE; - out_info->legend_pad = 0; - out_info->tick_len = TICKLENGTH; - - font = PM_FONT("LabelFont"); -#ifdef OLD - out_info->axis_width = - font->max_bounds.rbearing - font->max_bounds.lbearing; -#endif - out_info->axis_width = XTextWidth(font, "8", 1); - out_info->axis_height = - font->max_bounds.ascent + font->max_bounds.descent; - - font = PM_FONT("TitleFont"); -#ifdef OLD - out_info->title_width = - font->max_bounds.rbearing - font->max_bounds.lbearing; -#endif - out_info->title_width = XTextWidth(font, "8", 1); - out_info->title_height = - font->max_bounds.ascent + font->max_bounds.descent; - out_info->max_segs = MAXSEGS; - - out_info->xg_text = text_X; - out_info->xg_seg = seg_X; - out_info->xg_dot = dot_X; - out_info->xg_end = (void (*) ()) 0; - new_state = (struct x_state *) Malloc(sizeof(struct x_state)); - new_state->win = new_win; - out_info->user_state = (char *) new_state; -} - - - -static void -init_once() -/* - * Initializes AllAttrs. - */ -{ - Window temp_win; - XSetWindowAttributes wattr; - char name[1024]; - int idx; - params style_val; - - /* Get attributes out parameters database */ - for (idx = 0; idx < MAXATTR; idx++) { - (void) sprintf(name, "%d.Style", idx); - (void) param_get(name, &style_val); - AllAttrs[idx].lineStyleLen = style_val.stylev.len; - (void) strncpy(AllAttrs[idx].lineStyle, style_val.stylev.dash_list, - style_val.stylev.len); - (void) sprintf(name, "%d.Color", idx); - AllAttrs[idx].pixelValue = PM_PIXEL(name); - } - - /* Create a temporary window for representing depth */ - temp_win = XCreateWindow(disp, RootWindow(disp, screen), - 0, 0, 10, 10, 0, depth, InputOutput, - vis, (unsigned long) 0, &wattr); - - /* Store bitmaps for dots and markers */ - dotMap = XCreateBitmapFromData(disp, temp_win, dot_bits, dot_w, dot_h); - - AllAttrs[0].markStyle = XCreateBitmapFromData(disp, temp_win, - mark1_bits, mark_w, mark_h); - AllAttrs[1].markStyle = XCreateBitmapFromData(disp, temp_win, - mark2_bits, mark_w, mark_h); - AllAttrs[2].markStyle = XCreateBitmapFromData(disp, temp_win, - mark3_bits, mark_w, mark_h); - AllAttrs[3].markStyle = XCreateBitmapFromData(disp, temp_win, - mark4_bits, mark_w, mark_h); - AllAttrs[4].markStyle = XCreateBitmapFromData(disp, temp_win, - mark5_bits, mark_w, mark_h); - AllAttrs[5].markStyle = XCreateBitmapFromData(disp, temp_win, - mark6_bits, mark_w, mark_h); - AllAttrs[6].markStyle = XCreateBitmapFromData(disp, temp_win, - mark7_bits, mark_w, mark_h); - AllAttrs[7].markStyle = XCreateBitmapFromData(disp, temp_win, - mark8_bits, mark_w, mark_h); - XDestroyWindow(disp, temp_win); -} - -/*ARGSUSED*/ -void -init_X(user_state) -char *user_state; - -/* - * Initializes for an X drawing sequence. Sets up drawing attributes - * by reading values from the parameter database. - */ -{ - static int initialized = 0; - - if (!initialized) { - init_once(); - initialized = 1; - } -} - -static GC -textGC(t_win, t_font) -Window t_win; /* Window for making GC */ -XFontStruct *t_font; /* Text font */ - -/* - * Sets the fields above in a global graphics context. If - * the graphics context does not exist, it is created. - */ -{ - static GC text_gc = (GC) 0; - XGCValues gcvals; - unsigned long gcmask; - - gcvals.font = t_font->fid; - gcmask = GCFont; - if (text_gc == (GC) 0) { - gcvals.foreground = PM_PIXEL("Foreground"); - gcmask |= GCForeground; - text_gc = XCreateGC(disp, t_win, gcmask, &gcvals); - } - else { - XChangeGC(disp, text_gc, gcmask, &gcvals); - } - return text_gc; -} - -static GC -segGC(l_win, l_fg, l_style, l_width, l_chars, l_len) -Window l_win; /* Window for making GC */ -Pixel l_fg; /* Foreground color */ -int l_style; /* Line style */ -int l_width; /* Line width */ -char *l_chars; /* Character spec */ -int l_len; /* Length of spec */ - -/* - * Sets the fields above in a global graphics context. If the - * graphics context does not exist, it is created. - */ -{ - static GC segment_gc = (GC) 0; - XGCValues gcvals; - unsigned long gcmask; - - gcvals.foreground = l_fg; - gcvals.line_style = l_style; - gcvals.line_width = l_width; - gcmask = GCForeground | GCLineStyle | GCLineWidth; - if (segment_gc == (GC) 0) { - segment_gc = XCreateGC(disp, l_win, gcmask, &gcvals); - } - else { - XChangeGC(disp, segment_gc, gcmask, &gcvals); - } - if (l_len > 0) { - XSetDashes(disp, segment_gc, 0, l_chars, l_len); - } - return segment_gc; -} - -static GC -dotGC(d_win, d_fg, d_clipmask, d_xorg, d_yorg) -Window d_win; /* Window for making GC */ -Pixel d_fg; /* Foreground color */ -Pixmap d_clipmask; /* Clipmask */ -int d_xorg, - d_yorg; /* Clipmask origin */ - -/* - * Sets the fields above in a global graphics context. If the - * graphics context does not exist, it is created. - */ -{ - static GC dot_gc = (GC) 0; - XGCValues gcvals; - unsigned long gcmask; - - gcvals.foreground = d_fg; - gcvals.clip_mask = d_clipmask; - gcvals.clip_x_origin = d_xorg; - gcvals.clip_y_origin = d_yorg; - gcmask = GCForeground | GCClipMask | GCClipXOrigin | GCClipYOrigin; - if (dot_gc == (GC) 0) { - dot_gc = XCreateGC(disp, d_win, gcmask, &gcvals); - } - else { - XChangeGC(disp, dot_gc, gcmask, &gcvals); - } - return dot_gc; -} - - - -void -text_X(user_state, x, y, text, just, style) -char *user_state; /* Value set in xg_init */ -int x, - y; /* Text position (pixels) */ -char *text; /* Null terminated text */ -int just; /* Justification (above) */ -int style; /* Text style (above) */ - -/* - * This routine should draw text at the indicated position using - * the indicated justification and style. The justification refers - * to the location of the point in reference to the text. For example, - * if just is T_LOWERLEFT, (x,y) should be located at the lower left - * edge of the text string. - */ -{ - struct x_state *st = (struct x_state *) user_state; - XCharStruct bb; - int rx = 0, - ry = 0, - len, - height, - width, - dir; - int ascent, - descent; - XFontStruct *font; - - len = strlen(text); - font = ((style == T_TITLE) ? PM_FONT("TitleFont") : PM_FONT("LabelFont")); - XTextExtents(font, text, len, &dir, &ascent, &descent, &bb); - width = bb.rbearing - bb.lbearing; - height = bb.ascent + bb.descent; - - switch (just) { - case T_CENTER: - rx = x - (width / 2); - ry = y - (height / 2); - break; - case T_LEFT: - rx = x; - ry = y - (height / 2); - break; - case T_UPPERLEFT: - rx = x; - ry = y; - break; - case T_TOP: - rx = x - (width / 2); - ry = y; - break; - case T_UPPERRIGHT: - rx = x - width; - ry = y; - break; - case T_RIGHT: - rx = x - width; - ry = y - (height / 2); - break; - case T_LOWERRIGHT: - rx = x - width; - ry = y - height; - break; - case T_BOTTOM: - rx = x - (width / 2); - ry = y - height; - break; - case T_LOWERLEFT: - rx = x; - ry = y - height; - break; - } - XDrawString(disp, st->win, - textGC(st->win, font), - rx, ry + bb.ascent, text, len); -} - - - -void -seg_X(user_state, ns, segs, width, style, lappr, color) -char *user_state; /* Value set in xg_init */ -int ns; /* Number of segments */ -XSegment *segs; /* X array of segments */ -int width; /* Width of lines */ -int style; /* See above */ -int lappr; /* Line appearence */ -int color; /* Line color (if any) */ - -/* - * This routine draws a number of line segments at the points - * given in `seglist'. Note that contiguous segments need not share - * endpoints but often do. All segments should be `width' devcoords wide - * and drawn in style `style'. If `style' is L_VAR, the parameters - * `color' and `lappr' should be used to draw the line. Both - * parameters vary from 0 to 7. If the device is capable of - * color, `color' varies faster than `style'. If the device - * has no color, `style' will vary faster than `color' and - * `color' can be safely ignored. However, if the - * the device has more than 8 line appearences, the two can - * be combined to specify 64 line style variations. - * Xgraph promises not to send more than the `max_segs' in the - * xgOut structure passed back from xg_init(). - */ -{ - struct x_state *st = (struct x_state *) user_state; - param_style ps; - GC gc; - - if (style == L_AXIS) { - ps = PM_STYLE("GridStyle"); - if (ps.len < 2) { - gc = segGC(st->win, PM_PIXEL("Foreground"), - LineSolid, PM_INT("GridSize"), (char *) 0, 0); - } - else { - gc = segGC(st->win, PM_PIXEL("Foreground"), - LineOnOffDash, PM_INT("GridSize"), - ps.dash_list, ps.len); - } - } - else if (style == L_ZERO) { - /* Set the color and line style */ - ps = PM_STYLE("ZeroStyle"); - if (ps.len < 2) { - gc = segGC(st->win, PM_PIXEL("ZeroColor"), - LineSolid, PM_INT("ZeroWidth"), (char *) 0, 0); - } - else { - gc = segGC(st->win, PM_PIXEL("ZeroColor"), - LineOnOffDash, PM_INT("ZeroWidth"), - ps.dash_list, ps.len); - } - } - else { - /* Color and line style vary */ - if (lappr == 0) { - gc = segGC(st->win, AllAttrs[color].pixelValue, LineSolid, - width, (char *) 0, 0); - } - else { - gc = segGC(st->win, AllAttrs[color].pixelValue, LineOnOffDash, - width, AllAttrs[lappr].lineStyle, AllAttrs[lappr].lineStyleLen); - } - /* PW */ - if (lappr == 16) { - gc = segGC(st->win, PM_PIXEL("BackGround"), LineSolid, - width, (char *) 0, 0); - } - } - XDrawSegments(disp, st->win, gc, segs, ns); -} - - -#define LAST_CHECK - -void -dot_X(user_state, x, y, style, type, color) -char *user_state; /* Value set in xg_init */ -int x, - y; /* Location in pixel units */ -int style; /* Dot style */ -int type; /* Type of marker */ -int color; /* Marker color (if any) */ - -/* - * This routine should draw a marker at location `x,y'. If the - * style is P_PIXEL, the dot should be a single pixel. If - * the style is P_DOT, the dot should be a reasonably large - * dot. If the style is P_MARK, it should be a distinguished - * mark which is specified by `type' (0-7). If the output - * device is capable of color, the marker should be drawn in - * `color' (0-7) which corresponds with the color for xg_line. - */ -{ - struct x_state *st = (struct x_state *) user_state; - - switch (style) { - case P_PIXEL: - XDrawPoint(disp, st->win, - dotGC(st->win, AllAttrs[color].pixelValue, (Pixmap) 0, 0, 0), - x, y); - break; - case P_DOT: - XFillRectangle(disp, st->win, - dotGC(st->win, AllAttrs[color].pixelValue, dotMap, - (int) (x - (dot_w >> 1)), - (int) (y - (dot_h >> 1))), - (int) (x - (dot_w >> 1)), (int) (y - (dot_h >> 1)), - dot_w, dot_h); - break; - case P_MARK: - XFillRectangle(disp, st->win, - dotGC(st->win, AllAttrs[color].pixelValue, - AllAttrs[type].markStyle, - (int) (x - mark_cx), - (int) (y - mark_cy)), - (int) (x - mark_cx), (int) (y - mark_cy), - mark_w, mark_h); - break; - } -} diff --git a/xgraph/xgout.h b/xgraph/xgout.h deleted file mode 100644 index 4e6a31d61..000000000 --- a/xgraph/xgout.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Output Device Information - * - * This file contains definitions for output device interfaces - * to the graphing program xgraph. - */ -#ifndef _h_xgout -#define _h_xgout -/* Passed device option flags */ -#define D_DOCU 0x01 - -/* Returned device capability flags */ -#define D_COLOR 0x01 - -/* Text justifications */ -#define T_CENTER 0 -#define T_LEFT 1 -#define T_UPPERLEFT 2 -#define T_TOP 3 -#define T_UPPERRIGHT 4 -#define T_RIGHT 5 -#define T_LOWERRIGHT 6 -#define T_BOTTOM 7 -#define T_LOWERLEFT 8 - -/* Text styles */ -#define T_AXIS 0 -#define T_TITLE 1 - -/* Line Styles */ -#define L_AXIS 0 -#define L_ZERO 1 -#define L_VAR 2 - -/* Marker Styles */ -#define P_PIXEL 0 -#define P_DOT 1 -#define P_MARK 2 - -/* Output device information returned by initialization routine */ - -typedef struct xg_out { - int dev_flags; /* Device characteristic flags */ - int area_w, - area_h; /* Width and height in pixels */ - int bdr_pad; /* Padding from border */ - int axis_pad; /* Extra space around axis labels */ - int tick_len; /* Length of tick mark on axis */ - int legend_pad; /* Top of legend text to legend line */ - int axis_width; /* Width of big character of axis font */ - int axis_height; /* Height of big character of axis font */ - int title_width; /* Width of big character of title font */ - int title_height; /* Height of big character of title font */ - int max_segs; /* Maximum number of segments in group */ - - void (*xg_text) (); /* Draws text at a location */ - void (*xg_seg) (); /* Draws a series of segments */ - void (*xg_dot) (); /* Draws a dot or marker at a location */ - void (*xg_end) (); /* Stops the drawing sequence */ - - char *user_state; /* User supplied data */ -} xgOut; - -#define ERRBUFSIZE 2048 -#endif /* _h_xgout */ diff --git a/xgraph/xgraph.c b/xgraph/xgraph.c deleted file mode 100644 index 296fdc79e..000000000 --- a/xgraph/xgraph.c +++ /dev/null @@ -1,1282 +0,0 @@ -/* $Header$ */ -/* - * xgraph - A Simple Plotter for X - * - * David Harrison - * University of California, Berkeley - * 1986, 1987, 1988, 1989 - * - * Please see copyright.h concerning the formal reproduction rights - * of this software. - * - * $Log$ - * Revision 1.2 2011-04-27 18:30:17 rlar - * code cleanup - * - * Revision 1.1 2004/01/25 09:00:49 pnenzi - * - * Added xgraph plotting program. - * - * Revision 1.3 1999/12/19 00:52:07 heideman - * warning suppresion, slightly different flot ahndling - * - * Revision 1.2 1999/12/03 23:17:46 heideman - * apply xgraph_no_animation.patch - * - * Revision 1.1.1.1 1999/12/03 23:15:52 heideman - * xgraph-12.0 - * - */ -#ifndef lint -static char rcsid[] = "$Id$"; -#endif - -#include "copyright.h" -#include -#include -#include -#include -#include "xgraph.h" -#include "xtb.h" -#include "hard_devices.h" -#include "params.h" - - -extern void init_X(); -extern void do_error(); - -#ifdef DO_DER -extern void Bounds(); -#endif /* DO_DER */ - -static char *tildeExpand(); -static void ReverseIt(); -static void Traverse(); -static int XErrHandler(); - - -NewDataSet PlotData[MAXSETS], - DataD1[MAXSETS], - DataD2[MAXSETS]; - -XSegment *Xsegs[2]; /* Point space for X */ - -/* Basic transformation stuff */ -double llx, - lly, - urx, - ury; /* Bounding box of all data */ - -static XContext win_context = (XContext) 0; - -/* Other globally set defaults */ - -Display *disp; /* Open display */ -Visual *vis; /* Standard visual */ -Colormap cmap; /* Standard colormap */ -int screen; /* Screen number */ -int depth; /* Depth of screen */ - -int numFiles = 0; /* Number of input files */ -char *inFileNames[MAXSETS]; /* File names */ - -/* Total number of active windows */ -int Num_Windows = 0; -char *Prog_Name; -char *disp_name; - - - -main(argc, argv) -int argc; -char *argv[]; - -/* - * This sets up the hard-wired defaults and reads the X defaults. - * The command line format is: xgraph [host:display]. - */ -{ - Window primary, - NewWindow(); - XEvent theEvent; - LocalWin *win_info; - Cursor zoomCursor; - FILE *strm; - XColor fg_color, - bg_color; - char keys[MAXKEYS]; - int nbytes, - idx, - maxitems = 0, - flags; - int errs = 0; - - /* Open up new display */ - Prog_Name = argv[0]; - disp_name = ""; - - /* Parse the argument list looking for input files */ - flags = ParseArgs(argc, argv, 0); - - if (flags == D_XWINDOWS) { - disp = XOpenDisplay(disp_name); - if (!disp) { - (void) fprintf(stderr, - "%s: cannot open display `%s'\n", - argv[0], disp_name); - exit(1); - } - XSetErrorHandler(XErrHandler); - } - - /* Set up hard-wired defaults and allocate spaces */ - InitSets(flags); - - /* Read X defaults and override hard-coded defaults */ - if (PM_INT("Output Device") == D_XWINDOWS) - ReadDefaults(); - - - /* Read the data into the data sets */ - llx = lly = MAXFLOAT; - urx = ury = -MAXFLOAT; - for (idx = 0; idx < numFiles; idx++) { - strm = fopen(inFileNames[idx], "r"); - if (!strm) { - (void) fprintf(stderr, "Warning: cannot open file `%s'\n", - inFileNames[idx]); - } - else { - if ((maxitems = ReadData(strm, inFileNames[idx])) < 0) { - errs++; - } - (void) fclose(strm); - } - } - if (!numFiles) { - if ((maxitems = ReadData(stdin, (char *) 0)) < 0) { - errs++; - } - } - if (errs) { - (void) fprintf(stderr, "Problems found with input data.\n"); - exit(1); - } - - /* Parse the argument list to set options */ - (void) ParseArgs(argc, argv, 1); - if (PM_BOOL("Animate")) param_set("TitleText",STR,"Animated X Graph"); - - if (maxitems == 0) { - (void) fprintf(stderr, "Nothing to plot.\n"); - exit(1); - } - - Xsegs[0] = (XSegment *) Malloc((unsigned) (maxitems * sizeof(XSegment))); - Xsegs[1] = (XSegment *) Malloc((unsigned) (maxitems * sizeof(XSegment))); - - /* Reverse Video Hack */ - if (PM_BOOL("ReverseVideo")) - ReverseIt(); - hard_init(); - if (PM_BOOL("Debug")) { - if (PM_INT("Output Device") == D_XWINDOWS) - (void) XSynchronize(disp, 1); - param_dump(); - } - - /* Logarithmic and bounding box computation */ - flags = 0; - if (PM_BOOL("LogX")) - flags |= LOG_X; - if (PM_BOOL("LogY")) - flags |= LOG_Y; - if (PM_BOOL("StackGraph")) - flags |= STK; - if (PM_BOOL("FitX")) - flags |= FITX; - if (PM_BOOL("FitY")) - flags |= FITY; - Traverse(flags); - - /* Nasty hack here for bar graphs */ - if (PM_BOOL("BarGraph")) { - double base; - - llx -= PM_DBL("BarWidth"); - urx += PM_DBL("BarWidth"); - base = PM_DBL("BarBase"); - if (base < lly) - lly = base; - if (base > ury) - ury = base; - } - - /* Create initial window */ - if (PM_INT("Output Device") == D_XWINDOWS) { - double asp; - - asp = 1.0; - xtb_init(disp, screen, PM_PIXEL("Foreground"), PM_PIXEL("Background"), - PM_FONT("LabelFont")); - - primary = NewWindow(Prog_Name, - PM_DBL("XLowLimit"), PM_DBL("YLowLimit"), - PM_DBL("XHighLimit"), PM_DBL("YHighLimit"), - asp,0); - if (!primary) { - (void) fprintf(stderr, "Main window would not open\n"); - exit(1); - } - - zoomCursor = XCreateFontCursor(disp, XC_sizing); - fg_color = PM_COLOR("Foreground"); - bg_color = PM_COLOR("Background"); - XRecolorCursor(disp, zoomCursor, &fg_color, &bg_color); - - Num_Windows = 1; - while (Num_Windows > 0) { - XNextEvent(disp, &theEvent); - if (xtb_dispatch(&theEvent) != XTB_NOTDEF) - continue; - if (XFindContext(theEvent.xany.display, - theEvent.xany.window, - win_context, (caddr_t *) & win_info)) { - /* Nothing found */ - continue; - } - switch (theEvent.type) { - case Expose: - if (theEvent.xexpose.count <= 0) { - XWindowAttributes win_attr; - - XGetWindowAttributes(disp, theEvent.xany.window, &win_attr); - win_info->dev_info.area_w = win_attr.width; - win_info->dev_info.area_h = win_attr.height; - init_X(win_info->dev_info.user_state); - EraseData(win_info); - DrawWindow(win_info); - } - break; - case KeyPress: - nbytes = XLookupString(&theEvent.xkey, keys, MAXKEYS, - (KeySym *) 0, (XComposeStatus *) 0); - for (idx = 0; idx < nbytes; idx++) { - if (keys[idx] == CONTROL_D) { - /* Delete this window */ - DelWindow(theEvent.xkey.window, win_info); - } - else if (keys[idx] == CONTROL_C) { - /* Exit program */ - Num_Windows = 0; - } - else if (keys[idx] == 'h') { - PrintWindow(theEvent.xany.window, win_info); - } - } - break; - case ButtonPress: - /* Handle creating a new window */ - Num_Windows += HandleZoom(Prog_Name, - &theEvent.xbutton, - win_info, zoomCursor); - break; - default: - (void) fprintf(stderr, "Unknown event type: %x\n", - theEvent.type); - break; - } - } - } - else { - int Device = PM_INT("Output Device"); - int dflag = strcmp(PM_STR("Disposition"), "To Device") == 0; - - primary = NewWindow(Prog_Name, - PM_DBL("XLowLimit"), PM_DBL("YLowLimit"), - PM_DBL("XHighLimit"), PM_DBL("YHighLimit"), - 1.0,0); - do_hardcopy(Prog_Name, primary, - hard_devices[Device].dev_init, - dflag ? hard_devices[Device].dev_spec : 0, - PM_STR("FileOrDev"), (double) 19, - hard_devices[Device].dev_title_font, - hard_devices[Device].dev_title_size, - hard_devices[Device].dev_axis_font, - hard_devices[Device].dev_axis_size, - PM_BOOL("Document") * D_DOCU); - } - return 0; -} - - -#define BLACK_THRES 30000 - -static void -ReversePix(param_name) -char *param_name; /* Name of color parameter */ - -/* - * Looks up `param_name' in the parameters database. If found, the - * color is examined and judged to be either black or white based - * upon its red, green, and blue intensities. The sense of the - * color is then reversed and reset to its opposite. - */ -{ - params val; - - if (param_get(param_name, &val)) { - if ((val.pixv.value.red < BLACK_THRES) && - (val.pixv.value.green < BLACK_THRES) && - (val.pixv.value.blue < BLACK_THRES)) { - /* Color is black */ - param_reset(param_name, "white"); - } - else { - /* Color is white */ - param_reset(param_name, "black"); - } - } - else { - (void) fprintf(stderr, "Cannot reverse color `%s'\n", param_name); - } -} - -static void -ReverseIt() -/* - * This routine attempts to implement reverse video. It steps through - * all of the important colors in the parameters database and makes - * black white (and vice versa). - */ -{ - int i; - char buf[1024]; - - for (i = 0; i < MAXATTR; i++) { - (void) sprintf(buf, "%d.Color", i); - ReversePix(buf); - } - ReversePix("Foreground"); - ReversePix("Border"); - ReversePix("ZeroColor"); - ReversePix("Background"); -} - - -static void -Traverse(flags) -int flags; /* Options */ - -/* - * Traverses through all of the data applying certain options to the - * data and computing the overall bounding box. The flags are: - * LOG_X Take the log of the X axis - * LOG_Y Take the log of the Y axis - * STK Stack coordinates. - * FITX Fit x-coordinates from zero to one - * FITY Fit y-coordinates from zero to one - */ -{ - int i, - j; - PointList *spot; - PointList *pspot; - - static char *paramstr[] = - { - "Cannot plot negative %s values\n", - "when the logarithmic option is selected.\n", - "Number of points in %d and %d don't match for stacking.\n", - "Point %d in %d and %d doesn't match for stacking.\n", - "Set %d has 0 %s.\n" - }; - - if (flags & (FITX|FITY)) - for (i = 0; i < MAXSETS; i++) - for (spot = PlotData[i].list; spot; spot = spot->next) { - float minx, maxx, miny, maxy; - minx = maxx = spot->xvec[0]; - maxy = miny = spot->yvec[0]; - for (j = 1; j < spot->numPoints; j++) { - minx = MIN(minx, spot->xvec[j]); - miny = MIN(miny, spot->yvec[j]); - maxx = MAX(maxx, spot->xvec[j]); - maxy = MAX(maxy, spot->yvec[j]); - } - maxx = maxx - minx; - maxy = maxy - miny; - if (maxx == 0.0) { - (void) fprintf(stderr, paramstr[3], i, "width"); - maxx = 1.0; - } - if (maxy == 0.0) { - (void) fprintf(stderr, paramstr[3], i, "height"); - maxy = 1.0; - } - switch (flags & (FITX|FITY)) { - case FITX: - for (j = 0; j < spot->numPoints; j++) - spot->xvec[j] = (-minx + spot->xvec[j]) / maxx; - break; - case FITY: - for (j = 0; j < spot->numPoints; j++) - spot->yvec[j] = (-miny + spot->yvec[j]) / maxy; - break; - case FITX|FITY: - for (j = 0; j < spot->numPoints; j++) { - spot->xvec[j] = (-minx + spot->xvec[j]) / maxx; - spot->yvec[j] = (-miny + spot->yvec[j]) / maxy; - } - break; - default: - abort(); - } - } - - if (flags & STK) - for (i = 1; i < MAXSETS; i++) { - for (spot = PlotData[i].list, pspot = PlotData[i - 1].list; - spot && pspot; spot = spot->next, pspot = pspot->next) { - if (spot->numPoints != pspot->numPoints) { - (void) fprintf(stderr, paramstr[2], i - 1, i); - exit(1); - } - for (j = 0; j < spot->numPoints; j++) { - if (spot->xvec[j] != pspot->xvec[j]) { - (void) fprintf(stderr, paramstr[3], j, i - 1, i); - exit(1); - } - spot->yvec[j] += pspot->yvec[j]; - } - } - } - - - for (i = 0; i < MAXSETS; i++) { - for (spot = PlotData[i].list; spot; spot = spot->next) { - for (j = 0; j < spot->numPoints; j++) { - if (flags & LOG_Y) { - if (spot->yvec[j] > 0.0) { - spot->yvec[j] = log10(spot->yvec[j]); - } - else if (spot->yvec[j] == 0) - spot->yvec[j] = 0.0; - else { - (void) fprintf(stderr, paramstr[0], "Y"); - (void) fprintf(stderr, paramstr[1]); - exit(1); - } - } - if (flags & LOG_X) { - if (spot->xvec[j] > 0.0) { - spot->xvec[j] = log10(spot->xvec[j]); - } - else if (spot->xvec[j] == 0) - spot->xvec[j] = 0.0; - else { - (void) fprintf(stderr, paramstr[0], "X"); - (void) fprintf(stderr, paramstr[1]); - exit(1); - } - } - /* Update global bounding box */ - if (spot->xvec[j] < llx) - llx = spot->xvec[j]; - if (spot->xvec[j] > urx) - urx = spot->xvec[j]; - if (spot->yvec[j] < lly) - lly = spot->yvec[j]; - if (spot->yvec[j] > ury) - ury = spot->yvec[j]; - } - } - } -} - - - -/* - * Button handling functions - */ - -/*ARGSUSED*/ -xtb_hret -del_func(win, bval, info) -Window win; /* Button window */ -int bval; /* Button value */ -char *info; /* User information */ - -/* - * This routine is called when the `Close' button is pressed in - * an xgraph window. It causes the window to go away. - */ -{ - Window the_win = (Window) info; - LocalWin *win_info; - - xtb_bt_set(win, 1, (char *) 0, 0); - if (!XFindContext(disp, the_win, win_context, (caddr_t *) & win_info)) { - if (win_info->flags & HARDCOPY_IN_PROGRESS) { - do_error("Can't close window while\nhardcopy dialog is posted.\n"); - xtb_bt_set(win, 0, (char *) 0, 0); - } - else { - DelWindow(the_win, win_info); - } - } - return XTB_HANDLED; -} - -/*ARGSUSED*/ -xtb_hret -hcpy_func(win, bval, info) -Window win; /* Button Window */ -int bval; /* Button value */ -char *info; /* User Information */ - -/* - * This routine is called when the hardcopy button is pressed - * in an xgraph window. It causes the output dialog to be - * posted. - */ -{ - Window the_win = (Window) info; - LocalWin *win_info; - - xtb_bt_set(win, 1, (char *) 0, 0); - if (!XFindContext(disp, the_win, win_context, (caddr_t *) & win_info)) { - win_info->flags |= HARDCOPY_IN_PROGRESS; - PrintWindow(the_win, win_info); - win_info->flags &= (~HARDCOPY_IN_PROGRESS); - } - xtb_bt_set(win, 0, (char *) 0, 0); - return XTB_HANDLED; -} - -static -/*ARGSUSED*/ - xtb_hret -abt_func(win, bval, info) -Window win; /* Button window */ -int bval; /* Button value */ -char *info; /* User information */ -{ - static char *msg_fmt = - "Version %s\n\ -XGraph + Animation and Derivatives\n\ -Modification of code by David Harrison\n\ -University of California, Berkeley\n\ -(davidh@ic.Berkeley.EDU or \n\ -...!ucbvax!ucbic!davidh)\n\ -Animation, differentiation, and a few other\n\ -new features added by Paul Walker,\n\ -National Center for Supercomputer Applications\n\ -and Univ. Illinois at U-C Dept of Physics.\n\ -Send comments or suggestions to\n\ -pwalker@ncsa.uiuc.edu\n"; - static int active = 0; - char msg_buf[1024]; - - if (!active) { - active = 1; - xtb_bt_set(win, 1, (char *) 0, 0); - (void) sprintf(msg_buf, msg_fmt, VERSION_STRING); - msg_box("XGraph", msg_buf); - xtb_bt_set(win, 0, (char *) 0, 0); - active = 0; - } - return XTB_HANDLED; -} - - -#ifdef DO_DER -static -/*ARGSUSED PW*/ - xtb_hret -rew_func(win, bval, info) -Window win; /* Button window */ -int bval; /* Button value */ -char *info; /* User information */ -{ - /* This routine added, Paul Walker, to rewind the animation and start - it over. The only even moderatly tricky part is erasing the last - item, which still lives, and redrawing the axis. I do it by just - copying the "Expose" information from the main routine. */ - Window the_win = (Window) info; - LocalWin *win_info; - - /* Set animation to True */ - param_set("Animate",BOOL,"on"); - - if (!XFindContext(disp, the_win, win_context, (caddr_t *) & win_info)) { - XWindowAttributes win_attr; - - XGetWindowAttributes(disp, the_win, &win_attr); - win_info->dev_info.area_w = win_attr.width; - win_info->dev_info.area_h = win_attr.height; - init_X(win_info->dev_info.user_state); - EraseData (win_info); - DrawWindow(win_info); - } - - return XTB_HANDLED; -} - -static -/*ARGSUSED PW*/ - xtb_hret -der_func(win, bval, info) -Window win; /* Button window */ -int bval; /* Button value */ -char *info; /* User information */ -{ - /* This routine added, Paul Walker, to rewind the animation and start - it over. The only even moderatly tricky part is erasing the last - item, which still lives, and redrawing the axis. I do it by just - copying the "Expose" information from the main routine. */ - Window the_win = (Window) info; - Window new_win; - LocalWin *win_info; - double loX,loY,hiX,hiY,asp; - static char *msg_fmt = - "Version %s\n\ -Currently unable to display\n\ -or calculate derivatives\n\ -higher than 2nd order\n"; - static int active = 0; - char msg_buf[1024]; - - XFindContext(disp, the_win, win_context, (caddr_t *) & win_info); - if (win_info->DOrder == 2) { - - if (!active) { - active = 1; - xtb_bt_set(win, 1, (char *) 0, 0); - (void) sprintf(msg_buf, msg_fmt, VERSION_STRING); - msg_box("XGraph", msg_buf); - xtb_bt_set(win, 0, (char *) 0, 0); - active = 0; - } - return XTB_HANDLED; - } - Num_Windows += 1; - asp = 1.0; - Bounds(&loX,&loY,&hiX,&hiY,win_info->DOrder+1); - new_win = NewWindow("Derivatives", loX, loY, hiX, hiY, asp, - win_info->DOrder+1); - - if (!XFindContext(disp, new_win, win_context, (caddr_t *) & win_info)) { - XWindowAttributes win_attr; - - XGetWindowAttributes(disp, new_win, &win_attr); - win_info->dev_info.area_w = win_attr.width; - win_info->dev_info.area_h = win_attr.height; - init_X(win_info->dev_info.user_state); - EraseData (win_info); - DrawWindow(win_info); - } - - return XTB_HANDLED; -} - - -static -/*ARGSUSED PW*/ - xtb_hret -rpl_func(win, bval, info) -Window win; /* Button window */ -int bval; /* Button value */ -char *info; /* User information */ -{ - /* Puts us back into static mode ... */ - Window the_win = (Window) info; - LocalWin *win_info; - - /* Set animation to True */ - param_set("Animate",BOOL,"off"); - - if (!XFindContext(disp, the_win, win_context, (caddr_t *) & win_info)) { - XWindowAttributes win_attr; - - XGetWindowAttributes(disp, the_win, &win_attr); - win_info->dev_info.area_w = win_attr.width; - win_info->dev_info.area_h = win_attr.height; - init_X(win_info->dev_info.user_state); - EraseData (win_info); - DrawWindow(win_info); - } - - return XTB_HANDLED; -} -/* End change PW */ - -#endif /* DO_DER */ - -#define NORMSIZE 600 -#define MINDIM 100 - -Window -NewWindow(progname, lowX, lowY, upX, upY, asp, DO) -char *progname; /* Name of program */ -double lowX, - lowY; /* Lower left corner */ -double upX, - upY; /* Upper right corner */ -double asp; /* Aspect ratio */ -int DO; /* Derivative Order. */ - -/* - * Creates and maps a new window. This includes allocating its - * local structure and associating it with the XId for the window. - * The aspect ratio is specified as the ratio of width over height. - */ -{ - Window new_window; - LocalWin *new_info; - static Cursor theCursor = (Cursor) 0; - XSizeHints sizehints; - XSetWindowAttributes wattr; - XWMHints wmhints; - XColor fg_color, - bg_color; - int geo_mask; - int width, - height; - unsigned long wamask; - char defSpec[120]; - double pad; - - new_info = (LocalWin *) Malloc(sizeof(LocalWin)); - new_info->DOrder = DO; - - if (upX > lowX) { - new_info->loX = lowX; - new_info->hiX = upX; - } - else { - new_info->loX = llx; - new_info->hiX = urx; - } - if (upY > lowY) { - new_info->loY = lowY; - new_info->hiY = upY; - } - else { - new_info->loY = lly; - new_info->hiY = ury; - } - - /* Increase the padding for aesthetics */ - if (new_info->hiX - new_info->loX == 0.0) { - pad = MAX(0.5, fabs(new_info->hiX / 2.0)); - new_info->hiX += pad; - new_info->loX -= pad; - } - if (new_info->hiY - new_info->loY == 0) { - pad = MAX(0.5, fabs(ury / 2.0)); - new_info->hiY += pad; - new_info->loY -= pad; - } - - /* Add 10% padding to bounding box (div by 20 yeilds 5%) */ - pad = (new_info->hiX - new_info->loX) / 20.0; - new_info->loX -= pad; - new_info->hiX += pad; - pad = (new_info->hiY - new_info->loY) / 20.0; - new_info->loY -= pad; - new_info->hiY += pad; - - /* Aspect ratio computation */ - if (asp < 1.0) { - height = NORMSIZE; - width = ((int) (((double) NORMSIZE) * asp)); - } - else { - width = NORMSIZE; - height = ((int) (((double) NORMSIZE) / asp)); - } - height = MAX(MINDIM, height); - width = MAX(MINDIM, width); - if (PM_INT("Output Device") == D_XWINDOWS) { - (void) sprintf(defSpec, "%dx%d+100+100", width, height); - - wamask = CWBackPixel | CWBorderPixel | CWColormap; - wattr.background_pixel = PM_PIXEL("Background"); - wattr.border_pixel = PM_PIXEL("Border"); - wattr.colormap = cmap; - - sizehints.flags = PPosition | PSize; - sizehints.x = sizehints.y = 100; - sizehints.width = width; - sizehints.height = height; - - geo_mask = XParseGeometry(PM_STR("Geometry"), - &sizehints.x, &sizehints.y, - (unsigned int *) &sizehints.width, - (unsigned int *) &sizehints.height); - if (geo_mask & (XValue|YValue)) - sizehints.flags = (sizehints.flags & ~PPosition) | USPosition; - if (geo_mask & (WidthValue | HeightValue)) - sizehints.flags = (sizehints.flags & ~PSize) | USSize; - - new_window = XCreateWindow(disp, RootWindow(disp, screen), - sizehints.x, sizehints.y, - (unsigned int) sizehints.width, - (unsigned int) sizehints.height, - (unsigned int) PM_INT("BorderSize"), - depth, InputOutput, vis, - wamask, &wattr); - - - if (new_window) { - xtb_frame cl_frame, - hd_frame, - ab_frame, - rw_frame, - rp_frame, - dx_frame; - - XStoreName(disp, new_window, progname); - XSetIconName(disp, new_window, progname); - - wmhints.flags = InputHint | StateHint; - wmhints.input = True; - wmhints.initial_state = NormalState; - XSetWMHints(disp, new_window, &wmhints); - - XSetWMNormalHints(disp, new_window, &sizehints); - - /* Set device info */ - set_X(new_window, &(new_info->dev_info)); - - if (!PM_BOOL("NoButton")) { - /* Make buttons */ - xtb_bt_new(new_window, "Close", del_func, - (xtb_data) new_window, &cl_frame); - new_info->close = cl_frame.win; - XMoveWindow(disp, new_info->close, (int) BTNPAD, (int) BTNPAD); - xtb_bt_new(new_window, "Hdcpy", hcpy_func, - (xtb_data) new_window, &hd_frame); - new_info->hardcopy = hd_frame.win; - XMoveWindow(disp, new_info->hardcopy, - (int) (BTNPAD + cl_frame.width + BTNINTER), - BTNPAD); - xtb_bt_new(new_window, "About", abt_func, - (xtb_data) new_window, &ab_frame); - new_info->about = ab_frame.win; - XMoveWindow(disp, new_info->about, - (int) (BTNPAD + cl_frame.width + BTNINTER + - hd_frame.width + BTNINTER), BTNPAD); -#ifdef DO_DER - /* These buttons added PW */ - xtb_bt_new(new_window, "Anim", rew_func, - (xtb_data) new_window, &rw_frame); - new_info->rewind = rw_frame.win; - XMoveWindow(disp, new_info->rewind, - (int) (BTNPAD + cl_frame.width + BTNINTER + - hd_frame.width + BTNINTER + - ab_frame.width + BTNINTER), BTNPAD); - xtb_bt_new(new_window, "Replot", rpl_func, - (xtb_data) new_window, &rp_frame); - new_info->replot = rp_frame.win; - XMoveWindow(disp, new_info->replot, - (int) (BTNPAD + cl_frame.width + BTNINTER + - hd_frame.width + BTNINTER + - ab_frame.width + BTNINTER + - rw_frame.width + BTNINTER), BTNPAD); - xtb_bt_new(new_window, "Deriv", der_func, - (xtb_data) new_window, &dx_frame); - new_info->deriv = dx_frame.win; - XMoveWindow(disp, new_info->deriv, - (int) (BTNPAD + cl_frame.width + BTNINTER + - hd_frame.width + BTNINTER + - ab_frame.width + BTNINTER + - rw_frame.width + BTNINTER + - rp_frame.width + BTNINTER), BTNPAD); -#endif /* DO_DER */ - - new_info->flags = 0; - } - XSelectInput(disp, new_window, - ExposureMask | KeyPressMask | ButtonPressMask); - if (!theCursor) { - theCursor = XCreateFontCursor(disp, XC_top_left_arrow); - fg_color = PM_COLOR("Foreground"); - bg_color = PM_COLOR("Background"); - XRecolorCursor(disp, theCursor, &fg_color, &bg_color); - } - XDefineCursor(disp, new_window, theCursor); - if (!win_context) { - win_context = XUniqueContext(); - } - XSaveContext(disp, new_window, win_context, (caddr_t) new_info); - XMapWindow(disp, new_window); - return new_window; - } - else { - return (Window) 0; - } - } - else { - new_info->dev_info.area_h = 1.0; - new_info->dev_info.area_w = 1.0; - return ((Window) new_info); - } -} - - -DelWindow(win, win_info) -Window win; /* Window */ -LocalWin *win_info; /* Local Info */ - -/* - * This routine actually deletes the specified window and - * decrements the window count. - */ -{ - xtb_data info; - - XDeleteContext(disp, win, win_context); - xtb_bt_del(win_info->close, &info); - xtb_bt_del(win_info->hardcopy, &info); - xtb_bt_del(win_info->about, &info); - Free((char *) win_info); - XDestroyWindow(disp, win); - Num_Windows -= 1; -} - -PrintWindow(win, win_info) -Window win; /* Window */ -LocalWin *win_info; /* Local Info */ - -/* - * This routine posts a dialog asking about the hardcopy - * options desired. If the user hits `OK', the hard - * copy is performed. - */ -{ - ho_dialog(win, Prog_Name, (char *) win_info); -} - - -static XRectangle boxEcho; -static GC echoGC = (GC) 0; - -#define DRAWBOX \ -if (startX < curX) { \ - boxEcho.x = startX; \ - boxEcho.width = curX - startX; \ -} else { \ - boxEcho.x = curX; \ - boxEcho.width = startX - curX; \ -} \ -if (startY < curY) { \ - boxEcho.y = startY; \ - boxEcho.height = curY - startY; \ -} else { \ - boxEcho.y = curY; \ - boxEcho.height = startY - curY; \ -} \ -XDrawRectangles(disp, win, echoGC, &boxEcho, 1); - -#define TRANX(xval) \ -(((double) ((xval) - wi->XOrgX)) * wi->XUnitsPerPixel + wi->UsrOrgX) - -#define TRANY(yval) \ -(wi->UsrOppY - (((double) ((yval) - wi->XOrgY)) * wi->YUnitsPerPixel)) - - -int -HandleZoom(progname, evt, wi, cur) -char *progname; -XButtonPressedEvent *evt; -LocalWin *wi; -Cursor cur; -{ - Window win, - new_win; - Window root_rtn, - child_rtn; - XEvent theEvent; - int startX, - startY, - curX, - curY, - newX, - newY, - stopFlag, - numwin = 0; - int root_x, - root_y; - unsigned int mask_rtn; - double loX, - loY, - hiX, - hiY, - asp; - - win = evt->window; - if (XGrabPointer(disp, win, True, - (unsigned int) (ButtonPressMask | ButtonReleaseMask | - PointerMotionMask | PointerMotionHintMask), - GrabModeAsync, GrabModeAsync, - win, cur, CurrentTime) != GrabSuccess) { - XBell(disp, 0); - return 0; - } - if (echoGC == (GC) 0) { - unsigned long gcmask; - XGCValues gcvals; - - gcmask = GCForeground | GCFunction; - gcvals.foreground = PM_PIXEL("ZeroColor") ^ PM_PIXEL("Background"); - gcvals.function = GXxor; - echoGC = XCreateGC(disp, win, gcmask, &gcvals); - } - startX = evt->x; - startY = evt->y; - XQueryPointer(disp, win, &root_rtn, &child_rtn, &root_x, &root_y, - &curX, &curY, &mask_rtn); - /* Draw first box */ - DRAWBOX; - stopFlag = 0; - while (!stopFlag) { - XNextEvent(disp, &theEvent); - switch (theEvent.xany.type) { - case MotionNotify: - XQueryPointer(disp, win, &root_rtn, &child_rtn, &root_x, &root_y, - &newX, &newY, &mask_rtn); - /* Undraw the old one */ - DRAWBOX; - /* Draw the new one */ - curX = newX; - curY = newY; - DRAWBOX; - break; - case ButtonRelease: - DRAWBOX; - XUngrabPointer(disp, CurrentTime); - stopFlag = 1; - if ((startX - curX != 0) && (startY - curY != 0)) { - /* Figure out relative bounding box */ - loX = TRANX(startX); - loY = TRANY(startY); - hiX = TRANX(curX); - hiY = TRANY(curY); - if (loX > hiX) { - double temp; - - temp = hiX; - hiX = loX; - loX = temp; - } - if (loY > hiY) { - double temp; - - temp = hiY; - hiY = loY; - loY = temp; - } - /* physical aspect ratio */ - asp = ((double) ABS(startX - curX)) / - ((double) ABS(startY - curY)); - new_win = NewWindow(progname, loX, loY, hiX, hiY, asp, - wi->DOrder); - if (new_win) { - numwin = 1; - } - else { - numwin = 0; - } - } - else { - numwin = 0; - } - break; - default: - printf("unknown event: %d\n", theEvent.xany.type); - break; - } - } - return numwin; -} - - -#define RND(val) ((int) ((val) + 0.5)) - -/*ARGSUSED*/ -void -do_hardcopy(prog, info, init_fun, dev_spec, file_or_dev, maxdim, - ti_fam, ti_size, ax_fam, ax_size, doc_p) -char *prog; /* Program name for Xdefaults */ -char *info; /* Some state information */ -int (*init_fun) (); /* Hardcopy init function */ -char *dev_spec; /* Device specification (if any) */ -char *file_or_dev; /* Filename or device spec */ -double maxdim; /* Maximum dimension in cm */ -char *ti_fam, - *ax_fam; /* Font family names */ -double ti_size, - ax_size; /* Font sizes in points */ -int doc_p; /* Documentation predicate */ - -/* - * This routine resets the function pointers to those specified - * by `init_fun' and causes a screen redisplay. If `dev_spec' - * is non-zero, it will be considered a sprintf string with - * one %s which will be filled in with `file_or_dev' and fed - * to popen(3) to obtain a stream. Otherwise, `file_or_dev' - * is considered to be a file and is opened for writing. The - * resulting stream is fed to the initialization routine for - * the device. - */ -{ - LocalWin *curWin = (LocalWin *) info; - LocalWin thisWin; - FILE *out_stream; - char buf[MAXBUFSIZE], - err[MAXBUFSIZE], - ierr[ERRBUFSIZE]; - char tilde[MAXBUFSIZE * 10]; - int final_w, - final_h, - flags; - double ratio; - - if (dev_spec) { - (void) sprintf(buf, dev_spec, file_or_dev); - out_stream = popen(buf, "w"); - if (!out_stream) { - sprintf(err, "Unable to issue command:\n %s\n", buf); - do_error(err); - return; - } - } - else { - tildeExpand(tilde, file_or_dev); - out_stream = fopen(tilde, "w"); - if (!out_stream) { - sprintf(err, "Unable to open file `%s'\n", tilde); - do_error(err); - return; - } - } - if (curWin != (LocalWin *) 0) { - thisWin = *curWin; - ratio = ((double) thisWin.dev_info.area_w) / - ((double) thisWin.dev_info.area_h); - } - else - ratio = 1.0; - - if (thisWin.dev_info.area_w > thisWin.dev_info.area_h) { - final_w = RND(maxdim * 10000.0 * PM_DBL("Scale")); - final_h = RND(maxdim / ratio * 10000.0 * PM_DBL("Scale")); - } - else { - final_w = RND(maxdim * ratio * 10000.0 * PM_DBL("Scale")); - final_h = RND(maxdim * 10000.0 * PM_DBL("Scale")); - } - ierr[0] = '\0'; - flags = 0; - if (doc_p) - flags |= D_DOCU; - if (init_fun (out_stream, final_w, final_h, ti_fam, ti_size, - ax_fam, ax_size, flags, &(thisWin.dev_info), ierr)) { - DrawWindow(&thisWin); - if (thisWin.dev_info.xg_end) { - thisWin.dev_info.xg_end(thisWin.dev_info.user_state); - } - } - else { - do_error(ierr); - } - if (dev_spec) { - (void) pclose(out_stream); - } - else { - (void) fclose(out_stream); - } -} - - -static char * -tildeExpand(out, in) -char *out; /* Output space for expanded file name */ -char *in; /* Filename with tilde */ - -/* - * This routine expands out a file name passed in `in' and places - * the expanded version in `out'. It returns `out'. - */ -{ - char username[50], - *userPntr; - struct passwd *userRecord; - - out[0] = '\0'; - - /* Skip over the white space in the initial path */ - while ((*in == ' ') ||(*in == '\t')) - in ++; - - /* Tilde? */ - if (in[0] == TILDE) { - /* Copy user name into 'username' */ - in ++; - - userPntr = &(username[0]); - while ((*in !='\0') &&(*in !='/')) { - *(userPntr++) = *(in ++); - } - *(userPntr) = '\0'; - /* See if we have to fill in the user name ourselves */ - if (strlen(username) == 0) { - userRecord = getpwuid(getuid()); - } - else { - userRecord = getpwnam(username); - } - if (userRecord) { - /* Found user in passwd file. Concatenate user directory */ - strcat(out, userRecord->pw_dir); - } - } - - /* Concantenate remaining portion of file name */ - strcat(out, in); - return out; -} - - - -#define ERR_MSG_SIZE 2048 - -/*ARGSUSED*/ -static int -XErrHandler(disp_ptr, evt) -Display *disp_ptr; -XErrorEvent *evt; - -/* - * Displays a nicely formatted message and core dumps. - */ -{ - char err_buf[ERR_MSG_SIZE], - mesg[ERR_MSG_SIZE], - number[ERR_MSG_SIZE]; - char *mtype = "XlibMessage"; - - XGetErrorText(disp_ptr, evt->error_code, err_buf, ERR_MSG_SIZE); - (void) fprintf(stderr, "X Error: %s\n", err_buf); - XGetErrorDatabaseText(disp_ptr, mtype, "MajorCode", - "Request Major code %d", mesg, ERR_MSG_SIZE); - (void) fprintf(stderr, mesg, evt->request_code); - (void) sprintf(number, "%d", evt->request_code); - XGetErrorDatabaseText(disp_ptr, "XRequest", number, "", err_buf, - ERR_MSG_SIZE); - (void) fprintf(stderr, " (%s)\n", err_buf); - - abort(); -} diff --git a/xgraph/xgraph.h b/xgraph/xgraph.h deleted file mode 100644 index a2b42f6aa..000000000 --- a/xgraph/xgraph.h +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Globally accessible information from xgraph - */ - -#ifndef _XGRAPH_H_ -#define _XGRAPH_H_ - -#include "autoconf.h" - -#include -#include -#include -#include - -/* - * Get definitions from headers. - */ -#include /* sprintf */ - -#ifdef HAVE_STRING_H -#include /* str* */ -#else -#ifdef HAVE_STRINGS_H -#include /* str* */ -#else -extern char *strcpy(); -extern char *strcat(); -extern char *rindex(); -extern char *index(); -#endif /* HAVE_STRINGS_H */ -#endif /* HAVE_STRING_H */ - -#ifdef HAVE_UNISTD_H -#include /* exit, abort */ -#endif /* HAVE_UNISTD_H */ -#ifdef HAVE_STDLIB_H -#include /* atof */ -#endif /* HAVE_STDLIB_H */ - -#include "xgout.h" - -#define VERSION_STRING "12.1 December 1999 " - -#define MAXKEYS 50 -#define MAXATTR 8 -#define MAXSETS 112 -#define MAXBUFSIZE 120 -#define MAXLS 50 - -#define STRDUP(xx) (strcpy(Malloc((unsigned) (strlen(xx)+1)), (xx))) -#define SCREENX(ws, userX) \ - (((int) (((userX) - ws->UsrOrgX)/ws->XUnitsPerPixel + 0.5)) + ws->XOrgX) -#define SCREENY(ws, userY) \ - (ws->XOppY - ((int) (((userY) - ws->UsrOrgY)/ws->YUnitsPerPixel + 0.5))) -#define HARDCOPY_IN_PROGRESS 0x01 - -/* Portability */ -/* try to get those constants */ -#include -#ifdef HAVE_LIMITS_H -#include -#endif /* HAVE_LIMITS */ -#ifdef HAVE_FLOAT_H -#include -#endif /* HAVE_FLOAT_H */ - -#ifdef CRAY -#undef MAXFLOAT -#define MAXFLOAT 10.e300 -#endif /* CRAY */ - -#ifndef MAXFLOAT -#if defined(FLT_MAX) -#define MAXFLOAT FLT_MAX -#elif defined(HUGE) -#define MAXFLOAT HUGE -#endif -#endif - -#ifndef BIGINT -#if defined(INT_MAX) -#define BIGINT INT_MAX -#elif defined(MAXINT) -#define BIGINT MAXINT -#else -#define BIGINT 0xffffffff -#endif -#endif - -#define GRIDPOWER 10 -#define INITSIZE 128 - -#define CONTROL_D '\004' -#define CONTROL_C '\003' -#define TILDE '~' - -#define BTNPAD 1 -#define BTNINTER 3 - -#ifndef MAX -#define MAX(a,b) ((a) > (b) ? (a) : (b)) -#endif -#ifndef MIN -#define MIN(a,b) ((a) < (b) ? (a) : (b)) -#endif -#ifndef ABS -#define ABS(x) ((x) < 0 ? -(x) : (x)) -#endif -#define ZERO_THRES 1.0E-07 - -/* To get around an inaccurate log */ -#define nlog10(x) (x == 0.0 ? 0.0 : log10(x) + 1e-15) - -#define ISCOLOR (wi->dev_info.dev_flags & D_COLOR) - -#define PIXVALUE(set) ((set) % MAXATTR) - -#define LINESTYLE(set) \ -(ISCOLOR ? ((set)/MAXATTR) : ((set) % MAXATTR)) - -#define MARKSTYLE(set) \ -(colorMark ? COLMARK(set) : BWMARK(set)) - -#define COLMARK(set) \ -((set) / MAXATTR) - -#define BWMARK(set) \ -((set) % MAXATTR) - -#define LOG_X 0x01 -#define LOG_Y 0x02 -#define STK 0x04 -#define FITX 0x08 -#define FITY 0x10 -typedef unsigned long Pixel; - -/* Globally accessible values */ -extern Display *disp; /* Open display */ -extern Visual *vis; /* Standard visual */ -extern Colormap cmap; /* Standard colormap */ -extern int screen; /* Screen number */ -extern int depth; /* Depth of screen */ - -extern void do_hardcopy(); /* Carries out hardcopy */ -extern void ho_dialog(); /* Hardcopy dialog */ -extern void set_X(); /* Initializes X device */ - -typedef struct point_list { - int numPoints; /* Number of points in group */ - int allocSize; /* Allocated size */ - double *xvec; /* X values */ - double *yvec; /* Y values */ - struct point_list *next; /* Next set of points */ -} PointList; - -typedef struct new_data_set { - char *setName; /* Name of data set */ - PointList *list; /* List of point arrays */ -} NewDataSet; - -typedef struct local_win { - double loX, - loY, - hiX, - hiY; /* Local bounding box of window */ - int XOrgX, - XOrgY; /* Origin of bounding box on screen */ - int XOppX, - XOppY; /* Other point defining bounding box */ - double UsrOrgX, - UsrOrgY; /* Origin of bounding box in user space */ - double UsrOppX, - UsrOppY; /* Other point of bounding box */ - double XUnitsPerPixel; /* X Axis scale factor */ - double YUnitsPerPixel; /* Y Axis scale factor */ - struct xg_out dev_info; /* Device information */ - Window close, - hardcopy; /* Buttons for closing and hardcopy */ - Window about; /* Version information */ - Window rewind; /* PW Added this, for animation. */ - Window replot; /* PW Added this, for animation. */ - Window deriv; /* PW Added this, for animation. */ - int flags; /* Window flags */ - int DOrder; /* Which order of Derivative is being set? */ -} LocalWin; - -extern NewDataSet PlotData[MAXSETS], DataD1[MAXSETS], DataD2[MAXSETS]; -extern XSegment *Xsegs[2]; /* Point space for X */ -extern double llx, lly, urx, ury; /* Bounding box of all data */ -extern int numFiles; /* Number of input files */ -extern char *inFileNames[MAXSETS]; /* File names */ - -/* Total number of active windows */ -extern int Num_Windows; -extern char *Prog_Name; -extern char *disp_name; - -/* To make lint happy */ -extern char *Malloc(); -extern char *Realloc(); -extern void Free(); - -#ifndef _POSIX_SOURCE -/* extern int sprintf(); ---conflicts with sunos */ -extern void exit(); -extern double atof(); -extern void abort(); -#endif /* _POSIX_SOURCE */ - -#endif /* _XGRAPH_H_ */ diff --git a/xgraph/xgraph.man b/xgraph/xgraph.man deleted file mode 100644 index ce8735801..000000000 --- a/xgraph/xgraph.man +++ /dev/null @@ -1,389 +0,0 @@ -.TH XGRAPH 1 "December, 1989" -.SH NAME -xgraph \- Draw a graph on an X11 Display -.SH SYNOPSIS -.B xgraph -[ options ] [[-geometry |=]WxH+X+Y ] [ -display host:display.screen ] [ file ... ] -.SH DESCRIPTION -The -.I xgraph -program draws a graph on an X display given data read from either -data files or from standard input if no files are specified. -It can display up to 64 independent data sets using different colors -and/or line styles for each set. -It annotates the graph with a title, axis labels, grid lines or tick -marks, grid labels, -and a legend. -There are options to control the appearance of most components of -the graph. -.PP -The input format is similar to -.I graph(1G) -but differs slightly. -The data consists of a number of -.I "data sets." -Data sets are separated by a blank line. -A new data set is also -assumed at the start of each input file. -A data set consists of an ordered list of points of the form "{directive} X Y". -The directive is either "draw" or "move" and can be omitted. -If the directive is "draw", a line will be drawn between the previous -point and the current point (if a line graph is chosen). -Specifying a "move" directive tells xgraph not to draw a line between -the points. -If the directive is omitted, "draw" is assumed for all points in -a data set except the -first point where "move" is assumed. -The "move" directive is used most often to allow discontinuous data -in a data set. -The name of a data set can be specified by -enclosing the name in double quotes on a line by itself in the -body of the data set. The trailing double quote is optional. -Overall graphing options for the graph can be specified in data -files by writing lines of the form "