2004-01-14  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* cwebmac.tex: LDF 2004.01.14.
	Changed `\title' to "3DLDF 1.1.5".

	* ellipses.web: LDF 2004.01.14.
	In |intersection_points()| with |Ellipse| argument:
	Changed |step| argument from |real| to |const real|.

2004-01-12  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* Makefile.am: LDF 2004.01.12.
	Changed version number from `1.1.4' to `1.1.5'.

	* utility.web, tsthdweb, transfor.web, subex2.web, subex1.web, solids.web, solfaced.web, shapes.web, rectangs.web, polyhed.web, polygons.web, points.web, planes.web, pictures.web, patterns.web, paths.web, parser.web, main.web, loader.web, lines.web, ldfr, io.web, gsltmplt.web:
	LDF 2004.01.12.
	Changed copyright date from ``2003'' to ``2003, 2004''.

	* pspglb.web, exampman.web, examples.web, examples.mp, ellipses.web, curves.web, cuboid.web, creatnew.web, colors.web, cnepspng.el, circles.web, Makefile.am, 3DLDFtex.tex, 3DLDFtex.bas, 3DLDFprg.web, 3DLDFprg.mac, 3DLDFmp.mp:
	LDF 2004.01.12.
	Changed copyright date from ``2004'' to ``2003, 2004''.

	* exampman.web, examples.web, examples.mp: LDF 2004.01.12.
	Changed copyright date to 2004.

	* ellipses.web: LDF 2004.01.12.
	Changed copyright date to 2004.

	Added |real step| argument to the version of |Ellipse::intersection_points()| that takes
	an |Ellipse| argument.  3 is the default value.

	* curves.web, cuboid.web, creatnew.web, colors.web, cnepspng.el, circles.web, Makefile.am, 3DLDFtex.tex, 3DLDFtex.bas:
	LDF 2004.01.12.
	Changed copyright date to 2004.

	* 3DLDFprg.web: LDF 2004.01.12.
	Removed erroneous `#endif'.

	* 3DLDFprg.web: LDF 2004.01.12.
	Changed version number from `1.1.4' to `1.1.5'.
	Changed copyright date to 2004.

	* 3DLDFmp.mp, 3DLDFprg.mac: LDF 2004.01.12.
	Changed copyright date to 2004.

	* pspglb.web: LDF 2004.01.12.
	Changed version number from `1.1.4' to `1.1.5'.
	Changed copyright date to 2004.

	* cwebmac.tex: LDF 2004.01.12.
	Changed version number from `1.1.4' to `1.1.5'.
	Changed date to ``January 2004''.

	* Makefile.am: LDF 2004.01.12.
	BUG FIX:  Added `touch 3DLDFmp.mp' to the `3DLDFmp.mp' target.  This ensures that
	TeX and dvips will be run, if MetaPost is run on `3DLDFmp.mp'.  This happens if
	`3DLDFput.mp' is newer than `3DLDFmp.mp', but the latter isn't changed, so TeX and dvips
	weren't being run.  I'm surprized nobody's complained about this.

	Added `PHONY' targets as synonyms for certain targets:
	`cpl' for `3dldf'.  For compiling and linking `3dldf'.

	`mp' for `3DLDFmp.mp'.  For running MetaPost on `3DLDFmp.mp'.

	`ldf' for `3DLDFput.mp'. For running `3dldf'.

	* Makefile.am: LDF 2004.01.12.
	Added `examples.mp' and `exampman.web' to `EXTRA_DIST'.

	Added `PHONY' target `pdf' for generating `3DLDFprg.pdf'.

2004-01-09  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* exampman.web, examples.mp: New file.

	* Makefile.am: LDF 2004.01.09.
	Added `cnepspng.el' to `EXTRA_DIST'.  The former contains
	the Emacs-Lisp definitions of the functions `convert-eps' and `convert-eps-loop'.
	These functions are used for converting the EPS files generated by MetaPost to
	the structured PostScript and PNG formats.

	* cnepspng.el: LDF 2004.01.09.
	Put in the copyright, license, and contact information.  Commented-out
	the calls to `local-set-key'.

	* cnepspng.el: LDF 2004.01.09.
	Edited the documentation strings of `convert-eps and `convert-eps-loop'.

	* cnepspng.el: LDF 2004.01.09.
	Completed definitions of `convert-eps and `convert-eps-loop'.

	* cnepspng.el: New file.

2004-01-06  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* main.web: LDF 2004.01.06.
	Changed calls to |get_second_largest()|, so that the |verbose| argument
	is |false|.

	* solids.web: LDF 2004.01.06.
	Made |set_on_free_store()| non-inline.

	* points.web: LDF 2004.01.06.
	Made |is_on_free_store()| non-inline.

	* paths.web: LDF 2004.01.06.
	Made |set_on_free_store()| and |is_on_free_store()| non-inline.

	* colors.web: LDF 2004.01.06.
	Made |is_on_free_store()| non-inline.

	* lines.web, io.web, gsltmplt.web, examples.web, ellipses.web, curves.web, cuboid.web, colors.web, circles.web:
	LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	* utility.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	Now including `creatnew.h'.

	Replaced calls of |create_new_point()| with calls to
	|create_new<Point>()|.

	* transfor.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	Made |epsilon()| non-inline.  It now returns different values, depending
	on the value of |LDF_REAL_DOUBLE|.  This is because it's now possible
	to |typedef real| to |float| or |double|.

	* solids.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	Now including `creatnew.h'.

	Replaced |create_new_solid()| with specializations of
	the template function |create_new()|.
	Added the section
	|@<Declare non-member template functions for |Solid|@>|, which
	contains the declarations of the specializations.

	Replaced calls of |create_new_<type>()| with calls to
	the appropriate specialization of the template function
	|create_new<type>()|.

	* solfaced.web, shapes.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	* rectangs.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	Now including `creatnew.h'.

	Replaced |create_new_rectangle()| with specializations of
	the template function |create_new()|.
	Added the section
	|@<Declare non-member template functions for |Rectangle|@>|, which
	contains the declarations of the specializations.

	Replaced calls of |create_new_point()| with calls to
	|create_new<Point>()|.

	* pspglb.web: LDF 2004.01.06.
	Merged in changes from my development version.

	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	Moved code for including the library header file `limits' or `limits.h' from
	`loader.web' to this file.  It's only used here.

	Now using |#define| instead of |@@d| for
	the definitions of |LDF_REAL_FLOAT| and |LDF_REAL_DOUBLE|.  If |@@d|
	is used, the definitions are only written to \filename{pspglb.c}.
	Using |#define|, and writing |@<Type definitions@>| to
	\filename{pspglb.h} makes the definitions available to the files that
	include \filename{pspglb.h}.

	Changed the way |MAX_REAL| and |MAX_REAL_SQRT| are declared.  They are no
	longer |const|, because setting their values requires function calls.
	|MAX_REAL| is set by using |get_second_largest()| in |main()|.  Following this,
	|MAX_REAL_SQRT| is set to |sqrt(MAX_REAL)|.

	Added |extern const bool ldf_real_float| and |extern const bool ldf_real_double|
	for use in non-conditionally compiled code.  They are set according to the values
	of |LDF_REAL_FLOAT| and |LDF_REAL_DOUBLE|.

	Added |namespace System| and declarations and definitions for functions belonging
	to it: |get_endianness()|, |is_big_endian()|, |is_little_endian()|,
	|get_register_width()|, |is_32_bit()|, and |is_64_bit()|.
	The template function |get_second_largest()| also belongs to |namespace System|, but
	it is declared and defined in `gsltmplt.web'.  This is because of the way templates
	are instantiated by the GNU C++ compiler GCC 3.3.

	Added the sections |@<Declare |namespace System|@>| and
	|@<Define |System| functions@>|.

	* polygons.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	Now including `creatnew.h'.

	Replaced |create_new_reg_polygon()| with specializations of
	the template function |create_new()|.
	Added the section
	|@<Declare non-member template functions for |Reg_Polygon|@>|, which
	contains the declarations of the specializations.

	Replaced calls of |create_new_point()| with calls to
	|create_new<Point>()|.

	* polyhed.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	Now including `creatnew.h'.

	Replaced calls of |create_new_reg_polygon()| with calls to
	|create_new<Reg_Polygon>()|.

	* points.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	Now including `creatnew.h'.

	Replaced |create_new_point()| with specializations of
	the template function |create_new()|.
	Added the section
	|@<Declare non-member template functions for |Point|@>|, which
	contains the declarations of the specializations.

	Replaced calls of |create_new_point()| with calls to
	|create_new<Point>()|.

	Changed the name of the sections
	|@<Declare non-member functions for |Points|@>| and
	|@<Define non-member functions for |Points|@>| to
	|@<Declare non-member non-template functions for |Point|@>| and
	|@<Define non-member non-template functions for |Point|@>|,
	respectively.

	Made |set_on_free_store()| non-inline.

	Made |epsilon()| non-inline.  It now also contains conditionally compiled
	code.  It returns different values depending on the value of
	|LDF_REAL_DOUBLE|.  This is because it now works to |typedef real| to
	|double|.  However, I haven't tested the value that |epsilon()| returns
	when |real == double|.  For that matter, I haven't performed proper tests
	on the value it returns when |real == float|.

	Added |bool DEBUG| in |magnitude()|.

	* planes.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	* pictures.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	Minor formatting change.

	* patterns.web, paths.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	* paths.web: LDF 2004.01.06.
	Now including `creatnew.h'.

	Replaced |create_new_path()| with specializations of
	the template function |create_new()|.
	Added the section
	|@<Declare non-member template functions for |Path|@>|, which
	contains the declarations of the specializations.

	Replaced calls of |create_new_<type>()| with calls to the
	appropriate specialization of |create_new()|.

	* parser.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	Added a comment about including the library header file `map'.

	* main.web: LDF 2004.01.06.
	Removed CWEB comment with RCS ID.  It's not needed, because
	it's in |static string rcs_id|.

	Moved a C++ comment to TeX text.

	Now including `creatnew.h' and `gsltmplt.h'.

	Now setting |MAX_REAL| and |MAX_REAL_SQRT| at the beginning of
	|main()| using |get_second_largest()|.  Removed error handling code, since
	|get_second_largest()| takes care of it.

	* gsltmplt.web: LDF 2004.01.06.
	Initial revision.
	Copied this file from my development directory.

	This file contains the definition of the template function
	|template <class Real> Real get_second_largest(Real, bool)|,
	and declarations of specializations
	for |Real == float| and |Real == double|.

	|get_second_largest()| is used in |main()| for setting the value
	of |real MAX_REAL|.

	Because of the way the GNU C++ compiler GCC 3.3 instantiates
	templates, the definition must be included in all of the CWEB files
	that declare or use specializations of |get_second_largest()|.
	So the definition is written to `gsltmplt.h',
	and not just the declaration, as with non-template functions.
	Currently, only `main.web' includes `gsltmplt.h'.

	It's not really necessary to compile the definition here.
	However, I do so, in order to catch errors earlier, if there are any.

	In addition, it simplifies the rules for building the executable `3dldf', if
	all of the CWEB files are handled similarly.
	However, I don't believe it would cause
	a problem to compile an empty `.cxx' file.

	* loader.web: LDF 2004.01.06.
	Merged in changes from my development version.

	Now including `stdlib.h' and `string'
	and invoking `using namespace std'
	in the code that's compiled.
	It's not necessary to include `stdlib.h' when using GCC 3.3,
	but I think it's safer.

	Added the section |@<Include files@>| and put the `#include' commands
	into it.  This section is now written to `loader.h', instead of writing
	the individual blocks of code to it.

	Removed some outdated TeX text.

	I have now decided not to try to get rid of this file.  I've put a couple of |#include|
	commands into other files.  The remaining ones are needed in enough CWEB files that
	I think it's best to keep them here.

	Removed the code that includes `limits' or `limits.h' to `pspglb.web'.

	Removed `#include <map>' to `parser.web'.

	`Makefile.am' now handles
	`loader.web' like all the other CWEB files.  Removed the rules
	that handled the `loader.<extension>' files in special ways from `Makefile.am'.

	`loader.c' is now compiled.  The C++ code consists merely of the |static string rcs_id|,
	which is written to `loader.o'.
	Added a section for this.

	Now defining |_GNU_SOURCE| only if it's not already defined.

	* gsltmplt.web: New file.

	* ellipses.web: LDF 2004.01.06.
	Now including `creatnew.h'.

	Replaced |create_new_ellipse()| with specializations of
	the template function |create_new()|.

	Added the section
	|@<Declare non-member template functions for |Ellipse|@>|.

	Replaced calls to |Rectangle::create_new_point()| with
	calls to |create_new<Point>()|.

	* cuboid.web: LDF 2004.01.06.
	Now including `creatnew.h'.

	Replaced |create_new_cuboid()| with specializations of
	the template function |create_new()|.

	Added the section
	|@<Declare non-member template functions for |Cuboid|@>|.

	Replaced calls to |Rectangle::create_new_rectangle()| with
	calls to |create_new<Rectangle>()|.

	* creatnew.web: LDF 2004.01.06.
	Initial version.
	Copied this file from my development directory.

	It contains the definition of the template functions
	|template <class C> C* create_new(const C*)| and
	|template <class C> C* create_new(const C&)|.

	Because of the way the GNU C++ compiler GCC 3.3 instantiates
	templates, the definition must be included in all of the CWEB files
	that declare or use specializations of |create_new()|.
	So, the definition is written to `creatnew.h', and not just the declaration, as will
	non-template functions.

	Therefore, it's not really necessary to compile the definition here.  However, I do so,
	in order to catch errors earlier, if there are any.

	In addition, it simplifies the rules for building the executable `3dldf', if
	all of the CWEB files are handled similarly.  However, I don't believe it would cause
	a problem to compile an empty `.cxx' file.

	* creatnew.web: New file.

	* colors.web: LDF 2004.01.06.
	Now including `creatnew.h'.

	Replaced |create_new_color()| with specializations of
	the template function |create_new()|.
	Added a version taking a |const Color&| argument.

	Added the section
	|@<Declare non-member template functions for |Color|@>|.

	Changed the section |@<Declare non-member functions for |Color|@>| to
	|@<Declare non-member non-template functions for |Color|@>|

	Added |set_on_free_store()|, which is required by the template definition of
	|create_new()|.

	Moved a C++ comment to a TeX section.

	* circles.web: LDF 2004.01.06.
	Now including `creatnew.h'.

	Replaced |create_new_circle()| with specializations of
	the template function |create_new()|.

	Added the section
	|@<Declare non-member template functions for |Circle|@>|.

	* Makefile.am: LDF 2004.01.06.
	`loader.web' is now handled like all the other CWEB files.  Removed the rules
	that handled the `loader.<extension>' files in special ways.

	`loader.c' is now compiled.  The C++ code consists merely of the |static string rcs_id|,
	which is written to `loader.o'.

	Added code for handling `creatnew.web' and `gsltmplt.web', and the files generated
	from them.

	Added `PHONY' target `show' for echoing the values of variables to standard output.

	* 3DLDFtex.tex: LDF 2004.01.06.
	Now setting `\aviertrue' and `\landscapefalse'.

	* 3DLDFprg.web: LDF 2004.01.06.
	Changed `\newline' to `\hfil\break'.

	Now including `creatnew.web' and 'gsltmplt.web'.

	Added bibliography entry for Harbison, _C, A Reference Manual_.

	* 3DLDFmp.mp: LDF 2004.01.06.
	Removed Emacs Local Variables list.

2003-12-21  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* 3DLDFmp.mp: LDF 2003.12.21.
	Added local variables list for Emacs.

2003-12-16  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* tsthdweb: LDF 2003.12.16.
	Changed the |diff| command used for comparing <filename>.h to <filename>.hbk.
	It now ignores lines begining with ``<optional spaces>#line'' rather than
	``<optional spaces>#''.

	This is the same change as I made for the C++ files before the last check-in
	on 2003/12/14.  I didn't think to do it for the header file.

2003-12-14  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* tsthdweb: LDF 2003.12.14.
	BUG FIX:
	Changed the |diff| command used for comparing <filename>.c to <filename>.cxx.
	It now ignores lines begining with ``<optional spaces>#line'' rather than
	``<optional spaces>#''.

	This ensures that changes involving preprocessor variables cause
	recompilation and relinking.

2003-12-10  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* utility.web: LDF 2003.12.10.
	Put |static string rcs_id| back in, because I've put my release versions
	under version control using RCS.

	* tsthdweb:
	LDF 2003.12.10.  Merged in changes from my development version:
	Commented-out some code which caused a problem.  I think it's okay now, but
	I'll have to keep an eye on whether rebuilding is handled correctly.

	* transfor.web: LDF 2003.12.10.
	Put |static string rcs_id| back in, because I've put my release versions
	under version control using RCS.

	* subex2.web, subex1.web:
	LDF 2003.12.10.  Removed a comment about version control identifiers.
	It's not needed here, because this file is not compiled directly.

	* solids.web, solfaced.web, shapes.web: LDF 2003.12.10.
	Put |static string rcs_id| back in, because I've put my release versions
	under version control using RCS.

	* rectangs.web: LDF 2003.12.10.
	Put |static string rcs_id| back in, because I've put my release versions
	under version control using RCS.

	Merged in |is_rectangular()| from my development version.

	* pspglb.web: LDF 2003.12.10.
	Changed version number of 3DLDF from `1.1.3' to `1.1.4'.

	* polyhed.web, polygons.web, points.web, planes.web, pictures.web, patterns.web:
	LDF 2003.12.10.
	Put |static string rcs_id| back in, because I've put my release versions
	under version control using RCS.

	* paths.web: LDF 2003.12.10.
	Put |static string rcs_id| back in, because I've put my release versions
	under version control using RCS.

	Merged in changes from development version:

	LDF 2003.11.28.
	BUG FIX:  Changed |get_point()|, so that |apply_transform()| is
	called on the |Point|.  This entailed making this function
	non-|const|.  Added |const| version, too.
	This may actually be a bug, rather than a bug
	fix, depending on how this function is used elsewhere.  However, I
	really think |apply_transform()| should be called.

	* parser.web, lines.web, io.web: LDF 2003.12.10.
	Put |static string rcs_id| back in, because I've put my release versions
	under version control using RCS.

	* examples.web:
	LDF 2003.12.10.  Added the section |@<Version control identifier@>|.
	This puts a |static string| with the RCS version control identifier
	into the object file.

	* ellipses.web: LDF 2003.12.10.
	Put |static string rcs_id| back in, because I've put my release versions
	under version control using RCS.

	* cwebmac.tex:
	LDF 2003.12.10.  Changed version number of 3DLDF to 1.1.4.

	* curves.web, cuboid.web, colors.web: LDF 2003.12.10.
	Put |static string rcs_id| back in, because I've put my release versions
	under version control using RCS.

	* circles.web: LDF 2003.12.10.
	Added newline at end of file.

	* Makefile.am:
	LDF 2003.12.10.  Merged in changes from development version.  Changed version number
	to 1.1.4.

	* 3DLDFtex.tex:
	LDF 2003.12.10.  Added commented-out code for DIN A3 landscape format.

	* 3DLDFprg.web:
	LDF 2003.12.10.  Changed version number from 1.1.3 to 1.1.4 in TeX text.

	* 3DLDFprg.mac: LDF 2003.12.10.
	Changed definitions of \LOG and \ENDLOG.  Added local variables list for
	Emacs.

