Home / plplot / 5.9.11 Source
Name Modified Size InfoDownloads / Week
Parent folder
README.release 2013-12-22 294.3 kB
plplot-5.9.11.tar.gz 2013-12-22 14.6 MB
plplot-5.9.11.tar.gz.asc 2013-12-22 490 Bytes
Totals: 3 Items   14.9 MB 0
PLplot Release 5.9.11
~~~~~~~~~~~~~~~~~~~~
This is a development release of PLplot. It represents the ongoing efforts
of the community to improve the PLplot plotting package. Development
releases in the 5.9.x series will be available every few months. The next
stable release will be 5.10.0.

If you encounter a problem that is not already documented in the
PROBLEMS file or on our bug tracker, then please send bug reports to
PLplot developers via the mailing lists at
<http://sourceforge.net/p/plplot/mailman/> (preferred for initial
discussion of issues) and, if no quick resolution is possible, on our
bug tracker at <http://sourceforge.net/p/plplot/bugs/>.

Please see the license under which this software is distributed
(LGPL), and the disclaimer of all warranties, given in the COPYING.LIB
file.

INDEX

1. OFFICIAL NOTICES FOR USERS SINCE 5.9.10 (the previous development release)

2. Tests made for release 5.9.11

3. Changes relative to PLplot 5.9.10 (the previous development release)

3.1 NUMERIC_INCLUDE_PATH ==> NUMPY_INCLUDE_PATH
3.2 Major overhaul of the build system and bindings for Tcl and friends
3.3 Substantial overhaul of the build system for the Qt-components of PLplot
3.4 The epa_build project has been implemented


4. OFFICIAL NOTICES FOR USERS SINCE 5.8.0 (the previous stable release)

5. Changes relative to PLplot 5.8.0 (the previous stable release)

5.1 All autotools-related files have now been removed
5.2 Build system bug fixes
5.3 Build system improvements
5.4 Implement build-system infrastructure for installed Ada bindings and
examples
5.5 Code cleanup
5.6 Date / time labels for axes
5.7 Alpha value support
5.8 New PLplot functions
5.9 External libLASi library improvements affecting our psttf device
5.10 Improvements to the cairo driver family
5.11 wxWidgets driver improvements
5.12 pdf driver improvements
5.13 svg driver improvements
5.14 Ada language support
5.15 OCaml language support
5.16 Perl/PDL language support
5.17 Update to various language bindings
5.18 Update to various examples
5.19 Extension of our test framework
5.20 Rename test subdirectory to plplot_test
5.21 Website support files updated
5.22 Internal changes to function visibility
5.23 Dynamic driver support in Windows
5.24 Documentation updates
5.25 libnistcd (a.k.a. libcd) now built internally for -dev cgm
5.26 get-drv-info now changed to test-drv-info
5.27 Text clipping now enabled by default for the cairo devices
5.28 A powerful qt device driver has been implemented
5.29 The PLplot API is now accessible from Qt GUI applications
5.30 NaN / Inf support for some PLplot functions
5.31 Various bug fixes
5.32 Cairo driver improvements
5.33 PyQt changes
5.34 Color Palettes
5.35 Re-implementation of a "soft landing" when a bad/missing compiler is
detected
5.36 Make PLplot aware of LC_NUMERIC locale
5.37 Linear gradients have been implemented
5.38 Cairo Windows driver implemented
5.39 Custom axis labelling implemented
5.40 Universal coordinate transform implemented
5.41 Support for arbitrary storage of 2D user data
5.42 Font improvements
5.42 Alpha value support for plotting in memory.
5.43 Add a Qt device for in memory plotting.
5.44 Add discrete legend capability.
5.45 Add full bindings and examples for the D language.
5.46 The plstring and plstring3 functions have been added
5.47 The pllegend API has been finalized
5.48 Octave bindings now implemented with swig
5.49 Documentation redone for our swig-generated Python and Octave bindings
5.50 Support large polygons
5.51 Complete set of PLplot parameters now available for Fortran
5.52 The plarc function has been added
5.53 The format for map data used by plmap has changed
5.54 Python support for Numeric has been dropped
5.55 Backwards-incompatible API change to non-integer line widths
5.56 Improvements to the build system for the Cygwin case
5.57 The plcolorbar API has been finalized
5.58 Documentation of the new legend and color bar capabilities of PLplot
5.59 The D bindings and examples have been converted from the
old version of D (D1) to the new version of D (D2)
5.60 The DocBook documentation for PLplot is now generated using modern
XML/XSL backend tools for DocBook
5.61 Implement experimental build_projects sub-project
5.62 Implement extremely simple "00" example
5.63 Convert to using the Allura form of SourceForge software
5.64 Use NON_TRANSITIVE linking by default for the shared libraries case for
all non-windows systems
5.65 Update f95 examples to take larger advantage of Fortran 95 capabilities
5.66 Substantial additions to the doxygen documentation
5.67 NUMERIC_INCLUDE_PATH ==> NUMPY_INCLUDE_PATH
5.68 Major overhaul of the build system and bindings for Tcl and friends
5.69 Substantial overhaul of the build system for the Qt-components of PLplot
5.70 The epa_build project has been implemented

1. OFFICIAL NOTICES FOR USERS SINCE 5.9.10 (the previous development release)

(5.9.11) Backwards-incompatible API change.  The numerical symbolic
constants that are #defined as macros in plplot.h have been
repropagated to the Python, Java, Lua, Octave, Fortran 95, and Tcl
language bindings using scripts.  Previously, this propagation was
done by hand in a piece-meal manner so use of the scripts has created
a number of changes in the PLplot symbolic constants for these
languages.  These changes are the addition of 25 symbolic constants
that were previously only available for C, no deletions of symbolic
constants, no changes to numerical values, but the following
backwards-incompatible name changes:

PLESC_PLFLTBUFFERING ==> PLESC_DOUBLEBUFFERING
PLESPLFLTBUFFERING_DISABLE ==> PLESC_DOUBLEBUFFERING_ENABLE
PLESPLFLTBUFFERING_ENABLE ==> PLESC_DOUBLEBUFFERING_ENABLE
PLESPLFLTBUFFERING_QUERY ==> PLESC_DOUBLEBUFFERING_QUERY

So those users who were using the symbolic constants on the left for
the above languages will have to change their source code or scripts
to use the constants on the right.  No changes in source code or
scripts should be required of other users.

(5.9.11) Backwards-incompatible API change.  The PLplot build system
and bindings for Tcl and friends have had a major overhaul, see below.
Part of this change was to split the former libplplottcltk into two
components.  The new libplplottcltk is now a pure Tcl/Tk extension
that can be linked to the stub versions of the Tcl/Tk libraries and
dynamically loaded from a tclsh or wish environment using the
appropriate "package require" command.  The new libplplottcltk_Main
library contains code (e.g., pltclMain and pltkMain) required by C
plotting applications (e.g., pltcl, plrender, and xtk0[124].c) that
link to libplplottcltk.

(5.9.11) Backwards-incompatible change.  Our Fortran 77 bindings
and examples have been completely removed because Fortran 95 is just a
much better language which we have been supporting for a long time,
and our judgement call based on user feedback we have received is
nobody is interested in plotting using strict Fortran 77 language
constructs any more.  However, if there is still some Fortran 77
source code out there that uses PLplot, typically the only change you
should have to do to port it to our Fortran 95 bindings is to place
the command "use plplot" as the first line of the source code of the
main routine.

(5.9.11) Deprecation.  The functionality of the AGG backend and
FreeType option in the wxwidgets device driver is provided (and in
some cases exceeded) by other backends and options that we have
implemented for this device driver.  The AGG backend and Freetype
option are therefore deprecated with the intention to remove them in a
future release.

2. Tests made for release 5.9.11

Note that "comprehensive tests" below refers to running
scripts/comprehensive_test.sh in default mode (i.e., not dropping any
tests).  For each of our three major configurations (shared
libraries/dynamic devices, shared libraries/nondynamic devices, and
static libraries/nondynamic devices) this test script runs ctest in
the build tree and runs the test_noninteractive and test_interactive
targets in the build tree, the installed examples tree configured with
a CMake-based build system for the examples, and an installed examples
tree configured with our traditional (Make + pkg-config) build system
for the examples.

Note that all tests mentioned below were successful ones unless
noted differently.

* Alan W. Irwin ran comprehensive tests for a complete system build
environment on 64-bit Debian Wheezy Linux for AMD-64 hardware.

* Alan W. Irwin ran comprehensive testsfor a limited (qt, cairo, wxwidgets,
and octave PLplot components were dropped) epa_build environment on
64-bit Debian Wheezy Linux for AMD-64 hardware.

* Alan W. Irwin ran comprehensive tests for an almost complete epa_build
environment (only the wxwidgets and octave components of PLplot were
dropped) on 64-bit Debian Wheezy Linux for AMD-64 hardware.

* Alan W. Irwin ran fairly comprehensive tests (i.e, for the shared
library/dynamic devices case run ctest and also the
test_noninteractive and test_interactive targets in the build tree)
for a quite limited (qt, cairo, wxwidgets, octave, Tcl/Tk, and Java
PLplot components were dropped) epa_build environment for 32-bit
MinGW/MSYS/Wine for AMD-64 hardware.  The Wine version was a release
candidate for Wine-1.6 that was built on Debian Wheezy Linux, the
compiler was gcc-4.7.2, the CMake generator was "MSYS Makefiles", and
the build command was "make" (i.e., the MSYS version, not the MinGW
version).  An attempt was made to extend this successful test result
to the installed examples built with the CMake-based build system, but
for that case the Ada examples all failed at run time with a return
code of 3 so no further attempt was made to widen the scope of these
MinGW/MSYS/Wine tests.

* Andrew Ross ran fairly comprehensive tests (i.e., for the shared
library/dynamic devices case use the test_noninteractive and
test_interactive targets in the build tree) for a complete system
build environment on 64-bit Debian unstable Linux for AMD-64 hardware.

* Andrew Ross ran comprehensive tests for a complete system build 
environment on 64-bit Ubuntu Saucy (13.10) Linux for AMD-64 hardware.
The only issue was a segmentation fault on the c++ qt_example for
the nondynamic devices case only. This is reproducible on this
system, but not on other Linux platforms so may be specific to the
Ubuntu version of the Qt libraries. This is unlikely to affect most
users since the default is to use dynamically loaded devices.

* Andrew Ross ran limited tests with a limited number of nondynamic 
devices (mem, null, psc, svg, xfig, xwin) and limited language 
bindings (C / C++ / F95) for a CentOS 5.10 system with AMD64 hardware. 
The build passed "make test_diff psc". The java version was too old 
and java support had to be disabled. Ada support had to be 
disabled due to a bug (now fixed). Cairo support also had to be 
disabled due to too old a version of the library being installed.

* Andrew Ross ran limited tests for an epa_build environment on CentOS 
5.10. The buildtools and plplot_lite targets were built (with 
nondynamic devices), again after disabling java, ada and cairo support. 
This build added support for tcl / tk bindings and the pdf and tk based 
devices. The build passed make test_noninteractive in the install tree, 
but failed make test_interactive due to missing rpath information for the 
itcl and itk libraries. This bug can be worked around by setting 
LD_LIBRARY_PATH to point to the libraries, in which case the interactive
test works fine.

* Arjen Markus ran a fairly comprehensive test (i.e., for the shared
library/dynamic devices case use the test_noninteractive target) for a
incomplete system build environment (the Ada, D, itcl/itk, Lua, ocaml,
octave, Java, and wxwidgets components of PLplot were dropped) on
64-bit Cygwin with gcc-4.8.2.  That platform was installed on top of
64-bit Windows 7, service pack 1 for AMD-64 hardware.  Java and
wxwidgets were dropped because of build errors for those on Cygwin
that have not been resolved yet.  The remaining components were
dropped due to lack of time to investigate them so far.  There was
close to complete success with the qt and cairo (aside from wincairo)
device drivers which is an excellent Windows result since those
device drivers add a lot of important capability to PLplot.

* Arjen Markus ran build tests and limited run-time tests (checking by
hand that some components of PLplot worked) for the shared
libraries/dynamic devices case for a limited build environment (the
qt, cairo, wxwidgets, pdf and the components mentioned above of PLplot
were dropped except for Java which was included in this test) on
32-bit MinGW.  That platform was installed on top of 64-bit Windows 7,
service pack 1 for AMD-64 hardware.  The compiler was gcc-4.7.0, the
CMake generator was "MinGW Makefiles", and the build command was
mingw32-make.

* Arjen Markus ran build tests and limited run-time tests (checking by
hand that some components of PLplot worked) for the shared
libraries/dynamic devices case for a limited build environment (the
same limitations as for his MinGW tests above) for MSVC/C++ 2010 and Intel
Fortran 2011 compilers on 64-bit Windows 7, service pack 1 for AMD-64
hardware.  In general, the CMake generator "NMake Makefiles" and
the corresponding build command "nmake" worked well for this platform.
The attempted use of Visual Studio generators combined with the
Visual Studio 2010 IDE available on that platform was more problematic.

* Phil Rosenberg ran build tests and limited run-time tests (checking
by hand that some components of PLplot worked) for the static
libraries/nondynamic devices case for a limited build environment
(virtually all PLplot components dropped other than C, C++ and
wxwidgets 2.8) for the Visual Studio 2008 IDE (with associated MSVC
compiler) on 32-bit Windows 7 for AMD-64 hardware.  The "Visual Studio
9 2008" generator yielded good results.

* Phil Rosenberg ran build tests and limited run-time tests (checking
by hand that some components of PLplot worked) for the static
libraries/nondynamic devices case for a limited build environment
(virtually all PLplot components dropped other than C, CXX, and
wxwidgets 3.0) for the Visual Studio 2012 IDE (with associated MSVC
compiler) on Windows 8 for AMD-64 hardware.  Both x86 and x64 builds
were tested.  The combination of "NMake Makefiles" generator and MSVC
compiler yielded good build results if CMake patches (available at
http://www.cmake.org/Bug/view.php?id=14587 and
http://www.cmake.org/Bug/view.php?id=14642) to allow use of
wxwidgets-3.0 were applied.  With those patches some run-time problems
with the use of Plplot's wxWidgetsApp with wxWidgets 3.0 were observed
in the examples, however plots embedded in wxWidgets apps seem to work
fine.  The "Visual Studio 11" and "Visual Studio 11 Win64" generators
had some additional issues which could be worked around but which
nevertheless indicated there are some CMake bugs for those generators
that need to be addressed.

* Jerry Bauck ran build tests of PLplot for the C core library, the
Ada, C++, Java, Lua, and Python bindings, and a fairly complete list
of device drivers (including qt and cairo) for PLplot on Mac OS X
Mountain Lion for AMD64 hardware.  Extremely narrow run-time tests of
the Ada examples were a success, but all the standard testing scripts
failed because for unknown reasons the lena.pgm file that is used in
conjunction with our standard example 20 was not properly copied by
our build and test system from the source tree to the correct
locations in the build tree.

* Felipe Gonzalez ran build tests of PLplot for the C core library and
the C++, Fortran 95, and OCaml-4.01.0 bindings on Mac OS X Mountain
Lion.  The report from Felipe stated the compiler suite used was
probably from MacPorts, and did not state anything about the hardware
type.

3. Changes relative to PLplot 5.9.10 (the previous development release)

3.1 NUMERIC_INCLUDE_PATH ==> NUMPY_INCLUDE_PATH

We have long since dropped support for the Numeric Python module and
are now exclusively using the numpy Python modules instead.
Therefore, we have changed the CMake variable name used in our build
system that holds the location of the numpy headers from the confusing
misnomer, NUMERIC_INCLUDE_PATH, to NUMPY_INCLUDE_PATH.  This change
only impacts PLplot users who in the past have used the cmake option
-DNUMERIC_INCLUDE_PATH to set the CMake variable NUMERIC_INCLUDE_PATH
to the location of the numpy header directory.  Note we discourage
that method since without that user intervention, the build system
uses python and numpy to find the location which should normally be
foolproof and not subject to the inconsistencies or errors possible
with setting the variable.  But if some users still insist on setting
the variable, that variable's name should now be NUMPY_INCLUDE_PATH.

3.2 Major overhaul of the build system and bindings for Tcl and friends

After years of neglect we have worked very hard in the release cycle
leading up to the release of 5.9.11 on our build system and code
interfacing Tcl and friends (Tk, Itcl, Itk, and Iwidgets) with PLplot.
The build system now does a much better job of finding a consistent
set of components for Tcl and friends.  For example, switching from
the system version of those components to a special build of those
components is typically a matter of simply putting tclsh from the
special build first on the PATH.  And after the components of Tcl and
friends are found, the build system does extensive checking to make
sure they are compatible with each other.  The plplottcktk library has
now been split (see remarks in the above OFFICIAL NOTICES for more
details).  Many bugs have been fixed, and all tests documented in
examples/tcl/README.tcldemos and examples/tk/README.tkdemos have now
been implemented as tests via the build system to help avoid any
regressions in the build system and bindings for Tcl and friends in
the future.

As a consequence of these activities the ntk device has been enabled
under Windows. The xwin and tkwin devices work under Cygwin.

3.3 Substantial overhaul of the build system for the Qt-components of PLplot

As a result of these improvements compiling and linking of our
Qt-related components just got a lot more rational, and the
long-standing memory management issues reported by valgrind for
examples/c++/qt_example for the non-dynamic devices case have been
resolved.

3.4 The epa_build project has been implemented

The goal of this project is to make builds of recent versions of
PLplot dependencies (and PLplot itself) much more convenient on all
platforms.  Once this goal is realized, it should make the full power
of PLplot (which depends on the existence and quality of its
dependencies) readily available on all platforms.  The epa_build
project uses the power of CMake (especially the ExternalProject_Add
command which is why we chose to use the prefix "epa_" in the name of
epa_build) to organize downloading, updating, configuring, building,
testing, and installing of any kind (not just those with CMake-based
build systems) of software project with full dependency support
between all the various builds.  For those users who are not
satisified with the PLplot dependencies on their systems, learn how to
use the epa_build project by consulting cmake/epa_build/README.

The epa_build project is in pretty good shape on Linux; epa_build
configurations work properly for build tools such as Tcl/Tk8.6, Itcl,
Itk, and Iwidgets and for regular packages such as pango (needed for
the cairo device driver), qt4_lite (needed for the qt device driver),
the wxwidgets software package (needed for the wxwidgets device
driver), and many smaller, but useful PLplot dependencies such as
shapelib, libqhull, and libharu.  The total build time is roughly an
hour for an ordinary PC which is not much of a price to pay to get
access to up-to-date versions of virtually all dependencies of PLplot.
In fact, the only known dependency of PLplot not currently covered by
epa_build is octave.  In principle, it should be straightforward to
add an epa_build configurations for octave and its many dependencies,
but that possibility has not been explored yet.

In principle, epa_build should work out of the box on Mac OS X
platforms, but we haven't tested on that platform yet.

Our testing for MinGW/MSYS and Cygwin shows the epa_build project is
still in fairly rough shape on Windows.  It is known that the "plplot"
case (PLplot with all its dependencies) fails in various ways on all
Windows platforms.  Those issues are being actively worked on.  Note,
however, that the "plplot_lite" case (PLplot with all the minor
dependencies but without Tcl etc., build tools and without the pango,
qt4_lite, and wxwidgets dependencies) has been shown to work on
MinGW/MSYS and should probably also work on Cygwin although we haven't
tested that specific case yet.

4. OFFICIAL NOTICES FOR USERS SINCE 5.8.0 (the previous stable release)

(5.9.11) Backwards-incompatible API change.  The numerical symbolic
constants that are #defined as macros in plplot.h have been
repropagated to the Python, Java, Lua, Octave, Fortran 95, and Tcl
language bindings using scripts.  Previously, this propagation was
done by hand in a piece-meal manner so use of the scripts has created
a number of changes in the PLplot symbolic constants for these
languages.  These changes are the addition of 25 symbolic constants
that were previously only available for C, no deletions of symbolic
constants, no changes to numerical values, but the following
backwards-incompatible name changes:

PLESC_PLFLTBUFFERING ==> PLESC_DOUBLEBUFFERING
PLESPLFLTBUFFERING_DISABLE ==> PLESC_DOUBLEBUFFERING_ENABLE
PLESPLFLTBUFFERING_ENABLE ==> PLESC_DOUBLEBUFFERING_ENABLE
PLESPLFLTBUFFERING_QUERY ==> PLESC_DOUBLEBUFFERING_QUERY

So those users who were using the symbolic constants on the left for
the above languages will have to change their source code or scripts
to use the constants on the right.  No changes in source code or
scripts should be required of other users.

(5.9.11) Backwards-incompatible API change.  The PLplot build system
and bindings for Tcl and friends have had a major overhaul, see below.
Part of this change was to split the former libplplottcltk into two
components.  The new libplplottcltk is now a pure Tcl/Tk extension
that can be linked to the stub versions of the Tcl/Tk libraries and
dynamically loaded from a tclsh or wish environment using the
appropriate "package require" command.  The new libplplottcltk_Main
library contains code (e.g., pltclMain and pltkMain) required by C
plotting applications (e.g., pltcl, plrender, and xtk0[124].c) that
link to libplplottcltk.

(5.9.11) Backwards-incompatible change.  Our Fortran 77 bindings
and examples have been completely removed because Fortran 95 is just a
much better language which we have been supporting for a long time,
and our judgement call based on user feedback we have received is
nobody is interested in plotting using strict Fortran 77 language
constructs any more.  However, if there is still some Fortran 77
source code out there that uses PLplot, typically the only change you
should have to do to port it to our Fortran 95 bindings is to place
the command "use plplot" as the first line of the source code of the
main routine.

(5.9.11) Deprecation.  The functionality of the AGG backend and
FreeType option in the wxwidgets device driver is provided (and in
some cases exceeded) by other backends and options that we have
implemented for this device driver.  The AGG backend and Freetype
option are therefore deprecated with the intention to remove them in a
future release.

(5.9.10) The minimum version of CMake has been bumped to 5.8.9.  This
change allows our build system to take advantage of CMake features
introduced in later versions of CMake.  Even more importantly it also
updates user's builds to the CMake policy conventions (important
backwards-incompatible changes in CMake behaviour introduced in later
versions of CMake) to the default CMake policy used for 5.8.9.

(5.9.10) The long deprecated support for the python Numeric package has been
dropped. This is no longer supported and is superseded by numpy. Support for
numpy has been the default in PLplot for a number of years so most users
should notice no difference.

(5.9.10) The current format for maps used by plmap has been deprecated in
favour of using shapefiles (a standard format widely used for GIS and with
suitable free data sources available). This requires the shapelib library
to be installed. If this library is not installed then by default no map
support will be available. Support for the old binary format is still
available by setting the cmake variable PL_DEPRECATED, however this
support will be removed in a future release of PLplot.

(5.9.10) Those who use the Python version of plgriddata will have to
change their use of this function for this release as follows (see
examples/xw21.py)

# old version (which overwrites preexisting zg in place):
zg = reshape(zeros(xp*yp),(xp,yp))
plgriddata(x, y, z, xg, yg, zg, alg, opt[alg-1])

# new version (which uses a properly returned newly created NumPy array
# as per the normal Python expectations):

zg = plgriddata(x, y, z, xg, yg, alg, opt[alg-1])

(5.9.10) Significant efforts have been made to ensure the PLplot code
is standards compliant and free from warnings. Compliance has been
tested using the gcc compiler suite -std, -pedantic and -W  flags. The
language standards adopted are
C: ISO C99 with POSIX.1-2001 base specification (required for a number
of C library calls)
C++: ISO C++ 1998 standard plus amendments
F95: Fortran 95 standard

Specifically, the following gcc / g++ / gfortran flags were used

CFLAGS='-O3 -std=c99 -pedantic -D_POSIX_C_SOURCE=200112L -Wall  \
-Wextra -Wmissing-prototypes -Wstrict-prototypes -Wnested-externs \
-Wconversion -Wshadow -Wcast-qual -Wcast-align -Wwrite-strings'

CXXFLAGS='-O3 -fvisibility=hidden -std=c++98 -pedantic -Wall -Wextra '

FFLAGS='-std=f95 -O3 -fall-intrinsics -fvisibility=hidden -pedantic \
-Wall -Wextra '

Note that the code is not yet quite standards compliant or warning free,
but this is our aim. We know that a number of common compilers do not
support these standards "out of the box", so we will continue to develop
and support workarounds to ensure that PLplot remains easily built on
a variety of platforms and compilers. Standards compliance should make
it easier to port to new systems in the future. Using aggressive
warnings flags will help to detect and eliminate errors or problems in
the libraries.

The gfortran -fall-intrinsics flag is required for a couple of
non-standard intrinsics which are used in the code. In the future
adopting the fortran 2003 or 2008 standard should allow this to be
removed.

Note: currently this code cleanup does not apply to code generated by
swig (octave, python, java, lua bindings) which gives a large number of
code warnings.