2003-12-09  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* rectangs.web, polyhed.web:
	LDF 2003.12.09.  Changed calls to |Point::mediate()|, which
	is now a member function.

	* points.web: LDF 2003.12.09.
	Made |mediate()| a |const| member function in |Point|.

	* circles.web:
	LDF 2003.12.09.  Changed call to |Point::mediate()| in |Reg_Polygon::in_circle()|.
	The former is now a member function.

	* main.web: LDF 2003.12.09.
	Added test for big-endianness using `#ifdef WORDS_BIGENDIAN', which is generated
	by the test `AC_C_BIGENDIAN' in \filename{configure.ac}.  If it's defined,
	an error message is printed to standard error, and 3dldf exits with return value
	1.  Currently, |MAX_REAL| can only be set properly on 32-bit, little-endian machines.
	I've added a ``TO DO'' note to myself to write code for other types of machines.

	* pspglb.web: LDF 2003.12.09.
	Added TeX code to the place where I calculate |MAX_REAL|.

2003-12-08  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* pspglb.web: LDF 2003.12.08.
	Added a comment.

	* main.web: LDF 2003.12.08.
	Added tests for |MAX_REAL|.

	* pspglb.web: LDF 2003.12.08.
	Changed the definition of |MAX_REAL|.  Previously, it
	was calculated using
	|.00000003 * FLT_MAX|, which was a kludge.

	|MAX_REAL| now really is the second largest |real| value on any given
	platform now, as long as  |sizeof(float) == sizeof(unsigned long)| and
	|sizeof(double) == sizeof(unsigned long long)|!  This is tested in
	\filename{main.web}, when |INVALID_REAL == MAX_REAL| is tested.

	* main.web: LDF 2003.12.08.
	Improved the error message for the case that
	|INVALID_REAL == MAX_REAL|.  This accounts for the fact that I've
	improved the way |MAX_REAL| is set in \filename{pspglb.web}.

	* pspglb.web: LDF 2003.12.08.
	Improved the way |MAX_REAL| is set.  |INVALID_REAL - MAX_REAL| is still
	not the smallest possible value, though.  Added note, that I'll have to
	change it for the case that |real| is a synonym for |double|.  However,
	it's not currently possible to set |real| to |double|.

2003-12-04  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* tsthdweb: LDF 2003.12.04.
	Added code for tangling the CWEB file, if the .c and/or .h file doesn't
	exist.

	* Makefile.am: LDF 2003.12.04.
	Changed the targets for the C++ and header files generated from the
	CWEB files.  This seems to have solved the problem of `make install'
	building the executable 3dldf twice.

	* Makefile.am: LDF 2003.12.04.
	Added |3dldf_c_files|.  May get rid of it again.
	Added it to |CLEANFILES| and |MOSTLYCLEANFILES|.  Removed
	|$(CLEANFILES)| from |MAINTAINERCLEANFILES|.  Now the files are
	named either explicitly, or using other variables.  I was trying to
	fix a bug.  The cause turned out to be something else, so I may change
	this back sometime.

	Working on the targets for creating the executable `3dldf'.  The way it
	was before caused `make distclean' to fail.  Now, `make install' causes
	3dldf to be built twice.  I've had this problem before.  About to start
	trying to find a solution.  `make 3dldf' does not cause 3dldf to be
	built twice, though.

2003-12-03  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* Makefile.am: LDF 2003.12.03.
	Got rid of the phony `info' and `info-recursive' targets, because I've got
	my Texinfo documentation to work properly with `make info'.

	Added Emacs ``Local Variables'' list, that sets mode to `Makefile'.