(5.9.10) For some years now we have had both FORTRAN 77 and Fortran 95
bindings, but to the best of our knowledge, there are no longer
any maintained FORTRAN 77 compilers left that do not also support
Fortran 95. (g77 for instance has not been maintained for several
years now. Its successor gfortran supports Fortran 95 and later standards
as well all g77's legacy features).

An important consequence is that we can not test the implementation for
compliance to the FORTRAN 77 standard.
Furthermore, we would prefer to concentrate all our Fortran
development effort on our f95 bindings and strongly encourage all our
Fortran users to use those bindings if they haven't switched from the
f77 version already. Therefore, as of this release we are deprecating
the f77 bindings and examples and plan no further support for them.
We signal this deprecation by disabling f77 by default (although our
users can still get access to these unsupported bindings and examples
for now by specifying the -DENABLE_f77=ON cmake option).

We plan to completely remove the f77 bindings and examples
two releases after this one.

(5.9.10) We have found that some distributions of the Windows
MinGW/gfortran compiler (i.e., MinGW/gfortran 4.6.1 and 4.6.2 from
http://www.equation.com) may cause a link error due to duplicate
symbols like __gfortran_setarg_. These errors can be suppressed by
adding the flag -Wl,--allow-multiple-define. It is very likely that
this is a bug in these distributions.

As building the libraries and the examples succeeds without any problem
if you use most other distributions of Windows MinGW/gfortran,
we have decided not to include this flag in our build system.

Distributions that are known to work:
- MinGW/gfortran-4.5 from http://www.equation.com,
- MinGW/gfortran-4.5.2-1 that is installed using the latest
  mingw-get-inst-20110802 automatic installer available at
  http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst
- MinGW/gfortran-4.6.2 from tdm-gcc.tdragon.net

(Therefore it is not the 4.5.x versus 4.6.x version of MinGW/gfortran
as such that causes this problem.)

(5.9.9) This is a quick release to deal with two broken build issues
that were recently discovered for our Windows platform.  Windows users should
avoid 5.9.8 because of these problems for that release, and instead use
5.9.9 which has been heavily tested on a number of platforms including
Windows, see "Tests made for release 5.9.9" below.

(5.9.8) For unicode-aware devices we now follow what is done for the
Hershey font case for epsilon, theta, and phi.  This means the #ge,
#gh, and #gf escapes now give users the Greek lunate epsilon, the
ordinary Greek lower case theta, and the Greek symbol phi for Unicode
fonts just like has occurred since the dawn of PLplot history for the
Hershey font case.  Previously these legacy escapes were assigned to
ordinary Greek lower-case epsilon, the Greek symbol theta (= script
theta), and the ordinary Greek lower case phi for unicode fonts
inconsistently with what occurred for Hershey fonts.  This change gets
rid of this inconsistency, that is the #g escapes should give the best
unicode approximation to the Hershey glyph result that is possible for
unicode-aware devices.

In general we encourage users of unicode-aware devices who might
dislike the Greek glyph Hershey-lookalike choices they get with the
legacy #g escapes to use instead either PLplot unicode escapes (e.g.,
"#[0x03b5]" for ordinary Greek lower-case epsilon, see page 3 of
example 23) or better yet, UTF-8 strings (e.g., "ε") to specify
exactly what unicode glyph they want.

(5.9.8) The full set of PLplot constants have been made available to
our Fortran 95 users as part of the plplot module.  This means those
users will have to remove any parameter statements where they have
previously defined the PLplot constants (whose names typically start
with "PL_" for themselves.  For a complete list of the affected
constants, see the #defines in swig-support/plplotcapi.i which are
used internally to help generate the plplot module.  See also Index
item 5.51 below.

(5.9.8) There has been widespread const modifier changes in the API
for libplplotd and libplplotcxxd.  Those backwards-incompatible API
changes are indicated in the usual way by a soversion bump in those
two libraries which will force all apps and libraries that depend on
those two libraries to be rebuilt.

Specifically, we have changed the following arguments in the C library
(libplplotd) case

type * name1 ==> const type * name1
type * name2 ==> const type ** name2

and the following arguments in the C++ library (libplplotcxxd) case

type * name1 ==> const type * name1
type * name1 ==> const type * const * name2

where name1 is the name of a singly dimensioned array whose values are
not changed internally by the PLplot libraries and name2 is the name
of a doubly dimensioned array whose values are not changed internally
by the PLplot libraries.

The general documentation and safety justification for such const
modifier changes to our API is given in
http://www.cprogramming.com/tutorial/const_correctness.html.
Essentially, the above const modifier changes constitute our guarantee
that the associated arrays are not changed internally by the PLplot
libraries.

Although it is necessary to rebuild all apps and libraries that depend
on libplplotd and/or libplplotcxxd, that rebuild should be possible
with unchanged source code without build errors in all cases.  For C
apps and libraries (depending on libplplotd) there will be additional
build warnings due to a limitation in the C standard discussed at
http://c-faq.com/ansi/constmismatch.html unless all doubly dimensioned
arrays (but not singly dimensioned) are explicitly cast to (const type
**).  However, such source code changes will not be necessary to avoid
warning messages for the C++ (libplplotcxxd) change because of the
double use of const in the above "const type * const * name2" change.

(5.9.8) The plarc API has changed in release 5.9.8.  The plarc API now
has a rotation parameter which will eventually allow for rotated arcs.
PLplot does not currently support rotated arcs, but the plarc function
signature has been modified to avoid changing the API when this
functionality is added.

(5.9.6) We have retired the pbm driver containing the pbm (actually
portable pixmap) file device. This device is quite primitive and
poorly maintained. It ignores unicode fonts (i.e., uses the Hershey
font fallback), falls back to ugly software fills, doesn't support
alpha transparency, etc.  It also has a serious run-time issue with
example 2 (double free detected by glibc) which probably indicates
some fundamental issue with the 100 colors in cmap0 for that
example. For those who really need portable pixmap results, we suggest
using the ImageMagick convert programme, e.g., "convert
examples/x24c01.pngqt test.ppm" or "convert examples/x24c01.pngcairo
test.ppm" to produce good-looking portable pixmap results from our
best png device results.

(5.9.6) We have retired the linuxvga driver containing the linuxvga
interactive device.  This device is quite primitive, difficult to
test, and poorly maintained. It ignores unicode fonts (i.e., uses the
Hershey font fallback), falls back to ugly software fills, doesn't
support alpha transparency, etc.  It is Linux only, can only be run as
root, and svgalib (the library used by linuxsvga) is not supported by
some mainstream (e.g., Intel) chipsets.  All of these characteristics
make it difficult to even test this device much less use it for
anything serious.  Finally, it has had a well-known issue for years
(incorrect colors) which has never been fixed indicating nobody is
interested in maintaining this device.

(5.9.6) We have retired our platform support of djgpp that used to
reside in sys/dos/djgpp.  The developer (Andrew Roach) who used to
maintain those support files for djgpp feels that the djgpp platform
is no longer actively developed, and he no longer uses djgpp himself.

(5.9.6) We have changed plpoin results for ascii codes 92, 94, and 95
from centred dot, degree symbol, and centred dot glyphs to the correct
backslash, caret, and underscore glyphs that are associated with those
ascii indices.  This change is consistent with the documentation of
plpoin and solves a long-standing issue with backslash, caret, and
underscore ascii characters in character strings used for example by
pl[mp]tex.  Those who need access to a centred dot with plpoin should
use index 1.  The degree symbol is no longer accessible with plpoin,
but it is available in ordinary text input to PLplot as Hershey escape
"#(718)", where 718 is the Hershey index of the degree symbol, unicode
escape "#[0x00B0]" where 0x00B0 is the unicode index for the degree
symbol or direct UTF8 unicode string "°".

(5.9.6) We have retired the gcw device driver and the related gnome2
and pygcw bindings since these are unmaintained and there are good
replacements.  These components of PLplot were deprecated as of
release 5.9.3.  A good replacement for the gcw device is either the
xcairo or qtwidget device.  A good replacement for the gnome2 bindings
is the externally supplied XDrawable or Cairo context associated with
the xcairo device and the extcairo device (see
examples/c/README.cairo).  A good replacement for pygcw is our new
pyqt4 bindings for PLplot.

(5.9.6) We have deprecated support for the python Numeric array
extensions. Numeric is no longer maintained and users of Numeric are
advised to migrate to numpy. Numpy has been the standard for PLplot
for some time. If numpy is not present PLplot will now disable python
by default. If you still require Numeric support in the short term
then set USE_NUMERIC to ON in cmake. The PLplot support for Numeric
will be dropped in a future release.

(5.9.5) We have removed pyqt3 access to PLplot and replaced it by
pyqt4 access to PLplot (see details below).

(5.9.5) The only method of specifying a non-default compiler (and
associated compiler options) that we support is the environment
variable approach, e.g.,

export CC='gcc -g -fvisibility=hidden'
export CXX='g++ -g -fvisibility=hidden'
export FC='gfortran -g -fvisibility=hidden'

All other CMake methods of specifying a non-default compiler and
associated compiler options will not be supported until CMake bug 9220
is fixed, see discussion below of the soft-landing re-implementation
for details.

(5.9.5) We have retired the hpgl driver (containing the hp7470,
hp7580, and lj_hpgl devices), the impress driver (containing the imp
device), the ljii driver (containing the ljii and ljiip devices), and
the tek driver (containing the conex, mskermit, tek4107, tek4107f,
tek4010, tek4010f, versaterm, vlt, and xterm devices).  Retirement
means we have removed the build options which would allow these
devices to build and install.  Recent tests have shown a number of
run-time issues (hpgl, impress, and ljii) or build-time issues (tek)
with these devices, and as far as we know there is no more user
interest in them. Therefore, we have decided to retire these devices
rather than fix them.

(5.9.4) We have deprecated the pbm device driver (containing the pbm
device) because glibc detects a catastrophic double free.

(5.9.3) Our build system requires CMake version 5.6.0 or higher.

(5.9.3) We have deprecated the gcw device driver and the related
gnome2 and pygcw bindings since these are essentially unmaintained.
For example, the gcw device and associated bindings still depends on
the plfreetype approach for accessing unicode fonts which has known
issues (inconsistent text offsets, inconvenient font setting
capabilities, and incorrect rendering of CTL languages).  To avoid
these issues we advise using the xcairo device and the externally
supplied XDrawable or Cairo context associated with the xcairo device
and the extcairo device (see examples/c/README.cairo) instead. If you
still absolutely must use -dev gcw or the related gnome2 or pygcw
bindings despite the known problems, then they can still be accessed
by setting PLD_gcw, ENABLE_gnome2, and/or ENABLE_pygcw to ON.

(5.9.3) We have deprecated the gd device driver which implements the
png, jpeg, and gif devices.  This device driver is essentially
unmaintained. For example, it still depends on the plfreetype approach
for accessing unicode fonts which has known issues (inconsistent text
offsets, inconvenient font setting capabilities, and incorrect
rendering of CTL languages).  To avoid these issues for PNG format, we
advise using the pngcairo or pngqt devices.  To avoid these issues for
the JPEG format, we advise using the jpgqt device.  PNG is normally
considered a better raster format than GIF, but if you absolutely
require GIF format, we advise using the pngcairo or pngqt devices and
then downgrading the results to the GIF format using the ImageMagick
"convert" application.  For those platforms where libgd (the
dependency of the gd device driver) is accessible while the required
dependencies of the cairo and/or qt devices are not accessible, you
can still use these deprecated devices by setting PLD_png, PLD_jpeg,
or PLD_gif to ON.

(5.9.3) We have re-enabled the tk, itk, and itcl components of PLplot
by default that were disabled by default as of release 5.9.1 due to
segfaults.  The cause of the segfaults was a bug (now fixed) in how
pthread support was implemented for the Tk-related components of
PLplot.

(5.9.2) We have set HAVE_PTHREAD (now called PL_HAVE_PTHREAD as of
release 5.9.8) to ON by default for all platforms other than Darwin.
Darwin will follow later once it appears the Apple version of X
supports it.

(5.9.1) We have removed our previously deprecated autotools-based
build system.  Instead, use the CMake-based build system following the
directions in the INSTALL file.

(5.9.1) We no longer support Octave-5.1.73 which has a variety of
run-time issues in our tests of the Octave examples on different
platforms. In contrast our tests show we get good run-time results
with all our Octave examples for Octave-3.0.1. Also, that is the
recommended stable version of Octave at
http://www.gnu.org/software/octave/download.html so that is the only
version of Octave we support at this time.

(5.9.1) We have decided for consistency sake to change the PLplot
stream variables plsc->vpwxmi, plsc->vpwxma, plsc->vpwymi, and
plsc->vpwyma and the results returned by plgvpw to reflect the exact
window limit values input by users using plwind. Previously to this
change, the stream variables and the values returned by plgvpw
reflected the internal slightly expanded range of window limits used
by PLplot so that the user's specified limits would be on the graph.
Two users noted this slight difference, and we agree with them it
should not be there. Note that internally, PLplot still uses the
expanded ranges so most users results will be identical.  However, you
may notice some small changes to your plot results if you use these
stream variables directly (only possible in C/C++) or use plgvpw.

5. Changes relative to PLplot 5.8.0 (the previous stable release)

N.B. This release includes many code cleanups and fixes relative to
5.8.0 that are not mentioned in the list below.

5.1 All autotools-related files have now been removed

CMake is now the only supported build system. It has been tested on
Linux / Unix, Mac OS-X and Windows platforms.

5.2 Build system bug fixes

Various fixes include the following:

Ctest will now work correctly when the build tree path includes symlinks.

Dependencies for swig generated files fixed so they are not rebuilt every
time make is called.

Various dependency fixes to ensure that parallel builds (using make -j)
work under unix.

5.3 Build system improvements

We now transform link flag results delivered to the CMake environment by
pkg-config into the preferred CMake form of library information.  The
practical effect of this improvement is that external libraries in
non-standard locations now have their rpath options set correctly for our
build system both for the build tree and the install tree so you don't have
to fiddle with LD_LIBRARY_PATH, etc.

5.4 Implement build-system infrastructure for installed Ada bindings and
examples

Install source files, library information files, and the plplotada library
associated with the Ada bindings.  Configure and install the pkg-config file
for the plplotada library.  Install the Ada examples and a configured Makefile
to build them in the install tree.

5.5 Code cleanup

The PLplot source code has been cleaned up to make consistent use of
(const char *) and (char *) throughout. Some API functions have changed
to use const char * instead of char * to make it clear that the strings
are not modified by the function. The C and C++ examples have been updated
consistent with this. These changes fix a large number of warnings
with gcc-4.5. Note: this should not require programs using PLplot to be
recompiled as it is not a binary API change.

There has also been some cleanup of include files in the C++ examples
so the code will compile with the forthcoming gcc-4.3.

5.6 Date / time labels for axes

PLplot now allows date / time labels to be used on axes. A new option
('d') is available for the xopt and yopt arguments to plbox which
indicates that the axis should be interpreted as a date / time. Similarly
there is a new range of options for plenv to select date / time labels.
The time format is seconds since the epoch (usually 1 Jan 1970). This
format is commonly used on most systems. The C gmtime routine can be
used to calculate this for a given date and time. The format for the
labels is controlled using a new pltimefmt function, which takes a
format string. All formatting is done using the C strftime function.
See documentation for available options on your platform. Example 29
demonstrates the new capabilities.

N.B. Our reliance on C library POSIX time routines to (1) convert from
broken-down time to time-epoch, (2) to convert from time-epoch to
broken-down time, and (3) to format results with strftime have proved
problematic for non-C languages which have time routines of variable
quality.  Also, it is not clear that even the POSIX time routines are
available on Windows. So we have plans afoot to implement high-quality
versions of (1), (2), and (3) with additional functions to get/set the epoch
in the PLplot core library itself.  These routines should work on all C
platforms and should also be uniformly accessible for all our language
bindings.

WARNING.....  Therefore, assuming these plans are implemented, the present
part of our date/time PLplot API that uses POSIX time routines will be
changed.

5.7 Alpha value support

PLplot core has been modified to support a transparency or alpha value
channel for each color in color map 0 and 1. In addition a number of new
functions were added the PLplot API so that the user can both set and query
alpha values for color in the two color maps. These functions have the same
name as their non-alpha value equivalents, but with a an "a" added to the
end. Example 30 demonstrates some different ways to use these functions
and the effects of alpha values, at least for those drivers that support alpha
values. This change should have no effect on the device drivers that do not
currently support alpha values. Currently only the cairo, qt, gd, wxwidgets and
aquaterm drivers support alpha values. There are some limitations with the gd
driver due to transparency support in the underlying libgd library.

5.8 New PLplot functions

An enhanced version of plimage, plimagefr has been added. This allows images
to be plotted using coordinate transformation, and also for the dynamic range
of the plotted values to be altered. Example 20 has been modified to
demonstrate this new functionality.

To ensure consistent results in example 21 between different platforms and
language bindings PLplot now includes a small random number generator within
the library. plrandd will return a PLFLT random number in the range 0.0-1.0.
plseed will allow the random number generator to be seeded.

5.9 External libLASi library improvements affecting our psttf device

Our psttf device depends on the libLASi library. libLASi-1.1.0 has just been
released at http://sourceforge.net/svn/?group_id=187113 .  We recommend
using this latest version of libLASi for building PLplot and the psttf
device since this version of libLASi is more robust against glyph
information returned by pango/cairo/fontconfig that on rare occasions is not
suitable for use by libLASi.

5.10 Improvements to the cairo driver family

Jonathan Woithe improved the xcairo driver so that it can optionally be
used with an external user supplied X Drawable. This enables a nice
separation of graphing (PLplot) and window management (Gtk, etc..). Doug
Hunt fixed the bugs that broke the memcairo driver and it is now fully
functional. Additionally, a new extcairo driver was added that will plot
into a user supplied cairo context.

5.11 wxWidgets driver improvements

Complete reorganization of the driver code. A new backend was added, based
on the wxGraphicsContext class, which is available for wxWidgets 5.8.4
and later. This backend produces antialiased output similar to the
AGG backend but has no dependency on the AGG library. The basic wxDC
backend and the wxGraphicsContext backend process the text output
on their own, which results in much nicer plots than with the standard
Hershey fonts and is much faster than using the freetype library. New
options were introduced in the wxWidgets driver:
 - backend: Choose backend: (0) standard, (1) using AGG library,
                            (2) using wxGraphicsContext
 - hrshsym: Use Hershey symbol set (hrshsym=0|1)
 - text: Use own text routines (text=0|1)
 - freetype: Use FreeType library (freetype=0|1)
The option "text" changed its meaning, since it enabled the FreeType library
support, while now the option enables the driver's own text routines.

Some other features were added:
 * the wxWidgets driver now correctly clears the background (or parts of it)
 * transparency support was added
 * the "locate mode" (already available in the xwin and tk driver) was
   implemented, where graphics input events are processed and translated
   to world coordinates

5.12 pdf driver improvements

The pdf driver (which is based on the haru library http://www.libharu.org)
processes the text output now on its own. So far only the Adobe Type1
fonts are supported. TrueType font support will follow. Full unicode
support will follow after the haru library will support unicode strings. The
driver is now able to produce A4, letter, A5 and A3 pages. The Hershey font
may be used only for symbols. Output can now be compressed, resulting in
much smaller file sizes.
Added new options:
 - text: Use own text routines (text=0|1)
 - compress: Compress pdf output (compress=0|1)
 - hrshsym: Use Hershey symbol set (hrshsym=0|1)
 - pagesize: Set page size (pagesize=A4|letter|A3|A5)

5.13 svg driver improvements

This device driver has had the following improvements: schema for generated
file now validates properly at http://validator.w3.org/ for the
automatically detected document type of SVG 1.1; -geometry option now works;
alpha channel transparency has been implemented; file familying for
multipage examples has been implemented; coordinate scaling has been
implemented so that full internal PLplot resolution is used; extraneous
whitespace and line endings that were being injected into text in error have
now been removed; and differential correction to string justification is now
applied.

The result of these improvements is that our SVG device now gives the
best-looking results of all our devices.  However, currently you must be
careful of which SVG viewer or editor you try because a number of them have
some bugs that need to be resolved.  For example, there is a librsvg bug in
text placement (http://bugzilla.gnome.org/show_bug.cgi?id=525023) that
affects all svg use within GNOME as well as the ImageMagick "display"
application.  However, at least the latest konqueror and firefox as well as
inkscape and scribus-ng (but not scribus!) give outstanding looking results
for files generated by our svg device driver.

5.14 Ada language support

We now have a complete Ada bindings implemented for PLplot. We also have a
complete set of our standard examples implemented in Ada which give results
that are identical with corresponding results for the C standard examples.
This is an excellent test of a large subset of the Ada bindings. We now
enable Ada by default for our users and request widespread testing of this
new feature.

5.15 OCaml language support

Thanks primarily to Hezekiah M. Carty's efforts we now have a complete OCaml
bindings implemented for PLplot. We also have a complete set of our standard
examples implemented in OCaml which give results that are identical with
corresponding results for the C standard examples. This is an excellent test
of a large subset of the OCaml bindings. We now enable OCaml by default for
our users and request widespread testing of this new feature.

5.16 Perl/PDL language support

Thanks to Doug Hunt's efforts the external Perl/PDL module,
PDL::Graphics::PLplot version 0.46 available at
http://search.cpan.org/dist/PDL-Graphics-PLplot has been brought up to date
to give access to recently added PLplot API.  The instructions for how to
install this module on top of an official PDL release are given in
examples/perl/README.perldemos. Doug has also finished implementing a
complete set of standard examples in Perl/PDL which are part of PLplot and
which produce identical results to their C counterparts if the above updated
module has been installed.  Our build system tests the version of
PDL::Graphics::PLplot that is available, and if it is not 0.46 or later, the
list of Perl/PDL examples that are run as part of our standard tests is
substantially reduced to avoid examples that use the new functionality.  In
sum, if you use PDL::Graphics::PLplot version 0.46 or later the full
complement of PLplot commands is available to you from Perl/PDL, but
otherwise not.

5.17 Updates to various language bindings

A concerted effort has been made to bring all the language bindings up to
date with recently added functions. Ada, C++, f77, f95, Java, OCaml, Octave,
Perl/PDL, Python, and Tcl now all support the common PLplot API (with the
exception of the mapping functions which are not yet implemented for all
bindings due to technical issues.) This is a significant step forward for
those using languages other than C.

5.18 Updates to various examples

To help test the updates to the language bindings the examples have been
thoroughly checked. Ada, C, C++, f77, f95, and OCaml now contain a full set
of non-interactive tests (examples 1-31 excluding 14 and 17). Java, Octave,
Python and Tcl are missing example 19 because of the issue with the mapping
functions. The examples have also been checked to ensure consistent results
between different language bindings. Currently there are still some minor
differences in the results for the tcl examples, probably due to rounding
errors.  Some of the Tcl examples (example 21) require Tcl version 8.5 for
proper support for NaNs.

Also new is an option for the plplot_test.sh script to run the examples
using a debugging command. This is enabled using the --debug option. The
default it to use the valgrind memory checker. This has highlighted at
least one memory leaks in PLplot which have been fixed. It is not part
of the standard ctest tests because it can be _very_ slow for a complete
set of language bindings and device drivers.

5.19 Extension of our test framework

The standard test suite for PLplot now carries out a comparison of the
stdout output (especially important for example 31 which tests most of our
set and get functions) and PostScript output for different languages as a
check.  Thanks to the addition of example 31, the inclusion of examples 14
and 17 in the test suite and other recent extensions of the other
examples we now have rigorous testing in place for almost the entirety
of our common API.  This extensive testing framework has already helped
us track down a number of bugs, and it should make it much easier for us
to maintain high quality for our ongoing PLplot releases.

5.20 Rename test subdirectory to plplot_test

This change was necessary to quit clashing with the "make test" target which
now works for the first time ever (by executing ctest).

5.21 Website support files updated

Our new website content is generated with PHP and uses CSS (cascaded style
sheets) to implement a consistent style.  This new approach demanded lots of
changes in the website support files that are used to generate and upload
our website and which are automatically included with the release.

5.22 Internal changes to function visibility

The internal definitions of functions in PLplot have been significantly
tidied up to allow the use of the -fvisibility=hidden option with newer
versions of gcc. This prevents internal functions from being exported
to the user where possible. This extends the existing support for this
on windows.

5.23 Dynamic driver support in Windows

An interface based on the ltdl library function calls was established
which allows to open and close dynamic link libraries (DLL) during
run-time and call functions from these libraries. As a consequence
drivers can now be compiled into single DLLs separate from the core
PLplot DLL also in Windows. The cmake option ENABLE_DYNDRIVERS is now
ON by default for Windows if a shared PLplot library is built.

5.24 Documentation updates

The DocBook documentation has been updated to include many of the
C-specific functions (for example plAlloc2dGrid) which are not part
of the common API, but are used in the examples and may be helpful
for PLplot users.

5.25 libnistcd (a.k.a. libcd) now built internally for -dev cgm

CGM format is a long-established (since 1987) open standard for vector
graphics that is supported by w3c (see http://www.w3.org/Graphics/WebCGM/).
PLplot has long had a cgm device driver which depended on the (mostly)
public domain libcd library that was distributed in the mid 90's by National
Institute of Standards and Technology (NIST) and which is still available
from http://www.pa.msu.edu/ftp/pub/unix/cd1.3.tar.gz.  As a convenience
to our -dev cgm users, we have brought that
source code in house under lib/nistcd and now build libnistcd routinely
as part of our ordinary builds.  The only changes we have made to the
cd1.3 source code is visibility changes in cd.h and swapping the sense of
the return codes for the test executables so that 0 is returned on success
and 1 on failure.  If you want to test libnistcd on your platform,
please run

make test_nistcd

in the top-level build tree.  (That tests runs all the test executables
that are built as part of cd1.3 and compares the results that are generated
with the *.cgm files that are supplied as part of cd1.3.)

Two applications that convert and/or display CGM results on Linux are
ralcgm (which is called by the ImageMagick convert and display applications)
and uniconvertor.

Some additional work on -dev cgm is required to implement antialiasing and
non-Hershey fonts, but both those should be possible using libnistcd according
to the text that is shown by lib/nistcd/cdtext.cgm and lib/nistcd/cdexp1.cgm.

5.26 get-drv-info now changed to test-drv-info

To make cross-building much easier for PLplot we now configure the *.rc
files that are used to describe our various dynamic devices rather than
generating the required *.rc files with get-drv-info.  We have changed the
name of get-drv-info to test-drv-info.  That name is more appropriate
because that executable has always tested dynamic loading of the driver
plug-ins as well as generating the *.rc files from the information gleaned
from that dynamic loading.  Now, we simply run test-drv-info as an option
(defaults to ON unless cross-building is enabled) and compare the resulting
*.rc file with the one configured by cmake to be sure the dynamic device
has been built correctly.

5.27 Text clipping now enabled by default for the cairo devices

When correct text clipping was first implemented for cairo devices, it was
discovered that the libcairo library of that era (2007-08) did that clipping
quite inefficiently so text clipping was disabled by default.  Recent tests
of text clipping for the cairo devices using libcairo 1.6.4 (released in
2008-04) shows text clipping is quite efficient now.  Therefore, it is now
enabled by default.  If you notice a significant slowdown for some libcairo
version prior to 1.6.4 you can use the option -drvopt text_clipping=0 for
your cairo device plots (and accept the improperly clipped text results that
might occur with that option).  Better yet, use libcairo 1.6.4 or later.

5.28 A powerful qt device driver has been implemented

Thanks to the efforts of Alban Rochel of the QSAS team, we now have a new qt
device driver which delivers the following 9 (!) devices: qtwidget, bmpqt,
jpgqt, pngqt, ppmqt, tiffqt, epsqt, pdfqt, and svgqt. qtwidget is an
elementary interactive device where, for now, the possible interactions
consist of resizing the window and right clicking with the mouse (or hitting
<return> to be consistent with other PLplot interactive devices) to control
paging.  The qtwidget overall size is expressed in pixels. bmpqt, jpgqt,
pngqt, ppmqt, and tiffqt are file devices whose overall sizes are specified
in pixels and whose output is BMP (Windows bitmap), JPEG, PNG, PPM (portable
pixmap), and TIFF (tagged image file format) formatted files. epsqt, pdfqt,
svgqt are file devices whose overall sizes are specified in points (1/72 of
an inch) and whose output is EPS (encapsulated PostScript), PDF, and SVG
formatted files.  The qt device driver is based on the powerful facilities
of Qt4 so all qt devices implement variable opacity (alpha channel) effects
(see example 30).  The qt devices also use system unicode fonts, and deal
with CTL (complex text layout) languages automatically without any
intervention required by the user.  (To show this, try qt device results
from examples 23 [mathematical symbols] and 24 [CTL languages].)

Our exhaustive Linux testing of the qt devices (which consisted of detailed
comparisons for all our standard examples between qt device results and the
corresponding cairo device results) indicates this device driver is mature,
but testing on other platforms is requested to confirm that maturity. Qt-4.5
(the version we used for most of our tests) has some essential SVG
functionality so we recommend that version (downloadable from
http://www.qtsoftware.com/downloads for Linux, Mac OS X, and Windows) for
svgqt.  One of our developers found that pdfqt was orders of magnitude
slower than the other qt devices for Qt-4.4.3 on Ubuntu 8.10 installed on a
64 bit box.  That problem was completely cured by moving to the downloadable
Qt-4.5 version.  However, we have also had good Qt-4.4.3 pdfqt reports on
other platforms.  One of our developers also found that all first pages of
examples were black for just the qtwidget device for Qt-4.5.1 on Mac OS X.
From the other improvements we see in Qt-4.5.1 relative to Qt-4.4.3 we
assume this black first page for qtwidget problem also exists for Qt-4.4.3,
but we haven't tested that combination.

In sum, Qt-4.4.3 is worth trying if it is already installed on your machine,
but if you run into any difficulty with it please switch to Qt-4.5.x (once
Qt-4.5.x is installed all you have to do is to put the 4.5.x version of
qmake in your path, and cmake does the rest).  If the problem persists for
Qt-4.5, then it is worth reporting a qt bug.

5.29 The PLplot API is now accessible from Qt GUI applications

This important new feature has been implemented by Alban Rochel of the QSAS
team as a spin-off of the qt device driver project using the extqt device
(which constitutes the tenth qt device).  See examples/c++/README.qt_example
for a brief description of a simple Qt example which accesses the PLplot API
and which is built in the installed examples tree using the pkg-config
approach. Our build system has been enhanced to configure the necessary
plplotd-qt.pc file.

5.30 NaN / Inf support for some PLplot functions

Some PLplot now correctly handle Nan or Inf values in the data to be plotted.
Line plotting (plline etc) and image plotting (plimage, plimagefr) will
now ignore NaN / Inf values. Currently some of the contour plotting / 3-d
routines do not handle NaN / Inf values. This functionality will
depend on whether the language binding used supports NaN / Inf values.

5.31 Various bug fixes

Various bugs in the 5.9.3 release have been fixed including:

- Include missing file needed for the aqt driver on Mac OS X
- Missing library version number for nistcd
- Fixes for the qt examples with dynamic drivers disabled
- Fixes to several tcl examples so they work with plserver
- Fix pkg-config files to work correctly with Debug / Release build types set
- Make Fortran command line argument parsing work with shared libraries on Windows

5.32 Cairo driver improvements

Improvements to the cairo driver to give better results for bitmap
formats when used with anti-aliasing file viewers.

5.33 PyQt changes

Years ago we got a donation of a hand-crafted pyqt3 interface to PLplot
(some of the functions in plplot_widgetmodule.c in bindings/python) and a
proof-of-concept example (prova.py and qplplot.py in examples/python), but
this code did not gain any developer interest and was therefore not
understood or maintained. Recently one of our core developers has
implemented a sip-generated pyqt4 interface to PLplot (controlled by
plplot_pyqt4.sip in bindings/qt_gui/pyqt4) that builds without problems as a
python extension module, and a good-looking pyqt4 example (pyqt4_example.py
in examples/python) that works well.  Since this pyqt4 approach is
maintained by a PLplot developer it appears to have a good future, and we
have therefore decided to concentrate on pyqt4 and remove the pyqt3 PLplot
interface and example completely.

5.34 Color Palettes

Support has been added to PLplot for user defined color palette files.
These files can be loaded at the command line using the -cmap0 or
-cmap1 commands, or via the API using the plspal0 and plspal1 commands.
The commands cmap0 / plspal0 are used to load cmap0 type files which
specify the colors in PLplot's color table 0. The commands cmap1 /
plspal1 are used to load cmap1 type files which specify PLplot's color
table 1. Examples of both types of files can be found in either the
plplot-source/data directory or the PLplot installed directory
(typically /usr/local/share/plplotx.y.z/ on Linux).

5.35 Reimplementation of a "soft landing" when a bad/missing compiler is
detected

The PLplot core library is written in C so our CMake-based build system will
error out if it doesn't detect a working C compiler.  However all other
compiled languages (Ada, C++, D, Fortran, Java, and OCaml) we support are
optional.  If a working compiler is not available, we give a "soft landing"
(give a warning message, disable the optional component, and keep going).
The old implementation of the soft landing was not applied consistently (C++
was unnecessarily mandatory before) and also caused problems for ccmake (a
CLI front-end to the cmake application) and cmake-gui (a CMake GUI front-end
to the cmake application) which incorrectly dropped languages as a result
even when there was a working compiler.

We now have completely reimplemented the soft landing logic.  The result
works well for cmake, ccmake, and cmake-gui.  The one limitation of this new
method that we are aware of is it only recognizes either the default
compiler chosen by the generator or else a compiler specified by the
environment variable approach (see Official Notice XII above).  Once CMake
bug 9220 has been fixed (so that the OPTIONAL signature of the
enable_language command actually works without erroring out), then our
soft-landing approach (which is a workaround for bug 9220) will be replaced
by the OPTIONAL signature of enable_language, and all CMake methods of
specifying compilers and compiler options will automatically be recognized
as a result.

5.36 Make PLplot aware of LC_NUMERIC locale

For POSIX-compliant systems, locale is set globally so any external
applications or libraries that use the PLplot library or any external
libraries used by the PLplot library or PLplot device drivers could
potentially change the LC_NUMERIC locale used by PLplot to anything those
external applications and libraries choose. The principal consequence of
such choice is the decimal separator could be a comma (for some locales)
rather than the period assumed for the "C" locale.  For previous versions of
PLplot a comma decimal separator would have lead to a large number of
errors, but this issue is now addressed with a side benefit that our plots
now have the capability of displaying the comma (e.g., in axis labels) for
the decimal separator for those locales which require that.

If you are not satisfied with the results for the default PLplot locale set
by external applications and libraries, then you can now choose the
LC_NUMERIC locale for PLplot by (a) specifying the new -locale command-line
option for PLplot (if you do not specify that option, a default locale is
chosen depending on applications and libraries external to PLplot (see
comments above), and (b) setting an environment variable (LC_ALL,
LC_NUMERIC, or LANG on Linux, for example) to some locale that has been
installed on your system.  On Linux, to find what locales are installed, use
the "locale -a" option. The "C" locale is always installed, but usually
there is also a principal locale that works on a platform such as
en_US.UTF8, nl_NL.UTF8, etc.  Furthermore, it is straightforward to build
and install any additional locale you desire.  (For example, on Debian Linux
you do that by running "dpkg-reconfigure locales".)

Normally, users will not use the -locale option since the period
decimal separator that you get for the normal LC_NUMERIC default "C"
locale used by external applications and libraries is fine for their needs.
However, if the resulting decimal separator is not what the user
wants, then they would do something like the following to (a) use a period
decimal separator for command-line input and plots:

LC_ALL=C examples/c/x09c -locale -dev psc -o test.psc -ori 0.5

or (b) use a comma decimal separator for command-line input and plots:

LC_ALL=nl_NL.UTF8 examples/c/x09c -locale -dev psc -o test.psc -ori 0,5

N.B. in either case if the wrong separator is used for input (e.g., -ori 0,5
in the first case or -ori 0.5 in the second) the floating-point conversion
(using atof) is silently terminated at the wrong separator for the locale,
i.e., the fractional part of the number is silently dropped.  This is
obviously not ideal, but on the other hand there are relatively few
floating-point command-line options for PLplot, and we also expect those who
use the -locale option to specifically ask for a given separator for plots
(e.g., axis labels) will then use it for command-line input of
floating-point values as well.

Certain critical areas of the PLplot library (e.g., our color palette file
reading routines and much of the code in our device drivers) absolutely
require a period for the decimal separator.  We now protect those critical
areas by saving the normal PLplot LC_NUMERIC locale (established with the
above -locale option or by default by whatever is set by external
applications or libraries), setting the LC_NUMERIC "C" locale, executing the
critical code, then restoring back to the normal PLplot LC_NUMERIC locale.
Previous versions of PLplot did not have this protection of the critical
areas so were vulnerable to default LC_NUMERIC settings of external
applications that resulted in a comma decimal separator that did not work
correctly for the critical areas.

5.37 Linear gradients have been implemented

The new plgradient routine draws a linear gradient (based on the
current color map 1) at a specified angle with the x axis for a
specified polygon.  Standard examples 25 and 30 now demonstrate use of
plgradient.  Some devices use a software fallback to render the
gradient.  This fallback is implemented with plshades which uses a
series of rectangles to approximate the gradient. Tiny alignment
issues for those rectangles relative to the pixel grid may look
problematic for transparency gradients.  To avoid that issue, we try
to use native gradient capability whenever that is possible for any of
our devices.  Currently, this has been implemented for our svg, qt,
and cairo devices.  The result is nice-looking smooth transparency
gradients for those devices, for, e.g., example 30, page 5.

5.38 Cairo Windows driver implemented

A cairo Windows driver has been implemented. This provides an
interactive cairo driver for Windows similar to xcairo on Linux.
Work to improve its functionality is ongoing.

5.39 Custom axis labelling implemented

Axis text labels can now be customized using the new plslabelfunc function.
This allows a user to specify what text should be draw at a given position
along a plot axis.  Example 19 has been updated to illustrate this function's
use through labelling geographic coordinates in degrees North, South, East and
West.

5.40 Universal coordinate transform implemented

A custom coordinate transformation function can be set using plstransform.
This transformation function affects all subsequent plot function calls which
work with plot window coordinates.  Testing and refinement of this support is
ongoing.

5.41 Support for arbitrary storage of 2D user data

This improvement courtesy of David MacMahon adds support for arbitrary
storage of 2D user data.  This is very similar to the technique employed
by some existing functions (e.g. plfcont and plfshade) that use "evaluator"
functions to access 2D user data that is stored in an arbitrary format.
The new approach extends the concept of a user-supplied (or predefined)
"evaluator" function to a group of user-supplied (or predefined) "operator"
functions.  The operator functions provide for various operations on the
arbitrarily stored 2D data including: get, set, +=, -=, *=, /=, isnan,
minmax, and f2eval.

To facilitate the passing of an entire family of operator functions (via
function pointers), a plf2ops_t structure is defined to contain a
pointer to each type of operator function.  Predefined operator
functions are defined for several common 2D data storage techniques.
Variables (of type plf2ops_t) containing function pointers for these
operator functions are also defined.

New variants of functions that accept 2D data are created.  The new
variants accept the 2D data as two parameters: a pointer to a plf2ops_t
structure containing (pointers to) suitable operator functions and a
PLPointer to the actual 2D data store.  Existing functions that accept
2D data are modified to simply pass their parameters to the
corresponding new variant of the function, along with a pointer to the
suitable predefined plf2ops_t structure of operator function pointers.

The list of functions for which new variants are created is:
c_plimage, c_plimagefr, c_plmesh, c_plmeshc, c_plot3d, c_plot3dc,
c_plot3dcl, c_plshade1, c_plshades, c_plsurf3d, and c_plsurf3dl, and
c_plgriddata.  The new variants are named the same as their
corresponding existing function except that the "c_" prefix is changed
to "plf" (e.g. the new variant of c_plmesh is called plfmesh).

Adds plfvect declaration to plplot.h and changes the names (and only the
names) of some plfvect arguments to make them slightly clearer.  In
order to maintain backwards API compatibility, this function and the
other existing functions that use "evaluator" functions are NOT changed
to use the new operator functions.

Makes plplot.h and libplplot consistent vis-a-vis pltr0f and pltr2d.
Moves the definitions of pltr2f (already declared in plplot.h) from the
sccont.c files of the FORTRAN 77 and Fortran 95 bindings into plcont.c.
Removes pltr0f declaration from plplot.h.

Changes x08c.c to demonstrate use of new support for arbitrary storage
of 2D data arrays.  Shows how to do surface plots with the following
four types of 2D data arrays:

1) PLFLT z[nx][ny];
2) PLfGrid2 z;
3) PLFLT z[nx*ny]; /* row major order */
4) PLFLT z[nx*ny]; /* column major order */

5.42 Font improvements

We have added the underscore to the Hershey glyphs (thanks to David
MacMahon) and slightly rearranged the ascii index to the Hershey
indices so that plpoin now generates the complete set of printable
ascii characters in the correct order for the Hershey fonts (and therefore
the Type1 and TrueType fonts as well).

We have improved how we access TrueType and Type1 fonts via the Hershey
font index (used by plpoin, plsym, and the Hershey escape sequences in pl*tex
commands).  We have added considerably to the Hershey index to Unicode index
translation table both for the compact and extended Hershey indexing scheme,
and we have adopted the standard Unicode to Type1 index translation tables
from http://unicode.org/Public/MAPPINGS/VENDORS/ADOBE/.

We have also dropped the momentary switch to symbol font that was
implemented in the PLplot core library.  That switch was designed to partially
compensate for the lack of symbol glyphs in the standard Type1 fonts.  That
was a bad design because it affected TrueType font devices as well as
the desired Type1 font devices.  To replace this bad idea we now
change from Type1 standard fonts to the Type1 Symbol font (and vice
versa) whenever there is a glyph lookup failure in the Type1 font
device drivers (ps and pdf).

5.42 Alpha value support for plotting in memory.

The function plsmema() was added to the PLplot API. This allows the user
to supply a RGBA formatted array that PLplot can use to do in memory
plotting with alpha value support. At present only the memcairo device
is capable of using RGBA formatted memory. The mem device, at least
for the time being, only supports RGB formatted memory and will exit
if the user attempts to give it RGBA formatted memory to plot in.

5.43 Add a Qt device for in memory plotting.

A new device called memqt has been added for in memory plotting using
Qt. This device is the Qt equivalent of the memcairo device.

5.44 Add discrete legend capability.

A new routine called pllegend has been added to our core C API.
(N.B. This is an experimental API that may be subject to further
change as we gain more experience with it.)  This routine creates a
discrete plot legend with a plotted box, line, and/or line of symbols
for each annotated legend entry. The arguments of pllegend provide
control over the location and size of the legend within the current
subpage as well as the location and characteristics of the elements
(most of which are optional) within that legend. The resulting legend
is clipped at the boundaries of the current subpage

5.45 Add full bindings and examples for the D language.

As of release 5.9.5 we added full bindings and examples for the D
language.  The results for the D examples are generally consistent
with the corresponding C examples which helps to verify the D
bindings.

Since the release of 5.9.5 it has come to our attention that the
version of gdc supplied with several recent versions of Ubuntu has a
very serious bug on 64-bit systems (see
https://bugs.launchpad.net/ubuntu/+source/gdc-4.2/+bug/235955) which
causes several of the plplot D examples to crash. If this affects you,
you are recommended to disable the d bindings or switch to an
alternative d compiler (the Digital Mars compiler is reported to be
good).

5.46 The plstring and plstring3 functions have been added

The plstring function largely supersedes plpoin and plsym
because many(!) more glyphs are accessible with plstring.  The glyph
is specified with a PLplot user string.  As with plmtex and plptex,
the user string can contain FCI escapes to determine the font, UTF-8
code to determine the glyph or else PLplot escapes for Hershey or
unicode text to determine the glyph.  Standard examples 4 and 26 use
plstring.

The plstring3 function largely supersedes plpoin3 for the same (access
to many more glyphs) reasons.  Standard example 18 uses plstring3.

5.47 The pllegend API has been finalized

The function pllegend allows users to create a discrete plot legend
with a plotted colored box, line, and/or line of symbols for each
annotated legend entry.  The pllegend function was first made
available for 5.9.7. Due to feedback from early adopters of pllegend,
we have now added substantially to the pllegend capabilities. and we
now believe pllegend is ready for prime time.  The pllegend
capabilities are documented in our DocBook documentation and
demonstrated in standard examples 4, 26, and 33.

N.B. The current set of changes required a backwards-incompatible
change to the pllegend API.  This requires users who tried this new
functionality for 5.9.7 to reprogramme their pllegend calls.  Since
the pllegend API was labelled experimental for 5.9.7, we will not be
bumping the soversions of the affected PLplot libraries.

5.48 Octave bindings now implemented with swig

Octave is a powerful platform that demands a first-class PLplot
solution, but we were finding it difficult to realize that goal
because we were running up against limitations of the previous
matwrap-generated Octave bindings.  Accordingly, a swig-generated
version of the Octave bindings has now been implemented that builds on
the prior matwrapped bindings effort but also extends it with, e.g.,
bindings for plstring, plstring3, pllegend, and plcolorbar.  These new
octave bindings (which now completely replace the prior matwrapped
bindings) make it possible to run examples 4, 18, 26, and 33 (all of
which have now have been updated to use those functions) and get
consistent results with the corresponding C examples.

Like the matwrapped bindings before it, the new swig-generated octave
bindings currently do not have a number of the PLplot functions
wrapped (e.g., "plmap") that are needed by standard example 19.
However, because of the power of swig we now have some confidence we
can solve this issue in the future.

5.49 Documentation redone for our swig-generated Python and Octave bindings

Through the docstring %feature, swig can generate documentation
strings for certain of the languages it supports (currently Python,
Octave, and Ruby).  We have now removed all such hand-crafted swig
documentation data from bindings/swig-support/plplotcapi.i and
replaced it with generated documentation in the file
bindings/swig-support/swig_documentation.i.  That file is generated
from doc/docbook/src/api.xml using the perl script
doc/docbook/bin/api2swigdoc.pl.  The build system Unix target
"check_swig_documentation" now runs that script and compares results
with bindings/swig-support/swig_documentation.i in the source tree to
make sure that latter file is consistent with any changes that might
have occurred in doc/docbook/src/api.xml.

The resulting Octave and Python user-documentation (obtained by 'help
<PLplot_command_name>' in Octave and 'print ("%s" %
<PLplot_command_name>.__doc__)' in Python is much more detailed than
what was available before using the hand-crafted documentation.  If we
ever decided to generate PLplot bindings for Ruby with swig, this
high-quality user-documentation would be available for that language
as well.

5.50 Support large polygons

Previous releases had an implicit limitation with respect to the
number of vertices in a polygon. This was due to the use of statically
defined arrays (to avoid allocating and freeing memory for each polygon
to be drawn). José Luis García Pallero found this limitation and
provided patches to eliminate this limitation. The strategy is
that for small polygons, the original statically defined arrays
are used and for large polygons new arrays are allocated and freed.
This strategy has been applied to all relevant source files.

5.51 Complete set of PLplot parameters now available for Fortran

The #defines in bindings/swig-support/plplotcapi.i (which are
consistent with those in include/plplot.h) define the complete set of
important PLplot constants (whose names typically start with "PL_").
We have implemented automatic methods of transforming that complete
set of #defines into Fortran parameters that can be used from either
Fortran 77 or Fortran 95.

For Fortran 77, the user must insert an

      include 'plplot_parameters.h'

statement in every function/subroutine/main programme where he expects
to use PLplot constants (whose names typically start with "PL_".  (See
examples/f77/*.fm4 for examples of this method).  When compiling he
must also insert the appropriate -I option to find this file (in
bindings/f77/ in the source tree and currently in
$prefix/lib/fortran/include/plplot$version in the install tree
although that install location may be subject to change).  Note, the
above method does not interfere with existing apps which have
necessarily been forced to define the needed PLplot constants for
themselves.  But for future f77 use, the above statement is
more convenient and much less subject to error than a whole bunch of
parameter statements for the required constants.

For Fortran 95, the complete set of parameters are made available as
part of the plplot module.  So access to this complete set of
parameters is automatic wherever the "use plplot" statement is used.
This is extremely convenient for new Fortran 95 apps that use PLplot,
but, in general, changes will have to be made for existing apps. (See
announcement XX above for the details).

5.52 The plarc function has been added

The plarc function allows drawing filled and outlined arcs in PLplot.
Standard example 3 uses plarc.

5.53 The format for map data used by plmap has changed

The format for map data used by plmap is now the shapefile format.
This is a widely used standard format and there are many sources of data
in this format. This replaces the custom binary format that PLplot used
to use. The support for reading shapefiles is provided by the shapelib
library, which is a new dependency for PLplot. If users do not have this
installed then, by default, they will not get any map capabilities with
PLplot. Support for the old format can still be enabled by setting the
PL_DEPRECATED cmake variable, but this support will be removed in a
subsequent PLplot release.

5.54 Python support for Numeric has been dropped

Support for the python Numeric package has been dropped. This has been
deprecated since 5.9.6. Numeric is no longer supported and is superseded
by numpy. Support for numpy has been the default in plplot for a number
of years so most users should notice no difference.

5.55 Backwards-incompatible API change to non-integer line widths

All functions which take line width arguments (plwidth, plshade*,
pllegend) now use PLFLT values for the line width. This allows device
drivers which are based on modern graphics libraries such as Qt4 and
pango/cairo to make full use (e.g., extremely fine line widths) of the
floating-point line width capabilities of those libraries.  The
replacement of plwid by plwidth, and the change in argument lists for
plshade* and pllegend constitute a backwards incompatible API change
from previous releases and the soname of libraries has been bumped
accordingly (which forces users to recompile PLplot).

5.56 Improvements to the build system for the Cygwin case

The Cygwin platform provides a full-featured Unix environment on
Windows.  CMake has recently been changed (at the request of Cygwin
developers) to emphasize the Unix aspects of the Cygwin platform and
deemphasize the Windows aspects of that platform.  It was argued this
change would tend to make CMake builds of software much more reliable
on Cygwin, and after some small but important changes to our
CMake-based build system to adjust for these recent CMake changes for
Cygwin, we have indeed confirmed that prediction for the PLplot case.
There are still some Cygwin platform issues left which are being
discussed on our Wiki at http://www.miscdebris.net/plplot_wiki/index.php?title=Setup_cygwin,
but some fundamental breakthroughs have also been made for the Cygwin case
that should interest all our Windows users.  For example, for the
first time ever we have been able to build our cairo and qt device
drivers on the Cygwin platform giving our Windows users convenient
access to the many high-quality PLplot devices that are available with
these two different device drivers.

5.57 The plcolorbar API has been finalized

The function plcolorbar allows users to create a color bar (an
annotated subplot representing a continuous range of colors within the
main plot and typically identifying certain colors with certain
numerical values using an axis).  The plcolorbar capabilities are
documented in our DocBook (and doxygen) documentation and demonstrated
in standard examples 16 and 33.

N.B. The previous two releases (5.9.8 and 5.9.9) contained
unadvertised experimental versions of plcolorbar.  Any PLplot user who
found and tried those capabilities will have to reprogramme their
plcolorbar calls to be compatible with the argument list of the latest
version.

5.58 Documentation of the new legend and color bar capabilities of PLplot

The pllegend and plcolorbar API has been documented in both doxygen
and DocBook forms.  In addition, the "advanced use" chapter of the
DocBook form of documentation now contains a section giving an
overview of pllegend and plcolorbar.

N.B. Although we feel the pllegend and plcolorbar API has now been
finalized with regard to the PLplot core developers own interests and
needs, we also realize that as more and more PLplot users take
advantage of these new PLplot capabilities there will likely be calls
to add additional features to pllegend or plcolorbar based on
additional experience with these powerful capabilities.  In general,
we would welcome such feature requests.

5.59 The D bindings and examples have been converted from the
old version of D (D1) to the new version of D (D2)

This change should make PLplot much more relevant for D users
going forward.

See http://en.wikipedia.org/wiki/D_(programming_language)#History for
a discussion of the differences between these two variants of D.

5.60 The DocBook documentation for PLplot is now generated using modern
XML/XSL backend tools for DocBook

These modern backend tools (such as xmlto) replace the
deprecated/unmaintained SGML/DSSL tools we have used before.  For
developers this means generation of our DocBook generation is much
easier. much faster, and much less error-prone.  End users will notice
some improvements in the results (e.g., the table of Greek letters) as
well as some minor style changes.

5.61 Implement experimental build_projects sub-project

The idea here (see cmake/build_projects) is to automate the build of
all PLplot dependencies and the build and test of PLplot itself for
platforms (such as Linux enterprise distributions and all forms of
Windows platforms other than Cygwin) that do not come with modern
versions of PLplot soft dependencies such as Pango/Cairo and Qt.
This project is beginning to work properly for the Linux case, but
still needs lots of work for the Windows case.

5.62 Implement extremely simple "00" example

The point of this standard example is to give the users an extremely
simple tutorial example to help them to get started with 2D plotting
with PLplot.

5.63 Convert to using the Allura form of SourceForge software

We use sourceforge.net as our software hosting facility.  Early in
2013 Sourceforge updated essentially all their support software as
part of the so-called Allura project.  This made it necessary to make
some minor internal PLplot changes such as script changes and different URL's
in the website referring to SourceForge facilities.  The most important
change from the user perspective is the URL for the Allura form
of the svn repository that we use now:

http://svn.code.sf.net/p/plplot/code/trunk/

5.64 Use NON_TRANSITIVE linking by default for the shared libraries case for
all non-windows systems

The point of this change is to reduce overlinking and therefore
the problems caused by overlinking that are mentioned
at http://en.altlinux.org/UnderOverLinkProblems.

Non-transitive linking means link only to libraries that directly
resolve undefined symbols, i.e., do not link to a library just because
it is a dependency of a dependency.

5.65 Update f95 examples to take larger advantage of Fortran 95 capabilities

Previously our f95 examples tended to use legacy Fortran capabilities, but
that situation has substantially changed for this release.

5.66 Substantial additions to the doxygen documentation

One of the on-going documentation projects is to create doxygen
documentation of every single argument of the public API for PLplot.
A substantial increase in such documentation has been implemented
in this release cycle.

5.67 NUMERIC_INCLUDE_PATH ==> NUMPY_INCLUDE_PATH

We have long since dropped support for the Numeric Python module and
are now exclusively using the numpy Python modules instead.
Therefore, we have changed the CMake variable name used in our build
system that holds the location of the numpy headers from the confusing
misnomer, NUMERIC_INCLUDE_PATH, to NUMPY_INCLUDE_PATH.  This change
only impacts PLplot users who in the past have used the cmake option
-DNUMERIC_INCLUDE_PATH to set the CMake variable NUMERIC_INCLUDE_PATH
to the location of the numpy header directory.  Note we discourage
that method since without that user intervention, the build system
uses python and numpy to find the location which should normally be
foolproof and not subject to the inconsistencies or errors possible
with setting the variable.  But if some users still insist on setting
the variable, that variable's name should now be NUMPY_INCLUDE_PATH.

5.68 Major overhaul of the build system and bindings for Tcl and friends

After years of neglect we have worked very hard in the release cycle
leading up to the release of 5.9.11 on our build system and code
interfacing Tcl and friends (Tk, Itcl, Itk, and Iwidgets) with PLplot.
The build system now does a much better job of finding a consistent
set of components for Tcl and friends.  For example, switching from
the system version of those components to a special build of those
components is typically a matter of simply putting tclsh from the
special build first on the PATH.  And after the components of Tcl and
friends are found, the build system does extensive checking to make
sure they are compatible with each other.  The plplottcktk library has
now been split (see remarks in the above OFFICIAL NOTICES for more
details).  Many bugs have been fixed, and all tests documented in
examples/tcl/README.tcldemos and examples/tk/README.tkdemos have now
been implemented as tests via the build system to help avoid any
regressions in the build system and bindings for Tcl and friends in
the future.

5.69 Substantial overhaul of the build system for the Qt-components of PLplot

As a result of these improvements compiling and linking of our
Qt-related components just got a lot more rational, and the
long-standing memory management issues reported by valgrind for
examples/c++/qt_example for the non-dynamic drivers case have been
resolved.

5.70 The epa_build project has been implemented

The goal of this project is to make builds of recent versions of
PLplot dependencies (and PLplot itself) much more convenient on all
platforms.  Once this goal is realized, it should make the full power
of PLplot (which depends on the existence and quality of its
dependencies) readily available on all platforms.  The epa_build
project uses the power of CMake (especially the ExternalProject_Add
command which is why we chose to use the prefix "epa_" in the name of
epa_build) to organize downloading, updating, configuring, building,
testing, and installing of any kind (not just those with CMake-based
build systems) of software project with full dependency support
between all the various builds.  For those users who are not
satisified with the PLplot dependencies on their systems, learn how to
use the epa_build project by consulting cmake/epa_build/README.

The epa_build project is in pretty good shape on Linux; epa_build
configurations work properly for build tools such as Tcl/Tk8.6, Itcl,
Itk, and Iwidgets and for regular packages such as pango (needed for
the cairo device driver), qt4_lite (needed for the qt device driver),
the wxwidgets software package (needed for the wxwidgets device
driver), and many smaller, but useful PLplot dependencies such as
shapelib, libqhull, and libharu.  The total build time is roughly an
hour for an ordinary PC which is not much of a price to pay to get
access to up-to-date versions of virtually all dependencies of PLplot.
In fact, the only known dependency of PLplot not currently covered by
epa_build is octave.  In principle, it should be straightforward to
add an epa_build configurations for octave and its many dependencies,
but that possibility has not been explored yet.

In principle, epa_build should work out of the box on Mac OS X
platforms, but we haven't tested on that platform yet.

Our testing for MinGW/MSYS and Cygwin shows the epa_build project is
still in fairly rough shape on Windows.  It is known that the "plplot"
case (PLplot with all its dependencies) fails in various ways on all
Windows platforms.  Those issues are being actively worked on.  Note,
however, that the "plplot_lite" case (PLplot with all the minor
dependencies but without Tcl etc., build tools and without the pango,
qt4_lite, and wxwidgets dependencies) has been shown to work on
MinGW/MSYS and should probably also work on Cygwin although we haven't
tested that specific case yet.


DETAILED CHANGELOG FOR THIS RELEASE


------------------------------------------------------------------------
r12907 | airwin | 2013-12-22 12:15:07 -0800 (Sun, 22 Dec 2013) | 2 lines
Changed paths:
   M /trunk/README.Release_Manager_Cookbook

Update cookbook of release instructions to what was done for 5.9.11.

------------------------------------------------------------------------
r12906 | airwin | 2013-12-21 22:28:09 -0800 (Sat, 21 Dec 2013) | 7 lines
Changed paths:
   M /trunk/cmake/modules/plplot_version.cmake
   M /trunk/www/examples.php

The release of 5.9.11 should be tomorrow (Sunday).  In anticipation of
that release, bump the release date and PLplot version information.
Also bump the soversions of the Fortran 95 and Tcl libraries (the only
libraries contained in this release where there are known backwards
incompatibilities in the API).


------------------------------------------------------------------------
r12905 | airwin | 2013-12-21 18:44:37 -0800 (Sat, 21 Dec 2013) | 12 lines
Changed paths:
   M /trunk/doc/docbook/src/CMakeLists.txt
   M /trunk/www/documentation.php.in

Propagate decision to drop PostScript form of documentation to one
last bit of CMake logic in the build system where I forgot to make the
change, and also for the generated website.

Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux by
running the scripts/generate_website.sh script described in
README.Release_Manager_Cookbook, and by carefully checking the
local website (especially the html and pdf forms of the docbook
documentation and the html form of the doxygen documentation
that is generated by that script) using the konqueror browser.


------------------------------------------------------------------------
r12904 | airwin | 2013-12-21 18:36:53 -0800 (Sat, 21 Dec 2013) | 3 lines
Changed paths:
   M /trunk/www/examples.php

Change to 5 pages with the 4th one used for the thumbprint for example
22.

------------------------------------------------------------------------
r12903 | airwin | 2013-12-21 17:13:23 -0800 (Sat, 21 Dec 2013) | 2 lines
Changed paths:
   M /trunk/README.release

Tweak.

------------------------------------------------------------------------
r12902 | airwin | 2013-12-21 16:25:16 -0800 (Sat, 21 Dec 2013) | 5 lines
Changed paths:
   M /trunk/bindings/swig-support/swig_documentation.i

Make bindings/swig-support/swig_documentation.i consistent with
automatically generated version of that file generated from
doc/docbook/src/api.xml using the check_swig_documentation target.


------------------------------------------------------------------------
r12901 | airwin | 2013-12-21 16:15:08 -0800 (Sat, 21 Dec 2013) | 2 lines
Changed paths:
   M /trunk/drivers/tk.c

Style previous commit.

------------------------------------------------------------------------
r12900 | airwin | 2013-12-21 16:10:13 -0800 (Sat, 21 Dec 2013) | 2 lines
Changed paths:
   M /trunk/README.release

Add Jerry's contribution to the testing.

------------------------------------------------------------------------
r12899 | airwin | 2013-12-21 13:34:30 -0800 (Sat, 21 Dec 2013) | 2 lines
Changed paths:
   M /trunk/cmake/epa_build/README
   A /trunk/cmake/epa_build/setup/setup_mingw_msys_wine_toolchain
   A /trunk/cmake/epa_build/setup/setup_msys_makefiles

Update instructions for the Windows case.

------------------------------------------------------------------------
r12898 | andrewross | 2013-12-20 12:40:34 -0800 (Fri, 20 Dec 2013) | 3 lines
Changed paths:
   M /trunk/README.release

Updated notes on my Ubunutu / CentOS tests.


------------------------------------------------------------------------
r12897 | airwin | 2013-12-20 11:06:46 -0800 (Fri, 20 Dec 2013) | 3 lines
Changed paths:
   M /trunk/cmake/epa_build/tcl/CMakeLists.txt
   M /trunk/cmake/epa_build/tk/CMakeLists.txt

Properly escape the "\" character for MSYS_PLATFORM builds.  That is,
\unix ==> \\unix

------------------------------------------------------------------------
r12896 | airwin | 2013-12-20 10:13:59 -0800 (Fri, 20 Dec 2013) | 2 lines
Changed paths:
   M /trunk/doc/docbook/src/api.xml

The width argument of plwidth is of type PLFLT and not PLINT.  Fixes bug 136.

------------------------------------------------------------------------
r12895 | airwin | 2013-12-20 10:10:11 -0800 (Fri, 20 Dec 2013) | 5 lines
Changed paths:
   M /trunk/doc/docbook/src/ada.xml

"DOCTYPE" declaration not allowed in chapters that are a subset of the
whole document.  The removal of this line fixed the validation error
generated by "make validate".


------------------------------------------------------------------------
r12894 | airwin | 2013-12-20 09:44:12 -0800 (Fri, 20 Dec 2013) | 2 lines
Changed paths:
   M /trunk/README.release

Fix one other minor typo in the summary of Arjen's test results.

------------------------------------------------------------------------
r12893 | airwin | 2013-12-20 09:41:21 -0800 (Fri, 20 Dec 2013) | 2 lines
Changed paths:
   M /trunk/README.release

Add Felipe Gonzalez's test report.

------------------------------------------------------------------------
r12892 | arjenmarkus | 2013-12-20 01:39:49 -0800 (Fri, 20 Dec 2013) | 1 line
Changed paths:
   M /trunk/README.release

Correctly a typo and added a few sentences on new devices available/tested for Windows/Cygwin.
------------------------------------------------------------------------
r12891 | airwin | 2013-12-19 12:56:26 -0800 (Thu, 19 Dec 2013) | 2 lines
Changed paths:
   M /trunk/plplot_test/CMakeLists.txt

Replace cmake -E copy with more appropriate cmake -E copy_if_different.

------------------------------------------------------------------------
r12890 | jbauck | 2013-12-19 12:45:09 -0800 (Thu, 19 Dec 2013) | 1 line
Changed paths:
   M /trunk/bindings/ada/plplot_auxiliary.ads

Correct type declarations to once again allow building Ada with an Ada 95 compiler.
------------------------------------------------------------------------
r12889 | airwin | 2013-12-19 12:13:08 -0800 (Thu, 19 Dec 2013) | 2 lines
Changed paths:
   M /trunk/README.release

Add Arjen's test contributions.

------------------------------------------------------------------------
r12888 | airwin | 2013-12-19 11:13:32 -0800 (Thu, 19 Dec 2013) | 11 lines
Changed paths:
   M /trunk/cmake/epa_build/ExternalProject.cmake

I have just proved CMake 2.8.11.2 can unpack *.xz archives using the

cmake -E tar zxf *.xz

command.  Therefore, drop using a system tar workaround for this
special case which reduces the differences between the epa_build
version of ExternalProject.cmake and the CMake version (which is
a good direction to go because eventually we may be able to
completely drop the epa_build variant of ExternalProject.cmake


------------------------------------------------------------------------
r12887 | airwin | 2013-12-19 09:24:09 -0800 (Thu, 19 Dec 2013) | 2 lines
Changed paths:
   M /trunk/README.release

Give testers personal credit for all their hard work.

------------------------------------------------------------------------
r12886 | andrewross | 2013-12-19 05:17:16 -0800 (Thu, 19 Dec 2013) | 3 lines
Changed paths:
   M /trunk/cmake/epa_build/qt4_lite/CMakeLists.txt

Comment out Alan's debugging code prior to the release.


------------------------------------------------------------------------
r12885 | andrewross | 2013-12-19 03:43:30 -0800 (Thu, 19 Dec 2013) | 3 lines
Changed paths:
   M /trunk/bindings/c++/plstream.cc
   M /trunk/bindings/c++/plstream.h

cont_width argument for plcolorbar should be PLFLT not PLINT.


------------------------------------------------------------------------
r12884 | airwin | 2013-12-18 17:40:05 -0800 (Wed, 18 Dec 2013) | 9 lines
Changed paths:
   M /trunk/cmake/epa_build/CMakeLists.txt
   M /trunk/cmake/epa_build/plplot/CMakeLists.txt
   M /trunk/cmake/epa_build/plplot_lite/CMakeLists.txt

Temporarily drop wxwidgets from epa_build because it is not required
for the plplot_lite epa_build configuration on Windows and Unix, the
plplot epa_build configuration does not work yet on Windows (because
of issues building the full set of PLplot dependencies), and the
plplot epa_build configuration on Unix of wxwidgets requires a
complete epa_build of the entire stack of gtk libraries in order to
have access to a consistent set of those libraries.


------------------------------------------------------------------------
r12883 | airwin | 2013-12-18 17:35:00 -0800 (Wed, 18 Dec 2013) | 3 lines
Changed paths:
   M /trunk/bindings/wxwidgets/CMakeLists.txt
   M /trunk/cmake/modules/wxwidgets.cmake

Correctly handle rpath issues for builds of all wxwidgets-related PLplot
components.

------------------------------------------------------------------------
r12882 | airwin | 2013-12-18 17:32:58 -0800 (Wed, 18 Dec 2013) | 6 lines
Changed paths:
   M /trunk/cmake/epa_build/wxwidgets/CMakeLists.txt

Try some different toolkit options for the wxwidgets build, but
ultimately none of those worked on Linux except for the gtk
toolkit that is the default (because the other cannot handle
the required (by PLplot) unicode capability).  So comment out the
toolkit options.

------------------------------------------------------------------------
r12881 | airwin | 2013-12-18 17:25:14 -0800 (Wed, 18 Dec 2013) | 3 lines
Changed paths:
   M /trunk/bindings/tk/tkMain.c

Comment out debug print statements that somehow got into a recent
commit.

------------------------------------------------------------------------
r12880 | airwin | 2013-12-18 16:46:00 -0800 (Wed, 18 Dec 2013) | 5 lines
Changed paths:
   M /trunk/README.release

Add descriptions of some (AWI, Andrew, and Phil) test results.  The
summary of Arjen's and Jerry's test results have not been included yet
since that description needs some editing from them.


------------------------------------------------------------------------
r12879 | andrewross | 2013-12-18 13:56:15 -0800 (Wed, 18 Dec 2013) | 3 lines
Changed paths:
   M /trunk/drivers/tk.c

Cast pointer to (void *) in call to free to suppress gcc warning.


------------------------------------------------------------------------
r12878 | andrewross | 2013-12-18 13:53:52 -0800 (Wed, 18 Dec 2013) | 3 lines
Changed paths:
   M /trunk/drivers/tk.c

Fix failure to free memory in tk driver allocated by pl_create_tempfifo.


------------------------------------------------------------------------
r12877 | airwin | 2013-12-17 18:14:25 -0800 (Tue, 17 Dec 2013) | 3 lines
Changed paths:
   M /trunk/cmake/modules/plplot_functions.cmake

Refine the filter_rpath function a little more by removing empty
elements from the rpath list.

------------------------------------------------------------------------
r12876 | airwin | 2013-12-17 14:45:28 -0800 (Tue, 17 Dec 2013) | 12 lines
Changed paths:
   M /trunk/examples/d/Makefile.examples.in

Separate the previous one-step traditional build of D examples into a
compile step and link step.  This reduces the amount of work per step
that gdc has to do and works around a bug in Debian Wheezy gdc which
sometimes segfaults otherwise.  The segfaults were consistently
observed (until this workaround was made) for the
ENABLE_DYNDRIVERS=OFF case for the epa_build environment where there
are both extensive compile flags and link flags. gdc did not segfault
for the traditional build for the epa_build environment when
ENABLE_DYNDRIVERS=ON (presumably because the compile flags and link
flags are much less extensive in that case).


------------------------------------------------------------------------
r12875 | airwin | 2013-12-17 13:03:14 -0800 (Tue, 17 Dec 2013) | 2 lines
Changed paths:
   M /trunk/bindings/tk/CMakeLists.txt

Fix an rpath issue for plserver

------------------------------------------------------------------------
r12874 | airwin | 2013-12-16 21:32:16 -0800 (Mon, 16 Dec 2013) | 9 lines
Changed paths:
   M /trunk/drivers/ps.c
   M /trunk/drivers/psttf.cc

Turn cast from "const char *" to "char *" from implicit (which in the
psttf.cc case ended up as a build error) to explicit form.  This build
error was found as a result of running the comprehensive_test.sh
script, but as far as I can tell nothing was changed for psttf.cc from
when this script ran without errors not that long ago for exactly
the same (normal build as opposed to epa_build) environment.  So I
do not have a clue why we suddenly have this build error, but I
have now fixed it with the explicit casts.

------------------------------------------------------------------------
r12873 | airwin | 2013-12-16 17:27:14 -0800 (Mon, 16 Dec 2013) | 2 lines
Changed paths:
   M /trunk/bindings/tcl/tclAPI.c
   M /trunk/bindings/tk/plframe.c
   M /trunk/bindings/tk/pltkd.h
   M /trunk/bindings/tk/tcpip.c
   M /trunk/bindings/tk/tkMain.c
   M /trunk/drivers/pdf.c
   M /trunk/examples/c/x04c.c
   M /trunk/examples/c++/x31.cc
   M /trunk/src/plctrl.c
   M /trunk/src/pllegend.c

Style previous commits.

------------------------------------------------------------------------
r12872 | airwin | 2013-12-16 17:25:27 -0800 (Mon, 16 Dec 2013) | 3 lines
Changed paths:
   M /trunk/bindings/tcl/CMakeLists.txt
   M /trunk/cmake/modules/tcl-related.cmake
   M /trunk/cmake/modules/tk.cmake
   M /trunk/examples/CMakeLists.txt
   M /trunk/examples/tk/Makefile.examples.in
   M /trunk/src/CMakeLists.txt

Many rpath fixups for the case where Tcl/Tk is not installed in a
system location.

------------------------------------------------------------------------
r12871 | airwin | 2013-12-16 17:18:23 -0800 (Mon, 16 Dec 2013) | 3 lines
Changed paths:
   M /trunk/cmake/epa_build/setup/setup_linux

Drop setting LD_LIBRARY_PATH since this is no longer necessary
to deal with the epa_build swig/libpcre case.

------------------------------------------------------------------------
r12870 | airwin | 2013-12-16 17:15:22 -0800 (Mon, 16 Dec 2013) | 4 lines
Changed paths:
   M /trunk/cmake/epa_build/swig/CMakeLists.txt

Set rpath so that when the epa_build version of swig is loaded by the
run-time loader, the epa_build version of libpcre is found.


------------------------------------------------------------------------
r12869 | airwin | 2013-12-16 15:51:43 -0800 (Mon, 16 Dec 2013) | 4 lines
Changed paths:
   M /trunk/cmake/modules/plplot.cmake

Tweak commentary concerning placement of certain includes which use
the filter_rpath function which depends on languages being defined.


------------------------------------------------------------------------
r12868 | airwin | 2013-12-15 16:14:36 -0800 (Sun, 15 Dec 2013) | 7 lines
Changed paths:
   M /trunk/cmake/epa_build/CMakeLists.txt
   M /trunk/cmake/epa_build/README
   M /trunk/cmake/epa_build/plplot/CMakeLists.txt
   M /trunk/cmake/epa_build/plplot_lite/CMakeLists.txt

Add the ENABLE_COMPREHENSIVE_PLPLOT_TEST option to epa_build which
runs the PLplot comprehensive test script for the exact same build
environment (i.e., cmake options, environment variables, buildtools
that have been built, and dependencies that have been built) as used
for the epa_build of plplot and plplot_lite.


------------------------------------------------------------------------
r12867 | airwin | 2013-12-15 16:03:10 -0800 (Sun, 15 Dec 2013) | 10 lines
Changed paths:
   M /trunk/cmake/modules/pkg-config.cmake

For the traditional build system for the installed examples which
depends on Make and pkg-config, honor the PKG_CONFIG_PATH environment
variable to be more consistent with what CMake does.

In certain cases the previous inconsistency between what CMake found
via pkg-config and what was found by the traditional build system via
pkg-config caused build errors for the traditional build system.
Those errors have now been solved by this fix.


------------------------------------------------------------------------
r12866 | airwin | 2013-12-15 15:56:37 -0800 (Sun, 15 Dec 2013) | 10 lines
Changed paths:
   M /trunk/cmake/modules/tcl-related.cmake

USE_TCL_TK_STUBS option temporarily set to OFF by default for this
release since using the the stubs versions of libTcl and libTk (which
is recommended by Tcl/Tk developers) has proven not to be reliable
(-dev tk segfaults) for version 8.6 of Tcl/Tk.  The stubs versions of
libTcl and libTk work fine for version 8.5 of Tcl/Tk.  Moving from the
deprecated Tcl/Tk API we currently use to the recommended Tcl/Tk API
may allow us to reliably use the stubs versions of libTcl and libTk
for all versions of Tcl/Tk post-release.


------------------------------------------------------------------------
r12865 | airwin | 2013-12-14 13:23:33 -0800 (Sat, 14 Dec 2013) | 5 lines
Changed paths:
   M /trunk/cmake/modules/plplot_functions.cmake

FORTRAN ==> Fortran.  This bug fix should make no difference on Linux
where all three C, CXX, and Fortran variables are identical, but
it will make a (slight) difference on platforms where Fortran has
a different set of system locations than the C and C++ compilers.

------------------------------------------------------------------------
r12864 | airwin | 2013-12-13 11:27:57 -0800 (Fri, 13 Dec 2013) | 11 lines
Changed paths:
   M /trunk/cmake/modules/plplot_functions.cmake

Make filter_rpath function robust against the case where none of
CMAKE_C_IMPLICIT_LINK_DIRECTORIES,
CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES, or
CMAKE_FORTRAN_IMPLICIT_LINK_DIRECTORIES are defined.  This should
never happen according to the CMake documentation, but Phil apparently
found a case where it did happen for the "Visual Studio 11" generator
(for VS2012).  My conclusion is that generator is severely broken, but
nevertheless making this function robust for the case when none of
these variables are defined cannot be a bad thing to do.


------------------------------------------------------------------------
r12863 | airwin | 2013-12-13 10:27:43 -0800 (Fri, 13 Dec 2013) | 6 lines
Changed paths:
   M /trunk/plplot_test/CMakeLists.txt

Reinstate all tests again.

Fixed some bogus logic I recently introduced concerning PLD_psc (which
of course does not exist and PLD_ps should be used instead).


------------------------------------------------------------------------
r12862 | jbauck | 2013-12-13 02:18:08 -0800 (Fri, 13 Dec 2013) | 1 line
Changed paths:
   M /trunk/bindings/ada/plplot.adb
   M /trunk/bindings/ada/plplot.ads
   M /trunk/bindings/ada/plplot_thin.ads
   M /trunk/bindings/ada/plplot_traditional.adb
   M /trunk/bindings/ada/plplot_traditional.ads
   M /trunk/examples/ada/x22a.adb
   M /trunk/examples/ada/xthick22a.adb

Merge my edits with Andrew's from 12852.
------------------------------------------------------------------------
r12861 | airwin | 2013-12-12 21:28:03 -0800 (Thu, 12 Dec 2013) | 2 lines
Changed paths:
   M /trunk/bindings/tcl/tclAPI.c

More useful debug printout of TCL_DIR.

------------------------------------------------------------------------
r12860 | airwin | 2013-12-12 14:09:07 -0800 (Thu, 12 Dec 2013) | 5 lines
Changed paths:
   M /trunk/src/CMakeLists.txt

Fix build system bug recently introduced for combination of disabled
qt and disabled dynamic devices.  (Thanks to Phil Rosenberg for
spotting this.)


------------------------------------------------------------------------
r12859 | airwin | 2013-12-12 13:51:56 -0800 (Thu, 12 Dec 2013) | 2 lines
Changed paths:
   M /trunk/README.release

Describe epa_build.

------------------------------------------------------------------------
r12858 | andrewross | 2013-12-12 13:29:52 -0800 (Thu, 12 Dec 2013) | 3 lines
Changed paths:
   M /trunk/src/plctrl.c

Fix from Phil Rosenberg for compile errors in plplot versions of snprintf and snscanf if the library versions are not available. 


------------------------------------------------------------------------
r12857 | airwin | 2013-12-12 11:53:59 -0800 (Thu, 12 Dec 2013) | 3 lines
Changed paths:
   M /trunk/README.release

Official announcement of Agg backend and freetype deprecation for the
wxwidgets device driver.

------------------------------------------------------------------------
r12856 | andrewross | 2013-12-12 11:51:12 -0800 (Thu, 12 Dec 2013) | 3 lines
Changed paths:
   M /trunk/cmake/modules/fortran.cmake

Fix case of variable name in cmake fortran support.


------------------------------------------------------------------------
r12855 | airwin | 2013-12-12 10:49:15 -0800 (Thu, 12 Dec 2013) | 13 lines
Changed paths:
   M /trunk/cmake/modules/qt.cmake

Provide soft landing when Qt is not available and when Qt is available
but not with a version number that meets our minimum requirements and/or
not with the components that are required.

(Thanks to Phil Rosenberg for reporting this issue.)

Tested by Alan W. Irwin <airwin@users.sourceforge.net> by locally
changing the minimum version required and/or the required components
to non-existent ones to make sure that cmake drops all the Qt-related
devices and the qt bindings and finishes without
errors in those cases.


------------------------------------------------------------------------
r12854 | airwin | 2013-12-12 10:03:36 -0800 (Thu, 12 Dec 2013) | 3 lines
Changed paths:
   M /trunk/cmake/modules/qt.cmake

Fix one issue recently reported by Phil Rosenberg; -DENABLE_qt=OFF now
skips everything to do with Qt detection.

------------------------------------------------------------------------
r12853 | andrewross | 2013-12-11 12:35:24 -0800 (Wed, 11 Dec 2013) | 3 lines
Changed paths:
   M /trunk/src/pllegend.c

Alternative implementation of remove_characters which avoids the valgrind warnings when the code is compiled with -O3.


------------------------------------------------------------------------
r12852 | andrewross | 2013-12-11 04:06:41 -0800 (Wed, 11 Dec 2013) | 3 lines
Changed paths:
   M /trunk/bindings/ada/plplot.adb
   M /trunk/bindings/ada/plplot.ads
   M /trunk/bindings/ada/plplot_thin.ads
   M /trunk/bindings/ada/plplot_traditional.adb
   M /trunk/bindings/ada/plplot_traditional.ads
   M /trunk/examples/ada/x22a.adb
   M /trunk/examples/ada/xthick22a.adb

Implement plpath for Ada bindings and update example 22 to remove the remaining differences.


------------------------------------------------------------------------
r12851 | andrewross | 2013-12-11 02:11:54 -0800 (Wed, 11 Dec 2013) | 3 lines
Changed paths:
   M /trunk/examples/c++/x33.cc

Fix an inconsistent call to delete.


------------------------------------------------------------------------
r12850 | airwin | 2013-12-11 01:44:26 -0800 (Wed, 11 Dec 2013) | 3 lines
Changed paths:
   M /trunk/README.release

Advertise the recent improvements in our build system for the
Qt-related components of the build. 

------------------------------------------------------------------------
r12849 | airwin | 2013-12-11 01:35:08 -0800 (Wed, 11 Dec 2013) | 51 lines
Changed paths:
   M /trunk/bindings/qt_gui/CMakeLists.txt
   M /trunk/bindings/qt_gui/pyqt4/CMakeLists.txt
   A /trunk/cmake/modules/ndp_UseQt4.cmake
   M /trunk/cmake/modules/qt.cmake
   M /trunk/drivers/CMakeLists.txt
   M /trunk/examples/CMakeLists.txt
   M /trunk/examples/Makefile.examples.in
   M /trunk/examples/c++/CMakeLists.txt
   M /trunk/src/CMakeLists.txt

Sort out a large number of small issues with the Qt-related parts of
our build system.  

Implement ndp_UseQt4.cmake which is a greatly modified form of
UseQt4.cmake that replaces all instances of add_definitions and
include_directories (both of which set directory properties which
causes all kinds of undesireable/unneeded extra compile flags for
non-qt PLplot components) with collecting the information in
variables. In that module, define a new function called
set_qt_target_properties to update target COMPILE_DEFINITIONS and
INCLUDE_DIRECTORIES with the appropriate variables where that
information has been stored.

Use set_qt_target_properties (rather than include(UseQt4)) everywhere
a Qt-component of PLplot is being built.

Fix a test_interactive bug (bad Makefile dependency for the qt_example
part of that test) for the traditional build case for the installed
examples.

Bump the minimum Qt4 version to 4.8.2 and limit the number
of components to the minumum (QtCore, QtGui, and QtSvg) required
by PLplot.

Refine the compile flags configured in the plplotd-qt.pc file
to make a better traditional installed-examples build of qt_example.

The constraint of disabling Qt-related parts of PLplot whenever
dynamic drivers were turned off has now been removed.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
using 

scripts/comprehensive_test.sh --cmake_added_options
"-DDEFAULT_NO_DEVICES=ON -DDEFAULT_NO_BINDINGS=ON -DENABLE_qt=ON
-DENABLE_pyqt4=ON -DENABLE_python=ON -DENABLE_cxx=ON -DPLD_epsqt=ON
-DPLD_pdfqt=ON -DPLD_qtwidget=ON -DPLD_bmpqt=ON -DPLD_jpgqt=ON
-DPLD_pngqt=ON -DPLD_ppmqt=ON -DPLD_tiffqt=ON -DPLD_extqt=ON
-DPLD_memqt=ON -DPLD_svgqt=ON"

where those extra options were just to limit the tests to all the Qt
possibilities and not much more (to make the tests go faster while
still keeping their comprehensive nature).

For the critical static and nondynamic cases, I used valgrind on
qt_example to show all these fixups for the Qt components of the
PLplot build have solved the major valgrind issues that occurred
before for that example when dynamic devices were turned off.



------------------------------------------------------------------------
r12848 | airwin | 2013-12-11 01:01:35 -0800 (Wed, 11 Dec 2013) | 17 lines
Changed paths:
   M /trunk/cmake/modules/plplot.cmake
   M /trunk/cmake/modules/plplot_functions.cmake

Improve filter_rpath function by taking advantage of the
well-documented and maintained CMAKE_C_IMPLICIT_LINK_DIRECTORIES,
CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES, and
CMAKE_FORTRAN_IMPLICIT_LINK_DIRECTORIES variables to clean rpath
information of standard directory locations instead of using the
undocumented/poorly maintained internal variable
CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES for the same task.

The new set of variables is only available after C, CXX, and FORTRAN
have been enabled so move include of shapelib module (which uses
filter_rpath) to after when all the languages are defined.

This fix sorted out an issue with the rpath used for qt_example which
was being contaminated by a system location and thus giving the wrong
location when a non-standard Qt location is used.


------------------------------------------------------------------------
r12847 | airwin | 2013-12-11 00:37:43 -0800 (Wed, 11 Dec 2013) | 8 lines
Changed paths:
   M /trunk/cmake/epa_build/CMakeLists.txt
   M /trunk/cmake/epa_build/plplot/CMakeLists.txt
   A /trunk/cmake/epa_build/qt4_lite
   A /trunk/cmake/epa_build/qt4_lite/CMakeLists.txt

Add a qt4_lite epa_build configuration.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
for epa_build with the build_epa_lite target which took ~15 minutes
to complete on my ordinary PC.  Since that build I have done
extensive comprehensive testing of PLplot for the qt case using
these qt4_lite install results, and no issues were found at all.

------------------------------------------------------------------------
r12846 | jbauck | 2013-12-10 23:49:35 -0800 (Tue, 10 Dec 2013) | 1 line
Changed paths:
   M /trunk/doc/docbook/src/ada.xml

Update Ada documentation for new arrow-resetting feature and variant Ada-specific implementations
------------------------------------------------------------------------
r12845 | andrewross | 2013-12-10 23:26:37 -0800 (Tue, 10 Dec 2013) | 3 lines
Changed paths:
   M /trunk/examples/c/x04c.c

Fix typo in variable name.


------------------------------------------------------------------------
r12844 | jbauck | 2013-12-10 18:56:40 -0800 (Tue, 10 Dec 2013) | 1 line
Changed paths:
   M /trunk/bindings/ada/plplot.adb
   M /trunk/bindings/ada/plplot.ads
   M /trunk/bindings/ada/plplot_auxiliary.ads
   M /trunk/bindings/ada/plplot_thin.ads
   M /trunk/bindings/ada/plplot_traditional.adb
   M /trunk/bindings/ada/plplot_traditional.ads
   M /trunk/examples/ada/x22a.adb
   M /trunk/examples/ada/xthick22a.adb
   M /trunk/include/plplot.h

Add the ability to reset arrow style for vector plots to the Ada bindings. Update Ada examples 22 accordingly.
------------------------------------------------------------------------
r12843 | andrewross | 2013-12-10 17:50:02 -0800 (Tue, 10 Dec 2013) | 3 lines
Changed paths:
   M /trunk/examples/f95/x09f.f90

Another valgrind fix.


------------------------------------------------------------------------
r12842 | andrewross | 2013-12-10 17:27:07 -0800 (Tue, 10 Dec 2013) | 3 lines
Changed paths:
   M /trunk/examples/c++/x33.cc

Add missing delete statement to silence valgrind warning.


------------------------------------------------------------------------
r12841 | andrewross | 2013-12-10 16:45:33 -0800 (Tue, 10 Dec 2013) | 3 lines
Changed paths:
   M /trunk/src/plctrl.c

Fix plscmap1l(a) and plspal so they assume the rev array is one element shorter than the coordinate arrays, consistent with the documentation and actual usage of this array. 


------------------------------------------------------------------------
r12840 | andrewross | 2013-12-10 15:52:18 -0800 (Tue, 10 Dec 2013) | 3 lines
Changed paths:
   M /trunk/examples/c/x04c.c
   M /trunk/examples/c++/x14.cc
   M /trunk/examples/c++/x22.cc
   M /trunk/examples/c++/x31.cc
   M /trunk/examples/f95/x04f.f90

Fix up a number of valgrind warnings in some of the examples.


------------------------------------------------------------------------
r12839 | airwin | 2013-12-10 15:49:29 -0800 (Tue, 10 Dec 2013) | 2 lines
Changed paths:
   M /trunk/plplot_test/CMakeLists.txt

Drop tests involving -dev psc (for the unusual case) when that device is not enabled.

------------------------------------------------------------------------
r12838 | airwin | 2013-12-10 15:46:45 -0800 (Tue, 10 Dec 2013) | 4 lines
Changed paths:
   M /trunk/plplot_test/test_c_interactive.sh.in

Previously we dropped example 17 for -dev xcairo because it was painfully
slow for that device.  A similar issue occurs for -dev qtwidgets so drop
example 17 for that device as well.

------------------------------------------------------------------------
r12837 | andrewross | 2013-12-09 16:14:08 -0800 (Mon, 09 Dec 2013) | 3 lines
Changed paths:
   M /trunk/drivers/pdf.c

Fix up various compiler warnings with pdf driver.


------------------------------------------------------------------------
r12836 | arjenmarkus | 2013-12-09 11:33:53 -0800 (Mon, 09 Dec 2013) | 3 lines
Changed paths:
   M /trunk/bindings/f95/plplotf95.def
   M /trunk/bindings/f95/plplotf95_ifort.def
   M /trunk/bindings/f95/plplotf95_mingw.def
   M /trunk/bindings/f95/sccont.c
   M /trunk/bindings/f95/sfstubs.f90
   M /trunk/bindings/f95/sfstubsf95.f90

Add the "rectangular" argument to all variants of plshades. It may not be useful in some cases, but it does not hurt and restores the symmetry.

Note: plshades_multiple_tr now uses a default "rectangular" option of 0 - previously it was 1, but I think that was a mistake, as in most cases the transformation of the coordinates will not result in rectangles.
------------------------------------------------------------------------
r12835 | arjenmarkus | 2013-12-09 11:18:22 -0800 (Mon, 09 Dec 2013) | 1 line
Changed paths:
   M /trunk/bindings/tk/plframe.c
   M /trunk/bindings/tk/pltkd.h
   M /trunk/bindings/tk/tcpip.c
   M /trunk/bindings/tk/tkMain.c

Changes to get the Tk bindings compilable on Windows for the ntk. Not all the code involved in this change set is actually used by the ntk device, but the compiler and linker complain otherwise.
------------------------------------------------------------------------
r12834 | arjenmarkus | 2013-12-09 11:16:11 -0800 (Mon, 09 Dec 2013) | 1 line
Changed paths:
   M /trunk/bindings/tk/pkgIndex.tcl.in

Adjust the package loading script for Cygwin - a specific library name and a different directory. The name (now: cygplplottcltkd-10) should be configured but I could not find the right keyword for it.
------------------------------------------------------------------------
r12833 | andrewross | 2013-12-09 08:48:06 -0800 (Mon, 09 Dec 2013) | 3 lines
Changed paths:
   M /trunk/drivers/pdf.c

Fix another compiler warning.


------------------------------------------------------------------------
r12832 | andrewross | 2013-12-09 06:39:59 -0800 (Mon, 09 Dec 2013) | 3 lines
Changed paths:
   M /trunk/bindings/d/plplot.d
   M /trunk/bindings/java/plplotjavac.i
   M /trunk/bindings/lua/plplotluac.i
   M /trunk/bindings/octave/plplot_octave.i
   M /trunk/bindings/python/plplotcmodule.i
   M /trunk/bindings/qt_gui/plqt.cpp
   M /trunk/bindings/tcl/tclAPI.c
   M /trunk/bindings/tk/plframe.c
   M /trunk/bindings/tk/tkMain.c
   M /trunk/bindings/tk-x-plat/plplotter.c
   M /trunk/drivers/ntk.c
   M /trunk/drivers/tk.c
   M /trunk/examples/c/x01c.c
   M /trunk/examples/c/x17c.c
   M /trunk/examples/c++/x01.cc
   M /trunk/examples/c++/x17.cc
   M /trunk/examples/c++/x22.cc
   M /trunk/examples/d/x22d.d
   M /trunk/examples/java/x22.java

Style recent code changes.


------------------------------------------------------------------------
r12831 | andrewross | 2013-12-09 06:35:42 -0800 (Mon, 09 Dec 2013) | 4 lines
Changed paths:
   M /trunk/drivers/tk.c
   M /trunk/include/plplotP.h
   M /trunk/src/plstdio.c


Fix up const arguments to pl_create_tempfifo. Fixes compiler warning.


------------------------------------------------------------------------
r12830 | andrewross | 2013-12-09 06:12:01 -0800 (Mon, 09 Dec 2013) | 3 lines
Changed paths:
   M /trunk/include/disptab.h

Remove const qualified from strings since they are not strictly const (we allocate / deallocate them).


------------------------------------------------------------------------
r12829 | airwin | 2013-12-09 05:51:15 -0800 (Mon, 09 Dec 2013) | 2 lines
Changed paths:
   M /trunk/cmake/epa_build/CMakeLists.txt

Make sure MSYS_PLATFORM is off for Cygwin in all cases.

------------------------------------------------------------------------
r12828 | andrewross | 2013-12-09 05:41:35 -0800 (Mon, 09 Dec 2013) | 3 lines
Changed paths:
   M /trunk/cmake/modules/plplot.cmake
   M /trunk/examples/c/x01c.c
   M /trunk/examples/c/x17c.c
   M /trunk/examples/c++/x01.cc
   M /trunk/examples/c++/x17.cc
   M /trunk/include/plConfig.h.in

Replace calls to usleep in the C / C++ examples with nanosleep. usleep has been deprecated and removed from the newer POSIX specs in favour of nanosleep.


------------------------------------------------------------------------
r12827 | andrewross | 2013-12-09 05:20:01 -0800 (Mon, 09 Dec 2013) | 3 lines
Changed paths:
   M /trunk/bindings/f95/scstubs.c
   M /trunk/bindings/java/plplotjavac.i
   M /trunk/bindings/lua/plplotluac.i
   M /trunk/bindings/qt_gui/plqt.cpp
   M /trunk/bindings/swig-support/plplotcapi.i
   M /trunk/bindings/tk/tkMain.c
   M /trunk/drivers/cairo.c
   M /trunk/drivers/ntk.c
   M /trunk/drivers/ps.c
   M /trunk/examples/c/x22c.c
   M /trunk/examples/c++/x22.cc
   M /trunk/examples/f95/x22f.f90
   M /trunk/src/plmap.c
   M /trunk/src/plstdio.c

Fix up a load of compiler warnings (testing full build with the compiler standards / warnings flags suggested in README.release).


------------------------------------------------------------------------
r12826 | hezekiahcarty | 2013-12-07 17:07:56 -0800 (Sat, 07 Dec 2013) | 2 lines
Changed paths:
   M /trunk/bindings/ocaml/plplot.mli
   M /trunk/bindings/ocaml/plplot_core.idl
   M /trunk/bindings/ocaml/plplot_impl.c
   M /trunk/examples/ocaml/x22.ml

Add plsvect_reset to OCaml; Update example 22 to match the updated C version

------------------------------------------------------------------------
r12825 | airwin | 2013-12-07 11:37:42 -0800 (Sat, 07 Dec 2013) | 9 lines
Changed paths:
   M /trunk/CMakeLists.txt

Suppress warning messages concerning policies CMP0022 and CMP0023 that
are generated by CMake-2.8.12 and higher. This is a temporary measure
that is required until we bump the minimum version to 2.8.12.1 or
higher and fix the resulting build-system errors which will require
moving from the old LINK_INTERFACE_LIBRARIES method to the modern
INTERFACE_LINK_LIBRARIES method (implemented badly in 2.8.12 and
implemented correctly for the first time in 2.8.12.1).


------------------------------------------------------------------------
r12824 | arjenmarkus | 2013-12-06 22:54:18 -0800 (Fri, 06 Dec 2013) | 1 line
Changed paths:
   M /trunk/bindings/f95/plplotf95.def
   M /trunk/bindings/f95/plplotf95_ifort.def
   M /trunk/bindings/f95/plplotf95_mingw.def
   M /trunk/bindings/f95/sfstubs.f90
   M /trunk/bindings/f95/sfstubsf95.f90

Replace the optional "rectangular" argument to plshades by an overloaded function so that it can be placed in the same position as in the corresponding C function.
------------------------------------------------------------------------
r12823 | airwin | 2013-12-06 18:15:07 -0800 (Fri, 06 Dec 2013) | 2 lines
Changed paths:
   A /trunk/cmake/epa_build/ToDo

Initial commit of "ToDo" list for epa_build.

------------------------------------------------------------------------
r12822 | andrewross | 2013-12-06 05:38:20 -0800 (Fri, 06 Dec 2013) | 3 lines
Changed paths:
   M /trunk/examples/ada/x22a.adb
   M /trunk/examples/ada/xthick22a.adb

Partial update to the ada versions of example 22. Still needs more work (and some changes to the ocaml bindings).


------------------------------------------------------------------------
r12821 | arjenmarkus | 2013-12-05 23:22:11 -0800 (Thu, 05 Dec 2013) | 1 line
Changed paths:
   M /trunk/examples/f95/x22f.f90

Add the "rectangular" optional argument to plshades. With this change example x22f gives exactly the same results as x22c.
------------------------------------------------------------------------
r12820 | arjenmarkus | 2013-12-05 23:20:46 -0800 (Thu, 05 Dec 2013) | 1 line
Changed paths:
   M /trunk/bindings/f95/sccont.c
   M /trunk/bindings/f95/sfstubs.f90

Support the "rectangular" argument to plshades
------------------------------------------------------------------------
r12819 | airwin | 2013-12-05 16:23:27 -0800 (Thu, 05 Dec 2013) | 2 lines
Changed paths:
   M /trunk/cmake/epa_build/README

Correct typo, all ==> build_all.

------------------------------------------------------------------------
r12818 | airwin | 2013-12-05 16:12:13 -0800 (Thu, 05 Dec 2013) | 14 lines
Changed paths:
   M /trunk/cmake/epa_build/docbook-xml/CMakeLists.txt
   M /trunk/cmake/epa_build/docbook-xsl/CMakeLists.txt
   M /trunk/cmake/epa_build/itk/CMakeLists.txt
   M /trunk/cmake/epa_build/iwidgets/CMakeLists.txt
   M /trunk/cmake/epa_build/libagg/CMakeLists.txt
   M /trunk/cmake/epa_build/libqhull/CMakeLists.txt
   M /trunk/cmake/epa_build/ndiff/CMakeLists.txt
   M /trunk/cmake/epa_build/shapelib/CMakeLists.txt
   M /trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt

Replace ${CMAKE_SOURCE_DIR}/${PACKAGE} by the equivalent (and slightly
more understandable) ${CMAKE_CURRENT_SOURCE_DIR}.

Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
epa_build with BUILD_THE_BUILDTOOLS OFF (the default) and the
build_plplot target (which builds, tests, and installs all configured
PLplot primary, secondary, etc., dependencies (including pango/cairo
and wxwidgets) before building, testing, and installing PLplot itself
(with the test_noninteractive target used for the testing part of that
task). Running this build_plplot target took 0.5 hours and verifies at
least on Linux that the new add_subdirectory paradigm for the CMake
logic used for epa_build is working well.


------------------------------------------------------------------------
r12817 | airwin | 2013-12-05 14:59:35 -0800 (Thu, 05 Dec 2013) | 4 lines
Changed paths:
   M /trunk/cmake/epa_build/CMakeLists.txt

Fix dependencies handling bug (the last one found by the complicated
dependencies in the build_plplot case) and comment out the debug
messages that allowed me to debug this issue.

------------------------------------------------------------------------
r12816 | airwin | 2013-12-05 14:56:28 -0800 (Thu, 05 Dec 2013) | 3 lines
Changed paths:
   M /trunk/cmake/epa_build/configured_pango.patch

Update this reversed patch to the latest automatically configured version of
itstools/CMakeLists.txt.

------------------------------------------------------------------------
r12815 | airwin | 2013-12-05 14:52:36 -0800 (Thu, 05 Dec 2013) | 6 lines
Changed paths:
   M /trunk/cmake/epa_build/add_packages.xml
   M /trunk/cmake/epa_build/libxml2/CMakeLists.txt
   M /trunk/cmake/epa_build/swig/CMakeLists.txt

Hopefully this is the last correction from the BP_ prefix to the
correct EPA_ prefix for variable names.  This 
affects the swig build in the BUILD_THE_BUILDTOOLS case
(which libpcre library to use) 
and fixes the libxml2 build.

------------------------------------------------------------------------
r12814 | airwin | 2013-12-05 14:46:13 -0800 (Thu, 05 Dec 2013) | 3 lines
Changed paths:
   M /trunk/cmake/epa_build/libharu/CMakeLists.txt

Replace incorrect ${CMAKE_CURRENT_SOURCE_DIR}/${PACKAGE} with the
correct ${CMAKE_CURRENT_SOURCE_DIR}.

------------------------------------------------------------------------
r12813 | airwin | 2013-12-05 12:53:04 -0800 (Thu, 05 Dec 2013) | 3 lines
Changed paths:
   M /trunk/cmake/epa_build/libagg/CMakeLists.txt
   M /trunk/cmake/epa_build/libharu/CMakeLists.txt

Fix cut and paste error where I inadvertently created a tcl dependency
that does not exist.

------------------------------------------------------------------------
r12812 | airwin | 2013-12-05 02:48:48 -0800 (Thu, 05 Dec 2013) | 15 lines
Changed paths:
   M /trunk/cmake/epa_build/CMakeLists.txt
   M /trunk/cmake/epa_build/cairo/CMakeLists.txt
   M /trunk/cmake/epa_build/cmake/CMakeLists.txt
   M /trunk/cmake/epa_build/docbook-xml/CMakeLists.txt
   M /trunk/cmake/epa_build/docbook-xsl/CMakeLists.txt
   M /trunk/cmake/epa_build/epa_CMakeLists.txt.in
   M /trunk/cmake/epa_build/fontconfig/CMakeLists.txt
   M /trunk/cmake/epa_build/glib/CMakeLists.txt
   M /trunk/cmake/epa_build/gobject-introspection/CMakeLists.txt
   M /trunk/cmake/epa_build/gperf/CMakeLists.txt
   M /trunk/cmake/epa_build/gtk-doc/CMakeLists.txt
   M /trunk/cmake/epa_build/harfbuzz/CMakeLists.txt
   M /trunk/cmake/epa_build/intltool/CMakeLists.txt
   M /trunk/cmake/epa_build/itcl3/CMakeLists.txt
   M /trunk/cmake/epa_build/itk/CMakeLists.txt
   M /trunk/cmake/epa_build/itk3/CMakeLists.txt
   M /trunk/cmake/epa_build/itstool/CMakeLists.txt
   M /trunk/cmake/epa_build/iwidgets/CMakeLists.txt
   A /trunk/cmake/epa_build/iwidgets4.0
   A /trunk/cmake/epa_build/iwidgets4.0/CMakeLists.txt
   M /trunk/cmake/epa_build/libagg/CMakeLists.txt
   M /trunk/cmake/epa_build/libffi/CMakeLists.txt
   M /trunk/cmake/epa_build/libharu/CMakeLists.txt
   M /trunk/cmake/epa_build/libpcre/CMakeLists.txt
   M /trunk/cmake/epa_build/libqhull/CMakeLists.txt
   M /trunk/cmake/epa_build/libxml2/CMakeLists.txt
   M /trunk/cmake/epa_build/libxslt/CMakeLists.txt
   M /trunk/cmake/epa_build/ndiff/CMakeLists.txt
   M /trunk/cmake/epa_build/pango/CMakeLists.txt
   M /trunk/cmake/epa_build/pixman/CMakeLists.txt
   M /trunk/cmake/epa_build/pkg-config/CMakeLists.txt
   M /trunk/cmake/epa_build/plplot/CMakeLists.txt
   A /trunk/cmake/epa_build/plplot_lite
   A /trunk/cmake/epa_build/plplot_lite/CMakeLists.txt
   M /trunk/cmake/epa_build/ragel/CMakeLists.txt
   M /trunk/cmake/epa_build/shapelib/CMakeLists.txt
   M /trunk/cmake/epa_build/subversion/CMakeLists.txt
   M /trunk/cmake/epa_build/swig/CMakeLists.txt
   M /trunk/cmake/epa_build/tcl/CMakeLists.txt
   M /trunk/cmake/epa_build/wxwidgets/CMakeLists.txt
   M /trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt
   M /trunk/cmake/epa_build/yelp-tools/CMakeLists.txt
   M /trunk/cmake/epa_build/yelp-xsl/CMakeLists.txt

Commit the changes to move to the new "add_subdirectory" paradigm for
epa_build.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
using the epa_build -DBUILD_THE_BUILDTOOLS=ON cmake option and
the build_all target (which built and installed cmake, pkg-config, swig, libpcre,
tk(8.6), tcl(8.6), itk(4.0), iwidgets(4.1.0), itcl3(3.4), itk3(3.3), and
iwidgets4.0(4.0.1) without issues in just 11.5 minutes.

N.B. the more normal epa_build with -DBUILD_THE_BUILDTOOLS=OFF (which
builds PLplot and its normal dependencies using the above build tools)
has not been tested yet, and there are presumably a few minor issues
still to straighten out for that case.


------------------------------------------------------------------------
r12811 | airwin | 2013-12-05 01:20:44 -0800 (Thu, 05 Dec 2013) | 6 lines
Changed paths:
   M /trunk/cmake/epa_build/configure_epa.cmake

BP_ ==> EPA_

This fix has a very large effect since it affects all epa_build
configurations that are automatically generated.


------------------------------------------------------------------------
r12810 | andrewross | 2013-12-04 16:12:52 -0800 (Wed, 04 Dec 2013) | 3 lines
Changed paths:
   M /trunk/examples/ocaml/x22.ml

Partial update to the ocaml version of example 22. Still needs more work (and some changes to the ocaml bindings).


------------------------------------------------------------------------
r12809 | airwin | 2013-12-04 11:04:27 -0800 (Wed, 04 Dec 2013) | 17 lines
Changed paths:
   M /trunk/cmake/epa_build/CMakeLists.txt
   M /trunk/cmake/epa_build/tcl/CMakeLists.txt
   M /trunk/cmake/epa_build/tk/CMakeLists.txt

Substantially simplify (using GLOBAL properties) and clean up the
CMake logic for the dependency processing for epa_build.

Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
the epa_build -DBUILD_THE_BUILDTOOLS=ON cmake option and the build_tk
target (which depends on build_tcl).  I also tried some local
variations with (1) tk depending on tk and (2) tk depending on tcl
depending on tk to verify that the circular dependency checking code
is working.

N.B. The tcl and tk build configurations are the only ones so far that
have been completely converted to the new add_subdirectory paradigm.
However, now that that paradigm has been finalized, it should be
straightforward to complete the conversion for all other build
configurations.


------------------------------------------------------------------------
r12808 | airwin | 2013-12-03 22:43:38 -0800 (Tue, 03 Dec 2013) | 13 lines
Changed paths:
   M /trunk/cmake/epa_build/CMakeLists.txt
   M /trunk/cmake/epa_build/tk/CMakeLists.txt

Implement CMake logic to handle dependencies correctly for the new
epa_build add_subdirectory paradigm.

Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux
using epa_build with -DBUILD_THE_BUILD_TOOLS=ON cmake option and
the build_tk target with the build_tk dependency on build_tcl
correctly taken care of.

N.B. This is a good start showing the dependent build case works, but
there is still a lot of editing to do to get build configurations
other than Tcl and Tk compatible with the new paradigm.


------------------------------------------------------------------------
r12807 | airwin | 2013-12-03 15:56:24 -0800 (Tue, 03 Dec 2013) | 10 lines
Changed paths:
   M /trunk/cmake/epa_build/CMakeLists.txt
   M /trunk/cmake/epa_build/tcl/CMakeLists.txt

Create the first build configuration using the new add_subdirectory
paradigm for epa_build.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
the -DBUILD_THE_BUILDTOOLS=ON configuration of epa_build and the
build_tcl target.

N.B. the tcl build configuration has no dependencies so the dependency
processing was not tested by this test.

------------------------------------------------------------------------
r12806 | andrewross | 2013-12-03 05:03:26 -0800 (Tue, 03 Dec 2013) | 3 lines
Changed paths:
   M /trunk/examples/tcl/x22.tcl

Update tcl version of example 22 consistent with C version.


------------------------------------------------------------------------
r12805 | andrewross | 2013-12-03 05:02:59 -0800 (Tue, 03 Dec 2013) | 3 lines
Changed paths:
   M /trunk/bindings/tcl/plapi.tpl
   M /trunk/bindings/tcl/tclAPI.c

Update tcl bindings to plsvect will accept NULL arguments.


------------------------------------------------------------------------
r12804 | arjenmarkus | 2013-12-03 03:49:15 -0800 (Tue, 03 Dec 2013) | 1 line
Changed paths:
   M /trunk/examples/tk/runAllDemos.tcl

Grey out several examples in the full set. These either do not work or have not been propagated yet. The variable greyedOut holds the list of these examples.
------------------------------------------------------------------------
r12803 | airwin | 2013-12-01 23:43:42 -0800 (Sun, 01 Dec 2013) | 2 lines
Changed paths:
   M /trunk/cmake/epa_build/configured_pango.patch

Update patch to be consistent with other recent changes.

------------------------------------------------------------------------
r12802 | airwin | 2013-12-01 23:39:09 -0800 (Sun, 01 Dec 2013) | 6 lines
Changed paths:
   M /trunk/cmake/epa_build/itstool/CMakeLists.txt

Add itstool-1.2.0-python-location-fixes.patch which is normally done
automatically after itstool/CMakeLists.txt is automatically
configured, but the changes were so large that this process had to be
done by hand editing this time.


------------------------------------------------------------------------
r12801 | airwin | 2013-12-01 23:25:56 -0800 (Sun, 01 Dec 2013) | 8 lines
Changed paths:
   M /trunk/cmake/epa_build/cmake/CMakeLists.txt
   M /trunk/cmake/epa_build/docbook-xml/CMakeLists.txt
   M /trunk/cmake/epa_build/docbook-xsl/CMakeLists.txt
   M /trunk/cmake/epa_build/itcl3/CMakeLists.txt
   M /trunk/cmake/epa_build/itk/CMakeLists.txt
   M /trunk/cmake/epa_build/itk3/CMakeLists.txt
   M /trunk/cmake/epa_build/iwidgets/CMakeLists.txt
   M /trunk/cmake/epa_build/libagg/CMakeLists.txt
   M /trunk/cmake/epa_build/libharu/CMakeLists.txt
   M /trunk/cmake/epa_build/libqhull/CMakeLists.txt
   M /trunk/cmake/epa_build/ndiff/CMakeLists.txt
   M /trunk/cmake/epa_build/pkg-config/CMakeLists.txt
   M /trunk/cmake/epa_build/plplot/CMakeLists.txt
   M /trunk/cmake/epa_build/shapelib/CMakeLists.txt
   M /trunk/cmake/epa_build/subversion/CMakeLists.txt
   M /trunk/cmake/epa_build/tcl/CMakeLists.txt
   M /trunk/cmake/epa_build/tk/CMakeLists.txt
   M /trunk/cmake/epa_build/wxwidgets/CMakeLists.txt
   M /trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt

Update automatically configured builds to new add_subdirectory method
while replacing all "BP_" variables by the "EPA_" equivalents if those
are set in the top-level CMakeLists.txt file, or else dropping the
${BP_PROJECT}_ prefix altogether when warranted since the variable
scope issues are much reduced with the add_subdirectory method
we are still in the process of implementing.


------------------------------------------------------------------------
r12800 | airwin | 2013-12-01 23:19:58 -0800 (Sun, 01 Dec 2013) | 7 lines
Changed paths:
   M /trunk/cmake/epa_build/CMakeLists.txt
   M /trunk/cmake/epa_build/cairo/CMakeLists.txt
   M /trunk/cmake/epa_build/epa_CMakeLists.txt.in
   M /trunk/cmake/epa_build/fontconfig/CMakeLists.txt
   M /trunk/cmake/epa_build/glib/CMakeLists.txt
   M /trunk/cmake/epa_build/gobject-introspection/CMakeLists.txt
   M /trunk/cmake/epa_build/gperf/CMakeLists.txt
   M /trunk/cmake/epa_build/gtk-doc/CMakeLists.txt
   M /trunk/cmake/epa_build/harfbuzz/CMakeLists.txt
   M /trunk/cmake/epa_build/intltool/CMakeLists.txt
   M /trunk/cmake/epa_build/itstool/CMakeLists.txt
   M /trunk/cmake/epa_build/libffi/CMakeLists.txt
   M /trunk/cmake/epa_build/libpcre/CMakeLists.txt
   M /trunk/cmake/epa_build/libxml2/CMakeLists.txt
   M /trunk/cmake/epa_build/libxslt/CMakeLists.txt
   M /trunk/cmake/epa_build/pango/CMakeLists.txt
   M /trunk/cmake/epa_build/pixman/CMakeLists.txt
   M /trunk/cmake/epa_build/ragel/CMakeLists.txt
   M /trunk/cmake/epa_build/swig/CMakeLists.txt
   M /trunk/cmake/epa_build/yelp-tools/CMakeLists.txt
   M /trunk/cmake/epa_build/yelp-xsl/CMakeLists.txt

Update automatically configured builds to new add_subdirectory method
while replacing all "BP_" variables by the "EPA_" equivalents if those
are set in the top-level CMakeLists.txt file, or else dropping the
${BP_PROJECT}_ prefix altogether when warranted since the variable
scope issues are much reduced with the add_subdirectory method
we are still in the process of implementing.

------------------------------------------------------------------------
r12799 | airwin | 2013-12-01 17:48:01 -0800 (Sun, 01 Dec 2013) | 4 lines
Changed paths:
   M /trunk/cmake/epa_build/README.developers
   M /trunk/cmake/epa_build/update_added_packages.sh
   M /trunk/cmake/epa_build/update_pango_packages.sh

Update scripts for regenerating build configurations, and refer to
those scripts in the developer documentation rather than repeating
all the commands in those scripts.

------------------------------------------------------------------------
r12798 | airwin | 2013-12-01 16:53:19 -0800 (Sun, 01 Dec 2013) | 9 lines
Changed paths:
   M /trunk/cmake/epa_build/ragel/CMakeLists.txt

Propagate CXXFLAGS and drop -fvisibility=hidden from both the CFLAGS
and CXXFLAGS environment variables for the automatically configured
build packages.  This change is made because some of the software
packages whose builds are automatically configured by the procedure
described in README.developers) do not have gcc visibility support so
it is easiest for now (until most do have visibility support) to drop
that possibility for all of these packages.


------------------------------------------------------------------------
r12797 | airwin | 2013-12-01 16:39:22 -0800 (Sun, 01 Dec 2013) | 14 lines
Changed paths:
   M /trunk/cmake/epa_build/configure_epa.cmake

Use the new name of the template file, epa_CMakeLists.txt.in and
change the names of the configured files from */bp.cmake to */CMakeLists.txt

Tested by Alan W. Irwin <airwin@users.sourceforge.net> using the
procedure in README.developers.  The result of this reconfiguration of
most of the build configurations was no changes at all which confirms
the procedure in README.developers is now consistent with the new
*/CMakeLists.txt naming scheme.

N.B. this consistency is a good first step but there is more to
do before the planned add_subdirectory technique for epa_build
works.


------------------------------------------------------------------------
r12796 | airwin | 2013-12-01 16:33:22 -0800 (Sun, 01 Dec 2013) | 3 lines
Changed paths:
   M /trunk/cmake/epa_build/configured_pango.patch

Change the name of the file being patched from bp.cmake to
CMakeLists.txt

------------------------------------------------------------------------
r12795 | airwin | 2013-12-01 16:27:33 -0800 (Sun, 01 Dec 2013) | 5 lines
Changed paths:
   M /trunk/cmake/epa_build/README.developers
   D /trunk/cmake/epa_build/configure_bp.cmake
   A /trunk/cmake/epa_build/configure_epa.cmake (from /trunk/cmake/epa_build/configure_bp.cmake:12783)
   A /trunk/cmake/epa_build/epa_CMakeLists.txt.in (from /trunk/cmake/epa_build/template.bp.in:12790)
   D /trunk/cmake/epa_build/template.bp.in

Rename 
template.bp.in ==> epa_CMakeLists.txt.in
configure_bp.cmake ==> configure_epa.cmake


------------------------------------------------------------------------
r12794 | airwin | 2013-12-01 16:16:47 -0800 (Sun, 01 Dec 2013) | 11 lines
Changed paths:
   A /trunk/cmake/epa_build/cairo/CMakeLists.txt (from /trunk/cmake/epa_build/cairo/bp.cmake:12790)
   D /trunk/cmake/epa_build/cairo/bp.cmake
   A /trunk/cmake/epa_build/cmake/CMakeLists.txt (from /trunk/cmake/epa_build/cmake/bp.cmake:12783)
   D /trunk/cmake/epa_build/cmake/bp.cmake
   A /trunk/cmake/epa_build/docbook-xml/CMakeLists.txt (from /trunk/cmake/epa_build/docbook-xml/bp.cmake:12793)
   D /trunk/cmake/epa_build/docbook-xml/bp.cmake
   A /trunk/cmake/epa_build/docbook-xsl/CMakeLists.txt (from /trunk/cmake/epa_build/docbook-xsl/bp.cmake:12793)
   D /trunk/cmake/epa_build/docbook-xsl/bp.cmake
   A /trunk/cmake/epa_build/fontconfig/CMakeLists.txt (from /trunk/cmake/epa_build/fontconfig/bp.cmake:12790)
   D /trunk/cmake/epa_build/fontconfig/bp.cmake
   A /trunk/cmake/epa_build/glib/CMakeLists.txt (from /trunk/cmake/epa_build/glib/bp.cmake:12790)
   D /trunk/cmake/epa_build/glib/bp.cmake
   A /trunk/cmake/epa_build/gobject-introspection/CMakeLists.txt (from /trunk/cmake/epa_build/gobject-introspection/bp.cmake:12790)
   D /trunk/cmake/epa_build/gobject-introspection/bp.cmake
   A /trunk/cmake/epa_build/gperf/CMakeLists.txt (from /trunk/cmake/epa_build/gperf/bp.cmake:12790)
   D /trunk/cmake/epa_build/gperf/bp.cmake
   A /trunk/cmake/epa_build/gtk-doc/CMakeLists.txt (from /trunk/cmake/epa_build/gtk-doc/bp.cmake:12790)
   D /trunk/cmake/epa_build/gtk-doc/bp.cmake
   A /trunk/cmake/epa_build/harfbuzz/CMakeLists.txt (from /trunk/cmake/epa_build/harfbuzz/bp.cmake:12790)
   D /trunk/cmake/epa_build/harfbuzz/bp.cmake
   A /trunk/cmake/epa_build/intltool/CMakeLists.txt (from /trunk/cmake/epa_build/intltool/bp.cmake:12790)
   D /trunk/cmake/epa_build/intltool/bp.cmake
   A /trunk/cmake/epa_build/itcl3/CMakeLists.txt (from /trunk/cmake/epa_build/itcl3/bp.cmake:12783)
   D /trunk/cmake/epa_build/itcl3/bp.cmake
   A /trunk/cmake/epa_build/itk/CMakeLists.txt (from /trunk/cmake/epa_build/itk/bp.cmake:12783)
   D /trunk/cmake/epa_build/itk/bp.cmake
   A /trunk/cmake/epa_build/itk3/CMakeLists.txt (from /trunk/cmake/epa_build/itk3/bp.cmake:12783)
   D /trunk/cmake/epa_build/itk3/bp.cmake
   A /trunk/cmake/epa_build/itstool/CMakeLists.txt (from /trunk/cmake/epa_build/itstool/bp.cmake:12790)
   D /trunk/cmake/epa_build/itstool/bp.cmake
   A /trunk/cmake/epa_build/iwidgets/CMakeLists.txt (from /trunk/cmake/epa_build/iwidgets/bp.cmake:12793)
   D /trunk/cmake/epa_build/iwidgets/bp.cmake
   A /trunk/cmake/epa_build/libagg/CMakeLists.txt (from /trunk/cmake/epa_build/libagg/bp.cmake:12793)
   D /trunk/cmake/epa_build/libagg/bp.cmake
   A /trunk/cmake/epa_build/libffi/CMakeLists.txt (from /trunk/cmake/epa_build/libffi/bp.cmake:12790)
   D /trunk/cmake/epa_build/libffi/bp.cmake
   A /trunk/cmake/epa_build/libharu/CMakeLists.txt (from /trunk/cmake/epa_build/libharu/bp.cmake:12783)
   D /trunk/cmake/epa_build/libharu/bp.cmake
   A /trunk/cmake/epa_build/libpcre/CMakeLists.txt (from /trunk/cmake/epa_build/libpcre/bp.cmake:12790)
   D /trunk/cmake/epa_build/libpcre/bp.cmake
   A /trunk/cmake/epa_build/libqhull/CMakeLists.txt (from /trunk/cmake/epa_build/libqhull/bp.cmake:12793)
   D /trunk/cmake/epa_build/libqhull/bp.cmake
   A /trunk/cmake/epa_build/libxml2/CMakeLists.txt (from /trunk/cmake/epa_build/libxml2/bp.cmake:12790)
   D /trunk/cmake/epa_build/libxml2/bp.cmake
   A /trunk/cmake/epa_build/libxslt/CMakeLists.txt (from /trunk/cmake/epa_build/libxslt/bp.cmake:12790)
   D /trunk/cmake/epa_build/libxslt/bp.cmake
   A /trunk/cmake/epa_build/ndiff/CMakeLists.txt (from /trunk/cmake/epa_build/ndiff/bp.cmake:12793)
   D /trunk/cmake/epa_build/ndiff/bp.cmake
   A /trunk/cmake/epa_build/pango/CMakeLists.txt (from /trunk/cmake/epa_build/pango/bp.cmake:12790)
   D /trunk/cmake/epa_build/pango/bp.cmake
   A /trunk/cmake/epa_build/pixman/CMakeLists.txt (from /trunk/cmake/epa_build/pixman/bp.cmake:12790)
   D /trunk/cmake/epa_build/pixman/bp.cmake
   A /trunk/cmake/epa_build/pkg-config/CMakeLists.txt (from /trunk/cmake/epa_build/pkg-config/bp.cmake:12783)
   D /trunk/cmake/epa_build/pkg-config/bp.cmake
   A /trunk/cmake/epa_build/plplot/CMakeLists.txt (from /trunk/cmake/epa_build/plplot/bp.cmake:12787)
   D /trunk/cmake/epa_build/plplot/bp.cmake
   A /trunk/cmake/epa_build/ragel/CMakeLists.txt (from /trunk/cmake/epa_build/ragel/bp.cmake:12783)
   D /trunk/cmake/epa_build/ragel/bp.cmake
   A /trunk/cmake/epa_build/shapelib/CMakeLists.txt (from /trunk/cmake/epa_build/shapelib/bp.cmake:12793)
   D /trunk/cmake/epa_build/shapelib/bp.cmake
   A /trunk/cmake/epa_build/subversion/CMakeLists.txt (from /trunk/cmake/epa_build/subversion/bp.cmake:12783)
   D /trunk/cmake/epa_build/subversion/bp.cmake
   A /trunk/cmake/epa_build/swig/CMakeLists.txt (from /trunk/cmake/epa_build/swig/bp.cmake:12790)
   D /trunk/cmake/epa_build/swig/bp.cmake
   A /trunk/cmake/epa_build/tcl/CMakeLists.txt (from /trunk/cmake/epa_build/tcl/bp.cmake:12783)
   D /trunk/cmake/epa_build/tcl/bp.cmake
   A /trunk/cmake/epa_build/tk/CMakeLists.txt (from /trunk/cmake/epa_build/tk/bp.cmake:12783)
   D /trunk/cmake/epa_build/tk/bp.cmake
   A /trunk/cmake/epa_build/wxwidgets/CMakeLists.txt (from /trunk/cmake/epa_build/wxwidgets/bp.cmake:12788)
   D /trunk/cmake/epa_build/wxwidgets/bp.cmake
   A /trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt (from /trunk/cmake/epa_build/xmlcatalog-wrapper/bp.cmake:12785)
   D /trunk/cmake/epa_build/xmlcatalog-wrapper/bp.cmake
   A /trunk/cmake/epa_build/yelp-tools/CMakeLists.txt (from /trunk/cmake/epa_build/yelp-tools/bp.cmake:12790)
   D /trunk/cmake/epa_build/yelp-tools/bp.cmake
   A /trunk/cmake/epa_build/yelp-xsl/CMakeLists.txt (from /trunk/cmake/epa_build/yelp-xsl/bp.cmake:12790)
   D /trunk/cmake/epa_build/yelp-xsl/bp.cmake

In preparation for the "add_subdirectory" reorganization of epa_build
rename all existing */bp.cmake files as */CMakeLists.txt files.

N.B. this commit breaks the epa_build project which should not be
expected to work again until the final commit in this series of
changes which should implement using add_subdirectory to access the
CMake logic in these (newly renamed) */CMakeLists.txt files without
the variable scope issues that occurred for the previous "include
*/bp.cmake" approach.


------------------------------------------------------------------------
r12793 | airwin | 2013-12-01 14:58:49 -0800 (Sun, 01 Dec 2013) | 16 lines
Changed paths:
   D /trunk/cmake/epa_build/docbook-xml/CMakeLists.txt
   M /trunk/cmake/epa_build/docbook-xml/bp.cmake
   A /trunk/cmake/epa_build/docbook-xml/docbook-xml_CMakeLists.txt (from /trunk/cmake/epa_build/docbook-xml/CMakeLists.txt:12783)
   D /trunk/cmake/epa_build/docbook-xsl/CMakeLists.txt
   M /trunk/cmake/epa_build/docbook-xsl/bp.cmake
   A /trunk/cmake/epa_build/docbook-xsl/docbook-xsl_CMakeLists.txt (from /trunk/cmake/epa_build/docbook-xsl/CMakeLists.txt:12783)
   D /trunk/cmake/epa_build/iwidgets/CMakeLists.txt
   M /trunk/cmake/epa_build/iwidgets/bp.cmake
   A /trunk/cmake/epa_build/iwidgets/iwidgets_CMakeLists.txt (from /trunk/cmake/epa_build/iwidgets/CMakeLists.txt:12783)
   D /trunk/cmake/epa_build/libagg/CMakeLists.txt
   M /trunk/cmake/epa_build/libagg/bp.cmake
   A /trunk/cmake/epa_build/libagg/libagg_CMakeLists.txt (from /trunk/cmake/epa_build/libagg/CMakeLists.txt:12783)
   D /trunk/cmake/epa_build/libqhull/CMakeLists.txt
   M /trunk/cmake/epa_build/libqhull/README.libqhull
   M /trunk/cmake/epa_build/libqhull/bp.cmake
   A /trunk/cmake/epa_build/libqhull/libqhull_CMakeLists.txt (from /trunk/cmake/epa_build/libqhull/CMakeLists.txt:12783)
   D /trunk/cmake/epa_build/ndiff/CMakeLists.txt
   M /trunk/cmake/epa_build/ndiff/README.ndiff
   M /trunk/cmake/epa_build/ndiff/bp.cmake
   A /trunk/cmake/epa_build/ndiff/ndiff_CMakeLists.txt (from /trunk/cmake/epa_build/ndiff/CMakeLists.txt:12783)
   D /trunk/cmake/epa_build/shapelib/CMakeLists.txt
   M /trunk/cmake/epa_build/shapelib/README
   M /trunk/cmake/epa_build/shapelib/bp.cmake
   A /trunk/cmake/epa_build/shapelib/shapelib_CMakeLists.txt (from /trunk/cmake/epa_build/shapelib/CMakeLists.txt:12783)
   D /trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt
   A /trunk/cmake/epa_build/xmlcatalog-wrapper/xmlcatalog-wrapper_CMakeLists.txt (from /trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt:12785)

In preparation for renaming all the */bp.cmake files as
*/CMakeLists.txt files consistently rename the existing
*/CMakeLists.txt files (which are add-ons to the individual
software packages) everywhere they are used.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux by
building all the buildtools with epa_build using "make all" for the
-DBUILD_THE_BUILDTOOLS=ON case and by building plplot and all its
dependencies with epa_build using "make build_plplot".

N.B. note this testing does not test the MinGW/MSYS/Wine case where there is
a known issue with this renaming scheme that still has to be fixed
for the xmlcatalog-wrapper/bp.cmake (soon to be
xmlcatalog-wrapper/CMakeLists.txt) file.


------------------------------------------------------------------------
r12792 | airwin | 2013-12-01 00:27:41 -0800 (Sun, 01 Dec 2013) | 2 lines
Changed paths:
   M /trunk/cmake/epa_build/README.developers

Tweak the directions for epa_build developers.

------------------------------------------------------------------------
r12791 | airwin | 2013-12-01 00:26:52 -0800 (Sun, 01 Dec 2013) | 11 lines
Changed paths:
   M /trunk/cmake/epa_build/configured_pango.patch

Update the reversed patch that includes all hand-edited fixes
to automatically configured builds after 

cmake -DFILENAME:FILEPATH=pango_packages.data -P configure_bp.cmake

was run.

Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
the build_plplot target for the epa_build project.  This test was a
comprehensive check of all recent epa_build changes. 

------------------------------------------------------------------------
r12790 | airwin | 2013-12-01 00:18:33 -0800 (Sun, 01 Dec 2013) | 9 lines
Changed paths:
   M /trunk/cmake/epa_build/cairo/bp.cmake
   M /trunk/cmake/epa_build/fontconfig/bp.cmake
   M /trunk/cmake/epa_build/glib/bp.cmake
   M /trunk/cmake/epa_build/gobject-introspection/bp.cmake
   M /trunk/cmake/epa_build/gperf/bp.cmake
   M /trunk/cmake/epa_build/gtk-doc/bp.cmake
   M /trunk/cmake/epa_build/harfbuzz/bp.cmake
   M /trunk/cmake/epa_build/intltool/bp.cmake
   M /trunk/cmake/epa_build/itstool/bp.cmake
   M /trunk/cmake/epa_build/libffi/bp.cmake
   M /trunk/cmake/epa_build/libpcre/bp.cmake
   M /trunk/cmake/epa_build/libxml2/bp.cmake
   M /trunk/cmake/epa_build/libxslt/bp.cmake
   M /trunk/cmake/epa_build/pango/bp.cmake
   M /trunk/cmake/epa_build/pixman/bp.cmake
   M /trunk/cmake/epa_build/swig/bp.cmake
   M /trunk/cmake/epa_build/template.bp.in
   M /trunk/cmake/epa_build/yelp-tools/bp.cmake
   M /trunk/cmake/epa_build/yelp-xsl/bp.cmake

Propagate CXXFLAGS and drop -fvisibility=hidden from both the CFLAGS
and CXXFLAGS environment variables for the automatically configured
build packages.  This change is made because some of the software
packages whose builds are automatically configured by the procedure
described in README.developers) do not have gcc visibility support so
it is easiest for now (until most do have visibility support) to drop
that possibility for all of these packages.


------------------------------------------------------------------------
r12789 | airwin | 2013-12-01 00:09:08 -0800 (Sun, 01 Dec 2013) | 3 lines
Changed paths:
   M /trunk/cmake/epa_build/setup/setup_linux

Add some special tricks to help cmake find Java and D(2?) for my
Debian stable gcj, etc., java and D2 installation.

------------------------------------------------------------------------
r12788 | airwin | 2013-11-30 23:19:12 -0800 (Sat, 30 Nov 2013) | 7 lines
Changed paths:
   M /trunk/cmake/epa_build/wxwidgets/bp.cmake

Drop -fvisibility=hidden option from both CFLAGS and CXXFLAGS.  This
solved a build issue where I happened to have those flags enabled.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
build_wxwidgets target for epa_build project.


------------------------------------------------------------------------
r12787 | airwin | 2013-11-30 18:04:10 -0800 (Sat, 30 Nov 2013) | 3 lines
Changed paths:
   M /trunk/cmake/epa_build/CMakeLists.txt
   M /trunk/cmake/epa_build/README
   M /trunk/cmake/epa_build/gtk_transform.py
   M /trunk/cmake/epa_build/plplot/bp.cmake
   M /trunk/cmake/epa_build/setup/setup_linux

Replace build_projects and BUILD_PROJECTS everywhere with epa_build
and EPA_BUILD.

------------------------------------------------------------------------
r12786 | airwin | 2013-11-30 18:01:49 -0800 (Sat, 30 Nov 2013) | 2 lines
Changed paths:
   M /trunk/cmake/epa_build/README.developers

Add libxslt to list of packages to be configured.

------------------------------------------------------------------------
r12785 | airwin | 2013-11-30 17:05:55 -0800 (Sat, 30 Nov 2013) | 3 lines
Changed paths:
   A /trunk/cmake/epa_build/xmlcatalog-wrapper
   A /trunk/cmake/epa_build/xmlcatalog-wrapper/CMakeLists.txt
   A /trunk/cmake/epa_build/xmlcatalog-wrapper/bp.cmake
   A /trunk/cmake/epa_build/xmlcatalog-wrapper/filter_arguments.cmake
   A /trunk/cmake/epa_build/xmlcatalog-wrapper/xmlcatalog-wrapper.sh.in

Initial commit of xmlcatalog-wrapper configuration which was
inadvertently not added to the svn repository.

------------------------------------------------------------------------
r12784 | airwin | 2013-11-30 13:49:28 -0800 (Sat, 30 Nov 2013) | 3 lines
Changed paths:
   M /trunk/cmake/epa_build/README.developers

Really create updated instructions for developers of epa_build.  (Last
commit for updated instructions only contained part of the edits.)

------------------------------------------------------------------------
r12783 | airwin | 2013-11-30 12:19:07 -0800 (Sat, 30 Nov 2013) | 6 lines
Changed paths:
   D /trunk/cmake/build_projects
   A /trunk/cmake/epa_build (from /trunk/cmake/build_projects:12782)

Rename build_projects subdirectory to epa_build.

N.B. this is just the first step in the renaming
and reorganization of this project.


------------------------------------------------------------------------
r12782 | airwin | 2013-11-30 12:14:56 -0800 (Sat, 30 Nov 2013) | 2 lines
Changed paths:
   M /trunk/cmake/build_projects/README.developers

Updated instructions for developers of epa_build.

------------------------------------------------------------------------
r12781 | airwin | 2013-11-30 11:36:02 -0800 (Sat, 30 Nov 2013) | 14 lines
Changed paths:
   A /trunk/cmake/build_projects/configured_pango.patch

Initial commit of the reverse form of patch containing all subsequent
hand edits of configured results generated by the 

cmake -DFILENAME:FILEPATH=pango_packages.data -P configure_bp.cmake

command.  This patch is in reverse form because it is generated by
committing the tested hand edits, then running the command above
to create a local version without the hand edits, then

svn diff > configured_pango.patch

to create the patch containing the hand edits in reversed form.


------------------------------------------------------------------------
r12780 | airwin | 2013-11-29 13:51:12 -0800 (Fri, 29 Nov 2013) | 5 lines
Changed paths:
   M /trunk/cmake/build_projects/README
   A /trunk/cmake/build_projects/README.developers

Split README into a "README" file that is just for users of epa_build
and where the directions are considerably simplified by referring to
files to edit and source in the setup directory, and README.developers
which is strictly for developers of epa_build.

------------------------------------------------------------------------
r12779 | airwin | 2013-11-29 12:56:03 -0800 (Fri, 29 Nov 2013) | 4 lines
Changed paths:
   A /trunk/cmake/build_projects/setup
   A /trunk/cmake/build_projects/setup/setup_linux

Initial commit of file (that needs tailoring for each individual
system) which should be sourced from bash to setup the epa_build for
Linux.

------------------------------------------------------------------------
r12778 | airwin | 2013-11-28 17:16:49 -0800 (Thu, 28 Nov 2013) | 16 lines
Changed paths:
   M /trunk/plplot_test/CMakeLists.txt
   M /trunk/plplot_test/plplot-test-interactive.sh.in

Add many more interactive tests (-dev ntk, pltcl_standard_examples,
tclsh_standard_examples, wish_standard_examples, plserver_runAllDemos,
and wish_runAllDemos) to traditional (Makefile + pkg-config) build and
test of the installed examples tree.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
running "make install" for the core build and then changing directory
to the installed examples and running "make test_interactive" (which
uses the traditional build system for those examples.  This was done
with all tests mentioned above enabled one-by-one (to deal with some
known issues for those tests).  For this commit, the ones with the
known issues (wish_standard_examples, plserver_runAllDemos, and
wish_runAllDemos) have been temporarily disabled until those issues
are fixed.


------------------------------------------------------------------------
r12777 | airwin | 2013-11-28 11:19:04 -0800 (Thu, 28 Nov 2013) | 10 lines
Changed paths:
   M /trunk/examples/CMakeLists.txt
   M /trunk/examples/tcl/CMakeLists.txt
   A /trunk/examples/tcl/pltcl_standard_examples.in (from /trunk/examples/tcl/standard_examples.in:12772)
   D /trunk/examples/tcl/standard_examples.in
   M /trunk/examples/tk/CMakeLists.txt
   A /trunk/examples/tk/plserver_standard_examples.in (from /trunk/examples/tk/standard_examples.in:12772)
   D /trunk/examples/tk/standard_examples.in

Use better naming convention for scripts.

examples/tcl/standard_examples.in ==> examples/tcl/pltcl_standard_examples.in

examples/tk/standard_examples.in ==> examples/tk/plserver_standard_examples.in

Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
the test_interactive target for both the core build tree and the installed
examples build tree.

------------------------------------------------------------------------
r12776 | andrewross | 2013-11-28 04:50:28 -0800 (Thu, 28 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/d/x22d.d

Update D language version of example 22.


------------------------------------------------------------------------
r12775 | andrewross | 2013-11-28 03:57:58 -0800 (Thu, 28 Nov 2013) | 4 lines
Changed paths:
   M /trunk/bindings/d/plplot.d


Add plpath to d language bindings.


------------------------------------------------------------------------
r12774 | airwin | 2013-11-27 22:10:49 -0800 (Wed, 27 Nov 2013) | 12 lines
Changed paths:
   M /trunk/examples/CMakeLists.txt

Change some target names to a more consistent naming convention:

test_tcl_standard_examples ==> test_pltcl_standard_examples
test_tk_standard_examples ==> test_plserver_standard_examples

Make sure the targets test_tclsh_standard_examples,
test_wish_standard_examples, and test_wish_runAllDemos are only
configured for the case when BUILD_SHARED_LIBS is true because from
experiment the "package require" method of dynamically loading Tcl
extension modules only works for shared objects.


------------------------------------------------------------------------
r12773 | airwin | 2013-11-27 22:00:42 -0800 (Wed, 27 Nov 2013) | 26 lines
Changed paths:
   M /trunk/bindings/tk/plframe.c
   M /trunk/bindings/tk-x-plat/plplotter.c

Document and rearrange order of initializing members of plPlotterPtr
and plFramePtr structures in same order as the members of the
structures are defined to help keep track of what is initialized and
what not.  There is no change in initialization of plFramePtr, but
this analysis showed that both plPlotterPtr->double_buffer and
plPlotterPtr->pldis (and several other members which were also not
initialized in the working plFramePtr case) were unitialized.  The
double_buffer initialization quiets a valgrind warning about an
uninitialized variable.  The pldis initialization may not be necessary
(because valgrind did not complain about it), but it does follow what
is done in the plFramePtr case.

These plPlotterPtr initialization changes made no difference to the
erratic on-again off-again issue with test_wish_runAllDemos where
sometimes the examples run at the touch of the button consistently for
one particular compilation of plplotter.c, and other times they error
out consistently for a different compilation of plplotter.c with
messages like

invalid command name "x00"

So it appears some other issue is the source of the complete change in
behaviour of the plplotter Tcl/Tk extension package from one
compilation of plplotter.c to the next.


------------------------------------------------------------------------
r12772 | airwin | 2013-11-27 12:22:18 -0800 (Wed, 27 Nov 2013) | 10 lines
Changed paths:
   M /trunk/cmake/modules/shapelib.cmake
   M /trunk/src/CMakeLists.txt

Add test for whether the SAHooks type is available from shapelib, and
if the resulting HAVE_SAHOOKS CMake variable is true,
then #define the HAVE_SAHOOKS C macro for src/plmap.c.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
by checking that the example 19 result (for shapelib 1.3.0) does not
generate the misleading "Unable to open" error messages
from shapelib that you get when HAVE_SAHOOKS is not true.


------------------------------------------------------------------------
r12771 | airwin | 2013-11-27 10:22:39 -0800 (Wed, 27 Nov 2013) | 2 lines
Changed paths:
   M /trunk/src/plmap.c

Style previous commit.

------------------------------------------------------------------------
r12770 | airwin | 2013-11-27 10:16:31 -0800 (Wed, 27 Nov 2013) | 24 lines
Changed paths:
   M /trunk/src/plmap.c

Solve recently introduced build issue for the majority of Debian-based
distribution users who are still using an ancient version of shapelib.
If the HAVE_SAHOOKS macro is not defined (always in the present case
because I haven't yet created the test to #define HAVE_SAHOOKS) drop
back to using SHPOpen with no SAHooks argument) rather than SHPOpenLL.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
by building and running (using valgrind) standard C example 19, which produced
good results (completely clean valgrind run and good plots) along with
the misleading but expected

Unable to open usaglobe.shp or usaglobe.SHP.
Unable to open usaglobe.shp or usaglobe.SHP.
Unable to open globe.shp or globe.SHP.
Unable to open globe.shp or globe.SHP.

messages from SHPOpen.

ToDo: implement a CMake-based test that will #define the
HAVE_SAHOOKS C macro (or not) for plmap.c.  This will get rid of the
above misleading messages if the shapelib library is modern enough
to include SAHooks.


------------------------------------------------------------------------
r12769 | andrewross | 2013-11-27 07:37:50 -0800 (Wed, 27 Nov 2013) | 4 lines
Changed paths:
   M /trunk/examples/lua/x22.lua


Add comment about use of global variable.


------------------------------------------------------------------------
r12768 | andrewross | 2013-11-27 07:32:40 -0800 (Wed, 27 Nov 2013) | 4 lines
Changed paths:
   M /trunk/examples/lua/x22.lua


Update lua version of example 22.


------------------------------------------------------------------------
r12767 | andrewross | 2013-11-27 05:32:41 -0800 (Wed, 27 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/octave/x22c.m

Update octave version of example 22.


------------------------------------------------------------------------
r12766 | andrewross | 2013-11-27 04:16:50 -0800 (Wed, 27 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/java/x22.java

Update java version of example 22.


------------------------------------------------------------------------
r12765 | andrewross | 2013-11-27 04:12:14 -0800 (Wed, 27 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/python/xw22.py

Update python version of example 22.


------------------------------------------------------------------------
r12764 | andrewross | 2013-11-27 04:11:34 -0800 (Wed, 27 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/java/plplotjavac.i
   M /trunk/bindings/lua/plplotluac.i
   M /trunk/bindings/octave/plplot_octave.i
   M /trunk/bindings/python/plplotcmodule.i
   M /trunk/bindings/swig-support/plplotcapi.i

Implement null arguments for plsvect for swig generated bindings.


------------------------------------------------------------------------
r12763 | andrewross | 2013-11-27 03:43:57 -0800 (Wed, 27 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/c/x22c.c
   M /trunk/examples/c++/x22.cc

With transform need to set rect = 0 since rectangles are not mapped to rectangles any more.


------------------------------------------------------------------------
r12762 | arjenmarkus | 2013-11-27 00:41:24 -0800 (Wed, 27 Nov 2013) | 1 line
Changed paths:
   M /trunk/drivers/ntk.c

Insert a column break every 30 pages, mostly useful for example 33, as this has 100 pages in total. Some small glitch is left (first column runs from page 1 to 29, the next one from 30 to 59, so one more page), still the menu is now useable even with example 33.
------------------------------------------------------------------------
r12761 | arjenmarkus | 2013-11-27 00:39:29 -0800 (Wed, 27 Nov 2013) | 1 line
Changed paths:
   M /trunk/bindings/f95/plplotf95_ifort.def

Adjusting the export definition file for Intel Fortran vis-a-vis the new plsvect API.
------------------------------------------------------------------------
r12760 | arjenmarkus | 2013-11-27 00:38:36 -0800 (Wed, 27 Nov 2013) | 1 line
Changed paths:
   M /trunk/examples/c++/x22.cc

Small corrections to example x22c - MSVC/C++ did not like the use of nc for an array dimension. Using the construction from the C example.
------------------------------------------------------------------------
r12759 | airwin | 2013-11-26 22:28:01 -0800 (Tue, 26 Nov 2013) | 6 lines
Changed paths:
   M /trunk/cmake/build_projects/shapelib/CMakeLists.txt
   M /trunk/cmake/build_projects/shapelib/README
   M /trunk/cmake/build_projects/shapelib/bp.cmake
   D /trunk/cmake/build_projects/shapelib/shapelib.patch

I have already implemented an "error message delivery hook" method to
quiet shapelib "Unable to open" error messages directly from the
src/plmap.c PLplot code.  This makes the brute-force build
modification that was used previously to quiet those error messages
completely redundant so therefore drop this brute-force method.

------------------------------------------------------------------------
r12758 | airwin | 2013-11-26 22:09:46 -0800 (Tue, 26 Nov 2013) | 12 lines
Changed paths:
   M /trunk/src/plmap.c

Use an approach suggested by Frank Warmerdam <warmerdam@pobox.com>,
the developer of shapelib to quiet the misleading "Unable to open"
error messages generated by shapelib due to our method of
searching several directories until the shapelib routine SHPOpenLL
returns a non-NULL result indicating shapelib has found shapefiles
with the correct basename.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> with variants
of the final CustomErrors to prove this function was being called
and was correctly suppressing "Unable to open" error messages.


------------------------------------------------------------------------
r12757 | airwin | 2013-11-26 12:59:05 -0800 (Tue, 26 Nov 2013) | 10 lines
Changed paths:
   M /trunk/cmake/build_projects/shapelib/CMakeLists.txt
   M /trunk/cmake/build_projects/shapelib/README
   M /trunk/cmake/build_projects/shapelib/bp.cmake
   A /trunk/cmake/build_projects/shapelib/shapelib.patch

Make changes to the shapelib build so that the confusing "Unable to
open" shapelib error messages are quieted for the normal PLplot
procedure (see src/plmap.c) of trying several different directories to
find shapefiles.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
both a standalone build of shapelib and also a build_projects build
and install of that software.


------------------------------------------------------------------------
r12756 | airwin | 2013-11-26 09:40:50 -0800 (Tue, 26 Nov 2013) | 14 lines
Changed paths:
   M /trunk/bindings/tcl/CMakeLists.txt
   M /trunk/examples/tk/Makefile.examples.in

Fix the traditional (Makefile + pkg-config) build of the installed examples
by configuring and installing the plplottcltk_Main(d).pc pkg-config file
associated with libplplottcltk_Main, and using that file to
configure the build of the xtk?? examples.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
CMake options -DDEFAULT_NO_CAIRO_DEVICES=ON -DPLD_wxwidgets=OFF
-DDEFAULT_NO_BINDINGS=ON -DENABLE_tcl=ON -DENABLE_itcl=ON
-DENABLE_tk=ON -DENABLE_itk=ON (to limit most tests just to C and Tcl
and friends) for the core build and the test_noninteractive and
test_interactive targets for the traditional build system of the
installed examples.


------------------------------------------------------------------------
r12755 | airwin | 2013-11-25 22:56:39 -0800 (Mon, 25 Nov 2013) | 2 lines
Changed paths:
   M /trunk/bindings/f95/scstubs.c
   M /trunk/examples/c/x22c.c
   M /trunk/examples/c++/x22.cc

Style previous commit.

------------------------------------------------------------------------
r12754 | andrewross | 2013-11-25 22:52:42 -0800 (Mon, 25 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/c++/plstream.h
   M /trunk/examples/c++/x22.cc

Set default NULL arguments for plsvect, so there is no need to supply any arguments to reset the arrow style to the default.


------------------------------------------------------------------------
r12753 | airwin | 2013-11-25 22:46:51 -0800 (Mon, 25 Nov 2013) | 2 lines
Changed paths:
   M /trunk/src/plctrl.c

Slightly improve commentary and debug messages.

------------------------------------------------------------------------
r12752 | airwin | 2013-11-25 22:45:44 -0800 (Mon, 25 Nov 2013) | 4 lines
Changed paths:
   M /trunk/src/plmap.c

Make pldebug work.

Slightly improve commentary and debug messages.

------------------------------------------------------------------------
r12751 | andrewross | 2013-11-25 15:36:23 -0800 (Mon, 25 Nov 2013) | 3 lines
Changed paths:
   M /trunk/doc/docbook/src/api.xml

Minor documentation updates to correct references to examples using various functions.


------------------------------------------------------------------------
r12750 | andrewross | 2013-11-25 15:29:30 -0800 (Mon, 25 Nov 2013) | 5 lines
Changed paths:
   M /trunk/bindings/f95/plstubs.h
   M /trunk/bindings/f95/scstubs.c
   M /trunk/bindings/f95/sfstubsf95.f90
   M /trunk/examples/f95/x22f.f90

Update f95 bindings to allow empty argument for plsvect to reset the arrow style.

Update example 22 consistent with the C version.


------------------------------------------------------------------------
r12749 | airwin | 2013-11-25 11:44:36 -0800 (Mon, 25 Nov 2013) | 8 lines
Changed paths:
   M /trunk/bindings/tcl/CMakeLists.txt
   A /trunk/bindings/tcl/pltcl.c (from /trunk/utils/pltcl.c:12743)
   M /trunk/examples/tcl/README.tcldemos
   M /trunk/utils/CMakeLists.txt
   D /trunk/utils/pltcl.c

Move pltcl.c and the build of the pltcl executable from utils to
the more obvious (in my opinion) directory location bindings/tcl.

Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux
using the test_noninteractive and test_interactive targets in
the build tree.


------------------------------------------------------------------------
r12748 | andrewross | 2013-11-24 22:30:00 -0800 (Sun, 24 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/c/x22c.c
   M /trunk/examples/c++/x22.cc

Easier way to rescale the velocity vectors in example 22.


------------------------------------------------------------------------
r12747 | andrewross | 2013-11-24 14:01:17 -0800 (Sun, 24 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/c++/x22.cc

Update C++ example 22 following recent changes to C version.


------------------------------------------------------------------------
r12746 | andrewross | 2013-11-24 13:41:37 -0800 (Sun, 24 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/c/x22c.c

Add distinct titles to the constriction plots.


------------------------------------------------------------------------
r12745 | airwin | 2013-11-23 15:37:35 -0800 (Sat, 23 Nov 2013) | 12 lines
Changed paths:
   M /trunk/cmake/modules/tcl-related.cmake

Allow expert users to specify PLPLOT_ITCL_VERSION, PLPLOT_ITK_VERSION,
and IWIDGETS_VERSIONS_LIST to avoid running tclsh at the configuration
stage.  However, the values must be consistent to avoid automatic
disabling of Itcl and/or Itk. So for example,
-DIWIDGETS_VERSIONS_LIST:STRING="4.0.1;3.3;3.4"
-DPLPLOT_ITK_VERSION:STRING=3.3 -DPLPLOT_ITCL_VERSION:STRING=3.4 works
correctly on Debian Wheezy, but specifying something different than
the values that would be found automatically by "package require"
commands under tclsh would result in disabling of Itcl, and/or Itk.
So users specify these values at their own risk.


------------------------------------------------------------------------
r12744 | airwin | 2013-11-22 20:20:14 -0800 (Fri, 22 Nov 2013) | 14 lines
Changed paths:
   M /trunk/examples/CMakeLists.txt
   M /trunk/examples/tk/CMakeLists.txt
   A /trunk/examples/tk/plserver_runAllDemos.in
   A /trunk/examples/tk/wish_runAllDemos.in

Implement the test_plserver_runAllDemos and test_wish_runAllDemos
targets which do what their name implies.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
using build-tree testing of the test_plserver_runAllDemos and
test_wish_runAllDemos from an initially empty build tree (to
test all required dependencies will be built correctly by these targets).

There are a number of run-time issues with these targets that will be
discussed on the plplot-devel mailing list.  Because of those issues
these targets are temporarily kept from being dependencies of more
general interactive targets such as test_interactive.


------------------------------------------------------------------------
r12743 | airwin | 2013-11-22 17:28:32 -0800 (Fri, 22 Nov 2013) | 2 lines
Changed paths:
   M /trunk/examples/tk/standard_examples.in
   M /trunk/examples/tk/tkdemos.tcl
   M /trunk/examples/tk/wish_standard_examples.in

Simplify and better document our pause treatment

------------------------------------------------------------------------
r12742 | airwin | 2013-11-22 13:01:27 -0800 (Fri, 22 Nov 2013) | 10 lines
Changed paths:
   M /trunk/cmake/modules/tk.cmake

The tkwin device does make sense when dynamic devices are not used
since "package require Plplotter" dynamically loads libplplotd (which
contains all the tkwin code in this case) rather than the tkwin
device.  Therefore revert most of the previous change.  The result
is only two changes from revision 12719; (1) tclMain.c and tkMain.c are
dropped from the code that is included in libplotd when dynamic
devices are not enabled and (2) tkwin_LINK_FLAGS includes the
stubs versions of libtcl and libtk when USE_TCL_TK_STUBS is ON.


------------------------------------------------------------------------
r12741 | airwin | 2013-11-22 10:57:31 -0800 (Fri, 22 Nov 2013) | 8 lines
Changed paths:
   M /trunk/cmake/modules/drivers-init.cmake

Enable -dev ntk by default.  Thanks to Arjen's recent changes it works
fine for me on Linux, and Arjen reports it also works well on Cygwin,
and Windows.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
the test_c_ntk target.


------------------------------------------------------------------------
r12740 | airwin | 2013-11-22 10:42:58 -0800 (Fri, 22 Nov 2013) | 2 lines
Changed paths:
   M /trunk/bindings/tk/plframe.c
   M /trunk/bindings/tk-x-plat/plplotter.c
   M /trunk/drivers/ntk.c
   M /trunk/examples/c/x22c.c
   M /trunk/src/plvect.c

Style previous commits.

------------------------------------------------------------------------
r12739 | arjenmarkus | 2013-11-22 05:36:22 -0800 (Fri, 22 Nov 2013) | 7 lines
Changed paths:
   M /trunk/cmake/modules/tcl-related.cmake
   M /trunk/drivers/ntk.c

Enable the ntk device for Windows.

The changes involved are:
- CMake accepts the ntk device on Windows, even though there is no X11 library 
- interp->result is replaced by Tcl_GetStringResult(interp)
- the name of the plframe widget is always a fixed but valid widget name.
  This part will have to be revisited - use the plwindow field as the title?
------------------------------------------------------------------------
r12738 | arjenmarkus | 2013-11-22 05:32:42 -0800 (Fri, 22 Nov 2013) | 1 line
Changed paths:
   M /trunk/examples/tk/runAllDemos.tcl

Run the full set of examples
------------------------------------------------------------------------
r12737 | arjenmarkus | 2013-11-22 05:21:08 -0800 (Fri, 22 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/f95/plplotf95.def
   M /trunk/bindings/f95/plplotf95_ifort.def
   M /trunk/bindings/f95/plplotf95_mingw.def

Parameters (named constants) are not entities in the object files. They do not exist at link time, so they can not be contained in the export definition.

Added missing routines (related to plcolorbar) to the definition file.
------------------------------------------------------------------------
r12736 | andrewross | 2013-11-22 05:19:51 -0800 (Fri, 22 Nov 2013) | 3 lines
Changed paths:
   M /trunk/doc/docbook/src/api.xml

Document change to plsvect to allow NULL arguments to restore the default arrow style.


------------------------------------------------------------------------
r12735 | andrewross | 2013-11-22 05:16:16 -0800 (Fri, 22 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/tk/plframe.c
   M /trunk/bindings/tk-x-plat/plplotter.c

Fix up const arguments to plgFileDevs calls.


------------------------------------------------------------------------
r12734 | andrewross | 2013-11-21 14:52:38 -0800 (Thu, 21 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/c/x22c.c

Further tweaks to example 22 to make the arrows larger (and easier to see). This highlights the difference between filled and unfilled arrows. Also demonstrate use of NULL arguments to plsvect to reset arrow style to default.


------------------------------------------------------------------------
r12733 | andrewross | 2013-11-21 14:19:11 -0800 (Thu, 21 Nov 2013) | 3 lines
Changed paths:
   M /trunk/src/plcore.c
   M /trunk/src/plvect.c

Allow the passing of NULL arguments to plsvect which will reset the arrow style to the default.


------------------------------------------------------------------------
r12732 | arjenmarkus | 2013-11-21 04:43:11 -0800 (Thu, 21 Nov 2013) | 1 line
Changed paths:
   M /trunk/examples/tk/runAllDemos.tcl

Call the plstdwin command to make sure that the demo window is properly sized.
------------------------------------------------------------------------
r12731 | arjenmarkus | 2013-11-21 03:06:09 -0800 (Thu, 21 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/tk/plwidget.tcl
   M /trunk/examples/tk/standard_examples.in
   M /trunk/examples/tk/tkdemos.tcl

Make the pausing in running the Tk examples optional. The pausing may occur both in the examples themselves via the plspause command and by the plxframe widget. It is made optional via the auxiliary command ::plw::set_pause.

Also make sure that the standard wish examples are drawn in a window of suitable size (the plstdwin command is responsible for this)
------------------------------------------------------------------------
r12730 | airwin | 2013-11-20 18:52:05 -0800 (Wed, 20 Nov 2013) | 2 lines
Changed paths:
   M /trunk/NEWS
   A /trunk/OLDER-NEWS (from /trunk/doc/NEWS:12726)
   D /trunk/doc/NEWS

Reorganize news files a bit more.

------------------------------------------------------------------------
r12729 | airwin | 2013-11-20 18:51:25 -0800 (Wed, 20 Nov 2013) | 2 lines
Changed paths:
   M /trunk/README.release

Update URL's for mailing lists and bug tracker.

------------------------------------------------------------------------
r12728 | airwin | 2013-11-20 18:24:57 -0800 (Wed, 20 Nov 2013) | 2 lines
Changed paths:
   M /trunk/NEWS
   A /trunk/OLD-NEWS (from /trunk/NEWS:12726)

Completely update NEWS file to point to sources of news about PLplot.

------------------------------------------------------------------------
r12727 | airwin | 2013-11-20 17:37:53 -0800 (Wed, 20 Nov 2013) | 3 lines
Changed paths:
   M /trunk/README.release

Add discussion of recent f77 extirpation and improvements to
our build system and bindings for Tcl and friends.

------------------------------------------------------------------------
r12726 | airwin | 2013-11-20 15:10:25 -0800 (Wed, 20 Nov 2013) | 4 lines
Changed paths:
   M /trunk/doc/docbook/src/api.xml

Replace reference to Fortran 77 chapter by equivalent Fortran 95
chapter.  This gets rid of all validation errors for the present
Fortran 77 extirpation changes.

------------------------------------------------------------------------
r12725 | airwin | 2013-11-20 14:58:00 -0800 (Wed, 20 Nov 2013) | 10 lines
Changed paths:
   M /trunk/bindings/CMakeLists.txt
   D /trunk/bindings/f77
   M /trunk/bindings/f95/plstubs.h
   M /trunk/bindings/f95/readme_f95.txt
   M /trunk/bindings/f95/scstubs.c
   M /trunk/bindings/f95/sfstubsf95.f90
   M /trunk/cmake/FindPLplot.cmake
   D /trunk/cmake/modules/TestF77CmdLine.cmake
   D /trunk/cmake/modules/TestF77CmdLine.f
   M /trunk/cmake/modules/fortran.cmake
   M /trunk/cmake/modules/plplot_version.cmake
   M /trunk/cmake/modules/summary.cmake
   M /trunk/doc/Doxyfile.in
   M /trunk/doc/docbook/src/CMakeLists.txt
   M /trunk/doc/docbook/src/advanced.xml
   M /trunk/doc/docbook/src/api-c.xml
   D /trunk/doc/docbook/src/api-fortran77.xml
   M /trunk/doc/docbook/src/api.xml
   D /trunk/doc/docbook/src/fortran77.xml
   M /trunk/doc/docbook/src/fortran95.xml
   M /trunk/doc/docbook/src/intro.xml
   M /trunk/doc/docbook/src/libraries.xml
   M /trunk/doc/docbook/src/plplotdoc.xml.in
   M /trunk/examples/CMakeLists.txt
   M /trunk/examples/Makefile.examples.in
   D /trunk/examples/f77
   M /trunk/examples/f95/CMakeLists.txt
   M /trunk/examples/f95/plf95demos.inc.in
   M /trunk/examples/f95/x17f.f90
   M /trunk/examples/f95/x20f.f90
   M /trunk/examples/plplot_configure.cmake_installed_examples.in
   M /trunk/include/pldll.h.in
   M /trunk/pkgcfg/README
   M /trunk/plplot_test/CMakeLists.txt
   M /trunk/plplot_test/plplot-test.sh.in
   M /trunk/plplot_test/test_diff.sh.in
   D /trunk/plplot_test/test_f77.sh.in
   M /trunk/plplot_test/test_f95.sh.in
   M /trunk/scripts/check_api_completeness.sh
   M /trunk/scripts/style_source.sh

Extirpate anything having to do with Fortran 77.  These changes were
quite intrusive because I went out of my way to search for any mention
of "77" in our source tree and followed up with an edit or deletion
of the file where appropriate.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
using the test_noninteractive target in the build tree.

More comprehensive tests to follow.

------------------------------------------------------------------------
r12724 | airwin | 2013-11-20 11:25:53 -0800 (Wed, 20 Nov 2013) | 5 lines
Changed paths:
   M /trunk/examples/CMakeLists.txt

Add WARNING messages concerning individual interactive test targets
that have been implemented but which do not work well (if at all) so
they are temporarily excluded from being a dependency of other more
general interactive test targets.

------------------------------------------------------------------------
r12723 | airwin | 2013-11-19 23:14:37 -0800 (Tue, 19 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/tk/standard_examples.in

Change over to "exec" style like tcl/standard_examples,
tcl/tclsh_standard_examples, and tk/wish_standard_examples.

------------------------------------------------------------------------
r12722 | airwin | 2013-11-19 22:24:21 -0800 (Tue, 19 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/tk/runAllDemos.tcl

Use same method as tkdemos.tcl to distinguish between plserver and tclsh
or wish cases.

------------------------------------------------------------------------
r12721 | airwin | 2013-11-19 22:23:25 -0800 (Tue, 19 Nov 2013) | 2 lines
Changed paths:
   M /trunk/examples/tk/tkdemos.tcl

Small cleanup of the wording.

------------------------------------------------------------------------
r12720 | airwin | 2013-11-19 22:21:25 -0800 (Tue, 19 Nov 2013) | 8 lines
Changed paths:
   M /trunk/cmake/modules/tcl-related.cmake
   M /trunk/cmake/modules/tk.cmake
   M /trunk/drivers/CMakeLists.txt

Allow tkwin "device" (actually the shared object that is dynamically
loaded by the "package require Plplotter command) to use stub versions
of the Tcl and Tk libraries.

This completes the USE_TCL_TK_STUBS work without any build or run-time
issues that can be attributed to using the stub versions of the Tcl/Tk
libraries.  Therefore, set USE_TCL_TK_STUBS=ON by default.

------------------------------------------------------------------------
r12719 | airwin | 2013-11-19 21:41:51 -0800 (Tue, 19 Nov 2013) | 2 lines
Changed paths:
   M /trunk/include/pldll.h.in

Add forgotten visibility support for new plplottcltk_Main library.

------------------------------------------------------------------------
r12718 | airwin | 2013-11-18 20:07:23 -0800 (Mon, 18 Nov 2013) | 24 lines
Changed paths:
   M /trunk/bindings/tcl/CMakeLists.txt
   M /trunk/bindings/tk/CMakeLists.txt
   M /trunk/cmake/modules/plplot_version.cmake
   M /trunk/examples/tk/CMakeLists.txt
   M /trunk/utils/CMakeLists.txt

Create a new library called plplottcltk_Main whose source code is
bindings/tcl/tclMain.c and bindings/tk/tkMain.c.  Both of those files 
contain code that should not be part of plplottcltk since such code
destroys the possibility of treating plplottcktk as a pure Tcl/Tk
extension which can depend on the stub versions of the Tcl/Tk
libraries.  This new library is helpful when starting C applications
(pltcl, plserver, xtk01, xtk02, and xtk04) which depend on the
plplottcltk library so use it to link those applications.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
the -DENABLE_tcl=ON, -DENABLE_itcl=ON, -DENABLE_tk=ON,
-DENABLE_itk=ON, and -DUSE_TCL_TK_STUBS=ON CMake options using the
test_noninteractive, test_interactive, and test_wish_standard_examples
target in the build tree.  All was well other than the known issue that the
latter target still has a segfault at the end that occurs on execution
of the Tcl exit command.

These good test results mean there is only one more thing that needs
to be done before we can make -DUSE_TCL_TK_STUBS=ON the default; make
build-system changes so the tkwin "device" (the shared object that
needs to be built so that "package require Plplotter" will work) will
build and work properly for the -DUSE_TCL_TK_STUBS=ON case.


------------------------------------------------------------------------
r12717 | airwin | 2013-11-18 14:52:41 -0800 (Mon, 18 Nov 2013) | 26 lines
Changed paths:
   M /trunk/bindings/tcl/CMakeLists.txt
   M /trunk/bindings/tcl/matrixInit.c
   M /trunk/cmake/modules/tcl-related.cmake
   M /trunk/utils/CMakeLists.txt

Using stub versions of Tcl and Tk libraries is highly recommended
by the Tcl/Tk community.

Therefore, implement a USE_TCL_TK_STUBS option to use the Tcl/Tk stubs
libraries. This option currently defaults to OFF because it is only
partially implemented (only the USE_TCL_STUBS part of this has been
implemented so far).

Part of this change is a backwards incompatible change in
libplplottcltk; the functions in tclMain.c (notably pltclMain) are
split off from that library since they are only used by the pltcl
executable, and the call of Tcl_FindExecutable within pltclMain
appears not to be compatible with linking with libtclstub8.6, i.e.,
Tcl_FindExecutable has been completely removed from the stub tables
for Tcl8.6.  I think all this simply means that only Tcl/Tk extensions
(but not code for an an executable like pltcl.c and tclMain.c) are
considered to be good candidates for linking with libtclstub8.x so
splitting out tclMain.c from the rest of the source code for
libplplottcltk seems the correct thing to do.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
with the -DENABLE_tk=OFF and -DUSE_TCL_TK_STUBS=ON cmake options
and the two targets test_tcl_standard_examples and
test_tclsh_standard_examples.


------------------------------------------------------------------------
r12716 | airwin | 2013-11-18 13:57:39 -0800 (Mon, 18 Nov 2013) | 2 lines
Changed paths:
   M /trunk/examples/tcl/standard_examples.in

Move to recommended "exec" method for running this script.

------------------------------------------------------------------------
r12715 | airwin | 2013-11-18 13:56:40 -0800 (Mon, 18 Nov 2013) | 2 lines
Changed paths:
   M /trunk/examples/CMakeLists.txt

Correct the dependencies of the test_tclsh_standard_examples target.

------------------------------------------------------------------------
r12714 | airwin | 2013-11-18 13:54:26 -0800 (Mon, 18 Nov 2013) | 2 lines
Changed paths:
   M /trunk/bindings/tk/plserver.c
   M /trunk/drivers/tk.c
   M /trunk/src/plstdio.c

Style previous commits.

------------------------------------------------------------------------
r12713 | airwin | 2013-11-18 13:45:22 -0800 (Mon, 18 Nov 2013) | 4 lines
Changed paths:
   M /trunk/bindings/tcl/tclMain.c

Replace call to private TclObjCommandComplete with combination of
public calls to Tcl_GetString and Tcl_CommandComplete.


------------------------------------------------------------------------
r12712 | arjenmarkus | 2013-11-18 12:17:42 -0800 (Mon, 18 Nov 2013) | 1 line
Changed paths:
   M /trunk/examples/tk/tkdemos.tcl

Use [info nameofexecutable] to identify whether the Tcl/Tk interpreter program is "plserver" or one of the standard shells. Include tclsh in the mix and use a switch statement.
------------------------------------------------------------------------
r12711 | arjenmarkus | 2013-11-18 11:31:25 -0800 (Mon, 18 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/tk/plserver.c
   M /trunk/bindings/tk/tkMain.c

Add print statements to make it clear to the user what went wrong if parts of the initialization fail. Also use the lappend command to set the auto_path variable, to prevent directories containing spaces to cause difficult to trace problems. 

Finally distinguish between the tow forms of the "exit" command (with and without a return code). The original code may have been causing segfaults, though it has to be confirmed that that particular problem has been solved.
------------------------------------------------------------------------
r12710 | airwin | 2013-11-16 16:49:08 -0800 (Sat, 16 Nov 2013) | 9 lines
Changed paths:
   M /trunk/examples/plplot_configure.cmake_installed_examples.in

Propagate DATA_DIR to the installed examples build system so that the
tclsh_standard_examples(.in) and wish_standard_examples(.in) scripts
will be correctly configured in that case.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
using the CMake-based build system for the installed examples
and the test_interactive target.


------------------------------------------------------------------------
r12709 | airwin | 2013-11-16 16:45:35 -0800 (Sat, 16 Nov 2013) | 10 lines
Changed paths:
   M /trunk/bindings/tcl/pkgIndex.tcl.in
   M /trunk/bindings/tk/pkgIndex.tcl.in
   M /trunk/bindings/tk-x-plat/pkgIndex.tcl.in

Make Tcl logic much more robust for discovering whether the path to the relevant
pkgIndex.tcl file is a subdirectory of the build tree.

This fixes an issue with the old logic which was based on whether
the current directory was a subdirectory of the build tree.  That old
logic obviously failed for the common case when the build tree for the installed examples
was actually a subdirectory of the core build tree.  The new logic is
independent of the current directory which is a good thing.


------------------------------------------------------------------------
r12708 | airwin | 2013-11-16 14:21:59 -0800 (Sat, 16 Nov 2013) | 3 lines
Changed paths:
   D /trunk/bindings/octave/global_defines.sed

Remove this sed script since it was only used to check plplot_octave_def
which has already been removed as part of the recent matwrap cleanout.

------------------------------------------------------------------------
r12707 | airwin | 2013-11-16 13:36:48 -0800 (Sat, 16 Nov 2013) | 10 lines
Changed paths:
   M /trunk/examples/CMakeLists.txt

There is a segfault generated by the Tcl exit command in the
wish_standard_examples(.in) script that is still under investigation.
Until that issue is resolved, still allow the
test_wish_standard_examples target can be run directly to aid that
investigation.  But temporarily remove this target from the list of
targets that are run automatically as dependencies of the
test_interactive target so the segfault does not interfere with
the running those other targets.


------------------------------------------------------------------------
r12706 | airwin | 2013-11-16 11:15:17 -0800 (Sat, 16 Nov 2013) | 5 lines
Changed paths:
   M /trunk/src/plbox.c

In plgesc_string, follow plgesc logic which is to set the default escape
if plsc->esc is in its initial state.  This change gets rid of lots of
plgesc_string warning messages about plsc->esc being invalid.


------------------------------------------------------------------------
r12705 | airwin | 2013-11-15 23:24:58 -0800 (Fri, 15 Nov 2013) | 16 lines
Changed paths:
   M /trunk/src/plbox.c

Several different functions in plbox incorrectly assume that the
PLplot string escape character is '#'.  Fix that assumption by
implementing a small static function that returns the string (not
integer code) corresponding to the current escape character, and use
that instead.

(Lightly) tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux
by running a run-time test where

plsesc( '@');

was called in example 1 and showing that no longer interfered with
the exponent used on the viewport Y label axis for one of the
plots.


------------------------------------------------------------------------
r12704 | airwin | 2013-11-15 17:36:52 -0800 (Fri, 15 Nov 2013) | 14 lines
Changed paths:
   M /trunk/examples/CMakeLists.txt
   M /trunk/examples/tk/CMakeLists.txt
   M /trunk/examples/tk/tkdemos.tcl

Replace horrible hack with searching for substrings in $argv0 to decide
if tkdemos.tcl was being sourced from a plserver or wish environment.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
the test_tk_standard_examples and test_wish_standard_examples targets.
Note, the second target had a segfault right after example 33 completed
so investigation of that issue is ongoing.

Since the horrible hack is gone, there is a reasonable chance now that
these two targets (and also the test_interactive target which depends
on them) will also work fine in the installed examples tree.  But that
case has not been tested yet.


------------------------------------------------------------------------
r12703 | airwin | 2013-11-15 17:07:16 -0800 (Fri, 15 Nov 2013) | 7 lines
Changed paths:
   M /trunk/examples/tcl/README.tcldemos
   M /trunk/examples/tk/README.tkdemos

Note that "make test_interactive" incorporates almost all
(runAllDemos.tcl is the one exception) of these tests that
can be run by hand.

Drop the FIXME remarks which are about to become irrelevant.


------------------------------------------------------------------------
r12702 | airwin | 2013-11-14 17:09:36 -0800 (Thu, 14 Nov 2013) | 16 lines
Changed paths:
   M /trunk/examples/CMakeLists.txt
   M /trunk/examples/tk/CMakeLists.txt
   M /trunk/examples/tk/tkdemos.tcl
   A /trunk/examples/tk/wish_standard_examples.in

Implement test_wish_standard_examples target that executes all the
standard examples using wish and PLplot's TEA capabilities.
Make this target a dependency of test_interactive.

N.B. For some strange reason the display of the plots is currently
getting lost when this script is run non-interactively.  That is, if
you run the script directly or by mentioning it as an argument for the
wish command or if it sourced from an interactive wish environment.
However, if you run the commands in this script interactively, i.e.
cut and paste the script lines directly into a wish environment, the
display of the plots is fine!  See the current question on the
plplot-devel list about how this issue can be fixed.  Nevertheless,
despite this issue the current test does work in the sense that all
the examples run without any error condition.


------------------------------------------------------------------------
r12701 | airwin | 2013-11-14 16:58:19 -0800 (Thu, 14 Nov 2013) | 2 lines
Changed paths:
   M /trunk/examples/tcl/tclsh_standard_examples.in

Move to a more traditional startup of tclsh.

------------------------------------------------------------------------
r12700 | andrewross | 2013-11-14 15:19:09 -0800 (Thu, 14 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/octave/CMakeLists.txt
   D /trunk/bindings/octave/matwrap
   D /trunk/bindings/octave/plplot_octave_def
   M /trunk/cmake/modules/octave.cmake
   M /trunk/plplot_test/CMakeLists.txt
   M /trunk/plplot_test/test_octave.sh.in

Remove obsolete support for matwrap generated octave bindings. The new swig generated bindings offer a fuller coverage of the plplot API and are more maintainable. 


------------------------------------------------------------------------
r12699 | andrewross | 2013-11-14 15:04:56 -0800 (Thu, 14 Nov 2013) | 3 lines
Changed paths:
   M /trunk/cmake/modules/plplot.cmake
   M /trunk/config.h.in
   M /trunk/drivers/tk.c
   M /trunk/include/plplotP.h
   M /trunk/src/plstdio.c

Update the way the tk driver creates fifos to avoid GNU linker complaining about use of the insecure tmpnam. Instead we now use mkdtemp to securely create a private temporary directory, then create the fifo in that. This avoids potential race conditions.


------------------------------------------------------------------------
r12698 | airwin | 2013-11-14 13:32:36 -0800 (Thu, 14 Nov 2013) | 4 lines
Changed paths:
   M /trunk/examples/tk/tkdemos.tcl

Remove "$plwin cmd plspause 0" command since for some reason that does
not (yet) work under plserver, and any case this should be part of the
plserver or wish script that sources tkdemos.tcl.

------------------------------------------------------------------------
r12697 | airwin | 2013-11-14 11:56:31 -0800 (Thu, 14 Nov 2013) | 13 lines
Changed paths:
   M /trunk/examples/CMakeLists.txt
   M /trunk/examples/tcl/CMakeLists.txt
   A /trunk/examples/tcl/tclsh_standard_examples.in

Add the test_tclsh_standard_examples target to automate the tclsh
TEA-based testing that is mentioned in examples/tcl/README.tcldemos.

Make the test_interactive target depend on this new target
so this new test will be done automatically whenever the test_interactive
target is run.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
using the test_tclsh_standard_examples target in the build tree.
I did this from a scratch build to demonstrate that all dependencies of
this test were handled correctly.


------------------------------------------------------------------------
r12696 | arjenmarkus | 2013-11-13 23:54:24 -0800 (Wed, 13 Nov 2013) | 1 line
Changed paths:
   M /trunk/bindings/tcl/tclMain.c

Always use TclFormatInt as a macro, instead of relying on its presence in the Tcl library for older versions of Tcl. It is used only once in the code, so that the performance advantages the function offers are of no interest. The original code caused problems in some cases, even though the Tcl version used was 8.5 or later. 
------------------------------------------------------------------------
r12695 | airwin | 2013-11-13 15:53:45 -0800 (Wed, 13 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/tcl/tclAPI.c
   M /trunk/bindings/tk/plserver.c

Make Tcl constants in the PLPLOT namespace properly accessible
from all environments including tclsh and wish.

------------------------------------------------------------------------
r12694 | airwin | 2013-11-13 14:53:37 -0800 (Wed, 13 Nov 2013) | 7 lines
Changed paths:
   M /trunk/examples/CMakeLists.txt

Fix minor build-system issue that was keeping the
test_tcl_standard_examples target from being added to
what was run by the test_interactive target.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
using the test_interactive target.

------------------------------------------------------------------------
r12693 | airwin | 2013-11-13 14:07:52 -0800 (Wed, 13 Nov 2013) | 5 lines
Changed paths:
   M /trunk/examples/tcl/x29.tcl

Fix long-standing bug with tcl examples where superscript/subscript
escapes were being ignored in subsequent examples (i.e., example 33) run in the same
batch because this example failed (until this fix) to restore the default
escape character "#".

------------------------------------------------------------------------
r12692 | airwin | 2013-11-13 11:58:55 -0800 (Wed, 13 Nov 2013) | 20 lines
Changed paths:
   M /trunk/bindings/tcl/global_defines.sed
   M /trunk/bindings/tcl/plplot_parameters.h

For historical reasons ZEROW2B, ZEROW2D, ONEW2B, and ONEW2D were
dropped from the Tcl constants, but since those are correctly
#defined in plplot.h and not dropped by any other language
include those constants.

Make important fix for all tcl constants in the PLPLOT namespace which
is to process them with expr to convert the hexadecimal form to
decimal.  It turns out the hexadecimal form never worked previously,
but we didn't know that because only constants that were unused in our
tcl standard examples were expressed as hexadecimal.  But since the
recent repropagation effort based on the numerical macros in plplot.h
(many of which were in hexadecimal form) a much larger fraction of the
tcl constants were in hexadecimal form and this (until the present fix
to convert all tcl constants to decimal form) completely screwed up
standard example 33 results for tcl.

Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux
using the test_diff_psc target.


------------------------------------------------------------------------
r12691 | airwin | 2013-11-13 11:27:17 -0800 (Wed, 13 Nov 2013) | 6 lines
Changed paths:
   M /trunk/bindings/f95/global_defines.sed
   M /trunk/bindings/f95/plplot_parameters.h

For historical reasons ZEROW2B, ZEROW2D, ONEW2B, and ONEW2D were
dropped from the fortran parameters, but since those are correctly
#defined in plplot.h and not dropped by any other language (except tcl
which is about to be similarly fixed) include those parameters.


------------------------------------------------------------------------
r12690 | arjenmarkus | 2013-11-13 04:15:17 -0800 (Wed, 13 Nov 2013) | 1 line
Changed paths:
   M /trunk/INSTALL

Added a concise explanation of the CMake example - the full explanation appeared lower down the file. (In response to a question on the plplot-general list)
------------------------------------------------------------------------
r12689 | airwin | 2013-11-13 01:10:07 -0800 (Wed, 13 Nov 2013) | 11 lines
Changed paths:
   M /trunk/bindings/swig-support/swig_documentation.i
   M /trunk/doc/docbook/src/api.xml
   M /trunk/src/pllegend.c

Update documentation of PL_COLORBAR_ORIENT_* bits used to help form
plcolorbar arguments.

The docbook result validates, and the doxygen commentary in the
source file compiles.

The corresponding changes in swig_documentation.i were automatically
generated from the DocBook api.xml file using the
check_swig_documentation target.


------------------------------------------------------------------------
r12688 | airwin | 2013-11-12 22:30:19 -0800 (Tue, 12 Nov 2013) | 17 lines
Changed paths:
   M /trunk/bindings/tk-x-plat/Plplotter_Init.c

Correct possible USE_TCL_STUBS and USE_TK_STUBS error which consist of
calling Tcl_InitStubs, Tk_InitStubs, and (redundantly) Tcl_InitStubs
(first thing done inside the call to PlbasicInit).  That redundant
call might be an issue. Anyhow, eliminate it by calling PlbasicInit
(which includes no Tk calls), then Tk_InitStubs.  This is the method
used by bindings/tk/Pltk_Init.c.

N.B. We have never tested the Tcl/Tk stubs system because the
build system does not set USE_TCL_STUBS or USE_TK_STUBS and
does not link to the stubs versions of the Tcl/Tk libraries.
So the possible error above has never been tested and the
fix also won't be tested unless and until we "stubify" our
PLplot extensions to Tcl/Tk.  Nevertheless, the Pltk_Init.c
stubs initiation is obviously correct so it is good to use
exactly the same method for Plplotter_Init.c.


------------------------------------------------------------------------
r12687 | airwin | 2013-11-12 17:15:42 -0800 (Tue, 12 Nov 2013) | 16 lines
Changed paths:
   M /trunk/README.release
   M /trunk/bindings/f95/plplot_parameters.h
   M /trunk/bindings/tcl/plplot_parameters.h

Finish propagating recent plplot.h ==> plplotcapi.i changes in
numerical macros to symbolic PLplot constants for two non-swig
languages.  These changes were automatically generated by the
check_f95_parameters and check_tcl_parameters targets and copied
back to the source tree by hand after evaluation.

Document the entire series of changes leading up to and including
these ones in README.release.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
the check_f95_parameters and check_tcl_parameters targets (to check
consistency) and the test_noninteractive target (to test that these
changes and the prior extensive changes propagated from numerical
macros #defined in include/plplot.h caused no issues).


------------------------------------------------------------------------
r12686 | airwin | 2013-11-12 15:55:03 -0800 (Tue, 12 Nov 2013) | 2 lines
Changed paths:
   M /trunk/bindings/tcl/tclAPI.c

Style previous commit.

------------------------------------------------------------------------
r12685 | airwin | 2013-11-12 14:26:49 -0800 (Tue, 12 Nov 2013) | 10 lines
Changed paths:
   M /trunk/bindings/swig-support/CMakeLists.txt
   M /trunk/bindings/swig-support/plplotcapi.i

Implement a new target, check_plplotcapi_defines, which propagates
the numerical #defines in include/plplot.h to a file which
can be compared with the numerical #defines in
bindings/swig-support/plplotcapi.i to see whether those need
updating.

Do such updating using the build-tree file generated by
the above target.


------------------------------------------------------------------------
r12684 | airwin | 2013-11-12 14:19:13 -0800 (Tue, 12 Nov 2013) | 5 lines
Changed paths:
   M /trunk/include/plplot.h

Express more of the numerically #defined constants as hexadecimal
constants where appropriate (i.e., where typically only one bit is set).

Untested.

------------------------------------------------------------------------
r12683 | airwin | 2013-11-12 02:16:40 -0800 (Tue, 12 Nov 2013) | 7 lines
Changed paths:
   M /trunk/examples/tcl/x20.tcl
   M /trunk/examples/tcl/x21.tcl
   M /trunk/examples/tcl/x33.tcl

Change the two-argument min and max functions used in various examples
to the exact variable number of argument  min and max used in
bindings/tk/pltools.tcl.  This prevents a clash (found under plserver
when editing the cmap1 colour palette for example 8) in min and
max function definitions when these examples are running
in examples/tk under plserver.

------------------------------------------------------------------------
r12682 | airwin | 2013-11-12 00:15:37 -0800 (Tue, 12 Nov 2013) | 2 lines
Changed paths:
   M /trunk/cmake/modules/tcl-related.cmake

Add some more output of version information.

------------------------------------------------------------------------
r12681 | airwin | 2013-11-11 22:03:11 -0800 (Mon, 11 Nov 2013) | 7 lines
Changed paths:
   M /trunk/bindings/tk/pltools.tcl
   M /trunk/bindings/tk/plwidget.tcl

Forgot to use the global attribute when necessary for new global
variables pl_itcl_package_name and pl_iwidgets_package_name.  For all
PLplot Tk GUI's these fixes allow access to the "Itcl" version of the
file chooser and also provides an "Itcl" "Palettes" menu item which
appears to work perfectly.


------------------------------------------------------------------------
r12680 | airwin | 2013-11-11 21:49:16 -0800 (Mon, 11 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/tcl/README.tcldemos

Update the directions for running the standard Tcl PLplot examples by
hand.

------------------------------------------------------------------------
r12679 | airwin | 2013-11-11 21:48:09 -0800 (Mon, 11 Nov 2013) | 5 lines
Changed paths:
   M /trunk/bindings/tcl/pkgIndex.tcl.in

Correct some bit rot due to replacing our long-since-retired (!)
autotools-based build system with the present CMake-based build system. 
As a result of this change, the Tcl standard examples can now be run
from tclsh by following the directions in examples/tcl/README.tcldemos.

------------------------------------------------------------------------
r12678 | airwin | 2013-11-11 19:22:18 -0800 (Mon, 11 Nov 2013) | 17 lines
Changed paths:
   M /trunk/bindings/tcl/tclAPI.c
   M /trunk/bindings/tk/PLWin.itk
   M /trunk/bindings/tk/Pltkwin.tcl
   M /trunk/bindings/tk/plcolor.tcl
   M /trunk/bindings/tk/pltools.tcl
   M /trunk/bindings/tk/plwidget.tcl
   M /trunk/bindings/tk-x-plat/Memberscope.tcl
   M /trunk/bindings/tk-x-plat/Plplotwin.tcl
   M /trunk/bindings/tk-x-plat/Plwindow.tcl
   M /trunk/bindings/tk-x-plat/plbarchart.tcl
   M /trunk/bindings/tk-x-plat/pltimeseries.tcl
   M /trunk/bindings/tk-x-plat/plwidget2.tcl
   M /trunk/cmake/modules/tcl-related.cmake
   M /trunk/examples/tk/tk02.in
   M /trunk/examples/tk/tk04.in

Use PLPLOT_ITCL_VERSION, PLPLOT_ITK_VERSION, and
PLPLOT_IWIDGETS_VERSION (now #defined in C environment) to create Tcl
global variables pl_itcl_package_name, pl_itk_package_name, and
pl_iwidgets_package_name.  Use those global variables containing
the package name and version for Itcl, Itk, and Iwidgets wherever
the "package require Itcl", "package require Itk", and "package require
Iwidgets" were used previously in tcl scripts.

Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
the test_interactive target in the build tree.

There were no run-time errors, and the "itcl" examples (targets
test_tk_02 and test_tk_04) worked without issues, but the "itcl" menu
items for colour palette manipulation were missing. Thus, these changes
introduce a colour palette regression that needs to be fixed.


------------------------------------------------------------------------
r12677 | airwin | 2013-11-11 16:54:54 -0800 (Mon, 11 Nov 2013) | 20 lines
Changed paths:
   M /trunk/CMakeLists.txt
   M /trunk/abi-compliance-checker.xml.template.in
   M /trunk/bindings/ocaml/META.in
   M /trunk/bindings/ocaml/plcairo/META.in
   M /trunk/bindings/tcl/pkgIndex.tcl.in
   M /trunk/bindings/tcl/tclAPI.c
   M /trunk/bindings/tk/Pltk_Init.c
   M /trunk/bindings/tk/pkgIndex.tcl.in
   M /trunk/bindings/tk-x-plat/Plplotter_Init.c
   M /trunk/bindings/tk-x-plat/pkgIndex.tcl.in
   M /trunk/cmake/modules/docbook.cmake
   M /trunk/cmake/modules/instdirs.cmake
   M /trunk/cmake/modules/plplot_version.cmake
   M /trunk/config.h.in
   M /trunk/doc/Doxyfile.in
   M /trunk/drivers/ps.c
   M /trunk/drivers/psttf.cc
   M /trunk/pkgcfg/plplot-template.pc.in
   M /trunk/plplot_test/plplot-test.sh.in
   M /trunk/src/plargs.c
   M /trunk/src/plcore.c

VERSION ==> PLPLOT_VERSION (to make the code easier to understand and to
reduce the possibility of name clashes in the future).

PLPLOT_TCL_VERSION ==> PLPLOT_VERSION (since we want to identifiy the
PLplot tcl/tk bindings with PLPLOT_VERSION and not potentially some
other version string.

Propagate PLPLOT_ITCL_VERSION, PLPLOT_ITK_VERSION, and
PLPLOT_IWIDGETS_VERSION from CMake to the C code environment.

N.B. The first of these changes is quite intrusive so the tests below
are useful but they are far from a guarantee that there are no
lingering issues from this change.  So stay alert for VERSION issues
when you use the PLplot svn trunk.

Tested by Alan W. Irwin <airwin@users.sourcforge.net> on Linux using
the test_noninteractive targets for the build tree and the traditional
and CMake-based build systems for the installed examples tree.


------------------------------------------------------------------------
r12676 | airwin | 2013-11-11 14:23:48 -0800 (Mon, 11 Nov 2013) | 20 lines
Changed paths:
   M /trunk/cmake/modules/tcl-related.cmake

Fix up CMake logic for version numbers associated with Itcl, Itk, and Iwidgets.

In preparation for making these variables accessible from the PLplot C 
environment, replace ITCL_VERSION, ITK_VERSION, and IWIDGETS_VERSION
everywhere
with PLPLOT_ITCL_VERSION, PLPLOT_ITK_VERSION, and
PLPLOT_IWIDGETS_VERSION

Set PLPLOT_ITCL_VERSION to 0.0.0 to mark when this version number
should not be used (i.e., when enable_itcl if OFF).

Set PLPLOT_ITK_VERSION and PLPLOT_IWIDGETS_VERSION to 0.0.0 to mark 
when these version numbers
should not be used (i.e., when enable_itk if OFF).

Drop plitcl_packagename, plikt_packagename, and pliwidgets_packagename
everywhere since the plan for making those variables accessible from
the PLplot C environment has been dropped.


------------------------------------------------------------------------
r12675 | airwin | 2013-11-11 13:28:53 -0800 (Mon, 11 Nov 2013) | 2 lines
Changed paths:
   M /trunk/examples/c/x22c.c

Style previous commit.

------------------------------------------------------------------------
r12674 | airwin | 2013-11-09 17:14:57 -0800 (Sat, 09 Nov 2013) | 3 lines
Changed paths:
   M /trunk/cmake/modules/tcl-related.cmake

Add Itcl and Itk header consistency checks using the version numbers in the
itcl.h and itk.h headers that are found.

------------------------------------------------------------------------
r12673 | airwin | 2013-11-09 11:59:07 -0800 (Sat, 09 Nov 2013) | 5 lines
Changed paths:
   M /trunk/cmake/build_projects/itk/bp.cmake
   A /trunk/cmake/build_projects/itk/itk4_header_list.patch

Add generic/itkDecls.h to the list of itk4.0.0 headers that must be
installed. This patch has been publicly distributed at
https://sourceforge.net/p/incrtcl/patches/53/


------------------------------------------------------------------------
r12672 | airwin | 2013-11-08 18:31:53 -0800 (Fri, 08 Nov 2013) | 37 lines
Changed paths:
   M /trunk/cmake/modules/tcl-related.cmake

Continue to rationalize and strengthen Itcl, Itk, and Iwidgets
detection and consistency checking.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
the output from cmake configuration of PLplot.  The cases tested were as
follows:

1. Ordinary PATH variable, use (the default)
-DUSE_INCRTCL_VERSION_4=OFF.

2. Identical to (1.), except specify -DUSE_INCRTCL_VERSION_4=ON.

3. Identical to (1.), except the PATH was modified to put a special install location used by
epa_build (a.k.a., build_projects) on the PATH.  The result was the 
tclsh version built by epa_build was used for this test.

4. Identical to (3.), except specify -DUSE_INCRTCL_VERSION_4=ON.

The result for (1.) was consistent data for Tcl8.5, Tk8.5, version 3
of Itcl and Itk, and version 4.0.1 of Iwidgets were found
corresponding to the (old) Debian wheezy packages that have been
installed on my system.  The result for (2.) smoothly dropped Itcl,
Itk, and Iwidgets (as expected since Debian wheezy does not give
access to version 4 of Itcl and friends).  The result for (3.) was
consistent data for Tcl8.6, Tk8.6, version 3 of Itcl and Itk (both
built against Tcl/Tk8.6), and version 4.0.1 of Iwidgets were found
corresponding to the epa_build for version 3 of itcl and friends. The
result for (4.) was consistent data for Tcl8.6, Tk8.6, version 4 of
Itcl and Itk (both built against Tcl/Tk8.6), and version 4.1.0 of
Iwidgets were found corresponding to the epa_build for version 3 of
itcl and friends.

So a simple manipulation of the PATH and/or the
-DUSE_INCRTCL_VERSION_4 cmake option gives consistent results
in all cases.


------------------------------------------------------------------------
r12671 | airwin | 2013-11-08 13:41:30 -0800 (Fri, 08 Nov 2013) | 6 lines
Changed paths:
   D /trunk/cmake/modules/CheckITCL_Available.tcl
   D /trunk/cmake/modules/CheckTCL_GT_84.tcl
   D /trunk/cmake/modules/GetITCL_Version.tcl
   M /trunk/cmake/modules/tcl-related.cmake

Rationalize and strengthen Itcl, Itk, and Iwidgets detection and
consistency checking.  Use temporary files written by CMake in the
build tree rather than permanent files in our source tree to do these
checks using tclsh.


------------------------------------------------------------------------
r12670 | airwin | 2013-11-07 23:52:13 -0800 (Thu, 07 Nov 2013) | 26 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   A /trunk/cmake/build_projects/iwidgets/CMakeLists.txt
   M /trunk/cmake/build_projects/iwidgets/bp.cmake
   A /trunk/cmake/build_projects/iwidgets/iwidgets4_case.patch
   D /trunk/cmake/build_projects/iwidgets4.0

I got completely fed up with the broken autoconf-based build system
for iwidgets4.0.1 and the inflexible and limited binary distribution
approach that was used for iwidgets4.1.0.  So I implemented a
CMake-based build system for iwidgets4.0/4.1, deleted the iwidgets4.0
directory that contained the separate autoconf-based build of
iwidgets4.0.1, and configured CMake-based builds of both iwidgets4.0
and iwidgets (version 4.1.0 generated from iwidgets4.0 with a patch)
in the one remaining iwidgets directory.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> using the
-DBUILD_THE_BUILDTOOLS=ON build_projects cmake option and the
build_iwidgets and build_iwidgets4.0 targets.  The builds (which
included all the relevant Tcl/Tk8.6 builds and both the version 3 and
version 4 builds of itcl/itk and the version 4.0 and version 4.1
builds of iwidgets) proceeded to conclusion without issues.

Some simple testing under wish suceeded with such commands as "package
require Iwidgets" (which loaded itcl/itk version 4 and iwidgets
version 4.1.0) and "package require -exact Iwidgets 4.0.1) which
loaded itcl/itk version 3 and iwidgets version 4.0.1.  I also
tested the calendar and watch iwidgets demos under both Iwidgets 4.0.1
and Iwidgets 4.1.0 with no issues.

Additional testing with PLplot should follow.


------------------------------------------------------------------------
r12669 | airwin | 2013-11-07 23:27:59 -0800 (Thu, 07 Nov 2013) | 5 lines
Changed paths:
   M /trunk/cmake/build_projects/itk/bp.cmake
   A /trunk/cmake/build_projects/itk/itk4_case.patch

Implement and use a small patch to itk version 4 so that both the Itk and itk
package names can be used.  The file itk4_case.patch has also been
made publicly available at https://sourceforge.net/p/incrtcl/patches/52


------------------------------------------------------------------------
r12668 | airwin | 2013-11-07 23:23:20 -0800 (Thu, 07 Nov 2013) | 24 lines
Changed paths:
   A /trunk/cmake/build_projects/iwidgets/iwidgets4.1.patch

Patch to upgrade iwidgets4.0.1 source tree to a iwidgets4.1.0 source
tree.  This patch was derived as follows:

diff -Naur iwidgets4.0.1/README iwidgets4.1/README >iwidgets4.1.patch
diff -Naur iwidgets4.0.1/license.terms iwidgets4.1/license.terms >>iwidgets4.1.patch
diff -Naur --exclude=pkgIndex.tcl iwidgets4.0.1/generic iwidgets4.1/library >> iwidgets4.1.patch
diff -Naur iwidgets4.0.1/tests iwidgets4.1/tests >> iwidgets4.1.patch

Note iwidgets4.0.1 is created by unpacking the 2002 tarball available
from Sourceforge, and iwidgets4.1 is created by unpacking the
binary tarball (which only contains installed versions of files)
recently released at https://sourceforge.net/projects/kbskit/files/itk/.
So the current patch is a means of making the iwidgets4.1.0 build
and install much more comprehensive (since the binary iwidgets4.1 is
missing many files such as the man pages) and more flexible, i.e., the
build system makes it easy to install files in different locations and
make other changes.

Also note I exclude pkgIndex.tcl from iwidgets4.1/library because that
file is normally configured as part of the iwidgets4.0.1 and
(reconstituted) iwidgets4.1.0 CMake-based build system that I am about
to commit.


------------------------------------------------------------------------
r12667 | andrewross | 2013-11-07 14:00:46 -0800 (Thu, 07 Nov 2013) | 3 lines
Changed paths:
   M /trunk/examples/c/x22c.c

Fix from Phil Rosenberg for code which uses a const variable to initialise the size of an array. This is not strictly C compliant, though it is valid in C++. Visual studio complains about this.


------------------------------------------------------------------------
r12666 | airwin | 2013-11-05 18:05:21 -0800 (Tue, 05 Nov 2013) | 2 lines
Changed paths:
   M /trunk/cmake/build_projects/iwidgets4.0/bp.cmake

Fix location of installed man pages.

------------------------------------------------------------------------
r12665 | airwin | 2013-11-05 16:39:14 -0800 (Tue, 05 Nov 2013) | 7 lines
Changed paths:
   M /trunk/cmake/build_projects/itcl3/bp.cmake

Move back to using a common install prefix for version 3 and version 4
of itcl and friends since there is no practical benefit to a separate
version 3 install prefix (you still have to use versioned package
names) and that separate version 3 install prefix also has the
drawback that you have to set auto_path appropriately to find it.


------------------------------------------------------------------------
r12664 | airwin | 2013-11-05 16:35:15 -0800 (Tue, 05 Nov 2013) | 7 lines
Changed paths:
   M /trunk/cmake/modules/tcl-related.cmake

Implement USE_INCRTCL_VERSION_4 option which allows users to express a
preference for version 4 of itcl and friends of both version 3 and
version 4 are available.  This option is OFF by default (i.e., the
default preference is version 3 of itcl and friends when both version
3 and 4 are available).


------------------------------------------------------------------------
r12663 | airwin | 2013-11-05 12:25:06 -0800 (Tue, 05 Nov 2013) | 17 lines
Changed paths:
   M /trunk/examples/tk/README.tkdemos
   M /trunk/examples/tk/tkdemos.tcl

Make tkdemos.tcl work under wish.

Caveats: 

(1) The logic for deducing whether tkdemos.tcl is
sourced under plserver or wish is pretty shaky and needs
replacing by a better method.

(2) The constants available from libplotd
are not available for unknown reasons under wish (since
the libplplot library should automatically be loaded by
package require Pltk).  So examples 10 and 12 work (since
they do not require library constants), but many other
examples (e.g., 1 and 2) do not currently work because
of this issue.


------------------------------------------------------------------------
r12662 | airwin | 2013-11-05 08:36:59 -0800 (Tue, 05 Nov 2013) | 6 lines
Changed paths:
   M /trunk/bindings/tk-x-plat/plplotter.c

Increase NDEV from 20 (which errored out with a message about too many
devices) to a more generous 100.  That value solved the error and is
consistent with the NDEV value used in other parts of our code, e.g.,
bindings/tk/plframe.c and drivers/wxwidgets.cpp.


------------------------------------------------------------------------
r12661 | airwin | 2013-11-05 08:24:11 -0800 (Tue, 05 Nov 2013) | 2 lines
Changed paths:
   M /trunk/bindings/f95/scstubs.c
   M /trunk/bindings/java/plplotjavac.i
   M /trunk/bindings/python/plplot_widgetmodule.c
   M /trunk/bindings/python/plplotcmodule.i
   M /trunk/examples/c/x22c.c
   M /trunk/src/plfreetype.c
   M /trunk/src/plmap.c
   M /trunk/src/plvect.c

Style previous commits.

------------------------------------------------------------------------
r12660 | andrewross | 2013-11-05 07:16:33 -0800 (Tue, 05 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/python/plplotcmodule.i

Fix up uninitialized variable warnings in python bindings. This is a genuine error, although not an uninitialized variable. As set up the mapform func argument could be omitted from plmap / plmeridians, but this is not allowed since subsequent arguments are mandatory. Swig doesn't allow this since not all languages that swig supports can handle this.


------------------------------------------------------------------------
r12659 | andrewross | 2013-11-05 07:04:47 -0800 (Tue, 05 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/lua/plplotluac.i

Fix potential uninitialized variable warning in lua bindings.


------------------------------------------------------------------------
r12658 | andrewross | 2013-11-05 06:56:10 -0800 (Tue, 05 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/java/PLStream.java
   M /trunk/bindings/lua/plplotluac.i
   M /trunk/bindings/tcl/plapi.tpl
   M /trunk/bindings/tk/PLWin.itk

Further plpath updates for tcl/tk, java and lua bindings.


------------------------------------------------------------------------
r12657 | andrewross | 2013-11-05 06:27:16 -0800 (Tue, 05 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/f95/plstubs.h
   M /trunk/bindings/f95/scstubs.c
   M /trunk/bindings/f95/sfstubsf95.f90

Add plpath to f95 bindings.


------------------------------------------------------------------------
r12656 | andrewross | 2013-11-05 06:23:03 -0800 (Tue, 05 Nov 2013) | 3 lines
Changed paths:
   M /trunk/bindings/c++/plstream.cc
   M /trunk/bindings/c++/plstream.h
   M /trunk/bindings/swig-support/plplotcapi.i

Add plpath to C++, and all swig-generated bindings.


------------------------------------------------------------------------
r12655 | andrewross | 2013-11-05 06:21:38 -0800 (Tue, 05 Nov 2013) | 4 lines
Changed paths:
   M /trunk/bindings/octave/plplot_octave.i


Initialize variables to zero to suppress spurious compiler warning about uninitialized variables.


------------------------------------------------------------------------
r12654 | andrewross | 2013-11-05 06:10:28 -0800 (Tue, 05 Nov 2013) | 4 lines
Changed paths:
   M /trunk/examples/c/x22c.c


Update example 22 to include calls to plpath with a global transformation since this function is not used in any of the other examples.


------------------------------------------------------------------------
r12653 | andrewross | 2013-11-05 05:48:33 -0800 (Tue, 05 Nov 2013) | 5 lines
Changed paths:
   M /trunk/examples/c/x22c.c

Update C example 22 to include a vector plot with a global coordinate transformation to check recent fix. Also include a filled contour plot on this page to check that plshade works ok with global transformations.

This needs discussing on list before propagating to other languages.


------------------------------------------------------------------------
r12652 | andrewross | 2013-11-05 05:47:05 -0800 (Tue, 05 Nov 2013) | 5 lines
Changed paths:
   M /trunk/src/plvect.c

Apply modified version of patch from Phil Rosenberg so that global coordinate transformations are applied to vector plots. 

Also fix bug in autoscaling of vectors for the case where vectors were all parallel to one of the coordinate axes.


------------------------------------------------------------------------
r12651 | andrewross | 2013-11-05 03:31:45 -0800 (Tue, 05 Nov 2013) | 3 lines
Changed paths:
   M /trunk/debian/changelog
   M /trunk/debian/compat
   M /trunk/debian/control
   M /trunk/debian/control.in
   M /trunk/debian/rules

Updates to Debian packages for 5.9.10


------------------------------------------------------------------------
r12650 | airwin | 2013-11-05 00:11:15 -0800 (Tue, 05 Nov 2013) | 2 lines
Changed paths:
   M /trunk/cmake/modules/plplot_version.cmake

Use a more sensible PLPLOT_TCL_VERSION value to quiet a warning message.

------------------------------------------------------------------------
r12649 | airwin | 2013-11-04 22:12:52 -0800 (Mon, 04 Nov 2013) | 18 lines
Changed paths:
   M /trunk/bindings/tk/pkgIndex.tcl.in

Use the correct build-tree location for the tk device.
This gets rid of some bit rot left over from the autotools days!

The result is that the tk device driver can once again be found in the
build tree following the wish directions in
examples/tk/README.tkdemos, e.g.,

cd <top-directory in build tree>
cd examples/tk
wish
lappend auto_path ../../bindings/tk
package require Pltk

N.B. the subsequent suggested command "source tkdemos.tcl" segfaults
so there is still work to do here to get this PLplot Tk test to work
again.


------------------------------------------------------------------------
r12648 | airwin | 2013-11-04 16:48:39 -0800 (Mon, 04 Nov 2013) | 8 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   A /trunk/cmake/build_projects/iwidgets4.0
   A /trunk/cmake/build_projects/iwidgets4.0/bp.cmake
   A /trunk/cmake/build_projects/iwidgets4.0/iwidgets4.0_build_system.patch

Initial commit of iwidgets-4.0.1 build configuration.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
the -DBUILD_THE_BUILDTOOLS=ON cmake option for build_projects and
the build_iwidgets4.0 target.  The build and install succeeded without
obvious issues and "package require Iwidgets 4.0" worked fine afterwards
under wish.

------------------------------------------------------------------------
r12647 | airwin | 2013-11-03 16:53:10 -0800 (Sun, 03 Nov 2013) | 3 lines
Changed paths:
   M /trunk/cmake/build_projects/itcl3/bp.cmake
   M /trunk/cmake/build_projects/itk3/bp.cmake

Use versioned location for header files and itclConfig.sh to avoid
filename clashes with the 4.0 versions.

------------------------------------------------------------------------
r12646 | airwin | 2013-11-03 12:03:15 -0800 (Sun, 03 Nov 2013) | 17 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   A /trunk/cmake/build_projects/itk3
   A /trunk/cmake/build_projects/itk3/bp.cmake

Add itk3 build configuration.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux
using build_projects with -DBUILD_THE_BUILDTOOLS=ON and the
build_itk3 target.

N.B. although the result builds without issues for the separate
non-standard INCRTCL3_PREFIX itcl3 install location, at run-time
nothing works unless you set the ITCL_LIBRARY and ITK_LIBRARY
environment variables to the appropriate versioned directories where
the libraries are installed, and also lappend INCRTCL3_PREFIX/lib to
auto_path.  So the plan is to set INCRTCL3_PREFIX to a more standard
location as soon as a way is figured out to get rid of the critical
filename clashes (e.g., header files) with the version 4 results for
itcl and itk, and version 4.1 results for iwidgets.


------------------------------------------------------------------------
r12645 | airwin | 2013-11-02 15:16:31 -0700 (Sat, 02 Nov 2013) | 4 lines
Changed paths:
   M /trunk/cmake/build_projects/itcl3/bp.cmake

Use a separate install prefix (with appended suffix "_incrtcl3") for itcl3
(and eventually the other [incr Tcl] version 3 components) because of name clashes with
[incr Tcl] version 4 components.

------------------------------------------------------------------------
r12644 | airwin | 2013-11-01 15:05:55 -0700 (Fri, 01 Nov 2013) | 6 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   A /trunk/cmake/build_projects/itcl3
   A /trunk/cmake/build_projects/itcl3/bp.cmake

Initial implementation of itcl3 build.

Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux using the
-DBUILD_THE_BUILDTOOLS=ON option for build_projects and the
build_itcl3 target.

------------------------------------------------------------------------
r12643 | airwin | 2013-10-31 11:38:23 -0700 (Thu, 31 Oct 2013) | 12 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   A /trunk/cmake/build_projects/iwidgets
   A /trunk/cmake/build_projects/iwidgets/bp.cmake

Add iwidgets build configuration which does nothing but download
the iwidgets41.tgz tarball, check its md5sum, unpack it to the
source tree and copy that source tree to the appropriate location
in the install tree.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> using the
build_projects -DBUILD_THE_BUILDTOOLS=ON configuration and the
build_iwidgets target.  As expected, the resulting installed directory was
identical to a directory created by unpacking the iwidgets41.tgz
tarball by hand.


------------------------------------------------------------------------
r12642 | airwin | 2013-10-31 11:32:37 -0700 (Thu, 31 Oct 2013) | 2 lines
Changed paths:
   M /trunk/cmake/build_projects/itk/bp.cmake
   M /trunk/cmake/build_projects/tcl/bp.cmake
   M /trunk/cmake/build_projects/tk/bp.cmake

Minor cmake logic tweaks.

------------------------------------------------------------------------
r12641 | airwin | 2013-10-30 13:12:17 -0700 (Wed, 30 Oct 2013) | 6 lines
Changed paths:
   M /trunk/bindings/f95/global_defines.sed
   M /trunk/bindings/f95/plplot_parameters.h

Replace all BOZ constants by their decimal equivalents to reestablish
the standards compliance lost by the last commit (since Fortran 95,
2003, and 2008 standards all do not allow BOZ constants to initialize
integers for some strange reason).


------------------------------------------------------------------------
r12640 | airwin | 2013-10-30 10:29:31 -0700 (Wed, 30 Oct 2013) | 14 lines
Changed paths:
   M /trunk/bindings/f95/global_defines.sed
   M /trunk/bindings/f95/plplot_parameters.h

Change from Fortran 95 "data" form of specifying constants in the BOZ
(z'....') form, e.g.,

      integer :: PL_FCI_SANS
      data PL_FCI_SANS / z'0' /

to treating such constants just like integers, e.g.,

integer, parameter :: PL_FCI_SANS = z'0'

The latter form is allowed by the Fortran 2003 standard, and also
from Arjen's research implemented by most/all Fortran compilers.


------------------------------------------------------------------------
r12639 | hezekiahcarty | 2013-10-28 17:18:45 -0700 (Mon, 28 Oct 2013) | 8 lines
Changed paths:
   M /trunk/bindings/ocaml/plplot_impl.c
   M /trunk/examples/ocaml/x16.ml

Update OCaml example 16, small type fix for OCaml's plshades

This version should have no visual difference between the C
and OCaml example 16.  There is still a postscript output
difference due to some color setting and restoration which
is performed in the OCaml version.  That difference will be
addressed in a later commit.

------------------------------------------------------------------------
r12638 | airwin | 2013-10-28 15:05:41 -0700 (Mon, 28 Oct 2013) | 4 lines
Changed paths:
   M /trunk/cmake/modules/tcl-related.cmake

Warn if Tcl/Tk library locations are different.

Add 4.0.0 to the list of possible itk versions.

------------------------------------------------------------------------
r12637 | airwin | 2013-10-26 14:18:55 -0700 (Sat, 26 Oct 2013) | 7 lines
Changed paths:
   M /trunk/bindings/tk/tkMain.c

Fix build issue for Tcl/Tk 8.6 which no longer #defines
Tcl_Import_TCL_DECLARED.  Instead, we now assume that all Tcl/Tk
versions we use declare Tcl_Import (true for at least Tcl/Tk 8.5.x and
probably for much earlier Tcl/Tk versions as well) so we no longer
declare Tcl_Import ourselves.


------------------------------------------------------------------------
r12636 | airwin | 2013-10-26 13:47:49 -0700 (Sat, 26 Oct 2013) | 8 lines
Changed paths:
   M /trunk/src/plbuf.c
   M /trunk/src/pllegend.c
   M /trunk/src/plvect.c

Quiet -O1 -Wuninitialized warnings that all proved to be false alarms.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> using the
install target.  No uninitialized warnings occurred other than for
the remaining such warnings from the swig-generated bindings code
for Python, Lua, and Octave (but not for Java which may give a clue for
what to do for those other languages).

------------------------------------------------------------------------
r12635 | airwin | 2013-10-26 11:59:10 -0700 (Sat, 26 Oct 2013) | 9 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   A /trunk/cmake/build_projects/itk
   A /trunk/cmake/build_projects/itk/bp.cmake

Initial implementation of a build_projects configuration for itk.  This
is needed because (unlike the case of itcl which is now an integrated
part of tcl) itk is not integrated into tk.

Tested by: Alan W. Irwin <airwin@users.sourceforge.net> on Linux using the
build_itk target of build_projects using the -DBUILD_THE_BUILDTOOLS=ON
cmake option.  There were no build issues for either itk or its
dependencies, tk and tcl.

------------------------------------------------------------------------
r12634 | airwin | 2013-10-26 11:44:58 -0700 (Sat, 26 Oct 2013) | 5 lines
Changed paths:
   M /trunk/cmake/build_projects/tk/bp.cmake

Use some useful convenience variables defined by the tcl build
configuration to keep track of and enforce consistent version numbers
for Tcl/Tk and iTcl/iTk.


------------------------------------------------------------------------
r12633 | airwin | 2013-10-26 11:41:13 -0700 (Sat, 26 Oct 2013) | 4 lines
Changed paths:
   M /trunk/cmake/build_projects/tcl/bp.cmake

Implement and use some useful convenience variables to keep track of
and enforce consistent version numbers for Tcl/Tk and iTcl/iTk.


------------------------------------------------------------------------
r12632 | airwin | 2013-10-25 23:41:06 -0700 (Fri, 25 Oct 2013) | 2 lines
Changed paths:
   M /trunk/cmake/modules/qt.cmake

Fix endif label inconsistency that crept into last commit.

------------------------------------------------------------------------
r12631 | airwin | 2013-10-25 19:45:20 -0700 (Fri, 25 Oct 2013) | 2 lines
Changed paths:
   M /trunk/examples/c/x33c.c

Fix minor memory leak in example.

------------------------------------------------------------------------
r12630 | airwin | 2013-10-25 18:00:43 -0700 (Fri, 25 Oct 2013) | 3 lines
Changed paths:
   M /trunk/cmake/modules/qt.cmake

Drop qt devices if ENABLE_qt (which activates the build of the plplotqtd
library which the qt devices depend on) is false.

------------------------------------------------------------------------
r12629 | airwin | 2013-10-25 11:51:21 -0700 (Fri, 25 Oct 2013) | 10 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   A /trunk/cmake/build_projects/tk
   A /trunk/cmake/build_projects/tk/bp.cmake

Initial commit of build configuration for tk.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
the build_tk target for build_projects configured with
-DBUILD_THE_BUILDTOOLS=ON.

N.B. Tk-8.6.1 does not include itk so a separate build_projects configuration
will have to be made for itk before Tk and iTk can be tested together
for a PLplot build.

------------------------------------------------------------------------
r12628 | airwin | 2013-10-24 23:36:35 -0700 (Thu, 24 Oct 2013) | 12 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   A /trunk/cmake/build_projects/tcl
   A /trunk/cmake/build_projects/tcl/bp.cmake

Initial commit of build configuration for Tcl.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> on Linux using
a build_projects build with -DBUILD_THE_BUILDTOOLS=ON and the
build_tcl target.  Tcl-8.61 (and itcl-4.0.0 and several other
components) built and installed without issues.  Afterward, an
ordinary build_projects build with the build_plplot_lite target found
that installation of Tcl-8.6.1 and iTcl-4.0.0 and used it to determine
Tcl-8.6 results for all our standard examples which agreed with the
corresponding C results.


------------------------------------------------------------------------
r12627 | airwin | 2013-10-24 23:22:19 -0700 (Thu, 24 Oct 2013) | 5 lines
Changed paths:
   M /trunk/cmake/modules/tcl-related.cmake

Bump the maximum version searched for to 4.0.0 for iTcl.  (Note that version
is an integral part of the Tcl-8.6.1 source code and automatically
builds when Tcl-8.6.1 is built.)


------------------------------------------------------------------------
r12626 | andrewross | 2013-10-24 16:01:26 -0700 (Thu, 24 Oct 2013) | 3 lines
Changed paths:
   M /trunk/bindings/f95/plstubs.h
   M /trunk/bindings/f95/scstubs.c
   M /trunk/bindings/java/plplotjavac.i
   M /trunk/bindings/python/plplot_widgetmodule.c
   M /trunk/bindings/python/plplotcmodule.i
   M /trunk/drivers/xfig.c
   M /trunk/examples/c/x33c.c
   M /trunk/examples/c++/x16.cc
   M /trunk/examples/f95/x00f.f90
   M /trunk/examples/f95/x09f.f90
   M /trunk/examples/f95/x27f.f90
   M /trunk/examples/f95/x33f.f90
   M /trunk/src/plfreetype.c
   M /trunk/src/plmap.c

Fix up various compiler warnings, mostly related to casting and uninitialized variables.


------------------------------------------------------------------------
r12625 | airwin | 2013-10-24 11:54:19 -0700 (Thu, 24 Oct 2013) | 2 lines
Changed paths:
   M /trunk/src/plbox.c
   M /trunk/src/pldtik.c
   M /trunk/src/plmap.c

Set some variables to quiet false-alarm warnings from -O3 -Wuninitialized.

------------------------------------------------------------------------
r12624 | airwin | 2013-10-24 11:22:29 -0700 (Thu, 24 Oct 2013) | 10 lines
Changed paths:
   M /trunk/src/plbox.c

Fix bug in logic which allowed uninitialized values (for height, pos,
and just) for the fairly common case when label_func and label_data
were non-NULL.  Improve code clarity so it is obvious these values
must be initialized by the code logic.

N.B. the gcc options -O3 -Wunintialized found this bug, but the above
fix does not quiet the warning message, i.e., this bug fix turns this
warning about uninitialized variables into a false alarm.


------------------------------------------------------------------------
r12623 | airwin | 2013-10-24 10:38:37 -0700 (Thu, 24 Oct 2013) | 2 lines
Changed paths:
   M /trunk/bindings/python/plplotcmodule.i

Style previous commit.

------------------------------------------------------------------------
r12622 | airwin | 2013-10-23 12:27:05 -0700 (Wed, 23 Oct 2013) | 21 lines
Changed paths:
   M /trunk/README.release
   M /trunk/bindings/gnome2/python/CMakeLists.txt
   M /trunk/bindings/python/CMakeLists.txt
   M /trunk/cmake/modules/python.cmake
   M /trunk/cmake/modules/summary.cmake
   M /trunk/config.h.in
   M /trunk/plplot_test/CMakeLists.txt
   M /trunk/plplot_test/test_python.sh.in

NUMERIC_INCLUDE_PATH ==> NUMPY_INCLUDE_PATH

We have dropped support for the Numeric Python module and are now
exclusively using the numpy Python modules instead. Therefore, have
changed the CMake variable name used in our build system that holds
the location of the numpy headers from the confusing misnomer,
NUMERIC_INCLUDE_PATH, to NUMPY_INCLUDE_PATH.  I have also taken this
opportunity to simplify our numpy-related build system logic, e.g., by
dropping CMake variables that were not being used anywhere.

This change only impacts PLplot users who in the past have used the
cmake option -DNUMERIC_INCLUDE_PATH to set the CMake variable
NUMERIC_INCLUDE_PATH to the location of the numpy header directory.
Note we discourage that method since without that user intervention,
the build system uses python and numpy to find the location which
should normally be foolproof and not subject to the inconsistencies or
errors possible with setting the variable.  But if some users still
insist on setting the variable, that variable's name should now be
NUMPY_INCLUDE_PATH.


------------------------------------------------------------------------
r12621 | andrewross | 2013-10-23 01:46:57 -0700 (Wed, 23 Oct 2013) | 4 lines
Changed paths:
   M /trunk/cmake/modules/octave.cmake


If CMAKE_INSTALL_PREFIX is different to the prefix used to install octave, then make sure .oct files go in ${CMAKE_INSTALL_LIBDIR}/octave , i.e. in a library directory rather than a data directory. They are binary files so should not live under CMAKE_INSTALL_DATADIR.


------------------------------------------------------------------------
r12620 | airwin | 2013-10-22 23:04:04 -0700 (Tue, 22 Oct 2013) | 6 lines
Changed paths:
   M /trunk/cmake/build_projects/libharu/README.libharu

Update documentation based on a new name (removed_configured.patch)
and different purpose (remove a configured file) for one of the patch
files that makes another patch file (missing_zlib_headers.patch)
redundant and therefore removed.


------------------------------------------------------------------------
r12619 | airwin | 2013-10-22 22:54:35 -0700 (Tue, 22 Oct 2013) | 3 lines
Changed paths:
   D /trunk/cmake/build_projects/libharu/CMakeLists.txt

Get rid of another file that is no longer used with the new patch
approach.

------------------------------------------------------------------------
r12618 | airwin | 2013-10-22 19:42:08 -0700 (Tue, 22 Oct 2013) | 10 lines
Changed paths:
   M /trunk/cmake/build_projects/libharu/bp.cmake
   M /trunk/cmake/build_projects/libharu/cmake.patch
   D /trunk/cmake/build_projects/libharu/missing_zlib_headers.patch
   A /trunk/cmake/build_projects/libharu/remove_configured.patch

Update libharu-2.2.1 build configuration so that it works on both
Linux and MinGW/MSYS.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> using the
build_plplot_lite target of the build_projects project on both Linux
and MinGW/MSYS/Wine.  The PDF files resulting from the
test_noninteractive target run as part of that build, look reasonable
on both platforms and there were no obvious run-time errors.


------------------------------------------------------------------------
r12617 | airwin | 2013-10-22 10:47:13 -0700 (Tue, 22 Oct 2013) | 16 lines
Changed paths:
   M /trunk/bindings/ocaml/CMakeLists.txt
   M /trunk/bindings/ocaml/plcairo/CMakeLists.txt
   M /trunk/bindings/octave/CMakeLists.txt
   M /trunk/cmake/modules/plplot.cmake

Create SO_PERMISSIONS variable that is designed to mimic
the permissions of shared objects created by the add_library command.
The result should be correct regardless of whether the Linux platform
is Fedora-based or Debian-based.

Use that permissions variable for the dll*_stubs.so shared objects
built and installed by the OCaml bindings and the plplot_octave.oct
shared object built and installed by the Octave bindings.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> using the
install target on a Debian system.  All permissions of the relevant
installed files mentioned above were (-rw-r--r--) as expected.  On
Fedora systems the results should be (-rwxr-xr-x), but that needs
testing.


------------------------------------------------------------------------
r12616 | airwin | 2013-10-21 18:33:19 -0700 (Mon, 21 Oct 2013) | 26 lines
Changed paths:
   M /trunk/examples/CMakeLists.txt

Implement a VALGRIND_ALL_TESTS option to use valgrind for all runs of
plplot-test.sh.  With this option,

time make VERBOSE=1 -j4 test_c_psc >& test_c_psc.out

takes 6 minutes to complete on a mediocre PC (5-yr old box with 2 real
cpu's).

Tested by Alan W. Irwin <airwin@users.sourceforge.net> using
the test_c_psc target on a 64-bit Linux system.  The result
was all examples were valgrind perfect, e.g., 

==4688== HEAP SUMMARY:
==4688==     in use at exit: 0 bytes in 0 blocks
==4688==   total heap usage: 360 allocs, 360 frees, 122,385 bytes allocated
==4688== 
==4688== All heap blocks were freed -- no leaks are possible
==4688== 
==4688== For counts of detected and suppressed errors, rerun with: -v
==4688== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)


except for x16c and x33c where valgrind showed plcolorbar memory
management issues which I will now attempt to figure out.


------------------------------------------------------------------------
r12615 | airwin | 2013-10-21 15:14:00 -0700 (Mon, 21 Oct 2013) | 15 lines
Changed paths:
   M /trunk/cmake/build_projects/libharu/README.libharu
   M /trunk/cmake/build_projects/libharu/bp.cmake
   D /trunk/cmake/build_projects/libharu/cmake
   A /trunk/cmake/build_projects/libharu/cmake.patch
   D /trunk/cmake/build_projects/libharu/demo
   D /trunk/cmake/build_projects/libharu/include
   D /trunk/cmake/build_projects/libharu/include_hpdf_config.h.patch
   A /trunk/cmake/build_projects/libharu/large_font.patch
   A /trunk/cmake/build_projects/libharu/missing_zlib_headers.patch
   D /trunk/cmake/build_projects/libharu/src
   A /trunk/cmake/build_projects/libharu/visibility.patch

Convert from 2.1.0 release to 2.2.1 release.

Convert to using patches to express changes to the 2.2.1 release
rather than files which are difficult to adjust for any upstream
libharu changes in future.

Tested by Alan W. Irwin <airwin.users.sourceforge.net> following
directions in README.libharu for a standalone build on Linux
and also using the build_projects approach on Linux.

ToDo: MinGW/MSYS/Wine currently fails (presumably due to
2.1.0 ==> 2.2.1 change).  So will have to figure out
the problem, and update the patches for that case.


------------------------------------------------------------------------
r12614 | airwin | 2013-10-20 18:11:34 -0700 (Sun, 20 Oct 2013) | 3 lines
Changed paths:
   M /trunk/cmake/build_projects/shapelib/bp.cmake

Fix recently introduced CFLAGS processing logic for case when CFLAGS is not defined as an
environment variable or is empty.

------------------------------------------------------------------------
r12613 | airwin | 2013-10-20 18:04:03 -0700 (Sun, 20 Oct 2013) | 3 lines
Changed paths:
   M /trunk/bindings/python/plplotcmodule.i

For Python typemap for char *legline[4] get rid of uninitialized 
variable for the fail return path.

------------------------------------------------------------------------
r12612 | airwin | 2013-10-19 21:41:07 -0700 (Sat, 19 Oct 2013) | 12 lines
Changed paths:
   M /trunk/drivers/hpgl.c
   M /trunk/drivers/psttf.cc
   M /trunk/include/ps.h

For the ps, psttf, and hpgl device drivers change all macros concerning pen width to floating point so that
no casts are implicitly made when comparing to plsc->width.

Of course, these device drivers all write integer pen widths to the
file so make the appropriate casts concerning that.

ToDo (some day for somebody else).  Investigate whether the
PostScript standard allows floating values for the pen width,
and if so, do not do the cast and instead write out to the floating
point value of the width to the file.


------------------------------------------------------------------------
r12611 | airwin | 2013-10-19 21:33:13 -0700 (Sat, 19 Oct 2013) | 14 lines
Changed paths:
   M /trunk/bindings/python/plplotcmodule.i

Fix bindings/python/plplotcmodule.i so that all -Wuninitialized (with
no optimization) warnings for the C code generated by swig are
removed. The trick was to initialize the appropriate variables to
NULL, and then use Py_CLEAR (which is a no-op if there is a NULL
argument) rather than the old-fashioned and error-prone Py_DECREF and
Py_XDECREF (see http://docs.python.org/2/c-api/refcounting.html) to
adjust the reference count properly in both the normal return path and
in the return path that cleans up after an error.

ToDo.  I have since discovered that -O3 -Wuninitialized finds more
uninitialized issues than the -O0 case.  I plan to fix those warnings
in a later commit.


------------------------------------------------------------------------
r12610 | airwin | 2013-10-19 17:47:03 -0700 (Sat, 19 Oct 2013) | 6 lines
Changed paths:
   M /trunk/cmake/build_projects/shapelib/bp.cmake

Eliminate -fvisibility=hidden option from CFLAGS for shapelib if the
user specifies it as an overall environment variable to be honored by
build_projects build.  The reason this workaround is required is
shapelib currently has no visibility support for Linux.


------------------------------------------------------------------------
r12609 | airwin | 2013-10-19 17:14:09 -0700 (Sat, 19 Oct 2013) | 2 lines
Changed paths:
   M /trunk/drivers/cairo.c
   M /trunk/examples/d/x33d.d

Style previous commit.

------------------------------------------------------------------------
r12608 | arjenmarkus | 2013-10-19 11:05:40 -0700 (Sat, 19 Oct 2013) | 2 lines
Changed paths:
   M /trunk/bindings/java/plplotjavac.i

Moved two declarations of "cls" to the top of the function, as defining them in the middle of the executable code is a C++-like extension not accepted by MSVC/C++.
Also changed a comparison against NULL to an assignment of NULL.
------------------------------------------------------------------------
r12607 | arjenmarkus | 2013-10-19 10:10:54 -0700 (Sat, 19 Oct 2013) | 1 line
Changed paths:
   M /trunk/bindings/python/plplotcmodule.i

Adjust the casts and sizes for calls to PyArray_DATA, as MSVC/C++ does not allow pointer arithmetic on (void *) pointers. By casting the result of PyArray_DATA to the proper data type the statements become acceptable and it is also no longer needed to multiply the stride with the size of the data type in bytes.
------------------------------------------------------------------------
r12606 | airwin | 2013-10-18 20:27:48 -0700 (Fri, 18 Oct 2013) | 25 lines
Changed paths:
   M /trunk/bindings/python/plplotcmodule.i

Replace PyArray_FLOAT type (which is not part of the clean numpy-1.7
API) with appropriate NPY_* style types.

This fixed the numpy-1.7.1 compile errors caused by

#define NPY_NO_DEPRECATED_API    NPY_1_7_API_VERSION

In two cases (both when calling a single-precision version of PLplot from python)
the PyArray_FLOAT replacement is by NPY_FLOAT32.  That replacement
seemed appropriate but has not been tested.

In the two other cases (when PL_HAVE_PTHREAD is not #defined)
PyArray_FLOAT was replaced by NPY_PLFLT since I am pretty sure that
whether that macro is #defined or not should have nothing to do with
precision.  This case (involving mapform) was tested on the
MinGW/MYSYS/Wine platform, and the results for example 19 were
substantially improved from major differences to just a few small
rounding troubles.  So this change was definitely a bug fix
for the mapform case.

The remaining changes were to use a specific floating-point
precision types in all cases for clarity.



------------------------------------------------------------------------
r12605 | airwin | 2013-10-18 19:51:19 -0700 (Fri, 18 Oct 2013) | 2 lines
Changed paths:
   M /trunk/cmake/build_projects/plplot/bp.cmake

Remove debug flag, clean up CMake logic a bit.

------------------------------------------------------------------------
r12604 | airwin | 2013-10-17 16:21:35 -0700 (Thu, 17 Oct 2013) | 5 lines
Changed paths:
   M /trunk/doc/docbook/src/CMakeLists.txt

Fix build-system bug by removing an attempt to install the PostScript
form of our DocBook-generated documentation.  That form of our
documentation is no longer generated by our build system.


------------------------------------------------------------------------
r12603 | airwin | 2013-10-17 13:33:55 -0700 (Thu, 17 Oct 2013) | 8 lines
Changed paths:
   M /trunk/bindings/tcl/CMakeLists.txt

Fix libplplottcltk overlinking issues discovered by Orion Poplawski
using rpmlint.  The fix is to link to the X11 library alone rather
than X11 library plus extension libraries, and only do that linking
when ENABLE_tk is true (since the pure Tcl library you get with
ENABLE_tk false does not have any undefined symbols in it that need to
be resolved by the X11 library).


------------------------------------------------------------------------
r12602 | airwin | 2013-10-17 12:31:05 -0700 (Thu, 17 Oct 2013) | 2 lines
Changed paths:
   M /trunk/bindings/tcl/CMakeLists.txt

Style (whitespace) improvements.

------------------------------------------------------------------------
r12601 | airwin | 2013-10-17 09:55:28 -0700 (Thu, 17 Oct 2013) | 7 lines
Changed paths:
   M /trunk/doc/docbook/src/CMakeLists.txt

Remove empty plplotdoc-html.proc file that is generated by xmlto,
but which we don't want in the html manifest.  Thanks to Orion Poplawski
for spotting this issue.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> using
-DBUILD_DOCS=ON cmake option, and the html target.

------------------------------------------------------------------------
r12600 | airwin | 2013-10-15 15:15:00 -0700 (Tue, 15 Oct 2013) | 8 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   M /trunk/cmake/build_projects/plplot/bp.cmake
   D /trunk/cmake/build_projects/plplot/plplot.patch

For PLplot builds, replace either the download of 5.9.10 + patch
method (which is difficult to maintain) or the alternative of using
svn trunk (which requires the Linux host of the Wine platform to
install samba to support the authorization method used by svn Windows
clients) with the much simpler method of using the known top-level
directory of the local PLplot source tree for the PLplot build.


------------------------------------------------------------------------
r12599 | airwin | 2013-10-14 12:48:57 -0700 (Mon, 14 Oct 2013) | 40 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   M /trunk/cmake/build_projects/plplot/bp.cmake
   A /trunk/cmake/build_projects/plplot/plplot.patch

Implement PREFER_DOWNLOAD approach by default.  The result for PLplot
is (currently) to use a 5.9.10 download plus a patch called
plplot.patch to add the important PLplot changes since the 5.9.10
release.  That patch was created with the following command:

diff -Naur --exclude=doc --exclude=plplot_octave_txt \
--exclude=build_projects --exclude=.svn --exclude="*README*" \
--exclude="#*#" --exclude=debian --exclude="*.pyc" --exclude=sys \
--exclude=www --exclude=docbook.cmake $prefix1 $prefix2 \
>| plplot_allura/cmake/build_projects/plplot/plplot.patch

where the excludes get rid of unimportant differences (from the point
of view of building software) between the two prefixes such as changes
in the documentation that have occurred since the 5.9.10 release.
Note, that $prefix1 is the directory location of the top of the source
tree from the unpacked 5.9.10 tarball, and $prefix2 is the top of the
local copy of the source tree created from svn trunk with local
changes potentially added (and also potentially added to the patch).

As a result, the -DPREFER_DOWNLOAD=ON approach that is used by default
for the PLplot build has maintenance issues because it requires
keeping that patch up to date.  On the other hand, it also removes
some uncertainty due to svn head for PLplot being a moving target.
Also, on the other hand, it avoids the considerable downside of using
the subversion approach on Windows which requires (a) a subversion
client be installed which adds the normal security concerns about
running any downloaded Windows binary from some new location on the
web, and (b) all dependencies of that client be installed.  The latter
is especially important for Wine since Windows subversion clients use
ntml authorization.  Wine can only provide that if the Linux platform
underneath Wine has Samba installed which might open a channel for
viruses to propagate from Wine to the underlying Linux platform.  So
my view is -DPREFER_DOWNLOAD=ON has sufficiently fewer security and
moving target downsides that it justifies the maintenance cost of
keeping the patch up to date.  At the same time, if the user has
subversion installed, and they want to follow the moving target of the
svn trunk version of PLplot, they are always free to specify
-DPREFER_DOWNLOAD=OFF.


------------------------------------------------------------------------
r12598 | airwin | 2013-10-14 12:17:47 -0700 (Mon, 14 Oct 2013) | 15 lines
Changed paths:
   M /trunk/cmake/modules/FindLua.cmake

CMake's current behaviour on Windows systems is that all possible
drive letters are searched for PATHS values (e.g., /usr/bin) which do
not have a drive letter specified.  The result is that with /usr/bin
in the PATHS variable, the LUA_EXECUTABLE was found corresponding to
z:/usr/bin/lua, where z: happens to be the drive letter containing a
mount of the Linux OS files on a Windows system.  This unexpected
result for find, happened, for example, on Wine (which does mount all
Linux files on z:).

To work around this issue, remove all specific PATHS values when
searching for lua.  The result is that lua will only be found
(both on Unix and Windows) if it is in the PATH, which is generally
the desired result.


------------------------------------------------------------------------
r12597 | airwin | 2013-10-13 08:54:18 -0700 (Sun, 13 Oct 2013) | 5 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   M /trunk/cmake/build_projects/ExternalProject.cmake

Restore minimum version of 2.8.11.2 (and also the associated touch
patch that is needed for that case) since there is some evidence that
2.8.12 is problematic on Wine.


------------------------------------------------------------------------
r12596 | airwin | 2013-10-12 22:23:53 -0700 (Sat, 12 Oct 2013) | 3 lines
Changed paths:
   M /trunk/cmake/modules/Findhpdf.cmake

Search for hpdf headers found in a suffix subdirectory named hpdf before searching
for those headers without such a suffix subdirectory.

------------------------------------------------------------------------
r12595 | airwin | 2013-10-12 17:56:24 -0700 (Sat, 12 Oct 2013) | 7 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   M /trunk/cmake/build_projects/add_packages.xml
   A /trunk/cmake/build_projects/swig
   A /trunk/cmake/build_projects/swig/bp.cmake

Add swig build configuration.

Tested by: Alan W. Irwin <airwin@users.sourceforge.net> by
using the cmake option -DBUILD_THE_BUILDTOOLS=ON and building
the resulting build_swig target on both Linux and MSYS/Wine.


------------------------------------------------------------------------
r12594 | airwin | 2013-10-12 17:51:13 -0700 (Sat, 12 Oct 2013) | 8 lines
Changed paths:
   M /trunk/cmake/build_projects/plplot/bp.cmake

Download PLplot source from svn trunk.

This means build_projects users must have a subversion client
installed, but the big advantage of this new approach is they don't
have to edit the local PLplot location anymore in this configuration
file.


------------------------------------------------------------------------
r12593 | airwin | 2013-10-12 17:47:13 -0700 (Sat, 12 Oct 2013) | 5 lines
Changed paths:
   M /trunk/cmake/build_projects/libpcre/bp.cmake

Drop the --enable-pcregrep-libz configure option to make the MSYS/Wine
build work without the autotools finagling required to find the
MSYS zlib library and header.


------------------------------------------------------------------------
r12592 | airwin | 2013-10-12 12:50:43 -0700 (Sat, 12 Oct 2013) | 7 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   M /trunk/cmake/build_projects/add_packages.xml
   A /trunk/cmake/build_projects/libpcre
   A /trunk/cmake/build_projects/libpcre/bp.cmake

Add libpcre as one of the dependencies for the future
swig BUILD_THE_BUILDTOOLS configuration.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> using
the cmake -DBUILD_THE_BUILDTOOLS=ON option and the build_libppcre target
for the build_projects project.

------------------------------------------------------------------------
r12591 | airwin | 2013-10-12 11:13:59 -0700 (Sat, 12 Oct 2013) | 4 lines
Changed paths:
   A /trunk/cmake/build_projects/add_packages.xml (from /trunk/cmake/build_projects/gtk_packages_add.xml:12588)
   D /trunk/cmake/build_projects/gtk_packages_add.xml

Rename gtk_packages_add.xml ==> add_packages.xml to provide a more
descriptive name for this file (since it will soon do more than
add to the gtk packages).

------------------------------------------------------------------------
r12590 | airwin | 2013-10-11 17:49:36 -0700 (Fri, 11 Oct 2013) | 6 lines
Changed paths:
   M /trunk/cmake/modules/drivers-init.cmake

Enable the pdf device by default. Assuming that the libhpdf library
this device depends on has the patch available at
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=726069 applied, all
standard examples should work with this device.


------------------------------------------------------------------------
r12589 | airwin | 2013-10-11 17:45:01 -0700 (Fri, 11 Oct 2013) | 8 lines
Changed paths:
   M /trunk/cmake/modules/Findhpdf.cmake
   M /trunk/drivers/pdf.c

Do not assume that hpdf.h will be found in the hpdf subdirectory.
This change allows the pdf device driver to build not only against
a native build of the libhpdf library (which installs hpdf.h in
an hpdf subdirectory) as well as the Debian package of same
(which install hpdf.h in /usr/include, i.e, not in a subdirectory
named hpdf).


------------------------------------------------------------------------
r12588 | airwin | 2013-10-11 11:50:01 -0700 (Fri, 11 Oct 2013) | 3 lines
Changed paths:
   M /trunk/cmake/build_projects/ExternalProject.cmake

Update to 2.8.12 version of ExternalProject.cmake with tar.xz patch
applied.

------------------------------------------------------------------------
r12587 | airwin | 2013-10-11 11:46:29 -0700 (Fri, 11 Oct 2013) | 11 lines
Changed paths:
   M /trunk/cmake/build_projects/CMakeLists.txt
   M /trunk/cmake/build_projects/ExternalProject.cmake

Bump the minimum version of CMake to 2.8.12 for build_projects.  That
version fixes the time stamp issue where the times are truncated to
the nearest lower second for the "cmake -E touch" command both on
Linux and Windows. Therefore I was also able to revert the previous 
ExternalProject.cmake change where the "cmake -E touch" command was
replaced by the touch command.  This reversion makes the local
ExternalProject.cmake file more consistent with the 2.8.10.2 version
of that file, i.e., the only differences left concern handling
of tar.xz tarballs.


------------------------------------------------------------------------
r12586 | airwin | 2013-10-10 22:14:45 -0700 (Thu, 10 Oct 2013) | 17 lines
Changed paths:
   M /trunk/cmake/modules/qt.cmake

Fix a typo (missing blank delimiter after the fourth quote) in the 

string(REGEX REPLACE " " ";" PYQT_SIP_FLAGS "${PYQT_SIP_FLAGS}")

command.  This issue was discovered by CMake-2.8.12.  This should have
produced a wrong number of arguments error in the past for this
command but somehow did not so I think previous CMake versions
did not demand a blank after string to delimit the
next argument so all was well.

Anyhow, this issue did not appear to cause problems in the past for
our pyqt4 results, but nevertheless it is good to fix this issue.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> using
the test_pyqt4_example target.


------------------------------------------------------------------------
r12585 | airwin | 2013-10-10 21:47:25 -0700 (Thu, 10 Oct 2013) | 5 lines
Changed paths:
   M /trunk/cmake/modules/pkg-config.cmake

Fix a typo in the argument of an else command that was discovered by CMake-2.8.12.  I
am pretty sure the arguments of else commands are generally ignored so
this typo did not cause any misbehaviour in the past, but nevertheless
it is good to fix this issue.

------------------------------------------------------------------------
r12584 | airwin | 2013-10-06 11:58:29 -0700 (Sun, 06 Oct 2013) | 5 lines
Changed paths:
   M /trunk/doc/docbook/README.developers

Add a discussion concerning the compromise between comprehensiveness
and quality forced on users by the specific font approach adopted
by xelatex/fontspec (the tools we indirectly use to build the pdf form
of our UTF-8 documentation.)

------------------------------------------------------------------------
r12583 | airwin | 2013-10-06 11:36:27 -0700 (Sun, 06 Oct 2013) | 2 lines
Changed paths:
   M /trunk/doc/docbook/src/CMakeLists.txt

Add dependency for dblatex_stylesheet.xsl to the pdf build.

------------------------------------------------------------------------
r12582 | airwin | 2013-10-05 16:29:44 -0700 (Sat, 05 Oct 2013) | 4 lines
Changed paths:
   M /trunk/doc/docbook/README.developers

Update/simplify this documentation for developers who want
to build our documentation.


------------------------------------------------------------------------
r12581 | airwin | 2013-10-05 12:51:48 -0700 (Sat, 05 Oct 2013) | 6 lines
Changed paths:
   M /trunk/cmake/modules/docbook.cmake

Make DOCBOOK_XML_BACKEND ON mandatory rather than an option.
This change effectively disables the old SGML/DSSSL backend tools that
were deprecated but still available for 5.9.10 and which were the
default for releases prior to 5.9.10.


------------------------------------------------------------------------
r12580 | airwin | 2013-10-05 12:38:25 -0700 (Sat, 05 Oct 2013) | 33 lines
Changed paths:
   M /trunk/doc/docbook/src/advanced.xml

Add some explanatory text concerning UTF-8 encoded input strings. This
explanation includes a wide variety of UTF-8 glyphs (all the "peace"
words in Example 24 and a number of mathematical symbols).  Thus, this
additional explanatory text is also a good test of how our
documentation build system handles UTF-8 glyphs in general.

Tested by Alan W. Irwin <airwin@users.sourceforge.net> for
-DBUILD_DOC=ON and the following targets:

man (results not affected since the man pages ignore the advanced
chapter.)

info (good results; all math glyphs and all but the glyphs occurring
in the Korean, Hindi, and Mandarin "peace" words came through fine.
That's exactly the same set of missing glyphs that occurs when I use
"less" on advanced.xml so it is possible some configuration adjustment
for my system will fix the missing glyphs that occur both for the info
form of our documentation and when using "less".)

html (outstanding results; all math glyphs and all the glyphs occurring
in the set of "peace" words render without issues including the CTL
languages like Hebrew, Arabic, and Hindi.)

pdf (good results; all math glyphs and all but the glyphs occurring in
the Korean and Mandarin "peace" words come through fine.  I attribute
these issues to missing Korean and Mandarin glyphs in the chosen
FreeSans, FreeSerif, and FreeMono fonts. The order of the glyphs in
the Hindi peace word is not correct (last two glyphs switched) which
is a common complex text layout (CTL) issue when using unsophisticated
software to render Hindi.  More comments on these PDF results are
forthcoming on the plplot-devel list.)


------------------------------------------------------------------------
r12579 | airwin | 2013-10-05 12:00:37 -0700 (Sat, 05 Oct 2013) | 8 lines
Changed paths:
   M /trunk/doc/docbook/src/CMakeLists.txt
   A /trunk/doc/docbook/src/dblatex_stylesheet.xsl

Use a dblatex stylesheet to set the FreeSans, FreeSerif, and
FreeMono fonts as the default for the PDF DocBook result.
These rather comprehensive fonts (in fact the most
comprehensive that I am aware of) allow a rather wide range
of unicode glyphs in the DocBook source to be correctly
rendered in the pdf results.


------------------------------------------------------------------------
r12578 | airwin | 2013-10-05 05:06:48 -0700 (Sat, 05 Oct 2013) | 23 lines
Changed paths:
   M /trunk/cmake/modules/docbook.cmake
   M /trunk/doc/docbook/src/CMakeLists.txt

Implement new "dblatex --backend=xetex" method for generating pdf form
of DocBook documentation by default.  (The older xmlto method is
still available using -DDOCBOOK_DBLATEX_BACKEND=OFF).

The (big) advantage of this new method compared to the previous xmlto
method of generating the pdf form of our documentation is it allows a
wide range of UTF-8 glyphs in the DocBook source.  
So if the default fonts selected for the xelatex step in the procedure
are comprehensive (such as FreeSans, FreeSerif, and
FreeMono) a very wide range of UTF-8 glyphs can be rendered properly
in our print documentation.

The disadvantage of this method compared to the previous xmlto
procedure is that PostScript results can only be generated using
pdf2ps.  I have implemented that method but then disabled that part of
the code because the result is literally 50 times larger than the pdf
form of our documentation, takes a very long time to generate, takes a
long time to view, and produces rather ugly results.

ToDo: move from the present rather limited defaults fonts to FreeSans,
FreeSerif, and FreeMono.


------------------------------------------------------------------------
r12577 | andrewross | 2013-10-04 14:43:12 -0700 (Fri, 04 Oct 2013) | 3 lines
Changed paths:
   M /trunk/drivers/cairo.c
   M /trunk/include/plplot.h
   M /trunk/src/plcore.c

Implement support for underlining ("#-" escape code) in cairo driver, and warn that overline and backchar are not supported. 


------------------------------------------------------------------------
r12576 | andrewross | 2013-10-03 14:51:23 -0700 (Thu, 03 Oct 2013) | 3 lines
Changed paths:
   M /trunk/debian/changelog
   M /trunk/debian/control
   M /trunk/debian/control.in
   M /trunk/debian/libcsiro0.files
   M /trunk/debian/libplplot-ada1-dev.files
   M /trunk/debian/libplplot-ada1.files
   A /trunk/debian/libplplot-ada1.lintian-overrides
   M /trunk/debian/libplplot-c++11.files
   M /trunk/debian/libplplot-d.files
   M /trunk/debian/libplplot-dev.files
   M /trunk/debian/libplplot-fortran10.files
   A /trunk/debian/libplplot-fortran10.lintian-overrides
   M /trunk/debian/libplplot-java.files
   M /trunk/debian/libplplot-lua.files
   A /trunk/debian/libplplot-ocaml.lintian-overrides
   M /trunk/debian/libqsastime-dev.files
   M /trunk/debian/libqsastime0.files
   A /trunk/debian/patches/fix-python-exec-bit.diff
   M /trunk/debian/patches/series
   A /trunk/debian/plplot-tcl-bin.files
   M /trunk/debian/plplot-tcl-dev.files
   M /trunk/debian/plplot-tcl-dev.lintian-overrides
   M /trunk/debian/plplot-tcl.files
   M /trunk/debian/plplot12-driver-cairo.files
   M /trunk/debian/plplot12-driver-qt.files
   M /trunk/debian/plplot12-driver-wxwidgets.files
   M /trunk/debian/plplot12-driver-xwin.files
   M /trunk/debian/rules

Next round of updates to the Debian packages. Should be (nearly) there now.


------------------------------------------------------------------------
r12575 | andrewross | 2013-10-03 14:19:46 -0700 (Thu, 03 Oct 2013) | 3 lines
Changed paths:
   M /trunk/bindings/java/CMakeLists.txt
   M /trunk/cmake/modules/java.cmake
   M /trunk/examples/java/CMakeLists.txt

Allow the cmake JAVACFLAGS variable to be set to include additional command line options for javac. 


------------------------------------------------------------------------
r12574 | andrewross | 2013-10-03 01:19:31 -0700 (Thu, 03 Oct 2013) | 3 lines
Changed paths:
   M /trunk/examples/python/CMakeLists.txt
   M /trunk/examples/python/plplot_py_demos.py

plplot_py_demos.py is not a directly executable script, so don't make it executable.


------------------------------------------------------------------------
r12573 | airwin | 2013-10-02 14:07:51 -0700 (Wed, 02 Oct 2013) | 3 lines
Changed paths:
   M /trunk/README.Release_Manager_Cookbook

Note validation of SF website pages as an additional task in the
release process.

------------------------------------------------------------------------
r12572 | airwin | 2013-10-02 13:59:30 -0700 (Wed, 02 Oct 2013) | 9 lines
Changed paths:
   M /trunk/www/corefunctions.php

To remove one validation warning, change iso-8859-1 ==> utf-8

Tested by Alan W. Irwin <airwin@users.sourceforge.net> by
propagating this change to the SourceForge website and validating
each of index.php, download.php, examples.php, documentation.php, and
credits.php there by clicking on the appropriate html and CSS validation
check buttons.


------------------------------------------------------------------------
r12571 | smekal | 2013-10-02 13:00:56 -0700 (Wed, 02 Oct 2013) | 1 line
Changed paths:
   M /trunk/www/corefunctions.php

New link to plplot News rss feed taken directly from plplot sourceforge project page. Number of news items limited by breaking foreach loop after $newscount items. Item description needs to be stripped of HTML tags, since new rss feed adds some HTML tags (old news feed didn't contain suchs tags).
------------------------------------------------------------------------
r12570 | andrewross | 2013-10-02 12:52:29 -0700 (Wed, 02 Oct 2013) | 3 lines
Changed paths:
   M /trunk/debian/README.Debian
   M /trunk/debian/changelog
   M /trunk/debian/control
   M /trunk/debian/control.in
   D /trunk/debian/libplplot-ada0-dev.files
   D /trunk/debian/libplplot-ada0.files
   A /trunk/debian/libplplot-ada1-dev.files (from /trunk/debian/libplplot-ada0-dev.files:12562)
   A /trunk/debian/libplplot-ada1.files (from /trunk/debian/libplplot-ada0.files:12562)
   D /trunk/debian/libplplot-c++10.files
   A /trunk/debian/libplplot-c++11.files (from /trunk/debian/libplplot-c++10.files:12562)
   M /trunk/debian/libplplot-dev.files
   A /trunk/debian/libplplot-fortran10.files (from /trunk/debian/libplplot-fortran9.files:12562)
   D /trunk/debian/libplplot-fortran9.files
   M /trunk/debian/libplplot-java.files
   D /trunk/debian/libplplot11.files
   A /trunk/debian/libplplot12.files (from /trunk/debian/libplplot11.files:12562)
   M /trunk/debian/octave-plplot.files
   M /trunk/debian/patches/02_unset-python-path.diff
   A /trunk/debian/patches/fix-d-examples.diff
   M /trunk/debian/patches/fix-lua-includes.diff
   M /trunk/debian/patches/proper-path-handling.diff
   M /trunk/debian/patches/series
   M /trunk/debian/plplot-tcl-dev.files
   M /trunk/debian/plplot-tcl-dev.lintian-overrides
   D /trunk/debian/plplot11-driver-cairo.files
   D /trunk/debian/plplot11-driver-gd.files
   D /trunk/debian/plplot11-driver-qt.files
   D /trunk/debian/plplot11-driver-wxwidgets.files
   D /trunk/debian/plplot11-driver-xwin.files
   A /trunk/debian/plplot12-driver-cairo.files (from /trunk/debian/plplot11-driver-cairo.files:12562)
   A /trunk/debian/plplot12-driver-qt.files (from /trunk/debian/plplot11-driver-qt.files:12562)
   A /trunk/debian/plplot12-driver-wxwidgets.files (from /trunk/debian/plplot11-driver-wxwidgets.files:12562)
   A /trunk/debian/plplot12-driver-xwin.files (from /trunk/debian/plplot11-driver-xwin.files:12562)
   M /trunk/debian/python-plplot.files
   M /trunk/debian/rules

Update Debian packages for the new 5.9.10 release.


------------------------------------------------------------------------
r12569 | airwin | 2013-10-02 10:22:29 -0700 (Wed, 02 Oct 2013) | 6 lines
Changed paths:
   M /trunk/README.Release_Manager_Cookbook

Indicate how to make the latest tarball the default choice at
SF.

Add more gpg details.


------------------------------------------------------------------------
r12568 | andrewross | 2013-10-02 02:23:08 -0700 (Wed, 02 Oct 2013) | 3 lines
Changed paths:
   M /trunk/examples/d/x20d.d

Fix bug in D example 20. Won't compile with latest version of gdc.


------------------------------------------------------------------------
r12567 | airwin | 2013-10-01 14:20:49 -0700 (Tue, 01 Oct 2013) | 5 lines
Changed paths:
   M /trunk/cmake/modules/docbook.cmake
   M /trunk/doc/docbook/src/CMakeLists.txt

Set appropriate environment variables (found with a google search) so
that the onsgmls validation tool works fine even if the XML source for
DocBook contains any of the many UTF-8 characters that are allowed for
XML but not for SGML. 

------------------------------------------------------------------------
r12566 | smekal | 2013-10-01 11:13:58 -0700 (Tue, 01 Oct 2013) | 1 line
Changed paths:
   M /trunk/www/corefunctions.php

Changed the link to the plplot Sourceforge News feed according to api description here: http://sourceforge.net/apps/trac/sourceforge/wiki/API. Plplot webpage should be ok with these changes again.
------------------------------------------------------------------------
r12565 | smekal | 2013-10-01 11:06:19 -0700 (Tue, 01 Oct 2013) | 1 line
Changed paths:
   M /trunk/www/simplepie.inc

Update of simplepie.inc to the latest version (1.3.1, downloaded from simplepie.org).
------------------------------------------------------------------------
r12564 | airwin | 2013-10-01 11:02:35 -0700 (Tue, 01 Oct 2013) | 3 lines
Changed paths:
   M /trunk/README.release

Substantial reorganization to put the most recent information at
the top of the file.

------------------------------------------------------------------------
r12563 | airwin | 2013-10-01 09:51:17 -0700 (Tue, 01 Oct 2013) | 7 lines
Changed paths:
   M /trunk/README.Release_Manager_Cookbook

Another refinement of the release manager cookbook.

These instructions are still pretty rough, but it contains the essence
of what I did in a realistic order, and for the next release I will
refine these instructions some more.


------------------------------------------------------------------------
r12562 | airwin | 2013-09-30 23:30:27 -0700 (Mon, 30 Sep 2013) | 5 lines
Changed paths:
   M /trunk/README.release

Prepare new version of this file (currently with no changes relative
to 5.9.10) to be used by every active developer during the course of the
of 5.9.11 release cycle to record their notable changes.


------------------------------------------------------------------------
r12561 | airwin | 2013-09-30 23:22:48 -0700 (Mon, 30 Sep 2013) | 2 lines
Changed paths:
   M /trunk/OLD-README.release

Prepend README.release for 5.9.10 to this file.

------------------------------------------------------------------------
r12558 | airwin | 2013-09-30 15:58:54 -0700 (Mon, 30 Sep 2013) | 2 lines
Changed paths:
   M /trunk/ChangeLog.release

Commit ChangeLog for this release cycle.

------------------------------------------------------------------------
Source: README.release, updated 2013-12-22