2003-12-01  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* Makefile.am: LDF 2003.12.01.
	Forgot to mention this at a previous check in:

	Now calling `tsthdweb' as follows, at the suggestion of
	Andreas Voegele:
	$(SHELL) $(srcdir)/tsthdweb ...

	The following are two quotes from his email:

	``I've just tried to build 3DLDF and encountered one problem.  In the
	directory CWEB/Makefile.am your script is called without a path.  If
	the current directory is not in the path of the user who builds 3DLDF
	the build fails.  Here's a patch that fixes this problem ...:'' (Andreas Voegele)


	``It might even be better to use "$(SHELL) $(srcdir)/tsthdweb".  This
	way the Makefile would also work on non-Unix systems, e.g. Cygwin.'' (Andreas Voegele)

	* Makefile.am:
	LDF 2003.12.01.  Changed <Version> to ``1.1.3'' in the first line of this file,
	which contains the filename and path.  This is for the new release.

	* pspglb.web:
	LDF 2003.12.01.  Changed ``1.1.2'' to ``1.1.3'' for new release.

	Put the version control identifier |static string rcs_id| back,
	because I've put the CWEB files for my releases in their own RCS repository.

	* ldfr:
	LDF 2003.12.01.  Removed ``3DLDF-1.1.2/CWEB/'' from the first line, which
	contains the name of this file.  This saves me from having to update it
	for each release.

	* cwebmac.tex, 3DLDFprg.web:
	LDF 2003.12.01.  Changed ``1.1.2'' to ``1.1.3'' for new release.

	* main.web: LDF 2003.12.01.  Minor correction.

	* main.web: LDF 2003.12.01.
	Merged in changes from my development version:

	Added the following log entry:
	``Put the version control identifiers back
	into the release versions, because I've put them in their own RCS repository.''


	Changed `1.1.2' to `VERSION_3DLDF' wherever it occurred.

	* loader.web:
	LDF 2003.12.01.  Removed commented-out `#include plfmvar.h' command.
	\filename{plfmvar.h} doesn't exist in my release versions, and has been
	abandoned in my development versions (perhaps temporarily).

	* circles.web: LDF 2003.12.01.  Added the following log entry:
	``Put the version control identifiers back
	into the release versions, because I've put them in their own RCS repository.''

	Minor editing of headings.

	* Makefile.am: LDF 2003.12.01.
	Merged in changes from my development version.

	BUG FIX:  Now retangling, recompilation, and relinking
	are handled correctly.

	Changed |3dldf_timers| to |3dldf_header.timers| and added
	|3dldf_web.timers|.  Now using `<filename>.tmw' as prerequisites for
	the object files, rather than `<filename>.cxx'.

	Changed the way \filename{tsthdweb} is called and the targets used for building
	3dldf.

	If only TeX text, comments, or whitespace (that
	isn't in literal strings that are part of the C++ code) in the CWEB file
	are changed, then no recompilation or relinking takes place, and the CWEB file
	isn't retangled the next time `make 3dldf' is called.

	If only the C++ code has changed, the .cxx file is recompiled, and 3dldf is
	relinked.

	If the header file has changed, all of the C++ files that depend on it are
	recompiled, and 3dldf is relinked.

	The algorithm seems to work when multiple files are changed in various ways.

	This was quite tricky to fix.  I hope that it really is fixed.

	One unpleasant consequence is that the CWEB file must be touched in the case
	that neither the C++ file nor the header file has changed.  This means that
	the file has changed on disk, so that the buffer must be reverted, if the user
	is currently working on it, which is likely.  This shell script prints a message
	to this effect to standard output.

	* tsthdweb:
	LDF 2003.12.01.  Merged in changes from development version:

	BUG FIX:  Now retangling, recompilation, and relinking
	are handled correctly.

	If only TeX text, comments, or whitespace (that
	isn't in literal strings that are part of the C++ code) in the CWEB file
	are changed, then no recompilation or relinking takes place, and the CWEB file
	isn't retangled the next time `make 3dldf' is called.

	If only the C++ code has changed, the .cxx file is recompiled, and 3dldf is
	relinked.

	If the header file has changed, all of the C++ files that depend on it are
	recompiled, and 3dldf is relinked.

	The algorithm seems to work when multiple files are changed in various ways.

	This was quite tricky to fix.  I hope that it really is fixed.

	One unpleasant consequence is that the CWEB file must be touched in the case
	that neither the C++ file nor the header file has changed.  This means that
	the file has changed on disk, so that the buffer must be reverted, if the user
	is currently working on it, which is likely.  This shell script prints a message
	to this effect to standard output.

	* Makefile.am: LDF 2003.12.01.
	Changed first line, containing the name of the file.
	Replaced the explicit version number in the path to ``<Version>''.  This
	will save me having to change it for each release.

	Merged in changes from development version:
	BUG FIX:  Changed the  %.cxx, %.tim, and %.h targets.
	Previously, recompilation wasn't handled correctly when a CWEB file was changed.

	* tsthdweb:
	LDF 2003.12.01.  Merged in changes from development version:
	BUG FIX:  Fixed the way header files are handled.
	Previously, recompilation wasn't handled correctly when a CWEB file was changed.

	In addition, a couple of minor changes.

2003-11-29  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* tsthdweb, pspglb.web, main.web, ldfr, cwebmac.tex, 3DLDFprg.web, Makefile.am:
	LDF 2003.11.29.  Changed version number from ``1.1.1'' to ``1.1.2''.

	* Makefile.am:
	LDF 2003.11.29.  Corrected typo in EXTRA_DIST declaration.

2003-11-28  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* main.web: LDF 2003.11.28.
	Removed {\TeX} text, that referred to the precision used when
	printing out |VERSION_3DLDF|.  This is no longer relevant, because
	|VERSION_3DLDF| is now a |string| rather than a |real|.
	Removed |fixed| manipulator from a call to |cout| for this reason.

	* pspglb.web: LDF 2003.11.28.
	Changed |VERSION_3DLDF| from a |real| to a
	|string|.  This is necessary, because I now have version 1.1.1.

	* transfor.web: LDF 2003.11.28.
	Merged additional information to reference to Stoer, Josef. _Numerische Mathematik 1_,
	from the development version into this file.

	* pspglb.web: LDF 2003.11.28.
	Changed version number from ``1.1'' to ``1.1.1'' where it occurred.

	* paths.web: LDF 2003.11.28.
	Changed ``Path'' to ``Plane'' in an indexing macro.

	* main.web: LDF 2003.11.28.
	Changed version number from ``1.1'' to ``1.1.1'' in the strings which
	are printed to output.

	* 3DLDFprg.web:
	LDF 2003.11.28.  Changed comment with name of file in first line.  It was incorrect.

	* Makefile.am:
	LDF 2003.11.28.  Added ChangeLog.dev and .rcsfreeze.log.dev to EXTRA_DIST.
	They contain the ChangeLog and the .rcsfreeze.log for my development versions.
	This is now needed, because I have an RCS repository for my release versions.

	* utility.web, tsthdweb, transfor.web, subex2.web, subex1.web, solids.web, solfaced.web, shapes.web, rectangs.web, pspglb.web, polyhed.web, polygons.web, points.web, planes.web, pictures.web, patterns.web, paths.web, parser.web, main.web, loader.web, lines.web, ldfr, io.web, examples.web, ellipses.web, cwebmac.tex, curves.web, cuboid.web, colors.web, circles.web:
	New file.

	* Makefile.am: LDF 2003.11.28.
	Numerous changes.  This version has gone into 3DLDF Version 1.1.1.

	* 3DLDFtex.tex, 3DLDFtex.bas, 3DLDFprg.web, 3DLDFprg.mac, 3DLDFmp.mp:
	New file.

2003-11-16  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* Makefile.am:
	LDF 2003.11.16.  Got `make install' to work.  I had to add `3dldf_OBS_REVERSED',
	for use when linking the executable `3dldf'.  Using `3dldf_OBJECTS'
	caused 3dldf to fail with a "Segmentation fault".
	This may cause  problems, if 3dldf isn't built using the GNU C++ compiler (GCC).

	* Makefile.am:
	LDF 2003.11.16.  The `3dldf' target now works.  Got rid of targets for 3DLDFcpl.
	About to test `make install' and start working on the `dist' target.

2003-11-15  Laurence Finston  <lfinsto1@gwdu101.gwdg.de>

	* Makefile.am:
	LDF 2003.11.15.  This version still contains targets for 3dldf and
	3dldfcpl.  About to try removing them, and adding targets for .tim files.

	* Makefile.am: New file.

