diff etc/OLD-ChangeLogs/src-ChangeLog @ 12734:8665c7957fdc

main: periodic merge of stable to default
author John W. Eaton <jwe@octave.org>
date Fri, 10 Jun 2011 18:14:03 -0400
parents OLD-ChangeLogs/src-ChangeLog@d6bd2f2c35cc OLD-ChangeLogs/src-ChangeLog@b67c2d580a25
children 257a7a7bb303
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/OLD-ChangeLogs/src-ChangeLog	Fri Jun 10 18:14:03 2011 -0400
@@ -0,0 +1,38726 @@
+2011-04-19  Kai Habel  <kai.habel@gmx.de>
+
+	* src/DLD-FUNCTIONS/__init_fltk__.cc(plot_window::plot_window):
+	Instantiate canvas before uimenu.
+
+2011-04-13  Rik  <octave@nomad.inbox5.com>
+
+	* help.cc: Add spaces after commas in @seealso blocks.
+
+2011-04-12  Rik  <octave@nomad.inbox5.com>
+
+	* load-path.cc (restoredefaultpath): Correct use of it's -> its in
+	documentation.
+
+2011-04-10  John Eaton  <jwe@octave.org>
+
+	* graphics.cc (Fishandle) Accept vector of handles (bug #33025).
+
+2011-04-08  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/eig.cc,
+	DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/schur.cc,
+	DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc, data.cc: Improve
+	docstrings.
+
+2011-04-06  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/dmperm.cc, data.cc: Clean up operator and function
+	indices.
+
+2011-04-04  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/nproc.cc: Spellcheck documentation for 3.4.1 release.
+
+2011-04-04  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/colamd.cc, data.cc, file-io.cc: Grammarcheck files
+	for 3.4.1 release.
+
+2011-04-03  Rik  <octave@nomad.inbox5.com>
+
+	* input.cc (add_input_event_hook, remove_input_event_hook): Improve
+	docstring.
+	* utils.cc (isvarname): Add seealso link to iskeyword().
+	* variables.cc (missing_function_hook): Improve docstring.
+
+2011-04-03  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/dot.cc (blkmm): Improve docstring.
+
+2011-04-03  Rik  <octave@nomad.inbox5.com>
+
+	* data.cc (diag): Add documentation for 3-input form of diag.  Add new
+	tests.
+
+2011-04-03  Rik  <octave@nomad.inbox5.com>
+
+	* data.cc (diag): Reverse previous changeset.  Return 3-input form
+	of diag().
+
+2011-04-01  Rik  <octave@nomad.inbox5.com>
+
+	* data.cc (diag): Remove archaic 3-input argument form of function.
+	Add all calling forms of function to docstring.
+
+2011-04-01  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/filter.cc: Fix orientation of initial conditions vector
+	(bug #32741).  Revamp test vectors.
+
+2011-04-01  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/__fltk_uigetfile__.cc, DLD-FUNCTIONS/__init_fltk__.cc:
+	Correct typo in #include path (bug #32972).
+
+2011-03-31  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/onCleanup.cc: Remove non-existent @seealso link in
+	docstring.
+
+2011-03-31  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/quadcc.cc: Add reference to original paper in docstring.
+
+2011-03-30  Jordi GutiƩrrez Hermoso  <jordigh@gmail.com>
+
+	* file-io.cc: Document the "all" parameter to fclose.
+
+2011-03-29  Ben Abbott  <bpabbott@mac.com>
+
+	* graphics.cc: Prevent ticks from being cropped by round-off errors
+	when limmode == auto (bug #32701).
+
+2011-03-28  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/inv.cc (inv, inverse), DLD-FUNCTIONS/tril.cc (tril),
+	data.cc (cumsum, szie), file-io.cc (fgets), ov-typeinfo.cc (typeinfo),
+	ov-usr-fcn.cc (nargout), utils.cc (make_absolute_filename),
+	variables.cc (who): Improve docstrings
+
+2011-03-25  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (Fmkstemp): Use gnulib::mkstemp.
+	* DLD-FUNCTIONS/__init_fltk__.cc (f): Use gnulib::floor.
+
+2011-03-18  Rik  <octave@nomad.inbox5.com>
+
+	* dot.cc: Improve seealso cross references in docstring.
+
+2011-03-18  Rik  <octave@nomad.inbox5.com>
+
+	* help.cc (get_help_text, get_help_text_from_file): Improve docstrings.
+
+2011-03-17  John W. Eaton  <jwe@octave.org>
+
+	* ov-float.cc (octave_float_scalar::do_index_op): Widen to float
+	matrix, not double.
+
+2011-03-17  Rik  <octave@nomad.inbox5.com>
+
+	* syscalls.cc (gethostname): Redo documentation string.
+
+2011-03-17  Iain Murray  <iain@iainmurray.net>
+
+	* DLD-FUNCTIONS/nprocs.cc: Delete file.
+	* DLD-FUNCTIONS/nproc.cc: New file.  New function nproc provided by
+	gnulib.
+	* DLD-FUNCTIONS/module-files: Add nproc.cc.
+
+2011-03-16  Iain Murray  <iain@iainmurray.net>
+
+	* DLD-FUNCTIONS/nprocs.cc: New file.
+	* DLD-FUNCTIONS/module-files: Add nprocs.cc.
+	Expose nprocs and nprocs_conf from gnulib.
+
+2011-03-15  Marco Caliari  <marco.caliari@univr.it>
+
+	* graphics.cc: Simplify calculation of number of tick labels.  Fixes
+	bug #32692.
+
+2011-03-13  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* DLD-FUNCTIONS/__init_fltk__.cc (plot_window::plot_window):
+	Revert changes from 2011-02-26.
+
+2011-03-10  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.h.in: Add PERSISTENT mode to listener_mode.
+	(base_property::delete_listener): Take into account persistent
+	mode of a listener.
+	* graphics.cc (addlistener, dellistener): Accept a new optional
+	argument for persistent listeners.
+
+2011-03-07  Konstantinos Poulios  <logari81@googlemail.com>
+
+	Bug #32482.
+
+	* graphics.h.in (axes::properties::update_yaxislocation,
+	axes::properties::update_yaxislocation):
+	Hook update_ylabel_position and update_xlabel_position
+	respectively.
+
+2011-03-06  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.cc (axes::properties::update_xlabel_position,
+	axes::properties::update_ylabel_position,
+	axes::properties::update_zlabel_position,
+	axes::properties::update_title_position):
+	Determine position also for empty axes labels/titles in order
+	to improve the tightinset calculation.
+	(axes::properties::get_extent): Take position of empty strings
+	into account for the calculation of axes extents.
+
+2011-03-03  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.h.in (axes::properties::get_extent): Add new optional
+	argument for ignoring the length of text objects.
+	* graphics.cc (axes::properties::get_extent): Add the possibility
+	of ignoring the length of text objects.
+	(axes::properties::calc_tightbox): Take only text height into
+	account for the calculation of the tight box.
+
+2011-02-26  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* DLD-FUNCTIONS/__init_fltk__.cc (plot_window::plot_window):
+	Move canvas allocation after the configuration of the menubar.
+	(plot_window::show_menubar, plot_window::hide_menubar):
+	Simplify source code.
+
+2011-02-26  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/cellfun.cc,
+	DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/matrix_type.cc,
+	DLD-FUNCTIONS/strfind.cc, DLD-FUNCTIONS/sub2ind.cc, bitfcns.cc,
+	data.cc, error.cc, file-io.cc, graphics.cc, help.cc, input.cc,
+	load-path.cc, load-save.cc, oct-parse.yy, ov-base.cc, ov-cell.cc,
+	ov-class.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, ov-flt-re-mat.cc,
+	ov-struct.cc, ov-usr-fcn.cc, pr-output.cc, pt-mat.cc, sparse.cc,
+	strfns.cc, syscalls.cc, sysdep.cc, toplev.cc, utils.cc, variables.cc:
+	Rewrite error strings to use variables named in documentation.
+
+2011-02-23  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxArray_base::dup): Return retval.
+
+2011-02-22  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.h.in (class axes::properties): New hidden property
+	looseinset.
+	(axes::properties::update_looseinset): New function.
+	* graphics.cc (axes::properties::init): Initialize looseinset.
+	(axes::properties::sync_positions): Take looseinset into account
+	instead of default_axes_position.
+	(axes::properties::set_defaults): Default values for looseinset.
+
+2011-02-21  Kai Habel  <kai.habel@gmx.de>
+
+	* src/DLD-FUNCTIONS/__fltk_uigetfile__cc:
+	Use forward slash as file seperator for fltk file path processing only.
+
+2011-02-21  Kai Habel  <kai.habel@gmx.de>
+
+	* src/DLD-FUNCTIONS/__init_fltk__.cc(plot_window::plot_window):
+	Call size_range early to allow window resizing for MacOS and MinGW.
+
+2011-02-21  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/regexp.cc: Assume we have PCRE.
+
+2011-02-19  Rik  <octave@nomad.inbox5.com>
+
+	* src/DLD-FUNCTIONS/regexp.cc: Use PCRE regular expressions everywhere
+	now that Octave requires library for building.  Remove testif PCRE
+	on testing blocks and adjust all documentation.
+	
+2011-02-18  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.cc (axes::properties::sync_positions): Fix a small
+	bug introduced with changes from 2011-02-14.
+
+2011-02-15  Konstantinos Poulios  <logari81@googlemail.com>
+
+	Bug #32319.
+
+	* DLD-FUNCTIONS/__init_fltk__.cc: Include sysdep.h.
+	(class OpenGL_fltk): Replace integer print_fid member with
+	boolean print_mode. New class member print_cmd of type string.
+	(OpenGL_fltk::print): Accept command string argument instead of
+	file id.
+	(OpenGL_fltk::draw): Invoke and terminate an octave process for
+	the printing job.
+	(plot_window::print, figure_manager::print,
+	figure_manager::do_print): Replace file id with command string.
+	(fltk_graphics_toolkit::print_figure): Remove parsing of file id.
+	* graphics.cc (drawnow): Recognize strings beginning with "|" as
+	pipelines instead of filenames.
+
+2011-02-14  David Bateman  <dbateman@free.fr>
+
+	* gl-render.cc (void opengl_renderer::draw_patch (
+	const patch::properties &)): Obtain the marker color directly
+	from the cdata rather that the facecolor, as the facecolor might
+	not have been set.  Bug #31801.
+
+2011-02-14  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.cc (axes::properties::sync_positions): Calculation of
+	tightinset property.
+
+2011-02-13  Konstantinos Poulios  <logari81@googlemail.com>
+
+	Bugs #31800, #32211.
+
+	* gl-render.cc (opengl_renderer::draw_axes_boxes): Draw only one
+	y-axis line when plotyy tag is present.
+	(opengl_renderer::draw_text): Remove superfluous calls of set_font
+	and set_color.
+	* graphics.h.in (class text::properties): Tag color with "u"
+	qualifier.
+	(text::properties::update_color): New function.
+
+2011-02-13  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.h.in (axes::properties::update_boundingbox,
+	axes::properties::update_dataaspectratio,
+	axes::properties::update_dataaspectratiomode,
+	axes::properties::update_plotboxaspectratio,
+	axes::properties::update_plotboxaspectratiomode):
+	Replace update_transform hooks with sync_positions. 
+
+2011-02-13  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.h.in (axes::properties::get_extent,
+	axes::properties::calc_tightbox): New functions prototypes.
+	(axes::properties::update_view): Hook sync_positions.
+	(axes::properties::update_outerposition,
+	axes::properties::update_position): Set activepositionproperty
+	appropriately.
+	(text::properties::update_string): Call	update_text_extent after
+	request_autopos.
+	* graphics.cc (axes::properties::sync_positions): Enable
+	synchronization of position and outer position. Take label and
+	title extents in the calculation of outerposition into account.
+	Do iterative calculation of position when activepositionproperty
+	is set to outerposition.
+	(axes::properties::update_title_position): Use new function
+	get_extent.
+	(axes::properties::update_autopos): Handle new tag "sync".
+	(axes::properties::get_extent): New function calculating the
+	tight box which contains all axes labels and axes title.
+	(axes::properties::calc_tightbox): New function calculating axes
+	tight box.
+	(axes::properties::update_units): Don't call any hooks and listeners
+	for position, outerposition and tightset.
+	(text::properties::update_text_extent): Request axes positions
+	synchronization when axes labels or title extents change.
+
+2011-02-11  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (strip_trailing_separators): Declare K as size_t
+	rather than octave_idx_type.
+
+2011-02-10 Carlo de Falco  <kingcrimson@tiscali.it>
+
+	* DLD-FUNCTIONS/mgorth.cc: New file implementing modified
+	Gram-Schmidt orthogonalization.
+
+2011-02-10  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/regexp.cc (octregexp_list): Avoid deprecated
+	Array<T>::resize function.
+
+2011-02-09  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.cc (axes::properties::update_xlabel_position,
+	axes::properties::update_ylabel_position,
+	axes::properties::update_zlabel_position,
+	axes::properties::update_title_position): Use get_transform only
+	when it is required.
+	(text::properties::request_autopos): Remove redundant temporary
+	settting of autopos_tag to none.
+
+2011-02-08  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (INSTANTIATE_ABS): Omit inline keyword from
+	template instantiation.  From Orion Poplawski <orion@cora.nwra.com>.
+
+2011-02-08  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/chol.cc: Delete obsolete test of spcholinv.
+
+2011-02-08  John W. Eaton  <jwe@octave.org>
+
+	* oct-parse.yy (parse_fcn_file): Don't warn about coercing
+	nested functions to subfunctions if yyparse failed.
+
+2011-02-06  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.h.in (class axes::properties): Tag positionmode,
+	rotationmode, horizontalalignmentmode, verticalalignmentmode
+	with "u" qualifier. New hidden property autopos_tag.
+	(axes::properties::request_autopos,
+	axes::properties::update_positionmode,
+	axes::properties::update_rotationmode,
+	axes::properties::update_horizontalalignmentmode,
+	axes::properties::update_verticalalignmentmode): New functions
+	(base_properties::update_autopos): New virtual function.
+	(axes::properties::update_xlabel_position,
+	axes::properties::update_ylabel_position,
+	axes::properties::update_zlabel_position,
+	axes::properties::update_title_position): Made public.
+	* graphics.cc (base_properties::update_autopos,
+	axes::properties::update_autopos,
+	text::properties::request_autopos): New functions.
+	(axes::properties::init, axes::properties::set_defaults,
+	axes::properties::set_xlabel, axes::properties::set_ylabel,
+	axes::properties::set_zlabel, axes::properties::set_title):
+	Set autopos_tag for {x,y,z}label and title.
+	(axes::properties::update_xlabel_position,
+	axes::properties::update_ylabel_position,
+	axes::properties::update_zlabel_position,
+	axes::properties::update_title_position): Run only for non-empty
+	strings. Set autopos_tag temporarily to none in order to prevent
+	race conditions.
+
+2011-02-06  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.cc: Untabify and improve indentation.
+
+2011-02-06  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.cc (updating_axes_layout): New file-scope variable.
+	(axes::properties::update_axes_layout):	Return immediately if
+	updating_axes_layout is true.
+
+2011-02-03  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc: Include <sys/types.h> and <unistd.h> for isatty.
+	Bug #32336.
+
+2011-02-03  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* gl-render.h: (opengl_renderer::draw_axes_titles): Remove prototype.
+	* gl-render.cc: (opengl_renderer::draw_axes_titles): Remove function.
+	(opengl_renderer::draw_axes_x_grid,
+	opengl_renderer::draw_axes_y_grid,
+	opengl_renderer::draw_axes_z_grid): Remove calculation of axis label
+	positions.
+	* graphics.cc: (axes::properties::update_xlabel_position,
+	axes::properties::update_ylabel_position
+	axes::properties::update_zlabel_position
+	axes::properties::update_title_position): New functions calculating
+	label and title positions.
+	(axes::properties::get_ticklabel_extents): New function.
+	* graphics.h.in: Provide functions prototypes.
+	* txt-eng-ft.cc (ft_render::get_extent): New function version.
+	* txt-eng-ft.h (ft_render::get_extent): Provide function prototype.
+
+2011-02-03  Kai Habel  <kai.habel@gmx.de>
+
+	* src/gl-render.cc(text_to_pixels): Use text_renderer object only
+	when freetype is available
+
+2011-02-03  John W. Eaton  <jwe@octave.org>
+
+	* ov-base.cc (octave_base_value::as_mxArray): Return 0 silently.
+	* mex.cc (mxArray_octave_value::dup): If value can't be
+	converted to mxArray object, then simply create a clone of the
+	mxArray_octave_value container.
+
+2011-02-02  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/eigs.cc, DLD-FUNCTIONS/qr.cc: Use testif to only run
+	some sparse tests when necessary libraries are installed.
+
+2011-02-03  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.cc (axes::properties::update_axes_layout):
+	New function calculating axes layout.
+	(axes::properties::update_ticklengths): New function calculating
+	tick lengths and offsets.
+	* graphics.h.in (class axes::properties):: New private data
+	describing axes layout and corresponding "get" methods. Provide
+	declaration and call dependencies for "update_axes_layout".
+	Tag layer, yaxislocation, xaxislocation, tickdir, tickdirmode,
+	with "u" qualifier.
+	(axes::properties::update_layer,
+	axes::properties::update_yaxislocation,
+	axes::properties::update_xaxislocation,
+	axes::properties::update_ticklengths,
+	axes::properties::update_tickdir,
+	axes::properties::update_tickdirmode): New functions
+	* gl-render.cc:	(opengl_renderer::draw_axes_planes,
+	opengl_renderer::draw_axes_boxes,
+	opengl_renderer::draw_axes_x_grid,
+	opengl_renderer::draw_axes_y_grid,
+	opengl_renderer::draw_axes_z_grid,
+	opengl_renderer::draw_axes_title): Simplify arguments list.
+	(opengl_renderer::draw_axes): Remove calculation of axes layout.
+	(opengl_renderer::setup_opengl_transformation): Disable antializing.
+	* gl-render.h: Adapt functions prototypes.
+
+2011-02-01  John W. Eaton  <jwe@octave.org>
+
+	* gl-render.h (opengl_renderer::draw (const Matrix& hlist)):
+	Use get_object instead of lookup.
+	* DLD-FUNCTIONS/__init_fltk__.cc (Fl_Gl_Window::draw): Likewise.
+	* graphics.h.in (gh_manager::get_object (double)): New function.
+	* gl-renderer.h (opengl_renderer::draw (const graphics_handle&)):
+	Delete.
+	* gl2ps-renderer.h (glps_renderer::draw (const graphics_handle&)):
+	Delete.
+
+2011-02-01  John W. Eaton  <jwe@octave.org>
+
+	* gl2ps-renderer.h: Remove virtual tag for derived virtual functions.
+	(opengl_renderer (const graphics_handle&)): New function.
+	* DLD-FUNCTIONS/__init_fltk__.cc (OpenGL_fltk::Fl_Gl_Window):
+	Don't use new to create temporary glps_renderer object.
+
+2011-02-01  Michael Godfrey  <godfrey@isl.stanford.edu>
+
+	* gl2ps-renderer.cc (glps_renderer::draw):
+	Return immediately if fdopen fails.
+
+2011-02-01  John W. Eaton  <jwe@octave.org>
+
+	* gl-render.cc:	(opengl_renderer::setup_opengl_transformation,
+	opengl_renderer::draw_axes_planes,
+	opengl_renderer::draw_axes_boxes,
+	opengl_renderer::draw_axes_x_grid,
+	opengl_renderer::draw_axes_y_grid,
+	opengl_renderer::draw_axes_z_grid,
+	opengl_renderer::draw_axes_title,
+	opengl_renderer::draw_axes_children):
+	New private functions, extracted from opengl_renderer::draw_axes.
+	(opengl_renderer::draw_axes): Call subfunctions to do most of
+	the work.
+	* gl-render.h: Provide decls.
+
+2011-01-31  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.cc (get_P_tmpdir): New function.
+	* file-io.cc (FP_tmpdir): Use it.
+	Bug #32158.
+
+2011-01-30  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/__init_fltk__.cc (mouse_wheel_zoom, gui_mode): Rename
+	functions and strip "fltk_" prefix.  Improve docstrings.
+
+2011-01-30  John W. Eaton  <jwe@octave.org>
+
+	* txt-eng-ft.cc (ft_manager::ft_manager): Omit fc_init_done from
+	initialization list if fontconfig is missing.
+
+2011-01-30  Pascal Dupuis  <Pascal.Dupuis@worldonline.be>
+
+	* oct-parse.yy (class stdio_stream_reader): Disallow copying.
+
+2011-01-30  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (gnuplot_toolkit::redraw): Call __gnuplot_drawnow__,
+	not gnuplot_drawnow.
+	(gnuplot_toolkit::print_figure): Likewise.
+
+2011-01-30  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (OCTAVE_LIBS): Remove $(ARPACK_LDFLAGS) and
+	$(ARPACK_LIBS) from the list.
+	(DLD-FUNCTIONS/eigs.df): Don't add $(ARPACK_CPPFLAGS) to CPPFLAGS.
+	(DLD_FUNCTIONS_eigs_la_CPPFLAGS): Remove $(ARPACK_CPPFLAGS) from
+	the list.
+	(DLD_FUNCTIONS_eigs_la_LIBADD): Remove $(ARPACK_LDFLAGS) and
+	$(ARPACK_LIBS) from the list.
+
+2011-01-30  John W. Eaton  <jwe@octave.org>
+
+	* load-save.cc (Fload): Doc fix.
+
+2011-01-29  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/__init_fltk__.cc (fltk_gui_mode, fltk_mouse_wheel_zoom):
+	Improve docstrings.
+
+	* graphics.cc (available_graphics_toolkits): Fix typo in docstring.
+
+2011-01-29  Rik  <octave@nomad.inbox5.com>
+
+	* syscalls.cc (S_ISSOCK, S_ISCHR): Improve docstrings
+
+2011-01-29  Rik  <octave@nomad.inbox5.com>
+
+	* dirfns.cc (readdir, filesep, pathsep): Improve docstrings
+	* file-io.cc (tmpnam): Improve docstring
+	* input.cc (filemarker): Improve docstring
+	* syscalls.cc (stat, lstat): Improve docstring
+
+2011-01-29  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/getrusage.cc, toplev.cc: Improve docstring
+
+2011-01-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__fltk_uigetfile__.cc (__fltk_uigetfile__):
+	Don't allocate Fl_File_Chooser object with new.  Delete unused
+	variable fargs.  Allocate default retval values in initial
+	declaration.
+
+2011-01-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__init_fltk__.cc: Undefine Complex after
+	including FLTK headers.
+	* DLD-FUNCTIONS/__fltk_uigetfile__.cc: Likewise.
+
+2011-01-29  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (__fltk_uigetfile__): Use the same compiler flags
+	as for __init_fltk__.
+
+2011-01-28  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/eigs.cc (Feigs): Assume we have ARPACK.
+	Use "test" instead of "testif HAVE_ARPACK".
+	* toplev.cc (octave_config_info): Remove ARPACK_CPPFLAGS,
+	ARPACK_LDFLAGS, ARPACK_LIBS from the struct.
+	* oct-conf.h.in (OCTAVE_CONF_ARPACK_CPPFLAGS,
+	OCTAVE_CONF_ARPACK_LDFLAGS, OCTAVE_CONF_ARPACK_LIBS):
+	Delete #defines.
+
+2011-01-28  Kai Habel  <kai.habel@gmx.de>
+
+	* DLD-FUNCTIONS/__fltk_uigetfile__.cc: File filter value is
+	1-based now.
+
+2011-01-28  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (Foutput_max_field_width): Set internal variable
+	output_max_field_width, not output_precision.
+
+2011-01-28  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (Fformat, Ffixed_point_format, Foutput_precision,
+	Foutput_max_field_width, Fsplit_long_rows, Fprint_empty_dimensions):
+	Update @seealso lists.
+
+2011-01-27  Rik  <octave@nomad.inbox5.com>
+
+	* graphics.cc: Improve reset docstring.
+
+2011-01-27  Kai Habel  <kai.habel@gmx.de>
+
+	* DLD-FUNCTIONS/__init_fltk__.cc (__fltk_uigetfile__): Remove here.
+	* DLD-FUNCTIONS/__fltk_uigetfile__.cc: New file. 
+	* DLD-FUNCTIONS/module-files: Add __fltk_uigetfile__.cc.
+	Bug #32190.
+
+2011-01-27  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/dlmread.cc (Fdlmread): Skip leading whitespace
+	on each line.
+
+2011-01-27  John W. Eaton  <jwe@octave.org>
+
+	* ov-struct.cc (octave_struct::subsasgn,
+	octave_scalar_struct::subsasgn): Call undef_subsasgn on object
+	returned by octave_value::empty_conv if LHS is initially undefined.
+	Bug #32242.
+
+2011-01-27  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (input_event_hook): Fix incorrect use of iterator.
+	Reported by Pascal Dupuis <Pascal.Dupuis@worldonline.be>.
+
+2011-01-27  John W. Eaton  <jwe@octave.org>
+
+	* ov-class.cc (octave_class::reconstruct_exemplar):
+	Call constructor with do_multi_index_op instead of feval.
+	Verify that symbol_table::find_method did return a class
+	constructor for the correct type.  Bug #32242.
+
+2011-01-26  John W. Eaton  <jwe@octave.org>
+
+	* lex.ll, graphics.cc, gl-render.cc, ov-mex-fcn.h, graphics.h.in:
+	Delete trailing whitespace.
+
+2011-01-26  John W. Eaton  <jwe@octave.org>
+
+	Bug #32242.
+
+	* ov.h, ov.cc (octave_value::undef_subsasgn): New function.
+	* ov-class.h, ov-class.cc (octave_class::undef_subsasgn,
+	octave_class::subsasgn_common): New functions.
+	* ov-base.h, ov-base.cc (octave_base_value::subsasgn): If
+	undefined, call undef_subsasgn on object returned by
+	octave_value::empty_conv.
+	(octave_base_value::undef_subsasgn): New virtual function.
+	(octave_base_value::subsasgn): Only handle case of undefined
+	values here.
+
+2011-01-26  Pascal Dupuis  <Pascal.Dupuis@worldonline.be>
+	    John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (scaler::scaler (const std::string&)): New constructor.
+	(graphics_handle::operator++, graphics_hanlde::operator--):
+	Implement as recommended by Effective C++.
+
+	* graphics.h.in (class base_property, class array_property,
+	class children_property, class property, class graphics_xform,
+	class graphics_event): Explicitelly iniatialize
+	all data members in constructor initialisation list.
+	* gl-render.cc (class patch_tesselator): Likewise
+	* graphics.cc (class radio_values, class gh_manager),
+	(class callback_event, class set_event): Likewise.
+
+	* graphics.h.in (class base_graphics_property): Disallow copying.
+	* graphics.cc (class function_event): Likewise.
+	(function_event::function_event (void)): Delete implementation.
+
+2011-01-25  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/config-module.awk: Use automake variable for 
+	portability.
+	* Makefile.am (uninstall-oct): Use GNU Make features for portability
+
+2011-01-25  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc,
+	load-save.cc: Make docstrings static by removing documentation
+	depending on #ifdef configuration variables.
+
+2011-01-25  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (OCT_STAMP_FILES): New variable.
+	(DISTCLEANFILES): Add $(OCT_STAMP_FILES) to the list.
+	(all-local): Depend on $(OCT_STAMP_FILES) instead of $(OCT_FILES).
+
+	* DLD-FUNCTIONS/config-module.awk: Create stamp files when
+	creating .oct file links.
+
+2011-01-25  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* src/graphics.cc (text::properties::update_text_extent):
+	Disable warning about missing freetype library.
+
+2011-01-25  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* src/graphics.cc (axes::properties::calc_ticks_and_lims):
+	Fixing wrong dimensions of minor ticks vector.
+
+2011-01-25  John W. Eaton  <jwe@octave.org>
+
+	* oct-map.h (octave_map::octave_map (const string_vector&)):
+	Initialize xvals elements to 1x1 Cells.  Bug #32222.
+
+2011-01-24  Pascal Dupuis  <Pascal.Dupuis@worldonline.be>
+
+	* ov-base-mat.h (class octave_base_matrix): Disallow assignment.
+	* ov-range.h (class octave_range): Likewise.
+
+2011-01-23  John W. Eaton  <jwe@octave.org>
+
+	* ov-struct.cc (octave_scalar_struct::print_raw):
+	Avoid unnecessary conversion of map value to Cell.
+
+2011-01-22  John W. Eaton  <jwe@octave.org>
+
+	* symtab.h (symbol_table::parent_classes):
+	Also add parents of parents to the list.  Bug #32210.
+
+2011-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-class.cc (octave_class::subsasgn): Find appropriate unique base
+	before trying any indexed assignment.  Bug #32182.
+
+2011-01-22  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.h.in, graphics.cc (xmtick, ymtick, zmtick):
+	New properties holding minor ticks positions.
+	(axes::properties::calc_ticks_and_lims): Calculation of minor ticks
+	positions.
+	* gl-render.h, gl-render.cc
+	(opengl_renderer::render_grid,	opengl_renderer::render_tickmarks,
+	opengl_renderer::render_ticktexts): New functions.
+	(opengl_renderer::draw_axes): Make use of new rendering functions
+	and minor ticks positions.
+	Correct axis label positioning for x axis at top and y axis at right
+	position. Bug #31800.
+	Change axis positioning policy for 3D plots, keeping x and y axis
+	always at bottom.
+
+2011-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* gl-render.cc: Use octave_refcount for refcounting.
+	* oct-map.h: Ditto.
+	* ov-base.h: Ditto.
+	* pt-mat.cc: Ditto.
+
+2011-01-22  Pascal Dupuis  <Pascal.Dupuis@worldonline.be>
+
+	* ov-mex-fcn.h, txt-eng-ft.cc, mex.cc:
+	Initialize all data members in initialization list.
+
+2011-01-22  Pascal Dupuis  <Pascal.Dupuis@worldonline.be>
+
+	* DLD-FUNCTIONS/__init_fltk__.cc (fltk_uimenu): Disallow copying.
+	(class plot_window): Likewise.
+	* c-file-ptr-stream.h (class c_file_ptr_buf): Likewise.
+	(class c_file_ptr_stream): Likewise.
+	(class c_zfile_ptr_buf): Likewise.
+	* gl-render.cc (class opengl_tesselator): Likewise.
+	(class patch_tesselator): Likewise.
+	* lex.ll (class flex_stream_reader): Likewise.
+	* mex.cc (class mex): Likewise.
+	* oct-procbuf.h (class octave_procbuf): Likewise.
+	* pt-cbinop.h (class tree_compound_binary_expression): Likewise.
+	* symtab.h (class scope_id_cache): Likewise.
+	(class symbol_table): Likewise.
+	* txt-eng-ft.h (class ft_manager): Likewise.
+	(class ft_render): Likewise.
+	* unwind-prot.h (class unwind_protect::elem): Likewise.
+	(class unwind_protect::fcn_arg_elem): Likewise.
+	(class unwind_protect::method_elem): Likewise.
+	(class unwind_protect::restore_var_elem): Likewise.
+	(class unwind_protect::delete_ptr_elem): Likewise.
+	(class unwind_protect): Likewise.
+	* zfstream.h (class gzfilebuf): Likewise.
+
+	* mex.cc (class mxArray_octave_value): Disallow assignment.
+	(class mxArray_matlab): Likewise.
+	(class mxArray_number): Likewise.
+	(class mxArray_sparse): Likewise.
+	(class mxArray_struct): Likewise.
+	(class mxArray_cell): Likewise.
+
+	* unwind-prot.h (unwind_protect::elem::elem):
+	Provide default constructor.
+
+2011-01-21  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* src/graphics.cc (axes::properties::set_xlabel,
+	axes::properties::set_ylabel, axes::properties::set_zlabel):
+	Setting axis label color from axis color.
+
+2011-01-20  Rik  <octave@nomad.inbox5.com>
+
+	* src/file-io.cc, src/variables.cc: Prevent doubled quotes around @table
+	items in Info.
+
+2011-01-20  Rik  <octave@nomad.inbox5.com>
+
+	* src/DLD-FUNCTIONS/chol.cc, src/DLD-FUNCTIONS/luinc.cc,
+	src/DLD-FUNCTIONS/qz.cc: Use non-breaking spaces between certain
+	adjectives and their linked nouns in docstrings
+
+2011-01-20  Rik  <octave@nomad.inbox5.com>
+
+	* src/DLD-FUNCTIONS/str2double.cc, src/data.cc, src/mappers.cc,
+	src/variables.cc: Use @nospell macro on certain words in docstring.
+
+2011-01-20  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__delaunayn__.cc,
+	DLD-FUNCTIONS/__init_fltk__.cc,
+	DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/cellfun.cc,
+	DLD-FUNCTIONS/quadcc.cc, DLD-FUNCTIONS/regexp.cc, data.cc,
+	gripes.cc, ls-mat5.cc, toplev.cc, variables.cc:
+	Style fixes for error and warning messages.
+
+2011-01-20  John W. Eaton  <jwe@octave.org>
+
+	* Array.cc, Sparse.cc, base-lu.cc, idx-vector.cc,
+	lo-array-gripes.cc: Style fixes for error and warning messages.
+
+2011-01-20  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__contourc__.cc, DLD-FUNCTIONS/__delaunayn__.cc,
+	DLD-FUNCTIONS/__dsearchn__.cc, DLD-FUNCTIONS/__glpk__.cc,
+	DLD-FUNCTIONS/__init_fltk__.cc,
+	DLD-FUNCTIONS/__lin_interpn__.cc,
+	DLD-FUNCTIONS/__magick_read__.cc,
+	DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/__qp__.cc,
+	DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/amd.cc,
+	DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc,
+	DLD-FUNCTIONS/bsxfun.cc, DLD-FUNCTIONS/ccolamd.cc,
+	DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/chol.cc,
+	DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/colloc.cc,
+	DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/daspk.cc,
+	DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc,
+	DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/dlmread.cc,
+	DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/dot.cc,
+	DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc,
+	DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc,
+	DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc,
+	DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc,
+	DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/givens.cc,
+	DLD-FUNCTIONS/hex2num.cc, DLD-FUNCTIONS/inv.cc,
+	DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/lookup.cc,
+	DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/lu.cc,
+	DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc,
+	DLD-FUNCTIONS/max.cc, DLD-FUNCTIONS/md5sum.cc,
+	DLD-FUNCTIONS/onCleanup.cc, DLD-FUNCTIONS/qr.cc,
+	DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/quadcc.cc,
+	DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/rand.cc,
+	DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/schur.cc,
+	DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/sqrtm.cc,
+	DLD-FUNCTIONS/str2double.cc, DLD-FUNCTIONS/strfind.cc,
+	DLD-FUNCTIONS/sub2ind.cc, DLD-FUNCTIONS/svd.cc,
+	DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc,
+	DLD-FUNCTIONS/symrcm.cc, DLD-FUNCTIONS/tril.cc,
+	DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/typecast.cc,
+	DLD-FUNCTIONS/urlwrite.cc, OPERATORS/op-b-sbm.cc,
+	OPERATORS/op-bm-sbm.cc, OPERATORS/op-cdm-cdm.cc,
+	OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc,
+	OPERATORS/op-cm-m.cc, OPERATORS/op-cm-scm.cc,
+	OPERATORS/op-cm-sm.cc, OPERATORS/op-cs-cs.cc,
+	OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc,
+	OPERATORS/op-dm-dm.cc, OPERATORS/op-dms-template.cc,
+	OPERATORS/op-fcdm-fcdm.cc, OPERATORS/op-fcm-fcm.cc,
+	OPERATORS/op-fcm-fcs.cc, OPERATORS/op-fcm-fm.cc,
+	OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcs-fcm.cc,
+	OPERATORS/op-fcs-fcs.cc, OPERATORS/op-fcs-fm.cc,
+	OPERATORS/op-fcs-fs.cc, OPERATORS/op-fdm-fdm.cc,
+	OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc,
+	OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc,
+	OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc,
+	OPERATORS/op-fs-fm.cc, OPERATORS/op-int-concat.cc,
+	OPERATORS/op-m-cm.cc, OPERATORS/op-m-m.cc,
+	OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc,
+	OPERATORS/op-pm-pm.cc, OPERATORS/op-pm-scm.cc,
+	OPERATORS/op-pm-sm.cc, OPERATORS/op-pm-template.cc,
+	OPERATORS/op-range.cc, OPERATORS/op-s-scm.cc,
+	OPERATORS/op-sbm-b.cc, OPERATORS/op-sbm-bm.cc,
+	OPERATORS/op-sbm-sbm.cc, OPERATORS/op-scm-cm.cc,
+	OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-m.cc,
+	OPERATORS/op-scm-s.cc, OPERATORS/op-scm-scm.cc,
+	OPERATORS/op-scm-sm.cc, OPERATORS/op-sm-cm.cc,
+	OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-m.cc,
+	OPERATORS/op-sm-s.cc, OPERATORS/op-sm-scm.cc,
+	OPERATORS/op-sm-sm.cc, OPERATORS/op-str-str.cc,
+	OPERATORS/op-ui64-ui64.cc, bitfcns.cc, c-file-ptr-stream.cc,
+	c-file-ptr-stream.h, comment-list.h, data.cc, debug.cc, debug.h,
+	defun-int.h, defun.cc, dynamic-ld.cc, error.cc, file-io.cc,
+	gl-render.cc, gl-render.h, gl2ps-renderer.cc, gl2ps-renderer.h,
+	gl2ps.c, gl2ps.h, graphics.cc, graphics.h.in, help.cc, input.cc,
+	lex.h, lex.ll, load-path.cc, load-path.h, load-save.cc,
+	load-save.h, ls-ascii-helper.cc, ls-hdf5.cc, ls-hdf5.h,
+	ls-mat-ascii.cc, ls-mat4.cc, ls-mat4.h, ls-mat5.cc,
+	ls-oct-ascii.cc, ls-oct-ascii.h, ls-oct-binary.cc, mappers.cc,
+	mex.cc, mex.h, mexproto.h, mxarray.h.in, oct-hist.cc,
+	oct-lvalue.cc, oct-lvalue.h, oct-map.cc, oct-map.h, oct-obj.cc,
+	oct-obj.h, oct-parse.yy, oct-procbuf.cc, oct-stream.cc,
+	oct-stream.h, octave.cc, ov-base-diag.cc, ov-base-diag.h,
+	ov-base-int.cc, ov-base-int.h, ov-base-mat.cc, ov-base-mat.h,
+	ov-base-scalar.cc, ov-base-scalar.h, ov-base-sparse.cc,
+	ov-base-sparse.h, ov-base.cc, ov-base.h, ov-bool-mat.cc,
+	ov-bool-mat.h, ov-bool-sparse.cc, ov-bool-sparse.h, ov-bool.cc,
+	ov-bool.h, ov-builtin.h, ov-cell.cc, ov-cell.h, ov-ch-mat.cc,
+	ov-class.cc, ov-class.h, ov-complex.cc, ov-complex.h,
+	ov-cx-diag.cc, ov-cx-diag.h, ov-cx-mat.cc, ov-cx-mat.h,
+	ov-cx-sparse.cc, ov-cx-sparse.h, ov-dld-fcn.h, ov-fcn-handle.cc,
+	ov-fcn-handle.h, ov-fcn-inline.cc, ov-fcn-inline.h, ov-fcn.h,
+	ov-float.cc, ov-float.h, ov-flt-complex.cc, ov-flt-complex.h,
+	ov-flt-cx-diag.cc, ov-flt-cx-diag.h, ov-flt-cx-mat.cc,
+	ov-flt-cx-mat.h, ov-flt-re-diag.cc, ov-flt-re-diag.h,
+	ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h, ov-lazy-idx.cc,
+	ov-lazy-idx.h, ov-null-mat.cc, ov-null-mat.h, ov-perm.cc,
+	ov-perm.h, ov-range.cc, ov-range.h, ov-re-diag.cc, ov-re-diag.h,
+	ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h,
+	ov-scalar.cc, ov-scalar.h, ov-str-mat.cc, ov-str-mat.h,
+	ov-struct.cc, ov-struct.h, ov-type-conv.h, ov-typeinfo.cc,
+	ov-usr-fcn.cc, ov-usr-fcn.h, ov.cc, ov.h, pager.cc,
+	pr-output.cc, procstream.h, pt-arg-list.cc, pt-assign.h,
+	pt-binop.cc, pt-bp.cc, pt-bp.h, pt-cbinop.cc, pt-cell.cc,
+	pt-colon.cc, pt-const.cc, pt-decl.cc, pt-eval.cc,
+	pt-fcn-handle.cc, pt-id.h, pt-idx.cc, pt-idx.h, pt-mat.cc,
+	pt-mat.h, pt-pr-code.cc, pt-select.cc, pt-select.h, pt-stmt.cc,
+	pt-unop.cc, pt-unop.h, sighandlers.cc, sighandlers.h,
+	sparse-xdiv.cc, sparse-xdiv.h, sparse-xpow.cc, sparse-xpow.h,
+	sparse.cc, strfns.cc, symtab.cc, symtab.h, syscalls.cc,
+	sysdep.cc, toplev.cc, toplev.h, txt-eng-ft.cc, txt-eng-ft.h,
+	txt-eng.h, unwind-prot.h, utils.cc, utils.h, variables.cc,
+	variables.h, xdiv.cc, xdiv.h, xnorm.cc, xpow.cc, zfstream.cc,
+	zfstream.h: Strip trailing whitespace.
+
+2011-01-20  John W. Eaton  <jwe@octave.org>
+
+	* gl-render.cc, DLD-FUNCTIONS/__init_fltk__.cc,
+	DLD-FUNCTIONS/__magick_read__.cc: Untabify.
+
+2011-01-20  Pascal Dupuis <Pascal.Dupuis@worldonline.be>.
+
+	* debug.h, dynamic-ld.cc, gl-render.cc, gl-render.h,
+	gl2ps-renderer.h, lex.h, ls-hdf5.h, oct-stream.h, oct-strstrm.h,
+	ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h,
+	ov-cell.h, ov-class.h, ov-dld-fcn.h, ov-fcn-handle.h,
+	ov-lazy-idx.h, ov-perm.h, ov-range.h, ov-struct.h, procstream.h,
+	pt-assign.h, symtab.h, unwind-prot.h: Initialize
+	all data members in initialization list.
+
+2011-01-20  Kai Habel  <kai.habel@gmx.de>
+
+	* DLD-FUNCTIONS/__init_fltk__.cc (__fltk_uigetfile__): Append file
+	seperator to 2nd return value (file path).
+	Bug #32190.
+
+2011-01-20  John W. Eaton  <jwe@octave.org>
+
+	* oct-obj.h (octave_value_list::octave_value_list): Initialize
+	all data members in initialization list.  From Pascal Dupuis
+	<Pascal.Dupuis@worldonline.be>.
+
+2011-01-20  John W. Eaton  <jwe@octave.org>
+
+	* ls-mat5.cc (read_mat5_binary_element):
+	Improve diagnositc if uncompress fails.
+
+	* load-path.cc (strip_trailing_separators): New static function.
+	(load_path::do_add, load_path::do_remove): Call it on directory arg.
+
+2011-01-20  John W. Eaton  <jwe@octave.org>
+
+	* gl-render.h, graphics.cc, gl-render.cc, graphics.h.in:
+	Update for backend -> graphics_toolkit change.
+
+	* DLD-FUNCTIONS/__init_fltk__.cc: Rename from fltk_backend.cc
+	Update for backend -> graphics_toolkit change.
+	* DLD-FUNCTIONS/module-files, Makefile.am: Update for renamed file.
+
+2011-01-19  Rik  <octave@nomad.inbox5.com>
+
+	* src/data.cc, src/input.cc, src/utils.cc: spellcheck docstrings.
+
+2011-01-19  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/dlmread.cc, DLD-FUNCTIONS/filter.cc,
+	DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/quad.cc,
+	DLD-FUNCTIONS/quadcc.cc, DLD-FUNCTIONS/rcond.cc,
+	DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/strfind.cc,
+	DLD-FUNCTIONS/typecast.cc, data.cc, dirfns.cc, error.cc, file-io.cc,
+	graphics.cc, help.cc, input.cc, load-path.cc, load-save.cc, mappers.cc,
+	oct-hist.cc, oct-parse.yy, pager.cc, pr-output.cc, pt-binop.cc,
+	sparse.cc, strfns.cc, syscalls.cc, sysdep.cc, utils.cc: grammarcheck
+	files in src directory.	
+
+2011-01-19  John W. Eaton  <jwe@octave.org>
+
+	* oct-obj.cc (octave_value_list::all_scalars): Check for scalar
+	values, not strings.  Bug #32172.
+
+2011-01-17  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/module-files: Add quadcc.cc to list of files.
+	* DLD-FUNCTIONS/quad.cc: Add Seealso links to quadcc.
+
+2011-01-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTION/lookup.cc (Flookup): Validate option string.
+
+2011-01-17  John W. Eaton  <jwe@octave.org>
+
+	* ov-usr-fcn.cc (octave_user_function::bind_automatic_vars):
+	Save argument names in hidden variable .argn..
+
+	* variables.cc (F__varval__): New function.
+
+2011-01-17  John W. Eaton  <jwe@octave.org>
+
+	* ov-usr-fcn.cc (bind_automatic_vars): Mark variables created
+	here as automatic.
+
+	* symtab.h (symbol_table::mark_automatic): New function.
+	(symbol_table::do_mark_automatic): New function.
+
+2011-01-17  Michael Godfrey <godfrey@isl.stanford.edu>
+
+	* variables.cc (Fwhos): Describe a and f attributes in help text.
+
+2011-01-17  John W. Eaton  <jwe@octave.org>
+
+	* sighandlers.cc (octave_signal_handler): Wait for children here.
+	(sigchld_handler): Not here.
+
+2011-01-16  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/__dispatch__.cc,
+	DLD-FUNCTIONS/__dsearchn__.cc, DLD-FUNCTIONS/__glpk__.cc,
+	DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/__pchip_deriv__.cc,
+	DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/amd.cc,
+	DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc,
+	DLD-FUNCTIONS/bsxfun.cc, DLD-FUNCTIONS/ccolamd.cc,
+	DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/chol.cc,
+	DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/colloc.cc,
+	DLD-FUNCTIONS/conv2.cc, DLD-FUNCTIONS/convhulln.cc,
+	DLD-FUNCTIONS/cquad.cc, DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/det.cc,
+	DLD-FUNCTIONS/dlmread.cc, DLD-FUNCTIONS/dmperm.cc,
+	DLD-FUNCTIONS/dot.cc, DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc,
+	DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc,
+	DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc,
+	DLD-FUNCTIONS/fltk_backend.cc, DLD-FUNCTIONS/gammainc.cc,
+	DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/getgrent.cc,
+	DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/hess.cc,
+	DLD-FUNCTIONS/hex2num.cc, DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc,
+	DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/lu.cc,
+	DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc,
+	DLD-FUNCTIONS/max.cc, DLD-FUNCTIONS/md5sum.cc,
+	DLD-FUNCTIONS/onCleanup.cc, DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/qr.cc,
+	DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/rand.cc,
+	DLD-FUNCTIONS/rcond.cc, DLD-FUNCTIONS/regexp.cc,
+	DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/spparms.cc,
+	DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/str2double.cc,
+	DLD-FUNCTIONS/strfind.cc, DLD-FUNCTIONS/sub2ind.cc,
+	DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc,
+	DLD-FUNCTIONS/symrcm.cc, DLD-FUNCTIONS/time.cc, DLD-FUNCTIONS/tril.cc,
+	DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/typecast.cc,
+	DLD-FUNCTIONS/urlwrite.cc: Improve docstrings.  Use same variable names
+	in error() strings and docstrings.
+
+2011-01-16  John W. Eaton  <jwe@octave.org>
+
+	* mkgendoc: Write function name along with file name in comment.
+
+2011-01-15  Jordi GutiƩrrez Hermoso  <jordigh@gmail.com>
+
+	* symtab.h (do_clear_global_pattern): Reword so as to not
+	invalidate iterators when calling std::map::erase().
+	* DLD-FUNCTIONS/urwlwrite.cc (~curl_handles): Ditto.
+
+2011-01-15  Rik  <octave@nomad.inbox5.com>
+
+	* src/dirfns.cc, src/help.cc, src/input.cc, src/load-save.cc,
+	src/oct-hist.cc, src/pager.cc, src/pr-output.cc, src/variables.cc:
+	Eliminate @deffn macros.
+
+2011-01-15  John W. Eaton  <jwe@octave.org>
+
+	* syscalls.cc (FWEXITSTATUS, FWIFEXITED): Missing semicolon.
+
+2011-01-15  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn-handle.cc: Use version instead of flops in test.
+
+2011-01-14  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/svd.cc: Add Seealso references to svd.
+
+2011-01-14  Rik  <octave@nomad.inbox5.com>
+
+	* src/mappers.cc: Add Seealso links between sqrt, cbrt, nthroot
+	functions.
+
+2011-01-14  John W. Eaton  <jwe@octave.org>
+
+	* dirfns.cc (Ffnmatch): Use DEFUNX until gnulib's fnmatch is C++
+	friendly.
+
+2011-01-14  Rik  <octave@nomad.inbox5.com>
+
+	* src/mappers.cc: Add Seealso links between erf variants to docstring.
+
+2011-01-14  John W. Eaton  <jwe@octave.org>
+
+	* sighandlers.cc (BADSIG, BLOCK_SIGNAL, SIGCHLD, BLOCK_CHILD,
+	UNBLOCK_CHILD): Move macro definitions here from sighandlers.h.
+
+2011-01-14  John W. Eaton  <jwe@octave.org>
+
+	* Update copyright notices for 2011.
+
+2011-01-13  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (mkstemp): Delete.
+	Delete decl for mkstemps.
+	(Fmkstemp): Assume we have mkstemp from gnulib.
+
+2011-01-13  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/dot.cc,
+	octave.cc: Style fixes.
+
+2011-01-13  David Bateman  <dbateman@free.fr>
+
+	ls-mat5.cc (int save_mat5_element_length (const octave_value&,
+	const std::string&, bool, bool)): For sparse matrices use nnz rather
+	than nzmax.
+	(bool save_mat5_binary_element (std::ostream&, const octave_value&,
+	const std::string&, bool, bool, bool, bool)): ditto.
+
+2011-01-13  John W. Eaton  <jwe@octave.org>
+
+	* base-list.h (class octave_base_list): Provide explicit
+	default and copy construtors, assignment operator, and destructor.
+	* load-path.h (load_path::dir_info::class_info): Likewise.
+
+	* load-path.h (load_path::dir_info::dir_info): Initialize all
+	members in initializaition list.
+	* lex.h (lexical_feedback::lexical_feedback): Likewise.
+
+2011-01-13  John W. Eaton  <jwe@octave.org>
+
+	* cutils.h: New file.
+	(octave_sleep, octave_usleep, octave_raw_vsnprintf): Move decls
+	here from utils.h.
+	* Makefile.am (octinclude_HEADERS): Add cutils.h to the list.
+	* utils.h: Include cutils.h.
+	* cutils.c: Include cutils.h.
+
+2011-01-12  David Grundberg  <individ@acc.umu.se>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (__magick_read__) [!HAVE_MAGICK]:
+	Write more verbose error message that blames on imread, not
+	__magick_read__.
+
+2011-01-12  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/rand.cc (reset_rand_generator): Delete unused
+	static function.
+
+2011-01-12  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (graphics_object::get_ancestor): Avoid GCC warning.
+
+2011-01-12  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/gcd.cc (extended_gcd): Tag call to floor with gnulib::.
+
+2011-01-12  John W. Eaton  <jwe@octave.org>
+
+	* oct-hist.cc (Fhistory_control): New function.
+
+2011-01-12  Pascal Dupuis  <Pascal.Dupuis@worldonline.be>
+
+	* oct-hist.cc (default_history_control): New function.
+	(initialize_history): Pass Vhistory control to
+	command_history::initialize.
+
+2011-01-11  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* gl-render.cc (opengl_renderer::draw_axes): Improve positioning
+	of titles.
+
+2011-01-10  John W. Eaton  <jwe@octave.org>
+
+	* ov-cell.cc (octave_cell::print_as_scalar): Always return true.
+	(octave_cell::print_raw): Handle extra newlines here.
+	* ov-struct.cc (Fstruct_levels_to_print): Move here from pr-output.cc
+	(Vstruct_levels_to_print): Move here from pr-output.cc.  Now static.
+	(Vprint_struct_array_contents): New static variable.
+	(Fprint_struct_array_contents): New function.
+	(octave_struct::print_raw): Use Vprint_struct_array_contents.
+	Simplify and improve output.
+	(octave_scalar_struct::print_raw): Simplify and improve output.
+	* pr-output.h (Vstruct_levels_to_print): Delete decl.
+	* ov-class.cc (octave_class::print_raw): Don't unwind_protect
+	Vstruct_levels_to_print.
+
+2011-01-09  David Bateman  <dbateman@free.fr>
+
+	* ls-mat5.cc (save_mat5_array_length (const float*, octave_idx_type,
+	bool)): Take in to account the short tags for single data elements.
+	(int save_mat5_element_length (const octave_value&, const std::string&,
+	bool, bool)): Declare sparse matrices const to avoid a copy on read.
+	* ls-utils.cc (save_type get_save_type (float, float)): New function.
+	* ls-utils.h  (save_type get_save_type (float, float)): Declare it.
+
+2011-01-09  John W. Eaton  <jwe@octave.org>
+
+	* token.h, token.cc (token::plot_tok_typ): Delete unused enum.
+	(token::token_type): Delete pttype_token from the list.
+	(token::token (plot_tok_type, int, int)): Delete unused constructor.
+	(token::pttype): Delete unused function.
+	(token::anonymous union): Delete PT element.
+
+2011-01-09  John W. Eaton  <jwe@octave.org>
+
+	* lex.ll (display_token): Display token value for NUM, IMAG_NUM,
+	STRUCT_ELT, NAME, DQ_STRING, and SQ_STRING tokens.
+
+2011-01-09  John W. Eaton  <jwe@octave.org>
+
+	* lex.h, lex.ll, oct-parse.yy (lexer_flags::parsed_function_name):
+	Declare to be std::stack<bool> instead of bool.  Change all uses.
+	Bug #32083.
+
+2011-01-08  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* gl-render.cc (opengl_renderer::draw_axes): Revert positionmode
+	to auto after automatic positioning of titles. Bug #32074.
+
+2011-01-08  David Grundberg  <individ@acc.umu.se>
+
+	* ov-fcn.h (is_subfunction): Rename from is_nested_function.
+	Change all uses and nearby comments.
+	* ov-usr-fcn.h (is_subfunction, mark_as_subfunction): Rename from
+	is_nested_function, mark_as_nested_function.  Change all uses.
+
+2011-01-07  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): For uniformoutput case
+	with nargout > 0, initialize elements of retval to NDArray
+	objects of the same size as the input.  Bug #32067.
+
+2011-01-07  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (Fget): Return empty matrix if no values are found.
+	Bug #32067.
+
+2011-01-06  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* txt-eng-ft.h, txt-eng-ft.cc: Remove dependency on graphics.h.
+	(ft_render::set_font): New arguments list.
+	(ft_render::text_to_pixels): New method.
+	* graphics.cc (text::properties::update_text_extent): Adapt the call
+	to ft_render::set_font.
+	(text::properties::get_extent_matrix): New function.
+	(text::properties::update_text_extent): Function rewrite.
+	* gl-render.cc (opengl_renderer::set_font): Likewise.
+	(opengl_renderer::text_to_pixels):
+	Make use of ft_render::text_to_pixels.
+	(opengl_renderer::render_text): Simplify.
+	(opengl_renderer::draw_text): Make text drawing aware of the text
+	extent property.
+	* gl-render.h (opengl_renderer::text_to_pixels): Arguments reordering.
+	(opengl_renderer::get_transform): New function.
+	* gl2ps-renderer.cc (glps_renderer::render_text): Adapt the call to
+	text_to_pixels.
+	(glps_renderer::alignment_to_mode): New function.
+	(glps_renderer::draw_text): Overload inherited function.
+	* gl2ps-renderer.h (glps_renderer::alignment_to_mode): New function.
+	* graphics.h.in: Add dependency on txt-eng-ft.h.
+	(class text::properties): Tag horizontalalignment and verticalalignment
+	with "u" qualifier.
+	(text::properties::get_extent_matrix, get_pixels,
+	update_horizontalalignment, update_verticalalignment): New functions.
+	(text::properties::renderer): New class member of type ft_render.
+	(text::properties::pixels): New class member of type uint8NDArray.
+
+2011-01-06  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/rand.cc (Frandperm): Tag call to floor with gnulib::.
+	* DLD-FUNCTIONS/gcd.cc (divide): Tag calls to floor with gnulib::.
+	* ov-scalar.cc (octave_scalar::map): Tag floor with gnulib::.
+	* ov-cell.cc (octave_cell::save_hdf5): Tag call to floor with gnulib::.
+	* pr-output.cc (engineering_exponent, num_digits,
+	octave_print_internal_template): Tag call to floor with gnulib::.
+	* graphics.cc: Consistently use std::ceil.
+	(axes::properties::get_axis_limits): Tag calls to floor with gnulib::.
+	(axes::properties::calc_ticks_and_lims): Likewise.
+
+2011-01-05  John W. Eaton  <jwe@octave.org>
+
+	Bug #32060.
+
+	* ov-fcn.h (octave_function::mark_as_private_function): Now virtual.
+	* ov-usr-fcn.h (octave_function::mark_as_private_fucntion):
+	New function.  Mark subfunctions as private also.
+	* symtab.cc, symtab.h
+	(symbol_table::mark_subfunctions_in_scope_as_private,
+	symbol_table::fcn_info::mark_subfunction_in_scope_as_private,
+	symbol_table::fcn_info::fcn_info_rep::mark_subfunction_in_scope_as_private):
+	New functions.
+
+2011-01-04  John W. Eaton  <jwe@octave.org>
+
+	* ov-base-sparse.cc (octave_base_sparse<T>::print_raw): Improve
+	display of percentage full.  Bug #32011.
+
+2011-01-04  John W. Eaton  <jwe@octave.org>
+
+	* ov-typeinfo.cc (Ftypeinfo): Return cell array of character
+	strings, not character array.  Bug #32050.
+
+2011-01-03  Rik  <octave@nomad.inbox5.com>
+
+	* data.cc (islogical, isnumeric): Add tests to check sparse forms of
+	logical matrices.
+
+2011-01-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-bool-sparse.h (octave_sparse_bool_matrix::is_numeric_type): New
+	virtual method override.
+
+2010-12-31  Rik  <octave@nomad.inbox5.com>
+
+	* toplev.cc (system): Add additional calling form "shell_cmd" to
+	documentation.
+
+2010-12-31  Rik  <octave@nomad.inbox5.com>
+
+	* data.cc (islogical, isinteger, iscomplex, isfloat, isempty,
+	isnumeric, ismatrix, issorted): Improve docstring
+	* graphics.cc (ishandle): Improve docstring
+	* lex.ll (iskeyword): Improve docstring
+	* mappers.cc (isalnum, isalpha, isascii, iscntrl, isdigit, isinf,
+	isgraph, islower, isna, isnan, isprint, ispunct, isspace, isupper,
+	isxdigit): Improve docstring
+	(finite/isfinite): Make finite an alias for isfinite rather than the
+	reverse.  Improve docstring.
+	* ov-cell.cc (iscell, iscellstr): Improve docstring
+	* ov-class.cc (isobject, ismethod): Improve docstring
+	* ov-null-mat.cc (isnull): Improve docstring
+	* ov-struct.cc (isstruct, isfield): Improve docstring
+	* ov-usr-fcn.cc (isargout): Improve docstring
+	* sparse.cc (issparse): Improve docstring
+	* strfns.cc (ischar): Improve docstring
+	* sysdep.cc (isieee): Improve docstring
+	* utils.cc (isvarname, is_absolute_filename,
+	is_rooted_relative_filename, isindex): Improve docstring
+	* variables.cc (isglobal): Improve docstring
+
+2010-12-28  Rik  <octave@nomad.inbox5.com>
+
+	* data.cc (and, ctranspose, eq, ge, gt, ldivide, le, lt, minus,
+	mldivide, mpower, mrdivide, mtimes, ne, not, or, plus, power, rdivide,
+	times, transpose, uminus, uplus): Improve docstrings for functions
+	which emulate operators.  Add Seealso cross-referencing.
+
+2010-12-28  David Bateman  <dbateman@free.fr>
+
+	* ls-mat5.cc (save_mat5_array_length (const float*, octave_idx_type,
+	bool)): Take in to account the 4 bytes of padding for an odd number
+	of elements in single precision arrays.
+
+2010-12-27  Rik  <octave@nomad.inbox5.com>
+
+	* syscalls.cc (stat): Add additional calling form using file descriptor
+	fid to docstring.
+
+2010-12-26  Michael Godfrey <godfrey@isl.stanford.edu>
+
+	* gammainc.cc: Add @tex blocks to docstring.
+
+2010-12-25  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/str2double.cc: Fix bug in converting "numberi" strings
+	such as "2i".  Add ability to process special value "NA".  Rewrite 
+	docstring.
+
+2010-12-25  Rik  <octave@nomad.inbox5.com>
+
+	* input.cc (PS1): Correct use of xref macro to remove Tex warning.
+
+2010-12-22  Jordi GutiƩrrez Hermoso  <jordigh@gmail.com>
+
+	* input.cc (PS1): Give an example of how PS1 can use ANSI escape
+	codes for getting a colourised prompt.
+	* oct-hist.cc (history): Correct documentation about how
+	history("-r") appends to history, doesn't replace it.
+
+2010-12-22  Judd Storrs  <jstorrs@gmail.com>
+
+	* data.cc (Fvec): New optional second argument to set dimension
+	of result.
+
+2010-12-18  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.h.in (class axes::properties): Tag xtickmode, ytickmode
+	and ztickmode with "u" qualifier.
+	(axes::properties::update_xtickmode, axes::properties::update_ytickmode
+	axes::properties::update_ztickmode): New functions.
+
+2010-12-18  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/dlmread.cc (Fdlmread): Simplify file name/id logic.
+	Bug #31910.
+
+2010-12-17  Rik  <octave@nomad.inbox5.com>
+
+	* oct-parse.yy (builtin): Remove seealso reference to deprecated 
+	function dispatch.
+
+2010-12-17  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.h.in (class text::properties): New properties positionmode,
+	rotationmode, horizontalalignmentmode, verticalalignmentmode.
+	* graphics.cc (axes::properties::init, axes::properties::set_defaults):
+	Set mode to auto for all initialized positioning properties.
+	(axes::properties::set_xlabel,set_ylabel,set_zlabel,set_title):
+	Revert to auto-positioning mode and turn clipping off when title or
+	labels are set.
+	* gl-render.cc (opengl_renderer::draw_axes): Disable auto-positioning
+	of manually positioned title and axes labels.
+
+2010-12-17  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.h.in (class axes::properties): Change default value for
+	fontsize from 12 to 10.
+	* graphics.cc (axes::properties::set_defaults): Likewise.
+
+2010-12-15  John W. Eaton  <jwe@octave.org>
+
+	Bug #31883.
+
+	* oct-hist.cc (initialize_history): Call command_history::initialize.
+
+	* octave.cc (gripe_safe_source_exception): New function.
+	(safe_source_file): New function.
+	(execute_startup_files): Call safe_source_file instead of source_file.
+	(execute_command_line_file): Likewise.  Don't handle exceptions here.
+	(execute_eval_option_code): Also catch octave_execution	exception.
+
+2010-12-15  John W. Eaton  <jwe@octave.org>
+
+	Bug #31861.  Also bug #31286.
+
+	* lex.h (lexical_feedback::defining_func): Now int instead of bool.
+	lex.ll (is_keyword_token): Increment lexer_flags.defining_func
+	instead of setting it to true.
+	(lexical_feedback::init): Set defining_func to 0 instead of false.
+	* oct-parse.yy (recover_from_parsing_function): Decrement
+	lexer_flags.defining_func here.
+	* input.cc (input_event_hook): Don't do anything if we are
+	lexer_flags.defining_func is nonzero.
+
+2010-12-13  Rik  <octave@nomad.inbox5.com>
+
+	* ov-struct.cc (isfield): Additional test for cellstring of field names.
+
+2010-12-13  Rik  <octave@nomad.inbox5.com>
+
+	* data.cc (mod): Additional tests for mod with non-integer real values.
+
+2010-12-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc (Flookup): Drop support for the "i" option.
+
+2010-12-09  Marco Atzeri   <marco_atzeri@yahoo.it>
+
+	* mappers.cc: In test for gamma, expect Inf for gamma(-1), not NaN.
+	Bug #31772.
+
+2010-12-08  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (base_property::do_set): Don't reverse order of
+	children.  Bug #31822.
+
+2010-12-08  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_user_function):
+	Return if an error occurs in out_of_date_check.
+
+2010-12-07  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): If an
+	error occurred during the first call to xfind, don't try again.
+
+2010-12-07  John W. Eaton  <jwe@octave.org>
+
+	* oct-parse.yy (case_list): Also accept default_case by itself.
+	Bug #31793.
+
+2010-12-01  John W. Eaton  <jwe@octave.org>
+
+	* pt-pr-code.cc	(tree_print_code::visit_octave_user_function_trailer):
+	Don't indent or print "endfunction" here.
+	* ov-usr-fcn.cc (ov_user_script::do_multi_index_op): Save and
+	set tree_evaluator::statement_context, not
+	tree_evaluator::in_fcn_or_script_body.
+	(ov_user_function::do_multi_index_op): Likewise.
+	* pt-eval.cc: Initialize tree_evaluator::statement_context, not
+	tree_evaluator::in_fcn_or_script_body.
+	(tree_evaluator::visit_break_command): Check statement_context,
+	not in_fcn_or_script_body.
+	(tree_evaluator::visit_continue_command): Likewise.
+	(tree_evaluator::visit_return_command): Likewise.
+	(visit_statement): Also echo commands in scripts if
+	Vecho_executing_commands & ECHO_SCRIPTS is true.
+	* pt-eval.h (tree_evaluator::in_fcn_body,
+	tree_evaluator::in_script_body): New static variables.
+	(tree_evaluator::): Now an enum.
+	(tree_evaluator::in_function_or_script_body): Now an enum.
+	Rename from in_fcn_or_script_body.
+
+2010-12-01  Kai Habel  <kai.habel@gmx.de>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (fltk_gui_mode): Fix gui mode
+	problems when set to none.
+
+2010-11-26  Kai Habel  <kai.habel@gmx.de>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (find_uimenu_children,
+	__fltk_redraw__): Consider hidden handles here.
+
+2010-11-26  John W. Eaton  <jwe@octave.org>
+
+	* defaults.cc (FEXEC_PATH): Only call set_exec_path if nargin is
+	greater than zero.
+
+2010-11-25  Kai Habel  <kai.habel@gmx.de>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (fltk_gui_mode): New
+	function to set GUI mode.
+	(__fltk_uigetfile__): Remove nargout from argument list.
+	(plot_window): Remove gui_mode enum here.
+
+2010-11-25  John W. Eaton  <jwe@octave.org>
+
+	* defaults.cc (set_exec_path): Append EXEC_PATH to PATH.  Store
+	only extra directories in EXEC_PATH.
+	(FEXEC_PATH): Update doc string.
+	Bug #31695.
+
+2010-11-22  John W. Eaton  <jwe@octave.org>
+
+	* defun.cc (defun_isargout): Cast nout to octave_idx_type in call
+	to std::min.
+
+2010-11-21  Kai Habel  <kai.habel@gmx.de>
+
+	* DLD-FUNCTIONS/fltk-backend.cc (__fltk_uigetfile__): New function
+	for GUI file dialogs.
+	* graphics.cc (property_list::set): Indentation	fix.
+
+2010-11-20  Ben Abbott  <bpabbott@mac.com>
+
+	* graphics.h.in: Change intended for 11272.
+
+2010-11-19  John W. Eaton  <jwe@octave.org>
+
+	Bug #31706.
+
+	* mex.h, mex.cc (mxArray::dup): Rename from clone.  Change all
+	uses and derived classes.
+	(mxArray_octave_value::dup): Convert to mxArray object here.
+
+2010-11-19  John W. Eaton  <jwe@octave.org>
+
+	Bug #31707.
+
+	* mex.cc (mex::free): Don't warn about skipping memory not
+	allocated by mxMalloc, mxCalloc, or mxRealloc.
+
+2010-11-18  Daisuke TAKAGO  <takago@neptune.kanazawa-it.ac.jp>
+
+	* gl-render.cc (opengl_renderer::draw_line):
+	Layer markers in 2D plots.
+
+2010-11-18  John W. Eaton  <jwe@octave.org>
+
+	Bug # 31689.
+
+	* ov-str-mat.cc (octave_char_matrix_str::save_ascii):
+	Adapt to change in charMatrix::row_as_string function.
+	* DLD-FUNCTIONS/md5sum.cc: New tests.
+
+2010-11-17  John W. Eaton  <jwe@octave.org>
+
+	* pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue1): Also stash
+	the directory name of the parent function in the newly created
+	anonymous function.  Bug #31484.
+
+2010-11-17  John W. Eaton  <jwe@octave.org>
+
+	* oct-parse.yy (parse_fcn_file): Protect and set global_command
+	to 0 before calling yyparse.
+	* toplev.cc (main_loop): Likewise.
+
+	* oct-parse.yy (eval_string): Set global_command to 0 after
+	protecting it and before calling yyparse.
+	* input.cc (get_debug_input): Likewise.
+
+2010-11-14  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (graphics_object::get_ancestor): New method.
+	* graphics.cc (graphics_object::get_ancestor): Likewise.
+	(convert_text_position, convert_cdata): Use it.
+	(xget_ancestor): Remove obsolete function.
+	* DLD_FUNCTIONS/fltk_backend.cc (plot_window::uimenu_update,
+	fltk_backend::update): Replace xget_ancestor with
+	graphics_objects::get_ancestor.
+
+2010-11-13  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (figure::properties::filename): Make writable.
+	Bug #31450.
+
+2010-11-12  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (nodist_liboctinterp_la_SOURCES): Remove
+	$(OPT_HANDLERS) from  the  list.  Bug #31623.
+
+2010-11-11  John W. Eaton  <jwe@octave.org>
+
+	* data.cc: New tests for cat.  Enable 4 asserts that were disabled.
+
+2010-11-11  Kai Habel  <kai.habel@gmx.de>
+
+	* fltk-backend.cc (plot_window::uimenu_update,
+	fltk_backend::update): Add prefix 'ID_' to property ids to avoid
+	name clash on windows systems.
+	* graphics.cc (gnuplot_backend::update): Ditto.
+	* genprops.awk (emit_declarations, emit_source): Ditto.
+
+2010-11-11  John W. Eaton  <jwe@octave.org>
+
+	Bug #31165.
+
+	* symtab.h (symbol_table::parent_classes): New static function.
+	* symtab.cc (out_of_date_check): Also look for methods defined
+	in parent classes of dispatch_type.
+	(symbol_table::fcn_info::fcn_info_rep::load_class_method): Call
+	parent_classes instead of accessing parent_map directly.
+
+2010-11-10  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (octave_main): Call octave_ieee_init here.
+	* sysdep.cc (sysdep_init): Not here.
+
+2010-11-10  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.cc: Eliminate special case for __DECCXX.
+
+2010-11-10  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.cc (sysdep_init): Eliminate special case for NeXT systems.
+	(malloc_handler, NeXT_init): Delete.
+
+2010-11-10  John W. Eaton  <jwe@octave.org>
+
+	* sighandlers.cc (MAYBE_ACK_SIGNAL): Delete macro and all uses.
+	(sigchld_handler): Delete special case for __EMX__.
+	* sysdep.cc (sysdep_init): Eliminate special case for __EMX__.
+	(OS2_init, Fextproc): Delete.
+
+2010-11-10  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.cc (sysdep_init): Eliminate special case for SCO.
+	(SCO_init): Delete.
+
+2010-11-10  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__dispatch__.cc: Rename from dispatch.cc.
+	Move tests to scripts/deprecated/dispatch.m.
+	(F__dispatch__): Rename from Fdispatch.
+
+	* DLD-FUNCTIONS/module-files: Add __dispatch__.cc to the list.
+	Remove dispatch.cc from the list.
+
+2010-11-10  John W. Eaton  <jwe@octave.org>
+
+	* oct-parse.yy (Fbuiltin): Move here from DLD-FUNCTIONS/dispatch.cc.
+
+2010-11-10  Kai Habel  <kai.habel@gmx.de>
+
+	* fltk-backend.cc (fltk_uimenu::update_accelerator
+	fltk_uimenu::update_callback, fltk_uimenu::update_enable,
+	fltk_uimenu::update_foregroundcolor fltk_uimenu::update_visible):
+	Check if find_item was succesful.
+	(fltk_uimenu::update_seperator): Make sure we don't write beyond
+	limits of menubar structure.
+
+2010-11-10  John W. Eaton  <jwe@octave.org>
+
+	Bug #31491.
+
+	* pt-pr-code.cc, pt-pr-code.h (tree_print_code::print_fcn_handle_body):
+	New function.
+	* ov-fcn-handle (octave_fcn_handle::print_raw): Use it.
+	* pt-pr-code.cc (tree_print_code::visit_anon_fcn_handle): Likewise.
+	* pt-pr-code.h (tree_print_code::suppress_newline): Rename from
+	printing_newlines.  Now int.  Change all uses.
+	* pt-pr-code.cc (tree_print_code::newline): Only set
+	beginning_of_line if newline is printed.
+
+2010-11-10  John W. Eaton  <jwe@octave.org>
+
+	Bug #31567.
+
+	* ov-fcn.h (octave_base_value::is_class_constructor)
+	octave_base_value::is_class_method): New optional character
+	string argument.
+	* ov-usr-fcn.h (octave_usr_fcn::is_class_constructor)
+	octave_usr_fcn::is_class_method): New optional arg. If this
+	argument is not empty, also check it against the name of the
+	dispatch class.
+	* ov-class.cc (Fclass): Allow class function to be called inside
+	a class method.  Require that the to-be-constructed object is of
+	the same class as the class constructor or method.
+
+2010-11-09  John W. Eaton  <jwe@octave.org>
+
+	* lex.ll (handle_number): Set lexer_flags.looking_for_object_index
+	to false here.  Fixes bug #31608.
+
+2010-11-09  John W. Eaton  <jwe@octave.org>
+
+	* gl-render.cc (make_marker_list): Call fmod instead of mod.
+
+	* data.cc (Frem): Use xrem instead of fmod and fmodf.
+	(Fmod): Use xmod instead of mod.
+
+2010-11-08  Kai Habel  <kai.habel@gmx.de>
+
+	* fltk-backend.cc (fltk_uimenu::do_find_uimenu_children):
+	Simplify.  Remove unused code.
+	(fltk_uimenu::update_submenu): Remove unused function.
+	(fltk_uimenu::add_to_menu, fltk_uimenu::remove_from_menu):
+	Simplify.  Get properties for valid objects only.
+
+2010-11-03  Ben Abbott  <bpabbott@mac.com>
+
+	* gl-render.cc: Do not give rendering error for uimenus.
+
+2010-11-03  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/cquad.cc: If we don't have copysign but we do
+	have _copysign, define copysign to be _copysign.
+
+2010-11-02  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/cquad.cc (Fcquad): Use octave_Inf, not INFINITY.
+
+2010-11-02  David Bateman  <dbateman@free.fr>
+
+	* ls-hdf5.cc (bool hdf5_get_scalar_attr (hid_t, hid_t,
+	const char *, void *), herr_t hdf5_add_scalar_attr
+	(hid_t, hid_t, const char *, void *)): New functions.
+	(herr_t hdf5_add_scalar_attr (hid_t, const char *)): Remove static
+	definition to make this function visible externally.
+	* ls-hdf5.h (extern OCTINTERP_API bool hdf5_check_attr (hid_t,
+	const char *), extern OCTINTERP_API bool hdf5_get_scalar_attr
+	(hid_t, hid_t, const char *, void *buf), extern OCTINTERP_API herr_t
+	hdf5_add_attr (hid_t, const char *), extern OCTINTERP_API herr_t
+	hdf5_add_scalar_attr (hid_t, hid_t, const char *, void *)): Function
+	declarations.
+	* ov-range.cc (bool octave_range::save_hdf5 (hid_t, const char *,
+	bool)): Save the number of elements in the range as an HDF5 attribute.
+	(bool octave_range::load_hdf5 (hid_t, const char *)): If an HDF5
+	attribute containing the number of elements exists use it to ensure
+	the correct number of elements in the range.
+
+2010-11-01  David Bateman  <dbateman@free.fr>
+
+	* gl-render.cc (void opengl_renderer::draw_patch (const
+	patch::properties &)): Draw clipped contours of patches.
+	* graphics.cc (template<class T> static void get_array_limits
+	(const Array<T>&, double&, double&, double&)): Don't need to test
+	for NaN as comparison is always false.
+	(Matrix children_property::do_get_children (bool) const): New method of
+	new children_property class.
+	(void children_property::do_delete_children (bool)): Ditto.
+	(void base_properties::remove_child (const graphics_handle&)): Delete.
+	(void base_properties::set_children (const octave_value&)): Delete.
+	(void base_properties::delete_children (void)): Delete.
+	(base_properties::update_axis_limits (const std::string&,
+	const graphics_handle&) const): New method.
+	(void base_graphics_object::update_axis_limits (const std::string&,
+	const graphics_handle&)): New Method.
+	(Matrix base_properties::get_children_internal (bool) const): Delete.
+	(Matrix base_properties::get_children (void) const): Delete.
+	(Matrix base_properties::get_hidden_children (void) const): Delete.
+	(void axes::update_axis_limits (const std::string&,
+	const graphics_handle&): New Method.
+	(void hggroup::properties::update_limits (void) const): New method.
+	(void hggroup::properties::update_limits (const graphics_handle&)
+	const): New method.
+	(void hggroup::update_axis_limits (const std::string&,
+	const graphics_handle&)): New method.
+	* graphics.h.in (class children_property): New class.
+	(class base_properties): Use it.
+	(base_graphics_object::update_axis_limits(const std::string&,
+	const graphics_handle&)): New method.
+	(graphics_object::update_axis_limits(const std::string&,
+	const graphics_handle&)): New method.
+	(axes::update_axis_limits(const std::string&,
+	const graphics_handle&)): New method.
+	(hggroup::adopt (const graphics_handle&)): Use it
+	(void hggroup::properties::update_limits (void) const): Remove inline
+	definition of the methid.
+	(void hggroup::properties::update_limits (const graphics_handle&)
+	const): New method.
+	(void hggroup::update_axis_limits (const std::string&,
+	const graphics_handle&)): New method.
+
+2010-10-31  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* xnorm.h (xnorm, xcolnorms, xrownorms, xfrobnorm): tag with
+	OCTINTERP_API.
+
+2010-10-31  Kai Habel  <kai.habel@gmx.de>
+
+	* fltk-backend.cc (find_uimenu_children): Remove template argument.
+	(do_find_uimenu_children): New function.
+
+2010-10-29  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (octave_value patch::properties::get_color_data
+	(void) const): Don't call convert_data is the facevertexcdata
+	property is undefined or empty.
+	* gl-render.cc (void opengl_renderer::draw_patch
+	(const patch::properties &)): Set ec_mode to 0 if edgecolor is "none".
+	Set fc_mode to 0 if facecolor is "none".
+
+2010-10-29  Ben Abbott  <bpabbott@mac.com>
+
+	* gl-render.cc: Crop ticks, ticklabels, and gridlines for OpenGL
+	backend.
+
+2010-10-28  Konstantinos Poulios  <logari81@googlemail.com>
+
+	* graphics.cc (normalized_aspectratios, max_axes_scale):
+	New file-scope static function
+	(updating_aspectratios): New file-scope variable.
+	(axes::properties::update_aspectratios, axes::update_axis_limits):
+	Return immediately if updating_aspecratios is true.
+	(axes::properties::update_aspectratios):
+	If dataaspectratiomode is set to manual this function will try to
+	respect it even after changes in xlim, ylim, zlim.
+	If both dataaspectratiomode and plotboxaspectratiomode is set to
+	manual this function will try to recalulate xlim, ylim, zlim
+	depending on the status of xlimmode, ylimmode, zlimmode. If
+	altering xlim, ylim, zlim is not possible, plotboxaspectratio will
+	be overriden.
+	* graphics.h.in (class axes::properties): Tag dataaspectratio,
+	dataaspectratiomode, plotboxaspectratio, and
+	plotboxaspectratiomode with "u" qualifier.
+	(axes::update_dataaspectratio,
+	axes::update_dataaspectratiomode,
+	axes::update_plotboxaspectratio,
+	axes::update_plotboxaspectratiomode): New functions.
+
+2010-10-25  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (octave_main): Use F77_CHAR_ARC_LEN macro to pass
+	character string length in call to xerbla.
+
+2010-10-25  Kai Habel  <kai.habel@gmx.de>
+
+	* gl-render.cc (opengl_renderer::draw): Ignore uimenu objects here.
+	* graphics.h.in (class OCTINTERP_API uimenu): New graphics object.
+	* graphics.cc (lookup_object_name): Add uimenu here.
+	(make_graphics_object_from_type): Likewise.
+	(property_list::set): Likewise.
+	(property_list::lookup): Likewise.
+	(root_figure::init_factory_properties): Likewise.
+	(__go_uimenu__): New function.
+	* DLD-Functions/fltk-backend.cc (OpenGL_fltk::resize): Make public.
+	(script_cb): New function.
+	(fltk_uimenu): New class.
+	(plot_window::plot_window): Initialize fltk_uimenu object.
+	(plot_window::~plot_window): Delete fltk_uimenu object.
+	(plot_window::show_menubar): New function.
+	(plot_window::hide_menubar): New function.
+	(plot_window::uimenu_update): New function.
+	(plot_window::handle): Do not evaluate FLTK events when figure
+	is deleted.
+	(figure_manager::uimenu_update): New function.
+	(figure_manager::toggle_menubar_visibility): New functions.
+	(figure_manager::do_toggle_menubar_visibility): New function.
+	(figure_manager::do_uimenu_update): New function.
+	(fltk_backend::uimenu_set_fltk_label): New function.
+	(fltk_backend::update): Add figure and uimenu updates.
+
+2010-10-24  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/tril.cc, syscalls.cc: Docstring improvements.
+
+2010-10-24  Rik  <octave@nomad.inbox5.com>
+
+	* variables.cc: Deprecate is_global function
+
+2010-10-23  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (Ffopen): Only handle fopen ("all") case if nargout
+	is 0 or 1.
+
+2010-10-22  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (usage): Put whitespace before and after usage message.
+	(octave_main): If getopt_long returns '?', it means an
+	unrecognized option was encountered.
+	Panic if default case in option switch statement is reached.
+ 	(verbose_usage, short_opts, usage_string): Remove '?' as an
+	alias for 'h' in the list of possible options.
+	Fixes bug #31423.
+
+2010-10-22  John W. Eaton  <jwe@octave.org>
+
+	* oct-parse.yy (load_fcn_from_file): Also strip directory when
+	computing function name from filename.  Bug #31395.
+
+2010-10-21  Gunnar FarnebƤck  <gunnar@lysator.liu.se>
+
+	* mex.cc (mxArray_number::as_octave_value): Convert single
+	matlab array to single octave array instead of to double octave
+	array.
+
+2010-10-21  John W. Eaton  <jwe@octave.org>
+
+	* gripes.h: Include lo-array-gripes.h.
+
+2010-10-21  John W. Eaton  <jwe@octave.org>
+
+	* ov-float.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc,
+	ov-scalar.cc: Use gripe_nan_to_character_conversion.
+
+	* ops.h, ov-base-mat.cc, ov-base-scalar.cc, ov-complex.h,
+	ov-cx-mat.cc, ov-cx-sparse.cc, ov-float.h, ov-flt-complex.h,
+	ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-range.cc, ov-re-mat.cc,
+	ov-re-sparse.cc, ov-scalar.h: Use gripe_nan_to_logical_conversion.
+
+2010-10-20  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (Fsystem): Allow optional RETURN_OUTPUT and TYPE
+	arguments to be specified independently.  Update doc string.
+
+2010-10-18  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::do_find_first_of,
+	load_path::do_find_all_first_of): Also search path for relative
+	filenames.
+
+2010-10-17  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/tril.cc: Use Octave copyright notice instead of
+	generic "This program is free software" notice.
+
+	* toplev.cc (Fwarranty): Say "GNU Octave" instead of "This program".
+
+2010-10-16  John W. Eaton  <jwe@octave.org>
+
+	* mxarray.h.in (mxArray::is_function_handle): New virtual function.
+	* mex.cc (mxArray_base::is_function_handle): New pure virtual function.
+	(mxArray_octave_value::is_function_handle): New function.
+	(mxArray_matlab::is_function_handle): New function.
+	(mxIsFunctionHandle): New function.
+	* mexproto.h (mxIsFunctionHandle): Provide decl.
+
+2010-10-14  John W. Eaton  <jwe@octave.org>
+
+	* sparse.cc: Rename from DLD-FUNCTIONS/sparse.cc.  Include
+	defun.h, not defun-dld.h.
+	(Fissparse, Fsparse, Fspalloc): Use DEFUN, not DEFUN_DLD.
+	* Makefile.am (DIST_SRC): Add sparse.cc to the list.
+	* DLD-FUNCTIONS/module-files: Remove sparse.cc from the list of files.
+
+2010-10-09  Ben Abbott  <bpabbott@mac.com>
+
+	* gl-render.cc: Treat images with scalar unique(x/ydata) like Matlab.
+
+2010-10-08  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (maximum_braindamage):
+	Set do_braindead_shortcircuit_evaluation to true.
+	Disable Octave:possible-matlab-short-circuit-operator warning.
+	* oct-parse.yy (if_cmd_list1, elseif_clause, loop_command):
+	Mark conditions in IF and WHILE statements for braindead
+	short-circuit behavior.
+	* pt-binop.cc (Vdo_braindead_shortcircuit_evaluation): New
+	static variable.
+	(Fdo_braindead_shortcircuit_evaluation): New function.
+	(tree_binary_expression::rvalue1): Perform short-circuit
+	evaluation of | and & expressions that are conditions of WHILE
+	and IF statements if Vdo_braindead_shortcircuit_evaluation is true.
+	* pt-binop.h
+	(tree_binary_expression::eligible_for_braindead_shortcircuit):
+	New data member.  Initialize it in class constructors.
+	(tree_binary_expression::mark_braindead_shortcircuit): New function.
+	* pt-exp.h (tree_expression::mark_braindead_shortcircuit):
+	New virtual function.
+
+2010-10-08  Ben Abbott  <bpabbott@mac.com>
+
+	* graphics.h.in: Properly set image pixel size when unique(x/ydata)
+	is scalar.
+
+2010-10-07  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/conv2.cc (convn): Update docstring.  Add 1 new test.
+
+2010-10-07  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/conv2.cc (convn): Style fixes.  Edit docstring.
+
+2010-10-07  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (do_stream_open): Use fileno instead of ::fileno to
+	avoid problems if fileno is a macro.
+
+2010-10-05  John W. Eaton  <jwe@octave.org>
+
+	* oct-stdstrm.h (octave_stdiostream::octave_stdiostream): Use
+	fileno instead of ::fileno to avoid problems if fileno is a macro.
+
+2010-10-04  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.h.in (axis::properties::pixel_size): New function.
+	(axis::properties::pixel_xsize,axis::properties::pixel_ysize):
+	New functions, use axis::properties::pixel_size
+	(axis::properties::update_ydata,axis::properties::update_xdata):
+	Use axis::properties::pixel_size functions
+
+	* graphics.cc (__image_pixel_size__): New function uses
+	axis::properties::pixel_size functions
+
+2010-10-01  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (class caseless_str): Move to
+	liboctave/caseless-string.h.
+
+2010-10-01  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (base_properties::get_dynamic): Create and return
+	octave_scalar_map object instead of Octave_map.
+	(base_graphics_object::remove_all_listeners): Use octave_map
+	instead of Octave_map.
+	(base_graphics_object::values_as_string): Likewise.
+
+	* graphics.h.in, graphics.cc (property_list::as_struct):
+	Return octave_scalar_map instead of Octave_map.
+	(base_graphics_object::values_as_struct): Likewise.
+	(graphics_object:values_as_struct): Likewise.
+	(graphics_object::set): Accept octave_map instead of Octave_map.
+
+	* genprops.awk: Use octave_map instead of Octave_map in
+	generated code.  Convert second arg to octave_value in call to
+	octave_map::assign.
+
+2010-10-01  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxArray_struct::as_octave_value): Use octave_map
+	instead of Octave_map.
+
+2010-10-01  John W. Eaton  <jwe@octave.org>
+
+	* ov-base.h: Delete forward decl for Octave_map class.
+
+2010-10-01  John W. Eaton  <jwe@octave.org>
+
+	* ov-struct.h (octave_struct (const Octave_map&)): Delete constructor.
+
+2010-10-01  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn-inline.cc (octave_fcn_inline::map_value):  Use
+	octave_scalar_map and octave_map instead of Octave_map.
+
+2010-10-01  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (symbol_info_list::map_value): Use
+	octave_scalar_map and octave_map instead of Octave_map.
+
+2010-09-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-map.h (octave_fields::nil_rep): Make a static function.
+	(octave_fields::octave_fields (void)): Use it here.
+
+2010-09-30  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (octave_config_info): Use Octave_scalar_map instead
+	of Octave_map.
+	* sighandlers.cc (make_sig_struct, FSIG): Likewise.
+
+	* utils.cc (decode_subscripts): Use octave_map instead of Octave_map.
+	* octave.cc (F__version_info__): Likewise.
+	* pt-eval.cc (visit_complex_for_command): Likewise.
+	* pt-idx.cc (tree_index_expression::lvalue): Likewise.
+
+2010-09-30  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/gcd.cc: Style fixes.
+
+2010-09-30  John W. Eaton  <jwe@octave.org>
+
+	* oct-errno.cc.in (octave_errno::do_list, octave_errno::list):
+	Use octave_scalar_map instead of Octave_map.
+
+2010-09-30  Jordi GutiƩrrez Hermoso  <jordigh@gmail.com>
+
+	* DLD-FUNCTIONS/gcd.cc (divide): New function, complex integer
+	division with remainder.
+	(simple_gcd): Overload for complex values.
+	(extended_gcd): Ditto.
+	(do_simple_gcd): Dispatch for complex gcd.
+	(do_extended_gcd): Ditto.
+	(Fgcd): Mention that complex gcd is now also possible.
+
+2010-09-30  Jordi GutiƩrrez Hermoso  <jordigh@gmail.com>
+
+	* DLD-FUNCTIONS/gcd.cc (extended_gcd): Fix bug that didn't
+	distinguish the two output coefficients.
+	(Fgcd): Fix off-by-one bug and typo from copy-pasted code.
+
+2010-09-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-parse.yy (Fautoload): Replace Octave_map by octave_map.
+	* ov-fcn-handle.cc (Ffunctions): Replace Octave_map by
+	octave_scalar_map.
+
+2010-09-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* help.cc (F__which__): Use octave_map instead of Octave_map.
+	* load-save.cc (do_load, save_fields, save_vars): Use
+	octave_scalar_map instead of Octave_map.
+
+2010-09-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* debug.cc (Fdbstatus, Fdbstack): Use octave_map instead of
+	Octave_map.
+	* error.cc (warning_options, initialize_warning_options,
+	pr_where, Frethrow, Ferror, Fwarning, Flasterror): Use
+	octave_scalar_map or octave_map instead of Octave_map.
+
+2010-09-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-errno.cc (octave_errno::list, octave_errno::do_list): Use
+	octave_scalar_map instead of Octave_map.
+	* oct-errno.h: Update decls.
+
+2010-09-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-idx.cc (tree_index_expression::make_arg_struct): Use octave_map
+	instead of Octave_map.
+	* pt-idx.h: Update decl.
+
+2010-09-29  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-map.cc (octave_map::contents): Fix off-by-1 error.
+
+2010-09-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__glpk__.cc (OCTAVE_GLPK_GET_REAL_PARAM,
+	OCTAVE_GLPK_GET_INT_PARAM): Use GETFIELD to access map fields,
+	not CONTENTS.
+	* DLD-FUNCTIONS/amd.cc (Famd): Likewise.
+	* DLD-FUNCTIONS/luinc.cc (Fluinc): Likewise.
+
+2010-09-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/urlwrite.cc (F__ftp_dir__): Use octave_scalar_map
+	instead of Octave_map.
+
+2010-09-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/luinc.cc (Fluinc): Use octave_scalar_map
+	instead of Octave_map.
+
+2010-09-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Use octave_scalar_map
+	instead of Octave_map.  Use scalar values where appropriate in
+	call to glpk.
+	(OCTAVE_GLPK_GET_REAL_PARAM, OCTAVE_GLPK_GET_INT_PARAM):
+	Update for octave_scalar_map.
+
+2010-09-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/amd.cc (Famd): Use octave_scalar_map instead of
+	Octave_map.
+	* DLD-FUNCTIONS/cellfun.cc (get_output_list): Likewise.
+
+2010-09-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/dispatch.cc (Fdispatch): Use octave_scalar_map
+	instead of Octave_map.
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::handle): Likewise.
+	* DLD-FUNCTIONS/regexp.cc (octregexp): Likewise.
+
+2010-09-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/eigs.cc (Feigs): Use octave_scalar_map instead
+	of Octave_map.
+
+2010-09-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/getpwent.cc (mk_pw_map): Use octave_scalar_map
+	instead of Octave_map.
+	* DLD-FUNCTIONS/getgrent.cc (mk_gr_map): Likewise.
+	* DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Likewise.
+
+2010-09-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/time.cc (intfield, stringfield): New functions.
+	(mk_tm_map, extract_tm): Arg is now octave_scalar_map instead of
+	Octave_map.
+	(extract_tm): Use local intfield and setfield functions.
+	(Fmktime, Fstrftime): Use octave_scalar_map instead of Octave_map.
+
+2010-09-28  John W. Eaton  <jwe@octave.org>
+
+	* Cell.h, Cell.cc (Cell::Cell (const std::list<std::string>&)):
+	New constructor.
+
+2010-09-28  John P. Swensen  <jpswensen@gmail.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (maybe_initialize_magick):
+	Warn on initialization of *Magick if QuantumDepth is less than 32.
+
+2010-09-28  John P. Swensen  <jpswensen@gmail.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (F__magick_format_list__):
+	New function.
+
+2010-09-28  John P. Swensen  <jpswensen@gmail.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image)
+	(encode_bool_image): Ensure bit depth encoding is correct for
+	logical, uint8, and uint16 images.
+
+2010-09-28  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xpow.cc (xpow (double, const Matrix&)): Ensure real result for
+	positive base.
+	(xpow (double, const Matrix&)): Likewise.
+
+2010-09-28  Jaroslav Hajek  <highegg@gmail.com>
+
+	* error.cc (interpreter_try): New function.
+	* error.h: Declare it.
+	* ov-fcn-handle.cc (octave_fcn_binder::maybe_binder): Use it here.
+	* variables.cc (safe_symbol_lookup): Also here.
+
+2010-09-27  John W. Eaton  <jwe@octave.org>
+
+	* gl-render.cc (opengl_renderer::draw_axes): Reverse order in
+	which child objects are processed.
+
+2010-09-26  Rik  <octave@nomad.inbox5.com>
+
+	* load-path.cc: Use single quotes for regex when possible.
+	* DLD-FUNCTIONS/regexp.cc (regexp): Update docstring to highlight
+	differences between POSIX and PCRE regex.
+
+2010-09-26  Rik  <octave@nomad.inbox5.com>
+
+	* load-path.cc: Use single quotes for regular expression patterns when
+	possible.
+
+2010-09-26  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/regexp.cc (regexp, regexprep, regexpi): Update
+	docstrings to more fully explain PCRE.  Modify advanced tests to run
+	only run when PCRE is present.
+
+2010-09-25  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (Fquit): Allow any number of output parameters.
+
+2010-09-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/gcd.cc (Fgcd): Rewrite. Use more efficient code.
+	Specialize for simple/extended Euclid. Handle integer arguments.
+
+2010-09-24  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/regexp.cc (regexp, regexprep): Update docstring to
+	discuss limits when not compiled with PCRE.
+
+2010-09-23  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (ALL_DEF_FILES): New variable.
+	(DEF_FILES): Don't include $(DLD_DYNAMIC_DEF_FILES) in the list.
+	(DEF_FILES DLD_DYNAMIC_DEF_FILES): Fix dependency info.
+	(doc-files): Depend on $(ALL_DEF_FILES), not $(DEF_FILES).
+
+2010-09-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xpow.cc (elem_xpow (float, const NDArray&),
+	elem_xpow (float, const FloatNDArray&)): Use simpler tests.
+
+2010-09-21  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.h (octave_base_stream::file_number): Return 0, 1,
+	and 2 for named stdin, stdout, and stderr streams; -1 otherwise.
+
+2010-09-21  John W. Eaton  <jwe@octave.org>
+
+	* syscalls.cc (Fgethostname): New function.
+
+2010-09-20  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/time.cc (Fmktime): New tests (bug #31079).
+
+2010-09-20  John W. Eaton  <jwe@octave.org>
+
+	Bug #31085:
+
+	* file-io.cc (do_stream_open): Use fopen, fileno, and gzdopen
+	instead of gzopen.  Pass integer file id to
+	octave_zstdiostream::create.
+
+	* oct-stdstrm.h (class octave_base_tstdiostream): Rename from
+	octave_tstdiostream.
+	(octave_tstdiostream::fnum): New data member.
+	(octave_tstdiostream::file_number): New member function.
+	(octave_tstdiostream::octave_tstdiostream): New arg, FID.
+	(octave_tstdiostream::create): Delete.
+	(class octave_stdiostream, class octave_zstdiostream): New
+	non-template classes derived from octave_tstdiostream to replace
+	typedefs.
+
+	* oct-stream.h (octave_base_stream::file_number): Now virtual
+	and const.  Return -1 in defaault implementation.
+
+2010-09-20  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/regexp.cc (octregexp_list) [HAVE_PCRE]:
+	Break from search loop if idx is at or beyond end of buffer
+	(bug #31056).
+
+2010-09-19  Ben Abbott  <bpabbott@mac.com>
+
+	* graphics.h.in: Add displayname property to patch and surface objects.
+
+2010-09-18  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in: Remove properties for dead legend code.
+
+2010-09-18  Ben Abbott  <bpabbott@mac.com>
+
+	* graphics.cc: Replace pagetype property value custom with <custom>.
+
+2010-09-16  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (static Matrix screen_size_pixels (void), static Matrix
+	papersize_from_type (const caseless_str, const caseless_str))): New
+	functions.
+	(void figure::properties::set_paperunits (const octave_value&),
+	void figure::properties::set_papertype (const octave_value&),
+	void figure::properties::update_paperunits (const caseless_str&))
+	void figure::properties::update_papertype (void),
+	void figure::properties::update_papersize (void),
+	void figure::properties::update_units (const caseless_str&)): New
+	methods of the figure class.
+	(void axes::properties::set_units (const octave_value&),
+	void axes::properties::update_units (const caseless_str&),
+	void axes::properties::set_fontunits (const octave_value&),
+	void axes::properties::update_fontunits (const caseless_str&)):
+	New methods of the axes class.
+	* graphics.h.in (void figure::properties::update_paperunits
+	(const caseless_str&), void figure::properties::update_units
+	(const caseless_str&)): Declaration of new figure methods.
+	(void figure::properties::update_paperunits (const caseless_str&),
+	void figure::properties::update_units (const caseless_str&)):
+	Declaration of new axes methods.
+
+2010-09-16  John P. Swensen  <jpswensen@gmail.com>
+
+	* DLD-FUNCTIONS/))magick_read__.cc (write_image): Remove
+	unnecessary for loop to set image format.
+
+2010-09-16  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/svd.cc (Fsvd): Delete assert to avoid
+	"comparison is always false due to limited range of data type"
+	warning from GCC.
+
+	* utils.cc (octave_vsnprintf): Declare nchars volatile to avoid
+	GCC warning.
+
+	* pr-output.cc (octave_print_internal): Avoid uninitialized
+	variable warning from GCC.
+
+2010-09-16  John Swensen  <jpswensen@gmail.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (write_image): Allow
+	arbitrary extensions with format specifier.
+
+2010-09-15  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (Faddpath, Frmpath): Document path arguments.
+
+2010-09-15  John Swensen  <jpswensen@gmail.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (write_image): Allow writing
+	arbitrary image types to filenames without an extension (bug #30784).
+
+2010-09-14  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (symbol_exist): If looking for any type of file
+	or "file", return 7 for directories and 2 for all other types of
+	files.
+
+2010-09-14  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (base_graphics_backend::initialize): Rename
+	from base_graphics_backend::object_created.  Change all uses.
+	(base_graphics_backend::finalize): Rename from
+	base_graphics_backend::object_destoyed.  Change all uses.
+	(base_graphics_backend::update): Rename from
+	base_graphics_backend::property_changed.  Change all uses.
+
+2010-09-14  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::object_destroyed):
+	Don't attempt to delete window if __plot_stream__ is empty.
+
+2010-09-14  Jordi GutiƩrrez Hermoso  <jordigh@gmail.com>
+
+	* load-path.cc (genpath): Pass SKIP in recursive call.
+	(Fgenpath): Accept list of directories to skip.
+
+2010-09-14  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (BEGIN_CHAR_CLASS_CONVERSION): If we hit EOF but
+	have found a match, clear the stream state (bug # 30997).
+
+2010-09-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Remove subsref optimization.
+
+2010-09-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellindexmat): New DEFUN.
+
+2010-09-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-fcn-handle.cc (octave_fcn_binder::maybe_binder): Stash name tags
+	in the template.
+	(octave_fcn_binder::do_multi_index_op): Don't use xelem to ensure
+	proper unsharing. Make a shallow copy prior to call to ensure
+	consistency throughout recursive calls.
+
+2010-09-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-fcn-handle.h (octave_fcn_binder): New subclass.
+	* ov-fcn-handle.cc: Define methods.
+	* pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue1): Call
+	octave_fcn_binder::maybe_binder.
+
+2010-09-11  John W. Eaton  <jwe@octave.org>
+
+	* pt-misc.cc (tree_parameter_list::initialize_undefined_elements):
+	Avoid GCC shadow variable warning.
+
+2010-09-11  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (Faddpath): Adjust value of nargin if numeric
+	option is found (bug #31001).
+
+2010-09-09  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* gl2ps-renderer.cc: Renders to a previously opened fid.
+	* gl2ps-renderer.h: Ditto.
+	* DLD-FUNCTIONS/fltk_backend.cc: print now accepts fid instead
+	of filename to use with above change
+
+2010-09-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (maybe_initialize_magick): New
+	helper function. Move initialization code & static variable here.
+	(F__magick_read__, F__magick_write__, F__magick_finfo__): Call it
+	here.
+
+2010-09-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cquad.cc: New source, courtesy by Pedro Gonnet.
+	* DLD-FUNCTIONS/module-files: Update.
+
+2010-09-01  Marco Caliari  <marco.caliari@univr.it>
+
+	* graphics.cc: Fix axes limits underflow to zero for logscale.
+
+2010-09-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-mat.cc (single_type_concat (Array<T>&, ...)): Optimize all
+	scalars case.
+
+2010-09-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-map.cc (octave_map::cat): Search first for an index with
+	nonzero nfields and use it for comparisons.
+	(permute_to_correct_order1): New overloaded helper func.
+	(permute_to_correct_order): use it here. Pass the index here.
+	* pt-mat.cc (single_type_concat): Don't subst 0x0 for all empty
+	arrays. Use the respective cat() capability instead.
+
+2010-09-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/dlmread.cc (Fdlmread): Support "emptyvalue" option.
+	Fix condition for terminating read.
+
+2010-08-31  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/dlmread.cc (Fdlmread): Support reading from a file ID.
+
+2010-08-31  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-class.cc (get_current_method_class): Make it an octave_class
+	method. Return class_name as default.
+	(octave_class::dotref): Error on zero return value.
+
+2010-08-30  Ben Abbott  <bpabbott@mac.com>
+
+	* gl-render.cc: Matlab compatible markers for the OpenGL.
+
+2010-08-30  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (convert_cdata_1, convert_cdata_2): New functions.
+	(convert_cdata): Use them to avoid converting all elements of
+	cdata to double at once.
+	* graphics.h.in (surface::properties::init): Constrain cdata and
+	alphadata to be single, double, or uint8.
+
+2010-08-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* graphics.cc (convert_cdata): Avoid extracting pointer to temporary
+	copy.
+
+2010-08-30  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (convert_cdata): Allow cdata to be any type that
+	can be converted to double.
+	* graphics.h.in (surface::properties::init): Remove constraints
+	on cdata and alphadata.
+
+2010-08-27  Jordi GutiƩrrez Hermoso  <jordigh@gmail.com>
+
+	* graphics.cc (axes::properties::rotate_view): Don't rotate past
+	the top and bottom.
+	(axes::properties::update_camera): Fix the view when rotating to
+	the bottom.
+	(calc_dimensions): New static function.
+	(F__calc_dimensions__) New defun to replace m-script function.
+	* graphics.h.in (calc_dimension): Provide decl.
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::plot_window):
+	Use calc_dimensions to decide whether the current figure should
+	be rotated.
+	(plot_window::mark_modified) Recompute the number of dimensions.
+	Deactivate rotation if necessary.
+	(plot_window::ndim) New data member.
+	(plot_window::button_press, plot_window::handle): Only turn on
+	rotation if ndim == 3.
+
+2010-08-24  David Bateman  <dbateman@free.fr>
+
+	* ls-mat5.cc (static void read_mat5_binary_data (std::istream&,
+	float *, octave_idx_type, bool, mat5_data_type,
+	oct_mach_info::float_format)) : New function
+	(std::string read_mat5_binary_element (std::istream&,
+	const std::string&, bool, bool&, octave_value&)): Treat
+	MAT_FILE_SINGLE_CLASS as single precision rather than convert to
+	double precision.
+	(static void write_mat5_array (std::ostream&, const FloatNDArray&,
+	bool), int save_mat5_array_length (const float*, octave_idx_type,
+	bool), int save_mat5_array_length (const FloatComplex*,
+	octave_idx_type, bool)): New functions.
+	(int save_mat5_element_length (const octave_value&,
+	const std::string&, bool save_as_floats, bool), bool
+	save_mat5_binary_element (std::ostream&, const octave_value&,
+	const std::string&, bool, bool, bool, bool)):  Treat
+	MAT_FILE_SINGLE_CLASS as single precision rather than convert to
+	double precision.
+
+2010-08-23  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::dir_info::initialize): Clear
+	method_file_map before updating file list.
+	* load-path.cc (load_path::load_path): Explicitly initialize
+	private_fcn_map.
+
+2010-08-17  Rik  <octave@nomad.inbox5.com>
+
+	* mappers.cc (gamma,lgamma): Add %!tests for negative integer
+	input arguments.
+
+2010-08-17  Rik  <octave@nomad.inbox5.com>
+
+	* bitfcns.cc (bitmax): Add additional calling argument, class, and
+	additional return value for bitmax("single").
+
+2010-08-17  Rik  <octave@nomad.inbox5.com>
+
+	* bitfcns.cc (sizemax): Improve documentation string.
+
+2010-08-16  Ben Abbott  <bpabbott@mac.com>
+
+	* gl2ps.c: Use upstream version gl2ps-1.3.5-svn-20100816.
+
+2010-08-13  Rik  <octave@nomad.inbox5.com>
+
+	* toplev.c (do_goto_frame_relative): Remove unused variable c.
+
+2010-08-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-builtin.cc
+	(octave_builtin::subsref (..., const std::list<octave_lvalue> *)
+	octave_builtin::do_multi_index_op (..., const std::list<octave_lvalue> *)):
+	New methods. Move code here. Set curr_lvalue_list.
+	(octave_builtin::curr_lvalue_list): New static member.
+	* ov-fcn-handle.h: Declare them.
+	* defun.cc (defun_isargout): New overloaded function.
+	* defun-int.h: Declare it.
+
+2010-08-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-lazy-idx.h (octave_lazy_index::subsasgn): Remove override. Leave
+	it to the defualt numeric conversion mechanism.
+
+2010-08-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fdiff): Allow logical type.
+
+2010-08-09  Rik  <octave@nomad.inbox5.com>
+
+	* oct-parse.yy (parse_fcn_file): Restore parsing of help text
+	accidentally lost in previous changeset.
+
+2010-08-09  John W. Eaton  <jwe@octave.org>
+
+	* oct-parse.yy (parse_fcn_file): Handle empty script files
+	(bug #30588).
+
+2010-08-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (octave_value::assign (assign_op, const std::string&,
+	const std::list<octave_value_list>&, const octave_value&):
+	Don't attempt to fix struct assignment to non-struct values here.
+	Check for successful assignment before overwriting this.
+
+	* ov-cell.cc (octave_cell::subsasgn): Allow dot assignment into empty
+	cell.
+
+2010-08-08  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/config-module.awk: Add newlines to divide blocks
+	in generated modules.mk and improve readability.
+
+2010-08-08  Rik  <octave@nomad.inbox5.com>
+
+	* Makefile.am: Create .DOCSTRINGS quietly and avoid screen clutter
+	during build.
+
+2010-08-08  Rik  <octave@nomad.inbox5.com>
+
+	* Makefile.am: Run do_subst macro quietly without cluttering screen
+	during build.
+
+2010-08-08  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc
+	(base_graphics_backend::print_figure): Add a redraw to get the
+	thing going.
+
+2010-08-05  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* gl2ps-renderer.cc (draw): Add support for more terminal types.
+	* DLD-FUNCTIONS/fltk_backend.cc: Likewise.
+
+2010-08-04  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxArray_number (const char *)): Create empty string if
+	given NULL arg  (bug #30639).  Create 0x0 string array if given
+	an empty string argument, not 1x0.
+
+2010-08-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-str-str.cc: Fix assignment operator.
+	* OPERATORS/op-str-s.cc: Likewise.
+	* OPERATORS/op-str-m.cc: Likewise.
+
+2010-08-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-fcn-handle.cc
+	(octave_value::subsref (..., const std::list<octave_lvalue> *)
+	octave_value::do_multi_index_op (..., const std::list<octave_lvalue> *)):
+	New methods. Move code here.
+	* ov-fcn-handle.h: Declare them.
+
+2010-08-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-usr-fcn.cc (Fis_ignored_output): Rename to Fisargout. Change the
+	behavior to indicate not ignored outputs.
+
+2010-08-01  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/amd.cc, DLD-FUNCTIONS/balance.cc,
+	DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc,
+	DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc,
+ 	DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/daspk.cc,
+	DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dot.cc, DLD-FUNCTIONS/eigs.cc,
+	DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc,
+	DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/lu.cc,
+	DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/onCleanup.cc,
+	DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc,
+	DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/str2double.cc,
+	DLD-FUNCTIONS/tril.cc, DLD-FUNCTIONS/typecast.cc, data.cc, graphics.cc,
+	load-save.cc, ov-null-mat.cc, ov-struct.cc, ov-usr-fcn.cc,
+	pr-output.cc, strfns.cc, variables.cc: Grammarcheck documentation.
+	Add @noindent lines and ensure line length is less than 80.
+
+2010-07-31  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/__voronoi__.cc,
+	DLD-FUNCTIONS/amd.cc, DLD-FUNCTIONS/balance.cc,
+	DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc,
+	DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc,
+	DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/conv2.cc,
+	DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/daspk.cc,
+	DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc,
+	DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/dot.cc, DLD-FUNCTIONS/eigs.cc,
+	DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc,
+	DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc,
+	DLD-FUNCTIONS/getrusage.cc, DLD-FUNCTIONS/givens.cc,
+	DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/hex2num.cc, DLD-FUNCTIONS/inv.cc,
+	DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc,
+	DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc,
+	DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc,
+	DLD-FUNCTIONS/md5sum.cc, DLD-FUNCTIONS/onCleanup.cc,
+	DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc,
+	DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/schur.cc,
+	DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spparms.cc,
+	DLD-FUNCTIONS/str2double.cc, DLD-FUNCTIONS/strfind.cc,
+	DLD-FUNCTIONS/sub2ind.cc, DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/syl.cc,
+	DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/time.cc,
+	DLD-FUNCTIONS/tril.cc, DLD-FUNCTIONS/typecast.cc,
+	DLD-FUNCTIONS/urlwrite.cc, bitfcns.cc, data.cc, debug.cc, defaults.cc,
+	dirfns.cc, error.cc, file-io.cc, graphics.cc, help.cc, input.cc,
+	load-path.cc, load-save.cc, ls-oct-ascii.cc, mappers.cc, oct-hist.cc,
+	octave.cc, ov-base.cc, ov-cell.cc, ov-class.cc, ov-fcn-handle.cc,
+	ov-fcn-inline.cc, ov-null-mat.cc, ov-range.cc, ov-struct.cc,
+	ov-usr-fcn.cc, pager.cc, pr-output.cc, pt-eval.cc, pt-mat.cc,
+	sighandlers.cc, strfns.cc, symtab.cc, syscalls.cc, sysdep.cc,
+	toplev.cc, utils.cc, variables.cc: Grammarcheck .cc files
+
+2010-07-30  John W. Eaton  <jwe@octave.org>
+
+	* debug.cc (Fdbstack): Improve display.
+
+	* toplev.cc (octave_call_stack::do_goto_frame_relative):
+	Improve message.  Don't display column number.
+
+	* debug.cc (get_file_line): Don't allow eol to be less than bol.
+	(Fdbwhere): Improve message.  Don't display column number.
+	(Fdbstack): Omit column number from display.
+
+	* pt-eval.cc (tree_evaluator::visit_statement): Don't call
+	octave_call_stack::set_statement for commands issued while
+	debugging.
+
+2010-07-30  John W. Eaton  <jwe@octave.org>
+
+	* pt-bp.cc (tree_breakpoint::take_action): Only call
+	delete_breakpoint if is_breakpoint returns true.
+	(tree_breakpoint::visit_statement): If statement is command,
+	accept it, otherwise, maybe take action on the statement.
+	(tree_breakpoint::visit_no_op_command): Handle breakpoints at
+	end of function.
+	Addresses more problems found with bug #30490.
+
+2010-07-30  Rik  <octave@nomad.inbox5.com>
+
+	* Makefile.am: add .DOCSTRINGS to the DISTCLEANFILES list
+
+2010-07-30  John W. Eaton  <jwe@octave.org>
+
+	* pt-eval.cc (tree_evaluator::visit_if_command,
+	tree_evaluator::visit_switch_command): Also process breakpoints
+	for the command (bug #30490).
+
+2010-07-29  Ben Abbott  <bpabbott@mac.com>
+
+	* gl-render.cc: Transpose markers '^' and 'v'.
+
+2010-07-29  John W. Eaton  <jwe@octave.org>
+
+	* pt-bp.cc (tree_breakpoint::visit_if_command): Also allow
+	breakpoint to be set on command, same as for switch, while, or
+	do-until statments.
+	* pt-select.h, pt-select.cc (tree_if_command::set_breakpoint,
+	tree_if_command::delete_breakpoint, tree_switch_command::set_breakpoint,
+	tree_switch_command::delete_breakpoint): Delete functions and decls.
+	(bug #30490).
+
+2010-07-29  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (octave_value::subsref (..., const std::list<octave_lvalue> *)
+	octave_value::do_multi_index_op (..., const std::list<octave_lvalue> *)):
+	New methods.
+	* ov.h: Declare them.
+	* ov-base.cc (octave_base_value::subsref (..., const std::list<octave_lvalue> *)
+	octave_base_value::do_multi_index_op (..., const std::list<octave_lvalue> *)):
+	New methods.
+	* ov-base.h: Declare them.
+	* ov-usr-fcn.cc (octave_user_function::subsref (..., const std::list<octave_lvalue> *)
+	octave_user_function::do_multi_index_op (..., const std::list<octave_lvalue> *)):
+	New virtual method overrides. Move code here.
+	(octave_user_function::bind_automatic_vars): Add lvalue_list
+	parameter. Bind automatic variable ".ignored.".
+	(Fis_ignored_output): New defun.
+	* ov-usr-fcn.h: Update decls.
+	* pt-misc.cc (tree_parameter_list::initialize_undefined_elements):
+	Skip warning if outputs are ignored.
+	* pt-exp.cc (tree_expression::rvalue (..., const
+	std::list<octave_lvalue> *)): New method overload.
+	* pt-exp.h: Declare it.
+	* pt-idx.cc (tree_index_expression::rvalue (..., const
+	std::list<octave_lvalue> *)): New method override. Move code here.
+	* pt-idx.h: Declare it.
+	* pt-assign.cc (tree_multi_assignment::rvalue): Pass in the pointer to
+	lvalue_list.
+
+2010-07-28  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/find.cc (Ffind): Reorder cases to check for
+	character strings before numeric arrays.
+	Delete explicit instantiations of find_nonzero_elem_idx templates.
+	New test for char array argument.
+
+2010-07-27  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/schur.cc (rsf2csf): Change first documentation line to
+	active voice.
+
+2010-07-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/schur.cc (Frsf2csf): New DEFUN.
+
+2010-07-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-scalar.cc (octave_base_scalar::diag): Implement here. Fix.
+	* ov-base-scalar.h: Only declare here.
+
+2010-07-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-re-diag.cc (octave_diag_matrix::try_narrowing_conversion): Remove
+	redundant cast.
+	* ov-flt-re-diag.cc
+	(octave_float_diag_matrix::try_narrowing_conversion): Ditto.
+	* ov-cx-diag.cc
+	(octave_complex_diag_matrix::try_narrowing_conversion): Ditto.
+	* ov-flt-cx-diag.cc
+	(octave_float_complex_diag_matrix::try_narrowing_conversion): Ditto.
+
+2010-07-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-mat.cc (do_single_type_concat_no_mutate): Remove.
+	(tree_matrix::rvalue1): Use do_single_type_concat instead.
+
+2010-07-21  Jaroslav Hajek  <highegg@gmail.com>
+
+	* bitfcns.cc (Fsizemax): New DEFUN.
+
+2010-07-20  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::plot_window):
+	Added a bottom Fl_Box (copied from gmsh) and tooltips
+
+2010-07-20  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/typecast.cc (typecast): Combine two @seealso macro
+	uses to one.
+
+2010-07-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/dlmread.cc (Fdlmread): Use octave_idx_type instead of
+	unsigned long. Over-allocate by a factor 2 to reduce copying.
+	Attempt to estimate number of columns from first line.
+	Hoist tmp_stream out of the loop and reset it for each substring.
+
+2010-07-17  Rik  <octave@nomad.inbox5.com>
+
+	* data.cc (repelems): Add more documentation about new function.
+
+2010-07-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (do_repelems): New helper func.
+	(Frepelems): New DEFUN.
+
+2010-07-19  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::gui_mode):
+	Use enum instead of int.  Change all uses.
+
+2010-07-18  Kai Habel  <kai.habel@gmx.de>
+
+	* DLD-FUNCTIONS/fltk_backend.cc: Add mode for mouse rotation.
+	(view2status): new function
+	* graphics.cc: Remove limitations for zooming and translation.
+	(axes::properties::rotate_view): new function
+
+2010-07-17  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/ccolamd.cc,
+	  DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/dasrt.cc,
+	  DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/eigs.cc, DLD-FUNCTIONS/qz.cc,
+	  DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/sparse.cc,
+	  DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/symrcm.cc, dirfns.cc,
+	  file-io.cc, syscalls.cc: Spellcheck documentation
+
+2010-07-08  Rik  <octave@nomad.inbox5.com>
+
+	* DLD_FUNCTIONS/rand.cc: Correct typo in rande documentation.
+	(bug #30446).
+
+2010-07-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (mat2cell_mismatch, prepare_idx,
+	do_mat2cell_2d, do_mat2cell_nd, do_mat2cell): New helper funcs.
+	(Fmat2cell): Use them here.
+
+2010-07-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (do_sparse_diff): Use typecasts where needed.
+
+2010-07-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/rand.cc (do_rand): Pass the distribution name as an
+	argument. Ensure restoration using unwind_protect.
+	(Frand, Frandn, Frandg, Frandp, Frande): Update.
+
+2010-07-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* unwind-prot.h (unwind_protect::fcn_crefarg_elem): New class.
+	(unwind_protect::add_fcn (void (*) (const T&), T)): New method
+	overload.
+
+2010-07-08  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/__magick_read__,cc (F__magick_read__): Add the syntax
+	__magick_read__ ("file", "frames", "all").
+
+2010-07-08  Rik  <octave@nomad.inbox5.com>
+
+	* DLD_FUNCTIONS/eigs.cc: Initialize random number generator in test
+	blocks to get reproducible results.
+
+2010-07-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-cell.cc (Fstruct2cell): Use octave_map. Optimize.
+
+2010-07-07  Rik  <octave@nomad.inbox5.com>
+
+	* pr-output.cc (calc_scale_exp): Avoid use of % operator on negative
+	operands for portability between C++ compilers.
+	(engineering_exponent): Avoid use of % operator.  Keep calculation of
+	exponent within pr_engineering_float class.  (encapsulation).
+	(num_digits): Rename from calc_digits.  Return true number of digits =
+	1 + calc_digits.
+	(calc_scale_exp): Rename from maybe_mod3 for readability.
+	(operator << (... pr_engineering_float pef): Use pef abbreviation for
+	pr_engineering_float.
+
+2010-07-07  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in (axes): Add hidden property __hold_all.
+
+2010-07-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-class.h (octave_class::map): Turn to octave_map.
+	* ov-class.cc (octave_class): Update methods.
+	* ov-base.h, ov-base.cc (octave_base_value::old_map_value) : Remove.
+	* ov.h, ov.cc (octave_value::old_map_value) : Remove.
+
+2010-07-06  David Bateman  <dbateman@free.fr>
+
+	* pr-output.cc (static bool print_eng): Flag engineering format,
+	(float_format::float_format (int, int, int, int)): New constructor.
+	(int float_format::ex): New field in the class.
+	(static int maybe_mod3 (const int&), static int
+	engineering_exponent (const double&),
+	static int calc_digits (const double&)): New functions
+	(class pr_engineering_float): New class
+	(std::ostream& operator << (std::ostream&,
+	const pr_formatted_float&)): New operator. Make it a friend of the
+	float_format class.
+	(static void set_real_format(...),
+	static void set_real_matrix_format (...),
+	static void set_complex_format(...),
+	static void set_complex_matrix_format (...),
+	static void set_range_format (...)): Set width for engineering format.
+	(static void set_format (...)): Call calc_digits to find the number
+	of digits in a value.
+	(static void pr_any_float (const float_format *, std::ostream&,
+	double, int)): Print engineering formats.
+	(static void init_format_state (void)): Set default state of print_eng.
+	(static void set_format_style (int, const string_vector&)): Parse
+	the "eng" argument.
+	(Fformat): Document the new engineering format.
+
+2010-07-04  Soren Hauberg  <hauberg@gmail.com>
+
+	* DLD_FUNCTIONS/__magick_read__.cc: restore locale after
+	GraphicsMagick initialisation.
+
+2010-07-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* toplev.cc (octave_call_stack::do_backtrace): Use static
+	octave_fields struct.
+	(octave_call_stack::empty_backtrace): New static method.
+	* toplev.h: Declare it.
+	* error.cc (Vlast_error_stack, initialize_last_error_stack,
+	Frethrow): Use octave_map or octave_scalar_map where applicable.
+
+2010-07-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-mat.cc (tm_row_const::tm_row_const_rep::all_1x1,
+	tm_cont::all_1x1): New member fields.
+	(tm_row_const::tm_row_const_rep::init, tm_const::init):
+	Handle them here.
+	(tm_row_const::all_1x1_p, tm_const::all_1x1_p): New methods.
+	(single_type_concat<MAP> (octave_map&, ...)): New template
+	overload.
+	(do_single_type_concat<octave_map>): New template specialization.
+	(tree_matrix::rvalue1): Specialize for cell and struct classes.
+	* oct-map.cc (octave_map::do_cat (..., const octave_map *, ...)):
+	Assign result dimensions.
+
+2010-07-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-map.cc (octave_map::cat (..., const octave_scalar_map *)):
+	Handle special dims (-1, -2).
+	* data.cc (do_single_type_concat_map): Don't handle them here.
+
+2010-07-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* syscalls.cc (mk_stat_map, Funame): Use octave_scalar_map.
+
+2010-07-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-map.h (octave_scalar_map::assign (const std::string&, const
+	octave_value&), octave_map::assign (const std::string&, const Cell&)):
+	Backward-compatible aliases for setfield.
+
+2010-07-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-map.cc (octave_fields::equal_up_to_order (const octave_fields&,
+	octave_idx_type *)): New overload.
+	(octave_fields::equal_up_to_order (const octave_fields&,
+	Array<octave_idx_type>&)): Use it here.
+	(octave_map::fast_elem_insert,
+	octave_map::fast_elem_extract): New methods.
+	* oct-map.h: Update decls.
+	* ov-struct.cc (octave_struct::fast_elem_extract,
+	octave_struct::fast_elem_insert,
+	octave_scalar_struct::fast_elem_insert_self): New methods.
+	* ov-struct.h: Update decls.
+
+2010-06-28  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (single_type_concat): Optimize all scalars case where
+	applicable.
+	(single_type_concat_map, do_single_type_concat_map): New funcs.
+	* pt-mat.cc (get_concat_class): Handle cell and struct concats.
+
+
+2010-06-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fnum2cell, do_num2cell): Optimize cells
+	and structs.
+
+2010-06-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-struct.h (octave_scalar_struct::resize, octave_struct::resize):
+	Don't ignore fill argument.
+
+2010-06-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-map.h (octave_map::octave_map (const dim_vector&, const
+	octave_fields&)): New internal ctor.
+
+	* oct-map.cc (octave_map::assign): Handle no fields case.
+
+2010-06-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-struct.cc (Fcell2struct): Rewrite.
+
+2010-06-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-range.cc (octave_range::save_ascii): Save length rather than
+	limit when inc is zero. Adjust comment.
+	(octave_range::save_binary, octave_range::save_hdf5): Ditto.
+	(octave_range::load_ascii): Assume limit is length when increment is
+	zero.
+	(octave_range::load_binary, octave_range::load_hdf5): Ditto.
+
+
+2010-06-25  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (reset_default_properties): New static function.
+	(root_figure::reset_default_properties,
+	figure::reset_default_properties, axes::reset_default_properties):
+	Use it to avoid duplicated code.
+
+2010-06-24  Rik  <octave@nomad.inbox5.com>
+
+	* octave.cc: Add [FILE] to octave usage string (bug #30258).
+
+2010-06-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-map.h (octave_map, octave_scalar_map): New classes.
+	* oct-map.cc (octave_map, octave_scalar_map): Implement them.
+	(Octave_map::Octave_map (const octave_map&)): New ctor.
+	* ov-struct.h (octave_struct): Use octave_map for storage.
+	(octave_scalar_struct): New class.
+	* ov-struct.cc: Update implementations.
+	* ov-base.h (octave_base_value::old_map_value): New method.
+	(octave_base_value::map_value): Return octave_map.
+	(octave_base_value::scalar_map_value): New method.
+	* ov-base.cc (octave_base_value::old_map_value,
+	octave_base_value::map_value, octave_base_value::scalar_map_value):
+	Add default implementations.
+	* ov-class.h (octave_class::old_map_value): New override.
+	* ov-class.cc: Use old_map_value for efficiency.
+
+2010-06-23  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (void root_figure::reset_default_properties (void),
+	void figure::reset_default_properties (void),
+	void figure::reset_default_properties (void),
+	Freset): New functions.
+	* graphics.h.in (void graphics_object:reset_default_properies (void),
+	virtual void base_graphics_object:reset_default_properies (void)):
+	New functions.
+	(void root_figure::reset_default_properties (void),
+	void figure::reset_default_properties (void),
+	void figure::reset_default_properties (void)): Declarations.
+	(std::string color_property::values_as_string (void) const,
+	Cell color_property::values_as_cell (void) const): New functions.
+
+2010-06-21  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/dlmread.cc: Fix spreadsheet style range option.
+	(bug #30183).
+
+2010-06-21  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (std::string radio_values:values_as_string (void)
+	const, Cell radio_values:values_as_cell (void) const): New functions.
+	(void graphics_object::set (const octave_value_list&)): Throw error
+	with no arguments.
+	(std::string base_graphics_object::values_as_string (void),
+	Octave_map base_graphics_object::values_as_struct (void)): New
+	functions.
+	(Fset): Allow single handle as an argument and return the radio
+	values.
+	* graphics.h.in (virtual bool base_property::is_radio (void) const,
+	virtual std::string base_property::values_as_string (void) const,
+	virtual Cell base_property::values_as_cell (void) const):
+	New function.
+	(std::string radio_values::values_as_string (void) const,
+	Cell radio_values::values_as_cell (void) const): Declaration.
+	(octave_idx_type radio_values::nelem (void) const): New function.
+	(std::string radio_property::values_as_string (void) const,
+	Cell radio_property::values_as_cell (void) const,
+	bool radio_property::is_radio (void) const): New functions.
+	(bool property::is_radio (void) const,
+	std::string raproperty::values_as_string (void) const,
+	Cell property::values_as_cell (void) const): New functions.
+	(std::string base_graphics_object::values_as_string (void),
+	Octave_map base_graphics_object::values_as_struct (void)): Declaration.
+	(std::string graphics_object::values_as_string (void),
+	Octave_map graphics_object::values_as_struct (void)): New functions.
+
+2010-06-21  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (single_type_concat): Assume matrix arguments start from
+	index zero.
+	(do_cat): Make dim a separate argument. Special-case support for dim =
+	-1 and dim = -2
+
+2010-06-18  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-mat.cc (tm_row_const::eval_error): Make a static func.
+	(tm_row_const::do_init_element): Simplify using dim_vector::hvcat.
+	(tm_const::init): Ditto.
+	(single_type_concat): Special-case empty results. Skip or use 0x0 for
+	empty arrays otherwise.
+	(tree_matrix::rvalue1): Skip empty arrays in the fallback branch.
+
+2010-06-16  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/dot.cc,
+	DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/lookup.cc,
+	DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/onCleanup.cc,
+	DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/svd.cc,
+	data.cc, dirfns.cc, graphics.cc, mappers.cc, ov-cell.cc, ov-range.cc:
+	Periodic grammar check of documentation to ensure a common format.
+
+2010-06-11  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/rand.cc : Add "reset" flag to reset the random
+	generators from the entropy pool.
+
+	* genprops.awk : Don't special case the color_property in the
+	factory default methods.
+
+2010-06-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fsort): Fix invalid tests.
+
+2010-06-15  Rik  <octave@nomad.inbox5.com>
+
+	* pr-output.cc: Second try at removing extra newlines from NDArrays
+
+2010-06-14  Rik  <octave@nomad.inbox5.com>
+
+	* pr-output.cc: Remove extra newlines when displaying multi-dimensional
+	arrays (bug #30029).
+
+2010-06-14  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fsort, Fnth_element): Fix behavior when trailing singleton
+	dim is specified.
+
+2010-06-12  Ben Abbott  <bpabbott@mac.com>
+
+	* DLD-FUNCTIONS/gammainc.cc: Fix doc-string typo.
+
+2010-06-11  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/gammainc.cc: Implement complementary incomplete
+	gamma function.
+
+2010-06-10  Ben Abbott  <bpabbott@mac.com>
+
+	* data.cc: Fix test for concatentating empty nd-arrays.
+
+2010-06-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fvec): New DEFUN.
+
+2010-06-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Freshape): Use octave_idx_type rather than int.
+	Don't use intermediate Array when sizes are given as separate
+	arguments. Simplify computing unknown dimension.
+
+2010-06-09  David Grundberg  <individ@acc.umu.se>
+
+	* ov-struct.cc (Fisfield): Accept cell array as name argument.
+
+2010-06-08  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/bsxfun.cc, DLD-FUNCTIONS/cellfun.cc,
+	DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lu.cc,
+	DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/tril.cc,
+	data.cc, ov.cc: Improve documentation string.
+
+2010-06-06  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* data.cc (Frem, Fmod): Specify template arguments of binmap
+	explicitely.
+
+2010-06-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/strfind.cc (Fqs_replace): Allow overlapped matches.
+	(Fstrrep): Support "overlaps" option.
+	(Fstrfind): Ditto.
+
+2010-05-28  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h (octave_value::fast_elem_extract,
+	octave_value::fast_elem_insert): New methods.
+	* ov-base.cc (octave_base_value::fast_elem_extract,
+	octave_base_value::fast_elem_insert,
+	octave_base_value::fast_elem_insert_self): New methods.
+	* ov-base.h: Declare them.
+	* ov-base-mat.cc (octave_base_matrix::fast_elem_extract,
+	octave_base_matrix::fast_elem_insert): New overrides.
+	* ov-base-mat.h: Declare them.
+	* ov-base-scalar.cc (octave_base_scalar::fast_elem_extract,
+	octave_base_scalar::fast_elem_insert_self): New overrides.
+	* ov-base-scalar.h: Declare them.
+	(octave_base_scalar::scalar_ref): New method.
+	* ov-scalar.cc (octave_scalar::fast_elem_insert_self): New override.
+	* ov-scalar.h: Declare it.
+	* ov-float.cc (octave_float_scalar::fast_elem_insert_self): New override.
+	* ov-float.h: Declare it.
+	* ov-cell.cc (octave_base_matrix<Cell>::fast_elem_extract,
+	octave_base_matrix<Cell>::fast_elem_insert): New specializations.
+	* DLD-FUNCTIONS/cellfun.cc (scalar_col_helper, scalar_col_helper_def,
+	scalar_col_helper_nda, make_col_helper, can_extract): Remove.
+	(Fcellfun): Use the new fast_elem_insert method.
+
+2010-05-10  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/eigs.cc: Improve documentation string.
+	Use ~ notation instead of dummy variables for unused return arguments.
+
+2010-05-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-mat.h (octave_base_matrix::matrix_ref (void) const): New
+	overload.
+
+2010-05-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-obj.h (octave_value_list::slice): Optionally include tags in
+	slicing.
+	* oct-parse.yy (get_feval_args): Simplify.
+	* pt-idx.cc (make_value_list): Use octave_idx_type instead of int.
+
+2010-05-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (octave_value::length): Simplify.
+
+2010-05-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-mat.h (octave_base_matrix::ndims): New override.
+	* ov-base-scalar.h (octave_base_scalar::numel,
+	octave_base_scalar::ndims): New overrides.
+
+2010-05-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.cc (octave_base_value::ndims): Remove fallback
+	implementation (makes no sense).
+	* ov-base.h (octave_base_value::ndims): Use a simplistic fallback
+	here.
+
+2010-05-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (octave_base_value::rows, octave_base_value::columns):
+	Use const where appropriate, don't test for impossible condition.
+
+2010-05-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Cell.h (Cell::index, Cell::assign, Cell::delete_elements):
+	Make signatures consistent with inherited overloads. Import inherited
+	overloads to class's scope.
+	* oct-map.cc (Octave_map::maybe_delete_elements): Simplify.
+
+2010-05-20  John W. Eaton  <jwe@octave.org>
+
+	* utils.cc (Ffile_in_path, Ffile_in_loadpath): If no file is
+	found, return empty character string instead of empty matrix.
+
+2010-05-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/onCleanup.cc (octave_oncleanup::load_ascii,
+	octave_oncleanup::load_binary, octave_oncleanup::load_hdf5,
+	octave_oncleanup::save_ascii, octave_oncleanup::save_binary,
+	octave_oncleanup::save_hdf5): Comment out unused params.
+
+2010-05-18  Jaroslav Hajek  <highegg@gmail.com>
+
+	* defun-int.h (octave_auto_shlib): Make members public.
+	* DLD-FUNCTIONS/onCleanup.cc: New source.
+	* DLD-FUNCTIONS/module-files: Add it here.
+
+2010-05-18  Jaroslav Hajek  <highegg@gmail.com>
+
+	* variables.cc (set_internal_variable (int&, ..., const char **)):
+	Drop nchoices argument. Instead determine nchoices by trailing NULL.
+	* variables.h (SET_INTERNAL_VARIABLE_CHOICES): Update.
+	* DLD-FUNCTIONS/svd.cc (Fsvd_driver): Update.
+
+2010-05-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* variables.cc (set_internal_variable (int&, ..., const char **, int)):
+	New overload.
+	* variables.h: Declare it.
+	(SET_INTERNAL_VARIABLE_CHOICES): New macro.
+	* DLD-FUNCTIONS/svd.cc (Fsvd_driver): Use it here.
+
+2010-05-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-usr-fcn.h (octave_user_function::curr_unwind_protect_frame): New
+	field.
+	(octave_user_function::local_protect): New template method.
+	* ov-usr-fcn.cc (octave_user_function::octave_user_function):
+	Initialize it here.
+	(octave_user_function::do_multi_index_op): Set and restore it here.
+	* variables.cc (wants_local_change, try_local_protect): New helper
+	funcs.
+	(set_internal_variable): Call them in all overloads.
+
+2010-05-14  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.cc (symtab::do_mark_global, symtab::do_mark_hidden): Force
+	non-existing symbol to be created.
+
+2010-05-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xdiv.cc (solve_singularity_warning): Use ID for the warning.
+
+2010-05-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/sqrtm.cc (sqrtm_utri_inplace): Use an ID for the
+	warning.
+
+2010-05-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* load-save.cc (install_loaded_variable): Pre-extract symbol record
+	reference to do all operations.
+
+2010-05-11  David Bateman  <dbateman@free.fr>
+
+	* ls-mat5.cc (save_mat5_element_length): Correct element length for
+	sparse elements with NZMAX=1 or NC=0.
+	(save_mat5_binary_element): Save the NZMAX elements of the RIDX
+	sparse index.
+
+2010-05-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-lazy-idx.cc (octave_lazy_index::save_binary): Fix arguments to
+	save_binary_data.
+
+2010-05-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/sqrtm.cc (do_sqrtm): Mark the result as triangular
+	where applicable.
+
+2010-05-10  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/qr.cc: Split qrdelete test into high precision test
+	when QRUPDATE is present and low precision when it is not.
+
+2010-05-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/schur.cc (Fschur): Mark triangular matrices on output.
+
+2010-05-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-range.cc (octave_range::index_vector): Optimize order of
+	conditions.
+
+2010-05-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (octave_value::do_non_const_unary_op): Always return *this as
+	octave_value&. Remove unused overload.
+	* oct-lvalue.cc (octave_lvalue::do_unary_op): Simplify.
+	* pt-unop.cc (tree_prefix_expression::rvalue1,
+	tree_postfix_expression::rvalue1): Remove dummy rvalue1 calls.
+
+2010-05-07  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* ov-base.h (Vsparse_auto_mutate): Add OCTINTERP_API tag.
+
+2010-05-07  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (maximum_braindamage): Set value of internal
+	variable Vallow_noninteger_range_as_index to true instead of
+	setting Octave:allow-noninteger-ranges-as-indices warning state.
+	* ov-range.cc (Fallow_noninteger_range_as_index): New function.
+	(Vallow_noninteger_range_as_index): New variable.
+	(octave_range::index_vector): Only allow non-integer range as
+	index if Vallow_noninteger_range_as_index is true.
+	(octave_range::bool_array_value): Move definition here from ov-range.h.
+	* ov-range.h (Vallow_noninteger_range_as_index): Provide decl.
+	* utils.cc (reset_warning_state): Delete.
+	(Fisindex): Temporarily set Vallow_noninteger_range_as_index
+	instead of changing warning state for
+	Octave:allow-noninteger-ranges-as-indices to "error".
+
+2010-05-06  John W. Eaton  <jwe@octave.org>
+
+	* xgl2ps.c: Don't compile gl2ps.c unless we have OpenGL.
+	From Petr Mikulik <mikulik>.
+
+2010-05-06  John W. Eaton  <jwe@octave.org>
+
+	* ov-range.cc (octave_range::index_vector):
+	Improve warning/error message.
+
+2010-05-06  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/sqrtm.cc (sqrtm_utri_inplace, do_sqrtm): New helper
+	functions.
+	(Fsqrtm): Rewrite.
+
+2010-05-06  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/schur.cc (Fschur): Recognize "complex" option for
+	Matlab compatibility. Simplify argument handling and improve error
+	messages.
+
+2010-05-05  John W. Eaton  <jwe@octave.org>
+
+	* utils.cc (reset_warning_state): New function.
+	(Fisindex): Temporarily set warning state for
+	Octave:allow-noninteger-ranges-as-indices to "error".
+	* error.cc (set_warning_state): New function.
+	(initialize_default_warning_state): Set default warning state
+	for Octave:allow-noninteger-ranges-as-indices to "error".
+	* error.h (set_warning_state): Provide decl.
+	* octave.cc (maximum_braindamage): Set warning state for
+	Octave:allow-noninteger-ranges-as-indices to "on".
+	* ov-range.cc (octave_range::index_vector): Warn if range
+	contains non-integer values.
+
+2010-05-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/svd.cc (driver): New static var.
+	(Fsvd): Use it to select a driver.
+	(Fsvd_driver): New DEFUN.
+
+2010-05-02  Rik  <octave@nomad.inbox5.com>
+
+	* ov-cell.cc: Wrap documentation line to prevent overfull hbox
+	LaTex warning
+
+2010-05-01  Ben Abbott  <bpabbott@mac.com>
+
+	* graphics.cc, graphics.h.in: Remove line object properties ldata,
+	udata, xldata, xudata.
+
+2010-04-30  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::set_axes_currentpoint):
+	check for valid object before manipulating it
+
+2010-04-27  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (string_array_property::string_array_property):
+	Index string_vector with [], not ().
+	(string_array_property::string_value): Likewise.
+	(string_array_property::do_set): Likewise.
+	Avoid indexing past last element of string_vector object.
+	Fixes bug #29695.
+
+2010-04-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-cs-list.cc (octave_cs_list::subsref): New methods. Just gripe.
+	* ov-cs-list.h: Declare them.
+
+2010-04-27  John W. Eaton  <jwe@octave.org>
+
+	* ov-usr-fcn.cc (octave_user_script::do_multi_index_op):
+	Correct spelling of max_recursion_depth in error message.
+	(octave_usr_fcn::do_multi_index_op): Ditto.
+	* pt-eval.h, pt-eval.cc (Vmax_recursion_depth): Move definition
+	here from ov-usr-fcn.cc.  Now extern.
+	(Fmax_recursion_depth): Move definition here from ov-usr-fcn.cc.
+	* oct-parse.yy (source_file): Limit recursive calls on a
+	per-file basis.
+	Addresses bug #29491.
+
+2010-04-25  David Bateman  <dbateman@free.fr>
+
+	* oct-parse.yy (octave_function * load_fcn_from_file
+	(const std::string&, const std::string&, const std::string&)
+	(const std::string&, bool)): When loading a mex-file attempt
+	to load the m-file first to get the help string.
+
+2010-04-24  Ben Abbott  <bpabbott@mac.com>
+
+	* graphics.h.in: Have figure color property support a radio value,
+	'none'.
+
+2010-04-24  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (void axes::properties::set_defaults
+	(base_graphics_object&, const std::string&)): Make the default
+	axes color "none".
+
+2010-04-24  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* Makefile.am: change GRAPHICS_CPPFLAGS to GRAPHICS_CFLAGS since
+	the former does not exist and the latter serves the same purpose
+
+2010-04-23  Rik  <octave@nomad.inbox5.com>
+
+	* Makefile.am: Clarify compilation note about defaults.h
+
+2010-04-23  Rik  <octave@nomad.inbox5.com>
+
+	* symtab.h: Clear global variables when 'clear -all' called
+
+2010-04-23  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fltk_backend.cc	(OpenGL_fltk::OpenGL_fltk):
+	Explicitly initizlize all data members in the order they are declared.
+
+2010-04-23  John W. Eaton  <jwe@octave.org>
+
+	* txt-eng-ft.cc (ft_render::visit): Declare loop counter size_t,
+	not int.
+
+	* graphics.h.in (graphics_xform::untransform):  Likewise.
+	* graphics.cc (text::properties::update_text_extent): Likewise.
+	* DLD-FUNCTIONS/fltk_backend.cc	(plot_window::set_axes_currentpoint):
+	Avoid GCC shadow variable warning.
+
+	* DLD-FUNCTIONS (plot_window::plot_window): Explicitly
+	initialize all data members in the order they are declared.
+
+2010-04-23  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/gcd.cc (Fgcd): Use two-argument dim_vector constructor.
+
+	* ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal):
+	Explicitly create idx_vec with column orientation.
+
+	* oct-obj.cc (octave_value_list::octave_value_list):
+	Explicitly resize data to be row vector.
+
+2010-04-23  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/regexp.cc.: Eliminate compile warning.
+	warning: suggest explicit braces to avoid ambiguous 'else'.
+
+2010-04-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-scalar.h (octave_base_scalar::reshape,
+	octave_base_scalar::permute): Remove implementations.
+	* ov-base-scalar.cc (octave_base_scalar::reshape,
+	octave_base_scalar::permute): Provide correct implementations here.
+
+2010-04-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-bool.h (octave_bool::empty_clone): Correctly return an empty
+	matrix.
+	* ov-float.h (octave_float::empty_clone): Ditto.
+	* ov-base-mat.h (octave_base_matrix::clone,
+	octave_base_matrix::empty_clone): Remove.
+	* ov-base-scalar.h (octave_base_scalar::clone,
+	octave_base_scalar::empty_clone): Remove.
+	* ov-base-sparse.h (octave_base_sparse::clone,
+	octave_base_sparse::empty_clone): Remove.
+	* ov-base.h (octave_base_value::empty_clone): Remove implementation.
+	* ov-base.cc (octave_base_value::empty_clone): Implement here.
+	Fall back to resize() for empty_clone().
+	* ov.cc (octave_value::assign): Correct behavior in the indexed
+	OP= case.  Use better error messages. Always return non-const
+	reference, like any assignment.
+	* ov.h: Update decls.
+	* oct-lvalue.cc (octave_lvalue::assign): Simplify.
+
+2010-04-22  Rik  <octave@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/hess.cc.: return correct Hessenberg matrix when
+	called with only one output argument.
+
+2010-04-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (do_hypot): New helper function. Move bulk code from Fhypot
+	here.
+	(Fhypot): Account for >2 args by folding do_hypot several times.
+
+2010-04-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-mat.cc (single_type_concat): New overloads. Make TYPE an explicit
+	template parameter. Try to forward some cases to Array<T>::cat and
+	Sparse<T>::cat.
+	(do_single_type_concat, do_single_type_concat_no_mutate): Don't
+	allocate the array here, let single_type_concat do it.
+
+2010-04-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (single_type_concat, do_single_type_concat): Rewrite using
+	new liboctave facilities.
+	(do_cat): Don't compute result dims if the case can be forwarded to
+	liboctave.
+
+2010-04-13  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (void text::properties::update_text_extent (void)):
+	Don't call text_renderer.set_font if HAVE_FONTCONFIG is not set.
+
+2010-04-13  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/regexp.cc (octregexp_list): Handle repeated matches
+	in the list of matches returned by pcre.
+
+2010-04-13  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::set_currentpoint,
+	(plot_window::set_axes_currentpoint, plot_window::key2shift,
+	(plot_window::key2ascii, plot_window::modifier2cell): New helper
+	functions for keypress and mousebutton callbacks.
+	(plot_window::handle): implement keypress and mousebutton callbacks.
+
+	* graphics.h.in (callback_property::is_defined): New conveniance
+	function.  Rename figure.current_point to figure.currentpoint.
+
+2010-04-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/sparse.cc (Fspalloc): New DEFUN.
+	* ov-base.cc (octave_base_value::nzmax): Return numel by default.
+
+2010-04-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-sparse.cc (octave_base_sparse::assign): Rewrite.
+	* ov-cx-sparse.cc (octave_sparse_complex_matrix::assign
+	(const octave_value_list& idx, const SparseMatrix& rhs)): Remove.
+	* ov-cx-sparse.h: Remove decl.
+
+2010-04-10  Ben Abbott  <bpabbott@mac.com>
+
+	* graphics.h.in: Fix nextplot property values. Add "new" to
+	list for axes nextplot values. Change "replace_children" to
+	"replacechildren" for both axes and figures.
+
+2010-04-09  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/regexp.cc (octregexp_list): Properly ignore
+	zero-length matches in named tokens.
+
+2010-04-09  John W. Eaton  <jwe@octave.org>
+
+	* ov-ch-mat.h (octave_char_matrix::mex_get_data): New function.
+	Addresses bug #29475.
+
+2010-04-09  Judd Storrs  <jstorrs@gmail.com>
+
+	* utils.cc (isvarname): Keywords are not valid variable names.
+
+2010-04-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* help.cc (make_name_list): Don't insert global and top-level scope
+	variables. Always insert current scope.
+
+2010-04-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT): Replace by
+	templates.
+	(single_type_concat, do_single_type_concat): New static temvplate
+	funcs. Correctly skip 0x0 matrices.
+	(Fcat): Call them here. Add tests.
+
+2010-04-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-parse.yy (feval): Use do_multi_index_op on handles.
+	(get_feval_args): Use array slicing functions rather than loops.
+
+2010-04-06  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-sparse.cc (octave_base_sparse::delete_elements): Rewrite.
+
+2010-04-02  Judd Storrs  <jstorrs@gmail.com>
+
+	* octave.cc (intern_argv): Truncate argv when script files are
+	run without command line parameters. Resolves bug #29423.
+
+2010-03-31  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/sparse.cc (Fsparse): Rewrite.
+
+2010-03-28  David Grundberg  <davidg@cs.umu.se>
+
+	* DLD-FUNCTIONS/convhulln.cc [HAVE_QHULL]: Neither include
+	qhull/qhull_a.h nor run tests if unless we HAVE_QHULL.
+
+2010-03-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* variables.cc (maybe_missing_function_hook): Temporarily clear before
+	executing the hook to avoid recursive calls.
+
+2010-03-25  John W. Eaton  <jwe@octave.org>
+
+	* gl2ps-renderer.cc (glps_renderer::draw): Tag call to fclose
+	with gnulib::.
+
+2010-03-25  John W. Eaton  <jwe@octave.org>
+
+	* oct-parse.yy, oct-fstrm.cc, mex.cc, input.cc,
+	c-file-ptr-stream.cc: Revert changes from 2010-03-24.
+
+2010-03-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* kron.cc (Fkron): Completely rewrite.
+
+2010-03-24  John W. Eaton  <jwe@octave.org>
+
+	* version.h.in (OCTAVE_BUGS_STATEMENT): Point to
+	http://www.octave.org/bugs.html, not the mailing list.
+
+2010-03-24  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/config-module.awk: Emit additions to EXTRA_DIST.
+
+2010-03-24  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am ($(srcdir)/DLD-FUNCTIONS/module.mk):
+	Remove doubled // from file name in rule.
+
+2010-03-24  David Grundberg  <davidg@cs.umu.se>
+
+	* oct-parse.yy: Include gnulib stdlib.h/stdio.h instead of C++
+	headers.
+	* oct-fstrm.cc: Include gnulib stdlib.h/string.h instead of C++
+	headers.
+	* mex.cc: Include gnulib stdlib.h instead of C++ headers.
+	* input.cc: Include gnulib stdio.h instead of C++ headers.
+	* c-file-ptr-stream.cc: Include gnulib stdio.h.
+
+2010-03-24  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::add_to_fcn_map): Style fixes.
+
+2010-03-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* variables.cc (maybe_missing_function_hook): Don't call hook if
+	errors are being handled.
+
+2010-03-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* variables.cc (Fmissing_function_hook): New pseudo-variable.
+	(Vmissing_function_hook): New static var.
+	(maybe_missing_function_hook): New function.
+	* variables.h: Declare it.
+	* pt-id.cc (tree_identifier::eval_undefined_error): Call it here.
+	* oct-parse.yy (feval (const std::string&, ...)): Also here.
+
+2010-03-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Frem, Fmod): New DEFUNs.
+	(Ffmod): Remove. Make an alias of Frem.
+
+2010-03-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (map_d_m, map_m_d, map_m_m, map_f_fm, map_fm_f, map_fm_fm,
+	map_d_s, map_s_d, map_s_s): Remove.
+	(Fatan2, Fhypot, Ffmod): Rewrite using binmap.
+
+2010-03-21  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Fix the parsing of string
+	function arguments.
+
+2010-03-20  John W. Eaton  <jwe@octave.org>
+
+	* lex.ll: Don't undefine GNULIB_NAMESPACE.  Define fprintf,
+	fwrite, malloc, and realloc and GNULIB_NAMESPACE::fprintf, ...
+	* oct-parse.yy: Likewise.  Always include cstdlib.
+
+2010-03-16  John W. Eaton  <jwe@octave.org>
+
+	* ls-oct-ascii.cc (save_ascii_data): Insert extra newline after
+	data is written to file.  From Brett Stewart <btstewart@wisc.edu>.
+
+2010-03-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (unary_mapper_t::umap_cbrt): New enum member.
+	* ov.h (octave_value::cbrt): New forwarder method.
+	* ov-scalar.cc (octave_scalar::map): Handle cbrt.
+	* ov-float.cc (octave_float_scalar::map): Ditto.
+	* ov-re-mat.cc (octave_matrix::map): Ditto.
+	* ov-flt-re-mat.cc (octave_float_matrix::map): Ditto.
+	* ov-re-sparse.cc (octave_sparse_matrix::map): Ditto.
+
+2010-03-15  John W. Eaton  <jwe@octave.org>
+
+	* oct-parse.yy, lex.ll: Undefine GNULIB_NAMESPACE immediately
+	after including <config.h>.
+
+	* toplev.cc (wait_for_input): Tag call to select with gnulib::.
+
+	* sighandlers.h (BLOCK_SIGNAL): Tag calls to sigemptyset,
+	sigaddset, and sigprocmask with gnulib::.
+	(UNBLOCK_CHILD): Tag call to sigprocmask with gnulib::.
+	* sighandlers.cc (octave_set_signal_handler): Tag calls to
+	sigemptyset with gnulib::.
+	(octave_set_signal_handler): Tag call to sigaction with gnulib::.
+
+	* oct-procbuf.cc (octave_procbuf::open): Tag calls to close, dup2,
+	and fclose with gnulib::.
+	(octave_procbuf::close): Tag call to fclose with gnulib::.
+
+	* oct-hist.cc (unlink_cleanup): Tag call to unlink with gnulib::.
+
+	* oct-fstrm.cc (octave_fstream::octave_fstream): Tag call to
+	strerror with gnulib::.
+
+	* mex.cc (mex::malloc_unmarked, mex::realloc, mxArray::malloc,
+	mxMalloc, mxRealloc): Tag call to malloc with gnulib::.
+
+	* input.cc (gnu_readline): Tag call to fputs with gnulib::.
+
+	* file-io.cc (cleanup_tmp_files): Tag call to unlink with gnulib::.
+	(do_stream_open, Ftmpfile, Fmkstemp): Tag call to strerror with
+	gnulib::.
+
+	* dirfns.cc (octave_change_to_directory): Tag call to strerror
+	with gnulib::.
+
+	* c-file-ptr-stream.cc (c_file_ptr_buf::overflow): Tag calls to
+	fputc with gnulib::.
+	(c_file_ptr_buf::xsputn): Tag call to fwrite with gnulib::.
+	(c_file_ptr_buf::file_close): Move here from
+	c-file-ptr-stream.h.  Tag call to fclose with gnulib::.
+
+2010-03-12  Ben Abbott  <bpabbott@mac.com>
+
+	* /DLD-FUNCTIONS/chol.cc: Increase tolerance for single precision test.
+
+2010-03-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc (Flookup): Fix deprecated array constructor.
+
+2010-03-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-intx.h
+	(OCTAVE_INT_NDARRAY_T::convert_gripe): Remove method.
+	(OCTAVE_INT_NDARRAY_T): Remove all uses.
+	(OCTAVE_INT_T::convert_gripe): Remove method.
+	(OCTAVE_INT_T): Remove all uses.
+	* ov.cc (convert_to_int_array, convert_to_octave_idx_type_array):
+	Remove int conversion warnings.
+	* data.cc (NATIVE_REDUCTION_1): Ditto.
+
+	* OPERATORS/op-intx.h: Remove integer warning stubs.
+	* OPERATORS/opt-int-conv.cc: Ditto.
+
+	* gripes.cc (gripe_truncated_conversion,
+	gripe_binop_integer_math_truncated,
+	gripe_native_integer_math_truncated,
+	gripe_unop_integer_math_truncated, gripe_non_integer_conversion,
+	gripe_nan_conversion): Remove.
+	* gripes.h: Remove decls.
+	* error.cc (initialize_default_warning_state): Don't initialize
+	removed warnings.
+
+2010-03-07  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* gl-render.cc (draw_figure): disable depth test on the 3rd pass.
+	(draw_text): use get_data_position to get text position.
+	* graphics.h.in (graphics_xform): New zlim field.
+	(graphics_xform::untransform(double,double,bool)): New method.
+	(axes::properties::get_transform): Provide zlim data to graphics_xform
+	constructor.
+	(text::properties::string, text::properties::units,
+	text::properties::rotation, text::properties::fontname,
+	text::properties::fontangle, text::properties::fontsize,
+	text::properties::fontweight, text::properties::interpreter): Add 'u'
+	modified.
+	(text::properties::extent): New property.
+	(text::properties::get_data_position): New method.
+	(text::properties::update_position): Use it.
+	(text::properties::update_text_extent,
+	text::properties::update_string, text::properties::update_rotation,
+	text::properties::update_fontname, text::properties::update_fontsize,
+	text::properties::update_fontangle,
+	text::properties::update_fontweight,
+	text::properties::update_interpreter, text::properties::update_units):
+	New updaters.
+	* graphics.cc (convert_position): Support single point.
+	(convert_text_position): New helper function.
+	(text::properties::get_data_position, text::properties::get_extent,
+	text::properties::update_text_extent, text::properties::update_units):
+	New methods.
+	* txt-eng-ft.h (ft_render::get_extent, ft_render::rotation_to_mode):
+	New methods.
+	* txt-eng-ft.cc (ft_render::get_extent, ft_render::rotation_to_mode):
+	Ditto.
+
+2010-03-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (do_accumdim_sum): New helper function.
+	(F__accumdim_sum__): New DEFUN.
+
+2010-03-04  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (unary_mapper_t::umap_erfcx): New enum member.
+	* ov.h (octave_value::erfcx): New forwarder method.
+	* ov-scalar.cc (octave_scalar::map): Handle erfcx.
+	* ov-float.cc (octave_float_scalar::map): Ditto.
+	* ov-re-mat.cc (octave_matrix::map): Ditto.
+	* ov-flt-re-mat.cc (octave_float_matrix::map): Ditto.
+
+2010-03-03  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (F__magick_read__):
+	Call Magick::InitializeMagick.
+
+2010-03-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/__convn__.cc: Remove.
+	* DLD-FUNCTIONS/module-files: Update.
+
+2010-03-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/conv.cc (Fconv2): Rewrite using convn from liboctave.
+	(Fconvn): New DEFUN.
+
+2010-03-01  John W. Eaton  <jwe@octave.org>
+
+	* (str2double1): Pass argument as const reference and make
+	explicit copy instead of passing by value.
+
+2010-03-01  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/str2double.cc (set_component): Use autoconf
+	macros instead of checking predefined compiler macros.
+	(str2double1): Pass val to set_component, not c.
+
+2010-03-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/str2double.cc (set_component): New helper func.
+	(str2double1): Use it here.
+
+2010-03-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/str2double.cc (str2double1): Use ISO-conformant code
+	for setting the real and imaginary part.
+
+2010-02-28  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/urlwrite.cc (curl_handle::init): Don't set
+	CURLOPT_USERPWD if userpwd is empty.
+
+2010-02-28  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am ($(srcdir)/DLD-FUNCTIONS/module.mk): New target.
+
+	* DLD-FUNCTIONS/config-module.sh: Accept top_srcdir argument.
+	Work from build directory too, not just source tree.
+
+2010-02-28  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-typeinfo.h (octave_value_typeinfo::octave_value_typeinfo):
+	Add missing initializers.
+
+2010-02-28  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/conv2.cc (conv2 (const MArray<T>&, const MArray<T>&,
+	Shape)): Args are now const.  Move invariant expressions outside
+	of loops.  Use pointers instead of Array class indexing methods.
+	(conv2 (const MArray<T>&, const MArray<T>&, const MArray<T>&, Shape)):
+	Ditto.
+
+2010-02-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-mat.cc (do_index_op): Use checkelem for scalar indices.
+	Simplify.
+
+2010-02-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xpow.cc: Update.
+	* ov-base-diag.cc: Update.
+
+2010-02-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/str2double.cc (single_number): New helper func.
+	(extract_number): Call it instead of >> to get Inf's and NaN's
+	correctly.
+
+2010-02-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/str2double.cc: New source.
+
+2010-02-19  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/qr.cc: Increase tolerance for test.
+
+2010-02-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* TEMPLATE-INST/Array-tc.cc: Remove Array2 instantiation.
+	* DLD-FUNCTIONS/besselj.cc: Use Array instead of Array2.
+	* DLD-FUNCTIONS/tril.cc: Ditto.
+	* data.cc: Ditto.
+	* ov-typeinfo.cc: Ditto.
+	* ov-typeinfo.h: Ditto.
+	* pr-output.cc: Ditto.
+
+2010-02-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-bool-mat.h (octave_bool_matrix::octave_bool_matrix (const
+	Array<bool>&)): New ctor.
+	* ov-ch-mat.h (octave_char_matrix::octave_char_matrix (const
+	Array<char>&)): New ctor.
+	* ov-str-mat.h (octave_char_matrix_str::octave_char_matrix_str (const
+	Array<char>&)): New ctor.
+	(octave_char_matrix_sq_str::octave_char_matrix_sq_str (const
+	Array<char>&)): New ctor.
+
+2010-02-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Cell.cc: Reflect Array API changes.
+	* DLD-FUNCTIONS/__convn__.cc: Ditto.
+	* DLD-FUNCTIONS/__glpk__.cc: Ditto.
+	* DLD-FUNCTIONS/__magick_read__.cc: Ditto.
+	* DLD-FUNCTIONS/bsxfun.cc: Ditto.
+	* DLD-FUNCTIONS/cellfun.cc: Ditto.
+	* DLD-FUNCTIONS/conv2.cc: Ditto.
+	* DLD-FUNCTIONS/dlmread.cc: Ditto.
+	* DLD-FUNCTIONS/filter.cc: Ditto.
+	* DLD-FUNCTIONS/kron.cc: Ditto.
+	* DLD-FUNCTIONS/qz.cc: Ditto.
+	* DLD-FUNCTIONS/regexp.cc: Ditto.
+	* DLD-FUNCTIONS/sub2ind.cc: Ditto.
+	* data.cc: Ditto.
+	* file-io.cc: Ditto.
+	* gl-render.cc: Ditto.
+	* ls-mat5.cc: Ditto.
+	* oct-map.cc: Ditto.
+	* oct-obj.h: Ditto.
+	* oct-parse.yy: Ditto.
+	* oct-stream.cc: Ditto.
+	* ov-base-mat.cc: Ditto.
+	* ov-base-sparse.cc: Ditto.
+	* ov-perm.cc: Ditto.
+	* ov-struct.cc: Ditto.
+	* ov-typeinfo.cc: Ditto.
+	* ov-typeinfo.h: Ditto.
+	* ov.cc: Ditto.
+	* pr-output.cc: Ditto.
+	* pt-mat.cc: Ditto.
+	* strfns.cc: Ditto.
+	* txt-eng-ft.cc: Ditto.
+	* variables.cc: Ditto.
+
+2010-02-22  John W. Eaton  <jwe@octave.org>
+
+	* ls-mat5.cc: Use numel instead of nelem consistently and where
+	appropriate in all functions.
+	(read_mat5_binary_element): Declare ridx and cidx as pointer to
+	octave_idx_type, not int.
+	(read_mat5_integer_data): Declare count as octave_idx_type, not int.
+	(READ_INTEGER_DATA): Loop counter is octave_idx_type, not int.
+	(OCTAVE_MAT5_INTEGER_READ): Declare n and loop counter as
+	octave_idx_type, not int.
+	(read_mat5_binary_element): Rows and columns of sparse matrix
+	are octave_idx_type, not int.  Declare nzmax and nnz as
+	octave_idx_type.  Read nzmax as 32-bit int, and assign.  Move
+	decls closer to first use.
+	(read_mat5_binary_data): Declare count as octave_idx_type, not int.
+	(read_mat5_binary_element, write_mat5_array):
+	Use octave_idx_type instead of int for numel and loop counters.
+	(write_mat5_array): Declare len and nel as octave_idx_type.
+	Move declarations closer to first use.
+	(write_mat5_tag): Declare bytes arg as octave_idx_type, not int.
+	(write_mat5_integer_data): Declare nel as octave_idx_type, not int.
+	(write_mat5_cell_array): Declare nel and loop counter as
+	octave_idx_type, not int.
+	(save_mat5_array_length): Declare nel nad loop counters as
+	octave_idx_type, not int.
+	(save_mat5_binary_element): Declare dims and counters as
+	octave_idx_type, not int. Delete unused streampos variables.
+	Call write_mat5_sparse_index_vector to write ridx and cidx.
+	Don't write element if dimension is too large to save.
+	(gripe_dim_too_large, write_mat5_sparse_index_vector): New functions.
+
+2010-02-22  Carlo de Falco  <kingcrimson@tiscali.it>
+
+	* dirfns.cc (Fglob): Make glob function test more robust.
+
+2010-02-21  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* gl-render.h: Define WIN32_LEAN_AND_MEAN and don't #undef min/max.
+	* DLD-FUNCTIONS/fltk_backend.cc: Don't #undef min/max.
+
+	* sighandlers.cc (octave_set_signal_handler): Don't use SIGALRM
+	unconditionally.
+
+	* ov-bool.h (class octave_bool): Add OCTINTERP_API.
+	* unwind-prot.h (class unwind_protect_safe): Ditto.
+
+	* Makefile.am: Add -bindir flag to liboctinterp_la_LDFLAGS. Remove
+	temporary libtool module file after copying oct file.
+
+2010-02-19  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/qr.cc: Increase tolerance for test.
+
+2010-02-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-lazy-idx.cc (octave_lazy_index::reshape,
+	octave_lazy_index::squeeze, octave_lazy_index::permute,
+	octave_lazy_index::sort, octave_lazy_index::is_sorted,
+	octave_lazy_index::sort_rows_idx, octave_lazy_index::is_sorted_rows):
+	New method overrides.
+	* ov-lazy-idx.h: Declare them.
+	* ov-re-mat.cc (octave_matrix::reshape, octave_matrix::squeeze,
+	octave_matrix::sort, octave_matrix::is_sorted,
+	octave_matrix::sort_rows_idx, octave_matrix::is_sorted_rows): New
+	method overrides.
+	* ov-re-mat.h: Declare them.
+
+2010-02-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/find.cc (Ffind): Avoid unsafe conversion from Inf to
+	integer.
+
+2010-02-18  Jaroslav Hajek  <highegg@gmail.com>
+
+	* syscalls.cc (mk_stat_result): New helper function.
+	(Flstat): Call it here.
+	(Fstat): Also here. Handle also the fstat case here.
+
+2010-02-18  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* dirfns.cc (Fglob): Document globbing patterns, add test.
+
+2010-02-18  Jaroslav Hajek  <highegg@gmail.com>
+
+	* load-path.cc (in_path_list): New helper function.
+	(add_to_fcn_map): Use it here.
+
+2010-02-18  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (__magick_finfo__):
+	Handle multiple frames in a single image file.
+
+2010-02-18  John W. Eaton  <jwe@octave.org>
+
+	* oct-map.h (Octave_map::Octave_map): Allow dimension to also be
+	specified in string_vector constructor.
+
+2010-02-17  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (OCTAVE_LIBS, OCTINTERP_LINK_DEPS):
+	Include ../libcruft/libranlib.la in the list.
+	* oct-conf.h.in (OCTAVE_CONF_F77_INTEGER_8_FLAG): New macro.
+	* toplev.cc (octave_config_info): Include F77_INTEGER_8_FLAG in
+	the struct.
+
+2010-02-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): Return an idx_vector
+	when left_inf is in effect, to enable lazy index optimization.
+
+2010-02-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-lazy-idx.h: New source.
+	* ov-lazy-idx.cc: New source.
+	* ov.cc (install_types): Register lazy_index here.
+	(octave_value::octave_value (const idx_vector&)): Use lazy
+	construction if possible, under control of an optional flag.
+	(octave_value::clone): Implement.
+	* ls-hdf5.cc (save_hdf5): Avoid saving lazy indices.
+
+2010-02-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-fcn-handle.h (octave_fcn_handle::print_as_scalar): New method
+	override.
+
+2010-02-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-fcn-handle.cc (octave_fcn_handle::is_equal_to): New method.
+	* ov-fcn-handle.h: Declare it.
+	* OPERATORS/op-fcn.cc (eq, ne): Call it here. Register new handler.
+
+2010-02-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* load-path.cc (load_path::do_any_class_method): Rename to
+	do_overloads. Return a list of classes.
+	* load-path.h (load_path::any_class_method): Likewise.
+	* symtab.cc (get_dispatch_type): Rewrite.
+	* symtab.h (get_dispatch_type): Update decl.
+	* ov-fcn-handle.h (octave_fcn_handle): Partially rewrite.
+	(octave_fcn_handle::builtin_overloads, octave_fcn_handle::overloads,
+	octave_fcn_handle::has_overloads): New members.
+	* ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): Rewrite.
+	(make_fcn_handle): Partially rewrite.
+
+2010-02-11  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/config-module.awk, genprops.awk, graphics.h.in,
+	mkgendoc, mk-pkg-add, mxarray.h.in, zfstream.cc, zfstream.h:
+	Untabify.
+
+2010-02-11  John W. Eaton  <jwe@octave.org>
+
+	* strfns.cc (Fstrcmpi, Fstrncmpi): Use DEFUNX instead of DEFUN.
+	(Fstrncmpi): Report strncmpi in error message, not strncmp.
+
+2010-02-11  John W. Eaton  <jwe@octave.org>
+
+	* Cell.cc, bitfcns.cc, c-file-ptr-stream.cc, comment-list.cc,
+	data.cc, debug.cc, defaults.cc, defun.cc, dirfns.cc, display.cc,
+	dynamic-ld.cc, error.cc, file-io.cc, gl-render.cc,
+	gl2ps-renderer.cc, graphics.cc, gripes.cc, help.cc, input.cc,
+	load-path.cc, load-save.cc, ls-ascii-helper.cc, ls-hdf5.cc,
+	ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc, ls-oct-ascii.cc,
+	ls-oct-binary.cc, mex.cc, oct-fstrm.cc, oct-hist.cc,
+	oct-lvalue.cc, oct-map.cc, oct-obj.cc, oct-prcstrm.cc,
+	oct-procbuf.cc, oct-stream.cc, oct-strstrm.cc, octave.cc,
+	ov-base-diag.cc, ov-base-int.cc, ov-base-mat.cc,
+	ov-base-scalar.cc, ov-base-sparse.cc, ov-base.cc,
+	ov-bool-mat.cc, ov-bool-sparse.cc, ov-bool.cc, ov-builtin.cc,
+	ov-cell.cc, ov-ch-mat.cc, ov-class.cc, ov-colon.cc,
+	ov-complex.cc, ov-cx-diag.cc, ov-cx-mat.cc, ov-cx-sparse.cc,
+	ov-dld-fcn.cc, ov-fcn-handle.cc, ov-fcn-inline.cc, ov-float.cc,
+	ov-flt-complex.cc, ov-flt-cx-diag.cc, ov-flt-cx-mat.cc,
+	ov-flt-re-diag.cc, ov-flt-re-mat.cc, ov-int16.cc, ov-int32.cc,
+	ov-int64.cc, ov-int8.cc, ov-mex-fcn.cc, ov-perm.cc, ov-range.cc,
+	ov-re-diag.cc, ov-re-mat.cc, ov-re-sparse.cc, ov-scalar.cc,
+	ov-str-mat.cc, ov-struct.cc, ov-typeinfo.cc, ov-uint16.cc,
+	ov-uint32.cc, ov-uint64.cc, ov-uint8.cc, ov-usr-fcn.cc, ov.cc,
+	pager.cc, pr-output.cc, procstream.cc, pt-arg-list.cc,
+	pt-assign.cc, pt-binop.cc, pt-bp.cc, pt-cbinop.cc, pt-cell.cc,
+	pt-check.cc, pt-cmd.cc, pt-colon.cc, pt-const.cc, pt-decl.cc,
+	pt-eval.cc, pt-except.cc, pt-exp.cc, pt-fcn-handle.cc, pt-id.cc,
+	pt-idx.cc, pt-jump.cc, pt-loop.cc, pt-mat.cc, pt-misc.cc,
+	pt-pr-code.cc, pt-select.cc, pt-stmt.cc, pt-unop.cc,
+	sighandlers.cc, sparse-xdiv.cc, sparse-xpow.cc, strfns.cc,
+	symtab.cc, syscalls.cc, sysdep.cc, toplev.cc, txt-eng-ft.cc,
+	utils.cc, variables.cc, xdiv.cc, xpow.cc, oct-parse.yy, lex.ll:
+	Untabify.
+
+2010-02-11  John W. Eaton  <jwe@octave.org>
+
+	* Cell.h, base-list.h, c-file-ptr-stream.h, comment-list.h,
+	debug.h, defun-int.h, dynamic-ld.h, error.h, gl-render.h,
+	gl2ps-renderer.h, gripes.h, load-path.h, load-save.h, ls-hdf5.h,
+	ls-mat-ascii.h, ls-mat4.h, ls-mat5.h, ls-oct-ascii.h,
+	ls-oct-binary.h, oct-fstrm.h, oct-iostrm.h, oct-lvalue.h,
+	oct-map.h, oct-obj.h, oct-prcstrm.h, oct-stdstrm.h,
+	oct-stream.h, oct-strstrm.h, octave.h, ops.h, ov-base-diag.h,
+	ov-base-int.h, ov-base-mat.h, ov-base-scalar.h,
+	ov-base-sparse.h, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h,
+	ov-bool.h, ov-builtin.h, ov-cell.h, ov-class.h, ov-complex.h,
+	ov-cx-diag.h, ov-cx-mat.h, ov-cx-sparse.h, ov-dld-fcn.h,
+	ov-fcn-handle.h, ov-fcn-inline.h, ov-fcn.h, ov-float.h,
+	ov-flt-complex.h, ov-flt-cx-diag.h, ov-flt-cx-mat.h,
+	ov-flt-re-diag.h, ov-flt-re-mat.h, ov-intx.h, ov-mex-fcn.h,
+	ov-perm.h, ov-range.h, ov-re-diag.h, ov-re-mat.h,
+	ov-re-sparse.h, ov-scalar.h, ov-str-mat.h, ov-struct.h,
+	ov-type-conv.h, ov-typeinfo.h, ov-usr-fcn.h, ov.h, parse.h,
+	pr-output.h, pt-arg-list.h, pt-assign.h, pt-binop.h, pt-cell.h,
+	pt-cmd.h, pt-colon.h, pt-const.h, pt-decl.h, pt-eval.h,
+	pt-except.h, pt-exp.h, pt-fcn-handle.h, pt-id.h, pt-idx.h,
+	pt-jump.h, pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h,
+	pt-select.h, pt-stmt.h, pt-unop.h, sighandlers.h, sparse-xdiv.h,
+	sparse-xpow.h, symtab.h, token.h, toplev.h, txt-eng-ft.h,
+	txt-eng.h, utils.h, variables.h, xdiv.h: Untabify.
+
+2010-02-11  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/qz.cc: Untabify.
+	(Fqz): Declare complex_case volatile to avoid GCC warning.
+
+2010-02-11  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/qz.cc: Style fixes.
+
+2010-02-11  John W. Eaton  <jwe@octave.org>
+
+	* load-save.cc: If gnulib defines open, undefine it.  Move
+	#undefs before including zfstream.h.
+
+2010-01-30  Jyh-Miin Lin  <jyhmiin@gmail.com>
+
+	* DLD-FUNCTIONS/qz.cc (Fqz): Handle complex case without reordering.
+	Return Q' for Matlab compatibility.
+
+2010-02-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.cc: Reverse the effect of 2ceae0b40515.
+	(get_dispatch_type): If btyp_unknown occurs, read the class dispatch
+	type.
+
+2010-02-10  John W. Eaton  <jwe@octave.org>
+
+	* load-save.cc: If gnulib defines close, undefine it.
+
+2010-02-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-perm.h (octave_perm_matrix::builtin_type): New function.
+	* symtab.cc (build_sup_table): Build the matrix with extra column
+	and row to avoid segfault when undefined value leaks in.
+	(get_dispatch_type): Update. Gripe if invalid result is detected.
+
+2010-02-10  John W. Eaton  <jwe@octave.org>
+
+	* data.cc: Ensure that CLOCKS_PER_SEC is defined instead of HZ.
+	(Fcputime): Use CLOCKS_PER_SEC instead of HZ.
+
+2010-02-10  John W. Eaton  <jwe@octave.org>
+
+	* data.cc: Include <sys/times.h>.  Define HZ if it is not defined.
+
+2010-02-10  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (base_properties::set_children): Ensure that new
+	children are stored as a column vector.
+
+	* syscalls.cc (Fdup2, Fexec, Fpopen2, Ffork, Fgetpgrp, Fgetpid,
+	Fgetppid, Fgetegid, Fgetgid, Fgeteuid, Fkill, Ffstat, Flstat,
+	Fpipe, Fstat, Fwaitpid): Use DEFUNX instead of DEFUN.
+
+2010-02-10  David Grundberg  <davidg@cs.umu.se>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (read_images): Reimplement
+	copying with direct fortran_vec manipulation, avoiding indexing
+	operations.  Replace scale_quantum_to_depth calls with simple
+	arithmetics.
+	(scale_quantum_to_depth): Remove function.
+
+2010-02-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/bsxfun.cc (Fbsxfun): Remove redundant test. Add
+	explanation.
+
+2010-02-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (octave_base_value::is_list): Remove.
+	* ov.h (octave_value::is_list): Remove.
+	* data.cc (Fislist): Remove.
+	* oct-stream.cc (printf_value_cache::printf_value_cache): Don't call
+	is_list.
+
+2010-02-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-str-mat.h (octave_char_matrix_str::is_real_type): Delete
+	overload.
+	* data.cc (Fisreal): Improve docs.
+
+2010-02-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fisnumeric): Improve documentation.
+	(Fismatrix): Ditto.
+
+2010-02-09  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc, graphics.h.in
+	(base_properties::get_hidden_children): New function.
+	(base_properties::get_children_internal): New function.
+	(base_properties::get_children): Call get_children_internal to
+	do the work.
+	(base_properties::set_children): Incorporate maybe_set_children
+	function here.  Account for hidden children.
+	(maybe_set_children): Delete.
+
+	* c-file-ptr-stream.h (c_file_ptr_buf::buf_close): Rename from close.
+	(c_file_ptr_buf::file_close): Rename from fclose.
+	(c_file_ptr_stream::stream_close): Rename from close.
+	(c_zfile_ptr_buf:buf_close): Rename from close.
+	Change all callers.
+
+2010-02-09  John W. Eaton  <jwe@octave.org>
+
+	* dynamic-ld.cc (clear): Only warn if reloading a dynamically
+	linked file that defines multiple functions.
+
+2010-02-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx (const Array<T>&, ...)):
+	Optimize creation of result indices.
+	* data.cc (Fsort): Ditto.
+
+2010-02-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd, Fetree): Fix improper arg
+	checks.
+	* DLD-FUNCTIONS/ccolamd.cc (Fccolamd, Fcsymamd): Likewise.
+
+2010-02-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-re-mat.cc (octave_matrix::sort): Special-case sorting a known
+	index vector.
+
+2010-02-08  John W. Eaton  <jwe@octave.org>
+
+	* ov-class.cc (Fclass): If more than 1 argument, check that
+	call is inside class constructor first, then check for valid
+	arguments.
+
+2010-02-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (F__accumarray_sum__): Allow bool and char inputs.
+	(do_accumarray_minmax, do_accumarray_minmax_fun): New helper funcs.
+	(F__accumarray_min__, F__accumarray_max__): New defuns.
+
+2010-02-04  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.cc: Don't include <sys/utsname.h>.
+
+2010-02-04  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (gh_manager::lookup (const octave_value&)):
+	New function.
+	* graphics.cc (axes::properties::set_text_child): Validate value.
+	Allow value to be character string or handle of text object.
+
+2010-02-04  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (OCTAVE_LIBS): Include all liboctave library
+	dependencies here.
+
+2010-02-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-fcn-handle.h (octave_fcn_handle::anonymous): New static field.
+	* ov-fcn-handle.cc (octave_fcn_handle::anonymous): Initialize it.
+	Use everywhere instead of hardwired string.
+	(octave_fcn_handle::print_raw): Print named function handle with
+	starting @.
+	* pt-fcn-handle.cc: Use octave_fcn_handle::anonymous rather than
+	hardcoded string.
+
+2010-02-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-fcn.cc: New source.
+	* OPERATORS/module.mk: Include it.
+
+2010-02-03  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc: Assume we have fcntl.h and sys/stat.h.
+
+	* syscalls.cc: Assume we have fcntl.h and fcntl.
+	(Ffcntl): Use DEFUNX, not DEFUN.  Call octave_fcntl, not
+	octave_syscalls::fcntl.
+
+2010-02-03  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/sub2ind.cc (get_dim_vector):
+	Eliminate unnecessary cast.
+
+	* DLD-FUNCTIONS/qr.cc (Fqrinsert, Fqrdelete):
+	Avoid type mismatch errors with octave_idx_type.
+
+	* oct-stream.cc (scanf_format_list::add_elt_to_list):
+	NUM_ELTS arg is octave_idx_type, not int.
+
+	* ov-struct.cc (octave_struct::load_ascii): Ensure args to
+	std::max are the same type.
+	* DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): Likewise.
+	* DLD-FUNCTIONS/sub2ind.cc (get_dim_vector): Likewise.
+	* DLD-FUNCTIONS/strfind.cc (qs_search): Likewise, for std::min.
+	* DLD-FUNCTIONS/tril.cc (do_tril, do_triu): Likewise.
+
+2010-02-03  John W. Eaton  <jwe@octave.org>
+
+	* utils.cc (octave_vsnprintf): Assume we have vsnprintf with
+	semantics that match the version provided by gnulib.
+
+	* DLD-FUNCTIONS/convhulln.cc (Fconvhulln):
+	Use std::sstream instead of fixed-length buffer and snprintf.
+
+2010-02-03  John W. Eaton  <jwe@octave.org>
+
+	* cutils.c (octave_usleep): Implement using nanosleep.
+	(octave_sleep): Assume sleep exists.
+
+2010-02-03  John W. Eaton  <jwe@octave.org>
+
+	* syscalls.cc (Fcanonicalize_file_name):
+	Call octave_canonicalize_file_name instead of
+	file_ops::canonicalize_file_name.
+
+2010-02-03  John W. Eaton  <jwe@octave.org>
+
+	* dirfns.cc (Fpwd): Call octave_env::get_current_directory, not
+	octave_env::getcwd.
+
+	* utils.cc (search_path_for_file, search_path_for_all_files,
+	make_absolute, Ffile_in_loadpath, Ffile_in_path, file_in_path,
+	contents_file_in_path, Fmake_absolute_filename):
+	Don't pass current directory to octave_env::make_absolute.
+	* ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise.
+	* octave.cc (execute_startup_files): Likewise.
+	* ls-mat5.cc (read_mat5_binary_element): Likewise.
+	* load-save.cc (find_file_to_load): Likewise.
+	* load-path.cc (load_path::dir_info::update,
+	load_path::dir_info::initialize, load_path::do_find_dir,
+	load_path::do_find_matching_dirs): Likewise.
+	* file-io.cc (do_stream_open): Likewise.
+	* oct-parse.yy (load_fcn_from_file, Fautoload): Likewise.
+	* DLD-FUNCTIONS/md5sum.cc (Fmd5sum): Likewise.
+	* DLD-FUNCTIONS/urlwrite.cc (Furlwrite): Likewise.
+
+2010-02-02  John W. Eaton  <jwe@octave.org>
+
+	* syscalls.cc (Fcanonicalize_file_name): Use DEFUNX instead of DEFUN.
+
+2010-02-02  Thomas Weber  <thomas.weber.mail@gmail.com>
+
+	* DLD-FUNCTIONS/filter.cc: New tests.
+
+2010-02-02  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (octave_main): Assume we have atexit.
+	* sighandlers.h, sighandlers.cc: Delete conditional definition
+	of RETSIGTYPE.  Replace all uses of RETSIGTYPE with void.
+	(MAYBE_REINSTALL_SIGHANDLER, SIGHANDLER_RETURN):
+	Delete macros and all uses.
+
+2010-02-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* load-path.cc (load_path::add_to_fcn_map): Warn when core library or
+	built-in functions are being shadowed.
+	(load_path::do_add): Pass at_end to add_to_fcn_map, add_to_method_map.
+	Don't abort when "." not yet included.
+	(load_path::do_clear): Don't append "." here.
+	(load_path::do_set): Always prepend "." here.
+	(load_path::initialize): Don't explicitly include "." here.
+
+2010-02-02  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/filter.cc (filter (MArray<T>&, MArray<T>&,
+	MArrayN<T>&, MArrayN<T>&, int)): Return early if X is empty.
+
+2010-02-02  John W. Eaton  <jwe@octave.org>
+
+	* cutils.c: Include <sys/times.h>, not "systime.h".
+	* data.cc (Fcputime): Assume we have times.
+
+	* DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Assume we have times.
+	Include <times.h> and <sys/times.h> unconditionally.
+	Don't include <windows.h>
+
+2010-02-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* strfns.cc (Fstrncmpi): Fix typo in docstring.
+
+2010-01-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-list.h, ov-list.cc, OPERATORS/op-list.cc: Remove.
+
+	* Makefile.am, OPERATORS/module.mk: Update.
+	* debug.cc: Remove #include.
+	* ov-base.cc: Ditto.
+	* ov-cs-list.h: Ditto.
+	* ov-struct.cc: Ditto.
+	* pt-bp.cc: Ditto.
+	* ov.cc (octave_value::octave_value (const octave_value_list&)):
+	Simplify.
+	(install_types): Omit octave_list.
+
+2010-01-30  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* DLD-FUNCTIONS/time.cc: Replace struct_contains by isfield.
+
+2010-01-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-assign.h (tree_multi_assignment::etype): Remove.
+	(tree_multi_assignment::tree_multi_assignment): Update.
+	(tree_multi_assignment::op_type): Update.
+	* pt-assign.cc (tree_multi_assignment::tree_multi_assignment): Update.
+	(tree_multi_assignment::rvalue): Update.
+	(tree_multi_assignment::dup): Update.
+	* oct=parse.yy (make_assign_op): Don't allow computed multiple
+	assignments.
+
+2010-01-30  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (__fltk_redraw__): call
+	Fl::check twice to ensure all pending draws are shown on screen
+
+2010-01-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-lvalue.h (octave_lvalue::black_hole): Remove field.
+	(octave_lvalue::(all methods)): Update.
+	* oct-lvalue.cc: Ditto.
+
+2010-01-29  David Grundberg  <davidg@cs.umu.se>
+
+	* mex.cc (mex::realloc): Allocate new memory if the argument is
+	NULL.
+
+2010-01-29  Ryan Rusaw  <rrusaw@gmail.com>
+
+	* pt-eval.h, pt-eval.cc (tree_evaluator::do_keyboard):
+	New virtual function.
+
+2010-01-28  Jaroslav Hajek  <highegg@gmail.com>
+
+	* toplev.cc (run_command_and_return_output): Fix testing of failed
+	process creation, simplify.
+	(cleanup_iprocstream): Remove.
+
+2010-01-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-eval.cc (do_unwind_protect_cleanup_code): Save
+	current_statement and restore it after cleanup block.
+
+2010-01-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-parse.yy (validate_matrix_row): New static helper func.
+	(cell_or_matrix_row): Call it here.
+
+2010-01-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-lvalue.h (octave_lvalue::is_black_hole): New method.
+	(octave_lvalue::black_hole): New field.
+	(octave_lvalue::is_defined, octave_lvalue::is_undefined,
+	octave_lvalue::is_map): Make const.
+	(octave_lvalue::index_set): Remove field.
+	(octave_lvalue::octave_lvalue, octave_lvalue::operator =): Correctly
+	handle black holes. Update.
+	(dummy_value): Remove.
+	* pt-id.h (tree_identifier::is_black_hole): New method.
+	(tree_identifier::is_variable): Make virtual.
+	(tree_black_hole): New class.
+	* oct-parse.yy (magic_tilde): New terminal.
+	(param_list): Allow magic_tilde.
+	(arg_list): Allow magic_tilde.
+	* pt-misc.cc (tree_parameter_list::validate): Handle black holes.
+	* pt-idx.cc (tree_index_expression::append): Gripe if arguments
+	contain magic tilde.
+	* pt-arg-list.h (tree_argument_list::has_magic_tilde): New method
+	decl.
+	(tree_argument_list::list_includes_magic_tilde): New field.
+	(tree_argument_list::tree_argument_list): Initialize it in ctors.
+	* pt-arg-list.cc (tree_argument_list::has_magic_tilde): New method.
+	(tree_argument_list::append): Update list_includes_magic_tilde.
+
+2010-01-27  Judd Storrs  <jstorrs@gmail.com>
+
+	* ov-class.cc (octave_class::print_with_name) Add default case for
+	classes that don't define a display method.
+
+2010-01-26  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* gl-render.cc (draw_text): scale position.
+
+2010-01-26  John W. Eaton  <jwe@octave.org>
+
+	* dirfns.cc (Fmkdir, Frmdir, Flink, Fsymlink, Freadlink,
+	Frename, Ftmpnam, Fumask): Use DEFUNX instead of DEFUN.
+	* syscall.scc (Fmkfifo, Funlink): Ditto.
+	* DLD-FUNCTIONS/urlwrite.cc (cleanup_urlwrite, reset_path,
+	delete_file): Now static.
+
+2010-01-23  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (octave_main): Use getopt directly instead of using
+	the (mostly useless) prog_args wrapper class.
+	Include <getopt.h>, not "prog-args.h".
+
+2010-01-23  John W. Eaton  <jwe@octave.org>
+
+	* sighandlers.cc (user_abort): Also set debug_mode if Vdebugging.
+	* debug.cc (bp_table::do_add_breakpoint, do_remove_all_breakpoints,
+	bp_table::do_remove_breakpoint,	do_remove_all_breakpoints_in_file):
+	Also set debug_mode if Vdebugging.
+	* pt-eval.cc (visit_return_command): Actually call reset_debug_state.
+	(reset_debug_state): Also set debug_mode if Vdebugging.
+
+2010-01-22  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (octave_main): Use new names for prog_args member
+	functions.
+
+2010-01-22  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc: Don't include sys/types.h, unistd.h, or fstream.
+
+2010-01-22  John W. Eaton  <jwe@octave.org>
+
+	* oct-parse.yy (make_break_command, make_continue_command,
+	make_return_command): Don't examine evaluator state here.
+	* pt-eval.cc (tree_evaluator::visit_break_command): Don't set
+	tree_break_command::breaking unless inside function or script
+	body, or inside a looping command.
+	(tree_evaluator::visit_continue_command): Likewise, for
+	tree_continue_command::continuing.
+	(tree_evaluator::visit_return_command): Likewise, for
+	tree_return_command::returning.  Act like dbcont if debugging
+	and in the top-level debugging stack frame.
+
+2010-01-22  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_base_stream::do_scanf): Don't skip
+	whitespace, literal text, and %% elements at the end of the
+	format spec.  Correctly process formats containing only literal text.
+	(scanf_format_list::finish_conversion): Don't increment nconv
+	for literal % characters.
+	(scanf_format_list::length, scanf_format_list::num_conversions):
+	Return octave_idx_type, not int.
+	(scanf_format_list::nconv, scanf_format_list::curr_idx):
+	Now octave_idx_type, not int.  Change all uses.
+	(printf_format_list::length): Return octave_idx_type, not int.
+	(scanf_format_list::nconv, scanf_format_list::curr_idx):
+	Now octave_idx_type, not int.  Change all uses.
+	(scanf_format_list::add_elt_to_list,
+	scanf_format_list::process_conversion,
+	scanf_format_list::finish_conversion,
+	printf_format_list::add_elt_to_list,
+	printf_format_list::process_conversion,
+	printf_format_list::finish_conversion):
+	Use size_t instead of int as appropriate.
+	* oct-stream.h: Update decls.
+
+2010-01-22  John W. Eaton  <jwe@octave.org>
+
+	* debug.cc (Fdbcont, Fdbquit): Call reset_debug_state.
+	(Fdbquit): Set Vdebugging to false.
+	* input.cc (Fkeyboard): Set tree_evaluator::debug_state to true.
+	Set tree_evaluator::current_frame to the initial stack frame
+	that is active for debugging commands.
+	* pt-eval.cc (tree_evaluator::reset_debug_state): New function.
+	* pt-eval.h (tree_evaluator::reset_debug_state): Provide decl.
+	* toplev.cc (main_loop): Call tree_evaluator::reset_debug_state
+	if at top level.
+
+2010-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fnorm): Don't special-case empty matrix.
+	* DLD-FUNCTIONS/svd.cc (Fsvd): Fix empty matrix case. Add tests.
+
+2010-01-21  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-builtin.cc (octave_builtin::do_multi_index_op): Partially undo
+	previous change.
+	* ov-type-conv.h (octave_type_conv_body): Undo previous change.
+	* ov-dld-fcn.cc (octave_dld_function::do_multi_index_op): Ditto.
+
+2010-01-21  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/getrusage.cc, DLD-FUNCTIONS/getgrent.cc,
+	DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/regexp.cc, lex.ll,
+	cutils.c, data.cc, defaults.cc, dirfns.cc, file-io.cc, help.cc,
+	input.cc, oct-hist.cc, oct-procbuf.cc, oct-procbuf.h, octave.cc,
+	pager.h, procstream.h, sighandlers.cc, toplev.cc, syscalls.cc,
+	sysdep.cc, utils.cc: Assume sys/types.h and unistd.h are present
+	(gnulib provides them).
+
+2010-01-21  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (octave_base_value::dim_vector): Return 0x0 by default.
+	* oct-obj.h (octave_value_list::xelem, octave_value_list::clear): New
+	methods.
+	* ov-builtin.cc (octave_builtin::do_multi_index_op): Don't call
+	make_storable_values. Chop a potential single undefined value.
+	* ov-type-conv.h (octave_type_conv_body): Ensure storable value.
+	* ov-dld-fcn.cc (octave_dld_function::do_multi_index_op): New method.
+	* DLD-FUNCTIONS/cellfun.cc (get_output_list): New helper function.
+	(Fcellfun): Call it here. Optimize.
+
+2010-01-20  John W. Eaton  <jwe@octave.org>
+
+	* defaults.h.in, graphics.h.in, oct-conf.h.in, oct-errno.cc.in,
+	version.h.in: Delete Emacs local-variable settings.
+
+2010-01-20  John W. Eaton  <jwe@octave.org>
+
+	* cutils.c, main.c, matherr.c, siglist.c, Cell.cc, bitfcns.cc,
+	c-file-ptr-stream.cc, comment-list.cc, data.cc, debug.cc,
+	defaults.cc, defun.cc, dirfns.cc, display.cc, dynamic-ld.cc,
+	error.cc, file-io.cc, gl-render.cc, gl2ps-renderer.cc,
+	graphics.cc, gripes.cc, help.cc, input.cc, load-path.cc,
+	load-save.cc, ls-ascii-helper.cc, ls-hdf5.cc, ls-mat-ascii.cc,
+	ls-mat4.cc, ls-mat5.cc, ls-oct-ascii.cc, ls-oct-binary.cc,
+	ls-utils.cc, mappers.cc, oct-fstrm.cc, oct-hist.cc,
+	oct-iostrm.cc, oct-lvalue.cc, oct-map.cc, oct-obj.cc,
+	oct-prcstrm.cc, oct-procbuf.cc, oct-stream.cc, oct-strstrm.cc,
+	octave.cc, ov-base-int.cc, ov-base-mat.cc, ov-base-scalar.cc,
+	ov-base-sparse.cc, ov-base.cc, ov-bool-mat.cc,
+	ov-bool-sparse.cc, ov-bool.cc, ov-builtin.cc, ov-cell.cc,
+	ov-ch-mat.cc, ov-class.cc, ov-colon.cc, ov-complex.cc,
+	ov-cs-list.cc, ov-cx-mat.cc, ov-cx-sparse.cc, ov-dld-fcn.cc,
+	ov-fcn-handle.cc, ov-fcn-inline.cc, ov-fcn.cc, ov-float.cc,
+	ov-flt-complex.cc, ov-flt-cx-mat.cc, ov-flt-re-mat.cc,
+	ov-int16.cc, ov-int32.cc, ov-int64.cc, ov-int8.cc, ov-list.cc,
+	ov-mex-fcn.cc, ov-range.cc, ov-re-mat.cc, ov-re-sparse.cc,
+	ov-scalar.cc, ov-str-mat.cc, ov-struct.cc, ov-typeinfo.cc,
+	ov-uint16.cc, ov-uint32.cc, ov-uint64.cc, ov-uint8.cc,
+	ov-usr-fcn.cc, ov.cc, pager.cc, pr-output.cc, procstream.cc,
+	pt-arg-list.cc, pt-assign.cc, pt-binop.cc, pt-bp.cc, pt-cell.cc,
+	pt-check.cc, pt-cmd.cc, pt-colon.cc, pt-const.cc, pt-decl.cc,
+	pt-eval.cc, pt-except.cc, pt-exp.cc, pt-fcn-handle.cc, pt-id.cc,
+	pt-idx.cc, pt-jump.cc, pt-loop.cc, pt-mat.cc, pt-misc.cc,
+	pt-pr-code.cc, pt-select.cc, pt-stmt.cc, pt-unop.cc, pt.cc,
+	sighandlers.cc, sparse-xdiv.cc, sparse-xpow.cc, strfns.cc,
+	symtab.cc, syscalls.cc, sysdep.cc, token.cc, toplev.cc,
+	unwind-prot.cc, utils.cc, variables.cc, xdiv.cc, xpow.cc,
+	zfstream.cc, Cell.h, base-list.h, builtins.h,
+	c-file-ptr-stream.h, comment-list.h, debug.h, defun-dld.h,
+	defun-int.h, defun.h, dirfns.h, display.h, dynamic-ld.h,
+	error.h, file-io.h, gl2ps-renderer.h, gripes.h, help.h, input.h,
+	lex.h, load-path.h, load-save.h, ls-ascii-helper.h, ls-hdf5.h,
+	ls-mat-ascii.h, ls-mat4.h, ls-mat5.h, ls-oct-ascii.h,
+	ls-oct-binary.h, ls-utils.h, mex.h, mexproto.h, oct-errno.h,
+	oct-fstrm.h, oct-hdf5.h, oct-hist.h, oct-iostrm.h, oct-lvalue.h,
+	oct-map.h, oct-obj.h, oct-prcstrm.h, oct-procbuf.h,
+	oct-stdstrm.h, oct-stream.h, oct-strstrm.h, oct.h, octave.h,
+	ops.h, ov-base-int.h, ov-base-mat.h, ov-base-scalar.h,
+	ov-base-sparse.h, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h,
+	ov-bool.h, ov-builtin.h, ov-cell.h, ov-ch-mat.h, ov-class.h,
+	ov-colon.h, ov-complex.h, ov-cs-list.h, ov-cx-mat.h,
+	ov-cx-sparse.h, ov-dld-fcn.h, ov-fcn-handle.h, ov-fcn-inline.h,
+	ov-fcn.h, ov-float.h, ov-flt-complex.h, ov-flt-cx-diag.h,
+	ov-flt-cx-mat.h, ov-flt-re-mat.h, ov-int-traits.h, ov-int16.h,
+	ov-int32.h, ov-int64.h, ov-int8.h, ov-intx.h, ov-list.h,
+	ov-mex-fcn.h, ov-range.h, ov-re-mat.h, ov-re-sparse.h,
+	ov-scalar.h, ov-str-mat.h, ov-struct.h, ov-type-conv.h,
+	ov-typeinfo.h, ov-uint16.h, ov-uint32.h, ov-uint64.h,
+	ov-uint8.h, ov-usr-fcn.h, ov.h, pager.h, parse.h, pr-output.h,
+	procstream.h, pt-all.h, pt-arg-list.h, pt-assign.h, pt-binop.h,
+	pt-bp.h, pt-cbinop.h, pt-cell.h, pt-check.h, pt-cmd.h,
+	pt-colon.h, pt-const.h, pt-decl.h, pt-eval.h, pt-except.h,
+	pt-exp.h, pt-fcn-handle.h, pt-id.h, pt-idx.h, pt-jump.h,
+	pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h, pt-select.h,
+	pt-stmt.h, pt-unop.h, pt-walk.h, pt.h, sighandlers.h, siglist.h,
+	sparse-xdiv.h, sparse-xpow.h, symtab.h, sysdep.h, token.h,
+	toplev.h, unwind-prot.h, utils.h, variables.h, xdiv.h, xpow.h,
+	zfstream.h, oct-parse.yy, lex.ll: Delete EMacs local-variable settings.
+
+2010-01-20  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__magick_read__.cc, DLD-FUNCTIONS/balance.cc,
+	DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc,
+	DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc,
+	DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc,
+	DLD-FUNCTIONS/colloc.cc, DLD-FUNCTIONS/conv2.cc,
+	DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc,
+	DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/det.cc,
+	DLD-FUNCTIONS/dmperm.cc, DLD-FUNCTIONS/dot.cc,
+	DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc,
+	DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc,
+	DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/filter.cc,
+	DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/fltk_backend.cc,
+	DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc,
+	DLD-FUNCTIONS/getgrent.cc, DLD-FUNCTIONS/getpwent.cc,
+	DLD-FUNCTIONS/getrusage.cc, DLD-FUNCTIONS/givens.cc,
+	DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/inv.cc,
+	DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc,
+	DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc,
+	DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc,
+	DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/qr.cc,
+	DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc,
+	DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc,
+	DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/sparse.cc,
+	DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/sqrtm.cc,
+	DLD-FUNCTIONS/svd.cc, DLD-FUNCTIONS/syl.cc,
+	DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/time.cc,
+	DLD-FUNCTIONS/tril.cc: Delete Emacs local-variable settings.
+
+2010-01-20  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__contourc__.cc, DLD-FUNCTIONS/__convn__.cc,
+	DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/__dsearchn__.cc,
+	DLD-FUNCTIONS/__glpk__.cc, DLD-FUNCTIONS/__lin_interpn__.cc,
+	DLD-FUNCTIONS/__magick_read__.cc,
+	DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/__qp__.cc,
+	DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/amd.cc,
+	DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc,
+	DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/bsxfun.cc,
+	DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc,
+	DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colamd.cc,
+	DLD-FUNCTIONS/colloc.cc, DLD-FUNCTIONS/conv2.cc,
+	DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/daspk.cc,
+	DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc,
+	DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/dispatch.cc,
+	DLD-FUNCTIONS/dlmread.cc, DLD-FUNCTIONS/dmperm.cc,
+	DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/eigs.cc,
+	DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc,
+	DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc,
+	DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc,
+	DLD-FUNCTIONS/fltk_backend.cc, DLD-FUNCTIONS/gammainc.cc,
+	DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/getgrent.cc,
+	DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/givens.cc,
+	DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/hex2num.cc,
+	DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc,
+	DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lsode.cc,
+	DLD-FUNCTIONS/lu.cc, DLD-FUNCTIONS/luinc.cc,
+	DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/md5sum.cc,
+	DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/qr.cc,
+	DLD-FUNCTIONS/quad.cc, DLD-FUNCTIONS/qz.cc,
+	DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/rcond.cc,
+	DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/schur.cc,
+	DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spparms.cc,
+	DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc,
+	DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc,
+	DLD-FUNCTIONS/symrcm.cc, DLD-FUNCTIONS/time.cc,
+	DLD-FUNCTIONS/tril.cc, DLD-FUNCTIONS/tsearch.cc,
+	DLD-FUNCTIONS/urlwrite.cc: Untabify.
+
+2010-01-20  John W. Eaton  <jwe@octave.org>
+
+	* TEMPLATE-INST/Array-os.cc, TEMPLATE-INST/Array-tc.cc,
+	TEMPLATE-INST/Array-sym.cc: Delete Emacs local-variable settings.
+
+2010-01-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xpow.cc (xpow, elem_xpow): Don't do redundant real->complex
+	conversions.
+
+2010-01-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc: Substitute OCTAVE_QUIT -> octave_quit ().
+	* input.cc: Ditto.
+	* ls-mat-ascii.cc: Ditto.
+	* oct-stream.cc: Ditto.
+	* ov-base-int.cc: Ditto.
+	* ov-base-sparse.cc: Ditto.
+	* ov-bool-sparse.cc: Ditto.
+	* ov-cell.cc: Ditto.
+	* ov-cx-sparse.cc: Ditto.
+	* ov-flt-re-mat.cc: Ditto.
+	* ov-re-mat.cc: Ditto.
+	* ov-re-sparse.cc: Ditto.
+	* pr-output.cc: Ditto.
+	* pt-eval.cc: Ditto.
+	* pt-mat.cc: Ditto.
+	* sighandlers.cc: Ditto.
+	* sparse-xdiv.cc: Ditto.
+	* sparse-xpow.cc: Ditto.
+	* toplev.cc: Ditto.
+	* utils.cc: Ditto.
+	* xdiv.cc: Ditto.
+	* xpow.cc: Ditto.
+
+2010-01-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/bsxfun.cc: New tests.
+
+2010-01-20  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in (string_array_property): New property.
+	(axes::properties): Use it here for the linestyleorder property.
+	Remove the markerorder property.
+	* genprops.awk: Emit string_array_property
+
+2010-01-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/strfind.cc: Optimize searching for 1 or 2 characters.
+
+2010-01-18  John W. Eaton  <jwe@octave.org>
+
+	* oct-parse.yy (fcn_end): Allow EOF as end of function if
+	reading from eval string.
+	(eval_string): Protect and set reading_fcn_file,
+	reading_script_file, and reading_classdef_file.
+
+2010-01-18  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xpow.cc (xpow (const NDArray&, double), xpow (const FloatNDArray&,
+	float)): Optimize also the x.^3 case.
+
+2010-01-18  David Grundberg  <davidg@cs.umu.se>
+
+	* mex.cc (mexPrintf): Change signature.
+	* mexproto.h (mexPrintf): Ditto.
+
+2010-01-18  David Grundberg  <davidg@cs.umu.se>
+
+	* mexproto.h (mxSetDimensions): Change signature.
+	* mex.cc (mxSetDimensions): Ditto.
+
+2010-01-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellslices): Support dim argument, make
+	consistent with rest of functions.
+
+2010-01-17  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* ov-cell.cc (Fstruct2cell): Add example, add test.
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun, Fnum2cell), ov-struct.cc
+	(Fisstruct): Fix docstring.
+	* DLD-FUNCTIONS/cellfun.cc (Fcellslices, Fisfield, Ffieldnames,
+	Frmfield): Add test.
+	* ov-struct.cc (Fcell2struct): Fix docstring, add test.
+
+2010-01-16  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in (line::properties, surface::properties,
+	patch::properties): Allow the use of a "@" marker.
+	(axes::properties): Add markerorder properties to set the
+	order of the marker styles for the "@" marker.
+
+2010-01-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-mat.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT,
+	DO_SINGLE_TYPE_CONCAT_NO_MUTATE): Remove macros.
+	(single_type_concat, do_single_type_concat,
+	do_single_type_concat_no_mutate): New template funcs.
+	(tree_matrix::rvalue1): Call them here.
+
+2010-01-14  Jaroslav Hajek  <highegg@gmail.com>
+
+	* strfns.cc (do_strcmp_fun,
+	strcmp_array_op, strcmp_str_op,
+	strcmpi_array_op, strcmpi_str_op,
+	strncmp_array_op, strncmp_str_op,
+	strncmpi_array_op, strncmpi_str_op): New functions.
+	(Fstrcmp, Fstrncmp): Reimplement using do_strcmp_fun.
+	(Fstrcmpi, Fstrncmpi): New defuns.
+
+2010-01-14  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/bsxfun.cc (maybe_fill_table): register relational
+	handlers for char arrays.
+
+2010-01-14  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-class.cc (octave_class::numel (const octave_value_list&)): Don't
+	attempt to query overloaded size.
+
+2010-01-13  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn.h (octave_function (const std::string&, const std::string&)):
+	Explicitly initialize all data members.
+
+	* ov-builtin.h (octave_builtin::octave_builtin):
+	Explicitly initialize base class object and data member.
+
+2010-01-13  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (read_indexed_images):
+	No need to explicitly call chop_trailing_singletons now.
+
+2010-01-13  John W. Eaton  <jwe@octave.org>
+
+	* oct-obj.cc (octave_value_list::any_cell): Avoid assignment in
+	condition of if statement.
+
+2010-01-13  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/lu.cc: Avoid test failures if HAVE_QRUPDATE_LUU is
+	not defined.
+
+2010-01-12  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in (patch::properties): Add "flat" value to
+	markeredgecolor and  markerfacecolor properties.
+
+2010-01-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (builtin_type_t): New enum constants: btyp_cell,
+	btyp_struct and btyp_func_handle.
+	(btyp_isinteger, btyp_isfloat, btyp_isarray): New funcs.
+	(btyp_class_name): New array.
+	(get_builtin_classes): New func.
+	* ov-cell.h (octave_cell::builtin_type): New virtual override.
+	* ov-struct.h (octave_struct::builtin_type): New virtual override.
+	* ov-fcn-handle.h (octave_fcn_handle::builtin_type): New virtual override.
+	* symtab.cc (get_dispatch_type): Rewrite. Add overload.
+	* symtab.h: Update decls.
+	* ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): Rewrite.
+	(get_builtin_classes): Remove.
+
+2010-01-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-obj.cc (octave_value_list::any_cell): New method.
+	* oct-obj.h: Declare it.
+	* utils.cc (do_simple_cellfun): New overloaded function.
+	* utils.h: Declare it.
+	* DLD-FUNCTIONS/strfind.cc (Fstrfind): Call it here.
+	(Fstrrep): Also here.
+
+2010-01-11  Rik  <octave@nomad.inbox5.com>
+
+	* Makefile.am: Update DOCSTRINGS rules to avoid
+	simple_move_if_change_rule and allow Make to update timestamps.
+
+2010-01-11  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/urlwrite.cc (curl_handle::lasterror):
+	Avoid using errno as a local variable name.
+
+2010-01-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lu.cc (Fluupdate): Add tests for LU updating.
+
+2010-01-11  Tatsuro MATSUOKA  <tmacchant@yahoo.co.jp>
+
+	* Makefile.am (OCTINTERP_LINK_DEPS): Include FT2_LDFLAGS and
+	FT2_LIBS in the list.
+
+2010-01-09  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/lookup.cc (stri_comp_lt, stri_comp_gt):
+	Comment out unused functions.
+
+	* oct-stream.cc (BEGIN_S_CONVERSION): Don't declare local tmp
+	variable twice.
+
+	* gl-render.cc (opengl_renderer::draw_image): Avoid shadow
+	declaration warning from GCC.
+
+	* DLD-FUNCTIONS/fltk_backend.cc (base_graphics_backend):
+	Avoid unused parameter warning from GCC.
+	* dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Likewise.
+
+	* data.cc (get_sort_mode_option): Avoid uninitialized variable
+	warning from GCC.
+
+2010-01-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-obj.h (octave_value_list::operator () const,
+	octave_value_list::elem const): Return const octave_value&.
+	* ov.cc (octave_value::function_value,
+	octave_value::user_function_value, octave_value::user_script_value,
+	octave_value::user_code_value, octave_value::fcn_handle_value,
+	octave_value::fcn_inline_value): Declare as const.
+	* ov.h: Likewise.
+	* ov-base.h (octave_value::function_value const): Remove overload.
+	* ov-usr-fcn.h (octave_user_function::function_value const): Likewise.
+	* ov-builtin.h (octave_builtin::function_value const): Likewise.
+	* ov-builtin.h (octave_builtin::function_value const): Likewise.
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Take a non-const copy prior to
+	calling non-const functions.
+
+
+2010-01-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/strfind.cc (qs_replace): New function.
+	(Fstrrep): Use it here. Allow S to be a cellstr.
+
+2010-01-07  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (cputime): Eliminate Windows-specific code.
+
+2010-01-07  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (get_global_value): Fix function name in error message.
+	(get_top_level_value, set_top_level_value): New functions.
+	* variables.h (get_top_level_value, set_top_level_value):
+	Provide decls.
+
+	* symtab.h (symbol_table::top_level_varref,
+	symbol_table::top_level_varval): New static functions.
+
+2010-01-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* utils.cc (octave_sleep (double)): Add OCTAVE_QUIT.
+
+2010-01-06  Jaroslav Hajek  <highegg@gmail.com>
+
+	* unwind_protect.h, unwind_protect.cc (unwind_protect): Rewrite.
+	Remove obsolete macros. Use a simple linked list.
+
+	* debug.cc (Fdbwhere): Update to new unwind_protect style.
+	* dynamic-ld.cc (octave_dynamic_loader::do_load_oct,
+	  octave_dynamic_loader::do_load_mex): Ditto.
+	* error.cc (Flasterror, Flasterr, error_2, warning_1): Ditto.
+	* graphics.cc (base_graphics_object::remove_all_listeners,
+	  axes::update_axis_limits, gh_manager::do_execute_callback,
+	  Fdrawnow): Ditto.
+	* help.cc (raw_help_from_file): Ditto.
+	* input.cc (do_keyboard, Fkeyboard, get_debug_input): Ditto.
+	* load-path.cc (load_path::do_set, execute_pkg_add_or_del,
+	* ls-mat4.cc (save_mat_binary_data): Ditto.
+	* ls-mat5.cc (read_mat5_binary_element): Ditto.
+	* mex.cc (call_mex, mexGetVariable): Ditto.
+	* oct-hist.cc (do_edit_history, do_run_history): Ditto.
+	* octave.cc (execute_startup_files, execute_eval_option_code,
+	  execute_command_line_file): Ditto.
+	* ov-builtin.cc (octave_builtin::do_multi_index_op): Ditto.
+	* ov-class.cc (octave_class::subsasgn, octave_class::print_raw):
+	Ditto.
+	* ov-fcn-handle.cc (octave_fcn_handle::load_ascii,
+	octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5): Ditto.
+	* ov-list.cc (octave_list::print_raw): Ditto.
+	* ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Ditto.
+	* ov-struct.cc (octave_struct::print_raw): Ditto.
+	* ov-usr-fcn.cc (octave_user_script::do_multi_index_op,
+	  octave_user_function::do_multi_index_op): Ditto.
+	* pager.cc (flush_octave_stdout): Ditto.
+	* pr-output.cc (Frats): Ditto.
+	* pt-arg-list.cc (tree_argument_list::convert_to_const_vector): Ditto.
+
+	* pt-eval.cc (tree_evaluator::visit_simple_for_command,
+	tree_evaluator::visit_complex_for_command,
+	tree_evaluator::visit_while_command,
+	tree_evaluator::visit_do_until_command): Update to new unwind_protect
+	style.
+	(do_catch_code): Remove.
+	(tree_evaluator::visit_try_catch_command): Simplify. Don't register
+	catch code for unwind_protect.
+	(tree_evaluator::do_unwind_protect_cleanup_code): Make a
+	tree_evaluator method. Update to new unwind_protect style.
+	(tree_evaluator::visit_unwind_protect_command): Use explicit try/catch
+	handling rather than inserting unsafe code into unwind_protect.
+
+	* pt-eval.h (tree_evaluator::do_unwind_protect_cleanup_code): New decl.
+	* toplev.cc (main_loop): Update to new unwind_protect style.
+	  (run_command_and_return_output): Ditto.
+	* utils.cc (Fisindex): Ditto.
+	* variables.cc (generate_struct_completions, safe_symbol_lookup,
+	do_who): Ditto.
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Ditto.
+	* DLD-FUNCTIONS/daspk.cc (Fdaspk): Ditto.
+	* DLD-FUNCTIONS/dasrt.cc (Fdasrt): Ditto.
+	* DLD-FUNCTIONS/dassl.cc (Fdassl): Ditto.
+	* DLD-FUNCTIONS/eigs.cc (Feigs): Ditto.
+	* DLD-FUNCTIONS/lsode.cc (Flsode): Ditto.
+	* DLD-FUNCTIONS/quad.cc (Fquad): Ditto.
+	* DLD-FUNCTIONS/rand.cc (Frandn, Frande, Frandg, Frandp): Ditto.
+	* DLD-FUNCTIONS/typecast.cc (get_data_and_bytesize, Ftypecast): Ditto.
+	* DLD-FUNCTIONS/urlwrite.cc (Furlwrite, mput_directory,
+	getallfiles, F__ftp_mget__): Ditto.
+
+2010-01-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Cell.cc (Cell::cellstr_value): New method.
+	* Cell.h (Cell::cellstr_value): Declare it.
+
+	* ov-cell.h (octave_cell::cellstr_cache): Declare as autopointer.
+	(octave_cell::clear_cellstr_cache): Move here.
+	* ov-cell.cc (octave_cell::is_cellstr): Only allocate the pointer, but
+	don't actually create strings.
+	(octave_cell::cellstr_value): Use cached test, call
+	Cell::cellstr_value.
+	(octave_cell::make_cellstr_cache): Remove.
+
+2010-01-05  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (AM_CPPFLAGS): Include -I../libgnu in the list.
+
+2010-01-04  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* graphics.cc (graphics_object::set (const Octave_map&)): New function.
+	(graphics_object::set (const Array<std::string>&, const Cell&,
+	octave_idx_type)):  New function.
+	(graphics_object::set_value_or_default (const caseless_str&,
+	const octave_value&)): New function.
+	(graphics_object::set (const octave_value_list&)):
+	Call set_value_or_default to set property values.
+	(Fset): Handle struct and cell array arguments.
+	New tests.
+	* graphics.h.in (graphics_objects::set): Provide decls.
+
+2010-01-04  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/strfind.cc (qs_search): Optionally discard overlaps.
+	Return result as Array<octave_idx_type>.
+	(Fstrfind): Use octave_value (Array<octave_idx_type>) constructor.
+	(Fstrrep): New function.
+
+2010-01-04  John W. Eaton  <jwe@octave.org>
+
+	* lex.ll (can_be_command): New function.
+	(handle_identifier): Use it.
+
+2010-01-04  Marco Atzeri  <marco_atzeri@yahoo.it>
+
+	* Makefile.am (install-oct): Write $(DESTDIR)$(...), not
+	$(DESTDIR).$(...).
+
+2010-01-02  Ben Abbott  <bpabbott@mac.com>
+
+	* mappers.cc: Change test tolerance from 1e-16 to eps.
+
+2009-12-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (scalar_query_helper): Remove.
+	(can_extract): New overloaded helper function.
+	(scalar_col_helper_nda): Rewrite using can_extract and
+	octave_value_extract. Instantiate for integer types.
+	(make_col_helper): Support integer types.
+
+
+2009-12-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Fix tests.
+
+2009-12-28  Thomas Treichl  <Thomas.Treichl@gmx.net>
+
+	* DLD-FUNCTIONS/md5sum.cc, DLD-FUNCTIONS/lookup.cc: Include
+	config.h before another header file.
+
+2009-12-27  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (xgl2ps.c): New file.
+	(EXTRA_DIST): Include gl2ps.c in the list.
+	(DIST_SRC): Include xgl2ps.c in the list instead of gl2ps.c.
+
+2009-12-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (decode_subscripts): Move to utils.cc.
+	* utils.cc (decode_subscripts): New func.
+	* utils.h: Declare it.
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Optimize the
+	`cellfun (@subsref, args, {subs}, "uniformoutput", true)' case.
+
+2009-12-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* gripes.cc (gripe_nonbraced_cs_list_assignment): New function.
+	* gripes.h: Declare it.
+	* ov-cell.cc (octave_cell::subsasgn): Use it here.
+	* ov-struct.cc (octave_struct::subsasgn): Also here.
+	* pt-idx.cc (tree_simple_assignment::rvalue1): And here. Check for
+	single lhs value.
+
+2009-12-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-str-mat.h (octave_char_matrix_str::is_matrix_type): Remove
+	override.
+	* data.cc (Fismatrix): Update test.
+
+2009-12-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/strfind.cc: New source.
+	* DLD-FUNCTIONS/module-files: Add it here.
+
+2009-12-23  John W. Eaton  <jwe@octave.org>
+
+	* lex.ll: Use %top block to include config.h.
+
+2009-12-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/max.cc (do_cumminmax_body): Support also btyp_bool.
+
+2009-12-22  Rob Mahurin  <octave@tertiarysource.net>
+
+	* find-defun-files.sh: Use SED and EGREP as returned by configure.
+
+2009-12-20  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_sindow::set_name): New method.
+	(figure_manager::set_name, figure_manage::do_set_name): New methods.
+	(fltk_backend::property_changed): Handle change of figure title string.
+
+2009-12-19  Rik  <octave@nomad.inbox5.com>
+
+	* Makefile.am: Eliminate TOPDIR variable in favor of built-in automake
+	variables of top_builddir and top_srcdir.
+
+2009-12-18  David Grundberg  <davidg@cs.umu.se>
+
+	* ov-usr-fcn.cc (octave_user_script::do_multi_index_op):
+	Print script filename in script indexing errors.
+	(octave_user_script::subsref): Ditto.
+
+2009-12-18  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (get_debug_input): Don't attempt to get user input
+	unless stdin is a tty.  Force interactive input mode when
+	reading debugging input.
+	(octave_gets): Bypass readline if get_input_from_eval_string is true.
+
+	* input.cc, input.h (stdin_is_tty): New variable.
+	* octave.cc (octave_main): Set it to true if stdin is not a tty.
+
+2009-12-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/max.cc (do_minmax_red_op<boolNDArray>): New
+	specialization.
+	(do_minmax_body): Handle btyp_bool.
+
+2009-12-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.cc (symbol_table::cleanup): Call clear_variables rather than
+	clear_all on the top and global scopes.
+
+2009-12-16  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (F__init_fltk__):
+	Add __remove_fltk__ to the list of atexit functions.
+	(F__remove_fltk__): Wait fltk_maxtime instead of 10 seconds.
+
+2009-12-15  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (do_goto_frame_relative): Stop searching at top
+	stack frame even though it is not a function.
+
+2009-12-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Preserve original nargout. Call
+	functions with this value. Use nargout1 to possibly accumulate extra
+	outputs, as long as they are defined.
+
+2009-12-14  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-range.cc (octave_range::do_index_op): Defer single subscript to
+	new Range methods.
+
+2009-12-14  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.cc (symbol_table::cleanup): New static method.
+	* symtab.h: Declare it.
+	* toplev.cc (clean_up_and_exit): Call it here.
+
+2009-12-12  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::toggle_grid,
+	plot_window::axis_auto): Modify the axes of the correct figure.
+
+2009-12-12  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::plot_window):
+	Handle case where window is created but not visible. Cache
+	window label.
+	(figure_manager::toggle_window_visibility,
+	(figure_manager::do_toggle_window_visibility): New methods.
+	(fltk_backend::property_change): Handle figure visibility change.
+
+2009-12-11  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (base_properties::all_dynamic_properties):
+	No longer static.
+	(base_properties::set (const caseless_str&, const octave_value&)):
+	Only provide decl, not definition.
+	(base_properties::set (const caseless_str&, const std::string&,
+	const octave_value&)): Delete.
+	(base_properties::dynamic_properties): Rename from
+	all_dynamic_properties.  No longer static.  Now protected.
+	(base_properties::has_dynamic_property,
+	base_properties::dynamic_property_names,
+	base_properties::set_dynamic): Omit class name argument.
+	* graphics.cc (base_properties::all_dynamic_properties):
+	Delete obsolete definition.
+	(base_properties::dynamic_property_names): Now const.
+	Omit class name argument.  Simply return dynamic_properties set.
+	(base_properties::has_dynamic_property): Omit class name argument.
+	Simply return dynamic_properties set.  Don't pass class name to
+	dynamic_property_names function.
+	(base_properties::set_dynamic): Omit class name argument.
+	Dynamic_properties is no longer a map.
+
+	* genprops.awk: Omit class name from arguments of generated
+	base_properties::all_property_names and base_properties::set
+	functions.  Don't pass class name to base_properties::set in
+	generated derived class set functions.
+
+2009-12-11  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (DOCSTRINGS): Use $(cp_update_rule) instead of
+	cp -a --update.
+
+2009-12-10  Rik  <octave@nomad.inbox5.com>
+
+	* Makefile.am: distclean symbolic links for OCT_FILES
+
+2009-12-10  Rik  <octave@nomad.inbox5.com>
+
+	* Makefile.am: Copy DOCSTRINGS from srcdir to builddir if it does not
+	exist.  Enables VPATH builds.
+
+2009-12-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-dld-fcn.h (octave_dld_function::get_shlib): New method.
+	* ov-mex-fcn.h (octave_mex_function::get_shlib): New method.
+	* defun.cc (get_current_shlib): New function.
+	* defun-int.h: Declare it.
+	(octave_auto_shlib): New class.
+
+2009-12-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.cc (out_of_date_check): Try also autoloads.
+
+2009-12-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.h (symbol_table::fcn_info::clear_autoload_function):
+	New method.
+	(symbol_table::clear_dld_function): New method.
+	* dynamic-ld.cc (octave_shlib_list::do_remove): Switch order of stmts.
+	(octave_mex_file_list::do_remove): Likewise.
+	(do_clear_function): Call symbol_table::clear_dld_function.
+	(octave_dynamic_loader::do_load_oct): Don't use
+	octave_shlib::mark_relative.
+	(octave_dynamic_loader::do_load_mex): Ditto.
+
+2009-12-10  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (fopen_mode_to_ios_mode): Allow "+" at the end of
+	modestrings like "rb+".
+
+2009-12-10  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (BEGIN_C_CONVERSION, BEGIN_S_CONVERSION):
+	Store characters directly in appropriately sized std::string object.
+	(FINISH_CHARACTER_CONVERSION): Do store ASCII NUL values.
+
+2009-12-09  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fltk_backend.cc: Style fixes.
+
+2009-12-09  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::print): Print immediatly.
+
+2009-12-09  John W. Eaton  <jwe@octave.org>
+
+	* gl2ps-renderer.cc (draw_pixels): New template function.
+	(opengl_renderer::draw_pixels): Use it.
+
+2009-12-09  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* gl2ps.c, gl2ps.h: Use upstream version gl2ps-1.3.5-svn-20091202.
+
+	* gl-render.cc (opengl_renderer::draw_pixels): New function.
+	(opengl_renderer::draw_image): Correctly handle images with width
+	or height of 1.  Use draw_pixels.
+	* gl-render.h (opengl_renderer::draw_pixels): Provide decl.
+
+	* gl2ps-renderer.cc (glps_renderer::draw_pixels): New function.
+	* gl2ps-renderer.h (glps_renderer::draw_pixels): Provide decl.
+
+2009-12-09  John W. Eaton  <jwe@octave.org>
+
+	* load-save.cc: Call nstrftime instead of my_strftime.
+
+2009-12-09  John W. Eaton  <jwe@octave.org>
+
+	* load-save.cc: Include strftime.h.
+	(write_header): Call my_strftime instead of strftime.
+
+	* Makefile.am (AM_CPPFLAGS): Add -I$(top_srcdir)/libgnu to the list.
+	(OCTAVE_LIBS, OCTINTERP_LINK_DEPS, OCT_LINK_DEPS):
+	Add ../libgnu/libgnu.la to the list.
+
+2009-12-09  Rik  <octave@nomad.inbox5.com>
+
+	* Makefile.am: Distribute DOCSTRINGS in tar.gz file
+
+2009-12-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* dirfns.cc (Ffnmatch): Simplify.
+
+2009-12-08  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* ov-ch-mat.cc: Add missing #include.
+	* oct-stream.cc (do_read): Simplify.
+	* gl-render.h: Undef min and max after #including windows.h.
+
+2009-12-08  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (gendoc.cc): Don't pass $(srcdidr) to mkgendoc.
+
+2009-12-07  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc,
+	OPERATORS/op-b-sbm.cc, OPERATORS/op-bm-b.cc,
+	OPERATORS/op-bm-bm.cc, OPERATORS/op-bm-sbm.cc,
+	OPERATORS/op-cdm-cdm.cc, OPERATORS/op-cdm-cm.cc,
+	OPERATORS/op-cdm-cs.cc, OPERATORS/op-cdm-dm.cc,
+	OPERATORS/op-cdm-m.cc, OPERATORS/op-cdm-s.cc,
+	OPERATORS/op-cell.cc, OPERATORS/op-chm.cc,
+	OPERATORS/op-class.cc, OPERATORS/op-cm-cdm.cc,
+	OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc,
+	OPERATORS/op-cm-dm.cc, OPERATORS/op-cm-m.cc,
+	OPERATORS/op-cm-pm.cc, OPERATORS/op-cm-s.cc,
+	OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc,
+	OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc,
+	OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc,
+	OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc,
+	OPERATORS/op-dm-cdm.cc, OPERATORS/op-dm-cm.cc,
+	OPERATORS/op-dm-cs.cc, OPERATORS/op-dm-dm.cc,
+	OPERATORS/op-dm-m.cc, OPERATORS/op-dm-s.cc,
+	OPERATORS/op-dm-scm.cc, OPERATORS/op-dm-sm.cc,
+	OPERATORS/op-dm-template.cc, OPERATORS/op-dms-template.cc,
+	OPERATORS/op-double-conv.cc, OPERATORS/op-fcdm-fcdm.cc,
+	OPERATORS/op-fcdm-fcm.cc, OPERATORS/op-fcdm-fcs.cc,
+	OPERATORS/op-fcdm-fdm.cc, OPERATORS/op-fcdm-fm.cc,
+	OPERATORS/op-fcdm-fs.cc, OPERATORS/op-fcm-fcdm.cc,
+	OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc,
+	OPERATORS/op-fcm-fdm.cc, OPERATORS/op-fcm-fm.cc,
+	OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcm-pm.cc,
+	OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc,
+	OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc,
+	OPERATORS/op-fdm-fcdm.cc, OPERATORS/op-fdm-fcm.cc,
+	OPERATORS/op-fdm-fcs.cc, OPERATORS/op-fdm-fdm.cc,
+	OPERATORS/op-fdm-fm.cc, OPERATORS/op-fdm-fs.cc,
+	OPERATORS/op-float-conv.cc, OPERATORS/op-fm-fcdm.cc,
+	OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc,
+	OPERATORS/op-fm-fdm.cc, OPERATORS/op-fm-fm.cc,
+	OPERATORS/op-fm-fs.cc, OPERATORS/op-fm-pm.cc,
+	OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc,
+	OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc,
+	OPERATORS/op-i16-i16.cc, OPERATORS/op-i32-i32.cc,
+	OPERATORS/op-i64-i64.cc, OPERATORS/op-i8-i8.cc,
+	OPERATORS/op-int-concat.cc, OPERATORS/op-int-conv.cc,
+	OPERATORS/op-list.cc, OPERATORS/op-m-cdm.cc,
+	OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc,
+	OPERATORS/op-m-dm.cc, OPERATORS/op-m-m.cc, OPERATORS/op-m-pm.cc,
+	OPERATORS/op-m-s.cc, OPERATORS/op-m-scm.cc,
+	OPERATORS/op-m-sm.cc, OPERATORS/op-pm-cm.cc,
+	OPERATORS/op-pm-fcm.cc, OPERATORS/op-pm-fm.cc,
+	OPERATORS/op-pm-m.cc, OPERATORS/op-pm-pm.cc,
+	OPERATORS/op-pm-scm.cc, OPERATORS/op-pm-sm.cc,
+	OPERATORS/op-pm-template.cc, OPERATORS/op-range.cc,
+	OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, OPERATORS/op-s-m.cc,
+	OPERATORS/op-s-s.cc, OPERATORS/op-s-scm.cc,
+	OPERATORS/op-s-sm.cc, OPERATORS/op-sbm-b.cc,
+	OPERATORS/op-sbm-bm.cc, OPERATORS/op-sbm-sbm.cc,
+	OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc,
+	OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc,
+	OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc,
+	OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc,
+	OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc,
+	OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc,
+	OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc,
+	OPERATORS/op-str-str.cc, OPERATORS/op-struct.cc,
+	OPERATORS/op-ui16-ui16.cc, OPERATORS/op-ui32-ui32.cc,
+	OPERATORS/op-ui64-ui64.cc, OPERATORS/op-ui8-ui8.cc:
+	Delete Emacs local-variable settings.
+
+2009-12-07  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-pm-sm.cc, OPERATORS/op-pm-scm.cc,
+	OPERATORS/op-dm-sm.cc, OPERATORS/op-dm-scm.cc,
+	OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fcm.cc,
+	OPERATORS/op-fs-fcs.cc, OPERATORS/op-fm-fm.cc,
+	OPERATORS/op-fm-fcs.cc, OPERATORS/op-fm-fcm.cc,
+	OPERATORS/op-fcs-fs.cc, OPERATORS/op-fcs-fm.cc,
+	OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcm-fs.cc,
+	OPERATORS/op-fcm-fm.cc, OPERATORS/op-fm-fs.cc,
+	OPERATORS/op-fcm-fcm.cc, OPERATORS/op-class.cc,
+	OPERATORS/op-fcm-fcs.cc, OPERATORS/op-str-str.cc,
+	OPERATORS/op-str-s.cc, OPERATORS/op-str-m.cc,
+	OPERATORS/op-struct.cc, OPERATORS/op-sm-scm.cc,
+	OPERATORS/op-sm-s.cc, OPERATORS/op-sm-sm.cc,
+	OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-cm.cc,
+	OPERATORS/op-scm-sm.cc, OPERATORS/op-scm-scm.cc,
+	OPERATORS/op-scm-s.cc, OPERATORS/op-scm-m.cc,
+	OPERATORS/op-scm-cs.cc, OPERATORS/op-sm-m.cc,
+	OPERATORS/op-sbm-sbm.cc, OPERATORS/op-scm-cm.cc,
+	OPERATORS/op-sbm-bm.cc, OPERATORS/op-s-sm.cc,
+	OPERATORS/op-s-scm.cc, OPERATORS/op-sbm-b.cc,
+	OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc,
+	OPERATORS/op-m-cm.cc, OPERATORS/op-int.h,
+	OPERATORS/op-int-conv.cc, OPERATORS/op-int-concat.cc,
+	OPERATORS/op-cs-sm.cc, OPERATORS/op-cs-scm.cc,
+	OPERATORS/op-cm-sm.cc, OPERATORS/op-cs-cs.cc,
+	OPERATORS/op-cm-m.cc, OPERATORS/op-cm-scm.cc,
+	OPERATORS/op-cm-cm.cc, OPERATORS/op-chm.cc,
+	OPERATORS/op-cell.cc, OPERATORS/op-bm-sbm.cc,
+	OPERATORS/op-bm-bm.cc, OPERATORS/op-bm-b.cc,
+	OPERATORS/op-b-sbm.cc, OPERATORS/op-fcs-fcs.cc:
+	Untabify.
+
+2009-12-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Makefile.am: Build OPT_HANDLERS before DEF_FILES.
+
+2009-12-06  Rik  <rik@nomad.inbox5.com>
+
+	* Makefile.am: Distribute DOCSTRINGS so that documentation will
+	not require rebuild after merely untarring a distribution.
+
+2009-12-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc (Flookup): Document complexity.
+
+2009-12-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): Rewrite.
+	(Flookup): Simplify string part. Use Array<std::string>::lookup.
+
+2009-12-04  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/urlwrite.cc (curl_handle::init): Always use
+	CURLOPT_USERPWD instead of CURLOPT_USER and CURLOPT_PASSWD.
+
+2009-12-04  John W. Eaton  <jwe@octave.org>
+
+	* version.h.in (OCTAVE_API_VERSION_NUMBER): New macro.
+	* Makefile.am (version.h): Substitute OCTAVE_API_VERSION_NUMBER.
+
+2009-12-04  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (mkdefs): New arguments, srcdir and file.
+	Generate output here.  (.cc.df): Not here.
+
+2009-12-04  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (BUILT_SOURCES): Include graphics-props.cc in the
+	list.
+
+2009-12-04  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (liboctinterp_la_SOURCES): Remove $(OPT_HANDLERS)
+	from the list.
+
+2009-12-03  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (CLEANFILES): Include DLD-FUNCTIONS/PKG_ADD,
+	doc-files, gendoc.cc, gendoc$(BUILD_EXEEXT), graphics-props.cc,
+	oct-parse.output, $(BUILT_NODISTFILES) in the list.  Remove
+	$(BUILT_SOURCES) from the list.  (MAINTAINERCLEANFILES): New
+	variable.  (BUILT_DISTFILES): Remove oct-parse.cc and lex.cc
+	from the list.  (BUILT_NODISTFILES): Include defaults.h,
+	graphics.h, oct-conf.h, oct-errno.cc, ops.cc, mxarray.h, and
+	version.h in the list.  Remove $(OPT_INC) from the list.
+	(BUILT_SOURCES): Include mxarray.h and version.h in the list.
+	(EXTRA_DIST): Include version.h.in in the list.  (.cc.df): Don't
+	silence rules.  Omit $(srcdir) from XDEFUN_FILE_NAME.
+	($(DEF_FILES)): Depend on mkdefs and Makefile.  (mxarray.h,
+	version.h): New rules.  (DLD-FUNCTIONS/PKG_ADD): Don't silence
+	rules.  (builtins.cc, DOCSTRINGS, gendoc.cc, ops.cc,
+	$(OPT_HANDLERS)) oct-errno.cc, oct-gperf.h): Don't silence
+	rules.  (doc-files, defaults.h, oct-conf.h): Don't silence
+	rules.
+
+	* mxarray.h.in, version.h.in: Use % to delimit substitutions,
+	not @.
+
+	* mkbuiltins: Operate on a list of files passed as arguments.
+
+	* genprops.awk: Write either graphics.h or graphics-props.cc to
+	stdout instead of graphics.h simultaneously with
+	graphics-props.cc ot a file.  * Makefile.am (graphics.h,
+	graphics-props.cc): Split into two separate rules.
+
+	* find-defun-files.sh: Omit directory part from .df file names.
+	Operate on .ll and .yy files instead of generated .cc files.
+
+2009-12-02  Rik  <rik@nomad.inbox5.com>
+
+	* DLD-FUNCTIONS/urlwrite.cc: Correctly compile code even when
+	libcurl is not present according to configure.
+
+2009-12-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-bool-mat.h (octave_bool_matrix::octave_bool_matrix (const
+	boolNDArray&, const idx_vector&)): New constructor.
+	* ov-re-mat.h (octave_bool_matrix::octave_bool_matrix (const
+	NDArray&, const idx_vector&)): Simplify.
+	* ov.cc (octave_value::octave_value (const idx_vector&)): Allow
+	the mask case.
+	* DLD-FUNCTIONS/find.cc (Ffind): Explicitly call unmask.
+
+2009-11-30  Kacper Kowalik  <xarthisius.kk@gmail.com>
+
+	* oct-hdf5.h: Drop force the use of the v1.6 API * ls-hdf5.cc,
+	ov-base-int.cc, ov-bool-mat.cc, ov-bool-sparse.cc, ov-bool.cc,
+	ov-cell.cc, ov-class.cc, ov-complex.cc, ov-cx-mat.cc,
+	ov-cx-sparse.cc, ov-fcn-handle.cc, ov-fcn-inline.cc,
+	ov-float.cc, ov-flt-complex.cc, ov-flt-cx-mat.cc,
+	ov-flt-re-mat.cc, ov-list.cc, ov-range.cc, ov-re-mat.cc,
+	ov-re-sparse.cc, ov-scalar.cc, ov-str-mat.cc, ov-struct.cc:
+	Allow v1.8 API versions of hdf5 functions.
+
+2009-11-30  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fft2.cc (Fifft2): Docstring fix.
+
+2009-11-29  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-unop.cc (tree_prefix_expression::rvalue1): Try to use
+	octave_value::do_non_const_unary_op.
+
+2009-11-29  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/urlwrite.cc (curl_handle::init): Use
+	CURLOPT_USERPWD if libcurl ver < 7.19.0.
+
+2009-11-28  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* gl-render.cc (opengl_renderer::draw_image): Handle indexed
+	images.
+
+2009-11-28  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* gl-render.h (opengl_renderer::draw): Draw children from end of
+	list to preserve correct stacking order (first child should be
+	on top).
+
+	* graphics.cc (maybe_set_children): Store sorted child lists.
+
+2009-11-27  Kacper Kowalik  <xarthisius.kk@gmail.com>
+
+	* ls-hdf5.cc (have_h5giterate_bug): Drop this group iteration
+	flag for buggy pre 1.2.2 versions of hdf5.  * ov-base-int.cc
+	(octave_base_int_matrix<T>::load_hdf5)
+	octave_base_int_scalar<T>::load_hdf5), ov-base-int.h
+	(octave_base_int_matrix<T>::load_hdf5,
+	octave_base_int_scalar<T>::load_hdf5), ov-base.cc
+	(octave_base_value::load_hdf5), ov-base.h
+	(octave_base_value::load_hdf5), ov-bool-mat.cc
+	(octave_bool_matrix::load_hdf5), ov-bool-mat.h
+	(octave_bool_matrix::load_hdf5), ov-bool-sparse.cc
+	(octave_sparse_bool_matrix::load_hdf5), ov-bool-sparse.h
+	(octave_sparse_bool_matrix::load_hdf5), ov-bool.cc
+	(octave_bool::load_hdf5), ov-bool.h (octave_bool::load_hdf5),
+	ov-cell.cc (octave_cell::load_hdf5), ov-cell.h
+	(octave_cell::load_hdf5), ov-class.cc (octave_class::load_hdf5),
+	ov-class.h (octave_class::load_hdf5), ov-complex.cc
+	(octave_complex::load_hdf5), ov-complex.h
+	(octave_complex::load_hdf5), ov-cx-mat.cc
+	(octave_complex_matrix::load_hdf5), ov-cx-mat.h
+	(octave_complex_matrix::load_hdf5), ov-cx-sparse.cc
+	(octave_sparse_complex_matrix::load_hdf5), ov-cx-sparse.h
+	(octave_sparse_complex_matrix::load_hdf5), ov-fcn-handle.cc
+	(octave_fcn_handle::load_hdf5), ov-fcn-handle.h
+	(octave_fcn_handle::load_hdf5), ov-fcn-inline.cc
+	(octave_fcn_inline::load_hdf5), ov-fcn-inline.h
+	(octave_fcn_inline::load_hdf5), ov-float.cc
+	(octave_float_scalar::load_hdf5), ov-float.h
+	(octave_float_scalar::load_hdf5), ov-flt-complex.cc
+	(octave_float_complex::load_hdf5), ov-flt-complex.h
+	(octave_float_complex::load_hdf5), ov-flt-cx-mat.cc
+	(octave_float_complex_matrix::load_hdf5), ov-flt-cx-mat.h
+	(octave_float_complex_matrix::load_hdf5), ov-flt-re-mat.cc
+	(octave_float_matrix::load_hdf5), ov-flt-re-mat.h
+	(octave_float_matrix::load_hdf5), ov-list.cc
+	(octave_list::load_hdf5), ov-list.h (octave_list::load_hdf5),
+	ov-range.cc (octave_range::load_hdf5), ov-range.h
+	(octave_range::load_hdf5), ov-re-mat.cc
+	(octave_matrix::load_hdf5), ov-re-mat.h
+	(octave_matrix::load_hdf5), ov-re-sparse.cc
+	(octave_sparse_matrix::load_hdf5), ov-re-sparse.h
+	(octave_sparse_matrix::load_hdf5), ov-scalar.cc
+	(octave_scalar::load_hdf5), ov-scalar.h
+	(octave_scalar::load_hdf5), ov-str-mat.cc
+	(octave_char_matrix_str::load_hdf5), ov-str-mat.h
+	(octave_char_matrix_str::load_hdf5), ov-struct.cc
+	(octave_struct::load_hdf5), ov-struct.h
+	(octave_struct::load_hdf5), ov.h (octave_value::load_hdf5):
+	Remove have_hg5iterate_bug from the call to load_hdf5.
+	* ov-cell.cc (octave_bool::load_hdf5), ov-class.cc
+	(octave_class::load_hdf5), ov-fcn-handle.cc
+	(octave_fcn_handle::load_hdf5), ov-list.cc
+	(octave_list::load_hdf5), ov-struct.cc
+	(octave_struct::load_hdf5): Remove HAVE_H5GGET_NUM_OBJS cruft
+	for old hdf5 versions.
+
+2009-11-27  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/urlwrite.cc (curl_handle, curl_handles): Add
+	classes to manage the open curl connections.  (F__ftp__,
+	F__ftp_pwd__, F__ftp_cwd__, F__ftp_dir__, F__ftp_ascii__,
+	F__ftp_binary__, F__ftp_close__, F__ftp_mode__, F__ftp_delete__,
+	F__ftp_rmdir__, F__ftp_mkdir__, F__ftp_rename__, F__ftp_mput__,
+	F__ftp_mget__): New functions.
+
+2009-11-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (octave_value::octave_value (const index_vector&)): Take
+	a copy if idx to allow mutation.
+
+2009-11-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/dot.cc (Fdot): Update docs.
+
+2009-11-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/dot.cc: New source.
+	* DLD-FUNCTIONS/module-files: Include it.
+
+2009-11-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fismatrix): Return true for empty matrices as well.
+
+2009-11-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/chol.cc (get_chol_l): New helper function.
+	(Fchol): Use it to set MatrixType for lower triangular factors
+	as well. Use default octave_idx_type->octave_value conversion.
+
+2009-11-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (do_accumarray_sum): Simplify.
+
+2009-11-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-struct.cc (octave_struct::save_binary): Save dimensions for
+	structs.  (octave_struct::load_binary): Load dimensions if
+	present, use 1x1 otherwise.
+
+2009-11-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fmerge): Add missing parentheses.
+
+2009-11-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-complex.h (octave_complex::bool_value,
+	octave_complex::bool_array_value): New methods.
+	* ov-flt-complex.h (octave_float_complex::bool_value,
+	octave_float_complex::bool_array_value): New methods.
+	* ov-cx-mat.cc (octave_complex_matrix::bool_array_value): New
+	method.  * ov-cx-mat.h: Declare it.
+	* ov-flt-cx-mat.cc (octave_float_complex_matrix::bool_array_value):
+	New method.
+	* ov-flt-cx-mat.h: Declare it.
+
+2009-11-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-struct.cc (octave_struct::save_ascii): Save dimensions for
+	structs.  (octave_struct::load_ascii): Load dimensions if
+	present, use 1x1 otherwise.
+
+2009-11-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fmerge): Correct query for logical masks.
+
+2009-11-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* utils.cc (dims_to_numel): Fallback to index_vector query for
+	non-numeric types.
+
+2009-11-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-bool.h (octave_bool::is_numeric_type): New overload.
+	* ov-bool-mat.h (octave_bool-matrix::is_numeric_type): New overload.
+
+2009-11-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (unary_mapper_t): New member: umap_erfinv.
+	* ov-base.c (octave_base_value::get_umap_name): Add "erfinv" here.
+	* ov.h (octave_value::erfinv): New method.
+	* ov-scalar.cc (octave_scalar::map): Handle umap_erfinv.
+	* ov-float.cc (octave_float::map): Ditto.
+	* ov-re-mat.cc (octave_matrix::map): Ditto.
+	* ov-flt-re-mat.cc (octave_float_matrix::map): Ditto.
+	* ov-re-sparse.cc (octave_sparse_matrix::map): Ditto.
+	* mappers.cc (Ferfinv): New DEFUN.
+
+2009-11-14  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* gl-render.cc (opengl_renderer::text_to_pixels): New function
+	from code in render_text to produce the pixels and compute
+	bounding box.  (opengl_renderer::render_text): Call
+	text_to_pixels to compute rotation mode and bounding box.
+	* gl-renger.h (opengl_renderer::text_to_pixels): Provide decl.
+	* gl2ps-renderer.cc (glps_renderer::render_text): Call
+	text_to_pixels to compute bounding box.
+	(glps_renderer::set_font): Call opengl_renderer::set_font.
+
+2009-11-18  Michael Godfrey  <godfrey@isl.stanford.edu>
+
+	* txt-eng-ft.cc: Relax font match test.
+
+2009-11-18  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/bsxfun.cc (bsxfun_builtin_op): New member:
+	bsxfun_builtin_power.  (bsxfun_builtin_names): Include "power".
+	(do_bsxfun_real_pow): New static function.  (maybe_fill_table):
+	Register power handlers.
+
+2009-11-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-complex.cc (octave_complex::try_narrowing_conversion):
+	Don't check signbit.
+	* ov-flt-complex.cc
+	(octave_float_complex::try_narrowing_conversion): Ditto.
+	* ov-cx-mat.cc (octave_complex_matrix::try_narrowing_conversion):
+	Simplify.  Don't check signbit.
+	* ov-flt-cx-mat.cc
+	(octave_float_complex_matrix::try_narrowing_conversion): Ditto.
+
+2009-11-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-re-mat.cc (do_rc_map): New static function.
+	(octave_matrix::map): Use it here.
+	* ov-flt-re-mat.cc (do_rc_map): New static function.
+	(octave_float_matrix::map): Use it here.
+
+2009-11-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/balance.cc: Fix docs.
+
+2009-11-13  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am (liboctinterp_la_CPPFLAGS): Define.
+
+2009-11-13  Joel Keay  <keay@ou.edu>
+
+	* graphics.h.in (image::properties::init): Also allow single,
+	int16, and uint16 data types.
+
+2009-11-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (unary_mapper_t): Move to octave_base_value.
+	* ov.h: Partially revert to c657c056240d.
+	(FORWARD_MAPPER): Update to use octave_base_value::map.
+	(octave_value::map): Ditto.
+	* mappers.cc: Revert to c657c056240d.
+	* data.cc: Ditto.
+	* Cell.h, Cell.cc: Ditto.
+	* ov-cell.cc (octave_cell::map): Rewrite.
+	* ov-base-sparse.cc (octave_base_sparse::map): New method.
+	* ov-base-sparse.h: Declare it.
+	* ov-re-sparse.cc (octave_sparse_matrix::map): Use it as a fallback.
+	* ov-cx-sparse.cc (octave_sparse_complexmatrix::map): Ditto.
+
+2009-11-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (unary_mapper_t): New enum.
+	(octave_base_value::map (unary_mapper_t)): New method.
+	(octave_base_value::abs, octave_base_value::acos,
+	octave_base_value::acosh, octave_base_value::angle,
+	octave_base_value::arg, octave_base_value::asin,
+	octave_base_value::asinh, octave_base_value::atan,
+	octave_base_value::atanh, octave_base_value::ceil,
+	octave_base_value::conj, octave_base_value::cos,
+	octave_base_value::cosh, octave_base_value::erf,
+	octave_base_value::erfc, octave_base_value::exp,
+	octave_base_value::expm1, octave_base_value::finite,
+	octave_base_value::fix, octave_base_value::floor,
+	octave_base_value::gamma, octave_base_value::imag,
+	octave_base_value::isinf, octave_base_value::isna,
+	octave_base_value::isnan, octave_base_value::lgamma,
+	octave_base_value::log, octave_base_value::log2,
+	octave_base_value::log10, octave_base_value::log1p,
+	octave_base_value::real, octave_base_value::round,
+	octave_base_value::roundb, octave_base_value::signum,
+	octave_base_value::sin, octave_base_value::sinh,
+	octave_base_value::sqrt, octave_base_value::tan,
+	octave_base_value::tanh): Remove.
+
+	* ov.h (octave_value::map (unary_mapper_t)): New method.
+	(octave_value::abs, octave_value::acos, octave_value::acosh,
+	octave_value::angle, octave_value::arg, octave_value::asin,
+	octave_value::asinh, octave_value::atan, octave_value::atanh,
+	octave_value::ceil, octave_value::conj, octave_value::cos,
+	octave_value::cosh, octave_value::erf, octave_value::erfc,
+	octave_value::exp, octave_value::expm1, octave_value::finite,
+	octave_value::fix, octave_value::floor, octave_value::gamma,
+	octave_value::imag, octave_value::isinf, octave_value::isna,
+	octave_value::isnan, octave_value::lgamma, octave_value::log,
+	octave_value::log2, octave_value::log10, octave_value::log1p,
+	octave_value::real, octave_value::round, octave_value::roundb,
+	octave_value::signum, octave_value::sin, octave_value::sinh,
+	octave_value::sqrt, octave_value::tan, octave_value::tanh): Remove.
+
+	* ov-scalar.h, ov-scalar.cc (octave_scalar): Update.
+	* ov-float.h, ov-float.cc (octave_float): Update.
+
+	* ov-complex.h, ov-complex.cc (octave_complex): Update.
+	* ov-flt-complex.h, ov-flt-complex.cc (octave_float_complex):
+	Update.
+
+	* ov-re-matrix.h, ov-re-matrix.cc (octave_matrix): Update.
+	* ov-flt-re-matrix.h, ov-flt-re-matrix.cc (octave_float_matrix): Update.
+	* ov-cx-matrix.h, ov-cx-matrix.cc (octave_complex_matrix): Update.
+	* ov-flt-cx-matrix.h, ov-flt-cx-matrix.cc
+	(octave_float_complex_matrix): Update.
+
+	* ov-re-sparse.h, ov-re-sparse.cc (octave_sparse_matrix): Update.
+	* ov-cx-sparse.h, ov-cx-sparse.cc (octave_sparse_complex_matrix):
+	Update.
+
+	* ov-re-diag.h, ov-re-diag.cc (octave_diag_matrix): Update.
+	* ov-flt-re-diag.h, ov-flt-re-diag.cc (octave_float_diag_matrix):
+	Update.
+	* ov-cx-diag.h ov-cx-diag.cc (octave_complex_diag_matrix): Update.
+	* ov-flt-cx-diag.h, ov-flt-cx-diag.cc
+	(octave_float_complex_diag_matrix): Update.
+
+	* ov-range.h (octave_range): Update.
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T): Update.
+	(OCTAVE_VALUE_INT_SCALAR_T): Update.
+
+	* ov-perm.h (octave_perm_matrix): Update.
+	* ov-bool.h (octave_bool): Update.
+	* ov-bool-mat.h (octave_bool_matrix): Update.
+	* ov-ch-mat.h (octave_char_matrix): Update.
+
+	* mappers.cc (Fabs, Facos, Facosh, Fangle, Farg, Fasin, Fasinh,
+	Fatan, Fatanh, Fceil, Fconj, Fcos, Fcosh, Ferf, Ferfc, Fexp,
+	Fexpm1, Ffinite, Ffix, Ffloor, Fgamma, Fimag, Fisinf, Fisna,
+	Fisnan, Flgamma, Flog, Flog2, Flog10, Flog1p, Freal, Fround,
+	Froundb, Fsignum, Fsin, Fsinh, Fsqrt, Ftan, Ftanh, Fisalnum,
+	Fisalpha, Fisascii, Fiscntrl, Fisdigit, Fisgraph, Fislower,
+	Fisprint, Fispunct, Fisspace, Fisupper, Fisxdigit, Ftoascii,
+	Ftolower, Ftoupper): Update.
+
+2009-11-11  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::do_find_all_first_of): Take advantage
+	of string_vector (std::list<std:string>) constructor.
+
+2009-11-11  John W. Eaton  <jwe@octave.org>
+
+	* help.cc (do_get_help_text_from_file,
+	Fget_help_text_from_file): New functions.
+	(do_get_help_text): Pass NAME by const reference.
+	* utils.cc (find_dir_in_path): New optional argument "all".
+	* load-path.cc (load_path::do_find_matching_dirs): New function.
+	(load_path::do_find_dir): Perform match on absolute directory
+	names, but return name as it appears in dir_info_list.  Adjust
+	dname_len after stripping directory separator.
+	* load-path.h (load_path::do_find_matching_dirs): Provide decl.
+	(load_path::find_matching_dirs): New function.
+
+2009-11-11  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (Fl_Gl_Window::draw):
+	If zooming, call overlay.
+	(Fl_Gl_Window::overlay): Rename from draw_overlay.  Don't return
+	early if zooming.  Don't call valid and conditionally call
+	setup_veiwport.  Set overlay color and draw line around zoom box.
+	(Fl_Gl_Window::zoom_box_vertex): New function.
+	(Fl_Gl_Window::pixel2status): Call canvas->redraw, not
+	canvas->redraw_overlay.
+
+2009-11-10  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* gl2ps-renderer.cc, gl2ps-renderer.h, gl2ps.c, gl2ps.h: New
+	files.  PostScript backend based on opengl_renderer and gl2ps.
+	* Makefile.am (octinclude_HEADERS): Add gl2ps.h to the list.
+	(DIST_SRC): Add gl2ps.c to the list.
+	* gl-render.cc (opengl_renderer::render_text): Rename from
+	opengl_renderer::draw_text.
+	(opengl_renderer::draw_figure, opengl_renderer::draw_axes,
+	opengl_renderer::draw_line, opengl_renderer::draw_surface,
+	opengl_renderer::draw_patch, opengl_renderer::draw_hggroup,
+	opengl_renderer::draw_text, opengl_renderer::draw_image):
+	Rename from overloaded opengl_renderer::draw.
+	* gl-render.h: Fix decls.
+
+	* DLD-FUNCTIONS/fltk_backend.cc (OpenGL_fltk::print): New function.
+	(OpenGL_fltk::print_filename): New data member.
+	(OpenGL_fltk::draw): Add support for printing.
+	(fltk_backend::print_figure): Call figure_manager::print.
+
+2009-11-10  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (Fferror): Update doc string.
+
+2009-11-10  David Grundberg  <davidg@cs.umu.se>
+
+	* oct-strstrm.h (octave_base_strstream::tell): Declare virtual.
+	(octave_istrstream::tell): New method.
+
+2009-11-10  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.am, OPERATORS/module.mk, TEMPLATE-INST/module.mk,
+	find-defun-files.sh, version.h.in,
+	DLD-FUNCTIONS/config-module.awk, DLD-FUNCTIONS/config-module.sh,
+	DLD-FUNCTIONS/module-files: New files.
+	* Makefile.in, version.h: Delete.
+	* lex.ll: Rename from lex.l.  Include oct-parse.h instead of y.tab.h.
+	* parse.yy: Rename from parse.y
+	* mkbuiltins, mkgendoc: Don't require filenames to start with a
+	"." at beginning of line.
+
+	* oct-conf.h.in (OCTAVE_CONF_LAPACK_LIBS): Delete macro.
+	* toplev.cc (octave_config_info): Don't include LAPACK_LIBS in the
+	struct.
+
+2009-11-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-class.cc (octave_class::numel): Use base version if called
+	from built-in assignment.
+	(octave_class::size): Ditto.
+
+2009-11-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Simplify examples in
+	docs.
+
+2009-11-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.cc (btyp_mixed_numeric): New function.
+	* ov-base.h: Declare it.
+	(btyp_isnumeric): New inline function.
+	* DLD_FUNCTIONS/max.cc (do_minmax_red_op, do_minmax_bin_op,
+	do_minmax_body, do_cumminmax_red_op): New functions.
+	(MINMAX_DOUBLE_SBODY, MINMAX_DOUBLE_BODY, MINMAX_SINGLE_SBODY,
+	MINMAX_SINGLE_BODY, MINMAX_SPARSE_BODY, MINMAX_INT_SBODY,
+	MINMAX_INT_BODY, MINMAX_BODY, CUMMINMAX_BODY): Remove.
+	(Fmin, Fmax, Fcummin, Fcummax): Update.
+
+2009-11-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h: Add sparse matrix extractors.
+
+2009-11-09  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/__dsearchn__.cc,
+	DLD-FUNCTIONS/__voronoi__.cc, DLD-FUNCTIONS/convhulln.cc,
+	DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/tsearch.cc: Correctly include
+	config.h, don't include oct.h, etc.
+
+2009-11-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/bsxfun.cc: Add missing copyright.  (fill_table):
+	Mark table as initialized.
+
+2009-11-06  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-assign.cc (tree_multi_assignment::rvalue): Don't skip
+	zero-length lvalue cs-lists.
+
+2009-11-06  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-cell.cc (octave_cell::print_raw): Indent properly. Use
+	newline rather than '\n'.
+
+2009-11-03  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (root_figure): Add commandwindowsize, diary,
+	diaryfile, echo, format, language, monitorpositions,
+	pointerlocation, pointerwindow, and recursionlimit properties.
+
+2009-11-03  David Grundberg  <davidg@cs.umu.se>
+
+	* graphics.h.in (root_figure): Add FormatSpacing property.
+
+2009-11-03  David Grundberg  <davidg@cs.umu.se>
+
+	* ov-class.cc (octave_class::size): Allow and ignore extra
+	outargs from user-defined size methods.
+
+2009-11-03  David Grundberg  <davidg@cs.umu.se>
+
+	* ov-class.cc (make_idx_args): Call user-defined
+	subsref/subsasgn with 1xN structs instead of Nx1.
+
+2009-11-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-class.cc (octave_class::unique_parent_class): New method.
+	(octave_class::subsasgn): Use it here.
+	* ov-class.h: Declare it.
+
+2009-11-01  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (get_sort_mode_option): New function.
+	(Fissorted): Handle ascending or descending option.
+
+2009-11-01  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::dir_info::update): Always initialize
+	relative directories that are not yet included in abs_dir_cache.
+
+2009-10-29  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (finish_function): Return function object unless
+	parsing function file.
+
+2009-10-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/tril.cc: New source.  * Makefile.in: Include it.
+
+2009-10-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* error.cc (verror (bool, std::ostream&, ..., bool)): Add
+	optional with_cfn flag. If specified, prepend current function
+	name (unless already there).
+	(error_1): Accept with_cfn flag and pass it on.
+	(error_2): Ditto.
+	(verror_with_cfn, error_with_cfn, error_with_id_cfn,
+	verror_with_id_cfn): New functions.
+	* error.h: Declare them.
+	* octave.cc (lo_error_handler): Call verror_with_cfn.
+	* ov-base.cc (INT_CONV_METHOD): Call error_with_cfn.
+	* ov.cc (octave_value::int_vector_value, octave_idx_type_vector_value):
+	Call error_with_cfn.
+
+2009-10-21  Rik  <octave@nomad.inbox5.com>
+
+	* variables.cc: Correct use of deftypefnx for who and whos.
+
+2009-10-21  John W. Eaton  <jwe@octave.org>
+
+	* load-path.h (load_path::dir_path::dir_time_last_checked): New
+	field.  (load_path::dir_path::dir_path,
+	load_path::dir_path::operator=): Initialize and copy
+	dir_time_last_checked.
+	* load-path.cc (load_path::dir_info::initialize): Store time of
+	last update.
+	(load_path::dir_info::update): Check directory modification time
+	against time of last update, within resolution of filesystem
+	time stamps.  Suggested by Judd Storrs <storrsjm@email.uc.edu>.
+
+2009-10-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (builtin_type_t): Declare also btyp_num_types.
+	* DLD-FUNCTIONS/bsxfun.cc (bsxfun_builtin_op): New enum.
+	(bsxfun_handler): New typedef.
+	(bsxfun_builtin_names, bsxfun_handler_table): New variables.
+	(bsxfun_builtin_lookup, maybe_fill_table, maybe_optimized_builtin):
+	New static funcs.
+	(bsxfun_forward_op, bsxfun_forward_rel): New static template funcs.
+	(Fbsxfun): Try to optimize some built-in operations.
+
+2009-10-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellslices): Allow non-positive
+	indices as bounds.
+
+2009-10-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fnth_element): Clarify docstring.
+
+2009-10-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Cell.cc, Cell.h, DLD-FUNCTIONS/besselj.cc,
+	DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/lookup.cc,
+	DLD-FUNCTIONS/max.cc, TEMPLATE-INST/Array-tc.cc, data.cc,
+	oct-map.cc, ov-cx-mat.h, ov-flt-cx-mat.cc, ov-flt-cx-mat.h,
+	ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h, ov-re-mat.h,
+	ov.cc, ov.h, pr-output.cc, pr-output.h, variables.cc:
+	Remove traces of ArrayN.
+
+	* OPERATORS/op-dm-scm.cc: Avoid using dm + s, dm - s operators.
+	* OPERATORS/op-dm-sm.cc: Ditto.
+	* OPERATORS/op-dms-template.cc: Ditto.
+
+2009-10-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fnum2cell): Use Array<T>::column here.
+
+2009-10-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc (Flookup): Update docstring.
+
+2009-10-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h (octave_value::octave_value (octave_base_value *, bool)):
+	New constructor.
+	(octave_value::octave_value (octave_base_value *, int)): Deprecate.
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Allow the obsolete func
+	body syntax.
+
+2009-10-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* variables.cc (extract_function): Pass 0 to eval_string to avoid
+	error.
+
+2009-10-14  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (octave_value::octave_value (const Array<std::string>&)): New
+	constructor.
+	* ov.h: Declare it.
+	* data.cc (Fnth_element): New DEFUN.
+
+2009-10-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fcumsum, Fcumprod, Fprod, Fsum, Fsumsq): Correct help
+	string.
+
+2009-10-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fsum): Rewrite.
+	(Fcumsum): Rewrite.
+	(NATIVE_REDUCTION, NATIVE_REDUCTION_1): Remove.
+
+2009-10-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-binop.cc, pt-unop.cc: Revert the effect of 1be3c73ed7b5.
+
+2009-10-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lu.cc (maybe_set_triangular): Remove.
+	(get_lu_l, get_lu_u): New helper funcs.
+	(Flu, Fluupdate): Use them to auto-set MatrixType of results.
+	* DLD-FUNCTIONS/qr.cc (maybe_set_triangular): Remove.
+	(get_qr_r): New helper func.
+	(Fqr, Fqrupdate, Fqrinsert, Fqrdelete,
+	Fqrshift): Use it to auto-set MatrixType of results.
+	* DLD-FUNCTIONS/chol.cc (get_chol_r): New helper func.
+	(Fchol, Fcholupdate, Fcholinsert, Fcholdelete, Fcholshift): Use it
+	to auto-set MatrixType of result.
+
+2009-10-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Support 'nocompute'
+	option.
+
+2009-10-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lu.cc (Fluupdate): New DEFUN_DLD.
+	(check_lu_dims): New helper func.
+
+2009-10-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Flength): Simplify.
+	(Fndims): Simplify.
+	(Fsize): Rewrite, use dim_vector::redim to simplify.
+	(Fsize_equal): Don't chop trailing singletons (should be already
+	chopped).
+
+2009-10-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* utils.cc (dims_to_numel): New function.
+	* utils.h: Declare it.
+	* ov-base.cc (octave_base_value::numel (const octave_value_list&)):
+	Use it here.
+	* data.cc (Fnumel): Also here.
+
+2009-10-07  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (get_dims_str): New function.
+	(symbol_info_list::display_line,
+	symbol_info_list::parse_whos_line_format): Use it to get dims string.
+
+2009-10-07  John W. Eaton  <jwe@octave.org>
+
+	* ov.h (octave_value::get_count): Return octave_idx_type, not int.
+
+2009-10-07  John W. Eaton  <jwe@octave.org>
+
+	* pt-arg-list.cc (tree_argument_list::convert_to_const_vector):
+	Avoid uninitialized variable warning.
+	* pt-cbinop.cc (simplify_ldiv_op): Avoid unused parameter warning.
+	* ov-flt-re-mat.cc (convert_to_str_internal):
+	Update for octave_value constructor changes.
+
+2009-10-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-stream.cc (octave_base_stream::skipl,
+	octave_stream::skipl (long, ...), octave_stream::skipl (const
+	octave_value&, ...)): New methods.
+	* oct-stream.h: Declare them.
+	* file-io.cc (Ffskipl): New DEFUN.
+
+2009-10-07  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-str-str.cc (DEFUNOP (transpose, char_matrix_str)):
+	Update for octave_value constructor changes.
+
+2009-10-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (octave_value::assign): Do not gripe "assignment failed" if
+	already griped about the binary operation.
+
+2009-10-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-idx.cc (tree_index_expression::rvalue): When evaluating index
+	chain, split on chaining ()() and (){}.
+
+2009-10-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-misc.cc (tree_argument_list::convert_to_const_vector):
+	Return more than nargout arguments only unless undefined elements
+	occur.
+	* ov-class.cc (octave_class::subsref): Pack return list from
+	overloaded method into first value.
+
+2009-10-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-ch-mat.h (octave_char_matrix): Don't declare allocator and
+	typeid.
+	* ov-ch-mat.cc: Don't define them.
+	* ov.cc (install_types): Don't register octave_char_matrix.
+
+2009-10-05  John W. Eaton  <jwe@octave.org>
+
+	* ov.h (octave_value (const charMatrix&, char, bool),
+	octave_value (const charNDArray&, char, bool),
+	octave_value (const ArrayN<char>&, char, bool)):
+	New constructor decls.
+	(octave_value (const charMatrix&, bool, char),
+	octave_value (const charNDArray&, bool, char),
+	octave_value (const ArrayN<char>&, bool, char)): Mark with
+	GCC_ATTR_DEPRECATED.  Single-quoted strings are now default string
+	type.
+	(octave_value::convert_to_str): Default is single-quoted strings.
+	* ov.cc (octave_value (const charMatrix&, char, bool),
+	octave_value (const charNDArray&, char, bool),
+	octave_value (const ArrayN<char>&, char, bool)): New constructors.
+	(octave_value (const charMatrix&, bool, char),
+	octave_value (const charNDArray&, bool, char),
+	octave_value (const ArrayN<char>&, bool, char)):
+	Assume is_string argument is always true.
+
+	* ov-re-mat.cc (octave_sparse_matrix::convert_to_str_internal):
+	Update for octave_value constructor changes.
+	* ov-ch-mat.h (octave_char_matrix::convert_to_str_internal): Likewise.
+	* ov-re-sparse.cc (octave_sparse_matrix::convert_to_str_internal):
+	Likewise.
+	* ov-str-mat.h (octave_char_matrix_str::squeeze,
+	octave_char_matrix_str::reshape, octave_char_matrix_str::permute,
+	octave_char_matrix_str::diag, octave_char_matrix_str::sort,
+	octave_char_matrix_sq_str::squeeze,
+	octave_char_matrix_sq_str::reshape,
+	octave_char_matrix_sq_str::permute,
+	octave_char_matrix_sq_str::diag, octave_char_matrix_sq_str::sort):
+	Likewise.
+	* ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal):
+	Likewise.
+	(octave_char_matrix_str::resize): Likewise.
+	* data.cc (do_cat, Fmerge): Likewise.
+	* ops.h (DEFNDCHARCATOP_FN): Likewise.
+	* ov-base-int.cc (octave_base_int_matrix<T>::convert_to_str_internal):
+	Likewise.
+	* pt-mat.cc (tree_matrix::rvalue1): Likewise.
+
+	* ov-ch-mat.h (octave_char_matrix::octave_char_matrix): Delete
+	unused bool arg.  Declare constructors protected.
+
+	(xisalnum, xisalpha, xisascii, xiscntrl, xisdigit, xisgraph,
+	xislower, xisprint, xispunct, xisspace, xisupper, xisxdigit,
+	xtoascii, xtolower, xtoupper): Move decls here from ov-str-mat.h.
+	(MAT_MAPPER, BOOL_MAT_MAPPER): Move macro definitions and uses
+	here from ov-str-mat.h.
+
+	* ov-ch-mat.cc (MACRO_WRAPPER, STRING_MAPPER, TOSTRING_MAPPER):
+	Move macro definitions and uses here.
+	* ov-str-mat.cc: From here.
+
+	* DLD-FUNCTIONS/typecast (Ftypecast): Update for octave_value
+	constructor changes.  Create sq_string unless casting from string,
+	then preserve exact type.
+	(Fbitpack): Update for octave_value constructor changes.  Create
+	sq_string.
+	* DLD-FUNCTIONS/hex2num.cc (Fnum2hex): Update for octave_value
+	constructor changes.  Create sq_string.
+	* ls-oct-ascii.cc (read_ascii_data): Likewise.
+	* mex.cc (mxArray_number::as_octave_value): Likewise.
+	* oct-stream.cc (octave_stream::read): Likewise.
+	* ov-base.cc (STRING_MAPPER): Likewise.
+
+2009-10-04  John W. Eaton  <jwe@octave.org>
+
+	* ov-str-mat.h (octave_char_matrix_str::squeeze,
+	octave_char_matrix_sq_str::squeeze, octave_char_matrix_str::diag,
+	octave_char_matrix_sq_str::diag): New functions.
+
+2009-10-03  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.h.in (image::update_xdata): Add a half-pixel to each limit.
+	(image::update_ydata): Ditto.
+	* gl-render.cc (opengl_renderer::draw): Clip image to axis and fix
+	unpack alignment.
+
+2009-10-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-scalar.h (octave_base_scalar::matrix_type): Always
+	return MatrixType::Diagonal.
+	(octave_base_scalar::typ): Remove.
+
+2009-10-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h: Define also diag matrix extractors.
+	(octave_type_traits, octave_array_type_traits): Remove.
+	(octave_value::builtin_type): New method.
+	* oct-stream.cc (do_read): Update.
+	* data.cc (identity_matrix): Update.
+	* ov-base.h (builtin_type_t): New enum.
+	(octave_base_value::builtin_type): New method.
+	* ov-re-mat.h (octave_matrix::builtin_type): New method.
+	* ov-flt-re-mat.h (octave_float_matrix::builtin_type): New method.
+	* ov-cx-mat.h (octave_complex_matrix::builtin_type): New method.
+	* ov-flt-cx-mat.h (octave_float_complex_matrix::builtin_type):
+	New method.
+	* ov-bool-mat.h (octave_bool_matrix::builtin_type): New method.
+	* ov-ch-mat.h (octave_char_matrix::builtin_type): New method.
+	* ov-scalar.h (octave_scalar::builtin_type): New method.
+	* ov-float.h (octave_float::builtin_type): New method.
+	* ov-complex.h (octave_complex::builtin_type): New method.
+	* ov-bool.h (octave_bool::builtin_type): New method.
+	* ov-flt-complex.h (octave_float_complex::builtin_type): New method.
+	* ov-re-diag.h (octave_diag_matrix::builtin_type): New method.
+	* ov-flt-re-diag.h (octave_float_diag_matrix::builtin_type): New method.
+	* ov-cx-diag.h (octave_complex_diag_matrix::builtin_type): New method.
+	* ov-flt-cx-diag.h
+	(octave_float_complex_diag_matrix::builtin_type):
+	New method.
+	* ov-re-sparse.h (octave_sparse_matrix::builtin_type): New method.
+	* ov-cx-sparse.h (octave_sparse_complex_matrix::builtin_type):
+	New method.
+	* ov-bool-sparse.h (octave_sparse_bool_matrix::builtin_type):
+	New method.
+	* ov-intx.h (octave_int_matrix::builtin_type,
+	octave_int_scalar::builtin_type): New methods.
+	* ov-int8.h: Define OCTAVE_INT_BTYP.
+	* ov-int16.h: Define OCTAVE_INT_BTYP.
+	* ov-int32.h: Define OCTAVE_INT_BTYP.
+	* ov-int64.h: Define OCTAVE_INT_BTYP.
+	* ov-uint8.h: Define OCTAVE_INT_BTYP.
+	* ov-uint16.h: Define OCTAVE_INT_BTYP.
+	* ov-uint32.h: Define OCTAVE_INT_BTYP.
+	* ov-uint64.h: Define OCTAVE_INT_BTYP.
+
+2009-10-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Fix initialization, add missing
+	break.
+
+2009-10-01  John W. Eaton  <jwe@octave.org>
+
+	* gl-render.cc (opengl_renderer::draw (const image::properties&)):
+	Adjust origin for glRasterPos3d.
+
+2009-10-01  John W. Eaton  <jwe@octave.org>
+
+	* gl-render.cc: Style fixes.
+
+2009-10-01  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.cc (image::properties::get_color_data): New function.
+	* gl-render.cc (opengl_renderer::draw): Handle RGB images.
+
+2009-10-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc
+	(do_num2cell_helper, do_num2cell): New funcs.
+	(Fnum2cell): Rewrite.
+	(do_cellslices_nda): Do not leave trailing dims.
+
+2009-09-30  John W. Eaton  <jwe@octave.org>
+
+	* error.cc (error_1, pr_where_2, handle_message):
+	Don't do anything if fmt is empty.
+	(Ferror): Call print_usage if nargin == 0.
+
+2009-09-29  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/typecast.cc (Ftypecast): Rewrite.
+	(Fbitpack, Fbitunpack): New DEFUNs.
+
+2009-09-28  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::handle): Redraw the
+	overlay when zoom box changes size.
+	* DLD-FUNCTIONS/fltk_backend.cc (fltk_mouse_wheel_zoom): New
+	function to set mouse wheel zoom factor.
+
+2009-09-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/sub2ind.cc (get_dimensions): Allow singleton array.
+	(Fsub2ind): Allow single index.
+
+2009-09-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-m-m.cc (trans_mul, mul_trans): Update.
+	* OPERATORS/op-fm-fm.cc (trans_mul, mul_trans): Update.
+	* OPERATORS/op-cm-cm.cc (trans_mul, mul_trans, herm_mul, mul_herm):
+	Update.
+	* OPERATORS/op-fcm-fcm.cc (trans_mul, mul_trans, herm_mul, mul_herm):
+	Update.
+	* OPERATORS/op-m-cm.cc (trans_mul): Update.
+	* OPERATORS/op-cm-m.cc (mul_trans): Update.
+	* OPERATORS/op-fm-fcm.cc (trans_mul): Update.
+	* OPERATORS/op-fcm-fm.cc (mul_trans): Update.
+
+2009-09-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-m-cm.cc: Declare and install trans_mul operator.
+	* OPERATORS/op-fm-fcm.cc: Ditto.
+	* OPERATORS/op-cm-m.cc: Declare and install mul_trans operator.
+	* OPERATORS/op-fcm-fm.cc: Ditto.
+
+2009-09-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-m-cm.cc: Declare and install trans_ldiv operator.
+	* OPERATORS/op-fm-fcm.cc: Ditto.
+
+2009-09-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h (octave_value::op_trans_ldiv, op_herm_ldiv): New enum constants.
+	* ov.cc (decompose_binary_op, binary_op_fcn_name): Support them.
+	* xdiv.h: Include mx-defs.h, delete forward decls.
+	* xdiv.cc (xleftdiv): Support transt parameter.
+	(xdiv): Optimize.
+	* pt-cbinop.cc (simplify_ldiv_op): New static func.
+	(maybe_compound_binary_expression): Try it.
+	* OPERATORS/op-m-m.cc: Define and install trans_ldiv handler.
+	* OPERATORS/op-fm-fm.cc: Ditto.
+	* OPERATORS/op-cm-cm.cc: Define and install trans_ldiv and herm_ldiv
+	handlers.
+	* OPERATORS/op-fcm-fcm.cc: Ditto.
+
+2009-09-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h (octave_value_extract): New template function.
+	* data.cc (do_linspace): New static template function.
+	(Flinspace): Rewrite.
+
+2009-09-18  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::redraw_figure):
+	Call __fltk_redraw__ after marking figure as modified.
+
+2009-09-18  John W. Eaton  <jwe@octave.org>
+
+	* mexproto.h: Define OCTINTERP_API if it is not already defined.
+	Use C-style comments.
+
+2009-09-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/rand.cc (Frandperm): New function.
+
+2009-09-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-misc.cc (tree_parameter_list::convert_to_const_vector): Pass
+	in nargout. Don't return excess elements. Optimize varargout-only case
+	to possibly use a shallow copy.
+	* pt-misc.h: Update decl.
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op): Update call
+	to tree_parameter_list::convert_to_const_vector.
+
+2009-09-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pr-output.cc (Fdisp, Ffdisp): Declare retval as octave_value_list.
+
+2009-09-14  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::pixel2status,
+	plot_window::pixel2pos): New argument AXES, which the
+	coordinates are relative to.
+	(plot_window::handle): Pass axes to pixel2status and pixel2pos.
+
+2009-09-14  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.h (symbol_table::curr_fcn): New member field.
+	(symbol_table::get_curr_fcn, symbol_table::set_curr_fcn): New member
+	funcs.
+	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::xfind): Use
+	symbol_table::get_curr_fcn.
+	(symbol_table::fcn_info::fcn_info_rep::x_builtin_find): Ditto.
+	* ov-usr-fcn.cc (octave_user_function::octave_user_function): Call
+	symbol_table::set_curr_fcn.
+
+2009-09-12  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 3.3.50+.
+	(OCTAVE_API_VERSION): Now api-v38+.
+
+2009-09-12  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 3.3.50.
+	(OCTAVE_API_VERSION): Now api-v38.
+	(OCTAVE_RELEASE_DATE): Now 2009-09-12.
+
+2009-09-08  Rafael Laboissiere  <rafael@debian.org>
+
+	* pr-output.cc: New test.
+
+2009-09-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Makefile.in: Add LDFLAGS to OCT_LINK_DEPS.
+
+2009-09-06  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc: Fix test.
+
+2009-09-06  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-s-cs.cc: Use DEFCMPLXCMPOP_OP.
+	* OPERATORS/op-cs-s.cc: Ditto.
+	* OPERATORS/op-fs-fcs.cc: Ditto.
+	* OPERATORS/op-fcs-fs.cc: Ditto.
+
+2009-09-05  John W. Eaton  <jwe@octave.org>
+
+	* genprops.awk: Fix formatting of generated output.
+	* graphics.h.in (graphics_object::get (const std::string&) const,
+	graphics_object::get (const char *) const): New functions.
+
+2009-09-05  John W. Eaton  <jwe@octave.org>
+
+	* txt-eng-ft.cc (ft_manager::do_get_font): Remove spurious
+	assignment usd for debugging.
+
+2009-09-04  John W. Eaton  <jwe@octave.org>
+
+	* txt-eng-ft.cc (ft_manager::do_get_font, ft_render::set_font,
+	ft_render::set_mode, ft_render::visit, ft_render::set_color):
+	Issue warnings instead of errors for non-fatal problems.
+	(ft_render::visit): If face is null, then return without warning.
+	* genprops.awk: Also generate const std::string& and const char*
+	versions of the get member functions.
+	* gl-render.cc (opengl_renderer::draw): Omit caseless_str
+	constructor in call to get method.
+	* ft_render::set_font (): Likewise.
+
+2009-09-03  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (set_format (const Complex&, int&, int&)):
+	Avoid passing NaN or Inf to log10.
+
+2009-09-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (octave_value::assign (assign_op, const octave_value&)):
+	Call maybe_mutate after in-place operation.
+
+2009-09-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (octave_value::do_non_const_unary_op): Split to
+	genuine/non-genuine case.
+	(octave_value::binary_op_to_assign_op): New method.
+	* ov.h: Declare it.
+	* ov-re-mat.h (octave_matrix::changesign): New method.
+	* ov-flt-re-mat.h (octave_float_matrix::changesign): New method.
+	* ov-cx-mat.h (octave_complex_matrix::changesign): New method.
+	* ov-flt-cx-mat.h (octave_float_complex_matrix::changesign): New
+	method.
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::changesign): New method.
+	* ov-bool-mat.h (octave_bool_matrix::invert): New method.
+	* pt-unop.cc (tree_prefix_expression::rvalue1): Use
+	do_non_const_unary_op.
+	* pt-binop.cc (tree_binary_expression::rvalue1): If possible,
+	convert to computed assignment.
+
+	* OPERATORS/op-m-m.cc: Define & install in-place minus operation.
+	* OPERATORS/op-fm-fm.cc: Ditto.
+	* OPERATORS/op-cm-cm.cc: Ditto.
+	* OPERATORS/op-fcm-fcm.cc: Ditto.
+	* OPERATORS/op-int.h: Ditto.
+	* OPERATORS/op-bm-bm.cc: Define & install in-place not operation.
+
+2009-09-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-re-mat.h (octave_matrix::increment, octave_matrix::decrement):
+	Use matrix_ref.
+	* ov-flt-re-mat.h (octave_float_matrix::increment,
+	octave_float_matrix::decrement): Use matrix_ref.
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::increment,
+	OCTAVE_VALUE_INT_MATRIX_T::decrement):
+	Use matrix_ref.
+
+2009-09-02  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (axes::properties::calc_ticklabels):
+	Avoid unused parameter warning from gcc.
+
+	* ov-perm.cc (octave_perm_matrix::save_binary,
+	octave_perm_matrix::load_binary): Avoid shadow warning from gcc.
+
+2009-09-01  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/eig.cc (Feigs): Correct nesting error in option
+	parsing that prevented the use of a function for generalized
+	eigenvalue problems.
+
+2009-08-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ops.h (DEFCMPLXCMPOP_OP, DEFNDCMPLXCMPOP_FN): New macros.
+	* gripes.cc (gripe_warn_complex_cmp): New function.
+	* gripes.h: declare it.
+
+	* OPERATORS/op-cm-cm.cc: Call the new macros.
+	* OPERATORS/op-cm-cs.cc: Ditto.
+	* OPERATORS/op-cm-m.cc: Ditto.
+	* OPERATORS/op-cm-s.cc: Ditto.
+	* OPERATORS/op-cs-cm.cc: Ditto.
+	* OPERATORS/op-cs-cs.cc: Ditto.
+	* OPERATORS/op-cs-m.cc: Ditto.
+	* OPERATORS/op-fcm-fcm.cc: Ditto.
+	* OPERATORS/op-fcm-fcs.cc: Ditto.
+	* OPERATORS/op-fcm-fm.cc: Ditto.
+	* OPERATORS/op-fcm-fs.cc: Ditto.
+	* OPERATORS/op-fcs-fcm.cc: Ditto.
+	* OPERATORS/op-fcs-fcs.cc: Ditto.
+	* OPERATORS/op-fcs-fm.cc: Ditto.
+	* OPERATORS/op-fm-fcm.cc: Ditto.
+	* OPERATORS/op-fm-fcs.cc: Ditto.
+	* OPERATORS/op-fs-fcm.cc: Ditto.
+	* OPERATORS/op-m-cm.cc: Ditto.
+	* OPERATORS/op-m-cs.cc: Ditto.
+	* OPERATORS/op-s-cm.cc: Ditto.
+
+
+2009-08-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ops.h (BOOL_OP1, BOOL_OP2, BOOL_OP3, SC_MX_BOOL_OP, MX_SC_BOOL_OP,
+	MX_MX_BOOL_OP): Remove.
+
+2009-08-28  John W. Eaton  <jwe@octave.org>
+
+	* genprops.awk: Generate static member functions has_core_property
+	and core_property_names.  Make has_property and all_property_names
+	non-static const member functions.  Pass object type to
+	validate_property_name.
+	* graphics.cc (validate_property_name): New arg, WHAT.
+	Improve warning and error messages.
+	(property_list::set): Use has_core_property instead of has_property.
+	(base_properties::has_property): Delete definition.
+	(base_graphics_object::remove_all_listeners): Move unwind protect
+	block here, from old base_properties::has_property function.
+	* graphics.h.in (base_properties::has_property): Now virtual.
+	Unconditionally call panic_impossible.
+
+2009-08-28  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (validate_property_name): Return full name of
+	matched property value.  Issue warning if given property name is
+	abbreviated.
+	* genprops.awk: Use name returned by validate_property_name for
+	subsequent matching.
+	* octave.cc (maximum_braindamage):
+	Disable Octave:abbreviated-property-match warning.
+
+2009-08-27  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (validate_property_name): New static function.
+	(base_properties::dynamic_property_names): New function.
+	* graphicffs.h.in (base_properties::dynamic_property_names):
+	Provide decl.
+	* genprops.awk: Generate all_property_names functions.  Use
+	all_property_names as needed to avoid duplication elsewhere.
+	Call validate_property_name in set/get functions.
+
+2009-08-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-class.cc (get_current_method_class): Simplify.
+	(octave_class::in_class_method): Don't rely on multiple copies of
+	methods. Don't declare as const.
+	(octave_class::octave_class (const Octave_map&, const std::string&,
+	const octave_value_list&)):
+	Call symbol_table::add_to_parent_map instead.
+	* ov-class.h (octave_class::in_class_method): Don't declare as const.
+	* symtab.h (symbol_table::parent_map): New field.
+	(symbol_table::add_to_parent_map): New method.
+	(symbol_table::load_class_method): Search also parent classes.
+	* load-path.h (load_path::parent_map, load_path::add_to_parent_map,
+	load_path::do_add_to_parent_map): Remove.
+	* load-path.cc (load_path::do_find_method): Don't search parent
+	classes.
+
+2009-08-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-cs-cs.cc: Simplify comparison operators.
+	* OPERATORS/op-fcs-fcs.cc: Ditto.
+
+2009-08-25  David Grundberg  <individ@acc.umu.se>
+
+	* DLD-FUNCTIONS/__magick_read__.cc [HAVE_MAGICK]: Include
+	Magick++.h instead of GraphicsMagick/Magic++.h.
+	* Makefile.in: Replace MAGICK_LIBS with MAGICK_LDFLAGS and
+	MAGICK_LIBS. Replace MAGICK_INCFLAGS with MAGICK_CPPFLAGS.
+	* oct-conf.h.in: Ditto.
+	* toplev.cc (octave_config_info): Ditto.
+
+2009-08-26  John W. Eaton  <jwe@octave.org>
+
+	* oct-conf.h.in: New defines for UMFPACK_CPPFLAGS and UMFPACK_LDFLAGS.
+	* toplev.cc (octave_config_info): Include them in the list.
+
+2009-08-26  John W. Eaton  <jwe@octave.org>
+
+	* oct-conf.h.in: New defines for QRUPDATE_CPPFLAGS and QRUPDATE_LDFLAGS.
+	* toplev.cc (octave_config_info): Include them in the list.
+
+2009-08-26  John W. Eaton  <jwe@octave.org>
+
+	* oct-conf.h.in: New defines for ARPACK_CPPFLAGS and ARPACK_LDFLAGS.
+	* toplev.cc (octave_config_info): Include them in the list.
+
+2009-08-26  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (OCTAVE_LIBS, OCTINTERP_LINK_DEPS):
+	Include BLAS_LIBS in the list.
+
+2009-08-26  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (OCTAVE_LIBS): Include FLIBS in the list.
+	(OCTINTERP_LINK_DEPS): Include TERM_LIBS, LIBGLOB, and FLIBS in
+	the list.
+
+2009-08-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Ffmod): Reverse order of args.
+
+2009-08-26  Rob Mahurin  <rob@utk.edu>
+
+	* syscalls.cc: Recommend waitpid() in popen2() documentation.
+
+2009-08-25  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (gnuplot_backend::send_quit): Wait for gnuplot process.
+
+2009-08-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-m-m.cc: Install .*= and ./= operators.
+	* OPERATORS/op-fm-fm.cc: Ditto.
+	* OPERATORS/op-cm-cm.cc: Ditto.
+	* OPERATORS/op-fcm-fcm.cc: Ditto.
+	* OPERATORS/op-int.h: Ditto.
+
+2009-08-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (UNARY_OP_DEFUN_BODY,
+	BINARY_OP_DEFUN_BODY, BINARY_ASSOC_OP_DEFUN_BODY): Remove.
+	(unary_op_defun_body, binary_op_defun_body,
+	binary_assoc_op_defun_body): New functions.
+	(Fnot, Fuplus, Fuminus, Ftranspose, Fctranspose): Use
+	unary_op_defun_body.
+	(Fminus, Fmrdivide, Fmpower, Fmldivide, Flt, Fle, Feq, Fge, Fgt, Fne,
+	Frdivide, Fpower, Fldivide): Use binary_op_defun_body.
+	(Fplus, Ftimes, Fmtimes, Fand, For): Use binary_assoc_op_defun_body.
+
+2009-08-21  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-s-s.cc: Check for NaN in ! operator.
+	* OPERATORS/op-fs-fs.cc: Ditto.
+	* OPERATORS/op-cs-cs.cc: Ditto.
+	* OPERATORS/op-fcs-fcs.cc: Ditto.
+
+2009-08-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ops.h (DEFNDASSIGNOP_FNOP): New macro.
+	* OPERATORS/op-bm-bm.cc: Define and install &= and |= operators.
+
+2009-08-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-m-m.cc: Define and install += and -= operators.
+	* OPERATORS/op-fm-fm.cc: Ditto.
+	* OPERATORS/op-cm-cm.cc: Ditto.
+	* OPERATORS/op-fcm-fcm.cc: Ditto.
+	* OPERATORS/op-m-s.cc: Define and install +=,-=,*=,/= operators.
+	* OPERATORS/op-fm-fs.cc: Ditto.
+	* OPERATORS/op-cm-cs.cc: Ditto.
+	* OPERATORS/op-fcm-fcs.cc: Ditto.
+	* OPERATORS/op-cm-s.cc: Define and install *=,/= operators.
+	* OPERATORS/op-fcm-fs.cc: Ditto.
+	* ops.h (DEFNDASSIGNOP_OP): New macro.
+	* ov.cc (octave_value::assign (assign_op, const octave_value&)):
+	Try looking up specialized handlers if the value is not shared.
+	* ov-base-mat.h (octave_base_matrix::matrix_ref): New method.
+
+2009-08-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-obj.h (octave_value_list::octave_value_list (octave_idx_type)):
+	Allow this constructor.
+
+2009-08-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/find.cc (Ffind): Reuse cached index vector when
+	converting boolean mask to indices.
+
+2009-08-18  John W. Eaton  <jwe@octave.org>
+
+	* oct-conf.h.in: New #defines for HDF5_LDFLAGS and HDF5LDFLAGS.
+	* Makefile.in (OCTAVE_LIBS, OCTINTERP_LINK_DEPS):
+	Include them in the lists.
+	* toplev.cc (octave_config_info): Include them in the list.
+
+2009-08-17  John W. Eaton  <jwe@octave.org>
+
+	* oct-conf.h.in: New #defines for ZLIB_CPPFLAGS and ZLIB_LDFLAGS.
+	* toplev.cc (octave_config_info): Include them in the list.
+
+2009-08-17  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (OCTINTERP_LINK_DEPS): Include FFTW_LDFLAGS,
+	FFTW_LIBS and READLINE_LIBS in the list.
+	(OCTAVE_LIBS): Attempt to include all necessary dependencies for
+	static linking.
+
+2009-08-17  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (eigs.oct, chol.oct, qr.oct): Add library-specific
+	CPPFLAGS and LDFLAGS variables to CPPFLAGS and LDFLAGS.
+	From Benjamin Lindner <lindnerb@users.sourceforge.net>.
+
+2009-08-17  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (OCTINTERP_LINK_DEPS): List $(LIBS) last.
+
+2009-08-17  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* Makefile.in (OCTINTERP_LINK_DEPS): Include $(LIBCRUFT) and
+	$(LIBS) in the list.
+	(OCT_LINK_DEPS): Include $(LIBOCTAVE) and $(LIBCRUFT) in the list.
+	(eigs.oct, qz.oct): Add $(BLAS_LIBS) to LDFLAGS.
+	(ccolamd.oct, symbfact.oct): Add library-specific CPPFLAGS and
+	LDFLAGS variables to CPPFLAGS and LDFLAGS.
+
+2009-08-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-struct.h, ov-struct.cc: Revert to e08d72bb988e.
+	* ov-class.h, ov-class.cc: Partially revert to e08d72bb988e.
+	(octave_class::subsasgn): Cut&paste code from octave_struct::subsasgn
+	for the nested dot indexing.
+	* ov-usr-fcn.cc (Voptimize_subasgn_calls): Default to true.
+
+2009-08-13  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc,
+	DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw.cc: Update for new FFTW
+	defines.
+
+	* Makefile.in (amd.oct, colamd.oct, dmperm.oct, symcrm.oct,
+	qr.oct, fft.oct, fft2.oct, fftn.oct, fftw.oct): Add
+	library-specific CPPFLAGS and LDFLAGS variables to CPPFLAGS
+	and LDFLAGS.
+	* oct-conf.h.in: New #defines for GLPK_CPPFLAGS, GLPK_LDFLAGS,
+	AMD_CPPFLAGS, AMD_LDFLAGS, CAMD_CPPFLAGS, CAMD_LDFLAGS,
+	CCOLAMD_CPPFLAGS, CCOLAMD_LDFLAGS, CHOLMOD_CPPFLAGS,
+	CHOLMOD_LDFLAGS, COLAMD_CPPFLAGS, COLAMD_LDFLAGS,
+	CXSPARSE_CPPFLAGS, CXSPARSE_LDFLAGS, FFTW3_CPPFLAGS,
+	FFTW3_LDFLAGS, FFTW3_LIBS, FFTW3F_CPPFLAGS, FFTW3F_LDFLAGS, and
+	FFTW3F_LIBS.
+	* toplev.cc (octave_config_info): Include them in the list.
+
+2009-08-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-class.h (octave_class): Derive from octave_struct.
+	(octave_class::octave_class): Update all constructors.
+	(octave_class::numeric_conv, octave_class::byte_size, octave_class::numel, octave_class::nfields,
+	octave_class::reshape, octave_class::resize, octave_class::is_defined,
+	octave_class::map_value): Remove methods (inherit).
+	* ov-class.h (octave_class::obsolete_copies): New field.
+	Init to 0 in all constructors.
+	(octave_class::unique_clone): New decl.
+	* ov-class.cc (octave_class::unique_clone): Fake clone if all
+	remaining copies are obsolete.
+	(octave_class::subsref): Share code with octave_struct::subsref.
+	(octave_class::subsref (..., bool auto_add)): New method.
+	(octave_class::subsasgn): If plausible, attempt to
+	optimize the method call by marking appropriate number of copies
+	obsolete. Share code with octave_struct::subsasgn.
+	(octave_class::dotasgn): New method override.
+	* ov-struct.h (octave_struct::dotref): New virtual overload.
+	(octave_struct::dotasgn): New virtual method decl.
+	* ov-struct.cc (octave_struct::dotasgn): New virtual method.
+	* ov-usr-fcn.h (octave_user_function::num_args_passed,
+	octave_user_function::saved_args): Remove fields. Wipe from all
+	constructor lists.
+	(octave_user_function::save_args_passed,
+	octave_user_function::restore_args_passed): Remove methods.
+	(octave_user_function::all_va_args): Update decl.
+	(octave_user_function::subsasgn_optimization_ok): New method decl.
+	* ov-usr-fcn.cc (octave_user_function::all_va_args): Rename from
+	octave_all_va_args, take args as a parameter.
+	(octave_user_function::subsasgn_optimization_ok): New method.
+	(octave_user_function::do_multi_index_op): Simplify.
+
+2009-08-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (octave_base_value::count): Declare as octave_idx_type.
+	(octave_base_value::octave_base_value (const octave_base_value&)):
+	Initialize count to 1.
+	(octave_base_value::unique_clone ()): New method.
+	(octave_base_value::print_with_name): Declare as non-const.
+	* ov-base.cc (octave_base_value::print_with_name): Update.
+	* ov.h (octave_value::make_unique (void)): Don't set rep->count.
+	Call unique_clone.
+	(octave_value::make_unique (int)): Don't set rep->count.
+	Call unique_clone.
+	(octave_value::octave_value (const octave_base_value *)): Declare
+	as private.
+	* ov-class.cc (octave_class::print_with_name): Avoid using clone ().
+	* ov-class.h (octave_class::print_with_name): Declare as non-const.
+
+2009-08-13  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in: Consistently add library-specific CPPFLAGS and
+	LDFLAGS variables to CPPFLAGS and LDFLAGS for .oct files that need
+	them.  Also add X11_FLAGS to CPPFLAGS for display.d display.df and
+	pic/display.o.
+
+	* oct-conf.h.in: New #defines for QHULL_CPPFLAGS, QHULL_LDFLAGS,
+	CURL_CPPFLAGS, and CURL_LDFLAGS.
+	* toplev.cc (octave_config_info): Include them in the list.
+
+2009-08-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Makefile.in: Include LDFLAGS when linking shared executable.
+
+2009-08-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fissorted, F__sort_rows_idx__, Fnorm): Mark as Built-in
+	Functions in the inline help.
+
+2009-08-11  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fftw.cc (Ffftw): Update for octave_fftw_planner
+	and octave_float_fftw_planner as singleton objects.
+
+2009-08-11  John W. Eaton  <jwe@octave.org>
+
+	* oct-conf.h.in: Use READLINE_LIBS instead of LIBREADLINE.
+	New #defines for TERM_LIBS and DL_LIBS.
+	* toplev.cc (octave_config_info): Add TERM_LIBS and DL_LIBS to the
+	struct.  Use READLINE_LIBS instead of LIBREADLINE.
+
+2009-08-11  John W. Eaton  <jwe@octave.org>
+
+	* oct-conf.h.in: New #defines for AMD_LIBS, ARPACK_LIBS,
+	CAMD_LIBS, CCOLAMD_LIBS, CHOLMOD_LIBS, COLAMD_LIBS, CXSPARSE_LIBS,
+	FT2_LIBS, GRAPHICS_LIBS, HDF5_LIBS, OPENGL_LIBS, PTHREAD_CFLAGS,
+	PTHREAD_LIBS, QHULL_LIBS, QRUPDATE_LIBS, REGEX_LIBS, UMFPACK_LIBS,
+	ZLIB_LIBS.
+
+	* toplev.cc (octave_config_info): Include them in the struct.
+
+2009-08-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fdiff): New built-in function.
+	(do_diff): New assistant function.
+
+2009-08-10  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/dlmread.cc (Fdlmread): Perform tilde expansion on
+	filename argument.
+
+2009-08-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.cc (out_of_date_check): Remove overloads. Add check_relative
+	parameter.
+	(out_of_date_check_internal): Remove.
+	* symtab.h: Update.
+	* ov-fcn-handle.cc (octave_fcn_handle::do_index_op): Call
+	out_of_date_check with check_relative = false.
+
+2009-08-09  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (Fevalin): Also return output from CATCH expression.
+
+2009-08-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fifelse): Rename to Fmerge, alias to Fifelse.
+
+2009-08-06  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-dm-template.cc, OPERATORS/op-pm-template.cc:
+	Also define conversions for null string and null sq_string.
+
+2009-08-06  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-cdm-m.cc, OPERATORS/op-dm-m.cc, OPERATORS/op-pm-m.cc:
+	Define LDMATRIX and DEFINENULLASSIGNCONV.
+	* OPERATORS/op-dm-template.cc, OPERATORS/op-pm-template.cc:
+	Include ov-null-mat.h and define assignment conversion for null
+	matrices if DEFINENULLASSIGNCONV is defined.  Define OCTAVE_LDMATRIX.
+
+2009-08-05  John W. Eaton  <jwe@octave.org>
+
+	* pt-eval.cc (tree_evaluator::visit_complex_for_command):
+	Use key_list order for iterating through map.
+
+	* Makefile.in (OCT_LINK_DEPS): Also include $(RLD_FLAG) in the list.
+
+2009-08-05  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (octave$(EXEEXT)): Clean up link flags and library list.
+	(OCTINTERP_LINK_DEPS): Omit -L../libcruft $(LIBCRUFT) $(LIBS)
+	$(FLIBS) from the list.  Include $(RLD_FLAG) in the list.
+	(OCT_LINK_DEPS): Only include -L. $(LIBOCTINTERP) in the list.
+
+2009-08-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* utils.cc (Fisindex): New DEFUN.
+
+2009-08-04  Kristian Rumberg  <kristianrumberg@gmail.com>
+
+	* input.cc (is_completing_dirfns): New function.
+	(generate_completion): Use it to selectively complete file names.
+
+2009-08-04  John W. Eaton  <jwe@octave.org>
+
+	* debug.cc (Fdbwhere): Call octave_call_stack::goto_frame_relative
+	to move to user code frame.  Get line and column information from
+	call stack.
+	* input.cc (Fkeyboard): Don't pass verbose flag to
+	octave_call_stack::goto_frame_relative.
+	(get_debug_input): Get line and column information from call stack.
+
+	* pt-eval.h, pt-eval.cc (tree_evaluator::debug_line,
+	tree_evaluator::debug_column, tree_evaluator::db_line,
+	tree_evaluator::db_column): Delete.
+	* pt-eval.cc (tree_evaluator::do_breakpoint): Don't print function
+	name and location info here.  Delete line and column number args.
+	Change all callers.
+
+	* toplev.h (octave_call_stack::do_current,
+	octave_call_stack::do_current_statement): New functions.
+	(octave_call_stack::current): Call do_current, not top.
+	(octave_call_stack::current_statement): Call do_current_statement,
+	not top_statement.
+	(octave_call_stack::top, octave_call_stack::top_statement,
+	octave_call_stack::do_top, octave_call_stack::do_top_statement):
+	Delete.
+
+2009-08-04  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (octave_call_stack::do_goto_frame_relative): Allow
+	NSKIP to be 0.  Set current scope and context.
+	* input.cc (Fkeyboard): Use octave_call_stack::goto_frame_relative
+	to set scope in user code that called the keyboard function.
+
+2009-08-04  Jaroslav Hajek  <highegg@gmail.com>
+
+	* input.cc (Fkeyboard): Only call do_keyboard, don't fiddle with
+	stack.
+
+2009-08-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/sub2ind.cc: New source.
+	* Makefile.in: Include it.
+	* ov-range.h (octave_range::octave_range (const Range&, const
+	idx_vector&)): New constructor.
+	* ov-re-mat.h (octave_matrix::octave_matrix (const NDArray&, const
+	idx_vector&)): New constructor.
+	* ov.cc (octave_value::octave_value (const idx_vector&)): New
+	constructor.
+	* ov.h: Declare it.
+
+2009-07-30  Ryan Rusaw  <rrusaw@gmail.com>
+
+	* input.cc (reading_classdef_file): New file-scope variable.
+	(gnu_readline): Also set curr_stream if reading_classdef_file.
+	(octave_gets, get_input_from_file):
+	Handle classdef files like other input files.
+	* input.h (reading_classdef_file): Provide decl.
+
+	* octave.gperf (classdef, endclassdef, endevents, endmethods,
+	endproperties, events, get, methods, properties, set): New keywords.
+
+	* lex.l: Handle classdef filees like other input files.
+	Recognize superclass method identifiers and metaclass query constructs.
+	(is_keyword_token): Recognize endclassdef, endevents, endmethods,
+	endproperties, get, set, properties, methods, and events keywords.
+	(maybe_classdef_get_set_method, parsing_classdef): New variables.
+	(handle_superclass_identifier, handle_meta_identifier):
+	New static functions.
+	(lexical_feedback::init): Initialize parsing_classdef and
+	maybe_classdef_get_set_method.
+	(display_token): Handle SUPERCLASSREF, METAQUERY, GET, SET,
+	PROPERTIES, METHODS, EVENTS, and  CLASSDEF tokens.
+	* lex.h (maybe_classdef_get_set_method, parsing_classdef):
+	Provide decls.
+	* parse.y (%union): New placeholder type, dummy_type.
+	(SUPERCLASSREF, METAQUERY, GET, SET, PROPERTIES, METHODS, EVENTS,
+	CLASSDEF): New tokens.
+	(superclass_identifier, meta_identifier, classdef_beg,
+	classdef_end, classdef1, classdef, opt_attr_list, attr_list, attr,
+	opt_superclasses, superclasses, class_body, properties_beg,
+	properties_block, properties_list, class_property, methods_beg,
+	methods_block, methods_list, events_beg, events_block,
+	events_list, class_event): New non-terminals.
+	(primary_expr): Include superclass_identifier and meta_identifier
+	as possible primary_exprs.
+	(function_beg): If parsing classdef file, set
+	lexer_flags.maybe_classdef_get_set_method to true.
+	be recognized.
+	(fcn_name): Accept GET '.' identifier or SET '.' identifier.
+	(end_error): Handle endclassdef.
+	(looking_at_classdef_keyword): New function.
+	(gobble_leading_whitespace): Handle classdef.
+	* token.h, token.cc (sc, mc):
+	New union fields for symbol classdef symbol_record info.
+	(token::token (symbol_table::symbol_record *,
+	symbol_table::symbol_record *, int, int),
+	token::token (symbol_table::symbol_record *,
+	symbol_table::symbol_record *, symbol_table::symbol_record *, int,
+	int)): New constructors.
+	(token::method_rec, token::class_rec, token::package_rec,
+	token::meta_class_rec, token::meta_package_rec): New methods.
+	(token_type): New enum values: scls_rec_token, meta_rec_token.
+	(end_tok_type): New enum values: classdef_end, events_end,
+	methods_end, properties_end.
+
+2009-07-30  David Grundberg  <individ@acc.umu.se>
+
+	* symtab.h (symbol_table::parent_scope): Remove.
+	(symbol_table::set_parent_scope): Remove.
+	(symbol_table::reset_parent_scope): Remove.
+	(symbol_table::install_subfunction): Require scope parameter
+	instead of xparent_scope default.
+	* symtab.cc: Remove symbol_table::xparent_scope
+	* lex.h (lexical_feedback::parsing_nested_function): Remove.
+	* lex.l	(is_keyword_token): Don't ignore endfunctions.
+	(prep_lexer_for_script_file): Renamed from prep_lexer_for_script.
+	(prep_lexer_for_function_file): New function.
+	(display_token): Display SCRIPT_FILE and FUNCTION_FILE.
+	(display_state): Display FUNCTION_FILE_BEGIN
+	(FUNCTION_FILE_BEGIN): New state.
+	(NESTED_FUNCTION_END, NESTED_FUNCTION_BEGIN): Remove states.
+	(prep_for_function, prep_for_nested_function): Remove functions.
+	* parse.h: Remove extern declaration parent_function_name,
+	end_tokens_expected.
+	* parse.y: Add variables current_function_depth,
+	max_function_depth, parsing_subfunctions, seen_endfunction. Remove
+	parent_function_name. Rename curr_fcn_ptr to primary_fcn_ptr. Add
+	token FUNCTION_FILE. Rename token SCRIPT to SCRIPT_FILE.
+	(function_file): New rule.
+	(input): Accept function_file.
+	(script_file): Rule renamed from script.
+	(function_file): New rule.
+	(function_list): New rule.
+	(push_fcn_symtab): Parse nested functions.
+	(fcn_name): Remove parent_function_name.
+	(function_end): Use seen_endfunction. New error messages.
+	(make_script): Use primary_fcn_ptr.
+	(frob_function): Simplify control structures. Don't use
+	symbol_table::parent_scope.
+	(push_fcn_symtab, function_end, frob_function, finish_function):
+	Use current_function_depth instead of
+	lexical_feedback::parsing_nested_function.
+	(make_return_command): Use current_function_depth instead of
+	lexical_feedback::defining_func.
+	(make_break_command, make_decl_command, maybe_warn_missing_semi):
+	Ditto
+	(parse_fcn_file): Warn when nested functions have been
+	declared. Remove superfluous local variables. Parse function files
+	using function_file rule.
+
+2009-07-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fmerge): Rename to Fifelse.
+
+2009-07-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fmerge): New DEFUN.
+	(do_merge): New helper function.
+
+2009-07-29  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (param_list_end): Also set
+	lexer_flags.looking_for_object_index to false.
+
+	* ov-float.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc,
+	ov-scalar.cc: Use complex function for acos mapper if arg is out
+	of range [-1, 1].
+
+	* ov-bool.cc (octave_bool::load_ascii): Call template function to
+	read value.
+	* ov-scalar.cc (octave_scalar::load_ascii): Likewise.
+	* ov-complex.cc (octave_complex::load_ascii): Likewise.
+	* ov-float.cc (octave_float_scalar::load_ascii): Likewise.
+	* ov-flt-complex.cc (octave_float_complex::load_ascii): Likewise.
+	* ls-mat-ascii.cc (read_mat_ascii_data): Likewise.
+
+	* ov-re-sparse.cc (octave_sparse_matrix::load_binary,
+	octave_sparse_matrix::load_hdf5): Perform sanity check on indices.
+	* ov-cx-sparse.cc (octave_sparse_complex_matrix::load_binary,
+	octave_sparse_complex_matrix::load_hdf5): Likewise.
+	* ov-bool-sparse.cc (octave_sparse_bool_matrix::load_binary,
+	octave_sparse_bool_matrix::load_hdf5): Likewise.
+
+2009-07-29  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op):
+	Cache lookups also for classes.
+
+2009-07-28  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Support auto-expanding scalar
+	cells.
+
+2009-07-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::xfind,
+	symbol_table::fcn_info::fcn_info_rep::find,
+	symbol_table::fcn_info::fcn_info_rep::find_function,
+	symbol_table::fcn_info::find,
+	symbol_table::fcn_info::find_function,
+	symbol_table::find, symbol_table::do_find,
+	symbol_table::find_function):
+	Add local_funcs parameter.
+	* symtab.h: Update decls.
+	* ov-fcn-handle.cc (make_fcn_handle): Add local_funcs parameter.
+	* ov-fcn-handle.h: Update decls.
+
+2009-07-24  John W. Eaton  <jwe@octave.org>
+
+	* pt-mat.cc (DO_SINGLE_TYPE_CONCAT_NO_MUTATE): New macro.
+	(tree_matrix::rvalue1): Use it to avoid complex -> real conversion.
+
+2009-07-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCIONS/cellfun.cc (Fcellfun): Avoid double error messages.
+
+2009-07-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* load-path.cc (load_path::do_any_class_method): New method.
+	* load-path.h (load_path::do_any_class_method): New method decl.
+	(load_path::any_class_method): New method.
+	* ov-fcn-handle.cc (octave_fcn_handle::do_multi_index_op): Support
+	calls without non-overloaded base function.
+	(make_fcn_handle): Support creation without non-overloaded base
+	function.
+
+2009-07-23  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::pixel2axes_or_ca):
+	Replace plot_window::pixel2axes and use algorithm from octavede.
+	(plot_window::handle): Zooming now works on the axes below the
+	mouse pointer instead of the current axes. Combine old and new
+	zooming methods.
+	(help_text): Update to reflect new mouse/key bindings.
+
+2009-07-23  Soren Hauberg  <hauberg@gmail.com>
+
+	* graphics.cc (axes::properties::zoom_about_point,
+	axes::properties::translate_view): New functions.
+	(axes::properties::zoom): make zoom_stack usage optional.
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::handle): Use new
+	zoom API.
+
+2009-07-23  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (safe_symbol_lookup): New function.
+	(symbol_exist): Use it.
+
+2009-07-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/chol.cc (Fcholupdate,
+	Fcholinsert, Fcholdelete, Fcholshift): Replace is_matrix_type ->
+	is_numeric_type.
+
+2009-07-23  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (IGNORE_EXCEPTION, SAFE_CALL): New macros.
+	(clean_up_and_exit, do_octave_atexit): Use SAFE_CALL to handle
+	exceptions while preparing to exit.
+
+2009-07-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.cc (get_dispatch_type): Omit first-arg dispatch, export.
+	* symtab.h (get_dispatch_type): Provide decl.
+	* ov-fcn-handle.h (octave_fcn_handle::warn_reload): Delete.
+	(octave_fcn_handle::disp): New field.
+	(octave_fcn_handle::str_ov_map): New typedef.
+	(octave_fcn_handle::octave_fcn_handle (..., str_ov_map *)): New
+	constructor.
+	(octave_fcn_handle::do_multi_index_op): New method decl.
+	(octave_fcn_handle::is_overloaded): New method.
+	* ov-fcn-handle.cc
+	(octave_fcn_handle::do_multi_index_op): New method.
+	(octave_fcn_handle::subsref): Rewrite using do_multi_index_op.
+	(octave_fcn_handle::make_fcn_handle): Construct overloaded handles if
+	appropriate.
+	(Ffunctions): Indicate (statically) overloaded handles.
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Update & modernize.
+	* DLD-FUNCTIONS/bsxfun.cc (Fbsxfun): Ditto.
+
+2009-07-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.cc (symbol_table::find,
+	symbol_table::find_function,
+	symbol_table::symbol_record::find,
+	symbol_table::fcn_info::find,
+	symbol_table::fcn_info::fcn_info_rep::find,
+	symbol_table::fcn_info::fcn_info_rep::xfind): Simplify argument lists.
+	* symtab.h: Update declarations.
+	* pt-id.cc (tree_identifier::rvalue): Simplify.
+	* pt-id.h (tree_identifier::do_lookup): Simplify.
+	* pt-idx.cc (tree_index_expression::rvalue): Update.
+	* variables.cc (symbol_exist): Update.
+
+2009-07-21  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (symbol_table::builtin_find,
+	symbol_table::do_builtin_find,
+	symbol_table::fcn_info::builtin_find,
+	symbol_table::fcn_info::fcn_info_rep::builtin_find,
+	symbol_table::fcn_info::fcn_info_rep::x_builtin_find): New functions.
+	* symtab.h: Provide decls.
+	* DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Call
+	symbol_table::builtin_find instead of symbol_table::find_function.
+
+2009-07-20  Aleksej Saushev  <asau@inbox.ru>
+
+	* sysdep.cc: Also define BSD_init if __NetBSD__ is defined.
+	(sysdep_init): Also call BSD_init if __NetBSD__ is defined.
+
+2009-07-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* bitfcns.cc (DO_UBITSHIFT): Avoid overflow.
+	(DO_SBITSHIFT): Fix mask calculation.
+
+2009-07-17  Benjamin Lindner  <lindnerb@users.sourceforge.net>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (F__magick_read__):
+	Determine correct number of bits required when reading images.
+
+2009-07-16  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (get_array_limits): Require min_pos value to be
+	greater than zero.
+
+2009-07-15  Robert T. Short  <octave@phaselockedsystems.com>
+
+	* DLD-FUNCTIONS/filter.cc: New tests.
+
+2009-07-09  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (Fones, Fzeros, Ftrue, Ffalse): Update docstrings.
+
+2009-07-08  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (convert_cdata): Return NaN for NaN values in cdata.
+
+	* pt-assign.cc (maybe_warn_former_built_in_variable): Improve message.
+
+2009-07-04  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-eval.cc (do_unwind_protect_cleanup_code): Add missing
+	unwind_protect::run.
+
+2009-07-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* help.cc (do_which): Also look for files.
+
+2009-07-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Cell.cc (Cell::index): Use proper resize_fill_value.
+
+2009-07-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.h (symbol_table::get_fcn_info): New private static method.
+	(symbol_record_rep::finfo): New field.
+	* symtab.cc (symbol_record::find): Use cached finfo if possible,
+	cache on successful queries.
+
+2008-07-01  David Bateman  <dbateman@free.fr>
+
+	* pr-output.cc (static inline std::string rational_approx (double,
+	int)): Test for underflow of fractional part of rational approximation
+	earlier in the loop.
+
+2009-07-01  Joe Rothweiler  <octaveuser@sensicomm.com>
+
+	* input.cc (raw_mode): Use TCSADRAIN if no wait.
+
+2009-06-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.h (force_variable): Remove assertion.
+
+2009-06-28  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* Makefile.in (INCLUDES): Install txt-eng.h and txt-eng-ft.h.
+	* gl-render.cc (opengl_renderer::draw_text): Fix bitmap offset
+	computation for 90x rotated text.
+	* txt-eng-ft.cc (ft_render::render): Compute bitmap pixels correctly
+	for 90x rotated text.
+
+	* gl-render.cc (opengl_renderer::draw(text::properties)): Don't do
+	anything if the bitmap data is empty. Issue a warning instead of
+	an error if Freetype library is not available.
+	* txt-eng-ft.cc (ft_manager::do_get_font): Small change in error
+	string (add prefix).
+	(ft_render::render): Don't do anything if the bitmap data is empty.
+
+2009-06-28  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.h (erase_scope (void *)): Remove overload.
+
+2009-06-26  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* txt-eng.h: New file for simple text engine.
+	* txt-eng.h, txt-eng.cc: Freetype based text render engine.
+	* Makefile.in: Add txt-eng-ft.cc to list of source files.
+	* gl-render.h (opengl_renderer::draw_text, opengl_renderer::set_font,
+	opengl_renderer::draw(text::properties)): New method to support text
+	rendering using the Freetype renderer.
+	(opengl_renderer::text_renderer): New field for text rendering.
+	* gl-render.cc (opengl_renderer::draw(graphics_object)): Support text
+	object.
+	(opengl_renderer::draw(figure::properties)): Setup alpha test.
+	(opengl_renderer::draw(axes::properties)): Render tick labels, hide
+	labels for depth axes and fix a problem in calling
+	graphics_object::get(char*).
+	(opengl_renderer::draw(text::properties)): Basic text rendering using
+	Freetype engine.
+	(opengl_renderer::draw_text): Ditto.
+	(opengl_renderer::set_color): Propagate the color to the text
+	renderer.
+	(opengl_renderer::set_font): New utility method.
+	* graphics.cc (axes::properties::init, axes::properties::set_defauls):
+	(Re)initialize tick labels, labels and title property.
+
+2009-06-26  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (Faddpath): Preserve order of prepended elements.
+
+2009-06-25  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (gh_manager::restore_gcbo):
+	Arg is now void, not void*.
+
+2009-06-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* unwind-prot.h (unwind_protect::fcn_elem): New class.
+	(unwind_protect::fcn_arg_elem): New class.
+	(unwind_protect::method_elem): New class.
+	(unwind_protect::add_action_var): Rename to add_fcn.
+	(unwind_protect::add_fcn): New static method.
+	(unwind_protect::add_method): New static method.
+
+	* symtab.h: Split clear_variables into two overloads.
+	* toplev.h (octave_call_stack::restore_frame): New static method.
+
+	* graphics.cc: Update unwind_protect usage.
+	* input.cc: Ditto.
+	* lex.h: Ditto.
+	* ls-mat5.cc: Ditto.
+	* mex.cc: Ditto.
+	* ov-builtin.cc: Ditto.
+	* ov-fcn-handle.cc: Ditto.
+	* ov-mex-fcn.cc: Ditto.
+	* ov-usr-fcn.cc: Ditto.
+	* parse.y: Ditto.
+	* pt-eval.cc: Ditto.
+	* toplev.cc: Ditto.
+	* variables.cc: Ditto.
+
+2009-06-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* input.cc: Use unwind_protect::add_action_var where appropriate.
+	* ls-mat5.cc: Ditto.
+	* ov-fcn-handle.cc: Ditto.
+	* parse.y: Ditto.
+	* toplev.cc: Ditto.
+	* variables.cc: Ditto.
+
+2009-06-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* unwind-prot.h (unwind_protect::elem): New polymorphic class.
+	(unwind_protect::restore_var): Remove.
+	(unwind_protect::restore_mem): Remove.
+	(unwind_protect::elt_list): Update.
+	(unwind_protect::add (elem *)): New method.
+	(unwind_protect::add (void (*)(void *), void *)): Reimplement.
+	(unwind_protect::run (void)): Rewrite.
+	(unwind_protect::discard (void)): Rewrite.
+	(unwind_protect::protect_var): Rewrite.
+	(unwind_protect::protect_mem): Rewrite.
+	(unwind_protect::add_action_var): New method.
+	* unwind-prot.cc (unwind_protect::restore_mem): Remove.
+
+2009-06-24  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* oct-map.cc (Octave_map::squeeze, Octave_map::permute,
+	Octave_map::transpose, Octave_map::reshape, Octave_map::concat,
+	Octave_map::index): Add tests for preservation of key order in
+	struct arrays.
+
+2009-06-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-mat.cc (get_concat_class): Use empty string as zero value.
+	(tm_row_const_rep::tm_row_const_rep): Initialize class_nm to empty
+	string.
+	(tm_const::tm_const): Ditto.
+
+2009-06-24  John W. Eaton  <jwe@octave.org>
+
+	* pt-assign.cc (former_built_in_variables): Remove "ans" from the list.
+
+2009-06-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* unwind-prot.h (restore_var, restore_mem): Hide also copy
+	constructors.
+
+2009-06-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* quit.h (octave_quit_exception): Delete.
+	(exit_status, quitting_gracefully): New globals.
+	* quit.cc: Initialize them.
+	(Fquit): Set the globals, simulate interrupt.
+	(main_loop): Handle exit properly.
+	* octave.cc (execute_eval_option_code): Ditto.
+	(execute_command_line_file): Ditto.
+	* pt-eval.cc (do_unwind_protect_cleanup_code):
+	Fix order of unwind_protect calls.
+
+2009-06-23  John W. Eaton  <jwe@octave.org>
+
+	* oct-map.cc (Octave_map::squeeze, Octave_map::permute,
+	Octave_map::transpose, Octave_map::reshape, Octave_map::concat):
+	Preserve key order.
+
+2009-06-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-eval.cc (tree_evaluator::visit_try_catch_command): Simplify.
+
+2009-06-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc: Modernize unwind_protect usage.
+	* DLD-FUNCTIONS/daspk.cc: Ditto.
+	* DLD-FUNCTIONS/dasrt.cc: Ditto.
+	* DLD-FUNCTIONS/dassl.cc: Ditto.
+	* DLD-FUNCTIONS/eigs.cc: Ditto.
+	* DLD-FUNCTIONS/lsode.cc: Ditto.
+	* DLD-FUNCTIONS/quad.cc: Ditto.
+	* DLD-FUNCTIONS/rand.cc: Ditto.
+	* debug.cc: Ditto.
+	* dynamic-ld.cc: Ditto.
+	* error.cc: Ditto.
+	* graphics.cc: Ditto.
+	* help.cc: Ditto.
+	* input.cc: Ditto.
+	* load-path.cc: Ditto.
+	* ls-mat4.cc: Ditto.
+	* ls-mat5.cc: Ditto.
+	* mex.cc: Ditto.
+	* oct-hist.cc: Ditto.
+	* octave.cc: Ditto.
+	* ov-builtin.cc: Ditto.
+	* ov-class.cc: Ditto.
+	* ov-fcn-handle.cc: Ditto.
+	* ov-list.cc: Ditto.
+	* ov-mex-fcn.cc: Ditto.
+	* ov-struct.cc: Ditto.
+	* ov-usr-fcn.cc: Ditto.
+	* pager.cc: Ditto.
+	* pr-output.cc: Ditto.
+	* pt-arg-list.cc: Ditto.
+	* pt-eval.cc: Ditto.
+	* toplev.cc: Ditto.
+	* variables.cc: Ditto.
+
+2009-06-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* unwind-prot.h (unwind_protect): Rewrite.
+	(unwind_protect::protect_var): New class.
+	(unwind_protect::protect_mem): New class.
+	* unwind-prot.cc (unwind_protect): Rewrite.
+	* pt-eval.cc (tree_evaluator::visit_try_catch_command): Delete frame
+	properly.
+
+2009-06-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-cell.cc (octave_cell::all_strings): Avoid duplicate conversions.
+
+2009-06-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (Fsubsasgn): Uniquify shared value before assigning to it.
+
+2009-06-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc: Update docs.
+
+2009-06-17  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxArray_octave_value::get_data):
+	If octave_value::mex_get_data returns a valid pointer, mark it as
+	foreign and return it instead of enumerating the types that can be
+	handled directly.
+
+	* ov-re-mat.h (octave_matrix::mex_get_data): New function.
+	* ov-bool-mat.h (octave_bool_matrix::mex_get_data): Ditto.
+	* ov-flt-re-mat.h (octave_float_matrix::mex_get_data): Ditto.
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::mex_get_data): Ditto.
+	* ov-base-mat.h (octave_base_matrix::mex_get_data): Delete.
+
+2009-06-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.h (symbol_table::set_scope_and_context): Avoid checking
+	error_state for setting context.
+
+2009-06-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-re-mat.h (octave_matrix::octave_matrix (const Array<octave_idx_type>&,
+	bool)): New constructor.
+	* ov.cc (octave_value::octave_value (const Array<octave_idx_type>&,
+	bool)): New constructor.
+	* ov.h: Declare it.
+
+	* data.cc (Fsort, F__sort_rows_idx__): Use the new constructor.
+	* DLD-FUNCTIONS/find.cc (Ffind): Ditto.
+	* DLD-FUNCTIONS/lookup.cc (Flookup): Ditto.
+	* DLD-FUNCTIONS/max.cc (Fmax, Fmin, Fcummax, Fcummin): Ditto.
+
+2009-06-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-mat.h (octave_base_matrix::idx_cache): New member field.
+	(octave_base_matrix::typ): Turn to MatrixType *.
+	(octave_base_matrix::octave_base_matrix (...)): Update constructors.
+	(octave_base_matrix::clear_cached_info,
+	octave_base_matrix::set_idx_cache): New member functions.
+	* ov-base-mat.cc (octave_base_matrix::assign,
+	octave_base_matrix::delete_elements): Call clear_cached_info here.
+	* ov-re-mat.h (octave_matrix::index_vector): Use idx_cache.
+	* ov-flt-re-mat.h (octave_float_matrix::index_vector): Ditto.
+	* ov-bool-mat.h (octave_bool_matrix::index_vector): Ditto.
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::index_vector): Ditto.
+	* ov-range.h (octave_range::idx_cache): New member field.
+	(octave_range::octave_range (...)): Update constructors.
+	(octave_range::clear_cached_info,
+	octave_base_matrix::set_idx_cache): New member functions.
+	(octave_range::idx_vector): Use idx_cache.
+
+2009-06-14  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (axes::properties::xtick, axes::properties::ytick,
+	axes::properties::ztick, axes::properties::xticklabelmode,
+	axes::properties::yticklabelmode, axes::properties::zticklabelmode):
+	Add 'u' modifier to enable updaters.
+	(axes::properties::calc_ticklabels): New function to update tick
+	labels.
+	(axes::properties::update_xtick, axes::properties::update_ytick,
+	axes::properties::update_ztick,
+	axes::properties::update_xticklabelmode,
+	axes::properties::update_yticklabelmode,
+	axes::properties::update_zticklabelmode): Add updaters to update tick
+	labels correctly.
+	(axes::properties::update_xlim, axes::properties::update_ylim,
+	axes::properties::update_zlim): Update tick labels.
+	* graphics.cc (axes::properties::calc_ticklabels): New function to
+	update tick labels.
+
+2009-06-14  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc (Flookup): Support character array lookup.
+
+2009-06-12  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn-handle.cc (make_fcn_handle): Accept operators which have
+	corresponding functions and make function handles using the names.
+	New test.
+
+2009-06-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc (do_numeric_lookup): New template function.
+	(Flookup): Extend to support b and m options, improve diagnostic.
+	Refactor.
+
+2009-06-12  Kai NODA  <nodakai@gmail.com>
+
+	* ls-mat4.h: Fix include guard
+	* ov-type-conv.h: Add missing include guard.
+
+2009-06-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (BINARY_ASSOC_OP_DEFUN_BODY): New helper macro.
+	(Fplus, Fmtimes, Ftimes, Fand, For): Allow >= 1 arguments.
+
+2009-06-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-cell.cc (octave_cell::sort (Array<octave_idx_type>&)): Simplify.
+
+2009-06-11  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc: Keep long options alphabetized.
+
+	* display.h (display_info::no_window_system): New static function.
+	(display_info::display_info, display_info::init,
+	display_info::instance_ok): New argument, QUERY.
+	(display_info::init): Skip query if QUERY is false.
+
+	* octave.cc (long_opts, octave_main): Handle --no-window-system option.
+	(NO_WINDOW_SYSTEM_OPTION): New defined value.
+	(usage_string, verbose_usage): Mention --no-window-system option.
+
+2009-06-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-class.cc (octave_class::subsref): Set up proper nargout for call to subsref
+	method.
+	* ov-class.cc (octave_class::subsref): Unpack cs-list and setup nargin
+	for call to subsasgn.
+
+2009-06-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.cc (octave_base_value::numel (const octave_value_list&),
+	octave_base_value::size): New virtual methods.
+	* ov-base.h: Declare them.
+	* ov.h (octave_value::numel (const octave_value_list&)): New method.
+	(octave_value::size): Forward to octave_base_value.
+	* ov-class.cc (octave_class::numel (const octave_value_list&),
+	octave_base_value::size): New method overrides.
+	* ov-class.h: Declare them.
+	* pt-idx.cc (tree_index_expression::lvalue): Rewrite.
+	* data.cc (Fnumel): Allow indexed query.
+
+2009-06-10  John W. Eaton  <jwe@octave.org>
+
+	* pt-fcn-handle.cc (tree_anon_fcn_handle::dup): Don't convert to
+	tree_constant object here.  Do inherit from current symbol table
+	scope and context.  New test.
+
+	* lex.l	(handle_identifier): Set lexer_flags.looking_for_object_index
+	false if identifier is a keyword.
+	({IDENT}{S}*): Don't set lexer_flags.looking_for_object_index here.
+
+2009-06-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* octave.cc (octave_main): Call initialize_command_input
+	conditionally. Move line_editing update in front of it.
+	Call command_editor::force_default_editor if not line_editing.
+
+2009-06-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Flog2): Fix tests.
+
+2009-06-08  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (symbol_exist): Returnn 1 for function handles and
+	inline function objects.
+
+2009-06-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* symtab.h (symbol_table::do_clear_global,
+	symbol_table::do_clear_global_pattern): Properly erase from both local
+	and global table.
+
+2009-06-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* variables.cc (Fclear): Clear also globals when called without
+	arguments.
+
+2009-06-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* graphics.cc (color_property::do_set): Allow a wider range of types.
+
+2009-06-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/find.cc (Ffind): Fix docs. Improve second argument
+	handling. Add regression tests.
+
+2009-06-06  Rik  <rdrider0-list@yahoo.com>
+
+	* data.cc: Update documentation for 'complex' function
+
+2009-06-06  Rik  <rdrider0-list@yahoo.com>
+
+	* load-save.cc: Update documentation for NA and isna functions
+
+2009-06-06  Rik  <rdrider0-list@yahoo.com>
+
+	* load-save.cc: Update documentation for load and save
+
+2009-06-06  Rik  <rdrider0-list@yahoo.com>
+
+	* pr-output.cc: Update documentation for 'format'
+
+2009-06-05  Rik  <rdrider0-list@yahoo.com>
+
+	* variables.cc: Update documentation for 'who' family of functions
+
+2009-06-03  Rik  <rdrider0-list@yahoo.com>
+
+	* input.cc: Correct documentation for keyboard function
+
+2009-06-02  Rob Mahurin  <rob@utk.edu>
+
+	* Makefile.in: Add CARBON_LIBS to OCTINTERP_LINK_DEPS.
+	From Bernard Desgraups <bdesgraupes@orange.fr>.
+
+2009-06-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.cc (octave_base_value::numeric_assign): Gripe when no index
+	given.
+	* ov-cell.cc (octave_cell::subsasgn): Ditto.
+	* ov-struct.cc (octave_struct::subsasgn): Ditto.
+	* ov-list.cc (octave_list::subsasgn): Ditto.
+
+2009-05-28  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::do_files): Avoid shadow warning from GCC.
+
+2009-05-27  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (write_image):
+	Bail out if given indexed image.
+
+2009-05-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (encode_map): Fix RGB color
+	construction.
+
+2009-05-26  John W. Eaton  <jwe@octave.org>
+
+	* load-path.h, load-path.cc (load_path::files, load_path::do_files):
+	New arg, OMIT_EXTS.
+	* help.cc (F__list_functions__): Call load_path::files with
+	omit_exts set to true.
+
+	* symtab.h
+	(symbol_table::symbol_record::symbol_record_rep::is_variable):
+	Use "! is_local ()" instead of storage_class != local.
+	(symbol_table::do_variable_names): Only add variables to the list.
+	(symbol_table::unmark_forced_variables): New static function
+	* variables.cc (do_who): Use is_variable instead of is_defined.
+	Also limit output to variables when using regexp pattern.
+	* octave.cc (unmark_forced_vars): Delete.
+	(execute_eval_option_code): Don't add unmark_forced_vars to
+	unwind_protect stack here.
+	* toplev.cc (main_loop): Add symbol_table::unmark_forced_variables
+	to the unwind_protect stack here.
+	* input.cc (get_debug_input): Likewise.
+	* parse.y (parse_fcn_file, eval_string): Likewise.
+
+2009-05-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* toplev.h (quit_allowed): New global variable.
+	* toplev.cc (quit_allowed): Declare it.
+	(Fquit): Raise error if quitting is not allowed.
+	* octave.cc (octave_main): if running as embedded, disable quit by
+	default.
+
+2009-05-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* variables.cc (do_who): Only output symbols with a defined value.
+
+2009-05-22  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* toplev.h (main_loop): Tag with OCTINTERP_API.
+	* input.h (octave_read, get_input_from_file, get_input_from_stdin):
+	Ditto.
+	* lex.h (create_buffer, current_buffer, switch_to_buffer,
+	delete_buffer, restore_input_buffer, delete_input_buffer): Ditto.
+
+2009-05-22  Robert T. Short  <octave@phaselockedsystems.com>
+
+	* ov-class.h, ov-class.cc (octave_class::clear_exemplar_map):
+	New function.
+	* symtab.h (symbol_record::clear_objects,
+	symbol_record::do_clear_objects): New functions.
+	* variables.cc (do_matlab_compatible_clear, clear):
+	Handle -classes option.
+
+2009-05-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::assign (const
+	octave_value_list, typename MT::element_type)): Avoid out of bounds
+	assignments.
+
+2009-05-21  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.cc (figure::properties::get_boundingbox,
+	figure::properties::set_boundingbox): Get screen size from root
+	object.
+	(convert_position): Get screen resolution from root object and remove
+	unneeded "backend" argument.
+	(axes::properties::get_boundingbox,
+	figure::properties::get_boundingbox,
+	figure::properties::set_boundingbox): Remove unneeded backend argument
+	to convert_position call.
+
+	* debug.h (class bp_table): Tag with OCTINTERP_API.
+	* input.h (Vdebugging): Ditto.
+	* pt-eval.h (class tree_evaluator): Ditto.
+	* toplev.h (class octave_call_stack): Ditto.
+
+	* file-io.cc (mkstemp): Add mktemp-based implementation of mkstemp on
+	platforms that do not have it (mkstemp is required by the new help
+	system).
+
+	* TEMPLATE-INST/Array-os.cc: Add "extern template" declaration for
+	Array<octave_idx_type> to avoid implicit instantiation (and duplicate
+	symbols at link-time) [Win32]
+
+2009-05-20  John W. Eaton  <jwe@octave.org>
+
+	* pt-assign.cc (maybe_warn_former_built_in_variable):
+	Set initialized to true when done initializing vars set.
+	From Michael Goffioul  <michael.goffioul@gmail.com>.
+
+2009-05-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-typeinfo.h
+	(octave_value_typeinfo::unary_class_ops,
+	octave_value_typeinfo::unary_ops,
+	octave_value_typeinfo::non_const_unary_ops,
+	octave_value_typeinfo::binary_class_ops,
+	octave_value_typeinfo::binary_ops,
+	octave_value_typeinfo::compound_binary_class_ops,
+	octave_value_typeinfo::compound_binary_ops,
+	octave_value_typeinfo::cat_ops,
+	octave_value_typeinfo::assign_ops,
+	octave_value_typeinfo::assignany_ops,
+	octave_value_typeinfo::pref_assign_conv,
+	octave_value_typeinfo::type_conv_ops,
+	octave_value_typeinfo::widening_ops): Declare as Array<void *>.
+	* ov-typeinfo.cc: Reflect changes.
+
+2009-05-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* toplev.h (octave_exit_func): New typedef.
+	(octave_exit): Change to octave_exit_func.
+
+2009-05-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-typeinfo.cc: Don't include oct-obj.h.
+
+2009-05-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* toplev.h (octave_quit_exception): New class.
+	(octave_exit): New global variable.
+	* toplev.cc (octave_exit): Initialize to ::exit.
+	(clean_up_and_exit): Call octave_exit if set.
+	(Fquit): Raise octave_quit_exception to quit.
+	(main_loop): Catch octave_quit_exception.
+	* octave.cc (execute_command_line_file): Ditto.
+	(execute_eval_option_code): Ditto.
+
+2009-05-19  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (F__fltk_redraw__): New function.
+	(F__init_fltk__): Call add_input_event_hook with feval to add
+	__fltk_redraw__ to the list of even hook functions to call.
+	Call mlock when initializing.
+	(F__remove_fltk__): Call remove_input_event_hook with feval to
+	remove __fltk_redraw__ from the list of event hook functions.
+	Unlock __init_fltk__ when shutting down.
+
+	* input.cc (Finput_event_hook): Delete.
+	(input_event_hook): Handle set of functions instead of just one.
+	(Fadd_input_event_hook, Fremove_input_event_hook): New functions.
+
+2009-05-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Makefile.in: Add X11_LIBS to OCTINTERP_LINK_DEPS.
+
+2009-05-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* TEMPLATE-INST/Array-tc.cc: Change #include.
+
+2009-05-15  Robert T. Short  <octave@phaselockedsystems.com>
+
+	* ov-class.cc (octave_class::exemplar_info): Fix typo in error message.
+	* ov-class.cc (Fmethods): Methods returns cell array.
+	* ls-mat5.cc (read_mat5_binary_element):
+	Construct exemplar array and ensure inheritance is correct.
+
+2009-05-15  John W. Eaton  <jwe@octave.org>
+
+	* error.cc (Ferror): Handle error struct argument.
+
+	* ls-mat5.cc (save_mat5_binary_element): Avoid multiple calls to
+	contents method.  From David Bateman <dbateman@free.fr>.
+	(save_mat5_element_length): Use const Cell to avoid making copies
+	when indexing.
+
+2009-05-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-stream.cc: Don't instantiate Array2<read_fptr>.
+	(octave_stream::read): Make read_fptr_table a static 2d array.
+	(FILL_TABLE_ROW): Update.
+
+2009-05-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (F__accumarray_sum__): Optimize the constant range case.
+
+2009-05-11  John W. Eaton  <jwe@octave.org>
+
+	* sparse-xdiv.cc (do_rightdiv_sm_dm, do_leftdiv_dm_sm):
+	Avoid apparent MSVC bug with typedef.
+
+	* Makefile.in (install-lib): Remove
+	$(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB_VER), not
+	$(DESTDIR)$(octlibdir)/$(SHLPRE)octinterp.$(SHLEXT_VER).
+
+2009-05-08  Carsten Clark  <tantumquantum+gnuoctave@gmail.com>
+
+	* data.cc (Fissorted): Fix typo in documentation entry.
+
+2009-05-07  Robert T. Short  <octave@phaselockedsystems.com>
+
+	* ov-class.h, ov-class.cc (octave_class::reconstruct_exemplar):
+	New function.
+	* ov-class.cc (octave_class::load_binary, octave_class::load_hdf5,
+	octave_class::load_ascii): Construct exemplar table and ensure
+	inheritance is correct.
+	* ov-struct.cc (struct): Return struct from object.
+
+2009-05-07  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (base_graphics_object::set): Undo previous change.
+	(base_properties::set (const caseless_str&, const octave_value&):
+	New virtual function.
+	(base_properties::set (const caseless_str&, const std::string&,
+	const octave_value&)): No longer virtual.
+
+	* toplev.cc (octave_config_info): Remove F2C and F2CFLAGS from the
+	config infor struct.
+	* oct-conf.h.in (OCTAVE_CONF_F2CFLAGS, OCTAVE_CONF_F2C):
+	Delete definitions.
+
+2009-05-07  Marco Atzeri  <marco_atzeri@yahoo.it>
+
+	* Makefile.in: (SHLPRE): Rename from SHLLIBPRE.
+
+2009-05-07  John W. Eaton  <jwe@octave.org>
+
+	* genprops.awk (emit_declarations): Emit decls for static
+	has_property functions.
+	(emit_source): Add class name argument to base_properties::set
+	function.  Pass class name to set_dynamic and
+	base_properties::set.  Emit definitions for has_property
+	functions.
+	* graphics.h.in, graphics.cc
+	(base_properties::set, base_properties::set_dynamic):
+	New argument CNAME.
+	(base_properties::all_dynamic_properties): New static data member.
+	(base_properties::has_dynamic_property): New static function.
+	(base_graphics_object::set): Pass class name to
+	base_properties::set function.
+	(property_list::set): Check for invalid property names.
+
+2009-05-06  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-re-mat.cc (Fdouble): Fix order of branches.
+
+2009-05-05  John Swensen  <jpswensen@comcast.net>
+
+	* debug.h, debug.cc (breakpoints): Rename from bp_map, use a
+	std::set instead of a std::map object.  Change all uses.
+	(bp_table::do_get_breakpoint_list): Simplify.
+
+2009-05-05  Robert T. Short  <octave@phaselockedsystems.com>
+
+	* ov-class.h, ov-class.cc (octave_class::reconstruct_parents):
+	New function.
+	* ov-class.cc (octave_class::load_binary, octave_class::load_hdf5):
+	Contstruct parent list.
+	(get_current_method_class): Clean up method class extraction.
+
+2009-05-05  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (array_property::validate): Require object to be any
+	numeric type, not necessarily a double precision value.
+
+	* variables.cc (set_internal_variable): Pass NM in call to error.
+
+2009-05-04  Peter O'Gorman  <pogma@thewrittenword.com>
+
+	* utils.cc: Don't define HAVE_C99_VSNPRINTF here.
+
+2009-05-01  John W. Eaton  <jwe@octave.org>
+
+	* error.cc (Vlast_error_file, Vlast_error_name, Vlast_error_line,
+	Vlast_error_column): Delete.
+	(Vlast_error_stack): New static variable.
+	(initialize_last_error_stack): New static function.
+	(verror, Frethrow, Flasterror): Set or use Vlast_error_stack, not
+	Vlast_error_file, etc.
+
+2009-04-27  John W. Eaton  <jwe@octave.org>
+
+	* ov-class.cc (octave_class::dotref): Handle empty parent class.
+	(octave_class::get_current_method_class): Allow result to be empty.
+	(called_from_builtin): New static function.
+	(octave_class::subsref, octave_class::subsasgn): Use it.
+
+2009-04-23  John W. Eaton  <jwe@octave.org>
+
+	* ov-class.cc (Fclass): Check newly constructed classes against
+	the first constructed object of the class.
+
+	* ov-class.h, ov-class.cc (octave_class::exmplar_info): New class.
+	(exemplar_map): New static data member.
+	(exemplar_iterator, exemplar_const_iterator): New typedefs.
+
+	* ov-class.h (octave_class::nparents,
+	octave_class::parent_class_name_list): New functions.
+	* ov.h (octave_base_value::nparents,
+	octave_base_value::parent_class_name_list): New functions.
+	* ov-base.h, ov-base.cc (octave_base_value::nparents,
+	octave_base_value::parent_class_name_list): New functions.
+	(parent_class_names): Error if called for wrong type argument.
+
+	* symtab.cc (load_out_of_date_fcn): New arg, dispatch_type.
+	(out_of_date_check_internal): Pass dispatch type to
+	load_out_of_date_fcn.
+
+2009-04-22  John W. Eaton  <jwe@octave.org>
+
+	* ov-base-int.cc (octave_base_int_helper<T, false,
+	false>::char_value_out_of_range): Correct result for specialization.
+
+	* ov-class.cc (octave_class::dotref, octave_class::subsasgn):
+	Protect against possibly invalid octave_value -> string conversions.
+
+2009-04-22  Robert T. Short  <octave@phaselockedsystems.com>
+
+	* variables.cc (symbol_exist): Also return 1 for objects.
+	* ov-base.h (octave_base_value::assign): New virtual function.
+	* ov-class.h (octave_class::assign): New function.
+	* ov-class.cc (octave_class::find_parent_class): Simplify.
+	(octave_class::octave_class): Don't allow duplicate parent classes.
+	(octave_class::subsasgn): Allow cls = method (cls, value) to work
+	properly when method is a parent-class method.
+	(get_method_class): New static function.
+	(octave_class:subsasgn, octave_class::dotref): Use it.
+	(F__isa_parent__): New function.
+
+2009-04-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-range.cc (octave_range::char_array_value): New virtual function
+	override.
+	* ov-range.h: Declare it.
+
+2009-04-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element):
+	Update class name even for all-zeros elements.
+	(get_concat_class): Update the default value if possible.
+
+2009-04-21  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (Fassignin): Add missing unwind_protect frame.
+
+	* toplev.h (push (symbol_table::scope_id, symbol_table::context_id)):
+	New function.
+
+	* toplev.cc (main_loop): Don't call symbol_table::reset_scope.
+
+	* mex.cc (mexGetVariable, mexPutVariable): Use unwind_protect to
+	restore call stack and scope.
+
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Don't use symbol_table::push_scope.
+	* variablees.cc (do_who): Likewise.  Use octave_call_stack and
+	unwind_protect to manage change in scope.
+	* ov-fcn-handle.cc (octave_fcn_handle::load_ascii,
+	octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5):
+	Likewise.
+	* ls-mat5.cc (read_mat5_binary_element): Likewise.
+
+	* symtab.h (erase_scope (void*)): New function, for unwind_protect.
+	(symbol_table::push_scope, symbol_table::pop_scope,
+	symbol_table::reset_scope): Delete.
+	(symbol_table::scope_stack): Delete static member.
+	* symtab.cc (symbol_table::scope_stack): Delete definition.
+
+2009-04-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-map.h (Octave_map::contents (const_iterator) const,
+	Octave_map::contents (iterator)): Simplify.
+
+2009-04-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-map.cc (Octave_map::assign (const octave_value_list&, const
+	std::string&, const Cell&)): Fix & simplify.
+	(common_size): Remove.
+
+2009-04-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-idx.cc (make_value_list): Gripe on magic end query for undefined
+	variables.
+
+2009-04-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xpow.cc (same_sign): New helper function.
+	(elem_xpow (double, const Range&), elem_xpow (const Complex&, const Range&)):
+	Only optimize monotonic-magnitude integer ranges, start always from
+	the smaller end.
+
+2008-04-11  David Bateman  <dbateman@free.fr>
+
+	* ov-cell.cc (Fstruct2cell): Treat possible trailing singleton for
+	creation of cell array from column structure vector.
+
+2009-04-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-cell.cc (octave_cell::subsasgn): Fix reference counting
+	optimization.
+
+2009-04-08  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (rehash_internal): New function.
+	(Frehash): Use it.
+	(Fpath, Faddpath, Frmpath): Call rehash_internal if path is modified.
+
+2009-04-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xpow.cc (elem_xpow (double, const Range&),
+	elem_xpow (const Complex&, const Range&)): New functions.
+	* xpow.h: Declare them.
+	* OPERATORS/op-range.cc: Define scalar .^ range and complex .^ range &
+	install them.
+
+2009-04-04  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-struct.cc (octave_struct::subsasgn): Fix reference counting
+	optimization.
+
+2008-04-03  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/max.cc (MINMAX_SPARSE_BODY): Allow sparse boolean
+	values.
+
+2009-04-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-str-mat.cc (default_numeric_conversion_function):
+	Create an octave_scalar if possible.
+
+2009-03-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::button_press):
+	Don't pass arbitrary input to fl_message as a format string.
+
+2009-03-29  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-eval.cc (do_unwind_protect_cleanup_code): Protect also
+	octave_interrupt_state.
+
+2009-03-29  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellslices): Index n-d arrays along the
+	last dimension.
+
+2009-03-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/balance.cc (Fbalance): Fix order of output args.
+
+2009-03-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/find.cc
+	(find_nonzero_elem_idx (const Array<T>&, ...)): Move dimensions
+	fixup to liboctave.
+
+2009-03-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/find.cc
+	(find_nonzero_elem_idx (const Array<T>&, ...)): Simplify.
+	Instantiate for bool and octave_int types.
+	(find_nonzero_elem_idx (const Sparse<T>&, ...)):
+	Instantiate for bool.
+	(Ffind): Handle bool and octave_int cases.
+
+2009-03-25  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 3.1.55+.
+	(OCTAVE_API_VERSION): Now api-v37+.
+
+	* version.h (OCTAVE_VERSION): Now 3.1.55.
+	(OCTAVE_API_VERSION): Now api-v37.
+	(OCTAVE_RELEASE_DATE): Now 2009-03-25.
+
+	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Also return
+	[](0x0) if the array has 0 rows and it is not a column vector.
+
+	* oct-stream.cc (octave_stream::write (const Array<T>&,
+	octave_idx_type, oct_data_conv::data_type, octave_idx_type,
+	oct_mach_info::float_format)): Seek to skip if still inside bounds
+	of existing file.  Otherwise, write NUL to skip.
+
+	* Makefile.in (%.df : %.cc): Write source file name to output,
+	wrapped in XDEFUN_FILE_NAME macro.
+	* mkbuiltins: Provide definition for XDEFUN_FILE_NAME.
+	* mkgendoc: Likeiwse.
+	(XDEFUN_DLD_INTERNAL, XDEFUNX_DLD_INTERNAL, XDEFUN_INTERNAL,
+	XDEFCONSTFUN_INTERNAL, XDEFUNX_INTERNAL, XDEFVAR_INTERNAL,
+	XDEFCONST_INTERNAL): Pass file_name to print_doc_string.
+	(print_doc_string): New arg, FILE_NAME.  Print file name as
+	comment.
+
+2009-03-24  John W. Eaton  <jwe@octave.org>
+
+	* ov-class.cc (F__parent_classes__): New function.
+
+2009-03-24  Robert T. Short  <octave@phaselockedsystems.com>
+
+	* ov-class.h, ov-class.cc (octave_class::octave_class (const
+	Octave_map&, const std::string&, const octave_value_list&)):
+	New constructor.
+	(octave_class::find_parent_class, octave_class::parent_classes):
+	New functions.
+	(octave_class::dotref): Also look in parent class.
+	(Fclass): Handle parent class arguments.
+
+	* ov-base.h (octave_base_value::get_parent_list,
+	octave_base_value::parent_classes): New virtual functions.
+
+	* load-path.h, load-path.cc (load_path::parent_map): New data member.
+	(load_path::add_to_parent_map): New static function.
+	(load_path::do_add_to_parent_map): New member function.
+	(load_path::do_find_method): Also look in parent classes for methods.
+	(load_path::parent_map_type, load_path::const_parent_map_iterator,
+	load_path::parent_map_iterator): New typedefs.
+
+2009-03-23  John W. Eaton  <jwe@octave.org>
+
+	* symtab.h
+	(symbol_table::symbol_record::symobl_recoord_rep::is_variable):
+	Also return true if symbol is tagged as a variable.
+	(symbol_table::symbol_record::symobl_recoord_rep::force_variable):
+	Don't set variable value.
+	(symbol_table::symbol_record::symobl_recoord_rep::clear_forced,
+	symbol_table::symbol_record::clear_forced): Delete.
+	(symbol_table::unmark_forced_variables): Rename from
+	symbol_table::clear_forced_variables.
+	(symbol_table::do_unmark_forced_variables): Rename from
+	symbol_table::do_clear_forced_variables.
+	* parse.y (make_script, finish_function): Call
+	symbol_table::unmark_forced_variables instead of
+	symbol_table::clear_forced_variables.
+	* octave.cc (unmark_forced_vars): New function.
+	(execute_eval_option_code): Add it to the unwind-protect stack.
+
+2009-03-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-eval.cc (tree_evaluator::visit_simple_for_command):
+	Remove struct branch, handle structs by the generic code.
+	(tree_evaluator::visit_complex_for_command):
+	Add missing const qualifiers.
+
+2009-03-21  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-diag.cc: Add missing include.
+	* sparse-xdiv.cc: Ditto.
+	* DLD-FUNCTIONS/__glpk__.cc: Ditto.
+	* DLD-FUNCTIONS/__lin_interpn__.cc: Ditto.
+	* DLD-FUNCTIONS/__voronoi__.cc: Ditto.
+
+2009-03-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-re-mat.cc (octave_matrix::load_ascii): Simplify.
+	* ov-flt-re-mat.cc (octave_float_matrix::load_ascii): Simplify.
+	* ov-cx-mat.cc (octave_complex_matrix::load_ascii): Simplify.
+	* ov-flt-cx-mat.cc (octave_float_complex_matrix::load_ascii): Simplify.
+
+2009-03-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-re-mat.cc (octave_matrix::isnan, octave_matrix::isinf,
+	octave_matrix::finite): Simplify.
+	* ov-flt-re-mat.cc (octave_float_matrix::isnan,
+	octave_float_matrix::isinf, octave_float_matrix::finite): Simplify.
+	* ov-cx-mat.cc (octave_complex_matrix::isnan,
+	octave_complex_matrix::isinf, octave_complex_matrix::finite):
+	Simplify.
+	* ov-flt-cx-mat.cc (octave_float_complex_matrix::isnan,
+	octave_float_complex_matrix::isinf,
+	octave_float_complex_matrix::finite): Simplify.
+
+2009-03-19  Benjamin Lindner  <lindnerb@users.sourceforge.net>
+
+	* ls-oct-ascii.cc (extract_keyword): Replace loop with call to
+	read_until_newline to avoid leaving stray '\r' in stream when
+	reading files with CRLF line endings.
+
+2009-03-18  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc
+	(scalar_col_helper, scalar_col_helper_def, scalar_col_helper_nda,
+	scalar_query_helper): New classes.
+	(make_col_helper): New function.
+	(Fcellfun): Use col_helper classes for UniformOutput. Avoid copying by
+	using const variables.
+
+2009-03-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-b-bm.cc: Add missing INSTALL_BINOPs.
+	* OPERATORS/op-bm-b.cc: Ditto.
+	* OPERATORS/op-fm-fm.cc: Ditto.
+	* OPERATORS/op-m-m.cc: Ditto.
+
+2009-03-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (octave_value::octave_value): Move to ov.h
+	* ov.h (octave_value::octave_value): Implement fast inline constructor
+	using a static rep.
+
+2009-03-15  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellslices): New DLD function.
+
+2009-03-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h (octave_value::compound_binary_op): Support bool compound ops.
+	* ov.cc (do_binary_op, decompose_binary_op, binary_op_fcn_name):
+	Ditto.
+	* pt-cbinop.cc (strip_not, simplify_and_or_op): New funcs.
+	(maybe_compound_binary_expression): Support bool compound ops.
+	* OPERATORS/op-int.h: Support bool compound ops.
+	* OPERATORS/op-b-bm.cc: Ditto.
+	* OPERATORS/op-bm-b.cc: Ditto.
+	* OPERATORS/op-bm-bm.cc: Ditto.
+	* OPERATORS/op-fm-fm.cc: Ditto.
+	* OPERATORS/op-m-m.cc: Ditto.
+
+2009-03-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xpow.cc (xpow (const NDArray&, double), xpow (const ComplexNDArray&, double),
+	xpow (const FloatNDArray&, float), xpow (const FloatComplexNDArray&,
+	float)): Use xisint for testing ints. Optimize w.r.t int exponents.
+
+2009-03-13  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (maybe_warn_assign_as_truth_value, make_binary_op,
+	maybe_warn_variable_switch_label, maybe_warn_associativity_change):
+	Print file and line number info if available.
+	* lex.l (gripe_matlab_incompatible): Likewise.
+
+	* error.cc (pr_where): Use octave_call_stack::backtrace to print
+	complete stack trace at once.  Don't attempt to print code.
+	(error_2): Set error_state to 0 before calling pr_where.
+	(warning_1): Switch sense of test on symbol_table::at_top_level.
+	Call pr_where after printing primary warning message.
+
+2009-03-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-range.h (octave_range::octave_range (const Range&)): Allow
+	constructing from invalid range op result.
+	* ov-range.cc (octave_range::try_narrowing_conversion): Validate
+	invalid range op results.
+	* data.cc (fill_matrix): Return packed form (zero-step range) if
+	possible.
+
+2009-03-10  Jason Riedy  <jason@acm.org>
+
+	* DLD-FUNCTIONS/lu.cc (lu): Call fact.Pr_mat () and fact.Pc_mat ()
+	to return permutation matrices in the sparse case.
+
+2009-03-12  John W. Eaton  <jwe@octave.org>
+
+	* ls-mat-ascii.cc (get_mat_data_input_line): If we are looking at
+	'\r' or '\n', skip current line ending instead of skipping until
+	the next.
+
+2009-03-12  Ben Abbott  <bpabbott@mac.com>
+
+	* graphics.cc: Fix default "papersize" property value.
+
+2009-03-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-flt-perm.h, ov-flt-perm.cc: Remove sources.
+	* ov.h, ov.cc (octave_value::octave_value (const PermMatrix&)): Remove
+	use "single" argument.
+	* ov.cc (install_types): Update.
+	* xpow.cc, xpow.h (xpow (PermMatrix, float)): Remove.
+	* ov-base-diag.cc (octave_base_diag::do_index_op): Remove permutation
+	creating block.
+	* ov-re-diag.cc (octave_diag_matrix::do_index_op): Move it here.
+	* ov-re-diag.h (octave_diag_matrix::do_index_op): New decl.
+
+	* DLD-FUNCTIONS/det.cc (Fdet): Update.
+	* DLD-FUNCTIONS/inv.cc (Finv): Update.
+	* DLD-FUNCTIONS/pinv.cc (Fpinv): Update.
+
+	* OPERATORS/op-fcm-pm.cc <-- OPERATORS/op-fcm-fpm.cc
+	* OPERATORS/op-fcm-pm.cc: Update.
+	* OPERATORS/op-fm-pm.cc <-- OPERATORS/op-fm-fpm.cc
+	* OPERATORS/op-fm-pm.cc: Update.
+	* OPERATORS/op-pm-fcm.cc <-- OPERATORS/op-fpm-fcm.cc
+	* OPERATORS/op-pm-fcm.cc: Update.
+	* OPERATORS/op-pm-fm.cc <-- OPERATORS/op-fpm-fm.cc
+	* OPERATORS/op-pm-fm.cc: Update.
+	* OPERATORS/op-pm-pm.cc: Update.
+	* OPERATORS/op-pm-template.cc: Update.
+
+2009-03-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xpow.cc (xpow (const PermMatrix&, double), xpow (const PermMatrix&,
+	float)): New functions.
+	* xpow.h: Declare them.
+	* DLD-FUNCTIONS/op-pm-pm.cc: Support permutation matrix ^ scalar.
+	* DLD-FUNCTIONS/op-fpm-fpm.cc: Ditto.
+
+2009-03-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-ch-mat.cc (octave_char_matrix::double_value,
+	octave_char_matrix::float_value, octave_char_matrix::complex_value,
+	octave_char_matrix::float_complex_value): Cast to unsigned char.
+
+2009-03-10  Jason Riedy  <jason@acm.org>
+
+	* OPERATORS/op-pm-sm.cc (mul_pm_sm): New Octave binding for
+	perm * sparse.
+	(ldiv_pm_sm): New Octave binding for perm \ sparse.
+	(mul_sm_pm): New Octave binding for sparse * perm.
+	(div_sm_pm): New Octave binding for sparse / perm.
+	(install_pm_sm_ops): Install the above bindings.
+
+	* OPERATORS/op-pm-scm.cc (mul_pm_scm): New Octave binding for
+	perm * sparse complex.
+	(ldiv_pm_scm): New Octave binding for perm \ sparse complex.
+	(mul_scm_pm): New Octave binding for sparse complex * perm.
+	(div_scm_pm): New Octave binding for sparse complex / perm.
+	(install_pm_scm_ops): Install the above bindings.
+
+	* Makefile.in (PERM_OP_XSRC): Add op-pm-sm.cc and op-pm-scm.cc for
+	operations between permutations and sparse matrices.
+
+2009-03-10  Jason Riedy  <jason@acm.org>
+
+	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): New override
+	for find on PermMatrix.
+	(find): Add a branch testing arg.is_perm_matrix () and calling the
+	above override.
+
+2009-03-10  John W. Eaton  <jwe@octave.org>
+
+	* c-file-ptr-stream.cc, dynamic-ld.cc, error.cc, lex.l, pager.cc,
+	zfstream.cc: Include <iostream>.
+	* zfstream.h: Include <iosfwd> instead of <istream> and <ostream>.
+	* c-file-ptr-stream.h, help.h, load-path.h, load-save.h,
+	ls-ascii-helper.h, oct-iostrm.h, oct-stream.h, ov-base-diag.h,
+	ov-base-int.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h,
+	ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, ov-bool.h, ov-cell.h,
+	ov-ch-mat.h, ov-class.h, ov-colon.h, ov-complex.h, ov-cs-list.h,
+	ov-cx-mat.h, ov-cx-sparse.h, ov-fcn-handle.h, ov-fcn-inline.h,
+	ov-float.h, ov-flt-complex.h, ov-flt-cx-mat.h, ov-flt-re-mat.h,
+	ov-intx.h, ov-list.h, ov-range.h, ov-re-mat.h, ov-re-sparse.h,
+	ov-scalar.h, ov-str-mat.h, ov-struct.h, ov.h, pager.h,
+	pr-output.h, procstream.h, pt-assign.h, pt-cell.h, pt-const.h,
+	pt-fcn-handle.h, pt-id.h, pt-mat.h, pt.h, utils.h:
+	Include <iosfwd> instead of <iosstream>.
+
+2009-03-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fsize_equal): Allow single argument call.
+	* DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Update docs.
+
+2009-03-09  Benjamin Lindner  <lindnerb@users.sourceforge.net>
+
+	* ls-ascii-helper.h, ls-ascii-helper.cc: New files.
+	* Makefile.in: Add them to the appropriate lists.
+	* load-save.cc (Fload): Open all files in binary mode.
+	* ov-range.cc (load_ascii): Explicitly handle CR and CRLF line endings.
+	* ov-fcn-handle.cc (load_ascii): Likewise.
+	* ov-fcn-inline.cc (load_ascii): Likewise.
+	* ov-str-mat.cc (load_ascii): Likewise.
+	* ls-mat-ascii.cc (get_mat_data_input_line): Likewise.
+	* ls-oct-ascii.cc (extract_keyword, read_ascii_data): Likewise.
+	* ls-oct-ascii.h (extract_keyword): Likewise.
+
+2009-03-09  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (OCTAVE_DEFAULT_FONTNAME): New macro, defaults to "*".
+	(axes::properties, text::properties): Use it to set default fontname.
+	* graphics.cc (axes::properties::set_defaults): Likewise.
+
+2009-03-09  Rafael Laboissiere  <rafael@debian.org>
+
+	* Makefile.in (maintainer-clean): Remove y.tab.h here.
+	(distclean): Not here.
+
+2009-03-09  Jason Riedy  <jason@acm.org>
+
+	* OPERATORS/op-dm-sm.cc (add_dm_sm): Octave binding for diag + sparse.
+	(sub_dm_sm): Octave binding for diag - sparse.
+	(add_sm_dm): Octave binding for diag + sparse.
+	(sub_sm_dm): Octave binding for diag - sparse.
+	(install_dm_sm_ops): Install above bindings.
+
+	* OPERATORS/op-dm-scm.cc (add_cdm_sm): Octave binding for diag + sparse.
+	(add_dm_scm): Octave binding for diag + sparse.
+	(add_cdm_scm): Octave binding for diag + sparse.
+	(sub_cdm_sm): Octave binding for diag - sparse.
+	(sub_dm_scm): Octave binding for diag - sparse.
+	(sub_cdm_csm): Octave binding for diag - sparse.
+	(add_sm_cdm): Octave binding for diag + sparse.
+	(add_scm_dm): Octave binding for diag + sparse.
+	(add_scm_cdm): Octave binding for diag + sparse.
+	(sub_sm_cdm): Octave binding for diag - sparse.
+	(sub_scm_dm): Octave binding for diag - sparse.
+	(sub_scm_cdm): Octave binding for diag - sparse.
+	(install_dm_scm_ops): Install above bindings.
+
+2009-03-08  Jason Riedy  <jason@acm.org>
+
+	* sparse-xdiv.h (xleftdiv): Declare overrides for
+	xleftdiv (diagonal, sparse), both real and complex.
+	(xdiv): Declare overrides for xdiv (sparse, diagonal), both real
+	and complex.
+
+	* sparse-xdiv.cc (do_rightdiv_sm_dm): New template function.
+	Implementation for xdiv (sparse, diagonal).
+	(xdiv): Call do_rightdiv_sm_dm to implement overrides, real and
+	complex.
+	(do_leftdiv_dm_sm): New template function.  Implementation for
+	xleftdiv (diagonal, sparse).
+	(xleftdiv): Call do_leftdiv_dm_sm to implement overrides, real and
+	complex.
+
+	* OPERATORS/op-dm-sm.cc (ldiv_dm_sm): Octave binding for real left
+	division, diagonal into sparse.
+	(div_sm_dm): Octave binding for real right division, sparse by
+	diagonal.
+	(install_dm_sm_ops): Install above bindings.
+
+	* OPERATORS/op-dm-scm.cc (ldiv_dm_scm): Octave binding for real
+	diagonal \ complex sparse.
+	(ldiv_cdm_sm): Octave binding for complex diagonal \ real sparse.
+	(ldiv_cdm_scm): Octave binding for complex diagonal \ complex sparse.
+	(div_scm_dm): Octave binding for complex sparse / real diagonal.
+	(div_sm_cdm): Octave binding for real sparse / complex diagonal.
+	(div_scm_cdm): Octave binding for complex sparse / complex diagonal.
+	(install_dm_scm_ops): Install above bindings.
+
+2009-03-08  Jason Riedy  <jason@acm.org>
+
+	* OPERATORS/op-dm-scm.cc: New file.  Implement multiplication
+	between diagonal matrices (both real and complex) and complex
+	sparse matrices.
+	* OPERATORS/op-dm-sm.cc: New file.  Implement multiplication
+	between diagonal matrices and sparse matrices, all real.
+	* Makefile.in (DIAG_OP_XSRC): Add op-dm-sm.cc and op-dm-scm.cc.
+
+2009-03-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (F__accumarray_sum__): New function.
+	(do_accumarray_sum): New helper template function.
+
+2009-03-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xdiv.cc (mdm_div_impl, dmm_lelftdiv_impl, dmdm_div_impl,
+	dmdm_leftdiv_impl): Optimize.
+
+2009-03-07  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (octave_print_internal (std::ostream&,
+	const PermMatrix&, bool, int)): Delete unused variable SCALE.
+
+	* utils.cc (octave_vsnprintf): Avoid uninitialized variable
+	warning from GCC.
+
+	* DLD-FUNCTIONS/qz.cc (Fqz): Avoid "maybe clobbered by vfork"
+	warning from GCC.
+
+	* version.h (OCTAVE_VERSION): Now 3.1.54.
+	(OCTAVE_API_VERSION): Now api-v36.
+	(OCTAVE_RELEASE_DATE): Now 2009-03-07.
+
+	* octave.cc (verbose_usage): Include --doc-cache-file in option list.
+
+2009-03-06  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h (octave_value::diag_matrix_value,
+	octave_value::complex_diag_matrix_value,
+	octave_value::float_diag_matrix_value,
+	octave_value::float_complex_diag_matrix_value,
+	octave_value::perm_matrix_value): New methods.
+
+	* ov-base.cc (octave_base_value::diag_matrix_value,
+	octave_base_value::complex_diag_matrix_value,
+	octave_base_value::float_diag_matrix_value,
+	octave_base_value::float_complex_diag_matrix_value,
+	octave_base_value::perm_matrix_value): New virtual methods.
+
+	* ov-base.h: Declare them.
+
+	* ov-base-diag.h (octave_base_diag::diag_matrix_value,
+	octave_base_diag::complex_diag_matrix_value,
+	octave_base_diag::float_diag_matrix_value,
+	octave_base_diag::float_complex_diag_matrix_value,
+	octave_base_diag::perm_matrix_value): Remove declarations.
+
+	* DLD-FUNCTIONS/inv.cc (Finv): Simplify handling diag & perm matrices.
+	* DLD-FUNCTIONS/pinv.cc (Fpinv): Ditto.
+	* DLD-FUNCTIONS/det.cc (Fdet): Ditto.
+
+2009-03-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ls-hdf5.cc (add_hdf5_data): Handle diag & perm matrices.
+
+2009-03-05  John W. Eaton  <jwe@octave.org>
+
+	* pt-cell.cc, pt-cell.h (tree_cell::dup): Now const.
+	* comment-list.cc, comment-list.h (octave_comment_list::dup): Ditto.
+	* pt-arg-list.cc, pt-arg-list.h (tree_argument_list::dup): Ditto.
+	* pt-assign.cc, pt-assign.h (tree_simple_assignment::dup,
+	tree_multi_assignment::dup): Ditto.
+	* pt-binop.cc, pt-binop.h (tree_binary_expression::dup,
+	tree_boolean_expression::dup): Ditto.
+	* pt-cmd.cc, pt-cmd.h (tree_no_op_command::dup,
+	tree_function_def::dup): Ditto.
+	* pt-colon.cc, pt-colon.h (tree_colon_expression::dup): Ditto.
+	* pt-const.cc, pt-const.h (tree_constant::dup): Ditto.
+	* pt-decl.cc, pt-decl.h (tree_decl_elt::dup, tree_decl_init_list::dup,
+	tree_global_command::dup, tree_static_command::dup): Ditto.
+	* pt-except.cc, pt-except.h (tree_try_catch_command::dup,
+	tree_unwind_protect_command::dup): Ditto.
+	* pt-fcn-handle.cc, pt-fcn-handle.h (tree_fcn_handle::dup,
+	tree_anon_fcn_handle::dup): Ditto.
+	* pt-id.cc, pt-id.h (tree_identifier::dup): Ditto.
+	* pt-idx.cc, pt-idx.h (tree_index_expression::dup): Ditto.
+	* pt-jump.cc, pt-jump.h (tree_break_command::dup,
+	tree_continue_command::dup, tree_return_command::dup): Ditto.
+	* pt-loop.cc, pt-loop.h (tree_while_command::dup,
+	tree_do_until_command::dup, tree_simple_for_command::dup,
+	tree_complex_for_command::dup): Ditto.
+	* pt-mat.cc, pt-mat.h (tree_matrix::dup): Ditto.
+	* pt-misc.cc, pt-misc.h (tree_parameter_list::dup,
+	tree_return_list::dup): Ditto.
+	* pt-select.cc, pt-select.h (tree_if_clause::dup,
+	tree_if_command_list::dup, tree_if_command::dup,
+	tree_switch_case::dup, tree_switch_case_list::dup,
+	tree_switch_command::dup): Ditto.
+	* pt-stmt.cc, pt-stmt.h (tree_statement::dup,
+	tree_statement_list::dup): Ditto.
+	* pt-unop.cc, pt-unop.h (tree_prefix_expression::dup,
+	tree_postfix_expression::dup): Ditto.
+	* pt-fcn-handle.h (tree_anon_fcn_handle::parameter_list,
+	tree_anon_fcn_handle::return_list, tree_anon_fcn_handle::body,
+	tree_anon_fcn_handle::scope): Ditto.
+
+2009-03-05  Jason Riedy  <jason@acm.org>
+
+	* ov-base-int.cc (convert_to_str_internal): Replace elt_type with
+	element_type throughout.
+
+2009-03-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/sparse.cc (Fsparse): Handle diagonal and permutation
+	matrices.
+
+2009-03-03  John W. Eaton  <jwe@octave.org>
+
+	* ov-struct.cc (octave_struct::save_ascii,
+	octave_struct::save_binary, octave_struct::save_hdf5):
+	Preserve order of structure fields.
+	* ls-mat5.cc (save_mat5_binary_element): Likewise.
+
+	* symtab.h (symbol_table::do_inherit): Only inherit values for
+	symbols from the donor_scope that already exist in the table.
+	(symbol_table::symbol_record::symbol_record_rep::dup): Now const.
+	(symbol_table::symbol_record::operator=): Decrement rep->count and
+	maybe delete rep.
+	(symbol_table::fcn_info::operator=): Likewise.
+
+	* pt-fcn-handle.cc: (tree_anon_fcn_handle::dup): Transform
+	tree_anon_fcn_handle objects to tree_constant objects containing
+	octave_fcn_handle objects.  New tests.
+
+	* pt-assign.cc (tree_simple_assignment::rvalue1): Assign result of
+	call to rhs->rvalue1() to an octave_value object, not an
+	octave_value_list object.
+
+2009-03-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-stream.h (octave_stream_list::lookup_cache): New member field.
+	(octave_stream_list::octave_stream_list): Initialize it.
+	(octave_stream_list::do_lookup): Use it.
+	(octave_stream_list::clear): Make flush optional. Do physically erase
+	entries from the map. Close files.
+	(octave_stream_list::do_remove): Call clear on "all". Do erase deleted
+	entry from the map.
+
+2009-03-02  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (Fget, F__get__): Return a column vector of property
+	values, not a row vector.
+
+2009-03-01  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-fcm-fcm.cc (DEFNDASSIGNOP_FN (dbl_assign)):
+	LHS type is float_complex_matrix, not complex_matrix.  RHS value
+	function is float_complex_array, not complex_array.
+
+2009-03-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-perm.cc (octave_perm_matrix::print_raw): Call
+	octave_print_internal.
+	(octave_perm_matrix::print_raw): Call print_raw.
+	* pr-output.cc (octave_print_internal (...,const DiagMatrix&,...)):
+	Indicate diagonal matrix.
+	(octave_print_internal (...,const ComplexDiagMatrix&,...)): Ditto.
+	(octave_print_internal (...,const PermMatrix&,...)): New function.
+	* pr-output.h: Declare it.
+
+2009-02-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-dms-template.cc (gripe_if_zero): New template static
+	function.
+	(dmsdiv, sdmldiv): Call it.
+
+2009-02-26  John W. Eaton  <jwe@octave.org>
+
+	* symtab.h (symbol_table::symbol_record::symbol_record_rep::forced):
+	New static constant.
+	(symbol_table::symbol_record::symbol_record_rep::force_variable,
+	symbol_table::symbol_record::force_variable): New functions.
+	(symbol_table::symbol_record::symbol_record_rep::is_forced,
+	symbol_table::symbol_record::symbol_record_rep::mark_forced,
+	symbol_table::symbol_record::symbol_record_rep::unmark_forced,
+	symbol_table::symbol_record::symbol_record_rep::clear_forced,
+	symbol_table::symbol_record::is_forced,
+	symbol_table::symbol_record::mark_forced,
+	symbol_table::symbol_record::clear_forced,
+	symbol_table::symbol_record::unmark_forced): New fucntions.
+	* lex.h, lex.l (force_local_variable): Delete.
+	(handle_identifier): Call symbol_table::force_variable instead of
+	force_local_variable.
+	* parse.y (make_script): Call symbol_table:clear_forced_variables
+	after defining script.
+	(finish_function): Call symbol_table::clear_forced_variables
+	instead of symbol_table::clear_variables.
+
+	* DLD-FUNCTIONS/chol.cc: Correct spelling of CHOLMOD in tests.
+
+	* version.h (OCTAVE_VERSION): Now 3.1.53+.
+	(OCTAVE_API_VERSION): Now api-v35+.
+
+2009-02-25  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 3.1.53.
+	(OCTAVE_API_VERSION): Now api-v35.
+	(OCTAVE_RELEASE_DATE): Now 2009-02-25.
+	(OCTAVE_COPYRIGHT): Update year.
+
+	* Makefile.in (distclean): Remove tags TAGS y.tab.h y.output
+	yy.lex.c here, not in maintainer-clean target.  Also remove
+	parse.output.
+
+	* DLD-FUNCTIONS/rand.cc: Note that the tests for the old random
+	number generator will fail if using 64-bit indexing.
+
+2009-02-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lu.cc (maybe_set_triangular): New function.
+	(Flu): Use it.
+	* DLD-FUNCTIONS/qr.cc (maybe_set_triangular): New function.
+	(Fqr): Use it.
+
+2009-02-25  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/chol.cc: Fix tests for missing cholmod.
+
+	* input.cc (get_debug_input): Write debugging location info
+	directly to std::cerr instead of calling message.
+	* pt-eval.cc (tree_evaluator::do_breakpoint): Write debugging
+	location info directly to std::cerr, not octave_stdout.
+
+	* defaults.h.in (OCTAVE_DOC_CACHE_FILE): New macro.
+	* defaults.cc (set_default_doc_cache_file): New function.
+	(install_defaults): Call it.
+
+	* help.cc (__list_functions__): Simplify
+
+	* input.cc (get_debug_input): Don't pass arbitrary input to
+	message as a format string.
+
+2009-02-24  John W. Eaton  <jwe@octave.org>
+
+	* help.cc, help.h (Vdoc_cache_file): New global variable.
+	(Fdoc_cache_file): New function.
+	* octave.cc (DOC_CACHE_FILE_OPTION): New option tag.
+	(long_opts): Include doc-cache-file in the list.
+	(octave_main): Handle DOC_CACHE_FILE_OPTION.
+
+2009-02-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-scalar.h
+	(octave_scalar::int8_scalar_value): New method.
+	(octave_scalar::int16_scalar_value): New method.
+	(octave_scalar::int32_scalar_value): New method.
+	(octave_scalar::int64_scalar_value): New method.
+	(octave_scalar::uint8_scalar_value): New method.
+	(octave_scalar::uint16_scalar_value): New method.
+	(octave_scalar::uint32_scalar_value): New method.
+	(octave_scalar::uint64_scalar_value): New method.
+
+	* ov-float.h
+	(octave_float_scalar::int8_scalar_value): New method.
+	(octave_float_scalar::int16_scalar_value): New method.
+	(octave_float_scalar::int32_scalar_value): New method.
+	(octave_float_scalar::int64_scalar_value): New method.
+	(octave_float_scalar::uint8_scalar_value): New method.
+	(octave_float_scalar::uint16_scalar_value): New method.
+	(octave_float_scalar::uint32_scalar_value): New method.
+	(octave_float_scalar::uint64_scalar_value): New method.
+
+	* OPERATORS/op-s-s.cc (scalar_to_float): Remove duplicate conversion.
+	* OPERATORS/op-range.cc (range_to_float_matrix): Ditto.
+
+2009-02-24  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-float-conv.cc: New file.
+	* Makefile.in (FLOAT_OP_XSRC): Add it to the list.
+	(DOUBLE_OP_XSRC): Move op-double-conv.cc here from INTTYPE_OP_XSRC.
+	* ops.h (DEFFLTCONVFN, DEFSTRFLTCONVFN): New macros.
+
+2009-02-23  John W. Eaton  <jwe@octave.org>
+
+	* ov-base-sparse.cc (octave_base_sparse<T>::print_raw):
+	Remove extra ")" from output.
+
+	* DLD-FUNCTIONS/eigs.cc (Feigs): If sigma argument is not a
+	string, try extraction as complex value and check for error
+	instead of inquiring about type first.
+
+	* pt-eval.cc (tree_evaluator::visit_break_command,
+	tree_evaluator::visit_return_command,
+	tree_evaluator::visit_global_command,
+	tree_evaluator::visit_static_command): Handle breakpoint.
+	(tree_evaluator::visit_simple_for_command,
+	tree_evaluator::visit_complex_for_command): Handle breakpoint once
+	at beginning of loop.
+	(tree_evaluator::visit_if_command_list): Don't call do_breakpoint
+	for else clauses.
+	(tree_evaluator::visit_no_op_command): Handle breakpoint if no-op
+	command is end of function or script.
+	(tree_evaluator::visit_statement): Handle breakpoint for
+	expressions but not commands.
+	(tree_evaluator::visit_while_command,
+	tree_evaluator::visit_do_until_command):
+	Check for breakpoint set on cmd, not expr.
+	(tree_evaluator::visit_do_until_command): Handle breakpoint
+	between check for breaking out of loop and loop control
+	expression.
+
+	* pt-cmd.h (tree_no_op_command::eof): New data member
+	(tree_no_op_command::tree_no_op_command): Initialize it.
+	(tree_no_op_command::is_end_of_fcn_or_script): New function.
+	* pt-stmt.cc (tree_statement::is_end_of_fcn_or_script):
+	Call is_end_of_fcn_or_script instead of looking at original text
+	of no-op command.
+
+	* pt-select.h, pt-select.cc (tree_if_command::set_breakpoint,
+	tree_if_command::delete_breakpoint): New functions.
+	(tree_switch_command::set_breakpoint,
+	tree_switch_command::delete_breakpoint): New functions.
+	* pt-stmt.h, pt-stmt.cc (tree_statement::set_breakpoint,
+	tree_statement::delete_breakpoint, tree_statement::is_breakpoint):
+	Delegate real work to cmd or expr.
+	(tree_statement::bp): Delete data member.
+	(tree_statement::tree_statement): Don't initialize bp.
+	(tree_statement::dup): Don't copy bp.
+
+	* pt.h (tree::line (int), tree:column (int)): New functions.
+	(tree:set_breakpoint, tree::delete_breakpoint): Now virtual.
+
+	* parse.y (finish_if_command): Also store line and column info for
+	if statement in first element of list.
+	(finish_switch_command): Likewise, for switch.
+
+	* input.cc (last_debugging_command): New static variable.
+	(octave_gets): Set it here.  Don't insert repeated debugging
+	commands in the history list.
+
+2009-02-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/pinv.cc: Support diagonal and permutation matrices.
+
+2008-02-21  David Bateman  <dbateman@free.fr>
+
+	* OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, OPERATORS/op-s-scm.cc,
+	OPERATORS/op-s-sm.cc, OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-s.cc,
+	OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-s.cc: Don't perform any
+	narrowing to full matrices.
+
+2009-02-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-diag.h (octave_base_diag::sqrt): Remove.
+	* ov-re-diag.cc (octave_diag_matrix::sqrt): New method.
+	* ov-re-diag.h: Declare it.
+	* ov-flt-re-diag.cc (octave_float_diag_matrix::sqrt): New method.
+	* ov-flt-re-diag.h: Declare it.
+	* ov-cx-diag.cc (octave_complex_diag_matrix::sqrt): New method.
+	* ov-cx-diag.h: Declare it.
+	* ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::sqrt): New method.
+	* ov-flt-cx-diag.h: Declare it.
+
+2009-02-20  John W. Eaton  <jwe@octave.org>
+
+	* dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Clear and
+	reload mex file if it is out of date.  Don't check path for file.
+
+	* pt-bp.cc (tree_breakpoint::visit_octave_user_script,
+	tree_breakpoint::visit_octave_user_function):
+	Don't panic.  Call accept on command list if it exists.
+
+2009-02-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::do_index_op):
+	Correctly compute all-scalar index.
+	* ov-cell.cc (octave_cell::is_sorted, octave_cell::is_sorted_rows):
+	New methods.
+	(octave_cell::octave_cell (const Array<std::string>&)): New
+	constructor.
+	* ov-cell.h: Declare them.
+	* ov-cell.cc (octave_cell::sort): Create result already with
+	cellstr_cache.
+	* strfns.cc (Fstrcmp): Use special code when dealing with
+	cellstr arrays.
+
+2009-02-20  John W. Eaton  <jwe@octave.org>
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::assign):
+	Correctly compute all-scalar index.
+
+	* symbtab.cc (symbol_table::stash_dir_name_for_subfunctions):
+	New function.
+	* symtab.h: Provide decl.
+	* parse.y (load_fcn_from_file): Call it after parsing a function.
+
+2009-02-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-cell.h (octave_cell::cellstr_cache): New field.
+	(octave_cell::clear_cellstr_cache, octave_cell::make_cellstr_cache,
+	octave_cell::assign, octave_cell::delete_elements,
+	octave_cell::mex_get_data): New methods.
+	(octave_cell::is_cellstr): Reuse cellstr cache if possible, create if
+	successful.
+	(octave_cell::cellstr_value): Reuse cellstr cache if possible.
+	(octave_cell::subsasgn): Clear cellstr cache.
+
+2009-02-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc (Flookup): Use Array<T>::lookup if possible.
+	Do not compare octave_values directly. Properly check for iscellstr.
+
+2009-02-19  John W. Eaton  <jwe@octave.org>
+
+	* data.cc, graphics.cc, help.cc, lex.l, load-path.cc, parse.y:
+	Consistent doc strings for internal functions.
+
+2009-02-18  John W. Eaton  <jwe@octave.org>
+
+	* ov.cc (convert_to_octave_idx_type_array): New static function.
+	(octave_value::octave_idx_type_vector_value): New function.
+	* ov.h (octave_value::octave_idx_type_vector_value): Provide decl.
+	* DLD-FUNCTIONS/qr.cc (Fqrdelete, Fqrinsert): Use it to convert
+	octave_value object to array of octave_idx_type values.
+
+	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Likewise.
+	* DLD-FUNCTIONS/time.cc (strptime): Likewise.
+	* DLD-FUNCTIONS/quad.cc (Fquad): Eliminate unnecessary cast.
+	* toplev.cc (run_command_and_return_output): Likewise.
+
+	* strfns.cc (Fstrvcat): Use octave_idx_type and size_t instead of
+	int as needed.
+	(Fstrcmp, Fstrncmp): Use octave_idx_type instead of int as needed.
+
+	* DLD-FUNCTIONS/hex2num.cc (Fhex2num, Fnum2hex):
+	Use union to avoid reinterpret_cast and GCC warning.
+
+	* mex.cc (call_mex): Declare local nargout variable volatile to
+	avoid "maybe clobbered by vfork" warning from GCC.
+
+	* ov-cx-mat.cc (xabs): Comment out unused static function.
+	* ov-flt-cx-mat.cc (xabs): Ditto.
+
+	* c-file-ptr-stream.cc (c_file_ptr_buf::seekoff,
+	c_file_ptr_buf::seepos, c_zfile_ptr_buf::seekoff,
+	c_zfile_ptr_buf::seepos): Avoid unused paramter warnings.
+
+2009-02-18  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (Fresize): Allow arbitrary number of parameters. Improve
+	documentation.
+
+2009-02-17  Benjamin Lindner  <lindnerb@users.sourceforge.net>
+
+	* file-io.cc: (Fmkstemp): Use mkstemps if it is available and
+	mkstemp is missing.
+
+2009-02-17  Olaf Till  <olaf.till@uni-jena.de>
+
+	* DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/daspk.cc,
+	DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/dasrt.cc: Documentation fixes.
+
+2009-02-17  Kai Habel  <kai.habel@gmx.de>
+
+	* DLD-FUNCTIONS/convhulln.cc (Fconvhulln): Compute convex hull
+	volume and return it as second output.  New tests.
+
+2009-02-17  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn.h (octave_function::octave_function): Initialize data members.
+	(octave_function::dispatch_class): No longer virtual.
+	Replace with version from ov-usr-fcn.h.
+	(octave_function::xdispatch_class,
+	octave_function::stash_dispatch_class): Move here from ov-usr-fcn.h.
+	(octave_function::mark_as_private_function,
+	octave_function::is_private_function,
+	octave_function::is_private_function_of_class): New functions.
+	(octave_function::private_function): New data member.
+	* ov-usr-fcn.h (octave_user_function::xdispatch_class,
+	octave_user_function::stash_dispatch_class,
+	octave_user_function::dispatch_class): Delete.
+	* ov-usr-fcn.cc (octave_user_function::octave_user_function):
+	Don't initialize xdispatch_type.
+
+	* symtab.cc
+	(symbol_table::fcn_info::fcn_info_rep::load_private_function):
+	If private directory is subdirectory of class directory, qmark
+	function as a private directory of the class.
+
+	* ov-class.cc (octave_class::in_class_method): Also return true
+	for functions that are private to a class.
+	(octave_class::subsasgn): If not in class method, look for
+	subsasgn method.  If not found, or if not in a class method,
+	perform default struct-style subscripted indexing.
+
+	* ov-class.h (octave_class::empty_clone):
+	Preserve fields and class name.
+	* oct-map.h (Octave_map::Octave_map (const string_vector&):
+	New constructor.
+
+	* ov-class.cc (octave_class::subsref): If indexing directly and
+	result is map, return class object, not simple struct.
+
+	* symtab.cc
+	(symbol_table::fcn_info::fcn_info_rep::load_private_function):
+	Pass dir_name to load_fcn_from_file.
+
+2009-02-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/data.cc (NATIVE_REDUCTION): Add BOOL_FCN argument.
+	(NATIVE_REDUCTION_1): Check integer overflow flags and possibly gripe.
+	(Fsum): Reflect change.
+	(Fcumsum): USE NATIVE_REDUCTION.
+	* gripes.cc (gripe_native_integer_math_truncated): New function.
+
+2009-02-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Improve inline docs.
+
+2009-02-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/max.cc (MINMAX_DOUBLE_SBODY): New macro.
+	(MINMAX_DOUBLE_BODY): Move part of code to MINMAX_DOUBLE_SBODY.
+	(MINMAX_SINGLE_SBODY): New macro.
+	(MINMAX_SINGLE_BODY): Move part of code to MINMAX_DOUBLE_SBODY.
+	(MINMAX_INT_SBODY): New macro.
+	(MINMAX_INT_BODY): Move part of code to MINMAX_DOUBLE_SBODY.
+	(CUMMINMAX_BODY): New macro.
+	(Fcummin, Fcummax): New DLD functions.
+
+2009-02-17  John W. Eaton  <jwe@octave.org>
+
+	* octave.gperf: Eliminate whitespace to allow gperf 2.7.2 to work.
+
+	* file-io.cc (Ffscanf, Fsscanf): Check error_state after call to
+	octave_stream::scanf.
+	(Ffgetl): Check error state after call to octave_stream::getl.
+	(Ffgets): Check error state after call to octave_stream::gets.
+
+	* oct-stream.cc (octave_base_stream::do_gets,
+	octave_base_stream::do_scanf):
+	Disallow reading from stdin when running interactively.
+
+	* toplev.cc (octave_config_info): Add CARBON_LIBS, X11_INCFLAGS,
+	and X11_LIBS to the struct.
+	* oct-conf.h.in (OCTAVE_CONF_CARBON_LIBS,
+	OCTAVE_CONF_X11_INCFLAGS, OCTAVE_CONF_X11_LIBS): New macros.
+
+2009-02-17  Thomas Treichl  <Thomas.Treichl@gmx.net>
+
+	* Makefile.in (octave$(EXEEXT)): Link with CARBON_LIBS.
+
+2009-02-16  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (next_token_can_follow_bin_op):
+	Push all characters read on to buffer stack.
+
+	* genprops.awk (emit_source): Don't use + to concatenate strings.
+
+2009-02-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* data.cc (NATIVE_REDUCTION): Use boolNDArray::any for native bool
+	summation, boolNDArray::sum for double-valued.
+
+2009-02-16  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::assign (const octave_value_list&,
+	typename MT::element_type): Fix invalid index.
+	* ov-re-mat.cc (default_numeric_demotion_function): Use
+	float_array_value instead of float_matrix_value.
+
+2009-02-16  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (gnu_readline): Use fputs instead of fprintf.
+
+2009-02-15  John W. Eaton  <jwe@octave.org>
+
+	* defun.cc, defun-int.h, defun-dld.h (DEFUN_INTERNAL,
+	DEFCONSTFUN_INTERNAL, DEFUNX_INTERNAL, DEFUN_DLD_INTERNAL,
+	DEFUNX_DLD_INTERNAL, install_builtin_function,
+	install_dld_function, install_mex_function):
+	Delete IS_TEXT_FCN arg.  Fix all uses.
+	(DEFMD, DEFUN_TEXT): Delete.
+	* mkbuiltins, mkgendoc: Adapt to DEFUN macro changes.
+
+	* lex.h, lex.l (lexer_flags::at_beginning_of_statement):
+	New data member.  Set it as needed in rules.
+	(is_keyword_token):
+	Handle lexer_flags::at_beginning_of_statement.
+	(next_token_can_follow_bin_op, looks_like_command_arg): New functions.
+	(handle_identifier): Use them to determine
+	Don't check is_command_name or is_rawcommand_name.
+	* parse.y (statement): Recognize word_list_cmd here.
+	(expression): Not here.
+
+	* lex.l (handle_string): Delete arg TEXT_STYLE.
+	(BIN_OP_RETURN, XBIN_OP_RETURN): New arg, BOS. Change all uses.
+
+	* lex.h, lex.l (lexer_flags::doing_raw_command): Delete data
+	member and all uses.
+
+	* debug.cc, dirfns.cc, error.cc, input.cc, lex.l, load-path.cc,
+	load-save.cc, oct-hist.cc, ov-class.cc, pager.cc, parse.y,
+	pr-output.cc, sysdep.cc, utils.cc, variables.cc:
+	Replace all uses of DEFCMD with DEFUN.
+
+	* variables.cc (command_set, rawcommand_set): Delete static variables.
+	(mark_as_command, unmark_command, is_command_name,
+	mark_as_rawcommand, unmark_raw_command, is_rawcommand_name): Delete.
+	(Fmark_as_command, Funmark_command, Fiscommand,
+	Fmark_as_rawcommand, Funmark_rawcommand, Fisrawcommand):
+	Convert to .m files and move to scripts/deprecated.
+	* variables.h (mark_as_command, is_command_name,
+	is_marked_as_rawcommand, mark_as_rawcommand, unmark_rawcommand,
+	is_rawcommand_name): Delete decls.
+
+	* lex.h, lex.l (lexer_flags.looking_at_object_index): Now a
+	std::list<bool> object instead of an int.
+	Push TRUE to list at start of object index.  Push FALSE at
+	beginning of matrix list.  Pop value at end of object index or
+	matrix list.
+	(lexer_flags.looking_for_object_index): New data member.
+	Set it as needed in rules.
+	(inside_any_object_index): New function.
+	* parse.y (begin_obj_idx, cancel_obj_idx): Delete non-terminals
+	and all uses.
+
+2009-02-13 Ben Abbott  <bpabott@mac.com>
+
+	* graphics.h.in (class axes::properties): Initialize ticklength.
+	* graphics.cc (default_axes_ticklength): New function.
+
+2009-02-13  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_base_stream::do_gets): Handle CRLF and CR.
+
+	* toplev.cc (do_octave_atexit): Only save history if
+	Vsaving_history is true.
+
+2009-02-12  John W. Eaton  <jwe@octave.org>
+
+	* data.cc, ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h,
+	ov-base-sparse.h, ov-base.cc, ov-base.h, ov-perm.h, ov-range.h,
+	ov.h: Rename internal issorted and issorted_rows functions to
+	is_sorted and is_sorted_rows.
+
+	* ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base.h,
+	ov-cell.h, ov-perm.h, ov-range.h, ov.h, data.cc, ov-base.cc,
+	ov-cell.cc: Rename all uses of sortrows_idx to sort_rows_idx.
+
+	* TEMPLATE-INST/Array-tc.cc: Don't instantiate sort functions for
+	Arrays of octave_value objects.
+	(octave_sort<octave_value>::ascending_compare,
+	octave_sort<octave_value>::descending_compare): Delete.
+
+	* ov.h (octave_value::cellstr_value): New function.
+	* ov-base.cc, ov-base.h (octave_base_value::cellstr_value):
+	New function.
+	* ov-cell.h (octave_cell::cellstr_value, octave_cell::sort,
+	octave_cell::sortrows_idx): New functions
+	* Cell.h, Cell.cc (Cell::Cell (Array<std::string>)): New constructor.
+
+	* TEMPLATE-INST/Array-tc.cc: Undo previous change.
+	(octave_sort<octave_value>::ascending_compare,
+	octave_sort<octave_value>::descending_compare):
+	Pass args by const reference instead of value.
+
+	* version.h (OCTAVE_VERSION): Now 3.1.52+.
+	(OCTAVE_API_VERSION): Now api-v34+.
+
+	* TEMPLATE-INST/Array-tc.cc
+	(octave_sort<octave_value>::ascending_compare,
+	octave_sort<octave_value>::descending_compare):
+	Delete unused template specializations.
+	Use NO_INSTANTIATE_ARRAY_SORT instead of INSTANTIATE_ARRAY_SORT
+	for octave_values.
+
+2009-02-11  Thomas Treichl  <Thomas.Treichl@gmx.net>
+
+	* gl-render.h: Use HAVE_FRAMEWORK_OPENGL.
+	* gl-render.cc (opengl_tesselator, opengl_renderer::draw,
+	opengl_renderer::init_marker): Use HAVE_FRAMEWORK_OPENGL.
+
+2009-02-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h (octave_value::issorted, octave_value::sortrows_idx,
+	octave_value::issorted_rows): New methods.
+	* ov.cc (octave_base_value::issorted, octave_base_value::sortrows_idx,
+	octave_base_value::issorted_rows): New methods.
+	* ov.cc: Declare them.
+
+	* ov-base-mat.h (octave_base_matrix::issorted, octave_base_matrix::sortrows_idx,
+	octave_base_matrix::issorted_rows): New methods.
+
+	* ov-base-diag.h (octave_base_diag::issorted, octave_base_diag::sortrows_idx,
+	octave_base_diag::issorted_rows): New methods.
+
+	* ov-perm.h (octave_perm_matrix::issorted, octave_perm_matrix::sortrows_idx,
+	octave_perm_matrix::issorted_rows): New methods.
+
+	* ov-range.h (octave_range::issorted, octave_range::sortrows_idx,
+	octave_range::issorted_rows): New methods.
+
+	* data.cc (F__sortrows_idx__, Fissorted): New defuns.
+
+2009-02-11  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (octave_config_info): Add octetcdir to the struct.
+	* defaults.h.in (OCTAVE_OCTETCDIR): New macro.
+
+2009-02-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/__pchip_deriv__.cc (F__pchip_deriv__):
+	Add support for computing pchip derivatives along rows of matrix.
+	Eliminate redundant copying by using const args where appropriate.
+
+2009-02-09  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 3.1.52.
+	(OCTAVE_RELEASE_DATE): Now 2009-02-09.
+	(OCTAVE_COPYRIGHT): Update year.
+
+	* load-path.cc (dir_info::update, dir_info::initialize):
+	Likewise, to allow some functionality if getcwd fails.
+
+	* toplev.cc (main_loop): Also catch octave_execution_exception.
+
+	* DLD-FUNCTIONS/dispatch.cc: Comment out troublesome tests.
+
+	* DLD-FUNCTIONS/eigs.cc: Increase tolerance to 1e-11 on all tests.
+
+	* lex.l (lexical_feedback::looking_at_decl_list): New data member.
+	* lex.l (lexical_feedback::init): Initialize it.
+	(handle_identifier): Also force local variable if looking_at_decl_list.
+	* parse.y (parsing_decl_list): New non-terminal.
+	(declaration): Use it.  Set lexer_flags.looking_at_decl_list to
+	false after parsing the declaration.
+
+2009-02-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* TEMPLATE-INST/Array-tc.cc: Reflect changes in octave_sort.
+
+2009-02-08  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (initialize_pathsearch): Delete.
+	(octave_main): Don't call initialize_pathsearch.
+
+2009-02-07  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (eval_string): Use the one true evaluator.
+
+2009-02-06  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (INCLUDES): Include oct-hdf5.h in the list.
+
+	* Makefile.in (oct-gperf.h): Don't use pipeline to process gperf
+	output.
+
+2009-02-05  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (symbol_table::fcn_info::cn_info_rep::xfind):
+	New function.
+	(symbol_table::fcn_info::cn_info_rep::find):
+	Use it to avoid recursive call.
+
+	* graphics.cc (Fdrawnow): Return after errors.  Don't strip
+	trailing directory separator from name used in call to file_stat.
+
+	* DLD-FUNCTIONS/eigs.cc (Feigs): Avoid warnings about ambiguous
+	else.  Style fixes.  Return after errors.
+
+2009-02-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-map.cc (Octave_map::index): Optimize.
+
+2009-02-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-cm-cs.cc: Use scalar_value in scalar-to-matrix
+	indexed assignments.
+	* OPERATORS/op-fcm-fcs.cc: Ditto.
+	* OPERATORS/op-fm-fs.cc: Ditto.
+	* OPERATORS/op-m-s.cc: Ditto.
+	* OPERATORS/op-int.h (OCTAVE_MS_INT_ASSIGN_OPS): Use homogeneous
+	integer scalar-to-matrix assignment.
+	(OCTAVE_MM_INT_ASSIGN_OPS): Use homogeneous integer matrix-to-matrix
+	assignment.
+
+	* Cell.h (Cell::index): Remove direct idx_vector overloads.
+	(Cell::assign): Remove direct idx_vector overloads.
+	(Cell::delete_elements): Remove direct idx_vector overloads.
+	* Cell.cc (Cell::index (const octave_value_list&)): Call
+	ArrayN<octave_value>::index.
+
+	* oct-map.h (Octave_map::index): Remove direct idx_vector overloads.
+	* oct-map.cc (Octave_map::index): Ditto.
+	* ov-base-mat.cc (octave_base_mat::do_index_op): Optimize scalar
+	indexing case.
+	(octave_base_mat::assign (const octave_value_list&, const MT&)):
+	Specialize variable argument number.
+	(octave_base_mat::assign (const octave_value_list&, const
+	typename MT::element_type&)):
+	New method overload with optimized scalar indexing case.
+
+	* ov-cell.cc (octave_base_matrix<Cell>::do_index_op,
+	octave_base_matrix<Cell>::assign,
+	octave_base_matrix<Cell>::delete_elements): Specialize.
+	(octave_cell::assign (const_octave_value_list, const octave_value&):
+	Delete method.
+	* ov-cell.h: Reflect change.
+
+	* ov-cx-mat.cc (octave_complex_matrix::assign): Delete overloads.
+	* ov-cx-mat.h: Reflect changes.
+	* ov-flt-cx-mat.cc (octave_float_complex_matrix::assign): Delete overloads.
+	* ov-flt-cx-mat.h: Reflect changes.
+	* ov-list.cc (octave_list::do_index_op): Simplify.
+	* ov-struct.cc (octave_struct::do_index_op): Simplify.
+	* pt-eval.cc (tree_evaluator::visit_simple_for_command): Optimize
+	traversing a row vector.
+
+2009-02-05  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (Vignore_function_time_stamp):
+	Eliminate unused static variable.
+
+	* debug.cc (get_file_line): Override default precedence in logical
+	expression.
+
+	* ov-null-mat.cc (default_null_str_numeric_conversion_function,
+	default_null_sq_str_numeric_conversion_function,
+	default_null_matrix_numeric_conversion_function):
+	Avoid unused variable warning.
+
+	* ov-flt-re-diag.cc (octave_float_diag_matrix::save_binary):
+	Avoid unused parameter warning.
+	* pt-eval.cc (tree_evaluator::visit_if_clause): Likewise.
+	* ov-typeinfo.cc (octave_value_typeinfo::do_register_type): Likewise.
+	* ov-base.cc (octave_base_value::subsref (const std::string&,
+	const std::list<octave_value_list>&, bool): Likewise.
+	* ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::save_binary):
+	Likewise.
+
+	* oct-hdf5.h: New file.
+	* ls-hdf5.cc, ov-base.h, ov.h: Include oct-hdf5.h instead of hdf5.h.
+	* ls-hdf5.h: Include oct-hdf5.h.
+	* load-save.cc: Include ls-hdf5.h instead of hdf5.h.
+	* ov-base-sparse.cc, load-save.cc:
+	Don't protect #include "ls-hdf5.h" with #ifdef.
+
+2009-02-04  Kai Habel  <kai.habel@gmx.de>
+
+	* gl-render.cc (opengl_renderer::draw (surface::properties)):
+	Normalize surface normals. Correct calculation of diffuse lighting.
+	* gl-render.cc (opengl_renderer::draw (patch::properties)):
+	Correct calculation of diffuse lighting.
+
+2009-02-04  John W. Eaton  <jwe@octave.org>
+
+	* help.cc (do_which): If NAME is not in the symbol table, look for
+	a function file in the load path.
+	(raw_help_from_file): Unwind-protect and set reading_script_file.
+
+	* pt-loop.h, pt-loop.cc (evaluating_looping_command):
+	Delete global variable and all uses.
+	* parse.y, parse.h (evaluating_function_body): Delete global
+	variable and all uses.
+	(make_break_command, make_continue_command, make_return_command):
+	Use tree_evaluator::in_fcn_or_script_body and
+	tree_evaluator::in_loop_command instead of
+	evaluating_function_body and evaluating_looping_command.
+
+	* pt-eval.h (tree_evaluator::in_function_or_script_body):
+	Delete 	member variable and all uses.
+	(tree_evaluator::reset): Delete function and all uses.
+
+	* pt-eval.cc, pt-eval.h (tree_evaluator::in_fcn_or_script_body,
+	tree_evaluator::in_loop_command): New static variables.
+	(tree_evaluator::visit_simple_for_command,
+	tree_evaluator::visit_complex_for_command,
+	tree_evaluator::visit_while_command,
+	tree_evaluator::visit_do_until_command): Unwind-protect and set
+	tree_evaluator::in_loop_command instead of
+	evaluating_looping_command.
+	(tree_evaluator::visit_statement): Only call echo_code if
+	evaluating function or script and (Vecho_executing_commands &
+	ECHO_FUNCTIONS).  Use tree_evaluator::in_fcn_or_script_body
+	instead of evaluating_function_body.
+
+	* ov-usr-fcn.cc (octave_user_script::do_multi_index_op):
+	octave_user_function::do_multi_index_op): Unwind-protect and set
+	tree_evaluator::in_fcn_or_script_body.
+
+	* pt-stmt.cc, pt-stmt.h (tree_statement::echo_code):
+	Rename from maybe_echo_code.  Simplify.
+
+2009-02-04  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-loop.h (tree_simple_for_command::do_for_loop_once,
+	tree_complex_for_command::do_for_loop_once): Remove obsolete decls.
+	* pt-loop.cc (quit_loop_now): Remove obsolete method.
+	* pt-eval.cc (DO_ND_LOOP): Delete macro.
+	(tree_evaluator::visit_simple_for_command): Use the generic
+	do_index_op for iterating matrices.
+
+2009-02-04  John W. Eaton  <jwe@octave.org>
+
+	New evaluator and debugger derived from tree-walker class.
+
+	* pt-eval.h, pt-eval.cc: New files.  Parse tree evaluator code
+	adapted from eval member functions in classes derived from
+	tree_command.
+	* Makefile.in (PT_INCLUDES, PT_SRC): Add them to the lists
+
+	* pt-cmd.cc (tree_function_def::eval): Delete.
+	* pt-cmd.h: Delete decl.
+	(tree_command::eval): Delete pure virtual function.
+	(tree_no_op_command::eval): Delete.
+	(tree_function_def::function): Return octave_value, instead of
+	pointer to octave_function.  Change all uses.
+
+	* pt-except.cc (do_catch_code, tree_try_catch_command::eval,
+	do_unwind_protect_cleanup_code,
+	tree_unwind_protect_command::eval): Delete.
+	* pt-except.h: Delete decls.
+
+	* pt-jump.cc (tree_break_command::eval, tree_return_command::eval,
+	tree_continue_command::eval): Delete.
+	* pt-jump.h: Delete decls.
+
+	* pt-loop.cc (DO_ND_LOOP): Delete macro.
+	(tree_while_command::eval, tree_do_until_command::eval,
+	tree_simple_for_command::do_for_loop_once,
+	tree_simple_for_command::eval,
+	tree_complex_for_command::do_for_loop_once,
+	tree_complex_for_command::eval):
+	* pt-loop.h: Delete decls.
+
+	* pt-select.cc (tree_if_clause::eval, tree_if_command_list::eval,
+	tree_if_command::eval, tree_switch_case::eval,
+	tree_switch_case_list::eval, tree_switch_command::eval): Delete.
+	* pt-select.h: Delete decls.
+	(class tree_if_clause, class tree_switch_case): Derive from tree.
+	Handle line and column in constructors.
+
+	* pt-stmt.cc (tree_statement::eval): Delete
+	* pt-stmt.h: Delete decl.
+
+	* pt-stmt.cc, pt-stmt.h (tree_statement::is_command,
+	tree_statement::is_expression, tree_statement::line,
+	tree_statement::column): Now const.
+
+	* pt-stmt.cc (tree_statement::set_print_flag,
+	tree_statement::is_end_of_fcn_or_script): New functions.
+	* pt-stmt.h: Provide decl.
+	(set_breakpoint, delete_breakpoint, is_breakpoint): New function.
+	(bp): New member variable.
+	(print_result): Delete member variable.
+	(tree_statement_list::anon_function_body): New member variable.
+	(tree_statement_list::mark_as_anon_function_body,
+	tree_statement_list::is_anon_function_body,
+	tree_statement_list::is_script_body): New functions.
+
+	* pt-decl.cc (tree_decl_init_list::eval,
+	tree_decl_command::accept, tree_global_command::do_init,
+	tree_global_command::eval, tree_static_command::do_init,
+	tree_static_command::eval): Delete.
+	* pt-decl.h: Delete decls.
+	(tree_decl_elt::eval_fcn): Delete typedef.
+
+	* pt-decl.cc (tree_global_command::accept,
+	tree_static_command::accept): New functions.
+
+	* pt-stmt.cc (tree_statement::print_result): Move here from
+	pt-stmt.h.  Return true if expr is printable.
+
+	* ov-base.cc (Vsilent_functions): Delete.
+	(octave_base_value::print_with_name): Don't check
+	evaluating_function_body && Vsilent_functions here.
+	* ov-class.cc (octave_class::print_with_name): Likewise.
+	* ov-base.h (Vsilent_functions): Delete decl.
+	* pt-eval.cc (Fsilent_functions): Move here from ov-base.cc.
+	(Vsilent_functions): New static variable.
+
+	* sighandlers.cc (user_abort): Set tree_evaluator::debug_mode here.
+
+	* pt.h (tree::bp): Rename from tree::break_point.
+	(tree::set_breakpoint, tree::delete_breakpoint, tree::is_breakpoint):
+	No longer virtual.
+
+	* input.cc (get_debug_input): Use current_evaluator and
+	tree-walker to evaluate command.
+	* ov-usr-fcn.cc (octave_user_script::do_multi_index_op): Likewise.
+	* toplev.cc (main_loop): Likewise.
+	* parse.y (eval_string):
+
+	* input.h, input.cc (Vdebugging_current_line): Delete.
+	(get_debug_input): Use tree_evaluator::debug_line instead of
+	Vdebugging_current_line.
+
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Handle inline functions and anonymous functions as single
+	expressions.
+	* parse.y (eval_string): Likewise.
+
+	* parse.y (make_do_until_command): Rename first argument from
+	do_tok to until_tok.
+	(loop_command): Pass UNTIL token instead of DO token to
+	make_do_until_command.
+	(make_elseif_clause): New arg, elseif_tok.  Pass line and column
+	info to tree_if_clause constructor.
+	(elseif_clause): Pass ELSEIF token to make_elseif_clause.
+	(make_switch_case): New arg, case_tok.  Pass line and column info
+	to tree_switch_case constructor.
+	(switch_case): Pass CASE token to make_switch_case.
+	(make_script): New arg end_script.  Append it to cmds.
+	(script): Create no-op command for end of script and pass it to
+	make_script.
+	(start_function): New arg, end_function. Append it to body.
+	(function2): Pass end_function to start_function.
+	(make_end): New function.
+	(function_end): Declare as tree_statement_type.
+	Create no-op command for end of script.
+	(make_anon_fcn_handle): Mark body as anonymous function.
+	(set_stmt_print_flag): Set print flag for all separator types
+
+	* parse.y (fold (tree_binary_expression*),
+	fold (tree_unary_expression *),	finish_colon_expression,
+	finish_matrix): Call rvalue1 instead of rvalue.
+	Stash line number in new tree_constant object.
+
+	* debug.h (bp_table::have_breakpoints): New static function.
+	(bp_table::do_have_breakpoints): New member function.
+	* debug.cc (bp_table::do_add_breakpoint,
+	bp_table::do_remove_breakpoint,
+	bp_table::do_remove_all_breakpoints_in_file,
+	bp_table::do_remove_all_breakpoints): Call
+	bp_table::have_breakpoints to set tree_evaluator::debug_mode.
+	(Fdbnext): Delete function.  Alias to dbstep.
+	(Fdbquit, Fdbcont): Set tree_evaluator::dbstep_flag to zero.
+	(Fdbstep): Rewrite to use tree_evaluator::dbstep_flag instead of
+	tree::break_next, tree::last_line, tree::break_function, and
+	tree::last_break_function.
+	(Fdbwhere): Use tree_evaluator::debug_line and
+	tree_evaluator::debug_column to get current line and column info.
+	Don't print column if it is less than zero.
+	* pt.cc, pt.h (tree::break_next, tree::last_line,
+	tree::last_break_function, tree::break_function,
+	tree::break_statement): Delete.
+
+	* pt-bp.cc (tree_breakpoint::visit_global_command,
+	tree_breakpoint::visit_static_command,
+	tree_breakpoint::take_action (tree_statement&)): New functions.
+	* pt-bp.h: Provide decls.
+
+	* pt-bp.h (tree_walker::visit_global_command,
+	tree_walker::visit_static_command): New pure virtual functions.
+	(tree_walker::visit_decl_command): Delete.
+
+	* pt-bp.cc (tree_breakpoint::visit_decl_command): Delete.
+	* pt-bp.h: Delete decl.
+	(MAYBE_DO_BREAKPOINT): Delete macro and all uses.
+
+	* pt-bp.cc (tree_breakpoint::visit_no_op_command): Do nothing.
+	(tree_breakpoint::visit_argument_list,
+	tree_breakpoint::visit_binary_expression,
+	tree_breakpoint::visit_colon_expression,
+	tree_breakpoint::visit_decl_elt,
+	tree_breakpoint::visit_decl_init_list,
+	tree_breakpoint::visit_octave_user_script,
+	tree_breakpoint::visit_octave_user_function,
+	tree_breakpoint::visit_octave_user_function_header,
+	tree_breakpoint::visit_octave_user_function_trailer,
+	tree_breakpoint::visit_identifier,
+	tree_breakpoint::visit_index_expression,
+	tree_breakpoint::visit_matrix, tree_breakpoint::visit_cell,
+	tree_breakpoint::visit_multi_assignment,
+	tree_breakpoint::visit_anon_fcn_handle,
+	tree_breakpoint::visit_constant,
+	tree_breakpoint::visit_fcn_handle,
+	tree_breakpoint::visit_parameter_list,
+	tree_breakpoint::visit_postfix_expression,
+	tree_breakpoint::visit_prefix_expression,
+	tree_breakpoint::visit_return_list,
+	tree_breakpoint::visit_simple_assignment): Call panic_impossible
+	since breakpoints aren't set on expressions.
+	(tree_breakpoint::visit_if_clause): Fold into visit_if_command_list.
+	(tree_breakpoint::visit_switch_case): Fold into visit_switch_case_list.
+	(tree_breakpoint::visit_try_catch_command,
+	tree_breakpoint::visit_unwind_protect_command):
+	Don't set breakpoint on command itself, the the statements it
+	contains.
+	(tree_breakpoint::visit_global_command,
+	tree_breakpoint::visit_static_command): Call do_decl_command to do
+	actual work.
+	(tree_breakpoint::visit_while_command,
+	tree_breakpoint::visit_do_until_command,
+	tree_breakpoint::visit_simple_for_command,
+	tree_breakpoint::visit_complex_for_command,
+	tree_breakpoint::visit_statement,
+	tree_breakpoint::visit_statement_list,
+	tree_breakpoint::visit_switch_case_list): Set breakpoints at
+	appropriate places.
+
+	* pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_global_command,
+	tree_print_code::visit_static_command,
+	tree_print_code::do_decl_command): New functions.
+	(tree_print_code::visit_decl_command): Delete.
+
+	* pt-check.h, pt-check.cc (tree_checker::visit_global_command,
+	tree_checker::visit_static_command, tree_checker::do_decl_command):
+	New functions.
+	(tree_checker::visit_decl_command): Delete.
+
+	* pt-select.cc (tree_switch_case::label_matches): Call rvalue1
+	instead of rvalue.
+
+	* pt-exp.h, pt-exp.cc (tree_expression::rvalue1): New function.
+	(tree_expression::rvalue (void)): Delete.
+	(tree_expression::is_logically_true): Call rvalue1 instead of rvalue.
+
+	* pt-fcn-handle.h, pt-fcn-handle.cc (tree_fcn_handle::rvalue1,
+	tree_anon_fcn_handle::rvalue1): New functions.
+	(tree_fcn_handle:rvalue (void),
+	tree_anon_fcn_handle::rvalue1 (void)): Delete.
+	(tree_fcn_handle::rvalue (int), tree_anon_fcn_handle_rvalue (int)):
+	Call rvalue1 instead of rvalue.
+
+	* pt-idx.h, pt-idx.cc (tree_index_expression::rvalue1): New function.
+	(tree_index_expression::rvalue (void)): Delete.
+	(tree_index_expression::get_struct_index,
+	tree_index_expression::rvalue (int)): Call rvalue1 instead of rvalue.
+
+	* pt-mat.h, pt-mat.cc (tree_matrix::rvalue1): New function.
+	(tree_matrix::rvalue (void)): Delete.
+	(tm_row_const::tm_row_const_rep::init,
+	tree_matrix::rvalue (int)): Call rvalue1 instead of rvalue.
+
+	* pt-misc.cc (tree_parameter_list::convert_to_const_vector):
+	Call rvalue1 instead of rvalue.
+	* pt-arg-list.cc (tree_argument_list::convert_to_const_vector):
+	Likewise.
+
+	* pt-unop.h, pt-unop.cc (tree_prefix_expression::rvalue1,
+	tree_postfix_expression::rvalue1): New functions.
+	(tree_prefix_expression::rvalue (void),
+	tree_postfix_expression::rvalue (void)): Delete.
+	(tree_prefix_expression::rvalue (int),
+	tree_postfix_expression::rvalue (int)):
+	Call rvalue1 instead of rvalue.
+
+	* pt-id.h, pt-id.cc (tree_identifier::rvalue1): New function.
+	(tree_identifier::rvalue (void)): Delete.
+
+	* pt-assign.h, pt-assign.cc (tree_simple_assignment::rvalue1,
+	tree_multi_assignment::rvalue1): New functions.
+	(tree_simple_assignment::rvalue (void),
+	tree_multi_assignment::rvalue (void): Delete.
+	(tree_simple_assignment::rvalue (int)):
+	Call rvalue1 instead of rvalue.
+
+	* pt-binop.h, pt-binop.cc (tree_binary_expression::rvalue1,
+	tree_boolean_expression::rvalue1): New functions.
+	(tree_binary_expression::rvalue (void),
+	tree_boolean_expression::rvalue (void)): Delete.
+	(tree_binary_expression::rvalue (int),
+	tree_boolean_expression::rvalue (int)):
+	Call rvalue1 instead of rvalue.
+
+	* pt-cbinop.h, pt-cbinop.cc
+	(tree_compound_binary_expression::rvalue1): New function.
+	(tree_compound_binary_expression::rvalue (void)): Delete.
+
+	* pt-cell.h, pt-cell.cc (tree_cell::rvalue1): New function.
+	(tree_cell::rvalue (void)): Delete.
+	(tree_cell::rvalue (int)): Call rvalue1 instead of rvalue.
+
+	* pt-colon.h, pt-colon.cc (tree_colon_expression::rvalue1):
+	New function.
+	(tree_colon_expression::rvalue (void)): Delete.
+	(tree_colon_expression::rvalue (int)):
+	Call rvalue1 instead of rvalue.
+
+	* pt-const.h, pt-const.cc (tree_constant::rvalue1): New function.
+	(tree_constant::rvalue (void)): Delete.
+	(tree_constant::rvalue (int)): Call rvalue1 instead of rvalue.
+
+	* pt-decl.h, pt-decl.cc (tree_decl_elt::ravlue1): New function.
+	(tree_decl_elt::ravlue (void)): Delete.
+	(tree_decl_elt::eval): Call rvalue1 instead of rvalue.
+
+2009-02-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* TEMPLATE-INST/Array-tc.cc: Replace vec_index by pointers.
+
+2009-02-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-re-mat.cc (octave_matrix::abs, octave_matrix::real,
+	octave_matrix::imag, octave_matrix::conj): Use special code.
+	* ov-flt-re-mat.cc (octave_float_matrix::abs, octave_float_matrix::real,
+	octave_float_matrix::imag, octave_float_matrix::conj): Use special code.
+	* ov-cx-mat.cc (octave_complex_matrix::abs, octave_complex_matrix::real,
+	octave_complex_matrix::imag, octave_complex_matrix::conj): Use special code.
+	* ov-flt-cx-mat.cc (octave_float_complex_matrix::abs, octave_float_complex_matrix::real,
+	octave_float_complex_matrix::imag, octave_float_complex_matrix::conj): Use special code.
+
+2009-01-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc (Flookup): Add missing check.
+
+2009-01-29  John W. Eaton  <jwe@octave.org>
+
+	* pt-stmt.cc (tree_statement::eval): Check
+	in_function_or_script_body instead of symbol_table::at_top_level ()
+	to decide whether to call octave_call_stack::set_statement.
+
+	* graphics.cc (properties::set_defaults): Also set
+	horizontalalignment, verticalalignmnt, and rotation properties for
+	new label objects here.
+
+	* ov-base-scalar.cc (octave_base_scalar<ST>::is_true (void) const):
+	Error if scalar is NaN.
+	* ov-base-mat.cc (octave_base_matrix<MT>::is_true (void) const):
+	Likewise, if any element of matrix is NaN.
+	* ov-cell.cc (octave_cell::is_true): New function.
+	* Cell.h (Cell::any_element_is_nan): New function.
+
+2009-01-29  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pr-output.cc:
+	(void octave_print_internal (..., const DiagMatrix& m,...),
+	(void octave_print_internal (..., const ComplexDiagMatrix& m,...),
+	(void octave_print_internal (..., const FloatDiagMatrix& m,...),
+	(void octave_print_internal (..., const FloatComplexDiagMatrix& m,...)):
+	New functions.
+	* pr-output.h: Declare them.
+	* ov-base-diag.cc (octave_base_diag::print_raw): Call
+	octave_print_internal.
+
+2009-01-28  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (install, uninstall): Handle SHLLIBPRE and SHLBINPRE
+	library prefixes.  From Marco Atzeri <marco_atzeri@yahoo.it>.
+
+2008-01-28  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/regexp.cc (octregexp_list): Don't break for zero
+	length match, but rather advance the index by one character and
+	try again.
+
+2009-01-28  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc (Flookup): Fix doc string.
+
+2009-01-27  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (Fcommand_line_path): Rename from Fcommandlinepath.
+
+2009-01-27 Ben Abbott  <bpabbott@mac.com>
+
+	* graphics.cc (convert_position): Handle character units.
+	(default_axes_tick, default_figure_papersize,
+	default_figure_paperposition): New functions.
+	* graphics.h.in (class figure::properties): Use them to
+	initialize papersize, paperposition, xtick, ytick, and ztick
+	properties.
+
+2009-01-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/qr.cc (Fqr): Treat empty matrices correctly.
+
+2009-01-26  Thomas Treichl  <Thomas.Treichl@gmx.net>
+
+	* display.cc (display_info::init): Use double instead of CGFloat.
+	Use HAVE_FRAMEWORK_CARBON instead of OCTAVE_USE_OS_X_API.
+
+2009-01-26  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::do_find_fcn): Handle @foo/bar.
+
+2009-01-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-cell.cc (tree_cell::rvalue): Optimize the single row case.
+
+2009-01-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-struct.cc (octave_struct::subsasgn): Reshape cs-list on rhs
+	according to the index expression.
+	* ov-cell.cc (octave_cell::subsasgn): Ditto.
+
+2008-12-25 Ben Abbott  <bpabbott@mac.com>
+
+	* load-path.cc (Fcommandlinepath): New function.
+	* load-path.h (load_path::get_command_line_path,
+	load_path::do_get_command_line_path): New functions.
+
+2009-01-24 Ben Abbott  <bpabbott@mac.com>
+
+	* DLD-FUNCTIONS/eigs.cc: eigs.cc: skip tests if ARPACK is missing.
+
+2009-01-25  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* help.cc (do_get_help_text, raw_help_from_symbol_table): new output to
+	flag the a function is found but not documented.
+
+2009-01-25  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* help.cc (raw_help_from_file): No longer search for files called
+	'Contents.m', as this is moved to 'script/help.m'.
+
+
+2009-01-23  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (octave_call_stack::do_goto_caller_frame):
+	Also allow caller frame to be base frame, not just user code.
+
+2009-01-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* gripes.cc (gripe_indexed_cs_list, gripe_invalid_inquiry_subscript):
+	New functions.
+	* gripes.h: Declare them.
+	* pt-idx.cc: Remove definitions of the above funcs.
+	* ov-cell.cc (octave_cell::subsref): Declare constants as const.
+	(octave_cell::subsasgn): Remove dead branch, declare constants as const.
+	(octave_cell::list_value): Optimize.
+	* ov-struct.cc
+	(octave_struct::subsref): Declare constants as const.
+	(octave_struct::subsasgn): Remove dead branch, declare constants as const.
+	* ov-cs-list.cc (octave_cs_list::octave_cs_list (const Cell&)):
+	Optimize.
+	* oct-obj.cc (octave_value_list::octave_value_list (const
+	std::list<octave_value_list>&)): New constructor.
+	* oct-obj.h: Declare it.
+	* pt-arg-list.cc (convert_to_const_vector): Optimize.
+	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): Use const
+	reference to avoid redundant copy.
+	* ov-usr-fcn.cc (octave_user_function::bind_automatic_vars): Optimize.
+	(octave_user_function::octave_all_va_args): Optimize.
+
+2009-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Cell.h (Cell::Cell (octave_value_list)): Only declare.
+	(Cell::index (*)): Change resize_ok type to bool.
+	* Cell.cc (Cell::Cell (octave_value_list)): Redefine.
+	* oct-obj.h, oct-obj.cc: Change octave_value_list::data to
+	Cell variable, reflect changes.
+
+2009-01-22  John W. Eaton  <jwe@octave.org>
+
+	* help.cc (do_which (std::ostream&, const std::string&), Fwhich):
+	Delete.
+	(do_which (const std::string&, std::string&), F__which__):
+	New functions.
+	* do_which (const std::string&):
+	Call do_which (const std::string&, std::string&) to do the work.
+
+2009-01-22  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* defun-int.h (print_usage): No longer mark as deprecated.
+	* defun.cc (print_usage): Simply call feval to execute print_usage.m.
+	* help.cc (additional_help_message, display_names_from_help_list,
+	display_symtab_names, simple_help, try_info, help_from_info,
+	display_help_text, display_usage_text, raw_help_from_list,
+	help_from_list, help_from_symbol_table, help_from_file,
+	builtin_help, Fhelp, display_file, do_type, Ftype,
+	first_help_sentence, print_lookfor, Flookfor): Delete.
+	(looks_like_html, raw_help_from_map, raw_help, do_get_help_text,
+	F__operators__, F__keywords__, F__builtins__,
+	file_is_in_dir, F__list_functions__): New functions.
+	(pair_type, map_iter): New typedefs.
+	(operators, keywords): Use pair_type for elements of list.
+	(names): Use map for (keyword, doc) lists.
+	(make_name_list): Sprinkle with const.
+	* help.h (display_help_text, display_usage_text,
+	additional_help_message): Delete decls.
+
+2009-01-22  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (octave_config_info): Check OCTAVEUSE_OS_X_API instead
+	of __APPLE__ && __MACH__.
+
+	* display.cc (display_info::init): Get info for Windows and OS X
+	systems.
+
+2009-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-idx.cc (tree_index_expression::lvalue): Correct tmpi when seeing
+	a plain struct component.
+	* ov-struct.cc (octave_struct::subsasgn): Use proper type substr in
+	empty_conv.
+
+2009-01-22  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/qr.cc: Remove HAVE_QRUPDATE check.
+	* DLD-FUNCTIONS/chol.cc: Ditto.
+
+2009-01-21  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (display.o): Add X11_INCFLAGS to CPPFLAGS.
+	(octave$(EXEEXT)): Link with X11_LIBS.
+
+	* display.h, display.cc: New files.
+	* graphics.cc (default_screendepth, default_screensize,
+	default_screenpixelsperinch): New functions.
+	* graphics.h.in (class root_figure::properties): New property,
+	screendepth.  Use default_screensize to initialize screensize
+	property.  Use default_screenpixelsperinch to initialize
+	screenpixelsperinch property.
+
+	* graphics.cc (properties::init): Set default xlabel, ylabel,
+	zlabel, and title properties that differ from default text
+	properties.
+
+2009-01-21  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-range.cc: Define & register range-scalar ops.
+
+2009-01-21  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h (octave_value::subsref (..., bool auto_add)): New method.
+	(octave_value::next_subsref (bool auto_add, ...)): New method.
+	* ov.cc (octave_value::next_subsref (bool auto_add, ...)): New method.
+	* ov-base.h (octave_base_value::subsref (..., bool auto_add)): New
+	virtual method.
+	* ov-base.cc (octave_base_value::subsref (..., bool auto_add)): New
+	virtual method.
+	* ov-cell.cc (octave_cell::subsref (..., bool auto_add)): New virtual
+	method.
+	* ov-cell.h (octave_cell::subsref (..., bool auto_add)): Declare it.
+	* ov-struct.cc (octave_struct::subsref (..., bool auto_add)): New
+	virtual method.
+	(octave_struct::subsref (const std::string& type, const
+	std::list<octave_value_list>& idx)): Do not allow resizing.
+	* ov-struct.h (octave_struct::subsref (..., bool auto_add)): Declare
+	it.
+	* ov-struct.cc (octave_struct::dotref (..., bool auto_add)): New
+	virtual method.
+	* ov-struct.h (octave_struct::dotref (..., bool auto_add)): Declare it.
+	* pt-idx.cc (tree_index_expression::rvalue): Do not reevaluate already
+	evaluated part of the index chain.
+	(tree_index_expression::rvalue): Do not reevaluate already evaluated
+	part of the index chain. Do not actually perform trailing indexing.
+	Do not allow indexing cs-lists.
+
+2009-01-20  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (Ffstat): New function.
+
+2009-01-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete, Fqrshift):
+	Reflect changes in liboctave.
+	* DLD-FUNCTIONS/chol.cc (Fcholupdate, Fcholinsert):
+	Reflect changes in liboctave.
+
+2009-01-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h (octave_value::make_unique (int)): New method.
+	* oct-obj.h (octave_value_list::octave_value_list (const Cell&)): New
+	constructor.
+	* ov-cell.cc (octave_cell::subsasgn): Allow composed {} indexing
+	in multi-assignments. Optimize.
+	* ov-struct.cc (octave_struct::subsasgn): Correct composed {} indexing
+	in multi-assignments. Optimize & fix bugs.
+	* pt-idx.cc (tree_index_expression::lvalue): Rewrite to allow
+	specifying cs-list anywhere in index chain, be more robust.
+
+2009-01-19  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (grab_comment_block): If not reading input from a file,
+	bail out at first newline inside a comment.
+
+	* lex.l (lexer_debug_flag): New static variable.
+	(F__lexer_debug_flag__): New function.
+	(LEXER_DEBUG): New macro.  Use it in all patterns.
+	(DISPLAY_TOK_AND_RETURN): Also display token if lexer_debug_flag
+	is set.
+	(process_comment): Display comment if lexer_debug_flag is set.
+	(display_character, display_state, lexer_debug): New static functions.
+	(xunput): Display character if lexer_debug_flag is set.
+
+2009-01-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h: Describe usage of storable_value and make_storable_value.
+	* ov.cc: Remove FIXME comment.
+
+2009-01-15  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (Freshape): Include mismatched dimensions in error message.
+	From Robert Millan <rmh@aybabtu.com>.
+
+2009-01-14  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.cc (octave_value::maybe_economize): New method.
+	(octave_value::non_null_value): rename to storable_value.
+	(octave_value::make_non_null_value): rename to make_storable_value.
+	* ov-base.h (octave_base_value::maybe_economize): New method.
+	* ov-base-mat.h (octave_base_mat::maybe_economize): New override.
+	* oct-obj.cc (octave_value_list::normalize_null_values):
+	Rename to make_storable_values, use make_storable_value.
+	* oct-obj.h: Ditto.
+	* ov-builtin.cc: non_null_value -> storable_value.
+	* ov-cell.cc: Ditto.
+	* ov-struct.cc: Ditto.
+	* pt-decl.h: Ditto.
+
+2009-01-15  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image):
+	Initialize bitdepth.
+
+2009-01-14  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/chol.cc,
+	DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc,
+	DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/filter.cc,
+	DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc,
+	DLD-FUNCTIONS/givens.cc, DLD-FUNCTIONS/hess.cc,
+	DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/qz.cc,
+	DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/svd.cc,
+	DLD-FUNCTIONS/syl.cc, data.cc, mappers.cc:
+	Use ifnottex instead of ifinfo.
+
+2009-01-14  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::do_set): Call do_clear after disabling
+	add_hook.
+
+2009-01-13  Jaroslav Hajek  <highegg@gmail.com>
+
+	* dirfns.cc (Freadddir): qsort -> sort.
+	* graphics.cc (maybe_set_children): Ditto.
+	* help.cc (simple_help): Ditto.
+	* input.cc (generate_possible_completions): Ditto.
+	* oct_map.cc (keys_ok): Ditto.
+	* ov-fcn-inline.cc (Finline): Ditto.
+	* variables.cc (Fisrawcommand): Ditto.
+
+2009-01-12  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (maximum_braindamage): Set confirm_recursive_rmdir to
+	false.
+
+	* strfns.cc (Fstrcmp, Fstrncmp): Simplify by initializing all
+	elements of output to false with constructor argument.
+
+2009-01-12  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* strfns.cc (Fstrncmp): New test.
+
+2009-01-12  John W. Eaton  <jwe@octave.org>
+
+	* pt-stmt.h (tree_statement::is_null_statement): New function.
+	* parse.y (set_stmt_print_flag): Return list.  Remove trailing
+	null statements from list.
+	(list, simple_list): Simplify action.
+	(make_statement, make_statement_list, append_statement_list):
+	Always create statements and them to the list.
+
+	* base-list.h (octave_base_list::push_front,
+	octave_base_list::push_back, octave_base_list::pop_front,
+	octave_base_list::pop_back): New functions.
+
+	* DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete, Fqrshift):
+	Require args to be numeric, not necessarily matrix objects.
+
+2009-01-12  Ben Abbott  <bpabbott@mac.com>
+
+	* graphics.h.in (text::properties::fontunits): Fix typo in list of
+	possible values.
+
+2009-01-12  John W. Eaton  <jwe@octave.org>
+
+	* strfns.cc (Fstrvcat, Fchar): Use queue to avoid duplicate calls
+	to all_strings.
+
+2009-01-12  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* strfns.cc (Fstrvcap): New function.
+
+2008-11-29  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* strfns.cc (Fchar, Fischar, Fstrncmp, Flist_in_columns):
+	Improve documentation strings.  Add examples and tests.
+
+2009-01-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-perm.cc (octave_perm_matrix::do_index_op): Return shallow copy
+	when indexed by (:,:).
+	* ov-base-mat.cc (octave_base_diag::do_index_op): Return shallow copy
+	when indexed by (:,:). Optimize indexing equivalent to resizing.
+	* data.cc: Fix tests.
+	* mappers.cc: Fix tests.
+
+2009-01-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h,
+	ov-base.cc, ov-base.h, ov-perm.h, ov-range.h, ov.h: Add full_value
+	methods to octave_value, octave_base_value and its relevant
+	subclasses.
+	* data.cc (Ffull): New DEFUN.
+	* DLD-FUNCTIONS/sparse.cc (Ffull): move to data.cc.
+2009-01-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h (octave_value::is_copy_of): New method.
+	* ov-struct.cc (numeric_conv): Add output parameter orig.
+	(octave_struct::subsasgn): Temporarily erase duplicate lhs value prior
+	to assignment.
+
+2009-01-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-obj.cc (octave_value_list::all_scalars): New method.
+	* oct-obj.h: Declare it.
+	* ov-cell.cc (octave_cell::subsasgn): Disable assigning
+	to non-scalar {}-indexed cell, unless in a multi-assignment.
+
+2009-01-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/sparse.cc (Ffull): Convert diagonal & permutation
+	matrices, leave other classes untouched.
+
+2009-01-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-cdm-cdm.cc: Install missing widening op.
+	* OPERATORS/op-dm-dm.cc: Ditto.
+	* OPERATORS/op-fcdm-fcdm.cc: Ditto.
+	* OPERATORS/op-fdm-fdm.cc: Ditto.
+	* OPERATORS/op-pm-pm.cc: Ditto.
+	* OPERATORS/op-fpm-fpm.cc: Ditto.
+
+2009-01-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-cell.cc (octave_cell::subsasgn): Put erased copy back after
+	make_unique has been called.
+
+2009-01-09  Kai Habel  <kai.habel@gmx.de>
+
+	* graphics.cc: Calculate normals for surface boundaries, use
+	more neighboring points to calculate interior normals
+
+2009-01-09  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (get_user_input (void)): Don't increment input_line_number.
+	* lex.l (xunput): New function.  Use it in place of yyunput
+	anywhere a newline character may be put back on the input stream.
+	Increment input_line_number in all rules that consume newlines
+	characters.
+	(text_yyinput): Increment input_line_number
+	(fixup_column_count): Increment input_line_number.
+	(prep_for_function): Set input_line_number to 1, not 0.
+	(reset_parser): Set input_line_number to current_command_number,
+	not current_command_number-1.
+	(flex_stream_reader::ungetc): Call xunput, not yyunput.
+	* parse.y (input_line_number): Initialize to 1, not 0.
+	(text_getc): Increment input_line_number correctly.
+	(stdio_stream_reader::ungetc): Decrement input_line_number if
+	putting back a newline character.
+	(parse_fcn_file): Set input_line_number to 1, not 0.
+	(eval_string): Unwind-protect input_line_number and
+	current_input_column.
+
+	* parse.y (make_statement): New function.
+	(statement): Use it.
+	(make_statement_list, append_statement_list): New functions.
+	(simple_list1, list1): Use them.
+
+2009-01-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-cell.cc (octave_cell::subsasgn): Erase duplicate lhs value
+	prior to assignment to avoid a redundant copy.
+
+2008-12-26  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* mappers.cc (Ftoascii), mappers.cc (Ftolower), mappers.cc
+	(Ftoupper), DLD-FUNCTIONS/regexp.cc (Fregexp),
+	DLD-FUNCTIONS/regexp.cc	(Fregexpi), DLD-FUNCTIONS/regexp.cc
+	(Fregexprep): Add references.
+
+2008-12-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-obj.h, oct-obj.cc (octave_value_list::valid_scalar_indices): Remove.
+	* ov-base-diag.cc, ov-base-diag.h, ov-base-scalar.cc, ov-base.h,
+	ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, ov-bool-sparse.h,
+	ov-bool.cc, ov-bool.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.h,
+	ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h,
+	ov-cx-sparse.cc, ov-cx-sparse.h, ov-float.cc, ov-float.h,
+	ov-flt-complex.cc, ov-flt-complex.h, ov-flt-cx-mat.cc,
+	ov-flt-cx-mat.h, ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h,
+	ov-perm.cc, ov-perm.h, ov-range.h, ov-re-mat.cc, ov-re-mat.h,
+	ov-re-sparse.cc, ov-re-sparse.h, ov-scalar.cc, ov-scalar.h,
+	ov-str-mat.cc, ov-str-mat.h, ov.h:
+	Remove valid_as_scalar_index and valid_as_zero_index methods
+	from octave_value, octave_base_value and all of its subclasses.
+
+2008-12-26  Francesco PotortƬ  <pot@gnu.org>
+
+	* data.cc (resize): Add cross reference to postpad.
+
+2008-12-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* load-save.h (load_save_format_type, load_save_format_options): New
+	enums.
+	(load_save_format): Convert to a class.
+	* load-save.cc (do_save(..., const octave_value&,...)): Use fmt.type
+	in switch. Use options of LS_MAT_ASCII.
+	(do_load, write_header): Use format.type in switch.
+	* ls-mat-ascii.h (save_mat_ascii_data): Add tabs option.
+	* ls-mat-ascii.cc (save_mat_ascii_data): Implement it.
+
+2008-12-24  Ben Abbott  <bpabbott@mac.com>
+
+	* DLD-FUNCTIONS/chol.cc: Compare results to 0 in tests.
+	Delete spurious function calls in test block.
+
+2008-12-24  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/eigs.cc: Use "testif HAVE_ARPACK" to skip tests if
+	ARPACK is not available.
+
+	* Makefile.in (DLD_XSRC): Add eigs.cc to the list.
+
+	* load-save.cc (parse_save_options): Handle -double.
+
+2008-12-23  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/eigs.cc: New file.
+	* Makefile.in (DLD_XSRC): Add it here.
+
+2008-12-22  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/__voronoi__.cc (F__voronoi__): Resize AtInf array
+	before returning it.
+
+2008-12-12  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/chol.cc (Fcholinv): Add test.
+
+2008-12-12  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ls-hdf5.cc (add_hdf5_data): Check for diagonal & permutation
+	matrices and convert them to full prior to saving.
+
+2008-12-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-re-mat.cc (Fdouble): Handle diagonal & perm matrices.
+	* ov-flt-re-mat.cc (Fsingle): Handle diagonal & perm matrices.
+
+2008-12-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-diag.cc (octave_base_diag<DMT,MT>::subsasgn): New method.
+	* ov-base-diag.h (octave_base_diag<DMT,MT>::subsasgn): Declare it.
+	(octave_base_diag<DMT,MT>::chk_valid_scalar): New method decl.
+
+	* ov-re-diag.cc (octave_diag_matrix::chk_valid_scalar): New method
+	override.
+	* ov-re-diag.h: Declare it.
+	* ov-flt-re-diag.cc (octave_float_diag_matrix::chk_valid_scalar): New
+	method override.
+	* ov-flt-re-diag.h: Declare it.
+	* ov-cx-diag.cc (octave_complex_diag_matrix::chk_valid_scalar): New
+	method override.
+	* ov-cx-diag.h: Declare it.
+	* ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::chk_valid_scalar):
+	New method override.
+	* ov-flt-cx-diag.h: Declare it.
+
+2008-12-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/expm.cc: Remove.
+	* Makefile.in: Update.
+
+2008-12-10  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::empty_clone): Construct an
+	empty matrix instead of zero.
+
+2008-12-07  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* mappers.cc (Ftolower): Make lower alias of tolower, add tests
+	* mappers.cc (Ftoupper): Make upper alias of toupper, add tests
+
+2008-12-09  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/balance.cc (Fbalance): Exploit the new AEPBAL functionality.
+
+2008-12-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xpow.cc ( xpow (const DiagMatrix& a, double b),
+	xpow (const DiagMatrix& a, const Complex& b),
+	xpow (const ComplexDiagMatrix& a, double b),
+	xpow (const ComplexDiagMatrix& a, const Complex& b),
+	xpow (const FloatDiagMatrix& a, float b),
+	xpow (const FloatDiagMatrix& a, const FloatComplex& b),
+	xpow (const FloatComplexDiagMatrix& a, float b),
+	xpow (const FloatComplexDiagMatrix& a, const FloatComplex& b)):
+	New methods.
+	* xpow.h: Declare them.
+	* OPERATORS/op-dms-template.cc: Support diagonal matrix ^ scalar.
+
+2008-12-08  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-re-diag.cc (octave_diag_matrix::save_binary,
+	octave_diag_matrix::load_binary): New methods.
+	* ov-re-diag.h: Declare them.
+	* ov-flt-re-diag.cc (octave_float_diag_matrix::save_binary,
+	octave_float_diag_matrix::load_binary): New methods.
+	* ov-flt-re-diag.h: Declare them.
+	* ov-cx-diag.cc (octave_complex_diag_matrix::save_binary,
+	octave_complex_diag_matrix::load_binary): New methods.
+	* ov-cx-diag.h: Declare them.
+	* ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::save_binary,
+	octave_float_complex_diag_matrix::load_binary): New methods.
+	* ov-flt-cx-diag.h: Declare them.
+	* ov-perm.cc (octave_perm_matrix::save_binary,
+	octave_perm_matrix::load_binary): New methods.
+	* ov-perm.h: Declare them.
+
+2008-12-06  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-fcn-handle.cc (octave_fcn_handle::load_binary): Call istream::get
+	rather than istream::read to supply null terminating character.
+
+2008-10-29  Jaroslav Hajek  <highegg@gmail.com>
+	* file-io.cc, gl-render.cc, load-save.cc, ls-hdf5.cc, ls-mat4.cc,
+	ls-mat5.cc, ls-oct-binary.cc, mex.cc, oct.h, ov-base-int.cc,
+	ov-bool-mat.cc, ov-bool-sparse.cc, ov-cell.cc, ov-class.cc,
+	ov-cx-mat.cc, ov-cx-sparse.cc, ov-fcn-handle.cc, ov-fcn-inline.cc,
+	ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc,
+	ov-str-mat.cc, ov-struct.cc, toplev.cc,
+	DLD-FUNCTIONS/__lin_interpn__.cc, DLD-FUNCTIONS/amd.cc,
+	DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc,
+	DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/gcd.cc,
+	DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/regexp.cc,
+	DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/symrcm.cc:
+	Include oct-locbuf.h.
+
+2008-12-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base-diag.cc (save_ascii, load_ascii): Save natively.
+	* ov-base-diag.h (load_ascii): Declare.
+	* ov-perm.cc (save_ascii, load_ascii): Save natively.
+	* ov-perm.h (load_ascii): Declare.
+
+2008-12-04  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* strfns.cc (Fchar): Add test from str2mat.m
+
+2008-12-04  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov.h (octave_value::is_perm_matrix): New method.
+	* ov-base.h (octave_base_value::is_perm_matrix): New method.
+	* ov-perm.h (octave_perm_matrix::is_perm_matrix): New method.
+	* DLD-FUNCTIONS/inv.cc (Finv): Handle permutation matrices specially,
+	compute rcond for diagonal matrices.
+	* DLD-FUNCTIONS/det.cc (Fdet): Handle permutation & diagonal matrices
+	specially.
+
+2008-12-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-perm.h: New source.
+	* ov-perm.cc: New source.
+	* ov-flt-perm.h: New source.
+	* ov-flt-perm.cc: New source.
+	* ov-base-diag.cc (octave_base_diag<DMT, MT>::do_index_op):
+	If subscripting an identity matrix by permutation(s), return a
+	permutation matrix object.
+	* ov.cc (octave_value::octave_value (const PermMatrix&)): New
+	constructor.
+	* ov.cc (octave_value::octave_value (const PermMatrix&)): Declare it.
+	* op-cm-pm.cc: New source.
+	* op-fcm-fpm.cc: New source.
+	* op-fm-fpm.cc: New source.
+	* op-fpm-fcm.cc: New source.
+	* op-fpm-fm.cc: New source.
+	* op-fpm-fpm.cc: New source.
+	* op-m-pm.cc: New source.
+	* op-pm-cm.cc: New source.
+	* op-pm-m.cc: New source.
+	* op-pm-pm.cc: New source.
+	* op-pm-template.cc: New source.
+	* Makefile.in: Include new sources.
+	* DLD-FUNCTIONS/qr.cc (Fqr): Reflect interface changes of QR classes.
+
+2008-12-03  John W. Eaton  <jwe@octave.org>
+
+	* debug.cc (bp_table::do_get_breakpoint_list): Style fixes.
+
+2008-12-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (octave_base_value::is_diag_matrix): New virtual method.
+	* ops.h (CONCAT2, CONCAT3): New macros. Use CONCAT macros instead of
+	direct token pasting to avoid disabling argument prescan.
+	* xdiv.cc, xdiv.h: Implement xdiv and xleftdiv overloads for diagonal
+	and mixed dense-diagonal operands.
+
+	* ov-re-diag.h: New source.
+	* ov-re-diag.cc: New source.
+	* ov-flt-re-diag.h: New source.
+	* ov-flt-re-diag.cc: New source.
+	* ov-base-diag.h: New source.
+	* ov-base-diag.cc: New source.
+	* OPERATORS/op-m-dm.cc: New source.
+	* OPERATORS/op-m-cdm.cc: New source.
+	* OPERATORS/op-fm-fdm.cc: New source.
+	* OPERATORS/op-fm-fcdm.cc: New source.
+	* OPERATORS/op-fdm-fs.cc: New source.
+	* OPERATORS/op-fdm-fm.cc: New source.
+	* OPERATORS/op-fdm-fdm.cc: New source.
+	* OPERATORS/op-fdm-fcs.cc: New source.
+	* OPERATORS/op-fdm-fcm.cc: New source.
+	* OPERATORS/op-fdm-fcdm.cc: New source.
+	* OPERATORS/op-fcm-fdm.cc: New source.
+	* OPERATORS/op-fcm-fcdm.cc: New source.
+	* OPERATORS/op-fcdm-fs.cc: New source.
+	* OPERATORS/op-fcdm-fm.cc: New source.
+	* OPERATORS/op-fcdm-fdm.cc: New source.
+	* OPERATORS/op-fcdm-fcs.cc: New source.
+	* OPERATORS/op-fcdm-fcm.cc: New source.
+	* OPERATORS/op-fcdm-fcdm.cc: New source.
+	* OPERATORS/op-dms-template.cc: New source.
+	* OPERATORS/op-dm-template.cc: New source.
+	* OPERATORS/op-dm-s.cc: New source.
+	* OPERATORS/op-dm-m.cc: New source.
+	* OPERATORS/op-dm-dm.cc: New source.
+	* OPERATORS/op-dm-cs.cc: New source.
+	* OPERATORS/op-dm-cm.cc: New source.
+	* OPERATORS/op-dm-cdm.cc: New source.
+	* OPERATORS/op-cm-dm.cc: New source.
+	* OPERATORS/op-cm-cdm.cc: New source.
+	* OPERATORS/op-cdm-s.cc: New source.
+	* OPERATORS/op-cdm-m.cc: New source.
+	* OPERATORS/op-cdm-dm.cc: New source.
+	* OPERATORS/op-cdm-cs.cc: New source.
+	* OPERATORS/op-cdm-cm.cc: New source.
+	* OPERATORS/op-cdm-cdm.cc: New source.
+	* Makefile.in: Include them.
+
+	* ov-re-mat.cc (octave_matrix::diag): New method override.
+	* ov-re-mat.h: Declare it.
+	* ov-cx-mat.cc: Likewise with octave_complex_matrix.
+	* ov-cx-mat.h: Likewise with octave_complex_matrix.
+	* ov-flt-re-mat.cc: Likewise with octave_float_matrix.
+	* ov-flt-re-mat.h: Likewise with octave_float_matrix.
+	* ov-flt-cx-mat.cc: Likewise with octave_float_complex_matrix.
+	* ov-flt-cx-mat.h: Likewise with octave_float_complex_matrix.
+	* ov.cc (octave_value::octave_value (const DiagMatrix&))
+	(octave_value::octave_value (const FloatDiagMatrix&))
+	(octave_value::octave_value (const ComplexDiagMatrix&))
+	(octave_value::octave_value (const FloatComplexDiagMatrix&)):
+	Construct a diagonal matrix object.
+	* data.cc (Fdiag): Support explicit dimensions. Fix tests.
+	(Feye): Return diagonal matrix objects if possible. Fix tests.
+	* mappers.cc (Freal, Fimag): Fix tests.
+	* DLD-FUNCTIONS/inv.cc (Finv): Handle diagonal matrix objects.
+	* ov-range.h (octave_range::diag): Declare only.
+	* ov-range.cc (octave_range::diag): Return DiagMatrix if possible.
+
+2008-11-25  Jaroslav Hajek  <highegg@gmail.com>
+	* ov.cc (octave_value::is_equal): New member function.
+	* ov.h: Declare it.
+	* pt-select.cc (tree_switch_case::label_matches): Call
+	octave_value::is_equal.
+
+2008-12-04  Thomas Treichl  <Thomas.Treichl@gmx.net>
+
+	* DLD-FUNCTIONS/cellfun.cc: Added more tests for cellfun.
+
+2008-11-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.h (octave_base_value::type_conv_info): New class.
+	* ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc,
+	ov-bool-sparse.h, ov-bool.cc, ov-bool.h, ov-complex.cc, ov-complex.h,
+	ov-cx-mat.cc, ov-cx-mat.h, ov-null-mat.cc, ov-null-mat.h,
+	ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc,
+	ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov.h:
+	Return type_conv_info instead of type_conv_fcn from
+	numeric_conversion_function and numeric_demotion_function
+	methods.
+	* ov-base.cc (octave_base_value::numeric_assign): Try biased conversion
+	first if possible.
+	* ov.cc (do_binary_op): Likewise. Also, search recursively.
+	* ov.cc (do_cat_op): Likewise.
+
+2008-11-24  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (F__go_delete__): Check validity of handles before
+	deleting them to avoid issues with callback function also deleting
+	the handles.
+
+2008-11-21  John Swensen  <jpswensen@comcast.net>
+
+	* debug.cc (bp_table::do_get_breakpoint_list): Avoid modifying
+	bp_map while iterating over it.
+
+2008-11-21  Jarkko Kaleva  <d3roga@gmail.com>
+
+	* DLD-FUNCTIONS/eig.cc (Feig): Handle generalized eigenvalues and
+	eigenvectors.
+
+2008-11-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD_FUNCTIONS/det.cc: Include only DET.h. Retrieve & matrix type &
+	store it after calculation if possible.
+
+2008-11-17  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::dir_info::update): Simplify previous
+	change.
+
+	* load-path.h (load_path::dir_info::abs_dir_name): New data member.
+	(load_path::dir_info::dir_info, load_path::dir_info::operator =):
+	Copy abs_dir_name.
+	(load_path::abs_dir_cache_type, load_path::dir_cache_iterator,
+	load_path::const_dir_cache_iterator): New typedefs.
+	(load_path::abs_dir_cache): New static data member.
+	(load_path::dir_info:dir_info): New constructor.
+	* load-path.cc (load_path::abs_dir_cache): Define new static data
+	member.
+	(load_path::dir_info::update): Look in abs_dir_cache for relative
+	directory names.
+	(load_path::dir_info::initialize): Update abs_dir_cache here.
+
+2008-11-13  John W. Eaton  <jwe@octave.org>
+
+	* ov-int8.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-uint8.h,
+	ov-uint16.h, ov-uint32.h, ov-uint64.h: Don't define
+	OCTAVE_INT_NDARRAY_T.
+	* ov-intx.h (class OCTAVE_VALUE_INT_MATRIX_T,
+	class OCTAVE_VALUE_INT_SCALAR_T): Use intNDArray<OCTAVE_INT_T>
+	instead of OCTAVE_INT_NDARRAY_T.
+	(OCTAVE_VALUE_INT_MATRIX_T::increment,
+	OCTAVE_VALUE_INT_MATRIX_T::decrement,
+	OCTAVE_VALUE_INT_SCALAR_T::increment,
+	OCTAVE_VALUE_INT_SCALAR_T::decrement): Convert 1 to OCTAVE_INT_T.
+
+2008-11-15  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* strfns.cc (Fchar): adapt to conserve empty strings, add tests
+
+2008-11-12  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* dirfcn.cc (Ffilesep): Make it return all file separators when 'all'
+	is given as argument.
+
+	* DLD-FUNCTIONS/getrusage.cc: Undefine min/max.
+	* TEMPLATE-INST/Array-os.cc: Declare Array<bool> as extern template.
+
+2008-11-12  David Bateman  <dbateman@free.fr>
+
+	* OPERATORS/op-cell.cc (op_catop_matrix_cell): Cast args in the correct
+	order.
+	* OPERATORS/op-struct.cc (op_catop_matrix_struct): Ditto.
+
+2008-11-11  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-assign.cc: Fix handling of empty cs-lists in assignment LHS.
+
+2008-11-11  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (<MATRIX_START>{S}+): Don't insert separator if next token
+	is a separator.
+
+	* parse.y (F__parser_debug_flag__): New function.
+
+2008-10-31  Jaroslav Hajek  <highegg@gmail.com>
+
+	* xnorm.cc: New source.
+	* xnorm.h: New header file.
+	* Makefile.in: Include xnorm.cc in the build process.
+	* data.cc (Fnorm): Call xnorm, xcolnorms, xrownorms or xfrobnorm
+	to do the actual work.
+
+2008-10-31  David Bateman  <dbateman@free.fr>
+
+	* ov-base-scalar.h (octave_value octave_base_scalar::reshape
+	(const dim_vector&) const): New method.
+
+2008-10-30  John W. Eaton  <jwe@octave.org>
+
+	* oct-map.cc (Octave_map::index): Copy key_list.
+
+2008-10-31  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in (void image::init (void)): Add a constraint for
+	logical cdata.
+
+	* graphics.h.in (base_property::delete_listener): New method.
+	(property::delete_listener): New method.
+	(base_graphics_object::delete_listener): New method.
+	(base_graphics_object::delete_property_listener): New method.
+	(base_graphics_object::remove_all_listeners): New method.
+	(graphics_object::delete_property_listener): New method.
+	(axes::set_defaults): Call remove_all_listeners.
+	* graphics.cc (void base_properties::delete_listener): New method
+	(void base_graphics_object::remove_all_listeners (void)): New method
+	(Fdellistener): New command to remove listener functions associated
+	with a property.
+
+2008-10-30  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in (axes::properties): Add keyreverse property.
+	* graphics.cc (axes::properties::set_defaults): Initialize
+	keyreverse property.
+
+2008-10-28  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Cell.h (Cell::assign (const Array<idx_vector>&, ...),
+	Cell::delete_elements (const Array<idx_vector>&, ...)):
+	New member functions.
+	* Cell.cc (Cell::assign (const octave_value_list&, ...),
+	Cell::delete_elements (const octave_value_list&, ...)):
+	Call Array<T>::assign.
+	* DLD-FUNCTIONS/dlmread.cc: Call Array<T>::resize_fill.
+	* ov-base-mat.cc (octave_base_matrix::assign): Call Array<T>::assign.
+	(octave_base_matrix::delete_elements):: Call Array<T>::delete_elements.
+	* ov-cell.cc (Fcell): Call Array<T>::chop_trailing_singletons,
+	simplify.
+	* ov-cx-mat.cc (octave_complex_matrix::assign): Call Array<T>::assign.
+	* ov-flt-cx-mat.cc (octave_float_complex_matrix::assign): Call
+	Array<T>::assign.
+	* ov-list.cc (octave_list::subsasgn): Call Array<T>::assign.
+	* pr-output.cc (PRINT_ND_ARRAY): Use zero-based indices.
+
+2008-10-29  Thorsten Meyer  <thorsten.meyier@gmx.de>
+
+	* data.cc (Fcolumns): Remove "and" from @seealso string.
+	* mappers.cc (Fgamma, Flgamma): Replace @seealso reference to
+	deprecated gammai by gammainc.
+	* DLD-FUNCTIONS/sqrtm.cc (Fsqrtm): Remove reference to Octave
+	Forge function funm.
+	* DLD-FUNCTIONS/qz.cc (Fqz): removed @seealso reference to Octave
+	Forge function dare.
+	* DLD-FUNCTIONS/rcond.cc (Frcond): removed @seealso reference to
+	mldivide.
+	* debug.cc (Fdbstop): Fix @seealso references and function name in
+	docstring of dbnext.
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Remove @seealso reference
+	to isclass.
+	* syscalls.cc (Fwaitpid): Replace WCONTINUED by WCONTINUE.
+	* oct-hist.cc (Fhistory_size, Fsaving_history): Fix @seealso
+	references to history_timestamp_format_string.
+	* DLD-FUNCTIONS/luinc.cc (Fluinc): Remove reference to missing
+	function cholinc.
+
+2008-10-29  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/qr.cc (Fcholinsert, Fcholdelete, Fcholshift): Fix
+	inline docs.
+
+2008-10-28  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (finish_function): Clear local variables in function scope.
+	* symtab.h (symbol_table::clear_variables): New argument, scope.
+
+2008-10-28  Brian Gough  <bjg@gnu.org>
+
+	* DLD-FUNCTIONS/besselj.cc: Added tests.
+
+2008-10-23  John W. Eaton  <jwe@octave.org>
+
+	* oct-hist.c (initialize_history): New arg, read_history_file)
+	* oct-hist.h: Fix decl.
+	* octave.cc (octave_main): Set read_history_file to false if
+	--no-history option is specified.  Pass read_history_file to
+	initialize_history.
+
+	* DLD-FUNCTIONS/fltk_backend.cc: Update initialization comment.
+
+2008-10-22  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (figure_manager::do_close_all):
+	Rename from close_all.  Now private.
+	(figure_manager::do_new_window): Rename from new_window.
+	Now private.
+	(figure_manager::do_delete_window): Rename from delete_window.
+	Now private.
+	(figure_manager::do_mark_modified): Rename from mark_modified.
+	Now private.
+	(figure_manager::do_get_size): Rename from get_size.  Now private.
+	(figure_manager::close_all, figure_manager::do_new_window,
+	figure_manager::do_delete_window,
+	figure_manager::do_mark_modified, figure_manager::do_get_size):
+	New static functions.
+	(figure_manager::instance_ok): New function.
+	(figure_manager::Instance): Delete.  Eliminate all uses in favor
+	of static methods that call instance_ok and forward to private
+	member functions.
+	(figure_manager::instance): New static data member.
+	(figure_manager::hnd2idx, figure_manager::figprops2idx,
+	figure_manager::figprops2idx, figure_manager::str2idx): Now static.
+
+	* DLD-FUNCTIONS/fltk_backend.cc (figure_manager::default_size):
+	Increase default window size.
+
+	* graphics.cc (figure::properties::remove_child): New function.
+	* graphics.h.in: Provide decl.
+
+	* gl-render.cc (opengl_renderer::draw): Get all children.
+
+	* DLD-FUNCTIONS/fltk_backend.cc (__fltk_redraw__):
+	Check for "root" object, not "root_figure".
+
+	* graphics.h.in (base_properties::get_all_children): New function.
+
+2008-10-22  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in (line::properties, surface::properties): Add data
+	source properties.
+
+2008-10-21  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (axes::properties::delete_children): Delete decl.
+
+	* graphics.h.in (gh_manager::is_handle_visible): New function.
+	(axes::properites): Move title property after label properties.
+	(graphics_object::is_handle_visible): New function.
+	(base_properties::is_handle_visible): New function.
+	(base_properties): Mark children property with G.
+	* graphics.cc (axes::properties::set_text_child): New function.
+	(axes::properties::set_title, axes::properties::set_xlabel,
+	axes::properties::set_ylabel, axes::properties::set_zlabel): Use it.
+	(base_property::get_children): New function.  Only
+	return handles that are visible.
+	(axes::properties::delete_text_child): Set handlevisibility to
+	"off" for newly created object and add it to the list of children.
+	Call base_properties::remove_child on previous handle value.
+	(axes::properties::set_defaults): Don't explicitly delete xlabel,
+	ylabel, zlabel, and title handles.  Reinitialize them after
+	deleting children.
+	(axes::properties::remove_child): Don't explicitly delete xlabel,
+	ylabel, zlabel, and title handles.
+	(axes::properties::init): Move here from graphics.h.in.  Set
+	handlevisibility to "off" for xlabel, ylabel, zlabel, and title
+	and add them to the list of children.
+	(axes::properties::delete_children): Delete.
+
+	* genprops.awk: Allow whitespace between BEGIN_PROPERTIES and
+	opening paren.  Accept optional second argument for graphics
+	object name.
+	* graphics.h.in (root_figure properties): Pass "root" as second
+	arg to BEGIN_PROPERTIES.
+
+2008-10-16  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (make_handle_fraction): New static function.
+	(gh_manager::get_handle): Use it.
+	(gh_manager::do_free): Call make_handle_fraction to replace
+	fractional part of non-figure handles.
+
+	* graphics.cc (base_properties::remove_child): Handle children as
+	a column vector instead of a row vector.
+
+	* utils.cc (Fis_absolute_filename, Fis_rooted_relative_filename,
+	Fmake_absolute_filename, Ffind_dir_in_path): New functions.
+
+2008-10-16  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (void axes::properties::set_defaults
+	(base_graphics_object&,	const std::string&)): Preserve font
+	and position properties if the axis is "replaced".
+
+2008-10-16  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (class axes::properties): New property: interpreter.
+
+2008-10-15  David Bateman  <dbateman@free.fr>
+
+	* ov-class.c (Fsuperiorto, Finferiorto): Allow more than one class
+	to be defined at a time.
+
+2008-10-12  David Bateman  <dbateman@free.fr>
+
+	* pt-colon.cc (octave_value tree_colon_expression::make_range
+	(const octave_value&, const octave_value&, const octave_value&)):
+	Treating class overloading of colon operator.
+	(octave_value tree_colon_expression::rvalue (void)): Ditto.
+
+2008-10-10  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (base_properties::adopt): Place new child at front
+	of list, not end.  Make list of children a column vector instead
+	of a row vector.
+
+	* graphics.cc (gh_manager::do_free): Set the beingdeleted
+	property, then delete the children, then execute the deletefcn.
+	(axes::properties::set_defaults, axes::properties::remove_child,
+	axes::properites::delete_children): Call delete_text_child to
+	manage the title, xlabel, ylabel, and zlabel properties.
+	(axes::properties::get_title, axes::properties::get_xlabel,
+	axes::properties::get_ylabel, axes::properties::get_zlabel): Delete.
+
+	* graphics.h.in (axes::properites::title,
+	axes::properites::xlabel, axes::properites::ylabel,
+	axes::properites::zlabel): No longer mutable.  Don't generate
+	factory default values or custom get functions for these
+	properties.
+
+	* graphics.cc (axes::properties::delete_text_child): New function.
+	* graphics.h.in: Provide decl.
+
+	* graphics.h.in (graphics_object::type): New function.
+
+2008-10-10  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in (radio_property axes::properties::__colorbar__):
+	Delete.
+	* graphics.cc (void axes::properties::sync_positions (void)):
+	Disable code synchronizing outerposiiton and position.
+	(void axes::properties::set_defaults (base_graphics_object&,
+	const std::string&): Remove __colorbar__.
+	(F__go_delete__): Don't delete if already being deleting to avoid
+	recursion in callback functions.
+	(F__go_axes_init__): Flag error if handle is deleted during
+	initialization due.
+
+2008-10-09  David Bateman  <dbateman@free.fr>
+
+	* ov-class.cc (Octave_map octave_class::map_value (void) const):
+	Remove.
+	(bool octave_class::save_ascii (std::ostream&),
+	bool octave_class::load_ascii (std::istream&),
+	bool octave_class::save_binary (std::ostream&, bool&),
+	bool octave_class::save_binary (std::ostream&, bool&),
+	bool octave_class::save_hdf5 (hid_t, const char *, bool),
+	bool octave_class::load_hdf5 (hid_t, const char *, bool)):
+	Allow saving and reloading of classes.
+	* ov-class. (Octave_map octave_class::map_value (void) const):
+	Remove.
+	* ls-mat.cc (std::string read_mat5_binary_element (std::istream&,
+	const std::string&, bool, bool&, octave_value&),
+	int save_mat5_element_length (const octave_value&, const std::string&,
+	bool, bool)): Allow saving and loading of classes.
+	* ls-oct-ascii.h (template <class T> bool extract_keyword
+	(std::istream&, const char *, T&, const bool)): Initialize value with
+	null constructor rather than 0.
+
+2008-10-07  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (F__go_delete__): Allow arrays of graphic handles.
+
+2008-10-01  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-i64-i64.cc: Instantiate all 64-bit operations.
+	* OPERATORS/op-ui64-ui64.cc: Instantiate all unsigned 64-bit operations.
+
+2008-10-06  John W. Eaton  <jwe@octave.org>
+
+	* ov-type-conv.h (octave_type_conv_body): Avoid shadow warning
+	from GCC.
+
+2008-10-06  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (static bool is_handle (const octave_value&)): Delete.
+	(static octave_value is_handle (const octave_value&)): New function.
+
+2008-10-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Cell.cc (Cell::delete_elements): Don't pass second arg to
+	Array<T>::maybe_delete_elements.
+	* ov-base-mat.cc (octave_base_matrix<MT>::delete_elements): Ditto.
+
+2008-10-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Cell.h (Cell::delete_elements): Declare new member function.
+	* Cell.h (Cell::delete_elements): Define it.
+	* oct-map.cc (Octave_map::maybe_delete_elements): Call delete_elements
+	instead of assign with empty Cell.
+
+2008-10-02  John W. Eaton  <jwe@octave.org>
+
+	* pt-arg-list.cc (tree_argument_list::convert_to_const_vector):
+	Don't insert undefined elements in return list.
+
+2008-09-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-str-mat.h (octave-char-matrix-str::assign): Remove declaration.
+	* ov-str-mat.cc (octave-char-matrix-str::assign): Remove definition.
+
+2008-09-30  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__magick_read__.cc: Only define
+	magick_to_octave_value if HAVE_MAGICK is defined.
+
+2008-09-29  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::load_class_method):
+	Call load_class_constructor if name and dispatch_type are the same.
+
+2008-09-29  David Bateman  <dbateman@free.fr>
+
+	* symtab.cc (octave_value symbol_table::find_function
+	(const std::string&, tree_argument_list *, const string_vector&,
+	octave_value_list&, bool&)): If first character of function name
+	is "@" then look for class specific method.
+
+2008-09-26  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (out_of_date_check_internal):
+	Fix order of arguments in call to load_path::find_method.
+
+2008-09-26  David Bateman  <dbateman@free.fr>
+
+	* ov-class.h (idx_vector index_vector (void) const): Declare new
+	maethod.
+	* ov-class.cc (idx_vector index_vector (void) const): Define new
+	method.
+	* (Fismethod): New function.
+
+2008-09-26  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/urlwrite.cc (urlwrite_cleanup_file) New function.
+	(urlwrite_delete_file, urlwrite_filename): New static variables.
+	(Furlwrite): Only return filename if urlget succeeds.  Use
+	unwind_protect to delete files we create if download fails.
+
+2008-09-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-null-mat.h: New header file.
+	* ov-null-mat.cc: New source.
+	* ov.h (octave_value::is_null_value, octave_value::non_null_value,
+	octave_value::make_non_null_value):
+	Declare new member functions.
+	* ov.cc (octave_value:non_null_value, octave_value::make_non_null_value):
+	Define them.
+	(octave_value::assign (assign_op op, const octave_value& rhs)):
+	(register_types): Register null types.
+	Call non_null_value ().
+	* oct-obj.cc (octave_value_list::normalize_null_values): New member
+	function.
+	* oct-obj.h (octave_value_list::normalize_null_values): Declare it.
+	* ov-base.h (is_null_value): New virtual member function.
+	* ops.h (NULLASSIGNOPDECL, DEFNULLASSIGNOP_FN): New macros.
+	* ov-base-mat.cc (octave_base_mat<MT>::delete_elements): New member func.
+	* ov-base-mat.h: Declare it.
+	* ov-base-sparse.cc (octave_base_sparse<MT>::delete_elements): New member func.
+	* ov-base-sparse.h: Declare it.
+	* ov-cell.cc (octave_cell:subsasgn): Handle null values.
+	* ov-struct.cc (octave_cell:subsasgn): Handle null values.
+	* ov-builtin.cc (octave_builtin::do_multi_index_op): Normalize return
+	values.
+	* pt-misc.cc (tree_parameter_list::define_from_arg_vector): Call
+	octave_lvalue::define instead of octave_lvalue::assign.
+	* pt-decl.h (tree_decl_elt::rvalue): Call non_null_value ().
+	* OPERATORS/op-int.h (OCTAVE_INT_NULL_ASSIGN_OPS,
+	OCTAVE_INSTALL_INT_NULL_ASSIGN_OPS): New macros.
+	* OPERATORS/op-m-m.cc: Install & define assignment & conversion operators.
+	* OPERATORS/op-bm-bm.cc: Ditto.
+	* OPERATORS/op-cell.cc: Ditto.
+	* OPERATORS/op-cm-cm.cc: Ditto.
+	* OPERATORS/op-cs-cs.cc: Ditto.
+	* OPERATORS/op-fcm-fcm.cc: Ditto.
+	* OPERATORS/op-fcs-fcs.cc: Ditto.
+	* OPERATORS/op-fm-fm.cc: Ditto.
+	* OPERATORS/op-fs-fs.cc: Ditto.
+	* OPERATORS/op-int.h: Ditto.
+	* OPERATORS/op-m-m.cc: Ditto.
+	* OPERATORS/op-range.cc: Ditto.
+	* OPERATORS/op-s-s.cc: Ditto.
+	* OPERATORS/op-scm-scm.cc: Ditto.
+	* OPERATORS/op-sm-sm.cc: Ditto.
+	* OPERATORS/op-str-str.cc: Ditto.
+	* OPERATORS/op-i16-i16.cc: Ditto.
+	* OPERATORS/op-i32-i32.cc: Ditto.
+	* OPERATORS/op-i64-i64.cc: Ditto.
+	* OPERATORS/op-i8-i8.cc: Ditto.
+	* OPERATORS/op-ui16-ui16.cc: Ditto.
+	* OPERATORS/op-ui32-ui32.cc: Ditto.
+	* OPERATORS/op-ui64-ui64.cc: Ditto.
+	* OPERATORS/op-ui8-ui8.cc: Ditto.
+
+2008-09-25  David Bateman  <dbateman@free.fr>
+
+	* pt-mat.cc (class tm_row_const): Add any_class test
+	(class tm_const): Ditto.
+	(octave_value tree_matrix::rvalue (void)): If any object to
+	concatenate is a class object, dispatch to the appropriate
+	vertcat/horzcat function.
+
+2008-09-25  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (symbol_table::do_find): Don't set evaluated_args and
+	args_evaluated here, prior to call to symbol_table::fcn_info::find.
+
+2008-09-24  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (magick_to_octave_value): New
+	template function with specializations for various
+	GraphicsMagick++ types.
+	(F__magick_finfo__): New function.
+
+2008-09-24  John W. Eaton  <jwe@octave.org>
+
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Add symbol_table::clear_variables cleanup function to the
+	unwind_protect stack after the parameter list cleanup functions.
+
+	* load-path.cc (load_path::do_initialize): Check for OCTAVE_PATH
+	in the environment, not OCTAVE_LOADPATH.
+
+2008-09-24  Thomas Weber  <thomas.weber.mail@gmail.com>
+
+	* DLD-FUNCTIONS/regexp.cc (octregexp_list): Retry if match limit
+	is exceeded.
+
+2008-09-24  John W. Eaton  <jwe@octave.org>
+
+	* genprops.awk (emit_declarations): Emit call to set_mode before
+	updaters.
+
+2008-09-23  John W. Eaton  <jwe@octave.org>
+
+	* pt-arg-list.cc (F__end__): Dispatch to user-defined end
+	function for classes if one is defined.
+	* lex.l (is_keyword_token): Allow "end" as a functon name.
+
+2008-09-23  David Bateman  <dbateman@free.fr>
+
+	* variables.cc (static octave_value do_who (int, const string_vector&,
+	bool, bool, std::string): Add final message argument and simple
+	treatment of the "-file" option.
+
+2008-09-22  David Bateman  <dbateman@free.fr>
+
+	* debug.cc (static octave_user_code * get_user_code
+	(const std::string&)): Only check user code as break points can't
+	be set in builtins or oct-files.
+	(bp_table::intmap bp_table::do_remove_all_breakpoints_in_file
+	(const std::string&, bool)): Add flag to silence the error message
+	from this function if a user code with breakpoints is not found.
+	(bp_table::fname_line_map bp_table::do_get_breakpoint_list (const
+	octave_value_list&)): Do an ourt of date check on the function
+	before checking the breakpoints.
+	* debug.h (do_remove_all_breakpoints_in_file,
+	remove_all_breakpoints_in_file): Add flag to silence error
+	message.
+	* symtab.cc (out_of_date_check_internal): Clear breakpoints in
+	function if out_of_date. split into two versions taking the
+	octave_function pointer seperately or not.
+	* symtab.h (bool out_of_date_check (octave_function*)): New function.
+
+2008-09-18  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/fftw.cc (Ffftw): Clarify the documentation.
+
+2008-09-17  Krzesimir Nowak  <qdlacz@gmail.com>
+
+	* debug.cc (Fisdebugmode): New function.
+
+2008-09-17  David Bateman  <dbateman@free.fr>
+
+	* data.cc (do_cat): Chopping trailing singleton dimensions.
+
+	* data.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT): New macros
+	(do_cat): Special case single type concatenations for speed.
+	* pt.mat.cc (std::string get_concat_class (const std::string&,
+	const std::string&), void maybe_warn_string_concat (bool, bool)):
+	Remove static declaration.
+	* pt-mat.h (std::string get_concat_class (const std::string&,
+	const std::string&), void maybe_warn_string_concat (bool, bool)):
+	Define extern here.
+
+	* DLD-FUNCTIONS/sparse.cc (Fsparse): Clarify the help string.
+
+2008-09-10  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (octave_main): Make all command-line arguments
+	available to startup scripts and PKG_ADD files.
+
+2008-09-09  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/regexp.cc (octregexp_list): Distinguish between
+	matlab named tokens and perl lookbehind expressions. For
+	lookbehind expression replace "*" and "+" with a limited number of
+	fixed length expressions to simulate arbitrary length look behind.
+
+2008-09-08  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image): Resolve "pow"
+	ambiguity.
+
+	* graphics.cc (base_properties::get_dynamic,
+	base_properties::set_dynamic, base_propertyes::get_property_dynamic):
+	Add the 3rd template parameter to std::map, corresponding to all_props
+	field.
+
+2008-09-08  John W. Eaton  <jwe@octave.org>
+
+	* ls-oct-ascii.cc (std::string extract_keyword (std::istream&,
+	const char *, const bool)): Also accept \r as line ending character.
+	* ls-oct-ascii.h (template <class T> bool extract_keyword
+	(std::istream&, const char *, T&, const bool)): Likewise.
+	(template <class T> bool extract_keyword (std::istream&, const
+	string_vector&, std::string&, T&, const bool)): Likewise.
+
+2008-09-03  Ben Abbott  <bpabott@mac.com>
+
+	* mappers.cc: Use eps(single) as tolerance for single precesion test.
+
+2008-09-03  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (mlock): Lock current function on the call stack.
+	(Fmlock): Lock caller.
+
+	* symtab.cc (out_of_date_check_internal): If dispatch type is set,
+	check for method.  If that fails, check for regular function.
+
+2008-09-02  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.cc (hggroup::update_axis_limits): Also reacts on
+	[xyzac]liminclude changes.
+
+2008-08-31  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::redraw_figure,
+	fltk_backend::print_figure): Change graphics_handle argument to
+	graphics_object.
+
+2008-08-29  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc: Replace int by octave_idx_type in multiple
+	places.
+	(array_property::is_equal): In macro CHECK_ARRAY_EQUAL, special
+	case scalar case and keep copy of array value to avoid early
+	destruction of converted array values.
+
+2008-08-28  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in (root_figure::properties::showhiddenhandles):
+	New property.
+
+2008-08-27  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Initialize output vectors
+	by NA value.
+
+2008-08-26 Ben Abbott  <bpabott@mac.com>
+
+	* mappers.cc: Adjust tolerance for single precesion tests.
+
+	* DLD-FUNCTIONS/chol.cc: Double tolerance.
+
+2008-08-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* parse.y (Fassignin): Use default  scope when calling varref.
+
+2008-08-26  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* genprops.awk (emit_declarations): Call updaters/listeners only when
+	'set' method returned true.
+	* graphics.h.in (base_property::set, base_property::do_set):
+	Return bool value.
+	(property::set): Likewise.
+	(string_property::do_set): Check value change and return bool value.
+	(radio_property::do_set, double_property::do_set,
+	array_property::do_set): Likewise.
+	(color_property::do_set, double_radio_property::do_set,
+	row_vector_property::do_set, bool_property::do_set,
+	handle_property::do_set): Return bool value.
+	(any_property::do_set, callback_property::do_set): Return always true.
+	(color_values::operator==, color_values::operator!=): Add.
+	(array_property::is_equal): Add.
+	* graphics.cc (base_property::set): Executes listeners/notifiers only
+	when do_set returns true. Return bool value.
+	(color_property::do_set, double_radio_property::do_set): Check value
+	change and return bool value.
+	(array_property::is_equal): Add.
+
+	* genprops.awk (emit_declarations, emit_source): Change code emission
+	when emitting base_properties code (base is 1).
+	(BEGIN): Initialize pcount to 0.
+	(BEGIN_PROPERTIES): Initialize base to 0.
+	(BEGIN_BASE_PROPERTIES): New statement.
+	(main): Add support for 'f' modifier. Add support for non xxx_property
+	typed properties.
+	* graphics.h.in (base_properties::base_properties): Remove
+	implementation.
+	(base_properties::get_tag, base_properties::get_parent,
+	base_properties::get_type, base_properties::get___myhandle__,
+	base_properties::get_busyaction, base_properties::get_buttondownfcn,
+	base_properties::is_clipping, base_properties::get_clipping,
+	base_properties::execute_createfcn, base_properties::get_createfcn,
+	base_properties::execute_deletefcn, base_properties::get_deletefcn,
+	base_properties::get_handlevisibility, base_properties::is_hittest,
+	base_properties::get_hittest, base_properties::is_interruptible,
+	base_properties::get_interruptible, base_properties::is_selected,
+	base_properties::get_selected, base_properties::is_selectionhighlight,
+	base_properties::get_selectionhighlight,
+	base_properties::get_uicontextmenu, base_properties::get_userdata,
+	base_properties::is_visible, base_properties::get_visible,
+	base_properties::is_beingdeleted, base_properties::get_beingdeleted,
+	base_properties::set_busyaction, base_properties::set_buttondownfcn,
+	base_properties::set_clipping, base_properties::set_createfcn,
+	base_properties::set_deletefcn, base_properties::set_handlevisibility,
+	base_properties::set_hittest, base_properties::set_interruptible,
+	base_properties::set_selected,
+	base_properties::set_selectionhighlight,
+	base_properties::set_uicontextmenu, base_properties::set_userdata,
+	base_properties::set_visible, base_properties::set_beingdeleted,
+	base_properties::get_children): Remove (now auto-generated).
+	(base_properties::enum): Likewise.
+	(base_properties::is_modified): Call is___modified__.
+	(base_properties::set_modified): Call set___modified__.
+	(base_properties::set_children): Add.
+	(base_properties::set_dynamic, base_properties::get_dynamic,
+	base_properties::get_property_dynamic): New methods.
+	(class base_properties): Surround properties declaration with
+	BEGIN_BASE_PROPERTIES/END_PROPERTIES pair.
+	* graphics.cc (base_properties::get, base_properties::set,
+	base_properties::get_property): Remove (now auto-generated).
+	(base_properties::set_dynamic, base_properties::get_dynamic,
+	base_properties::get_property_dynamic): New methods.
+	(base_properties::set_children): Likewise.
+
+	* DLD_FUNCTIONS/fltk_backend.cc (F__fltk_redraw__): Make static.
+	(F__init_fltk__): Protect from mutliple invocations.
+	(F__remove_fltk__): Likewise.
+	(F__init_fltk__): Register input event hook.
+	(F__remove_fltk__): Unregister input event hook.
+
+	* DLD_FUNCTIONS/fltk_backend.cc (fltk_backend::close_figure): Remove.
+	(fltk_backend::object_destroyed, fltk_backend::property_changed): New
+	methods.
+	* genprops.awk (emit_declarations): Generate "enum" property fields.
+	(emit_sources): Emit set_id calls.
+	* graphics.h.in (base_property::id): New field.
+	(base_property::base_property): Initialize it.
+	(base_property::get_id, base_property::set_id): Add accessors.
+	(property::get_id, property::set_id): Likewise.
+	(base_graphics_backend::close_figure, graphics_backend::close_figure):
+	Remove methods.
+	(base_graphics_backend::redraw_figure,
+	base_graphics_backend::print_figure, graphics_backend::redraw_figure,
+	graphics_backend::print_figure): Change graphics_handle argument into
+	graphics_object.
+	(base_graphics_backend::property_changed,
+	base_graphics_backend::object_created,
+	base_graphics_backend::object_destroyed,
+	graphics_backend::property_changed, graphics_backend::object_created,
+	graphics_backend::object_destroyed): New signature with
+	graphics_object argument.
+	(base_properties::base_properties): Add set_id calls.
+	(class base_properties): Add "enum" property fields.
+	(root_figure::properties::remove_child): Add overloaded method.
+	(figure::properties::close): Remove.
+	(figure::properties::set_backend): Call object_destroyed instead of
+	close.
+	(figure::~figure): Remove close call.
+	(figure::properties::get_title): New method.
+	* graphics.cc (base_property::set): Call property_changed only for
+	valid id (>=0); Use graphics_object argument.
+	(gh_manager::do_free): Call object_destroyed with graphics_object
+	argument.
+	(base_graphics_backend::property_changed,
+	base_graphics_backend::object_created,
+	base_graphics_object::object_destroyed): Implement wrappers for
+	graphics_handle argument case.
+	(gnuplot_backend::close_figure): Remove.
+	(gnuplot_backend::object_destroyed,
+	gnuplot_backend::property_changed): New methods.
+	(gnuplot_backend::redraw_figure, gnuplot_backend::print_figure):
+	Change graphics_handle argument to graphics_object.
+	(root_figure::properties::remove_child): Add.
+	(figure::properties::close): Remove.
+	(figure::properties::set_position): Do not call set_figure_position.
+	(figure::properties::get_title): New method.
+	(gh_manager::do_make_graphics_handle): Call object_created with
+	a graphics_object argument.
+	(gh_manager::do_make_figure_handle): Likewise.
+	(Fdrawnow): Call redraw_figure and print_figure with a graphics_object
+	argument.
+
+2008-08-26  Maciek Gajewski  <maciej.gajewski0@gmail.com>
+
+	* graphics.h.in (base_property::set): Remove inline implementation.
+	(base_graphics_backend::property_changed,
+	base_graphics_backend::object_created,
+	base_graphics_backend::object_destroyed): New method.
+	(graphics_backend::property_changed, graphics_backend::object_created,
+	graphics_backend::object_destroyed): Likewise.
+	* graphics.cc (base_property::set): Moved from header file.
+	(gh_manager::do_free): Add backend notification.
+	(gh_manager::do_make_graphics_handle): Likewise.
+	(gh_manager::do_make_figure_handle): Likewise.
+
+2008-08-25  Thomas L. Scofield  <scofield@calvin.edu>
+
+	* DLD-FUNCTIONS/__magick_read__.cc: Untabify.
+	(jpg_settings, encode_bool_image, encode_uint_image, encode_map):
+	New functions.
+	(write_image): Use them to handle various image types.
+
+2008-08-25  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (void gh_manager::do_execute_callback
+	(const graphics_handle&, const octave_value&, const
+	octave_value&)): Don't pass the function handle as first arg of
+	property listener functions
+
+	* graphics.h.in (class base_properties): Add functor for caseless
+	string comparison. Use it in the property map, so that user added
+	properties are found in a case insensitive fashion.
+
+2008-08-22  John W. Eaton  <jwe@octave.org>
+
+	* symtab.h (symbol_table::inherit): Pass reference to symbol table
+	to do_inherit instead of scope.
+	(symbol_table::do_inherit): First arg is now reference to
+	symbol_table, not scope id.  Insert all variables from donor scope.
+
+2008-08-21  Thomas Treichl  <Thomas.Treichl@gmx.net>
+
+	* mappers.cc: Increase test script tolerance.
+
+2008-08-20  John W. Eaton  <jwe@octave.org>
+
+	* help.cc (builtin_help): Go to next symbol name on error.
+	(do_type, do_which): Omit separate path search for files.
+	(help_from_symbol_table): Only insert Texinfo markup if it looks
+	like the help message is already in Texinfo.
+
+2008-08-19  David Bateman  <dbateman@free.fr>
+
+	* load-path.cc (load-path::do_find_dir (const std:string&) const)):
+	Method to find a directory on the load-path corresponding to the
+	argument.
+	* load-path.h (load-path::do_find_dir (const std:string&) const),
+	load-path::find_dir (const std::string&) const): New methods.
+	* utils.cc (std::string contents_file_in_path (const std::string&)):
+	New function.
+	* utils.h  (std::string contents_file_in_path (const std::string&)):
+	Declare it.
+	* help.cc (static bool raw_help_from_file (const std::string&,
+	std::string&, std::string&, bool&)): Also check is requested
+	argument is a directory and contains the file Contents.m.
+
+	* OPERATORS/op-int-conv.cc (DEFINTCONVFN): New macro that warn
+	for integer conversion issues. Use it to replace DEFCONVFN.
+	* OPERATORS/op-int.h (DEFINTBINOP_OP, DEFINTNDBINOP_OP,
+	DEFINTBINOP_FN, DEFINTNDBINOP_FN): New macros that warn for
+	integer truncation issues. Use them to replace the corresponding
+	macros in the integer arithmetic macros. Update other integer
+	arithmetic functions that don't use these macros individually.
+	* error.cc (initialize_default_warning_state (void)): Initialize
+	the default warning state for the integer warnings to be off.
+	* gripes.cc (void gripe_binop_integer_math_truncated (const char *,
+	const char *, const char *), void gripe_unop_integer_math_truncated
+	(const char *, const char *), void gripe_non_integer_conversion
+	(const char *, const char *), void gripe_nan_conversion (const char *,
+	const char *)): Warning functions for integer conversion and math
+	issues.
+	* gripes.h (void gripe_binop_integer_math_truncated (const char *,
+	const char *, const char *), void gripe_unop_integer_math_truncated
+	(const char *, const char *), void gripe_non_integer_conversion
+	(const char *, const char *), void gripe_nan_conversion (const char *,
+	const char *)): Declare them.
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::convert_gripe,
+	OCTAVE_VALUE_INT_SCALAR_T::convert_gripe): Adapt for new means of
+	flagging integer truncation.
+	(OCTAVE_VALUE_INT_MATRIX_T::decrement,
+	OCTAVE_VALUE_INT_MATRIX_T::increment,
+	OCTAVE_VALUE_INT_SCALAR_T::decrement,
+	OCTAVE_VALUE_INT_SCALAR_T::increment): Check for integer
+	truncation.
+	* ov.cc (convert_to_int_array): Adapt for new means of
+	flagging integer truncation.
+
+2008-08-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* pt-assign.h (tree_simple_assignment::first_execution): New
+	member field.
+	(tree_simple_assignment::first_execution): Ditto.
+	* pt-assign.cc (tree_simple_assignment::tree_simple_assignment):
+	Initialize first_execution.
+	(tree_multi_assignment::tree_multi_assignment): Ditto.
+	(tree_simple_assignment::rvalue): Check for obsolete built-in
+	variables only at first execution.
+	(tree_multi_assignment::rvalue): Ditto.
+
+	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Checks whether LB and UB are
+	of proper size.
+
+	* oct-obj.cc, oct-obj.h (octave_value_list::make_argv):
+	Allow calling without fcn_name.
+	* load-save.cc (parse_save_options (const string_vector&, ...)):
+	Return string_vector with parsed arguments removed instead.
+	(parse_save_options (const std::string&, ...)):	Ditto.
+	(Fsave): Fix calls to parse_save_options.
+
+2008-08-19  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (Feval): Return value produced by evaluating CATCH string.
+
+2008-08-12  John W. Eaton  <jwe@octave.org>
+
+	* pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue):
+	Call stash_parent_function_scope for user function.
+	* ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline):
+	Likewise.
+
+	* ov-struct.cc (octave_struct::subsref): Don't allow resizing for
+	simple x(idx) case.
+
+2008-08-07  John W. Eaton  <jwe@octave.org>
+
+	* ov.cc (octave_value::idx_type_value): Don't include default
+	argument values in definition.
+
+	* glrender.h, zfstream.h: Don't include config.h.
+
+	* oct-errno.h: Include <cerrno>.
+
+	* Cell.cc, DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/dlmread.cc,
+	debug.cc, error.cc, file-io.cc, graphics.cc, help.cc, input.cc,
+	lex.l, load-path.cc, load-save.cc, ls-mat-ascii.cc,
+	ls-oct-ascii.cc, oct-stream.cc, octave.cc, variables.cc,
+	ov-fcn-handle.cc, parse.y, pr-output.cc, symtab.cc, sysdep.cc,
+	utils.cc, graphics.h.in: Replace all uses of NPOS with
+	std::string::npos.
+
+	* ov.cc (octave_value::idx_type_value): Move definition here.
+	* ov.h: From here.
+
+	* DLD-FUNCTIONS/fsolve.cc (override_options): Don't fail if
+	options_map does not contain an expected keyword.
+	Fix typo in warning identifier.
+	(make_unimplemented_options): Use CamelCase names here.
+
+2008-08-06  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* error.cc (Ferror): Update format of error messages in exmple.
+	* parse.y: (Feval): Likewise.
+
+2008-08-06  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fsolve.cc (hybrd_info_to_fsolve_info):
+	Update INFO values to be compatible with Matlab's current fsolve.
+	(make_unimplemented_options, override_options): New functions.
+	(Ffsolve): Handle optimset options.  Update doc string.
+
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op,
+	octave_user_script::do_multi_index_op):
+	Call octave_call_stack::backtrace_error_message.
+	* toplev.h (octave_call_stack::do_pop): Don't call
+	backtrace_error_message here.
+	* toplev.cc, toplev.h (octave_call_stack::do_backtrace_error_message):
+	Rename from octave_call_stack::backtrace_error_message.
+	* toplev.h (octave_call_stack::backtrace_error_message):
+	New public static function.
+
+2008-08-05  John W. Eaton  <jwe@octave.org>
+
+	* gripes.cc (gripe_truncated_conversion,
+	gripe_logical_conversion): Don't declare as extern here.
+	* utils.cc (octave_format, octave_vformat): Likewise.
+	* pr-output.cc (octave_print_internal (std::ostream&, const Cell&,
+	bool, int, bool)): Likewise.
+
+	* toplev.cc (octave_call_stack::backtrace_error_message): New
+	function.
+	* toplev.h: Provide decl.
+	(octave_call_stack::do_pop): Call backtrace_error_message if
+	error_state is nonzero.
+
+	* pt-unop.cc (tree_prefix_expression::eval_error,
+	tree_postfix_expression::eval_error): Delete.  Eliminate all uses.
+	* pt-unop.h: Delete decls.
+
+	* pt-select.cc (tree_switch_case::eval_error,
+	tree_switch_command::eval_error): Delete.  Eliminate all uses.
+	(tree_if_command::eval): Omit "evaluating if command" message.
+	* pt-select.h: Delete decls.
+
+	* pt-loop.cc (tree_while_command::eval_error,
+	tree_complex_for_command::eval_error,
+	tree_simple_for_command::eval_error,
+	tree_do_until_command::eval_error): Delete.  Eliminate all uses.
+	* pt-loop.h: Delete decls.
+
+	* pt-exp.cc (tree_expression::is_logically_true): Omit "evaluating
+	conditional expression" error message.
+
+	* pt-decl.cc (tree_global_command::eval): Omit "evaluating global
+	command" error message.
+	(tree_static_command::eval): Omit "evaluating static command"
+	error message.
+
+	* pt-colon.cc (tree_colon_expression::eval_error): Omit
+	"evaluating colon expression" error message.
+	* pt-colon.h (tree_colon_expression::eval_error): Eliminate
+	default argument value.
+
+	* pt-idx.cc (tree_index_expression::eval_error): Delete.
+	Eliminate all uses.
+	* pt-idx.h: Delete decl.
+
+	* pt-binop.cc (tree_binary_expression::eval_error): Delete.
+	* pt-binop.cc, pt-cbinop.cc: Eliminate all uses of eval_error.
+	* pt-binop.h: Delete decl.
+
+	* pt-assign.cc (tree_simple_assignment::eval_error,
+	tree_multi_assignment::eval_error): Delete.  Eliminate all uses.
+	* pt-assign.h: Delete decls.
+
+	* ov-usr-fcn.cc (octave_user_script::traceback_error,
+	octave_user_function::traceback_error): Delete.  Eliminate all uses.
+	* ov-usr-fcn.h: Delete decls.
+
+	* ov-builtin.cc (octave_builtin::do_multi_index_op): Call
+	gripe_library_exectuion_error on octave_execution_exception.
+	* ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Likewise.
+	* ov.cc (do_binary_op, do_cat_op, do_unary_op,
+	do_non_const_unary_op): Likewise.
+	* pt-stmt.cc (tree_statement::eval): Likewise.
+
+	* gripes.cc (gripe_library_execution_error): New function.
+	* gripes.h: Provide decl.
+
+	* dirfns.cc (Fpathsep): Fix usage of dir_path::path_sep_str.
+	* defaults.cc (set_exec_path, set_image_path): Likewise.
+	* load-path.h (load_path::set_command_line_path): Likewise.
+	* load-path.cc (maybe_add_path_elts, load_path::do_initialize,
+	load_path::do_path, genpath, Fpath): Likewise.
+	(split_path): Fix usage of dir_path::path_sep_char.
+
+2008-08-04  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_autoload):
+	Fix usage of file_ops::dir_sep_chars.
+	* variables.cc (looks_like_struct):
+	Likewise.
+	* ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise.
+	* octave.cc (execute_command_line_file): Likewise.
+	* ls-mat5.cc (read_mat5_binary_element): Likewise.
+	* load-save.cc (find_file_to_load): Likewise.
+	* load-path.cc (load_path::do_find_file): Likewise.
+	* graphics.cc (drawnow): Likewise.
+	* parse.y (frob_function): Likewise.
+
+	* octave.cc (initialize_pathsearch): Fix usage of
+	file_ops::dir_sep_str.
+	* help.cc (Flookfor): Likewise.
+	* dirfns.cc (Ffilesep): Likewise.
+	(Fautoload): Likewise.
+
+	* defaults.cc (subst_octave_home): Fix usage of
+	file_ops::dir_sep_char.
+	(Fmfilename): Likewise.
+
+2008-07-31  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (assign_lhs): Call force_local_variable on all elements
+	of lexer_flags.pending_local_variables here, then clear the set.
+	(matrix): Clear lexer_flags.pending_local_variable here.
+	* lex.l (lexical_feedback::init): Clear it.
+	(force_local_variable): No longer static.
+	(is_variable): Also return true for names in the
+	lexer_flags.pending_local_variables.
+	(handle_identifier): If we are parsing a matrix list, mark
+	identifiers as pending local variables rather than forcing them to
+	be local variables immediately.
+	* lex.h (lexical_feedback::pending_local_variables): New data member.
+	(force_local_variable): Provide decl.
+
+2008-07-30  John W. Eaton  <jwe@octave.org>
+
+	* ov-intx.h, ov.cc: Style fixes.
+
+	* gripes.cc (gripe_truncated_conversion): Use the warning ID
+	Octave:int-convert-overflow.
+
+2008-07-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* gripes.cc (gripe_truncated_conversion): New function.
+	* gripes.h (gripe_truncated_conversion): Declare it.
+	* ops.h (DEFCONVFNX2): New macro.
+	(DEFCONVFN, DEFCONVFN2): Call DEFCONVFNX2 instead of DEFCONVFNX.
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::convert_gripe): New member
+	function.
+	(OCTAVE_VALUE_INT_MATRIX_T::int*_array_value): Call convert_gripe.
+	(OCTAVE_VALUE_INT_SCALAR_T::convert_gripe): New member function.
+	(OCTAVE_VALUE_INT_SCALAR_T::int*_scalar_value): Call convert_gripe.
+	(OCTAVE_VALUE_INT_SCALAR_T::int*_array_value): Call int*_scalar_value.
+	* ov.cc (convert_to_int_array): New function.
+	(int_vector_value): Call convert_to_int_array.
+
+2008-07-30  John W. Eaton  <jwe@octave.org>
+
+	* defun-dld.h (DEFUNX_DLD): Eliminate fsname arg.
+	* defun-int.h (DEFINE_FUN_INSTALLER_FUN2,
+	DEFINE_FUN_INSTALLER_FUN3, DEFINE_FUNX_INSTALLER_FUN2): Delete.
+	(DEFINE_FUNX_INSTALLER_FUN): Rename from DEFINE_FUNX_INSTALLER_FUN3.
+	Don't emit fsname function.  Don't append cxx_abi to gname.
+	(DEFINE_FUN_INSTALLER_FUN): Define in terms of
+	DEFINE_FUNX_INSTALLER_FUN, not DEFINE_FUN_INSTALLER_FUN2.
+	* dynamic-ld.cc (octave_dynamic_loader::name_mangler,
+	octave_dynamic_loader::name_uscore_mangler): New functions.
+	(octave_dynamic_loader::mangle_name,
+	octave_dynamic_loader::xmangle_name): Delete.
+	(octave_dynamic_loader::do_load_oct): Search for function with
+	name_mangler then name_uscore_mangler.
+
+	* oct-stream.cc (do_read): New arg, do_NA_conv.
+	Perform NA translation if do_NA_conv is true.
+	(DO_READ_VAL_TEMPLATE, read_fptr): Include the new arg for do_read
+	in decl.
+	(octave_stream::read): Pass do_NA_conv to do_read.
+
+2008-07-29  David Bateman  <dbateman@free.fr>
+
+	* data.cc (FNA): Add tests for conversion of single to double NA
+	values.
+
+	* ov-flt-re-mat.cc (Fsingle): Documentation fix.
+
+2008-07-28  David Bateman  <dbateman@free.fr>
+
+	* error.cc (last_error_id, last_error_message, last_warning_id,
+	last_warning_message): New functions to return the error/warning
+	message and id without exposing the internal values.
+	* error.h  (last_error_id, last_error_message, last_warning_id,
+	last_warning_message): Declare them.
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Use them to pass the error
+	to the ErrorHandler function.
+
+2008-07-28  John W. Eaton  <jwe@octave.org>
+
+	* error.cc (Flasterror, Flasterr): Unwind-protect error_state.
+
+	* DLD-FUNCTIONS/__magick_read__.cc (F__magick_write__, write_image):
+	New functions.
+
+2008-07-25  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/det.cc (Fdet): Return calculated determinant for
+	numerically singular matrices, not 0.
+
+	* symtab.cc (get_dispatch_type): New function.
+	(symbol_table::fcn_info::fcn_info_rep::find): Use it.
+
+	* ov-class.cc (set_class_relationship): Delete static function.
+	(Fsuperiorto, Finferiorto): Warn about precedence conflicts.
+	Call symbol_table::set_class_relationship instead of local static
+	function.
+	* symtab.h (symbol_table::class_precedence_table): New data member.
+	(symbol_table::set_class_relationship, symbol_table::is_superiorto):
+	New static functions.
+
+2008-07-24  John W. Eaton  <jwe@octave.org>
+
+	* load-path.h (load_path::dir_info::class_info): New struct.
+	(load_path::dir_info::method_file_map_type): Now a map from
+	class name to a to a class_info object.  Change all uses.
+	* load-path.cc (load_path::dir_info::get_method_file_map):
+	Also look for private functions in the class directory.
+	(load_path::add_to_method_map): Also add private functions from
+	class directories to private_fcn_map.
+
+	* dirfns.cc (Fmkdir): If directory already exists, return status =
+	true, but also set error message.
+
+2008-07-23  John W. Eaton  <jwe@octave.org>
+
+	* ov-usr_fcn.cc (octave_user_function::do_multi_index_op):
+	Don't unwind_protect and set curr_parent_function here.
+	* toplev.cc (curr_parent_function): Delete definition.
+	* toplev.h: (curr_parent_function): Delete declaration.
+
+	* ov-usr-fcn.h (octave_user_function::parent_scope): New data member.
+	(octave_user_function::parent_fcn_scope,
+	octave_user_function::stash_parent_fcn_scope): New functions.
+	* ov-usr_fcn.cc (octave_user_function::octave_user_function):
+	Initialize parent_scope.
+	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find):
+	Check parent of current function by looking at call stack, not
+	global curr_parent_function variable.
+	* parse.y (frob_function): If parsing nested function, stash
+	current parent function scope.
+	* ov-fcn.h (octave_function::parent_fcn_scope): New virtual function.
+
+2008-07-22  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.cc (F__go_execute_callback__): New function.
+
+	* DLD-FUNCTIONS/fltk_backend.cc: Undefine min/max after FLTK headers
+	inclusion.
+
+	* graphics.h.in (class base_graphics_event, class graphics_event): New
+	classes (replace gh_manager::event_data).
+	(class gh_manager::event_data): Remove.
+	(gh_manager::post_function, gh_manager::do_post_function): Use
+	graphics_event::event_fcn type.
+	(gh_manager::event_queue, gh_manager::do_post_event): Use
+	graphics_event type.
+	* graphics.cc (class callback_event, class function_event, class
+	set_event): Renamed from xxx_data classes.
+	(graphics_event::create_callback_event,
+	graphics_event::create_function_event,
+	graphics_event::create_set_event): Renamed from gh_manager::xxx
+	equivalent methods, removed reference count increment.
+	(gh_manager::do_post_event): Likewise.
+	(gh_manager::do_post_event): Use graphics_event type.
+	(gh_manager::do_post_function): Use graphics_event::event_fcn type.
+
+2008-07-22  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 3.1.51+.
+
+2008-07-21  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 3.1.51.
+	(OCTAVE_RELEASE_DATE): Now 2008-07-21.
+
+	* ov-class.cc (octave_class::subsasgn): Only do internal magic if
+	rhs is not an octave_class object.
+
+	* OPERATORS/op-struct.cc: Define concatenation operators for
+	struct/matrix concatenation (valid if matrix is empty).
+	* OPERATORS/op-cell.cc (install_cell_ops): Likewise, for cells.
+
+	* DLD-FUNCTIONS/fltk_backend.cc: Don't include oct.h.
+	Make compilation of entire file conditional on HAVE_FLTK.
+
+	* gl-render.cc: Make compilation of entire file conditional on
+	HAVE_OPENGL.
+
+	* Makefile.in (GL_RENDER_SRC, FLTK_BACKEND_SRC): Delete variables.
+	(DLD_XSRC): Always include fltk_backend.cc in the list.
+	(DIST_SRC): Always include gl-render.cc in the list.
+
+2008-07-19  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 3.1.50+.
+	(OCTAVE_API_VERSION): Now api-v33+.
+
+2008-07-18  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 3.1.50.
+	(OCTAVE_API_VERSION): Now api-v33.
+	(OCTAVE_RELEASE_DATE): Now 2008-07-18.
+	(OCTAVE_COPYRIGHT): Update date to 2008.
+
+2008-07-18  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (__magick_read__.df): New rule.
+	Append MAGICK_INCFLAGS to CPPFLAGS.
+
+	* Makefile.in (EXTRAS): Add graphics-props.cc to the list.
+	List graphics-props.cc as a target generated by genprops.awk.
+
+2008-07-18 Carlo de Falco  <carlo.defalco@gmail.com>
+
+	* gl-render.h: Conditionally include GL/gl.h or OpenGL/gl.h
+	and GL/glu.h or OpenGL/glu.h
+
+2008-07-17  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (out_of_date_check_internal): New arg, dispatch_type.
+	Use it to handle class methods.
+
+	* toplev.h (octave_call_stack::do_caller): New function.
+	(octave_call_stack::caller): Use it.
+
+2008-07-17  Jaroslav Hajek  <highegg@gmail.com>
+
+	* Makefile.in (convhulln.oct, __delaunayn__.oct, __voronoi__.oct,
+	regexp.oct, urlwrite.oct, __glpk__.oct, fltk_backend.oct):
+	Use OCT_LINK_DEPS instead of DL_LDFLAGS for target-specific
+	dependencies.
+
+2008-07-17  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTION/__magick_read__.cc (F__magick_read__): Allow build
+	without GraphicsMagick++ installed.
+
+2008-07-16  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (gh_manager::autolock): Delete copy constructor
+	and assignment definitions.
+
+2008-07-16  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (callback_property::execute): Remove static version.
+	(base_properties::is_hittest, base_properties::is_interruptible,
+	base_properties::is_selected, base_properties::is_selectionhighlight):
+	New convenience property accessors.
+	(base_graphics_object::get_handle, graphics_object::get_handle): Idem.
+	(gh_manager::graphics_lock): New global mutex
+	(gh_manager::lock, gh_manager::unlock, gh_manager::do_lock,
+	gh_manager::do_unlock): Add accessors for it.
+	(gh_manager::autolock): New class for easy locking of the graphics
+	system.
+	(gh_manager::event_data): New class for event management.
+	(gh_manager::event_queue): New object to hold pending events.
+	(gh_manager::callback_objects): New stack of callback objects.
+	(gh_manager::execute_callback, gh_manager:post_callback,
+	gh_manager::post_function, gh_manager::post_set,
+	gh_manager::process_events, gh_manager::flush_events,
+	gh_manager::restore_gcbo): New static methods for event management.
+	(gh_manager::do_execute_callback, gh_manager::do_post_callback,
+	gh_manager::do_post_function, gh_manager::do_post_set,
+	gh_manager::do_process_events, gh_manager::do_post_event,
+	gh_manager::do_restore_gcbo): New non-static versions.
+	* graphics.cc (xreset_gcbo): Remove.
+	(execute_callback): Likewise.
+	(base_property::run_listeners, callback_property::execute): Use
+	gh_manager::execute_callback.
+	(class callback_event_data, class function_event_data, class
+	set_event_data): New classes to implement various types of events.
+	(gh_manager::event_data::create_callback_event,
+	gh_manager::event_data::create_function_event,
+	gh_manager::event_data::create_set_event): Implement event factory
+	methods.
+	(gh_manager::do_restore_gcbo, gh_manager::do_execute_callback,
+	gh_manager::do_post_event, gh_manager::do_post_callback,
+	gh_manager::do_post_function, gh_manager::do_post_set,
+	gh_manager::do_process_events): New methods for event management.
+	(Fishandle, Fset, Fget, F__get__, F__go_figure__, F__go_delete__,
+	F__go_axes_init__, F__go_handles__, F__go_figure_handles__,
+	Favailable_backends, Fdrawnow, Faddlistener, Faddproperty,
+	get_property_from_handle, set_property_in_handle): Lock graphics
+	system.
+	(GO_BODY): Likewise.
+	(Fdrawnow): Support single "expose" argument.
+
+2008-07-15  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__convn__.cc (convn): Cast second arg to
+	octave_idx_type in call to std::max.
+
+2008-07-14  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (convhulln.oct, __delaunayn__.oct, __voronoi__.oct,
+	regexp.oct, urlwrite.oct, __glpk__.oct, fltk_backend.oct):
+	Simplify with target-specific settings for DL_LDFLAGS.
+
+	* DLD-FUNCTIONS/__magick_read__.cc: Delete "using namespace std"
+	and "using namespace Magick" directives.  Style fixes.
+
+	* oct-conf.h.in (OCTAVE_CONF_MAGICK_INCFLAGS,
+	OCTAVE_CONF_MAGICK_LIBS): Substitute here.
+	* toplev.cc (octave_config_info): Include MAGICK_INCFLAGS and
+	MAGICK_LIBS in the struct.
+	* Makefile.in (DLD_XSRC): Add __magick_read__.cc to the list.
+	(OCTAVE_LIBS): Add $(MAGICK_LIBS) to the list for static linking case.
+	(__magick_read__.d, __magick_read__.o, pic/__magick_read__.o):
+	Append MAGICK_INCFLAGS to CPPFLAGS.
+	(__magick_read__.oct): Append MAGICK_LIBS to LDFLAGS.
+
+2008-07-14  Thomas L. Scofield  <scofield@calvin.edu>
+
+	* DLD-FUNCTIONS/__magick_read__.cc: New file from Octave Forge.
+
+2008-07-11  John W. Eaton  <jwe@octave.org>
+
+	* syscalls.cc (const_value): Delete arg NM.  Change all uses.
+
+	* DLD-FUNCTIONS/fft.cc (do_fft): Avoid GCC warning.
+	* DLD-FUNCTIONS/fft2.cc (do_fft2): Likewise.
+	* DLD-FUNCTIONS/fftn.cc (do_fftn): Likewise.
+	* DLD-FUNCTIONS/qr.cc (Fqrshift): Likewise.
+	* DLD-FUNCTIONS/lookup.cc (Flookup): Likewise.
+	* gl-render.cc (opengl_renderer::draw): Likewise.
+	* graphics.cc (axes::update_axis_limits,
+	hggroup::update_axis_limits, Favailable_backends):
+	Likewise.
+	* pt-cmd.cc (tree_no_op_command::dup, tree_function_def::dup):
+	Likewise.
+	* pt-const.cc (tree_constant::dup): Likewise.
+	* pt-id.cc (tree_identifier::dup): Likewise.
+	* pt-jump.cc (tree_break_command::dup, tree_continue_command::dup,
+	tree_return_command::dup): Likewise.
+
+	* DLD-FUNCTIONS/colamd.cc: Style fixes.
+	(tree_postorder): Rename from TreePostorder.
+	(tree_postorder, coletree): Avoid GCC warnings.
+
+	* DLD-FUNCTIONS/chol.cc (Fchol): Avoid GCC warnings.
+	(Fcholdelete, Fcholshift): Delete unused arg nargout.
+
+	* toplev.cc, toplev.h (octave_call_stack::caller_user_function,
+	octave_call_stack::caller_user_script,
+	octave_call_stack::do_caller_user_function,
+	octave_call_stack::do_caller_user_script):
+	Delete functions and decls.
+
+	* defun.cc (print_usage): Call octave_call_stack::caller_user_code,
+	not octave_call_stack::caller_user_function.
+	* debug.cc (get_user_code): Likewise.
+
+	* toplev.h (octave_call_stack::difference_type): Delete typedef.
+	* toplev.cc, toplev.h (octave_call_stack::caller_user_code_line,
+	octave_call_stack::do_caller_user_code_line,
+	octave_call_stack::caller_user_code_column,
+	octave_call_stack::do_caller_user_code_column,
+	octave_call_stack::caller_script,
+	octave_call_stack::do_caller_script,
+	octave_call_stack::caller_user_function,
+	octave_call_stack::do_caller_user_function,
+	octave_call_stack::caller_user_code,
+	octave_call_stack::do_caller_user_code):
+	Delete unused difference_type arg.
+
+	* ov-float.h, ov-flt-re-mat.cc, ov-range.h, ov-re-mat.h,
+	ov-re-sparse.cc, ov-scalar.h: Check for NaN in bool_value and
+	bool_array_value member functions to bool.
+
+	* ops.h (DEFSCALARBOOLOP_OP): New macro.
+	* OPERATORS/op-s-s.cc, OPERATORS/op-fs-fs.cc: Use it to define
+	el_and and el_or ops.
+
+2008-07-10  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/lookup.cc (assign): Delete.
+	(Flookup): Use new NDArray constructors rather than assign.
+	* data.cc (Fsort): Use new NDArray constructors rather than
+	directly assigning.
+	* besselj.cc (int_array2_to_matrix, int_arrayn_to_array,
+	int_array2_to_float_matrix, int_arrayn_to_float_array): Delete.
+	(do-bessel): Use new NDArray constructors.
+	* max.cc (MINMAX_SPARSE_BODY, MINMAX_INT_BODY, MINMAX_SINGLE_BODY,
+	MINMAX_DOUBLE_BODY): Use new NDArray constructors.
+	* ov-bool.h (array_value, float_array_value): Explictly cast
+	boolean scalar to double before the assignment to avoid ambiguity.
+
+2008-07-10  David Bateman  <dbateman@free.fr>
+
+	* ls-mat4.cc (read_mat_binary_data, save_mat_binary_data): Add
+	loading and saving of sparse matrices.
+
+2008-07-10  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* Makefile.in: Add OPENGL_LIBS to liboctinterp link command. Add
+	GRAPHICS_CFLAGS to fltk_backend.cc compilation command.
+	* data.cc: Define hypotf to _hypotf when not present.
+	* gl-render.h: Replace OCTGRAPHICS_API with OCTINTERP_API.
+	* gl-render.cc: Get rid of Array2<vertex_data>.
+	* OPERATORS/op-int.h: Use powf instead of pow when invoked
+	with float arguments.
+
+2008-07-09  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (get_debug_input): Don't delete global_command here.
+	* toplev.cc (main_loop): Undo previous change.
+
+	* toplev.h (octave_call_stack::instance_ok): Push top scope when
+	creating instance.
+
+	* DLD-FUNCTIONS/inv.cc (Finv): Avoid GCC warning.
+
+	* DLD-FUNCTIONS/expm.cc (Fexpm): Avoid GCC warning.
+
+	* ov-fcn-inline.cc (octave_fcn_inline::load_ascii): Avoid GCC warning.
+
+2008-07-09  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* gl-render.cc (opengl_renderer::draw(figure)): Enable line smoothing
+	according to __enhanced__ property.
+	(opengl_renderer::draw_marker): Only draw markers with valid call
+	lists ID.
+	(opengl_renderer::make_marker_list): Do not produce filled marker call
+	list for non-fillable markers.
+	(opengl_renderer::draw(axes)): Do not antialias axes system.
+
+	* gl-render.cc (opengl_renderer::set_polygon_offset): Also enable
+	polygon offseting in GL_LINE mode.
+	(opengl_renderer::draw_marker): Offset markers foward instead of
+	backward (to draw them above lines).
+
+	* Makefile.in: new substituted variables GL_RENDER_SRC and
+	FLTK_BACKEND_SRC.
+
+	* gl-render.cc (vertex_data::vertex_data_rep::vertex_data(void),
+	vertex_data::vertex_data(void), vertex_data::vertex_data(...)):
+	initialize reference counting correctly.
+
+2008-07-09  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (main_loop): Unwind-protect global_command.
+	* input.cc (get_debug_input): Likewise.
+
+2008-07-09  David Bateman  <dbateman@free.fr>
+
+	* pt-id.cc (octave_value_list tree_identifier::rvalue (int),
+	octave_lvalue tree_identifier::lvalue (void)): Remove
+	MAYBE_DO_BREAKPOINT.
+
+2008-07-08  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (axes::properties::keypos): Declare as
+	any_property instead of double_property.
+
+2008-06-28  John W. Eaton  <jwe@octave.org>
+
+	* debug.cc (push_dummy_call_stack_elt): Delete.
+	(Fdbstack): Don't push dummy stack elt.  Use nskip instead of
+	nframes, and curr_frame instead of idx.  Pass curr_frame to
+	octave_call_stack::backtrace.
+
+	* ls-mat5.cc (read_mat5_binary_element): Explicitly pass 0 for
+	current_context in call to symbol_table::varref.
+	* ov-fcn-handle.cc (octave_fcn_handle::load_ascii): Likewise.
+	Fix test.
+
+	* mex.cc (mexGetVariable, mexPutVariable): Use octave_call_stack
+	methods to manipulate scope and context.
+	* parse.y (source_file, Fassignin, Fevalin): Likewise.
+
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Call octave_call_stack::push after call to symbol_table::push_scope.
+	Call unwind_protect::add with octave_call_stack::unwind_pop
+	immediately after call to octave_call_stack::push.
+
+	* symtab.cc (symbol_table::xcurrent_caller_scope): Delete definition.
+	* symtab.h (symbol_table::xcurrent_caller_scope): Delete decl.
+	Delete all uses.
+	(xcurrent_context_this_table): Delete.  Delete all uses.
+	(symbol_table::current_caller_scope): Delete.
+
+	* toplev.cc (octave_call_stack::do_num_user_code_frames):
+	New function.
+	(octave_call_stack::do_backtrace): New arg, curr_user_frame.
+	Rename nframes arg to nskip.  Correctly handle curr_frame not at
+	end of stack.
+	(octave_call_stack::do_goto_frame_relative): Rename n arg to nskip.
+	Correctly handle curr_frame not at end of stack.
+	(octave_call_stack::do_goto_caller_frame): New function.
+	(octave_call_stack::do_goto_base_frame): New function.
+	* toplev.h: Provide decls for new functions.
+	(octave_call_stack::call_stack_elt::prev): New data member.
+	Initialize it in constructor.
+	(octave_call_stack::const_reverse_iterator,
+	octave_call_stack::reverse_iterator): New typedefs.
+	(octave_call_stack::symbol_table::scope_id current_scope,
+	octave_call_stack::symbol_table::context_id current_context,
+	octave_call_stack::num_user_code_frames,
+	octave_call_stack::goto_caller_frame,
+	octave_call_stack::goto_base_frame,
+	octave_call_stack::do_num_user_code_frames,
+	octave_call_stack::do_current_scope,
+	octave_call_stack::do_current_context): New functions.
+
+	(octave_call_stack::push): Default value for context arg is
+	symbol_table::current_context, not 0.
+	(octave_call_stack::do_push): Save previous frame.  Always push
+	new frame on back of stack.  Call symbol_table::set_scope_and_context.
+	(octave_call_stack::do_pop): Restore previous frame.  Always pop
+	frame from back of stack.  Call symbol_table::set_scope_and_context.
+
+2008-06-26  John W. Eaton  <jwe@octave.org>
+
+	* token.h: Omit "class symbol_table::symbol_record" decl;
+
+	* lex.l (grab_block_comment): Use parens around || expression
+	within && expression.
+
+2008-06-23  John W. Eaton  <jwe@octave.org>
+
+	* debug.cc (Fdbstack): Avoid shadowed variable warning.
+
+2008-06-23  Jaroslav Hajek  <highegg@gmail.com>
+
+	* genprops.awk (emit_source): Avoid gensub for portability.
+	(BEGIN): Ditto.
+
+2008-06-20  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/regexp.cc (octregexp_list): Make "once" an output
+	argument.
+	(octregexp): Do not use cell arrays when "once" is requested.
+
+	* ov.cc (make_vector_dims): New function.
+	(vector_value, complex_vector_value, float_vector_value,
+	float_complex_vector_value): Query N-d array values and simplify,
+	avoid copying.
+	(column_vector_value, complex_column_vector_value,
+	float_column_vector_value, float_complex_column_vector_value,
+	row_vector_value, complex_row_vector_value,
+	float_row_vector_value, float_complex_row_vector_value):
+	Simplify to trivial wrappers.
+	(int_vector_value): Avoid conversions if integer type, query N-d array
+	value, simplify.
+
+2008-06-17  John W. Eaton  <jwe@octave.org>
+
+	* toplev.h, toplev.cc (class octave_call_stack):
+	Push elements on and pop from back of queue.
+	(octave_call_stack::do_push, octave_call_stack::do_pop):
+	Always adjust curr_frame.
+	(octave_call_stack::size, octave_call_stack::do_size): New functions.
+	* pt-stmt.cc (tree_statement::eval):
+	Also call octave_call_stack::set_statement when debugging.
+	* debug.cc (push_dummy_call_stack_elt): New function.
+	(Fdbstack): Omit dbstack from call stack by popping element rather
+	than adjusting frame number.  Correctly handle arg.
+
+2008-06-12  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrshift, Fqrdelete):
+	Allow single precision arguments, add tests for single precision.
+
+2008-06-11  John W. Eaton  <jwe@octave.org>
+
+	* ov-base.cc (octave_base_value::streamoff_value,
+	octave_base_value::streamoff_array_value): Delete.
+	* ov-base.h: Delete decls.
+	(octave_base_value::is_streamoff): Delete.
+	* ov-float.cc (octave_float_scalar::streamoff_value,
+	octave_float_scalar::streamoff_array_value): Delete.
+	* ov-float.h: Delete decls.
+	* ov-flt-re-mat.cc (octave_float_matrix::streamoff_array_value): Delete.
+	* ov-flt-re-mat.h: Delete decl.
+	* ov-re-mat.cc (octave_matrix::streamoff_array_value): Delete.
+	* ov-re-mat.h: Delete decl.
+	* ov-re-sparse.cc (octave_sparse_matrix::streamoff_array_value): Delete.
+	* ov-re-sparse.h: Delete decl.
+	* ov-scalar.cc (octave_scalar::streamoff_value,
+	octave_scalar::streamoff_array_value): Delete.
+	* ov-scalar.h: Delete decls.
+	* ov.cc (octave_value::octave_value (const streamoff_array&),
+	octave_value::octave_value (const ArrayN<std::streamoff>&),
+	octave_value::streamoff_value (void) const,
+	octave_value::streamoff_array_value (void) const): Delete.
+	* ov.h: Delete decls.
+	(octave_value::is_streamoff): Delete.
+	* ov.cc (install_types): Don't register streamoff type.
+	* ov-streamoff.h, ov-streamoff.cc, OPERATORS/op-streamoff.cc: Delete.
+	* Makefile.in: Delete them from the lists.
+
+	* error.cc (verror): Restore newline in msg_string.  Stripping
+	"error: " prefix when buffering error messages is no longer neeed.
+
+2008-06-25  David Bateman  <dbateman@free.fr>
+
+	* pr-output.cc (Frats): Print usage if nargin == 0.
+
+2008-06-10  John W. Eaton  <jwe@octave.org>
+
+	* mexproto.h (mxCreateLogicalScalar): Declar arg as mxLogical, not int.
+
+2008-06-09  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (execute_callback): Pass CB by const reference and
+	explicitly make a copy.
+	(xget_ancestor): Pass GO by const reference and explicitly make a copy.
+
+	* error.cc (verror): Omit "name: " and "\a" from Vlast_error_msg.
+	Save line and column information from user code.
+	* toplev.cc (octave_call_stack::do_caller_user_code_line,
+	octave_call_stack::do_caller_user_code_column): New functions.
+	* toplev.h: Provide decls.
+	(octave_call_stack::caller_user_code_line,
+	octave_call_stack::caller_user_code_column): New functions.
+	(octave_call_stack::current_line, octave_call_stack::current_column):
+	Default return value is -1, not 0.
+
+2008-06-06  John W. Eaton  <jwe@octave.org>
+
+	* ov.h (octave_value::erase_subfunctions):
+	New function.
+	* ov-base.h (octave_base_value::erase_subfunctions):
+	New virtual function.
+	* ov-usr-fcn.h (octave_user_function::erase_subfunctions):
+	New function.
+	* symtab.h (symbol_table::fcn_info::::erase_subfunction,
+	symbol_table::fcn_info::fcn_info_rep::erase_subfunction,
+	symbol_table::erase_subfunctions_in_scope):
+	New functions.
+	(symbol_table::fcn_info::fcn_info_rep::clear_user_function):
+	Erase subfunctions here.
+
+	* variables.cc (Fmlock): Doc fix.
+
+2008-06-05  John W. Eaton  <jwe@octave.org>
+
+	* gl-render.cc (opengl_renderer::draw): Correctly avoid shadow
+	warnings from gcc for xmin, xmax, ymin, ymax, zmin, and zmax.
+
+	* graphics/ChangeLog, graphics/Makefile.in, graphics/Makerules.in,
+	graphics/fltk_backend/Makefile.in, graphics/opengl/Makefile.in:
+	Delete.
+
+	* gl-render.cc, gl-render.h: Move here from graphics/opengl.
+	* Makefile.in: Add them to the appropriate lists.
+	(octave$(EXEEXT)): Also link with $(OPENGL_LIBS)
+
+	* fltk_backend.cc: Move here from graphics/fltk_backend.
+	* Makefile.in (DLD_XSRC): Add it to the list
+	(fltk_backend.oct): Include special rules for linking with
+	$(GRAPHICS_LIBS) and $(FT2_LIBS).
+
+	* dynamic-ld.cc (octave_dynamic_loader::mex_mangler,
+	octave_dynamic_loader::mex_uscore_mangler,
+	octave_dynamic_loader::mex_f77_mangler): New functions.
+	(octave_dynamic_loader::do_load_mex): Use them.
+	(octave_dynamic_loader::do_remove_oct): Rename from
+	octave_dynamic_loader::do_remove.
+	(octave_dynamic_loader::do_remove_mex): New function.
+	* dynamic-ld.h: Provide/fix decls.
+
+	* graphics.cc (properties::update_normals): Style fixes.
+	* graphics.h.in: Style fixes.
+
+	ChangeLog entries for gl-render.h, gl-render.cc, and
+	fltk_backend.cc before the move:
+
+	2008-06-05  John W. Eaton  <jwe@octave.org>
+
+	* opengl/gl-render.cc (xmin): New static function.
+
+	* opengl/gl-render.h (opengl_renderer): Style fixes.
+	* fltk_backend/fltk_backend.cc: Style fixes.
+
+	2008-04-26  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* opengl/gl-render.h (opengl_renderer::draw(hggroup)): New method.
+	* opengl/gl-render.cc (opengl_renderer::draw(hggroup)): Likewise.
+	(opengl_renderer::draw(graphics_object)): Call it.
+
+	2008-03-17  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* fltk_backend/fltk_backend.cc (plot_window::resize,
+	plot_window::draw): make canvas the size of figure.position
+
+	2008-03-09  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* fltk_backend/fltk_backend.cc (plot_window::handle): add zoom
+	stack
+
+	2008-03-06  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* fltk_backend/fltk_backend.cc (plot_window::handle): Add handling
+	of the 'a' and 'g' keys
+	(plot_window: toggle_grid): New helper function
+	(plot_window): Add new togglegrid button
+
+	2008-03-01  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* fltk_backend/fltk_backend.cc (OpenGL_fltk::draw_overlay,
+	OpenGL_fltk::zoom, OpenGL_fltk::set_zoom_box): Added to support
+	zoom box
+	(plot_window::handle): Added zoom box code, B-3 now does autoscale
+	(plot_window::axis_auto): New utility function to call axis("auto")
+	(plot_window::button_press): "A" button now does autoscale
+
+	* opengl/gl-render.cc (make_marker_list): Add the "+x*.^v><"
+	markers
+
+	2008-02-27  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* opengl/gl-render.cc (opengl_renderer::draw(patch),
+	opengl_renderer::draw(surface)): Adapt to type change of facealpha and
+	edgealpha, using double_radio_property class.
+
+	2008-02-26  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* opengl/gl-render.h: Make sure windows.h is included before OpenGL
+	headers.
+	* fltk_backend/Makefile.in (FLTK_EXTRA_CXXFLAGS): Use $(srcdir) for
+	includesion of OpenGL renderer headers.
+	(Makeconf): Move inclusion of Makeconf later on, to avoid freezing
+	MinGW make.
+
+	* fltk_backend/Makefile.in (GRAPHICS_CFLAGS): New substituted
+	variable.
+
+	2008-02-25  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* fltk_backend/fltk_backend.cc (class plot_window): Many changes
+	to use figure::properties instead of figure handle to reference
+	the figure
+	(class figure_manager): ditto
+	(__fltk_redraw__): moved most of functionality into the
+	figure_manager class
+	(plot_window::pixel2pos): Modified to use axes::pixel2coord
+	(plot_window::pixel2staus): Modified to use pixel2pos
+	(plot_window::handle): Added zoom with mouse
+
+	2008-02-24  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* fltk_backend/fltk_backend.cc (OpenGL_fltk::Draw): removed double
+	buffer switch
+	(OpenGL_fltk::setup_viewport): removed call to glOrtho --
+	gl-render takes care of all the transformations
+
+	2008-02-23  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* fltk_backend/fltk_backend.cc (plot_window::mark_modifed): mark
+	the whole window as damaged (otherwise changing figure.postion
+	does not have immediate effect)
+	(plot_window::draw): New function, checks for window size
+	(__fltk_maxtime__): New DEFUN to allow tweaking of fltk timeout
+	(__fltk_redraw__): Use fltk_maxtime as timeout
+
+	2008-02-21  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* opengl/gl-render.cc (opengl_renderer::patch_tesselator::combine):
+	Protect against NULL vertex data.
+
+	* opengl/gl-render.cc (opengl_renderer::draw(patch)): Add marker
+	rendering of patch objects.
+
+	2008-02-21  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* opengl/gl-render.cc: remove OpenGL includes
+	* opengl/gl-render.h: add OpenGL includes
+	* fltk_backend/fltk_backend.cc: remove OpenGL includes
+	(__fltk_redraw__): put figure handle into the figure's
+	__plot_stream__ property for later
+	(fltk_backend::close_figure): use argument as figure handle to
+	close
+
+	2008-02-20  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* fltk_backend/Makefile.in: initial import
+
+	* fltk_backend/fltk_backend.cc: initial import
+
+
+	2008-02-20  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* opengl/gl-render.h (opengl_renderer::draw(patch)): New method to
+	render patch objects.
+	(class opengl_renderer::patch_tesselator): Forward declaration.
+	* opengl/gl-render.cc (opengl_texture::create): Use RGB data format
+	instead of RGBA.
+	(class opengl_tesselator): New classes to abstract GLU tessellation
+	process.
+	(class opengl_renderer::patch_tesselator): New class to render opaque
+	patch objects.
+	(class vertex_data): New class to hold vertex data during tessellation
+	of patch objects.
+	(opengl_renderer::draw(patch)): New method to render patch objects (no
+	transparency, no border, no marker yet).
+	(opengl_renderer::draw(graphics_object)): Dispatch to it.
+
+	* opengl/gl-render.cc (opengl_renderer::draw(patch)): Use patch color
+	data and support face/vertex single color specification.
+
+	* opengl/gl-render.cc (opengl_tesselator::begin_polygon): Set
+	tessellation property also for non-filled polygons.
+	(opengl_renderer::patch_tesselator::vertex): Protect against empty
+	color matrices.
+	(opengl_renderer::draw(patch)): Render patch border (no transparency
+	yet).
+
+	2008-02-19  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* opengl/gl-render.cc (opengl_texture::texture_rep::tex_coord,
+	opengl_texture::tex_coord): New wrapper around glTexCoord2d.
+	(opengl_renderer::draw(surface)): Use it for texturemap
+	implementation.
+	(opengl_renderer::draw(surface)): Fix indexing bug when creating clip
+	matrix.
+	(opengl_texture::operator=): Add assignment operator.
+	(opengl_texture::create): New static opengl_texture creator.
+	(opengl_texture::is_valid): New accessor.
+
+	2008-02-18  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* opengl/gl-render.cc (class opengl_texture): New class to wrap
+	texture operations in OpenGL.
+
+	2008-02-17  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* opengl/gl-render.cc (opengl_renderer::draw(surface)): Set material
+	color when rendering surface facets.
+
+	* opengl/gl-render.cc (opengl_renderer::draw(surface)): Add rendering
+	of mesh and markers.
+
+	2008-02-16  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* opengl/gl-render.cc (opengl_renderer::draw(figure)): Initialize the
+	OpenGL context correctly.
+	(opengl_renderer::draw(surface)): Add missing glEnd call.
+
+	2008-02-14  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* opengl/gl-render.h opengl/gl-render.cc: Add rendering
+	interface for surface objects (actual implement still
+	missing).
+
+	2008-02-14  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* Makefile.in Makerules.in: Initial import
+	* opengl/Makefile.in: Likewise.
+	* opengl/gl-render.h opengl/gl-render.cc: Likewise.
+
+2008-06-04  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.cc (axes::properties::set_defaults): Preserve position
+	if mode is replace.
+	(axes::properties::sync_positions): Use default_axes_postion for
+	consistency.
+
+	* graphics.h.in (axes::properties::sync_positions,
+	axes::properties::update_position,
+	axes::properties::update_outerposition): New functions to sync
+	outerposition and position.
+
+	* graphics.h.in (axes::properties::update_xlim,
+	axes::properties::update_ylim, axes::properties::update_zlim):
+	pass is_logscale flag to axes::properties::calc_ticks_and_lims
+	* graphics.cc (axes::properties::calc_ticks_and_lims): Added
+	support for log scale
+
+	* graphics.h.in (axes::properities::fix_limits) : New method.
+	(axes::properties::update_xlim, axes::properties::update_ylim,
+	axes::properties::update_zlim): Use fix_limits.
+
+	* graphics.cc (axes::properties::calc_ticks_and_lims): Make sure
+	that lo <= hi.
+
+	* graphics.h.in (axes::pixel2coord, axes::coord2pixel): New functions.
+
+	* graphics.cc (convert_position): No longer static.
+	* graphics.h.in: Provide decl.
+
+ 	* graphics.cc (Favailable_backends): New function.
+  	* graphics.h.in (base_graphics_backend::available_backends_list):
+	New function.
+
+	* graphics.cc (axes::properties::calc_ticks_and_lims): Refactor.
+	Adjust axes limits & tics together so that the result is consistent.
+	(axes::properties::calc_tick_sep): Ditto.
+	(axes::properties::get_axis_limits): Ditto.  Now a member of
+	axes::properties
+	(magform): Now file-scope static function instead of
+	axes::properties member function.
+
+	* graphics.h.in (axes::properties::update_xlim): call the new
+	axes::properties::calc_ticks_and_lims method
+	(axes::properties::update_ylim): ditto
+	(axes::properties::update_zlim): ditto
+
+2008-06-04  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* ov-fcn-inline.h (class octave_fcn_inline): Mark with OCTINTERP_API.
+	* ov-fcn-handle.h (class Octave_fcn_handle): Likewise.
+	* ls-oct-binary.h (save_binary_data, read_binary_data): Likewise.
+
+	* genprops.awk (emit_source): Fix if-then-else statement generation
+	when the first property is hidden.
+	* graphics.h.in (base_properties::adopt): Call mark_modified.
+	(class hggroup): New graphics object class.
+	* graphics.cc (lookup_object_name, make_graphics_object_from_type,
+	property_list::lookup, property_list::set,
+	root_figure::init_factory_properties): Support hggroup as possible
+	object type.
+	(hggroup::update_axis_limits): New graphics object class.
+	(make_graphics_object): Look for "parent" property in the arguments
+	and use it as actual parent for the created object.
+	(F__go_hggroup__): New function.
+	(F__go_delete__): Set Vdrawnow_requested to true.
+
+	* graphics.h.in (base_property::clone, string_property::clone,
+	radio_property::clone, color_property::clone, double_property::clone,
+	double_radio_property::clone, array_property::clone,
+	row_vector_property::clone, bool_property::clone,
+	handle_property::clone, callback_property::clone, any_property::clone,
+	property::clone): New virtual method.
+	(property::create): New static method to create dynamic properties.
+	(base_properties::has_property): New method to check the existence of
+	a property.
+	(any_property::any_property, row_vector_property::row_vector_property,
+	double_radio_property::double_radio_property): New copy constructors.
+	* graphics.cc (lookup_object_name): New static utility function.
+	(make_graphics_object_from_type): Likewise.
+	(gh_manager::do_make_graphics_handle): Use it.
+	(dprop_obj_map): New static map used for chaching purpose in dynamic
+	property creation.
+	(property::create): New static method to create dynamic properties.
+	(base_properties::has_property): New method to check the existence of
+	a property.
+	(base_properties::override_defaults): Check parent validity.
+	(Faddlistener): Documentation fix.
+	(Faddproperty): New function to create dynamic properties.
+
+	* genprops.awk (emit_get_array): Don't produce get_xxx_property
+	accessors.
+	* graphics.h.in (array_property::get_limits): New method to return the
+	array limits.
+	(base_properties::get_xdata_property,
+	base_properties::get_ydata_property,
+	base_properties::get_zdata_property,
+	base_properties::get_ldata_property,
+	base_properties::get_udata_property,
+	base_properties::get_xldata_property,
+	base_properties::get_xudata_property,
+	base_properties::get_cdata_property): Remove methods, replaced with
+	limit-based equivalent.
+	(base_graphics_object::get_xdata_property,
+	base_graphics_object::get_ydata_property,
+	base_graphics_object::get_zdata_property,
+	base_graphics_object::get_ldata_property,
+	base_graphics_object::get_udata_property,
+	base_graphics_object::get_xldata_property,
+	base_graphics_object::get_xudata_property,
+	base_graphics_object::get_cdata_property): Likewise.
+	(graphics_object::get_xdata_property,
+	graphics_object::get_ydata_property,
+	graphics_object::get_zdata_property,
+	graphics_object::get_ldata_property,
+	graphics_object::get_udata_property,
+	graphics_object::get_xldata_property,
+	graphics_object::get_xudata_property,
+	graphics_object::get_cdata_property): Likewise.
+	(base_properties::get_xlim, base_properties::get_ylim,
+	base_properties::get_zlim, base_properties::get_clim,
+	base_properties::get_alim, base_properties::is_xliminclude,
+	base_properties::is_yliminclude, base_properties::is_zliminclude,
+	base_properties::is_climinclude, base_properties::is_aliminclude):
+	New methods.
+	(base_graphics_object::get_xlim, base_graphics_object::get_ylim,
+	base_graphics_object::get_zlim, base_graphics_object::get_clim,
+	base_graphics_object::get_alim, base_graphics_object::is_xliminclude,
+	base_graphics_object::is_yliminclude,
+	base_graphics_object::is_zliminclude,
+	base_graphics_object::is_climinclude,
+	base_graphics_object::is_aliminclude): Likewise.
+	(graphics_object::get_xlim, graphics_object::get_ylim,
+	graphics_object::get_zlim, graphics_object::get_clim,
+	graphics_object::get_alim, graphics_object::is_xliminclude,
+	graphics_object::is_yliminclude, graphics_object::is_zliminclude,
+	graphics_object::is_climinclude, graphics_object::is_aliminclude):
+	Likewise.
+	(base_graphics_object::update_axis_limits): Provide default behavior
+	by passing the call to the parent object.
+	(line::properties::xdata, line::properties::ydata,
+	line::properties::zdata, line::properties::ldata,
+	line::properties::udata, line::properties::xldata,
+	line::properties::xudata): Replace 'l' modifier with 'u'.
+	(line::properties::xlim, line::properties::ylim,
+	line::properties::zlim, line::properties::xliminclude,
+	line::properties::yliminclude, line::properties::zliminclude): New
+	hidden properties.
+	(line::properties::update_xdata, line::properties::update_ydata,
+	line::properties::update_zdata, line::properties::update_xldata,
+	line::properties::update_xudata, line::properties::update_ldata,
+	line::properties::update_udata): New updaters that update limit
+	properties.
+	(line::properties::compute_xlim, line::properties::compute_ylim): New
+	method to compute actual limits taking into account x/y data and
+	upper/lower bounds.
+	(text::properties::position): Add 'u' modifier.
+	(text::properties::xlim, text::properties::ylim,
+	text::properties::zlim, text::properties::xliminclude,
+	text::properties::yliminclude, text::properties::zliminclude): New
+	hidden properties.
+	(text::properties::update_position): New updater that updates limit
+	properties.
+	(image::properties::xdata, image::properties::ydata,
+	image::properties::cdata): Replace 'l' modifier with 'u'.
+	(image::properties::cdatamapping): Add 'l' modifier.
+	(image::properties::xlim, image::properties::ylim,
+	image::properties::clim, image::properties::xliminclude,
+	image::properties::yliminclude, image::properties::climinclude): New
+	hidden properties.
+	(image::properties::get_climinclude,
+	image::properties::is_climinclude): Provide specialized inline
+	accessors.
+	(image::properties::update_xdata, image::properties::update_ydata,
+	image::properties::update_cdata): New updaters that update limit
+	properties.
+	(patch::properties::xdata, patch::properties::ydata,
+	patch::properties::zdata, patch::properties::cdata): Replace 'l'
+	modifier with 'u'.
+	(patch::properties::cdatamapping): Add 'l' modifier.
+	(patch::properties::alphadatamapping): New property.
+	(patch::properties::xlim, patch::properties::ylim,
+	patch::properties::zlim, patch::properties::clim,
+	patch::properties::alim, patch::properties::xliminclude,
+	patch::properties::yliminclude, patch::properties::zliminclude,
+	patch::properties::climinclude, patch::properties::aliminclude: New
+	hidden properties.
+	(patch::properties::get_climinclude,
+	patch::properties::is_climinclude, patch::properties::get_aliminclude,
+	patch::properties::is_aliminclude): Provide specialized inline
+	accessors.
+	(patch::properties::update_xdata, patch::properties::update_ydata,
+	patch::properties::update_zdata, patch::properties::update_cdata): New
+	updaters that update limit properties.
+	(surface::properties::xdata, surface::properties::ydata,
+	surface::properties::zdata, surface::properties::cdata,
+	surface::properties::alphadata): Replace 'l' modifier with 'u'.
+	(surface::properties::cdatamapping,
+	surface::properties::alphadatamapping): Add 'l' modifier.
+	(surface::properties::xlim, surface::properties::ylim,
+	surface::properties::zlim, surface::properties::clim,
+	surface::properties::alim, surface::properties::xliminclude,
+	surface::properties::yliminclude, surface::properties::zliminclude,
+	surface::properties::climinclude, surface::properties::aliminclude: New
+	hidden properties.
+	(surface::properties::get_climinclude,
+	surface::properties::is_climinclude,
+	surface::properties::get_aliminclude,
+	surface::properties::is_aliminclude): Provide specialized inline
+	accessors.
+	(surface::properties::update_xdata, surface::properties::update_ydata,
+	surface::properties::update_zdata): Update limit properties.
+	(surface::properties::update_cdata,
+	surface::properties::update_alphadata): New updaters that update limit
+	properties.
+	* graphics.cc (base_properties::update_axis_limits): Simply call
+	update_axis_limits in owning graphics_object.
+	(base_graphics_object::update_axis_limits): Provide default behavior
+	by passing the call to the parent object.
+	(check_limits_vals(double&,double&,double&,const octave_value&)): New
+	static method to work with new limit properties in graphics objects.
+	(get_children_limits): New static method to compute the raw limits of
+	a set of children, based on the new limit properties.
+	(axes::update_axis_limits): Simplify and call get_children_limits. Add
+	handling of alpha limits.
+	(line::properties::compute_xlim, line::properties::compute_ylim): New
+	methods to compute line limits taking into account upper/lower bounds.
+
+	* graphics.cc (axes::properties::sync_positions): Update
+	transformation data.
+
+	* graphics.cc (Faddlistener): Rename from Fadd_listener.
+
+	* graphics.h.in (axes::properties::pixel2coord): Center Z coordinate
+	on x_zlim instead of 0.
+	(axes::properties::zoom, axes::properties::unzoom,
+	axes::properties::clear_zoom_stack): New methods to handle zoom stack.
+	(axes::properties::zoom_stack): New field to hold zoom stack.
+	(axes::properties::update_xlim, axes::properites::update_ylim):
+	Additional do_clr_zoom argument to control whether the zoom stack will
+	be cleared.
+	(axes::properties::update_zlim): Clear zoom stack.
+	* graphics.cc (axes::properties::zoom, axes::properties::unzoom,
+	axes::properties::clear_zoom_stack): New methods to handle zoom stack.
+
+	* genprops.awk (emit_source): Use all properties in factory defaults.
+
+	* graphics.h.in (base_property::base_property): Set internal counter
+	to 1 by default.
+	(property::property): Adapt constructors to default counter value in
+	base_property.
+
+	* graphics.h.in (base_properties::get_property): Make virtual and
+	remove const modifier.
+	* graphics.cc (base_properties::get_property): Can return built-in
+	properties. Generate an error if the property does not exist.
+	(base_properties::add_listener): Use get_property.
+	(Fadd_listener): Add documentation.
+	* genprops.awk (emit_common_declarations, emit_source): Emit code for
+	overloaded get_property method.
+
+	* genprops.awk (emit_declarations): Run listeners in the property
+	setter methods.
+	* graphics.h.in (enum listener_mode): New enum type for listeners.
+	(base_property::set): Make non-virtual and handle listeners execution.
+	(base_property::listeners): New field holding a map of listeners.
+	(base_property::add_listener, base_property::run_listeners,
+	base_property::do_set): New methods to handle listeners.
+	(property::add_listener, property::run_listeners): Likewise.
+	(base_properties::add_listener): Likewise.
+	(base_graphics_object::add_property_listener,
+	graphics_object::add_property_listener): Likewise.
+	(all property classes): Rename set to do_set and make it protected.
+	* graphics.cc (base_property::run_listeners): New method to execute
+	listeners.
+	(color_property::set, double_radio_property::set,
+	handle_property::set): Rename to do_set.
+	(base_properties::add_listener): New method to handle listener
+	additio. Only handle dynamic properties.
+	(Fadd_listener): New octave interface to add property listeners to
+	graphics object.
+
+	* genprops.awk (emit_get_data): Remove.
+	(emit_declarations): Treat row_vector_property as array_property and
+	remove data_property references.
+	* graphics.h.in (array_property::array_property(array_property)): Add
+	copy constructor.
+	(class data_property): Remove (replaced by array_property).
+	(class base_graphics_backend, class graphics_backend): Replace
+	data_property references with array_property.
+	(line::properties::xdata, line::properties::ydata,
+	line::properties::zdata, line::properties::ldata,
+	line::properties::udata, line::properties::xldata,
+	line::properties::xudata): Turn into row_vector_property.
+	(image::properties::xdata, image::properties::ydata): Likewise.
+	(image::properties::init): Add length constraints for xdata and ydata.
+	(patch::properties::xdata, patch::properties::ydata,
+	patch::properties::zdata, patch::properties::facevertexalphadata):
+	Turn into array_property.
+	(surface::properties::xdata, surface::properties::ydata,
+	surface::properties::zdata): Likewise.
+	(patch::properties::init): Add size constraints for xdata, ydata,
+	zdata and facevertexalphadata.
+	(surface::properties::init): Add size constraints for xdata, ydata and
+	zdata.
+	* graphics.cc (check_limit_vals): Remove override with data_property.
+	(axes::update_axis_limits): Replace data_property references with
+	array_property.
+
+	* graphics.h.in (root_figure::get_default): Use factory defaults when
+	no explicit default value exists.
+	(figure::properties::set___backend__): Reset __plot_stream__ to empty
+	value.
+	* graphics.cc (gh_manager::gh_manager): Call
+	graphics_backend::default_backend to make sure the default backend is
+	initialized.
+
+	* graphics.h.in (patch::properties::edgealpha,
+	surface::properties::facealpha, surface::properties::edgealpha): Fix
+	typos in property names.
+
+	* graphics.h.in (class double_radio_property): New property class for
+	holding face/edge alpha values.
+	(patch::properties::facealpha, patch::properties::edgealpha,
+	surface::properties::facealpha, surface::properties::edgealpha): Use
+	double_radio_property class.
+	* graphics.cc (double_radio_property::set): Implement new property
+	class.
+	* genprops.awk (emit_get_double_radio): New function to emit code for
+	double_radio_property.
+	(emit_declarations): Use it.
+
+	* graphics.h.in (array_property::array_property(void)): New default
+	constructor.
+	(array_property::xmin, array_property:xmax, array_property::xminp,
+	array_property::min_val, array_property::max_val,
+	array_property::min_pos): New fields and accessors to hold min/max
+	values of the array data.
+	(array_property::get_data_limits): New method to compute min/max
+	values of the array data.
+	(base_properties::get_cdata_property,
+	graphics_object::get_cdata_property): Return array_property.
+	(image::properties::cdata, surface::properties::cdata,
+	patch::properties::cdata, patch::properties::facevertexcdata): Turn
+	into array_property type.
+	(image::properties::init, surface::properties::init,
+	patch::properties::init): Add constraint initialization for cdata and
+	facevertexcdata (patch only).
+	* genprops.awk (emit_get_array): New function to emit accessor for
+	array_property.
+	(emit_declarations): Use it.
+	* graphics.cc (get_array_limits): New template function to compute
+	min/max values of an Array<T> object.
+	(array_property::get_data_limits): New method to compute min/max
+	values of the array data, using get_array_limits.
+	(check_limit_vals): Overridden function with array_property.
+	(axes::update_axis_limits): Turn cdata property into array_property.
+
+	* graphics.h.in (patch::properties::get_color_data): New utility
+	function to retrieve actual color data.
+	* graphics.cc (patch::properties::get_color_data): Likewise.
+
+	* graphics.h.in (base_scaler::is_linear, lin_scaler::is_linear,
+	scaler::is_linear): New method to detect linear scales.
+	(graphics_xform::scale(Matrix)): New method to scale 2D/3D coordinates
+	directly.
+	(patch::properties::facelighting): Set default value to "none".
+
+	* graphics.h.in (axes::axes): Be sure to initialize transformation
+	data correctly.
+
+	* graphics.cc (xget_ancestor): Pass graphics_object argument by value
+	instead of by reference.
+
+	* graphics.h.in (surface::properties::xdata,
+	surface::properties::ydata, surface::properties::zdata,
+	surface::properties::normalmode, surface::properties::vertexnormals):
+	Add 'u' modifier.
+	(surface::properties::update_normals): New method to compute normals
+	automatically.
+	(surface::properties::update_xdata, surface::properties::update_ydata,
+	surface::properties::update_zdata,
+	surface::properties::update_normalmode,
+	surface::properties::update_vertexnormals): New updaters to update
+	normals automatically.
+	* graphics.cc (surface::properties::update_normals): Likewise.
+	(cross_product): New inlined utility function for cross product
+	computation adn accumulation.
+
+	* graphics.h.in (class base_scaler, class lin_scaler, class
+	log_scaler, class scaler): Add scale method for NDArray.
+	(log_scaler::do_scale): Factorize scaling code.
+
+	* graphics.h.in (figure::properties::update_position): Re-remove.
+	(figure::properties::facecolor): Re-add 'texturemap' value.
+	(surface::properties::get_color_data): New method to compute actual
+	surface color data from cdata.
+	* graphics.cc (surface::properties::get_color_data): Likewise.
+	(xget_ancestor): New utility function to retrieve an ancestor of a
+	given type.
+	(convert_cdata): New utility function to convert cdata property into
+	actual color data.
+
+	* graphics.h.in (surface::properties::facecolor): Add "texturemap"
+	as possible value.
+	(class surface::properties): New properties alphadata,
+	alphadatmapping, ambientstrength, backfacelighting, diffusestrength,
+	edgealpha, edgelighting, erasemode, facelighting, meshstyle,
+	normalmode, specularcolorreflectance, specularexponent,
+	specularstrength, vertexnormals.
+	(surface::properties::init): Add constraints for alphadata,
+	vertexnormals and cdata (the latter are commented until cdata
+	has changed type).
+
+	* graphics.h.in (base_properties::update_boundingbox): New method
+	to handle object resize.
+	(figure::properties::set_boundingbox): New method to set figure
+	position from backend.
+	(figure::properties::update_position): Remove method.
+	(figure::properties::position): Remove 'u' modifier and add 'S'
+	modifier.
+	(axes::properties::update_boundingbox): Overload to recompute
+	transformation when axes size changed.
+	* graphics.cc (base_properties::update_boundingbox): New method.
+	(figure::properties::set_boundingbox,
+	figure::properties::set_position): Likewise.
+
+	* genprops.awk: Add 'U' modifier to support extern updaters.
+	* graphics.h.in (base_graphics_backend::gripe_invalid): New method
+	to simplify error reporting.
+	(class base_graphics_backend): Use it.
+	(base_graphics_backend::set_figure_position): New backend method.
+	(graphics_backend::set_figure_position): Likewise.
+	(figure::properties::position): Mark property with updater.
+	(figure::properties::update_position): New updater.
+
+	* graphics.h.in (root_figure::properties::callbackobject):
+	New root property.
+	(root_figure::properties::cbo_stack): New field.
+	* graphics.cc (xset_gcbo, xreset_gcbo): New utility functions.
+	(execute_callback): Set callbackobject property in root object
+	before executing a callback.
+	(root_figure::properties::set_callbackobject): Implement accessor.
+
+	* graphics.h.in (root_figure::properties::callbackobject):
+	New root property.
+	(root_figure::properties::cbo_stack): New field.
+	* graphics.cc (xset_gcbo, xreset_gcbo): New utility functions.
+	(execute_callback): Set callbackobject property in root object
+	before executing a callback.
+	(root_figure::properties::set_callbackobject): Implement accessor.
+
+	* graphics.h.in (class root_figure::properties,
+	class line::properties, class text::properties,
+	class image::properties, class patch::properties,
+	class surface::properties): Export classes with
+	OCTINTERP_API.
+
+	* graphics.cc (axes::properties::set_defaults): Use correct
+	default values for gridlinestyle and minorgridlinestyle.
+
+2008-06-03  Jaroslav Hajek  <highegg@gmail.com>
+
+	* load-save.cc (Fload): Fix "-7" option.
+
+2008-06-02  David Bateman  <dbateman@free.fr>
+
+	* pt.cc (tree:last_break_function): Next pointer to last function
+	with a breakpoint.
+	* pt.h (tree:last_break_function): ditto.
+	* debug.cc (Fdbstep): Use tree::break_function value of zero to
+	signal to step into the next function. Set tree::last_break_function
+	to indicate position of last breakpoint.
+	(Fdbnext):  Set tree::last_break_function to indicate position of
+	last breakpoint.
+	* pt-bp.h (MAYBE_DO_BREAKPOINT): Check tree::break_function value
+	of zero as well. Only check tree::last_line if we are in teh same
+	function as the last breakpoint.
+	* input.cc (char Vfilemarker): New global variable.
+	(Ffilemarker): New function to query and set Vfilemarker.
+	* input.h (extern char Vfilemarker): Make Vfilemarker available.
+	* util.cc (fcn_file_in_path): If the input argument contains
+	Vfilemarker, strip the trailing part of string from this point
+	when looking for function file.
+	* toplev.cc (octave_call_stack::fo_backtrace): Mark subfunctions
+	with the name of the parent function and Vfilemarker.
+	* symtab.cc (symbol_table::find_function (const std::string&,
+	tree_argument_list *, const string_vector&, octave_value_list*,
+	bool&): If function name contains Vfilemarker, check in scope of
+	specified parent function.
+
+	* DLD-FUNCTIONS/betainc.cc: Move test code here. Add test code for
+	single precision type.
+	* DLD-FUNCTIONS/gammainc.cc: Ditto.
+	* DLD-FUNCTIONS/gcd.cc (Fgcd): Support single precision. Move test
+	code here. Add test code for single precision type.
+	* data.cc: Move test code here and add tests for single precision
+	type. Add tests for Fislogical.
+	(NATIVE_REDUCTION): Support the 'double' argument.
+	* mapper.cc: Move test code here and add tests for single precision
+	type.
+	* ov-float.cc (CD_SCALAR_MAPPER): Replace Complex with
+	FloatComplex.
+	(erf, erfc, abs, acos, asin, asinh, atan, atanh, ceil, cos, cosh,
+	exp, expm1, floor, log10, log1p, sin, sinh, sqrt, tan, tanh): Use
+	float version of base functions (ie. ::sinf and not ::sin)
+	(lgamma, acosh, log, log2, log10, log1p): Use single precision
+	infinity value.
+	* ov-flt-complex.cc (erf, erfc, expm1, log1p): Use the float
+	version of base functions.
+	* ov-flt-cx-mat.cc (DARRY_MAPPER): Replace NDArray with FloatNDArray.
+	(erf, erdc, gamma): Use FloatNDArray::dmapper and not
+	NDArray::dmapper.
+	* ov-flt-cx-mat.h (is_double_type): Delete.
+	(is_single_type): New method.
+	* ov-flt-re-mat.cc (lgamma,  acosh, log, log2, log10, log1p,
+	sqrt): Use single precision infinity value.
+
+	* chol.cc (Fcholinv, Fchol2inv, Fcholupdate, Fcholinsert,
+	Fcholdelete, Fcholshift): Allow single precision arguments.
+	(Fchol): Move test code here. Add test code for single precision.
+	(Fcholupdate, Fcholinsert, Fcholdelete, Fcholshift): Add test code
+	for single precision.
+	* conv2.cc (Fconv2): Add single precision test code.
+	* det.cc (Fdet): For single values or empty matrices, return
+	single precision arg for single precion input. Move test code
+	here. Add single precision test code.
+	* fft.cc (do_fft): For empty single precision arguments return a
+	single precision value. Add single precision test code. Remove
+	fft2 test code.
+	* fft2.cc (do_fft2): For empty single precision arguments return a
+	single precision value. Add single precision test code. Move fft2
+	test code here.
+	* fftn.cc (do_fftn): For empty single precision arguments return a
+	single precision value.
+	* eig.cc (Feig):  Move test code here. Add single precision test
+	code.
+	* expm.cc (Fexpm): Ditto.
+	* find.cc (Ffind): Ditto.
+	* hess.cc (Fhess): Ditto.
+	* inv.cc (Finc): Ditto.
+	* lu.cc (Flu): Ditto.
+	* qr.cc (Fqr): Ditto.
+	* schur.cc (Fschur): Ditto.
+	* svd.cc (Fsvd): Ditto.
+	* syl.cc (Fsyl): Ditto.
+
+	* op-fcm-fcm.cc, op-fcm-fcs.cc, op-fcm-fm.cc, op-fcm-fs.cc,
+	op-fcs-fcm.cc, op-fcs-fcs.cc, op-fcs-fm.cc, op-fcs-fs.cc,
+	op-fm-fcm.cc, op-fm-fcs.cc, op-fm-fm.cc, op-fm-fs.cc,
+	op-fs-fcm.cc, op-fs-fcs.cc, op-fs-fm.cc, op-fs-fs.cc: Add mixed
+	double, single precision concatenation operators.
+
+	* data.cc (Fall, Fany, Fdiag, Fcat, Fismatrix, Fones, Fzeros,
+	Finf, FNaN, FNA, Feye, Flinspace, Freshape, Ftranspose,
+	Fctranspose, Fsort). Move tests here. Add single precision tests.
+	* mappers.cc (Ffinite, Fisinf, Fisna, Fisnan): Ditto.
+	* ov-float.cc (octave_float_scalar:resize): single precision
+	return value.
+	* ov.cc (octave_value::octave_value (const
+	FloatComplexDiagMatrix&)): Ditto.
+	* data.cc (Fnorm): Add single precision.
+	(do_cat): Disable fast return and skipping empty matrices, as they
+	play a part in determining the return type.
+	* ov.cc (octave_value do_cat_op (const octave_value&, const
+	octave_value&, const Array<octave_idx_type>&)): ditto.
+
+2008-06-02  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-cell.cc (Fcellstr): For compatibility with Matlab, return {''}
+	when given ''.
+
+2008-05-26  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/fsolve.cc (fsolve_user_function,
+	fsolve_user_jacobian): Reshape argument to original dims before
+	passing.
+	(Ffsolve): Save original dimensions of the starting guess and reshape
+	on return. Fix tests.
+
+2008-05-21  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/quad.cc (quad_float_user_function): New function.
+	(Fquad): Handle float type.
+	New tests.
+
+2008-05-21  Jaroslav Hajek  <highegg@gmail.com>
+
+	* OPERATORS/op-fcm-fcm.cc (trans_mul, mul_trans, herm_mul, mul_herm):
+	New functions.
+	(install_fcm_fcm_ops): Install them.
+	* OPERATORS/op-fm-fm.cc (trans_mul, mul_trans): New functions.
+	(install_fm_fm_ops): Install them.
+
+	* OPERATORS/op-sm-m.cc (trans_mul): New function.
+	(install_sm_m_ops): Register it.
+	* OPERATORS/op-m-sm.cc (mul_trans): New function.
+	(install_m_sm_ops): Register it.
+	* OPERATORS/op-scm-cm.cc (trans_mul, herm_mul): New function.
+	(install_scm_cm_ops): Register it.
+	* OPERATORS/op-cm-scm.cc (mul_trans, mul_herm): New function.
+	(install_cm_scm_ops): Register it.
+
+	* dMatrix.cc: Declare DSYRK.
+	(xgemm): Call DSYRK if symmetric case detected.
+	* CMatrix.cc: Declare ZSYRK, ZHERK.
+	(xgemm): Call ZSYRK/ZHERK if symmetric/hermitian case detected.
+
+	* ov.h (octave_value::compound_binary_op): New enum.
+	(do_binary_op (octave_value::compound_binary_op, ...),
+	octave_value::binary_op_fcn_name (compound_binary_op),
+	octave_value::do_binary_op (compound_binary_op, ...)):
+	New declarations.
+	(OV_COMP_BINOP_FN): New macro (+ several expansions).
+	* ov.cc (octave_value::binary_op_fcn_name (compound_binary_op),
+	decompose_binary_op, do_binary_op (compound_binary_op, ...)):
+	New functions.
+	* ov-typeinfo.h (octave_value_typeinfo::register_binary_class_op
+	(octave_value::compound_binary_op, ...),
+	octave_value_typeinfo::register_binary_op
+	(octave_value::compound_binary_op, ...),
+	octave_value_typeinfo::do_register_binary_class_op
+	(octave_value::compound_binary_op, ...),
+	octave_value_typeinfo::do_register_binary_op
+	(octave_value::compound_binary_op, ...),
+	octave_value_typeinfo::do_lookup_binary_class_op
+	(octave_value::compound_binary_op),
+	octave_value_typeinfo::do_lookup_binary_op
+	(octave_value::compound_binary_op, ...)):
+	New declarations.
+	(octave_value_typeinfo::lookup_binary_class_op
+	(octave_value::compound_binary_op),
+	(octave_value_typeinfo::lookup_binary_op
+	(octave_value::compound_binary_op, ...)):
+	New functions.
+	(octave_value_typeinfo::compound_binary_class_ops,
+	octave_value_typeinfo::compound_binary_ops):
+	New fields.
+	* ov-typeinfo.cc (octave_value_typeinfo::register_binary_class_op
+	(octave_value::compound_binary_op, ...),
+	octave_value_typeinfo::register_binary_op
+	(octave_value::compound_binary_op, ...),
+	octave_value_typeinfo::do_register_binary_class_op
+	(octave_value::compound_binary_op, ...),
+	octave_value_typeinfo::do_register_binary_op
+	(octave_value::compound_binary_op, ...),
+	octave_value_typeinfo::do_lookup_binary_class_op
+	(octave_value::compound_binary_op),
+	octave_value_typeinfo::do_lookup_binary_op
+	(octave_value::compound_binary_op, ...)):
+	New functions.
+	(octave_value::do_register_type): Resize also compound_binary_ops
+	field.
+	* pt-exp.h (tree_expression::is_unary_expression): New virtual
+	function.
+	* pt-unop.h (tree_unary_expression::is_unary_expression): New virtual
+	override.
+	* pt-cbinop.h, pt-cbinop.cc: New files (implement
+	tree_compound_binary_expression class).
+	* pt-all.h: Include pt-cbinop.h.
+	* Makefile.in (PT_INCLUDES, PT_SRC): Include them in the lists.
+	* parse.y (make_binary_op): Call maybe_compound_binary_expression.
+	* OPERATORS/op-m-m.cc (trans_mul, mul_trans): New operator handlers.
+	(install_m_m_ops): Register them.
+	* OPERATORS/op-cm-cm.cc (trans_mul, mul_trans, herm_mul, mul_herm):
+	New operator handlers.
+	(install_cm_cm_ops): Register them.
+
+	* DLD-FUNCTIONS/matrix_type.cc: Fix tests relying on the
+	older more optimistic hermitian check.
+
+2008-05-21  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/rcond.cc (Frcond): Add support for single precision.
+
+	* DLD-FUNCTIONS/sqrt.m: Replace DBL_* with FLT_* for single
+	precision types.
+	* data.cc (static octave_value fill_matrix (const
+	octave_value_list&, double, float, const char *)): Add function
+	with additional argument to allow for different valid for double
+	and single precision.
+	(Finf, FNaN, FNA, Frealmax, Frealmin): Use it here.
+	(Feps): Modify behavior for a single numerical argument to give
+	difference to next largest value in the class of the type passed.
+
+2008-05-21  John W. Eaton  <jwe@octave.org>
+
+	* pt-idx.h (tree_index_expression::tree_index_expression (int, int)):
+	Delete default argument values.
+
+2008-05-20  David Bateman  <dbateman@free.fr>
+
+	* data.cc (Flog2): Handle single precision.
+	* ov-float.h, ov.float.cc, ov-flt-complex.h, ov-flt-complex.cc,
+	ov-flt-re-mat.h, ov-flt-re-mat.cc, ov-flt-cx-mat.h,
+	ov-flt-cx-mat.cc: Provide single precision version of log2 mapper
+	function.
+
+	* DLD-FUNCTIONS/__convn__.cc, DLD-FUNCTIONS/__pchip_deriv__.cc,
+	DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc,
+	DLD-FUNCTIONS/conv2.cc, DLD-FUNCTIONS/gammainc.cc,
+	DLD-FUNCTIONS/givens.cc, DLD-FUNCTIONS/kron.cc,
+	DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/syl.cc, data.cc:
+	Prefer demotion to single precision rather than promotion to double.
+
+	* ov-float.cc, ov-float.h, ov-flt-complex.cc, ov-flt-complex.h,
+	ov-flt-cx-mat.cc, ov-flt-cx-mat.h, ov-flt-re-mat.cc,
+	ov-flt-re-mat.h (numeric_conversion_function (void) const):
+	Remove method.
+
+	* ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h,
+	ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h
+	(numeric_conversion_function (void) const): Add method for
+	conversion to single precision.
+
+	* DLD-FUNCTIONS/conv2.cc (Fconv2): Don't access third arg if we
+	don't have one.
+
+	* DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/expm.cc,
+	DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/hess.cc,
+	DLD-FUNCTIONS/qr.cc: COnvert for use with single precision.
+
+	* OPERATORS/op-int.h, OPERATORS/op-int-conv.cc,
+	OPERATORS/op-int-concat.cc: Adapt for single precision.
+
+	* OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc,
+	OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc,
+	OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc,
+	OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc:
+	Add includes for single precision types.
+
+	* OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc,
+	OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcs-fs.cc,
+	OPERATORS/op-fm-fs.cc, OPERATORS/op-fs-fcm.cc,
+	OPERATORS/op-fs-fcs.cc, OPERATORS/op-fs-fm.cc,
+	OPERATORS/op-fs-fs.cc, OPERATORS/op-int.h, ov.cc, ov-scalar.cc,
+	ov-float.h, ov-flt-complex.cc, ov-float.cc, ov-flt-re-mat.cc,
+	ov-flt-cx-mat.cc: Replace octave_float with octave_scalar_float
+
+	* OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc,
+	OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc,
+	OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc,
+	OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc,
+	OPERATORS/op-fcm-fm.cc, OPERATORS/op-fcm-fs.cc,
+	OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc,
+	OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc,
+	OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc,
+	OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc,
+	OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc,
+	OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc,
+	OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc,
+	OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc,
+	OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc,
+	OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc,
+	OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc:
+	Add mixed single/double assign operators.
+
+	* ov.h (numeric_demotion_function): New method for double to
+	single demotion.
+	* ov-base.h (numeric_demotion_function): Declare virtual version.
+
+	* ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h,
+	ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h
+	(numeric_cdemote_function (void) const): Add method for
+	conversion to single precision renamed from the method
+	numeric_conversion_function
+
+	* ov.cc (do_binary_op): Use demotion function seperately than the
+	numeric conversion function so as to avoid isses like
+	a=zeros(2,2);a(1,:)=1:2.
+
+	* OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc,
+	OPERATORS/op-fcm-fm.cc, OPERATORS/op-fcm-fs.cc,
+	OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc,
+	OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc,
+	OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc,
+	OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc,
+	OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc,
+	OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc, ov-float.cc,
+	ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, ov-flt-cx-mat.cc,
+	ov-flt-cx-mat.h, ov-flt-re-mat.cc, ov-flt-re-mat.h: New files.
+	* Makefile.in (OV_INCLUDES, OV_SRC, OP_XSRC. FLOAT_OP_XSRC,
+	DOUBLE_OP_XSRC): Add them here.
+
+	* DLD-FUNCTIONS/__convn__.cc, DLD-FUNCTIONS/__lin_interpn__.cc,
+	DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/besselj.cc,
+	DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/bsxfun.cc,
+	DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/conv2.cc,
+	DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/fft.cc,
+	DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc,
+	DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc,
+	DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/givens.cc,
+	DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc,
+	DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lu.cc,
+	DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc,
+	DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/schur.cc,
+	DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc,
+	DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc,
+	DLD-FUNCTIONS/typecast.cc, OPERATORS/op-b-b.cc,
+	OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc,
+	OPERATORS/op-cm-cm.cc, OPERATORS/op-cs-cs.cc, OPERATORS/op-m-m.cc,
+	OPERATORS/op-range.cc, OPERATORS/op-s-s.cc, bitfcns.cc, data.cc,
+	oct-stream.cc, ov-base.cc, ov-base.h, ov-bool-mat.cc,
+	ov-bool-mat.h, ov-bool.h, ov-ch-mat.cc, ov-ch-mat.h,
+	ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, ov-intx.h,
+	ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.h,
+	ov.cc, ov.h, pr-output.cc, pr-output.h, pt-mat.cc, utils.cc,
+	utils.h, xdiv.cc, xdiv.h, xpow.cc, xpow.h:
+	Allow single precision types.
+
+2008-05-20  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/rcond.cc: New function.
+	* Makefile.in (DLD_XSRC): Add it here.
+
+	* debug.cc (Fdbstop): If no line specified assume line 1.
+	(Fdbstep, Fdbcont, Fdbnext): Move debugging functions
+	to normal commands.
+	(Fdbquit): New command to quit debugging mode and return to the
+	prompt.
+	(Fdbstep): Modify the dbstep command for compatibility.
+	* input.cc (Vdebugging_current_line): Store current line being
+	debugged for use in DEFCMD versions of debug commands.
+	(match_sans_spaces_semi): Delete.
+	(static void get_debug_input (const std;string&)): New function to
+	parse input in debug mode using standard Octave parser.
+	(static octave_value_list get_user_input (const
+	octave_value_list&, int)): Remove debugging specialization.
+	* input.h (Vdebugging_current_line): Store current line being
+	debugged for use in DEFCMD versions of debug commands.
+	* parse.y (make_return_command): Special handling in debug mode.
+	* pt-bp.h (MAYBE_DO_BREAKPOINT): Support break in n lines needed
+	to support "dbstep N".
+	* pt.cc (tree::break_next): Convert to a down counter to support
+	break in N lines. Breakpoint occure when tree::break_next is zero.
+	* toplev.cc (octave_user_script *
+	octave_call_stack::do_caller_user_script (difference_type) const):
+	Support skipping the first N functions to support "dbstep out".
+	(octave_user_function * octave_call_stack::do_caller_user_function
+	(difference_type) const): Ditto.
+	(octave_user_code * octave_call_stack::do_caller_user_code
+	(difference_type) const): Ditto.
+	* toplev.h (octave_user_script *
+	octave_call_stack::do_caller_user_script (difference_type) const):
+	Add difference_type argument.
+	(octave_user_function * octave_call_stack::do_caller_user_function
+	(difference_type) const): Ditto.
+	(octave_user_code * octave_call_stack::do_caller_user_code
+	(difference_type) const): Ditto.
+	(static octave_user_script *caller_script (difference_type)):
+	Ditto.
+	(static octave_user_function *caller_user_function
+	(difference_type q)): Ditto.
+	(static octave_user_code *caller_user_code (difference_type q)):
+	Ditto.
+
+2008-05-20  Kim Hansen  <kimhanse@gmail.com>
+
+	* load-path.cc (load_path::do_initialize):
+	Include separator when appending sys_path.
+
+2008-05-20  Bill Denney  <bill@denney.ws>
+
+	* file-io.cc (Ffgets, Fgets, Ffputs, Ffscanf): Doc fix (seealso).
+
+2008-05-20  Thomas Weber  <thomas.weber.mail@gmail.com>
+
+	* DLD-FUNCTIONS/rand.cc (Frandn): Doc fix.
+
+2008-05-20  David Bateman  <dbateman@free.fr>
+
+	* load-save.cc (do_load): Treat non verbose list_only output in
+	the same manner as Fwho.
+	* symtab.h (static void clear_variable_regexp (const
+	std::string&): New method.
+	(static std::list<symbol_record> regexp (const std::string&)): Ditto.
+	(static std::list<symbol_record> regexp_variables (const
+	std::string&)): Ditto.
+	(static std::list<symbol_record> regexp_global_variables (const
+	std::string&)): Ditto,
+	(static std::list<symbol_record> regexp_variables (const
+	string_vector&)): Ditto.
+	(void do_clear_variable_regexp (const std::string&)): Ditto.
+	(std::list<symbol_record> do_regexp (const std::string&, bool)
+	const): Ditto.
+	(do_who): Accept the "-regexp" option. Use regexp versions of
+	symbol table functions.
+	(static inline bool name_match_any_pattern (const string_vector&,
+	int, int, bool): Add regexp argument, and use regexp matching if
+	true.
+	(do_clear_variables): Add regexp option and pass to
+	name_match_any_pattern.
+	(Fclear): Accept the -regexp option.
+
+2008-05-07  John W. Eaton  <jwe@octave.org>
+
+	* pt-arg-list.cc, pt-arg-list.h (tree_argument_list::dup):
+	New arg, context.
+	* pt-assign.cc, pt-assign.h (tree_simple_assignment::dup,
+	tree_multi_assignment::dup): Likewise.
+	* pt-binop.cc, pt-binop.h (tree_binary_expression::dup,
+	tree_boolean_expression::dup): Likewise.
+	* pt-cell.cc, pt-cell.h (tree_cell::dup): Likewise.
+	* pt-cmd.cc, pt-cmd.h (tree_no_op_command::dup,
+	tree_function_def::dup): Likewise.
+	* pt-colon.cc, pt-colon.h (tree_colon_expression::dup): Likewise.
+	* pt-const.cc, pt-const.h (tree_constant::dup): Likewise.
+	* pt-decl.cc, pt-decl.h (tree_decl_elt::dup, tree_decl_init_list::dup,
+	tree_global_command::dup, tree_static_command::dup): Likewise.
+	* pt-except.cc, pt-except.h (tree_try_catch_command::dup,
+	tree_unwind_protect_command::dup): Likewise.
+	* pt-exp.h (tree_expression:dup): Likewise.
+	* pt-fcn-handle.cc, pt-exp.h (tree_expression:dup): Likewise.
+	* pt-fcn-handle.h (tree_fcn_handle::dup,
+	tree_anon_fcn_handle::dup): Likewise.
+	* pt-id.cc, pt-id.h (tree_identifier::dup): Likewise.
+	* pt-idx.cc, pt-idx.h (tree_index_expression::dup): Likewise.
+	* pt-jump.cc, pt-jump.h (tree_break_command::dup,
+	tree_continue_command::dup, tree_return_command::dup): Likewise.
+	* pt-loop.cc, pt-loop.h (tree_while_command::dup,
+	tree_do_until_command::dup, tree_simple_for_command::dup,
+	tree_complex_for_command::dup): Likewise.
+	* pt-mat.cc, pt-mat.h (tree_matrix::dup): Likewise.
+	* pt-misc.cc, pt-misc.h (tree_parameter_list::dup,
+	tree_return_list::dup): Likewise.
+	* pt-select.cc, pt-select.h (tree_if_clause::dup,
+	tree_if_command_list::dup, tree_if_command::dup,
+	tree_switch_case::dup, tree_switch_case_list::dup,
+	tree_switch_command::dup, tree_statement::dup,
+	tree_statement_list::dup, tree_prefix_expression::dup,
+	tree_postfix_expression::dup): Likewise.
+
+	* ov-fcn-handle.cc (octave_fcn_handle::save_ascii,
+	octave_fcn_handle::save_binary, octave_fcn_handle::save_hdf5):
+ 	Pass context to symbol_table::all_variables.
+	* load-save.cc (dump_octave_core): Likewise.
+	* ov-fcn-handle.cc (Ffunctions): Don't skip anonymous functions
+	with the name set to the text of the function body.
+ 	Pass context to symbol_table::all_variables and
+	symbol_table::symbol_record::varval.
+
+	* symtab.h (symbol_table::varref, symbol_table::do_varref,
+	symbol_table::varval, symbol_table::do_varval,
+	symbol_table::all_variables, symbol_table::do_all_variables,
+	symbol_table::symbol_record::varref,
+	symbol_table::symbol_record::varval,
+	symbol_table::symbol_record::is_defined,
+	symbol_table::symbol_record::is_variable,
+	symbol_table::symbol_record::symbol_record_rep::varref,
+	symbol_table::symbol_record::symbol_record_rep::varval,
+	symbol_table::symbol_record::symbol_record_rep::is_defined,
+	symbol_table::symbol_record::symbol_record_rep::is_variable,
+	):
+	* symtab.h (symbol_table::do_inherit): New arg, donor_context.
+	Look for value in donor_contxt.  Set value in base context.
+	* symtab.cc (symbol_table::symbol_record::symbol_record_rep::dump):
+	Pass xcurrent_context to varval.
+
+2008-05-06  David Bateman  <dbateman@free.fr>
+
+	* ov-fcn-inline.cc (Finline): Also ignore NaN, Inf, pi, NA and eps.
+
+	* bitfcns.cc (BITOP): Treat octave_bool types and octave_scalar.
+
+2008-05-06  John W. Eaton  <jwe@octave.org>
+
+	* symtab.h (symbol_table::scope_id_cache): New class.  Use it to
+	replace scope_ids_in_use and scope_ids_free_list.
+	(symbol_table::erase_scope): Call free_scope.
+	(symbol_table::free_scope): Call scope_id_cache::free.
+
+	* ov-fcn.h (octave_function::lock_subfunctions,
+	octave_function::unlock_subfunctions): New virtual functions.
+	(octave_function::lock_subfunctions): Call lock_subfunctions here.
+	(octave_function::unlock_subfunctions): Call unlock_subfunctions here.
+	* ov-usr-fcn.h (octave_user_function::lock_subfunctions,
+	octave_user_function::unlock_subfunctions): New functions.
+
+	* symtab.h (symbol_table::lock_subfunctions,
+	symbol_table::lock_subfunctions,
+	symbol_table::fcn_info::lock_subfunction,
+	symbol_table::fcn_info::unlock_subfunction,
+	symbol_table::fcn_info::fcn_info_rep::lock_subfunction,
+	symbol_table::fcn_info::fcn_info_rep::unlock_subfunction):
+	New functions.
+
+	* symtab.h (symbol_table::set_scope, symbol_table::get_instance):
+	Don't set instance unless allocation succeeds.
+	(symbol_table::print_scope, symbol_table::do_print_scope): Delete.
+	(symbol_table::free_scope): Avoid using invalid iterator.
+	(symbol_table::erase_scope): Call free_scope here.
+
+	* ov-fcn-handle.cc (octave_fcn_handle::load_ascii,
+	octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5):
+	Cache anonymous name here.
+	(octave_fcn_handle::octave_fcn_handle): Move here from
+	ov-fcn-handle.h.  Cache name if function is user-defined.
+
+	* pt-id.cc (tree_identifier::dup): Avoid shadow warning.
+
+	* symtab.h (symbol_table::cache_name, symbol_table::do_cache_name):
+	New functions.
+	(symbol_table::get_instance): Cache top-level name here.
+	* parse.y (finish_function): Call symbol_table::cache_name here.
+
+	* symtab.cc (F__dump_symtab_info__): New function.
+
+	* symtab.cc (symbol_table::dump, symbol_table::dump_global,
+	symbol_table::dump_functions, symbol_table::do_dump,
+	symbol_table::symbol_record::symbol_record_rep::dump,
+	symobl_table::fcn_info::fcn_info_rep::dump): New functions.
+	* symtab.h: Provide decls.
+	(symtab::scopes, symbol_table::symbol_record::dump,
+	symbol_table::fcn_info::dump): New functions.
+	(symtab::get_instance): New arg, create; if false throw error if
+	instance for given scope is not found.
+
+	* ov-base.cc (octave_base_value::dump): New virtual function.
+	* ov-base.h: Proivde decl.
+	* ov.h (octave_value::dump): New function.
+
+	* ov.h, ov.c (octave_value::function_value): New const version.
+	* ov-base.h, ov-base.cc (octave_base_value::function_value): Likewise.
+	* ov-builtin.h (octave_builtin::function_value): Likewise.
+	* ov-fcn-handle.h (octave_fcn_handle::function_value): Likewise.
+	* ov-mex-fcn.h (octave_mex_function::function_value): Likewise.
+	* ov-usr-fcn.h (octave_user_script::function_value,
+	octave_user_function): Likewise.
+
+	* symtab.h, symtab.cc: Use consistent naming scheme for iterator
+	typedefs.  Change all uses.
+
+	* variables.cc (F__print_symtab_info__, F__print_symbol_info__):
+	Delete.
+
+	* ov-cell.cc (Fstruct2cell): Handle structure arrays properly.
+
+2008-05-05  David Bateman  <dbateman@free.fr>
+
+	* sysdep.cc (Fputenv): Allow single arg. Alias to setenv.
+
+2008-05-05  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (Fre_read_readline_init_file): New function.
+
+2008-05-04  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn-handle.cc (Ffunctions): Pass octave_value object instead
+	of Cell in structure field assignment.
+
+	* parse.y (frob_function): Don't install subfunctions here.
+	(finish_function): Handle subfunctions here.
+	Conditionally define tree_function_def object here.
+
+	* symtab.h (symbol_table::fcn_info::fcn_info_rep::find_function):
+	Initialize args_evaluated.
+	* pt-id.cc (tree_identifier::rvalue): Likewise.
+	* variables.cc (symbol_exist): Likewise.
+
+	* pt-id.h (tree_identifier::tree_identifer): Delete useless statement.
+
+	* variables.cc (get_global_value): Use symbol_table::global_varval
+	instead of passing scope to symbol_table::varval.
+	(set_global_value): Use symbol_table::global_varref
+	instead of passing scope to symbol_table::varref.
+	(do_who): Use symbol_table::glob_global_variables
+	instead of passing scope to symbol_table::glob_variables.
+	(do_clear_globals):
+	Use symbol_table::global_variable_names and
+	symbol_table::clear_global instead of passing scope to
+	symbol_table::clear_variables.
+	Use symbol_table::global_variable_names instead of passing scope
+	to symbol_table::variable_names.
+
+	* unwind-prot.cc (unwind_protect::save_size_t): New function.
+	(saved_variable::restore_value): Handle size_t values.
+	(saved_variable::saved_variable): New size_t constructor.
+	(saved_variable::size_type): New var_type enum value.
+	(saved_variable::ptr_to_size_t, saved_variable::size_t_value):
+	New union elements.
+	* unwind-prot.h (unwind_protect::save_size_t): Provide decl
+	(unwind_protect_size_t): New macro.
+
+	* toplev.cc (octave_call_stack::do_goto_frame,
+	octave_call_stack::do_goto_frame_relative): New functions.
+	(octave_call_stack::do_backtrace): Also return scope and context ids.
+	* toplev.h 	(octave_call_stack::do_goto_frame,
+	octave_call_stack::do_goto_frame_relative): Provide decls.
+	(octave_call_stack::curr_frame): New data member.
+	(octave_call_stack::octave_call_stack): Initialize it.
+	(octave_call_stack::call_stack_elt::scope,
+	(octave_call_stack::call_stack_elt::context): New data members.,
+	(octave_call_stack::current_frame,
+	(octave_call_stack::do_current_frame
+	octave_call_stack::do_goto_frame,
+	octave_call_stack::do_goto_frame_relative): New functions.
+	(octave_call_stack::push, octave_call_stack::do_push):
+	New args, scope and context.
+	(octave_call_stack::do_push, octave_call_stack::do_pop): Update
+	curr_frame if debugging.
+
+	* symtab.cc (symbol_table::global_table): New map for global values.
+	(symbol_table::xcurrent_context): New variable for context info.
+	* symtab.h: Provide decls.
+	(symbol_table::global_varref, symbol_table::global_varval,
+	symbol_table::current_context,
+	symbol_table::set_scope_and_context,
+	symbol_table::glob_global_variables,
+	symbol_table::global_variable_names,
+	symbol_table::top_leve_variable_names):
+	New functions.
+	(symbol_table::context_id, const_global_table_iterator,
+	global_table_iterator): New typedefs.
+	(symbol_table::xcurrent_context_this_table): New variable.
+	(symbol_table::symbol_table): Initialize it.
+	(symbol_table::set_scope): Use it.
+	(symbol_table::symbol_record::find, symbol_table::do_find):
+	Use symbol_table::global_varref instead of passing scope to
+	symbol_table::varref.
+	(symbol_table::symbol_record::symbol_record_rep::value_stack):
+	Now a std::deque instead of a std::stack.
+	(symbol_table::symbol_record::symbol_record_rep::push_context,
+	symbol_table::symbol_record::symbol_record_rep::pop_context):
+	Don't push or pop persistent of global variables.
+	(symbol_table::symbol_record::symbol_record_rep::varval,
+	Handle context here.  Call symbol_table::global_varval instead of
+	passing scope to symbol_table::varval.
+	(symbol_table::symbol_record::symbol_record_rep::varref):
+	Handle context here.  Call symbol_table::global_varref instead of
+	passing scope to symbol_table::varref.
+	(symbol_table::symbol_record::varref,
+	symbol_table::symbol_record::varval): No need to handle global
+	values specially here.
+	(symbol_table::symbol_record::push_context
+	symbol_table::symbol_record::pop_context: No need to handle global
+	or persistent values specially here.
+	(symbol_table::get_instance): Don't return global scope.
+	(symbol_table::do_push_context, symbol_table::do_pop_context):
+	Increment/decrement xcurrent_context.
+	(symbol_table::do_clear_global, symbol_table::do_clear_global_pattern):
+	Use global_table instead of separate scope.
+
+	* symtab.h, symtab.cc (symbol_table::fcn_info::fcn_info_rep::find,
+	symbol_table::fcn_info::fcn_info_rep::find_function,
+	symbol_table::fcn_info::find, symbol_table::fcn_info::find_function,
+	symbol_table::find, symbol_table::find_function,
+	symbol_table::do_find, symbol_table::insert, symbol_table::varref,
+	symbol_table::varval, symbol_table::persistent_varref,
+	symbol_table::persistent_varval, symbol_table::erase_persistent,
+	symbol_table::is_variable, symbol_table::clear,
+	symbol_table::clear_variables, symbol_table::clear_global,
+	symbol_table::clear_variable, symbol_table::clear_global_pattern,
+	symbol_table::clear_variable_pattern, symbol_table::push_context,
+	symbol_table::pop_context, symbol_table::mark_hidden,
+	symbol_table::mark_global, symbol_table::glob,
+	symbol_table::glob_variables, symbol_table::variable_names,
+	symbol_table::is_local_variable, symbol_table::is_global):
+	Eliminate scope arg.  Change all uses.
+	(symbol_table::erase_scope, symbol_table::dup_scope):
+	Require scope arg.
+
+	* pt-stmt.cc (tree_statement::eval): Don't update statement info
+	in octave_call_stack if debugging.
+
+	* pt-id.h (tree_identifier::xsym): New function.
+	(tree_identifier::rvalue, tree_identifier::lvalue,
+	tree_identifier::dup, tree_identifier::is_defined,
+	tree_identifier::is_variable, tree_identifier::mark_global,
+	tree_identifier::mark_as_static, tree_identifier::do_lookup,
+	tree_identifier::mark_as_formal_parameter):
+	Use xsym to access symbol.
+	(tree_identifier::scope): New data member.
+	(tree_identifier::tree_identifier): Initialize it.
+
+	* ov-usr-fcn.cc (octave_user_script::octave_user_script,
+	octave_user_function::octave_user_function):
+	Initialize call_depth to -1.
+	(octave_user_script::do_multi_index_op): Fix comparison of
+	call_depth with Vmax_recursion_depth.
+	(octave_user_function::do_multi_index_op):
+	Compare call depth > 0, instead of > 1.
+	* ov-usr-fcn.h (octave_user_function::save_args_passed):
+	Compare call depth > 0, instead of > 1.
+
+	* input.cc (Vdebugging): New variable.
+	(get_user_input): Eliminate DEBUG argument.  Use global Vdebugging
+	variable instead.  Change all callers.
+	(saved_frame): New static variable.
+	(restore_frame): New function.
+	(do_keyboard): Unwind-protect Vdebugging here and set it to TRUE.
+	Save current frame.  Use unwind_protect to restore it.
+	(Fkeyboard): Save current frame.  Use unwind_protect to restore it.
+	Move up the call stack one frame before calling do_keyboard.
+	* input.h (Vdebugging): Provide decl.
+
+	* mex.cc (mexGetVariable): Handle global vars with get_global_value.
+	(mexPutVariable): Likewise, with set_global_value.
+
+	* octave.cc (intern_argv): Assert that we are at the top level.
+	Don't pass scope to symbol_table::varref or symbol_table::mark_hidden.
+
+	* load-save.cc (install_loaded_variable): Use
+	symbol_table::global_varref instead of passing global scope to
+	symbol_table::varref.
+
+	* help.cc (make_name_list): Call symbol_table::global_variable_names
+	and symbol_table::top_level_variable_names instead of passing
+	scope to symbol_table::variable_names.
+
+	* debug.cc (do_dbupdown, Fdbup, Fdbdown): New functions.
+	(current_stack_frame): Delete static variable.
+	(Fdbstack): Rename from F__dbstack__.  Implement all of dbstack
+	here instead of partially in dbstack.m.
+
+2008-05-03  John W. Eaton  <jwe@octave.org>
+
+	* pt-arg-list.cc (F__end__): If there are more dimensions than
+	indices, smash extra dimensions first.
+	(num_indices): New static variable.
+	(tree_argument_list::convert_to_const_vector): Save and set it.
+
+	* parse.y (parse_fcn_file): Also temporarily set parser_end_of_input
+	and get_input_from_eval_string to false while reading script files.
+
+2008-05-01  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (load_fcn_from_file): Expect
+	* dynamic-ld.cc (octave_dynamic_loader::do_load_oct):
+	Search currently loaded .oct files by file name.  Don't search
+	currently loaded files for functions.
+	(octave_shlib_list::find_file, octave_shlib_list::do_find_file):
+	New functions.
+	(octave_shlib_list::search, octave_shlib_list::do_search): Delete.
+
+	* dynamic-ld.cc (octave_dynamic_loader::do_load_oct): No need to
+	do load_path lookups here.
+	(octave_shlib_list::iterator, octave_shlib_list::const_iterator):
+	New typedefs.
+	(octave_shlib_list::do_remove, octave_shlib_list::do_search,
+	octave_shlib_list::do_display): Use them.
+	(octave_mex_file_list::iterator, octave_mex_file_list::const_iterator):
+	New typedefs.
+	(octave_mex_file_list::do_remove): Use them.
+
+2008-05-03  Rafael Laboissiere  <rafael@debian.org>
+
+	* DLD-FUNCTIONS/time.cc, file_io.cc: Use ischar instead of
+	deprecated isstr.
+
+2008-04-30  John W. Eaton  <jwe@octave.org>
+
+	* dynamic-ld.cc (octave_dynamic_loader::do_load_oct):
+	If function already exists, reload it anyway.  Clear existing
+	oct_file only if reloading a function from the same file.
+	(octave_shlib_list::display): New static function.
+	(octave_shlib_list::do_display): New function.
+
+	* symtab.cc (out_of_date_check_internal): Better handling for
+	functions found in files by relative file names.
+	(load_out_of_date_fcn): New function.
+
+	* ls-oct-ascii.cc (extract_keyword): Return early if first char is
+	not a comment character.
+	(read_ascii_data): Accept .nargin. and .nargout. as valid identifiers.
+
+	* ov-fcn-handle.cc: Combine tests.  Test saving and loading
+	handles for built-in, .oct, and .m functions.
+	(octave_fcn_handle::save_ascii, octave_fcn_handle::save_binary,
+	octave_fcn_handle::save_hdf5, octave_fcn_handle::print):
+	Avoid dereferencing invalid pointer.
+
+	* data.cc: Fix tests.  Use "%!assert", not "%! assert" for
+	individual assert tests.
+
+2008-04-30  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h,
+	ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h,
+	ov-cx-sparse.cc, ov-cx-sparse.h, ov-intx.h, ov-range.h,
+	ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h,
+	ov-scalar.cc, ov-scalar.h, ov.h:
+ 	Provide log2 mapper function.
+	* data.cc (Flog2): New function.
+
+2008-04-25  John W. Eaton  <jwe@octave.org>
+
+	* pt-stmt.h (tree_statement_list::function_body): New data member.
+	(tree_statement_list::tree_statement_list): Initialize it.
+	(tree_statement_list::mark_as_script_body): New function.
+	(tree_statement::maybe_echo_code, tree_statement::eval):
+	Rename in_function_body argument to in_function_or_script_body.
+	* pt-stmt.cc (tree_statement::eval): Only set statement in call
+	stack if in_function_or_script_body is true.
+
+	* pt-stmt.cc (tree_statement_list::eval): Call elt->eval with
+	function_body || script_body.
+	* ov-usr-fcn.cc (octave_user_script::octave_user_script):
+	command list as script body here.
+	(octave_user_function::octave_user_function):
+	Mark command list as function body here.
+	* parse.y (start_function, make_anon_fcn_handle): Not here.
+
+	* toplev.h, toplev.cc (octave_call_stack::backtrace,
+	octave_call_stack::do_backtrace): New arg, N.  Skip innermost N
+	stack frames.
+
+	* debug.cc (F__dbstack__): New function.
+	(current_stack_frame): New static variable.
+
+	* error.cc (verror, pr_where): Use octave_call_stack instead of
+	tree_statement stack to get line and column information.
+	(pr_where): Use octave_call_stack instead of tree_statement stack
+	to get current statement.
+	* input.cc (get_user_input): Extract current line number from
+	octave_call_stack instead of tree_statement_stack.
+	* pt-stmt.cc (tree_statement::eval): Put current statement on
+	octave_call_stack instead of tree_statement_stack.
+	* pt-stmt.h, pt-stmt.cc (class tree_statement_stack): Delete.
+
+	* toplev.h, toplev.cc (octave_call_stack::call_stack_elt):
+	New nested struct.
+	(octave_call_stack::cs): Now a deque of call_stack_elts.
+	Change all uses.
+	(octave_call_stack::current_statement,
+	octave_call_stack::current_line,
+	octave_call_stack::current_column,
+	octave_call_stack::top_statement,
+	octave_call_stack::set_statement, octave_call_stack::backtrace):
+	New static functions.
+	(octave_call_stack::do_current_line,
+	octave_call_stack::do_current_column,
+	octave_call_stack::do_top_statement,
+	octave_call_stack::do_set_statement,
+	octave_call_stack::do_backtrace): New member functions.
+
+2008-04-24  John W. Eaton  <jwe@octave.org>
+
+	* toplev.h, toplev.cc (octave_call_stack::unwind_pop_script):
+	Delete unused function.
+
+	* ov-usr-fcn.cc: Move constructor definitions here, from ov-usr-fcn.h.
+	* ov-usr-fcn.h (octave_user_script::octave_user_script):
+	Also Initialize t_parsed and t_checked.
+
+2008-04-24  Jaroslav Hajek  <highegg@gmail.com>
+
+	* ov-usr-fcn.h (octave_user_script::octave_user_script):
+	Initialize call_depth.
+
+2008-04-24  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (do_stream_open): Return -1 for directories.
+
+2008-04-23  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__qp__.cc (qp): Avoid bounds error when removing
+	constraint from active set.
+
+	* lex.l (text_yyinput): New function.  Use it in place of yyinput.
+	(next_token_is_sep_op, scan_for_comments, eat_whitespace,
+	have_continuation): No need to check for CR or CRLF.
+	* parse.y (text_getc): Also return NL for single CR.
+
+2008-04-32  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* input.cc (get_input_from_file): Open file in binary mode.
+
+2008-04-20  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_stream::read): Allow single data type
+	specification but return double.
+
+2008-04-18  John W. Eaton  <jwe@octave.org>
+
+	* lex.l, lex.h (process_comment): New arg, start_in_block.  Call
+	grab_block_comment if start_in_block is true.  Change all uses.
+	* lex.l (grab_block_comment): New function.
+	(grab_comment_block): New arg, at_bol.  Change all uses.
+	Call grab_block_comment if we find the start of a block comment.
+	(block_comment_nesting_level): New static variable.
+	(^{S}*{CCHAR}\{{S}*{NL}): New rule.
+	(<<EOF>>): Warn about open block comments.
+	(reset_parser): Set block_comment_nesting_level to zero.
+	* parse.y (parse_fcn_file): Stash help text from
+	gobble_leading_white_space after calling reset_parser.
+	(text_getc): Keep track of input_line_number here.
+	(skip_white_sapce): Don't increment input_line_number here.
+	* lex.l (grab_comment_block): Or here.
+
+	* lex.l (Vdisplay_tokens): New static variable.
+	(F__display_tokens__): New function.
+	(display_token): New function.
+	(DISPLAY_TOK_AND_RETURN): New macro.
+	(COUNT_TOK_AND_RETURN): Use DISPLAY_TOK_AND_RETURN.
+	(<COMMAND_START>[\"\'], "'", \"): Move handle_string outside of
+	COUNT_TOK_AND_RETURN macro parameter list.
+	(handle_identifier): Don't use macros to return token values here.
+	(<MATRIX_START>{S}*{COMMENT}{SNLCMT}*|<MATRIX_START>{S}*{NL}{SNLCMT}*):
+	Recognize block comments here.
+
+	* pr-output.cc (Fdisp): If nargout > 0, produce an sq-string
+	unless arg is a dq-string.
+
+2008-04-17  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (looks_like_copyright): Handle leading whitespace.
+	(class stdio_stream_reader): New class.
+	(skip_white_space): New function.
+	(gobble_leading_white_space): New arg, EOF.  Change all uses.
+	Use skip_white_space and grab_comment_block to process comments.
+	(process_leading_comments): Delete.
+	(parse_fcn_file): Call gobble_leading_white_space instead of
+	process_leading_comments.
+	Skip parsing if gobble_leading_white_space detects EOF.
+	* lex.l (process_comment): Delete CCHAR arg.  Change all uses.
+	({CCHAR}): Unput comment character before calling process_comment.
+	(grab_comment_block): Rename from grab_help_text.  Don't discard
+	spaces from comment text.  Update input_line_number and
+	current_input_column as characters are read.  Warn only once about
+	incompatible comment characters in a given block of comments.
+	Use stream_reader class instead of accessing yyinput and yyunput
+	directly.
+	(class flex_stream_reader): New class.
+	(process_comment): Use grab_comment_block to handle all comments.
+	Don't call maybe_gripe_matlab_incompatible_comment.
+	Always store comment text returned by grab_comment_block.
+	* lex.h (grab_comment_block): Provide decl.
+	(class stream_reader): New class.
+
+2008-04-16  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (Fautoload, Fmfilename): Call
+	octave_call_stack::caller_user_code, not
+	octave_call_stack::caller_user_script_or_function.
+	* toplev.cc, toplev.h (octave_call_stack::caller_user_code):
+	Rename from octave_call_stack::caller_user_script_or_function.
+	(octave_call_stack::do_caller_user_code): Rename from
+	octave_call_stack::do_caller_user_script_or_function.
+	* ov-usr-fcn.h (class octave_user_code): New class, derived from
+	octave_fucntion.
+	(class octave_user_function, class octave_user_script): Derive
+	from octave_user_code, not octave_function.
+	(octave_user_script::user_code_value,
+	octave_user_function::user_code_value): New functions.
+	* ov.cc (octave_value::user_script_value,
+	octave_value::user_code_value): New functions.
+	* ov.h: Provide decls.
+	(octave_value::is_user_code, octave_value::is_user_script):
+	New functions.
+	* ov-base.cc (octave_base_value::user_script_value,
+	octave_base_value::user_code_value): New virutal functions.
+	* ov-base.h: Provide decls.
+	(octave_base_value::is_user_script, octave_base_value::is_user_code):
+	New virtual functions.
+	* error.cc (verror, pr_where, error_2, warning_1):
+	Call octave_call_stack::caller_user_code instead of
+	octave_call_stack::caller_user_script_or_function
+	* input.cc (get_user_input): Likewise.
+	* debug.h (bp_table::breakpoint_map): Use pointer to
+	octave_user_code instead of octave_user_function.
+	* debug.cc (get_user_code): Rename from get_user_function.
+	Return pointer to octave_user_code instead of octave_user_function.
+	Change all uses.
+	(bp_table::do_add_breakpoint, bp_table::do_remove_breakpoint,
+	bp_table::do_remove_all_breakpoints_in_file,
+	bp_table::do_get_breakpoint_list):
+	Avoid dereferencing invalid pointers.
+	(parse_dbfunction_params): Call
+	octave_call_stack::caller_user_code, not
+	octave_call_stack::caller_user_script_or_function.
+
+	* load-save.cc (Fsave): Fix continuation character in doc string.
+
+	* pt-walk.h (tree_walker::visit_function_def): New function.
+	* pt-pr-code.cc (tree_print_code::visit_function_def): New function.
+	* pt-pr-code.h: Provide decl.
+	* pt-bp.cc (tree_breakpoint::visit_function_def): New function.
+	* pt-bp.h: Provide decl.
+	* pt-check.cc (tree_checker::visit_function_def): New function.
+	* pt-check.h: Provide decl.
+
+	* parse.y (finish_function): Return ptr to tree_function_def object
+	if curr_fcn_ptr is not defined.  Avoid dereferencing invalid pointers.
+	(frob_function): Set curr_fcn_ptr only when reading a function file.
+	(function): Call finish function in both cases to generate value
+	of production.
+
+	* pt-cmd.h, pt-cmd.cc (tree_function_def): New class.
+
+	* parse.y (parse_and_execute): Delete.
+	* parse.h: Delete decl.
+
+	* pt-pb.cc (tree_breakpoint::visit_octave_user_script): New function.
+	* pt-pb.h: Provide decl.
+	* pt-check.cc (tree_checker::visit_octave_user_script): New function.
+	* pt-check.h: Provide decl.
+	* pt-pr-code.cc (tree_print_code::visit_octave_user_script):
+	New function.
+	* pt-pr-code.h: Provide decl.
+	* pt-walk.h (visit_octave_user_script): New pure virtual function.
+
+	* parse.y (make_script, process_leading_comments,
+	looking_at_function_keyword): New static functions.
+	(SCRIPT): New token.
+	(script): New non-terminal.
+	(command): Handle script here.
+	(parse_fcn_file): Eliminate EXEC_SCRIPT argument.  Change all
+	callers.  Parse scripts and return an octave_user_script rather
+	than executing them here.
+	(load_fcn_from_file): Handle script and function files the same.
+	(source_file): Call d_multi_index_op on object returned by
+	parse_fcn_file.
+	(is_function_file): Delete.
+	(gobble_leading_white_space): Don't recurse.  Simplify.  Eliminate
+	SKIP_CODE, IN_PARTS, and SAVE_COPYRIGHT arguments.  Change all
+	callers.
+	(octave_function_ptr): Delete unused typedef.
+	(get_help_from_file): If help text isn't found by
+	gobble_leading_whitespace, parse file to find it.
+
+	* lex.l (SCRIPT_FILE_BEGIN): New exclusive start state.
+	(prep_lexer_for_script): New function.
+	(grab_help_text): New arg, EOF.
+	(process_comment): New function.
+	({CCHAR}): Use it.
+	* lex.h (prep_lexer_for_script): Provide decl.
+
+	* lex.h, lex.cc, parse.y (lexical_feedback::beginning_of_function):
+	Delete data member and all uses.
+
+	* ov-usr-fcn.cc (octave_user_script::~octave_user_script):
+	Move destructor here from ov-usr-fcn.h.  Delete cmd_list.
+	(octave_user_script::subsref, octave_user_script::accept,
+	octave_user_script::traceback_error): New functions.
+	(octave_user_script::do_multi_index_op):
+	Execute cmd_list instead of calling source_file.
+	* ov-usr-fcn.h (octave_usr_script::cmd_list,
+	octave_usr_script::t_parsed, octave_usr_script::t_checked,
+	octave_usr_script::call_depth): New data members.
+	(octave_usr_script::octave_usr_script): Initialize all data members.
+	(octave_usr_script::octave_usr_script (const std::string&, const
+	std::string&, tree_statement_list *, const std::string&)):
+	New constructor.
+	(octave_usr_script::function_value,
+	octave_usr_script::user_script_value, mark_fcn_file_up_to_date,
+	octave_usr_script::stash_fcn_file_time,
+	octave_usr_script::time_parsed, octave_usr_script::time_checked,
+	octave_usr_script::subsref, octave_usr_script::body): New functions.
+	(octave_user_script::subsref, octave_user_script::accept,
+	octave_user_script::traceback_error): Provide decls.
+
+2008-04-14  Jaroslav Hajek  <highegg@gmail.com>
+
+	* oct-stream.cc (octave_scan_1): Ensure digit following X is hex
+	digit before reading number as hex.
+
+2008-04-14  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (Ffread): Allow SKIP arg to be omitted.
+	(Ffwrite): Likewise.  Handle args in a way consistent with Ffread.
+
+2008-04-09  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* DLD-FUNCTIONS/dispatch.cc: Replace system("echo '...'>...") calls
+	with real file writing.
+
+2008-04-07  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/qr.cc (Fqrshift): New function.
+	* DLD-FUNCTIONS/chol.cc (Fcholinsert, Fcholdelete, Fcholshift):
+	New functions.
+
+2008-04-04  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (make_constant): Handle escape sequences in dq-strings.
+
+2008-04-03  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (make_constant): Also stash original text for strings.
+
+	* ov-fcn-handle.cc (octave_fcn_handle::subsref):
+	Don't call next_subsref here.
+
+2008-04-01  John W. Eaton  <jwe@octave.org>
+
+	* pt-id.h (do_lookup (bool&, bool)): Delete.
+	(do_lookup (tree_argument_list *, const string_vector&,
+	octave_value_list&, bool&)): Call MAYBE_DO_BREAKPOINT here.
+
+2008-04-02  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (void gnuplot_backend::close_figure (const
+	octave_value&) const): Allow for an input and output stream.
+
+2008-03-28  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/lookup.cc: New file.
+	* Makefile.in (DLD_XSRC): Add it to the list.
+
+2008-03-28  David Bateman  <dbateman@free.fr>
+
+	* ov-complex.cc (SCALAR_MAPPER, CD_SCALAR_MAPPER): New macro for
+	complex values with zero imaginary part.
+	(erf, erfc, gamma, lgamma): Use the new mappers to define these
+	mapper functions.
+	* ov-complex.h (erf, erfc, gamma, lgamma): Declare them.
+	* ov-cx-mat.cc (any_element_less_than, any_element_greater_than):
+	New static functions
+	(DARRAY_MAPPER, CD_ARRAY_MAPPER): New macro for complex values
+	with zero imaginary part.
+	(erf, erfc, gamma, lgamma): Use the new mappers to define these
+	mapper functions.
+	* ov-cx-mat.h (erf, erfc, gamma, lgamma): Declare them.
+	* ov-cx-sparse.cc (any_element_less_than, any_element_greater_than):
+	New static functions
+	(DSPARSE_MAPPER, CD_SPARSE_MAPPER): New macro for complex values
+	with zero imaginary part.
+	(erf, erfc, gamma, lgamma): Use the new mappers to define these
+	mapper functions.
+	* ov-cx-sparse.h (erf, erfc, gamma, lgamma): Declare them.
+	* ov-re-sparse.cc (CD_SPARSE_MAPPER): Use correct mapper functors.
+	* mapper.cc: Add tests for the above cases.
+
+2008-03-27  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/max.cc: Rename from minmax.cc.
+	* Makefile.in (DLD_XSRC): Rename minmax.cc to max.cc.
+
+	* DLD-FUNCTIONS/__convn__.cc (convn): Use traits class and
+	typedefs to allow all types to be deduced from argument types.
+
+2008-03-27  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* DLD-FUNCTIONS/__convn__.cc (Fconvn): Allow convolving real data with
+	complex data.
+
+2008-03-26  John W. Eaton  <jwe@octave.org>
+
+	* ov-range.h (octave_range::subsref (const std::string&,
+	const std::list<octave_value_list>&, int)):
+	Forward to simple subsref.
+	* ov-base-sparse.h (octave_base_sparse<T>::subsref (const std::string&,
+	const std::list<octave_value_list>&, int)): Likewise.
+	* ov-base-scalar.h (octave_base_sparse<T>::subsref (const std::string&,
+	const std::list<octave_value_list>&, int)): Likewise.
+	* ov-base-matrix.h (octave_base_matrix<T>::subsref (const std::string&,
+	const std::list<octave_value_list>&, int)): Likewise.
+
+	* ov-struct.cc, ov-cell.h (octave_cell::subsref (const
+	std::string&, const std::list<octave_value_list>&, int)):
+	Define nargout version of subsref instead of simple version.
+	* ov-struct.cc, ov-struct.h (octave_struct::subsref (const
+	std::string&, const std::list<octave_value_list>&, int)):
+	Define nargout version of subsref instead of simple version.
+
+	* ov-builtin.h (octave_builtin::subsref (const std::string&,
+	const std::list<octave_value_list>&): Forward to nargout subsref.
+	* ov-cell.h (octave_cell::subsref (const std::string&,
+	const std::list<octave_value_list>&)):
+	* ov-class.h (octave_class::subsref (const std::string&,
+	const std::list<octave_value_list>&): Likewise.
+	* ov-fcn-handle.h (octave_fcn_handle::subsref (const std::string&,
+	const std::list<octave_value_list>&): Likewise.
+	* ov-list.h (octave_list::subsref (const std::string&,
+	const std::list<octave_value_list>&): Likewise.
+	* ov-mex-fcn.h (octave_mex_function::subsref (const std::string&,
+	const std::list<octave_value_list>&): Likewise.
+	* ov-struct.h (octave_struct::subsref (const std::string&,
+	const std::list<octave_value_list>&)):
+	* ov-usr-fcn.h (octave_user_function::subsref (const std::string&,
+	const std::list<octave_value_list>&): Likewise.
+
+	* ov.cc (octave_value::subsref): Use value of nargout instead of
+	is_constant method to decide which type of subsref method to call.
+	(octave_value::assign): Always call simple subref method here.
+
+	* DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/det.cc,
+	DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/inv.cc,
+	DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/symrcm.cc, file-io.cc):
+	Texinfo fixes.
+
+2008-03-26  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* DLD-FUNCTIONS/__convn__.cc (Fconvn):
+	Call complex_array_value to extract N-d array.
+
+2008-03-26  John W. Eaton  <jwe@octave.org>
+
+	* ov-base-sparse.cc (octave_base_sparse<T>::print_raw):
+	Also display percentage of elements that are nonzero.
+
+2008-03-25  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* DLD-FUNCTIONS/__convn__.cc: New file.
+	* Makefile.in: Add __convn__.cc
+
+2008-03-25  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/hex2num.cc: New function
+	* Makefile.in (DLD_XSRC): Add hex2num.cc.
+
+2008-03-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* mappers.cc (Fexpm1, Flog1p): New functions.
+	* ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h,
+	ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h,
+	ov-cx-sparse.cc, ov-cx-sparse.h, ov-range.h, ov-re-mat.cc,
+	ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, ov-scalar.cc,
+	ov-scalar.h, ov.h:
+	Provide expm1 and log1p functions.
+
+	* mappers.cc (Froundb): New functions
+	* ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h,
+	ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h,
+	ov-cx-sparse.cc, ov-cx-sparse.h, ov-intx.h, ov-range.h,
+	ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h,
+	ov-scalar.cc, ov-scalar.h, ov.h:
+ 	Provide roundb mapper function.
+
+2008-03-25  Jaroslav Hajek  <highegg@gmail.com>
+
+	* load-save.cc (save_vars): Handle -struct modifier.
+	(save_fields): New function.
+	(Fsave): Document new feature.
+
+2008-03-25  John W. Eaton  <jwe@octave.org>
+
+	* lex.h (lexical_feedback::looking_at_initializer_expression):
+	New data member.
+	* lex.l (lexical_feedback::init): Initialize it.
+	(handle_identifier): Don't unconditionally force identifiers to be
+	variables in the current scope.  Don't call force_local_variable
+	for symbols that appear in parameter initializer expressions.
+	* parse.y (decl_param_init): New parser "subroutine".
+	(decl2): Use it.  Set lexer_flags.looking_at_initializer_expression
+	to false after parsing initializer.
+
+2008-03-24  David Bateman  <dbateman@free.fr>
+
+	* data.cc (map_s_s): Fix for sparse/sparse mappers that resulted
+	in an empty sparse matrix being returned.
+	(Fhypot): New function based on the libm hypot function.
+
+2008-03-24  Primozz Peterlin  <primozz.peterlin@gmail.com>
+
+	* variables.cc (Fexist): Doc fix.
+
+2008-03-23  David Bateman  <dbateman@free.fr>
+
+	* OPERATORS/op-int.h: Add el_div and el_ldiv operators to the
+	binops that were missing them. Added elem_pow functions for mixed
+	integer floating point cases. Initialize the mixed integer
+	floating point cases.
+
+2008-03-21  John W. Eaton  <jwe@octave.org>
+
+	* ov-cell.h (octave_cell::is_constant): Return true.
+	* ov-cell.h, ov-cell.cc (octave_cell::subsref (const std::string&,
+	const std::list<octave_value_list>&)): Define.
+	(octave_cell::subsref (const std::string&,
+	const std::list<octave_value_list>&, int)): Call panic_impossible.
+
+	* ov-struct.h (octave_struct::is_constant): New function.
+	* ov-struct.h, ov-struct.cc (octave_struct::subsref (const std::string&,
+	const std::list<octave_value_list>&)): Define.
+	(octave_struct::subsref (const std::string&,
+	const std::list<octave_value_list>&, int)): Call panic_impossible.
+
+2008-03-21  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/amd.cc: New file.
+	* Makefile.in (DLD_XSRC): Add amd.cc.
+
+2008-03-20  David Bateman  <dbateman@free.fr>
+
+	* Cell.cc (Cell Cell::diag (void) const): delete.
+	(Cell Cell::diag (octave__idx_type) const):Rewrite in terms of
+	template classes function.
+	* Cell.h (Cell diag (void) const): delete.
+
+	* ov.h (octave_value diag (octave_idx_type) const): New method.
+	* ov-base.h (virtual octave_value diag (octave_idx_type) const):
+	New virtual method.
+	* ov-base.cc (octave_value octave_base_value::diag
+	(octave_idx_type) const): New default method.
+
+	* ov-base-mat.h (octave_value diag (octave_idx_type) const): New
+	method.
+	* ov-base-sparse.h (octave_value diag (octave_idx_type) const): New
+	method.
+	* ov-base-scalar.h (octave_value diag (octave_idx_type) const): New
+	method.
+	* ov-range.h (octave_value diag (octave_idx_type) const): New
+	method.
+
+	* data.cc (make_diag, make_spdiag): Delete.
+	(Fdiag): Rewrite in terms of octave_value diag function.
+
+	* data.cc (static octave_value make_diag (const Cell&,
+	octave_idx_type)): New instantiation of template function.
+	(static octave_value make_diag (const octave_value&,
+	octave_idx_type)): Allow cell arrays.
+
+	* Cell.cc (Cell Cell::diag (void) const, Cell Cell::diag
+	(octave__idx_type)): New methods for diagonal matrices.
+	* Cell.h (Cell Cell::diag (void) const, Cell Cell::diag
+	(octave__idx_type)): Declare them.
+
+2008-03-18  David Bateman  <dbateman@free.fr>
+
+	* ov-re-mat.cc (lgamma): Convert to a allow negative arguments.
+	* ov-re-sparse.cc (lgamma): ditto.
+	* ov-scalar.cc (lgamma): ditto.
+
+	* DLD-FUNCTIONS/minmax.cc: 64-bit indexing fix.
+
+2008-03-13  John W. Eaton  <jwe@octave.org>
+
+	* ov-usr-fcn.cc (octave_user_function::octave_user_function):
+	Handle num_named_args in initialization list instead of functinon body.
+
+	* octave.gperf: Eliminate varargin and varargout keywords.
+	* lex.l (is_keyword_token): Eliminate varargin_kw and varargout_kw
+	from switch statement.
+	* parse.y (return_list): Eliminate special cases for VARARGOUT.
+	Call validate on tree_parameter_list object.
+	(param_list1): Likewise, for VARARGIN.
+	* pt-misc.cc (tree_parameter_list::validate): New function.
+	(tree_parameter_list::mark_varargs_only): Now private.
+	(tree_parameter_list::mark_varargs): Now private.
+	* pt-misc.h (tree_parameter_list::validate): Provide decl.
+
+2008-03-12  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (Vwhos_line_format): Omit print_dims parameter.
+	Fix doc string in Vwhos_line_format DEVAR.
+	(symbol_record_name_compare): Delete unused function.
+	(whos_parameter::dimensions): Delete struct field.
+	(symbol_info_list): New class.
+	(dimensions_string_req_first_space, make_dimensions_string,
+	dimensions_string_req_total_space): Delete.
+	(parse_whos_line_format): Move functionality to new
+	symbol_info_list class.
+	(print_symbol_info_line): Move functionality to new
+	symbol_info_list::struct symbol_info::displaly_line method.
+	(do_who): Simplify with new symbol_info_list class.
+	Handle index expressions in addition to symbol names.
+
+	* DLD-FUNCTIONS/dlmread.cc (Fdlmread): Fix separator detection.
+
+2008-03-11  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/eig.cc (Feig): Handle possible error from EIG.
+	* DLD-FUNCTIONS/qp.cc (qp, Fqp): Likewise.
+	* xpow.cc (xpow): Likewise.
+
+2008-03-11  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/dlmread.cc: Style fixes.
+
+2008-03-11  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/dlmread.cc: Function ported from octave forge. Add
+	spreadsheet style ranges.
+	* Makefile.in (DLD_XSRC): Add dlmread.cc.
+
+2008-03-10  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxCreateLogicalScalar): Argument is now mxLogical.
+
+	* data.cc (Fisfloat): New function.
+	* ov.h (octave_value::is_float_type): Ditto.
+	* ov-base.h (octave_base_value::is_float_type): Ditto.
+	* ov-complex.h (octave_complex): Ditto.
+	* ov-cx-mat.h (octave_complex_matrix): Ditto.
+	* ov-cx-sparse.h (octave_sparse_complex_matrix): Ditto.
+	* ov-range.h (octave_range): Ditto.
+	* ov-re-mat.h (octave_matrix): Ditto.
+	* ov-re-sparse.h (octave_sparse_matrix): Ditto.
+	* ov-scalar.h (octave_scalar): Ditto.
+
+	* mxarray.h.in (mxLogical): Use unsigned char instead of int.
+	From Antwerpen, G. (Gert) van <gert.vanantwerpen@tno.nl>.
+
+2008-03-07  John W. Eaton  <jwe@octave.org>
+
+	* ov-struct.cc (octave_struct::print_raw): Don't print contents fo
+	struct arrays that have more than one element.
+
+2008-03-06  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Document that
+	the initial interpretation of a positive definite return from
+	matrix_type is that the matrix is "probably" positive definite and
+	not certainly so.
+
+2008-03-06  John W. Eaton  <jwe@octave.org>
+
+	* parse.y: Move tests here from test/test_eval.m.
+	* DLD-FUNCTIONS/fft.cc: Move tests here from test/test_signal.m.
+	* DLD-FUNCTIONS/dassl.cc: Move tests here from test/test_diffeq.m.
+	* DLD-FUNCTIONS/lsode.cc: Move tests here from test/test_diffeq.m.
+	* DLD-FUNCTIONS/quad.cc: Move tests here from test/test_quad.m.
+	* DLD-FUNCTIONS/time.cc: Move tests here from test/test_system.m.
+
+2008-03-06  Alexander Barth  <barth.alexander@gmail.com>
+
+	* DLD-FUNCTIONS/__lin_interpn__.cc (lookup):
+	Handle decreasing coordinate values.
+
+2008-03-05  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/chol.cc (Fcholupdate): Adjust code to meet
+	Octave's coding guidelines.
+
+	* DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete): Adjust
+	code to meet Octave's coding guidelines.
+	* DLD-FUNCTIONS/qr.cc (Fqrdelete): Fix incorrect test.
+
+	* DLD-FUNCTIONS/qr.cc (Fqrinsert, Fqrdelete): Modify to use
+	0-based indexing in liboctave's QR classes.
+
+2008-03-04  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/chol.cc (Fcholupdate): New function.
+
+	* DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete):
+	New functions.
+
+2008-03-04  Ryan Rusaw  <rrusaw@gmail.com>
+
+	* toplev.h (octave_call_stack::element): New static function.
+	(octave_call_stack::cs): Now std::deque instead of std::list.
+
+	* pt-stmt.cc (curr_statement, curr_caller_statement): Delete.
+	* pt-stmt.h: Delete decls.
+
+	* pt-stmt.h, pt-stmt.cc (tree_statement_stack): New class.
+
+	* pt-stmt.cc (tree_statement::eval): Use tree_statement_stack
+	instead of curr_statement variable.
+
+	* ov-usr-func.cc (octave_user_function::do_multi_index_op):
+	Don't set curr_caller_statement.
+
+	* error.cc (verror, pr_where): Call tree_statement_stack::current_line
+	and tree_statement_stack::current_column instead of
+	instead of curr_statement->line and curr_statement->column.
+	* input.cc (get_user_input): Likewise.
+
+2008-02-27  John P. Swensen  <jpswensen@gmail.com>
+
+	* debug.cc (get_user_function): Call symtab::find_function instead
+	of symtab::find_user_function.
+
+2008-02-27  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (do_read): Stop reading if seek fails.
+
+2008-02-26  John W. Eaton  <jwe@octave.org>
+
+	* ov-base-int.cc (octave_base_int_helper,
+	octave_base_int_helper_traits): New templates and specializations.
+	(octave_base_int_matrix<T>::convert_to_str_internal,
+	octave_base_int_matrix<T>::convert_to_str_internal): Use them.
+
+	* DLD-FUNCTIONS/rand.cc (do_rand): Pass name of calling function
+	to octave_rand::state.
+
+	* variables.cc (bind_ans): Handle cs-lists recursively.
+
+	* ov-cs-list.h, ov-cs-list.cc (octave_cs_list::print,
+	octave_cs_list::print_raw): Delete.
+
+2008-02-25  John W. Eaton  <jwe@octave.org>
+
+	* Cell.cc (Cell::map): New function.
+	* Cell.h (Cell::map): Declare.
+	(xisalnum, xisalpha, xisascii, xiscntrl, xisdigit,
+	xisgraph, xislower, xisprint, xispunct, xisspace, xisupper,
+	xisxdigit, xtoascii, xtolower, xtoupper): New mapper functions.
+	(ctype_mapper): New private typedef.
+
+	* ov-cell.h (xisalnum, xisalpha, xisascii, xiscntrl, xisdigit,
+	xisgraph, xislower, xisprint, xispunct, xisspace, xisupper,
+	xisxdigit, xtoascii, xtolower, xtoupper): New mapper functions.
+
+2008-02-25  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* ov-scalar.cc (octave_scalar::round): Use xround instead of ::round
+	in mapper implementation.
+
+2008-02-25  John W. Eaton  <jwe@octave.org>
+
+	* ov-base.cc (UNDEFINED_MAPPER, STRING_MAPPER): New macros.  Use
+	them to define mapper functions.
+
+	* mappers.cc (Fisalnum, Fisalpha, Fisascii, Fiscntrl, Fisdigit,
+	Fisgraph, Fislower, Fisprint, Fispunct, Fisspace, Fisupper,
+	Fisxdigit, Ftoascii, Ftolower, Ftoupper):
+	Use DEFUNX to define ctype mapper functions.
+	Use new function names.
+
+	* ov-base.h, ov-base.cc, ov-str-mat.h, ov-str-mat.cc:
+	Prepend x to ctype mapper function names.
+
+	* graphics.h.in (row_vector_property::row_vector_property):
+	Set default constraints here.
+	(row_vector_property::add_constraint): New function.
+	(row_vector_property::validate): Delete decl.
+	(axes::properties::init): Use single-arg add_constraint function
+	for xlim, ylim, zlim, clim, and alim properties.
+
+	* graphics.cc (row_vector_property::validate): Delete.
+
+	* graphics.cc (axes::properties::update_camera,
+	axes::properties::update_aspectratios):
+	Avoid shadow warnings from GCC.
+
+	* graphics.h.in (base_properties::get_bounding_box):
+	Avoid unused argument warning from GCC.
+
+	* graphics.h.in (array_property::add_constraint): Arg is now const
+	reference, not value.
+
+	* graphics.h.in, graphics.cc (class row_vector_property): New class.
+	(axes::properties): xlim, ylim, zlim, clim, alim, xtick, ytick,
+	ztick properties are now row_vector_property objects instead of
+	array_property objects.
+
+	* genprops.awk: Special case row_vector_property in the same way
+	as array_property.
+
+2008-02-22  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/colamd.cc,
+	DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/dmperm.cc,
+	DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/regexp.cc,
+	DLD-FUNCTIONS/symbfact.cc, zfstream.h, zfstream.cc:
+	Use 0 instead of NULL.
+
+2008-02-22  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/chol.c (Fchol, Fcholinv, Fchol2iinv): Treat
+	sparse matrices. Add the "lower" and "vector" flags.
+	* DLD-FUNCTIONS/inv.c (Finv): Treat sparse matrices.
+	* DLD-FUNCTION/sparse.cc (static bool is_sparse (const
+	octave_value&)): Remove and use arg.is_sparse_type () instead.
+	(Fspcumprod, Fspcumsum, Fspprod, spsum, spsumsq, spdiag): Remove.
+	* DLD-FUNCTIONS/splu.cc: Remove.
+	* DLD-FUNCTIONS/lu.cc: Treat sparse matrices, Add "vector" flag.
+	* DLD-FUNCTIONS/spchol.cc: Move to symbfact.cc
+	* DLD-FUNCTIONS/symbfact.cc: Remove cholesky functions Fspchol,
+	Fspcholinv, Fspchol2inv.
+	* DLD-FUNCTIONS/luinc.cc: Modify for new sparse LU
+	constructors. Ass the 'vector' flag.
+	* DLD-FUNCTIONS/spparms.cc: Add the sum_tol flag.
+
+	* Makifile.in (DLD_XSRC): Remove spchol.cc, splu.cc and add
+	symbfact.cc
+	* data.cc (NATIVE_REDUCTION): Treat sparse matrices
+	(DATA_REDUCTION): Ditto.
+	(template <class T> static octave_value make_spdiag (const T&,
+	octave_idx_type)): New template function for sparse diag
+	function. Instantiate it.
+	(static octave_value make_diag (const octave_value&,
+	octave_idx_type): Use make_spdiag for sparse matrice.
+	(Fatan2): Compatibility fixes for mixed full/sparse matrices.
+
+2008-02-21  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fsolve.cc (fsolve_user_jacobian):
+	Check dimensions of user-supplied Jacobian matrix.
+	(fsolve_user_function): Check for non-square systems.
+
+2008-02-20  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (map_d_m, map_m_d, map_m_m, Fatan2, Ffmod):
+	Handle N-d arrays.
+
+	* ov-bool-mat.h (octave_bool_matrix (const Array2<bool>&)): Delete.
+
+2008-02-20  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/find.cc,
+	* DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/qr.cc:
+	Treat sparse matrices.
+
+	* DLD-FUNCTIONS/sparse.cc (Fspmin, Fspmax, Fatan2): Remove functions.
+
+	* DLD-FUNCTIONS/dmperm.cc: Rename from spqr.cc.
+	(Fspqr): Delete function.
+
+	* DLD-FUNCTIONS/spqr.cc, DLD-FUNCTIONS/spdet.cc,
+	DLD-FUNCTIONS/spfind.cc: Remove.
+
+	* Makefile.in (DLD_XSRC): Add dmperm.cc to the list.
+	Delete det.cc, find.cc, minmax.cc, and qr.cc from the list.
+
+	* Makefile.in (OV_SRC): Remove ov-mapper.cc.
+	(OV_INCLUDES): Remove ov-mapper.h.
+	(DEFUN_PATTERN): No longer accept DEFUN_MAPPER as valid.
+	* ov-mapper.cc, ov-mapepr.h: Delete, remove all includes of
+	ov-mapper.h from all files.
+
+	* op-b-sbm.cc, op-bm-sbm.cc, op-smb-b.cc, op-sbm-bm.cc: Include
+	ov-bool-sparse.h.
+
+	* defun-int.h (DEFUN_MAPPER_INTERNAL, install_builtin_mapper):
+	Remove.
+	* defun.cc (install_builtin_mapper): Ditto.
+	* defun.h (DEFUN_MAPPER): Remove.
+
+	* mappers.cc: Rewrite all mapper function using DEFUN and newly
+	introduced octave_value mapper functions.
+	(dummyp, xabs, xisalnum, xisascii, xiscntrl, xisdigit,
+	xisgraph, xislower, xisprint, xispunct, xisspace, xisupper,
+	xtoascii, xtolower, xtoupper, xconj, ximag, xreal): Remove
+	static wrapper functions.
+
+	* mkbuiltins (XDEFUN_MAPPER_INTERNAL, install_builtin_functions):
+	Remove.
+	* mkgendoc (XDEFUN_MAPPER_INTERNAL): Remove.
+
+	* ov.cc (octave_mapper::register_type): Remove.
+
+	* ov.h (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh,
+	ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, gamma,
+	imag, isinf, isna, isnan, lgamma, log, log10, real, round, signum,
+	sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii, iscntrl,
+	isdigit, isgraph, islower, isprint, ispunct, isspace, isupper,
+	isxdigit, toascii, tolower, toupper):
+	New octave_value mapper	functions.
+
+	* ov-base.h (abs, acos, acosh, angle, arg, asin, asinh, atan,
+	atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor,
+	gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round,
+	signum, sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii,
+	iscntrl, isdigit, isgraph, slower, isprint, ispunct, isspace,
+	isupper, isxdigit, toascii, tolower, toupper):
+	New virtual mapper functions.
+	* ov-base.cc (abs, acos, acosh, angle, arg, asin, asinh, atan,
+	atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor,
+	gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round,
+	signum, sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii,
+	iscntrl, isdigit, isgraph, slower, isprint, ispunct, isspace,
+	isupper, isxdigit, toascii, tolower, toupper):
+	Base versions of mapper functions.
+
+	* ov-bool-mat.h (abs, acos, acosh, angle, arg, asin, asinh, atan,
+	atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor,
+	gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round,
+	signum, sin, sinh, sqrt, tan, tanh):
+	Mapper function recast boolen matrix as double.
+	* ov-bool.h (abs, acos, acosh, angle, arg, asin, asinh, atan,
+	atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor,
+	gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round,
+	signum, sin, sinh, sqrt, tan, tanh): Ditto.
+	* ov-bool-sparse.h (abs, acos, acosh, angle, arg, asin, asinh,
+	atan, atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix,
+	floor, gamma, imag, isinf, isna, isnan, lgamma, log, log10, real,
+	round, signum, sin, sinh, sqrt, tan, tanh): Ditto.
+	(char_array_value): New method to convert to charNDArray.
+	* ov-bool-sparse.cc (char_array_value): New method to convert to
+	charNDArray.
+	* ov-complex.cc (char_array_value): ditto.
+	(xabs, ximag, xreal): Static wrapper functions.
+	(abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil,
+	conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna,
+	isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan,
+	tanh): New mapper methods.
+	* ov-complex.h: Provide decls.
+
+	* ov-cx-mat.cc (char_array_value): New method to convert to
+	charNDArray.
+	(xabs, ximag, xreal): Static wrapper functions.
+	(abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil,
+	conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna,
+	isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan,
+	tanh): New mapper methods.
+	* ov-cx-mat.h: Provide decls.
+
+	* ov-cx-sparse.cc (char_array_value): New method to convert to
+	charNDArray.
+	(xabs, ximag, xreal): Static wrapper functions.
+	(abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil,
+	conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna,
+	isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan,
+	tanh): New mapper methods.
+	* ov-cx-sparse.h: Provide decls.
+
+	* ov-intx.h (abs, signum, imag, ceil, conj, fix, floor, real,
+	round, finite, isinf, isna, isnan): Define for both matrix and
+	scalar classes.
+
+	* ov-range.h (abs, acos, acosh, angle, arg, asin, asinh, atan,
+	atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor,
+	gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round,
+	signum, sin, sinh, sqrt, tan, tanh): New mapper functions.
+
+	* ov-re-mat.cc (any_element_less_than): Static function to check if
+	any elemet was less than a value,
+	(any_element_greater_than): Ditto with greater than.
+	(abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil,
+	conj, cos, cosh, erf, erfc, exp, finite, fix, floor, gamma, imag,
+	isinf, isna, isnan, lgamma, log, log10, real, round, signum, sin,
+	sinh, sqrt, tan, tanh): New mapper functions.
+	* ov-re-mat.h: Provide decls.
+
+	* ov-scalar.cc (any_element_less_than): Static function to check if
+	any elemet was less than a value,
+	(any_element_greater_than): ditto with greater than.
+	(abs acos acosh angle arg asin asinh atan atanh
+	ceil conj cos cosh erf erfc exp finite fix floor gamma imag
+	isinf isna isnan lgamma log log10 real round signum sin sinh
+	sqrt tan tanh): New mapper functions.
+	* ov-scalar.h: Provide decls.
+
+	* ov-str-mat.cc (xisalnum, xisascii, xiscntrl, xisdigit,
+	xisgraph, xislower, xisprint, xispunct, xisspace, xisupper,
+	xtoascii, xtolower, xtoupper): New static wrapper functions.
+	(isalnum, isalpha, isascii, iscntrl, isdigit, isgraph, islower,
+	isprint, ispunct, isspace, isupper, isxdigit, toascii, tolower,
+	toupper): New mapper methods.
+	* ov-str-mat.h: Provide decls.
+
+2008-02-18  David Bateman  <dbateman@free.fr>
+
+	* data.cc (Fatan2): Reject arguments that are integer types.
+
+2008-02-19  Jaroslav Hajek  <highegg@gmail.com>
+
+	* DLD-FUNCTIONS/qr.cc: Doc fix.
+
+2008-02-18  John W. Eaton  <jwe@octave.org>
+
+	* symtab.h
+	(symbol_table::fcn_info::fcn_info_rep::clear_unlocked_functions):
+	symbol_table::fcn_info::fcn_info_rep::clear_cmdline_function,
+	symbol_table::fcn_info::fcn_info_rep::clear_autoload_function):
+	New functions.
+	(symbol_table::fcn_info::fcn_info_rep::clear_user_function):
+	Don't clear locked functions.
+	(symbol_table::fcn_info::fcn_info_rep::clear_mex_function):
+	Call clear_user_function instead of setting function_on_path directly.
+	(symbol_table::fcn_info::fcn_info_rep::clear):
+	Use new functions to do the real work.
+
+	* ov.h (octave_value::lock, octave_value::unlock,
+	octave_value::islocked): New functions.
+	* ov-base.cc (octave_base_value::lock, octave_base_value::unlock):
+	New functions.
+	* ov-base.h Provide decls.
+	(octave_base_value::islocked): New function.
+	* ov-fcn.h (octave_function::islocked): Now const.
+
+2008-02-15  John W. Eaton  <jwe@octave.org>
+
+	* ov-builtin.cc (octave_builtin::do_multi_index_op):
+	Catch possible octave_execution_exception.
+	* ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Likewise.
+	* ov.cc (do_binary_op, do_cat_op, do_unary_op,
+	octave_value::do_non_const_unary_op): Likewise.
+
+2008-02-14  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/qz.cc:
+	Don't check f77_exception_encountered.
+
+	* sighandlers.cc (user_abort): If interrupting immediately, set
+	octave_interrupt_state if it is not already set.
+
+	* pt-stmt.cc (tree_statement::eval): Catch execution exceptions.
+
+	* octave.cc (lo_error_handler): New static function.
+	(initialize_error_handlers): Set liboctave_error_handler to
+	lo_error_handler, not error.
+
+	* DLD-FUNCTIONS/urlwrite.cc (urlget): Call octave_rethrow_exception
+	instead of octave_throw_interrupt_exception.
+	* utils.cc (BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_FOR_VSNPRINTF):
+	Likewise.
+
+2008-02-12  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in: Implement the cdatamapping property in patch and
+	image objects.
+
+2008-02-12  John W. Eaton  <jwe@octave.org>
+
+	* pt-loop.cc (tree_simple_for_command::eval): Compute range
+	element with multiplication.
+
+2008-02-11  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in ($(MAKEDEPS)): Skip dependencies if omit_deps is defined.
+
+2008-02-09  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (set_range_format): Eliminate sign arg.
+	Change all callers.
+
+2008-02-08  John W. Eaton  <jwe@octave.org>
+
+	* ov-struct.cc (octave_struct::subsref): Allow Cell::index to resize.
+
+	* input.cc (interactive_input): Eliminate debug arg.  Change All uses.
+	(get_user_input): Don't process input_buf if there is an error.
+	Call reset_error_handler instead of setting error_state to 0.
+
+2008-02-08  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (callback_property::execute): New static
+	helper method (useful to execute callbacks by name).
+	* graphics.cc (callback_property::execute): Likewise.
+	(execute_callback): Avoid undefined argument when executing
+	callback. Do not use arguments when the callback is a string.
+
+2008-02-07  John W. Eaton  <jwe@octave.org>
+
+	* ov-range.h (octave_range::sort): New functions.
+
+2008-02-07  David Bateman  <dbateman@free.fr>
+
+	* Makefile.in (DLD_XSRC): Delete spkron.cc.
+	* DLD-FUNCTIONS/spkron.cc: Delete.
+	* DLD-FUNCTIONS/kron.cc: Include here and dispatch to the sparse
+	version if either argument is sparse.
+
+2008-02-06  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (parse.cc): Also use --defines option for bison.
+
+2008-02-06  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.cc (axes::properties::set_defaults): Set default axes
+	color to white.
+
+2008-02-06  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (parse.cc): Use "-o $@" instead of renaming y.tab.c.
+	(maintainer-clean): Don't remove y.tab.c.
+
+	* Makefile.in (parse.cc : parse.y): Use mv instead of move-if-change.
+	(stamp-prereq, stamp-liboctave-prereq): Eliminate.
+	(clean): Don't remove stamp-prereq and stamp-liboctave-prereq.
+	(OPT_BASE, OPT_IN, OPT_INC): New macros.
+	(OPT_HANDLERS): Define in terms of OPT_BASE.
+	($(OPT_INC) : %.h : %.in): New pattern rule.
+	(PREREQ): New macro.
+	($(MAKEDEPS)): Simplify with $(PREREQ).
+
+2008-02-05  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in: Unconditionally include $(MAKEDEPS).
+	Mark $(MAKEDEPS) as .PHONY targets if omit_deps is true.
+
+2008-02-05  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (base_properties::get_boundingbox): New method.
+	(figure::properties::get_boundingbox): Overload method.
+	(axes::properties::get_boundingbox): Likewise.
+	* graphics.cc (figure::properties::get_boundingbox): Return a
+	left-to-right/top-to-bottom bounding box rectangle.
+	(axes::properties::get_boundingbox): Likewise.
+	(axes::properties::update_camera): Remove backend access and
+	use the new axes bounding box.
+
+2008-02-04  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.h.in (axes::properties::update_xlim,
+	axes::properties::update_ylim, axes::properties::update_zlim):
+	New update methods.
+
+	* graphics.cc (axes::properties::calc_ticks): New function.
+	(axes::properties::magform): New function.
+	(axes::update_axis_limits): Call update_{x,y,z}lims if
+	appropriate.
+
+2008-02-04  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (base_graphics_backend::get_screen_size,
+	graphics_backend::get_screen_size): New methods.
+	(graphics_backend::available_backends): Export symbol.
+	(class figure::properties, class axes::properties): Export classes.
+	(figure::properties::get_boundingbox): New utility method.
+	(figure::properties::position): Use valid default position.
+	(axes::properties::gridlinestyle,
+	axes::properties::minorgridlinestyle):
+	Use dotted line style as default.
+	* graphics.cc (default_figure_position): New static function.
+	(gnuplot_backend::get_screen_size): New method.
+	(figure::properties::get_boundingbox): New utility method.
+
+2008-02-02  Shai Ayal  <shaiay@users.sourceforge.org>
+
+	* graphics.h.in (base_scaler::~base_scalar): New virtual destructor.
+	* graphics.cc (axes::properties::update_camera): Tag abs with std.
+
+	* graphics.h.in (graphics_backend::find_backend): New function.
+	(class figure): Add __backend__ property and set method.
+
+2008-02-02  John W. Eaton  <jwe@octave.org>
+
+	* help.cc (do_type): Don't print dyamically loaded function files.
+
+	* ov-fcn.h (octave_function::is_dynamically_loaded_function): Delete.
+
+2008-02-01  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (Fset_variable, Fvariable_value):
+	New functions, but commented out for now.
+
+2008-01-30  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (axes::properties::get_transform_matrix,
+	axes::properties::get_inverse_transform_matrix,
+	axes::properties::get_opengl_matrix_1,
+	axes::properties::get_opengl_matrix_2,
+	axes::properties::get_transform_zlim): New accessors.
+	(base_properties::is_clipping): New accessor.
+	(class graphics_xform): New class encapsulating axes transformation.
+	(axes::properties::get_transform): New method returning a
+	graphics_xform object.
+	* graphics.cc (class graphics_xform): New class.
+
+2008-01-31  David Bateman  <dbateman@free.fr>
+
+	* ov.cc (octave_value::octave_value (const ArrayN<bool>&),
+	octave_value::octave_value (const Sparse<bool>&, const MatrixType &),
+	octave_value::octave_value (const ArrayN<std::streamoff>&)): New
+	constructors.
+	* ov.h: (octave_value (const ArrayN<bool>&),
+	octave_value (const Sparse<bool>&, const MatrixType &),
+	octave_value (const ArrayN<std::streamoff>&)): Declare them.
+	(octave_value sort (octave_idx_type, sortmode) const, octave_value
+	sort (Array<octave_idx_type> &, octave_idx_type, sortmode) const):
+	octave_value sort method.
+
+
+	* ov-base.cc (sort): Base versions of teh octave_value sort methods.
+	* ov-base.h (sort): Declare the octave_value sort methods
+	* ov-base-scalar.h (sort): Simple sort methods for scalars.
+	* ov-base-mat.h, ov-base-sparse.h (sort): Sort methods calling
+	underlying array or sparse sort methods.
+	* ov-str-mat.h (sort): String specific sort methods.
+
+	* TEMPLATE-INST/Array-tc.cc: Instantiate the array sort methods.
+	* ov-streamoff.h (sort): Sort versions returning and error.
+	* oct-stream.cc, ov-typeinfo.cc, Array-os.cc: Null instantiation
+	of array sort methods.
+
+	* Makefile.in (DLD_XSRC): Remove sort.cc
+	* DLD-FUNCTIONS/sort.cc: Remove
+	* data.cc (Fsort): New function using octave_value sort methods
+	for the sorting. Add tests.
+
+2008-01-30  Thomas Weber  <thomas.weber.mail@gmail.com>
+
+	* pager.cc (Fmore): Doc fix.
+
+2008-01-28  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* genprops.awk: Add update ('u') modifier and document the
+	readonly ('r') modifier.
+	* graphics.h.in (class base_scaler, class lin_scaler, class
+	log_scaler, class scaler): New classes to make abstraction of the
+	axis scale.
+	(base_graphics_backend::get_screen_resolution,
+	graphics_backend::get_screen_resolution): New methods.
+	(axes::properties::sx, axes::properties::sy,
+	axes::properties::sz): New scaler fields.
+	(axes::properties::get_x_scaler, axes::properties::get_y_scaler,
+	axes::properties::get_z_scaler): New accessors.
+	(axes::properties::x_render, axes::properties::x_render_inv,
+	axes::properties::x_gl_mat1, axes::properties::x_gl_mat2,
+	axes::properties::x_zlim): New utility Matrix fields.
+	(axes::properties::get_boundingbox,
+	axes::properties::update_camera,
+	axes::properites::update_aspectratios,
+	axes::properties::update_transform,
+	axes::properties::update_xscale, axes::properties::update_yscale,
+	axes::properties::update_zscale, axes::properties::update_view,
+	axes::properties::update_xdir, axes::properties::update_ydir,
+	axes::properties::update_zdir): New updater methods.
+	(axes::properties::init): Initialize sx, sy, sz and x_zlim correctly.
+	(axes::properties::position): Use valid default position value.
+	(axes::properties::xscale, axes::properties::yscale,
+	axes::properties::zscale, axes::properties::xdir,
+	axes::properties::ydir, axes::properties::zdir,
+	axes::properties::view): Add updater ('u') property modifier.
+	* graphics.cc (default_axes_position, default_axes_outerposition):
+	New initializers.
+	(convert_position): New utility function to convert position
+	according to specified units.
+	(gnuplot_backend::get_screen_resolution): New method.
+	(axes::properties::set_defaults): Initilize recently added properties.
+	(xform_matrix, xform_vector, transform, xform_scale,
+	xform_translate, scale, translate, xform, normalize, dot, cross,
+	unit_cube, cam2xform, xform2cam): New inline transformation
+	utility functions.
+	(axes::properties::update_camera,
+	axes::properties::update_aspectratios,
+	axes::properties::get_boundingbox): New updater methods for
+	computing transformation matrices.
+	(axes::update_axis_limits): Update transformation data.
+
+2008-01-28  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (BEGIN_CHAR_CLASS_CONVERSION): Handle width properly.
+	(OCTAVE_SCAN) [__GNUG__ && ! CXX_ISO_COMPLIANT_LIBRARY]:
+	Delete special case.
+
+2008-01-25  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/rand.cc (Frandp): Relax relative error on randp
+	tests.
+
+2008-01-25  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (base_properties::get_backend,
+	base_graphics_object::get_backend, graphics_backend::get_backend):
+	New methods for convenient access to the backend.
+	(figure::get_backend, figure::set_backend): Remove.
+	* graphics.cc (base_properties::get_backend): New method.
+	(Fdrawnow): Use graphics_object::get_backend to simplify code.
+
+2008-01-24  Pascal Dupuis  <Pascal.Dupuis@worldonline.be>
+
+	* mxarray.h.in: Include <cstring>.
+
+2008-01-22  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (clear_drawnow_request): New function.
+	(Fdrawnow): Add it to the unwind_protect stack.
+
+	* input.cc (Vdrawnow_requested): No longer static.
+	* input.h: Provide decl.
+	* graphics.cc (Fdrawnow, Fset, make_graphics_object):
+	Use Vdrawnow_requested directly.
+
+	* toplev.cc (octave_add_atexit_function,
+	octave_remove_atexit_function): New functions.
+	(Fatexit): Use them.
+	* graphics.cc (Fdrawnow): Call octave_add_atexit_function instead
+	of using eval.
+	* toplev.h (octave_add_atexit_function,
+	octave_remove_atexit_function): Provide decls.
+
+2008-01-22  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (base_properties::is_visible,
+	base_properties::set_modified): New accessors.
+	(class base_graphics_backend, class graphics_backend): New classes
+	for handling octave/backend interaction.
+	(figure::properties::close): Add "pop" argument controlling
+	whether the figure should be popped from the list of existing figures.
+	(class figure::properties): New backend field and accessors, holding
+	the graphics backend associated with the figure.
+	* graphics.cc (class gnuplot_backend): New class for the default
+	gnuplot backend.
+	(figure::properties::close): Add "pop" argument and transfer the
+	figure closing to the associated backend.
+	(Fdrawnow): New builtin function, converted from drawnow.m.
+
+2008-01-19  John W. Eaton  <jwe@octave.org>
+
+	* genprops.awk (emit_source): Use "pname" for property name argument.
+
+2008-01-19  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.h.in (class figure::properties): New properties:
+	alphamap, currentcharacter, currentobject, current_point,
+	dockcontrols, doublebuffer, filename, integerhandle,
+	inverthardcopy, keypressfcn, keyreleasefcn, menubar, mincolormap,
+	name, numbertitle, paperunits, paperposition, paperpositionmode,
+	papersize, papertype, pointer, pointershapecdata,
+	pointershapehotspot, position, renderer, renderermode, resize,
+	resizefcn, selectiontype, toolbar, units, windowbuttondownfcn,
+	windowbuttonmotionfcn, windowbuttonupfcn, windowbuttonwheelfcn,
+	windowstyle, wvisual, wvisualmode, xdisplay, xvisual, xvisualmode,
+	buttondownfcn.
+
+2008-01-19  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (base_properties::beingdeleted,
+	base_properties::is_beingdeleted,
+	base_properties::get_beingdeleted,
+	base_properties::set_beingdeleted):
+	Add beingdeleted property and accessors.
+	* graphics.cc (base_properties::get): Likewise.
+	(gh_manager::free): Set beingdeleted to "on" when freeing an object.
+	* genprops.awk: Skip C++-style comments in property declaration.
+
+	* graphics.h.in (class axes::properties): New properties: alim,
+	alimmode, xminortick, yminortick, zminortick, ambientlightcolor,
+	cameraposition, cameratarget, cameraupvector, cameraviewangle,
+	camerapositionmode, cameratargetmode, cameraupvectormode,
+	cameraviewanglemode, currentpoint, drawmode, fontangle, fontname,
+	fontsize, fontweight, fontunits, gridlinestyle,
+	minorgridlinestyle, linestyleorder, linewidth, plotboxaspectratio,
+	plotboxaspectratiomode, projection, tickdir, tickdirmode,
+	ticklength, tightinset, units, x_viewtransform,
+	x_projectiontransform, x_viewporttransform, x_normrendertransform,
+	x_rendertransform.
+	* genprops.awk: Handle new readonly modifier 'r'.
+
+2008-01-18  Juhani Saastamoinen  <juhani@cs.joensuu.fi>
+
+	* genprops.awk: Avoid using "default" as a variable name.
+
+2008-01-17  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (data_property::get_data_limits): Reset min/max values.
+
+2008-01-17  David Bateman  <dbateman@free.fr>
+
+	* ov-fcn-inline.cc: Add tests for Finline.
+
+2008-01-17  Ben Abbott  <bpabbott@mac.com>
+
+	* load-path.cc (F__pathorig__): Rename from Fpathdef.
+	(Frestoredefaultpath): New function.
+
+2008-01-16  John W. Eaton  <jwe@octave.org>
+
+	* pt-assign.cc (tree_simple_assignment::rvalue,
+	tree_multi_assignment::rvalue): Handle assignment of
+	comma-separated lists.
+
+2008-01-15  John W. Eaton  <jwe@octave.org>
+
+	* mappers.cc (install_mapper_functions): Move test for asin here
+	from test/test_arith.m.
+
+	* graphics.h.in (class line::properties, class text::properties):
+	Rename erase_mode property to erasemode.
+
+2008-01-15  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (base_properties::remove_child,
+	base_properties::adopt, base_properties::update_axis_limits):
+	Make virtual.
+	(base_graphics_object::mark_modified,
+	base_graphics_object::override-defaults,
+	base_graphics_object::set_from_list, base_graphics_object::set,
+	base_graphics_object::get, base_graphics_object::get_parent,
+	base_graphics_object::remove_child, base_graphics_object::adopt,
+	base_graphics_object::reparent, base_graphics_object::defaults,
+	base_graphics_object::type): Add default implementation.
+	(class root_figure, class figure, class axes, class line,
+	class text, class image, class patch, class surface):
+	Remove overloaded virtual methods whose implementation is
+	identical to the default one.
+
+	* genprops.awk: Handle 'h' modifier for hidden properties.
+	Replace "get(void)" method with "get(bool all = false)" to allow
+	access to hidden properties.
+
+	* graphics.h.in (base_properties::get, base_graphics_object::get,
+	graphics_object::get, root_figure::get, figure::get, axes::get,
+	line::get, text::get, patch::get, surface::get, image::get):
+	New arg, ALL, to access hidden properties.
+	(gh_manager::do_get_object): Do not look for invalid handles.
+	(figure::properties::__plot_stream__,
+	figure::properties::__enhanced__, axes::properties::__colorbar__):
+	Make properties hidden.
+	(axes::properties, line::properties, text::properties,
+	patch::properties, surface::properties): Remove obsolete 'a'
+	property modifier.
+	* graphics.cc (base_properties::get): New arg ALL, to access
+	hidden properties.
+	(base_properties::mark_modified): Call mark_modified only on valid
+	parent object.
+	(__get__): New internal function returning all properties,
+	including the hidden ones.
+
+2008-01-15  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (properties::set_currentfigure,
+	properties::set_currentaxes): Don't convert arg to double
+	before passing to graphics_handle constructor.
+	(base_properties::remove_child): Call mark_modified if list of
+	children changes.
+
+2008-01-15  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.h.in (class line::properties): New properties:
+	displayname, erasemode.
+	(class text::properties) New properties: backgroundcolor,
+	displayname, edgecolor, erase_mode, editing, fontunits, linestyle,
+	linewidth, margin, verticalalignment.
+
+2008-01-14  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::do_initialize): Start with sys_path empty.
+	(maybe_add_path_elts): Omit path_sep_str if path is empty.
+
+	* symtab.h (symbol_table::do_pop_context): Remove symbol_records
+	which have no more context.
+	(symbol_table::symbol_record::pop_context,
+	(symbol_table::symbol_record::symbol_record_rep::pop_context):
+	Return size of value_stack, or 1 if variable is persistent or global.
+
+2008-01-14  Kai Habel  <kai.habel@gmx.de>
+
+	* graphics.h.in (class patch::properties): New properties:
+	cdatamapping, facevertexalphadata, facevertexcdata, vertexnormals,
+	normalmode, facelighting, edgealpha, edgelighting,
+	backfacelighting, ambientstrength, diffusestrength,
+	specularstrength, specularexponent, specularcolorreflectance,
+	erasemode.
+
+2008-01-14  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in (gh_manager::do_make_graphics_handle,
+	gh_manager::make_graphics_handle): New boolean parameter
+	do_createfcn.
+	* graphics.cc (xcreatefcn): New static function.
+	(gh_manager::do_make_graphics_handle): New boolean parameter
+	do_createfcn.  Execute createfcn callback accordingly.
+	(make_graphics_object, F__go_figure__): Use do_createfcn
+	parameter and call xcreatefcn
+
+	* genprops.awk (emit_get_callback): Pass user data to execute method.
+	* graphics.cc (execute_callback): New static function.
+	(callback_property::validate): Make it work.
+	(callback_property::execute): Make it work.
+	(gh_manager::do_free): Execute delete function here.
+	* graphics.h.in (callback_property::execute): Fix decl.
+	(base_properties::buttondownfcn, base_properties::createfcn,
+	base_properties::deletefcn, base_properties::userdata): Default
+	value is empty Matrix, not undefined octave_value object.
+	(base_properties::execute_createfcn): New function.
+	(base_properties::execute_deletefcn): New function.
+
+2007-12-13  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.h.in, graphics.cc (class base_properties): New
+	properties: busyaction, buttondownfcn, clipping, createfcn,
+	deletefcn, handlevisibility, hittest, interruptible, selected,
+	selectionhighlight, uicontextmenu, userdata, visible.
+	(class figure): Delete visible property.
+
+2008-01-13  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* graphics.h.in: Sprinkle with OCTINTERP_API as needed.
+	(axes::properties::xaxislocation): Allow value of zero.
+	(axes::properties::yaxislocation): Likewise.
+
+2008-01-12  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* Makefile.in (distclean): Delete graphics-props.cc.
+
+	* genprops.awk: Handle new graphics property classes.
+
+	* graphics.h.in, graphics.cc: Adapt for new specific property types.
+
+2008-01-12  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (octave_config_info): Add GNUPLOT to the struct.
+	* oct-conf.h.in (OCTAVE_CONF_GNUPLOT): New macro.
+
+2008-01-11  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__qp__.cc (qp): Undo part of change from
+	2007-09-04 (compute Y at each iteration).
+
+2008-01-10  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fsolve.cc (Ffsolve): Doc fix.
+	(hybrd_info_to_fsolve_info): Swap return values for -1 and -2 inputs.
+
+	* DLD_FUNCTIONS/__gnuplot_raw__.l: Delete.
+	* Makefile.in (DLD_XSRC): Remove it from the list.
+	(BUILT_DISTFILES): Remove __gnuplot_raw__.cc from the list.
+	(stamp-prereq): Don't depend on __gnuplot_raw__.cc.
+	(maintainer-clean): Don't remove __gnuplot_raw__.cc.
+	(__gnuplot_raw__.cc): Delete target.
+	(__gnuplot_raw__.o, pic/__gnuplot_raw__.o): Delete targets.
+
+	* mex.cc (calc_single_subscript_internal): New static function.
+	(mxArray_octave_value::calc_single_subscript): Use it.
+	(mxArray_matlab::calc_single_subscript): Use it.
+
+2008-01-07  John W. Eaton  <jwe@octave.org>
+
+	* pt-except.cc (tree_try_catch_command::eval):
+	Set Vdebug_on_error and Vdebug_on_warning to false while executing
+	try block.
+
+	* error.cc (Vdebug_on_error, Vdebug_on_warning): No longer static.
+	* error.h: Provide decls.
+
+	* gripes.cc (gripe_wrong_type_arg (const std::string&, const
+	octave_value&, bool)): New function.
+	* gripes.h: Provide decl.
+
+	* oct-stream.cc (printf_value_cache::printf_value_cache):
+	Reject structs, cells, objects, and lists.
+	(octave_base_stream::do_printf): Quit early if printf_value_cache
+	constructor fails.
+
+	* parse.y (make_anon_fcn_handle): Don't attempt to convert
+	expression to assignment to __retval__.
+
+2008-01-07  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* ov-builtin.h (octave_builtin): Tag with OCTINTERP_API.
+	* ov-dld-fcn.h (octave_dld_function): Likewise.
+
+	* ov-dld-fcn.cc (octave_dld_function::create): New function.
+	* ov-dld-fcn.h: Provide decl.
+	* defun.h (DEFINE_FUNX_INSTALLER_FUN3): Call it instead of
+	creating a new octave_dld_function object directly.
+
+2008-01-04  John Swensen  <jpswensen@comcast.net>
+
+	* debug.cc (bp_table::do_remove_all_breakpoints_in_file):
+	Avoid calling erase on invalid bp_map iterators.
+	(bp_table::do_remove_breakpoint): Only try to delete breakpoints
+	if some exist.  Avoid calling erase on invalid bp_map iterators.
+	(parse_dbfunction_params): Return early if ARGS is empty.
+	New arg, WHO.  Change all uses.
+	Accept but do nothing with struct args.
+
+2008-01-04  Thomas Weber  <thomas.weber.mail@gmail.com>
+
+	* variables.cc (Fclear): Doc fix.
+
+2008-01-04  John W. Eaton  <jwe@octave.org>
+
+	* symtab.h (symbol_table:pop_scope): Avoid accessing beyond end of
+	scope_stack.
+
+2008-01-04  David Bateman  <dbateman@free.fr>
+
+	* ov-mapper.cc (SPARSE_MAPPER_LOOP_2): Use data method instead of
+	elem in the case where F(0) is non-zero.
+
+2007-12-28  John W. Eaton  <jwe@octave.org>
+
+	Merge changes from object branch:
+
+	2007-12-12  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::dir_info::get_file_list,
+	load_path::move_method_map, load_path::remove_method_map,
+	load_path::do_find_fcn, load_path::do_find_private_fcn,
+	load_path::do_find_method, load_path::do_find_file,
+	load_path::do_find_first_of, load_path::do_find_all_first_of,
+	load_path::do_display, load_path::add_to_method_map, genpath,
+	execute_pkg_add_or_del): Use file_ops::concat.
+
+	2007-08-24  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (Fmislocked): return value for nargin == 0 case.
+
+	2007-07-27  John W. Eaton  <jwe@octave.org>
+
+	* pt-idx.cc (tree_index_expression::rvalue):
+	Pass substring of type to subsref when doing partial evaluation.
+	(tree_index_expression::lvalue): Likewise.
+
+	2007-06-29  John W. Eaton  <jwe@octave.org>
+
+	* ov-class.cc (is_built_in_class, set_class_relationship,
+	Fsuperiorto, Finferiorto): New functions.
+	(octave_class::in_class_method): New function.
+	(octave_class::subsref, octave_class:subsasgn): Use it.
+
+	2007-06-28  John W. Eaton  <jwe@octave.org>
+
+	* ov-class.cc (sanitize): New function.
+	(make_idx_args): Use it.
+
+	2007-06-28  John W. Eaton  <jwe@octave.org>
+
+	* ov-class.cc (octave_class::subsasgn): Expect and use only
+	one return value from feval of subsasgn method.
+
+	* ov.cc (octave_value::assign): Don't convert to struct if
+	indexing a class object with ".".
+
+	* pt-idx.cc (tree_index_expression::make_arg_struct):
+	Use Cell instead of octave_value_list for subscripts.
+
+	* ov-class.cc (make_idx_args): For "." index, subs field is
+	string, not cell.
+
+	2007-06-27  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn-handle.cc (octave_fcn_handle::save_ascii,
+	octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary,
+	octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5,
+	octave_fcn_handle::load_hdf5): Adapt to new symbol table objects.
+
+	* symtab.h (symbol_table::all_variables,
+	symbol_table::do_all_variables): New arg, defined_only.
+
+	2007-06-26  John W. Eaton  <jwe@octave.org>
+
+	* ls-mat5.cc (read_mat5_binary_element): Adapt to new symbol table
+	objects.
+
+	* variables.cc (Vwhos_line_format): New static variable.
+	(Fwhos_line_format): New function.
+	(symbol_record_name_compare): Delete function.
+	(symbol_record_name_compare, whos_parameter): New structs.
+	(print_descriptor, dimensions_string_req_first_space,
+	dimensions_string_req_total_space, make_dimensions_string,
+	parse_whos_line_format, print_symbol_info_line): New static
+	functions, adapted from old symbol table class.
+	(do_who): Adapt to new symbol table objects.
+
+	* symtab.h (symbol_table::glob_variables): New functions.
+	(symbol_table::do_glob): New argument, vars_only.  Change all uses.
+
+	2007-06-22  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::help_for_dispatch):
+	New function.
+	* symtab.h: Provide decl.
+	(symbol_table::fcn_info::help_for_dispatch,
+	symbol_table::help_for_dispatch): New functions.
+
+	* help.cc (help_from_symbol_table): Call
+	symbol_table::help_for_dispatch instead of
+	extract_help_from_dispatch.
+
+	* help.cc (extract_help_from_dispatch): Delete.
+	* help.h: Delete decl.
+
+	2007-06-21  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/dispatch.cc (class octave_dispatch): Delete class.
+	(builtin, any_arg_is_magic_colon, dispatch_record): Delete functions.
+	(Fbuiltin, Fdispatch): Adapt to new symbol table objects.
+
+	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::print_dispatch):
+	New function.
+	* symtab.h: Provide decl.
+	(symbol_table::fcn_info::print_dispatch, symbol_table::print_dispatch):
+	New functions.
+
+	* symtab.h (symbol_table::fcn_info::fcn_info_rep::clear_dispatch,
+	symbol_table::fcn_info::clear_dispatch, symbol_table::clear_dispatch):
+	New functions.
+
+	* symtab.h (symbol_table::fcn_info::fcn_info_rep::get_dispatch,
+	symbol_table::fcn_info::get_dispatch, symbol_table::get_dispatch):
+	New functions.
+
+	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find):
+	Use leftmost class argument as dispatch type, or first argument if
+	there are no class arguments.
+
+	2007-06-20  John W. Eaton  <jwe@octave.org>
+
+	* ov-base.cc (Vprint_answer_id_name, Fprint_answer_id_name): Delete.
+	(octave_base_value::print_with_name): Always print name.
+
+	* ov-base.cc (Vsilent_functions): No longer static.
+	* ov-base.h: Provide decl.
+
+	* ov-class.cc (Fmethods): Define as command.
+
+	* ov-class.cc (octave_class::print): Simply call print_raw.
+
+	* ov-class.cc (octave_class::print_with_name): New function.
+	* ov-class.h: Provide decl.
+
+	2007-06-19  John W. Eaton  <jwe@octave.org>
+
+	* ov.cc (octave_value::do_unary_op, octave_value::do_binary_op):
+	Handle class methods.
+
+	* ov.cc (octave_value::unary_op_fcn_name,
+	octave_value::binary_op_fcn_name): New functions.
+	* ov.h: Provide decls.
+
+	* ov-typeinfo.cc (octave_value_typeinfo::register_unary_class_op,
+	octave_value_typeinfo::register_binary_class_op,
+	octave_value_typeinfo::do_register_unary_class_op,
+	octave_value_typeinfo::do_register_binary_class_op,
+	octave_value_typeinfo::do_lookup_unary_class_op,
+	octave_value_typeinfo::do_lookup_binary_class_op): New functions.
+	* ov-typeinfo.h: Provide decls.
+
+	* ov-typeinfo.h (octave_value_typeinfo::unary_class_op_fcn,
+	octave_value_typeinfo::binary_class_op_fcn): New typedefs.
+	(octave_value_typeinfo::unary_class_ops,
+	octave_value_typeinfo::binary_class_ops): New data members.
+	(octave_value_typeinfo::octave_value_typeinfo): Initialize them.
+	(octave_value_typeinfo::lookup_unary_class_op,
+	octave_value_typeinfo::lookup_binary_class_op): New functions.
+
+	* OPERATORS/op-class.cc: New file.
+	* Makefile.in (OP_XSRC): Add it to the list.
+
+	* ov.cc (install_types): Call octave_class::register_type here.
+
+	* ov-class.h (octave_class): Implement by containing a map object
+	instead of deriving from octave_struct.
+	* ov-class.cc (octave_class::subsref, octave_class::subsasgn):
+	Don't use octave_class implementation as default action.
+
+	* ov.h, ov.cc (octave_value::octave_value (const Octave_map&, const
+	std::string&)): New constructor.
+
+	2007-06-18  John W. Eaton  <jwe@octave.org>
+
+	* ov-class.cc (octave_class::subsref, octave_class::subsasgn):
+	Handle dispatch to user-defined methods.
+
+	* parse.y (load_fcn_from_file): New arg, dispatch_type.
+	Change all uses.
+
+	* ov-fcn.h (octave_function::is_class_constructor,
+	octave_function::is_class_method, octave_function::dispatch_class):
+	New virtual functions.
+
+	* ov-usr-fcn.h (octave_user_function::dispatch_class,
+	octave_usr_function::stash_dispatch_class): New functions.
+	(octave_usr_fucntion::xdispatch_class): New data member.
+	* parse.y (frob_function): Call stash_dispatch_class here.
+
+	* ov-struct.cc (Ffieldnames): Also handle objects.
+
+	* ov-class.cc (Fmethods): New function.
+	* load-path.cc (load_path::do_methods): New function.
+	* load-path.h (load_path::methods): New function.
+
+	* ov.h (octave_value::is_object): New function.
+	* ov-base.h (octave_base_value::is_object): New virtual function.
+	* ov-class.h (octave_class::is_object): New function.
+	* ov-class.cc (Fisobject): New function.
+
+	2007-06-15  John W. Eaton  <jwe@octave.org>
+
+	* ov-class.cc (octave_class::print): Call display method if found.
+
+	* symtab.h (symbol_table::fcn_info::find_method): New function.
+	(symbol_table::find_method): New function.
+	(symbol_table::fcn_info::fcn_info_rep::find_method): Provide decl.
+	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_method):
+	New function.
+	(symbol_table::fcn_info::fcn_info_rep::find): Use it.
+
+	2007-06-14  John W. Eaton  <jwe@octave.org>
+
+	* symtab.h (symbol_table::clear_mex_functions): Make it work.
+	(symbol_table::fcn_info::fcn_info_rep::clear_mex_function,
+	symbol_table::fcn_info::clear_mex_function): New functions.
+
+	2007-06-08  John W. Eaton  <jwe@octave.org>
+
+	* defun.cc (Falias): Delete.
+
+	* variables.cc (load_fcn_try_ctor): New function.
+	(lookup): call load_fcn_try_ctor instead of load_fcn_from_file.
+
+	* variables.cc, variables.h (at_top_level, lookup_by_name, lookup,
+	initialize_symbol_tables, fcn_out_of_date, symbol_out_of_date,
+	lookup_function, lookup_user_function, link_to_global_variable,
+	link_to_builtin_or_function, force_link_to_function, Fdocument,
+	is_local_variable, do_clear_all, do_clear_functions,
+	do_clear_globals, do_clear_variables, do_clear_function,
+	do_clear_global, do_clear_variable, do_clear_symbol,
+	do_clear_function_pattern, do_clear_global_pattern,
+	do_clear_variable_pattern, do_clear_symbol_pattern,
+	clear_function, clear_variable, clear_symbol):
+	Delete (some functionality moved to the new symtab.cc and some is
+	no longer needed).
+	(Fignore_function_time_stamp): Move to symtab.cc.
+
+	* lex.l (lookup_identifier): Delete.
+
+	* parse.y (is_function_file): New function.
+	(load_fcn_from_file): Return pointer to octave_function, not bool.
+
+	* ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::argn_sr,
+	octave_user_function::nargin_sr, octave_user_function::nargout_sr,
+	octave_user_function::varargin_sr): Delete data members.
+	(octave_user_function::install_automatic_vars): Delete.
+	(octave_user_script::do_multi_index_op): New function.
+
+	* ov-fcn.h (octave_function::locked, octave_function::my_dir_name):
+	New data members.
+	(octave_function::dir_name, octave_function::stash_dir_name,
+	octave_function::lock, octave_function::unlock,
+	octave_function::islocked): New functions.
+
+	* of-fcn-handle.h, ov-fcn-handle.cc (octave_fcn_handle::subsref):
+	Call out_of_date_check here to simplify time stamp checking.
+	(octave_fcn_handle::reload_warning): Delete.
+
+	* ov.h (octave_value::is_user_script, octave_value::is_user_function):
+	New functions.
+	* ov-base.h (octave_base_value::is_user_script,
+	octave_base_value::is_user_function): New pure virtual functions.
+	* ov-fcn.h (octave_function::is_user_script,
+	octave_function::is_user_function): Delete.
+
+	* load-save.cc (install_loaded_variable): Greatly simplify.
+
+	* load-path.h, load-path.cc: Change private_fcn_file to private_file.
+	(load_path::private_fcn_map): New data member.
+	(load_path::do_add, load_path::do_remove, load_path::do_update):
+	Also manage private_file_map here.
+	(load_path::add_to_private_fcn_map): New function.
+	(load_path::remove_private_fcn_map): New function.
+	(load_path::do_find_private_fcn): Make it work.
+	(get_file_list): New function.
+	(load_path::do_display): Use it.  Display private map.
+	(load_path::find_method, load_path::find_fcn): Handle directory name.
+
+	* token.cc, token.h, toplev.cc, debug.cc, defun.cc, defun-dld.h,
+	defun-int.h, error.cc, help.cc, load-save.h, load-save.cc, mex.cc,
+	octave.cc, ov-fcn-handle.cc, ov-usr-fcn.cc, parse.h, parse.y,
+	lex.l, variables.cc: Adapt to new symbol table objects (my
+	apologies for the lack of detail).
+
+	* unwind-prot.h (unwind_protect::add): Set default value for ptr arg.
+
+	* pt-stmt.cc (tree_statement::eval): Rework method for deciding
+	whether to assign value to ans.
+
+	* pt-idx.cc (tree_index_expression::rvalue):
+	Looking up symbol may evaluaate first args now.
+
+	* pt-id.h, pt-id.cc (tree_identifier::document,
+	tree_identifier::is_defined, tree_identifier::define,
+	tree_identifier::is_function, tree_identifier::lookup,
+	tree_identifier::link_to_global): Delete.
+	(tree_identifier::do_lookup): Simplify.
+	(tree_identifier::rvalue): Looking up symbol can't execute script now.
+
+	* pt-misc.cc (tree_parameter_list::initialize_undefined,
+	tree_parameter_list::is_defined): Call is_variable for elt, not
+	is_defined.
+
+	* pt-fcn-handle.h (tree_anon_fcn_handle::fcn): Now pointer to
+	octave_user_function, not value.  Change all uses.
+
+	* pt-decl.h (tree_decl_command::initialized): Delete data member.
+	(tree_decl_elt::is_variable): New function.
+	* pt-decl.cc: Fix all uses of tree_decl_command::initialized.
+
+	* ls-hdf5.cc, ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc,
+	ls-oct-ascii.cc, ls-oct-binary.cc, input.cc: Don't include symtab.h.
+
+	* dynamic-ld.h, dynamic-ld.cc (octave_dynamic_loader::load_oct,
+	octave_dynamic_loader::load_mex, octave_dynamic_loader::do_load_oct,
+	octave_dynamic_loader::do_load_mex): Adapt to new symbol table
+	objects.  Return pointer octave_function instead of bool.
+
+	* DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Disable for now.
+	Disable code that works with old symbol tables.
+	(Fbuiltin): Simply call symbol_table::add_dispatch.
+
+	* pt-arg-list.cc, pt-arg-list.h, pt-assign.cc, pt-assign.h,
+	pt-binop.cc, pt-binop.h, pt-bp.h, pt-cell.cc, pt-cell.h,
+	pt-cmd.cc, pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc,
+	pt-const.h, pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h,
+	pt-exp.h, pt-fcn-handle.cc, pt-fcn-handle.h, pt-id.cc, pt-id.h,
+	pt-idx.cc, pt-idx.h, pt-jump.cc, pt-jump.h, pt-loop.cc, pt-loop.h,
+	pt-mat.cc, pt-mat.h, pt-misc.cc, pt-misc.h, pt-select.cc,
+	pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc, pt-unop.h:
+	Adapt dup functions to use scope instead of symbol_table objects.
+
+	* TEMPLATE-INST/Array-sym.cc: Delete.
+	* Makefile.in (TI_XSRC): Remove it from the list.
+
+	* symtab.h, symtab.cc: Replace with new versions.
+
+	2007-05-16  John W. Eaton  <jwe@octave.org>
+
+	* oct-lvalue.cc, oct-lvalue.h (octave_lvalue::chg_fcn): Delete.
+	Fix all uses.
+
+	2007-05-15  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::do_find_private_function): New function.
+	* load-path.h (load_path::do_find_private_function): Provide decl.
+	(load_path::find_private_function): New function.
+
+	2007-05-08  John W. Eaton  <jwe@octave.org>
+
+	* pt-idx.cc (tree_index_expression::rvalue): Handle dispatch here.
+
+	* pt-id.cc (tree_identifier::is_variable, tree_identifier::lookup):
+	New functions.
+	* pt-id.cc: Provide decls.
+
+	* parse.y (current_class_name): New global variable.
+	* parse.h: Provide decl.
+
+	* parse.y (load_fcn_from_file, parse_fcn_file):
+	New arg, dispatch_type.
+	(parse_fcn_file): Protect current_class_name and set it to
+	dispatch_type before parsing function.
+	(load_fcn_from_file): If dispatch_type is not empty, call
+	load_path::find_method instead of load_path::find_fcn.
+	* parse.h: Fix decls for extern functions.
+
+	* lex.h (lexical_feedback::parsing_class_method): New data member.
+	* lex.l (lexical_feedback::init): Initialize it.
+	(lookup_identifier): Check it and set sym_name accordingly.
+
+	* ov-usr-fcn.h (octave_user_function::mark_as_class_constructor,
+	octave_user_function::is_class_constructor,
+	octave_user_function::mark_as_class_method,
+	octave_user_function::is_class_method): New functions.
+	(octave_user_function::class_constructor,
+	octave_user_function::class_method): New data members.
+	* ov-usr-fcn.cc (octave_user_function::octave_user_function):
+	Initialize them.
+
+	* load-path.h, load-path.cc: Use typedefs to simplify template decls.
+	Use fcn consistently instead of function.
+
+	2007-05-03  John W. Eaton  <jwe@octave.org>
+
+	* ov-class.cc (Fclass): Move here.
+	* ov-typeinfo.cc: From here.
+
+	* input.cc (octave_gets): Call load_path::update if user input
+	contains something other than one of the characters " \t\n\r".
+
+	* ov-class.cc, ov-class.h: New files.
+	* Makefile.in: Add them to the appropriate lists.
+
+	* load-path.cc (genpath): Skip directories beginning with "@".
+	(load_path::dir_info::get_file_list):  Don't return anything.
+	Call get_private_function_map here.
+	(load_path::dir_info::initialize): Not here.
+	(load_path::dir_info_::get_method_file_map): New function.
+	(load_path::method_map): New data member.
+	(load_path::do_clear): Also clear method_map.
+	(load_path::do_add): Also call add_to_method_map.
+	(load_path::do_update): Also clear method_map and call
+	(load_path::do_find_method): New function.
+	(load_path::do_add_to_method_map): New function.
+	(load_path::move_fcn_map, load_path::move_method_map): New functions.
+	(load_path::move): Use them.
+	(load_path::remove_fcn_map, load_path::remove_method_map):
+	New functions.
+	(load_path::remove): Use them.
+	* load-path.h: Provide/fix decls.
+	(load_path::find_method): New static function.
+
+	* Makefile.in (%.df : %.cc): Use mv instead of
+	$(simple-move-if-change-rule).
+
+2007-12-21  John W. Eaton  <jwe@octave.org>
+
+	Version 3.0.0 released.
+
+	* version.h (OCTAVE_VERSION): Now 3.0.0.
+	(OCTAVE_API_VERSION): Now api-v32.
+	(OCTAVE_RELEASE_DATE): Now 2007-12-21.
+
+2007-12-19  Thomas Kasper  <ThomasKasper@gmx.net>
+
+	* OPERATORS/op-scm-cs.cc (DEFBINOP (pow)): Extract complex value
+	from second arg.
+
+2007-12-12  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/sparse.cc (Fsparse): Check for scalar arguments
+	for 2 argument version.
+
+2007-12-12  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (class axes) Add the layer property.
+	* graphics.cc (class axes) Ditto.
+
+	* graphics.cc (gh_manager::get_handle): Use ceil instead of trunc.
+
+2007-12-11  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.19+.
+
+2007-12-11  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.19.
+	(OCTAVE_API_VERSION): Now api-v31.
+	(OCTAVE_RELEASE_DATE): Now 2007-12-11.
+
+	* graphics.cc (make_graphics_object):
+	If successful, call __request_drawnow__.
+
+	* input.cc (Vgud_mode): New static variable.
+	(F__gud_mode__): New function.
+	(get_user_input): If debug and Vgud_mode, print location info in
+	format for Emacs GUD mode.
+
+2007-12-11  David Bateman  <dbateman@free.fr>
+
+	* OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc,
+	OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc,
+	OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc,
+	OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc,
+	OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc: Privilege
+	conversion to dense matrices for compatibility.
+
+	* DLD-FUNCTIONS/sparse.cc (FSparse): Remove the mutate flag, as
+	default bahavior is now to keep matrix sparse always.
+
+	* graphics.cc (axes::properties::properties):
+	Initialize xcolor, ycolor, and zcolor to (0, 0, 0).
+
+	* graphics.h.in (gh_manager::next_handle): Now double.
+	* graphics.cc (gh_manager::get_handle, gh_manager::gh_manager):
+	Set fractional part of next_handle to a random value.
+
+2007-12-10  John W. Eaton  <jwe@octave.org>
+
+	* ov-cell.cc (octave_cell::all_strings): Handle empty elements.
+	Handle N-d cell arrays.
+
+	* DLD-FUNCTIONS/fsolve.cc (Ffsolve):
+	For compatibility, return [x, fval, info] instead of [x, info, msg].
+ 	Move tests here from test/test_nonlin.m.
+
+	* OPERATORS/op-cm-s.cc: Define function for el_mul with
+	DEFNDBINOP_OP, not DEFBINOP_OP.
+
+	* OPERATORS/op-s-cm.cc: Define functions for el_and and el_or
+	operators with DEFNDBINOP_FN.
+
+	* oct-hist.cc (default_history_file): Use file_ops::concat.
+	* load-path.cc (dir_info::initialize, dir_info::get_file_list,
+	load_path::do_find_fcn, load_path::do_find_file, genpath,
+	execute_pkg_add_or_del, load_path::do_find_first_of,
+	load_path::do_find_all_first_of): Likewise.
+
+	* help.cc (Flookfor): Avoid doubling directory separator.
+	* dirfns.cc (Fmkdir): Likewise.
+
+	* pt-mat.cc (tree_matrix::rvalue): Produce sq_string if any
+	strings are sq_string objects.
+
+2007-12-10  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in (data_property::data): Declare as NDArray instead
+	of Matrix.  Change all uses.
+
+2007-12-10  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.h.in (class figure) Add the color property.
+	* graphics.cc (class figure) Ditto.
+
+2007-12-07  David Bateman  <dbateman@free.fr>
+
+	* data.cc (Fnorm): Don't return a scalar stored as a sparse
+	matrix. Convert it to a scalar.
+
+	* graphics.cc (check_limit_val): Delete.
+	(check_limit_vals): Simplify and no longer use check_limit_val.
+
+2007-12-05  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.18+.
+
+2007-12-05  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.18.
+	(OCTAVE_API_VERSION): Now api-v30.
+	(OCTAVE_RELEASE_DATE): Now 2007-12-05.
+
+2007-12-04  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (INCLUDES): Add builtins.h to the list.
+
+	* oct-hist.cc (default_history_file): Use += instead of
+	push_back to append character to std::string object.
+
+	* Makefile.in (LIBDLFCN): Delete all uses.
+
+	* toplev.cc (octave_config_info): Remove LIBDLFCN and
+	DLFCN_INCFLAGS from the list.
+	* oct-conf.h.in (OCTAVE_CONF_DLFCN_INCFLAGS, OCTAVE_CONF_LIBDLFCN):
+	Delete.
+
+	* error.cc (Ferror): Handle error id.
+
+	* load-save.cc (Fsave, Fload): Doc fixes.
+	From Marco Caliari <caliari@sci.univr.it>.
+
+2007-12-04  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.h.in (base_properties::get_type
+	base_properties::get___modified__,
+	base_properties::get___myhandle__): New functions.
+
+2007-12-04  Christoph Mayer  <Christoph.Mayer@dlr.de>.
+
+	* toplev.h (clean_up_and_exit, recover_from_exception,
+	do_octave_atexit, global_command, curr_parent_function):
+	Tag with OCTINTERP_API.
+
+2007-12-03  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/luinc.cc: Make tests conditional on HAVE_UMFPACK.
+	* DLD-FUNCTIONS/spqr.cc: Make tests conditional on HAVE_CXSPARSE.
+
+	* DLD-FUNCTIONS/regexp.cc: Use "%!testif" blocks for conditional
+	tests on PCRE.
+
+	* graphics.cc (class axes): Add color and activepositionproperty
+	properties to axis objects.
+	* graphics.h.in (class axes): ditto.
+
+	* DLD-FUNCTIONS/regexp.cc: Also include sys/types.h for regexp.
+
+2007-11-30  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/sort.cc (operator < (const Complex&, const Complex&),
+	operator > (const Complex&, const Complex&)):
+	Pass args by const reference, not value.
+
+	* data.cc, matherr.c, pr-output.cc, sysdep.cc,
+	DLD-FUNCTIONS/__dsearchn__.cc, DLD-FUNCTIONS/minmax.cc,
+	DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/sort.cc,
+	DLD-FUNCTIONS/tsearch.cc: Include lo-math.h instead of cmath
+	or math.h.
+
+2007-11-30  Moritz Borgmann  <octave@moriborg.de>
+
+	* ls-mat5.h (mat5_data_type): Delete trailing comma in enum decl.
+	* oct-stream.cc (octave_base_stream::do_printf): Use
+	OCTAVE_EMPTY_CPP_ARG to avoid annoying Sun compiler warning.
+	* OPERATORS/op-sbm-sbm.cc (DEFDBLCONVFN): Delete useless macro
+	invocation.
+
+	* DLD-FUNCTIONS/typecast.cc (typecast): No longer static.
+
+2007-11-30  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (updating_axis_limits): New static variable.
+	(check_limit_val, check_limit_vals, get_axis_limits): New functions.
+	(axes::update_axis_limits): Make it work.
+	* graphics.h.in (base_properties::get_children): New function.
+	(base_properties::get_xdata, base_properties::get_ydata,
+	base_properties::get_zdata, base_properties::get_ldata,
+	base_properties::get_udata, base_properties::get_xldata,
+	base_properties::get_xudata, base_properties::get_cdata,
+	base_properties::get_properties (void) const):
+	New virtual functions.
+	(graphics_object::get_xdata, graphics_object::get_ydata,
+	graphics_object::get_zdata, graphics_object::get_ldata,
+	graphics_object::get_udata, graphics_object::get_xldata,
+	graphics_object::get_xudata, graphics_object::get_cdata,
+	graphics_object::get_properties (void) const,
+	root_figure::get_properties (void) const,
+	figure::get_properties (void) const,
+	axes::get_properties (void) const,
+	line::get_properties (void) const,
+	text::get_properties (void) const,
+	image::get_properties (void) const,
+	patch::get_properties (void) const,
+	surface::get_properties (void) const)): New functions.
+	(radio_property::radio_property (const radio_values&)):
+	Provide	default value for argument.
+	(radio_property::radio_property (const radio_values&, const
+	std::string&)): Delete.
+	(axes::xlimmode, axes::ylimmode, axes::zlimmode, axes::climmode,
+	axes::xscale, axes::yscale, axes::zscale): Declare as
+	radio_property instead of octave_value values.  Adjust all uses.
+
+2007-11-29  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (octave_print_internal_template (std::ostream&,
+	const octave_int<T>&, bool)): Rename from octave_print_internal.
+	(PRINT_INT_SCALAR_INTERNAL): New macro.  Use it to define
+	non-template functions for printing scalar octave_int values.
+	(octave_print_internal_template (std::ostream&, const intNDArray<T>&,
+	bool, int)): Rename from octave_print_internal.
+	(PRINT_INT_ARRAY_INTERNAL): New macro.  Use it to define
+	non-template functions for printing scalar octave_int values.
+	* pr-output.h: Declare non-template functions for printing
+	octave_int scalar and array values.
+	Delete declarations of template funtions for printing octave_int
+	scalar and array values.
+
+2007-11-28  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (base_properties::update_axis_limits,
+	axes::update_axis_limits): New functions.
+	* graphics.h.in (class data_property): New class.
+	(graphics_object::update_axis_limits): New function.
+	(base_graphics_object::update_axis_limits): New virtual function.
+	(base_properties::update_axis_limits, axes::update_axis_limits):
+	Provide decls.
+	(class line, class image, class patch, class surface): Use it
+	instead of octave_value for data properties.  Tag data properties
+	with "l" modifier.
+	(class axes): Tag scale properties with "l" modifier.
+	* genprops.awk: Handle "l" modifier.
+
+	* mkbuiltins: Emit #include "builtins.h" for the builtins.cc file.
+	From Christoph Mayer <Christoph.Mayer@dlr.de>.
+
+	* TEMPLATE-INST/Array-tc.cc (resize_fill_value<octave_value>):
+	Delete.
+
+	* Cell.cc (Cell::Cell (const dim_vector&, const string_vector&, bool)):
+	Initialize undefined values to resize_fill_value ().
+
+2007-11-27  John W. Eaton  <jwe@octave.org>
+
+	* TEMPLATE-INST/Array-tc.cc (resize_fill_value<octave_value>):
+	Tag inline.  From Moritz Borgmann <octave@moriborg.de>.
+
+	* pt-bp.cc (tree_breakpoint::visit_decl_command): Also check line
+	number of cmd.
+	* pt-decl.cc (tree_global_command::eval, tree_static_command::eval):
+	Insert MAYBE_DO_BREAKPOINT here.
+
+	* error.cc (Fwarning): If setting state "all" to "error", leave
+	Octave:matlab-incompatible and Octave:single-quote-string warning
+	states unchanged.
+	(warning_enabled): Allow individual warning states to override
+	"warning error all".
+
+	* octave.cc (execute_eval_option_code, execute_command_line_file):
+	Handle interrupts.
+	* toplev.cc (recover_from_exception): Now extern.
+	* toplev.h (recover_from_exception): Provide decl.
+
+	* pt-idx.cc (tree_index_expression::lvalue): Treat object == []
+	the same as undefined.
+
+2007-11-26  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (DO_DOUBLE_CONV): Always use long.
+
+	* oct-stream.cc (do_write): Call float_value and double_value on
+	octave_int<T> objects instead of relying on conversion operators.
+
+	* ls-mat5.cc (read_mat5_binary_element, OCTAVE_MAT5_INTEGER_READ):
+	Call double_value on octave_int<T> objects
+	instead of relying on conversion operator.
+	(read_mat5_binary_file_header):
+	Call char_value on octave_int<T> objects
+	instead of relying on conversion operator.
+	(read_mat5_binary_element):
+	Call bool_value on octave_int<T> objects
+	instead of relying on conversion operator.
+
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::double_value,
+	OCTAVE_VALUE_INT_MATRIX_T::scalar_value,
+	OCTAVE_VALUE_INT_MATRIX_T::matrix_value,
+	OCTAVE_VALUE_INT_MATRIX_T::complex_matrix_value,
+	OCTAVE_VALUE_INT_MATRIX_T::array_value,
+	OCTAVE_VALUE_INT_MATRIX_T::complex_array_value,
+	OCTAVE_VALUE_INT_SCALAR_T::double_value,
+	OCTAVE_VALUE_INT_SCALAR_T::scalar_value,
+	OCTAVE_VALUE_INT_SCALAR_T::matrix_value,
+	OCTAVE_VALUE_INT_SCALAR_T::complex_matrix_value,
+	OCTAVE_VALUE_INT_SCALAR_T::array_value,
+	OCTAVE_VALUE_INT_SCALAR_T::complex_array_value,
+	Call double_value on octave_int<T> objects
+	instead of relying on conversion operator.
+	(OCTAVE_VALUE_INT_MATRIX_T::bool_array_value,
+	OCTAVE_VALUE_INT_SCALAR_T::bool_array_value):
+	Call bool_value on octave_int<T> objects
+	instead of relying on conversion operator.
+	(OCTAVE_VALUE_INT_MATRIX_T::char_array_value,
+	OCTAVE_VALUE_INT_SCALAR_T::char_array_value):
+	Call char_value on octave_int<T> objects
+	instead of relying on conversion operator.
+
+2007-11-26  David Bateman  <dbateman@free.fr>
+
+	* Sparse-op-defs.h (SPARSE_BASE_REDUCTION_OP): Check that the fill
+	value is not zero before creating the matrices.
+
+	* graphics.cc (class axes): Add the {x|y|z}color color property.
+	* graphics.h.in (class axes): ditto.
+
+	* ov-base.cc (Vsparse_auto_mutate, Fsparse_auto_mutate): New
+	internal variable and built-in function to set it.
+	* ov-base.h (extern bool Vsparse_auto_mutate): Export internal
+	variable to other functions.
+	* ov-re-sparse.cc (octave_sparse_matrix::try_narrowing_conversion
+	(void)), ov-cx-sparse.cc
+	(octave_sparse_complex_matrix::try_narrowing_conversion (void)),
+	ov-bool-sparse.cc
+	(octave_sparse_bool_matrix::try_narrowing_conversion (void)):
+	Use Vsparse_auto_mutate flag to determine whether to convert
+	sparse matrices to full matrices if that saves space.
+
+	* DLD-FUNCTIONS/minmax.cc (MINMAX_DOUBLE_BODY): New version of
+	MINMAX_BODY macro without the initialization.
+	(MINMAX_INT_BODY): Macro for min/max for the integer types
+	(MINMAX_BODY): New macro that calls the appropriate instantiation
+	of the other two macros.
+
+	* graphics.cc (class axes): Add __colorbar__ property.
+	* graphics.h.in (class axes): ditto.
+
+	* data.cc (Fnorm): Document the "inf" string argument for matrice
+	and vectors and the "fro" argument for vectors.
+
+	* graphics.h.in (class figure): Add __enhanced__ property to cache
+	whether the terminal supports enhanced mode. Add interpreter
+	property to all text classes, to determine the renderer for the
+	text.
+	* graphics.cc (class figure): ditto.
+
+2007-11-26  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.cc (string_properties): delete class
+	(property_name): rename class to caseless_str.
+	(radio_values::possible_vals): change type to caseless_str.
+
+2007-11-26  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* builtins.h (install_builtins): Tag with OCTINTERP_API.
+	* toplev.h (octave_interpreter_ready, octave_initialized): Likewise.
+
+2007-11-14  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mex::foreign_memlist): New data member.
+	(mex::mark_foreign, mex::unmark_foreign): New functions.
+	(mex::free): Don't warn about pointers found in foreign_memlist.
+	(maybe_mark_foreign): New function.
+	(mxArray_octave_value::get_data, mxArray_octave_value::get_ir,
+	mxArray_octave_value::get_jc):
+	Call maybe_mark_foreign on returned pointer.
+
+2007-11-14  David Bateman  <dbateman@free.fr>
+
+	* mex.cc (mxArray_sparse::mxArray_sparse (const mxArray_sparse&)):
+	Also ensure that pr and pi are correctly copied.
+
+2007-11-14  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (@bsd_gcc_kluge_targets_frag@): Delete line for
+	Makefrag.bsd substitution.
+
+	* graphics.h.in (base_properties::tag): New property.
+	(base_properties::get_tag, base_properties::set_tag): New functions.
+	(root_figure::set, root_figure::get, figure::set, figure::get,
+	axes::set, axes::get, line::set, line::get, text::set, text::get,
+	patch::set, patch::get, surface::set, surface::get): Handle tag.
+
+2007-11-14  Joseph P. Skudlarek  <Jskud@Jskud.com>
+
+	* DLD-FUNCTIONS/regexp.cc: Undo previous change.
+
+2007-11-14  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mex::mark, mex::unmark): Now public.
+	(mex::persistent): Delete.
+	(mexMakeArrayPersistent): Call maybe_unmark_array instead of
+	mex::persistent.
+	(mexMakeMemoryPersistent): Call maybe_unmark instead of
+	mex::persistent.
+	(maybe_unmark (void *)): New function.
+	(mxSetDimensions, mxSetPr, mxSetPi, mxSetData, mxSetImagData,
+	mxSetIr, mxSetJc): Use it.  From David Bateman.
+
+2007-11-13  Joseph P. Skudlarek  <Jskud@Jskud.com>
+
+	* DLD-FUNCTIONS/rand.cc (Frand): Update URL reference in doc string.
+
+2007-11-12  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in, graphics.cc (class text): Add the fontangle and
+	fontweight properties. Add string_property class to handle the
+	string radio values.
+
+2007-11-12  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.17+.
+
+2007-11-12  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in, graphics.cc (class text): Add the fontname and
+	fontsize properties.
+
+2007-11-10  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.17.
+	(OCTAVE_API_VERSION): Now api-v29.
+	(OCTAVE_RELEASE_DATE): Now 2007-11-10.
+
+2007-11-09  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__gnuplot_raw__.l: Don't add atexit ("closeplot")
+	to PKG_ADD file.
+
+2007-11-09  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc, graphics.h.in (class patch): Add the field "keylabel".
+
+	* data.cc (Fcputime) [__WIN32__]: Correct scaling of sys and usr times.
+
+	* graphics.cc (is_handle): Handle must be a real scalar.
+
+2007-11-09  Joseph P. Skudlarek  <Jskud@Jskud.com>
+
+	* data.cc (Fislogical): Fix typo in documentation entry.
+
+2007-11-08  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__gnuplot_raw__.l (F__gnuplot_save_data__):
+	Note obsolescence in doc string.
+	(WARN_OBSOLETE): New macro
+	(F__gnuplot_save_data__, Fgnuplot_command_plot,
+	Fgnuplot_command_replot, Fgnuplot_command_splot,
+	Fgnuplot_command_using, Fgnuplot_command_with,
+	Fgnuplot_command_axes, Fgnuplot_command_title,
+	Fgnuplot_command_end, Fgnuplot_use_title_option,
+	F__clear_plot_window__, Fcloseplot, Fpurge_tmp_files,
+	F__gnuplot_raw__, F__gnuplot_send_inline_data__, F__gnuplot_set__,
+	F__gnuplot_show__, F__gnuplot_plot__, F__gnuplot_splot__,
+	F__gnuplot_replot__): Use WARN_OBSOLETE.
+
+2007-11-07  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/regexp.cc: Handle HAVE_PCRE_PCRE_H.  Check
+	HAVE_PCRE_H instead of HAVE_PCRE to decide whether to include pcre.h.
+
+	* DLD-FUNCTIONS/__gnuplot_raw__.l (Fgnuplot_command_plot,
+	Fgnuplot_command_replot, Fgnuplot_command_splot,
+	Fgnuplot_command_using, Fgnuplot_command_with,
+	Fgnuplot_command_axes, Fgnuplot_command_title,
+	Fgnuplot_command_end, Fgnuplot_use_title_option,
+	F__clear_plot_window__, Fcloseplot, Fpurge_tmp_files,
+	F__gnuplot_raw__, F__gnuplot_send_inline_data__, F__gnuplot_set__,
+	F__gnuplot_show__, F__gnuplot_plot__, F__gnuplot_splot__,
+	F__gnuplot_replot__): Note obsolescence in doc string.
+
+2007-11-06  Kai Habel  <kai.habel@gmx.de>
+
+	* graphics.h.in (class surface::properties): New properties,
+	cdata, facecolor, facealpha, edgecolor, linestyle,
+	linewidth, marker, markeredgecolor, markerfacecolor, markersize.
+	* graphics.cc (surface::properties::properties,
+	surface::properties::set, surface::properties::get,
+	surface::properties::factory_defaults): Handle new properities.
+
+2007-11-06  David Bateman  <dbateman@free.fr>
+
+	* data.cc (DATA_REDUCTION): Handle the 'native' and 'double'
+	arguments of the Fsum function.
+	* OPERATORS/op-bm-bm.cc (matrix_to_bool_matrix,
+	scalar_to_bool_matrix): New type conversion functions.
+	(install_bm_bm_ops): Install new type conversions functions.
+
+2007-11-06  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* toplev.cc (Fsystem) [__WIN32__ && ! __CYGWIN__]:
+	Quote the complete command.
+
+2007-11-06  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (Fnorm): New tests.
+
+	* defun-int.h (DEFINE_FUNX_INSTALLER_FUN3): Don't install function
+	if check_version produces an error.
+
+2007-11-05  John W. Eaton  <jwe@octave.org>
+
+	* pt-idx.cc (tree_index_expression::lvalue): Try to do a better
+	job of computing the number of elements in lvalue expressions when
+	the last indexing element is ".".
+
+2007-11-02  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (fopen_mode_to_ios_mode): Use std::ios::app instead
+	of std::ios::ate.
+
+2007-11-02  Olli Saarela  <Olli.Saarela@kcl.fi>
+
+	* input.cc, pr-output.cc, bitfcns.cc, DLD-FUNCTIONS/time.cc:
+	Fix broken @examples in help texts.
+
+2007-10-31  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (Fnorm): Avoid warning about p_val possibly being used
+	uninitialized.
+
+	* version.h (OCTAVE_VERSION): Now 2.9.16+.
+
+2007-10-31  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.16.
+	(OCTAVE_API_VERSION): Now api-v28.
+	(OCTAVE_RELEASE_DATE): Now 2007-10-31.
+
+2007-10-31  Muthiah Annamalai  <muthuspost@gmail.com>
+
+	* pt-assign.h (tree_simple_assignment::op_type,
+	tree_multi_assignment::op_type): New functions.
+	* pt-unop.h (tree_unary_expression::op_type): New function.
+
+2007-10-31  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (line::properties::get): Fix property name
+	(markerface -> markerfacecolor).
+
+	* Makefile.in (INCLUDES): Add debug.h to the list.
+
+2007-10-30  John Swensen  <jpswensen@comcast.net>
+
+	* debug.h: New file.
+	* debug.cc (parse_dbfunction_params, do_find_bkpt_list,
+	intmap_to_ov): New functions.
+	(Fdbstop, Fdbclear): Use parse_dbfunction_params.
+	Improve compatibility.
+	(Fdbstatus): Improve compatibility.
+
+	* help.cc (do_which): No longer static.
+	* help.h: Provide decl.
+
+2007-10-30  David Bateman  <dbateman@free.fr>
+
+	* symtab.cc: Doc fixes for small book format.
+
+2007-10-30  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (fopen_mode_to_ios_mode): Handle 'W' as 'w' and 'R'
+	as 'r', but warn about them.
+
+2007-10-29  Thomas Treichl  <Thomas.Treichl@gmx.net>
+
+	* data.cc: Include sytime.h, sys/types.h, and sys/resource.h.
+
+2007-10-25  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (figure::properties::set_currentaxes):
+	Allow currentfigure to be NaN.
+
+2007-10-25  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* DLD-FUNCTIONS/__contourc__.cc: Use unsigned int instead of uint.
+	(drawcn): Use 1 << k instead of pow (2, k).
+
+2007-10-25  John W. Eaton  <jwe@octave.org>
+
+	* symtab.h (symbol_record::TYPE): Delete trailing comma in enum decl.
+
+	* ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Use
+	OCTAVE_EMPTY_CPP_ARG to avoid annoying Sun compiler warning.
+
+	* Makefile.in (graphics.h): Use $(AWK) instead of awk.
+
+	* DLD-FUNCTIONS/time.cc (Ftime, Fmktime): Avoid unnecessary cast.
+
+	* data.cc (Ftic, Ftoc): Call double_value on octave_time objects
+	instead of relying on conversion operator.
+	* ov.cc (octave_value::octave_value (octave_time)): Likewise.
+
+	* variables.cc (symbol_out_of_date): Use explicit conversion to
+	time_t instead of relying on conversion operator.
+	* ov-fcn-handle.cc (octave_fcn_handle::subsref): Likewise.
+
+	* data.cc (tic_toc_timestamp): Rename from __tic_toc_timestamp__.
+	Change all uses.
+
+2007-10-24  David Bateman  <dbateman@free.fr>
+
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::OCTAVE_VALUE_INT_MATRIX_T
+	(const ArrayN<OCTAVE_INT_T>&)): New constructor.
+	* ov.cc (octave_value::octave_value(const ArrayN<T>) with T being
+	octave_int8, octave_uint8, octave_int16, octave_uint16,
+	octave_int32, octave_uint32, octave_int64, octave_uint64): New
+	constructors.
+	* ov.h (octave_value::octave_value(const ArrayN<T>) with T being
+	octave_int8, octave_uint8, octave_int16, octave_uint16,
+	octave_int32, octave_uint32, octave_int64, octave_uint64):
+	Declare them.
+	* DLD-FUNCTIONS/sort.cc (template class octave_sort<T>,
+	template class vec_index<T>, template class
+	octave_sort<vec_index<T> *>,  with T being
+	octave_int8, octave_uint8, octave_int16, octave_uint16,
+	octave_int32, octave_uint32, octave_int64, octave_uint64): New
+	instantiations of sort template classes.
+	(Fsort): Use them.
+
+2007-10-24  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (root_figure::properties::set_currentfigure):
+	Allow currentfigure to be NaN.
+
+	* pt-idx.cc (tree_index_expression::lvalue): Correctly compute
+	number of elements in lvalue expression when last indexing
+	element is ".".
+
+2007-10-23  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (is_handle (const graphics_handle&)): New function.
+	(gh_manager::do_free, reparent, base_properties::set_parent,
+	properties::get_title, properties::get_xlabel,
+	properties::get_ylabel, properties::get_zlabel,
+	properties::remove_child, make_graphics_object, F__go_figure__,
+	F__go_delete__, __go_axes_init__): Call OK on graphics handle
+	object instead of relying on implicit conversion operator.
+	* graphics.h.in (graphics_handle::operator double ()): Delete.
+	(graphics_handle::operator bool ()): Delete.
+	(gh_manager::do_handle_list, gh_manager::do_figure_handle_list,
+	base_properties::adopt): Call VALUE on graphics handle object
+	instead of relying on implicit conversion operator.
+
+	* ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Call
+	DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA2 with "( )" as arg list
+	instead of "()".
+
+	* mxarray.h.in (mxClassID): Delete trailing comma in enum decl.
+
+	* symtab.h (symbol_table::symbol_table): Reduce default table size
+	to 64.
+
+2007-10-22  Kim Hansen  <kimhanse@gmail.com>
+
+	* unwind-prot.cc: Include <cstring>.
+
+2007-10-22  David Bateman  <dbateman@free.fr>
+
+	* data.cc (Ftic, Ftoc, Fcputime): New builtin versions of the
+	benchmarking functions for speed.
+	* oct-map.cc (Octave_map::squeeze, Octave_map::permute): New methods.
+	(Octave_map::index (const octave_value_list&, bool)): Add resize_ok
+	argument, define as const and use const_iterator internally.
+	(Octave_map::index (idx_vector&, ...), Octave_map::index (Array
+	<idx_vector>&, ...)): New forms of the index function.
+	* oct-map.h (squeeze, permute, indx (const octave_value_list&, bool),
+	index (idx_vector&, ...), index (Array <idx_vector>&, ...)): Add
+	or update declaration.
+	* ov-struct.cc (octave_struct::do_index_op (const octave_value_list&,
+	bool)): New method.
+	* ov-struct.h (do_index_op (const octave_value_list&, bool)): Declare
+	it.
+	(squeeze (void), permute (const Arra<int>&, bool): New methods.
+
+2007-10-19  Kai Habel  <kai.habel@gmx.de>
+
+	* DLD-FUNCTIONS/__contourc__.cc (add_point): Rename from
+	cl_add_point.  Change all uses.
+	(end_contour): Rename from cl_end_contour.  Change all uses.
+	(start_contour): Rename from cl_start_contour.  Change all uses.
+	(drawcn): Rename from cl_drawcn.  New algorithm for locating contours.
+	(mark_facets): New function.
+	(cntr): Rename from cl_cntr.  Change all uses.  New algorithm for
+	locating contours.
+
+2007-10-19  John W. Eaton  <jwe@octave.org>
+
+	* ov-cell.cc (octave_cell::subsasgn): If RHS is cs-list, don't
+	fail if shape of LHS is different.
+	* ov-struct.cc (octave_struct::subsasgn): Likewise.
+
+2007-10-19  Olli Saarela  <Olli.Saarela@kcl.fi>
+
+	* help.cc (Flookfor): Call print_usage instead of usage.
+	* DLD-FUNCTIONS/cellfun.cc (Fmat2cell): Likewise.
+
+2007-10-17  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/spchol.cc (Fsymbfact): Delete special code for METIS.
+
+2007-10-17  Gabriele Pannocchia  <g.pannocchia@ing.unipi.it>
+
+	* DLD-FUNCTIONS/__qp__.cc (qp): Fix check for Wact(j).
+
+2007-10-15  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* error.cc (Ferror): Make text fit on pages when using smallbook.
+	* load-save.cc (Fsave_header_format_string): Ditto.
+	* ov-struct.cc (Fcell2struct): Ditto.
+	* DLD-FUNCTIONS/besselj.cc (Fairy): Ditto.
+	* DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): Ditto.
+
+2007-10-15  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (axes::properties::get): Fix typo.
+
+2007-10-13  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.15+.
+
+2007-10-13  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.15.
+	(OCTAVE_API_VERSION): Now api-v27.
+	(OCTAVE_RELEASE_DATE): Now 2007-10-13.
+
+2007-10-13  David Bateman  <dbateman@free.fr>
+
+	* graphics.h.in (class patch): Add the faces and vertices properties.
+	* graphics.cc (patch::properties::properties): Initialize faces
+	and vertices.
+	(patch::properties::get): Also fetch faces and vertices.
+	(patch::properties::factory_defaults): Set faces and vertices.
+
+2007-10-12  John W. Eaton  <jwe@octave.org>
+
+	* Change copyright notices in all files that are part of Octave to
+	GPLv3 or any later version.
+
+2007-10-11  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/urlwrite.cc (urlget): Disable use of EPSV mode.
+
+2007-10-11  Brian Gough  <bjg@network-theory.co.uk>
+
+	* DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/regexp.cc, dirfns.cc,
+	input.cc: Spelling fixes.
+
+2007-10-10  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-sbm-sbm.cc (bool_matrix_to_double_matrix):
+	New conversion function.
+	(install_sbm_sbm_ops): Install it.
+
+	* ov-re-mat.cc (double): Handle sparse as a special case.
+
+2007-10-10  Olli Saarela  <Olli.Saarela@kcl.fi>
+
+	* data.cc, debug.cc, dirfns.cc, error.cc, file-io.cc, help.cc,
+	load-save.cc, ov-fcn-inline.cc, parse.y, pr-output.cc, symtab.cc,
+	syscalls.cc, toplev.cc, variables.cc, DLD-FUNCTIONS/bsxfun.cc,
+	DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/fft.cc,
+	DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftw.cc,
+	DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/lsode.cc,
+	DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc,
+	DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc,
+	DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spchol.cc,
+	DLD-FUNCTIONS/splu.cc, DLD-FUNCTIONS/spparms.cc: Spelling fixes.
+
+2007-10-10  Kim Hansen  <kimhanse@gmail.com>
+
+	* DLD-FUNCTIONS/lpsolve.cc: Delete.
+	* Makefile.in (DLD_XSRC): Remove it from the list.
+
+	* data.cc (Fsqueeze): Document 2d behaviour.
+	* ov-range.h (octave_range::squeeze): New function.
+
+2007-10-09  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/urlwrite.cc (urlget_cleanup): New function.
+	(urlget): Protect call to curl_easy_perform with
+	BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE and
+	END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE.
+
+2007-10-09  David Bateman  <dbateman@free.fr>
+
+	* input.cc (accept_line): Drop this function and remove automatic
+	insertion of closing quotes as the transpose operator confuses it.
+	(initialize_command_input): Remove accept_line from here as well.
+
+2007-10-09  John W. Eaton  <jwe@octave.org>
+
+	* ov-mapper.cc (octave_mapper::apply): If possible, use
+	d_d_map_fcn to handle complex values which have imag(z) == 0.
+
+	* DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread) [! HAVE_CURL]:
+	Throw error instead of returning empty string hiding error message
+	in third return value.
+	(progress_func): Delete.
+	(Furlread): Don't set progress callback for curl.
+	(write_data, form_query_string, urlget): Now static.
+
+2007-10-08  David Bateman  <dbateman@free.fr>
+
+	*  input.cc (quoting_filename): Function to add a leading quote to
+	a string if needed.
+	(accept_line): Function to check if a string needs a closing quote
+	before calling the rl_newline function.
+	(initialize_command_input): Initialize completer_quote_characters,
+	filename_quote_characters, quoting_function,
+	user_accept_line_function.
+
+	* data.cc (template <class T> static make_diag (...)): New
+	template class version of make_diag. Make other make_diag
+	functions depend on it.
+	( static octave_value make_diag (const octave_value&,
+	octave_idx_type)): Treat all possible internal Octave types.
+
+2007-10-08  John W. Eaton  <jwe@octave.org>
+
+	* load-save.cc 	(save_vars, dump_octave_core):
+	Don't pass INFNAN_WARNED to do_save.
+	(do_save): Delete unused arg, INFNAN_WARNED.
+	Don't pass INFNAN_WARNED to save_ascii_data.
+	* ls-oct-ascii.cc (save_ascii_data_for_plotting):
+	Don't pass INFNAN_WARNED to save_ascii.
+	(save_ascii_data): Delete unused arg, INFNAN_WARNED.
+
+	* ov.h (octave_value::save_ascii): Delete unused arg, INFNAN_WARNED.
+	* ov-base-int.cc (octave_base_int_matrix<T>::save_ascii,
+	octave_base_int_scalar<T>::save_ascii): Likewise.
+	* ov-base-sparse.cc (octave_base_sparse<T>::save_ascii): Likewise.
+	* ov-base.cc (octave_base_value::save_ascii): Likewise.
+	* ov-bool-mat.cc (octave_bool_matrix::save_ascii): Likewise.
+	* ov-bool.cc (octave_bool::save_ascii): Likewise.
+	* ov-cell.cc (octave_cell::save_ascii): Likewise.
+	* ov-fcn-handle.cc (octave_fcn_handle::save_ascii): Likewise.
+	* ov-fcn-inline.cc (octave_fcn_inline::save_ascii): Likewise.
+	* ov-list.cc (octave_list::save_ascii): Likewise.
+	* ov-struct.cc (octave_struct::save_ascii): Likewise.
+	* ov-str-mat.cc (octave_char_matrix_str::save_ascii): Likewise.
+	* ov-range.cc (octave_range::save_ascii): Likewise.
+
+	* ov-scalar.cc (octave_scalar::save_ascii): Remove warning about
+	reloading inf/nan values.  Delete unused arg, INFNAN_WARNED.
+	* ov-complex.cc (octave_complex::save_ascii): Likewise.
+	* ov-re-mat.cc (octave_matrix::save_ascii): Likewise.
+	* ov-cx-mat.cc (octave_complex_matrix::save_ascii): Likewise.
+
+	* ov-fcn-inline.cc (Finline): Use DEFUNX instead of DEFUN.
+
+2007-10-08  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* sighandlers.h (can_interrupt): Tag with OCTINERP_API.
+	* sysdep.h (raw_mode, octave_popen, octave_pclose,
+	same_file_internal): Likewise.
+
+2007-10-06  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_base_stream::do_scanf):
+	Always allow MVAL to re resized if NR > 0.
+	(FINISH_CHARACTER_CONVERSION): Likewise.
+
+	* mappers.cc (install_mapper_functions): Undo previous change.
+	Fix doc string for lgamma.
+	(xzlgamma): Delete.
+
+2007-10-05  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h.in (axes::properties): New property, colororder.
+	* graphics.cc (default_colororder): New function.
+	(axes::properties::properties, axes::properties::get,
+	axes::properties::set_defaults,
+	axes::properties::factory_defaults, ): Handle colororder.
+
+	* mappers.cc (xzlgamma): New static function.
+	(install_mapper_functions): Pass xzlgamma for c_c_map for lgamma
+	mapper.  Pass 1 for can_ret_cmplx_for_real and set hi to
+	octave_Inf.
+
+2007-10-04  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/symrcm.cc: Move static functions to top of file to
+	avoid forward decls.
+	(Q_enq): Delete unused arg QH.  Change all uses.
+	(Q_deq): Delete unused arg QT.  Change all uses.
+	(find_starting_node): Delete unused local variable J.
+	(H_heapify_min, H_insert, find_starting_node, Fsymrcm):
+	Move local variable decls to point of first use.
+
+	* OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP):
+	Avoid control-reaches-end-of-non-void-function warning.
+
+	* pt-const.cc (tree_constant::dup): Avoid unused parameter warning.
+
+	* pr-output.cc (set_real_format, set_real_matrix_format,
+	set_complex_format, set_complex_matrix_format):
+	Delete unused arg, SIGN.  Change uses.
+
+	* oct-map.cc (Octave_map::Octave_map): Avoid shadow warning.
+
+	* load-save.cc (write_header): Use reinterpret_cast to avoid
+	old-style cast warning.
+
+	* data.cc (do_permute): Delete unused arg, FNAME.  Change all uses.
+
+	* sysdep.cc (w32_set_octave_home, w32_set_quiet_shutdown,
+	MINGW_signal_cleanup):
+	Only define if defined (__WIN32__) && !	defined (_POSIX_VERSION).
+
+2007-10-04  Jason Riedy  <jason@acm.org>
+
+	* ls-mat5.cc (read_mat5_binary_data): Map miUTF16 to miUINT16,
+	miUTF32 to miUINT32.  The matfile format currently states that
+	wide UTF formats are in the same byte order as the integers.
+	(read_mat5_binary_element): Replace all UTF16 and UTF32
+	characters with the high bit set (value >127) by '?' and warn
+	that we've done so.
+
+2007-10-04  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* sysdep.cc (w32_set_octave_home): Base OCTAVE_HOME location on
+	octinterp, not the main exe.
+
+2007-10-03  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (Fnorm): New function.
+	(F__vnorm__): Delete.
+
+2007-10-03  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* DLD-FUNCTIONS/typecast.cc: Include <algorithm>.
+
+2007-10-03  John W. Eaton  <jwe@octave.org>
+
+	* oct-map.cc (Octave_map::Octave_map (const dim_vector&,
+	const string_vector&)): Delete.
+	(Octave_map::Octave_map (const dim_vector&, const Cell&)):
+	New function.
+	* ov-struct.cc (Fstruct): Allow creation of empty struct arrays
+	with field names.
+
+2007-10-01  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.cc ((color_property::color_property (const
+	octave_value& val)): Undo change from 2007-09-26
+	(patch::properties::properties): use the "a" modifier to
+	face_color & edge_color properties
+	(patch::properties::set): Undo change from 2007-09-26
+	* graphics.h.in	(color_property::color_property
+	(const octave_value& val)): Undo change from 2007-09-26
+
+2007-10-01  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* octave.cc (octave_main): Add "--line-editing" option to force
+	readline line editing.
+
+2007-09-28  David Bateman  <dbateman@free.fr>
+
+	* ov-range.h (int8_array_value, int16_array_value, int32_array_value,
+	int64_array_value, uint8_array_value, uint16_array_value,
+	int32_array_value, uint64_array_value): New methods
+
+2007-09-28  Kai Habel  <kai.habel@gmx.de>
+
+	* graphics.h.in (color_property::colormap_property (const Matrix&)):
+	Use floating point math in calculation of colormap.
+
+2007-09-26  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (color_values::str2rgb): accept upper, lower and
+	mixed-case versions of the string representing the color. Allow
+	black defined as "k" and white as "w".
+	(color_property::color_property (const octave_value& val,
+	const radio_values &v)): Modify the constructor to also take a
+	radio_values argument. Use it.
+	(patch::properties::set): Change set_facecolor calls to initialize
+	the color_property argument with the available radio_values.
+	* graphics.h.in (color_property::color_property
+	(const octave_value& val, const radio_values &v)): Also pass a
+	radio_values argument.
+
+	* ov-range.h (sparse_matrix_value, sparse_complex_matrix_value):
+	New methods.
+
+	* mk-pkg-add: Simplfy the autoload commands.
+	* parse.y (Fautoload): Allow bare filename if file is in the same
+	directory as the script from where the autoload command is run.
+
+2007-09-25  Matthias Drochner  <m.drochner@fz-juelich.de>
+
+	* syscalls.cc (Fpopen2): Doc fix.
+	Use "sort -r" instead of "sort -nr" in test.
+
+2007-09-18  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (input_event_hook, Finput_event_hook): Call
+	command_editor::add_event_hook and
+	command_editor::remove_event_hook intstead of
+	command_editor::set_event_hook and
+	command_editor::restore_event_hook.
+
+2007-09-17  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.14+.
+
+2007-09-17  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.14.
+	(OCTAVE_API_VERSION): Now api-v26.
+	(OCTAVE_RELEASE_DATE): Now 2007-09-17.
+
+	* Makefile.in (DISTFILES): Add genprops.awk to the list.
+
+	* ov-typeinfo.h (cat_op_fcn): Third arg in function pointer
+	typedef is now Array<octave_idx_type> instead of Array<int>.
+
+	* file-io.cc (do_stream_open): Use binary mode by default.
+
+2007-09-14  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* genprop.awk: Handle "a" modifier.
+
+2007-09-14  Kai Habel  <kai.habel@gmx.de>
+
+	* graphics.h.in (radio_values::contains): New function.
+	(radio_values::validate): Use it.
+	* graphics.cc (color_property::operator =): Call it instead of
+	validate here.
+
+2007-09-13  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__glpk__.cc (glpk): Pass LPX_FX, not LB_DB, to
+	lpx_set_col_bnds when lb[i] == ub[i].
+	From: Zhi Wang <zcwang@umich.edu>.
+
+	* graphics.h.in (colormap_property::colormap_property):
+	Use jet colormap as default.
+
+2007-09-12  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (text::properties::properties): Default color is
+	black, not white.
+	* graphics.h (text::properties::color): Declare as color_property,
+	not octave_value.
+
+	* graphics.h.in (root_figure::defaults, figure::defaults,
+	axes::defaults, line::defaults, text::defaults, image::defaults,
+	patch::defaults, surface::defaults): New functions.
+	* gripes.cc (gripe_not_implemented): New function.
+	* gripes.h: Provide decl.
+
+2007-09-10  John W. Eaton  <jwe@octave.org>
+
+	* genprops.awk: Add missing newline character at end of file.
+	From Alexander Klimov <alserkli@inbox.ru>.
+
+2007-09-10  David Bateman  <dbateman@free.fr>
+
+	* data.cc (do_cat): Avoid invalid indexing into ra_idx vector.
+
+2007-09-06  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/__delaunay__.cc, DLD-FUNCRIONS/__voronoi__.cc,
+	DLD-FUNCTIONS/convhulln.cc: Avoid variables in global scope
+
+2007-09-06  David Bateman  <dbateman@free.fr>
+
+	* Makefile.in (stamp-prereq): Add graphics.h to the dependency list.
+
+2007-08-31  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (INCLUDES): Remove graphics.h from the list.
+	(DISTFILES): Include graphics.h.in in the list.
+	(genprops.awk): New file.
+	(graphics.h): New rule.
+	(distclean): Remove graphics.h.
+	* graphics.h.in: New file, from graphics.h.
+	(graphics_handle): Now a class instead of typedef.  Adapt all uses.
+	(OCTAVE_GRAPHICS_PROPERTY_INTERNAL, OCTAVE_GRAPHICS_PROPERTY,
+	OCTAVE_GRAPHICS_MUTABLE_PROPERTY): Delete macros.
+	(class root_figure, class figure, class axes, class line, class
+	text, class image, class patch, class surface): Use genprops.awk
+	to generate property declarations and set/get functions.
+	* graphics.h: Delete.
+	* graphics.cc (nan_to_empty, empty_to_nan): Delete.
+	(root_figure::properties::set, figure::properties::set,
+	axes::properties::set, line::properties::set,
+	text::properties::set, image::properties::set,
+	patch::properties::set, surface::properties::set): Call
+	type-specific set functions to set properties.
+	(root_figure::properties::set_currentfigure,
+	figure::properties::set_currentaxes, figure::properties::set_visible,
+	axes::properties::get_title, axes::properties::get_xlabel,
+	axes::properties::get_ylabel,  axes::properties::get_zlabel,
+	axes::properties::set_title, axes::properties::set_xlabel,
+	axes::properties::set_ylabel,  axes::properties::set_zlabel):
+	Define custom versions.
+
+2007-09-06  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/bsxfun.cc: New function.
+	* DLD-FUNCTIONS/typecast.cc: New function.
+	* Makefile.in (DLD_XSRC): Add bsxfun.cc and typecast.cc.
+	* ov.cc (do_cat_op): Modify use of Array<int> to
+	Array<octave_idx_type> and adjust where necessary.
+	* ov.h (do_cat_op): ditto.
+	* data.cc (do_cat): ditto.
+	* pt-mat.cc (tree_matrix::rvalue): ditto.
+
+2007-09-05  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* oct-stream.cc (octave_base_stream::do_printf): Ignore precision
+	portion of format string if printing Inf, NaN, or NA values.
+
+2007-09-05  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/sort.cc (mx_sort_sparse, mx_sort_sparse_indexed):
+	New template classes for sparse sort functions.
+	(Fsort): Use them.
+	* ov.h (octave_value (const Sparse<double>&, const MatrixType&),
+	octave_value (const Sparse<Complex>&, const MatrixType&)): New
+	constructors.
+	* ov.cc (octave_value::octave_value (const Sparse<double>&,
+	const MatrixType&), octave_value::octave_value (const
+	Sparse<Complex>&, const MatrixType&)): Define them.
+	* ov-re-sparse.h (octave_sparse_matrix (const MSparse<double>&,
+	const MatrixType&), octave_sparse_matrix (const Sparse<double>&),
+	octave_sparse_matrix (const Sparse<double>&, const MatrixType&)):
+	New constructors.
+	* ov-cx-sparse.h (octave_sparse_complex_matrix (const MSparse<double>&,
+	const MatrixType&), octave_sparse_complex_matrix (const
+	Sparse<double>&), octave_sparse_complex_matrix (const
+	Sparse<double>&, const MatrixType&)): ditto.
+
+2007-09-04  Gabriele Pannocchia  <g.pannocchia@ing.unipi.it>
+
+	* DLD-FUNCTIONS/__qp__.cc (qp): Use Wact(j) == i - n_eq when
+	checking for blocking constraint.  Don't resize lambda_tmp.  Only
+	compute Y = Aact.pseudo_inverse () if it is needed.
+
+2007-08-31  Michael Goffioul  <michael.goffioul@gmail.com>
+
+	* ls-mat-ascii.cc (get_lines_and_columns): Check beg variable for
+	NPOS to avoid segmentation fault.
+
+	* load-path.cc (load_path::do_find_file): Do not assume paths
+	use forward slashes.
+
+2007-08-30  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.cc (Fpause): Doc fix.
+
+2007-08-30  Gabriele Pannocchia  <g.pannocchia@ing.unipi.it>
+
+	* DLD-FUNCTIONS/__qp__.cc (qp): Resize Wact to n_act-neq, not n_act.
+
+2007-08-29  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (class root_figure::properties):
+	Rename from root_figure::root_figure_properties.
+	(class figure::properties): Rename from figure::figure_properties.
+	(class axes::properties): Rename from axes::axes_properties.
+	(class line::properties): Rename from line::line_properties.
+	(class text::properties): Rename from text::text_properties.
+	(class image::properties): Rename from image::image_properties.
+	(class patch::properties): Rename from patch::patch_properties.
+	(class surface::properties): Rename from surface::surface_properties.
+
+	* base-list.h (octave_base_list::remove): Implement our own
+	remove_if function here.
+
+2007-08-28  John W. Eaton  <jwe@octave.org>
+
+	* graphics.h (base_properties): Move class definition before
+	definition of base_graphics_object class.  Provide forward
+	declaration of base_graphics_object prior to definition of
+	base_properties.
+ 	(base_graphics_object::get_properties): New virtual function.
+	(graphics_object::get_properties, root_figure::get_properties,
+	figure::get_properties, axes::get_properties,
+	line::get_properties, text::get_properties, image::get_properties,
+	patch::get_properties, surface::get_properties): New functions.
+	(root_figure::properties, figure::properties, axes::properties,
+	line::properties, text::properties, image::properties,
+	patch::properties, surface::properties): Data member now private.
+
+2007-08-27  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::do_find_file): Also files with non
+	rooted relative names.
+	* load-save.cc (find_file_to_load): Likewise.  Also handle
+	appending .mat to files with relative names.
+
+	* graphics.cc (base_properties::mark_modified,
+	base_properties::override_defaults,
+	base_properties::delete_children, figure::get_default,
+	axes::get_default): Move definitions here, from graphics.h.
+	* graphics.h (class gh_manager): Move decl to end of file.
+
+	* Cell.h (Cell::Cell (const octave_value_list&)): Create row
+	vector instead of column vector.
+
+	* pt-idx.cc (tree_index_expression::lvalue): Handle [x.a] =
+	... style assignments.
+	* ov-struct.cc (octave_struct::subsasgn): Handle case of RHS as
+	comma-separated list.
+
+	* ov-cell.cc (gripe_failed_assignment): New function.
+	(octave_cell::subsasgn): Call gripe_failed_assignment if assign
+	methods fail.
+
+2007-08-24  David Bateman  <dbateman@free.fr>
+
+	* symtab.cc (void symbol_table::clear (void)): If the record in
+	the symbol table to clear is a user function that is a sub
+	function with a static parent or if the parent is the current
+	parent function, don't delete the record.
+	(void symbol_table::clear_functions (void)): ditto.
+	(void symbol_table::clear (const std::string&)): ditto.
+	(void symbol_table::clear_function (const std::string&)): ditto.
+
+	* graphics.h (class text): Add property color.
+	* graphics.cc (text::text_properties::text_properties) ditto.
+	(text::text_properties::set): ditto.
+	(text::text_properties::get): ditto.
+	(text::text_properties::factory_defaults): ditto.
+
+2007-08-24  John W. Eaton  <jwe@octave.org>
+
+	* mappers.cc (dummyp): New function.
+	(install_mapper_functions): Use it to handle character data in
+	finite, isinf, isna, and isnan functions.
+
+	* load-path.cc (load_path::do_remove): Call remove_hook function
+	before removing directory from list.
+
+2007-08-24  David Bateman  <dbateman@free.fr>
+
+	* ov-bool-sparse.cc (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Class
+	is now logical.
+	* ov-re-sparse.cc, ov-cx-sparse.cc
+	(DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Class is now double.
+	* ov-mapper.cc (octave_mapper::apply): Use is_sparse_type method
+	rather than comparing class name.
+	* ls-mat5.cc (save_mat5_element_length, save_mat5_binary_element):
+	ditto.
+	* pt-mat.cc (tree_matrix:rvalue): sparse matrices are now of class
+	"double" or "logical", create new single type concat clause for
+	them.
+	* mex.cc (get_class_id): No longer need to special case sparse
+	matrices.
+
+	* DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/convhulln.cc,
+	DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/__voronoi__.cc: New
+	functions ported from octave-forge.
+	* DLD-FUCTIONS/__dsearchn__.cc: New file.
+	* DLD-FUNCTIONS/__voronoi__.cc: Return point at infinity and
+	include it in the polygrons of the Voronoi diagram for
+	compatibility.
+	* Makefile.in: Add specific build targets for __delanayn__.cc,
+	convhulln.cc and __voronoi__.cc to link to Qhull.
+	(DLD_SRC): Add new functions.
+	(OCTAVE_LIBS): Add QHULL_LIBS
+
+2007-08-22  David Bateman  <dbateman@free.fr>
+
+	* variables.cc (Fmunlock): Call munlock and not mlock.
+	* symtab.cc (symbol_record::mark_as_formal_parameter): Typo.
+
+2007-08-10  John W. Eaton  <jwe@octave.org>
+
+	* pt-idx.cc (tree_index_expression::get_struct_index): Improve
+	error message.
+	* ov-struct.cc (Fstruct, Fcell2struct): Trap invalid field names here.
+
+2007-08-10  Peter A. Gustafson  <petegus@umich.edu>
+
+	* graphics.h, graphics.cc (axes::axes_properties): New properties,
+	xaxislocation and yaxislocation.
+
+2007-08-10  Kai Habel  <kai.habel@gmx.de>
+
+	* graphics.cc, graphics.h (patch): New class.
+	(axes::axes_properties): New properties, clim and climmode.
+	(surface::surface_properties::surface_properties): Handle patch.
+	(F__go_patch__): New function.
+
+2007-07-30  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxArray_number::mxArray_number (int, const char **)):
+	First arg is now mwSize.
+	(max_str_len): Return mwSize value, not int.
+	* mxarray.h.in (mxArray::mxArray (int, const char **)):
+	First arg is now mwSize.
+	(mxArray::mxArray (mxClassID, mwSize, mwSize, int, mxComplexity)):
+	Third arg is now mwSize.
+	(mxArray::get_string (char *, int)): Second arg is now mwSize.
+
+2007-07-26  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__glpk__.cc: Include glpk/glpk.h if
+	HAVE_GLPK_GLPK_H is defined.
+
+2007-07-26  David Bateman  <dbateman@free.fr>
+
+	* pr-output.cc (Frats): Return character array with same number of
+	rows as original value.
+
+2007-07-26  John W. Eaton  <jwe@octave.org>
+
+	* pt-bp.h (MAYBE_DO_BREAKPOINT): Rename cur_fcn to xfcn.
+
+	* version.h (OCTAVE_VERSION): Now 2.9.13+.
+
+2007-07-25  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.13
+	(OCTAVE_API_VERSION): Now api-v25.
+	(OCTAVE_RELEASE_DATE): Now 2007-07-25.
+
+	* pt-bp.h (MAYBE_DO_BREAKPOINT): Rename fcn to curr_fcn.
+
+2007-07-25  David Bateman  <dbateman@free.fr>
+
+	* Makefile.in: 	Adjust DISTFILES to allow out of tree "make dist"
+	to work.
+
+2007-07-24  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.cc (color_property::operator = (const octave_value&)):
+	New method.
+	* graphics.h: Provide decl.
+
+2007-07-24  Rafael Laboissiere  <rafael@debian.org>
+
+	* oct-conf.h.in (OCTAVE_CONF_RUNTEST): Delete definition.
+	* toplevel.cc (Foctave_config_info): Remove RUNTEST from struct.
+
+2007-07-23  David Bateman  <dbateman@free.fr>
+
+	* pr-output.cc (rat_format, rat_string_len): Global variable
+	controlling behavior of rational approximation. Use throughout.
+	(class pr_rational_float): New class for rational approximation of
+	floats, specifically with the << operator defined.
+	(std::ostream& operator << (std::ostream&, const
+	pr_rational_float&)): Operator to print rational approximations of
+	double values.
+	(std::string rational_approx (double, int)): Function to convert a
+	double value to a string of maximum length giving the rational
+	approximation.
+	(pr_any_float): Include the output of rational approximations.
+	(Fformat): Add the "rat" format as an option.
+	(Frats): New function.
+
+2007-07-23  Aquil H. Abdullah  <aquil.abdullah@gmail.com>
+
+	* mex.cc (mxCreateStructArray): Declare second arg as const.
+	* mexproto.h (mxCreateStructArray): Ditto.
+
+2007-07-20  David Bateman  <dbateman@free.fr>
+
+	* zfstream.cc (BUFSIZE): Increase default buffer size to 256kB
+	(gzfilebuf::underflow): Stash the last 16 characters read, so as
+	to avoid calling pbackfail as much as possible.
+
+2007-07-18  David Bateman  <dbateman@free.fr>
+
+	 * zfstream.cc (int_type gzfilebuf::pbackfail (int_type)): New
+	 method to putback a character when the putback position in the
+	 internal buffer doesn't exist.
+	 * zfstream.h (int_type pbackfail (int_type)): Declaration it.
+
+2007-07-14  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* ov-bool-sparse.cc (octave_sparse_bool_matrix:load_hdf5):
+	Use OCTAVE_LOCAL_BUFFER for temporary boolean value.
+
+2007-06-27  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/sparse.cc (Fspdiag): Ensure spdiag(zeros(1,0)) returns
+	0x0 matrix. Doc update.
+	* data.cc (Fdiag): Doc update.
+
+2007-06-28  John W. Eaton  <jwe@octave.org>
+
+	* ov-cell.cc (octave_cell::subsasgn): Given x = {}, convert to
+	struct for assignments like x(1).f = val;
+
+	* oct-stream.cc (octave_scan_1): New function
+	(octave_scan): Use it.  Handle fmt.width.
+
+	* graphics.h (axes::axes_properties::visible): New data member.
+	* graphics.cc (axes::axes_properties::axes_properties,
+	axes::axes_properties::set, axes::axes_properties::get,
+	axes::axes_properties::factory_defaults): Handle visible property.
+
+2007-06-27  Kai Habel  <kai.habel@gmx.de>
+
+	* graphics.h (color_values::color_values): Arg is now std:string
+	instead of char.  Call str2rgb, not c2rgb.
+	* graphics.h, graphics.cc: (color_values::str2rgb): Rename from
+	c2rgb.  Handle long color names, not just single char abbreviations.
+
+2007-06-27  David Bateman  <dbateman@free.fr>
+
+	* load-save.cc (Fsave): Ensure header is written for non
+	existent file with "-append".
+	* ls-hdf5.h: First steps towards having append work for hdf5.
+
+2007-06-26  John W. Eaton  <jwe@octave.org>
+
+	* load-save.cc (Fsave): Open files correctly for -append.
+	Don't write file headers if appending.  Error for -append -hdf5.
+
+2007-06-25  Olaf Till  <i7tiol@t-online.de>
+
+	* oct-stream.h (octave_stream_list::list): Use std::map.
+	(octave_stream_list::curr_len): Delete data member.
+	(octave_stream_list::octave_stream_list): Fix initializations.
+
+	* oct-stream.cc (octave_steam_list::do_insert,
+	octave_steam_list::do_lookup, octave_steam_list::do_remove,
+	octave_steam_list::do_clear, octave_steam_list::do_list_open_files,
+	octave_steam_list::do_open_file_numbers,
+	octave_steam_list::do_get_file_number):
+ 	Use new octave_stream_list::list type.
+	(octave_stream_list::do_insert): Insert octave_stream with key
+	corresponding to file-descriptor.
+	(octave_stream_list::do_insert, octave_steam_list::insert):
+	Remove const qualifier of argument.
+
+2007-06-18  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* DLD-FUNCTIONS/__lin_interpn__.cc: Replace octave_NaN with octave_NA.
+
+2007-06-15  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.h (OCTAVE_GRAPHICS_PROPERTY_INTERNAL,
+	OCTAVE_GRAPHICS_PROPERTY, OCTAVE_GRAPHICS_MUTABLE_PROPERTY):
+	New macros. Use them to declare individual properties and define
+	accessor methods for each property in the property classes.
+
+2007-06-15  Kai Habel  <kai.habel@gmx.de>
+
+	* graphics.cc (Fget, Fset): Handle vectors of handles.
+
+2007-06-14  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.cc (octave_popen, octave_pclose): New functions.
+	* sysdep.h: Provide decls.
+
+	* oct-procbuf.cc (procbuf::open): Use octave_popen.
+	(procbuf::close): Use octave_pclose.
+	* oct-prcstrm.cc (octave_oprocstream::octave_oprocstream,
+	octave_iprocstream::ictave_oprocstream): Likewise.
+
+	* graphics.h (text::text_properties::rotation): New data member.
+	* graphics.cc (text::text_properties::text_properties,
+	text::text_properties::set, text::text_properties::get,
+	text::text_properties::factory_defaults): Handle rotation property.
+
+2007-06-14  Kai Habel  <kai.habel@gmx.de>
+
+	* graphics.cc (color_values::c2rgb): Also accept 'k' for black.
+
+2007-06-14  David Bateman  <dbateman@free.fr>
+
+	* ov-ch-mat.h (idx_vector index_vector (void) const): Remove
+	definition.
+	* ov-ch-mat.cc (idx_vector index_vector (void) const): Move it
+	here. Special case ":" case for compatibility.
+
+2007-06-13  John W. Eaton  <jwe@octave.org>
+
+	* ov-re-mat.cc (octave_matrix::load_ascii):
+	Do a better job of handling read errors and empty matrices.
+	* ov-cx-mat.cc (octave_complex_matrix::load_ascii): Likewise.
+	* ov-bool-mat.cc (octave_bool_matrix::load_ascii): Likewise.
+	* ov-str-mat.cc (octave_char_matrix_str::load_ascii): Likewise.
+
+2007-06-13  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): Don't treat as single
+	argument if arg2 is empty and nargin=2.
+
+2007-06-13  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.h, graphics.cc: Move class declarations to graphics.h.
+	Move larger functions outside of class declarations in graphics.cc.
+
+2007-06-12  Benjamin Lindner  <lindnerben@gmx.net>
+
+	* DLD-FUNCTIONS/cellfun.cc: Use fullfile to generate filenames
+	instead of assuming / will work as directory separator.
+
+2007-06-12  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/interpn.cc: Remove it.
+	* DLD-FUNCTIONS/__lin_interpn__.cc: Move it. This is now a support
+	function of interpn.m.
+	* Makefile.in (DLD_XSRC): Remove interpn.cc and add __lin_interpn__.cc.
+
+2007-06-07  David Bateman  <dbateman@free.fr>
+
+	* ov-fcn-handles.cc (octave_fcn_handle::save_hdf5): More care that
+	all open HDF5 descriptors are closed.
+	(octave_fcn_handle::load_hdf5): Ditto.
+
+2007-06-06  Benjamin Lindner  <lindnerben@gmx.net>
+
+	* utils.cc [__MINGW32__]: Don't define HAVE_C99_VSNPRINTF.
+
+2007-06-06  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* defaults.h.in, ls-hdf5.h, ov-complex.h, ov-cx-mat.h, ov-intx.h,
+	sysdep.h: Sprinkle with OCTINTERP_API as needed.
+
+2007-06-05  John W. Eaton  <jwe@octave.org>
+
+	* help.h (raw_help): Tag with OCTINTERP_API.
+
+	* Makefile.in (INCLUDES): Remove mxarray.h from the list so that
+	it is not distributed.
+	(EXTRAS): Add mxarray.h to the list so that it is installed.
+
+	* sysdep.cc (same_file_internal) [OCTAVE_USE_WINDOWS_API]:
+	Avoid leaking file handles.
+
+2007-05-08 Michael Weitzel  <michael.weitzel@uni-siegen.de>
+
+	* DLD-FUNCTIONS/symrcm.cc: Fix for queuing error that might cause
+	an infinite loop.
+
+2007-06-04  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (Fislogical): Rename from Fisbool.
+	Make isbool an alias for islogical.
+
+2007-06-03  David Bateman  <dbateman@free.fr>
+
+	* Makefile.in (DISTFILES): Add mxarray.h.in
+	(install-inc): Modify target so that mxarray.h is installed
+	correctly.
+	(distclean): Remove mxarray.h on distclean.
+	* mex.cc: Use mwSize for dimensions and mwIndex for indexing
+	throughout, with the exception of struct key indexes.
+	* mexproto.h: ditto.
+	* mxarray.h: remove.
+	* mxarray.h.in: Copy here and define mwSize, mwIndex, and use
+	throughout.
+	* ov-bool-mat.cc (octave_bool_matrix::as_mxArray): Use mwSize and
+	mwIndex.
+	* ov-bool-sparse (octave_sparse_bool_matrix::as_mxArray): ditto.
+	* ov-cell.cc (octave_cell:as_mxArray): ditto.
+	* ov-ch-mat.cc (octave_char_matrix:as_mxArray): ditto.
+	* ov-cx-mat.cc (octave_complex_matrix::as_mxArray): ditto.
+	* ov-cx-sparse.cc (octave_sparse_complex_matrix::as_mxArray): ditto.
+	* ov-int.h (as_mxArray): ditto.
+	* ov-range.cc (octave_range:as_mxArray): ditto.
+	* ov-re-mat.cc (octave_matrix:as_mxArray): ditto.
+	* ov-re-sparse.cc (octave_sparse_matrix::as_mxArray): ditto.
+	* ov-struct.cc (octave_struct::as_mxArray): ditto.
+
+2007-06-02  David Bateman  <dbateman@free.fr>
+
+	* graphics.cc (color_property class): g++ doesn't like anonymous
+	enums. Give type to color_type enum.
+
+2007-05-31  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.cc (radio_values, radio_property, color_values):
+	New classes.
+	(color_property class): Handle both color and radio values.
+
+2007-05-31  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (main_loop): Improve bad_alloc error message.
+
+	* octave.cc (execute_command_line_file, execute_eval_option_code):
+	Likewise.
+
+2007-05-31  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* toplev.cc (octave_atexit_functions):
+	Now std::list instead of std::stack.
+	(do_octave_atexit): Adapte to octave_atexit_functions as list.
+	(Fatexit): Allow second arg of false to remove element from list.
+
+	* DLD-FUNCTIONS/symrcm.cc: Use ! instead of "not".
+
+	* sysdep.cc (same_file_internal) [OCTAVE_USE_WINDOWS_API]:
+	Use INVALID_HANDLE_VALUE, not INVALID_FILE_HANDLE.
+
+2007-05-28  G. D. McBain  <geordie_mcbain@yahoo.com.au>
+
+	* ov-list.cc (append): Doc fix.
+
+2007-05-28  John W. Eaton  <jwe@octave.org>
+
+	* pt-loop.cc (DO_ND_LOOP): Avoid parser problem with obsolete g++.
+
+2007-05-23  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.12+.
+
+2007-05-23  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.12.
+	(OCTAVE_RELEASE_DATE): Now 2007-05-23.
+
+	* parse.y (make_anon_fcn_handle): Don't build assignment expression.
+	* ov-fcn-handle.cc (octave_fcn_handle::print_raw):
+	Don't split assignment expression.
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Special case for inline function body evaluation.
+
+2007-05-22  John W. Eaton  <jwe@octave.org>
+
+	* pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue):
+	Set current function as parent of anonymous function handle.
+
+	* Makefile.in (uninstall): Also remove
+	$(DESTDIR)$(octincludedir)/octave, $(DESTDIR)$(octincludedir),
+	$(DESTDIR)$(octlibdir), and $(DESTDIR)$(octfiledir).
+
+2007-05-22  Thomas Weber  <thomas.weber.mail@gmail.com>
+
+	* debug.cc, error.cc, load-save.cc, oct-hist.cc, sighandlers.cc,
+	symtab.cc: Fix typos.
+
+2007-05-22  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.11+.
+
+2007-05-22  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.11.
+	(OCTAVE_API_VERSION): Now api-v24.
+	(OCTAVE_RELEASE_DATE): Now 2007-05-22.
+
+2007-05-21  David Bateman  <dbateman@free.fr>
+
+	* debug.cc (Fdbstop): handle integer, vector and multiple line
+	arguments.
+	(Fdbclar): ditto. Eliminate extraneous debugging messages.
+
+2007-05-21  Sļæ½ren Hauberg  <hauberg@gmail.com>
+
+	* load-path.cc (Fpath, Frehash): Replace "LOADPATH" with "load
+	path" in doc strings.
+
+	* parse.y (Feval): Add example.
+
+2007-05-21  David Bateman  <dbateman@free.fr>
+
+	* error.cc (rethrow_error): Use NULL name so that "error:" is not
+	added to the message
+	(Frethrow): Correctly treat empty stack.
+
+2007-05-21  John W. Eaton  <jwe@octave.org>
+
+	* oct-map.h (Octave_map::numel): Return number of array elements,
+	not number of map elements.
+	(Octave_map::nfields): Rename from length.
+	(Octave_map::empty): Delete.
+	Change all uses of empty to check nfields () == 0 instead.
+
+2007-05-21  Sļæ½ren Hauberg  <soren@hauberg.org>
+
+	* help.cc (Fautoload): Doc fix.
+	* variables.cc (Fiscommand): Doc fix.
+
+2007-05-19  David Bateman  <dbatemna@free.fr>
+
+	* ov-fcn-inline.cc (Fvectorize): Doc fix.
+
+2007-05-16  Sļæ½ren Hauberg  <soren@hauberg.org>
+
+	* ov.cc (Fsubsref, Fsubsasgn): Doc fix.
+
+2007-05-16  John W. Eaton  <jwe@octave.org>
+
+	* load-path.h (load_path::sys_path): New static data member.
+	(load_path::system_path): New static function.
+	(load_path::do_system_path): New function.
+	* load-path.cc (Vsystem_path): Delete.
+	(load_path::do_initialize): Use sys_path, not Vsystem_path.
+	(Fpathdef): Call load_path::system_path instead of using Vsystem_path.
+	* ls-mat5.cc (read_mat5_binary_element): Likewise.
+	* ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise.
+
+2007-05-16  David Bateman  <dbateman@free.fr>
+
+	* load_pathc.cc (std::string octave_system_path (void)): New
+	function.
+	* load-path.h (std::string octave_system_path (void)): Declare it.
+
+	* load-save.cc (static load_save_format get_file_format
+	(std::istream&, const std::string&)): Add filename argument, and
+	pass it to read_mat5_binary_header. Use new format throughout file.
+	(Fload): Don't allow gzip of matlab v7 files as the files
+	themselves include compression.
+
+	* ls-mat5.cc (arrayclsstype:MAT_FILE_WORKSPACE_CLASS): New class
+	type.
+	(read_mat5_binary_element): Workspaces, don't have dimensions, so
+	don't read them. Implement read of matlab objects, but only use
+	them for inline functions. Implement reading of function and
+	workspace classes.
+	(read_mat5_binary_header): Add filename argument. Read sub-system
+	specific data block given as an offset in bytes 117 to 124.
+	(save_mat5_binary_element): Include saving of inline functions.
+
+	* ls-mat5.h (read_mat5_binary_header): Include filename.
+
+	* ov-fcn-handle.cc (octave_fcn_handle_save_ascii,
+	octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary,
+	octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5,
+	octave_fcn_handle::load_hdf5): Save and reload the local symbol
+	table of the user function associated with anonymous function
+	handles. Save and load the absolute path and the exec_prefix for
+	normal function handles and use then to find equivalent functions
+	between different installations of Octave. Attempt to maintain
+	backward and forward compatibility.
+	(Ffunctions): Additional outputs, including the workspace of
+	anonymous functions, and more compatiable outputs.
+
+	* ov-fcn-handle.h (user_function_value): Expose the user function
+	value of a function handle.
+
+	* ov-fcn-inline.cc (Octave_map octave_fcn_inline::map_value
+	(void) const): Return a structure compatiable with matlab's class
+	implementation of inline functions.
+
+	* ov-fcn-inline.h (map_value): Declare it.
+
+2007-05-14  Bob Weigel  <rweigel@gmu.edu>
+
+	* DLD-FUNCTIONS/svd.cc: Doc fix.
+
+2007-05-14  Thomas Weber  <thomas.weber.mail@gmail.com>
+
+	* DLD-FUNCTIONS/fft.cc (do_fft): Handle empty matrices.  New tests.
+
+2007-05-14  Sļæ½ren Hauberg  <soren@hauberg.org>
+
+	* toplev.cc (Fatexit): Simplify example in doc string.
+	* help.cc (Flookfor): Doc fix.
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun):
+	Reformat to avoid long lines in doc string example.
+
+2007-05-13  Sļæ½ren Hauberg  <soren@hauberg.org>
+
+	* toplev.cc (Fquit): Doc fix.
+	* help.cc (Fhelp): Doc fix.
+	* oct-hist.cc (Fsaving_history): Doc fix.
+
+2007-05-11  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (symbol_out_of_date):
+	Always check for files that have gone missing.
+
+2007-05-08 Michael Weitzel  <michael.weitzel@uni-siegen.de>
+
+	* DLD-FUNCTIONS/symrcm.cc: New function for Reverse Cuthill-McKee
+	permutation.
+
+2007-05-07  John W. Eaton  <jwe@octave.org>
+
+	* oct-map.cc (Octave_map::resize): Handle case of no keys.
+	(keys_ok): Rename from equiv_keys.  Return value is now status.
+	Pass key names as string_vector reference arg.
+	(Octave_map::assign (const octave_value_list&, const Octave_map&)):
+	Call keys_ok, not equiv_keys.  Handle case of no keys.
+
+2007-04-30  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (%.df : %.cc): Use mv instead of
+	$(simple-move-if-change-rule).
+
+2007-04-30  David Bateman  <dbateman@free.fr>
+
+	* pt-loop.cc (DO_ND_LOOP): New args, CONV and ARG.
+	Use octave_idx_type instead of int for loop counters.
+	Remove redundant assignments to variable "quit" as it is
+	always defined in quit_loop_now.
+	Special case rows = 0 and 1 cases in loops over arrays.
+	Include some of the code that was separate from the macro
+	DO_ND_LOOP in the macro itself
+	(tree_simple_for_command::eval): USE DO_ND_LOOP for all loops.
+	(DO_LOOP): Delete.
+
+2007-04-30  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mex::cleanup): Don't call unmark for elements of the set
+	inside the loop.  From Laurent Mazet <laurent.mazet@motorola.com>.
+
+2007-04-30  David Bateman  <dbateman@free.fr>
+
+	* OPERATORS/op-int-conv.cc: Define sq and dq string conversion
+	operators.  Delete old char_matrix_str conversions.
+	* OPERATORS/op-int-conv.cc (install_int_conv_ops): Install them.
+
+2007-04-27  Benjamin Lindner  <lindnerb@users.sourceforge.net>.
+
+	* octave.cc (execute_startup_files): Call same_file to check for
+	already executed init files.
+
+2007-04-27  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.cc (same_file_internal): New function.  POSIX code
+	from same_file in utils.cc.  Windows code from
+	Benjamin Lindner  <lindnerb@users.sourceforge.net>.
+	Don't canonicalize file names.
+	Also return false if stat calls fail.
+	* sysdep.h: Provide decl.
+	* utils.cc (same_file): Use same_file_internal.
+
+2007-04-27  David Bateman  <dbateman@free.fr>
+
+	* graphic.cc (get_property_form_handle, set_property_in_handle):
+	New functions.
+	* grahics.h: New file.
+	* mex.cc (mexGet, mexSet): use the above to implement mexGet
+	and mexSet.
+	* Makefile.in (INCLUDES): Add graphics.h
+
+2007-04-26  John W. Eaton  <jwe@octave.org>
+
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Only deal with varargout if ret_list->takes_varargs () is true.
+
+2007-04-26  Sļæ½ren Hauberg  <soren@hauberg.org>
+
+	* DLD-FUNCTIONS/urlwrite.cc: Doc fix.
+
+2007-04-26  David Bateman  <dbateman@free.fr>
+
+	* pt-loop.cc (tree_simple_for_command::eval (void)): Correct
+	reshaping of dim_vector in for loop for multi-dimensional array.
+
+2007-04-26  John W. Eaton  <jwe@octave.org>
+
+	* load-save.cc (find_file_to_load): Only consider regular files.
+
+2007-04-24  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.cc (color_property): Eliminate alpha channel from RGB
+	color spec.
+
+2007-04-23  Shai Ayal  <shaiay@users.sourceforge.net>
+
+	* graphics.cc (color_property::color_property):
+	New arg A for alpha channel.  Set rgba instead of red, green, blue.
+	(color_property::color_property (char)): New constructor.
+	(color_propery::rgba): New data member.
+	(color_property::red, color_property::green, color_property::blue):
+	Delete.
+	(color_property::validate): Use rgba.
+	(color_property::c2rgba): New function.
+
+2007-04-23  Sļæ½ren Hauberg  <soren@hauberg.org>
+
+	* data.cc (Fsize_equal): Allow more than two arguments.
+
+2007-04-20  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__gnuplot_raw__.l (deftypefn):
+	(Vautomatic_replot): Delete static variable.
+	(Fautomatic_replot): Delete function.
+
+	* toplev.cc (Fcasesen): Delete obsolete function.
+
+	* DLD-FUNCTIONS/__gnuplot_raw__.l (gnuplot::makeplot): Check
+	whether caller is "splot", not "gsplot".
+
+2007-04-19  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (is_keyword_token): Delete all_va_args_kw switch case.
+	* octave.gperf: Remove all_va_args_kw from the list.
+
+2007-04-19  Daniel J. Sebald  <daniel.sebald@ieee.org>
+
+	* syscalls.cc: Fix popen2 test to stop trying after 100 times
+	throught the loop.
+
+2007-04-16  Geordie McBain  <geordie.mcbain@aeromech.usyd.edu.au>
+
+	* ov-fcn-inline.cc (Fargnames): Doc fix.
+
+2007-04-13  Geordie McBain  <geordie.mcbain@aeromech.usyd.edu.au>
+
+	* DLD-FUNCTIONS/find.cc (Ffind): Doc fix.
+
+2007-04-11  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (DOCSTRINGS): Don't echo commands.
+	(doc-files): Use mv, not $(simple-move-if-change-rule).
+
+	* data.cc (Fnot, Fuplus, Fuminus, Ftranspose, Fctranspose, Fplus,
+	Fminus, Fmtimes, Fmrdivide, Fmpower, Fmldivide, Flt, Fle, Feq,
+	Fge, Fgt, Fne, Ftimes, Frdivide, Fpower, Fldivide, Fand, For):
+	New functions.
+
+2007-04-09  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (line::line_properties::markeredgecolor,
+	line::line_properties::markerfacecolor): New properties.
+
+2007-04-06  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (F__vnorm__): New function.
+
+	* pt-fcn-handle.cc (tree_anon_fcn_handle::param_list,
+	tree_anon_fcn_handle::cmd_list,	tree_anon_fcn_handle::ret_list,
+	tree_anon_fcn_handle::sym_tab): Delete.  Remove all uses.
+	(tree_anon_fcn_handle::fcn): New data member.
+	(tree_anon_fcn_handle::tree_anon_fcn_handle): Initialize it.
+	(tree_anon_fcn_handle::rvalue, tree_anon_fcn_handle::dup):
+	Extract parameter list, return list, function body, and symbol
+	table from fcn.
+	(tree_anon_fcn_handle::parameter_list, tree_anon_fcn_handle::body):
+	Forward request to fcn.
+
+	* ov-usr-fcn.h (octave_user_function::local_sym_tab): Rename from
+	sym_tab.  Change all uses.
+	(octave_user_function::sym_tab): New function.
+
+	* octave.cc (execute_command_line_file):
+
+2007-04-05  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/regexp.cc (Fregexprep): Correct iteration over
+	cell arrays so that the source and pattern are iterated seperately
+	in the same manner as matlab.
+
+2007-04-05  Laurent Mazet  <laurent.mazet@motorola.com>
+
+	* mex.cc (mxArray_octave_value::get_string): Copy nel elements,
+	not buflen elements.
+
+2007-04-05  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (DO_DOUBLE_CONV): New macro.
+	(do_printf): Use it.
+
+2007-04-04  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (octave_yes_or_no): Force interactive_input to use readline.
+
+	* octave.cc (execute_eval_option_code): Catch bad::alloc here.
+
+2007-04-03  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread):
+	Use && for logical, not &.
+
+	* DLD-FUNCTIONS/qr.cc (Fqr): Clarify nargin check.
+
+	* error.cc (Frethrow): Add braces to avoid ambiguous if/else.
+	* oct-stream.cc (octave_scan<>): Likewise.
+	* DLD-FUNCTIONS/colamd.cc (Fetree): Likewise.
+	* DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Likewise.
+
+	* ov-fcn-handle.cc (make_fcn_handle): Pass ultimate parent
+	function name to lookup_function.
+
+2007-03-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/filter.cc (filter): Fix typo in doc string.
+	From Utkarsh Upadhyay <musically.ut@gmail.com>.
+
+2007-03-28  Rafael Laboissiere  <rafael@debian.org>
+
+	* DLD-FUNCTIONS/__glpk__.cc: Fix #ifdef logic around GLPK_PRE_4_14.
+
+2007-03-27  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.10+
+
+2007-03-27  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.10.
+	(OCTAVE_API_VERSION): Now api-v23.
+	(OCTAVE_RELEASE_DATE): Now 2007-03-27.
+
+	* version.h (OCTAVE_COPYRIGHT): Update for 2007.  Add "and others".
+	(X_OCTAVE_WARRANTY_STATEMENT): Rename from OCTAVE_WARRANTY_STATEMENT.
+	Accept arg.
+	(OCTAVE_WARRANTY_STATEMENT): Define using X_OCTAVE_WARRANTY_STATEMENT.
+	(OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Define using
+	X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY.
+	(X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Rename
+	from OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY.
+	Accept arg and pass to X_OCTAVE_WARRANTY_STATEMENT.
+	(OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Pass empty
+	arg to X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS.
+	(OCTAVE_STARTUP_MESSAGE): Put info about news last.
+
+2007-03-27  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (dist, conf-dist): Use ln, not $(LN_S).
+
+2007-03-26  Juhani Saastamoinen  <juhani@cs.joensuu.fi>
+
+	* file-io.cc (do_stream_open) [! HAVE_ZLIB]:
+	Call fopen with mode, not tmode.
+
+2007-03-26  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-str-str.cc (DEFCHARNDBINOP): New macro.  Use it to
+	define functions for eq and ne ops.  Also define lt, le, ge, and
+	gt ops.
+
+2007-03-23  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/rand.cc: Make more statistical tests optional.
+
+2007-03-23  John W. Eaton  <jwe@octave.org>
+
+	* bitfcns.cc (Fbitshift): Error if third argument is not a scalar.
+
+2007-03-23  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/rand.cc: Make statistical tests optional and
+	add tests for fixed sequences.
+
+2007-03-22  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc (base_graphics_object::mark_modified):
+	New virtual function.
+	(base_properties::__modified__): New data member.
+	(base_properties::base_properties): Initialize it.
+	(graphics_object::mark_modified, base_properties::mark_modified,
+	root_figure::mark_modified, figure::mark_modified,
+	axes::mark_modified, line::mark_modified, text::mark_modified,
+	image::mark_modified, surface::mark_modified,
+	root_figure::root_figure_properties::mark_modified,
+	figure::figure_properties::mark_modified,
+	axes::axes_properties::mark_modified,
+	line::line_properties::mark_modified,
+	text::text_properties::mark_modified,
+	image::image_properties::mark_modified,
+	surface::surface_properties::mark_modified): New functions.
+	(figure::figure_properties::set, figure::figure_properties::get,
+	axes::axes_properties::set, axes::axes_properties::get,
+	line::line_properties::set, line::line_properties::get,
+	text::text_properties::set, text::text_properties::get,
+	image::image_properties::set, image::image_properties::get,
+	surface::surface_properties::set, surface::surface_properties::get):
+	Handle __modified__ property.
+
+	* parse.y (Fautoload): Use warning_with_id.
+
+2007-03-21  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__qp__.cc (ABS): Delete.  Use std::abs instead.
+	(null): Set elements of retval with magnitudes less than eps to 0.
+
+	* error.cc (Fwarning): Allow setting options with struct.
+	If setting options, return previous state.
+
+	* graphics.cc (axes::axes_properties::set_defaults): Reverse sense
+	of mode test for setting outerposition property.
+	(figure::figure_properties::set): If setting visible property,
+	make this figure the current figure.
+	(gh_manager::figure_handle_list, gh_manager::do_figure_handle_list):
+	New functions.
+	(F__go_figure_handles__): New function.
+
+	* sysdep.cc (Fpause): Also call drawnow if nargin == 0.
+	(Fkbhit, Fsleep, Fusleep): Also call drawnow here.
+
+2007-03-20  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Correct for shape of return
+	matrix for the case of UniformOutput being true.
+
+2007-03-20  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.cc (Fpause): Call drawnow.
+
+2007-03-15  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (F__lock_global__): Delete.
+
+2007-03-14  John W. Eaton  <jwe@octave.org>
+
+	* graphics.cc: New file.
+	* Makefile.in (DIST_SRC): Add it to the list.
+
+2007-03-13  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (do_stream_open): Use binary mode if 't' is not
+	specified in mode, but don't add 'b' if it is already present.
+
+2007-03-09  David Bateman  <dbateman@free.fr>
+
+	* data.cc (do_cat):  Also treat case of all empty matrices.
+
+2007-03-08  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxArray_octave_value::set_dimensions,
+	mxArray_octave_value::set_m, mxArray_octave_value::set_n,
+	mxArray_octave_value::set_class_name,
+	mxArray_octave_value::set_ir, mxArray_octave_value::set_jc,
+	mxArray_octave_value::remove_field,
+	mxArray_octave_value::set_field_by_number):
+	Don't panic; request mutation instead.
+	(class mxArray_octave_value):
+
+	* mxarray.h (mxArray::set_m, mxArray::set_n,
+	mxArray::set_dimensions): Wrap method call call with
+	DO_VOID_MUTABLE_METHOD.
+
+2007-03-08  David Bateman  <dbateman@free.fr>
+
+	* data.cc (do_cat): Ignore leading empty matrices.
+
+2007-03-07  Bob Weigel  <rweigel@gmu.edu>
+
+	* urlwrite.cc (urlget): Allow URL redirects.
+
+2007-03-05  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/md5sum.cc (Fmd5sum): Treat both files and strings.
+
+2007-03-05  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Check GLPK_PRE_4_14, not
+	GLPK_PRE_4_15.
+
+2007-03-02  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (Fautoload): Undo previous change.
+	Warn if FILE is not an absolute file name.
+
+	* utils.cc (make_absolute): Make copy of arg before
+
+2007-03-01  John W. Eaton  <jwe@octave.org>
+
+	* ov-base-mat.h	(octave_base_matrix::octave_base_matrix (const MT&),
+	(octave_base_matrix::octave_base_matrix (const MT&, const MatrixType&)):
+	Use common definition with default argument value.
+	* ov-base-scalar.h (octave_base_scalar<T>::typ): New data member.
+	Initialize in constructors.
+	(octave_base_scalar<T>::matrix_type): New funtions.
+
+2007-03-01  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/md5sum.cc: New file.
+	* Makefile.in (DLD_XSRC): Add md5sum.cc
+
+2007-03-01  Olli Saarela  <Olli.Saarela@kcl.fi>
+
+	* input.cc (FPS1): Fix @seealso.
+
+2007-03-01  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Special case scalar
+	types and always return "Full" matrix type.
+
+2007-02-28  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (interactive_input): Also call flush_octave_stdout
+	after calling drawnow.
+
+2007-02-27  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (uninstall): Also remove octave-$(version)$(EXEEXT),
+	oct-gperf.h, and all .oct files.  Remove PKG_ADD.
+	From Thomas Treichl <Thomas.Treichl@gmx.net>.
+
+	* load-path.h, (load_path::initialize, load_path::do_initialize):
+	New arg, set_initial_path.
+	* load-path.cc (load_path::do_initialize): Don't add system
+	directories to apth if set_initial_path is false.
+	* octave.cc (set_initial_path): New static variable.
+	(NO_INITIAL_PATH_OPTION): New define.
+	(usage_string): Include --no-initial-path in message.
+	(long_opts): Include no-initial-path/NO_INITIAL_PATH_OPTION here.
+	(octave_main): Handle NO_INITIAL_PATH_OPTION.
+	Pass set_initial_path to load_path::initialize.
+
+	* parse.y (Fautoload): Warn about duplicate entries.  Only insert
+	the first found.
+
+2007-02-27  David Bateman  <dbateman@free.fr>
+
+	* error.cc (Vlast_error_file, Vlast_erro_name, Vlast_error_row,
+	Vlast_error_column): New static variables.
+	(verror): Use them to store the location of last error.
+	(rethrow_error, Frethrow, Flasterror): New functions.
+
+	* DLD-FUNCTIONS/regexp.cc (octcellregexp): Wrapper to octregexp
+	function for cases when string or pattern are cell arrays
+	(Fregexp, Fregexpi): Use them.
+	(octregexprep): New function with functionality of old Fregexprep.
+	(Fregexprep): Treat cell arguments.
+
+2007-02-26  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* Makefile.in: Use $(LN_S) instead of ln or ln -s.
+
+	* DLD-FUNCTIONS/getrusage.cc: Undef min after including windows.h.
+
+2007-02-25  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/interpn.cc: Include dNDArray.h, not dMatrix.cc.
+
+	* error.h: Include cstdarg.
+	From Juhani Saastamoinen <juhani@cs.joensuu.fi>.
+
+2007-02-23  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (lookup_function): Don't dereference NULL
+	curr_parent_fucntion pointer.
+	* ov-fcn-handle.cc (make_fcn_handle): Call lookup_function with
+	parent set to empty string if call_stack is empty.
+
+	* DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Also adjust argument list
+	in calls to functions that are not overloaded.  Call
+	lookup_by_name to find function instead of searching fbi_symtab
+	directly.
+
+	* help.cc (do_which): Return empty string if file not found.
+
+2007-02-22  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxArray_cell::mxArray_cell (const mxArray_cell&),
+	mxArray_struct::mxArray_struct (const mxArray_struct&)):
+	Avoid calling clone on 0 elements.
+
+	* variables.cc (symbol_out_of_date): If checking nested function,
+	look for file using parent function name.  Delete unused
+	variable NAMES.
+
+	* oct-stream.cc (octave_stream::do_gets): If no limit or not
+	at limit, read ahead one character at end of line for compatibility.
+	(octave_stream::gets, octave_stream::getl): Set max_len to -1 if
+	tc_max_len is not defined.
+	* file-io.cc (Ffgets, Ffgetl): If no limit specified, pass
+	undefined octave_value object as max_len in call to
+	octave_stream::gets.
+
+2007-02-21  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mexErrMsgIdAndTxt, mexWarnMsgIdAndTxt): Handle second
+	arg as format and accept variable number of arguments.
+	* mexproto.h: Fix decls.
+
+	* error.h, error.cc (vmessage, vusage, vwarning, verror,
+	vparse_error, vmessage_with_id, vusage_with_id, vwarning_with_id,
+	verror_with_id, vparse_error_with_id): Provide va_list versions of
+	variadic error, warning, and message functions.
+	(message, usage, warning, error, parse_error, message_with_id,
+	usage_with_id, warning_with_id, error_with_id,
+	parse_error_with_id): Call va_list versions.
+
+	* DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): Return error
+	code and message instead of throwing error if functionality is
+	missing.
+
+	* oct-obj.h (octave_value_list::splice): Set default for
+	replacement list argument.
+
+2007-02-20  Rafael Laboissiere  <rafael@laboissiere.net>
+
+	* DLD-FUNCTIONS/__glpk__.cc: Adapt code for changes in the GLPK
+	API for version 4.15 or later.
+
+2007-02-20  John W. Eaton  <jwe@octave.org>
+
+	* mxarray.h (mxArray::get_scalar): New function.
+	* mex.cc (mxArray_base::get_scalar): New pure virtual function.
+	(mxArray_octave_value::get_scalar, mxArray_matlab::get_scalar,
+	mxArray_number::get_scalar): New functions.
+	(mxGetScalar): Call get_scalar here.
+
+	* mex.cc (mxArray_octave_value::get_dimensions): Cache ndims here.
+	(mxArray_octave_value::get_number_of_dimensions):
+	Call get_dimensions here to cache both ndims and dims.
+
+2007-02-17  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (symbol_out_of_date): Don't exit early if looking
+	at nested function.
+
+2007-02-16  John W. Eaton  <jwe@octave.org>
+
+	* dynamic-ld.cc (octave_dynamic_loader::do_load_oct): Clear
+	function if original was loaded from relative path and the name
+	can no longer be found in path.  Mark files found from relative
+	path as relative.
+	(clear): Only warn if there is more than one function to clear.
+
+	* variables.cc (symbol_out_of_date): Don't ignore return value in
+	call to octave_env::make_absolute.
+	(symbol_out_of_date): Clear symbol if original was loaded from
+	relative path and name can no longer be found in path.
+
+	* dynamic-ld.cc (octave_dynamic_loader::do_load_oct):
+	Also check whether new file is same as the old file.
+
+	* utils.cc (same_file): Move here from variables.cc.
+	* utils.h: (same_file): Provide decl.
+
+	* parse.y (frob_function): Stash parent function name if parsing
+	nested function.
+
+	* ov-fcn-handle.cc (make_fcn_handle): Pass current function name
+	as parent in call to lookup_function.
+
+	* ov-fcn.h (octave_function::parent_fcn_name): New virtual function.
+
+	* ov-usr-fcn.h (octave_user_function::parent_name): New data member.
+	(octave_user_function::stash_parent_function_name,
+	octave_user_function::parent_function_name): New methods.
+	* ov-usr-fcn.cc (octave_user_function::octave_user_function):
+	Initialize parent_name.
+
+	* variables.h, variables.cc (lookup_function): New arg, parent.
+	If not empty, try this first for lookup.
+
+	* dynamic-ld.cc (octave_dynamic_loader::do_load_mex): If doing
+	path lookup, check relative status. Pass relative to oct_file_in_path.
+	(octave_dynamic_loader::do_load_mex): Likewise, for mex_file_in_path
+
+	* defun-int.h, defun.cc (install_mex_function): New arg, relative.
+	(install_dld_function): Likewise.
+	(octave_dld_fcn_installer): Likewise.
+	(DEFINE_FUNX_INSTALLER_FUN3): Pass relative to install_dld_function.
+
+	* dynamic-ld.h (octave_dynamic_loader::load_oct,
+	octave_dynamic_loader::load_mex,
+	octave_dynamic_loader::do_load_oct
+	octave_dynamic_loader::do_load_mex): New arg, relative.
+
+	* dirfns.h (Vcurrent_directory): Delete unused variable.
+
+	* variables.cc (symbol_out_of_date): Also compare function time
+	stamp to Vlast_chdir_time if function is from relative lookup.
+
+	* dirfns.cc (Vlast_chdir_time): New variable.
+	(octave_change_to_directory): Update it if chdir succeeds.
+	* dirfns.h (Vlast_chdir_time): Provide decl.
+
+	* ov-fcn.h (octave_function::relative): New data member.
+	(octave_function::mark_relative, octave_function::is_relative):
+	New functions.
+
+	* parse.y (fcn_file_from_relative_lookup): New static variable.
+	(load_fcn_from_file): Note whether function file was found from
+	relative path element.
+	(frob_function): Maybe mark function as relative.
+
+	* parse.y (lookup_autoload): Don't call octave_env::make_absolute
+	on return value.
+	* variables.cc (symbol_out_of_date): Make name absolute after call
+	to lookup_autoload.
+
+	* input.cc (interactive_input): New arg, DEBUG.  Don't call
+	drawnow if debugging.
+	(get_user_input): Pass DEBUG to interactive_input.
+
+2007-02-16  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* syscalls.cc (Fpopen2): New function.
+	(pipe): Modify to return input and output file descriptor
+	seperately rather than in a list.
+
+2007-02-16  Muthiah Annamalai  <muthuspost@gmail.com>
+
+	* debug.cc (Fdbtype): Improve compatibility.
+
+2007-02-16  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (wait_for_input): New function.
+	(run_command_and_return_output): Use it instead of napping.
+
+	* oct-procbuf.h (octave_procbuf::pid): Now const.
+	* procstream.h (procstreambase::pid): Now const.
+	(procstreambase::file_number): New function.
+
+2007-02-15  John W. Eaton  <jwe@octave.org>
+
+	* mxarray.h (mxChar): Use char instead of unsigned short.
+
+	* toplev.cc (Foctave_config_info): Remove
+	OCTAVE_CONF_MKOCTFILE_INCFLAGS and OCTAVE_CONF_MKOCTFILE_LFLAGS
+	from the list.
+	* oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_INCFLAGS,
+	OCTAVE_CONF_MKOCTFILE_LFLAGS): Don't define.
+	(OCTAVE_CONF_INCLUDEDIR, OCTAVE_CONF_OCTINCLUDEDIR,
+	OCTAVE_CONF_OCTLIBDIR, OCTAVE_CONF_PREFIX): New definitions.
+
+2007-02-14  Alexander Barth  <abarth@marine.usf.edu>
+
+	* DLD-FUNCTIONS/interpn.cc: New file.
+	* Makefile.in (DLD_XSRC): Add it to the list.
+
+2007-02-14  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (interactive_input): Check error_state after call to feval.
+
+2007-02-10  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_stream::rewind): Call seek (0, SEEK_SET)
+	instead of rep->rewind.
+	(octave_base_stream::rewind): Delete Function.
+	* oct-stream.h (octave_base_stream::rewind): Delete decl.
+
+2007-02-09  John W. Eaton  <jwe@octave.org>
+
+	* ls-mat5.cc (PAD): Adjust to change in write_mat5_tag.
+	(TAGLENGTH): Delete unused macro.
+
+	* ov-struct.cc (octave_struct::load_ascii,
+	octave_struct::load_binary, octave_struct::load_hdf5):
+	Delete obsolete attempt at backward compatibility.
+
+	* ls-mat5.cc (read_mat5_binary_element): Don't attempt to read
+	fieldnames if there are no fields.
+	(write_mat5_tag): Don't use small data element format if bytes == 0.
+
+	* ls-mat5.cc (read_mat5_binary_element): Always create a structure
+	that is at least 1x1.
+	* ov-struct.cc (octave_struct::load_ascii,
+	octave_struct::load_binary, octave_struct::load_hdf5): Likewise.
+
+2007-02-08  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* DLD-FUNCTIONS/__glpk__.cc: Include glplib.h if glpk.h does not.
+	Provide definitions for lib_set_fault_hook and lib_set_print_hook
+	if they are not defined.
+
+2007-02-07  John W. Eaton  <jwe@octave.org>
+
+	* defaults.cc (subst_octave_home):
+	Only substitute at beginning of string.
+
+	* ls-hdf5.cc (save_hdf5_empty): Use OCTAVE_LOCAL_BUFFER.
+	* ov-bool-mat.cc (octave_bool_matrix::save_hdf5,
+	octave_bool_matrix::load_hdf5): Likewise.
+	* ov-bool-sparse.cc (octave_sparse_bool_matrix::save_hdf5,
+	octave_sparse_bool_matrix::load_hdf5): Likewise.
+
+2007-02-07  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* ov-cell.cc (octave_cell::save_hdf5): Correct test for H5Dwrite
+	return value.
+
+2007-02-07  John W. Eaton  <jwe@octave.org>
+
+	* zfstream.cc (gzfilebuf::open_mode): Always append "b" to c_mode.
+
+	* toplev.cc (Foctave_config_info): Use struct for conf_info.
+	Call subst_octave_home on selected values when initializing map.
+	* defaults.cc (subst_octave_home): Now extern.
+	* defaults.h.in: Provide decl.
+
+2007-02-05  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxArray_number::as_octave_value): Fake mxSINGLE_CLASS
+	by returning double-precision values.
+	(mxArray_sparse::as_octave_value): Clarify error message.
+
+	* ov-complex.h (octave_complex): Use std instead of OCTAVE_STD
+	since the latter was unconditionally defined to be std anyway.
+
+2007-02-05  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* ov-complex.h: Tag octave_complex class with OCTINTERP_API.
+
+2007-01-30  John W. Eaton  <jwe@octave.org>
+
+	* Merge of changes from graphics-branch:
+
+	2007-01-26  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__contourc__.cc: New function.
+	* Makefile.in (DLD_XSRC): Add it to the list.
+
+	2007-01-25  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (Vdrawnow_requested): New static variable.
+	(F__request_drawnow__): New function.
+	(interactive_input): New function.  Update Vlast_prompt_time here.
+	(octave_gets, get_user_input, octave_yes_or_no):
+	Call interactive_input instead of gnu_readline.
+
+	* symtab.h (symbol_record::eternal): New data member.
+	(symbol_record::symbol_record): Initialize it.
+	(symbol_record::make_eternal, symbol_record::is_eternal):
+	Don't forward to symbol_def functions.
+	(symbol_record::symbol_def::make_eternal,
+	symbol_record::symbol_def::is_eternal): Delete.
+	(symbol_record::symbol_def::eternal): Delete data member.
+	(symbol_record::symbol_def::symbol_def): Delete initialization.
+
+	* pt-id.cc (tree_identifier::link_to_global): Include variable
+	name in warning message.
+
+	* variables.cc (F__lock_global__): New function.
+
+	2007-01-11  John W. Eaton  <jwe@octave.org>
+
+	* ls-oct-ascii.cc (save_ascii_data_for_plotting, save_three_d):
+	Set precision to 6 instead of 4.
+
+2007-01-29  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Don't panic if
+	nargout is greater than 3.
+
+2007-01-24  John W. Eaton  <jwe@octave.org>
+
+	* pt-assgn.cc (former_built_in_variables): New static data.
+	(maybe_warn_former_built_in_variable): New static function.
+	(tree_simple_assignment::tree_simple_assignment,
+	tree_multi_assignment::tree_multi_assignment):
+	Move definition here from pt-assign.h
+	Maybe warn about assignment to obsolete built-in variables.
+
+	* version.h (OCTAVE_STARTUP_MESSAGE): Mention "news" function.
+
+	* pt-stmt.cc (tree_statement::eval): Use dynamic_cast, not
+	static_cast.
+
+	* help.cc (help_from_file): Show .oct or .mex file name if one
+	exists in the same directory as the .m file.
+
+2007-01-23  Luis F. Ortiz  <lortiz@interactivesupercomputing.com>
+
+	* strfns.cc (Fstrncmp): New function.
+
+2007-01-17  John W. Eaton  <jwe@octave.org>
+
+	* help.cc (help_from_file, help_from_symbol_table, help_from_list):
+	Rewrite using raw_ versions.
+
+2007-01-17  David Bateman  <dbateman@free.fr>
+
+	* help.cc (raw_help, raw_help_from_file,
+	raw_help_from_symbol_table, raw_help_from_list): New functions.
+	* help.h (raw_help): Provide decl.
+
+2007-01-16  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__pchip_deriv__.cc: Fix dpchim decl for --enable-64.
+	(F__pchip_deriv__): Fix call to dpchim for --enable-64.
+
+	* DLD-FUNCTIONS/fftw.cc: Delete decl for fftw_planner.
+
+2007-01-11  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* load-path.h (class load_path): Tag with OCTINTERP_API.
+
+	* ls-oct-binary.cc (read_binary_data): Use unsigned char, not
+	char, for reading flags and data types.
+
+2007-01-10  Luis F. Ortiz  <lortiz@interactivesupercomputing.com>
+
+	* parse.y (load_fcn_from_file): Delete unused variable NAMES.
+	If NM is absolute, strip directory and extension parts.
+
+2007-01-10  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* DLD-FUNCTIONS/getrusage.cc: Use #ifdef __WIN32__, not __MINGW32__.
+
+2007-01-10  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (load_fcn_from_file): Only compare last two characters
+	when looking for ".m".
+
+2007-01-06  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_CONFIG_STATEMENT): New macro
+	(OCTAVE_NAME_AND_VERSION): Remove config info.
+	(OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY):
+	Use OCTAVE_CONFIG_STATEMENT here.
+
+2007-01-05  David Bateman  <dbateman@free.fr>
+
+	* Makefile.in (DLD_XSRC): Add fftw.cc and remove fftw_wisdom.cc
+	* DLD-FUNCTIONS/fftw.cc: New file.
+	* DLD-FUNCTIONS/fftw_wisdom.cc: Delete.
+	* defaults.cc (Vfftw_wisdom_program): Delete variable.
+	(set_default_fftw_wisdom_prog): Delete function that sets it.
+	(install_defaults): Delete set_default_fftw_prog from defaults.
+	(Ffftw_wisdom_program): Delete.
+
+2007-01-04  David Bateman  <dbateman@free.fr>
+
+	* ov-fcn-handle.cc (octave_fcn_handle::load_ascii,
+	octave_fcn_handle::load_binary):
+	Throw error if handle can't be created.
+
+2007-01-04  Luis F. Ortiz  <lortiz@interactivesupercomputing.com>
+
+	* mex.cc (mxArray_number::mxArray_number (int, const char **)):
+	Correctly index LHS in assignment.
+
+2007-01-03  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (Fisinteger): New function.
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::is_integer_type,
+	OCTAVE_VALUE_INT_SCALAR_T::is_integer_type): New function.
+	* ov.h (octave_value::is_integer_type): New function.
+	* ov-base.h (octave_base_value::is_integer_type): New virtual function.
+
+2007-01-03  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* toplev.cc (Fsystem): Handle async calls on Windows systems.
+
+2007-01-03  David Bateman  <dbateman@free.fr>
+
+	* (OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc,
+	OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc,
+	OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc,
+	OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc,
+	OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc,
+	OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc,
+	OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc,
+	OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc,
+	OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc,
+	OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc):
+	Modify div and ldiv functions so that scalars stored as sparse
+	matrices are special cased.
+
+	* ov-re-sparse.cc (double_value, complex_value): Scalar can be
+	stored as a sparse matrix and so don't warn on implicit conversion
+	to a scalar.
+	* ov-cx-sparse.cc (double_value, complex_value): ditto.
+	* ov-bool-sparse.cc (double_value, complex_value): ditto.
+
+2007-01-03  John W. Eaton  <jwe@octave.org>
+
+	* dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Also check
+	for _mexFunction.
+
+2006-12-30  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn-inline.cc: For compatibility, class id is
+	"function_handle", not "inline function".
+
+2006-12-27  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (%.df : %.cc): Insert a "do not edit" notice in the
+	.df files.
+
+	* mex.cc (mxArray_matlab::get_class_name,
+	mxArray_octave_value::get_class_id): Use "function_handle", not
+	"function handle".
+
+2006-12-14  John W. Eaton  <jwe@octave.org>
+
+	* pt-decl.cc (tree_decl_elt::eval): New function.
+	* pt-decl.h (tree_decl_elt::eval): Provide decl.
+	(tree_decl_elt::is_defined, tree_decl_elt::lvalue_ok,
+	tree_decl_elt::mark_as_formal_parameter, tree_decl_elt::rvalue,
+	tree_decl_elt::lvalue): New functions.
+
+	* pt-misc.h (class tree_parameter_list): Derive from
+	octave_base_list<tree_decl_elt *> instead of
+	octave_base_list<tree_identifier *>.
+	(tree_parameter_list::tree_parameter_list (tree_identifier *)): Delete.
+	(tree_parameter_list::tree_parameter_list (tree_decl_elt *)):
+	New function.
+	* pt-misc.cc (tree_parameter_list::mark_as_formal_parameters,
+	tree_parameter_list::initialize_undefined_elements,
+	tree_parameter_list::undefine, tree_parameter_list::dup,
+	tree_parameter_list::convert_to_const_vector,
+	tree_parameter_list::is_defined): Handle argument list elements
+	as tree_decl_list objects instead of tree_identifier objects.
+	(tree_parameter_list::define_from_arg_vector): Likewise.
+	Always process entire list, setting default values if possible.
+	Accept ":" to mean "use default argument".
+
+	* parse.y (param_list2): Use decl2 to recognize
+	"identifier '=' expression" in addition to "identifier".
+
+	* parse.y (return_list1, make_anon_fcn_handle, finish_function):
+	Adapt to new definition of tree_parameter_list.
+	* pt-bp.cc (tree_breakpoint::visit_parameter_list): Likewise.
+	* pt-check.cc (tree_checker::visit_parameter_list): Likewise.
+	* pt-pr-code.cc (tree_print_code::visit_parameter_list): Likewise.
+
+2006-12-08  John W. Eaton  <jwe@octave.org>
+
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::array_value,
+	OCTAVE_VALUE_INT_MATRIX_T::complex_array_value,
+	OCTAVE_VALUE_INT_MATRIX_T::bool_array_value,
+	OCTAVE_VALUE_INT_MATRIX_T::char_array_value):
+	Use fortran_vec to avoid expensive indexing operator.
+
+2006-12-08  David Bateman  <dbateman@free.fr>
+
+	* ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::matrix_value,
+	OCTAVE_VALUE_INT_SCALAR_T::complex_matrix_value,
+	OCTAVE_VALUE_INT_MATRIX_T::matrix_value,
+	OCTAVE_VALUE_INT_MATRIX_T::comlex_matrix_value): New functions.
+	(OCTAVE_VALUE_INT_MATRIX_T::array_value,
+	OCTAVE_VALUE_INT_MATRIX_T::comlex_array_value):
+	Use octave_idx_type instead of int for indexing.
+
+2006-12-04  David Bateman  <dbateman@free.fr>
+
+	* xpow.cc (xpow (const Matrix&, double)): Add matrix type probing
+	to matrix inverse.
+	(xpow (const ComplexMatrix&, double)): ditto.
+	* DLD-FUNCTIONS/inv.cc (Finv): Add matrix type probing.
+
+2006-12-06  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.cc: Include "Cell.h" here.
+	* input.h: Include "oct-obj.h", not "ov-list.h".
+
+2006-12-06  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* mappers.cc (install_mapper_functions): Undefine isascii before
+	the DEFUN_MAPPER for it.
+
+	* input.cc (get_user_input): Prevent out of bounds array access
+	when checking for EOL.
+
+2006-12-05  John W. Eaton  <jwe@octave.org>
+
+	* ls-oct-ascii.cc (extract_keyword): If no match and looking for
+	more, skip to end of line before trying another match.
+
+	* pt-mat.cc (tm_row_const::empty): New function.
+	(tm_const::init): Don't append anything if tmp tm_row_const object
+	is empty.
+	(tree_matrix::rvalue): Default return value is Matrix().
+	Don't do anything if tmp tm_const object is empty.
+
+	* dirfns.cc (Fmkdir): Fix thinko in previous change.
+
+2006-12-05  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* DLD-FUNCTIONS/rand.cc: Test for Poisson generator with lambda > 1e8.
+
+2006-12-04  David Bateman  <dbateman@free.fr>
+
+	* data.cc (Fdata): If ndims is greater than nargout and
+	nargout is greater than 1, then collect size of trailing
+	dimensions into retval(end).
+
+	* load-path.cc (load_path::do_find_fcn): Return empty string if
+	tests fail.
+
+	* ov-base-mat.cc (void octave_base_matrix<MT>::assign (const
+	octave_value_list&, const MT&)): Invalidate matrix type on
+	assignment.
+
+2006-11-30  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom):
+	Accept "r" or "w" for second argument.
+
+2006-11-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Look in load-path
+	if reading wisdom file, but not if writing.
+
+2006-11-28  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxArray_struct::get_field_by_number):
+	Return 0 if key_num is out of range.
+	(mxArray_struct::set_field_by_number):
+	Do nothing if key_num is out of range.
+	(mxArray_cell::get_cell, mxArray_cell::set_cell):
+	Avoid out-of-bounds indexing
+
+2006-11-28  Luis F. Ortiz  <lortiz@interactivesupercomputing.com>
+
+	* mex.cc (mxArray_matlab::get_n, mxArray_octave_value::get_n):
+	Return product of last N-1 dims.
+
+2006-11-28  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (eat_whitespace): Also handle CRLF as EOL.
+
+	* dirfns.cc (Fmkdir): Handle "mkdir (parent, dir)".
+
+2006-11-21  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (load_path::do_find_file,
+	load_path::do_find_first_of, load_path::do_find_all_first_of):
+	Call rooted_pathname instead of absolute_pathname.
+	* utils.cc (fcn_file_in_path, oct_file_in_path, mex_file_in_path):
+	Likewise.
+
+2006-11-16  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* oct-hist.cc (default_history_file): Instead of appending
+	"/.octave_hist", append directory separator (but only if
+	necessary), then ".octave_hist".
+
+2006-11-16  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (Fresize): Fix doc string.
+
+2006-11-15  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__gnuplot_raw__.l (write_data, write_inline_data):
+	New functions.
+	(save_in_tmp_file): Use write_data.
+	(gnuplot::send_inline_data, gnuplot_do_send_inline_data):
+	New functions.
+	(F__gnuplot_send_inline_data__, F__gnuplot_save_data__):
+	New functions.
+
+	* ls-oct-ascii.cc (save_ascii_data_for_plotting):
+	Call save_ascii_data with precision = 4.
+	(save_three_d): Temporarily set precision to 4 for output stream.
+
+2006-11-15  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* Cell.h (Cell): Tag class with OCTINTERP_API.
+
+2006-11-13  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (maximum_braindamage): Disable
+	Octave:fopen-file-in-path and Octave:load-file-in-path warnings.
+
+	* load-save.cc (find_file_to_load): New function.
+	(Fload): Call find_file_to_load to search load path for file.
+
+	* file-io.cc (Ffopen): Search load path for file.
+
+	* load-path.cc (path::do_find_first_of, path::do_find_file):
+	Break out of all loops once file is found, not just innermost one.
+
+	* data.cc (Fsize_equal): New function.
+
+2006-11-13  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* ov.cc (check_subsref_elements, Fsubsref, Fsubsasgn):
+	New functions.
+
+	* ov-re-mat.h, ov-scalar.h, pr-output.h:
+	Sprinkle with OCTINTERP_API as needed.
+
+2006-11-11  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (parse.cc): Avoid creating empty files.
+	(%.df : %cc, builtins.cc, mkbuiltins, PKG_ADD, DOCSTRINGS,
+	doc-files, gendoc.cc, ops.cc, $(OPT_HANDLERS), oct-errno.cc,
+	oct-gperf.h): Use $(simple-move-if-change-rule) here.
+	(lex.cc, __gnuplot_raw__.cc):
+	Use $(destdir-move-if-change-rule) here.
+	(ifndef omit_deps): Don't include stamp-prereq here.
+	($(DEF_FILES), $(MAKEDEPS)): Also depend on stamp-prereq.
+
+2006-11-10  John W. Eaton  <jwe@octave.org>
+
+	* ov-str-mat.cc (octave_char_matrix_str::load_ascii,
+	octave_char_matrix_str::load_binary):
+	Use chMatrix as buffer instead of C string.
+
+2006-11-09  John W. Eaton  <jwe@octave.org>
+
+	* ov-usr-fcn.h (octave_user_function::inline_function):
+	 New data member.
+	(octave_user_function::mark_as_inline_function): Set it.
+	(octave_user_function::is_inline_function): Check it.
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Also skip setting curr_parent_fucntion if evaluating an inline
+	function.
+	(octave_user_function::octave_user_function):
+	 Initialize inline_function.
+	* pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue):
+	Mark user function as inline here.
+
+2006-11-09  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* load-path.cc (load_path::move): Don't use reference to file_info
+	object that will be erased.
+
+2006-11-07  John W. Eaton  <jwe@octave.org>
+
+	* utils.cc (file_in_path): Don't unconditionally return "".
+
+	* pager.cc (default_pager): Don't append options here.
+	(pager_command): New function.
+	(do_sync): Use it.
+	(VPAGER_FLAGS): New variable.
+	(FPAGER_FLAGS): New function.
+
+2006-11-06  John W. Eaton  <jwe@octave.org>
+
+	* oct-hist.cc (default_history_file): If env_file is not empty,
+	just accept it rather than checking to see if it exists.
+
+2006-11-03  Bill Denney  <denney@seas.upenn.edu>
+
+	* help.cc (keywords): Document try and unwind_protect.
+
+2006-11-03  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (DLL_CXXDEFS): Rename from XTRA_CXXDEFS.
+	(DLL_CDEFS): Rename from XTRA_CDEFS.
+	Substitute OCTINTERP_DLL_DEFS, not XTRA_OCTINTERP_DEFS.
+
+2006-11-02  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* sysdep.cc (MSVC_init): Also cal w32_sigint_init and
+	w32_set_quiet_shutdown.
+
+2006-11-01  John W. Eaton  <jwe@octave.org>
+
+	* ov.h (octave_value::idx_type_value): New function.
+	* data.cc (fill_matrix, Flinspace, Freshape): Use idx_type_value
+	instead of int_value to extract size args.
+
+2006-10-31  John W. Eaton  <jwe@octave.org>
+
+	* ov-range.h (octave_range::empty_clone): Return octave_matrix
+	object instead of octave_range.
+
+2006-10-29  Juhani Saastamoinen  <juhani@cs.joensuu.fi>
+
+	* ls-mat5.cc (read_mat5_tag): Declare bytes as int32_t, not just int.
+
+2006-10-28  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (Fatexit): Push function names on the stack even if we
+	don't have atexit or on_exit.
+
+2006-10-28  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* mappers.cc (install_mapper_functions): Undefine toascii before
+	the DEFUN_MAPPER for it.
+
+2006-10-27  John W. Eaton  <jwe@octave.org>
+
+	* mexproto.h: Include oct-dlldefs.h.
+
+	* pr-output.cc (SPECIALIZE_UABS): New macro.
+	Use it to generate specializations of abs for unsigned int types.
+	Instantiate abs for signed int types.
+
+	* load-path.cc (load_path::do_initialize):
+	Use dir_path::path_sep_str instead of ":".
+	Don't append ":::" to xpath when calling do_set.
+
+	* dirfns.cc (Fls, cleanup_iprocstream): Delete.
+
+	* sysdep.cc (Ftilde_expand): If arg is cellstr, return cellstr.
+
+	* ov.h (octave_value::is_cellstr): New function.
+	* ov-base.h (octave_base_value::is_cellstr): New function.
+	* ov-cell.h (octave_cell::is_cellstr): New function.
+	* ov-cell.cc (Fiscellstr): Implement with is_cellstr.
+	* Cell.cc (Cell::Cell (const dim_vector&, const string_vector&, bool)):
+	New constructor.
+	(Cell::is_cellstr): New function.
+	* Cell.h: Provide decls.
+
+	* defaults.cc (subst_octave_home): If dir_sep_char is not '/',
+	replace before returning.
+	From Michael Goffioul <michael.goffioul@swing.be>.
+
+2006-10-26  John W. Eaton  <jwe@octave.org>
+
+	* cutils.c (octave_strcasecmp, octave-strncasecmp):
+	Move to liboctave/lo-cutils.c.
+	* utils.h: Delete decls.
+	* strcasecmp.c: Move to liboctave/strcasecmp.c.
+	* strncase.c: Move to liboctave/strncase.c.
+	* Makefile.in (DIST_SRC): Delete them from the list.
+
+	* bitfcns.cc (bitshift): If A < 0, return -bitshift (-A, N, MASK).
+
+2006-10-26  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* help.cc (display_help_text): Quote sed patterns with ".
+
+	* file-io.cc: Include file-io.h.
+
+	* TEMPLATE-INST/Array-os.cc, TEMPLATE-INST/Array-sym.cc,
+	TEMPLATE-INST/Array-tc.cc, defun-int.h, error.h, file-io.h,
+	gripes.h, ls-oct-ascii.h, mexproto.h, oct-map.h, oct-obj.h,
+	oct-stream.cc, oct-stream.h, octave.h, ov-base.h,
+	ov-bool-sparse.cc, ov-bool-sparse.h, ov-cx-sparse.cc,
+	ov-cx-sparse.h, ov-fcn.h, ov-re-sparse.cc, ov-re-sparse.h,
+	ov-str-mat.h, ov-typeinfo.cc, ov-typeinfo.h, ov.h, pager.h,
+	parse.h, pr-output.cc, pr-output.h, procstream.h, sighandlers.h,
+	symtab.h, unwind-prot.h, utils.h, variables.h:
+	Sprinkle with OCTINTERP_API as needed.
+
+2006-10-26  John W. Eaton  <jwe@octave.org>
+
+	* ov-bool.h (octave_bool::sparse_matrix_value,
+	octave_bool::sparse_complex_matrix_value
+	octave_bool::sparse_bool_matrix_value): New functions.
+
+2006-10-25  John W. Eaton  <jwe@octave.org>
+
+	* sighandlers.cc: Check defined (RETSIGTYPE_IS_VOID) instead of
+	RETSIGTYPE == void.
+
+	* oct-procbuf.cc (BUFSIZ): Define if not already defined.
+	(octave_procbuf::open): Pass BUFSIZ as size argument to setvbuf.
+
+2006-10-25  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* Makefile.in (XTRA_CDEFS, XTRA_CXXDEFS): Substitute here.
+
+	* oct-procbuf.cc [_MSC_VER]: Define W32POPEN and W32PCLOSE the
+	same as for __MINGW32__.
+	(octave_procbuf::open, octave_procbuf::close) [_MSC_VER]:
+	Use the same code as for __MINGW32__ and __CYGWIN__.
+
+	* oct-prcstrm.cc [_MSC_VER]: Define popen and pclose.
+
+2006-10-25  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.cc (w32_set_octave_home): Correctly initialize bin_dir.
+	Fill it with '\0' instead of ' '.
+
+2006-10-24  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* Makefile.in: Filter out $(XTRA_CXXDEFS) from $(ALL_CXXFLAGS) for
+	$(DLD_PICOBJ).
+
+2006-10-24  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.cc (MSC_init): New function.
+	(sysdep_init): Call it.
+	(w32_set_octave_home): New function, based on code from Michael
+	Goffioul <michael.goffioul@swing.be>.
+	(MINGW_init): Call w32_set_octave_home here too.
+
+2006-10-23  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (symbol_table::clear_mex_functions): New function.
+	* symtab.h: Provide decl.
+	* vriables.cc (clear_mex_functions): New function.
+	* variables.h Provide decl.
+	* toplev.cc: Call clear_mex_functions instead of delete_symbol_tables.
+
+	* variables.cc (delete_symbol_tables): Delete.
+	* variables.h: Delete decl.
+
+	* mex.cc (mex::unmark_array): New function.
+	(mex::persistent): Define with unmark_array.
+	(maybe_unmark_array): New function.
+	(mxArray_struct::set_field_by_number, mxArray_cell::set_cell):
+	Call maybe_unmark_array on val to avoid freeing val twice on exit
+	from mex function.
+	(mxFree): Call xfree, not free.
+
+2006-10-21  John W. Eaton  <jwe@octave.org>
+
+	* ov-intx.h
+	(OCTAVE_VALUE_INT_MATRIX_T::OCTAVE_TYPE_PREDICATE_FUNCTION,
+	(OCTAVE_VALUE_INT_SCALAR_T::OCTAVE_TYPE_PREDICATE_FUNCTION):
+	Function is now const, so it properly overloads method in base
+	class.
+
+	* mex.cc (mxArray_octave_value::is_uint32):
+	Call val.is_uint32_type, not val.is_int32_type.
+	(mxArray_octave_value::is_uint64):
+	Call val.is_uint64_type, not val.is_int64_type.
+	(mxArray_octave_value::is_uint8):
+	Call val.is_uint8_type, not val.is_int8_type.
+
+2006-10-20  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* ov-mex-fcn.h (octave_mex_function::atexit): New function.
+	(octave_mex_function::exit_fcn_ptr): New data member.
+	* ov-mex-fcn.cc (octave_mex_function::exit_fcn_ptr): New data member.
+	(octave_mex_function::octave_mex_function): Initialize it.
+	(octave_mex_function::~octave_mex_function):
+	If we have an exit function, call it.
+
+2006-10-20  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (delete_symbol_tables): New function.
+	* variables.h: Provide decl.
+	* toplev.cc (do_octave_atexit): Call it.
+
+	* mex.cc (mex::mex): New arg, a pointer to the current mex function.
+	(mex::curr_mex_fcn): New data member.
+	(mex::current_mex_function): New function.
+	(mexAtExit): Set exit function pointer in current mex file object.
+
+2006-10-20  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* mex.cc (enum callstyle): Delete enum definition.
+	(Fortran_mex, C_mex): Delete functions.
+	(call_mex): First arg is now bool.
+	* ov-mex-fcn.cc (call_mex): Fix decl to match new definition.
+	(Fortran_mex, C_mex): Delete decls.
+	(octave_mex_function::do_multi_index_op): Simplify call to call_mex.
+
+2006-10-20  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (handle_identifier): If a command name is found, skip
+	starting command mode if parsing an object index.
+
+2006-10-20  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTION/spqr.cc (dmperm_internal): New function with core
+	of Fdmperm.
+	(Fdmperm): Call dmperm_internal rather then calculating loally.
+	(Fsprank): New function to calculate the strutural rank also using
+	dmperm_internal.
+
+2006-10-19  John W. Eaton  <jwe@octave.org>
+
+	* ov-struct.cc (octave_struct::as_mxArrary):
+	Use OCTAVE_LOCAL_BUFFER to allocate tempoarary array of field names.
+
+	* mxarray.h (mxArray::persistent): Delete var and all uses.
+	(mxArray::mark_persistent, mxArray::unmark_persistent,
+	mxArray::is_persistent): Delete functions.
+	* mex.cc (mex::function_name): Use mxArray::strsave, not strsave.
+	(mex::mark_array): New function.
+	(mex::make_value): Use it.
+	(mex::free_value): Return true if we found ptr in arraylist.
+	(mex::persistent (mxArray *)): Remove ptr from arraylist instead
+	of marking it as persistent.
+	(mxArray::malloc): Call ::malloc instead of malloc.
+	(mxArray::calloc): Call ::calloc instead of calloc.
+	(maybe_mark_array): New function.
+	(mxCreateCellArray, mxCreateCellMatrix, mxCreateCharArray,
+	mxCreateCharMatrixFromStrings, mxCreateDoubleMatrix,
+	mxCreateDoubleScalar, mxCreateLogicalArray, mxCreateLogicalMatrix,
+	mxCreateLogicalScalar, mxCreateNumericArray,
+	mxCreateNumericMatrix, mxCreateSparse,
+	mxCreateSparseLogicalMatrix, mxCreateString, mxCreateStructArray,
+	mxCreateStructMatrix, mxDuplicateArray): Use it.
+	(mxDestroyArray): No need to check persistence now.
+	Also delete ptr if mex_context->free_value does not.
+	(call_mex): No need to delete elements of argout now.
+
+2006-10-18  John W. Eaton  <jwe@octave.org>
+
+	* dynamic-ld.cc (octave_shlib_list::remove,
+	octave_shlib_list::do_remove, octave_mex_file_list::remove,
+	octave_mex_file_list::do_remove): New arg, cl_hook.
+	(octave_shlib_list::do_remove): Pass cl_hook to octave_shlib close
+	function.
+	(octave_dynamic_loader::do_load_oct): Don't call close on shl
+	directly.  Pass do_clear_function to octave_shlib_list::remove.
+
+	* mex.cc (mexUnlock): Don't warn if unlocking a function that is
+	not locked.
+
+	* pt-fcn-handle.cc (tree_anon_fcn_handle::dup):
+	Correctly duplicate symbol table info.
+
+2006-10-17  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* oct-map.h: Include <algorithm>.
+
+2006-10-16  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_stream_list::do_remove): Handle "all" as a
+	special case.
+
+2006-10-13  Michael Goffioul  <michael.goffioul@swing.be>
+
+	* Makefile.in: Adapt rules to use $(LIBPRE).
+
+2006-10-11  John W. Eaton  <jwe@octave.org>
+
+	* mex.h (UINT64_T, uint64_T, INT64_T, int64_T, UINT32_T, uint32_T,
+	INT32_T, int32_T, UINT16_T, uint16_T, INT16_T, int16_T, UINT8_T,
+	uint8_T, INT8_T, int8_T): Conditionally define.
+	From Andy Adler <adler@site.uottawa.ca>.
+
+2006-10-09  John W. Eaton  <jwe@octave.org>
+
+	* oct-conf.h.in (OCTAVE_CONF_CURL_LIBS): Substitute.
+	* toplev.cc (octave_config_info): Add CURL_LIBS to the list.
+
+2006-10-09  Alexander Barth  <abarth@marine.usf.edu>
+
+	* DLD-FUNCTIONS/urlwrite.cc: New file providing urlwrite and urlread.
+
+2006-10-09  John W. Eaton  <jwe@octave.org>
+
+	* pt-mat.cc (tree_matrix::dup): Append new elements to new matrix.
+	* pt-cell.cc (tree_cell::dup): Append new elements to new cell array.
+
+2006-10-04  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.9+.
+
+	* DLD-FUNCTIONS/__gnuplot_raw__.l (F__clear_plot_window__):
+	Rename from Fclearplot.  Only clear plot window.
+
+2006-10-03  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/luinc.cc (Fluinc): Avoid crash if SparseLU or
+	SparseComplexLU constructor fails.
+
+	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx):
+	Delete unused variable.
+
+2006-10-03  David Bateman  <dbateman@free.fr>
+
+	* Makefile.in (OCT_LINK_DEPS) Include $(CAMD_LIBS) in the list.
+	(octave$(EXEEXT)): Include $(CAMD_LIBS) in link command.
+
+2006-10-02  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.9.
+	(OCTAVE_API_VERSION): Now api-v22.
+	(OCTAVE_RELEASE_DATE): Now 2006-10-02.
+
+	* pr-output.cc (pr_plus_format): Use "inline" instead of "static
+	inline" for template functions to avoid problems when not
+	compiling with 	g++.
+
+	* mex.cc (call_mex): Delete elements of argout.
+	From Kai Labusch <labusch@inb.uni-luebeck.de>.
+
+2006-09-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/spfind.cc (sparse_find_non_zero_elem_idx):
+	Leading dimension is NR, not NC.
+
+	* Makefile.in (DEP_5): Include oct-errno.cc in the list.
+
+2006-09-27  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (abs): New template function.  Instantiate for
+	unsigned types.
+
+2006-09-27  David Bateman  <dbateman@free.fr>
+
+	* file-io.cc (Fsprintf): If fmt is an sq_string, return an sq_string.
+
+	* DLD-FUNCTIONS/sparse.cc (spfind, sparse_find): Delete.
+	* DLD-FUNCTIONS/spfind.cc: New file implementating compatible
+	sparse find function.
+	* Makefile.in (DLD_XSRC): Add spfind.cc.
+
+2006-09-26  Bill Denney  <bill@givebillmoney.com>
+
+	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx, Ffind):
+	Handle direction and limit on number of elements to find.
+
+2006-09-26  John W. Eaton  <jwe@octave.org>
+
+	* error.cc (warning_1): Call error_2, not error.
+
+2006-09-15  John W. Eaton  <jwe@octave.org>
+
+	* ops.h (DEFSTRDBLCONVFN): New arg, TFROM.
+	* OPERATORS/op-double-conv.cc: Declare and install sq_string
+	conversions too.
+
+	* ov-base-int.cc (octave_base_int_scalar<T>::convert_to_str_internal,
+	octave_base_int_matrix<T>::convert_to_str_internal):
+	New functions.
+	* ov-base-int.h: Provide decls.
+
+2006-09-15  Sļæ½ren Hauberg  <soren@hauberg.org>.
+
+	* data.cc (Fsize): If nargout > ndims, fill with 1.
+
+2006-09-15  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc: Fix xerbla decl.
+
+2006-09-13  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/cellfun.cc: Improve error message for uniform
+	output case when results are not scalars.  Avoid shadow decls.
+
+2006-09-13  David Bateman  <dbateman@free.fr>
+
+	* ov-scalar.h (octave_scalar::sparse_matrix_value,
+	octave_scalar::sparse_complex_matrix_value): New extractor functions.
+	* ov-complex.h (octave_complex::sparse_matrix_value,
+	octave_complex::sparse_complex_matrix_value): Ditto.
+	* DLD-FUNCTIONS/spkron.cc (Fspkron): Change example in help.
+
+2006-09-12  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Allow matlab compatiable
+	'UniformOutput' and 'ErrorHandler' options.  Change output when
+	called with function handler or inline function to by default have
+	'UniformOutput' set to true.  Allow functions with multiple inputs
+	and outputs. Add test code.  Replace some int with octave_idx_type.
+	(Fnum2cell): Replace some int with octave_idx_type.  Add test code.
+
+2006-09-11  Yozo Hida  <yozo@cs.berkeley.edu>
+
+	* DLD-FUNCTIONS/gcd.cc (Fgcd): Extend range by using std::floor
+	instead of converting to int.
+
+2006-09-05  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxArray_sparse::as_octave_value): Cast nzmax to
+	octave_idx_type for sparse matrix constructors.
+
+2006-09-01  John W. Eaton  <jwe@octave.org>
+
+	* dirfns.cc: Don't handle nargout == 0 as a special case.
+	(octave_change_to_directory): Perform tilde expansion on directory
+	name here.
+
+2006-08-30  John W. Eaton  <jwe@octave.org>
+
+	* load-save.cc (get_file_format): Fix misplaced #endif.
+
+2006-08-29  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (execute_pkg_add_or_del):
+	Source PKG_ADD or PKG_DEL in base workspace.
+	* parse.y (source_file): New optional arg, context.
+	* parse.h (source_file): Fix decl.
+
+2006-08-25  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.8+.
+
+2006-08-24  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.8.
+	(OCTAVE_API_VERSION): Now api-v21.
+	(OCTAVE_RELEASE_DATE): Now 2006-08-24.
+
+2006-08-23  John W. Eaton  <jwe@octave.org>
+
+	* ov.h (octave_value::save_ascii): Delete strip_nan_and_inf arg.
+	* ov-base.h, ov-base.cc (octave_base_value::save_ascii): Likewise.
+	* ov-base-int.h, ov-base-int.cc	(octave_base_int_matrix<T>::save_ascii,
+	octave_base_int_scalar<T>::save_ascii, ): Likewise.
+	* ov-base-sparse.cc, ov-base-sparse.h
+	(octave_base_sparse<T>::save_ascii): Likewise.
+	* ov-bool-mat.cc, ov-bool-mat.h (octave_bool_matrix::save_ascii):
+	Likewise.
+	* ov-bool.cc, ov-bool.h (octave_bool::save_ascii): Likewise.
+	* ov-cell.cc, ov-cell.h (octave_cell::save_ascii): Likewise.
+	* ov-complex.cc, ov-complex.h (octave_complex::save_ascii): Likewise.
+	* ov-fcn-handle.cc, ov-fcn-handle.h (octave_fcn_handle::save_ascii):
+	Likewise.
+	* ov-fcn-inline.cc, ov-fcn-inline.h (octave_fcn_inline::save_ascii):
+	Likewise.
+	* ov-list.cc, ov-list.h (octave_list::save_ascii): Likewise.
+	* ov-range.cc, ov-range.h (octave_range::save_ascii): Likewise.
+	* ov-scalar.cc, ov-scalar.h (octave_scalar::save_ascii): Likewise.
+	* ov-str-mat.cc, ov-str-mat.h (octave_char_matrix_str::save_ascii):
+	Likewise.
+	* ov-struct.cc, ov-struct.h (octave_struct::save_ascii): Likewise.
+	* ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise.
+	* ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii):
+	Likewise.
+	* ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii):
+	Likewise.
+	* ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise.
+
+	* ls-oct-ascii.cc, ls-oct-ascii.h (save_ascii_data):
+	Delete strip_nan_and_inf arg.
+	(save_ascii_data_for_plotting): Delete strip_nan_and_inf arg from
+	call to save_ascii_data.
+
+	* DLD-FUNCTIONS/__gnuplot_raw__.l (handle_using): Accept "(EXPR)"
+	as components of using clauses.
+	(enum _toktype): New element DOLLAR.
+	Accept "$" in lexer.
+
+	* ls-oct-ascii.cc (save_ascii_data): Delete arg strip_nan_and_inf.
+	Change all uses.
+
+	* ls-oct-ascii.h (save_three_d): Provide decl.
+	* load-save.h (save_ascii_data_for_plotting, save_three_d):
+	Delete decls.
+
+2006-08-22  John W. Eaton  <jwe@octave.org>
+
+	* ov.h (octave_value::save_ascii): strip_nan_and_inf is now int,
+	not bool.
+	* ov-base.h, ov-base.cc (octave_base_value::save_ascii): Likewise.
+	* ov-base-int.h, ov-base-int.cc	(octave_base_int_matrix<T>::save_ascii,
+	octave_base_int_scalar<T>::save_ascii, ): Likewise.
+	* ov-base-sparse.cc, ov-base-sparse.h
+	(octave_base_sparse<T>::save_ascii): Likewise.
+	* ov-bool-mat.cc, ov-bool-mat.h (octave_bool_matrix::save_ascii):
+	Likewise.
+	* ov-bool.cc, ov-bool.h (octave_bool::save_ascii): Likewise.
+	* ov-cell.cc, ov-cell.h (octave_cell::save_ascii): Likewise.
+	* ov-complex.cc, ov-complex.h (octave_complex::save_ascii): Likewise.
+	* ov-fcn-handle.cc, ov-fcn-handle.h (octave_fcn_handle::save_ascii):
+	Likewise.
+	* ov-fcn-inline.cc, ov-fcn-inline.h (octave_fcn_inline::save_ascii):
+	Likewise.
+	* ov-list.cc, ov-list.h (octave_list::save_ascii): Likewise.
+	* ov-range.cc, ov-range.h (octave_range::save_ascii): Likewise.
+	* ov-scalar.cc, ov-scalar.h (octave_scalar::save_ascii): Likewise.
+	* ov-str-mat.cc, ov-str-mat.h (octave_char_matrix_str::save_ascii):
+	Likewise.
+	* ov-struct.cc, ov-struct.h (octave_struct::save_ascii): Likewise.
+	* ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise.
+	* ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii):
+	Likewise.
+
+	* ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii):
+	Don't strip Inf and NaN here.  Call ComplexMatrix::save_ascii to
+	do the real work.
+	* ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii):
+	Don't strip Inf and NaN here.  Call Matrix::save_ascii to do the
+	real work.
+
+	* ov-re-mat.cc, ov-cx-mat.cc (strip_infnan): Delete.
+	* ls-oct-ascii.cc, ls-oct-ascii.h (save_ascii_data):
+	strip_nan_and_inf is now int, not bool.
+	(strip_infnan): Delete.
+	(save_ascii_data_for_plotting): Call save_ascii_data with
+	strip_nan_and_inf = 2.
+
+	* Makefile.in (INCLUDES): Remove matrix.h from the list.
+
+2006-08-22  David Bateman  <dbateman@free.fr>
+
+	* sparse-xpow.cc: Replace all uses of pow by std::pow.
+	(elem_pow): Simplify for two sparse matrices arguments.
+
+2006-08-22  John W. Eaton  <jwe@octave.org>
+
+	* ls-oct-ascii.cc: Increase default value of save_precision to 16.
+
+	* ls-mat-ascii.cc (save_mat5_ascii_data): Use scientific format.
+
+2006-08-21  John W. Eaton  <jwe@octave.org>
+
+	* ls-mat5.cc (read_mat5_binary_data, read_mat5_integer_data,
+	write_mat5_array): Unconditionally enable code for 64-bit int types.
+
+	* ov-fcn-handle.cc (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA):
+	For compatibility, set class to function_handle.
+
+2006-08-18  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (set_real_matrix_format): Also always include space
+	for sign if values are int, inf, or nan.
+	(set_complex_format, set_complex_matrix_format): Always include
+	space for sign in real format, but never in imaginary format.
+
+	* gripes.cc (gripe_logical_conversion): New function.
+	* gripes.h: Provide decl.
+	* ov.h (octave_value::bool_value, octave_value::bool_matrix_value,
+	octave_value::bool_array_value): New arg, warn.
+	* ov-base.cc, ov-base.h (octave_base_value::bool_value,
+	octave_base_value::bool_matrix_value,
+	octave_base_value::bool_array_value): Likewise.
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value,
+	OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): Likewise.
+	* ov-range.h (octave_range::bool_array_value): Likewise.
+	* ov-re-mat.cc, ov-re-mat.h (octave_matrix::bool_array_value):
+	Likewise.
+	* ov-re-sparse.cc, ov-re-sparse.h
+	(octave_sparse_matrix::bool_array_value): Likewise.
+	* ov-scalar.h (octave_scalar::bool_value,
+	octave_scalar::bool_array_value): Likewise.
+	* OPERATORS/op-bm-b.cc (oct_assignop_conv_and_assign):
+	Ask for warning from bool_array_value.
+	* OPERATORS/op-bm-bm.cc (oct_assignop_conv_and_assign): Likewise.
+	* ov-bool.h (octave_bool::bool_value,
+	octave_bool::bool_matrix_value, octave_bool::bool_array_value):
+	Likewise.
+	* ov-bool-mat.h (octave_bool_matrix::bool_matrix_value,
+	octave_bool_matrix::bool_array_value): Likewise.
+	* ov-bool-sparse.cc, ov-bool-sparse.h
+	(octave_sparse_bool_matrix::bool_matrix_value,
+	octave_sparse_bool_matrix::bool_array_value): Likewise.
+
+2006-08-18  Benjamin Lindner  <lindnerben@gmx.net>
+
+	* ls-mat5.cc (read_mat5_tag): Declare type as int32_t, not int.
+	(read_mat5_binary_element): Likewise, for len and element_length.
+
+2006-08-18  John W. Eaton  <jwe@octave.org>
+
+	* load-save.h (enum load_save_format): New element, LS_MAT_ASCII_LONG.
+	* load-save.cc (Fload, Fsave): Make -ascii Matlab compatible.
+	(do_save): Handle LS_MAT_ASCII.
+	* ls-mat-ascii.cc (save_mat_ascii_data): New function.
+	* ls-mat-ascii.h: Provide decl.
+
+2006-08-17  John W. Eaton  <jwe@octave.org>
+
+	* ls-mat5.cc (save_mat5_element_length): Correctly compute element
+	length for character data.  Handle N-d character data
+	(save_mat5_binary_element): Handle N-d character data.
+
+2006-08-16  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (gobble_leading_white_space): New arg, SKIP_CODE.
+	Change all uses.
+
+2006-08-15  John W. Eaton  <jwe@octave.org>
+
+	* help.cc (help_from_file): Call get_help_from_file with new file
+	arg.  Print file info here.
+
+	* parse.y (get_help_from_file): Delete include_file_info arg.
+	Provide two versions, one that returns the file found in a
+	reference arg and one that does not.
+
+	* variables.cc (do_isglobal): New function.
+	(Fisglobal): Use it.
+	(Fis_global): New function.
+
+2006-08-14  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (symbol_record_name_compare): Fix casts.
+
+	* ov-cell.cc (octave_cell::subsasgn): Call empty_conv for 0x0
+	objects, not just empty objects.
+
+	* oct-map.h (Octave_map::clear): Also clear key_list.
+
+	* load-path.cc (load_path::find_dir_info, load_path::do_add,
+	load_path::do_remove): Perform tilde expansion on directory here.
+
+2006-07-29  John W. Eaton  <jwe@octave.org>
+
+	* matrix.h: Delete to avoid conflict with liboctave/Matrix.h on
+	case-insensitive filesystems.
+
+	* version.h (OCTAVE_VERSION): Now 2.9.7+.
+
+2006-07-28  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.7.
+	(OCTAVE_API_VERSION): Now api-v20.
+	(OCTAVE_RELEASE_DATE): Now 2006-07-28.
+
+	* load-path.cc (path::do_add): Warn for trailing "//".
+
+	* strfns.cc: Comment out some tests for snapshot.
+
+2006-07-27  John W. Eaton  <jwe@octave.org>
+
+	* defaults.cc (Vlocal_api_arch_lib_dir): New variable.
+	(set_default_local_api_arch_lib_dir): New function.
+	(install_defaults): Call it.
+	(set_exec_path): Put Vlocal_api_arch_lib_dir in the list.
+	* toplev.cc (localapiarchlibdir): Include it in the list.
+	* defaults.h.in (OCTAVE_LOCALAPIARCHLIBDIR): Substitute here.
+
+2006-07-26  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxArray::as_octave_value (mxArray *)): New static function.
+	(call_mex, mexPutVariable, mexCallMATLAB,
+	mxArray_cell::as_octave_value, mxArray_struct::as_octave_value):
+	Use static version of as_octave_value here.
+	(mxArray_sparse::mxArray_sparse (const mxArray_sparse&)):
+	Check pr, ir, and jc before calling memcpy.
+	(mxArray_number::mxArray_number): Check pr before calling memcpy
+
+	* mxarray.h (mxArray::as_octave_value (mxArray *)): Provide decl.
+	(mxArray::as_octave_value): Now protected.
+
+	* file-io.cc (Ffeof, Fferror): Use DEFUNX instead of DEFUN.
+
+	* mex.cc (xfree): New function.
+	(mex::free): Use it.
+	(mxArray_struct::~mxArray_struct, mxArray_cell::~mxArray_cell):
+	Delete elements with delete, not mxDestroyArray.
+	(mex::cleanup): Don't call mex::free or mex::free_value.
+	(mex::free_value): Add debug warning.
+	(mex::mark, mex::unmark): Fix debug warning.
+	(call_mex): Use unwind_protect frame.
+	(mexUnlock): Use iterator to remove item from mex_lock_count.
+
+	* octave.cc (maximum_braindamage): Use disable_warning instead of
+	bind_internal_variable to disable function-name-clash warning.
+	* error.cc (disable_warning): No longer static.
+	* error.h: Provide decl.
+
+2006-07-25  David Bateman  <dbateman@free.fr>
+
+	* mex.cc (mxArray_octave_value::get_class_id): Handle sparse.
+	(class mxArray_sparse): Derive from mxArray_matlab, not
+	mxArray_number.
+	(mxArray_sparse::as_octave_value): Implement function.
+	* ov-bool-sparse.cc (octave_sparse_bool_matrix::as_mxArray):
+	Implement function.
+	* ov-cx-sparse.cc (octave_sparse_complex_matrix::as_mxArray):
+	Implement function.
+	* ov-re-sparse.cc (octave_sparse_matrix::as_mxArray):
+	Implement function.
+
+2006-07-25  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mxArray_struct::as_octave_value, call_mex,
+	mexCallMATLAB, mxArray_cell::as_octave_value):
+	Convert NULL mxArray* pointers to empty matrix values.
+	(mxArray_octave_value:get_ir): Fix typo.
+
+2006-07-22  John W. Eaton  <jwe@octave.org>
+
+	* mxarray.h: New file.
+	* mex.h, mexproto.h, mex.cc: New implementation of mxArray and MEX
+	interface.
+
+	* ov.h (octave_value::mex_get_ir, octave_value::mex_get_jc):
+	New functions.
+	* ov-base.h (octave_base_value::mex_get_ir,
+	octave_base_value::mex_get_jc): New virtual functions.
+	* ov-base-sparse.h (octave_base_sparse<T>::mex_get_ir,
+	octave_base_sparse<T>::mex_get_jc): New functions.
+
+	* ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::as_mxArray,
+	OCTAVE_VALUE_INT_MATRIX_T::as_mxArray): New functions.
+	* ov-int8.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-uint8.h,
+	ov-uint16.h, ov-uint32.h, ov-uint64.h: Define OCTAVE_INT_MX_CLASS
+	before including ov-intx.h.  Undef it after.
+	* ov-range.cc (octave_range::as_mxArray): New function.
+	* ov-range.h: Provide decl.
+	* ov-scalar.cc (octave_scalar::as_mxArray): New function.
+	* ov-scalar.h: Provide decl.
+	* ov-complex.cc (octave_complex::as_mxArray): New function.
+	* ov-complex.h: Provide decl.
+	* ov-re-mat.cc (octave_matrix::as_mxArray): New function.
+	* ov-re-mat.h: Provide decl.
+	* ov-cx-mat.cc (octave_complex_matrix::as_mxArray): New function.
+	* ov-cx-mat.h: Provide decl.
+	* ov-ch-mat.cc (octave_char_matrix::as_mxArray): New function.
+	* ov-ch-mat.h: Provide decl.
+	* ov-bool-mat.cc (octave_bool_matrix::as_mxArray): New function.
+	* ov-bool-mat.h: Provide decl.
+	* ov-bool.cc (octave_bool::as_mxArray): New function.
+	* ov-bool.h: Provide decl.
+
+	* ov-struct.h (octave_struct::numel): New function.
+
+	* ls-mat5.cc (arrayclasstype): Use "MAT_FILE_" instead of "mx" as
+	prefix for element names.
+
+	* ov.h (octave_value::as_mxArray): New function.
+	* ov-base.cc (octave_base_value::as_mxArray): New function.
+	* ov-base.h: Provide decl.
+
+	* ov.h (octave_value::mex_get_data): New function.
+	* ov-base.h (octave_base_value::mex_get_data): New function.
+	* ov-base-scalar.h (octave_base_scalar<ST>::mex_get_data): New function.
+	* ov-base-matrix.h (octave_base_matrix<MT>::mex_get_data): New function.
+	* ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::mex_get_data): New function.
+
+	* ov.h (octave_value::nfields): New function.
+	* ov-base.cc (octave_base_value::nfields): New virtual function.
+	* ov-base.h: Provide decl.
+	* ov-struct.h (octave_struct::nfields): New function.
+
+2006-07-19  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-bm-bm.cc (oct_assignop_conv_and_assign): New function.
+	(install_bm_bm_ops): Install it for various types.
+	* OPERATORS/op-bm-b.cc (oct_assignop_conv_and_assign): New function.
+	(install_bm_b_ops): Install it for various types.
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value,
+	OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): New functions.
+	* ov-range.h (octave_range::bool_array_value): New function.
+	* ov-re-sparse.cc (octave_sparse_matrix::bool_array_value):
+	New function.
+	* ov-re-sparse.h: Provide decl.
+	* ov-re-mat.cc (octave_matrix::bool_array_value): New function.
+	* ov-re-mat.h: Provide decl.
+
+	* ov-base.cc (octave_base_value::numeric_assign):
+	Avoid memory leak when converting LHS.
+
+2006-07-18  John W. Eaton  <jwe@octave.org>
+
+	* ov.h (octave_value::is_int8_type, octave_value::is_int16_type,
+	octave_value::is_int32_type, octave_value::is_int64_type,
+	octave_value::is_uint8_type, octave_value::is_uint16_type,
+	octave_value::is_uint32_type, octave_value::is_uint64_type):
+	New functions.
+	* ov-base.h (octave_base_value::is_int8_type,
+	octave_base_value::is_int16_type,
+	octave_base_value::is_int32_type,
+	octave_base_value::is_int64_type,
+	octave_base_value::is_uint8_type,
+	octave_base_value::is_uint16_type,
+	octave_base_value::is_uint32_type,
+	octave_base_value::is_uint64_type): New functions.
+	* ov-int8.h, ov-int16.h, ov-int32.h, ov-int16.h, ov-uint8.h,
+	ov-uint16.h, ov-uint32.h, ov-uint16.h: Define OCTAVE_BASE_INT_T.
+	* ov-intx.h: Use OCTAVE_BASE_INT_T to define type-specific predicate.
+
+	* ov.h (octave_value::is_double_type, octave_value::is_single_type):
+	New functions.
+	* ov-base.h (octave_base_value::is_double_type,
+	octave_base_value::is_single_type): New functions.
+	* ov-re-mat.h (octave_matrix::is_double_type): New function.
+	* ov-cx-mat.h (octave_matrix::is_double_type): New function.
+	* ov-scalar.h (octave_scalar::is_double_type): New function.
+	* ov-complex.h (octave_complex::is_double_type): New function.
+	* ov-range.h (octave_range::is_double_type): New function.
+	* ov-re-sparse.h (octave_sparse_matrix::is_double_type): New function.
+	* ov-cx-sparse.h (octave_sparse_complex_matrix::is_double_type):
+	New function.
+
+2006-07-15  John W. Eaton  <jwe@octave.org>
+
+	* ov-typeinfo.cc: Also instantiate arrays of assignany_ops.
+
+	* oct-errno.cc.in (octave_errno::octave_errno): VALUE field in
+	errno_struct no longer const.
+
+	* DLD-FUNCTIONS/dispatch.cc (octave_dispatch::do_index_op):
+	Declare	resize_ok arg as bool, not int.
+	Provide default value for resize_ok.
+
+2006-07-14  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (do_write): Include explicit instantiations.
+
+	* ov-str-mat.h (octave_char_matrix_sq_str::resize):
+	Include fill arg to match base class.
+	* ov-struct.h (octave_struct::resize): Likewise.
+
+	* ov-base-mat.cc, ov-base-mat.h, ov-base-sparse.cc,
+	ov-base-sparse.h, ov-base.cc, ov-base.h, ov-bool.cc,
+	ov-bool.h, ov-complex.cc, ov-complex.h, ov-intx.h, ov-list.cc,
+	ov-list.h, ov-range.cc, ov-range.h, ov-scalar.cc, ov-scalar.h,
+	ov-str-mat.cc, ov-str-mat.h, ov.h (do_index_op):
+	Declare	resize_ok arg as bool, not int.
+	Provide default value for resize_ok.
+
+	* c-file-ptr-stream.h (c_file_ptr_stream::c_file_ptr_stream):
+	Qualify init.
+
+2006-07-13  John W. Eaton  <jwe@octave.org>
+
+	* oct-map.h (Octave_map::del): Add missing std:: qualifier to use
+	of find template.
+
+2006-07-07  John W. Eaton  <jwe@octave.org>
+
+	* ov.h (octave_value::is_bool_scalar): New function.
+	* ov-base.h (octave_base_value::is_bool_scalar): New function.
+	* ov-bool.h (octave_bool::is_bool_scalar): New function.
+
+	* oct-map.cc (Octave_map::keys): Use assert.
+	(Octave_map::assign): Avoid inserting new key in map unless
+	assignment to cell succeeds.
+
+	* oct-map.h (Octave_map::del): Only touch key_list if map contains key.
+	Assert that key_list contains key.
+
+	* oct-map.h (Octave_map::maybe_add_to_key_list): For efficiency,
+	check map, not key_list.  From Paul Kienzle  <pkienzle@users.sf.net>.
+
+2006-07-06  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Declare mrowsc volatile.
+
+	* ov-struct.cc (octave_struct::print_raw): Print keys in key_list
+	order.
+
+	* oct-map.h (Octave_map::key_list): New data member.
+	(Octave_map::maybe_add_to_key_list): New function.
+	(Octave_map::key_list_iterator, Octave_map::const_key_list_iterator):
+	New typedefs.
+	(Octave_map::del): Also delete key from key_list.
+	* oct-map.cc (Octave_map::keys): Compute return value from
+	key_list instead of map.
+	(Octave_map::assign, Octave_map::contents): Call maybe_add_to_key_list.
+	* oct-map.h, oct-map.cc (Octave_map::Octave_map):
+	Insert keys in key_list.
+
+	* oct-map.h (Octave_map::Octave_map (const dim_vector&,
+	const string_vector&)): New arg, key_list_arg.
+	* oct-map.cc: Move definition here.
+
+2006-07-05  John W. Eaton  <jwe@octave.org>
+
+	* mex.cc (mexGetVariable): Rename from mexGetArray, swap arguments.
+	(mexGetVariablePtr): Rename from mexGetArrayPtr, swap arguments.
+	(mexErrMsgIdAndTxt, mexWarnMsgIdAndTxt): New functions.
+	* mexproto.h: Provide decls.
+	Include decls for as yet unsupported functions.
+	* mex.h: Add enum for class ids.
+	(mexGetArray): Define using mexGetVariable.
+	(mexGetArrayPtr): Define using mexGetVariablePtr.
+
+2006-07-02  John W. Eaton  <jwe@octave.org>
+
+	* ov-str-mat.cc (CHAR_MATRIX_CONV): Omit "warn-" from label.
+	* parse.y (maybe_warn_variable_switch_label): Likewise.
+
+2006-07-01  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (finish_cell): Use finish_matrix to do constant folding.
+
+2006-06-30  John W. Eaton  <jwe@octave.org>
+
+	* ov-base.cc (octave_base_value::numeric_assign):
+	Avoid memory leak when converting LHS.
+
+	* oct-hist.cc (do_history, initialize_history, Fhistory_file):
+	Don't perform tilde expansion on history file name.
+
+	* syscalls.cc (Flstat, Fstat): Don't perform tilde expansion on arg.
+	* input.cc (Fread_readline_init_file): Likewise.
+	* dirfns.cc (Fcd, Freaddir): Likewise.
+
+	* load-path.cc (genpath): Don't perform tilde expansion on name.
+	(load_path::do_add): Don't warn about moving "." to front of list.
+
+2006-06-28  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (Faddpath): Don't treat "." specially here.
+	Don't check directory status here.
+	(Fpath): Handle all args.  Don't treat "." specially here.
+	(Faddpath, Frmpath): Delete unused variable xpath.
+	(load_path::do_add): New function.
+	(load_path::do_prepend, load_path::do_append): Use it.
+	(load_path::do_remove): Really prevent removal of ".".
+	(load_path::do_clear): Clearing doesn't remove ".".
+	(load_path::append, load_path::prepend, load_path::do_append,
+	load_path::do_prepend): New arg, warn.
+
+	* load-path.h: Fix decls.
+
+	* DLD-FUNCTIONS/regexp.cc (octregexp_list):
+	Avoid bug in older versions of g++.
+
+2006-06-27  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (clean): Also remove $(DLD_OBJ).
+
+	* sighandlers.cc (install_signal_handlers): Don't handle SIGPROF.
+	From Geoffrey Knauth <geoff@knauth.org>.
+
+2006-06-25  John W. Eaton  <jwe@octave.org>
+
+	* mk-pkg-add: Avoid apparently non-portable sed patterns.
+
+2006-06-21  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (do_who): Handle mex.
+
+	* symtab.cc (SYMBOL_DEF::type_as_string, SYMBOL_DEF::which,
+	symbol_table::clear_functions, table::clear_function,
+	symbol_table::clear_function_pattern):
+	Handle mex.
+	* symtab.h (symbol_record::is_mex_function,
+	symbol_record::symbol_def::is_mex_function): New functions.
+	(symbol_record::TYPE): New value, MEX_FUNCTION.
+	(symbol_record::is_function, symbol_table::user_function_name_list,
+	SYMTAB_ALL_TYPES): Handle MEX_FUNCTION.
+
+	* ov-fcn.h (octave_function::octave_function):
+	Provide default for doc string arg.
+
+	* defun.cc (install_mex_function): New function.
+	* defun-int.h: Provide decl.
+
+	* ov-builtin.cc (any_arg_is_magic_colon): Delete.
+	(octave_builtin::do_multi_index_op): Call has_magic_colon method
+	for args instead of any_arg_is_magic_colon.
+
+	* ov-base.h (octave_base_value::is_mex_function): New function.
+	* ov.h (octave_value::is_mex_function): New function.
+
+	* ov-mex-fcn.h, ov-mex-fcn.cc: New files.
+
+	* parse.y (load_fcn_from_file): Also handle .mex files.
+
+	* dynamic-ld.cc (octave_dynamic_loader::load_oct): Rename from load.
+	(octave_dynamic_loader::do_load_oct): Rename from do_load.
+	* dynamic-ld.h: Fix decls.
+
+	* utils.cc (mex_file_in_path): New function.
+	* utils.h: Provide decl.
+
+	* variables.cc (symbol_out_of_date): Also handle mex files.
+
+	* load-path.cc (load_path::dir_info::get_file_list,
+	load_path::dir_info::get_private_function_map,
+	load_path::do_find_fcn, load_path::add_to_fcn_map,
+	load_path::do_display): Also handle mex files.
+	* load-path.h (load_path::find_mex_file): New static function.
+	(load_path::MEX_FILE): New static data member.
+	(load_path::do_find_fcn): By default, also look for mex files.
+
+	* matrix.h, mex.h, mex.cc: New files from Octave Forge
+	* mexproto.h: New file, extracted from mex.h.
+	* Makefile.in: Add them to the appropriate lists.
+
+2006-06-20  John W. Eaton  <jwe@octave.org>
+
+	* ov-re-mat.cc (octave_matrix::convert_to_str_internal):
+	Don't lose empty dimensions on conversion to char.
+
+	* strfns.cc (Fstrcmp): Handle comparison of cellstr and empty string.
+
+2006-06-16  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (%union): New type, anon_fcn_handle_type.
+	(anon_fcn_handle): Now anon_fcn_handle_type, not tree_constant_type.
+	(make_anon_fcn_handle):	Return tree_anon_fcn_handle, not tree_constant.
+
+	* comment-list.cc (octave_comment_list::dup): New function.
+	* comment-list.h: Provide decl.
+
+	* pt-cmd.cc (tree_no_op_command::dup): New function.
+	* pt-cmd.h: Provide decl.
+	(tree_command::dup): New pure virtual function.
+
+	* pt-loop.cc (tree_while_command::dup, tree_do_until_command::dup,
+	tree_simple_for_command::dup, tree_complex_for_command::dup):
+	New functions.
+	* pt-loop.h: Provide decls.
+
+	* pt-jump.cc (tree_break_command::dup, tree_continue_command::dup,
+	tree_return_command::dup): New functions.
+	* pt-jump.h: Provide decls.
+
+	* pt-except.cc (tree_try_catch_command::dup,
+	tree_unwind_protect_command::dup): New functions.
+	* pt-except.h: Provide decls.
+
+	* pt-select.cc (tree_if_clause::dup, tree_if_command_list::dup,
+	tree_if_command::dup, tree_switch_case::dup,
+	tree_switch_case_list::dup, tree_switch_command::dup):
+	New functions.
+	* pt-select.h: Provide decls.
+
+	* pt-decl.cc (tree_decl_elt::dup, tree_decl_init_list::dup,
+	tree_global_command::dup, tree_static_command::dup): New functions.
+	* pt-decl.h: Provide decls.
+
+	* pt-exp.h (tree_expression::copy_base): New function.
+	(tree_expression::dup): New pure virtual function.
+
+	* pt-fcn-handle.cc, pt-fcn-handle.h (tree_anon_fcn_handle): New class.
+
+	* pt-fcn-handle.cc (tree_function_handle::dup): New function.
+	* pt-fcn-handle.h: Provide decl.
+
+	* pt-colon.cc (tree_colon_expression::dup): New function.
+	* pt-colon.h: Provide decl.
+	(tree_colon_expression::tree_colon_expression (tree_expression *,
+	tree_expression *, tree_expression *, int, int)): New constructor.
+
+	* pt-const.cc (tree_constant::dup): New function.
+	(tree_constant::tree_constant (const octave_value&, const
+	std::string&, int, int)): New constructor.
+	* pt-const.h: Provide decls.
+
+	* pt-idx.cc (tree_index_expression::dup): New functoin.
+	(tree_index_expression::tree_index_expression (int, int)):
+	New constructor.
+	* pt-idx.h: Provide decls.
+
+	* pt-arg-list.cc (tree_argument_list::dup): New function.
+	* pt-arg-list.h: Provide decl.
+
+	* pt-id.cc (tree_identifier::dup): New function.
+	* pt-id.h: Provide decl.
+
+	* pt-cell.cc (tree_cell::dup): New function.
+	* pt-cell.h: Provide decl.
+
+	* pt-mat.cc (tree_matrix::dup): New function.
+	* pt-mat.h: Provide decl.
+
+	* pt-assign.cc (tree_simple_assignment::dup,
+	tree_multi_assignment::dup): New functions.
+	* pt-assign.h: Provide decls.
+
+	* pt-binop.cc (tree_binary_expression::dup,
+	tree_boolean_expression::dup): New functions.
+	* pt-binop.h: Provide decls.
+
+	* pt-unop.cc (tree_prefix_expression::dup,
+	tree_postfix_expression::dup): New functions.
+	* pt-unop.h: Provide decls.
+
+	* pt-stmt.cc (tree_statement::dup, tree_statement_list::dup):
+	New functions.
+	* pt-stmt.h: Provide decls.
+
+	* pt-misc.cc (tree_parameter_list::dup,
+	tree_return_list::dup): New functions.
+	* pt-misc.h: Provide decls.
+
+	* symtab.cc (symbol_table::dup, symbol_table::inherit,
+	symbol_record:is_automatic_variable): New functions.
+	* symtab.h: Provide decls.
+	(symbol_record::automatic_variable): New data member.
+	(symbol_record::symbol_record): Initialize it.
+	(symbol_record::mark_as_automatic_variable): New function.
+
+	* pt-walk.h (tree_walker::visit_anon_fcn_handle):
+	New pure virtual function.
+	* pt-pr-code.cc (tree_print_code::visit_anon_fcn_handle): New function.
+	* pt-pr-code.h: Provide decl.
+	* pt-bp.cc (tree_breakpoint::visit_anon_fcn_handle): New function.
+	* pt-bp.h: Provide decl.
+	* pt-check.cc (tree_checker::visit_anon_fcn_handle): New function.
+	* pt-check.h: Provide decl.
+
+2006-06-13  John W. Eaton  <jwe@octave.org>
+
+	* pt-stmt.cc (tree_statement_list::eval): Revise previous change
+	to preserve return-last-value-computed semantics.
+
+	* DLD-FUNCTIONS/fsolve.cc (hybrd_info_to_fsolve_info):
+	Warn about invalid values of INFO from MINPACK instead of calling
+	panic_impossible.
+
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Don't assign values returned by evaluation of cmd_list to
+	temporary variable.  Delete unused variable last_computed_value.
+
+	* pt-stmt.cc (tree_statement_list::eval):
+	Clear retval before each statement is evaluated.
+
+2006-06-12  John W. Eaton  <jwe@octave.org>
+
+	* unwind-prot.h (unwind_protect_fptr): New macro.
+	* load-path.cc (load_path::do_set): Use it instead of
+	unwind_protect_ptr when protecting add_hook function pointer.
+	* dynamic-ld.cc (octave_dynamic_loader::do_load): Use FCN_PTR_CAST
+	here instead of reinterpret_cast.
+
+2006-06-09  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.6+.
+
+2006-06-09  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.6.
+	(OCTAVE_API_VERSION): Now api-v19.
+	(OCTAVE_RELEASE_DATE): Now 2006-06-09.
+
+	* ov-cell.cc (cell::save_hdf5): Use leading zeros to keep elements
+	correctly sorted in the HDF file.
+	From Stephen Fegan <sfegan@astro.ucla.edu>.
+
+2006-06-08  John W. Eaton  <jwe@octave.org>
+
+	* ov-usr-fcn.cc (function::do_multi_index_op): Append contents of
+	varargout to ret_list before calling convert_to_const_vector.
+
+	* pt-arg-list.cc (tree_argument_list::convert_to_const_vector):
+	No need to handle all_va_args here.
+
+	* ov-va-args.h, ov-va-args.cc: Delete files.
+	* Makefile.in (OV_INCLUDES, OV_SRC): Delete from the lists.
+
+	* ov.cc (install_types): Don't register octave_all_va_args type.
+	* ov.h, ov.cc (octave_value::octave_value (octave_value::all_va_args)):
+	Delete.
+	* ov.h (octave_value::is_all_va_args): Delete.
+	(octave_value::enum all_va_args): Delete.
+
+	* pt-pr-code.cc	(tree_print_code::visit_octave_user_function_header):
+	Print "varargout" and "varargin" instead of "...".
+
+	* pt-misc.h, pt-misc.cc	(tree_parameter_list::convert_to_const_vector):
+	Arg is now const Cell& instead of tree_va_return_list*.
+
+	* ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::vr_list,
+	octave_user_function::curr_va_arg_number):
+	Delete variables and all uses.
+	(octave_function::octave_va_start, octave_function::octave_va_arg,
+	octave_function::octave_vr_val,	octave_function::has_varargout):
+	Delete functions and all uses.
+
+	* ov-fcn.h (octave_function::octave_va_start,
+	octave_function::octave_va_arg, octave_function::octave_vr_val,
+	octave_function::has_varargout): Delete.
+
+	* ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Delete.
+
+	* lex.l ({EL}): Don't handle "..." as varargin or varargout.
+	* octave.gperf (all_va_args, ALL_VA_ARGS, all_va_args_kw): Delete.
+	* parse.y (ALL_VA_ARGS): Delete token and all uses.
+
+	* defaults.h.in (OCTAVE_DATAROOTDIR): Substitute here.
+	* toplev.cc (octave_config_info): Add datarootdir to the struct.
+
+2006-06-07  John W. Eaton  <jwe@octave.org>
+
+	* ov-cell.cc (octave_cell::subsasgn): Handle c-s list object on
+	RHS if last index is '{'.
+	* pt-assign.cc (tree_multi_assignment::rvalue): Compute all LHS
+	lvalues before evaluating RHS.  If LHS lvalue expects more than
+	one output, pass octave_cs_list object to assign method.
+	* pt-idx.cc (tree_index_expression::lvalue): Compute expected
+	number of values if '{' index appears last.
+	* pt-arg-list.cc (tree_argument_list::lvalue_list): New function.
+	* pt-arg-list.h (tree_argument_list::lvalue_list): Provide decl.
+	* oct-lvalue.h (octave_lvalue::nel): New data member.
+	(octave_lvalue::numel): New functions
+	* oct-obj.cc (octave_value_list::has_magic_colon): New function.
+	* oct-obj.h (octave_value_list::has_magic_colon): Provide decl.
+	* pt-arg-list.cc (tree_argument_list::nargout_count): Delete function.
+	* pt-arg-list.h (tree_argument_list::nargout_count): Delete decl.
+
+2006-06-06  John W. Eaton  <jwe@octave.org>
+
+	* sighandlers.cc (generic_sig_handler, sigint_handler):
+	Use strsignal instead of accessing sys_siglist directly.
+	* siglist.h: Use HAVE_DECL_SYS_SIGLIST instead of SYS_SIGLIST_DECLARED.
+	* siglist.c: Update sys_siglist.
+	(init_signals, strsignal): New functions.
+	* octave.cc (octave_main): Call init_signals here.
+
+	* toplev.cc (Foctave_config_info): Delete LIBPLPLOT from struct.
+
+2006-06-05  John W. Eaton  <jwe@octave.org>
+
+	* pt-assign.cc (Vprint_rhs_assign_val): Delete variable.
+	(Fprint_rhs_assign_val): Delete function.
+	tree_simple_assignment::rvalue, tree_multi_assignment::rvalue):
+	No special case for Vprint_rhs_assign_val.
+
+2006-06-02  John W. Eaton  <jwe@octave.org>
+
+	* pt-arg-list.h (tree_argument_list::mark_as_simple_assign_lhs,
+	tree_argument_list::is_simple_assign_lhs): New functions.
+	(tree_argument_list::simple_assign_lhs): New data member.
+	* parse.y (assign_lhs): Classify LHS here.
+	(make_assign_op): Create simple or multi assign op based on
+	classification of LHS, not its length.
+
+2006-06-01  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (DLD_XSRC): Add __pchip_deriv__.cc to the list.
+
+2006-06-01  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/__pchip_deriv__.cc: New file.
+
+2006-05-31  John W. Eaton  <jwe@octave.org>
+
+	* load-path.h (load_path::set_command_line_path): Make it
+	additive.
+
+2006-05-26  John W. Eaton  <jwe@octave.org>
+
+	* load-path.cc (genpath, maybe_add_path_elts, Fgenpath, Frehash,
+	Fpath, Fpathdef): Move here from defaults.cc.
+	* load-path.cc, load-path.h: New files.
+	* Makefile.in (INCLUDES, DIST_SRC): Add them to the lists.
+	* help.cc (make_name_list, simple_help): Use load_path instead of
+	octave_fcn_file_name_cache.
+	(Flookfor): Use load_path instead of Vload_path_dir_path.
+	* octave.cc (octave_main):  Likewise.
+	* parse.y (load_fcn_from_file): Likewise.
+	* utils.cc (Ffile_in_loadpath, file_in_path, fcn_file_in_path,
+	oct_file_in_path): Likewise.
+	* variables.cc (symbol_exist, symbol_out_of_date): Likewise.
+	* DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Likewise.
+	* utils.cc (Ffind_first_of_in_loadpath): Delete.
+	* input.cc (octave_gets): Call load_path::update here.
+	* dirfns.cc (octave_change_to_directory): Likewise.
+	* defaults.cc (VLOADPATH, VDEFAULT_LOADPATH, Vload_path_dir_path,
+	maybe_add_or_del_packages, update_load_path_dir_path,
+	execute_default_pkg_add_files, set_load_path): Delete.
+	* defaults.h.in (Vload_path_dir_path,
+	execute_default_pkg_add_files, maybe_add_default_load_path,
+	set_load_path): Delete decls.
+
+	* fn-cache.h, fn-cache.cc: Delete.
+	* Makefile.in (INCLUDES, DIST_SRC): Remove them from the lists.
+
+	* input.cc (octave_gets): Only update Vlast_prompt_time if we are
+	interactive and actually printing a prompt.  Don't print prompt if
+	reading startup files or command line files.  Initialize
+	Vlast_prompt_time to 0.
+
+	* pr-output.cc (set_format): Always include space for sign.
+
+2006-05-23  John W. Eaton  <jwe@octave.org>
+
+	* load-save.cc (Fsave): Use tellp instead of pubseekoff to
+	determine whether we are at beginning of file.
+
+	* ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::increment,
+	OCTAVE_VALUE_INT_SCALAR_T::decrement,
+	OCTAVE_VALUE_INT_MATRIX_T::increment,
+	OCTAVE_VALUE_INT_MATRIX_T::decrement): New functions.
+	* OPERATORS/op-int.h (OCTAVE_INSTALL_M_INT_UNOPS,
+	OCTAVE_INSTALL_S_INT_UNOPS, OCTAVE_M_INT_UNOPS,
+	OCTAVE_S_INT_UNOPS): Uncomment increment and decrement ops.
+
+2006-05-19  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (SYMBOL_DEF::document): If definition is a function,
+	also pass doc string to function object.
+	* ov-fcn.h (octave_function::document): New function.
+	* defun.cc (print_usage (octave_function *)): New function.
+	(print_usage (void)): New function.
+	(print_usage (const std::string&)): Provide for backward
+	compatibility.  Ignore arg.
+	(Fprint_usage): Don't accept arg.
+	* defun-int.h (print_usage (void)): Provide decl.
+	(print_usage (const std::string&)): Tag with GCC_ATTR_DEPRECATED.
+
+2006-05-04  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/conv2.cc: New file from Octave Forge.
+	* Makefile.in (DLD_XSRC): Add it to the list
+
+2006-05-17  Bill Denney  <bill@givebillmoney.com>
+
+	* help.cc (keywords): Improve and Texinfoize.
+
+2006-05-17  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (Vwhos_line_format): Show class instead of type.
+	(symbol_table::parse_whos_line_format):
+	Use 't' for "Type" and 'c' for "Class".
+	(symbol_record::print_symbol_info_line): Likewise.
+	(maybe_list_cmp_fcn): Fix casts.
+
+2006-05-11  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (IMAGE_PATH_OPTION): New macro.
+	(usage_string, verbose_usage): Include --image-path option.
+	(long_opts): Include --image-path.
+	(octave_main): Handle IMAGE_PATH_OPTION.
+
+	* toplev.cc (Foctave_config_info): Delete fcnfilepath, imagepath,
+	localfcnfilepath, and localoctfilepath from the struct.
+	* defaults.h.in (OCTAVE_FCNFILEPATH, OCTAVE_IMAGEPATH,
+	OCTAVE_LOCALFCNFILEPATH, OCTAVE_LOCALOCTFILEPATH): Delete variables.
+
+	* octave.cc (octave_main): Call set_exec_path and set_load_path
+	instead of bind_internal_variable.
+
+	* defaults.cc (Fpathdef): Rename from FDEFAULT_LOADPATH.
+	Don't allow default path to be set.
+	(Fpath): Rename from FLOADPATH.  Make Matlab-compatible.
+	(update_load_path_dir_path): No need to pass VDEFAULT_LOADPATH to
+	dir_path constructor now.
+	(update_exec_path, FDEFAULT_EXEC_PATH,
+	set_default_default_exec_path, set_default_exec_path,
+	maybe_add_default_load_path): Delete functions.
+	(VDEFAULT_EXEC_PATH): Delete variable.
+	(FEXEC_PATH): Leading and trailing colons no longer special.
+	(set_exec_path, set_load_path, set_image_path,
+	maybe_add_path_elts): New functions.
+	(install_defaults): Call set_exec_path and set_load_path instead
+	of set_default_exec_path and set_default_path.  Don't call
+	set_default_default_exec_path.  Do call set_image_path.
+	* defaults.cc (genpath, Fgenpath): New functions.
+	(Vlocal_ver_oct_file_dir, Vlocal_api_oct_file_dir,
+	Vlocal_oct_file_dir, Vlocal_ver_fcn_file_dir,
+	Vlocal_api_fcn_file_dir, Vlocal_fcn_file_dir, Vimage_dir):
+	New variables.
+	(set_default_local_ver_oct_file_dir,
+	set_default_local_api_oct_file_dir,
+	set_default_local_oct_file_dir,
+	set_default_local_ver_fcn_file_dir,
+	set_default_local_api_fcn_file_dir,
+	set_default_local_fcn_file_dir, set_default_image_dir):
+	New functions.
+	(install_defaults): Call them.
+	* defaults.h.in (set_exec_path, set_load_path, set_image_path,
+	Vlocal_ver_oct_file_dir, Vlocal_api_oct_file_dir,
+	Vlocal_oct_file_dir, Vlocal_ver_fcn_file_dir,
+	Vlocal_api_fcn_file_dir, Vlocal_fcn_file_dir,
+	Vlocal_fcn_file_dir, Vimage_dir): Provide decls.
+
+2006-05-10  John W. Eaton  <jwe@octave.org>
+
+	* ov-cell.cc (Fcellstr): Trim trailing blanks.
+	* Cell.h (Cell::Cell (const string_vector&)): New arg, TRIM.
+
+	* oct-hist.cc (initialize_history, Fhistory_size):
+	Also call command_history::set_size here.
+
+	* defun.cc (Fprint_usage): New function.
+	* help.cc (display_usage_text): New function.
+
+2006-05-09  Keith Goodman  <kwgoodman@gmail.com>
+
+	* DLD-FUNCTIONS/rand.cc: Doc string fix.
+
+2006-05-09  Jorge Barros de Abreu  <ficmatin01@solar.com.br>
+
+	* data.cc (FInf, FNaN): Fix typo in doc string.
+
+2006-05-08  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (DEFUN_PATTERN): Match DEFUNX_DLD.
+	* mkbuiltins: Handle XDEFUNX_DLD_INTERNAL.
+	* mkgendoc: Likewise.
+	* mk-pkg-add: Likewise.  Do all the matching with sed.
+	* defun-int.h 	(DEFINE_FUNX_INSTALLER_FUN, DEFINE_FUNX_INSTALLER_FUN2,
+	DEFINE_FUNX_INSTALLER_FUN3): New macros.
+	(DEFINE_FUN_INSTALLER_FUN3): Define using DEFINE_FUNX_INSTALLER_FUN3.
+	(DEFUNX_DLD_INTERNAL): New macro.
+	* defun-dld.h (DEFUNX_DLD): New macro.
+
+	* DLD-FUNCTIONS/__gnuplot_raw__.l: Mark __gnuplot_set__ as a
+	command, not a rawcommand.
+
+	* load-save.cc: No need to handle built-in variables.
+	* help.cc (simple_help): No need to handle built-in variables.
+
+	* variables.cc (is_builtin_variable, builtin_string_variable,
+	builtin_real_scalar_variable, builtin_any_variable):
+	Delete functions.
+	(Fexist, Fdocument, do_who, Fwho, link_to_builtin_or_function):
+	No need to handle built-in variables.
+	* variables.h (is_builtin_variable, builtin_string_variable,
+	builtin_real_scalar_variable, builtin_any_variable): Delete decls.
+
+	* symtab.h (symbol_record::symbol_def::is_builtin_variable,
+	symbol_record::is_builtin_variable): Delete.
+	(symbol_record::TYPE): Remove BUILTIN_VARIABLE from enum.
+	(symbol_record::symbol_def::is_variable, SYMTAB_ALL_TYPES,
+	SYMTAB_VARIABLES): No need to handle built-in variables now.
+	(symbol_record::define_builtin_variable,
+	symbol_record::link_to_builtin_variable): Delete decls.
+	* symtab.cc (record::define, SYMBOL_DEF::type,
+	SYMBOL_DEF::type_as_string): No need to handle built-in variables.
+	(symbol_record::define_builtin_variable): Delete.
+	(symbol_record::variable_reference): No need to attemp to link to
+	built-in variable.
+
+	* utils.cc (check_preference, warn_old_style_preference): Delete.
+	* utils.h (check_preference): Delete decl.
+
+	* defun-int.h: Delete all DEFVAR macros.
+
+	* Makefile.in, mkbuiltins: No need for VAR_FILES.
+
+	* parse.y (current_script_file_name): Delete all uses.
+	(clear_current_script_file_name): Delete function.
+
+	* variables.cc (symbols_of_variables): Delete DEFVAR and function.
+	(bind_ans): Lookup ans in curr_sym_tab, not fbi_sym_tab.
+	SR is no longer static, so we insert value in local scope.
+
+	* defun.cc (bind_builtin_variable): Delete function.
+	* defun-int.h: Delete decl.
+
+	* defaults.cc (fftw_wisdom_program): Rename from fftw_wisdom_prog.
+	Change all uses.
+	(VDEFAULT_LOADPATH): Rename from Vdefault_load_path.  Change all uses.
+	(VLOADPATH): Rename from Vload_path.  Change all uses.
+	(VDEFAULT_EXECPATH): Rename from Vdefault_exec_path.  Change all uses.
+	(VEXECPATH): Rename from Vexec_path.  Change all uses.
+	(VEDITOR): Rename from Veditor.  Change all uses.
+	(Ffftw_wisdom_program, FDEFAULT_LOADPATH, FLOADPATH,
+	FDEFAULT_EXEC_PATH, FEXEC_PATH, FEDITOR, FIMAGEPATH): New functions.
+	(fftw_wisdom_program, default_load_path, loadpath,
+	default_exec_path, exec_path, editor, image_path): Delete functions.
+	(symbols_of_defaults): Delete DEFVARs and function.
+
+	* pr-output.cc (set_output_prec_and_fw): Set Voutput_precision and
+	Voutput_max_field_width directly instead of calling
+	bind_builtin_variable.
+
+	* octave.cc (octave_main, maximum_braindamage):
+	Call bind_internal_variable instead of bind_builtin_variable.
+
+	* pager.cc (Fmore): Set Vpage_screen_output directly instead of
+	calling bind_builtin_variable.
+
+	* error.cc (Fwarning): Set Vdebug_on_warning directly instead of
+	calling bind_builtin_variable.
+
+	* error.cc (initialize_warning_options): Now static.
+	(disable_warning, initialize_default_warning_state): New functions.
+
+	* error.h (initialize_warning_options): Delete decl.
+	(initialize_default_warning_state): Provide decl.
+	* octave.cc (octave_main): Call initialize_default_warning_state
+	instead initialize_warning_options.
+
+	* lex.l (warn_matlab_incompatible, warn_separator_insert,
+	warn_single_quote_string): Delete functions.
+	(symbols_of_lex): Delete DEFVARS.
+	(Vwarn_matlab_incompatible, Vwarn_separator_insert,
+	Vwarn_single_quote_string): Delete variables.
+	(maybe_warn_separator_insert, gripe_single_quote_string,
+	gripe_matlab_incompatible): Call warning_with_id instead of warning.
+
+	* variables.h (SET_NONEMPTY_INTERNAL_STRING_VARIABLE,
+	SET_INTERNAL_VARIABLE_WITH_LIMITS): New macros.
+
+	* ls-oct-ascii.cc (Fsave_precision): New function.
+	(save_precision): Delete function.
+	(symbols_of_ls_oct_ascii): Delete DEFVAR and function.
+
+	* oct-hist.cc (initialize_history): New function.
+	* oct-hist.h: Provide decl.
+	* octave.cc (octave_main): Call initialize_history instead of
+	command_history::read.
+
+	* oct-hist.cc (Fhistory_size, Fhistory_file,
+	Fhistory_timestamp_format_string, Fsaving_history): New functions.
+	(history_size, history_file, history_timestamp_format_string,
+	saving_history): Delete functions.
+	(symbols_of_oct_hist): Delete DEFVARs and function.
+
+	* pt-mat.cc (Fstring_fill_char): New function.
+	(string_fill_char): Delete function.
+	(symbols_of_pt_mat): Delete DEFVAR and function.
+
+	* variables.cc (Fignore_function_time_stamp, ans): New functions.
+	(ignore_function_time_stamp): Delete function.
+	(symbols_of_variables): Delete DEFVARs and function.
+
+	* oct-procbuf.cc: (Vkluge_procbuf_delay): Delete variable.
+	(octave_procbuf::open): Never delay after fork.
+	(kluge_procbuf_delay): Delete function.
+	(symbols_of_oct_procbuf): Delete DEFVAR and function.
+
+	* dirfns.cc (Fconfirm_recursive_rmdir): New function.
+	(confirm_recursive_rmdir): Delete function.
+	(symbols_of_dirfns): Delete DEFVAR and function.
+
+	* error.cc (initialize_warning_options): Now extern.
+	Rename from init_warning_options.
+	* error.h: Provide decl.
+	* octave.cc (octave_main): Call it here.
+
+	* error.cc (Fbeep_on_error, Fdebug_on_error, Fdebug_on_warning):
+	New functions.
+	(beep_on_error, debug_on_error, debug_on_warning): Delete Functions.
+	(symbols_of_error): Delete DEFVARs and function.
+
+	* help.cc (Finfo_file, Finfo_program, Fmakeinfo_program,
+	Fsuppress_verbose_help_message): New function.
+	(info_file, info_program, makeinfo_program,
+	suppress_verbose_help_message): Delete function.
+	(symbols_of_help): Delete DEFVARs and function.
+	(Vinfo_program): Rename from Vinfo_prog.  Change all uses.
+
+	* input.cc (FPS1, FPS2, FPS4, Fcompletion_append_char,
+	Fecho_executing_commands): New functions.
+	(ps1, ps2, ps4, completion_append_char, echo_executing_commands):
+	Delete functions.
+	(symbols_of_input): Delete DEFVARs and function.
+	(VPS1, VPS2, VPS4): Rename from Vps1, Vps2, Vps4.  Change all uses.
+	(Fecho): Set Vecho_executing_commands directly.
+
+	* load-save.cc (crash_dumps_octave_core, Fdefault_save_options,
+	Foctave_core_file_limit, Foctave_core_file_name,
+	Foctave_core_file_options, Fsave_header_format_string):
+	New functions.
+	(crash_dumps_octave_core, default_save_options,
+	octave_core_file_limit, octave_core_file_name,
+	octave_core_file_options, save_header_format_string):
+	Delete functions.
+	(symbols_of_load_save): Delete DEFVARs and function.
+
+	* ov-base.cc (Fprint_answer_id_name, Fsilent_functions): New functions.
+	(print_answer_id_name, silent_functions): Delete functions.
+	(symbols_of_ov_base): Delete DEFVARs and function.
+
+	* ov-usr-fcn.cc (Fmax_recursion_depth): New function.
+	(max_recursion_depth): Delete function.
+	(symbols_of_ov_usr_fcn): Delete DEFVAR for max_recursion_depth.
+	Delete function.
+
+	* pager.cc (Fpage_output_immediately, Fpage_screen_output, FPAGER):
+	New functions.
+	(page_output_immediately, page_screen_output, pager_binary):
+	Delete functions.
+	(symbols_of_pager): Delete DEFVARs and function.
+	(VPAGER): Rename from Vpager_binary.  Change all uses.
+
+	* pr-output.cc (Ffixed_point_format, Fprint_empty_dimensions,
+	Fsplit_long_rows, Foutput_max_field_width, Foutput_precision,
+	Fstruct_levels_to_print): New functions.
+	(fixed_point_format, print_empty_dimensions, split_long_rows,
+	output_max_field_width, output_precision, struct_levels_to_print):
+	Delete functions.
+	(symbols_of_pr_output): Delete DEFVARs and function.
+
+	* pt-assign.cc (Fprint_rhs_assign_val): New function.
+	(print_rhs_assign_val): Delete function.
+	(symbols_of_pt_assign): Delete DEFVAR.  Delete function.
+
+	* sighandlers.cc (Fdebug_on_interrupt, Fsighup_dumps_octave_core,
+	Fsigterm_dumps_octave_core): New functions.
+	(debug_on_interrupt, sighup_dumps_octave_core,
+	sigterm_dumps_octave_core): Delete functions.
+	(symbols_of_sighanlders): Delete DEFVARs.  Delete function.
+
+	* symtab.cc (Vdebug_symtab_lookups): Now bool.
+	(Fdebug_symtab_lookups, Fwhos_line_format,
+	Fvariables_can_hide_functions): New functions.
+	(debug_symtab_lookups, whos_line_format,
+	variables_can_hide_functions): Delete functions.
+	(symbols_of_symtab): Delete DEFVARs and function.
+
+2006-05-04  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/sqqr (Fdmperm): Allow compilation with versions
+	v2.0.0 of CXSparse or later.
+
+2006-05-04  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (set_internal_variable): Move here from
+	DLD-FUNCTIONS/__gnuplot_raw__.l.
+	* variables.h (SET_INTERNAL_VARIABLE): Likewise.
+	(set_internal_variable): Provide decls.
+
+	* DLD-FUNCTIONS/__gnuplot_raw__.l: Convert all DEFVARs to DEFUN_DLDs.
+	(gnuplot::init): Delete.
+	(gnuplot::gnuplot): Don't call init here.
+	(set_internal_variable): New functions.
+	(SET_INTERNAL_VARIABLE): New macro.
+
+	* Makefile.in: Undo changes of 2006-03-16.
+	* DLD-FUNCTINS/__gnuplot_raw__.l: Move here from __gnuplot_raw__.l.
+	Undo changes of 2006-03-16.
+
+2006-05-03  David Bateman  <dbateman@free.fr>
+
+	* ov-base-mat.h: Add caching of matrix type, and code to supply
+	and copy matrix type.
+	* ov-bool-mat.h: Add caching to constructor.
+	* ov-re-mat.h: ditto.
+	* ov-cx-mat.h: ditto.
+	* ov.cc: Add to the BoolMatrix, Matrix and the ComplexMatrix
+	octave_value constructors, the ability to specify the matrix type.
+	* ov.h: Adapt declaration of above constructors.
+	(MatrixType matrix_type(void) const, MatrixType matrix_type (const
+	MatrixType&)): New functions for probing and setting matrix type.
+	* ov-base.cc (virtual MatrixType matrix_type(void) const, virtual
+	MatrixType matrix_type (const MatrixType&)): New default functions
+	for probing and setting matrix type.
+	* ov-base.h  (virtual MatrixType matrix_type(void) const, virtual
+	MatrixType matrix_type (const MatrixType&)): Declarations.
+	* ov-base-sparse.h: Replace all uses of SparseType with
+	MatrixType. Replace sparse_type function with matrix_type function.
+	* ov-bool-sparse.h: Replace all uses of SparseType with MatrixType.
+	* ov-cx-sparse.h: ditto.
+	* ov-re-sparse.h: ditto.
+	* sparse-xdiv.cc: ditto.
+	* sparse-xdiv.h: ditto.
+	* sparse-xpow.cc: ditto.
+	* DLD-FUNCTIONS/luinc.cc: ditto.
+	* DLD-FUNCTIONS/splu.cc: ditto.
+	* xdiv.cc (xdiv, xleftdiv): Pass the matrix type, simplfy since
+	the matrix solve function now calls lssolve if singular.
+	* xdiv.h (xdvi, xleftdiv): Update the declarations
+	* OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc,
+	OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc,
+	OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc,
+	OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-m.cc,
+	OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc,
+	OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc,
+	OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc,
+	OPERATORS/op-s-cm.cc, OPERATORS/op-s-m.cc,
+	OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-m.cc,
+	OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-m.cc: Update use of
+	xdiv and xleftdiv functions to allow matrix type caching.
+	* DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Update to allow typing
+	 of Matrix, and ComplexMatrix types. Add new test code for this.
+
+	* DLD-FUNCTIONS/cellfun.cc (Fmat2cell): new function.
+
+	* DLD-FUNCTIONS/regexp.cc (class regexp_elem): New class to store
+	matched element in a std::list.
+	(octregexp_list): Take algorithm from octregexp and construct a
+	list of matches.
+	(octregexp): Rewrite to use linked list of matches.
+	(Fregexprep): New function, working directly in linked list of
+	matches.
+
+2006-05-02  John W. Eaton  <jwe@octave.org>
+
+	* lex.l ({CCHAR}): Exit rawcommand mode if returning '\n' token.
+
+2006-05-02  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/rand.cc (do_rand): Require real scalar for seed.
+
+2006-05-01  John W. Eaton  <jwe@octave.org>
+
+	* error.h (Vwarning_option): Delete.
+	* variables.cc (looks_like_struct): Remove use from commented code.
+
+	* gripes.cc, gripes.h (gripe_implicit_conversion): New arg, ID.
+	Change all uses.
+
+	* defaults.cc (set_local_site_defaults_file, set_site_defaults_file):
+	Allow filenames to be set from the environment.
+
+	* oct-map.cc (octave_map::resize): No longer const.
+	* ov-struct.h (octave_struct::resize): Deal with it.
+
+	* octave.cc (initialize_error_handlers): Also call
+	set_liboctave_warning_with_id_handler.
+	(execute_startup_files): Check that home_rc is not an empty string.
+	(F__version_info__): Resize vinfo before assigining elements.
+
+	* ov-base.cc (warn_num_to_str, warn_resize_on_range_error):
+	Delete functions.
+	(symbols_of_ov_base): Delete DEFVARS.
+	(Vwarn_num_to_str, Vwarn_resize_on_range_error): Delete variables.
+	(value::convert_to_str): Check state of warning ID
+	Octave:num-to-str instead of using Vwarn_num_to_str.
+	* OPERATORS/op-chm.cc: Likewise.
+	* ov-base.h (Vwarn_num_to_str, Vwarn_resize_on_range_error):
+	Delete decls.
+
+	* ov-list.cc (octave_list::assign): Call warning_with_id instead
+	of warning.
+
+	* parse.y (warn_assign_as_truth_value, warn_associativity_change,
+	warn_function_name_clash, warn_future_time_stamp,
+	warn_missing_semicolon, warn_precedence_change,
+	warn_variable_switch_label, symbols_of_parse):
+	Delete DEFVARs and functions.
+	(Vwarn_assign_as_truth_value, Vwarn_associativity_change,
+	Vwarn_function_name_clash, Vwarn_future_time_stamp,
+	Vwarn_missing_semicolon, Vwarn_precedence_change,
+	Vwarn_variable_switch_label): Delete variables.
+	* parse.h (Vwarn_future_time_stamp): Delete decl.
+	* parse.y (fold): Check state of warning ID
+	Octave:associativity-change and Octave:precedence-change instead
+	of using Vwarn_associativity_change and Vwarn_precedence_change.
+	(maybe_warn_associativity_change, maybe_warn_missing_semi,
+	maybe_warn_assign_as_truth_value, make_binary_op, make_boolean_op,
+	frob_function): Call warning_with_id instead of warning.
+	* dynamic-ld.cc (octave_dynamic_loader::do_load): Likewise.
+
+	* ov.cc (warn_fortran_indexing, warn_imag_to_real, symbols_of_ov):
+	Delete DEFVARs and functions.
+	(Vwarn_fortran_indexing, Vwarn_imag_to_real): Delete variables.
+
+	* ov.cc (octave_value::vector_value, octave_value::int_vector_value,
+	octave_value::complex_vector_value): Check state of warning ID
+	Octave:fortran-indexing instead of using Vwarn_fortran_indexing.
+	* ov-cx-sparse.cc (octave_sparse_complex_matrix::double_value,
+	octave_sparse_complex_matrix::complex_value): Likewise.
+	* ov-cx-mat.cc (octave_complex_matrix::matrix_value,
+	octave_complex_matrix::complex_value): Likewise.
+	* ov-re-mat.cc (octave_matrix::complex_value,
+	octave_matrix::double_value): Likewise.
+	* ov-streamoff.cc (octave_streamoff::streamoff_value): Likewise.
+	* ov-re-sparse.cc (octave_sparse_matrix::complex_value,
+	octave_sparse_matrix::double_value): Likewise.
+	* ov-range.cc (octave_range::complex_value,
+	octave_range::double_value): Likewise.
+	* ov-ch-mat.cc (octave_char_matrix::complex_value,
+	octave_char_matrix::double_value): Likewise.
+	* ov-bool-sparse.cc (octave_sparse_bool_matrix::complex_value,
+	octave_sparse_bool_matrix::double_value): Likewise.
+	* ov-bool-mat.cc (octave_bool_matrix::complex_value,
+	octave_bool_matrix::double_value): Likewise.
+
+	* ov-cx-sparse.cc (octave_sparse_complex_matrix::double_value,
+	octave_sparse_complex_matrix::matrix_value,
+	octave_sparse_complex_matrix::sparse_matrix_value): Check state of
+	warning ID Octave:imag-to-real instead of using Vwarn_imag_to_real.
+	* ov-cx-mat.cc (octave_complex_matrix::double_value,
+	octave_complex_matrix::matrix_value,
+	octave_complex_matrix::complex_value,
+	octave_complex_matrix::sparse_matrix_value): Likewise.
+	* ov-complex.cc (octave_complex::double_value,
+	octave_complex::matrix_value, octave_complex::array_value): Likewise.
+
+	* ov.h (Vwarn_fortran_indexing, Vwarn_imag_to_real): Delete decls.
+
+	* pt-mat.cc (warn_empty_list_elements, warn_string_concat):
+	Delete functions.
+	(symbols_of_pt_mat): Delete DEFVARs.
+	(Vwarn_empty_list_elements, Vwarn_string_concat): Delete variables.
+	(tm_row_const::tm_row_const_rep::eval_warning, tm_const::init,
+	maybe_warn_string_concat): Call warning_with_id instead of warning.
+
+	* ov-str-mat.cc (warn_str_to_num, symbols_of_ov_str_mat):
+	Delete DEFVAR and functions.
+	(Vwarn_str_to_num): Delete variable.
+	(CHAR_MATRIX_CONV): Call warning_with_id instead of warning.
+
+	* utils.cc (warn_neg_dim_as_zero, symbols_of_utils):
+	Delete DEFVAR and functions.
+	(Vwarn_neg_dim_as_zero): Delete variable.
+	(check_dimensions): Call warning_with_id instead of warning.
+
+	* pt-misc.cc (warn_undefined_return_values, symbols_of_pt_misc):
+	Delete DEFVAR and functions.
+	(Vwarn_undefined_return_values): Delete variable.
+	(tree_parameter_list::initialize_undefined_elements):
+	Call warning_with_id instead of warning.
+
+	* dynamic-ld.cc	(warn_reload_forces_clear, symbols_of_dynamic_ld):
+	Delete DEFVAR and functions.
+	(Vwarn_reload_forces_clear): Delete variable.
+	(do_clear_function, octave_dynamic_loader::do_load):
+	Call warning_with_id instead of warning.
+	* error.cc (warning_enabled): Now extern.
+	(Fwarning): If specific id is not found, return state of "all".
+
+	* error.h: Provide decl.
+
+	* gripes.cc (warn_divide_by_zero, symbols_of_gripes):
+	Delete DEFVAR and functions.
+	(gripe_divide_by_zero): Check whether warning is enabled, then
+	call warning_with_id instead of warning.
+	(Vwarn_divide_by_zero): Delete variable.
+
+2006-04-27  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (Fexist): Fix doc string.
+
+	* help.cc (simple_help): No need to handle built-in constants now.
+	* variables.cc (do_who): Likewise.
+	(symbol_exist): Likewise.
+	(link_to_builtin_or_function): Likewise.
+	* symtab.cc (SYMBOL_DEF::type_as_string): Likewise.
+	(record::read_only_error): Likewise.
+	(SYMBOL_DEF::type): Likewise.
+	(record::variable_reference): Likewise.
+	(symbol_record::define_builtin_const): Delete function.
+
+	* symtab.h (symbol_record::define_builtin_const): Delete decl.
+	(symbol_record::symbol_def::is_constant): Delete function.
+	(symbol_record::symbol_def::is_builtin_constant): Delete function.
+	(symbol_record::symbol_def::is_constant): Delete function.
+	(symbol_record::is_builtin_constant): Delete function.
+	(SYMTAB_ALL_TYPES): No need to handle builtin-constants now.
+	(symbol_record::TYPE): Remove BUILTIN_CONSTANT from enum.
+
+	* defun.cc (install_builtin_constant): Delete function.
+	* defun-int.h (install_builtin_constant): Delete decl.
+
+	* variables.cc (bind_builtin_constant): Delete function.
+	* variables.h (bind_builtin_constant): Delete decl.
+
+	* defun-int.h (DEFCONST, DEFCONSTX, DEFCONST_INTERNAL,
+	DEFCONSTX_INTERNAL): Delete definitions.
+
+	* sighandlers.cc (FSIG): New function to replace DEFCONST in
+	symbols_of_sighandlers.
+
+	* octave.cc (intern_argv): Set octave_argv instead of calling
+	bind_builtin_variable here.
+	(Fargv, Fprogram_invocation_name, Fprogram_name): New functions to
+	replace DEFCONSTs in symbols_of_toplvev in toplev.cc.
+	(octave_program_invocation_name, octave_program_name):
+	New static variables.
+	(execute_command_line_file): Use unwind_protect_str to protect
+	octave_program_invocation_name, octave_program_name instead of
+	using a restore function.
+	(restore_program_name): Delete.
+
+	* defaults.cc (FOCTAVE_HOME): New function to replace DEFCONST in
+	symbols_of_defaults.
+
+2006-04-27  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/regexp.cc (octregexp): Fix for infinite loop in
+	regexp. Include news regexp arguments, and associated tests.
+
+2006-04-26  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc: Also instantiate do_read functions for boolNDArray.
+
+2006-04-26  Bill Denney  <denney@seas.upenn.edu>
+
+ 	* pager.cc (Fterminal_size): Add list_in_columns to @seealso.
+
+2006-04-26  John W. Eaton  <jwe@octave.org>
+
+	* dirfns.cc (Ffilesep): New function to replace DEFCONST in
+	symbols_of_dirfns.
+	(Fpathsep): New function.
+
+	* defaults.cc (set_default_default_exec_path): Use
+	dir_path::path_sep_str instead of std::string (SEPCHAR_STR).
+	(set_default_exec_path): Likewise.
+	(set_default_path): Likewise.
+	(maybe_add_default_load_path): Likewise.  Use dir_path::is_path_sep.
+
+2006-04-18  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/regexp.cc: Include <algorithm>, for transform decl.
+
+	* DLD-FUNCTIONS/ccolamd.cc (Fccolamd, Fcsymamd):
+	Always return something.
+
+	* sighandlers.cc (octave_set_signal_handler,
+	octave_set_interrupt_handler): New arg, restart_syscalls, with
+	default value true.
+	* sighandlers.h: Fix decls to match.
+	* sysdep.cc (octave_kbhit): Disable restarting of system calls.
+
+	* help.cc (Flookfor): Add std qualifier to transform function.
+	Include <algorithm>, for transform decl.
+
+2006-04-16  John W. Eaton  <jwe@octave.org>
+
+	* pager.h (octave_diary_buf, octave_pager_buf): Use std:stringbuf
+	directly.
+
+	* ls-mat-ascii.cc (read_mat_ascii_data): Use std::istringstream
+	directly.
+	* load-save.cc (parse_save_options): Likewise.
+	* ls-mat5.cc (read_mat5_binary_element): Likewise.
+	* oct-strstrm.h (octave_istrstream::is): Likewise.
+
+	* __gnuplot_raw__.l (printrange, handle_using, gnuplot::do_open,
+	gnuplot::do_set, gnuplot::do_show, gnuplot::makeplot,
+	gnuplot::handle_title): Use std::ostringstream directly.
+	* toplev.cc (run_command_and_return_output): Likewise.
+	* symtab.h (symbol_table::symbol_table): Likewise.
+	* strfns.cc (Flist_in_columns): Likewise.
+	* pt.cc (tree::str_print_code): Likewise.
+	* parse.y (yyerror, fold, finish_matrix): Likewise.
+	* pr-output.cc (PRINT_ND_ARRAY, octave_print_internal, Fdisp):
+	Likewise.
+	* symtab.cc (symbol_table::print_descriptor): Likewise.
+	* ov-list.cc (octave_list::print_raw, octave_list::save_ascii,
+	octave_list::save_binary, octave_list::save_hdf5): Likewise.
+	* ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline,
+	octave_fcn_inline::load_ascii, octave_fcn_inline::print_raw,
+	Finline): Likewise.
+	* ov-fcn-handle.cc (octave_fcn_handle::load_ascii,
+	octave_fcn_handle::save_binary, octave_fcn_handle::save_hdf5):
+	Likewise.
+	* ov-cs-list.cc (octave_cs_list::print_raw): Likewise.
+	* ov-cell.cc (octave_cell::print_raw, octave_cell::save_hdf5):
+	Likewise.
+	* oct-strstrm.h (octave_ostrstream::os, octave_ostrstream::str):
+	Likewise.
+	* oct-stream.h (scanf_format_list::buf, printf_format_list::buf):
+	Likewise.
+	* oct-stream.cc (scanf_format_list::scanf_format_list,
+	printf_format_list::printf_format_list,
+	octave_base_stream::do_gets, BEGIN_CHAR_CLASS_CONVERSION,
+	octave_stream_list::do_list_open_files): Likewise.
+	* ls-oct-ascii.h (extract_keyword): Likewise.
+	* load-save.cc (do_load): Likewise.
+	* lex.l (have_continuation, handle_string): Likewise.
+	* input.cc (get_user_input): Likewise.
+	* dirfns.cc (Fls): Likewise.
+	* error.cc (error_message_buffer, vwarning, verror, pr_where):
+	Likewise.
+	* defun.cc (print_usage): Likewise.
+	* help.cc (display_help_text, Ftype, first_help_sentence):
+	Likewise.
+	* ls-mat5.cc (save_mat5_binary_element): Likewise.
+	* DLD-FUNCTIONS/regexp.cc (octregexp): Likewise.
+	* DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Likewise.
+
+2006-04-13  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (lex.o parse.o __gnuplot_raw__.o, pic/parse.o
+	pic/__gnuplot_raw__.o):	Omit -Wold-style-cast from CXXFLAGS.
+
+	* ls-mat5.cc (READ_INTEGER_DATA): Allocate local buffer to avoid
+	pointer tricks.
+
+	* DLD-FUNCTIONS/regexp.cc (octregexp): Use OCTAVE_LOCAL_BUFFER
+	instead of allocting memory with malloc.
+
+	* DLD-FUNCTIONS/sparse.cc (Fsparse): Use octave_value extractors
+	instead of using get_rep.
+
+	* DLD-FUNCTIONS/dispatch.cc (dispatch_record): Use dynamic_cast,
+	not reinterpret_cast.
+
+	* DLD-FUNCTIONS/besselj.cc (Fairy): Use int_value instead of
+	double_value and cast to extract kind arg.
+	(int_arrayN_to_array): Arg is ArrayN<octave_idx_type>, not ArrayN<int>.
+
+	* OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc,
+	OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc,
+	OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc,
+	OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc,
+	OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc,
+	OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc,
+	OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc,
+	OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc,
+	OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc,
+	OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc: No need to cast
+	away const just to cache sparse type.
+	* ov-base-sparse.h (octave_base_sparse::typ): Now mutable.
+	(octave_base_sparse::sparse_type): Now const.
+
+	* OPERATORS/op-cm-scm.cc (DEFBINOP(div)): Explicitly cast args
+	here instead of using CAST_BINOP_ARGS.
+
+	* OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP): Second arg to
+	CAST_BINOP_ARGS is also const.
+
+	* DLD-FUNCTIONS/chol.cc (Fcholinv, Fchol2inv): Eliminate nargout
+	arg to avoid unused variable warnings.
+
+	* unwind-prot.h, unwind-prot.cc (unwind_protect::save_bool,
+	unwind_protect::save_int, unwind_protect::save_str,
+	unwind_protect::save_ptr, unwind_protect::save_var):
+	Pointer args now const.
+	(unwind_protect_const_ptr): New macro.
+
+	* symtab.cc (maybe_list_cmp_fcn): Use static_cast instead of X_CAST.
+	* variables.cc (symbol_record_name_compare): Likewise.
+	* ls-mat5.cc (MAT5_DO_WRITE, save_mat5_binary_element): Likewise.
+
+	* ov-fcn-handle.cc (octave_fcn_handle::save_hdf5,
+	octave_fcn_handle::load_hdf5): Eliminate unnecessary casts.
+	* ov-fcn-inline.cc (octave_fcn_inline::save_hdf5,
+	octave_fcn_inline::load_hdf5): Likewise.
+	* ov-str-mat.cc (octave_char_matrix_str::save_hdf5,
+	octave_char_matrix_str::load_hdf5): Likewise.
+	* ov-bool-sparse.cc (octave_sparse_bool_matrix::save_hdf5,
+	octave_sparse_bool_matrix::load_hdf5): Likewise.
+	* ov-cx-sparse.cc (octave_sparse_complex_matrix::save_hdf5,
+	octave_sparse_complex_matrix::load_hdf5): Likewise.
+	* ov-re-sparse.cc (octave_sparse_matrix::save_hdf5,
+	octave_sparse_matrix::load_hdf5): Likewise.
+	* ov-str-mat.cc (octave_char_matrix_str::save_ascii,
+	octave_char_matrix_str::load_ascii): Likewise.
+	* mappers.cc (xtoascii): Likewise.
+	* load-save.cc (read_binary_file_header, write_header): Likewise.
+	* parse.y (get_help_from_file, parse_fcn_file): Likewise.
+	* DLD-FUNCTIONS/rand.cc (do_rand): Likewise.
+	* ls-hdf5.cc (read_hdf5_data, hdf5_add_attr, save_hdf5_empty,
+	load_hdf5_empty add_hdf5_data): Likewise.
+	* ls-mat4.cc (read_mat_binary_data): Likewise.
+	* ls-mat5.cc (read_mat5_binary_element): Likewise.
+
+	* oct-stream.cc (expand_char_class, octave_base_stream::do_gets):
+	Use static_cast instead of C-style cast.
+	* oct-procbuf.cc (kluge_procbuf_delay): Likewise.
+	* parse.y (gobble_leading_white_space,: Likewise.
+	* DLD-FUNCTIONS/besselj.cc (int_array2_to_matrix,
+	int_arrayN_to_array): Likewise.
+	* DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd): Likewise.
+	* DLD-FUNCTIONS/ccolamd.cc (Fcsymamd): Likewise.
+	* pt-pr-code.cc (tree_print_code::print_comment_elt): Likewise.
+	* DLD-FUNCTIONS/besselj.cc (do_bessel): Likewise.
+	* DLD-FUNCTIONS/spchol.cc (Fsymfact): Likewise.
+	* DLD-FUNCTIONS/sparse.cc (sparse_find): Likewise.
+	* DLD-FUNCTIONS/sort.cc (FloatFlip): Likewise.
+	* DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Likewise.
+	* ls-mat5.cc (read_mat5_binary_element, OCTAVE_MAT5_INTEGER_READ,
+	read_mat5_binary_element, save_mat5_binary_element): Likewise.
+
+	* DLD-FUNCTIONS/splu.cc (Fspinv): Use dynamic_cast instead of
+	C-style cast.
+	* DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Likewise.
+
+	* DLD-FUNCTIONS/sort.cc (mx_sort): Use reinterpret_cast instead of
+	C-style cast.
+	* ls-mat5.cc (write_mat5_tag): Likewise.
+
+	* ov-typeinfo.h (octave_value_typeinfo::octave_value_typeinfo):
+	Eliminate unnecessary casts in constructor initializers.
+
+	* ops.h (CAST_CONV_ARG, CAST_UNOP_ARG, CAST_BINOP_ARGS,
+	DEFASSIGNANYOP_FN): Use C++ dynamic_cast instead of DYNAMIC_CAST macro.
+
+	* unwind-prot.h (unwind_protect_ptr): Use combination of
+	reinterpret_cast and const_cast instead of X_CAST.
+
+	* dynamic-ld.cc (loader::do_load): Use reinterpret_cast instead of
+	X_CAST.
+	* ov-base-int.cc (octave_base_int_matrix<T>::save_binary,
+	octave_base_int_matrix<T>::load_binary,
+	octave_base_int_scalar<T>::save_binary,
+	octave_base_int_scalar<T>::load_binary): Likewise.
+	* ov-bool-mat.cc (octave_bool_matrix::save_binary,
+	octave_bool_matrix::load_binary): Likewise.
+	* ov-bool-sparse.cc (octave_sparse_bool_matrix::save_binary,
+	octave_sparse_bool_matrix::load_binary): Likewise.
+	* ov-bool.cc (octave_bool::save_binary, octave_bool::load_binary):
+	Likewise.
+	* ov-cell.cc (octave_cell::save_binary, octave_cell::load_binary):
+	Likewise.
+	* ov-complex.cc (octave_complex::save_binary,
+	octave_complex::load_binary): Likewise.
+	* ov-cx-mat.cc (octave_matrix::save_binary,
+	octave_matrix::load_binary): Likewise.
+	* ov-cx-sparse.cc (octave_sparse_complex_matrix::save_binary,
+	octave_sparse_complex_matrix::load_binary): Likewise.
+	* ov-fcn-handle.cc (octave_fcn_handle::save_binary,
+	octave_fcn_handle::load_binary): Likewise.
+	* ov-fcn-inline.cc (octave_fcn_inline::save_binary,
+	octave_fcn_inline::load_binary): Likewise.
+	* ov-list.cc (octave_list::save_binary, octave_list::load_binary):
+	Likewise.
+	* ov-range.cc (octave_range::save_binary, octave_range::load_binary):
+	Likewise.
+	* ov-re-mat.cc (octave_matrix::save_binary,
+	octave_matrix::load_binary): Likewise.
+	* ov-re-sparse.cc (octave_sparse_matrix::save_binary,
+	octave_sparse_matrix::load_binary): Likewise.
+	* ov-scalar.cc (octave_scalar::save_binary,
+	octave_scalar::load_binary): Likewise.
+	* ov-str-mat.cc (octave_char_matrix_str::save_binary,
+	(octave_char_matrix_str::load_binary): Likewise.
+	* ov-struct.cc (octave_struct::save_binary,
+	octave_struct::load_binary): Likewise.
+	* ls-oct-binary.cc (save_binary_data, read_binary_data): Likewise.
+	* ls-mat4.cc (read_mat_file_header, save_mat_binary_data): Likewise.
+	* ls-mat5.cc (read_mat5_tag, read_mat5_binary_element,
+	read_mat5_binary_element, read_mat5_binary_file_header,
+	MAT5_DO_WRITE, write_mat5_array, write_mat5_integer_data,
+	save_mat5_binary_element, READ_INTEGER_DATA): Likewise.
+
+2006-04-12  John W. Eaton  <jwe@octave.org>
+
+	* ov.h (OV_REP_TYPE): New macro.
+
+	* DLD-FUNCTIONS/sparse.cc (MINMAX_BODY): No need to cast arg1 to
+	const octave_sparse_matrix&.
+
+	* ov-base.cc (print_answer_id_name, warn_resize_on_range_error,
+	warn_num_to_str, silent_functions): Move here, from ov.cc.
+	(Vwarn_resize_on_range_error, Vsilent_functions): Likewise.
+	(Vprint_answer_id_name): Likewise.  Now static.
+	(symbols_of_ov_base): New function.  Move DEFVARs for
+	print_answer_id_name, warn_resize_on_range_error, warn_num_to_str,
+	and silent_functions here from symbols_of_ov in ov.cc.
+	* ov.h (Vprint_answer_id_name): Delete decl.
+	* ov-base.h (Vwarn_resize_on_range_error, Vwarn_num_to_str):
+	Move decls here from ov.h.
+
+	* ov-str-mat.cc (warn_str_to_num): Move here, from ov.cc.
+	(Vwarn_str_to_num): Likewise.  Now static.
+	(symbols_of_ov_str_mat): New function.  Move DEFVAR for
+	warn_str_to_num here from symbols_of_ov in ov.cc.
+	* ov.h (Vwarn_str_to_num): Delete decl.
+
+	* ov-struct.cc (octave_struct::load_ascii): Pass loop counter, not
+	count, to read_ascii.
+	* ov-list.cc (octave_list::load_ascii): Likewise.
+
+	* ov-list.cc (octave_list::do_index_op): Allow index to extract
+	multiple items.  Result is always a list.
+
+	* pr-output.cc (struct_levels_to_print): Move here from ov.cc.
+	(Vstruct-levels_to_print): Likewise.
+	(symbols_of_pr_output): Move DEFVAR for struct_levels_to_print here
+	from symbols_of_ov in ov.cc.
+	* pr-output.h (Vstruct_levels_to_print): Nove decl here from ov.h.
+
+	* gripes.cc (warn_divide_by_zero): Move here from ov.cc.
+	(Vwarn_divide_by_zero): Likewise.  Now static.
+	(symbols_of_gripes): New function.  Move DEFVAR for
+	warn_divide_by_zero here from symbols_of_ov in ov.cc.
+	* ov.h (Vwarn_divide_by_zero): Delete decl.
+
+	* load-save.cc (do_load): Declare count octave_idx_type, not int.
+	* ls-oct-ascii.cc, ls-oct-ascii.h (read_ascii_data): Likewise.
+
+	Rearrange octave_value class hierarchy so that rep is a pointer
+	an octave_base_value object and the octave_base_value class
+	stores the reference count.  Virtualness now goes with the
+	octave_base_value class, not the octave_value class.
+
+	* ops.h, ov-base-int.cc, ov-base-int.h, ov-base-mat.h,
+	ov-base-scalar.h, ov-base-sparse.h, ov-base.cc, ov-base.h,
+	ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc,
+	ov-bool-sparse.h, ov-bool.cc, ov-bool.h, ov-cell.cc, ov-cell.h,
+	ov-ch-mat.h, ov-colon.h, ov-complex.cc, ov-complex.h,
+	ov-cs-list.h, ov-cx-mat.cc, ov-cx-mat.h, ov-cx-sparse.cc,
+	ov-cx-sparse.h, ov-fcn-handle.h, ov-fcn-inline.h, ov-fcn.cc,
+	ov-fcn.h, ov-intx.h, ov-list.cc, ov-list.h, ov-range.cc,
+	ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc,
+	ov-re-sparse.h, ov-scalar.h, ov-str-mat.cc, ov-str-mat.h,
+	ov-streamoff.h, ov-struct.cc, ov-struct.h, ov-type-conv.h,
+	ov-typeinfo.cc, ov-typeinfo.h, ov-va-args.h, ov.cc, ov.h,
+	variables.cc, DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/splu.cc,
+	OPERATORS/op-chm.cc: Cope with octave_value hierarchy changes
+	(apologies for the lack of detail).
+
+	* ov.cc (octave_value::nil_rep): Delete.
+	* ov.h (octave_value::nil_rep): Delete decl.
+
+	* ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA,
+	DECLARE_OV_BASE_TYPEID_FUNCTIONS_AND_DATA,
+	DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA2,
+	DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA):
+	Move macro definitions here from ov.h.
+	(struct_indent, increment_struct_indent, decrement_struct_indent,
+	list_indent, increment_list_indent, decrement_list_indent):
+	Delete decls.
+
+	* ov-base.cc. ov-base.h (do_index_op, ndims, all, any,
+	convert_to_str, print_with_name, numeric_assign,
+	reset_indent_level, increment_indent_level,
+	decrement_indent_level, current_print_indent_level, newline,
+	indent, reset): Move member functions here from octave_value class.
+	(count, curr_print_indent_level, beginning_of_line):
+	Move data members here from octave_value class.
+	(gripe_indexed_assignment, gripe_assign_conversion_failed,
+	gripe_no_conversion): Move here from ov.cc.
+
+	* ov.h (class octave_xvalue): Delete.
+	(octave_value::octave_value (const octave_xvalue&)): Delete.
+	(anonymous union): Delete.
+	(octave_value::rep): Now a pointer to octave_base_value instead of
+	octave_value.
+
+	(octave_value::internal_rep): Return pointer to octave_base_value,
+	not octave_value.
+
+2006-04-11  John W. Eaton  <jwe@octave.org>
+
+	* pt-assign.cc (tree_simple_assignment::rvalue,
+	tree_multi_assignment::rvalue):
+	Error if RHS is a comma-separated list.
+
+2006-04-07  John W. Eaton  <jwe@octave.org>
+
+	* defaults.cc (FOCTAVE_VERSION): New function to replace
+	corresponding DEFCONSTX macro in symbols_of_defaults.
+
+	* file-io.cc (FP_tmpdir, FSEEK_SET, FSEEK_CUR, FSEEK_END, Fstdin,
+	Fstdout, Fstderr): New functions to replace DEFCONSTX macros in
+	symbols_of_file_io.
+	(const_value): New static function.
+	(symbols_of_file_io): Delete.
+
+	* syscalls.cc (FF_DUPFD, FF_GETFD, FF_GETFL, FF_SETFD, FF_SETFL,
+	FO_APPEND, FO_ASYNC, FO_CREAT, FO_EXCL, FO_NONBLOCK, FO_RDONLY,
+	FO_RDWR, FO_SYNC, FO_TRUNC, FO_WRONLY, FWNOHANG, FWUNTRACED,
+	FWCONTINUE): New functions to replace DEFCONSTX macros in
+	symbols_of_syscalls.
+	(const_value): New static function.
+	(symbols_of_syscalls): Delete.
+
+	* pr-output.cc (pr_max_internal, pr_min_internal):
+	Return 0 if all values are Inf or NaN.
+	Always leave space for sign when printing Inf or NaN values.
+
+	* parse.y (Fmfilename): Don't let filenames like ../foo fake us out.
+
+	* data.cc (fill_matrix): Create separate versions for int, bool,
+	and double, and Complex values.
+	(FInf, FNaN, Fe, Feps, Fpi, Frealmax, Frealmin, FI, FNA, Ffalse,
+	Ftrue): New functions to replace DEFCONST and DEFCONSTX macros in
+	symbols_of_data.  Provide i, J, and j aliases for I.
+	Provide nan alias for NaN.  Provide inf alias for Inf.
+	(symbols_of_data): Delete.
+
+2006-04-06  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (parse_and_execute, parse_fcn_file):
+	Create octave_script_function object and push it on the call stack.
+
+	* parse.y (Fmfilename): Check for script or user function file on
+	call stack.
+
+	* ov-builtin.cc (octave_builtin::do_multi_index_op):
+	Use octave_call_stack instead of curr_function to save pointer to
+	current function.
+	* ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise.
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op): Likewise.
+
+	* pt-bp.h (MAYBE_DO_BREAKPOINT): Use octave_call_stack instead of
+	curr_function to get pointer to current function.
+	* pt-arg-list.cc (list::convert_to_const_vector): Likewise.
+	* variables.cc (Fmlock, Fmunlock, Fmislocked): Likewise.
+	* input.cc (get_user_input): Likewise.
+	* error.cc (warning_1, error_2): Likewise.  Only enter debug mode
+	if there is a scripting language caller.
+	* ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Likewise.  Check
+	scripting language caller, not current function.
+
+	* toplev.cc (curr_caller_function, curr_function): Delete.
+	* toplev.h: Delete decls.
+
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Don't protect and set curr_caller_function.
+	* ov-builtin.cc (octave_builtin::do_multi_index_op): Likewise.
+	* ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise.
+
+	* variables.cc (do_who): Use octave_call_stack instead of
+	curr_caller_function to get pointer to calling function.
+	* input.cc (get_user_input): Likewise.
+	* error.cc (pr_where): Likewise.  No need for curr_function now.
+	* parse.y (Fmfilename): Likewise.  Check for scripting language
+	caller, not any calling function.
+
+	* ov-usr-fcn.h (octave_user_script): New class.
+	* ov-fcn.h (octave_function::is_user_script): New virtual function.
+
+	* toplev.h, toplev.cc (octave_call_stack): New class.
+
+	* debug.cc (Fdbwhere): Use get_user_function here.
+
+2006-04-05  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (mk-pkg-add): Use mfilename to simplify.
+	(PKG_ADD): Don't pass --prefix arg to mk-pkg-add.
+	(PKG_ADD.inst): Delete target.
+	(clean): Don't remove PKG_ADD.inst.
+	(install-oct): Don't depend on PKG_ADD.inst.  Install PKG_ADD, not
+	PKG_ADD.inst.
+
+	* parse.y (Fmfilename): New function.
+
+2006-04-04  David Bateman  <dbateman@free.fr>
+
+	* help.cc (Flookfor): Skip overloaded functions.  Lookup help text
+	of autoloaded function, not parent that contains the autoload.
+
+2006-04-03  David Bateman  <dbateman@free.fr>
+
+	* data.cc (Fresize): New function.
+	* oct-map.cc, ov-base-mat.cc, ov-base-sparse.cc, ov-base.cc,
+	ov-bool.cc, ov-complex.cc, ov-range.cc, ov-scalar.cc,
+	ov-str-mat.cc (resize): Add boolean fill argument.
+	* oct-map.h, ov-base-mat.h, ov-base-sparse.h, ov-base.h,
+	ov-bool.h, ov-complex.h, ov-intx.h, ov-range.h, ov-scalar.h,
+	ov-str-mat.h, ov.h (resize): Ditto.
+
+	* DLD-FUNCTIONS/rand.cc (do_rand): Additional argument for
+	gamma and poisson distributions.  Change "state" and "seed"
+	arguments so that they choose between generators.
+	Add, poisson, gamma and exponential generators.
+	(Frand, Frandn): Update docs for new generators, add tests.
+	(Frande, Frandp, Frandg): New generators, with test code.
+
+	* DLD-FUNCTIONS/daspk.cc (Fdaspk): Allow functions to be passed
+	using function handles, inline functions, and cell arrays of
+	strings, inline and function handles.
+	* DLD-FUNCTIONS/dasrtk.cc (Fdasrt): Likewise.
+	* DLD-FUNCTIONS/dassl.cc (Fdassl): Likewise.
+	* DLD-FUNCTIONS/fsolve.cc (Ffsolve): Likewise.
+	* DLD-FUNCTIONS/lsode.cc (Flsode):  Likewise.
+
+	* ls-hdf5.h (hdf5_fstreambase::open): Remove unused arg prot.
+
+2006-03-30  Bill Denney  <denney@seas.upenn.edu>
+
+ 	* data.cc: Include numel in @seealso.
+
+2006-03-30  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/fftw_wisdom.cc: Don't attempt to save wisdom to
+	an empty filename or invalid filename.
+
+2006-03-28  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/matrix_type.cc: Update copyright notice and FSF
+	address.
+
+2006-03-24  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/spchol.cc (Fsymbfact): Use CHOLMOD_NAME to select
+	proper version of row_subtree function.
+
+	* ov-cell.cc (octave_cell::save_hdf5): Use OSSTREAM instead of
+	fixed character buffer and sprintf.
+	* ov-list.cc (octave_list::save_hdf5, octave_list::save_ascii,
+	octave_list::save_binary): Likewise.
+
+	* ov-cell.h (octave_cell::convert_to_str_internal):
+	Undo previous change for pad arg.
+	* ov-cell.cc (octave_cell::all_strings): Reinstate pad arg, pass
+	it on to all_strings.
+	* ov.h (octave_value::all_strings): Reinstate pad arg.
+	* ov-base.cc (octave_base_value::all_strings): Likewise.
+	* ov-str-mat.cc (octave_char_matrix_str::all_strings): Likewise.
+	* ov.h, ov-base.h, ov-cell.h, ov-str-mat.h: Fix all_strings decls.
+
+2005-10-25  David Bateman  <dbateman@free.fr>
+
+	* data.cc (do_cat): With 1 arg, return [](0x0) for compatibility.
+
+2006-03-23  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.5+.
+
+2006-03-22  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.5.
+	(OCTAVE_API_VERSION): Now api-v18.
+	(OCTAVE_RELEASE_DATE): Now 2006-03-22.
+
+2006-03-21  John W. Eaton  <jwe@octave.org>
+
+	* ov-cell.h (octave_cell::convert_to_str_internal):
+	Ignore pad and force args.
+	* ov-cell.cc (octave_cell::all_strings): Delete args.  Never pad.
+	* ov-base.cc (octave_base_value::all_strings): Delete args.
+	Always force string conversion, never pad.
+	* ov-str-mat.cc (octave_char_matrix_str::all_strings):
+	Delete args.  Don't strip whitespace.
+	* ov.h, ov-base.h, ov-cell.h, ov-str-mat.h: Fix all_strings decls.
+	* strfns.cc (Fchar): No args for all_strings.
+
+2006-03-21  David bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Use GetProcessTimes for
+	MinGW to obtain user and system times.
+
+2006-03-17  John W. Eaton  <jwe@octave.org>
+
+	* strfns.cc (F__list_in_columns__): New function.
+
+2006-03-16  Bill Denney  <bill@givebillmoney.com>
+
+	* DLD-FUNCTIONS/time.cc: Improve @seealso entries in doc strings.
+
+2006-03-16  John W. Eaton  <jwe@octave.org>
+
+	* __gnuplot_raw__.l (F__gnuplot_show__): Temporarily use DEFCMD
+	instead of DEFUN.
+	(symbols_of___gnuplot_raw__): Temporarily mark __gnuplot_plot__,
+	__gnuplot_set__, __gnuplot_splot__, and __gnuplot_replot__ as raw
+	commands.
+
+	* variables.cc (is_marked_as_rawcommand, unmark_rawcommand,
+	mark_as_rawcommand): Temporarily not static.
+	* variables.h: Temporarily Provide decls.
+
+2006-03-16  David Bateman  <dbateman@free.fr>
+
+	* sparse-xdiv.cc (result_ok): delete.
+	(xdiv, xleftdiv): Simplify to use version of SpareMatrix::solve
+	and SparseComplexMatrix::solve which internally treats rectangular
+	and singular matrices.
+	* DLD-FUNCTIONS/luinc.cc: Remove error test for singular matrix as
+	QR solver now implemented.
+	* DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Paranoid check on
+	error_state. Disable tests for the detection of underdetermined
+	lower and over-determined upper matrix due to problems with
+	non minimum norm solutions.
+	* DLD-FUNCTIONS/spqr.cc: Warning for issue of use of Fspqr for
+	under-determined problems.
+
+2006-03-16  John W. Eaton  <jwe@octave.org>
+
+	* __gnuplot_raw__.l: Move here from DLD-FUNCTIONS/__gnuplot_raw__.l.
+	Use DEFUN, not DEFUN_DLD.  Include defun.h, not defun-dld.h.
+	(gnuplot::do_init):Move guts to symbols_of___gnuplot_raw__.
+	(symbols_of___gnuplot_raw__): New function.
+
+	* Makefile.in (DLD_XSRC): Delete __gnuplot_raw__.l from the list.
+	(DIST_SRC): Include __gnuplot_raw__.l in the list.
+	(__gnuplot_raw__.cc): Depend on __gnuplot_raw__.l, not
+	DLD-FUNCTIONS/__gnuplot_raw__.l
+
+	* ls-oct-ascii.h (extract_keyword): Use std::string compare method
+	instead of strncmp.
+	* ls-oct-ascii.cc (extract_keyword): Likewise.
+
+2006-03-15  William Poetra Yoga Hadisoeseno  <williampoetra@gmail.com>
+
+	* data.cc (Frows, Fcolumns): New functions.
+
+	* DLD-FUNCTIONS/time.cc (Fstrptime, Fstrftime): Fix docstring.
+
+	* strfns.cc (Fstrcmp): Fixed docstring.
+
+2006-03-15  John W. Eaton  <jwe@octave.org>
+
+	* pager.cc (Fterminal_size): New function.
+
+	* help.cc (help_from_info): Simplify.
+	(try_info): Use feval to call doc instead of executing info program.
+	(additional_help_message): Point users to doc instead of help -i.
+	From Sļæ½ren Hauberg <soren@hauberg.org>.
+
+	* toplev.cc (Fsystem): Return output if nargout > 1, not 0.
+
+2006-03-14  Keith Goodman  <kwgoodman@gmail.com>
+
+	* help.cc (Fhelp, Fwhich, Flookfor): Doc string fix.
+
+2006-03-14  John W. Eaton  <jwe@octave.org>
+
+	* defun.cc (print_usage): New arg, extra_msg.
+
+	* xpow.cc: Omit tests for now.
+
+	* parse.y (QUOTE, TRANSPOSE): For compatibility, now have same
+	precedence as POW and EPOW.
+
+2006-03-14  Bill Denney  <bill@givebillmoney.com>
+
+	 * load-save.cc (Fload, Fsave): Update docstring for functional form.
+
+2006-03-14  John W. Eaton  <jwe@octave.org>
+
+	* xpow.cc (elem_xpow): Undo previous change.
+
+2006-03-14  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* xpow.cc: New tests.
+
+2006-03-13  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (fcn_out_of_date): No longer static.
+	* ov-fcn-handle.cc (warn_reload): New function.
+	(octave_fcn_handle::subsref): Implement basic logic for updating
+	when pointed-to function changes.
+
+2006-03-10  John W. Eaton  <jwe@octave.org>
+
+	* xpow.cc (elem_xpow): Only use complex pow if really necessary.
+
+	* symtab.cc (symbol_table::glob, symbol_table::symbol_list,
+	symbol_table::subsymbol_list): Force result to be a column
+	vector.
+
+	* oct-stream.h (octave_stream::stream_ok): Undo previous change.
+	Eliminate who parameter.  Change all callers.
+
+	* variables.cc (do_who): Return more info in structure array for
+	verbose output.
+	* symtab.h (symbol_record::size, symbol_record::class_name,
+	symbol_record::is_sparse_type, symbol_record::is_complex_type,
+	symbol_record::size, symbol_record::symbol_def::class_name,
+	symbol_record::symbol_def::is_sparse_type,
+	symbol_record::symbol_def::is_complex_type): New functions.
+	* ov.h (octave_value::size): New function.
+
+2006-03-09  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (run_command_and_return_output): Swap output and
+	status for compatibility.
+
+	* Makefile.in (defaults.h, oct-conf.h): Force updates.
+
+	* defaults.h.in (OCTAVE_RELEASE): New macro.
+
+	* octave.cc (F__version_info__): New arg, release.
+	(initialize_version_info): Pass release arg to F__version_info__.
+
+	* toplev.cc: Include api_version in the list.
+
+	* Makefile.in (DIST_SRC): Include octave.cc here.
+	(DISTFILES, DEP_5): Not here.
+
+	* octave.cc (F__version_info__): New function.
+	(initialize_version_info): New function.
+	(octave_main): Call initialize_version_info just before reading
+	init files.
+
+	* version.h (OCTAVE_RELEASE_DATE): New macro.
+
+	* ov-fcn-handle.h (octave_fcn_handle::dims): New function.
+
+2006-03-08  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_stream::stream_ok): Move definition here,
+	from oct-stream.h.  New arg, warn.  If warn is true and stream is
+	invalid, print warning.
+	(octave_stream::error): Always avoid warning message from
+	stream_ok.  Return "invalid stream object" if stream is not ok.
+
+2006-03-08  David Bateman  <dbateman@free.fr>
+
+	* ov-mapper.cc (SPARSE_MAPPER_LOOP_2): Change nnz to nz to remove
+	shadowed variable warning.
+	* DLD-FUNCTIONS/spqr.cc: Update for new upstream CXSPARSE release.
+
+2006-03-06  John W. Eaton  <jwe@octave.org>
+
+	* help.cc (display_help_text): Force linebreak with @sp.
+
+2006-03-06  Keith Goodman  <kwgoodman@gmail.com>
+
+	* bitfcns.cc, data.cc, debug.cc, file-io.cc, help.cc,
+	load-save.cc, mappers.cc, ov-cell.cc, ov-fcn-inline.cc,
+	ov-struct.cc, ov-usr-fcn.cc, ov.cc, pr-output.cc, utils.cc,
+	variables.cc, DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc,
+	DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/daspk.cc,
+	DLD-FUNCTIONS/dasrt.cc, DLD-FUNCTIONS/dassl.cc,
+	DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fft2.cc,
+	DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/fftw_wisdom.cc,
+	DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc,
+	DLD-FUNCTIONS/luinc.cc,	DLD-FUNCTIONS/sparse.cc,
+	DLD-FUNCTIONS/spchol.cc, DLD-FUNCTIONS/splu.cc,
+	DLD-FUNCTIONS/spqr.cc, DLD-FUNCTIONS/sqrtm.cc:
+	Move @seealso inside @defXXX macro.  Remove "and" from @seealso.
+
+2006-03-04  John W. Eaton  <jwe@octave.org>
+
+	* help.cc (additional_help_message): Don't print "\n" before message.
+	(help_from_symbol_table): If Vsuppress_verbose_help_message is
+	true, don't print which info.
+
+2006-03-03  John W. Eaton  <jwe@octave.org>
+
+	* dirfns.cc (Vconfirm_recursive_rmdir): New static variable.
+	(symbols_of_dirfns): DEFVAR it.
+	(confirm_recursive_rmdir): New function.
+	(Frmdir): Maybe ask for confirmation for recursive removal.
+	Require second arg to be "s".
+
+	* input.cc (octave_yes_or_no): New function.
+	(Fyes_or_no): New function.
+	* input.h (octave_yes_or_no): Provide decl.
+
+2006-03-02  John W. Eaton  <jwe@octave.org>
+
+	* dirfns.cc (Fmkdir, Frmdir): Now commands.
+
+2006-02-20  David Bateman  <dbateman@free.fr>
+
+	* ov.h (virtual bool is_sparse_type (bool)): New virtual function
+	* ov-base.h (bool is_sparse_type (bool)): New function
+	* ov-base-sparse.h (bool is_sparse_type (bool)): New function
+	* DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTION/colamd.cc,
+	DLD-FUNCTIONS/__glpk__.cc, DLD-FUNCTIONS/splu.cc,
+	DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/matrix_type.cc, pt-mat.cc:
+	Replace us of 'arg.class_name () == "sparse"' with
+	'arg.is_sparse_type ()'
+
+2006-02-20  David Bateman  <dbateman@free.fr>
+
+	* pt-mat.cc (class tm_row_const): Add any_sparse bool variable.
+	(tm_row_const::tm_row_const_rep::do_init_element): Initialize
+	any_sparse variable if any matrice is sparse.
+	(class tm_const): Add any_sparse bool variable.
+	(tm_const::init): Initialize any_sparse variable.
+	(tree_matrix::rvalue): If any matrix is sparse use sparse matrix
+	as initial matrix for concatenation
+	* DLD-FUNCTIONS/matrix_type.cc: Add tests for new rectangular
+	diagonal, permuted diagonal, triangular and permuted triangular
+	matrices
+
+2006-02-20  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (__builtin_delete, __builtin_new): Use std::cerr for
+	messages instead of std::cout.
+	(main_loop, do_octave_atexit): Use octave_stdout, not std::cout.
+
+2006-02-15  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (Fautoload): Return struct array of autoload info if
+	nargin == 0.
+
+2006-02-15  Keith Goodman  <kwgoodman@gmail.com>
+
+	* help.cc (keywords): Doc string fix.
+
+2006-02-15  John W. Eaton  <jwe@octave.org>
+
+	* oct-procbuf.cc (close): Use __CYGWIN__ instead of __CYGWIN32__.
+
+2006-02-13  David Bateman  <dbateman@free.fr>
+
+	* DLD_FUNCTIONS/regexp.cc (octregexp): Add matlab compatiable
+	named tokens. Update the tests
+
+2006-02-10  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (\[{S}*): Maybe set lexer_flags.looking_at_return_list or
+	lexer_flags.looking_at_matrix_or_assign_lhs here.
+	* parse.y
+	(return_list_beg): Don't use in_return_list here.
+	(assign_lhs, matrix): Don't use in_matrix_or_assign_lhs here.
+	(in_matrix_or_assign_lhs, in_return_list): Delete unused macros.
+	(matrix): Clear lexer_flags.looking_at_matrix_or_assign_lhs in all
+	cases.
+
+2006-02-09  John W. Eaton  <jwe@octave.org>
+
+	* utils.cc (oct_file_in_path): Check len > 4, not len > 2.
+	From Larrie Carr <larrie@telus.net>.
+
+2006-02-09  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/spqr.cc: New file for sparse QR and dmperm based on
+	CSparse.
+	* DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): dintinguish between
+	rectangular and singular matrices. Add tests.
+	* DLD-FUNCTIONS/luinc.cc: Add tests.
+	* DLD-FUNCTIONS/spkron.cc: Ditto.
+	* Makefile.in (DLD_XSRC): Add spqr.cc.
+	(OCT_LINK_DEPS): Add CSSPARSE_LIBS.
+	* sparse-xdiv.h: Remove conditio of lssolve.
+
+2006-02-08  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (frob_function): Clear ID_NAME from top_level symbol
+	table if we are defining a function at the top-level and a
+	function with the same name is already in the top-level symbol
+	table.
+
+2006-01-31  John W. Eaton  <jwe@octave.org>
+
+	* ov-base-sparse.h (octave_base_sparse<T>::nzmax): New function.
+	* ov.h (octave_value::nzmax): New function.
+	* ov-base.cc (octave_base_value::nzmax): New function.
+	* ov-base.h: Provide decl.
+	* data.cc (Fnzmax): New function.
+	* DLD-FUNCTIONS/sparse.cc (Fnzmax): Delete.
+
+2006-01-31  Kim Hansen  <kim@i9.dk>
+
+	* __glpk__.cc (F__glpk__): Fix for sparse matrices.
+
+2006-01-30  John W. Eaton  <jwe@octave.org>
+
+	* gripes.cc (gripe_wrong_type_arg (const char*, const char*, bool)):
+	New function.
+	(gripe_wrong_type_arg (const char*, const std::string&, bool)):
+	Define using const char*, const char*, bool version.
+	(gripe_wrong_type_arg (const char*, const octave_value&, bool)):
+	Define using const char*, const std::string&, bool version.
+
+	* ov.h (octave_value::nnz): New function.
+	* ov-base.cc (octave_base_value::nnz): New function.
+	* ov-base.h: Provide decl.
+	* ov-base-mat.h (octave_base_matrix<MT>::nnz): New function.
+	* ov-base-scalar.h (octave_base_scalar<MT>::nnz): New function.
+	* Cell.cc (Cell::nnz): New function.
+	* Cell.h: Provide decl.
+	* data.cc (Fnnz): New function.
+	* DLD-FUNCTIONS/sparse.cc (Fnnz): Delete.
+
+2006-01-13  John W. Eaton  <jwe@octave.org>
+
+	* ov-struct.cc (octave_struct::print_raw): Correctly print scalar
+	structs and empty struct arrays.
+
+	* DLD-FUNCTIONS/__gnuplot_raw__.l (Fclearplot): For compatibility,
+	also turn off hold state for current figure.
+
+2006-01-13  Bill Denney  <bill@givebillmoney.com>
+
+ 	* dirfns.cc: Add @seealso{} to docstrings.
+
+2006-01-13  John W. Eaton  <jwe@octave.org>
+
+	* help.cc (display_help_text): Use warning() to print raw Texinfo
+	source.  Don't redirect error output for makeinfo process.
+
+	* DLD-FUNCTIONS/__gnuplot_raw__.l (F__gnuplot_init__): Delete
+	function and PKG_ADD directive.
+	(gnuplot::gnuplot): Call do_init here.
+	(gnuplot::init): Delete static function.
+	(gnuplot::close_all): New static function.
+	(class gnuplot_X): New class.
+	(gnpulot_X::X): New static instance.
+
+2006-01-12  David Bateman  <dbateman@free.fr>
+
+	* help.cc (make_name_list): Add autoload functions to list of
+	available completions.
+	(simple_help): Add autoloaded functions to functions listed
+	(first_help_sentence): Avoid issue with single line help string
+	that is not terminated in \n.
+	(Flookfor): Check for string match in the keyword/function, etc
+	name. Also look for string match in help of autoloaded functions.
+	Load oct-files to be able to access their help string.
+	* parse.y (string_vector autoloaded_functions (void)): New
+	function to list all autloaded functions.
+	(string_vector reverse_lookup_autoload (const std::string& nm)):
+	Reverse lookup function to match file to autoloaded functions.
+	* parse.h (autoloaded_functions, reverse_lookup_autoload):
+	Declaration.
+
+	* oct-map.cc (maybe_delete_elements): New function.
+	* oct-map.h (maybe_delete_elements): Declare it.
+	* ov-struct.cc (octave_struct::subsref): Handle indexing empty
+	structure.
+	(octave_struct::subsasgn): If rhs is [], delete elements.
+	(octave_struct::print_raw): Handle printing empty structure.
+
+	* ls-mat5.cc (read_mat5_binary_element): Allow reading of sparse
+	elements when nnz doesn't equal nzmax.
+
+2006-01-10  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/sparse.cc (sparse_find): Use Sparse<T>::nonzero()
+	rather than Sparse<T>::nnz(), due to possibility of overallocation
+	of memory.
+
+2006-01-06  John W. Eaton  <jwe@octave.org>
+
+	* oct-map.cc (Octave_map::transpose): Avoid GCC 3.3.x parse error.
+
+2005-12-14  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_stream::invalid_stream_error): Delete.
+	* oct-stream.h (octave_stream::stream_ok): Don't fail with error.
+
+2005-12-14  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/regexp.cc: New file.
+
+	* DLD-FUNCTIONS/dispatch.cc: Update tests for string/sq_string
+	differences.
+
+	* error.cc (Vquiet_warning): New variable.
+	(vwarning): Use Vquiet_warning to prevent warning output.
+	(Fwarning): Include "quiet" option to Fwarning function.
+	Assign retval when using "query".  Typo in error message.
+	(Flastwarn): Clear warning_state when using Flastwarn to probe warning
+	message.
+
+	* ov-struct.cc: Update Fstruct tests for change in error output.
+
+	* Makefile.in: Include regexp when needed with appropriate libraries.
+
+2005-12-13  David Bateman  <dbateman@free.fr>
+
+	* Makefile.in: Change references to gplot.l to __gnuplot_raw__.l.
+	* DLD-FUNCTIONS/__gnuplot_raw__.l: Rename from DLD-FUNCTIONS/gplot.l.
+	Remove all references to deprecated gplot, gsplot, graw, gset and
+	gshow functions.
+	* help.cc (static help_list keywords[]): Remove gsplot and gplot.
+
+	* ls-oct-ascii.cc (save_three_d):  Don't strip Inf or NaN.
+	(save_ascii_data_for_plotting): Ditto.
+
+2005-12-13  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_stream_list::do_insert): Check open state
+	of stream in list instead of whether stream state is OK.
+
+2005-12-12  David Bateman  <dbateman@free.fr>
+
+	* OPERATORS/op-struct.cc (transpose): New function.
+	(install_struct_ops): Install it.
+
+	* oct-map.cc (Octave_map::transpose): New function.
+	* oct-map.h: Provide decl.
+
+2005-12-08  John W. Eaton  <jwe@octave.org>
+
+	* Cell.cc (Cell::column): New function.
+	* pt-loop.cc (DO_ND_LOOP): Simplify.
+	(simple_for_loop_command::eval): Correctly handle N-d numeric and
+	cell arrays when only the first dimension is 0.
+
+2005-12-07  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (NL): Also accept '\r'.
+
+	* error.cc (Vbacktrace_on_warning, warning_options,
+	Vlast_warning_id, Vlast_error_id): New file-scope variables.
+	(Vwarning_frequency, Vwarning_option): Delete unused variables.
+	(set_warning_option): Delete unused function.
+	(Fwarning): Update for compatibility.  Use DEFCMD, not DEFUN.
+	(warning_enabled, check_state): New functions.
+	(warning (const char *fmt, ...)): Use it.
+	(init_warning_options): New function.
+	(symbols_of_error): Call it.
+	(vwarning, Flastwarn): Handle Vlast_warning_id.  Improve compatibility.
+	(handle_message): New arg, ID.  Change all callers.
+	(vwarning, verror, error_1): New arg, ID.  Change all callers.
+	(verror, Flasterr): Handle Vlast_error_id.  Improve compatibility.
+
+	* error.cc (message_with_id, usage_with_id, warning_with_id,
+	error_with_id, parse_error_with_id): New functions.
+	(error_2, warning_1, usage_1): New functions.
+	* error.h (message_with_id, usage_with_id, warning_with_id,
+	error_with_id, parse_error_with_id): Provide decls.
+
+2005-11-30  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/schur.cc (Fschur): Doc string fix.
+	From Jorge Barros de Abreu <ficmatin01@solar.com.br>.
+
+2005-11-28  John W. Eaton  <jwe@octave.org>
+
+	* syscalls.cc (Funame): New function.
+
+2005-11-21  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (pr_int): Fix thinko in byte-swapping for bit format.
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun):
+	Use C++ static_cast instead of C-style casts.
+
+2005-11-21  William Poetra Yoga H <williampoetra@yahoo.com>
+
+	* DLD-FUNCTIONS/cellfun.cc (Fcellfun):
+	Docstring and error message fixes.
+
+2005-11-17  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): Don't cast arg1 to
+	const octave_complex_matrix&.
+
+2005-11-16  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (PKG_ADD.inst): New target.
+	(install-oct): Depend on it.
+	(clean): Remove it.
+
+	* mk-pkg-add: New option --install.  Don't use --prefix option.
+	Delete obsolete comments.
+
+	* Cell.cc (Cell::index): Indexing with () is a no-op, not an error.
+	* oct-map.cc (Octave_map::index): Likewise.
+	* ov-base-mat.cc (octave_base_matrix<MT>::do_index_op): Likewise.
+	* ov-base-sparse.cc (octave_base_sparse<T>::do_index_op): Likewise.
+	* ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal):
+	Likewise.
+
+2005-11-11  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (install-oct): Fix thinko in previous change.
+
+	* version.h (OCTAVE_VERSION): Now 2.9.4
+	(OCTAVE_API_VERSION): Now api-v17.
+
+	* variables.cc (symbol_out_of_date): Check for autoloads here too.
+
+	* Makefile.in (PKG_ADD): Depend on $(DLD_DEF_FILES), not $(DLD_SRC).
+	(%.df : %.cc): Also insert PKG_ADD commands in .df files.
+	(install-oct): Generate PKG_ADD file for install directory here.
+	Don't depend on PKG-ADD. No need to make .oct file links.
+	(clean): No need to delete links.
+	(stamp-oct-links): Delete target.
+	(distclean): No need to remove stamp-oct-links.
+	(all): Depend on $(OCT_FILES), not stamp-oct-links.
+
+	* mk-pkg-add: New file.
+	* Makefile.in (DISTFILES): Add it to the list.
+
+	* mk-oct-links: Delete.
+	* Makefile.in (DISTFILES): Remove it from the list.
+
+2005-11-10  John W. Eaton  <jwe@octave.org>
+
+	* ov-str-mat.h (octave_char_matrix_str::permute,
+	octave_char_matrix_str::resize): New functions.
+	(octave_char_matrix_sq_str::reshape,
+	octave_char_matrix_sq_str::permute,
+	octave_char_matrix_sq_str::resize): New functions.
+
+	* OPERATORS/op-str-str.cc, OPERATORS/op-str-s.cc,
+	OPERATORS/op-str-m.cc: Use DEFNDCHARCATOP_FN.
+
+	* data.cc (do_cat): No need to handle character arrays specially here.
+
+	* ops.h (DEFNDCHARCATOP_FN): New macro.
+	* OPERATORS/op-int.h (OCTAVE_INT_CHAR_CONCAT_FN,
+	OCTAVE_CHAR_INT_CONCAT_FN, OCTAVE_INSTALL_INT_CHAR_CONCAT_FN,
+	OCTAVE_INSTALL_CHAR_INT_CONCAT_FN): New macros.
+	* OPERATORS/op-int-concat.cc: Use them do define char/int op functions.
+	(install_int_concat_ops): Install char/int concat ops.
+
+	* ov-scalar.h (class octave_scalar): Provide extractors
+	for all int array types and char array type.
+
+2005-11-09  John W. Eaton  <jwe@octave.org>
+
+	* ov-bool-mat.h (class octave_bool_matrix): Provide extractors
+	for all int array types and char array type.
+	* ov-bool.h (class octave_bool): Likewise.
+
+	* ov-intx.h (class OCTAVE_VALUE_INT_MATRIX_T): Provide extractors
+	for all int array types and char array type.
+	(class OCTAVE_VALUE_INT_SCALAR_T): Provide extractors for all int
+	scalar and array types and char array type.
+
+	* pt-mat.cc (tm_const::class_nm): New data member.
+	(tm_const::tm_const): Initialize it.
+	(tm_const::class_name): New function.
+	(tm_row_const::tm_row_const_rep::class_nm): New data member.
+	(tm_row_const::tm_row_const_rep::tm_row_const_rep): Initialize it.
+	(tm_row_const::class_name): New function.
+	(get_concat_class): New function.
+	(tm_row_const::tm_row_const_rep::do_init_element): Use it.
+	(tm_const::init): Use it.
+
+2005-11-07  John W. Eaton  <jwe@octave.org>
+
+	* strfns.cc (Fstrcmp): If args are not strings or cell arrays of
+	strings, return false.
+
+2005-11-01  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (oct-gperf.h): Avoid extra temporary file.
+	(distclean): Delete oct-errno.cc here.
+	From Quentin Spencer  <qspencer@ieee.org>.
+
+2005-11-01  Quentin Spencer  <qspencer@ieee.org>
+
+	* DLD-FUNCTIONS/spchol.cc: Use C++ true/false instead of
+	preprocessor defined TRUE/FALSE.
+	* Makefile.in (DISTFILES): Add mk-errno-list to the list.
+
+2005-10-30  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/gplot.l (gnuplot::set_gnuplot_exe,
+	gnuplot::do_set_gnuplot_exe): New functions.
+	(gnuplot_binary): Call gnuplot::set_gnuplot_exe here.
+
+	* DLD-FUNCTIONS/gplot.l (gnuplot::set_gnuplot_use_title_option,
+	gnuplot::do_set_gnuplot_use_title_option): New functions.
+	(gnuplot_use_title_option):
+	Call gnuplot::set_gnuplot_use_title_option here.
+
+2005-10-27  James R. Van Zandt  <jrvz@comcast.net>
+
+	* mappers.cc: Doc fix for lgamma.
+	* DLD-FUNCTIONS/gammainc.cc (Fgammainc): Doc fix.
+
+2005-10-27  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Declare mrowsA volatile.
+
+	* pt-mat.cc (tm_row_const::tm_row_const_rep::tm_row_const_rep):
+	Ensure that we always have at least two dimensions here.
+	(tm_const::tm_const): Likewise.
+	(tm_const::rows, tm_const::columns): Simplify.
+	(tm_row_const::rows, tm_row_const::columns)): Simplify.
+
+2005-10-26  John W. Eaton  <jwe@octave.org>
+
+	* oct-procbuf.cc (octave_procbuf::open): Cast 0 to void * to avoid
+	new g++ warning.
+	* toplev.cc (Fsystem): Likewise.
+
+	Changes for GCC 4.1, tip from Arno J. Klaassen
+	<arno@heho.snv.jussieu.fr>:
+
+	* ov.h (do_unary_op (octave_value::unary_op, const octave_value&)):
+	Publish externally used friend function.
+	(do_unary_op (octave_value::unary_op, const octave_value&,
+	const octave_value&)): Likewise.
+
+2005-10-25  David Bateman  <dbateman@free.fr>
+
+	* data.cc (do_cat): called with 2 args, should return args(1)
+	for compatibility.
+
+2005-10-23  David Bateman  <dbateman@free.fr>
+
+	* Makefile.in (DLD_XSRC): Add spchol.cc.
+	* sparse-xpow.cc (xpow): Change call to sparse inverse to include
+	SparseType.
+	* DLD-FUNCTIONS/colamd.c (Fsymbfact): Remove.
+	* DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): 64-bit fixes and fix
+	for permutation of upper/lower triangular matrices.
+	* DLD-FUNCTIONS/splu.cc (Fspinv): Implemtation of sparse inverse
+	function.
+	* DLD-FUNCTIONS/spchol.cc (sparse_chol): Static function for core of
+	the sparse cholesky factorization.
+	(Fspchol): New function for sparse cholesky factorization R'R.
+	(Fsplchol): New function for sparse cholesky factorization LL'.
+	(Fspcholinv): New cholesky inverse function.
+	(Fspchol2inv): New cholesky inverse function.
+	(Fsymbfact): Implementation of symbolic factorization using cholmod.
+
+2005-10-21  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/gplot.l (read_until): Special case STRING.
+	(handle_string): Restore function.
+	("'", "\""): Call handle string when matching these tokens..
+
+2005-10-20  John W. Eaton  <jwe@octave.org>
+
+	* pt-mat.cc (tm_row_const::all_real): New data member.
+	(tm_row_const::all_real_p): New function.
+	(tm_row_const::tm_row_const_rep::all_real): New data member.
+	(tm_row_const::tm_row_const_rep::all_real_p): New function.
+	(tm_row_const::tm_row_const_rep::init): Set all_real and all_cmplx
+	to true here.
+	(tm_row_const::all_cmplx): Rename from is_cmplx.
+	(tm_row_const::all_complex_p): Rename from complex_p.
+	(tm_row_const::tm_row_const_rep::all_cmplx): Rename from is_cmplx.
+	(tm_row_const::tm_row_const_rep::all_complex_p): Rename from complex_p.
+	(tm_row_const::tm_row_const_rep::init): Set all_real and all_cmplx
+	to true here.
+	(SINGLE_TYPE_CONCAT): New macro.
+	(tree_matrix::rvalue): Use it for single type cases.
+
+	* pt-mat.cc: Sprinkle with OCTAVE_QUIT.
+
+2005-10-18  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (octave_main): If not embedded, call clean_up_and_exit
+	instead of return to exit function.
+
+2005-10-18  Arno J. Klaassen  <arno@heho.snv.jussieu.fr>
+
+	* DLD-FUNCTIONS/gplot.l (gnuplot::handle_title):
+	Omit class name from declaration.
+
+2005-10-17  Keith Goodman  <kwgoodman@gmail.com>
+
+	* DLD-FUNCTIONS/sort.cc: Doc string fix.
+
+2005-10-17  John W. Eaton  <jwe@octave.org>
+
+	* oct-conf.h.in (OCTAVE_CONF_F77_FLOAT_STORE_FLAG): Substitute
+	OCTAVE_CONF_F77_FLOAT_STORE_FLAG here.
+
+2005-10-14  John W. Eaton  <jwe@octave.org>
+
+	* mk-errno-list: New script.
+	* Makefile.in (oct-errno.cc): Use it.
+
+2005-10-13  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/gplot.l (F__gnuplot_raw__):
+	Call print_usage with correct function name.
+
+2005-10-12  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/gplot.l: Major cleanup.
+	Built-in variable gnuplot_has_frames no longer necessary.
+	(gnuplot): New class to manage multiple gnuplot processes.
+	(handle_string): Delete.  It was only used for the case of
+	__gnuplot_plot__ "file", which is no longer allowed.
+
+2005-10-05  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (symbol_exist): Chekck for autoloaded functions.
+
+	* parse.y (Fautoload): New function.
+	(autoloading, autoload_map): New static variables.
+	(load_fcn_from_file, frob_function): Handle autoloading.
+	(lookup_autoload): New function.
+	(get_help_from_file): New args, symbol_found and include_file_info.
+	Change all callers.
+
+2005-10-05  David Bateman  <dbateman@free.fr>
+
+	* help.cc (try_info): format in command string for mingw.
+
+2005-09-30  John W. Eaton  <jwe@octave.org>
+
+	* ov.cc (octave_value::~octave_value): No need to set rep to zero
+	after deleting.
+
+2005-09-29  John W. Eaton  <jwe@octave.org>
+
+	* syscalls.cc (mk_stat_map): Store mode too.
+	(FS_ISREG, FS_ISDIR, FS_ISCHR, FS_ISBLK, FS_ISFIFO, FS_ISLNK,
+	FS_ISSOCK): New functions.
+	(Fstat): Fix docstring.
+
+2005-09-28  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (printf_value_cache::double_value): Force
+	character strings to be converted to ASCII equivalents.
+
+	* data.cc (Fcomplex): New function.
+
+	* ov-type-conv.h (OCTAVE_TYPE_CONV_BODY3): Return arg unchanged if
+	class name is same as name of conversion.
+
+	* dirfns.cc (Frmdir, Fmkdir): For compatibility, return true for
+	success and false for failure.  Return third value, msgid.
+	(Frmdir): Handle second arg for recursive behavior.
+
+2005-09-23  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (load_fcn_from_file): Don't look in path if file is
+	absolute and has .oct or .m extension.
+
+	* utils.cc (Ferrno_list): New function.
+
+	* oct-errno.h, oct-errno.cc.in: New files.
+	* Makefile.in: Add them to the appropriate lists.
+	(oct-errno.cc): New rule.
+	($(OPT_HANDLERS)): Use $(PERL) instead of just perl.
+
+	* utils.cc: Include oct-errno.h.
+	(Ferrno): Rename from FERRNO.  Allow errno to be set.  Allow
+	lookups of errno codes by name and access to structure containing
+	all errno names and codes.
+
+2005-09-19  John W. Eaton  <jwe@octave.org>
+
+	* pt-bp.cc (tree_breakpoint::visit_index_expression):
+	Avoid dereferencing invalid pointer.
+
+2005-09-19  David Bateman  <dbateman@free.fr>
+
+	* Makefile.in (OCT_LINK_DEPS): Include UFsparse libraries.
+
+	* DLD_FUNCTIONS/__glpk__.cc (F__glpk__): Replace isinf with
+	xisinf. Allow sparse matrices as second argument.
+
+	* syscalls.cc: Typos.
+	* sysdep.cc: Typos.
+
+2005-09-16  John W. Eaton  <jwe@octave.org>
+
+	* syscalls.cc (Fwaitpid): Doc fix.  Expect WNOHANG, WUNTRACED,
+	WCONTINUED as args instad of int values.
+	Return values are now [pid, status, msg] instad of [pid, msg].
+	(WIFEXITED, WEXITSTATUS, WIFSIGNALED, WTERMSIG, WCOREDUMP,
+	WIFSTOPPED, WSTOPSIG, WIFCONTINUED): New functions.
+	(symbols_of_syscalls): DEFCONST WNOHANG, WUNTRACED, and WCONTINUE.
+
+	* oct-procbuf.cc (octave_procbuf::close): Call octave_syscalls::waitpid
+	here instead of calling waitpid directly.
+	* sighandlers.cc (OCL_REP::wait): Likewise.
+
+	* sysdep.h [__MINGW32__]: Don't define waitpid here.
+
+2005-09-15  John W. Eaton  <jwe@octave.org>
+
+	* sysdep.h [__MINGW32__]: Move to definition of waitpid sysdep.h.
+
+	* sysdep.cc, sighandlers.cc: Rename all win32_ symbols to w32.
+
+	* sysdep.cc (w32_set_quiet_shutdown): New function.
+	* sysdep.h: Provide decl.
+	* sysdep.cc (MINGW_signal_cleanup): Use it.
+	* sighandlers.cc (octave_catch_interrupts): Use it.
+
+	* sysdep.h: Provide decl.
+	(MINGW_SIGNAL_CLEANUP): New macro.
+	(USE_W32_SIGINT): Move definition here.
+	* sighandlers.cc: From here.
+
+	* DLD-FUNCTIONS/cellfun.cc (Fnum2cell): Use print_usage, not usage.
+	* DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd, Fetree): Likewise.
+	(Fcolamd, Fsymamd) [! HAVE_COLAMD]: Return empty octave_value_list
+	object.
+
+	* sysdep.cc (sysdep_cleanup): New function.
+	Move w32 clean up code here.
+	* toplev.cc (clean_up_and_exit): From here.
+	Call sysdep_cleanup here.
+
+2005-09-15  David Bateman  <dbateman@free.fr>
+
+	* Makefile.in (DLD_XSRC): Add ccolamd.cc
+	(OCTAVE_LIBS): Add LIBGLOB.
+	(OCT_LINK_DEPST, octave): Add AMD, COLAMD, CCOLAMD and CHOLMOD
+	libraries.
+	* default.cc (set_default_exec_path, set_default_path,
+	maybe_add_default_load_path, LOADPATH): Use SEPCHAR_STR and SEPCHAR.
+	* help.cc (display_help_text): Exclude /dev/null on mingw.
+	* oct-procbuf.cc (W32POPEN, W32PCLOSE): Macros for cygwin/mingw.
+	(octave_procbuf::open, octave_probuf::close): Use them.
+	* sighandler.cc (user_abort): New function with core of old
+	sigint_handler.
+	(sigint_handler): Simplify and specialize for w32.
+	(w32_sigint_handler): W32 version of sigint handler.
+	(octave_catch_interrupts): Initialize w32 siginit handler.
+	* sysdep.cc (MINGW_init): New function.
+	(sysdep_init): Use it.
+	* toplev.cc (clean_up_and_exit): Clean w32 signalling shutdown.
+	* DLD-FUNCTIONS/cellfun.cc (Fnum2cell): New function.
+	* DLD-FUNCTIONS/colamd.cc (Fcolamd, Fsymamd): Allow conditional build.
+	Include oct-sparse.h rather than colamd.h.
+	* DLD-FUNCTIONS/ccolamd.cc: New file with Fccolamd a Fcsymamd.
+
+2005-09-14  John W. Eaton  <jwe@octave.org>
+
+	* ov-complex.cc (octave_complex::try_narrowing_conversion):
+	Don't drop -0i.
+	* ov-cx-mat.cc (octave_complex_matrix::try_narrowing_conversion):
+	Likewise.
+
+2005-09-14  Daniel  <durbano@shbano.com>
+
+	* DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/chol.cc,
+	DLD-FUNCTIONS/fft.cc, DLD-FUNCTIONS/fftw_wisdom.cc, utils.cc:
+	Doc string fixes.
+	From Jorge Barros de Abreu <ficmatin01@solar.com.br>.
+
+2005-09-14  David Bateman  <dbateman@free.fr>
+
+	* help.cc (Flookfor, print_lookfor, first_help_sentence):
+	New functions.
+
+2005-09-07  Bill Denney  <denney@seas.upenn.edu>
+
+	* dirfns.cc (Fglob): Doc fix.
+
+2005-09-07  John W. Eaton  <jwe@octave.org>
+
+	* ov-struct.cc (Fstruct): Allow struct (zeros (0, N)) to create a
+	0xN struct array.
+
+2005-09-04  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/colamd.c (COLAMD_NAME, SYMAMD_NAME): New macros
+	(symetree, make_set, link, finf, etdfs, TreePostorder, coletree,
+	Fcolamd, Fsymamd, Fetree): Update for 64-bit indexing and colamd
+	versin 2.4.
+
+2005-09-01  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (symbol_out_of_date): Don't check nested functions.
+
+2005-08-31  John W. Eaton  <jwe@octave.org>
+
+	* oct-map.cc (Octave_map::index): Don't crash if index list is empty.
+	* ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal):
+	Likewise.
+
+	* oct-map.h (Octave_map::ndims): New function.
+
+2005-08-30  John W. Eaton  <jwe@octave.org>
+
+	* ov-range.h (octave_range::permute): New function.
+
+	* ov-struct.cc (octave_struct::load_ascii,
+	octave_struct::load_binary, octave_struct::load_hdf5): Try harder
+	to read old-style files correctly.
+
+2005-08-25  David Bateman  <dbateman@free.fr>
+
+	* OPERATORS/op-sm-m.cc, OPERATORS/op-sm-cm.cc, OPERATORS/op-scm-m.cc,
+	OPERATORS/op-scm-cm.cc, OPERATORS/op-m-sm.cc, OPERATORS/op-m-scm.cc,
+	OPERATORS/op-cm-sm.cc, OPERATORS/op-cm-scm.cc: Use mixed matrix/sparse
+	multiply operator rather than casting sparse to matrix.
+
+2005-07-18  John W. Eaton  <jwe@octave.org>
+
+	* strfns.cc (Fstrcmp): New function from Sļæ½ren Hauberg
+	<soren@hauberg.org> and Tom Holroyd <tomh@kurage.nimh.nih.gov>.
+	Adapt to Octave conventions.
+
+2005-07-11  David Bateman  <dbateman@free.fr>
+
+	* ov-fc-inline.cc (Fvectorize): Allow string arguments
+
+2005-07-08  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/gplot.l (Fhold, Fishold): Delete.
+	(clear_before_plotting): Delete static variable.
+	Delete PKG_ADD line for hold.
+
+2005-07-07  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (pr_plus_format): Delete "static" from template decl.
+
+	* oct-stream.cc (octave_scan): Delete explicit instantiation of
+	octave_scan<double> since a specialization is provided.
+
+	* DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Include
+	<algorithm>, for std::transform decl.  Use std qualifier for
+	transform and tolower.
+
+2005-07-05  Antoine Moreau  <antoine.moreau@univ-bpclermont.fr>
+
+	* DLD-FUNCTIONS/betainc.cc (Fbetainc): Fix doc string to match
+	function definition..
+
+2005-07-05  Mats Jansson  <mats.e.jansson@home.se>
+
+	 * file-io.cc (Fmkstemp): Check if second argument is true
+	 before marking file for deletion.
+
+2005-07-05  John W. Eaton  <jwe@octave.org>
+
+	* ov-str-mat.cc (octave_char_matrix_str::do_index_op_internal):
+	Rename from char_matrix_str::do_index_op.  New arg, type.
+	ov-str-mat.h (octave_char_matrix_str::do_index_op): Define using
+	do_index_op_internal.
+	(octave_char_matrix_sq_str::do_index_op): New function.
+
+2005-07-01  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (end_error): Also handle end_try_catch case.
+
+2005-06-17  John W. Eaton  <jwe@octave.org>
+
+	* help.cc (help_from_list, help_from_symbol_table,
+	help_from_file): New arg, symbol_found.
+	(builtin_help): Use symbol_found arg to determine whether help
+	text is empty or symbol is not available.
+
+	* symtab.cc (symbol_record::print_info): Print more info.
+
+	* DLD-FUNCTIONS/dispatch.cc (Fdispatch_help): Delete.
+	(dispatch_record): Don't prepend "<>" to help text.
+	(Fdispatch): Don't setup dispatched help.
+
+	* help.cc (extract_help_from_dispatch): New function.
+	(help_from_symbol_table): Use it.
+	* defun.cc (print_usage): Use it.
+
+	* toplev.cc (octave_config_info): Include localapifcnfiledir and
+	localapioctfiledir in the list.
+
+	* symtab.h (symbol_record::alias): New arg, mark_to_clear.
+	(symbol_record::aliases_to_clear): New data member.
+	(symbol_record::push_alias_to_clear): New function.
+	* symtab.cc (symbol_record::alias): If mark_to_clear is true, push
+	this pointer on aliases_to_clear stack for s.
+	(symbol_record::clear): Also clear aliases_to_clear_stack.
+
+	* defun.cc (install_dld_function): Create full file name alias in
+	fbi_sym_tab and hide it from view.
+	Don't call protect or make_eternal on sym_rec.
+
+	* variables.cc (fcn_out_of_date): New function.
+	(symbol_out_of_date): Also check for symbol using full function
+	file name.
+
+	* symtab.h (symbol_record::visible): New data member.
+	(symbol_record::hide, symbol_record::show, symbol_record::is_visible):
+	New functions.
+
+	* symtab.h (symbol_record::maybe_delete_def): New private function.
+	* symtab.cc (symbol_record::clear, symbol_record::alias,
+	symbol_record::pop_context,
+	symbol_record::define (octave_function *, unsigned int)): Use it.
+	(symbol_table::symbol_list): Only include visible symbols in list.
+
+	* parse.y (frob_function): Hide nested function names.
+
+	* parse.y (frob_function): Create full file name alias in
+	fbi_sym_tab and hide it from view.
+	* defun.cc (install_dld_function): Likewise.
+
+2005-06-16  John W. Eaton  <jwe@octave.org>
+
+	* ov-dld-fcn.cc (octave_dld_function): Check Voct_file_dir to see
+	if function is system file, Vfcn_file_dir.
+	* defaults.cc (set_default_oct_file_dir): New function.
+	(install_defaults): Call it.
+	(Voct_file_dir): New global variable.
+	* defaults.h.in (Voct_file_dir): Provide decl.
+
+	* variables.cc (function_out_of_date_internal): Use
+	Vignore_function_time_stamp only to avoid calling stat.
+	(symbol_out_of_date): Don't check Vignore_function_time_stamp here.
+	(function_out_of_date): Rename from function_out_of_date_internal.
+
+	* defaults.cc (loadpath): Don't do anything if value is unchanged.
+	If loadpath changes, also update Vlast_prompt_time.
+
+2005-06-14  John W. Eaton  <jwe@octave.org>
+
+	* pt-mat.cc (Vwarn_string_concat): Default value now false.
+	(symbols_of_pt_mat): Change initial value here as well.
+
+	* ls-mat5.cc, mappers.cc, oct-stream.cc, pr-output.cc: Change all
+	uses of octave_is_NaN_or_NA to xisnan.
+
+2005-06-14  Keith Goodman  <kwgoodman@gmail.com>
+
+	* input.cc (get_user_input): Renamed debug commands to dbnext,
+	dbstep, and dbcont.
+	* pt.cc: Renamed dbg_next to dbnext in comment string.
+	* pt.h: Renamed dbg_next to dbnext in comment string.
+
+2005-06-14  David Bateman  <dbateman@free.fr>
+
+	* pt-arg-list.cc (F__end__): Return 1 for dimensions larger than ndim.
+
+2005-06-14  John W. Eaton  <jwe@octave.org>
+
+	* ls-mat5.cc (save_mat5_array_length): Special case for NaN, NA,
+	and Inf values.  Only check if abs value is greater than FLT_MAX.
+
+2005-06-09  David Bateman  <dbateman@free.fr>
+
+	* ls-mat5.cc (save_mat5_element_length): 1 element strings will be
+	saved in a compressed format, so calculate the length accordingly.
+
+2005-05-30  David Bateman  <dbateman@free.fr>
+
+	* ls-mat5.cc (read_mat5_binary_element): Don't convert to string
+	if matrix is not of type mxCHAR_CLASS.
+
+2005-05-23  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (Ffopen): Don't fail with internal error message if
+	we fail to create a valid stream object.
+	(do_stream_open (const std::string&, const std::string&,
+	const std::string&, int&): Always create octave_stream object,
+	even if file pointer returne from fopen is 0.
+
+	* load-save.cc (gripe_file_open): New function.
+	(get_file_format, Fload, Fsave): Use it.
+
+	* DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Return
+	appropriately sized empty values for empty args.
+
+	* debug.cc (Fdbwhere, get_user_function): Look at
+	curr_caller_function, not curr_function, since function is now set
+	inside mapper, built-in (and therefore dld) functions too.
+
+2005-05-21  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc, pr-output.h (Vprint_empty_dimensions): Now extern.
+	* ov-cell.cc (octave_cell::print_raw): Conditionally print
+	dimensions of empty 2-d cell arrays.
+
+	* DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Return empty
+	values for empty args.
+
+	* lex.l (handle_string): If single-quote string, \ and . have no
+	special meaning.
+
+2005-05-18  John W. Eaton  <jwe@octave.org>
+
+	* pt-colon.cc (tree_colon_expression::make_range): Don't require
+	scalars values as range components.
+
+	* version.h (OCTAVE_VERSION): Now 2.9.3
+	(OCTAVE_API_VERSION): Now api-v16.
+
+	* ov-base-sparse.cc (octave_base_sparse<T>::print_raw):
+	Make spacing of output consistent with other parts of Octave.
+
+	* DLD-FUNCTIONS/rand.cc (do_rand): Chop trailing singelton
+	dimensions before generating array.
+
+2005-05-17  John W. Eaton  <jwe@octave.org>
+
+	* ov.cc (install_types): Don't call octave_stream::register_type.
+	* ov.h, ov.cc (octave_value::octave_value (const octave_stream&,
+	int): Delete constructor.
+	(octave_value::is_stream, octave_value::stream_value,
+	octave_value::stream_number): Delete functions.
+	* ov-base.h (octave_base_value::is_stream): Delete function.
+	* ov-base.h, ov-base.cc (octave_base_value::stream_value,
+	octave_base_value::stream_number): Delete functions.
+	* file-io.cc (Fisstream): Delete function.
+	* op-file.h, op-file.cc, OPERATORS/op-fil-sbm.cc,
+	OPERATORS/op-fil-scm.cc, OPERATORS/op-fil-sm.cc,
+	* OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc,
+	OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc,
+	OPERATORS/op-fil-m.cc, OPERATORS/op-fil-s.cc,
+	OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-rec.cc,
+	OPERATORS/op-fil-str.cc: Delete files.
+	* Makefile.in (OP_XSRC, SPARSE_OP_XSRC): Delete op-fil-*.cc from
+	the lists.
+	(OV_INCLUDES): Delete op-file.h from the list.
+	(OV_SRC): Delete op-file.cc from the list.
+	* oct-stream.cc, oct-stream.h (octave_stream_list::insert,
+	octave_stream_list::do_insert): Return stream number instead of
+	octave_value.
+
+2005-05-16  David Bateman  <dbateman@free.fr>
+
+	* ls-mat.cc (save_mat5_binary_element): Increase size of
+	compression buffer.
+	(load_mat5_binary_element): Allow ASCII encoded as UTF8,
+	and give error messages for multi-byte UTF8 and UTF16 and UTF32
+	encodings.
+
+	* ls-hdf5.h (H5T_NATIVE_IDX): New macro defining native indexing
+	type for HDF5 files
+
+	* ls-hdf5.cc (save_hdf5_empty, load_hdf5_empty): Use
+	H5T_NATIVE_IDX to allow 64-bit indexing.
+	* ov-bool-sparse.cc (save_hdf5, load_hdf5): ditto.
+	* ov-re-sparse.cc (save_hdf5, load_hdf5): ditto.
+	* ov-cx-sparse.cc (save_hdf5, load_hdf5): ditto.
+	* ov-cell.cc (save_hdf5, load_hdf5): ditto.
+
+	* load-save.cc (parse_save_options): Remove -nozip option.
+	(Fsave): If user defines file format, ignore completely the default
+	file format options.
+
+2005-05-12  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (oct-gperf.h): Try harder to cause Make to exit here
+	if gperf is missing or fails to create a valid file.
+
+2005-05-10  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (<MATRIX_START>{SNLCMT}*\]{S}*): If whitespace was gobbled,
+	unput SPC before returning the token.
+	(<MATRIX_START>{SNLCMT}*\}{S}*): Likewise.
+
+2005-05-09  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (except_command): Make catch clause optional in try
+	statements.
+	* pt-except.cc (tree_try_catch_command::eval):
+	Always buffer error messages.
+
+2005-05-06  John W. Eaton  <jwe@octave.org>
+
+	* ov-struct.cc (octave_struct::save_ascii,
+	octave_struct::save_binary, octave_sruct::save_hdf5):
+	Always save cell array.
+	(octave_struct::load_ascii, octave_struct::load_binary,
+	octave_sruct::load_hdf5): Try to read old-style files correctly.
+
+	* DLD-FUNCTIONS/__qp__.cc (qp): Use chol2inv to compute inverse
+	from Cholesky factors.
+	(cholinv): Delete.
+
+	* DLD-FUNCTIONS/chol.cc (Fcholinv): New function.
+	(Fchol2inv): New function.
+
+2005-05-05  Keith Goodman  <kwgoodman@gmail.com>
+
+	* ov-usr-fcn.cc	(Fnargout, Fnargin): Update doc strings.
+	* help.cc (keywords): Update doc strings for varargin, varargout.
+
+2005-05-05  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (BEGIN_S_CONVERSION): Correctly handle width
+	specifiers.
+
+2005-05-04  John W. Eaton  <jwe@octave.org>
+
+	* ls-mat5.cc (read_mat5_binary_element): Implement reading of N-d
+	structure arrays.
+
+	* ov-struct.cc (octave_struct::load_hdf5,
+	octave_struct::load_binary, octave_struct::load_ascii): Assign
+	cell_value to map slot, not octave_value containing the cell.
+
+2005-05-02  John W. Eaton  <jwe@octave.org>
+
+	* error.cc (Flasterr): Don't access argv if an error occurs when
+	creating it.
+
+	* mkgendoc (main): Print header message.
+
+2005-05-02  Bill Denney  <denney@seas.upenn.edu>
+
+	* data.cc, defaults.cc, DLD-FUNCTIONS/qz.cc, file-io.cc,
+	sighandlers.cc, syscalls.cc: Docstring fixes.
+
+2005-05-02  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (octave_print_internal (std::ostream&,
+	const Range&, bool, int)): Don't print newline at end of broken
+	rows (that is handled by pr_col_num_header).
+	From Keith Goodman <kwgoodman@gmail.com>.
+
+	* Makefile.in (octave$(EXEEXT)): List $(UMFPACK_LIBS) ahead of
+	$(BLAS_LIBS).
+	(OCTAVE_LIBS): Include $(GLPK_LIBS) in the list if dynamic linking
+	is not enabled.
+	From Dmitri A. Sergatskov <dasergatskov@gmail.com>.
+
+2005-05-02  John W. Eaton  <jwe@octave.org>
+
+	* oct-map.h, oct-map.cc (Octave_map::seek, Octave_map::contents):
+	New non-const versions.
+	(Octave_map::assign (const octave_value_list&,
+	const std::string&, const Cell&)): Allow both tmp RHS and LHS to
+	be resized.  For clarity, always resize to new_dims.
+
+2005-05-02  David Bateman  <dbateman@free.fr>
+
+	* ov-re-sparse.cc, ov-cx-sparse.cc (load_binary): read save_type into
+	one byte variable.
+
+2005-04-29  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (DO_LITERAL_CONVERSION): Cast fmt[i] to unsigned
+	char for comparison.
+
+	* c-file-ptr-stream.h (c_file_ptr_stream): New template class,
+	converted from i_c_file_ptr_stream.
+	(i_c_file_ptr_stream, o_c_file_ptr_stream, io_c_file_ptr_stream):
+	Now typedefs.
+	(i_c_zfile_ptr_stream, o_c_zfile_ptr_stream, io_c_zfile_ptr_stream):
+	New typedefs.
+	* c-file-ptr-stream.h, c-file-ptr-stream.cc (c_zfile_ptr_buf):
+	New class.
+
+	* oct-stdstrm.h (class octave_tstdiostream): New template class,
+	converted from octave_stdiostream.
+	(octave_stdiostream): Now a typedef.
+	[HAVE_ZLIB] (octave_zstdiostream): New a typedef.
+	* oct-stdstrm.cc: Delete.
+	* Makefile.in (DIST_SRC): Remove it from the list.
+
+2005-04-29  David Bateman  <dbateman@free.fr>
+
+	* Makefile.in: Add matrix_type.cc and spkron.cc to DLD_XSRC.
+
+	* ls.mat.cc (read_mat5_binary_element): Allow for endian change
+	for compressed data elements.
+
+	* ov-base-sparse.cc (assign): Invalidate matrix type.
+
+	* ov-base-sparse.cc (SparseType sparse_type (void),
+	SparseType sparse_type (const SparseType&):
+	Functions to read and set sparse matrix type.
+
+	* ov-bool-sparse.cc (load_binary): Remove third argument.
+	(load_hdf5): Cast hsize_t comparisions with int to avoid warning.
+	* ov-cx-sparse.cc (load_hdf5): Ditto.
+	* ov-re-sparse.cc (load_hdf5): Ditto.
+
+	* ov-re-sparse.cc (convert_to_str_internal): Add third argument
+	for string type.
+	* ov-re-sparse.h (convert_to_str_internal): Adject declaration.
+
+	* sparse-xdiv.cc (xdiv, xleftdiv): Pass SparseType as third
+	argument, use it and return it to allow caching of type.
+	* sparse-xdiv.h (xdiv, xleftdiv): Change declarations for third
+	argument of type SparseType.
+
+	* DLD-FUNCTIONS/luinc.cc (Fluinc): Use type_name and not
+	class_name to test for real/complex sparse matrices.
+	Set matrix type.
+
+	* DLD-FUNCTIONS/splu.cc (Fsplu): Set matrix type.
+
+	* OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc,
+	OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc,
+	OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc,
+	OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc,
+	OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc,
+	OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc,
+	OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc,
+	OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc,
+	OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc,
+	OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc (div, ldiv):
+	Pass and recache SparseType wirh xdiv/xleftdiv.
+
+2005-04-29  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (maybe_warn_interface_change): Delete function.
+	(fopen_mode_to_ios_mode): Don't call it.
+
+2005-04-27  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn-handle.cc (octave_fcn_handle::subsref):
+	Check whether function referenced by handle is out of date.
+	(Ffunctions): Tag nameless user function as "command-line".
+
+	* variables.cc (symbol_out_of_date (octave_fucntion *)): New function.
+	(function_out_of_date): New function.
+	* parse.y (load_fcn_from_file (const std::string&, bool)):
+	New function.
+
+	* DLD-FUNCTIONS/gplot.l (gnuplot_init): New function to handle
+	initialization.  If builtin variables have already been installed,
+	simply update our cached values.
+	(F__gnuplot_init__): Call gnuplot_init to do all the real work.
+	(Fclearplot, Fcloseplot, Fhold, Fishold, Fpurge_tmp_files,
+	F__gnuplot_raw__, F__gnuplot_set__, F__gnuplot_plot__,
+	F__gnuplot_splot__, F__gnuplot_replot__, Fgplot, Fgsplot, Fgraw,
+	Fgset, Fgshow): Call gnuplot_init before doing anything.
+
+	* parse.y: (safe_fclose): Delete comment list to avoid memory leak.
+	(parse_and_execute (FILE *)): Also save and restore global_command.
+
+2005-04-26  John W. Eaton  <jwe@octave.org>
+
+	* mkbuiltins (VAR_FILES): Expect $(VAR_FILES) to have .df suffix.
+
+	* Makefile.in (clean): Also remove $(DLD_PICOBJ).
+	Use mk-oct-links --delete to remove links to .oct files.
+	Remove $(DOC_FILES) not $(DEF_FILES) and $(VAR_FILES).
+
+	* mk-oct-links (mk-oct-links): Handle --delete option.
+	Rename -p option to be --print.  Skip nonexistent .df files.
+
+2005-04-25  John W. Eaton  <jwe@octave.org>
+
+	* oct-hist.cc (default_history_file, default_history_size): Now static.
+	* oct-hist.h: Delete decls.
+
+	* oct-hist.cc (default_history_timestamp_format,
+	default_history_timestamp_format): New functions.
+	(Vdefault_history_timestamp_format): New variable.
+	(symbols_of_oct_hist): DEFVAR it.
+	(octave_history_write_timestamp): New function.
+	* oct-hist.h (octave_history_write_timestamp): Provide decl.
+	* toplev.cc (): call octave_history_write_timestamp here.
+	* octave.cc (maximum_braindamage):
+	Bind history_timestamp_format_string here.
+
+2005-04-22  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.9.2.
+	(OCTAVE_API_VERSION): Now api-v15.
+
+	* pager.cc (default_pager): Also append -X.
+
+	* DLD-FUNCTIONS/dispatch.cc (Fdispatch): Dispatch help on "string"
+	and "sq_string" types.
+	(dispatch_record): Add extra space to force new paragraph after
+	each dispatched function name if we are formatting with Texinfo.
+	Force noindent of preceding "Overloaded function:" tag.
+
+2005-04-21  John W Eaton  <jwe@octave.org>
+
+	* ls-mat5.cc (read_mat5_binary_element): Only read sparse matrix
+	values if sizeof (int) == sizeof (octave_idx_type).
+
+	* DLD-FUNCTIONS/colamd.cc: These functions only work if
+	sizeof (int) == sizeof (octave_idx_type).
+
+	* Makefile.in (parse.cc): Expect 14 shift/reduce conflicts.
+
+	* parse.y (USING TITLE WITH AXES COLON OPEN_BRACE CLEAR):
+	Delete unused tokens.
+
+	* DLD-FUNCTIONS/__qp__.cc (qp): Use octave_idx_type where needed.
+
+	* DLD-FUNCTIONS/__qp__.cc: New file.
+	* Makefile.in (DLD_XSRC): Add it to the list.
+
+2005-04-20  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (IDENT): Allow $ in identifiers.
+	* utils.cc (valid_identifier): Likewise.
+
+2005-04-19  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (Fsystem): Move enum exec_type declaration to file
+	scope and rename system_exec_type.  Change all uses.
+
+2005-04-14  David Bateman  <dbateman@free.fr>
+
+	* load-save.cc (Vdefault_save_format, Voctave_core_file_format):
+	Delete variables.
+	(Vdefault_save_options, Voctave_core_file_options): New variables.
+	(get_save_format): Delete function.
+	(parse_save_options (const string_vector&, ...),
+	parse_save_options (const std::string&, ...)): New functions.
+	(dump_octave_core): Allow save_as_floats to be used.
+	(dump_octave_core): Parse save options.
+	(Fsave): Split parsing of options, and default formats.
+	(default_save_format): Delete function and DEFVAR.
+	(default_save_options): New function.  DEFVAR it.
+	(octave_core_file_format): Delete function and DEFVAR.
+	(octave_core_file_options): New function.  DEFVAR it.
+
+	* octave.cc (default_save_format): Delete binding
+	(default_save_options): New bindings
+
+	* Makefile.in: Add luinc.cc to DLD_XSRC.
+	* DLD-FUNCTIONS/luinc.cc: New file for incomplete LU factorization.
+
+	* ov-bool-sparse.h (index_vector): New function.
+	* ov-re-sparse.cc (index_vector): Ditto.
+	* ov-re-sparse.h (index_vector): Definition.
+
+	* ov-mapper.cc (any_element_less_than, any_element_greater_than):
+	New versions for SparseMatrix
+	(SPARSE_MAPPER_LOOP_2, SPARSE_MAPPER_LOOP_1, SPARSE_MAPPER_LOOP):
+	New macros.
+	(octave_mapper::apply): Add special cases for sparse arguments to
+	the mapper functions
+
+	* ov-re-sparse.cc (streamoff_array_value): Use octave_idx_type.
+	(convert_to_str_internal): New function.
+	* ov-re-sparse.h (convert_to_str_internal): Definition.
+
+	* DLD-FUNCTIONS/sparse.cc (Fsparse): More care for nargin=2 case.
+
+	* DLD-FUNCTIONS/splu.cc (Fsplu): Use octave_idx_type.
+
+2005-04-14  John W. Eaton  <jwe@octave.org>
+
+	* strfns.cc (Fchar): If arg is a dq string, return a dq string.
+
+	* pt-mat.cc (Vwarn_string_concat): New static variable.
+	(symbols_of_pt_mat): DEFVAR it.
+	(warn_string_concat): New function.
+	(maybe_warn_string_concat): New function.
+	(tree_matrix::rvalue): If all args are single quoted strings,
+	create a single quoted string object.  If all args are strings
+	(any type), create a double quoted string object.  If a mixture of
+	string types, maybe warn.
+	(class tm_row_const, class tm_row_const_rep, class tm_const):
+	Note whether all values are double or single quoted strings.
+
+	* ov.h (octave_value::is_dq_string): New function.
+
+2005-04-13  John W. Eaton  <jwe@octave.org>
+
+	* strfns.cc (Fchar): Create sq_string objects here.
+
+2005-04-12  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (Ffprintf, Fprintf, Fsprintf):
+	Pass octave_value to octave_stream::printf for FMT.
+	(Fscanf, Fsscanf): Likewise, for octave_stream::scanf and
+	octave_stream::oscanf.
+
+	* oct-stream.cc, oct-stream.h (octave_stream::printf,
+	octave_stream::scanf, octave_stream::oscanf): New versions that
+	accept an octave_value for FMT.
+	(octave_stream::puts): New version that accepts octave_value for
+	value to print.
+	(octave_base_stream::do_scanf): If all_char_conv, force
+	conversion to string to avoid warning.
+
+	* ov-str-mat.h, ov-str-mat.cc (octave_char_matrix_sq_str): New class.
+	(octave_char_matrix_dq_str): New typedef.
+
+	* ov.h, ov.cc: All string constructors now take type argument.
+
+	* ov.cc (install_types): Register octave_char_matrix_sq_str.
+
+	* ov.h (octave_value::convert_to_str): New arg, type.
+	(octave_value::convert_to_str_internal): Likewise.
+	Change all derived classes.
+
+	* ov.h (octave_value::is_sq_string): New predicate.
+
+	* octave.gperf (__FILE__): Now a DQ_STRING.
+
+	* ls-mat4.cc (read_mat_binary_data): Force sq strings here.
+	* ls-mat5.cc (read_mat5_binary_element): And here.
+
+	* lex.l (<COMMAND_START>[\;\,]): Return SQ_STRING, not STRING.
+	(<COMMAND_START>[^#% \t\r\n\;\,\"\'][^ \t\r\n\;\,]*{S}*): Likewise.
+	(handle_string): Type of string to return depends on delimeter.
+
+	* parse.y (DQ_STRING, SQ_STRING): New token types.
+	(STRING): Delete token type.
+	(string): New non-terminal.
+	(constant): Recognize string here instead of STRING.
+	(word_list): Likewise.
+	(opt_sep): Handle DQ_STRING and SQ_STRING.
+
+	* OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc,
+	OPERATORS/op-str-str.cc: Define operators for both sq and dq
+	strings.
+
+2005-04-08  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (clean): Use exact filenames instead of *.xxx.
+	Also remove PKG_ADD.
+	(DISTFILES): Add gplot.cc to the list.
+	(maintainer-clean): Remove gplot.cc here.
+
+	* Initial merge of 64-bit changes from Clinton Chee:
+
+	2005-04-07  John W. Eaton  <jwe@octave.org>
+
+	* ls-oct-ascii.h, ls-oct-ascii.cc (extract_keyword): Now template
+	functions defined in the header file.
+
+	* ls-mat5.cc, ov-base-sparse.h, ov-base.h, ov-bool-sparse.cc
+	ov-cx-sparse.cc, ov-re-sparse.cc, ov.cc, pt-loop.cc,
+	sparse-xdiv.cc, sparse-xpow.cc, DLD-FUNCTIONS/sparse.cc,
+	DLD-FUNCTIONS/spdet.cc:
+	Use octave_idx_type instead of int where needed.
+
+	2005-03-31  Clinton Chee  <chee@parallel.hpc.unsw.edu.au>
+
+	* Cell.cc, Cell.h, data.cc, defaults.cc, dirfns.cc, file-io.cc,
+	gripes.cc, gripes.h, ls-mat-ascii.cc, ls-mat4.cc, ls-oct-ascii.cc,
+	oct-map.cc, oct-map.h, oct-obj.cc, oct-obj.h, oct-stream.cc,
+	oct-stream.h, octave.cc, ops.h, ov-base-mat.cc, ov-base.h,
+	ov-bool-mat.cc, ov-cell.cc, ov-cs-list.cc, ov-cx-mat.cc,
+	ov-intx.h, ov-list.cc, ov-mapper.cc, ov-range.cc, ov-range.h,
+	ov-re-mat.cc, ov-scalar.h, ov-str-mat.cc, ov-struct.cc, ov.cc,
+	ov.h, pr-output.cc, pt-arg-list.cc, pt-cell.cc, pt-loop.cc,
+	pt-mat.cc, pt-select.cc, symtab.h, utils.cc, utils.h, xdiv.cc,
+	xpow.cc:
+	Use octave_idx_type instead of int where needed.
+
+	2005-04-01  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (octave_config_info): Add USE_64_BIT_IDX_T to the list.
+	* oct-conf.h.in (OCTAVE_CONF_USE_64_BIT_IDX_T): Substitute here.
+
+	2005-03-31  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/sort.cc: Don't use unsigned int for index into
+	dim_vector, or cast dim to unsigned int.
+	(Fsort): No need to cast arg before asking for dims.
+
+	* DLD-FUNCTIONS/gcd.cc (Fgcd): Use OCTAVE_LOCAL_BUFFER to allocate
+	local array of NDArray objects.
+
+	2005-03-31  Clinton Chee  <chee@parallel.hpc.unsw.edu.au>
+
+	* DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc,
+	DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/colloc.cc,
+	DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc,
+	DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/det.cc,
+	DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/expm.cc, DLD-FUNCTIONS/fft.cc,
+	DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc,
+	DLD-FUNCTIONS/fftw_wisdom.cc, DLD-FUNCTIONS/filter.cc,
+	DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/fsolve.cc,
+	DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/hess.cc, DLD-FUNCTIONS/inv.cc,
+	DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/lu.cc,
+	DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/quad.cc,
+	DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/rand.cc,
+	DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/sort.cc,
+	DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc,
+	DLD-FUNCTIONS/syl.cc:
+	Use octave_idx_type instead of int where needed.
+
+2005-04-06  David Bateman  <dbateman@free.fr>
+
+	* Makefile.in: Link to UMFPACK_LIBS. Add zfstream.{cc,h} to build and
+	dist files.
+
+	* zfstream.cc: New file for C++ binding for fstream like class for
+	zlib.
+
+	* zfstream.h: Definition for fstream like C++ bindings to zlib.
+
+	* load-save.cc (static bool check_gzip_magic (const std::string&)):
+	New function to look for GZIP magic
+	(static load_save_format get_file_format (const istream &file)): New
+	function split from old get_file_format but passed istream to allow
+	use with zlib istream.
+	(static load_save_format get_file_format (const std::string&,
+	const std::string&, bool)): Modify the test uncompressed file first,
+	then compressed version
+	(Fload) Allow -v6, -6, -v7 and -7 options. Split load code to allow
+	use of zlib.
+	(Fsave) Allow -zip, -z, -v6, -6, -v7 and -7 options. Split save code
+	to allow use of zlib.
+
+	* load-save.h: add LS_MAT7_BINARY to load_save_format enum
+
+	* ls-mat5.cc (read_mat5_binary_element): Test for miCOMPRESSED flag for
+	matlab v7 files, and decompress data in memory. Allow reading of matlab
+	logical variables either in mxDOUBLE_CLASS or mxUINT8_CLASS.
+	(int save_mat5_array_length(const double*, ...): New function to
+	calculate number of bytes used to save NDArray.
+	(int save_mat5_array_length(const Complex*, ...): New function to
+	calculate number of bytes used to save ComplexNDArray.
+	(int save_mat5_element_length): New function to find number of bytes
+	needed to save data element.
+	(save_mat5_binary_element): New input arguments, mat7_format and
+	compressing, that define if we are in a matlab v7 format and where we
+	are currently compressing the data element. If mat7_format use
+	miCOMPRESSED flag for matlab v7 files, and compress data in memory.
+	Add capability to save logical variables as mxUINT8_CLASS. If v7
+	format maximum variable length is 63 characters and not 31. Use the
+	save_mat5_element_length function to pre-calculate the number of bytes
+	taken by a variable rather than use a negative seek to correct after
+	writing (zlib can't do negative seeking)
+
+	* ls-mat5.h: Add to miCOMPRESSED, miUTF8, miUTF16 and miUTF32 flags to
+	the enum mat5_data_type.
+	(save_mat5_binary_element): Add args mat7_format and compressing to the
+	definition.
+
+2005-04-06  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-scm-scm.cc: Delete #pragma implementation.
+
+2005-04-05  John W. Eaton  <jwe@octave.org>
+
+	* ov-ch-mat.h (octave_char_matrix::index_vector): New function.
+
+	* oct-stream.cc (BEGIN_C_CONVERSION): Clear stream state if
+	we hit EOF after we read something.
+
+	* pt-assign.cc (tree_multi_assignment::rvalue):
+	Allow assignments of the form [a,b,c] = x{:}.
+
+2005-03-30  John W. Eaton  <jwe@octave.org>
+
+	* mappers.cc (install_mapper_functions): Use std:: as needed.
+	* defun-int.h (DEFUN_MAPPER_INTERNAL): Don't use X_CAST on
+	function pointer args.
+
+	* ov-complex.cc, ov-cx-mat.cc, xpow.cc, ls-mat5.cc: Use std:: for
+	Complex functions instead of relying on wrappers from oct-cmplx.h.
+
+	* oct-stream.cc (octave_scan): Initialize c1 to EOF.
+
+2005-03-29  John W. Eaton  <jwe@octave.org>
+
+	* utils.cc (get_dimensions): Produce error instead of warning if
+	given a matrix argument.
+
+	* load-save.cc (Fload, Fsave): Also accept -V4 option.
+
+	* ls-hdf5.h (hdf5_fstreambase::hdf5_fstreambase,
+	hdf5_fstreambase::open): Use & instead of == to test whether mode
+	is std::ios::in or std::ios::out.
+	(hd5_ifstream::istream, hd5_ifstream::open, hd5_ofstream::istream,
+	hd5_ofstream::open): Default mode now includes binary flag.
+
+2005-03-28  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_stream::write): For compatibility, Write
+	zeros instead of seeking if SKIP is nonzero.
+
+	* DLD-FUNCTIONS/gplot.l (Fgraw): Recommend __gnuplot_raw__, not
+	__gnuplot__raw__.
+	(Fgshow): Recommend __gnuplot_show__, not __gnuplot__show__.
+	Don't add "mark_as_rawcommand ("replot")" to PKG_ADD file.
+
+2005-03-26  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (gnu_readline): Don't wrap call to command_editor::readline
+	with {BEGIN,END}_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE.
+
+2005-03-25  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (main_loop): Don't use octave_set_current_context here.
+
+	* pt-loop.cc (simple_for_loop::eval): In for i = matrix ... end,
+	skip loop if matrix is empty.  Likewise for cell arrays.
+
+2005-03-24  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Texinfoize doc string.
+
+	* Makefile.in (install-oct): Always create $(octfiledir) and
+	install PKG_ADD file there.
+
+	* octave.cc (octave_main): Fix logic in test for exit after
+	evaluating --eval option code.
+
+2005-03-23  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Require 9 arguments.
+	Print error messages and return early if value extractions fail.
+	Default for message level now 0.
+	Rename local variable error to be errnum.
+	(glpk_fault_hook): Call message instead of writing to octave_stderr.
+	(glpk_fault_hook): Call error instead of writing to octave_stderr.
+	(glpk): Likewise.
+	Declare mark static.  Delete declaration of fperr.
+	(glpk): Delete unnecessary casts.
+
+	* DLD-FUNCTIONS/__glpk__.cc (OCTAVE_GLPK_GET_REAL_PARAM,
+	OCTAVE_GLPK_GET_INT_PARAM): New macros.
+	(F__glpk__): Use them.
+
+	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Accept lpsolver and
+	save_pb in param arg instead of as separate args.
+	Arg list now matches new interface for glpk.m.
+	Don't return lambda and redcosts fields in extra if isMIP.
+
+	* toplev.cc (do_octave_atexit): Call reset_error_handler before
+	each call to feval.
+
+2005-03-22  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in: Add special rule for __glpk__.oct.
+
+	* toplev.cc (octave_config_info): Add GLPK_LIBS to the list.
+	* oct-conf.h.in (OCTAVE_CONF_GLPK_LIBS): Substitute here.
+
+	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__, glpk):
+	Adapt to Octave coding style.
+	(glpk): Move decls closer to first use.
+	(F__glpk__): Eliminate unnecessary loop seting inf values.
+	Ensure that isMIP is initialized.
+	Declare sense, nz, and isMIP volatile to avoid GCC warnings that
+	these variables might be might be clobbered by `longjmp' or `vfork'
+
+	* DLD-FUNCTIONS/__glpk__.cc: New file.
+
+	* Makefile.in (DLD_XSRC): Add it to the list.
+
+2005-03-21  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (maximum_braindamage):
+	Don't set warn_matlab_incompatible to true.
+
+2005-03-17  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (class bracket_brace_paren_nesting_level): Use static
+	const int members instead of anonymous enum.
+
+2005-03-16  John W. Eaton  <jwe@octave.org>
+
+	* ov-struct.cc (octave_struct::save_ascii): Don't convert Cell
+	object to cs-list.
+	(octave_struct::save_binary): Likewise
+	(octave_struct::save_hdf5): Likewise.
+
+	* DLD-FUNCTIONS/gplot.l (Fset, Fshow): Delete.
+	(F__gnuplot_plot__): Rename from Fgplot.
+	(F__gnuplot_splot__): Rename from Fgsplot.
+	(F__gnuplot_raw__): Rename from Fgraw.
+	(F__gnuplot_set__): Rename from Fgset.
+	(F__gnuplot_show__): Rename from Fgshow.
+	(F__gnuplot_replot__): Rename from Freplot.
+	(WARN_DEPRECATED, DEPRECATED_BODY): New macros.
+	(Fgplot, Fgsplot, Fgraw, Fgset, Fgshow): New functions.
+
+2005-03-15  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (<COMMAND_START>{NL}): Reset lexer_flags.doing_rawcommand
+	state here.
+
+	* version.h (OCTAVE_API_VERSION): Now 2.9.0.
+	(OCTAVE_API_VERSION): Now api-v14.
+
+	* Makefile.in (INCLUDES): Delete sparse-ops.h from the list.
+
+	* cellfun.cc: New function from Octave-forge.  Adapt to Octave
+	coding standards.
+	* Makefile.in (DLD_XSRC): Add it to the list.
+
+2005-03-14  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/dispatch.cc (Fbuiltin):	Avoid crash if symbol
+	lookup fails.
+
+2005-03-10  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (Foctave_config_info): Print error instead of crashing
+	if struct does not contain field we are looking for.
+
+2005-03-09  John W. Eaton  <jwe@octave.org>
+
+	* load-save.cc (Fload, Fsave): Accept -text as an alias for -ascii.
+	Issue warning for future change in meaning of -ascii.
+
+	* Makefile.in (bin-dist): Delete target.
+	(BINDISTFILES, BINDISTLIBS): Delete variables.
+
+2005-03-04  John W. Eaton  <jwe@octave.org>
+
+	* octave.cc (octave_main): Concatenate all --eval arguments.
+
+2005-03-03  John W. Eaton  <jwe@octave.org>
+
+	* input.cc (input_from_command_line_file): Move definition here.
+	* parse.y: From here.
+	* input.h (input_from_command_line_file): Move decl here.
+	* parse.h: From here.
+
+	* input.cc (octave_gets):
+	Don't save history if input is from command line file.
+
+	* parse.y (parse_and_execute, parse_fcn_file, eval_string):
+	Don't alter value of input_from_command_line_file here.
+	(input_from_command_line_file): Default value is false.
+	(eval_string): Turn off line editing here.
+
+	* toplev.cc, toplev.h (main_loop): Delete fun_to_call arg and all uses.
+
+	* octave.cc (fun_to_call): Delete static variable.
+	(persist, code_to_eval): New static variables.
+	(long_opts): Delete --funcall, add --eval and --persist.
+	(usage_string, verbose_usage, octave_main): Likewise.
+	(FUNCALL_OPTION): Delete.
+	(EVAL_OPTION, PERSIST_OPTION): New macros.
+	(maximum_braindamage): Set persist to true.
+	(execute_eval_option_code): New function.
+	(restore_program_name): New function.
+	(execute_command_line_file): New function.
+	(octave_main): Call execute_eval_option code and
+	execute_command_line file.  If persist, go interactive even after
+	evaluating --eval code and/or command-line file.
+
+	* ov-bool-sparse.h, ov-bool-sparse.cc
+	(octave_sparse_bool_matrix::sparse_matrix_value,
+	octave_sparse_bool_matrix::sparse_complex_matrix_value):
+	Accept bool arg.
+
+	* parse.y (looks_like_copyright): Check first 9 characters, not 14.
+
+2005-03-02  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_scan (std::istream&, const
+	scanf_format_elt&, double*)): New specialization to handle Inf,
+	NaN, and NA.
+
+	* parse.y (looks_like_copyright):
+	Rename from looks_like_octave_copyright.  Change all uses.
+	Simply match "Copyright".
+
+2005-03-01  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/odessa.cc: Delete.
+	* Makefile.in (DLD_XSRC): Remove it from the list.
+	(OPT_HANDLERS): Remove ODESSA-opts.cc from the list.
+
+2005-02-28  John W. Eaton  <jwe@octave.org>
+
+	* toplev.cc (octave_config_info): Remove LIBGLOB and GLOB_INCFLAGS
+	from the list.
+	* oct-conf.h.in (OCTAVE_CONF_LIBGLOB, OCTAVE_CONF_GLOB_INCFLAGS):
+	Delete.
+	* Makefile.in (OCTAVE_LIBS): Remove $(LIBGLOB) from the list.
+
+2005-02-25  John W. Eaton  <jwe@octave.org>
+
+	Sparse merge.
+
+	2005-02-25  John W. Eaton  <jwe@octave.org>
+
+	* DLD-SRC/rand.cc (Frand): Accept "state" as an alias for "seed".
+
+	* DLD-SRC/dispatch.cc: New file.
+	* Makefile.in (DLD_XSRC): Add it to the list.
+
+	2005-02-13  David Bateman  <dbateman@free.fr>
+
+	* ov-fcn-inline.h, DLD-FUNCTIONS/spparms.cc, DLD-FUNCTIONS/gcd.cc:
+	Remove additional licensing clause, with authors permission
+
+	* ov-base-sparse.h: New constructor to cache SparseType, not yet
+	used
+	* ov-re-sparse.h: likewise
+	* ov-cx-sparse.h: likewise
+	* ov.h: Likewise
+
+	* sparse-xdiv.cc: Remove spparms umfpack flag
+
+	* DLD-FUNCTIONS/spparms.cc: Warning that umfpack flag is ignored.
+
+	2005-01-16  David Bateman  <dbateman@free.fr>
+
+	* ls-mat5.cc (read_mat5_integer_data): Change "T &m" to "T *m" and
+	instantiate with values like octave_int8 rather than int8NDArray.
+	Modify function to fit
+	(read_mat5_binary_element): Use new form of read_mat_integer_data
+	to read data directly into sparse matrix
+	(write_mat5_integer_data): Change "const T &m" to "T *m", etc. New
+	instantiation with int.
+	(save_mat5_binary_element): Modify to save sparse data
+
+	2005-01-15  David Bateman  <dbateman@free.fr>
+
+	* data.cc (do_cat): Use first non-empty matrix as base for
+	concatenation.
+	* pt-mat.cc (tree_matrix::rvalue): ditto.
+
+	2005-01-14  John W. Eaton  <jwe@octave.org>
+
+	* ov.cc (do_cat_op): When checking for empty args, use
+	all_zero_dims, not numel.
+	* ov.h (octave_value::all_zero_dims): New function.
+
+	* ov-bool-sparse.cc (try_narrowing_conversion): Convert to
+	bool_matrix, not matrix.
+
+	2005-01-13  David Bateman  <dbateman@free.fr>
+
+	* data.cc (make_diag): Use numel not capacity to remove ambiguity.
+	* ov.h (octave_value::capacity): New virtual funtion.
+	* ov-base.h (octave_base_value::capacity): New function calls numel.
+	* data.cc (Freshape): Use arg.numel() rather than arg.dims().numel()
+	since sparse numel now consistent.
+	* symtab.h (symbol_record::symbol_def::capacity,
+	symbol_record::capacity): New methods.
+	* symtab.cc (symbol_record::print_symbol_info_line,
+	symbol_table::parse_whos_line_format, symbol_table::maybe_list):
+	used capacity() and not numel() to properly assess size of
+	sparse objects.
+	* ov-base-sparse.h (octave_base_sparse::capacity): New function,
+	(octave_base_sparse::numel): Delete.
+	* ov-re-sparse.cc (octave_sparse_matrix::streamoff_array_value):
+	Only fill from non-zero elements of sparse array.
+	* DLD-FUNCTIONS/splu.cc (Fsplu): Change use of nelem to numel.
+	* ov.cc (do_cat_op): Early return for concatenation with empty
+	objects.
+
+	2005-01-12  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/find.cc (Ffind): Make it work for character strings.
+
+	2005-01-11  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-double-conv.cc: New conversions for sparse_matrix
+	and sparse_bool_matrix to matrix.
+
+	2005-01-11  David Bateman  <dbateman@free.fr>
+
+	* ov-base-sparse.h (octave_base_sparse::any,
+	octave_base_sparse::all): Use new constructors, etc as pointed out
+	by JWE.
+
+	2005-01-10  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/sparse.cc (MINMAX_BODY, Fspatan2, make_spdiag):
+	Write retval(0) = result instead of retval(0) = octave_value (result).
+	* DLD-FUNCTIONS/splu.cc (Fsplu): Likewise.
+
+	2005-01-08  David Bateman  <dbateman@free.fr>
+
+	* ls-mat5.cc (read_mat5_integer_data): Instantiate for Array<int>
+	(read_mat5_binary_element): Add code to read sparse matrices
+	saved in matlab v5 format
+
+	2005-01-07  David Bateman  <dbateman@free.fr>
+
+	* OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc,
+	OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc,
+	OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc,
+	OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc,
+	OPERATORS/op-sbm-b.cc, OPERATORS/op-sbm-bm.cc,
+	OPERATORS/op-sbm-sbm.cc, OPERATORS/op-scm-cm.cc,
+	OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-m.cc,
+	OPERATORS/op-scm-s.cc, OPERATORS/op-scm-scm.cc,
+	OPERATORS/op-scm-sm.cc, OPERATORS/op-sm-cm.cc,
+	OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-m.cc,
+	OPERATORS/op-sm-s.cc, OPERATORS/op-sm-scm.cc,
+	OPERATORS/op-sm-sm.cc, OPERATORS/op-s-scm.cc,
+	OPERATORS/op-s-sm.cc: New octave_value constructors allow
+	macros from ops.h to be used rather than sparse-ops.h. Remove
+	other explicit uses of maybe_mutate.
+
+	* sparse-ops.h: delete file.
+
+	* colamd.cc (Fcolamd, Fsymamd, Fetree): Remove no longer needed
+	use of get_rep() and use the sparse matrix conversion functions
+	directly.
+
+	* data.cc (Freshape): Use arg.dims().numel() rather than
+	arg.numel() due to definition of numel for sparse matrices.
+
+	* sparse.cc (Ffull, Fspfind, SPARSE_DIM_ARG_BODY, MINMAX_BODY,
+	Fspatan2, make_spdiag): Convert to use new octave_value sparse
+	constructors, sparse matrix conversion functions and remove
+	maybe_mutate calls.
+	(Fspreshape): Delete
+
+	* splu.cc (Fsplu): Remove remaining explicit octave_value
+	construction.
+
+	* ov-base-sparse.h (do_index_op, resize, reshape, permute, squeeze):
+	Move these methods from the derived classes.
+	* ov-base-spase.cc (do_index_op): Move this method from the derived
+	classes.
+	* ov-bool-sparse.h (do_index_op, resize, reshape, permute, squeeze):
+	delete.
+	* ov-re-spase.cc (do_index_op): delete.
+	* ov-cx-sparse.h (do_index_op, resize, reshape, permute, squeeze):
+	delete.
+	* ov-cx-spase.cc (do_index_op): delete.
+	* ov-bool-spase.cc (do_index_op): delete.
+	* ov-re-sparse.h (do_index_op, resize, reshape, permute, squeeze):
+	delete.
+
+	* DLD-FUNCTIONS/spdet.cc (Fspdet): Remove use of SparseDet and
+	SparseComplexDET classes and use DET and ComplexDET classes.
+
+ 	* DLD-FUNCTIONS/colamd.cc op-bm-sbm.cc OPERATORS/op-b-sbm.cc
+	OPERATORS/op-cm-scm.cc OPERATORS/op-cm-sm.cc OPERATORS/op-cs-scm.cc
+	OPERATORS/op-cs-sm.cc OPERATORS/op-fil-sbm.cc OPERATORS/op-fil-scm.cc
+	OPERATORS/op-fil-sm.cc OPERATORS/op-m-scm.cc OPERATORS/op-m-sm.cc
+	OPERATORS/op-sbm-b.cc OPERATORS/op-sbm-bm.cc OPERATORS/op-sbm-sbm.cc
+	OPERATORS/op-scm-cm.cc OPERATORS/op-scm-cs.cc OPERATORS/op-scm-m.cc
+	OPERATORS/op-scm-s.cc OPERATORS/op-scm-scm.cc OPERATORS/op-scm-sm.cc
+	OPERATORS/op-sm-cm.cc OPERATORS/op-sm-cs.cc OPERATORS/op-sm-m.cc
+	OPERATORS/op-sm-s.cc OPERATORS/op-sm-scm.cc OPERATORS/op-sm-sm.cc
+	OPERATORS/op-s-scm.cc OPERATORS/op-s-sm.cc ov-base-sparse.cc
+	ov-base-sparse.h ov-bool-sparse.cc ov-bool-sparse.h ov-cx-sparse.cc
+	ov-cx-sparse.h ov-re-sparse.cc ov-re-sparse.h sparse-base-lu.cc
+	sparse-base-lu.h DLD-FUNCTIONS/sparse.cc sparse-xdiv.cc sparse-xdiv.h
+	sparse-xpow.cc sparse-xpow.h DLD-FUNCTIONS/spdet.cc
+	DLD-FUNCTIONS/splu.cc DLD-FUNCTIONS/spparms.cc: Remove additional
+	licensing clause with authors permission.
+
+	2005-01-05  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/colamd.cc: Rename from colamdoct.cc. Base colamd.h
+	now found in COLAMD/colamd.h.
+	(Fcolamd): Return value is now used.
+	(Fsymamd): ditto.
+
+	* Makefile.in: include colamd.cc in DLD_XSRC.
+
+	* ov.h (sparse_matrix_value, sparse_complex_matrix_value,
+	sparse_bool_matrix_value): New virtual functions
+
+	* ov-base.cc (octave_base_value::sparse_matrix_value,
+	octave_base_value::sparse_complex_matrix_value,
+	octave_base_value::sparse_bool_matrix_value): New default sparse
+	matrix extraction functions.
+
+	* ov-base.h (sparse_matrix_value, sparse_complex_matrix_value,
+	sparse_bool_matrix_value): Declare them.
+
+	* ov-re-mat.cc (octave_matrix::sparse_matrix_value,
+	octave_matrix::sparse_complex_matrix_value): Conversion functions.
+
+	* ov-re-mat.h (sparse_matrix_value, sparse_complex_matrix_value):
+	Declare them.
+
+	* ov-cx-mat.cc (octave_complex_matrix::sparse_matrix_value,
+	octave_complex_matrix::sparse_complex_matrix_value): Conversion
+	functions.
+
+	* ov-cx-mat.h (sparse_matrix_value, sparse_complex_matrix_value):
+	Declare them.
+
+	* ov-bool-mat.h (sparse_matrix_value, sparse_complex_matrix_value,
+	sparse_bool_matrix_value): Conversion functions.
+
+	* DLD_FUNCTIONS/spdet.cc (Fspdet): Use the above constructors
+	and conversion functions.
+	* DLD_FUNCTIONS/splu.cc (Fsplu): ditto.
+
+	2004-12-30  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/splu.cc (Fsplu): Avoid shadow warnings.
+
+	* sparse-xpow.cc (elem_xpow): Delete unsed variables.
+	* sparse-xdiv.cc (x_el_div): Likewise.
+
+	* DLD-FUNCTIONS/det.cc (Fdet): Delete unused argument nargout.
+	* DLD-FUNCTIONS/spdet.cc (Fspdet): Likewise.
+
+	* DLD-FUNCTIONS/sparse.cc (Fnzmax): Return a value.
+
+	* ov.cc, ov.h (octave_value::octave_value (const SparseMatrix&),
+	(octave_value::octave_value (const SparseBoolMatrix&),
+	(octave_value::octave_value (const SparseComplexMatrix&)):
+	New constructors.
+
+	2004-12-29  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/sparse.cc (SPARSE_DIM_ARG_BODY): Rename from
+	DEFUN_DLD_SPARSE_DIM_ARG.  Omit HELP arg.  Omit DEFUN_DLD, so the
+	macro only defines the function body.
+	(Fspprod, Fspcumprod, Fspsum, Fspcumsum, Fspsumsq): Define with
+	DEFUN_DLD, not DEFUN_DLD_SPARSE_DIM_ARG.  Use SPARSE_DIM_ARG_BODY
+	to define function body.
+
+	* DLD-FUNCTIONS/sparse.cc (load_sparse_type, sparse_type_loaded):
+	Delete function, variable, and all uses.
+	* ov.cc: Include ov-bool-sparse.h, ov-re-sparse.h, ov-cx-sparse.h.
+	(install_types): Register sparse types.
+
+	Merge of sparse code from David Bateman <dbateman@free.fr> and
+	Andy Adler <adler@site.uottawa.ca>.
+
+	* sparse-xdiv.cc, sparse-xpow.cc: New files.
+	* Makefile.in (DIST_SRC): Add them to the list.
+
+	* sparse-ops.h sparse-xdiv.h, sparse-xpow.h: New files.
+	* Makefile.in (INCLUDES): Add them to the list.
+
+	* DLD-FUNCTIONS/colamdoct.cc, DLD-FUNCTIONS/sparse.cc,
+	DLD-FUNCTIONS/spdet.cc, DLD-FUNCTIONS/splu.cc,
+	DLD-FUNCTIONS/spparms.cc: New files.
+	* Makefile.in (DLD_XSRC): Add them to the list.
+
+	* ov-base-sparse.cc, ov-base-sparse.h, ov-bool-sparse.cc,
+	ov-bool-sparse.h, ov-cx-sparse.cc, ov-cx-sparse.h,
+	ov-re-sparse.cc, ov-re-sparse.h: New files.
+	* Makefile.in (OV_SPARSE_SRC, OV_SPARSE_INCLUDES): New lists.
+	(OV_SRC): Add $(OV_SPARSE_SRC) to the list.
+	(INCLUDES): Add $(OV_SPARSE_INCLUDES) to the list.
+
+	* OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc,
+	OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc,
+	OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc,
+	OPERATORS/op-fil-sbm.cc, OPERATORS/op-fil-scm.cc,
+	OPERATORS/op-fil-sm.cc, OPERATORS/op-m-scm.cc,
+	OPERATORS/op-m-sm.cc, OPERATORS/op-sbm-b.cc,
+	OPERATORS/op-sbm-bm.cc, OPERATORS/op-sbm-sbm.cc,
+	OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc,
+	OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc,
+	OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc,
+	OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc,
+	OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc,
+	OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc,
+	OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc: New files.
+	* Makefile.in (SPARSE_OP_XSRC): New list.
+	(OP_XSRC): Add $(SPARSE_OP_XSRC) to the list.
+
+2005-02-23  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (fold (tree_binary_expression*)): Skip constant folding
+	for some expressions to preserve warnings.
+	(Vwarn_associativity_change): New static variable.
+	(warn_associativity_change): New function.
+	(symbols_of_parse): DEFVAR warn_associativity_change.
+	(maybe_warn_associativity_change): New function.
+	(make_binary_op): Use it.
+
+2005-02-22  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (POW, EPOW): Use %left associativity for compatibility.
+
+	* ov-base-int.cc (octave_baes_int_matrix<T>::load_binary):
+	Handle arrays with only one dimension.
+	* ov-bool-mat.cc (octave_bool_matrix::load_binary): Likewise.
+	* ov-cell.cc (octave_cell::load_binary): Likewise.
+	* ov-cell.cc (octave_complex_matrix::load_binary): Likewise.
+	* ov-re-mat.cc (octave_matrix::load_binary): Likewise.
+	* ov-str-mat.cc (octave_char_matrix_str::load_binary): Likewise.
+
+	* ov-mapper.cc (octave_mapper::subsref): Return retval after
+	calling next_subsref.
+
+	* ov-mapper.cc (octave_builtin::subsref): If nargout is 0 and we
+	have additional indexing to perform, set it to 1 before calling
+	do_multi_index_op.
+
+	* oct-map.cc (Octave_map::intfield, Octave_map::stringfield):
+	New functions.
+	* oct-map.h: Provide decls.
+	* DLD-FUNCTIONS/time.cc (extract_tm): Use intfield and stringfield
+	to access map elements.
+
+2005-02-21  John W. Eaton  <jwe@octave.org>
+
+	* ov-builtin.cc (octave_builtin::subsref): If nargout is 0 and we
+	have additional indexing to perform, set it to 1 before calling
+	do_multi_index_op.
+	* ov-usr-fcn.cc (octave_user_function::subsref): Likewise.
+
+	* DLD-FUNCTIONS/gplot.l (send_to_plot_stream):
+	Replot with no previous plot is a no-op.
+	(makeplot): Likewise.
+	(Vautomatic_replot): Don't use this variable in low-level functions.
+
+2005-02-18  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (oct-gperf.h): Remove -E from list of gperf options.
+
+	* data.cc (do_permute): Use zero-based indexing for permutation
+	vector that is passed to octave_value::permute method.
+	Allow permutation vector longer	than number of dimenensions of
+	permuted matrix.
+
+2005-02-17  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_API_VERSION): Now 2.1.64-cvs.
+	(OCTAVE_API_VERSION): Now api-v12-cvs.
+
+2005-02-16  John W. Eaton  <jwe@octave.org>
+
+	* ov-base-mat.h (octave_base_matrix::squeeze): Explicitly convert
+	result of matrix.squeeze() to MT.
+
+2005-02-15  John W. Eaton  <jwe@octave.org>
+
+	* dirfns.cc (deftypefn): Don't print to octave_stdout if nargout > 0.
+
+	* pt-mat.cc (tree_matrix::rvalue): Min size of ra_idx is 2.
+
+	* file-io.cc (Ffclear): New function.
+
+	* sighandlers.h: Define SIGCHLD if it is not already defined and
+	SIGCLD is defined.
+
+	* sighandlers.cc (octave_set_signal_handler): Request system calls
+	restarted if interrupted by signals (except for SIGALRM).
+	* dirfns.cc (Fls): Don't bother with sleeping or checking errno.
+
+2005-02-11  John W. Eaton  <jwe@octave.org>
+
+	* sighandlers.cc (sigpipe_handler): Don't try to take action.
+	Set octave_signal_caught and octave_signals_caught here.
+	(sigchld_handler): Call octave_child_list::wait here.
+	Set octave_signal_caught and octave_signals_caught here.
+	(octave_signals_caught): New static file-scope variable.
+	(sigint_handler): Also set octave_signal_caught.
+
+	* sighandlers.cc (sigpipe_handler):
+
+	* DLD-FUNCTIONS/gplot.l (plot_stream_event_handler): Rename from
+	plot_stream_death_handler.  Return true if plotter has exited.
+	Call close_plot_stream with false arg.
+	(plot_stream_pid): Delete static file-scope variable and all uses.
+	(close_plot_stream): New arg, remove_from_child_list, with default
+	value of true.  Only call octave_child_list::remove if
+	remove_from_child_list is true.
+
+	* pager.cc (octave_pager_pid, saved_interrupt_handler,
+	interrupt_handler_saved): Delete static file-scope variables and
+	all uses.
+	(clear_external_pager): Do nothing if external_pager is 0.
+	(pager_event_handler): Rename from pager_death_handler.
+	Improve warning message.  Return true if pager has exited.
+	(octave_pager_buf::do_sync): Check errno == EPIPE after write.
+	(flush_octave_stdout): No need to check external_pager before
+	calling clear_external_pager.
+
+	* toplev.cc (recover_from_exception): Set octave_signal_caught to zero.
+	(main_loop): Set octave_signal_hook to octave_signal_handler here.
+
+	* sighandlers.cc (octave_signal_handler): New function.
+	* sighanlders.h: Provide decl.
+
+	* sighandlers.cc (install_signal_handlers): Initialize
+	octave_signals_caught.
+
+	* sighandlers.h (octave_child::status, have_status): New data members.
+	(child_event_handler): Rename from dead_child_handler.
+	Change all uses.
+	(octave_child_list::reap, octave_child_list::wait): New functions.
+	(octave_child_list::length, octave_child_list::do_length,
+	octave_child_list::elem, octave_child_list::do_elem,
+	octave_child_list::list, octave_child_list::curr_len): Delete.
+
+	* sighandlers.h, sighandlers.cc
+	(octave_child_list::octave_child_list_rep): New class.
+
+	* input.cc (gnu_readline, octave_gets, get_user_input):
+	Call OCTAVE_QUIT before doing anything.
+
+	* base-list.h (octave_base_list<T>::remove_if): New function.
+
+	* TEMPLATE-INST/Array-oc.cc: Delete.
+	* Makefile.in (TI_XSRC): Remove from list.
+
+2005-02-10  Driss Ghaddab  <driss.ghaddab@free.fr>
+
+	* cutils.c (octave_usleep) [HAVE_POLL]: Fix typo.
+
+2005-02-10  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (symbol_exist): Don't search path if explicitly
+	asked for a variable or builtin.  From David Bateman
+	<dbateman@free.fr>.
+
+2005-02-09  John W. Eaton  <jwe@octave.org>
+
+	* variables.cc (same_file): New static function.
+	(symbol_out_of_date): Use it.
+
+	* syscalls.cc (Fcanonicalize_file_name): New function.
+
+2005-02-08  Walter Landry  <landry@osc.edu>
+
+	* symtab.h (symbol_record::mark_as_command): Avoid AIX compiler error.
+
+2005-02-07  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Return [] instead
+	of [](1x0) for scalar arg of zero.
+
+2005-02-06  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/gplot.l (tmp_files): Delete.
+	From Todd Neal <tolchz@tolchz.net>.
+
+2005-02-04  John W. Eaton  <jwe@octave.org>
+
+	* sighandlers.cc (octave_child_list::~octave_child_list): Move here.
+	* sighandlers.h: From here.
+
+2005-02-02  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (parse.cc): Expect 12 shift/reduce conflicts.
+	* parse.y (loop_command): Allow "for (k=1:10) ... endfor".
+
+2005-01-27  David Bateman  <dbateman@free.fr>
+
+	* ov-mapper.cc (octave_mapper::apply): Only work on real arguments
+	if c_c_map_fcn or d_d_map_fcn or d_b_map_fcn is defined.xo
+
+2005-01-26  Joel Andersson  <snprintf@gmail.com>
+
+	* help.cc (keywords): Document endswitch.
+
+2005-01-21  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/filter.cc (filter): Avoid slow Marray indexing ops.
+
+2005-01-20  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (EXTRAS): Move ov-base-mat.cc ov-base-scalar.cc here.
+	(OV_SRC): From here.
+
+2005-01-18  John W. Eaton  <jwe@octave.org>
+
+	* ov-complex.h (octave_complex::any): New function.
+	* ov-scalar.h (octave_scalar::any): New function.
+
+	* file-io.cc (Fmkstemp): Fix doc string.  Error message belongs in
+	third output value.  From Mats Jansson <mats.e.jansson@home.se>.
+
+2005-01-12  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/find.cc (Ffind): Make it work for character strings.
+
+2005-01-11  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/gplot.l (UNOP): Avoid trailing comment.
+
+2005-01-10  John W. Eaton  <jwe@octave.org>
+
+	* ls-oct-ascii.cc (extract_keyword (std::istream&, const
+	string_vector&, std::string&, int&, const bool)):
+	Remove duplicate definition.
+
+2004-12-27  Martin Dalecki  <martin@dalecki.de>
+
+	* Cell.cc, c-file-ptr-stream.cc, comment-list.cc, oct-map.cc,
+	oct-obj.cc, ov-base.cc, ov-base-int.cc, ov-base-mat.cc,
+	ov-base-scalar.cc, ov-bool.cc, ov-bool-mat.cc, ov-builtin.cc,
+	ov.cc, ov-cell.cc, ov-ch-mat.cc, ov-colon.cc, ov-complex.cc,
+	ov-cs-list.cc, ov-cx-mat.cc, ov-dld-fcn.cc, ov-fcn.cc,
+	ov-fcn-handle.cc, ov-fcn-inline.cc, ov-file.cc, ov-int16.cc,
+	ov-int32.cc, ov-int64.cc, ov-int8.cc, ov-list.cc, ov-mapper.cc,
+	ov-range.cc, ov-re-mat.cc, ov-scalar.cc, ov-streamoff.cc,
+	ov-str-mat.cc, ov-struct.cc, ov-typeinfo.cc, ov-uint16.cc,
+	ov-uint32.cc, ov-uint64.cc, ov-uint8.cc, ov-usr-fcn.cc,
+	ov-va-args.cc, procstream.cc, pt-arg-list.cc, pt-assign.cc,
+	pt-binop.cc, pt-bp.cc, pt.cc, pt-cell.cc, pt-check.cc, pt-cmd.cc,
+	pt-colon.cc, pt-const.cc, pt-decl.cc, pt-except.cc, pt-exp.cc,
+	pt-fcn-handle.cc, pt-id.cc, pt-idx.cc, pt-jump.cc, pt-loop.cc,
+	pt-mat.cc, pt-misc.cc, pt-pr-code.cc, pt-select.cc, pt-stmt.cc,
+	pt-unop.cc, symtab.cc, token.cc, unwind-prot.cc:
+	Delete #pragma implementation.
+
+	* Cell.h, c-file-ptr-stream.h, comment-list.h, oct-map.h,
+	oct-obj.h, ov-base.h, ov-base-int.h, ov-base-mat.h,
+	ov-base-scalar.h, ov-bool.h, ov-bool-mat.h, ov-builtin.h,
+	ov-cell.h, ov-ch-mat.h, ov-complex.h, ov-cs-list.h, ov-cx-mat.h,
+	ov-dld-fcn.h, ov-fcn.h, ov-fcn-handle.h, ov-fcn-inline.h,
+	ov-file.h, ov.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-int8.h,
+	ov-list.h, ov-mapper.h, ov-range.h, ov-re-mat.h, ov-scalar.h,
+	ov-streamoff.h, ov-str-mat.h, ov-struct.h, ov-typeinfo.h,
+	ov-uint16.h, ov-uint32.h, ov-uint64.h, ov-uint8.h, ov-usr-fcn.h,
+	procstream.h, pt-arg-list.h, pt-assign.h, pt-binop.h, pt-bp.h,
+	pt-cell.h, pt-check.h, pt-cmd.h, pt-colon.h, pt-const.h,
+	pt-decl.h, pt-except.h, pt-exp.h, pt-fcn-handle.h, pt.h, pt-id.h,
+	pt-idx.h, pt-jump.h, pt-loop.h, pt-mat.h, pt-misc.h, pt-pr-code.h,
+	pt-select.h, pt-stmt.h, pt-unop.h, symtab.h, token.h,
+	unwind-prot.h: Delete #pragma interface.
+
+2004-12-27  John W. Eaton  <jwe@octave.org>
+
+	Merge of changes from Teemu Ikonen <tpikonen@pcu.helsinki.fi> to
+	remove gnuplot from main parser.
+
+	* pt-plot.cc, pt-plot.h: Delete.
+	* Makefile.in (PT_SRC, PT_INCLUDES): Delete them from the lists.
+
+	* DLD-FUNCTIONS/gplot.l: New file.
+	* Makefile.in: Include it in the DLD_XSRC list.
+
+	* dirfns.cc (octave_change_to_directory):
+	Don't call do_external_plotter_cd.
+
+	* symtab.h (symbol_record::TYPE): New element, RAWCOMMAND.
+	(symbol_record::symbol_def::mark_as_rawcommand,
+	symbol_record::symbol_def::unmark_rawcommand,
+	symbol_record::symbol_def::is_rawcommand): New functions.
+	(symbol_record::symbol_def::symbol_type): Bitfield is now 9 bits wide.
+	(symbol_record::mark_as_rawcommand,
+	symbol_record::unmark_rawcommand, symbol_record::is_rawcommand):
+	New functions.
+	(SYMTAB_ALL_TYPES): Include RAWCOMMAND.
+
+	* parse.y (make_plot_command): Delete function.
+	(tree_plot_command_type, subplot_type, subplot_list_type,
+	plot_limits_type, plot_range_type, subplot_using_type,
+	subplot_style_type, subplot_axes_type):
+	Delete non-terminal type decls.
+	(PLOT, STYLE, AXES_TAG): Delete token types.
+	(title, plot_command, plot_command2, plot_options, plot_command1,
+	ranges, ranges1, using, using1, style, axes): Delete non-terminals.
+
+	* toplev.cc (do_octave_atexit): Don't call close_plot_stream.
+
+	* variables.cc (rawcommand_set): New static variable.
+	(is_marked_as_rawcommand, mark_as_rawcommand, unmark_rawcommand,
+	Fiscommand, Fmark_as_rawcommand, Funmark_rawcommand,
+	Fisrawcommand, is_rawcommand_name): New functions.
+	* variables.h: Provide decl for is_rawcommand_name.
+
+	* pt-bp.cc, pt-bp.h, pt-check.cc, pt-check.h, pt-pr-code.cc,
+	pt-pr-code.h, pt-walk.h: Delete all declarations, definitions, and
+	uses of visit_subplot, visit_subplot_axes, visit_subplot_list,
+	visit_subplot_style, and visit_subplot_using methods.
+
+	* lex.h (lexer_flags): New field, doing_rawcommand.
+	* lex.l (<COMMAND_START>[\;\,]): Also handle raw commands here.
+	(lexer_flags::init): Initialize doing_racommand to false.
+	(handle_identifier): Recognize raw commands ere.
+	(handle_string): Don't do string escape conversions on raw command
+	strings.
+
+	* octave.gperf: Delete gplot_kw, gsplot_kw, replot_kw.
+
+	* lex.h (lexer_flags): Delete fields cant_be_identifier,
+	doing_set, in_plot_range, in_plot_using, in_plot_style,
+	in_plot_axes, past_plot_range, and plotting.
+	* lex.l: Delete all uses of these lexer flags and remove all
+	special cases for plotting.
+	(plot_style_token, plot_axes_token, is_plot_keyword): Delete.
+
+	* file-io.cc, file-io.h (tmp_files, mark_for_deletion,
+	cleanup_tmp_files): Move here.
+	* pt-plot.cc, pt-plot.h: From here.
+
+	* Makefile.in (PKG_ADD): New target.
+	(all): Depend on PKG_ADD.
+	(install-oct): Depend on PKG_ADD.  Install PKG_ADD file.
+	(gplot.cc): New target.
+	(stamp-prereq): Depend on gplot.cc.
+	(VAR): Don't include $(DLD_SRC) here.
+	(DLD_OBJ, DLD_DEF_FILES): Include .l files.
+
+	* defun-int.h (DEFVAR, DEFCONST, DEFCONSTX): Move definition here.
+	* defun.h: From here.
+
+2004-12-22  John W. Eaton  <jwe@octave.org>
+
+	* ls-oct-ascii.cc (extract_keyword (std::istream&, const
+	string_vector&, std::string&, int&, const bool): New function.
+	* ls-oct-ascii.h: Provide decl.
+	* ov-bool-mat.cc (octave_bool_matrix::load_ascii):
+	Use new extract_keyword function to avoid calling tellg/seekg.
+	* ov-cell.cc (octave_cell::load_ascii): Likewise.
+	* ov-cx-mat.cc (octave_complex_matrix::load_ascii): Likewise.
+	* ov-re-mat.cc (octave_matrix::load_ascii): Likewise.
+	* ov-str-mat.cc (octave_char_matrix_str::load_ascii): Likewise.
+
+2004-12-20  John W. Eaton  <jwe@octave.org>
+
+	* pt-idx.cc (tree_index_expression::has_magic_end): Return true if
+	any argument list element has a magic end token.
+
+2004-12-03  John W. Eaton  <jwe@octave.org>
+
+  	* version.h (OCTAVE_VERSION): Now 2.1.64.
+
+2004-12-03  Teemu Ikonen  <tpikonen@pcu.helsinki.fi>
+
+	* file-io.cc: Doc string fixes.
+
+2004-12-02  David Bateman  <dbateman@free.fr>
+
+	* input.cc (get_user_input): Only set nm and line for debugging if
+	both debug is true and curr_caller_function is non-null.
+
+2004-12-02  David Bateman  <dbateman@free.fr>
+
+	* ls-mat5.cc (arrayclasstype): Add mxINT64_CLASS, mxUINT64_CLASS,
+	mxFUNCTION_CLASS enum values.
+	(read_mat5_integer_data): New template function.
+	(OCTAVE_MAT5_INTEGER_READ): New macro.
+	(read_mat5_binary_element): Handle reading integer types.
+	Eliminate automatic conversion from int to double.
+	(write_mat5_integer_data): New template function.
+	Instantiate it for the 8 integer data types
+	(save_mat5_binary_element): Handle integer data types.
+
+	* load-save.cc (Fload): Check file existence here.
+	If file does not exist, append ".mat" to name and try again.
+	(get_file_format): Delete check for file existence.
+
+2004-11-30  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (oct-gperf.h): Use -L C++ instead of -L ANSI_C.
+	Use -Z octave_kw_hash option, delete -H and -N options.
+	* lex.l (is_keyword_token): Use octave_kw_hash::in_word_set
+	instead of octave_kw_lookup.
+	(is_keyword): Likewise.
+
+2004-11-22  John W. Eaton  <jwe@octave.org>
+
+	* pt-arg-list.cc (tree_argument_list::convert_to_const_vector):
+	Check to see whether object is a function or function handle
+	instead of constant.
+
+2004-11-19  John W. Eaton  <jwe@octave.org>
+
+	* ov-str-mat.cc (octave_char_matrix_str::do_index_op):
+	Skip indexing operation if indices are invalid.
+
+	* pr-output.cc (set_range_format, set_complex_matrix_format,
+	set_complex_format, set_real_matrix_format, set_real_format):
+	Also specify std::ios::fixed for bank format.
+
+2004-11-17  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.63.
+	(OCTAVE_API_VERSION): Now api-v12.
+
+2004-11-17  David Bateman  <dbateman@free.fr>
+
+	* pt-arg-list.cc (F__end__): Ask dv for the number of elements
+	instead indexed_object.
+
+2004-11-16  David Bateman  <dbateman@free.fr>
+
+	* ov.h (octave_value::numel): Now virtual.  Call rep->numel ().
+	* ov.cc (octave_value::numel): Delete.
+	* ov-base.h (octave_base_value::numel): New function.
+
+2004-11-12  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.62.
+
+2004-11-09  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-int-concat.cc: New file for mixed integer/other
+	concatentation operators.
+	* Makefile.in (INTTYPE_OP_XSRC): Add it to the list.
+
+	* ops.h (DEFNDCATOP_FN2): New macro.
+
+	* OPERATORS/op-int.h (OCTAVE_CONCAT_FN2,
+	OCTAVE_INSTALL_CONCAT_FN2, OCTAVE_DOUBLE_INT_CONCAT_FN,
+	OCTAVE_INSTALL_DOUBLE_INT_CONCAT_FN, OCTAVE_INT_DOUBLE_CONCAT_FN,
+	OCTAVE_INSTALL_INT_DOUBLE_CONCAT_FN): New macros.
+
+2004-11-09  David Bateman  <dbateman@free.fr>
+
+	* Cell.cc (concat): Delete.
+	(Cell::concat): New method.
+	* Cell.h: Provide decls.
+
+	* oct-map.cc (concat): Delete
+	(Octave_map::concat): New method.
+	* oct-map.h: Provide decls.
+
+	* ov.h (typedef octave_value (*cat_op_fcn) (octave_value&,
+	const octave_value&, const Array<int>&): Change definition of
+	cat_op_fcn so first argument is not constant.
+
+	* ops.h (CATOPDECL): First arg is no longer constant.
+	(DEFCATOP_FN, DEFNDCATOP_FN): Change to use new concat methods.
+
+	* OPERATORS/op-chm.cc, OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc,
+	OPERATORS/op-str-str.cc (DEFCATOP): Change explicit concat functions
+	to use new concatenation methods.
+
+2004-11-05  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.61.
+
+	* DLD-FUNCTIONS/det.cc (det): Always compute rcond so we can
+	detect numerically singular matrices.
+
+2004-11-04  John W. Eaton  <jwe@octave.org>
+
+	* pt-colon.cc (tree_colon_expression::line,
+	tree_colon_expression::column): New functions.
+	* pt-colon.h: Provide decls.
+
+	* oct-stream.cc (octave_stream::seek (long, int)): Return error
+	(but leave file position unchanged) for attempt to seek beyond end
+	of file.
+
+	* DLD-FUNCTIONS/inv.cc (Finv): Check rcond value returned from
+	LAPACK routines, and be careful to avoid optimizing away the
+	1+rcond == 1.0 check.
+	* DLD-FUNCTIONS/det.cc (Fdet): Likewise.
+
+2004-11-03  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (Fsize): Return 1 if requested dimension is larger than
+	the number of dimensions of the given object.
+
+2004-11-01  Claude Lacoursiere  <claude@hpc2n.umu.se>a
+
+	* ls-hdf5.cc (read_hdf5_data): Expect num_obj to be in distinct group.
+	* ov-cell.cc (octave_cell::load_hdf5): Likewise.
+	* ov-list.cc (octave_list::load_hdf5): Likewise.
+	* ov-struct.cc (octave_struct::load_hdf5): Likewise.
+
+2004-11-01  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/filter.cc (filter (MArray<T>&, MArray<T>&,
+	MArrayN<T>&, MArrayN<T>&, int)): The variable si is now at least 2-D.
+	(Ffilter): Force si to be 2-D, while allowing arbitrary vector
+	orientation.
+
+2004-11-01  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (INSTANTIATE_EYE): New macro.  Use it to instantiate
+	identity matrix functions for various matrix types.
+
+	* variables.cc (do_who): Fix typo in for loop.
+
+2004-10-28  John W. Eaton  <jwe@octave.org>
+
+	* ls-mat5.cc (save_mat5_binary_element): Save structure elements
+	in correct order.
+
+2004-10-26  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn.h (octave_function::octave_va_arg): No longer const.
+
+2004-10-22  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/filter.cc: Remove some unnecessary parens.
+
+2004-10-22  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/filter.cc (filter (MArray<T>&, MArray<T>&,
+	MArrayN<T>&, MArrayN<T>&, int)): If value to filter is
+	dimensionality 2 it might still be a vector, use special case.
+
+2004-10-21  John W. Eaton  <jwe@octave.org>
+
+	* ov-base.cc (INT_CONV_METHOD): Apply saturation semantics here too.
+
+2004-10-19  John W. Eaton  <jwe@octave.org>
+
+	* ov-range.h (octave_range::write): New function.
+
+2004-10-18  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (symbol_record::dimensions_string_req_first_space,
+	symbol_record::make_dimensions_string): Use dims() for all objects.
+
+2004-10-18  Oyvind Kristiansen  <oyvinkri@stud.ntnu.no>
+
+	* symtab.cc (symbol_table::parse_whos_line_format): Handle
+	size-of-parameter and center-specific format specifiers.
+
+2004-10-18  John W. Eaton  <jwe@octave.org>
+
+	* pt-plot.cc (handle_plot_data): If plotting data from file,
+	always use "using" clause.
+
+2004-10-12  David Bateman  <dbateman@free.fr>
+
+	* pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element,
+	tm_const::init): Dimensionality of matrices not necessarily the
+	same.  Check before comparing.
+
+2004-10-06  John W. Eaton  <jwe@octave.org>
+
+	* pt-fcn-handle.h (tree_fcn_handle::name): New function.
+
+2004-10-01  John W. Eaton  <jwe@octave.org>
+
+	* ov-range.h (octave_range::valid_as_scalar_index): Ensure int value.
+	(octave_range::valid_as_zero_index): Likewise.
+
+	* ov-scalar.h (octave_scalar::valid_as_scalar_index): Ensure int value.
+	(octave_scalar::valid_as_zero_index): Likewise.
+
+2004-09-24  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.60.
+	(OCTAVE_API_VERSION): Now api-v11.
+
+	* OPERATORS/op-int.h (OCTAVE_MM_INT_OPS): Include missing matrix
+	by int matrix ops.
+	(OCTAVE_INSTALL_MM_INT_OPS): Install them.
+
+	* OPERATORS/op-i64-i64.cc: Define and install missing int64 by
+	matrix and scalar ops.
+
+2004-09-24  David Bateman  <dbateman@free.fr>
+
+	* ov-fcn-inline (Finline): Attempt better auto-detection of
+	symbols that should be recognized as arguments.
+
+2004-09-24  John W. Eaton  <jwe@octave.org>
+
+	* ov-str-mat.cc (default_numeric_conversion_function): Return
+	scalar object if numel == 1.
+
+2004-09-23  John W. Eaton  <jwe@octave.org>
+
+	* ops.h	(DEFSTRDBLCONVFN): New macro.
+	* OPERATORS/op-double-conv.cc: Use it to define new conversion op.
+	Define new range to double matrix conversion.
+	(install_int_conv_ops): Install new ops.
+
+	* ops.h	(DEFSTRINTCONVFN): New macro.
+	* OPERATORS/op-int-conv.cc: Use it to define new conversion ops.
+	(install_int_conv_ops): Install them.
+
+	* (OCTAVE_SS_INT_OPS2, OCTAVE_SM_INT_OPS2, OCTAVE_MM_INT_OPS2,
+	OCTAVE_INSTALL_SS_INT_OPS2, OCTAVE_INSTALL_SM_INT_OPS2,
+	OCTAVE_INSTALL_MS_INT_OPS2, OCTAVE_INSTALL_MM_INT_OPS2):
+	Delete unused macros.
+
+	* OPERATORS/op-int.h (OCTAVE_SS_INT_BOOL_OPS): New args Z1 and Z2.
+	(OCTAVE_SS_INT_OPS): Pass appropriately typed zero values to
+	OCTAVE_SS_INT_BOOL_OPS.
+	* OPERATORS/op-i64-i64.cc, OPERATORS/op-ui64-ui64.cc: Likewise.
+
+	* pr-output.cc (pr_plus_format): Now template.
+	Specialize for Complex.
+	(octave_print_internal): Lookup print_conv_type using
+	octave_int<T>, not just T.
+
+	* ov-struct.cc (octave_struct::subsref): Pass skip to next_subsref.
+
+	* oct-stream.cc	(do_read): Hitting EOF should not be an error.
+
+2004-09-22  John W. Eaton  <jwe@octave.org>
+
+	* pt-plot.cc (send_to_plot_stream): Skip automatic replot if in
+	multiplot mode.
+
+	* variables.cc (get_global_value): New arg, silent.
+	* variables.h (get_global_value): Default value for silent arg is
+	false.
+
+2004-09-22  David Bateman  <dbateman@free.fr>
+
+	* ov-fcn-inline.cc (Finline): When called with a single arg, derive
+	argument of inline function in a compatible manner.
+
+2004-09-22  Federico Zenith  <zenith@chemeng.ntnu.no>
+
+	* DLD-FUNCTIONS/qz.cc (Fqz): New @tex section(s) in doc string for
+	better formating of printed documentation.  Use @var in doc string.
+
+	* DLD-FUNCTIONS/time.cc (Fstrftime): Fix typo in doc string.
+	* error.cc (Flasterr, Flastwarn): Likewise.
+	* mappers.cc (Farg, Fasinh, Fatanh, Ffinite, Fsin, Fsinh, Ftan):
+	Likewise.
+	* file-io.cc (Fmktemp): Likewise.
+	* pt-plot.cc (symbols_of_pt_plot): Fix typos in doc string for
+	gnuplot_has_frames.
+
+	* input.cc (symbols_of_input): Replace --echo-input with new
+	--echo-commands in PS4 doc string.
+
+	* pt-assign.cc (symbols_of_pt_assign): Mark print_rhs_assign_val
+	as built-in in doc string.
+
+	* symtab.cc (symbols_of_symtab): Mark variables_can_hide_functions
+	as built-in in doc string.
+
+2004-09-21  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.59.
+
+	* oct-fstrm.h (octave_fstream::octave_fstream,
+	octave_fstream::create): Set default float format to actual native
+	format, not flt_fmt_native.
+	* oct-iostrm.h (octave_base_iostream::octave_base_iostream,
+	octave_istream::octave_istream, octave_ostream::octave_ostream):
+	Likewise.
+	* oct-prcstrm.h (octave_iprocstream::octave_iprocstream,
+	octave_oprocstream::octave_oprocstream,
+	octave_iprocstream::create, octave_oprocstream::create):
+	Likewise.
+	* oct-stdstrm.h (octave_stdiostream::octave_stdiostream,
+	octave_stdiostream::create):
+	Likewise.
+	* oct-stream.h (octave_base_stream::octave_base_stream):
+	Likewise.
+	* oct-strstrm.h (octave_base_strstream::octave_base_strstream,
+	octave_istrstream::octave_istrstream, octave_istrstream::create):
+	Likewise.
+
+2004-09-21  David Bateman  <dbateman@free.fr>
+
+	* data.cc (Freshape): Allow a single empty dimension argument
+	to flag unknown dimension and calculate its value from the
+	other dimensions.
+
+2004-09-21  John W. Eaton  <jwe@octave.org>
+
+	* symtab.h (symbol_record::~symbol_record): Delete definition if
+	count goes to zero.
+	* symtab.cc (symbol_table::~symbol_table): Move here from symtab.h.
+	Call delete on each symbol record in the table instead of just
+	clearing them.
+
+2004-09-17 David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/sort.cc (ascending_compare, descending_compare):
+	Now templates (avoids g++ 3.4.x compile problems).
+	Fix other uses of these functions to also treat them as templates.
+	(mx_sort): For unsigned EIGHT_BYTE_INT versions correct the test
+	for the position of NaN.  Problems when mode was DESCENDING or
+	UNDEFINED.  Use static_cast<unsigned int> (dim) rather than
+	(unsigned int) dim.
+	(IFloatFlip): Now static.
+
+2004-09-17  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/det.cc (Fdet): Only compute estimate of the
+	condition number if requested as output.
+
+	* DLD-FUNCTIONS/schur.cc (Fschur): Only compute unitary matrix if
+	requested as output.
+
+2004-09-17  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline):
+	Call eval_string instead of feval ("eval", ...).
+	Construct anonymous function handle to avoid going through the
+	symbol table.
+
+	* ov-fcn-handle.h (octave_fcn_handle::fcn_val): New function.
+	(octave_fcn_handle::octave_fcn_handle (const std:string&)):
+	New constructor.
+
+2004-09-16  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (frob_function): Clear id_name from curr_sym_tab, not
+	top_level_sym_tab.
+
+	* symtab.cc (maybe_list): Count sizes using size_t, not int.
+
+	* variables.cc (symbol_out_of_date): Always look in LOADPATH.
+
+2004-09-15  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-int-conv.cc: Define and install bool to int
+	conversions.
+	* OPERATORS/op-double-conv.cc: Define and install bool to double
+	conversions.
+
+	* ov.cc (octave_value::assign): Handle subsref for containers.
+	* oct-lvalue.cc (octave_lvale::value): Likewise.
+
+	* DLD-FUNCTIONS/sort.cc (mx_sort): Return octave_value, not
+	octave_value list.
+
+2004-09-15  David Bateman  <dbateman@free.fr>
+
+	* ov.cc (octave_value::octave_value (const ArrayN<char>&, bool)):
+	New Constructor .
+	* ov.h: Provide decl.
+
+	* DLD-FUNCTIONS/sort.cc (sortmode): New enum to define sort direction.
+	(template <class T> class vec_index): New class to contain values and
+	index for indexed sorts, replacing all previous struct versions.
+	Instantiate for double, Complex, char and octave_value.
+	(template <class T> static octave_value_list mx_sort (ArrayN<T> &, int,
+	sortmode)): New templated version of mx_sort replacing all previous
+	versions, but specific to non indexed sorts. Instantiate for char
+	and double if not IEEE754.
+	(template <> static octave_value_list mx_sort (ArrayN<double> &,
+	int, sortmode)): Specialized function of mx_sort of IEEE754.
+	(template <class T> static octave_value_list mx_sort_indexed
+	(ArrayN<T> &, int, sortmode)): New templated version of mx_sort
+	for indexed sorts. Instantiate for double, Complex, char and
+	octave_value.
+	(ascending_compare, descending_compare): Comparison functions
+	for double, char, vec_index<double> *, vec_index<Complex> *,
+	vec_index<char> *, vec_index<octave_value>. Fix Complex comparison
+	operator to sort by arg of values if absolute values are equal.
+	(Fsort): Update docs for new mode argument and for sorting of
+	strings and cell arrays of strings. Implement mode argument to
+	define ascending and descending sorts. Include sorting of cell
+	arrays of strings. Adapt for new templated versions of the mx_sort
+	function.
+
+2004-09-15  John W. Eaton  <jwe@octave.org>
+
+	* ov-cell.cc (octave_cell::subsref): Pass nargout to next_subsref.
+	* ov-builtin.cc (octave_builtin::subsref): Likewise.
+	* ov-fcn-handle.cc (octave_fcn_handle::subsref): Likewise.
+	* ov-list.cc (octave_list::subsref): Likewise.
+	* ov-mapper.cc (octave_mapper::subsref): Likewise.
+	* ov-struct.cc (octave_struct::subsref): Likewise.
+	* ov-usr-fcn.cc (octave_user_function::subsref): Likewise.
+
+	* ov-struct.cc, ov-struct.h (octave_struct::subsref (const
+	std::string&, const std::list<octave_value_list>&, int)):
+	Define this version.
+	(octave_struct::subsref (const std::string&, const
+	std::list<octave_value_list>&)): Panic in this version.
+	* ov-list.cc, ov-list.h: Likewise.
+	* ov-cell.cc, ov-cell.h: Likewise.
+
+	* ov.cc (octave_value::subsref (int, const std::string&, const
+	std::list<octave_value_list>&, size_t)): New function.
+	* ov.h: Provide decl.
+
+	* ov-cell.h (octave_cell::is_constant): Return false.
+	* ov-struct.h (octave_struct::is_constant): Delete.
+	* ov-list.h (octave_list::is_constant): Delete.
+
+2004-09-14  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/sort.cc (mx_sort (charNDArray&, bool, int)):
+	New function to sort character strings.
+	(Fsort): Handle character strings.
+
+2004-09-11  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn-handle.cc (octave_fcn_handle::save_ascii):
+	Write directly to OS.
+	(octave_fcn_handle::load_ascii,	octave_fcn_handle::load_binary,
+	octave_fcn_handle::load_hdf5): Check parse status after calling
+	eval_string.  Don't dereference fh unless it is valid.
+
+2004-09-11  David Bateman  <dbateman@free.fr>
+
+	* ov-fcn-handle.cc (octave_fcn_handle::save_ascii,
+	octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary,
+	octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5,
+	octave_fcn_handle::load_hdf5): New functions.
+	* ov-fcn-handle.h: Provide decls.
+
+	* ov-fcn-inline.cc (octave_fcn_inline::load_ascii):
+	Allow spaces in saved function.
+ 	(octave_fcn_inline::save_hdf5): Properly close all HDF5 objects.
+
+	* ls-oct-ascii.cc (read_ascii_data): Check return type of
+	<octave_value>.load_ascii for errors reading the variables
+
+	* variables.cc (lookup_function_handle, clear_variable,
+	clear_symbol): New functions.
+	* variables.h: Provide decls.
+
+2004-09-10  John W. Eaton  <jwe@octave.org>
+
+	* ov-builtin.cc (octave_builtin::do_multi_index_op): Use unwind
+	protect frame instead of a single unwind_protect::run.
+	* ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise.
+
+	* data.cc (fill_matrix, identity_matrix):
+	Also allow logical data type.
+
+2004-09-10  David Bateman  <dbateman@free.fr>
+
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::double_value,
+	OCTAVE_VALUE_INT_MATRIX_T::scalar_value,
+	OCTAVE_VALUE_INT_SCALAR_T::double_value,
+	OCTAVE_VALUE_INT_SCALAR_T::scalar_value): New functions.
+
+2004-09-10  John W. Eaton  <jwe@octave.org>
+
+	* ov-base-scalar.h (octave_base_scalar::clone,
+	octave_base_scalar::empty_clone): New functions.
+
+2004-09-09  John W. Eaton  <jwe@octave.org>
+
+	* pt-pr-code.h (tree_print_code::newline): New optional arg, alt_nl.
+	* pt-pr-code.cc (tree_print_code::newline): Use it if not printing
+	newlines.
+	(tree_print_code::visit_statement): If we printed ";", call
+	newline with optional arg set to "".
+	(tree_print_code::printing_newlines): New data member.
+	(tree_print_code::tree_print_code): Initialize it.
+	(tree_print_code::suspend_newline, tree_print_code::resume_newline):
+	New functions.
+	(tree_print_code::newline, tree_print_code::indent): Use it
+
+	* ov-fcn-handle.cc (octave_fcn_handle::print_raw):
+	Print code for anonymous function handles.
+
+2004-09-08  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn-handle.cc (Ffunc2str, Ffunctions): Don't call substr(1)
+	on fh_nm, since we no longer need to skip "@" in the name.
+
+	* error.cc (pr_where): Do a better job of printing location info.
+
+	* input.cc (get_user_input): Print location info before the debug
+	prompt.  From Keith Goodman <kwgoodman@gmail.com>.
+
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Save and set curr_caller_function and curr_caller_statement here.
+	* ov-mapper.cc (octave_mapper::do_multi_index_op): Likewise.
+	* ov-builtin.cc (octave_builtin::do_multi_index_op): Likewise.
+
+	* pt-stmt.cc (curr_caller_statement): New variable.
+	* pt-stmt.h: Provide decl.
+
+	* toplev.cc (curr_caller_function): New variable.
+	* toplev.h: Provide decl.
+
+	* pt-arg-list.cc (convert_to_const_vector):
+	Unwind-protect index_position before modifying it.
+	Don't protect and set index_position unless stash_object is true.
+
+2004-09-08  David Bateman  <dbateman@free.fr>
+
+	* ov-fcn-inline.cc (octave_fcn_inline::save_ascii,
+	octave_fcn_inline::load_ascii, octave_fcn_inline::save_binary,
+	octave_fcn_inline::load_binary, octave_fcn_inline::save_hdf5,
+	octave_fcn_inline::load_hdf5): New functions.
+	* ov-fcn-inline.h: Provide decls.
+
+2004-09-08  John W. Eaton  <jwe@octave.org>
+
+	* ov.h: Add octave_array_type_traits specialization for
+	boolNDArray element type.
+
+2004-09-07  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc: Instantiate octave_stream::write for Array<bool>.
+	(octave_stream::read): Expand read_fptr_table to include dt_logical.
+
+	* ov-bool.h (octave_bool::write): New function.
+	* ov-bool-mat.h (octave_bool_matrix::write): New function.
+
+	* ov-fcn-inline.h (octave_fcn_inline::octave_fcn_inline): New copy
+	constructor.
+	(octave_fcn_inline::clone, octave_fcn_inline::empty_clone):
+	New functions.
+
+	* ov-fcn-handle.h (octave_fcn_handle::octave_fcn_handle): New copy
+	constructor.
+	(octave_fcn_handle::clone, octave_fcn_handle::empty_clone):
+	New functions.
+
+2004-09-06  John W. Eaton  <jwe@octave.org>
+
+	* ov.cc (install_types): Call octave_fcn_inline::register_type.
+
+	* version.h (OCTAVE_API_VERSION): Now api-v10.
+
+	* OPERATORS/op-b-b.cc, OPERATORS/op-bm-bm.cc: Define and install
+	unary plus and unary minus operators.
+
+	* OPERATORS/op-int.h, OPERATORS/op-cm-cm.cc,
+	OPERATORS/op-cs-cs.cc, OPERATORS/op-m-m.cc, OPERATORS/op-range.cc:
+	Define and install unary plus operator.
+
+	* ov.cc (unary_op_as_string): Handle op_uplus too.
+
+	* parse.y (prefix_expr): Build unary plus op here instead of
+	converting to no-op.
+	(make_prefix_op): Accept op_uplus.
+
+2004-09-03  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-b-bm.cc (DEFCONV): Define bool scalar to bool
+	matrix conversion.
+	(install_b_bm_ops): Install it.
+	Install conversion for assignment of bool matrix to indexed bool.
+	* OPERATORS/op-b-b.cc (install_b_b_ops): Install conversion for
+	assignment of bool to indexed bool.
+
+2004-09-03  David Bateman  <dbateman@free.fr>
+
+	* OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc,
+	OPERATORS/op-bm-bm.cc: Modify concatenation between boolean types
+	so that it returns a boolean.
+
+	* ov-bool.cc (octave_bool::do_index_op): Return boolean matrix.
+
+	* ov-intx.h (do_index_op (const octave_value_list&, int)):
+	New function for indexed subsref of int types.
+
+2004-09-03  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-int.h (OCTAVE_SM_INT_OPS): Define int by double
+	mixed comparison and bool ops.
+	(OCTAVE_INSTALL_SM_INT_OPS): Install them.
+	(OCTAVE_MS_INT_OPS): Define double by int mixed comparison and
+	bool ops.
+	(OCTAVE_INSTALL_MS_INT_OPS): Install them
+
+	* OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc,
+	OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc,
+	OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc,
+	OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc:
+	Define and install various mixed-type operators.
+
+	* OPERATORS/op-int.h (OCTAVE_MM_INT_OPS): Also define mixed int
+	and double matrix comparison and bool ops.
+	(OCTAVE_INSTALL_MM_INT_OPS): Install them.
+	(OCTAVE_SS_INT_BOOL_OPS, OCTAVE_SM_INT_BOOL_OPS,
+	OCTAVE_MS_INT_BOOL_OPS, OCTAVE_MM_INT_BOOL_OPS):
+	Define logical AND and OR ops.
+	(OCTAVE_INSTALL_SS_INT_BOOL_OPS, OCTAVE_INSTALL_SM_INT_BOOL_OPS,
+	OCTAVE_INSTALL_MS_INT_BOOL_OPS, OCTAVE_INSTALL_MM_INT_BOOL_OPS):
+	Install them.
+	(OCTAVE_MM_INT_CMP_OPS, OCTAVE_MM_INT_BOOL_OPS): Accept prefix arg.
+	(OCTAVE_MM_CONV): New macro.
+	(OCTAVE_MM_INT_OPS): Use it to define complex matrix conversion.
+	(OCTAVE_MIXED_INT_CMP_OPS, OCTAVE_MIXED_INT_BOOL_OPS): New macros.
+
+	* OPERATORS/op-int.h (OCTAVE_MS_INT_OPS): Don't define indexed int
+	matrix = complex scalar assignment ops.
+	(OCTAVE_MS_INT_OPS): Don't define indexed int matrix = complex
+	matrix assignment ops.
+	(OCTAVE_SM_CONV): New macro.
+	(OCTAVE_SM_INT_OPS): Use it to define int scalar -> (int|complex)
+	matrix widening ops.
+	(OCTAVE_RE_INT_ASSIGN_OPS, OCTAVE_CX_INT_ASSIGN_OPS): New macros.
+	(OCTAVE_INT_OPS): Use them here.
+	(OCTAVE_INSTALL_SS_INT_OPS): Install indexed int scalar = scalar
+	and indexed int scalar = complex scalar assignment conversions.
+	(OCTAVE_INSTALL_SM_INT_OPS): Install int scalar -> (int|complex)
+	matrix widening ops.  Install indexed int scalar =
+	(int|real|complex) matrix assignment conversions.
+	(OCTAVE_INSTALL_MS_INT_OPS): Install indexed int matrix = complex
+	scalar assignment conversion.
+	(OCTAVE_INSTALL_MM_INT_OPS): Install int matrix -> complex matrix
+	widening op.  Install indexed int matrix = complex matrix
+	assignment conversion.
+	(OCTAVE_INSTALL_RE_INT_ASSIGN_OPS, OCTAVE_INSTALL_CX_INT_ASSIGN_OPS):
+	New macros.
+	(OCTAVE_INSTALL_INT_OPS): Use them.
+
+	* op-int.h: (OCTAVE_INSTALL_SM_INT_ASSIGNCONV): New macro.
+	* OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc,
+	OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc,
+	OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc,
+	OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc:
+	Use it to define mixed size integer scalar/integer matrix
+	assignment conversions.
+
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::complex_array_value,
+	OCTAVE_VALUE_INT_SCALAR_T::complex_array_vale):
+	New functions.
+
+2004-09-02  John W. Eaton  <jwe@octave.org>
+
+	* DLD-FUNCTIONS/quad.cc (Fquad): Pass "__quad_fcn_" instead of
+	"__quad_fcn__" to unique_symbol_name.
+
+	* ov-fcn-inline.cc (octave_fcn_inline): Pass "__inline_" instead
+	of "__inline__" to unique_symbol_name.
+
+	* variables.cc (unique_symbol_name): Make better random symbol name.
+
+2004-09-01  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.58.
+
+	* Makefile.in (OP_INCLUDES): New variable.
+	Include OPERATORS/op-int.h here.
+	* Makefile.in (dist): Also link $(OP_INCLUDES).
+
+	* Makefile.in (DISTFILES): Include $(EXTRAS) in the list.
+
+2004-09-01  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTION/quad.cc: Allow function handle and inline functions.
+	Use a unique function name and delete it on exit.
+
+	* ov.h (is_inline_function): New virtual function.
+	* ov-fcn-inline.h (is_inline_function): New function.
+	* ov-base.h (is_inline_function): New function.
+
+	* ov-fcn-inline.cc (octave_fcn_handle::octave_fcn_handle):
+	Use unique_symbol_name and clear_function instead of manipulating
+	symbol table directly.
+
+	* variables.cc (unique_symbol_name): New function.
+	(clear_function): New function.
+	* variables.h: Provide decls.
+
+	* dynamic-ld.cc (do_clear_function): Rename from clear_function.
+
+2004-09-01  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc,
+	OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc,
+	OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc,
+	OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc:
+	Define and install mixed assignment ops.
+	* op-int.h: Define mixed integer/double ops.
+	Define simple division ops.
+
+	* ov-complex.h (octave_complex_scalar): New typedef to simplify
+	various macros where naming consistency matters.
+
+2004-08-31  David Bateman  <dbateman@free.fr>
+
+	* OPERATORS/op-int.h (ss_pow, ms_el_pow, mm_el_pow): New power
+	functions.
+	(sm_el_pow): Return correct type.
+	(OCTAVE_SS_POW_OPS, OCTAVE_SM_POW_OPS, OCTAVE_MS_POW_OPS,
+	OCTAVE_MM_POW_OPS): New macros to define the power operator over
+	integer types.
+	(OCTAVE_SS_INT_OPS, OCTAVE_SM_INT_OPS, OCTAVE_MS_INT_OPS,
+	OCTAVE_MM_INT_OPS): Use the new macros for the power operators.
+	(OCTAVE_INSTALL_SS_INT_OPS, OCTAVE_INSTALL_MS_INT_OPS,
+	OCTAVE_INSTALL_MM_INT_OPS): Install new power functions.
+
+	* OPERATORS/op-int-conv.cc (INT_CONV_FUNCTIONS): Correct return
+	types for unsigned integer scalars and signed integer matrices.
+
+	* ov-type-conv.h (OCTAVE_TYPE_CONV_BODY3): Conversion betwen same
+	types returns the original value.
+
+	* bitfcns.cc (BITOP): Fix for mixed scalar/matrix ops. Allow
+	octave_range as an argument, by using class_name rather than
+	type_id to test.
+
+2004-08-31  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.cc (pr_int): Also handle bank_format.
+	(octave_print_internal (std::ostream& os, const intNDArray<T>&,
+	bool, int)): Likewise.
+
+2004-08-31  David Bateman  <dbateman@free.fr>
+
+	* pr-output.cc (pr_int(std::ostream, const T&, int)):
+	New template function to print formatted integer types.
+	Instantiate it for all of the integer types.
+	(octave_print_internal (std::ostream, const intNDArray<T>&, bool,
+	int)): Use pr_int.  Align output up in columns, and check for
+	free_format or plus_format.
+	(octave_print_internal (std::ostream, const octave_int<T>&, bool)):
+	Use pr_int.  Check for free_format and plus_format.
+
+	* ls-hdf5.cc (hdf5_read_next_data): When importing hdf5 files,
+	allow structures and lists (for backward compatibility).  Also
+	allow importation of integer types into octave int and uint types.
+
+2004-08-31  John W. Eaton  <jwe@octave.org>
+
+	* data.cc (fill_matrix, identity_matrix): Convert class name to
+	oct_data_conv::data_type and switch on that.
+	(identity_matrix (int, int)): New template.
+	(identity_matrix (int, int, const std::string&)): Use it.
+
+	* ov.h (octave_type_traits, octave_array_type_traits): Move here.
+	* oct-stream.cc: From here.
+
+2004-08-31  David Bateman  <dbateman@free.fr>
+
+	* data.cc (Fzeros, Fones, Feye): Update help text for optional
+	class argument.
+	(static octave_value identity_matrix (int, int, const std::string&)):
+	New function to create identity matrices with an arbitrary type.
+	(Feye): Call new version of identity matrix function, even for scalars.
+	(static octave_value fill_matrix (const octave_value_list&, double,
+	const char *)): Update to allow arbitrary classes of matrices to be
+	created.
+
+2004-08-31  John W. Eaton  <jwe@octave.org>
+
+	* ls-mat5.cc (read_int): New function.
+
+	* oct-stream.cc (octave_base_stream::do_read,
+	octave_base_stream::read, octave_base_stream::write): Delete.
+	* oct-stream.h: Delete decls.
+
+	* oct-stream.cc (octave_stream::read): Handle block_size and
+	separate input/output types.
+	(octave_stream::write): Handle block_size and various input types.
+	(octave_type_traits, octave_array_type_traits):	New traits classes.
+	(do_read): New templates to read data and perform type conversion.
+	(octave_stream::write (const Array<T>&, int,
+	oct_data_conv::data_type, int, oct_mach_info::float_format),
+	do_write, write_int):
+	New templates to write ints and perform type conversion.
+	Instantiate for various Octave types.
+
+	* ov.cc (octave_value::write): New function.
+	* ov.h: Provide decl.
+	* ov-base.cc (octave_base_value::write): New function.
+	* ov-base.h: Provide decl.
+	* ov-complex.h (octave_complex::write): New function.
+	* ov-cx-mat.h (octave_complex_matrix::write): New function.
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::write): New function.
+	(OCTAVE_VALUE_INT_SCALAR_T::write): New function.
+	* ov-re-mat.h (octave_matrix::write): New function.
+	* ov-scalar.h (octave_scalar::write): New function.
+	* ov-str-mat.h (octave_char_matrix_str::write): New function.
+
+	* file-io.cc (Ffread): Handle block size, to/from format in
+	precision argument.
+	(Ffwrite): Handle block size in precision argument.
+
+2004-08-25  David Bateman  <dbateman@free.fr>
+
+	* ov-cell.cc (octave_cell::subsasgn): Delete elements of cell array
+	when type is "(" and rhs is empty.
+
+2004-08-09  John W. Eaton  <jwe@octave.org>
+
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::index_vector,
+	OCTAVE_VALUE_INT_SCALAR_T::index_vector): New functions.
+
+2004-08-06  David Bateman  <dbateman@free.fr>
+
+	* OPERATORS/op-struct.cc: New file.
+	* ov-struct.h (octave_struct::resize (const dim_vector&)):
+	New function.
+	* oct-map.h (Octave_map::resize (const dim_vector&)): New function.
+	* ov-map.cc (Octave_map::reshape):
+	Correct return for same sized reshape.
+	(Octave_map::resize (const dim_vector&)): New function.
+	(concat (const Octave_map&, const Octave_map&, const Array<int>&)):
+	Complete concatenation function.
+	* Makefile.in (OP_XSRC): Include op-struct.cc in the list.
+
+2004-08-05  John W. Eaton  <jwe@octave.org>
+
+	* pt-stmt.h (tree_statement::set_command,
+	(tree_statement::set_expression): New functions.
+
+	* parse.y (param_list_beg): Handle pushing new symbol table
+	context for anonymous function handle parameter lists here.
+	(anon_fcn_handle): New non-terminal.
+	(expression): Include anon_fcn_handle here.
+	(make_anon_fcn_handle): New static function.
+
+2004-08-05  David Bateman  <dbateman@free.fr>
+
+	* ov.cc (octave_value::fcn_inline_value): New virtual function.
+	* ov.h (octave_value::fcn_inline_value): Provide decl.
+	* ov-base.cc (octave_base_value::fcn_inline_value): New function
+	* ov-base.h (octave_base_value::fcn_inline_value): Provide decl.
+	* ov-fcn-handle.cc (octave_fcn_handle::octave_fcn_handle
+	(const std::string&, const string_vector&, const std::string&),
+	octave_fcn_handle::convert_to_str_internal, Finline, Fargnames,
+	Fformula, Fvectorize): Delete.
+	(octave_fcn_handle::print_raw): Remove inline case.
+	* ov-fcn-handle.h (octave_fcn_handle::fcn_type,
+	octave_fcn_handle::octave_fcn_handle (const std::string&, const
+	string_vector&, const std::string&),
+	octave_fcn_handle::inline_fcn_name,
+	octave_fcn_handle::inline_fcn_text,
+	octave_fcn_handle::inline_fcn_arg_names,
+	octave_fcn_handle::is_inline,
+	octave_fcn_handle::convert_to_str_internal,
+	octave_fcn_handle::typ, octave_fcn_handle::iftext,
+	octave_fcn_handle::ifargs): Delete constructors,
+	functions, and data members (moved to ov-fcn-inline.h).
+	* Makefile.in: Include ov-fcn-inline.h and ov-fcn-inline.cc where
+	appropriate.
+	* ov-fcn-inline.h, ov-fcn-inline.cc: New class.
+
+2004-08-05  John W. Eaton  <jwe@octave.org>
+
+	* ov-base-int.cc (octave_base_int_matrix<T>::save_ascii,
+	octave_base_int_matrix<T>::load_ascii,
+	octave_base_int_matrix<T>::save_binary,
+	octave_base_int_matrix<T>::load_binary,
+	octave_base_int_matrix<T>::save_hdf5,
+	octave_base_int_matrix<T>::load_hdf5,
+	octave_base_int_matrix<T>::try_narrowing_conversion,
+	octave_base_int_scalar<T>::print_raw,
+	octave_base_int_scalar<T>::save_ascii,
+	octave_base_int_scalar<T>::load_ascii,
+	octave_base_int_scalar<T>::save_binary,
+	octave_base_int_scalar<T>::load_binary,
+	octave_base_int_scalar<T>::save_hdf5,
+	octave_base_int_scalar<T>::load_hdf5):
+	Sprinkle with this-> as needed.
+
+	* Makefile.in (EXTRAS): New macro.  Move ov-base-int.cc here from
+	OV_INTTYPE_SRC.
+	(INCLUDES_FOR_INSTALL): New macro.
+	(install-inc, uninstall): Use it instead of INCLUDES.
+
+	* variables.h (symbol_exist): Default for type is now "any".
+
+2004-08-05  David Bateman  <dbateman@free.fr>
+
+	* ov-fcn-handle.cc (octave_fcn_handle (const std::string&,
+	const string_vector&, const std::string&)): New constructor for inline
+	function handles.
+	(octave_fcn_handle::print_raw): Allow inline functions to be printed.
+	(octave_fcn_handle::convert_to_str_internal): New function to allow
+	Fchar to work on inlined function handles.
+	(Finline, Fformula, Fargnames, Fvectorize): New functions.
+	* ov-fcn-handle.h (octave_fcn_handle (const std::string&,
+	const string_vector&, const std::string&)): Provide decl.
+	(octave_fcn_handle::convert_to_str_internal): Provide decl.
+	(fcn_type): New enum for the type of function handle.
+	(octave_fcn_handle::inline_fcn_text, octave_fcn_handle::is_inline,
+	octave_fcn_handle::inline_fcn_arg_names): New functions.
+	(octave_fcn_handle::typ, octave_fcn_handle::iftext,
+	octave_fcn_handle::ifargs): New private variables for inline functions.
+
+2004-08-04  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (fcn_handle):
+	Recognize '@' FCN_HANDLE rather than just FCN_HANDLE.
+	Decrement lexer_flags.looking_at_function_handle here.
+	* lex.h (lexical_feedback::looking_at_function_handle):
+	New data member.
+	(lexical_feedback::init): Initialize it.
+	* lex.l (handle_identifier): Only reject keywords if we are
+	looking at a function handle.
+	("@"): Recognize this separately from what follows.
+	Increment lexer_flags.looking_at_function_handle here.
+
+	* ov-fcn-handle.h (octave_fcn_handle::octave_fcn_handle
+	(octave_function*, const std::string)): Delete.
+	* ov.h, ov.cc (octave_value::octave_value (octave_function *)): Delete.
+	(octave_value::octave_value (octave_function *, const std::string)):
+	Delete.
+
+	* ov-fcn-handle.h (octave_fcn_handle::fcn): Now octave_value, not
+	pointer to octave_function.
+	(octave_fcn_handle::octave_fcn_handle (const octave_value&, const
+	std::string)): New constructor.
+	* variables.cc (lookup_function): Return octave_value, not pointer
+	to octave_function.  Change all uses.
+	(lookup_user_function): Return octave_value, not pointer
+	to octave_user_function.  Change all uses.
+
+2004-08-03  John W. Eaton  <jwe@octave.org>
+
+	* ov-usr-fcn.cc (octave_user_fcn::do_multi_index_op): Call
+	install_automatic_vars here.
+	(octave_user_fcn::octave_user_fcn): Not here.
+	(install_automatic_vars): Don't mark argn_sr, nargin_sr,
+	nargout_sr, or varargin_sr as static.
+
+	* oct-stream.cc (octave_scan): Avoid need for pushing two
+	characters back on the input stream.
+
+2004-08-02  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_scan): For %i format, recognize numbers
+	with leading 0x or 0X as hex and leading 0 as octal.
+
+	* OPERATORS/op-fcn-handle.cc: Delete.
+	* Makefile.in (OP_XSRC): Delete it from the list.
+	* pr-output.cc (octave_print_internal (std::ostream&, const
+	std::string&, bool, int): New function.
+	* ov-fcn-handle.cc (octave_value::subsref): New function.
+	* ov-fcn-handle.h (class fcn_handle_elt, class fcn_handle_array):
+	Delete.
+	(class octave_fcn_handle): Derive from octave_base_value, not
+	octave_base_matrix<fcn_handle_array>.
+
+	* ov-cx-mat.cc (try_narrowing_conversion): Also allow complex to
+	real conversion for N-d arrays.
+
+2004-07-30  John W. Eaton  <jwe@octave.org>
+
+	* lex.l (<COMMAND_START>[^#% \t\r\n\;\,\"\'][^ \t\r\n\;\,]*{S}*):
+	Also recognize \r as a word list separator.
+
+2004-07-27  John W. Eaton  <jwe@octave.org>
+
+	* bitfcns.cc (DO_BITSHIFT): Pass mask to bitshift.
+	(bitshift (double, int, EIGHT_BYTE_INT): New arg, mask.
+	(DO_UBITSHIFT, DO_SBITSHIFT): Use bitshfit, not operator >>.
+	Use nbits function from octave_int type to set bits_in_type.
+
+	* ov-struct.cc (Fisfield): Only print usage message if number of
+	arguments is incorrect.  Return false for invalid arguments.
+	From Andy Adler <adler@site.uottawa.ca>.
+
+2004-07-27  David Bateman  <dbateman@free.fr>
+
+	* Cell.cc (Cell::index): Quit early if an error occurs when
+	creating index vector object.
+
+	* ov-int8.cc, ov-int16.cc, ov-int32.cc, ov-int64.cc, ov-uint8.cc,
+	ov-uint16.cc, ov-uint32.cc, ov-uint64.cc (HDF5_SAVE_TYPE): Define
+	for HDF5 native format for the type.
+
+	* ov-base-int.h (save_ascii, save_binary, load_binary, save_hdf5):
+	Delete unused arguments.
+
+	* ov-base-int.cc (octave_base_int_matrix::save_ascii,
+	octave_base_int_matrix::save_binary,
+	octave_base_int_scalar::save_ascii,
+	octave_base_int_scalar::save_binary,
+	octave_base_int_scalar::save_hdf5): Delete unused argument.
+
+	* ov-base-int.cc (octave_base_int_matrix::save_binary,
+	octave_base_int_matrix::load_binary,
+	octave_base_int_matrix::save_hdf5,
+	octave_base_int_matrix::load_hdf5,
+	octave_base_int_scalar::save_ascii,
+	octave_base_int_scalar::load_ascii,
+	octave_base_int_scalar::save_binary,
+	octave_base_int_scalar::load_binary,
+	octave_base_int_scalar::save_hdf5,
+	octave_base_int_scalar::load_hdf5): Implement missing functions.
+
+2004-07-23  David Bateman  <dbateman@free.fr>
+
+	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::array_value,
+	OCTAVE_VALUE_INT_SCALAR_T::array_value): new methods to extract array
+	value from integer types.
+
+	* bitfcns.cc (BITOPX): New Macro renamed from BITOP.
+	(BITOP): Alter to allow different types and call BITOP appropriately.
+	(DO_SBITSHIFT, DO_UBITSHIFT): New macros for signed, unsigned
+	bitshifts.
+
+	(DO_BITSHIFT): Test for shift of more bits than in type, which is
+	undefined.  Generalize to allow double args as well.
+	(Fbitshift): Add int and double types.
+	(Fbitmax): Return 53 bit value which conforms to IEEE754 double
+	mantissa.
+	(Fintmax, Fintmin): New functions.
+	(Fbitget, Fbitset, Fbitcmp): Delete.
+
+	* OPERATORS/op-int.h: Add sm_el_pow function
+
+	* ops.h (CATOPDECL, DEFCATOPX, DEFCATOP, DEFCATOP_FB, DEFNDCATOP_FN,
+	CATOP_NONCONFORMANT, INSTALL_CATOP): New macros.
+
+	* OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc,
+	OPERATORS/op-bm-bm.cc, OPERATORS/op-cell.cc, OPERATORS/op-chm.cc,
+	OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc,
+	OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc,
+	OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, OPERATORS/op-m-cm.cc,
+	OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc,
+	OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc,
+	OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, OPERATORS/op-str-str.cc,
+	OPERATORS/op-str-m.cc, OPERATORS/op-str-s.cc (CATOPDECL, DEFCATOPX,
+	DEFCATOP, DEFCATOP_FB, DEFNDCATOP_FN, CATOP_NONCONFORMANT,
+	INSTALL_CATOP): Use them to define concatenation functions.
+
+	* OPERATORS/op-int.h (OCTAVE_CONCAT_FN, OCTAVE_INSTALL_CONCAT_FN):
+	New macros to define and install concatentaion functions for int/uint
+	types.
+
+	* TEMPLATE-INST/Array-tc.cc (INSTANTIATE_ARRAY_CAT): Delete.
+
+	* pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element):
+	Also append empty elements to the list of elements to be parsed.
+	(tree_matrix::rvalue): Use new concatenation binary operators.
+
+	* data.cc (cat_add_dims): Delete (now dim_vector::concat).
+	(do_cat): Use new concatenation binary operators.
+
+	* ov-typeinfo.cc (cat_op_fcn): Instantiate the array of cat functions.
+	(register_cat_op, do_register_cat_op, do_lookup_cat_op): New functions.
+	(cat_ops): Lookup table of binary concatentaion operators.
+
+	* ov-typeinfo.h (lookup_cat_op): New function.
+
+	* ov.cc (gripe_cat_op, gripe_cat_op_conv, do_cat_op): New functions.
+
+	* ov.h (cat_op_fcn): Definition.
+	(resize, do_cat_op): New functions.
+
+	* ov-intx.h (resize): New_function
+
+	* version.h (OCTAVE_API_VERSION): Bump version to api-v9.
+
+	* Cell.cc, Cell.h, oct-map.cc, oct-map.h (cat): Delete.
+	(concat): New function.
+
+	* Cell.cc, Cell.h (insert): New function
+
+	* ov-base.cc, ov-base.h, ov-scalar.h, ov-complex.h, ov-bool.h,
+	ov-range.h, ov-base-mat.h, (resize): New function.
+
+2004-07-23  John W. Eaton  <jwe@octave.org>
+
+	* symtab.cc (whos_parameter): Move decl here, from symtab.h.
+
+2004-07-23  Oyvind Kristiansen  <oyvinkri@stud.ntnu.no>
+
+	* symtab.cc (symbol_record::subsymbols_list): New method.
+	(symbol_record::maybe_list): Call to subsymbols_list and merge
+	result with the original list of symbols.
+
+	* symtab.cc (symbol_record::make_dimensions_string): New method.
+	(symbol_record::print_symbol_info_line): Print N-d info.  Output
+	for long format now under control of format string.
+	(symbol_table::maybe_list): Headers to whos listing updated.
+	Also print footer info.
+	(symbol_table::print_descriptor): Method printing the
+	header of whos listings.
+	(symbol_table::parse_whos_line_format): New method.
+	(whos_line_format, Vwhos_line_format): New built-in variables.
+	(symbols_of_symtab): DEFVAR them.
+	(symbol_record::nelem, symbol_record::symbol_def::nelem,
+	symbol_record::byte_size, symbol_record::symbol_def::byte_size):
+	New methods.
+	(symbol_record::dimensions_string_req_first_space): New	method.
+	(symbol_record::dimensions_string_req_total_space): New	method.
+	* symtab.h (whos_parameter): New struct.  Container for one
+	parameter in whos_line_format.
+
+2004-07-22  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* DLD-FUNCTIONS/dassl.cc (Fdassl): Fix doc string.
+	* ov-struct.cc (Fstruct): Likewise.
+	* symtab.cc (Fdebug_symtab_lookups): Likewise.
+
+2004-07-22  David Bateman  <dbateman@free.fr>
+
+	* data.cc (Fsize): Return 1 for dimensions exceeding ndim.
+
+	* ov.cc (octave_value::octave_value (const ArrayN<double>)):
+	New constructor.
+	* ov.h: Provide decl.
+	* ov-cx-mat.h (octave_complex_matrix (const ArrayN<Complex>&)):
+	New constructor.
+	* ov-re-mat.h (octave_complex_matrix (const ArrayN<double>&)):
+	New constructor.
+
+	* ov-re-mat.h (octave_matrix(const ArrayN<double>&)): New constructor
+	* pt-loop.cc (DO_ND_LOOP): New macro for use of NDArray in for loop.
+	(tree_simple_for_command::eval): Use it, and allow iteration over
+	cell arrays.
+
+2004-07-12  John W. Eaton  <jwe@octave.org>
+
+	* ov-intx.h: N-d array and scalar extractor functions take no args.
+
+	* ov.h (octave_value::int8_scalar_value,
+	octave_value::int16_scalar_value, octave_value::int32_scalar_value,
+	octave_value::int64_scalar_value, octave_value::uint8_scalar_value,
+	octave_value::uint16_scalar_value, octave_value::uint32_scalar_value,
+	octave_value::uint64_scalar_value): New functions.
+	* ov-base.cc (octave_base_value::int8_scalar_value,
+	octave_base_value::int16_scalar_value,
+	octave_base_value::int32_scalar_value,
+	octave_base_value::int64_scalar_value,
+	octave_base_value::uint8_scalar_value,
+	octave_base_value::uint16_scalar_value,
+	octave_base_value::uint32_scalar_value,
+	octave_base_value::uint64_scalar_value): New functions.
+	* ov-base.h: Provide decls.
+
+	* lex.l: (Vtoken_count): New static variable.
+	(COUNT_TOK_AND_RETURN): New macro.  Use it everywhere a token is
+	returned to the parser.
+	(F__token_count__): New function.
+
+2004-06-25  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-int-conv.cc: Add conversions for range type.
+
+2004-06-17  John W. Eaton  <jwe@octave.org>
+
+	* bitfcns.cc (bitfcns): New file.
+	* Makefile.in (DIST_SRC): Add it to the list.
+
+2004-06-16  John W. Eaton  <jwe@octave.org>
+
+	* OPERATORS/op-int.h: New file.
+	* OPERATORS/op-i16-i16.cc, OPERATORS/op-i8-i8.cc,
+	OPERATORS/op-ui32-ui32.cc, OPERATORS/op-i32-i32.cc,
+	OPERATORS/op-int-conv.cc, OPERATORS/op-ui64-ui64.cc,
+	OPERATORS/op-i64-i64.cc, OPERATORS/op-ui16-ui16.cc,
+	OPERATORS/op-ui8-ui8.cc: Use new macros from op-int.h.
+
+2004-06-14  John W. Eaton  <jwe@octave.org>
+
+	* pr-output.h, pr-output.cc (octave_print_conv): New traits class.
+	(template <class T> void octave_print_internal (std::ostream&,
+	const intNDArray<T>&, bool, int),
+	(template <class T> void octave_print_internal (std::ostream&,
+	const octave_int<T>&, bool)): New template functions.
+	Instantiate versions for new int types.
+
+	* ov-typeinfo.h (octave_value_typeinfo::type_conv_ops):
+	New data member.
+	(octave_value_typeinfo::register_type_conv_op,
+	octave_value_typeinfo::lookup_type_conv_op,
+	octave_value_typeinfo::do_register_type_conv_op,
+	octave_value_typeinfo::do_lookup_type_conv_op): New functions.
+
+	* ov-re-mat.cc (Fdouble): New function.
+
+	* ov-range.h (octave_range::reshape): Reshape array_value, not
+	matrix_value.
+
+	* ov-base-scalar.h (octave_base_scalar<ST>::all,
+	octave_base_scalar<ST>::any, octave_base_scalar<ST>::is_true): Use
+	ST() instead of 0.0.
+
+	* ov-base-mat.h (octave_base_matrix<MT>::byte_size): New function.
+
+	* ops.h (INSTALL_COLNVOP, DEFCONVFNX, DEFDBLCONVFN, DEFCONVFN,
+	DEFCONVFN2): New macros.
+
+	* DLD-FUNCTIONS/filter.cc (Ffilter): Kluge type conversions.
+
+	* ov.cc (install_types): Register new integer types.
+
+	* ov.h, ov.cc (octave_value::octave_value (const octave_int8&),
+	octave_value::octave_value (const octave_uint8&),
+	octave_value::octave_value (const octave_int16&),
+	octave_value::octave_value (const octave_uint16&),
+	octave_value::octave_value (const octave_int32&),
+	octave_value::octave_value (const octave_uint32&),
+	octave_value::octave_value (const octave_int64&),
+	octave_value::octave_value (const octave_uint64&),
+	octave_value::octave_value (const int8NDArray&),
+	octave_value::octave_value (const uint8NDArray&),
+	octave_value::octave_value (const int16NDArray&),
+	octave_value::octave_value (const uint16NDArray&),
+	octave_value::octave_value (const int32NDArray&),
+	octave_value::octave_value (const uint32NDArray&),
+	octave_value::octave_value (const int64NDArray&),
+	octave_value::octave_value (const uint64NDArray&)):
+	New constructors.
+
+	* ov.h (octave_value::internal_rep): New function.
+	(DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Also define
+	static_type_id, static_type_name, and static_class_name
+	functions.
+
+	* Cell.h (Cell::reshape (const dim_vector&)): New forwarding
+	function for return type conversion.
+
+	* ov-int16.cc, ov-int16.h, ov-int32.cc, ov-int32.h, ov-int64.cc,
+	ov-int64.h, ov-int8.cc, ov-int8.h, ov-uint16.cc, ov-uint16.h,
+	ov-uint32.cc, ov-uint32.h, ov-uint64.cc, ov-uint64.h, ov-uint8.cc,
+	ov-uint8.h, ov-type-conv.h, ov-int-traits.h,
+	OPERATORS/op-int-conv.cc, OPERATORS/op-double-conv.cc,
+	OPERATORS/op-i16-i16.cc, OPERATORS/op-i32-i32.cc,
+	OPERATORS/op-i64-i64.cc, OPERATORS/op-i8-i8.cc,
+	OPERATORS/op-ui16-ui16.cc, OPERATORS/op-ui32-ui32.cc,
+	OPERATORS/op-ui64-ui64.cc, OPERATORS/op-ui8-ui8.cc: New files.
+	Makefile.in: Add them to the appropriate lists.
+
+2004-06-03  John W. Eaton  <jwe@octave.org>
+
+	* ov-fcn-handle.h (octave_function_handle::is_matrix_type,
+	octave_function_handle::is_numeric_type,
+	octave_function_handle::is_constant,
+	octave_function_handle::is_true): New functions.
+	(octave_function_handle::is_defined): Delete (inherited version is
+	OK).
+
+2004-06-03  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/filter.cc: Fix for length(a)=1 && length(b)=2 case.
+
+2004-05-07  John W. Eaton  <jwe@octave.org>
+
+	* ov.cc (octave_value::print_with_name): Only print name tag if
+	Vprint_answer_id_name is true.
+
+	* octave.cc (intern_argv): Insert __nargin__ in top_level_sym_tab
+	instead of making it a builtin variable.  Mark it static.
+	* ov-usr-fcn.cc (octave_user_function::install_automatic_vars):
+	Mark local automatic variables static.
+
+2004-04-30  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (octave_base_stream::clearerr): New function.
+	(octave_stream::clearerr): New function.
+	(seek (long, int)): Call clearerr here.
+	* oct-stdstrm.h (octave_stdiostream::clear): New function.
+	* c-file-ptr-stream.h (c_file_ptr_buf::clear,
+	i_c_file_ptr_stream::clear, o_c_file_ptr_stream::clear,
+	io_c_file_ptr_stream::clear): New functions.
+
+2004-04-29  David Bateman  <dbateman@free.fr>
+
+	* load-save.cc (Fload, Fsave): Accept -mat as well as -mat-binary.
+
+2004-04-27  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/sort.cc: Add missing "class" keywords to template
+	instantiations.
+
+2004-04-22  John W. Eaton  <jwe@octave.org>
+
+	* pt-plot.cc (Fclearplot): Temporarily turn off automatic_replot.
+	Clear display after resetting title, labels, etc.
+
+2004-04-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-colon.cc (tree_colon_expression::rvalue): Also check for
+	error_state after evaluating each subexpression.
+
+2004-04-22  David Bateman  <dbateman@free.fr>
+
+	* ov-base-scalar.h (octave_base_scalar<ST>::permute): New function.
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::is_true): Make N-d aware.
+
+2004-04-22  John W. Eaton  <jwe@octave.org>
+
+	* oct-stream.cc (printf_value_cache::curr_value): Now NDArray.
+	(printf_value_cache::double_value): Extract N-d array, not Matrix.
+
+2004-04-21  John W. Eaton  <jwe@octave.org>
+
+	* parse.y (function2): Pass id name to frob_function.  Delete id.
+	(frob_function): Accept function name instead of identifier.
+	Don't try to rename symbol table entry.  Lookup symbol record for
+	function name here.  Insert name in symbol table if needed.
+	Operate on symbol record instead of identifier.
+
+2004-04-21  David Bateman  <dbateman@free.fr>
+
+	* DLD_FUNCTIONS/fft.cc(do_fft): Correctly initialize the variable dim
+	for scalar arguments.
+
+	* DLD-FUNCTIONS/minmax.cc: Handle single vector arg correctly.
+
+2004-04-20  John W. Eaton  <jwe@octave.org>
+
+	* ls-mat-ascii.cc (read_mat_ascii_data): Prepend "X" to keywords.
+	Only drop text after last "." in name.
+
+	* lex.l (is_keyword): New function.
+	(Fiskeyword): Use it.
+	* lex.h: Provide decl.
+
+	* lex.l (is_keyword_token): Rename from is_keyword.
+
+2004-04-16  John W. Eaton  <jwe@octave.org>
+
+	* file-io.cc (maybe_warn_interface_change): New function.
+	(fopen_mode_to_ios_mode): Use it.
+
+2004-04-16  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* file-io.cc (fopen_mode_to_ios_mode):  Default to binary mode.
+	(Ffopen): Document 't' and 'b' mode flags.
+
+2004-04-16  John W. Eaton  <jwe@octave.org>
+
+	* Makefile.in (DLD_XSRC): Add gcd.cc to the list.
+
+2004-04-16  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/gcd.cc: New file.
+
+2004-04-15  David Bateman  <dbateman@free.fr>
+
+	* ov-ch-mat.h: convert_to_str_interal returns charNDArray.
+
+2004-04-12  John W. Eaton  <jwe@octave.org>
+
+	* version.h (OCTAVE_BUGS_STATEMENT): Bug list is now bug@octave.org.
+
+2004-04-08  John W. Eaton  <jwe@octave.org>
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::do_index_op): Quit early
+	if an error occurs when creating index vector object.
+
+	* ov.cc (octave_value::numeric_assign): Always call maybe_mutate
+	on return value.
+
+2004-04-06  David Bateman  <dbateman@free.fr>
+
+  	* DLD_FUNCTIONS/sort.cc: Use the new template sort class, adapt for
+	N-d arrays, and allow optional dim argument.
+
+	* DLD_FUNCTIONS/fftn.cc: Save result of transpose operation.
+	Check for failure of transpose.
+
+2004-04-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-bool.h (octave_bool::bool_array_value): New function.
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::subsasgn): Don't allow
+	expressions like x(i)(j) or x(i){j} when x is empty.
+
+	* load-save.cc (get_file_format): Error if file does not exist.
+	(Fload): Also complain here if specific file type is specified and
+	file does not exist.
+
+2004-04-02  Quentin Spencer  <qspencer@ieee.org>
+
+	* parse.y: Use persistent instead of static in warnings messages.
+
+2004-04-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-decl.cc (tree_static_command::do_init): Initialize to empty
+	matrix by default.
+
+2004-04-02  David Bateman  <dbateman@free.fr>
+
+	* ov-re-mat.cc (octave_matrix::convert_to_str_internal):
+	Return charNDArray.
+	* ov-bool-mat.cc (octave_bool_matrix::convert_to_str_internal):
+	Call array_value.
+
+	* DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc,
+	DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/minmax.cc,
+	DLD-FUNCTIONS/filter.cc:
+	Convert for N-d array, better Matlab compatibility.
+
+	* load-save.cc (Fload): Better handling of non existent files.
+
+2004-03-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-list.cc (octave_list::subsref): Correctly create return value.
+	Return comma-separate list if {-style indexing extracts more than
+	one value.
+
+2004-03-12  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.57.
+	(OCTAVE_API_VERSION): Now api-v8.
+
+	* ov-cell.cc (octave_cell::save_hdf5): Handle empty cells.
+	(octave_cell::load_hdf5): Likewise.
+
+2004-03-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::subsasgn): If empty,
+	allow type conversion when indexing with "{" and ".".
+
+2004-03-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (init_format_state): Also set compact_format.
+	(pr_col_num_header): Print one newline character before column
+	headers for compact format.
+
+2004-03-09  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_WWW_STATEMENT): New macro.
+	(OCTAVE_STARTUP_MESSAGE): Include it here.
+	(OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS): And here.
+
+	* octave.cc (verbose_usage): Use OCTAVE_WWW_STATEMENT here.
+
+	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): If there are no
+	nonzero elements, return [](0x1) or [](1x0), not [](0x0).
+	Correctly preserve orientation for row vectors.
+
+2004-03-08  Petter Risholm  <risholm@idi.ntnu.no>
+
+	* data.cc (do_cat): Check for length of args before getting dimension.
+	New arg, fname.  Print usage message corresponding to fname.
+	(Fcat): Pass "cat" as fname arg to do_cat.
+	(Fhorzcat): Pass "horzcat" as fname arg to do_cat.
+	(Fvertcat): Pass "vertcat" as fname arg to do_cat.
+
+2004-03-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.56.
+	(OCTAVE_API_VERSION): Now api-v7.
+
+2004-03-04  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-struct.cc (Frmfield): New function
+
+	* oct-map.h (Octave_map::contains): Return bool, not int.
+
+	* ov-cell.cc (Fiscellstr): No error if arg is not a cell array.
+	(Fcellstr): Return arg if it is already a cell array of character
+	strings.
+
+2004-03-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-bool.cc (octave_bool::load_hdf5, octave_bool::save_hdf5):
+	Avoid unnecessary casts.
+	* ov-bool-mat.cc (octave_bool_matrix::load_hdf5,
+	octave_bool_matrix::save_hdf5): Likewise.
+	* ov-cell.cc (octave_cell::load_hdf5, octave_cell::save_hdf5):
+	Likewise.
+	* ov-complex.cc (octave_complex::load_hdf5,
+	octave_complex::save_hdf5): Likewise.
+	* ov-cx-mat.cc (octave_complex_matrix::load_hdf5,
+	octave_complex_matrix::save_hdf5): Likewise.
+	* ov-range.cc (octave_range::load_hdf5, octave_range::save_hdf5):
+	Likewise.
+	* ov-re-mat.cc (octave_matrix::load_hdf5, octave_matrix::save_hdf5):
+	Likewise.
+	* ov-scalar.cc (octave_scalar::load_hdf5, octave_scalar::save_hdf5):
+	Likewise.
+	* ov-str-mat.cc (octave_char_matrix_str::load_hdf5,
+	octave_char_matrix_str::save_hdf5): Likewise.
+
+2004-03-03 David Bateman  <dbateman@free.fr>
+
+	* ov-cell.cc (octave_cell::save_hdf5, octave_cell::load_hdf5):
+	Make N-d aware.
+
+2004-03-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y: Delete spaces surrounding = in %name-prefix directive.
+
+2004-03-01  Petter Risholm  <risholm@idi.ntnu.no>
+
+	* Cell.cc (Cell::cat): New function.
+	* Cell.h: Provide decl.
+
+	* oct-map.cc (Octave_map::cat): New function.
+	* oct-map.h: Provide decl.
+
+	* data.cc (Fcat): Speedup implementation.
+
+	* data.cc (Fhorzcat, Fvertcat): New functions.
+
+	* Array-tc.cc: Instantiate cat function.
+
+2004-03-01  David Bateman  <dbateman@free.fr>
+
+	* ls-hdf5.cc (save_hdf5_empty, load_hdf5_empty): New functions
+	to save/load empty matrices keeping their dimensions.
+	* ls-hdf5.h (save_hdf5_empty, load_hdf5_empty): Provide decls.
+
+	* ov-re-mat.cc (save_hdf5, load_hdf5): Cleanup, check empty matrix.
+	* ov-cx-mat.cc (save_hdf5, load_hdf5): Ditto.
+	* ov-bool-mat.cc (save_hdf5, load_hdf5): Ditto.
+
+	* ov-str-mat.cc (save_ascoo, load_ascii, save_binary,
+	load_binary, save_hdf5, load_hdf5): Cleanup, check empty matrix,
+	and save/load N-d arrays.
+
+2004-02-27  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (execute_startup_files): Don't find current directory
+	for absolute name of local_rc until after executing home_rc.
+
+2004-02-24  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (input_event_hook): Return type is now int.  Return 0.
+
+	* file-io.cc (do_stream_open): Don't call ::error if stream can't
+	be created.  Don't call ::fopen if arch is invalid.  Set error
+	state for stream if fopen fails.
+	* oct-stream.h (octave_stream::error (const char *)): New function.
+	(octave_stream::error (const std::string&)): Now public.
+
+2004-02-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (Fftell): Return long integer instead of streamoff_array.
+	(do_stream_open): Create octave_stdiostream instead of octave_fstream.
+
+	* oct-fstrm.cc (octave_fstream::seek, octave_fstream::tell):
+	Always fail.  Signatures now match C library functionsb.
+	* oct-iostrm.cc (octave_base_iostream::seek,
+	octave_base_iostream::tell): Likewise.
+	* oct-strstrm.cc (octave_base_strstream::seek,
+	octave_base_strstream::tell): Likewise.
+
+	* oct-stream.cc (octave_stream::seek, octave_stream::tell):
+	Signatures now match C-library functions.
+
+	* oct-stdstrm.cc (octave_stdiostream::seek, octave_stdiostream::tell):
+	Call io_c_file_ptr_stream::seek and tell.  Signatures now match
+	C-library functions.
+
+	* c-file-ptr-stream.h (c_file_ptr_buf::seek, c_file_ptr_buf::tell):
+	New functions.
+	(i_c_file_ptr_stream::seek, i_c_file_ptr_stream::tell): Likewise.
+	(o_c_file_ptr_stream::seek, o_c_file_ptr_stream::tell): Likewise.
+	(io_c_file_ptr_stream::seek, io_c_file_ptr_stream::tell): Likewise.
+
+2004-02-20  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.55.
+	(OCTAVE_API_VERSION): Now api-v6.
+
+	* sighandlers.cc (sigfpe_handler, sigpipe_handler):
+	Don't increment	octave_interrupt_state if it is less than 0.
+	(sigint_handler): If octave_interrupt_state is less than zero,
+	reset it.
+
+	* pt-except.cc (do_catch_code): Call OCTAVE_QUIT here so the catch
+	code won't run if an interrupt is pending.  Don't run catch code
+	if octave_interrupt_state is less than zero.
+
+2004-02-20  Per Persson  <persquare@mac.com>
+
+	* Makefile.in (OCT_LINK_DEPS, OCTINTERP_LINK_DEPS):
+	Include	$(LIBS) in the list before $(FLIBS).
+
+2004-02-20  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (octave_print_internal (std::ostream&, const
+	Range&, bool, int)): Don't print values beyond the limits of the
+	range.
+
+	* sighandlers.cc (sigint_handler): Print message after two
+	consecutive interrupts, dump core after three or more.
+
+	* load-save.cc (dump_octave_core): Handle core size limit.
+	Rename from save_user_variables.  Change all callers.
+	(Fload, dump_octave_core, Fsave): Open HDF5 fils in binary mode.
+	(do_save): Extract switch over file types to separate function.
+
+	* load-save.cc (Voctave_core_file_limit): New variable.
+	(octave_core_file_limit): New function.
+	(symbols_of_load_save): Add DEFVAR for octave_core_file_limit.
+
+	* load-save.cc (Voctave_core_file_name): New variable.
+	(octave_core_file_name): New function.
+	(symbols_of_load_save): Add DEFVAR for octave_core_file_name.
+
+	* load-save.cc (Voctave_core_file_format):
+	Rename from Voctave_core_format.
+	(octave_core_file_format): Rename from octave_core_format.
+	(symbols_of_load_save): Fix DEFVAR to match.
+
+2004-02-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.cc (Fsizeof): New function.
+
+	* ov.h (octave_value::byte_size): New function.
+	* ov-base.h (octave_base_value::byte_size): New function.
+	* ov-base-scalar.h (octave_base_scalar::byte_size): New function.
+	* ov-bool-mat.h (octave_bool_matrix::byte_size): New function.
+	* ov-ch-mat.h (octave_char_matrix::byte_size): New function.
+	* ov-cx-mat.h (octave_complex_matrix::byte_size): New function.
+	* ov-re-mat.h (octave_matrix::byte_size): New function.
+	* ov-range.h (octave_range::byte_size): New function.
+	* ov-cell.cc (octave_cell::byte_size): New function.
+	* ov-cell.h: Provide decl.
+	* ov-struct.cc (octave_struct::byte_size): New function.
+	* ov-struct.h: Provide decl.
+	* ov-streamoff.h (octave_streamoff::byte_size): New function.
+	* ov-list.cc (octave_list::byte_size): New function.
+	* ov-list.h: Provide decl.
+
+	* xpow.cc (elem_xpow (const Matrix&, double)):
+	Convert both operands to Complex if any element of A is negative.
+	(elem_xpow (const NDArray&, double)): Likewise.
+
+2004-02-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (Voctave_core_format): New static_variable.
+	(octave_core_format): New function.
+	(symbols_of_load_save): Add DEFVAR for octave_core_format.
+	(get_save_format): Rename from get_default_save_format.
+	Pass name of format as arg.  New optional arg, fallback_format.
+	Change all uses.
+	(save_user_variables): Use pass Voctave_core_format to
+	get_save_format here.  Pass LS_BINARY as fallback_format.
+
+	* sighandlers.cc (my_friendly_exit): New optional arg, save_vars.
+	Only call save_user_variables if save_vars is true.
+	(sigint_handler): If interactive, offer to abort and save
+	workspace after three consecutive interrupts.
+	(sigint_handler, sigpipe_handler, sigfpe_handler):
+	Increment octave_interrupt_handler instead of setting it to 1.
+
+2004-02-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.54.
+	(OCTAVE_API_VERSION): Now api-v5.
+
+	* Makefile.in (DLD_XSRC): Always include fftw_wisdom.cc.
+
+	* DLD-FUNCTIONS/fftw_wisdom.cc:
+	Rename from DLD-FUNCTIONS/fft_wisdom.cc.
+	(Vfftw_wisdom_prog): Delete extern decl.
+	(Ffftw_wisdom): Rename from Ffft_wisdom.
+	Use Vfftw_wisdom_prog instead of Vwisdom_prog.
+	Always define function.  Signal error if not configured to use FFTW3.
+
+	* defaults.cc (symbols_of_defaults): Rename WISDOM_PROGRAM to be
+	FFTW_WISDOM_PROGRAM.
+	(Vfftw_wisdom_prog): Rename from Vwisdom_prog.
+	(fftw_wisdom_program): Rename from wisdom_program.
+	For simplicity, always define FFTW_WISDOM_PROGRAM even when not
+	using fftw3.
+	(set_default_wisdom_prog): Look for OCTAVE_FFTW_WISDOM_PROGRAM in
+	the environment instead of OCTAVE_WISDOM_PROGRAM.
+	(set_default_fftw_wisdom_prog): Rename from set_default_wisdom_prog.
+	* defaults.h.in (Vfftw_wisdom_prog): Provide extern decl.
+
+2004-02-16 David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/fft.cc: Adapt for Nd arrays, combine with ifft.cc.
+	* DLD-FUNCTIONS/ifft.cc: Delete.
+	* DLD-FUNCTIONS/fft2.cc: Adapt for Nd arrays, combine with ifft.cc.
+	* DLD-FUNCTIONS/ifft2.cc: Delete.
+	* DLD-FUNCTIONS/fftn.cc: New function for Nd FFT and inverse FFT.
+	* DLD-FUNCTIONS/fft_wisdom.cc: New function to manipulate FFTW
+	wisdom.
+
+	* Makefile.in: Remove ifft.cc and ifft2.cc.  Add fftn.cc and
+	ifftn.cc.  Make building of fft-wisdom.cc conditional on the
+	value of FFTW_LIBS.
+	* defaults.cc (Vwisdom_prog): New variable
+	(set_default_wisdom_prog, wisdom_prog): New functions.
+	(symbols_of_defaults): Add DEFVAR for wisdom_prog.
+
+2004-02-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-list.cc (octave_list::subsasgn): Call assign for Cell objects
+	here, not the base octave_value::assign.
+
+2004-02-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (yywrap): Don't #undef this symbol.
+
+2004-02-15  Petter Risholm  <risholm@stud.ntnu.no>
+
+	* pt-mat.cc: Make [,] concatenation work for N-d arrays.
+
+2004-02-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (do_cat): Merge with Fcat.
+
+2004-02-15  Petter Risholm  <risholm@stud.ntnu.no>
+
+	* ov-cell.cc (Fstruct2cell): New function.
+
+2004-02-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (OCTINTERP_LINK_DEPS, OCT_LINK_DEPS): Always define.
+
+	* oct-conf.h.in: Add OCTAVE_CONF_DL_LD, OCTAVE_CONF_DL_LDFLAGS,
+	and OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS.
+	Delete OCTAVE_CONF_MKOCTFILE_SH_LDFLAGS.
+
+	* toplev.cc (octave_config_info): Delete MKOCTFILE_SH_LDFLAGS.
+	Add DL_LD, DL_LDFLAGS, and MKOCTFILE_DL_LDFLAGS to the struct.
+
+2004-02-14  Per Persson  <persquare@mac.com>
+
+	* Makefile.in (%.oct): Use DL_LD instead of SH_LD to build .oct files.
+
+2004-02-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-base-scalar.h (octave_base_scalar::squeeze): New function.
+
+2004-02-13  Petter Risholm  <risholm@stud.ntnu.no>
+
+	* data.cc (Fcat): New function.
+	* data.cc (do_cat): New function.
+	* data.cc (cat_add_dims): New function.
+
+2004-02-13  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (main_loop): Call octave_parse, not yyparse.
+	* octave.cc (octave_main): Increment octave_debug, not yydebug.
+	* parse.y (%name-prefix): New directive, set to "octave_".
+	* parse.h: Provide declarations for octave_lex and octave_parse
+	instead of yylex and yyparse.
+	* lex.l (%option prefix): New directive, set to "_octave".
+	Define yylval to be octave_lval.
+	Move definitions of YY_INPUT, YY_FATAL_ERROR, TOK_RETURN,
+	TOK_PUSH_AND_RETURN, BIN_OP_RETURN, XBIN_OP_RETURN here.
+	* lex.h: From here.
+
+2004-02-07  Petter Risholm  <risholm@stud.ntnu.no>
+
+	* ov-struct.cc (Fcell2struct): New function.
+	(cell2struct_check_args, cell2struct_construct_idx): Likewise.
+
+2004-02-07  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-scalar.h (octave_scalar::empty_clone):
+	Return empty octave_matrix, not an octave_scalar object.
+	* ov-complex.h (octave_complex::empty_clone):
+	Return empty octave_complex_matrix, not an octave_complex object.
+
+2004-02-06  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-usr-fcn.h (octave_user_function::function_name): Delete.
+	(octave_user_function::fcn_name): Delete unused data member.
+	(octave_user_function::stash_function_name): Save name in
+	tree_function::my_name instead of fcn_name.
+	Change all uses of fcn_name to be my_name instead.
+
+	* pt.h, pt.cc (tree::break_function): Now pointer to
+	octave_function rather than octave_user_function object.
+
+	* pt-bp.h (MAYBE_DO_BREAKPOINT): Use name instead of function_name
+	to get name from curr_function.
+	* pt-pr-code.cc (tree_print_code::visit_octave_user_function_header):
+	likewise.
+	* debug.cc (Fdbwhere, Fdbtype, ): Likewise
+	* error.cc (pr_where): Likewise.
+	* variables.cc (Fmlock, Fmunlock, Fmislocked): Likewise.
+	(lookup_function, lookup_user_function,	link_to_builtin_or_function):
+	Likewise, for curr_parent_function.
+
+	* debug.cc (get_user_function, Fdbwhere):
+	Cast curr_function to pointer to octave_user_function.
+
+	* ov-mapper.cc (octave_mapper::do_multi_index_op):
+	Save and restore curr_function here.
+	* ov-builtin.cc (octave_builtin::do_multi_index_op): Likewise.
+
+	* toplev.h, toplev.cc (curr_function, curr_parent_function): Now
+	pointers to octave_function rather than octave_user_function objects.
+
+	* ov-usr-fcn.h (octave_user_function::is_user_function): New function.
+	* ov-fcn.h (octave_function::takes_varargs,
+	octave_function::octave_va_start, octave_function::octave_va_arg,
+	octave_function::octave_all_va_args,
+	octave_function::takes_var_return, octave_function::octave_vr_val,
+	octave_function::is_user_function): New virtual functions.
+
+2004-02-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-struct.cc (Fstruct): Use new Octave_map constructor to create
+	structures with specified sizes but no keys.
+
+	* ov-struct.cc (Fstruct): New function, from Paul Kienzle
+	<pkienzle@users.sf.net> and Petter Risholm  <risholm@stud.ntnu.no>.
+
+	* oct-map.h (Octave_map::Octave_map): Allow dimension to be
+	specified for map with no keys.
+
+	* ov-struct.cc (fieldnames): Return 0x1 cell array if no fieldnames.
+
+2004-02-05  Petter Risholm  <risholm@stud.ntnu.no>
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::do_index_op):
+	Don't fail if number of indices is greater than 2.
+
+2004-02-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (Fsize): Update for N-d objects.
+
+	* ls-mat5.cc (read_mat5_binary_element): Force conversion.
+
+	* ov-base.cc (octave_base_value::char_matrix_value):
+	Pass force arg to convert_to_str.
+
+	* data.cc (Freshape): Chop trailing singletons from new dimensions.
+
+2004-02-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* error.cc (defun_usage_message): Only accept one arg, a const
+	std::string& object.  Change all uses.  Pass nul-terminated string
+	to defun_message_1.
+	(defun_usage_message_1): New function, equivalent to old
+	defun_usage_message.
+
+	* ov-base.cc (nint_value): Use fix, not NINT.
+	(INT_CONV_METHOD): Likewise, use fix instead of just casting.
+
+	* data.cc (make_diag): Use int_value instead of nint_value to
+	extract k for Matlab compatibility.
+	(Flinspace): Likewise, for npoints.
+	(fill_matrix): Likewise, for extracting dims.
+	(Fsize): Likewise, for extracting dim argument.  Require int value.
+	* utils.cc (get_dimensions): Likewise.  Use fix, not NINT.
+
+2004-02-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* error.cc (verror, error_1): New arg, os.  Use this instead
+	of always printing to std:cerr.  Change all callers.
+
+	* error.cc (defun_usage_message): New function.
+	* error.h: Provide decl.
+	* defun.cc (print_usage): Use it to display error message.
+
+	* error.cc (verror): New arg, save_last_error.  Change all callers.
+	(usage): Set error_state after calling verror.
+
+	* oct-map.cc (Octave_map::assign (const std::string, const Cell&)):
+	Set dimensions to RHS dimensions, not 1x1.
+
+2004-01-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-bool.cc, ov-cx-mat.cc, ov-re-mat.cc, ov-str-mat.cc:
+	Include <vector>.
+	* file-io.cc, ls-hdf5.cc, ls-mat4.cc, ls-mat5.cc, ls-oct-binary.cc:
+	Include <vector>, not <memory> for new defn of OCTAVE_LOCAL_BUFFER.
+	* load-save.cc, ls-mat-ascii.cc, ls-oct-ascii.cc
+	No need to include <memory> now.
+
+	* DLD-FUNCTIONS/eig.cc (Feig): Use new optional arg for EIG to
+	avoid computing eigenvectors if not requested.
+	Based on a patch from David Bateman  <dbateman@free.fr>.
+
+2004-01-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-cell.cc (all_strings): Always compute total required length
+	of retval.
+
+2004-01-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.53.
+	(OCTAVE_API_VERSION): Now api-v4.
+
+	* error.cc (pr_where): New arg, print_code with default value true.
+	(warning): Call pr_where with second arg false.
+
+	* file-io.cc (Ffrewind): Only return value if nargout > 0.
+	(Ffprintf): Likewise.
+	(Fprintf): Likewise.
+
+	* file-io.cc (Ffrewind): Return 0 for success, -1 for failure.
+	Make docs match.
+
+	* Makefile.in (distclean): Remove DOCSTRINGS.
+	(maintainer-clean): Remove $(OPT_HANDLERS).
+
+2004-01-21  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-cell.cc (octave_cell::subsref): Make '{' case N-d aware.
+
+	* ov-scalar.cc (streamoff_array_value): New function.
+	* ov-scalar.h: Provide decl.
+
+	* OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP): New maco.
+	Use it to define streamoff by matrix, streamoff by scalar, scalar
+	by streamoff, and matrix by streamoff comparison operators.
+	(install_streamoff_ops): Install them.
+
+	* Cell.h (Cell::operator ()): Delete (we inherit them from Array<T>).
+	(maybe_resize, elem_internal): Delete unused functions.
+
+	* ls-mat5.cc (write_mat5_cell_array): Cell& arg is now const.
+
+2004-01-20  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (is_valid_function): If warn, also print error
+	message if arg is not a string.
+
+	* ov-usr-fcn.cc (Fnargin, Fnargout): New functions.
+
+	* octave.cc (intern_argv): Lookup __nargin__ instead of nargin.
+	* ov-usr-fcn.cc (octave_user_function::install_automatic_vars):
+	Lookup __nargin__ and __nargout__ instead of nargin and nargout.
+
+	* variables.h (at_top_level): Now extern.
+	(lookup_user_function): New function.
+	* variables.cc: Provide decls.
+
+	* ov.h, ov.cc (octave_value::user_function_value):
+	New virtual function.
+	* ov-base.h, ov-base.cc (octave_base_value::user_function_value):
+	Provide default version.
+	* ov-usr-fcn.h (octave_user_function::user_function_value):
+	New function.
+
+	* ov-re-mat.cc (complex_array_value): New function.
+	* ov-re-mat.h: Provide decl.
+
+	* ov-cell.cc (Fiscellstr): Don't return value on usage error.
+
+	* error.cc: (symbols_of_error): Delete DEFVAR for error_text.
+	Define __error_text__ and error_text as aliases for lasterr.
+
+	* error.cc (bind_global_error_variable,	clear_global_error_variable):
+	Delete.
+	* variables.h: Delete decls.
+
+	* parse.y (Feval, Fevalin): Don't call bind_global_error_variable.
+	Don't add clear_global_error_variable to the unwind_protect stack.
+	Increment buffer_error_messages before evaluating "eval" code,
+	decrement it before evaluating "catch" code.
+
+	* pt-except.cc (do_catch_code): Don't call bind_global_error_variable.
+	Don't add clear_global_error_variable to the unwind_protect stack.
+	Decrement buffer_error_messages here.
+	(tree_try_catch_command::eval): Increment buffer_error_messages here.
+
+	* error.cc, error.h (buffer_error_messages): Now an int.
+
+2004-01-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (octave_config_info): Add float_format,
+	words_big_endian, and words_little_endian to the struct.
+
+2004-01-14  David Bateman  <dbateman@free.fr>
+
+	* ov-cell.cc (octave_cell::load_hdf5): Fix for HDF5 version 1.6
+	handling of number of objects in a group.
+	* ov-struct.cc (octave_struct::load_hdf5): Likewise.
+	* ov-list.cc (octave_list::load_hdf5): Likewise.
+	* ls-hdf5.cc (read_hdf5_data): Likewise.
+
+2004-01-13  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ls-hdf5.h: Surround contents with #if defined (HAVE_HDF5).
+
+2004-01-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (convert_to_valid_int, get_size):
+	Use lo_ieee_is_NaN_or_NA instead of xisnan.
+	(octave_base_stream::do_printf): Correct special case check for
+	NA, NaN, Inf, or out of range integers.
+
+	* dirfns.cc (Fglob): Always return list of files as a cell array.
+	(Freaddir): Likewise.
+
+	* dirfns.cc (Fls): If nargout > 0, return ls output.
+
+2004-01-09  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (Fload): Assume -force by default.
+
+	* oct-stream.cc (octave_base_stream::write):
+	Allow fwrite (fid, "some string") to work.
+
+	* toplev.cc (Fcomputer): Delete.
+	(octave_config_info): Add unix and windows fields to the struct.
+
+2004-01-06  David Bateman  <dbateman@free.fr>
+
+	* ls-hdf5.cc: Fix handle of old versus new format files.
+
+ 	* ls-oct-binary.cc: Split the load/save functionality into the types
+ 	themselves.  Backward compatibility maintained.
+
+ 	* ov-struct.cc (save_binary, load_binary):
+ 	* ov-str-mat.cc (save_binary, load_binary):
+ 	* ov-scalar.cc (save_binary, load_binary):
+ 	* ov-re-mat.cc (save_binary, load_binary):
+ 	* ov-range.cc (save_binary, load_binary):
+ 	* ov-list.cc (save_binary, load_binary):
+ 	* ov-cx-mat.cc (save_binary, load_binary):
+ 	* ov-complex.cc (save_binary, load_binary):
+ 	* ov-cell.cc (save_binary, load_binary):
+ 	* ov-bool.cc (save_binary, load_binary):
+ 	* ov-bool-mat.cc (save_binary, load_binary):
+	New functions for loading and saving structures in octave binary
+	format.
+
+ 	* ov-str-mat.h (save_binary, load_binary):
+ 	* ov-scalar.h (save_binary, load_binary):
+ 	* ov-re-mat.h (save_binary, load_binary):
+ 	* ov-range.h (save_binary, load_binary):
+ 	* ov-list.h (save_binary, load_binary):
+ 	* ov-cx-mat.h (save_binary, load_binary):
+ 	* ov-complex.h (save_binary, load_binary):
+ 	* ov-cell.h (save_binary, load_binary):
+ 	* ov-bool.h (save_binary, load_binary):
+ 	* ov-bool-mat.h (save_binary, load_binary):
+ 	* ov-struct.h (save_binary, load_binary):
+	Provide decls.
+
+ 	* ov.h (save_binary, load_binary): New virtual functions.
+
+ 	* ov-base.cc (save_binary, load_binary): New functions, for fallbacks
+ 	with error message.
+ 	* ov-base.h: Provide decls.
+
+ 	* load-save.cc: Remove "-import" flag and make it the default.
+ 	* load-save.h: Likewise.
+
+ 	* ls-oct-ascii.cc: Split the load/save functionality into the types
+ 	themselves. Save "string" variables with the name "string" rather than
+ 	string array. Backward compatiability maintained in ov-cs-mat.cc.
+ 	Include new version of extract_keyword that halts if the next value is
+ 	invalid rather that searching for the next valid value.
+
+ 	* ls-oct-ascii.h: Extract_keyword header updated.
+	Include definition of OCT_RBV and CELL_ELT_TAG, since they are now
+	used elsewhere.
+
+ 	* ls-hdf5.cc: Split load/save functionality into the types themselves.
+ 	The hdf5 format is changed so that each object is a group with a
+ 	dataset "type" being a string with the octave_value type and the
+ 	dataset or group "value" containing the value of the data, struct, etc.
+ 	This allows extensibility. Backward compatibility is maintained. The
+ 	"import" flag is now assumed to always be true and has been removed.
+
+ 	* ov-struct.cc (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-str-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-scalar.cc (save_ascii, load_ascii, save_hdf5, load_hdf5):
+	* ov-re-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-range.cc (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-list.cc (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-cx-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-complex.cc (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-cell.cc (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-bool.cc (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-bool-mat.cc (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	New functions for loading and saving structures in octave ascii
+	and hdf5 formatted files.
+
+ 	* ov-struct.h (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-str-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-scalar.h (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-re-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-range.h (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-list.h (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-cx-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-complex.h (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-cell.h (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-bool.h (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	* ov-bool-mat.h (save_ascii, load_ascii, save_hdf5, load_hdf5):
+ 	Provide decls.
+
+ 	* ov-typeinfo.cc (octave_value_typeinfo::do_lookup_type): Include
+ 	make_unique so that the stored type value is not used for all loaded
+ 	variables.
+
+ 	* ov.h: (save_ascii, load_ascii, save_hdf5 and load_hdf5):
+	New virtual functions.
+
+  	* ov-base.cc (save_ascii, load_ascii, save_hdf5, load_hdf5):
+	New functions, for fallbacks with error message.
+	* ov-base.h: Provide decls.
+
+2003-12-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-cx-mat.cc (octave_complex_matrix::assign): RHS arg is N-d.
+	* ov-cx-mat.h: Fix decl.
+
+	* ops.h (DEFNDASSIGNOP_FN): New macro.
+	* OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc,
+	OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc,
+	OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, OPERATORS/op-m-m.cc,
+	OPERATORS/op-m-s.cc: Use it instead of DEFASSIGNOP_FN.
+
+2003-12-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* xpow.cc (xpow (double, double)): Avoid apparent GNU libm bug.
+
+2003-12-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* symtab.cc (symbol_record::print_symbol_info_line):
+	Also check is_static to see if a symbol can be cleared.
+
+2003-12-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (is_keyword): Also allow varargout_kw if
+	lexer_flags.looking_at_return_list is false provided that we are
+	defining a function and we haven't seen the function name yet.
+	* parse.y (return_list): Don't require [] around varargout.
+
+	* DLD-FUNCTIONS/find.cc (DO_FIND_OP): Delete macro.
+	(find_to_fortran_idx): Delete.  Move guts of function to
+	find_nonzero_elem_idx.
+	(find_nonzero_elem_idx): Now a template function.  Handle overall
+	array index here too.  Make it N-d aware.
+
+	* pt-pr-code.cc (tree_print_code::visit_complex_for_command,
+	tree_print_code::visit_octave_user_function_header,
+	tree_print_code::visit_matrix, tree_print_code::visit_cell,
+	tree_print_code::visit_multi_assignment): Keep track of nearest
+	[, {, or ( nesting level.
+	(tree_print_code::visit_index_expression): Likewise.  Check nesting
+	level to decide how to print index.
+	(tree_print_code::reset): Also reset nesting level stack.
+
+	* pt-pr-code.h (tree_print_code::nesting): New data member.
+	(tree_print_code::tree_print_code): Initialize it.
+
+	* ov-base-mat.h (octave_base_matrix::octave_base_matrix (const MT&)):
+	If arg has no dimensions, resize to be 0x0.
+
+2003-12-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-map.cc (Octave_map::assign): Use Octave_map::contents member
+	function instead of operator [].
+	* ov-struct.cc (octave_struct::subsasgn): Likewise.
+	* DLD-FUNCTIONS/time.cc (extract_tm): Likewise.
+
+	* DLD-FUNCTIONS/time.cc	(mk_tm_map): Use Octave_map::assign member
+	function instead of operator [].
+	* DLD-FUNCTIONS/getrusage.cc (Fgetrusage): Likewise.
+	* DLD-FUNCTIONS/getgrent.cc (mk_gr_map): Likewise.
+	* DLD-FUNCTIONS/getpwent.cc (mk_pw_map): Likewise.
+	* load-save.cc (do_load): Likewise.
+	* ls-hdf5.cc (hdf5_read_next_data): Likewise.
+	* ls-mat5.cc (read_mat5_binary_element): Likewise.
+	* oct-map.cc (Octave_map::reshape): Likewise.
+	* oct-map.cc (Octave_map::index): Likewise.
+	* ov-fcn-handle.cc (Ffunctions): Likewise.
+	* pt-idx.cc (make_arg_struct): Likewise.
+	* sighandlers.cc (make_sig_struct): Likewise.
+	* syscalls.cc (mk_stat_map): Likewise.
+	* toplev.cc (Foctave_config_info): Likewise.
+
+	* ls-hdf5.cc (add_hdf5_data): Temporary Octave_map is now const.
+	* ls-mat5.cc (save_mat5_binary_element): Likewise.
+
+	* oct-map.cc (Octave_map::assign (const std::string&, const
+	octave_value&)): New function.
+	* oct-map.h: Provide decl.
+	(Octave_map::contents (const std::string&)): New function.
+	(Octave_map::operator [] (const std::string&) const): Delete.
+	(Octave_map::operator [] (const std::string&)): Delete.
+
+2003-12-09  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* OPERATORS/op-cell.cc: Allow transpose for cell arrays.
+	* OPERATORS/op-m-m.cc, OPERATORS/op-cm-cm.cc,
+	OPERATORS/op-bm-bm.cc, OPERATORS/op-streamoff.cc,
+	OPERATORS/op-str-str.cc: Improve error message for attempt to
+	transpose N-d object.
+
+2003-11-27  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-arg-list.cc (F__end__): Handle N-d objects.
+
+2003-11-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* OPERATORS/op-b-bm.cc: New file.
+
+	* OPERATORS/op-bm-b.cc (op_el_and, op_el_or): Define and install.
+	* OPERATORS/op-bm-bm.cc (op_el_and, op_el_or, assign): Likewise.
+
+	* ov-str-mat.cc (CHAR_MATRIX_CONV): New macro.
+	* ov-str-mat.h (octave_char_matrix_str::double_value,
+	octave_char_matrix_str::matrix_value,
+	octave_char_matrix_str::array_value,
+	octave_char_matrix_str::complex_value,
+	octave_char_matrix_str::complex_matrix_value,
+	(octave_char_matrix_str::complex_array_value): Use it.
+
+	* ov-bool-mat.cc (default_numeric_conversion_function):
+	Convert to NDArray, not Matrix.
+	* ov-str-mat.cc (default_numeric_conversion_function): Likewise.
+
+	* ov-range.h (octave_range::array_value): New function.
+	(octave_range::complex_array_value): Likewise.
+	* ov-ch-mat.h (charNDArray::array_value): New function.
+	(charNDArray::complex_array_value): Likewise.
+	* ov-str-mat.h (octave_char_matrix_str::array_value): Likewise.
+	(octave_char_matrix_str::complex_value): Likewise.
+	(octave_char_matrix_str::complex_matrix_value): Likewise.
+	(octave_char_matrix_str::complex_array_value): Likewise.
+
+	* mappers.cc (acosh, log, log10, sqrt):
+	Use octave_Inf instead of DBL_MAX for range limit.
+
+2003-11-24  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.52.
+	(OCTAVE_API_VERSION): Now api-v3.
+
+	* DLD-FUNCTIONS/rand.cc (do_rand): Pass function name from arg
+	list in calls to error.
+
+	* ov-cs-list.cc, ov-cs-list.h (octave_cs_list::octave_cs_list):
+	Explicitly initialize base class in constructors.
+
+	* ov.h (octave_value::all_strings): Pass second arg to rep function.
+
+	* ov.h (octave_value::string_value): Pass arg to rep function.
+
+	* DLD-FUNCTIONS/dasrt.cc (dasrt_user_f): Delete unused arg names.
+	* DLD-FUNCTIONS/rand.cc (Frand, Frandn): Likewise.
+	* ls-hdf5.h (hdf5_streambase::hdf5_streambase): Likewise.
+	* ls-hdf5.cc (read_hdf5_data): Likewise.
+	* ls-utils.cc (get_save_type): Likewise.
+	* parse.y (Fassignin): Likewise.
+	* utils.cc (empty_arg): Likewise.
+	* ov-usr-fcn.h (octave_user_function::subsref): Likewise.
+	* ov-base-mat.h (octave_base_matrix::subsref): Likewise.
+	* ov-mapper.h (octave_mapper::subsref): Likewise.
+	* ov-builtin.h (octave_builtin::subsref): Likewise.
+	* ov-complex.cc (octave_complex::complex_array_value): Likewise.
+	* ov-cell.h (octave_cell::subsref): Likewise.
+	* ov-base-scalar.h (octave_base_scalar::subsref): Likewise.
+	* ov-struct.h (octave_struct::subsref): Likewise.
+	* ov-range.h (octave_range::subsref): Likewise.
+	* ov-list.h (octave_list::subsref): Likewise.
+	* ov-base.cc (octave_base_value::print_info): Likewise.
+	* pt-check.cc (tree_checker::visit_subplot_axes): Likewise.
+	* pr-output.cc (octave_print_internal (std::ostream&, double, bool),
+	octave_print_internal (std::ostream&, const Complex&, bool),
+	octave_print_internal (std::ostream&, const ArrayN<std::string>&,
+	bool, int): Likewise.
+	* oct-stream.cc (octave_scan<> (std::istream&, const
+	scanf_format_elt&, char*): Likewise
+	* TEMPLATE-INST/Array-tc.cc (resize_fill_value<octave_value>):
+	Likewise.
+	* pt-bp.cc (tree_breakpoint::visit_octave_user_function,
+	tree_breakpoint::visit_octave_user_function_header,
+	tree_breakpoint::visit_octave_user_function_trailer,
+	tree_breakpoint::visit_plot_limits,
+	tree_breakpoint::visit_plot_range,
+	tree_breakpoint::visit_subplot,
+	tree_breakpoint::visit_subplot_axes,
+	tree_breakpoint::visit_subplot_list,
+	tree_breakpoint::visit_subplot_style,
+	tree_breakpoint::visit_subplot_using): Likewise.
+	* ov.cc (octave_value::column_vector_value,
+	(octave_value::complex_column_vector_value,
+	(octave_value::row_vector_value,
+	octave_value::complex_row_vector_value,
+	octave_value::do_non_const_unary_op): Likewise.
+
+	* load-save.cc: Only include ls-hdf5.h if HAVE_HDF5 is defined.
+	From Melqart <melqart@free.fr>.
+
+	* pr-output.h (octave_fcn_handle::print_as_scalar): Delete.
+
+	* pr-output.cc (octave_print_internal): New version for
+	ArrayN<std::string> objects.
+	* pr-output.h: Provide decl.
+	* ov-fcn-handle.cc (octave_fcn_handle::print_raw): Use it.
+
+	* OPERATORS/op-fcn-handle.cc: New file.
+	* Makefile.in (OP_XSRC): Add it to the list.
+
+	* ov-fcn-handle.h, ov-fcn-handle.cc (octave_fcn_handle):
+	Now an array of function handle objects.
+
+	* ov.h, ov.cc (octave_value::octave_value (const fcn_handle_array&),
+	(octave_value::octave_value (octave_function *f, const std::string&)):
+	New constructors.
+	(octave_value::octave_value (const octave_fcn_handle&)): Delete.
+
+	* ov-base-mat.cc (octave_base_matrix<T>::print_as_scalar):
+	Check dims instead of rows and columns.
+
+	* ov.h (octave_value::is_function_handle): New function.
+	* ov-base.h (octave_base_value::is_function_handle): New function.
+
+2003-11-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-bool-mat.h (octave_bool_matrix::array_value): Construct return
+	value directly from matrix data member, not matrix.matrix_value ().
+
+	* ov-re-mat.h (octave_matrix::index_vector): Construct idx_vector
+	from NDArray, not Matrix.
+
+	* ov-bool-mat.h (octave_bool_matrix::index_vector): Construct
+	idx_vector from boolNDArray, not boolMatrix.
+
+	* ov.cc (install_types): Also register dld function type.
+
+	* OPERATORS/op-streamoff.cc: Install increment and decrement operators.
+	* ov-streamoff.h (octave_streamoff::increment,
+	octave_streamoff::decrement): New functions.
+
+	* ov-streamoff.h, ov-streamoff.cc: Move streamoff_array class to
+	liboctave/so-array.h and liboctave/so-array.cc.
+
+	* oct-stream.cc (octave_stream::seek): Extract std::streamoff from
+	tc_offset instead of int.
+
+	* ov-re-mat.cc (octave_matrix::double_value): Use numel, not length.
+
+	* ov-re-mat.cc (octave_matrix::streamoff_array_value): New function.
+	* ov-re-mat.h: Provide decl.
+
+	* ov-scalar.cc (octave_scalar::streamoff_value): New function.
+	* ov-scalar.h: Provide decl.
+
+	* ov.cc (octave_value::streamoff_array_value,
+	octave_value::streamoff_value): New functions.
+	* ov.h: Provide decls.
+
+	* ov-base.cc (octave_base_value::streamoff_array_value,
+	octave_base_value::streamoff_value): New functions.
+	* ov-base.h: Provide decls.
+
+	* ov-usr-fcn.cc (install_automatic_vars): Don't do anything unless
+	sym_tab is defined.
+
+	* ov-streamoff.h, ov-streamoff.cc, OPERATORS/op-streamoff.cc:
+	New files.
+
+	* ov-cell.h (octave_value_cell::is_matrix_type): New function.
+
+	* ov-mapper.h (octave_mapper::octave_mapper): No copying.
+	* ov-fcn.h (octave_function::octave_function): Likewise.
+	* ov-usr-fcn.h (octave_function::octave_function): Likewise.
+	* ov-builtin.h (octave_builtin::octave_builtin): Likewise.
+	* ov-dld-fcn.h (octave_dld_function::octave_dld_function): Likewise.
+
+2003-11-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-mapper.h (octave_mapper::octave_mapper): Make public.
+	Provide copy constructor and assignment operator.
+	* ov-fcn.h (octave_function::octave_function): Likewise.
+	* ov-builtin.h (octave_builtin::octave_builtin): Likewise.
+	* ov-dld-fcn.h (octave_dld_function::octave_dld_function): Likewise.
+
+	* ov-typeinfo.cc (octave_value_typeinfo::register_type,
+	octave_value_typeinfo::do_register_type): New arg, val.
+	Save it	in vals array.
+	(octave_value_typeinfo::lookup_type,
+	octave_value_typeinfo::do_lookup_type): New functions.
+	* ov-typeinfo.h: Provide decl.
+	(octave_value_typeinfo::vals): New data member.
+	(octave_value_typeinfo::octave_value_typeinfo): Initialize it.
+
+	* ov.h (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Pass
+
+	* ov.h (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Define register_type
+	here.  Also pass an empty object of the to-be-registered type to
+	register_type.
+	(DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Declare register_type
+	here, but don't define it.
+
+2003-11-21  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-fcn-handle.h (octave_fcn_handle::octave_fcn_handle (void)):
+	New constructor.
+
+	* ov-usr-fcn.h (octave_user_function::octave_user_function):
+	Delete decl for private constructor.
+
+	* ov-str-mat.cc (octave_char_matrix_str::matrix_value):
+	Conversion to matrix is an error unless explicitly forced.
+
+	* ov-str-mat.cc (octave_char_matrix_str::double_value): New function.
+	* ov-str-mat.h: Provide decl.
+
+	* ov-file.cc (print_raw): Use parens around ?: conditional used on
+	RHS of << output operator.
+
+	* c-file-ptr-stream.cc (c_file_ptr_buf::seekoff,
+	c_file_ptr_buf::seekpos): Can't use fseek here, so just fail (by
+	returning -1) until we have a better solution.
+
+	* oct-stream.cc (octave_stream::tell): Return std::streamoff, not long.
+	* oct-iostrm.cc (octave_base_iostream::tell): Likewise.
+	* oct-stdstrm.cc (octave_stdiostream::tell): Likewise.
+	* oct-strstrm.cc (octave_base_strstream::tell): Likewise.
+	* oct-stream.h, oct-iostrm.h, oct-stdstrm.h, oct-strstrm.h:
+	Fix decls to match.
+
+2003-11-20  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ls-mat-ascii.cc (get_lines_and_columns): Delete second arg in
+	call to istream::seekg.
+
+	* ov-mapper.cc (MAPPER_LOOP_2, any_element_less_than,
+	any_element_greater_than, octave_mapper::apply):
+	Handle N-d arrays.
+
+2003-11-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ls-mat5.cc (read_mat5_binary_element, save_mat5_binary_element):
+	Handle N-d arrays.
+
+	* lex.l (next_token_is_index_op): New function.
+	(handle_close_bracket): Use it.
+
+	* ls-hdf5.cc, ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc,
+	ls-oct-ascii.cc, ls-oct-binary.cc, ls-utils.cc, ls-hdf5.h,
+	ls-mat-ascii.h, ls-mat4.h, ls-mat5.h, ls-oct-ascii.h,
+	ls-oct-binary.h, ls-utils.h: New files, extracted from load-save.cc.
+	* Makefile.in: Add them to the appropriate lists.
+
+2003-11-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (octave_print_internal): Don't indent rows for
+	plus_format.  Use pr_plus_format for Range type with plus_format.
+	(plus_format_chars): New static variable.
+	(set_format_style): Allow optional arg for plus format to set it.
+	(pr_plus_format): Use it.
+
+	* ov-bool.h (octave_bool::array_value,
+	octave_bool::complex_array_value): New functions.
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::do_index_op):
+	Ensure correct number of indices for Array indexing code.
+
+2003-11-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/qz.cc (qz): Use x.data()+offset instead of &a(i,j).
+	First and third args for dlag2 are const.
+
+	* DLD-FUNCTIONS/sort.cc (Fsort): Use const qualifier as appropriate.
+
+	* DLD-FUNCTIONS/balance.cc (balance): Use data() instead of
+	fortran_vec where appropriate in call to dggbak.
+
+	* DLD-FUNCTIONS/dasrt.cc (dasrt_user_j): Simplify inserting x and
+	xdot in arg vector.
+	(dasrt_user_f): Likewise.
+	(dasrt_user_cf): Likewise.
+	* DLD-FUNCTIONS/dassl.cc (dassl_user_function): Likewise.
+	(dassl_user_jacobian): Likewise.
+	* DLD-FUNCTIONS/lsode.cc (lsode_user_function): Likewise.
+	(lsode_user_jacobian): Likewise.
+	* DLD-FUNCTIONS/daspk.cc (daspk_user_function): Likewise.
+	(daspk_user_jacobian): Likewise.
+
+2003-11-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-range.h (octave_range::reshape): New function.
+
+2003-11-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.51.
+	(OCTAVE_API_VERSION): Now api-v2.
+
+	* version.h (OCTAVE_BUGS_STATEMENT): Also tell people to look at
+	http://www.octave.org/bugs.html.
+
+	* oct-map.cc (Octave_map::assign): Use resize, not resize and fill.
+	* ov-typeinfo.cc (octave_value_typeinfo::do_register_type): Likewise.
+
+	* Cell.cc (Cell::Cell): Pass dim_vector to resize instead of two ints.
+
+2003-11-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (stamp-liboctave-prereq): New target.
+	($(DEF_FILES), $(MAKEDEPS)): Depend on it.
+	(distclean): Remove it.
+
+	* parse.y (cancel_obj_idx): New rule.
+	(postfix_expr, prefix_expr): Use begin_obj_idx after every
+	postfix_expr on RHS.  Use cancel_obj_idx as soon as possible for
+	cases where we are not working on an index expression.
+
+	* lex.l (maybe_unput_comma, handle_close_bracket):
+	Don't insert comma if we are looking at an object index and the
+	closest nesting level is a brace.
+
+	* parse.y (postfix_expr): Use begin_obj_idx between postfix_expr
+	and the indexing delimiter rather than after it.
+
+	* lex.h (lexical_feedback::braceflag): New member variable.
+	* lex.l	(lexical_feedback::init): Initialize braceflag.
+	(\{{S}*): Increment lexer_flags.braceflag, not
+	lexer_flags.bracketflag.
+	(handle_close_bracket): Handle lexer_flags.braceflag and
+	lexer_flags.bracketflag separately based on bracket_type.
+	Delete unnecesary yyinput/yyunput.
+
+	* lex.l (next_token_is_postfix_unary_op): Also recognize ++ and --.
+
+	* ov-typeinfo.cc (octave_value_typeinfo::register_type,
+	octave_value_typeinfo::do_register_type):
+	New arg, c_name for class name.
+	* ov-base.cc, ov-bool-mat.cc, ov-bool.cc, ov-builtin.cc,
+	ov-cell.cc, ov-ch-mat.cc, ov-colon.cc, ov-complex.cc,
+	ov-cs-list.cc, ov-cx-mat.cc, ov-dld-fcn.cc, ov-fcn-handle.cc,
+	ov-file.cc, ov-list.cc, ov-mapper.cc, ov-range.cc, ov-re-mat.cc,
+	ov-scalar.cc, ov-str-mat.cc, ov-struct.cc, ov-usr-fcn.cc,
+	ov-va-args.cc: Pass class name to DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA.
+	* ov.h (octave_value::class_name): New virtual function.
+	(DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Define c_name, for class name.
+	Pass c_name to octave_value_typeinfo::register_type.
+	(DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Declare static member
+	c_name for class name.  Provide class_name member function.
+
+	* ov-typeinfo.cc (Fclass): New function.
+
+2003-11-13  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (Fisvarname): Pass correct name to make_argv.
+
+	* ov-cell.cc (Fiscellstr): New function.
+
+	* ov-file.h (octave_file::all, octave_file::any,
+	octave_file::dims, octave_file::is_real_type,
+	octave_file::ist_real_scalar): New functions.
+
+	* lex.l (bracket_brace_paren_nesting_level::is_bracket_or_brace):
+	New function.
+	(handle_close_bracket): New arg, bracket_type.  Change all uses.
+	First arg is now bool.
+	(<MATRIX_START>{SNLCMT}*\}{S}*): New pattern.
+	(maybe_unput_comma): Handle brace nesting level the same as brackets.
+	(handle_close_brace): Likewise.
+	(<MATRIX_START>{S}+): Likewise.
+	(<MATRIX_START>{S}*{COMMENT}{SNLCMT}*): Likewise.
+	(<MATRIX_START>{S}*{NL}{SNLCMT}*): Likewise.
+	({NL}): Likewise.
+	({CCHAR}): Likewise.
+	(")"): Likewise.
+	(\{{S}*): Handle the same as \[{S}*.
+	("}"): Handle the same as \].
+
+	* Makefile.in (stamp-prereq): Add oct-gperf.h, parse.cc, and
+	lex.cc to the list.
+
+2003-11-12  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-cell.cc (print_as_scalar): New function.
+	* ov-cell.h: Provide decl.
+
+	* ov-cell.cc (octave_cell::print_name_tag): Delete.
+	* ov-cell.h: Delete decl.
+
+	* ov-base-mat.cc (octave_base_matrix::print_name_tag): Delete.
+	* ov-base-mat.h: Delete decl.
+
+	* ov-base.cc (octave_base_value::print_name_tag):
+	Use print_as_scalar here.
+	* ov.h (octave_base_value::print_as_scalar): New virtual function.
+	* ov-base.h (octave_base_value::print_as_scalar):
+	New default implementation.
+	* ov-base-mat.h (octave_base_matrix::pirnt_as_scalar):
+	Don't declare as virtual here.
+
+	* ov-struct.cc (octave_struct::print_raw): If only printing keys,
+	also print dimensions of fields and overall array.
+
+	* sysdep.cc (Fnative_float_format): New function.
+
+	* input.cc (generate_possible_completions): Also append all
+	possible filename completions here.
+
+2003-11-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc: Explicitly instantiate octave_scan functions.
+
+	* TEMPLATE-INST/Array-c.cc, TEMPLATE-INST/Array-os.cc,
+	TEMPLATE-INST/Array-sym.cc, ov-typeinfo.cc:
+	Use new INSTANTIATE_ARRAY macro.
+
+	* data.cc (do_permute): New function.
+	(Fpermute, Fipermute): Use it.
+
+	* ov-base.cc (octave_base_value::permute): New function.
+	* ov-base.h: Provide decl.
+
+	* ov.h (octave_value::ipermute): New function.
+
+2003-11-11  Petter Risholm  <risholm@stud.ntnu.no>
+
+	* data.cc (Fpermute, Fipermute): New functions.
+	* ov.h (octave_value::permute): New function.
+	* ov-base-mat.h (octave_base_matrix::permute): New function.
+
+2003-11-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-obj.h (octave_value_list): Internal representation is now
+	std::vector instead of Array.
+
+	* ov-list.h, ov-list.cc: Internal representation is now Cell, not
+	octave_value_list.
+	(Flist): Print one-time warning.
+
+	* ov.cc (octave_value::octave_value (const octave_value_list&, bool)):
+	Cope with octave_cs_list not being derived from octave_list.
+
+	* ov-cs-list.cc (octave_cs_list): Handle conversion of Cell array
+	to octave_value_list here.
+
+	* ov-cs-list.h (class octave_cs_list): Derive from
+	octave_base_value, not octave_list.
+
+	* ov-cs-list.h, ov-cs-list.cc: Remove commented-out code.
+
+	* TEMPLATE-INST/Array-tc.cc (resize_fill_value): Use modern
+	specialization syntax.
+
+	* ov-cell.cc (octave_cell::print_raw): Use dim_vector::str.
+
+	* Cell.cc, Cell.h, debug.cc, file-io.cc, load-save.cc,
+	oct-fstrm.cc, oct-iostrm.cc, oct-iostrm.h, oct-map.cc, oct-map.h,
+	oct-prcstrm.cc, oct-stdstrm.h, oct-stream.cc, oct-strstrm.h,
+	octave.cc, ov-base.h, ov-cell.cc, ov.cc, ov.h, pt-cell.h,
+	pt-mat.cc, pt-mat.h, pt-plot.cc, pt-stmt.cc, variables.cc,
+	DLD-FUNCTIONS/rand.cc: Avoid -Wshadow warnings.
+
+2003-11-01  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h (octave_base_value::is_bool_matrix): New virtual function.
+	* ov-base.h (octave_base_value::is_bool_matrix): New function.
+
+2003-10-31  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.cc (octave_value::length): If any dim is zero, return 0.
+
+	* ov-cell.cc (octave_cell::subsref): When indexing with '{', quit
+	early if an error occurs in do_index_op.
+
+	* ov.cc (octave_value::next_subsref): Don't do anything if
+	error_state is true.
+
+	* cutils.c (octave_usleep) [HAVE_SELECT]: Introduce new local
+	scope for declaration of delay.
+	[HAVE_POLL]: Likewise, for delay and pfd.
+
+	* ov-base.cc (octave_base_value::bool_array_value):
+	Function takes no args.
+	* ov-base.h: Likewise, for decl.
+	* ov-bool-mat.h (boolNDArray::bool_array_value): Likewise.
+
+	* ov-fcn.cc, ov-fcn.h (octave_value::clone,
+	octave_value::empty_clone): Return type is octave_value*, not
+	octave_function*.
+
+2003-10-29  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-str-mat.h (octave_char_matrix_str::reshape): New function.
+	Force result to be a string.
+
+2003-10-29  Petter Risholm  <risholm@stud.ntnu.no>
+
+	* data.cc (DATA_REDUCTION): Work on NDArray and ComplexNDArray
+	objects instead of Matrix and ComplexMatrix objects.
+
+2003-10-29  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-bool-mat.h (octave_bool_matrix::NDArray,
+	octave_bool_matrix::ComplexNDArray): New functions.
+
+	* ov-complex.cc (octave_complex::array_value,
+	octave_complex::complex_array_value): New functions.
+	* ov-complex.h: Provide decls.
+
+	* ov-scalar.cc (octave_scalar::array_value,
+	octave_scalar::complex_array_value): New functions.
+	* ov-scalar.h: Provide decls.
+
+	* oct-map.cc (Octave_map::reshape): New function.
+	* oct-map.h: Provide decl.
+
+	* ov-struct.h (octave_struct::reshape): New function.
+
+	* Cell.h (Cell:Cell (const Array<octave_value>&): New constructor.
+
+	* data.cc (Freshape): New function.
+	* ov.h (octave_value::reshape): New function.
+	* ov-base-mat.h (octave_base_matrix::reshape): New function.
+	* ov-base.cc (octave_base_value::reshape): New function.
+	* ov-base.h: Provide decl.
+
+	* DLD-FUNCTIONS/balance.cc: lscale and rscale args for dggbak are
+	const.  Use data() instead of fortran_vec where possible.
+	* DLD-FUNCTIONS/qz.cc: Likewise.
+
+	* data.cc (fill_matrix): Remove trailing singletons before
+	allocating the result matrix.
+
+	* input.cc (get_user_input): Don't forget about the diary here.
+
+2003-10-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-list.h (octave_list::nelem): Delete.
+	(octave_list::dims): New function.
+	* ov-range.h (octave_list::dims): New function.
+	* ov-struct.h (octave_struct::dims): New function.
+	* ov-base-scalar.h (octave_base_scalar::dims): New function.
+
+	* ov.h (octave_value::rows): No longer virtual.
+	* ov.cc (octave_value::rows): Provide common implementation.
+	* ov-base.h (octave_base_value::rows): Delete.
+	* ov-base-mat.h (octave_base_matrix<T>::rows): Delete.
+	* ov-base-scalar.h (octave_base_scalar<T>::rows): Delete.
+	* ov-struct.h (octave_struct::rows): Delete.
+	* ov-range.h (octave_range::rows): Delete.
+
+	* ov.h (octave_value::columns): No longer virtual.
+	* ov.cc (octave_value::columns): Provide common implementation.
+	* ov-base.h (octave_base_value::columns): Delete.
+	* ov-base-mat.h (octave_base_matrix<T>::columns): Delete.
+	* ov-base-scalar.h (octave_base_scalar<T>::columns): Delete.
+	* ov-struct.h (octave_struct::columns): Delete.
+	* ov-range.h (octave_range::columns): Delete.
+
+	* ov.h (octave_value::numel): No longer virtual.
+	* ov.cc (octave_value::numel): Provide common implementation.
+	* ov-base.h (octave_base_value::numel): Delete.
+	* ov-base-mat.h (octave_base_matrix<T>::numel): Delete.
+	* ov-base-scalar.h (octave_base_scalar<T>::numel): Delete.
+	* ov-struct.h (octave_struct::numel): Delete.
+
+	* ov-cs-list.h (octave_cs_list::dims): New function.
+	(octave_cs_list::length): Delete.
+
+	* ov.h (octave_value::ndims): No longer virtual.
+	* ov.cc (octave_value::ndims): Provide common implementation.
+	* ov-base.h (octave_base_value::ndims): Delete.
+	* ov-base-mat.h (octave_base_matrix<T>::ndims): Delete.
+	* ov-base-scalar.h (octave_base_scalar<T>::ndims): Delete.
+	* ov-struct.h (octave_struct::ndims): Delete.
+
+	* ov-cell.cc (Fcell): Make it work for N-d cells.
+
+	* Cell.h (Cell::Cell  (const dim_vector&, const octave_value&)):
+	New constructor.
+
+	* ov.h (octave_value::length): No longer virtual.
+	* ov.cc (octave_value::length): Provide common implementation.
+	* ov-base.h (octave_base_value::length): Delete.
+	* ov-base-mat.h (octave_base_matrix<T>::length): Delete.
+	* ov-base-scalar.h (octave_base_scalar<T>::length): Delete.
+	* ov-struct.h (octave_struct::length): Delete.
+	* ov-cs-list.h (octave_cs_list::length): Delete.
+	* ov-list.h (octave_list::length): Delete.
+	* ov-range.h (octave_range::length): Delete.
+
+	* load-save.cc (save_mat5_binary_element): Use numel instead of
+	array_length.
+	* ov-struct.cc (octave_struct::print_raw): Likewise.
+	* pt-loop.cc (tree_complex_for_command::eval): Likewise.
+	* oct-map.cc (Octave_map::numel): New function.
+	* oct-map.h: Provide decl.
+
+	* oct-map.cc, oct-map.h (Octave_map::array_length): Delete.
+	(common_size): New static function.
+	(Octave_map::assign): Make resizing work for N-d cell objects.
+
+	* oct-map.cc (Octave_map::dims): New function.
+	* oct-map.h: Provide decl.
+
+	* pr-output.cc 	(print_empty_nd_array): New static function.
+	(PRINT_ND_ARRAY): Use it.
+
+	* ov.h (octave_value::is_empty): No longer virtual.  Return value
+	based on numel.
+	* data.cc (Fisempty): Use it.
+	(Fnumel): New function.
+
+	* ov.h (octave_value::numel): New function.
+	* ov-base.h (octave_base_value::numel): Likewise.
+	* ov-base-mat.h (octave_base_matrix<T>::numel): Likewise.
+	* ov-base-scalar.h  (octave_base_scalar<T>::numel): Likewise.
+
+2003-10-27  Petter Risholm  <risholm@stud.ntnu.no>
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::is_true):
+	Only work for 2-dimensional objects.
+	* data.cc (ANY_ALL (FCN)): Allow dim to take values large than 2.
+
+	* ov.h (octave_value::ndims): New function.
+	* ov-base.h (octave_base_value::ndims): Likewise.
+	* ov-base-scalar.h (octave_base_scalar<T>::ndims): Likewise.
+	* ov-base-mat.cc (octave_base_matrix<MT>::ndims): New function.
+	(octave_base_matrix<MT>::length): Move here from ov-base-mat.h.
+	Make it work for N-d arrays.
+	* ov-base-mat.h (octave_base_matrix<MT>::ndims): Provide decl.
+	* data.cc (Fndims): New built-in function.
+
+2003-10-27  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/qz.cc:
+	Use new F77 arg macros in declarations of external Fortran
+	subroutines and for calling them.
+
+	* ops.h (DEFNDUNOP_OP, DEFNDUNOP_FN): New arg e, to name value
+	extractor function prefix.
+	* OPERATORS/op-bm-bm.cc, OPERATORS/op-cm-cm.cc,	OPERATORS/op-m-m.cc:
+	Change all uses.
+
+	* ov-cx-mat.h (octave_complex_matrix::complex_array_value,
+	octave_char_matrix::char_array_value,
+	octave_bool_matrix::bool_array_value): Rename from array_value.
+	* OPERATORS/op-bm-bm.cc, OPERATORS/op-cm-cm.cc,
+	OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc,
+	OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc,
+	OPERATORS/op-m-cm.cc, OPERATORS/op-m-m.cc,
+	OPERATORS/op-s-cm.cc: Use complex_array, char_array, and
+	bool_array as appropriate (instead of just array).
+
+	* ov-base.cc (octave_base_value::array_value,
+	octave_base_value::bool_array_value,
+	octave_base_value::complex_array_value,
+	octave_base_value::char_array_value): Provide default implementations.
+	* ov-base.h: Provide decls.
+
+	* ov.h (octave_value::array_value, octave_value::bool_array_value,
+	octave_value::complex_array_value, octave_value::char_array_value):
+	New virtual functions.
+
+2003-10-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-idx.cc (make_subs_cell): Pass dim_vector object to resize.
+
+	* ov-typeinfo.cc (octave_value_typeinfo::do_register_type):
+	Use resize_and_fill for types.
+
+	* oct-obj.h (octave_value_list::maybe_resize): Use resize_and_fill.
+	(octave_value_list::resize (int, const octave_value&)): Likewise.
+
+	* oct-map.cc (Octave_map::assign): Use resize_and_fill as needed.
+
+	* Cell.h (Cell (void)): Default size is now 0x0.
+
+2003-10-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc,
+	OPERATORS/op-cs-m.cc, OPERATORS/op-m-cm.cc, OPERATORS/op-s-cm.cc:
+	Include headers for N-d operators.
+
+2003-10-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ops.h (DEFNDUNOP_OP, DEFNDUNOP_FN, DEFNDBINOP_OP,
+	DEFNDBINOP_FN): New N-dimensional macros.
+	* OPERATORS/op-bm-bm.cc, OPERATORS/op-cm-cm.cc,
+	OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc,
+	OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc,
+	OPERATORS/op-cs-m.cc, OPERATORS/op-m-cm.cc,
+	OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc,
+	OPERATORS/op-m-s.cc, OPERATORS/op-s-cm.cc,
+	OPERATORS/op-s-m.cc: Use N-dimensional macros as appropriate.
+
+	* DLD-FUNCTIONS/rand.cc (do_rand, Frand, Frandn):
+	Handle N-dimensions.
+
+	* xpow.cc (elem_xpow (double, const NDArray&),
+	elem_xpow (double, const ComplexNDArray&),
+	elem_xpow (const NDArray&, double),
+	elem_xpow (const NDArray&, const NDArray&),
+	elem_xpow (const NDArray&, const Complex&),
+	elem_xpow (const NDArray&, const ComplexNDArray&),
+	elem_xpow (const Complex&, const NDArray&),
+	elem_xpow (const Complex&, const ComplexNDArray&),
+	elem_xpow (const ComplexNDArray&, double),
+	elem_xpow (const ComplexNDArray&, const NDArray&),
+	elem_xpow (const ComplexNDArray&, const Complex&),
+	elem_xpow (const ComplexNDArray&, const ComplexNDArray&):
+	New functions.
+	* xpow.h: Provide decls.
+
+	* xdiv.cc (x_el_div (double, const NDArray&),
+	x_el_div (double, const ComplexNDArray&),
+	x_el_div (const Complex, const NDArray&),
+	x_el_div (const Complex, const ComplexNDArray&)): New functions.
+	* xdiv.h: Provide decls.
+
+	* ov-bool-mat.h (boolNDArray::array_value): New function.
+	* ov-ch-mat.h (charNDArray::array_value): New function.
+	* ov-cx-mat.h (ComplexNDArray::array_value): New function.
+	* ov-re-mat.h (NDArray::array_value): New function.
+	(NDArray::double_nd_array_value): Delete.
+
+2003-10-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (text_getc): New static function.
+	(gobble_leading_white_space): Use it to simplify EOL processing.
+
+2003-10-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (fopen_mode_to_ios_mode): Ignore "t" in mode string.
+
+	* strfns.cc (Fischar): rename from Fisstr.
+
+2003-10-09  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (PRINT_ND_ARRAY): New macro.
+	(octave_print_internal): Use it.
+
+2003-10-08  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.cc	(octave_value::octave_value (const ArrayN<octave_value>&,
+	bool)):	New constructor.
+	* ov.h: Provide decl.
+
+	* ov.h (octave_value::squeeze): New virtual function.
+	* ov-base.cc (squeeze): Provide default implementation.
+	* ov-base-mat.h (octave_base_matrix::squeeze): New function.
+	* data.cc (Fsqueeze): New function.
+
+2003-10-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (make_valid_identifier): Return new string.
+	Arg is now string, not char *.
+	(ident_is_all_digits): New function.
+	(hdf5_read_next_data): Use it.
+
+2003-10-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (input_event_hook): Clear the event hook if hook_fcn
+	does not name a valid function.
+
+2003-10-01  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* mappers.cc (xabs): New function.
+	(install_mapper_functions): Use it instead of abs for complex args
+	in Octave's abs mapper function.
+
+2003-09-27  Joseph P. Skudlarek  <Jskud@Jskud.com>
+
+ 	* DLD-FUNCTIONS/minmax.cc (min, max): Use @deftypefn machinery,
+ 	doc missing semantics, and add more examples to texinfo strings.
+
+2003-09-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (read_mat5_binary_element): Return early if the
+	miMATRIX element has length zero.
+
+2003-09-24  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-cell.cc (octave_cell::subsasgn): Also attempt empty
+	conversion after extracting single element from cell array to
+	allow things like x{i}.elt = rhs to work.
+
+2003-09-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h (octave_value::dim_vector): New function.
+
+	* ov.h, ov.cc (octave_value::octave_value (const Cell&)):
+	New arg, is_cs_list.
+	(octave_value::octave_value (const NDArray&)):
+	Create octave_matrix object, not octave_double_nd_array object.
+	(octave_value::octave_value (const ComplexNDArray&),
+	octave_value::octave_value (const boolNDArray&),
+	octave_value (const charNDArray&, bool)): New constructors.
+
+	* ov.h, ov.cc (octave_value::nil_rep): New function.
+	(octave_value::octave_value (void)): Use it to initialize empty
+	octave_value objects.
+
+	* ov-list.h, ov-list.cc (octave_list::octave_list (const Cell&)):
+	New constructor.
+	* ov-cs-list.h (octave_cs_list::octave_cs_list (const Cell&)):
+	Likewise.
+
+	* data.cc (Fsize): Handle N-d objects.
+
+	* pr-output.cc (octave_print_internal): New versions for NDArray,
+	ComplexNDArray, boolNDArray, and charNDArray objects.
+	* pr-output.h: Provide decls.
+
+	* ov-re-nd-array.h, ov-re-nd-array.cc: Delete.
+
+	* Cell.h, Cell.cc, ov-base-mat.h, ov-base-mat.cc, ov-bool-mat.h,
+	ov-bool-mat.cc, ov-ch-mat.h, ov-ch-mat.cc, ov-cx-mat.h,
+	ov-cx-mat.cc, ov-re-mat.h, ov-re-mat.cc, ov-str-mat.h,
+	ov-str-mat.cc: Now N-dimensional.
+
+	* oct-map.h, oct-map.cc: Now based on Cell ojects instead of
+	octave_value_list objects.  Change all uses.
+
+	* TEMPLATE-INST/Array-tc.cc: Also instantiate ArrayN objects.
+	Don't instantiate assign funcitons for Array2 objects.
+
+2003-09-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-plot.cc (symbols_of_pt_plot): Default for automatic replot is
+	now true.
+
+	* pr-output.cc (Fformat): Doc fix.
+	(current_output_max_field_width, current_output_precision):
+	New functions.
+	(float_format::float_format (int, int, int)): Use them to provide
+	default values for field width and precision.
+	(print_g): New static variable.
+	(set_real_format, set_real_matrix_format, set_complex_format)
+	(set_complex_matrix_format, set_range_format): Handle print_g.
+	(pr_float, pr_complex): Don't scale if using print_g.
+	(set_format_style): Accept new "g" and "G" modifiers for short and
+	long formats and set print_g.
+	Set default precision and width for short to 5, 10.
+	Set default precision and width for long to 15, 20.
+
+2003-09-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* OPERATORS/op-m-cs.cc (complex_matrix_conv): Delete function.
+	(install_m_cs_ops): Don't install complex_matrix_conv here.
+
+	* OPERATORS/op-s-cs.cc (complex_matrix_conv): Delete function.
+	(install_s_cs_ops): Don't install complex_matrix_conv here.
+
+	* OPERATORS/op-s-s.cc (matrix_conv): Delete function.
+	(install_s_s_ops): Don't install matrix_conv here.
+
+	* OPERATORS/op-cs-s.cc (complex_matrix_conv): Delete function.
+	(install_cs_s_ops): Don't install complex_matrix_conv here.
+
+	* OPERATORS/op-cs-m.cc (complex_matrix_conv): Delete function.
+	(install_cs_m_ops): Don't install complex_matrix_conv here.
+
+	* OPERATORS/op-cs-cs.cc (complex_matrix_conv): Delete function.
+	(install_cs_cs_ops): Don't install complex_matrix_conv here.
+
+	* ov-typeinfo.cc (do_register_unary_op,
+	do_register_non_const_unary_op, do_register_binary_op,
+	do_register_assign_op, do_register_assignany_op,
+	do_register_pref_assign_conv, do_register_widening_op):
+	Print warning if installing a duplicate function.
+
+2003-09-10  Petter Risholm  <risholm@stud.ntnu.no>
+
+	* data.cc, ov-base.cc, ov-base.h, ov.h, ov.cc, ov-re-mat.h,
+	ov-scalar.h, ov-re-nd-array.h, ov-re-nd-array.cc: Use NDArray, not
+	ArrayN<double>.
+
+2003-09-09  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h (octave_value::double_nd_array_value): New function.
+	(octave_value::is_real_nd_array): New function.
+
+	* ov-base.cc (octave_base_value::double_nd_array_value): New function.
+	* ov-base.h: Provide decl.
+	(octave_base_value::is_real_nd_array): New function.
+
+2003-09-09  Petter Risholm  <risholm@stud.ntnu.no>
+
+	* ov-re-mat.h (octave_matrix::double_nd_array_value): New function.
+	* ov-scalar.h (octave_scalar::double_nd_array_value): New function.
+
+	* ov-re-nd-array.cc (octave_double_nd_array::assign): New function.
+	(octave_double_nd_array::try_narrowing_conversion): Likewise.
+	(octave_double_nd_array::valid_as_scalar_index): Likewise.
+	(octave_double_nd_array::double_value): Likewise.
+	(octave_double_nd_array::matrix_value): Likewise.
+	(octave_double_nd_array::complex_value): Likewise.
+	(octave_double_nd_array::convert_slice_to_matrix): Likewise.
+	* ov-re-nd-array.h: Provide decls.
+	(octave_double_nd_array::is_real_nd_array): New function.
+	(octave_double_nd_array::double_nd_array_value): New function.
+	(octave_double_nd_array::double_nd_array_value): New function.
+
+	* OPERATORS/op-m-nd.cc, OPERATORS/op-nd-m.cc,
+	OPERATORS/op-nd-nd.cc, OPERATORS/op-nd-s.cc, OPERATORS/op-s-nd.cc:
+	New files.
+	* Makefile.in (OP_XSRC): Add them to the list.
+
+2003-09-09  David Bateman  <dbateman@free.fr>
+
+	* OPERATORS/op-cs-s.cc (DEFBINOP): First arg is complex, second is
+	double.
+
+2003-09-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-cell.cc (tree_cell::rvalue): Don't assume that the number of
+	elements in a tree_argument_list is the same as the number of
+	objects it contains (cs-list objects expand to more than one).
+
+	* pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element):
+	New function, extracted from tm_row_const::tm_row_const_rep::init.
+	(tm_row_const::tm_row_const_rep::init): Use it.
+	Also handle cs-list objects.
+
+	* ov-cs-list.cc (octave_cs_list::print_raw): New function.
+	* ov-cs-list.h (octave_cs_list::print_raw): Provide decl.
+	* ov-list.h (octave_list::lst): Now protected instead of private.
+
+2003-09-04  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-plot.cc (subplot_style::columns_ok): Allow boxes style to
+	have 2 columns as well.
+
+2003-08-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dirfns.cc (Fls): Check EAGAIN to avoid losing output.
+	* toplev.cc (run_command_and_return_output): Likewise.
+
+2003-08-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* OPERATORS/op-str-s.cc, OPERATORS/op-str-m.cc: New files.
+	* Makefile.in (OP_XSRC): Add them to the list.
+
+2003-08-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defaults.cc (maybe_add_or_del_packages): Use source_file instead
+	of parse_and_execute.
+	* parse.y (source_file): New function.
+	(Fsource): Use it.
+	* parse.h (source_file): Provide decl.
+
+2003-08-21  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (octave_vsnprintf): Copy va_list to avoid using more
+	than once.
+
+2003-08-07  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (octave_vsnprintf): Call octave_raw_vsnprintf instead
+	of calling vsnprintf directly.
+	(octave_vsnprintf) [HAVE_C99_VSNPRINTF]: Declare nchars to be size_t.
+
+2003-08-06  Heine Kolltveit  <kolltvei@idi.ntnu.no>
+
+	* utils.cc (check_dimensions(Array<int>&, char),
+	get_dimensions(octave_value&, char, Array<int>&): New functions.
+	* utils.h (check_dimensions (Array<int>&, char),
+	get_dimensions (octave_value&, char, Array<int>&)): Provide decl.
+
+	* data.cc (fill_matrix): Also create N-d arrays.
+ 	(Fones, Fzeros): Handle more than 2 args to create N-d arrays.
+
+2003-07-30  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (make_diag): Use std::abs instead of our own ABS macro.
+
+	* utils.cc (identity_matrix): Move here from data.cc.
+	(identity_matrix): Use std::min instead of our own MIN macro.
+
+	* utils.h (identity_matrix): Provide decl.
+
+	* DLD-FUNCTIONS/svd.cc (Fsvd): Improve handling of empty matrix arg.
+
+	* ov.cc (octave_value(const ArrayN<Complex>&)): New constructor.
+	* ov.h (octave_value(const ArrayN<Complex>&)): Provide decl.
+
+2003-07-30  Heine Kolltveit  <kolltvei@idi.ntnu.no>
+
+	* ov.cc (octave_value(const ArrayN<double>&)): New constructor.
+	* ov.h (octave_value(const ArrayN<double>&)): Provide decl.
+
+2003-07-30  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h (Vpropagate_empty_matrices): Delete decl.
+	* ov.cc: (Vpropagate_empty_matrices): Delete.
+	(propagate_empty_matrices): Delete.
+	(symbols_of_ov): Delete DEFVAR for propagate_empty_matrices.
+
+	* utils.cc (empty_arg): Behave as though propagate_empty_matrices
+	is always 1.
+	* ov-range.cc (octave_range::is_true): Likewise.
+	* ov-base-mat.cc (octave_base_matrix<MT>::is_true): Likewise.
+
+	* octave.cc (maximum_braindamage): Also set
+	warn_matlab_incompatible to TRUE.
+
+	* lex.l (Vwhitespace_in_literal_matrix): Delete.
+	(whitespace_in_literal_matrix): Delete.
+	(symbols_of_lex): Delete DEFVAR for whitespace_in_literal_matrix.
+	(<MATRIX_START>{S}*\,{S}*, <MATRIX_START>{S}+,
+	(<MATRIX_START>{S}*{COMMENT}{SNLCMT}*,
+	<MATRIX_START>{S}*{NL}{SNLCMT}*, maybe_unput_comma): Behave as though
+	old Vwhitespace_in_literal_matrix varaible is always 1.
+
+	* octave.cc (maximum_braindamage): Don't set
+	whitespace_in_literal_matrix.
+
+2003-07-29  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install-lib): Use $(INSTALL), not
+	$(INSTALL_PROGRAM) for $(SHLLIB) files.
+
+2003-07-29  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* Makefile.in: Don't need special system.c for Cygwin.
+	* oct-procbuf.cc: Use popen rather than fork/exec for Windows.
+
+2003-07-28  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* sysdep.cc (CYGWIN_init): Convert TMPDIR to system agnostic path.
+
+2003-07-25  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* help.cc (try_info, display_help_text):
+	Protect spaces in filenames with quotes.
+	* oct-hist.cc (do_edit_history): Likewise.
+	* pt-plot.cc (open_plot_stream): Likewise.
+
+2003-07-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (get_size, octave_base_stream::error,
+	octave_base_stream::do_gets, octave_base_stream::getl,
+	octave_base_stream::gets, octave_base_stream::do_scanf,
+	octave_base_stream::scanf, octave_base_stream::do_oscanf,
+	octave_base_stream::oscanf, do_printf_conv,
+	octave_base_stream::do_printf, octave_base_stream::printf,
+	octave_base_stream::puts, octave_base_stream::invalid_operation,
+	octave_stream::getl, octave_stream::gets, octave_stream::scanf,
+	octave_stream::oscanf, octave_stream::printf, octave_stream::puts,
+	octave_stream::invalid_stream_error): Handle name of calling
+	function for error messages as a std::string object.  Change all
+	callers.
+
+	* file-io.cc (Fprintf, Fputs): New functions, so we can get
+	function prefixes on error messages right.
+	(Ffgetl, Ffgets, Ffprintf, Fsprintf, Fputs, Ffscanf, Fsscanf):
+	Pass name of calling function to octave_stream method.
+
+	* oct-stream.h (octave_base_stream::do_char_scanf,
+	octave_base_stream::do_real_scanf): Delete unused decls.
+
+	* load-save.cc (read_mat5_binary_element): Correctly read struct
+	arrays.
+
+	* pt-misc.cc (tree_parameter_list::initialize_undefined_elements):
+	New args, warnfor and nargout.  Change all callers.
+	(symbols_of_pt_misc): New function.
+	(warn_undefined_return_values): New function.
+
+	* octave.cc (maximum_braindamage): Don't set
+	define_all_return_values.
+
+	* ov-usr-fcn.cc (ov_user_function::do_multi_index_op): Always
+	intiialize undefined elements in ret_list to [].
+	Never return last computed value.
+	(Vreturn_last_computed_value, Vdefine_all_return_values): Delete.
+	(return_last_computed_value, define_all_return_values): Delete.
+	(symbols_of_ov_usr_fcn): Delete DEFVARs for
+	return_last_computed_value, define_all_return_values, and
+	default_return_value.
+
+2003-07-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-misc.cc (tree_parameter_list::convert_to_const_vector):
+	Don't skip undefined elements.
+
+2003-07-13  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (maximum_braindamage): Don't set
+	default_global_variable_value or initialize_global_variables.
+
+	* pt-decl.cc (Vinitialize_global_variables): Delete.
+	(initialize_global_variables): Delete.
+	(symbols_of_pt_decl): Delete.
+	(tree_global_command::do_init): Default initial value is now
+	always [].
+
+2003-07-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (maximum_braindamage): Don't set default_eval_print_flag.
+
+	* parse.y (Vdefault_eval_print_flag): Delete:
+	(default_eval_print_flag): Delete.
+	(symbols_of_parse): Delete DEFVAR for default_eval_print_flag.
+	(Feval, Fevalin): Return empty octave_value_list and turn printing
+	on in eval_string if nargout is zero.
+
+	* ov-list.cc (octave_list::assign): Check
+	Vwarn_resize_on_range_error, not Vresize_on_range_error.
+
+	* ov.cc (Vwarn_resize_on_range_error): New variable.
+	(warn_resize_on_range_error): New function.
+	(symbols_of_ov): Add DEFVAR for warn_resize_on_range_error.
+
+	* ov.cc (Vresize_on_range_error): Delete.
+	(resize_on_range_error): Delete.
+	(symbols_of_ov): Delete DEFVAR for resize_on_range_error.
+
+	* pt-mat.cc (Vwarn_empty_list_elements): New variable.
+	(warn_empty_list_elements): New function.
+	(symbols_of_pt_mat): Add DEFVAR for warn_empty_list_elements.
+	(tm_row_const::tm_row_const_rep::init, tm_const::init):
+	Check Vwarn_empty_list_elements, not Vempty_list_elements_ok.
+
+	* pt-mat.cc (Vempty_list_elements_ok): Delete.
+	(empty_list_elements_ok): Delete.
+	(symbols_of_pt_mat): Delete DEFVAR for empty_list_elements_ok.
+
+2003-07-11  Russell Standish  <R.Standish@unsw.edu.au>
+
+	* TEMPLATE-INST/Array-tc.cc (resize_fill_value): Provide
+	specialization.
+
+2003-07-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* strfns.cc (Fchar): Force string conversions without warnings.
+
+	* ov.h (octave_value::convert_to_str, octave_value::all_strings,
+	octave_value::string_value, octave_value:convert_to_str_internal):
+	New arg, force.  Fix all derived classes to match.
+
+	* strfns.cc (Fchar): Temporarily reset Vwarn_num_to_str to avoid
+	warnings.
+
+	* ov.cc (convert_to_str): New arg, force.
+
+	* octave.cc (maximum_braindamage): Don't set treat_neg_dim_as_zero.
+
+	* utils.cc (Vwarn_neg_dim_as_zero): New variable.
+	(warn_neg_dim_as_zero): New function.
+	(symbols_of_utils): Add DEFVAR for warn_neg_dim_as_zero.
+	(check_dimensions): Check Vwarn_neg_dim_as_zero, not
+	Vtreat_neg_dim_as_zero.
+
+	* utils.cc (Vtreat_neg_dim_as_zero): Delete.
+	(treat_neg_dim_as_zero): Delete.
+	(symbols_of_utils): Delete DEFVAR for treat_neg_dim_as_zero.
+
+2003-07-09  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (maximum_braindamage): Don't set prefer_column_vectors.
+
+	* ov.cc (Vprefer_column_vectors): Delete.
+	(prefer_column_vectors): Delete.
+	(symbols_of_ov): Delete DEFVAR for prefer_column_vectors.
+
+	* octave.cc (maximum_braindamage): Don't set do_fortran_indexing.
+
+	* ov-re-mat.cc (octave_matrix::double_value,
+	octave_matrix::complex_value): Use Vwarn_fortran_indexing, not
+	Vdo_fortran_indexing.
+	* ov-range.cc (octave_range::double_value,
+	octave_range::complex_value): Likewise.
+	* ov-cx-mat.cc (octave_complex_matrix::double_value,
+	octave_complex_matrix::complex_value): Likewise.
+	* ov-ch-mat.cc (octave_char_matrix::double_value,
+	octave_char_matrix::complex_value): Likewise.
+	* ov-bool-mat.cc (octave_bool_matrix::double_value,
+	octave_bool_matrix::complex_value): Likewise.
+
+	* ov.cc (Vwarn_fortran_indexing): New variable.
+	(warn_fortran_indexing): New function.
+	(symbols_of_ov): Add DEFVAR for warn_fortran_indexing.
+	(octave_value::vector_value, octave_value::int_vector_value,
+	(octave_value::complex_vector_value): Check
+	Vwarn_fortran_indexing, not Vdo_fortran_indexing.
+
+	* ov.h (Vwarn_fortran_indexing): Provide decl.
+
+	* ov.cc (Vdo_fortran_indexing): Delete unused variable.
+	(do_fortran_indexing): Delete unused function.
+	(symbols_of_ov): Delete DEFVAR for do_fortran_indexing.
+	* ov.h (Vdo_fortran_indexing): Delete decl.
+
+	* ov.cc (octave_value::convert_to_str): Call convert_to_str_internal.
+	(octave_value::convert_to_str_internal): New virtual function.
+	Rename all derived class convert_to_str functions to match.
+
+	* variables.cc (generate_struct_completions): Set
+	discard_warning_messages, not Vwarning_option.  Also protect
+	warning_state.
+
+	* parse.y (fold): Temporarily discard warning messages.
+	Also protect warning_state.
+
+	* error.cc (discard_warning_messages): New variable.
+	(vwarning): Use it.
+	(warning): Don't print backtrace if discard_warning_messages is true.
+
+	* ov.cc (octave_value::convert_to_str):
+	Handle type conversion warning here.
+
+	* gripes.cc (gripe_implicit_conversion):
+	New function accepting std::string args.
+
+	* octave.cc (maximum_braindamage): Don't set
+	implicit_num_to_str_ok or implicit_str_to_num_ok.
+
+	* ov-base.cc (octave_base_value::char_matrix_value):
+	Vimplicit_num_to_str_ok no longer exists.
+	(octave_base_value::all_strings): Likewise.
+	(octave_base_value::string_value): Likewise.
+
+	* ov-str-mat.cc (octave_char_matrix_str::matrix_value): Warn based
+	on Vwarn_str_to_num instead of Vimplicit_str_to_num_ok.
+
+	* ov.cc (Vwarn_num_to_str, Vwarn_str_to_num): New variables.
+	(warn_num_to_str, warn_str_to_num): New functions.
+	(symbols_of_ov): Add DEFVARs for warn_num_to_str and Vwarn_str_to_num.
+	* ov.h (Vwarn_num_to_str, Vwarn_str_to_num): Provide decl.
+
+	* ov.cc (Vimplicit_num_to_str_ok, Vimplicit_str_to_num_ok):
+	Delete unused variables.
+	(implicit_num_to_str_ok, implicit_str_to_num_ok):
+	Delete unused functions.
+	(symbols_of_ov): Delete DEFVARs for implicit_num_to_str_ok and
+	implicit_str_to_num_ok.
+	* ov.h (Vimplicit_num_to_str_ok, Vimplicit_str_to_num_ok):
+	Delete decls.
+
+	* pt-mat.cc (tree_matrix::rvalue): Vimplicit_num_to_str_ok no
+	longer exists.
+
+	* ov.cc (Vwarn_imag_to_real): New variable.
+	(warn_imag_to_real): New function.
+	(symbols_of_ov): Add DEFVAR for warn_imag_to_real.
+	* ov.h (Vwarn_imag_to_real): Provide decl.
+
+	* ov.cc (Vok_to_lose_imaginary_part): Delete unused variable.
+	(ok_to_lose_imaginary_part): Delete unused function.
+	(symbols_of_ov): Delete DEFVAR for ok_to_lose_imaginary_part.
+	* ov.h (Vok_to_lose_imaginary_part): Delete decl.
+
+	* ov-complex.cc (octave_complex::double_value): Warn based on
+	Vwarn_imag_to_real instead of Vok_to_lose_imaginary_part.
+	(octave_complex::matrix_value): Likewise.
+	* ov-cx-mat.cc (octave_complex_matrix::double_value): Likewise.
+	(octave_complex_matrix::matrix_value): Likewise.
+
+	* octave.cc (maximum_braindamage): Don't set ok_to_lose_imaginary_part.
+
+2003-07-08  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.cc (sig_hup_or_term_handler): New function.
+	(install_signal_handlers): Install sig_hup_or_term_handler for
+	SIGHUP and SIGTERM instead of generic_sig_handler.
+	(Vsighup_dumps_octave_core, Vsigterm_dumps_octave_core):
+	New static variables.
+	(sighup_dumps_octave_core, sigterm_dumps_octave_core):
+	New static functions.
+	(symbols_of_sighandlers): Add DEFVARs for sighup_dumps_octave_core
+	and sigterm_dumps_octave_core.
+
+	* defaults.h.in (OCTAVE_LOCALAPIFCNFILEDIR, OCTAVE_LOCALAPIOCTFILEDIR):
+	Subsitute new variables.
+
+	* defun.cc (check_version): Compare version to OCTAVE_API_VERSION,
+	not OCTAVE_VERSION.  Mismatch is now fatal.
+	* defun-int.h (DEFINE_FUN_INSTALLER_FUN3): Pass
+	OCTAVE_API_VERSION instead of OCTAVE_VERSION to check_version.
+	* version.h (OCTAVE_API_VERSION): New macro, initial value api-v1.
+
+	* defaults.cc (Vdefault_exec_path): New static variable.
+	(set_default_default_exec_path): New function.
+	(install_defaults): Call it.
+	(exec_path): Use it.
+	(default_exec_path): New function.
+	(symbols_of_defaults): Add DEFVAR for DEFAULT_EXEC_PATH.
+
+2003-07-07  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defaults.h.in (OCTAVE_LOCALSTARTUPFILEDIR, OCTAVE_STARTUPFILEDIR):
+	Set values directly instead of constructing them.
+
+2003-06-28  Arno J. Klaassen  <arno@heho.snv.jussieu.fr>
+
+	* toplev.cc (octave_config_info): Key for OCTAVE_CONF_DEFS should
+	be DEFS, not UGLY_DEFS.
+
+2003-06-27  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.50.
+
+2003-06-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (symbol_exist): Distinguish between user and dld
+	functions loaded in memory.
+
+2003-06-24  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-mat.cc (tm_row_const::init, tm_const::init): Don't ignore
+	empty matrices that have one non-zero dimension.
+
+	* variables.cc (symbol_exist): Use dir_path::find_first_of to
+	search for .oct and .m files.
+
+	* ov-base.cc (octave_base_value::subsasgn): Also allow type
+	conversion for empty numeric objects with more than one index.
+	* ov-base-mat.cc (octave_base_matrix<T>::subsasgn): Likewise.
+
+2003-06-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (do_who): New arg, return_list.  If return_list is
+	true, return values in cell or struct arrays instead of printing.
+	(Fwho, Fwhos): If nargout is 1, ask do_who to return lists of values.
+	* oct-map.h (Octave_map (const std::string&, const octave_value_list&):
+	New constructor.
+
+2003-06-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-idx.cc (tree_index_expression::rvalue):
+	Correctly handle index expressions like x(end).f(end).
+	(tree_index_expression::lvalue): Likewise.
+
+	* pt-arg-list.cc (F__end__): Add nr, nc info to error messages.
+
+2003-06-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (set_format (const Matrix&, int&, double&)): Ask
+	any_element_is_negative to return true for negative zero as well.
+	(set_format (const ComplexMatrix&, int&, int&, double&)): Likewise.
+
+2003-06-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (main_loop): Set octave_interrupt_hook and
+	octave_bad_alloc_hook to unwind_protect::run_all here.
+	(recover_from_exception): Don't call unwind_protect::run_all here.
+
+	* pt-except.cc (do_catch_code): Return immediately if
+	octave_interrupt_immediately is nonzero.
+
+	* sighandlers.cc (sigint_handler): If jumping, don't set
+	octave_interrupt_state.
+
+2003-06-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (get_save_type): Avoid all save types other than
+	LS_DOUBLE to avoid apparent Matlab bugs.
+
+2003-06-13  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (frob_function, parse_fcn_file): Handle help_buf as
+	stack of strings.
+	* lex.l ({CCHAR}): Handle help_buf as stack of strings.
+	Store text returned from grab_help_text in help_buf here.
+	(reset_parser): Handle help_buf as stack of strings.
+	(prep_for_nested_function): Push empty string onto help_buf stack.
+	(grab_help_text): Return help text instead of storing it in help_buf.
+	* parse.h, parse.y (help_buf): Now a stack of strings.
+
+	* oct-stream.cc (printf_value_cache::string_value): Don't attempt
+	to extract values when none are available.
+
+2003-06-04  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-plot.cc (Vgnuplot_has_multiplot): Delete variable.
+	(gnuplot_has_multiplot): Delete.
+	(symbols_of_pt_plot): Delete DEFVAR for gnuplot_has_multiplot.
+
+2003-05-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.49.
+
+2003-05-28  Teemu Ikonen  <tpikonen@pcu.helsinki.fi>
+
+	* load-save.cc (save_mat5_binary_element, save_mat_binary_data):
+	Allow saving of non-7-bit ASCII characters.
+
+2003-05-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (FINISH_CHARACTER_CONVERSION,
+	octave_base_stream::do_scanf): Do a better job of resizing for
+	charachter conversions.
+
+2003-05-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-cx-mat.cc (octave_complex_matrix::assign): Move definition here.
+	* ov-cx-mat.h: From here.
+
+2003-05-24  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-range.cc (octave_range::try_narrowing_conversion): Convert to
+	[](1x0) instead of [](0x0) if range is empty.
+
+2003-05-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in: Handle DESTDIR.
+
+2003-05-13  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l: Use yyunput (X, yytext) instead of unput (X) for newer
+	versions of flex.
+
+2003-05-06  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.48.
+
+2003-05-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.47.
+
+2003-05-01  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (save_ascii_data): If saving a range with
+	non-integer base, limit, or increment, save as matrix instead.
+	(get_save_type): Avoid unsigned types.
+
+2003-04-30  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (initialize_pathsearch): Don't save old and set new
+	value of TEXMFDBS.
+
+	* toplev.cc (restore_texmfdbs_envvar): Delete function.
+	(Fsystem): Don't set and reset TEXMFDBS.
+
+	* toplev.h, toplev.cc (octave_original_texmfdbs): Delete variable.
+
+2003-04-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/getpwent.cc (Fgetpwnam): Delete unnecessary
+	c_str() method.
+
+2003-04-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc: Include <memory> for auto_ptr.
+
+2003-04-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (octave_config_info): Delete LIBKPATHSEA from struct.
+	* oct-conf.h.in: Don't substitute LIBKPATHSEA.
+
+	* octave.cc (octave_main): Don't call dir_path::set_program_name.
+
+2003-04-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-file.h (octave_file::empty_clone): Create an octave_scalar
+	object, not an octave_file object.
+
+2003-04-01  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (hdf5_read_next_data): Extract list before
+	assigning to map element.
+	(add_hdf5_data): Prefix faked names with '_' so they are valid
+	identifiers.
+
+2003-03-24  Mats Jansson  <mats.e.jansson@home.se>
+
+	* syscalls.cc (Fkill): Fixed docstring typo.
+
+2003-03-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-cell.h (octave_cell::is_matrix_type): New function.
+
+2003-03-09  Duncan Temple Lang  <duncan@research.bell-labs.com>
+
+	* octave.cc (octave_main): New arg, embedded.
+	* octave.h: Fix decl.
+	* main.c: Pass 0 for embedded here.
+
+2003-03-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.46.
+
+	* oct-conf.h.in: Undo previous change.
+
+	* load-save.cc (read_mat5_binary_element): Handle structure arrays.
+	(save_mat5_binary_element): Likewise.
+
+2003-03-01  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-cell.cc (octave_cell::subsasgn): Use make_unique in
+	appropriate places to preserve copy on write semantics.
+
+	* oct-conf.h.in: Substitute OCTAVE_CONF_KPATHSEA_INCFLAGS.
+
+	* oct-stdstrm.h (octave_stdiostream::output_stream): Return stream
+	if mode is out, not in.
+
+2003-02-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* strfns.cc (Fchar): New function.
+
+	* ov-cell.cc (octave_cell::all_strings): Allow elements to be
+	string arrays.
+	* ov.cc (octave_value::all_strings, octave_value::convert_to_str):
+	New optional arg, pad.  Change all derived classes.
+
+	* ov-struct.cc (Ffieldnames, Fisfield): Move here from data.cc.
+
+	* data.cc (Ffieldnames): Rename from Fstruct_elements.  Return
+	cell array instead of a string array.
+	(Fisfield): Rename from struct_contains.
+
+2003-02-22  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* toplev.cc: Put config info in array of strings, then convert to map.
+
+2003-02-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (symbol_exist): For names like foo.bar, don't omit
+	the part after the dot.
+
+2003-02-21  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (fun_to_call): New static variable.
+	(octave_main): Pass it to main_loop.
+	(long_opts): Accept --funcall.
+	(usage_string, verbose_usage): Add --funcall.
+
+	* toplev.cc (main_loop): New arg, fun_to_call.  If non-empty,
+	evaluate this function before continuing.
+
+2003-02-21  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* file-io.cc (Fmkstemp): Use OCTAVE_LOCAL_BUFFER instead of using
+	std::auto_ptr directly.
+
+2003-02-21  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h, ov.cc (octave_value (long long int)): New constructor.
+	(octave_value (unsigned long long int)): Likewise.
+
+	* oct-obj.h (octave_value_list::operator delete): Handle systems
+	with or without placement delete.
+
+2003-02-21  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* utils.cc (octave_vsnprintf): Return value of vsnprintf is int,
+	not size_t.  Make sure there is some space left in the buffer for
+	vsnprintf versions which return the number of characters written
+	even when the buffer is too short.
+
+2003-02-20  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* debug.cc (get_user_function): Use dynamic_cast, not static_cast.
+
+	* ov-usr-fcn.cc (octave_user_function::traceback_error): Now const.
+
+	* ov.cc (octave_value (const octave_fcn_handle&)): New constructor.
+	(octave_value::fcn_handle_value): New virtual function.
+	* ov-base.cc (octave_value::fcn_handle_value): Provide default.
+	* ov-usr-fcn.cc (octave_user_function::stash_fcn_file_name): New
+	arg, nm.  Change all callers.
+	* ov-fcn.h (octave_function::is_nested_function): New virtual function.
+	* parse.y (get_feval_args): New function.
+	(feval (octave_function *, const octave_value_list&, int)): Likewise.
+	(feval (const octave_value_list&, int)): Allow the first arg to be
+	a function handle as well as a string.
+	* variables.cc (load_function): New function.
+	* pt-walk.h, pt-pr-code.h, pt-pr-code.cc, pt-check.h, pt-check.cc,
+	pt-bp.h, pt-bp.cc: Handle new tree_fcn_handle class.
+	* pt-all.h: Include pt-fcn-handle.h.
+	* pt-fcn-handle.h, pt-fcn-handle.cc, ov-fcn-handle.h,
+	ov-fcn-handle.cc: New files.
+
+2003-02-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (FCN_HANDLE): New token type.
+	(fcn_handle): New non-terminal.
+	(primary_expr): Also accept fcn_handle.
+	(tree_fcn_handle_type): New %type.
+	(union): New field, tree_fcn_handle_type.
+	(make_fcn_handle): New function.
+
+	* lex.l (@{IDENT}): Recognize function handle syntax.
+	(@): Don't recognize "@" as a single token.
+
+	* load-save.cc (struct hdf5_callback_data): Provide constructor.
+	(hdf5_callback_data::name, hdf5_callback_data::doc): Now
+	std::string instead of char*.  Change all uses.
+
+2003-02-18  Roger Banks  <rbanks@colsa.com>
+
+	* load-save.cc (read_ascii_data, read_ascii_data,
+	read_mat5_binary_element, save_mat5_binary_element,
+	save_ascii_data): Handle cell arrays.
+	(write_mat5_cell_array): New function.
+
+2003-02-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (DLD_XSRC): Delete log.cc from the list.
+	Add sqrtm.cc to the list.
+
+	* DLD-FUNCTIONS/log.cc: Delete.
+
+2003-02-18  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* DLD-FUNCTIONS/sqrtm.cc: New file.
+
+2003-02-18  David Bateman  <dbateman@free.fr>
+
+	* DLD-FUNCTIONS/lu.cc (Flu): Allow non-square matrices.
+
+2003-02-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (read_binary_file_header, do_load, do_save,
+	write_header): No longer static.
+	(load_save_format): Move enum decl to load-save.h.
+
+2003-02-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stdstrm.h, oct-stdstrm.cc (octave_base_stdiostream,
+	octave_iostdiostream, octave_istdiostram, octave_ostdiostream):
+	Combine all functionality into one class, octave_stdiostream.
+	Change all uses.
+
+	* file-io.cc (Ftmpfile, Fmkstemp): New functions.
+	* oct-stdstrm.h (octave_iostdiostream): New class.
+	(octave_istdiostream::octave_istdiostream,
+	octave_istdiostream::create,
+	octave_ostdiostream::octave_ostdiostream, octave_ostdiostream::create,
+	octave_iostdiostream::octave_iostdiostream,
+	octave_iostdiostream::create): Make close function the last arg.
+	Change all uses.
+
+	* c-file-ptr-stream.h (io_c_file_ptr_stream): New class.
+
+2003-02-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (maximum_braindamage): Set boolean built-in variables
+	to true and false instead of 1.0 and 0.0.
+	(octave_main): Likewise.
+	* error.cc (Fwarning): Likewise.
+
+	* pager.cc (Fmore): Make the no-arg case work too.
+
+	* ov-str-mat.h (octave_char_matrix_str::is_real_type,
+	octave_char_matrix_str::is_matrix_type,
+	octave_char_matrix_str::is_numeric_type): Always return false.
+
+2003-02-13  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (<CCHAR>): If we are parsing a command, reset start state.
+	Use BEGIN (INITIAL) instead of BEGIN 0.  Use parens around start
+	state in BEGIN statements.
+
+2003-02-13  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* variables.cc (Fmlock, Fmunlock, Fmislocked): New functions.
+
+	* variables.cc (mlock, munlock, mislocked): New functions.
+	* variables.h: Provide decls.
+
+	* symtab.h (symbol_record::unmark_static): New function.
+
+2003-02-12  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* error.cc (reset_error_handler): New function.
+	* toplev.cc (main_loop): Use it here.
+	* lex.l (reset_parser): Don't set error_state and warning_state here.
+	* parse.y (eval_string): Reset parser before calling yyparse.
+
+2003-01-29  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (Ffmod): New function.
+
+	* c-file-ptr-stream.cc (c_file_ptr_buf::underflow_common): New
+	function.
+	* c-file-ptr-stream.h (c_file_ptr_buf::underflow,
+	c_file_ptr_buf::uflow): Use it.
+	(c_file_ptr_buf): Derive from std::streambuf, not OCTAVE_STD_FILEBUF.
+	Don't cache file descriptor.
+
+2003-01-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/minmax.cc: Move min and max functions from here to
+	liboctave/dMatrix.cc and liboctave/CMatrix.cc.
+
+2003-01-24  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/rand.cc: Rewrite to use new octave_rand functions.
+
+2003-01-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (octave_base_stream::do_printf): Handle values
+	outside the range of integers in int conversions for
+	compatibilitiy wtih Matlab.
+
+2003-01-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (get_mat_data_input_line): Handle lines with CR
+	only as separator.
+
+	* oct-stream.cc (octave_base_stream::do_printf): Handle Inf and
+	NaN in int conversions for compatibility with Matlab.
+
+	* data.cc (symbols_of_data): Doc fix for realmin.
+
+	* cutils.c (octave_raw_vsnprintf): New function.
+	* utils.cc (octave_snprintf): Move here from cutils.c.
+	(octave_Vsnprintf): Likewise.  Allow octave_raw_vsnprintf to be
+	interrupted.
+	* utils.h (octave_vsnprintf, octave_snprintf): No longer extern "C".
+
+2003-01-21  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-loop.cc (tree_complex_for_command::eval): Fix typo.
+
+2003-01-16  Mumit Khan  <khan@nanotech.wisc.edu>
+
+	* mk-oct-links: Use $SED if set.
+	* mkbuiltins: Likewise.
+	* mkdefs: Likewise.
+	* mkdocs: Likewise.
+	* mkgendoc: Likewise.
+	* mkops: Likewise.
+
+2003-01-11  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* Makefile.in (gendoc$(BUILD_EXEEXT)): Pass $(BUILD_CXXFLAGS) and
+	$(BUILD_LDFLAGS) to compiler.
+
+2003-01-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (Fassignin): New function.
+
+2003-01-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.cc (make_sig_struct): New function.
+	(symbols_of_sighandlers): Add DEFCONST for SIG struct.
+
+	* syscalls.cc (Fkill): New function.
+
+2003-01-06  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (get_size): If only one dimension is specified and
+	it is zero, also set the other dimension to zero instead of one.
+
+2003-01-04  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sysdep.cc [__DECCXX]: Add a kluge for some missing template
+	functions.
+
+2003-01-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-usr-fcn.cc (octave_vr_val): Assert vr_list != 0, not vr_list.
+	* variables.cc (builtin_string_variable, builtin_any_variable,
+	builtin_real_scalar_variable, bind_builtin_variable): Likewise.
+
+	* TEMPLATE-INST/Array-tc.cc: Provide specialization of
+	Array<octave_value>::resize_fill_value before instantiation of
+	Array<octave_value>.
+
+	* oct-obj.h (octave_value_list::operator delete): Define version
+	of delete operator to correspond to placement new operator.
+
+	* mkgendoc: In generated code, define __USE_STD_IOSTREAM if using
+	Compaq C++.
+
+	* Makefile.in (distclean): Also remove doc-files and gendoc.cc.
+
+	* input.cc (initialize_command_input): Use const for
+	initialization of char * from literal string.
+
+	* pt-plot.cc (subplot::extract_plot_data): Call single_subsref,
+	not subsref.
+	* ov.h, ov.cc (single_subsref (const std::string&, const
+	octave_value_list&)): Rename from subsref.
+
+	* symtab.cc (symbol_table::rename): Explicitly convert C string to
+	std::string so type of second arg of ?: matches third.
+	(symbol_table::lookup): Likewise.
+
+	* mappers.cc: Remove std:: qualifiers from C library names.
+
+2003-01-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-exp.h (tree_expression::has_magic_end): New pure virtual function.
+	* pt-id.h (tree_identifier::has_magic_end): New function.
+	* pt-colon.h (tree_colon_expression::has_magic_end): Likewise.
+	* pt-idx.h (tree_index_expression::has_magic_end): Likewise.
+	* pt-const.h (tree_constant::has_magic_end): Likewise.
+	* pt-unop.h (tree_unary_expression::has_magic_end): Likewise.
+	* pt-binop.h (tree_binary_expression::has_magic_end): Likewise.
+	* pt-assign.h (tree_multi_assignment::has_magic_end): Likewise.
+	(tree_simple_assignment::has_magic_end): Likewise.
+	* pt-mat.cc (tree_matrix::has_magic_end): Likewise.
+	* pt-arg-list.cc (tree_argument_list::has_magic_end): Likewise.
+
+	* pt-arg-list.cc (tree_argument_list::append): Check all
+	expression types for magic end token..
+
+	* file-io.cc (Ftmpnam): Improve error checking.
+	(symbols_of_file_io): Move definition of P_tmpdir here from dirfns.cc.
+
+	* dirfns.cc (symbols_of_dirfns): Install new built-in constant
+	P_tmpdir.
+
+2003-01-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dirfns.cc (symbols_of_dirfns): New function.
+	Install new built-in constant filesep.
+
+	* utils.cc (Fisvaranme): New function.
+	(valid_identifier): Identifiers can't start with digits!  Doh!
+
+	* lex.l (Fiskeyword): New function.
+
+	* Makefile.in (INCLUDES): Don't forget base-list.h.
+
+	* symtab.cc (symbol_record::define): If definition already exists,
+	redefine it instead of replacing it.
+
+	* variables.cc (symbol_exist): Don't use reference when handling
+	sr->def ().
+
+	* pt-plot.cc (save_in_tmp_file): octave_value arg is now const.
+	* pt-misc.cc (tree_parameter_list::initialize_undefined_elements):
+	Likewise.
+
+	* symtab.cc (symbol_record::clear): Don't do anything if the
+	symbol record is already undefined.
+
+2003-01-01  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-arg-list.cc (tree_argument_list::append): New function.
+	(tree_argument_list::convert_to_const_vector): Don't save and
+	set pointer to indexed object if list_includes_magic_end is false.
+	* pt-arg-list.h (tree_argument_list::append): Provide decl.
+	(tree_argument_list::list_includes_magic_end): New data member.
+	(tree_argument_list::tree_argument_list): Initialize it.
+
+	* ov-base.cc (octave_base_value::char_matrix_value,
+	octave_base_value::all_strings,	octave_base_value::string_value):
+	Attempt conversions here if Vimplicit_num_to_num_ok is true.
+
+	* ov.cc (Vimplicit_num_to_str_ok): Move here from pt-mat.cc and
+	make extern.
+	* ov.h: Provide decl.
+
+	* oct-stream.cc (printf_value_cache::looking_at_string): Delete.
+	(printf_value_cache::string_value): Just attempt conversion.
+	(octave_base_stream::do_printf): When doing '%s' format,
+	just attempt converstion.
+
+	* file-io.cc (Ffread): Allow size to be omitted even when
+	additional arguments are given.
+
+2002-12-31  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-arg-list.cc (F__end__): Fail if rows or columns is negative.
+	(tree_argument_list::convert_to_const_vector): Only protect and
+	save pointer to the indexed object if it is a constant.
+
+	* syscalls.cc (Fmkfifo): Use long_value instead of cast.
+
+	* ov.h (octave_value::short_value, octave_value::ushort_value,
+	octave_value::uint_value, octave_value::long_value,
+	octave_value::ulong_value): New functions.
+
+	* syscalls.cc (mk_stat_map, Fgetegid, getgid, geteuid): Likewise.
+	Delete unnecessary casts.
+	* file-io.cc (Ffgetl, Ffgets, Fftell, Fsscanf): Likewise.
+	* toplev.cc (Fsystem): Likewise.
+
+	* ov-file.h (octave_file::double_value,	octave_file::scalar_value):
+	Delete unnecessry cast.
+
+	* ov.cc (octave_value::octave_value): Add constructors for
+	octave_time, short int, unsigned short int, unsigned int, long
+	int, unsigned long int,
+
+	* ov.h (octave_value::do_subsref (const std::string&, const
+	octave_value_list&)): Rename from subsref.  Change all derived classes.
+
+	* input.cc (generate_completion): Delete unused variable prefix_len.
+
+	* ov.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Delete volatile
+	qualifier for decls of static_type_id and t_id.
+	(DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Likewise, for def of t_id.
+
+2002-12-30  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (Ffile_in_path): Index args correctly.
+
+	* utils.cc (Ffile_in_path): Call error, not print_usage, for
+	invalid option error.
+	(Ffile_in_loadpath): Likewise.
+
+	* load-save.cc: Use OCTAVE_LOCAL_BUFFER instead of local automatic
+	arrays or using new/delete.
+
+	* lex.l (.): Try another approach to handling EOF here.
+
+	* load-save.cc (read_mat_ascii_data): Use isalpha and isalnum, not
+	::isalpha and ::isalnum.
+
+	* defaults.cc (maybe_add_or_del_packages): SCRIPT_FILE arg is now
+	a const reference type.
+
+	* ov.h (octave_value::subsref, octave_value::subsasgn,
+	octave_value::assign, octave_value::do_non_const_unary_op,
+	octave_value::numeric_assign): TYPE arg is now a const reference
+	type.  Change all derived classes.
+
+	* ov.cc (octave_value::subsref (const std::string&, const
+	octave_value_list&)): Move body here, from ov.h.
+
+	* octave.cc (octave_main): Return 0 at end of function to avoid
+	compiler warnings.
+
+2002-12-30  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* parse.y: Fix typo in doc string.
+
+2002-12-29  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/lpsolve.cc (Flpsolve): Rename from Flp_solve.
+	(Flpsolve_options): Rename ffrom Flp_solve_options.
+
+2002-12-27  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (Fevalin): New function.
+
+	* variables.cc (curr_caller_sym_tab): New global variable.
+	* variables.h: Provide decl.
+	(initialize_symbol_tables): Initialize it.
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Protect	and set it here.
+
+2002-12-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (search_path_for_file): Second arg now string_vector.
+	Use find_first_of, not find.
+	(search_path_for_all_files): Second arg now string_vector.
+	Use find_all_first_of, not find_all.
+	(Ffile_in_path): Accept cell array of strings as first argument.
+	(Ffile_in_loadpath): Likewise.
+
+	* dynamic-ld.cc (octave_dynamic_loader::load): New arg, file_name.
+	(octave_dynamic_loader::do_load): Likewise.  If file_name is not
+	empty, use it instead of searching in path.
+
+	* parse.y (load_fcn_from_file): Use find_first_of to perform search.
+
+	* ov-cell.cc (octave_cell::all_strings): New function.
+	* ov-cell.h: Provide decl.
+
+2002-12-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (function_end): If parsing a nested function, set
+	lexer_flags.parsing_nested_function to -1.
+	(frob_function): If lexer_flags.parsing_nested_function is
+	negative, set it to zero.
+	* lex.h (lexical_feedback::parsing_nested_function): Now int.
+	Change uses as needed.
+
+	* lex.l (NESTED_FUNCTION_BEGIN): Rename from NESTED_FUNCTION_START.
+	Now an exclusive start state.
+	(NESTED_FUNCTION_END): New exclusive start state.
+	(is_keyword): When matching a new function keyword in a nested
+	function context, explicitly return END and set start state to
+	NESTED_FUNCTION_END.
+	(.): Accept EOF here too.
+
+	* variables.cc (link_to_builtin_or_function): Maybe prepend parent
+	function name symbol name.
+
+	* parse.y (parent_function_name): New variable.
+	(fcn_name): New non-terminal.
+	(function2): Use it.
+	(parsed_fcn_name): Fold into fcn_name.
+	(function_end): Don't call check_for_garbage_after_fcn_def.
+	Set lexer_flags.parsing_nested_function on EOF.
+	* parse.h: Provide decl for parent_function_name.
+
+	* ov-usr-fcn.h (octave_user_function::mark_as_nested_function,
+	(octave_user_funciton::is_nested_function): New functions.
+	(octave_user_function::nested_function): New data member.
+	(octave_user_function::do_multi_index_op): Maybe protect and set
+	curr_parent_function pointer.
+	* parse.y (frob_function): Maybe mark as nested function.
+
+	* toplev.cc (curr_parent_function): New global variable.
+	* toplev.h: Provide decl.
+
+	* lex.l (check_for_garbage_after_fcn_def): Delete.
+	* lex.h: Delete decl.
+
+	* lex.l (prep_for_nested_function): New function.
+	(<NESTED_FUNCTION_START>): Use it here.
+	(is_keyword): And here.
+	(lookup_identifier): Maybe prepend parent function name.
+
+	* variables.cc (initialize_symbol_tables): Give names to the three
+	main symbol tables.
+	* symtab.cc (symbol_table::lookup, symbol_table::rename): Print
+	debugging info if Vdebug_symtab_lookups is nonzero.
+	(debug_symtab_lookups): New function.
+	(Vdebug_symtab_lookups): New static varaible.
+	(symbols_of_symtab): DEFVAR it.
+	* symtab.h (symbol_table::table_name): New member variable.
+	(symtab_count): New static member variable.
+	(symbol_table::symbol_table): Handle table name.
+
+2002-12-24  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (frob_function): Don't give nested functions the same
+	name as the function file.
+
+	* lex.h (lexical_feedback::parsing_nested_function): New data member.
+	* lex.l (lexical_feedback::init): Initialize it to false.
+	(<NESTED_FUNCTION_START>): Set lexer_flags.parsing_nested_function
+	to true.
+
+	* parse.y (symtab_context): Now a stack.  Change all uses.
+
+	* lex.l (NESTED_FUNCTION_START): New start state to handle
+	"function" keyword in a nested function context.
+	(prep_for_function): New function.
+	(is_keyword): Allow functions to be nested in function files.
+
+	* lex.l (is_keyword): Maybe ignore END tokens.
+	Increment and decrement end_tokens_expected as appropriate.
+	(handle_identifier): If is_keyword returns -1, return immediately.
+	({IDENT}{S}*): Do nothing if handle_identifier returns -1.
+
+	* parse.y (end_tokens_expected): New variable.
+	(parse_fcn_file): Protect and set it.
+
+	* parse.y (begin_obj_idx): Increment
+	lexer_flags.looking_at_object_index.
+	(postfix_expr): Decrement it as appropriate here.
+
+	* lex.h (lexical_feedback::looking_at_object_index): Now int.
+
+	* parse.y (postfix_expr): Reset	lexer_flags.looking_at_object_index
+	in () and {} cases too.
+
+2002-12-21  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-arg-list.cc (indexed_object, indexed_position):
+	New file-scope static variables.
+	(tree_argument_list::convert_to_const_vector): New arg, object.
+	Protect and set indexed_object and indexed_position.
+	(F__end__): New function.
+
+	* octave-lvalue.h (octave_lvalue::object): New member function.
+	* pt-idx.cc (make_value_list): New arg, object.  Change all
+	callers.  Pass object to convert_to_const_vector.
+
+	* lex.h (lexical_feedback.looking_at_object_index): New data member.
+	* lex.l (lexical_feedback::init): Initialize it.
+	(is_keyword): If looking at object index, end is not a keyword.
+	(handle_identifier): If end is not a keyword, transform it to __end__.
+	* parse.y (begin_obj_idx): New non-terminal.
+	(postfix_expr): Use it.
+
+	* defun.cc (install_builtin_function): New arg, can_hide_function.
+	* defun-int.h: Fix decl.
+	(DEFCONSTFUN_INTERNAL): New macro.
+	* defun.h (DEFCONSTFUN): New macro.
+	* mkbuiltins (XDEFCONSTFUN_INTERNAL): New macro.
+	* mkgendoc: Likewise.
+	* Makefile.in (DEFUN_PATTERN): Make it work for DEFCONSTFUN too.
+	* symtab.h (symbol_record::can_hide_function): New data member.
+	(symbol_record::symbol_record): Initialize it.
+	* symtab.cc (symbol_record::variable_reference): Also check
+	can_hide_function flag.
+
+2002-12-20  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/time.cc (extract_tm): Use int_value() instead of
+	casting double_value() to int.
+
+	* ov.cc (octave_value::next_subsref): Arg "skip" is now size_t.
+
+	* oct-obj.h (octave_value_list::octave_value_list (double),
+	octave_value_list::octave_value_list (const Matrix&),
+	octave_value_list::octave_value_list (const DiagMatrix&),
+	octave_value_list::octave_value_list (const RowVector&),
+	octave_value_list::octave_value_list (const ColumnVector&),
+	octave_value_list::octave_value_list (const Complex&),
+	octave_value_list::octave_value_list (const ComplexMatrix&),
+	octave_value_list::octave_value_list (const ComplexDiagMatrix&),
+	octave_value_list::octave_value_list (const ComplexRowVector&),
+	octave_value_list::octave_value_list (const ComplexColumnVector&),
+	octave_value_list::octave_value_list (const char *),
+	octave_value_list::octave_value_list (const std::string&),
+	octave_value_list::octave_value_list (const string_vector&),
+	octave_value_list::octave_value_list (double, double, double),
+	octave_value_list::octave_value_list (const Range&): Delete.
+	Adjust uses of octave_value/octave_value_list to handle this change.
+
+	* ov.cc (octave_value::octave_value (int)): New constructor.
+	* ov.h: Provide decl.
+	In files that construct integer-valued octave_value objects, use
+	ints instead of casing to double.
+
+2002-12-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (read_mat_ascii_data): Allow commas to separate values.
+	Try harder to convert filenames to valid identifiers in a
+	Matlab-compatible way.
+
+2002-12-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in: No need to add $(LIBKPATHSEA) to LINK_DEPS, since
+	it is not included in liboctave.
+
+2002-12-18  JD Cole  <jdcole@san.rr.com>
+
+	* pt-check.cc (tree_checker::visit_subplot_axes,
+	tree_checker::visit_do_until_command): New functions.
+	* pt-check.h: Provide decl.
+
+2002-12-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (Fclear): Fix off-by-one error.
+
+	* oct-stream.cc (octave_base_stream::do_gets): Correctly read
+	last line of file even if it does not end with new line
+	character.
+
+	* pt-select.cc (equal): Don't look up == op, just try it and see
+	whether it works.
+
+	* oct-stream.cc (printf_format_list::printf_format_list):
+	Handle empty format string.
+
+2002-12-06  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-mat.cc (class tm_row_const::tm_row_const_rep): Derive from
+	octave_base_list instead of SLList.  Fix tm_row_const member
+	functions as needed, change all uses.
+	(class tm_const): Derive from octave_base_list, not SLList.  Fix
+	member functions as needed, change all uses.
+	* pt-mat.h (class tree_matrix): Derive from octave_base_list
+	instead of including SLList object as data member.  Fix member
+	functions as needed, change all uses.
+
+	* pt-idx.h (tree_index_expression::args,
+	tree_index_expression::arg_nm, tree_index_expression::dyn_field):
+	Now std::list, not SLList.  Fix member functions as needed, change
+	all uses.
+
+	* oct-map.h (Octave_map::map): Now std::map instead of CHMap.
+	Fix member functions as needed, change all uses.
+
+	* oct-lvalue.h (octave_lvalue::idx): Now std::list instead of
+	SLList object.  Fix member functions as needed, change all uses.
+
+	* dynamic-ld.cc (octave_shlib_list::lib_list): Now std::list
+	instead of DLList object.  Fix member functions as needed, change
+	all uses.
+
+	* ov.h (octave_value::subsref, octave_value::subsasgn):
+	Index arg is not std::list, not SLList.  Change all derived
+	classes, all uses.
+
+	* pt-stmt.h (tree_statement_list): Derive from base_octave_list
+	object instead of including SLList object as data member.  Fix
+	member functions as needed, change all uses.
+	* pt-select.h (tree_switch_case_list): Likewise.
+	(tree_if_command_list): Likewise.
+	* pt-misc.h (tree_parameter_list, tree_return_list,
+	tree_va_return_list): Likewise.
+	* pt-plot.h (subplot_list): Likewise.
+	* pt-mat.h (tree_matrix): Likewise.
+	* pt-decl.h (tree_decl_init_list): Likewise.
+	* pt-arg-list.h (tree_argument_list): Likewise.
+	* comment-list.h (octave_comment_list): Likewise.
+
+	* BaseSLList.cc, DLList.cc, Map.cc, SLList.cc, SLStack.cc,
+	Stack.cc: Delete.
+	* Makefile.in (DIST_SRC): Delete them from the list.
+
+	* BaseSLList.h, DLList.h, Map.h, Pix.h, SLList.h, SLStack.h,
+	Stack.h: Delete
+	* Makefile.in (INCLUDES): Delete them from the list.
+
+	* Map-oct-obj.cc, SLList-expr.cc, SLList-misc.cc, SLList-plot.cc,
+	SLList-tc.cc, SLList-tm.cc: Delete.
+	* Makefile.in (TI_XSRC): Delete them from the list.
+
+	* ov-base-mat.cc (octave_base_matrix::assign): Pass
+	MT::resize_fill_value () as third arg for ::assign.
+
+	* Cell.h (Cell::resize_fill_value): Use empty Matrix object, not
+	undefined octave_value object.
+	(Cell::Cell (int, int, const octave_value&)): Use
+	resize_fill_value () as default value, not undefined octave_value
+	object.
+
+2002-12-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (DEFUN_PATTERN): Make it work for DEFCMD too.
+
+	* base-list.h: New file.
+
+2002-12-04  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (octave_interpreter_ready): New global variable.
+	* toplev.h: Provide decl.
+
+	* octave.cc (octave_main): Call execute_default_pkg_add_files just
+	before executing startup files.  Set octave_interpreter_ready to
+	true before calling execute_default_pkg_add_files.
+
+	* defaults.cc (maybe_add_or_del_packages, default_load_path,
+	update_load_path_dir_path): New static functions.
+	(set_default_path, loadpath): Call update_load_path_dir_path.
+	(symbols_of_defaults): Use DEFVAR, not DEFCONST for DEFAULT_LOADPATH.
+	(execute_default_pkg_add_files): New function.
+	* defaults.h.in: Provide decl.
+
+	* utils.cc (search_path_for_all_files): New function.
+	(Ffile_in_loadpath, Ffile_in_path): Allow search to return all
+	files in the path.
+
+	* Cell.cc (Cell (const string_vector&)): New constructor.
+
+	* oct-obj.cc (octave_value_list::assign): Allow optional fill
+	value for resizing.
+	* oct-map.cc (Octave_map::assign): Pass fill_value in initial
+	assignment too.
+
+2002-12-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* TEMPLATE-INST/Map-tc.cc, TEMPLATE-INST/Map-fnc.cc: Delete.
+	* Makefile.in (TI_XSRC): Delete them from the list.
+
+	* fn-cache.h (octave_fcn_file_name_cache::cache): Now std::map,
+	not CHMap.
+
+	* TEMPLATE-INST/SLStack-i.cc, TEMPLATE-INST/SLStack-ovl.cc,
+	TEMPLATE-INST/SLStack-pc.cc, TEMPLATE-INST/SLStack-str.cc,
+	TEMPLATE-INST/SLStack-sym.cc, TEMPLATE-INST/SLStack-tok.cc,
+	TEMPLATE-INST/SLStack-ue.cc, TEMPLATE-INST/SLStack-ui.cc:
+	Delete unnecessary files.
+	* Makefile.in (TI_XSRC): Delete them from the list.
+
+	* toplev.cc (octave_atexit_functions): Now std::stack, not SLStack.
+	* pt-plot.cc (tmp_files): Likewise.
+	* lex.l (token_stack): Likewise.
+	(class bracket_brace_paren_nesting_level): Make context a data
+	member instead of deriving from SLStack object.
+	Use std::stack instead of SLStack.
+	* ov-usr-fcn.h (octave_user_function::saved_args): Likewise.
+	* symtab.h (symbol_record::context): Likewise.
+	(symbol_record::global_link_context): Likewise.
+
+	* unwind-prot.h (unwind_protect::elt_list): Rename from list.
+	Now std::stack, not SLStack.
+
+	* pt-stmt.h (tree_statement_list): Make list member data instead
+	of deriving from SLList object.
+	* pt-select.h (tree_switch_case_list): Likewise.
+	(tree_if_command_list): Likewise.
+	* pt-plot.h (subplot_list): Likewise.
+	* pt-mat.h (tree_matrix): Likewise.
+	* pt-decl.h (tree_decl_init_list): Likewise.
+	* pt-arg-list.h (tree_argument_list): Likewise.
+	* comment-list.h (octave_comment_list): Likewise.
+
+	* defun.h (DEFCMD): Rename from DEFUN_TEXT.  Provide DEFUN_TEXT as
+	an alias for DEFCMD.  Change all uses.
+
+	* variables.cc (at_top_level): New function.
+	(do_who, Fmark_as_command, Funmark_command): Use it.
+
+	* lex.l (COMMAND_START): Rename from TEXT_FCN.  Change all uses.
+	(MATRIX_START): Rename from MATRIX.  Change all uses.
+	* variables.cc (command_function_set): Rename from
+	text_function_set.
+	(mark_as_command): Rename from mark_as_text_function.
+	(is_marked_as_command): Rename from is_marked_as_text_function.
+	(Fmark_as_command): Rename from Fmark_as_text_function.
+	(Funmark_command): Rename from Funmark_text_function.
+	(is_command_name): Rename from is_text_function_name.
+	* symtab.h (symbol_record::COMMAND): Rename from TEXT_FUNCTION.
+	(symbol_record::mark_as_command): Rename from mark_as_text_function.
+	(symbol_record::unmark_command): Rename from
+	symbol_record::unmark_text_function.
+	(symbol_record::is_command): Rename from
+	symbol_record::is_text_function.
+	(symbol_record::symbol_def::mark_as_command): Rename from
+	symbol_record::symbol_def::mark_as_text_function.
+	(symbol_record::symbol_def::unmark_command): Rename from
+	symbol_record::symbol_def::unmark_text_function.
+	(symbol_record::symbol_def::is_command): Rename from
+	symbol_record::symbol_def::is_text_function.
+
+	* pt-jump.h, pt-jump.cc: Undo previous changes.
+	* parse.y: Undo previous changes for brea, continue, and return.
+
+2002-11-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-stmt.cc (tree_statement::eval): Allow the lookup to execute
+	script files.  If script file has been executed, don't bother to
+	call expr->rvalue ().
+
+2002-11-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (OCTINTERP_LINK_DEPS): Include $(FLIBS) in
+	OCTINTERP_LINK_DEPS.
+
+	* variables.cc (text_function_set): New static data.
+	(mark_as_text_function, unmark_text_function,
+	is_marked_as_text_function, Fmark_as_text_function,
+	Funmark_text_function): New functions.
+	(is_text_function_name): Handle functions marked as text functions
+	in special list, not just those marked in the symbol record.
+	* symtab.h (symbol_record::mark_as_text_function,
+	symbol_record::unmark_text_function,
+	symbol_record::symbol_def::mark_as_text_function,
+	symbol_record::symbol_def::unmark_text_function): New functions.
+
+	* oct-map.h (Octave_map::rows, Octave_map::columns): New functions.
+	* ov-struct.h (octave_struct::rows, octave_struct::columns,
+	octave_struct::length): New functions.
+
+2002-11-21  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_SH_LDFLAGS): New macro.
+	* toplev.cc (octave_config_info): Add it to the struct.
+
+	* lex.l (<TEXT_FCN>): If yytext begins with # or %, don't
+	recognize it as a string.
+
+	* oct-map.h (Octave_map::operator[]): New const version.
+	* oct-map.cc (equiv_keys): New function.
+	(assign (const idx_vector&, const Octave_map&)): New function.
+	* ov-struct.cc (octave_struct::subsasgn): Use it.
+
+2002-11-20  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.40.
+
+	* p-b-b.cc, op-bm-bm.cc, op-chm.cc, op-cm-cm.cc, op-cm-cs.cc,
+	op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc,
+	op-cs-s.cc, op-fil-b.cc, op-fil-bm.cc, op-fil-cm.cc, op-fil-cs.cc,
+	op-fil-lis.cc, op-fil-m.cc, op-fil-rec.cc, op-fil-s.cc,
+	op-fil-str.cc, op-list.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc,
+	op-m-s.cc, op-range.cc, op-s-cm.cc, op-s-cs.cc, op-s-m.cc,
+	op-s-s.cc, op-str-str.cc, op-bm-b.cc, op-cell.cc, BaseSLList.cc,
+	BaseSLList.h, ChangeLog, Map.cc, Map.h, SLList.cc, SLList.h,
+	SLStack.cc, SLStack.h, Stack.cc, Stack.h, oct-map.cc, oct-map.h,
+	oct-obj.cc, oct-obj.h, c-file-ptr-stream.cc, c-file-ptr-stream.h,
+	ov-base-mat.cc, ov-base-scalar.cc, ov-base-scalar.h, ov-base.cc,
+	ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool.cc, ov-bool.h,
+	ov-builtin.cc, ov-builtin.h, ov-ch-mat.cc, ov-ch-mat.h,
+	ov-colon.cc, ov-complex.cc, ov-complex.h, ov.h, ov-cx-mat.cc,
+	ov-cx-mat.h, ov-fcn.cc, ov-fcn.h, ov-file.cc, ov-file.h,
+	ov-list.cc, ov-list.h, ov-mapper.cc, ov-mapper.h, ov-range.cc,
+	ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h,
+	ov-str-mat.cc, ov-str-mat.h, ov-struct.cc, ov-struct.h,
+	ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc, ov-usr-fcn.h,
+	ov-va-args.cc, ov.cc, ov-base-mat.h, procstream.cc, procstream.h,
+	pt-arg-list.cc, pt-arg-list.h, pt-binop.cc, pt-binop.h,
+	pt-check.cc, pt-check.h, pt-cmd.cc, pt-cmd.h, pt-colon.cc,
+	pt-colon.h, pt-const.cc, pt-const.h, pt-decl.cc, pt-decl.h,
+	pt-except.cc, pt-except.h, pt-exp.cc, pt-exp.h, pt-id.cc, pt-id.h,
+	pt-idx.cc, pt-idx.h, pt-jump.cc, pt-jump.h, pt-loop.cc, pt-loop.h,
+	pt-mat.cc, pt-mat.h, pt-misc.cc, pt-misc.h, pt-pr-code.cc,
+	pt-pr-code.h, pt-select.cc, pt-select.h, pt-stmt.cc, pt-stmt.h,
+	pt-unop.cc, pt-unop.h, pt.cc, pt.h, symtab.h, token.cc, token.h,
+	unwind-prot.cc, unwind-prot.h, ov-base-nd-array.cc,
+	ov-re-nd-array.h, ov-re-nd-array.cc, ov-base-nd-array.h,
+	comment-list.h, comment-list.cc, DLList.cc, DLList.h,
+	ov-dld-fcn.h, ov-dld-fcn.cc, Cell.cc, Cell.h, pt-cell.h,
+	pt-cell.cc, ov-cell.h, ov-cell.cc, pt-plot.cc, pt-plot.h,
+	pt-assign.cc, pt-assign.h, pt-bp.cc, pt-bp.h, symtab.cc,
+	ov-cs-list.h, ov-cs-list.cc:
+	Use "defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION)" instead of
+	"! defined (NO_PRAGMA_INTERFACE_IMPLEMENTATION)".
+
+2002-11-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-obj.h (octave_value_list::~octave_value_list): New function.
+
+2002-11-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/odessa.cc (odessa_user_j): Put T in args(1), not
+	args(0).
+
+2002-11-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (symtab_context): Now extern.
+	* parse.h: Provide decl.
+	* lex.l (reset_parser): Set it to 0.
+
+2002-11-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-bp.cc (octave_debug_on_interrupt_state): New global variable.
+	* pt-bp.h: Provide decl.
+	(MAYBE_DO_BREAKPOINT): Check it.
+
+	* sighandlers.cc (sigint_handler): Handle debug_on_interrupt.
+	(Vdebug_on_interrupt): New static variable.
+	(symbols_of_sighandlers): New function.  DEFVAR Vdebug_on_interrupt.
+	(debug_on_interrupt): New function.
+
+	* lex.h (YY_FATAL_ERROR): Use OCTAVE_QUIT here.
+
+	* utils.cc (toplevel): Delete variable.
+
+	* sighandlers.cc (OCTAVE_MEMORY_EXHAUSTED_ERROR): Delete.
+
+2002-11-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.cc (octave_new_handler): Delete.
+	(install_signal_handlers): Don't call set_new_handler.
+	* toplev.cc (main_loop): Handle bad_alloc exception here.
+
+	* sighandlers.cc (octave_new_handler): Allow return after
+	OCTAVE_JUMP_TO_TOP_LEVEL.
+	(sigfpe_handler): Likewise.
+
+2002-11-13  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (is_variable): New static function.
+	(generate_struct_completions): Only evaluate objects that look
+	like variables.
+
+2002-11-12  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-jump.h, pt-jump.cc (tree_break_expression,
+	tree_continue_expression, tree_return_expression): Rename from
+	tree_break_command, tree_continue_command, tree_return_command.
+	Implement as expressions that return TRUE instead of commands.
+	Change all uses.
+	* parse.y (make_break_expression, make_continue_expression,
+	make_return_expression): Rename from make_break_command,
+	make_continue_command, make_return_command.  Change all uses.
+	(jump_expr): Rename from jump_command, type is now expression.
+	Use in simple_expr, not command.
+
+	* toplev.cc (octave_initialized): New global variable.
+	(main_loop): Set it to true here.
+	* sighandlers.cc (sigint_handler): Exit immediately if we have not
+	finished init process.
+
+	* load-save.cc (extract_keyword): Return std::string, not char *.
+	Change all uses.
+	(read_ascii_data): Likewise.
+	(read_binary_data): Likewise.
+	(read_hdf5_data): Likewise.
+	(read_mat_ascii_data): Likewise.
+	(read_mat_binary_data): Likewise.
+	(do_load): Name and doc are now std::string objects, not char *.
+	(install_loaded_variable): Likewise.
+	(read_hdf5_data): Doc is now std::string object, not char *&.
+	(read_mat_ascii_data): Call OCTAVE_QUIT in strategic locations.
+	(get_lines_and_columns): Likewise.
+
+	* toplev.cc (main_loop): Call OCTAVE_QUIT after executing command.
+	* parse.y (parse_and_execute (FILE *)): Likewise.
+
+2002-11-12  Joseph P. Skudlarek  <jskud@jskud.com>
+
+	* input.cc (match_sans_spaces_semi): Rename from match_sans_spaces.
+	Ignore trailing semicolons too.  Change all callers.
+
+2002-11-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.gperf: Allow "persistent" as a synonym for static.
+
+	* defun-int.h (DEFUN_MAPPER_INTERNAL): Don't forget doc string
+	when creating octave_mapper object.
+
+	* sysdep.cc (BSD_init): Avoid failure if FP_X_DNML is not defined.
+
+2002-11-08  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* cutils.c: Be sure to always return buf.
+
+	Undo previous vnprintf changes.  The portable snprintf I found
+	does not handle floating point conversions...
+
+2002-11-07  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (liboctinterp.$(LIBEXT)): Include $(XERBLA) here.
+	(octave.$(EXEEXT)): Not here.
+	(liboctinterp.$(SHLEXT)): Include $(PIC_XERBLA) here.
+
+	* main.c: Move decl for xerbla here from octave.cc.
+
+	* cutils.c (octave_vsnprintf): Use portable_snprintf to avoid
+	having to cope with all kinds of buggy implementations.
+
+	* snprintf.c: New file.
+	* Makefile.in (DISTFILES): Add it to the list.
+
+	* oct-snprintf.h: New file.
+	* Makefile.in (INCLUDES): Add it to the list.
+
+	* oct-snprintf.c: New file.
+	* Makefile.in (DIST_SRC): Add it to the list.
+
+	* toplev.cc (main_loop): Use SET_OCTAVE_INTERRUPT_IMMEDIATELY
+	instead of assigning octave_interrupt_immediately.
+
+2002-11-06  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (jump_to_top_level): Delete.
+
+	* toplev.cc (toplevel): Delete.
+	(main_loop): Adapt to new signal/exception handling scheme.
+
+	* sighandlers.cc (octave_signal_mask, octave_save_signal_mask,
+	octave_restore_signal_mask): Move to libcruft/misc/quit.cc.
+	(sigint_handler) [USE_EXCEPTIONS_FOR_INTERRUPTS]: set
+	octave_interrupt_state.  Only jump if octave_interrupt_immediately
+	is true, and then only to enclosing context.
+
+	* lex.h (YY_FATAL_ERROR): Use OCTAVE_JUMP_TO_TOP_LEVEL, not
+	jump_to_top_level.
+	* sighandlers.cc (octave_new_handler, sigfpe_handler, endif,
+	sigpipe_handler): Likewise.
+
+	* input.cc (gnu_readline): Surround call to
+	command_editor::readline with
+	BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE and
+	END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE.
+
+	* data.cc, oct-stream.cc, ov-cell.cc, ov-mapper.cc, ov-re-mat.cc,
+	ov.cc, pr-output.cc, pt-loop.cc, pt-stmt.cc, xdiv.cc, xpow.cc,
+	DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/besselj.cc,
+	DLD-FUNCTIONS/filter.cc, DLD-FUNCTIONS/find.cc,
+	DLD-FUNCTIONS/kron.cc, DLD-FUNCTIONS/log.cc,
+	DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/qz.cc,
+	DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/sort.cc: Sprinkle with
+	OCTAVE_QUIT.
+
+	* DLD-FUNCTIONS/odessa.cc (Fodessa): Correctly extract bsub from
+	function arg.
+
+2002-11-04  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* cutils.c (octave_vsnprintf): Handle C99 snprintf semantics.
+
+	* oct-obj.h (octave_value_list::operator =): Copy names too.
+	(octave_value_list::octave_value_list (const octave_value_list&)):
+	Likewise.
+
+2002-11-01  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.39.
+
+	* variables.cc (generate_struct_completions): Temporarily reset
+	discard_error_messages and error_state
+	(looks_like_struct): Temporarily reset Vwarning option,
+	error_state, and discard_error_messages.
+
+	* pt-idx.cc (tree_index_expression::eval_error): Now const.
+	(tree_index_expression::get_struct_index): Require valid identifier.
+	(tree_index_expression::make_arg_struct,
+	tree_index_expression::rvalue, tree_index_expression::lvalue):
+	Handle possible error from get_struct_index.
+
+	* utils.cc (valid_identifier): Move here from load-save.cc.
+	* utils.h: Provide decl.
+
+	* input.cc (generate_possible_completions): Call
+	command_editor::filename_completion_desired here.
+	(generate_possible_completions): Don't generate struct completions
+	if text contains directory separator or "..".
+
+2002-10-31  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/odessa.cc (odessa_user_f, odessa_user_j,
+	odessa_user_b): Reorder args for consistency with other solvers.
+	(Fodessa): Use extract_function to set args.
+	(odessa_user_j): Rename from odessa_user_mf.
+
+	* DLD-FUNCTIONS/fsolve.cc (fsolve_user_function, fsolve_user_jacobian):
+	Print warning if user returns complex value.
+	* DLD-FUNCTIONS/quad.cc (quad_user_function): Likewise.
+	* DLD-FUNCTIONS/lsode.cc (lsode_user_function, lsode_user_jacobian):
+	Likewise.
+	* DLD-FUNCTIONS/dassl.cc (dassl_user_function, dassl_user_jacobian):
+	Likewise.
+	* DLD-FUNCTIONS/dasrt.cc (dasrt_user_f, dasrt_user_cf, dasrt_user_j):
+	Likewise.
+	* DLD-FUNCTIONS/daspk.cc (daspk_user_function, daspk_user_jacobian):
+	Likewise.
+
+	* DLD-FUNCTIONS/daspk.cc (daspk_user_jacobian): New function.
+	(Fdaspk): Handle extracting Jacobian from function argument.
+
+	* DLD-FUNCTIONS/fsolve.cc (fsolve_user_function): New function.
+	(Ffsolve): Handle extracting Jacobian from function argument.
+
+	* Makefile.in (%.oct): Depend on octave$(EXEEXT) so that octave
+	will be built before any .oct files.
+	(all): Depend on stamp-oct-links.
+	(octave$(EXEEXT)): Don't depend on stamp-oct-links.
+
+	* ov-base.cc (octave_base_value::subsasgn): Handle default numeric
+	case here.
+	* ov-base-mat.cc (octave_base_matrix<MT>::subsasgn): Delete.
+
+2002-10-30  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (OCT_LINK_DEPS): Add $(BLAS_LIBS), $(FFTW_LIBS), and
+	$(FLIBS).
+
+2002-10-29  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_VERSION): Now 2.1.38.
+
+	* utils.cc (octave_vformat): Get return value from
+	streambuf::vform.
+
+	* DLD-FUNCTIONS/fsolve.cc (Ffsolve): Always return solution.
+	Don't barf on nargout == 3.
+
+	* pt-idx.h (tree_index_expression::dyn_field): New data member.
+	* pt-idx.cc (tree_index_expression::tree_index_expression
+	(tree_expression*, tree_expression*, int, int)): New constructor.
+	(tree_index_expression::append (tree_expression*)): New function.
+	(tree_index_expression::get_struct_index): New function.
+	(tree_index_expression::make_arg_struct): Handle dynamic fields.
+	(tree_index_expression::rvalue): Likewise.
+	(tree_index_expression::lvalue): Likewise.
+
+	* parse.y (make_indirect_ref (tree_expression*, tree_expression*)):
+	New function.
+	(indirect_ref_op): New non-terminal.
+	(postfix_expr): Use it.
+	Recognize dynamic struct field references.
+	(parsing_indir): Delete unused non-terminal.
+
+	* lex.l ("("): Set lexer_flags.looking_at_indirect_ref to false here.
+
+	* pt-idx.cc (tree_index_expression::name): Simplify.
+
+2002-10-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-conf.h.in (OCTAVE_CONF_HAVE_DLOPEN_API,
+	OCTAVE_CONF_HAVE_LOADLIBRARY_API, OCTAVE_CONF_HAVE_SHL_LOAD_API):
+	Delete.
+	* toplev.cc (octave_config_info): Delete them from the struct
+
+	* load-save.cc (read_ascii_data): Use octave_read_double and
+	octave_read_complex so that we handle Inf, NaN, and NA.
+	(read_mat_ascii_data): Likewise.
+	(save_ascii_data): Use octave_write_double andoctave_write_complex.
+
+2002-10-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (octave_config_info): Rename WITH_DYNAMIC_LINKING to
+	ENABLE_DYNAMIC_LINKING.
+	* oct-conf.h.in: Likewise.
+	* mkbuiltins: Likewise.
+	* fn-cache.cc (file_name_cache_elt::update): Likewise.
+	* Makefile.in: Likewise.
+
+2002-10-24  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* cutils.c (octave_vsnprintf): Buffer and buffer size now static.
+	* utils.cc (octave_vformat): Don't free buffer returned from
+	octave_vsnprintf here.
+
+	* ov-usr-fcn.cc (va_arg, va_start, vr_val): Only print warning
+	once per session.
+
+	* ov-mapper.cc (octave_mapper::apply): Don't try real_type case if
+	arg is a string and we have a ch_map_fcn.
+
+	* Makefile.in: Add $(LIBKPATHSEA) to $(OCTAVE_LIBS) if
+	$(INCLUDE_LINK_DEPS) is false, not if $(SHARED_LIBS) is false.
+
+2002-10-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/daspk.cc (daspk): Use set_options, not copy.
+	* DLD-FUNCTIONS/dasrt.cc (dasrt): Likewise.
+	* DLD-FUNCTIONS/dassl.cc (dassl): Likewise.
+	* DLD-FUNCTIONS/fsolve.cc (fsolve): Likewise.
+	* DLD-FUNCTIONS/lsode.cc (lsode): Likewise.
+	* DLD-FUNCTIONS/odessa.cc (Fodessa): Likewise.
+	* DLD-FUNCTIONS/quad.cc (Fquad): Likewise.
+
+2002-10-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-map.cc (Octave_map::assign): Fix typo in resizing.
+
+	* pt-loop.cc (tree_complex_for_command::eval): Only return list
+	for val if struct array has more than one element.
+	(tree_simple_for_command::eval): Likewise.
+
+	* ov-struct.cc (octave_struct::print_raw): Don't create
+	octave_list directly, use octave_value (const octave_value_list&)
+	constructor instead.
+	Call print_with_name for tmp, not val(0).
+
+	* version.h (OCTAVE_VERSION): Now 2.1.37.
+	(OCTAVE_CONTRIB_STATEMENT): New macro.
+	(OCTAVE_STARTUP_MESSAGE): Use it.
+
+2002-10-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (fill_matrix): If nargin is zero, use val, not 0.0.
+
+	* main.c: New file.
+	* octave.h: New file.
+	* octave.cc (octave_main): Rename from main.
+	Include octave.h.
+	* Makefile.in (OBJECTS): Add octave.o, builtins.o, and ops.o to
+	the list.
+	(octave): Depend on and link main.o, not octave.o, builtins.o, and
+	ops.o (they are now in liboctinterp).
+	(DEP_5): Add main.c here.
+
+	* oct-conf.h.in: No need to substitute OCTAVE_CONF_OCTAVE_LITE.
+	* toplev.cc (octave_config_info): Likewise, don't include it in
+	struct.
+
+	* mkbuiltins: Remove check for OCTAVE_LITE, since it is now
+	implied by WITH_DYNAMIC_LINKING.
+	* Makefile.in: Likewise, replace tests for OCTAVE_LITE with tests
+	for WITH_DYNAMIC_LINKING instead.
+
+	* oct-conf.h.in: Use OCTAVE_CONF_HAVE_DLOPEN_API,
+	OCTAVE_CONF_HAVE_LOADLIBRARY_API, and
+	OCTAVE_CONF_HAVE_SHL_LOAD_API instead of OCTAVE_CONF_WITH_DL and
+	OCTAVE_CONF_WITH_SHL.
+	* toplev.cc (octave_config_info): Likewise.
+
+2002-10-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (display_help_text): Quote output file name for Cygwin.
+
+	* Makefile.in (install-lib): Don't bother with versions for
+	$(SHLBIN) files.
+
+	* help.cc (display_help_text): Match zero or more comment
+	characters instead of one or more.
+
+	* Makefile.in (install-oct): Process files from $(DLD_DEF_FILES),
+	not $(DLD_SRC).  Look for them in current directory, not $(srcdir).
+
+2002-10-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-mapper.cc (octave_mapper::apply): Handle real and complex
+	types first.  If the arg is something else, try ch_map_fcn if it
+	is defined.
+
+2002-10-15  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* Makefile.in: If building shared but not static libs, only set
+	XERBLA to the location of the pic object file if FPICFLAG is
+	defined.
+
+2002-10-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	*  DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/getrusage.cc, data.cc,
+	file-io.cc, ov-base.cc, ov-bool-mat.cc, ov-ch-mat.cc,
+	ov-complex.cc, ov-cx-mat.cc, ov-range.cc, ov-re-mat.cc,
+	ov-re-nd-array.cc: Change all uses of octave_Inf, octave_NA, and
+	octave_NaN to be calls to lo_ieee_Inf_value, lo_ieee_NA_value, and
+	lo_ieee_NaN_value instead of using the constants directly to avoid
+	linking problem with Cygwin.
+
+	* Makefile.in (install): No need to use cd to create links.
+
+2002-10-14  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* Makefile.in: Merge liboctave with liboct-readline and
+	liboct-pathsearch.
+	Use link dependencies for shared libs if INCLUDE_LINK_DEPS.
+	(LIBRARIES): If doing shared libs, include versioned library in	list.
+	(liboctinterp.$(SHLEXT), liboctinterp.$(SHLEXT_VER)): Reverse
+	actions -- build unversioned library, symbolic link adds version
+	info.
+	(install, uninstall): Handle link and load forms of the library
+	separately.
+
+	* toplev.cc (octave_config_info): Remove LIBOCT_READLINE and
+	LIBOCT_PATHSEARCH, add LIBREADLINE.
+	* oct-conf.h.in: Likewise.
+
+2002-10-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (handle_identifier): Don't enter token in local symbol
+	table if the following token is a dot and it looks like a binary
+	operator.
+	(force_local_variable): If name is not a variable, clear it before
+	defining.
+
+	* oct-procbuf.cc (Vkluge_procbuf_delay): Make default 0 for all
+	systems.
+
+	* octave.cc (execute_startup_files, initialize_pathsearch):
+	Use file_ops::dir_sep_str instead of OCTAVE_DIR_SEP_STR.
+	(main): Use file_ops::dir_sep_chars instead of OCTAVE_DIR_SEP_CHARS.
+
+	* ov-re-mat.cc (octave_matrix::convert_to_str): Warn for out of
+	range conversions.  For negative values, set to 0.
+	* ov-scalar.cc (octave_scalar:convert_to_str): Likewise.
+
+	* mappers.cc (xabs): New static function.
+	(install_mapper_functions): Use it for abs for character matrices.
+	Handle ch_map_flag separately from can_ret_cmplx_for_real in
+	all uses of DEFUN_MAPPER.
+	* defun.h (DEFUN_MAPPER): Handle ch_map_flag separately from
+	can_ret_cmplx_for_real.
+	* defun-int.h (DEFUN_MAPPER_INTERNAL): Likewise.
+	* mkbuiltins: Likewise.
+	* mkgendoc: Likewise.
+	* ov-mapper.cc (octave_mapper::apply): Use ch_map_flag and
+	can_ret_cmplx_for_real instead of flag.
+	* ov-mapper.h (octave_mapper::ch_map_flag): Rename from flag.
+	(octave_mapper::can_ret_cmplx_for_real): New data member.
+	(octave_mapper::octave_mapper): Handle it here.
+
+2002-10-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (execute_startup_files): Don't forget directory
+	separator for local initfile.
+
+	* move-if-change: Delete.
+	* Makefile.in (DISTFILES): Delete it from the list.
+
+2002-10-09  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in: Use $(EXEEXT) and $(BUILD_EXEEXT) as appropriate.
+
+	* pt-plot.cc (Vgnuplot_binary): Use GNUPLOT_BINARY as default.
+
+	* octave.cc (execute_startup_files):
+	Use octave_env::getcwd instead of "./".
+	Use OCTAVE_DIR_SEP_STR instead of "/".
+	(initialize_pathsearch): Use OCTAVE_DIR_SEP_STR instead of /.
+	(main): Look for OCTAVE_DIR_SEP_CHARS, not '/'.
+
+2002-10-08  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (gendoc): Use $(BUILD_CXX), not $(CXX).
+
+2002-10-07  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (octave_sleep): Cast result of modf to unsigned int.
+
+2002-10-07  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* sighandlers.cc (my_friendly_exit): If kill is unavailable, use
+	raise.
+
+2002-10-06  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sysdep.cc (CYGWIN_init): New function.
+	(sysdep_init) [__CYGWIN__]: Call it.
+
+	* pt-plot.cc (subplot::handle_plot_data): Surround file names in
+	single quotes, not double (for Windows).
+	(do_external_plotter_cd): Likewise.
+
+2002-10-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* cutils.c (octave_usleep): Call octave_sleep, not sleep.
+
+	* utils.cc (octave_sleep (double)): New function.
+	* utils.h: Provide decl.
+	* sysdep.cc (Fpause, Fsleep): Use it.
+
+	* cutils.c (do_octave_usleep): Merge with octave_usleep.
+	(octave_usleep): Make it work for Windows systems.  From Paul
+	Kienzle <pkienzle@users.sf.net>.
+
+2002-10-03  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* cutils.c (octave_usleep): Make it work for Windows systems.
+
+	* toplev.cc (Fsystem): Error message if fork is not available.
+
+2002-10-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* cutils.c (octave_sleep): Handle Windows, which may not have
+	sleep, but should have Sleep.
+
+	* oct-conf.h.in (OCTAVE_CONF_SED): Add an entry for SED.
+	* toplev.cc (octave_config_info): Likewise.
+	* Makefile.in (oct-gperf.h): Use $(SED), not sed.
+
+2002-09-27  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (fopen_mode_to_ios_mode): Set ios::ate instead of
+	ios::app for "a+" mode.
+	* oct-stream.cc (octave_stream::mode_as_string): Recognize
+	ios::ate, not ios::app as "a+" mode.
+	(octave_stream::mode_as_string): Use parens since | has lower
+	precedence than ==.
+
+2002-09-26  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* sysdep.cc: Include conio.h if it exists.
+	(octave_kbhit): Rename from kbhit.  Implement with _kbhit if it
+	exists. Change all callers.
+	* cutils.c (octave_sleep): New function.
+	Change all callers of sleep to use octave_sleep instead.
+
+2002-09-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* BaseSLList.cc, BaseSLList.h, Cell.cc, Cell.h, DLList.cc,
+	DLList.h, Map.cc, Map.h, OPERATORS/op-b-b.cc,
+	OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, OPERATORS/op-cell.cc,
+	OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc,
+	OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc,
+	OPERATORS/op-cs-cs.cc, OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc,
+	OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc,
+	OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc,
+	OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-m.cc,
+	OPERATORS/op-fil-rec.cc, OPERATORS/op-fil-s.cc,
+	OPERATORS/op-fil-str.cc, OPERATORS/op-list.cc,
+	OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc,
+	OPERATORS/op-m-s.cc, OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc,
+	OPERATORS/op-s-cs.cc, OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc,
+	OPERATORS/op-str-str.cc, SLList.cc, SLList.h, SLStack.cc,
+	SLStack.h, Stack.cc, Stack.h, c-file-ptr-stream.cc,
+	c-file-ptr-stream.h, comment-list.cc, comment-list.h, oct-map.cc,
+	oct-map.h, oct-obj.cc, oct-obj.h, ov-base-mat.cc, ov-base-mat.h,
+	ov-base-nd-array.cc, ov-base-nd-array.h, ov-base-scalar.cc,
+	ov-base-scalar.h, ov-base.cc, ov-base.h, ov-bool-mat.cc,
+	ov-bool-mat.h, ov-bool.cc, ov-bool.h, ov-builtin.cc, ov-builtin.h,
+	ov-cell.cc, ov-cell.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.cc,
+	ov-complex.cc, ov-complex.h, ov-cs-list.cc ov-cs-list.h,
+	ov-cx-mat.cc, ov-cx-mat.h, ov-dld-fcn.cc, ov-dld-fcn.h, ov-fcn.cc,
+	ov-fcn.h, ov-file.cc, ov-file.h, ov-list.cc, ov-list.h,
+	ov-mapper.cc, ov-mapper.h, ov-range.cc, ov-range.h, ov-re-mat.cc,
+	ov-re-mat.h, ov-re-nd-array.cc, ov-re-nd-array.h, ov-scalar.cc,
+	ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov-struct.cc,
+	ov-struct.h, ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc,
+	ov-usr-fcn.h, ov-va-args.cc, ov.cc, ov.h, procstream.cc,
+	procstream.h, pt-arg-list.cc, pt-arg-list.h, pt-assign.cc,
+	pt-assign.h, pt-binop.cc, pt-binop.h, pt-bp.cc, pt-bp.h,
+	pt-cell.cc, pt-cell.h, pt-check.cc, pt-check.h, pt-cmd.cc,
+	pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc, pt-const.h,
+	pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h, pt-exp.cc,
+	pt-exp.h, pt-id.cc, pt-id.h, pt-idx.cc, pt-idx.h, pt-jump.cc,
+	pt-jump.h, pt-loop.cc, pt-loop.h, pt-mat.cc, pt-mat.h, pt-misc.cc,
+	pt-misc.h, pt-plot.cc, pt-plot.h, pt-pr-code.cc, pt-pr-code.h,
+	pt-select.cc, pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc,
+	pt-unop.h, pt.cc, pt.h, symtab.cc, symtab.h, token.cc, token.h,
+	unwind-prot.cc, unwind-prot.h:
+	If __GNUG__, use pragma interface/implementation.  Allow this to
+	be turned off by defining NO_PRAGMA_INTERFACE_IMPLEMENTATION.
+
+2002-09-26  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* mappers.cc (install_mapper_functions): Install erf, not xerf.
+	Install erfc, not xerfc.
+
+	* pt-bp.cc (tree_breakpoint::visit_unwind_protect_command):
+	Rename lst1 and lst2 to avoid dlgs.h conflict.
+
+	* parse.y: Replace TEXT with STRING to avoid winnt.h conflict.
+	* lex.l: Ditto.
+
+	* sysdep.cc (raw_mode): Non-fatal warning if raw_mode is not
+	supported.
+
+	* sighandlers.cc: Don't define handlers for non-existent signals.
+
+	* utils.cc: Don't include unneeded termio headers.
+
+2002-09-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* BaseSLList.cc, BaseSLList.h, Cell.cc, Cell.h, DLList.cc,
+	DLList.h, Map.cc, Map.h, OPERATORS/op-b-b.cc,
+	OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc, OPERATORS/op-cell.cc,
+	OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc,
+	OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, OPERATORS/op-cs-cm.cc,
+	OPERATORS/op-cs-cs.cc, OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc,
+	OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc,
+	OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc,
+	OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-m.cc,
+	OPERATORS/op-fil-rec.cc, OPERATORS/op-fil-s.cc,
+	OPERATORS/op-fil-str.cc, OPERATORS/op-list.cc,
+	OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc,
+	OPERATORS/op-m-s.cc, OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc,
+	OPERATORS/op-s-cs.cc, OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc,
+	OPERATORS/op-str-str.cc, SLList.cc, SLList.h, SLStack.cc,
+	SLStack.h, Stack.cc, Stack.h, c-file-ptr-stream.cc,
+	c-file-ptr-stream.h, comment-list.cc, comment-list.h, oct-map.cc,
+	oct-map.h, oct-obj.cc, oct-obj.h, ov-base-mat.cc, ov-base-mat.h,
+	ov-base-nd-array.cc, ov-base-nd-array.h, ov-base-scalar.cc,
+	ov-base-scalar.h, ov-base.cc, ov-base.h, ov-bool-mat.cc,
+	ov-bool-mat.h, ov-bool.cc, ov-bool.h, ov-builtin.cc, ov-builtin.h,
+	ov-cell.cc, ov-cell.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.cc,
+	ov-complex.cc, ov-complex.h, ov-cs-list.cc ov-cs-list.h,
+	ov-cx-mat.cc, ov-cx-mat.h, ov-dld-fcn.cc, ov-dld-fcn.h, ov-fcn.cc,
+	ov-fcn.h, ov-file.cc, ov-file.h, ov-list.cc, ov-list.h,
+	ov-mapper.cc, ov-mapper.h, ov-range.cc, ov-range.h, ov-re-mat.cc,
+	ov-re-mat.h, ov-re-nd-array.cc, ov-re-nd-array.h, ov-scalar.cc,
+	ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov-struct.cc,
+	ov-struct.h, ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc,
+	ov-usr-fcn.h, ov-va-args.cc, ov.cc, ov.h, procstream.cc,
+	procstream.h, pt-arg-list.cc, pt-arg-list.h, pt-assign.cc,
+	pt-assign.h, pt-binop.cc, pt-binop.h, pt-bp.cc, pt-bp.h,
+	pt-cell.cc, pt-cell.h, pt-check.cc, pt-check.h, pt-cmd.cc,
+	pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc, pt-const.h,
+	pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h, pt-exp.cc,
+	pt-exp.h, pt-id.cc, pt-id.h, pt-idx.cc, pt-idx.h, pt-jump.cc,
+	pt-jump.h, pt-loop.cc, pt-loop.h, pt-mat.cc, pt-mat.h, pt-misc.cc,
+	pt-misc.h, pt-plot.cc, pt-plot.h, pt-pr-code.cc, pt-pr-code.h,
+	pt-select.cc, pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc,
+	pt-unop.h, pt.cc, pt.h, symtab.cc, symtab.h, token.cc, token.h,
+	unwind-prot.cc, unwind-prot.h:
+	Use USE_PRAGMA_INTERFACE_IMPLEMENTATION instead of __GNUG__ to
+	decide whether to use the interface/implementation pragmas.
+
+2002-09-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc: Undo previous change.
+
+	* ov-struct.cc (octave_struct::subsasgn): Ensure that indexed
+	object is not shared before calling subsasgn.
+
+2002-09-04  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc: Use % instead of # as comment character in ascii
+	data files.
+
+2002-08-17  Mumit Khan  <khan@nanotech.wisc.edu>
+
+	* c-file-ptr-stream.h (c_file_ptr_buf::c_file_ptr_buf): Add Intel
+	C++ runtime support.
+
+	* Cell.h, gripes.cc, ov-base-scalar.cc, ov-colon.cc, ov-fcn.cc,
+	ov-file.cc, ov-mapper.h, ov-va-args.cc, token.cc, xpow.cc,
+	OPERATORS/op-b-b.cc, OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc,
+	OPERATORS/op-cell.cc, OPERATORS/op-chm.cc, OPERATORS/op-cm-cm.cc,
+	OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc,
+	OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc, OPERATORS/op-cs-m.cc,
+	OPERATORS/op-cs-s.cc, OPERATORS/op-fil-b.cc, OPERATORS/op-fil-bm.cc,
+	OPERATORS/op-fil-cm.cc, OPERATORS/op-fil-cs.cc,
+	OPERATORS/op-fil-lis.cc, OPERATORS/op-fil-m.cc,
+	OPERATORS/op-fil-rec.cc, OPERATORS/op-fil-s.cc,
+	OPERATORS/op-fil-str.cc, OPERATORS/op-list.cc, OPERATORS/op-m-cm.cc,
+	OPERATORS/op-m-cs.cc, OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc,
+	OPERATORS/op-range.cc, OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc,
+	OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, OPERATORS/op-str-str.cc,
+	TEMPLATE-INST/Array-sym.cc, TEMPLATE-INST/Array-tc.cc,
+	TEMPLATE-INST/Map-tc.cc, TEMPLATE-INST/SLList-expr.cc,
+	TEMPLATE-INST/SLList-tc.cc, TEMPLATE-INST/SLList-tm.cc,
+	TEMPLATE-INST/SLStack-sym.cc: Make the implementation of
+	octave_value_list visibile for template instantiation.
+
+2002-08-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/dasrt.cc: Include <iostream> not <iostream.h>.
+
+	* pager.h: Include lo-sstream.h and use macros instead of using
+	strstreambuf class directly.
+
+	* load-save.cc (read_mat_ascii_data): Handle istrstream here too.
+
+	* procstream.h (procstream::procstream): Also accept std::string arg.
+	(iprocstream::iprocstream, iprocstream::open): Likewise.
+	(oprocstream::oprocstream, oprocstream::open): Likewise.
+	(procstreambase::procstreambase, procstreambase::open): Likewise.
+
+	* pt-plot.cc (gnuplot_terminal_type): Now std::string&, not char*.
+	(send_to_plot_stream): Likewise, for cmd arg.
+
+	* pt-plot.h, pt-plot.cc: Include lo-sstream.h and use macros
+	instead of using strstream classes directly.
+	* oct-strstrm.h: Likewise.
+	* error.h, error.cc: Likewise.
+	* oct-stream.h, oct-stream.cc: Likewise.
+	* lex.l: Likewise.
+	* toplev.cc: Likewise.
+	* utils.cc: Likewise.
+	* pt.cc: Likewise.
+	* pr-output.cc: Likewise.
+	* ov-list.cc: Likewise.
+	* ov-cs-list.cc: Likewise.
+	* ov-cell.cc: Likewise.
+	* load-save.cc: Likewise.
+	* help.cc: Likewise.
+	* dirfns.cc: Likewise.
+
+2002-08-15  Paul Kienzle  <pkienzle@jazz.ncnr.nist.gov>
+
+	* input.cc (octave_read): Do a better job of buffering.
+
+2002-08-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (DLD_DEF_FILES): New macro.
+	(DEF_5): Delete.
+	(DEF_4): Now only includes $(SOURCES).
+	(DEF_FILES): Append $(DLD_DEF_FILES) here.
+	(stamp-oct-links): Pass $(DLD_DEF_FILES) to mk-oct-links instead
+	of a list of source files.
+	* mk-oct-links: Work on .df files instead of .cc files.
+
+	* parse.y (case_list): Allow it to be empty.
+
+	* ov.cc, ov.h (octave_value::int_vector_value): New function.
+
+2002-08-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (OCTAVE_LIBS): Only include $(LIBKPATHSEA) if not
+	using shared libraries.
+
+	* ov.cc (octave_value::octave_value (const octave_value_list&, bool)):
+	Don't forget to assign rep.
+
+2002-08-12  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l: Warn for various Matlab-incompatibilities.
+	No longer accept <> for NOTEQ.
+	(gripe_matlab_incompatible): New function.
+	(maybe_gripe_matlab_incompatible_comment): Likewise.
+	(gripe_matlab_incompatible_continuation): Likewise.
+	(gripe_matlab_incompatible_operator): Likewise.
+	(warn_matlab_incompatible): New function.
+	(Vwarn_matlab_incompatible): New static variable.
+	(symbols_of_lex): Add a DEFVAR for it.
+
+
+	* file-io.cc (fopen_mode_to_ios_mode): Default value is std::ios::in.
+	Return std::ios::openmode instead of int.
+
+2002-08-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/dasrt.cc (DASRT_ABORT1, DASRT_ABORT2):
+	"##" pastes tokens, not strings.
+
+	* DLD-FUNCTIONS/odessa.cc: Add std:: qualifiers as needed.
+
+2002-08-09  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (Fisglobal): Rename from Fis_global.
+	* file-io.cc (Fisstream): Rename from Fis_stream.
+	* data.cc (Fisbool): Rename from Fis_bool.
+	(Fiscomplex): Rename from Fis_complex.
+	(Fislist): Rename from Fis_list.
+	(Fismatrix): Rename from Fis_matrix.
+	(Fisstruct): Rename from Fis_struct.
+
+	* parse.y (switch_case): Make list of command optional.
+
+2002-08-08  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (pr_max_internal): Use octave_is_NaN_or_NA instead
+	of xisnan.
+	(pr_min_internal): Likewise.
+	(output_max_field_width): Likewise.
+	(output_precision): Likewise.
+	(pr_any_float): Handle NA.
+	* mappers.cc (Fisna, F_is_nan_or_na): New functions.
+	* data.cc (symbols_of_data): New constant, NA.
+
+2002-08-07  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-binop.h (tree_binary_expression::is_binary_expression):
+	New function, return true.
+	(tree_boolean_expression::is_boolean_expression): New function,
+	return true.
+	* pt-exp.h (tree_expression::is_binary_expression): New function.
+	(tree_expression::is_boolean_expression): Likewise.
+	* parse.y (EXPR_OR_OR): Now lower precedence than EXPR_AND_AND.
+	(EXPR_OR): Now lower precedence than EXPR_AND.
+	(make_boolean_op): Maybe warn about change in precedence.
+	(make_binary_op): Likewise.
+	(Vwarn_precedence_change): New static variable.
+	(warn_precedence_change): New function.
+	(Vwarn_precedence_change): New DEFVAR.
+
+2002-08-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (ANY_ALL): Improve arg checks.
+
+2002-08-04  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h (octave_value::assign_op): New enum values, op_pow_eq and
+	op_el_pow_eq.
+	* ov.cc (octave_value::assign_op_as_string): Handle them here.
+	(ocatave_value::op_eq_to_binary_op): And here.
+	* parse.y (POW_EQ, EPOW_EQ): New tokens.
+	(assign_expr): Handle them here too.
+	(make_assign_op): And here.
+
+	* lex.l: Recognize {POW}= and {EPOW}=.
+
+2002-08-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-base-scalar.h (octave_base_scalar::all): New int arg.
+	(octave_base_scalar::any): Likewise.
+	* ov-range.h (octave_range::all): Likewise.
+	(octave_range::any): Likewise.
+
+	* Makefile.in (doc-files): Use mv, not move-if-change here.
+
+	* variables.cc (symbol_exist): New function.
+	(Fexist): Use it.  Handle optional type arg.  Make return codes
+	more compatible with Matlab.
+
+	* data.cc (ANY_ALL): New macro.
+	(Fany, Fall): Replace guts with ANY_ALL.
+
+2002-08-01  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (Fall, Fany): Handle optional DIM argument.
+
+	* ov.h (octave_value::any): New arg, dim.
+	(octave_value::all): Likewise.
+	* ov-base.h (octave_base_value::any): Likewise.
+	(octave_base_value::all): Likewise.
+	* ov-base-mat.h (octave_base_matrix::any): Likewise.
+	(octave_base_matrix::all): Likewise.
+
+	* Makefile.in: Use $@-t instead of $@.t.
+	(doc-files): Use move-if-change when creating doc-files.
+
+	* error.cc (warning): Don't print warning backtrace at top level.
+
+	* ov-cell.cc (octave_cell::print_raw): Print empty dimensions too.
+	(octave_cell::print_name_tag): Don't print new line if cell is empty.
+
+	* octave.cc (intern_argv): Don't install __argv__.
+
+	* defun-int.h (UNDERSCORIFY): Delete.
+	(DEFCONST_INTERNAL): Don't install double underscore versions of
+	constants since they aren't really needed.
+	(DEFCONSTX_INTERNAL): Likewise.
+
+2002-07-31  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* symtab.cc (symbol_table::clear (void)): Clear all records.
+	(symbol_table::clear (const std::string&)): Delete second arg.
+	Clear any symbol that matches, regardless of type.
+
+	* symtab.h (symbol_table::variable_name_list): New function.
+	(symbol_table::global_variable_name_list): Likewise.
+	(symbol_table::user_function_name_list): Likewise.
+
+	* symtab.h, symtab.cc (symbol_table::clear_variables): New function.
+	(symbol_table::clear_functions): Likewise.
+	(symbol_table::clear_globals): Likewise.
+	(symbol_table::clear_variable): New function.
+	(symbol_table::clear_function): Likewise.
+	(symbol_table::clear_global): Likewise.
+	(symbol_table::clear_variable_pattern): New function.
+	(symbol_table::clear_function_pattern): Likewise.
+	(symbol_table::clear_global_pattern): Likewise.
+
+	* variables.cc (name_matches_any_pattern): Rename from
+	var_matches_any_pattern.
+	(is_local_variable): New static inline function.
+	(maybe_warn_exclusive): Likewise.
+	(do_clear_all): Likewise.
+	(do_clear_functions): Likewise.
+	(do_clear_globals): Likewise.
+	(do_clear_variables): Likewise.
+	(do_clear_function): Likewise.
+	(do_clear_global): Likewise.
+	(do_clear_variable): Likewise.
+	(do_clear_symbol): Likewise.
+	(do_clear_function_pattern): Likewise.
+	(do_clear_global_pattern): Likewise.
+	(do_clear_variable_pattern): Likewise.
+	(do_clear_symbol_pattern): Likewise.
+	(do_clear_functions): Likewise.
+	(do_clear_functions): Likewise.
+	(do_clear_globals): Likewise.
+	(do_clear_variables): Likewise.
+	(do_clear_symbols): Likewise.
+	(do_matlab_compatible_clear): Likewise.
+	(CLEAR_OPTION_ERROR): New macro.
+	(Fclear): Rewrite for Matlab compatibility and to cope with new
+	symbol table semantics.
+
+2002-07-30  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* symtab.cc (symbol_table::clear): Simply clear everything.
+	(symbol_table::clear_functions, symbol_table::clear_globals,
+	symbol_table::clear_all): New functions.
+
+	* symtab.h (symbol_record::symbol_def::next_elem): Delete.
+	(symbol_record::symbol_def::symbol_def): Delete intializer.
+
+	* symtab.h, symtab.cc (symbol_record::push_def): Delete.
+	(symbol_record::remove_top_def): Delete.
+	(symbol_record::replace_all_defs): Delete.
+	(symbol_record::hides_fcn): Delete.
+	(symbol_record::hides_builtin): Delete.
+
+	* symtab.h (symbol_table::~symbol_table): Call clear before
+	deleting the table.
+
+	* variables.cc (initialize_symbol_tables): Create fbi_sym_tab too.
+	(Fexist): Look in fbi_sym_tab, not global_sym_tab.
+
+	* parse.y (function_symtab): Rename from global_symtab.
+	Set curr_sym_tab to fbi_sym_tab, not global_sym_tab.
+	Change all uses of global_symtab to be function_symtab instead.
+	(frob_function): Rename and look for function name in fbi_sym_tab,
+	not global_sym_tab.
+	(parse_fcn_file): Clear function name from fbi_sym_tab, not
+	global_sym_tab.
+
+	* load-save.cc (save_vars): Look for built-in vars in fbi_sym_tab.
+	* symtab.cc (symbol_record::link_to_builtin_variable): Likewise.
+	* variables.cc (is_builtin_variable): Likewise.
+	(bind_ans): Likewise.
+	(bind_builtin_constant): Likewise.
+	(bind_builtin_variable): Likewise.
+	(builtin_string_variable): Likewise.
+	(builtin_real_scalar_variable): Likewise.
+	(builtin_any_variable): Likewise.
+	(is_text_function_name): Likewise, for functions.
+	(force_link_to_function): Likewise.
+	(is_builtin_function_name): Likewise.
+	(is_mapper_function_name): Likewise.
+	(is_valid_function): Likewise.
+	(Fclear): Likewise.
+	(F__print_symtab_info__): Likewise.
+	* defun.cc (print_usage): Likewise.
+	(install_builtin_mapper): Likewise.
+	(install_builtin_function): Likewise.
+	(install_dld_function): Likewise.
+	(Falias): Likewise.
+	* dynamic-ld.cc (clear_function): Likewise.
+	* variables.cc (do_who): Likewise, for built-ins and functions.
+	(link_to_builtin_or_function): Likewise.
+	* help.cc (LIST_SYMBOLS): Likewise.
+	(make_name_list): Handle fbi_sym_tab too.
+
+	* variables.cc (fbi_sym_tab): New symbol table.
+	* variables.h (fbi_sym_tab): Provide decl.
+
+2002-07-29  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* symtab.h (symbol_record::alias): Delete unused arg force.
+	Change all callers.
+
+	* variables.cc (link_to_global_variable): Give local variable
+	global value.
+
+	* pt-id.cc (tree_identifier::link_to_global): Warn about global
+	variables that have been defined before being declared global.
+	for a global variable to be used before it is declared global.
+	* pt-decl.cc (tree_global_command::do_init): Handle possible error
+	from tree_identifier::link_to_global.
+
+2002-07-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.cc (silent_functions, Vsilent_functions): Move here.
+	(octave_value::print_with_name): Don't print anything if we are
+	evaluating a function and Vsilent_functions is true.
+
+	* pt-stmt.cc: From here.
+	(symbols_of_pt_stmt): Delete.
+	(tree_statement_list::eval): Don't bother with Vsilent_functions here.
+
+2002-07-24  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (OPT_HANDLERS): New targets.
+	(doc-files): New target.
+	(gendoc.cc): Depend on doc-files, not $(DOC_FILES).
+
+	* DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc,
+	DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/fsolve.cc,
+	DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/odessa.cc
+	DLD-FUNCTIONS/quad.cc: Replace option handling code with include
+	directive.
+
+2002-07-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-loop.cc (tree_simple_for_command::eval): Once we know the RHS
+	is a matrix type check for real_type, not real_matrix.
+
+2002-07-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/quad.cc (quad): Cope with changes to Quad constructors.
+
+2002-07-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/daspk.cc (Fdaspk): Also return istate and error
+	message.  Only generate error if user is not at least requesting
+	the istate output.
+	* DLD-FUNCTIONS/dasrt.cc (Fdasrt): Likewise.
+	* DLD-FUNCTIONS/dassl.cc (Fdassl): Likewise.
+	* DLD-FUNCTIONS/lsode.cc (Fodessa): Likewise.
+
+2002-07-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/dasrt.cc (Fdasrt): No need to find ng here.
+	(dasrt_user_j): New function.
+	(Fdasrt): Handle Jacobian function.
+
+	* DLD-FUNCTIONS/dassl.cc (dassl_user_jacobian): New function.
+	(Fdassl): Handle Jacobian function.
+
+	* DLD-FUNCTIONS/dasrt.cc: New file.
+	* Makefile.in (DLD_XSRC): Add it to the list.
+
+2002-07-12  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (@): Handle new token.
+	* parse.y (constant): Accept function handle syntax.
+	(make_constant): Create function handles here.
+
+2002-07-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defun.cc (check_version): Improve error message.
+	* error.cc (warning): Only print backtrace once per warning series.
+	Print backtrace before warning messages.
+
+2002-07-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (maybe_unput_comma): Also handle '{' as an indexing op.
+
+	* DLD-FUNCTIONS/odessa.cc: New file.
+	* Makefile.in (DLD_XSRC): Add it to the list.
+
+2002-07-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-assign.cc (tree_multi_assignment::rvalue): Call
+	lhs->nargout_count, not lhs->length.
+
+	* pt-arg-list.cc (tree_argument_list::convert_to_const_vector):
+	Handle cs-list objects here.
+	(tree_argument_list::nargout_count): New function.
+	* pt-arg-list.h: Provide decl.
+
+	* ov-cs-list.h, ov-cs-list.cc: New files.
+	* Makefile.in: Add them to the appropriate lists.
+
+	* ov.cc: Include ov-cs-list.h.
+	New arg, is_cs_list for constructor taking octave_value_list arg.
+	(install_types): Register ov_cs_list.
+	* ov.h (octave_value::is_cs_list): New function.
+	* ov-base.h (octave_base_value::is_cs_list): Likewise.
+	* ov-cell.cc (octave_cell::subsref): Return cs-list for "{" indexing.
+
+2002-07-04  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-mat.cc (Vempty_list_elements_ok): Default value is now 1.
+	* octave.cc (maximum_braindamage): No longer need to set value here.
+
+	* ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Warn that these
+	functions are deprecated.
+	* lex.l (EL): Warn that `...' is deprecated.
+	* ov-usr-fcn.cc (octave_user_function::varargout_to_vr_val,
+	octave_user_function::has_varargout): New functions.
+	(Fvr_val): Ensure varargout is not defined.
+	(octave_user_function::do_multi_index_op): Copy values from
+	varargout here.
+
+2002-07-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-usr-fcn.h (octave_user_function::varargin_sr): New data member.
+	* ov-usr-fcn.cc (octave_user_function::octave_user_function):
+	Initialize it.
+	(bind_automatic_vars): Handle varargin.  Change	all callers.
+
+	* octave.gperf: Handle varargin and varargout as keywords.
+	* lex.l (is_keyword): Likewise.
+	(IDENT): Move all actions into handle_identifier.
+	(handle_identifier): Now takes no args.
+
+	* lex.l (EL): Return VARARGIN or VARARGOUT, not ELLIPSIS.
+	* parse.y (param_list): Use VARARGIN instead of ELLIPSIS.
+	(return_list): Use VARARGOUT instead of ELLIPSIS.
+
+	* data.cc (make_diag const octave_value&, const octave_value&):
+	Allow first arg to be 1x0 or 0x1.
+
+2002-07-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defaults.cc (loadpath): Comment out previous change.
+
+	* DLD-FUNCTIONS/fsolve.cc (Ffsolve): Return message too.  Only
+	generate error if user is not at least requesting the info output.
+
+	* DLD-FUNCTIONS/lsode.cc (Flsode): Fix typos in setting return value.
+
+2002-07-01  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (printf_value_cache::double_value): If the current
+	element is empty and there are no more elements in the value list,
+	set curr_state to conversion_error.
+
+	* input.cc (initialize_command_input): Include (, ), {, and } as
+	word break characters.
+
+	* variables.cc (looks_like_struct): Don't evaluate text if it is a
+	function.  From Ben Sapp <bsapp@lanl.gov>.
+
+	* symtab.h (symbol_record::is_function): Also return true if
+	symbol is a text function or a mapper function.
+
+2002-06-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defaults.cc (loadpath): Warn if loadpath doesn't contain
+	leading, trailing, or doubled colon.
+
+	* pt-decl.cc (tree_static_command::eval, tree_global_command::eval):
+	Call error for any non-zero value of error_state.
+	* pt-select.cc (tree_if_command::eval): Likewise.
+	* pt-loop.cc (tree_while_command::eval_error): Don't check error_state.
+	(tree_do_until_command::eval_error): Likewise.
+	(tree_simple_for_command::eval_error): Likewise.
+	(tree_complex_for_command::eval_error): Likewise.
+	* pt-assign.cc (tree_multi_assignment::eval_error): Likewise.
+	(tree_simple_assignment::eval_error): Likewise.
+	* pt-idx.cc (tree_index_expression::eval_error): Likewise.
+	* pt-colon.cc (tree_colon_expression::eval_error): Likewise.
+	(tree_colon_expression::rvalue): Delete rendundant error_state check.
+
+2002-06-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-mapper.cc (MAPPER_LOOP, MAPPER_LOOP_1, MAPPER_LOOP_2): New	macros.
+	(octave_mapper::apply): Use them to inline the mapper loops.
+
+	* pt-unop.cc (tree_prefix_expression::rvalue): Ensure that the
+	operand is defined for op_incr and op_decr.
+	(tree_postfix_expression::rvalue): Likewise.
+	From Ben Sapp <bsapp@lanl.gov>.
+
+2002-06-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-mapper.cc (octave_mapper::apply): Exit loops on error.
+
+2002-06-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-struct.cc (octave_struct::print_raw): Print field names with
+	data types if Vstruct_levels_to_print is 0.
+	(octave_struct::print_name_tag): Don't emit newline if
+	Vstruct_levels_to_print is negative.
+	* ov.cc (struct_levels_to_print): Allow negative values too.
+
+2002-05-24  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/lsode.cc (Flsode): Also return istate and error
+	message.  Only generate error if user is not at least requesting
+	the istate output.
+
+	* load-save.cc (hdf5_import_multidim, hdf5_check_attr,
+	hdf5_callback_data, hdf5_read_next_data, read_hdf5_data,
+	add_hdf5_data): Use 0, not NULL in calls to HDF routines.
+
+	* oct-procbuf.cc (octave_procbuf::open): Use NULL, not 0 as last
+	arg in call to execl.
+
+	* debug.cc (get_user_function): Initialise dbg_fcn to 0, not NULL.
+
+2002-05-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/lsode.cc (LSODE_options::da_set_opt_mf,
+	LSODE_options::da_get_opt_mf): New typedefs.
+	(LSODE_OPTIONS::da_set_fcn, LSODE_OPTIONS::da_get_fcn): New fields.
+	(lsode_option_table): Fill them in.
+	(set_lsode_option (const Array<double>&)): New function.
+	(print_lsode_option_list): Handle vector options.
+	(show_lsode_option_list): Likewise.
+	(Flsode_options): Likewise.
+
+	* DLD-FUNCTIONS/lsode.cc (LSODE_options::s_set_opt_mf,
+	LSODE_options::s_get_opt_mf): New typedefs.
+	(LSODE_OPTIONS::s_set_fcn, LSODE_OPTIONS::s_get_fcn): New fields.
+	(lsode_option_table): Fill them in.
+	(set_lsode_option (const std::string&)): New function.
+	(print_lsode_option_list): Handle string options.
+	(show_lsode_option_list): Likewise.
+	(Flsode_options): Likewise.
+
+2002-05-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* c-file-ptr-stream.h (c_file_ptr_buf::fclose): New function.
+	(c_file_ptr_buf::c_file_ptr_buf): Use it as default argument
+	instead of extern "C" fclose function.
+	(i_c_file_ptr_stream::i_c_file_ptr_stream): Likewise.
+	(o_c_file_ptr_stream::o_c_file_ptr_stream): Likewise.
+	* oct-stdstrm.h (octave_istdiostream::octave_istdiostream): Likewise.
+	(octave_istdiostream::create): Likewise.
+	* oct-stdstrm.h (octave_ostdiostream::octave_ostdiostream): Likewise.
+	(octave_ostdiostream::create): Likewise.
+
+	* oct-prcstrm.cc (cxx_pclose): New static function.
+	(octave_iprocstream::octave_iprocstream): Pass it to
+	octave_istdiostream constructor instead of extern "C" pclose function.
+	(octave_oprocstream::octave_oprocstream): Pass it to
+	octave_ostdiostream constructor instead of extern "C" pclose function.
+
+	* debug.cc (Fdbtype): Use C++ strings, not C strings.
+
+2002-05-22  Mumit Khan  <khan@nanotech.wisc.edu>
+
+	* debug.cc: Include cstdlib instead of stdlib.h. Include cstring.
+	(dbtype): Use strchr instead of index.
+	* TEMPLATE-INST/Array-tc.cc (Array<octave_value>::resize_fill_value):
+	Fix template specialization syntax.
+
+2002-05-17  Mumit Khan  <khan@nanotech.wisc.edu>
+
+	* c-file-ptr-stream.h (OCTAVE_STD_FILEBUF): New macro to handle
+	various forms of extensions to std::filebuf.
+	(c_file_ptr_buf::c_file_ptr_buf): Use.
+	* pt-idx.cc (tree_index_expression::tree_index_expression): Remove
+	default arguments are from definition.
+	* symtab.cc (SYMBOL_DEF::print_info): Add std::.
+	(symbol_record::print_info): Likewise.
+	(symbol_table::print_info): Likewise.
+
+2002-05-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-map.cc (Octave_map::assign): Resize RHS if it is shorter
+	than existing struct array.
+
+	* ov-cell.cc (octave_cell::subsasgn): If an error has occurred,
+	skip final assignment step.
+	* ov-list.cc (octave_list::subsasgn): Likewise.
+	* oct-lvalue.cc (octave_lvalue::assign): Add parens to clarify intent.
+	(octave_lvalue::do_unary_op): Likewise.
+
+	* parse.y (function_end): Also accept end of input as end of
+	function if input is coming from an eval string.
+
+	* pr-output.cc (pr_any_float): Don't convert -0 to 0.
+
+2002-05-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (generate_completion): If it looks like we are
+	completing a struct, set completion append char to '\0'.
+
+	* variables.cc (generate_struct_completions): Temporarily set
+	warnings off here.
+
+	* error.cc (warning): Don't do anything if Vdebug_option == "off".
+	Only print backtrace if Vdebug_option == "backtrace".
+	(handle_message): Now returns a string containing the text of the
+	formatted message.  Change all callers.
+	(Fwarning): Now a text-style function.  Handle Matlab-compatible
+	warning options.
+	(Flasterr, Flastwarn, set_warning_option): New functions.
+	(Vlast_error_message, Vlast_warning_message, Vwarning_frequency,
+	Vwarning_option): New static variables.
+	(vwarning): Set Vlast_warning_message here too.
+	(verror): Set Vlast_error_message here too.
+
+2002-05-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h (octave_value::get_count): Now const.
+
+	* ov.h, ov.cc (octave_value::do_non_const_unary_op,
+	octave_value::assign): Idx is now a list of octave_value_list
+	objects.
+
+	* ov-base.cc, ov-base.h	(octave_base_value::do_struct_elt_index_op,
+	octave_base_value::struct_elt_ref): Delete.
+	* ov-struct.cc, ov-struct.h (octave_sruct::do_struct_elt_index_op,
+	octave_struct::struct_elt_ref): Delete.
+	* ov.cc, ov.h (octave_value::do_struct_elt_index_op,
+	octave_value::struct_elt_ref, octave_value::assign_struct_elt,
+	octave_value::convert_and_assign, octave_value::try_assignment,
+	octave_value::try_assignment_with_conversion,
+	octave_value::simple_assign): Delete.
+
+	* parse.y (make_index_expression): Type is now a single
+	character.  Change all callers.  If expr is already an index
+	expression, append index to it.
+	(make_indirect_ref): Likewise.
+
+	* pt-pr-code.cc (octave_print_internal (std::ostream&, const
+	Cell&, bool, int)): Now just a dummy function, panic if called.
+
+	* pt-idx.cc (tree_index_expression::make_arg_struct): New function.
+	(tree_index_expression::type): Delete enum, rename from itype, now
+	a string.
+	(tree_index_expression::arg_nm): Now a list of string_vector objects.
+	(tree_index_expression::idx): Now a list of tree_argument_list*
+	objects.
+	(tree_index_expression::is_index_expression): Always return true.
+	(tree_index_expression::apend, make_value_list, make_subs_cell):
+	New functions.
+
+	* pt-pr-code.cc (visit_index_expression): Handle new definition of
+	tree_index_expression object.
+	* pt-check.cc (visit_index_expression): Likewise.
+	* pt-bp.cc (visit_index_expression): Likewise.
+
+	* ov-usr-fcn.h (octave_user_function::restore_args_passed):
+	Clear args_passed even if nothing was saved.
+
+	* ov-base.cc (octave_base_value::subsasgn,
+	octave_base_value::map_keys, octave_base_value::print_info):
+	New functions.
+
+	* ov.h, ov.cc (octave_value::map_keys, octave_value::print_info,
+	octave_value::subsref, octave_value::subsasgn,
+	octave_value::numeric_assign, octave_value::next_subsref):
+	New functions.
+	(octave_value::empty_conv): New static function.
+	(octave_value (octave_value *, int)): New arg, count.
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::subsref,
+	octave_base_matrix<MT>::subsasgn): New functions.
+	* ov-base-mat.h: Provide decls.
+
+	* ov-builtin.cc (octave_builtin::subsref): New function.
+	* ov-builtin.h: Provide decl.
+
+	* ov-range.cc (octave_range::subsref): New function.
+	* ov-range.h: Provide decl.
+
+	* ov-cell.cc (octave_cell::subsref, octave_cell::subsasgn,
+	octave_cell::list_value, octave_cell::print,
+	octave_cell::print_raw, octave_cell::print_name_tag): New functions.
+	* ov-cell.h: Provide decls.
+
+	* ov-struct.cc (octave_struct::dotref, octave_struct::subsref,
+	octave_struct::subsasgn, gripe_invalid_index,
+	gripe_invalid_index_for_assignment, grip_invalid_index_type,
+	gripe_failed_assignment): New functions.
+	(octave_struct::numeric_conv): New static function.
+	* ov-struct.h: Provide decls.
+	(octave_struct::is_constant): Return true.
+	(octave_struct::map_keys): New function.
+
+	* ov-list.cc (octave_list::subsref, octave_list::subsasgn):
+	New functions.
+	* ov-list.h: Provide decls.
+
+	* ov-usr-fcn.cc (octave_user_function::subsref,
+	octave_user_function::print_symtab_info): New functions.
+	* ov-usr-fcn.h: Provide decl.
+
+	* ov-mapper.cc (octave_mapper::subsref): New function.
+	* ov-mapper.h: Provide decl.
+
+	* ov-base.cc (octave_base_value::subsref,
+	octave_base_value::subsasgn): New functions.
+	* ov-base.h: Provide decls.
+
+	* ov-base.cc (octave_base_value::do_index_op): New arg, resize_ok.
+	* ov-base-mat.cc (octave_base_matrix<MT>::do_index_op): Likewise.
+	* ov-base-nd-array.cc (octave_base_nd_array<AT>::do_index_op): Ditto.
+	* ov-bool-mat.cc (octave_bool::do_index_op): Ditto.
+	* ov-str-mat.cc (octave_char_matrix_str::do_index_op): Ditto.
+	* ov-range.cc (octave_range::do_index_op): Ditto.
+	* ov-list.cc (octave_list::do_index_op): Ditto.
+	* ov.cc (octave_value::do_index_op): Ditto.
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::print_info): New function.
+
+	* ov-base-mat.h (octave_base_matrix<MT>::empty_clone): New function.
+	* ov-base-nd-array.h (octave_base_nd_array<AT>::empty_clone): Ditto.
+	* ov-base.h (octave_base_value::empty_clone): Ditto.
+	* ov-bool-mat.h (octave_bool::empty_clone): Ditto.
+	* ov-ch-mat.h (octave_char_matrix::empty_clone): Likewise.
+	* ov-colon.h (octave_magic_colon::empty_clone): Likewise.
+	* ov-complex.h (octave_complex::empty_clone): Likewise.
+	* ov-cx-mat.h (octave_complex_matrix::empty_clone): Likewise.
+	* ov-fcn.cc (octave_function::empty_clone): Likewise.
+	* ov-file.h (octave_file::empty_clone): Likewise.
+	* ov-range.h (octave_range::empty_clone): Likewise.
+	* ov-list.h (octave_list::empty_clone): Likewise.
+	* ov-re-mat.h (octave_matrix::empty_clone): Likewise.
+	* ov-re-nd-array.h (octave_double_nd_array::empty_clone): Likewise.
+	* ov-str-mat.h (octave_char_matrix_str::empty_clone): Likewise.
+	* ov-struct.h (octave_struct::empty_clone): Likewise.
+	* ov-va_args.h (octave_all_va_args::empty_clone): Likewise.
+	* ov.h (octave_value::empty_clone): Likewise.
+
+	* ov-base-mat.h (octave_base_matrix<MT>::clone): Now const.
+	* ov-base-nd-array.h (octave_base_nd_array<AT>::clone): Likewise.
+	* ov-base.h (octave_base_value::clone): Likewise.
+	* ov-bool-mat.h (octave_bool::clone): Likewise.
+	* ov-ch-mat.h (octave_char_matrix::clone): Likewise.
+	* ov-colon.h (octave_magic_colon::clone): Likewise.
+	* ov-complex.h (octave_complex::clone): Likewise.
+	* ov-cx-mat.h (octave_complex_matrix::clone): Likewise.
+	* ov-fcn.h (octave_function::clone): Likewise.
+	* ov-file.h (octave_file::clone): Likewise.
+	* ov-range.h (octave_range::clone): Likewise.
+	* ov-list.h (octave_list::clone): Likewise.
+	* ov-re-mat.h (octave_matrix::clone): Likewise.
+	* ov-re-nd-array.h (octave_double_nd_array::clone): Likewise.
+	* ov-str-mat.h (octave_char_matrix_str::clone): Likewise.
+	* ov-struct.h (octave_struct::clone): Likewise.
+	* ov-va_args.h (octave_all_va_args::clone): Likewise.
+	* ov.h (octave_value::clone): Likewise.
+
+	* oct-lvalue.cc (octave_lvalue::assign, octave_lvalue::set_index,
+	octave_lvalue::do_unary_op): Idx is now a list of indices.  Simplify.
+	* oct-lvalue.h (octave_lvalue::value): Simplify.
+	(octave_lvalue::struct_elt_names): Delete data member.
+	(octave_lvalue::type): Now string
+	Update decls.
+
+	* pt-exp.h (tree_expression::is_indirect_ref):
+	Delete virtual function.
+
+	* pt-plot.cc (subplot::extract_plot_data): Use subsref, instead of
+	do_index_op.
+
+	* pt-stmt.cc (tree_statement::eval): Don't try to avoid binding
+	ans for structure references.
+
+	* symtab.cc (symbol_record::symbol_def::print_info): Rename from
+	symbol_record::symbol_def::dump_symbol_info.
+	(symbol_record::print_info): Rename from
+	symbol_record::dump_symbol_info.  Now const..
+	(symbol_record::print_symbol_info_line): Now const.
+	(symbol_table::print_info): Rename from print_stats.  Accept
+	ostream arg.  Now const.  Print more info.
+	* symtab.h: Update decls.
+
+	* toplev.cc (octave_config_info): Indexing a map now returns a
+	list, but we only want to return the first element.
+
+	* variables.cc (generate_struct_completions, looks_like_struct):
+	Simplify using eval_string.
+	(F__print_symtab_info__): Rename from F__dump_symtab_info__.
+	Handle "top-level" and individual function names in addition to
+	"global".
+	(F__print_symbol_info__): Rename from F___dump_symbol_info__.
+
+	* octave.cc (intern_argv): Built-in variable argv is now a cell array.
+
+	* ov-complex.cc (valid_scalar_indices): Delete.
+	* ov-scalar.cc (valid_scalar_indices): Delete.
+
+	* oct-obj.cc (octave_value_list::valid_scalar_indices): New function.
+	(octave_value_list::index): New arg, resize_ok.
+	* oct-obj.h: Provide decls.
+
+	* oct-map.cc (Octave_map::keys): Rename from make_name_list.
+	Change all uses.
+	(Octave_map::assign, Octave_map::index): New functions.
+	* oct-map.h: Provide decls.
+
+	* data.cc (Fstruct_contains): Use map_value instead of
+	do_struct_elt_index_op.
+
+	* Cell.h (Cell (const Array2<octave_value>&, int, int)):
+	New constructor.
+	(Cell::resize_fill_value): New static function.
+
+	* input.cc (initialize_command_input): Set basic and completer
+	word break characters.
+
+2002-05-07  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h (octave_value::subsref): New function.
+	* ov-base.cc (octave_base_value::subsref): Likewise.
+
+	* ov-struct.cc (octave_struct::print_raw): Print scalar struct
+	arrays more compactly.
+
+	* DLD-FUNCTIONS/time.cc (extract_tm): Handle new struct array def.
+
+	* oct-map.cc (Octave_map::array_len): New data member.
+	(Octave_map::operator[], Octave_map::contsnts): Return
+	octave_value_list, not Octave_value.  Change callers as necessary.
+	(Octave_map::assign): New function.
+	(Octave_map::array_length): New fucntion.
+	* oct-obj.cc (octave_value_list::assign): New function.
+
+2002-05-06  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* TEMPLATE-INST/Map-oct-obj.cc: New file.
+	* Makefile.in (TI_XSRC): Add it to the list.
+
+	* oct-map.h (Octave_map): Make CHMap<octave_value_list> a data
+	member instead of deriving from CHMap<octave_value>, in
+	preparation for structure arrays.
+
+	* pt-indir.h, pt-indir.cc: Delete.
+
+	* pt-all.h: Don't include pt-indir.h.
+
+	* Makefile.in (PT_SRC): Delete pt-indir.cc from the list.
+	(PT_INCLUDES): Delete pt-indir.h from the list.
+
+	* pt-walk.h (tree_walker::visit_indirect_ref): Delete.
+	* pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_indirect_ref):
+	Likewise.
+	* pt-check.h, pt-check.cc (tree_checker::visit_indirect_ref): Likewise.
+	* pt-bp.h, pt-bp.cc (tree_breakpoint::visit_indirect_ref): Likewise.
+
+	* pt-walk.h: Delete forward decl for tree_indirect_ref.
+	* variables.h: Likewise.
+
+	* parse.y (make_indirect_ref): Return tree_index_expression, not
+	tree_indirect_ref.
+
+	* pt-idx.h (tree_index_expression::struct_elt_name): New function.
+
+	* pt-idx.cc (tree_index_expression::lvalue): Handle dot case too.
+	(tree_index_expression::name): Likewise.
+	(tree_index_expression rvalue (int)): Likewise.
+	(tree_index_expression::eval_error): Likewise.
+	* pt-pr-code.cc (visit_index_expression): Likewise.
+	* pt-bp.cc (tree_breakpoint::visit_index_expression): Likewise.
+
+	* pt-idx.h (tree_index_expression::dot): New type enum element.
+	(tree_index_expression::expr_type): New function.
+	(tree_index_expression::tree_index_expression (tree_expression*,
+	const std::string&, int, int)): New constructor.
+	(tree_index_expression::is_index_expression): Return value is now
+	conditional on itype.
+	(tree_index_expression::is_indirect_ref): New function.
+	(tree_index_expression::lvalue_ok): Also return true if itype is dot.
+
+2002-05-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (ABORT_PARSE): Maybe restore symbol table context too.
+
+	* pt-idx.h (tree_index_expression::type): New enum.
+	(tree_index_expression::etype): New data member.
+	* pt-idx.h (tree_index_expression::tree_index_expression):
+	New arg, t, to set type of index.
+	* parse.y (make_index_expression): Likewise.
+	Change all callers.
+
+	* ov-base.cc (cell_conv): New conversion function.
+	(install_base_type_conversions): Install it.
+	Install conversion for indexed assignment of octave_cells to
+	undefined values.
+
+	* TEMPLATE-INST/Array-tc.cc: Instantiate assign functions too.
+	(Array<octave_value>::resize_fill_value (void)):
+	Provide specialization for octave_value.
+
+	* ov-cell.cc (octave_cell::assign (const octave_value_list&,
+	const octave_value&)): New function.
+	* Cell.h (Cell::Cell (const octave_value&)): New function.
+
+	* OPERATORS/op-cell.cc (install_list_ops): Use DEFASSIGNANYOP_FN
+	and INSTALL_ASSIGNANYOP, not DEFASSIGNOP_FN and INSTALL_ASSIGNOP.
+
+2002-05-03  Cai Jianming  <caijianming@yahoo.co.uk>
+
+	* OPERATORS/op-cell.cc: New file.
+	* Makefile.in (OP_XSRC): Include it in the list.
+
+	* parse.y (cell): Return a cell type instead of Matrix type.
+
+	* ov.cc (install_types): Install octave_cell type.
+
+	* pr-output.cc (octave_print_internal): Handle Cells.
+	* pr-output.h (octave_print_internal): Provide decl.
+
+	* ov-cell.h (octave_cell): Derive from octave_base_matrix<Cell>.
+	* ov-cell.cc (do_index_op, assign, print, print_raw,
+	print_name_tag): Delete.
+
+	* Cell.cc (allocator, index): Delete.
+	* Cell.h (Cell): Derive from Array2<octave_value>.
+	Most functions removed since we can use those from Array2 instead.
+
+2002-05-02  Cai Jianming  <caijianming@yahoo.co.uk>
+
+	* ov-base-mat.cc (octave_base_matrix<MT>::assign):
+	New function.
+	* ov-base-mat.h (octave_base_matrix<MT>::assign): Provide decl.
+	* ov-bool-mat.cc (octave_bool_matrix::assign): Delete.
+	* ov-bool-mat.h (octave_bool_matrix:assign): Delete decl
+	* ov-cx-mat.cc (octave_complex_matrix::assign (const
+	octave_value_list& idx, const ComplexMatrix&)): Delete.
+	* ov-cx-mat.h (octave_complex_matrix:assign (const
+	octave_value_list& idx, const ComplexMatrix&)): Replace decl with
+	function.
+	* ov-re-mat.cc (octave_bool_matrix::assign): Delete.
+	* ov-re-mat.h (octave_bool_matrix:assign): Delete decl.
+
+2002-05-02  Cai Jianming  <caijianming@yahoo.co.uk>
+
+	* OPERATORS/op-bm-b.cc: New file.x
+	* Makefile.in (OP_XSRC): Add it to the list.
+
+2002-04-30  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (print_version_and_exit): Use
+	OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY, not
+	OCTAVE_NAME_AND_VERSION.
+
+	* octave.cc (verbose_usage):
+	Use OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY, not
+	OCTAVE_NAME_VERSION_AND_COPYRIGHT.
+
+	* version.h (OCTAVE_COPYING_STATEMENT, OCTAVE_WARRANTY_STATEMENT,
+	OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY,
+	X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS,
+	OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS,
+	OCTAVE_BUGS_STATEMENT): New macros.
+	(OCTAVE_STARTUP_MESSAGE): Define in terms of
+	X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS
+	to include bugs address and amplified warranty information.
+
+	* DLD-FUNCTIONS/lsode.cc (Flsode): Delete unused variable nsteps.
+
+2002-04-29  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (additional_help_message): Use www.octave.org, not
+	www.che.wisc.edu/octave/octave.html.
+	* octave.cc (verbose_usage): Likewise.
+
+2002-04-27  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/daspk.cc: New file.
+	* Makefile.in (DLD_XSRC): Add it to the list.
+
+2002-04-25  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* DLD-FUNCTIONS/kron.cc: New file.
+	* Makefile.in (DLD_SRC): Add it to the list.
+
+2002-04-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (save_symtab): New non-terminal.  Save current symbol
+	table context here.
+	(function_beg): Use it.
+	(symtab_context): New file-scope variable.
+	(recover_from_parsing_function): Restore symbol table context here.
+
+2002-04-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (get_lines_and_columns): Handle CRLF as line
+	separator in addition to LF.
+
+2002-04-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (hdf5_ofstream::hdf5_ofstream):
+	Explicitly List std::ostream(0) in constructor.
+	(hdf5_ifstream::hdf5_ifstream):
+	Explicitly List std::istream(0) in constructor.
+	(hdf5_fstreambase::hdf5_fstreambase): Use std::ios::setstate, not set.
+	(hdf5_fstreambase::close): Likewise.
+	(hdf5_fstreambase::open): Likewise.
+
+2002-04-10  Ben Sapp  <bsapp@lanl.gov>
+
+	* pt-stmt.cc (delete_breakpoint): List breakpoints if line < 0.
+	* debug.cc (get_user_function): Check symbol by name first.
+	(Fdbstop): Rename from Fdbg_set.
+	(Fdbclear): Rename from Fdbg_delete.
+	(Fdbstatus): Rename from Fdbg_list.
+	(Fdbg_where): Rename from Fdbwhere.
+	(do_dbtype, Fdbtype): New functions.
+
+2002-04-10  Peter Van Wieren  <peter.vanwiere@avlna.com>
+
+	* load-save.cc (save_mat5_binary_element): Save elements of 2d
+	character matrices in proper order.
+
+2002-04-09  Paul Kienzle  <pkienzle@users.sf.net>
+
+	* utils.cc (do_string_escapes): Handle \0 too.
+	(undo_string_escape): Likewise.
+
+2002-04-04  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (octave_config_info): Define struct member EXEEXT, not EXE.
+	* Makefile.in (install-bin): Use $(EXEEXT), not $(EXE).
+	* oct-conf.h.in (OCTAVE_CONF_EXEEXT): Define and substitute
+	OCTAVE_CONF_EXEEXT, not OCTAVE_CONF_EXE.
+
+2002-04-03  Steven G. Johnson  <stevenj@alum.mit.edu>
+
+	* DLD-FUNCTIONS/balance.cc: Use F77_FUNC instead of F77_FCN.
+	* DLD-FUNCTIONS/qz.cc: Likewise.
+	* DLD-FUNCTIONS/rand.cc: Likewise.
+	* octave.cc: Likewise.
+	* toplev.cc (Foctave_config_info): Delete use of FORTRAN_MAIN_FLAG.
+	* oct-conf.h.in: Delete use of OCTAVE_CONF_FORTRAN_MAIN_FLAG.
+	* syscalls.cc (mk_stat_map):
+	Use HAVE_STRUCT_STAT_ST_RDEV instead of HAVE_ST_RDEV.
+	Use HAVE_STRUCT_STAT_ST_BLKSIZE instead of HAVE_ST_BLKSIZE.
+	Use HAVE_STRUCT_STAT_ST_BLOCKS instead of HAVE_ST_BLOCKS.
+
+2002-04-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l, lex.h (parser_end_of_input): New global variable.
+	(reset_parser): Reset it here.
+	* parse.y (input): Set it to TRUE on EOF.
+	(parse_and_executed): Save and restore it, check it to correctly
+	break out of parse-execute loop.
+	(parse_fcn_file): Likewise.
+	(eval_string): Likewise.
+	* toplev.cc (main_loop): Likewise.
+
+	* parse.y (input): Call YYACCEPT for END_OF_INPUT.
+	Return no-op command for bare newline.
+	(parse_and_execute): Handle change in yyparse return value semantics.
+
+	* toplev.cc (main_loop): Likewise.
+
+2002-03-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (parse_fcn_file): Call error if there is no input file.
+	(parse_and_execute (FILE *): Protect get_input_from_eval_string.
+	Set get_input_from_eval_string to false before calling yyparse.
+	* lex.l (reset_parser): Also skip yyrestart (stdin) if
+	reading_script_file is true.
+
+2002-03-07  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-loop.cc (evaluating_looping_command): New global.
+	(tree_while_command::eval): Protect evaluating_looping_command.
+	Set it to true while evaluating loop.
+	(tree_do_until_command::eval): Ditto.
+	(tree_simple_for_command::eval): Ditto.
+	(tree_complex_for_command::eval): Ditto.
+	* pt-loop.h (evaluating_looping_command): Provide decl.
+	* parse.y (parse_fcn_file): Protect get_input_from_eval_string.
+	Set get_input_from_eval_string to false before calling yyparse.
+	(make_break_command): Also check evaluating_looping_command.
+	(make_continue_command): Also check evaluating_looping_command.
+	(eval_string (const std::string&, bool, int&, int)): Loop over
+	yyparse to handle multi-line strings.
+	Move call to unwind_protect::run_frame to end of function.
+	Don't reset parser before calling yyparse.
+	Correctly handle return, break, and continue.
+
+	* input.cc (input_from_eval_string_pending): New global variable.
+	(get_usr_input): Use it.
+	* input.h (input_from_eval_string_pending): Provide decl.
+
+2002-03-06  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Don't unwind_protect num_named_args (it doesn't change on
+	recursive calls).
+	Do re-initialize curr_va_arg_number to num_named_args after
+	unwind_protecting.
+
+	* ov-usr-fcn.h (octave_user_function::clear_args_passed): Delete.
+	(octave_user_function::saved_args): New data member.
+	(octave_user_function::save_args_passed): New function.
+	(octave_user_function::restore_args_passed): Ditto.
+	* ov-usr-fcn.cc (clear_args_passed): Delete.
+	(restore_args_passed): New function.
+	(octave_user_function::do_multi_index_op): Correctly save and
+	restore args passed for recursive calls.
+
+	* TEMPLATE-INST/SLStack-ovl.cc: New file.
+	* Makefile.in: Add it to the list.
+
+2002-02-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
+	Handle define_all_return_values after function is evaluated.
+	From Paul Kienzle <pkienzle@jazz.ncnr.nist.gov>.
+
+	* ov-scalar.cc (convert_to_str): Use octave_value (std::string)
+	constructor instead of octave_value (char *) constructor so that
+	setstr (0) will work.
+
+	* pager.cc (octave_pager_buf::sync): Set pointer to beginning
+	of buffer after calling flush_currnt_contents_to_diary.
+	(octave_diary_buf::sync): Call eback only once.
+
+2002-01-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (.): Remove test for EOF since it is already handled
+	separately.
+
+2001-12-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (save_mat5_binary_element):
+	Extract dimensions directly from tc.
+	Handle ranges the same as real matrices.
+
+2001-11-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (DATA_REDUCTION): If no DIM arg, pass -1 to FCN.
+
+2001-11-09  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-conf.h.in (FFTW_LIBS, LD_CXX, LIBOCT_PATHSEARCH,
+	LIBOCT_READLINE, MKOCTFILE_LFLAGS): Substitute.
+	* toplev.cc (octave_config_info): Add them to the map.
+
+2001-11-08  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/lsode.cc (Flsode): Don't bother to give OUTPUT
+	matrix a size before calling integration function.
+
+2001-11-06  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	Makefile.in (OCTAVE_LIBS): Add $(LIBOCT_READLINE) and
+	$(LIBOCT_PATHSEARCH) to the list.
+
+2001-10-08  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/dassl.cc (dassl_user_function): Allow user
+	supplied RES function to return IDID as second value.
+
+2001-07-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y: Clear help_buf after documenting function.
+
+2001-06-29  Mumit Khan  <khan@nanotech.wisc.edu>
+
+	* defun-int.h (DEFINE_FUN_INSTALLER_FUN{2,3}): New macros.
+	(DEFINE_FUN_INSTALLER_FUN): Use.
+	* dynamic-ld.cc ({STRINGIFY, STRINGIFY1}): New macros.
+	(octave_dynamic_loader::mangle_name): Support dynamic linking
+	for GNU v3 and Sun C++ ABI.
+
+2001-06-26  Mumit Khan  <khan@nanotech.wisc.edu>
+
+	* c-file-ptr-stream.h (c_file_ptr_buf::c_file_ptr_buf): Add GCC3
+	libstdc++-v3 support.
+	* load-save.cc (save_mat5_binary_element): Cast arguments to the
+	correct type.
+	(save_ascii_data): Eliminate compiler warning.
+	* toplev.cc (system): Prefix std::.
+
+2001-05-31  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-cx-mat.cc: Deleve unnecessary instantiation of assign function.
+	* ov-re-mat.cc: Likewise.
+	* ov-re-nd-array.cc: Likewise.
+	* ov-str-mat.cc: Likewise.
+	* ov-bool-mat.cc: Likewise.
+
+	* load-save.cc (save_ascii_data): When saving string data, get raw
+	string value for matrix row since there may be embedded nuls.
+
+	* pt-mat.cc (Vstring_fill_char): No longer static.
+	* pt-mat.h: Provide declaration.
+
+2001-05-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (initialize_pathsearch): Save initial value of the
+	TEXMFDBS environment variable here.
+	* toplev.cc (restore_texmfdbs_envvar): New function.
+	(Fsystem): Set TEXMFDBS back to original value before running
+	subprocesses.
+
+2001-05-02  Mumit Khan  <khan@nanotech.wisc.edu>
+
+	* Makefile.in (octave): Add $(FFTW_LIBS).
+
+2001-04-27  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/sort.cc (mx_sort): Check for NaNs in comparisons.
+
+2001-04-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (OCTAVE_LIBS): Delete $(LIBREADLINE) from the list.
+	(octave): Delete TERMLIBS from link command.
+	* oct-conf.h.in: Delete references to LIBREADLINE, TERMLIBS.
+	* toplev.cc (octave_config_info): Delete entries for LIBREADLINE,
+	TERMLIBS.
+
+2001-04-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install-lib): Don't use mk-libdir-link.
+	(install-inc): Don't use mk-includedir-link.
+
+2001-04-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (fold (tree_binary_expression *)):
+	Set discard_error_messages here instead of buffer_error_messages.
+	Don't add clear_global_error_variable to the unwind_protect stack.
+	(fold (tree_unary_expression *)): Likewise.
+	(finish_colon_expression): Likewise.
+	(finish_matrix): Likewise.
+
+	* error.cc (panic): Set discard_error_messages to false here.
+	(verror): Return immediately if discard_error_messages is true.
+
+	* error.cc (discard_error_messages): New global variable.
+	* error.h: Provide declaration.
+
+2001-04-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l: If unexpected character is EOF, report EOF error instead
+	of invalid character error.
+
+2001-04-18  Mumit Khan  <khan@nanotech.wisc.edu>
+
+	* load-save.cc (read_mat5_binary_element): Cast arguments to the
+	correct type when adding stream positions.
+	* DLD-FUNCTIONS/det.cc (det): Explicity create a Complex value to
+	work around a Sun C++ type conversion bug.
+
+2001-04-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* symtab.cc (define_builtin_const): Don't call replace_all_defs
+	here.
+
+	* error.cc (error_message_buffer): Now static.
+	* error.h (error_message_buffer): Delete extern declaration.
+
+2001-03-29  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/besselj.cc (besselh): Use K arg.
+	From: Thomas Stuart <tstuart@ing.sun.ac.za>.
+
+	* oct-stream.cc (get_size): Don't allow [Inf, N] as a size
+	specification for the read and scanf functions.
+	(get_size): SIZE is now an Array<double> instead of a Matrix object.
+	(read): Likewise.  Change all callers.
+	(scanf): Likewise.  Change all callers.
+
+2001-03-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/det.cc (Fdet): Only return rcond if nargout > 1.
+	* DLD-FUNCTIONS/inv.cc (Finv): Only return rcond if nargout > 1.
+
+2001-03-26  Paul Kienzle  <pkienzle@kienzle.powernet.co.uk>
+
+	* DLD-FUNCTIONS/det.cc (Fdet): Suppress warning, but return rcond.
+	* DLD_FUNCTIONS/inv.cc (Finv): Return rcond if requested.
+
+2001-02-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt.h (tree::break_statement): New static member.
+	(tree::break_function): Make const.
+	* pt.cc (tree::break_statement): Initialize here.
+	(tree::break_function): Make const.
+	* pb-bp.h (break_statement): Delete global varaible declaration.
+	* pt-bp.cc (break_statement): Delete global variable definition.
+
+	* pt-bp.h (tree_breakpoint::bp_list): Rename from lst.
+
+	* pt.h: Don't inlcude ov-usr-fcn.h.
+	Provide forward declaration of octave_user_function class.
+
+2001-02-28  Ben Sapp  <bsapp@lanl.gov>
+
+	* debug.cc (get_user_function): Simplify by using curr_function.
+	(Fdbg_where): New function.
+	(Fdbg_list): Now DLD_TEXT instead of DLD_FCN.
+	(Fdbg_set): Likewise.
+	(Fdbg_delete): Likewise.
+
+	* pt-bp.h (break_statement): New global variable.
+	(MAYBE_DO_BREAKPOINT): Check for dbg_next and dbg_step.
+	Print line, column, and current statement.
+	* pt-bp.cc (break_statement): New global variable
+	(tree_breakpoint::visit_do_until_command): Return immediately if
+	we've already found the line.
+	(tree_breakpoint::visit_colon_expression): Set breakpoint info here.
+	(tree_breakpoint::visit_binary_expression): Recurse here when
+	checking for breakpoints.
+
+	* debug.cc: Move here from DLD-FUNCTIONS/debug.cc.
+	* Makefile.in (DIST_SRC): Add it to the list.
+	(DLD_XSRC): Delete it from the list.
+
+	* pt.h (tree::last_line, tree::break_function): New static members.
+	* pt.cc(tree::last_line, tree::break_function): Initialize them.
+
+	* pt-cell.h (tree_cell::tree_cell): Accept line and column info.
+	* pt-mat.h (tree_matrix::tree_matrix): Likewise.
+
+	* ov-usr-fcn.h (octave_user_function::sym_tab): Delete.
+
+	* input.cc (get_user_input): Handle dbg_next.
+	Set tree:break_function and tree::last_line when doing dbg_step.
+
+2001-02-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (handle_string): Save line and column information in token.
+	(is_keyword): Save line and column information for plot style and
+	axes tokens.
+
+	* toplev.cc (main_loop): Set retval to non-zero value if error
+	occurs when not interactive.
+
+2001-02-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (gobble_leading_white_space): Handle CRLF here too.
+	* lex.l (check_for_garbage_after_fcn_def): Likewise.
+
+	* lex.l: Add numeric value of character to error message for
+	unrecognized characters.
+
+2001-02-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/minmax.cc (EMPTY_RETURN_CHECK): For empty matrix
+	args, make Octave's min	and max behave like Matlab.
+
+2001-02-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* OPERATORS/op-s-s.cc (el_or, el_and): Return bool value.
+
+2001-02-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-binop.cc (tree_boolean_expression::rvalue):
+	Don't cast result to double.
+
+	* OPERATORS/op-b-b.cc: Allow & and | operators to return bool values.
+
+2001-02-09  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (DATA_REDUCTION): Undo previous change.
+
+2001-02-13  Matthew W. Roberts  <matt@nephi.tamu.edu>
+
+	* load-save.cc (Fload): Accept -4 as an alias for -v4 and -mat4-binary.
+	(Fsave): Likewise.
+
+2001-02-13  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (lexical_feedbac::init):
+	Initialize looking_at_matrix_or_assign_lhs too.
+
+2001-02-09  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (DATA_REDUCTION): Allow FCN(x,0) to be equivalent to FCN(x).
+
+2001-02-06  Mumit Khan  <khan@nanotech.wisc.edu>
+
+	* oct-stream.cc (octave_scan): Partially implement and specialize
+	for char*.  Delete the old template instantiations.
+	(BEGIN_S_CONVERSION): Use strings instead of ostrstreambuf.
+	(octave_base_stream::do_scanf): Pass correct parameter to
+	do_scan_conv.
+
+2001-02-05  Mumit Khan  <khan@nanotech.wisc.edu>
+
+	* pr-output.cc (set_format): Add std:: namespace qualifier as
+	needed.
+
+	* oct-stream.cc (octave_scan): Implement, and specialize for
+	char*. Delete the old template instantiations.
+	(BEGIN_S_CONVERSION): Use strings instead of ostrstreambuf.
+	(octave_base_stream::do_scanf): Pass correct parameter to
+	do_scan_conv.
+
+	* Makefile.in (TEMPLATE_AR, TEMPLATE_ARFLAGS): Use to create
+	archive libraries containing templates.
+
+	* c-file-ptr-stream.h: Include <fstream>. Use <cstdio> instead of
+	<stdio.h>
+	(c_file_ptr_buf::int_type): Compat typedef for non-ISO libstdc++.
+	(c_file_ptr_buf::{overflow, underflow, uflow, pbackfail): Use.
+	(c_file_ptr_buf::c_file_ptr_buf): Handle various compilers.
+	(c_file_ptr_buf::file_number): New member function.
+	(c_file_ptr_buf::fd): New private data.
+	(i_c_file_ptr_stream::i_c_file_ptr_stream): Initialize stream
+	correctly.
+	(o_c_file_ptr_stream::o_c_file_ptr_stream): Likewise.
+	* c-file-ptr-stream.cc
+	(c_file_ptr_buf::{overflow, underflow, uflow, pbackfail): Add
+	ISO-compliant EOF handling.
+	* oct-stream.cc (octave_base_stream::file_number): Use
+	c_file_ptr_buf::file_number to get underlying file descriptor.
+
+	* comment-list.cc: Add missing class qualifier.
+
+	* file-io.cc, load-save.cc, mappers.cc, oct-fstrm.cc, oct-fstrm.h,
+	oct-iostrm.cc, oct-iostrm.h, oct-stdstrm.cc, oct-stdstrm.h,
+	oct-stream.cc, oct-stream.h, oct-strstrm.cc, oct-strstrm.h,
+	ov-base-nd-array.cc, ov-base-scalar.h, ov-complex.cc, ov-cx-mat.cc,
+	pager.cc, pr-output.cc, procstream.h, pt-bp.h, utils.cc:
+	Add std:: namespace qualifier as needed, and replace
+	deprecated or invalid libstdc++-v2 names with standard ones
+	where appropriate.
+
+	* DLD-FUNCTIONS/minmax.cc: Fix docstring.
+
+	* oct-fstrm.cc (octave_fstream::octave_fstream): Maintain fix for
+	libstdc++-v2.
+
+	* oct-stdstrm.cc (octave_ostdiostream::create): Remove default
+	parameter value in definition.
+
+	* oct-stream.cc (octave_stream::mode_as_string): Don't assume
+	std::iso::openmode is an integral quantity.
+
+	* pager.cc, procstream.h: Initialize streams correctly.
+
+	* utils.cc: Use CXX_ISO_COMPLIANT_LIBRARY guard.
+
+	* ov-base-nd-array.cc (idx_list_to_idx_array): Inline.
+
+	* ov-base-scalar.h (octave_base_scalar::octave_base_scalar): Use
+	``const ST& s'' instead of ST to workaround gcc3 complex bug.
+
+2001-02-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (next_token_is_bin_op): Remove Checks for spacing except
+	for ops that begin with +, - but are not ++, --, +=, or -=.
+
+2001-02-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (get_user_input): Handle dbg_cont and dbg_step here.
+	* debug.cc (Fdbg_cont): Delete.
+	* pt-bp.h (MAYBE_DO_BREAKPOINT): Check tree::break_next here.
+	* pt.h (tree::break_next): New static member.
+	* pt.cc: Initialize it.
+
+	* parse.h (feval (const octave_value_list&, int)):
+	Set default value for nargout.
+	(feval (const std::string&, const octave_value_list&, int)):
+	Set default values for args and nargout.
+
+2001-02-01  Ben Sapp  <bsapp@lanl.gov>
+
+	* DLD-FUNCTIONS/debug.cc: New file.
+	* pt-bp.h, pt-bp.cc: New files, for breakpoints.
+	* Makefile.in: Add them to the appropriate lists.
+
+	* pt-stmt.cc (tree_statement_list::set_breakpoint,
+	tree_statement_list::delete_breakpoint,
+	tree_statement_list::list_breakpoints): New functions.
+
+	* pt.h (tree::break_point): New data member.
+	(tree::set_breakpoint, tree::delete_breakpoint, tree::is_breakpoint):
+	New virtual functions.
+
+	* pt-mat.cc (tree_matrix::rvalue): Check for breakpoint here.
+	* pt-unop.cc (tree_prefix_expression::rvalue): Likewise.
+	(tree_postfix_expression::rvalue): Likewise.
+	* pt-loop.cc (tree_do_until_command::eval): Likewise.
+	(DO_LOOP): Likewise.
+	(tree_simple_for_command::eval): Likewise.
+	(tree_complex_for_command::eval): Likewise.
+	* pt-assign.cc (tree_simple_assignment::rvalue): Likewise.
+	* pt-binop.cc (tree_binary_expression::rvalue): Likewise.
+	(tree_boolean_expression::rvalue): Likewise.
+	* pt-cell.cc (tree_cell::rvalue): Likewise.
+	* pt-colon.cc (tree_colon_expression::rvalue): Likewise.
+	* pt-except.cc (tree_try_catch_command::eval): Likewise.
+	(tree_unwind_protect_command::eval): Likewise.
+	* pt-id.cc (tree_identifier::rvalue): Likewise.
+	(tree_identifier::lvalue): Likewise.
+	* pt-indir.cc (tree_indirect_ref::rvalue): Likewise.
+	* pt-jump.cc (tree_break_command::eval): Likewise.
+	(tree_continue_command::eval): Likewise.
+	(tree_return_command::eval): Likewise.
+
+2001-01-29  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Map.h, Map.cc (CHMap<C>::operator = (const CHMap&)): New function.
+	(Map<C>::operator = (const Map&)): Likewise.
+	(Map<C> (const Map&)): Likewise.
+
+	* OPERATORS/op-cm-cs.cc, OPERATORS/op-cm-s.cc,
+	OPERATORS/op-m-cs.cc, OPERATORS/op-m-s.cc:
+	Make ldiv operator work for row vector by scalar ops.
+
+	* OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-m.cc,
+	OPERATORS/op-s-cm.cc, OPERATORS/op-s-m.cc:
+	Make div operator work for scalar by column vector ops.
+
+2001-01-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (safe_fclose): Discard comments at the end of a file.
+
+2001-01-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* error.cc (pr_where): Call pr_where_1 with two args, not one, to
+	avoid processing format escapes that might appear in formatted code.
+
+2001-01-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* error.cc (vwarning): Write to output_buf, then send formatted
+	message to diary and error streams.
+
+2001-01-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-cx-mat.cc (octave_complex_matrix::try_narrowing_conversion):
+	Handle empty matrix dimensions correctly.
+
+2000-12-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pager.h (octave_pager_buf::diary_skip): New data member.
+	(octave_pager_buf::octave_pager_buf): Initialize it.
+	* pager.cc (octave_pager_buf::set_diary_skip): New function.
+	(octave_pager_stream::set_diary_skip): New function.
+	(octave_pager_buf::sync): Call flush_current_contents_to_diary
+	instead of octave_diary.write.
+	(octave_pager_buf::flush_current_contents_to_diary): Use
+	diary_skip, reset when done.
+	(open_diary_file): Call octave_stdout.set_diary_skip here.
+
+2000-12-06  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/minmax.cc (EMPTY_RETURN_CHECK): New macro.
+	(min, max): Use it.
+
+	* DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): New macro.  If single arg
+	is empty, return empty matrix result and empty matrix for index.
+	(Fmin, Fmax): Use MINMAX_BODY, so we have consistent definition
+	for min and max functions.
+
+2000-11-30  Joerg Specht  <joerg.specht@ins.uni-stuttgart.de>
+
+	* help.cc (display_help_text): Append new line at end of doc string.
+
+2000-11-30  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/lsode.cc (LSODE_ABORT1, LSODE_ABORT2): Omit `##'
+	in macro definition since they are not needed to paste strings
+	together and picky compilers choke on them.
+	* DLD-FUNCTIONS/quad.cc (QUAD_ABORT1, QUAD_ABORT2): Likewise.
+	* DLD-FUNCTIONS/fsolve.cc (FSOLVE_ABORT1, FSOLVE_ABORT2): Likewise.
+	* DLD-FUNCTIONS/dassl.cc (DASSL_ABORT1, DASSL_ABORT2): Likewise.
+
+2000-11-29  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* mkbuiltins (XDEFUNX_INTERNAL): New macro.
+	* mkgendoc (XDEFUNX_INTERNAL): Likewise.
+	* defun-int.h (DEFUNX_INTERNAL): Use it.
+
+	* defun.h (DEFUNX): New macro.
+	* defun-int.h (DEFUNX_INTERNAL, DECLARE_FUNX): New macro.
+	(DECLARE_FUN): Define in terms of DECLARE_FUNX.
+
+	* mkdefs: Read and print one line at a time, so we can force
+	patterns to match only at the beginning of a line.
+
+	* defun-int.h (UNDERSCORIFY): Omit `##' in macro definition since
+	they are not needed to paste strings together and picky compilers
+	choke on them.
+
+2000-11-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (save_ascii_data_for_plotting): New function.
+	* pt-plot.cc (save_in_tmp_file): Use it instead of save_ascii_data.
+
+	* load-save.cc (save_ascii_data): Warn if saving Inf or NaN values.
+	New arg, infnan_warned.  Use it to warn just once per set.
+	Now static.
+	(do_save): New arg, infnan_warned.  Pass to save_ascii_data.
+	(save_vars): Initialize infnan_warned here, pass to do_save.
+
+2000-11-16  Paul Kienzle  <pkienzle@kienzle.powernet.co.uk>
+
+	* file-io.cc (Ffprintf): If no file id parameter, don't return
+	count of characters if nargout is 0 (for compatibility with
+	Matlab).
+
+2000-11-16  Ben Sapp  <bsapp@lanl.gov>
+
+	* DLD-FUNCTIONS/rand.cc (do_rand): Declare loop counter as
+	volatile int, not just volatile.
+
+2000-10-31  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (skip_comments): Allow % as comment character too.
+	(extract_keyword): Likewise.
+
+	* Makefile.in (oct-gperf.h): Remove -a, -g, and -p flags for gperf.
+
+2000-10-30  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (do_load): Allow result to be returned instead of
+	inserting variables in the symbol table.  Change patterned after
+	patch by Kian Ming Adam Chai <caijianming@yahoo.co.uk>.
+
+2000-10-27  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (ops.cc): Don't substitute BLAS_LIBS and LIBS here.
+
+	* oct-conf.h.in (OCTAVE_CONF_SPECIAL_MATH_LIB): Delete.
+	(OCTAVE_CONF_BLAS_LIBS): Add.
+	* toplev.cc (octave_config_info): Likewise, add BLAS_LIBS and
+	remove SPECIAL_MATH_LIB from the struct.
+
+	* parse.y (feval (const octave_value_list&, int)): Don't panic
+	while processing arg names if arg.length() and arg_names.length()
+	differ.
+
+2000-10-12  Paul Kienzle  <pkienzle@kienzle.powernet.co.uk>
+
+	* ov-cell.h (octave_cell::is_cell): New function.
+
+	* pt-select.cc (equal): New static function.
+	(tree_switch_case::label_matches): Use it to compare case label
+	against arg.  Handle cell arrays as case labels.
+
+2000-10-12  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	Change patterned after patch by Cai Jianming
+	<caijianming@yahoo.co.uk> to support for DIM arg in 2.0.x sources.
+
+	* data.cc (DATA_REDUCTION): New macro.  Handle second DIM arg here.
+	(Fcumprod): Replace function body with DATA_REDUCTION.
+	(Fcumsum): Likewise.
+	(Fprod): Likewise.
+	(Fsum): Likewise.
+	(Fsumsq): Likewise.
+
+2000-10-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* error.cc (pr_where_2): New function.
+	(pr_where_1): Use it instead of error_1 to avoid setting error_state.
+
+2000-10-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* xdiv.cc (xdiv): Warn if execution falls through to lssolve.
+
+2000-09-06  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (FERRNO): New function (currently commented out).
+
+	* c-file-ptr-stream.cc (c_file_ptr_buf::close): Call flush here.
+	(c_file_ptr_buf::~c_file_ptr_buf): Not here.
+	* c-file-ptr-stream.h (c_fie_ptr_buf::close_fcn): New typedef.
+	(c_file_ptr_buf::cf): New data member.  Add default constructor arg.
+	(class c_file_ptr_buf): Derive from filebuf, not streambuf.
+	(i_c_file_ptr_stream, o_c_file_ptr_stream): Handle close function here.
+	* oct-procstrm.cc (octave_iprocstream, octave_oprocstream): Likewise.
+	(octave_iprocstream::do_close, octave_oprocstream::do_close): Delete.
+	* oct-stdstrm.cc (octave_base_stdiostream::~octave_base_stdiostream):
+	Don't do anything.
+	(octave_istdiostream::create): Handle close function here.
+	(octave_istdiostream::octave_istdiostream): Likewise.
+	(octave_ostdiostream::create): Likewise.
+	(octave_ostdiostream::octave_ostdiostream): Likewise.
+	(class octave_base_stdiostream): Don't cache FILE pointer here.
+
+2000-09-01  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* syscalls.cc (Ffcntl): Don't assume that the file id passed in is
+	the same as the underlying system file id.
+
+2000-08-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y: Use octave_time, not time.
+
+2000-08-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (printf_value_cache::double_value): Also set
+	curr_stat to conversion_error if there are no values at all.
+
+2000-08-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dirfns.cc (Flink, Fsymlink, Freadlink): New functions.
+
+2000-08-01  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (Vsave_header_format_string): New variable.
+	(symbols_of_load_save): DEFVAR it.
+	(save_header_format, default_save_header_format): New functions.
+	(write_header): Use Vsave_header_format_string here.
+
+2000-07-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-pr-code.h (tree_print_code::curr_print_indent_level,
+	(tree_print_code::beginning_of_line): No longer static.
+	(tree_print_code::tree_print_code): Initialize them here.
+	* pt-pr-code.cc: Not here.
+
+	* pt-stmt.cc (tree_statement::eval): Set curr_statement here.
+	(tree_statement_list::eval): Not here.
+
+	Debug-on-error stuff based on a patch submitted by Paul Kienzle
+	<pkienzle@kienzle.powernet.co.uk> for 2.0.x.
+
+	* error.cc (Vdebug_on_warning): New static flag variable.
+	(debug_on_warning): New function.
+	(symbols_of_warning): DEFVAR debug_on_warning.
+	(warning): Handle debug_on_warning here.
+
+	* input.cc (do_keyboard): New function.
+	(Fkeyboard): Use it to do the real work.
+	* pt-stmt.cc (curr_statement): New static variable.
+	(tree_statement::eval): Save and restore it here.
+	* error.cc (Vdebug_on_error): New static flag variable.
+	(debug_on_error): New function.
+	(symbols_of_error): DEFVAR debug_on_error.
+	(pr_where, pr_where_1): New functions.
+	(error): Handle debug_on_error here.
+
+2000-07-20  Joao Cardoso  <jcardoso@inescporto.pt>
+
+	* Makefile.in (octave): Link with $(LD_CXX) instead of $(CXX)
+
+2000-07-20  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (octave_base_stream::oscanf): Advance to next
+	format element before attempting to pick up any trailing stuff.
+
+2000-07-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (next_token_is_bin_op): Don't recognize `..' as a binary op.
+
+	* load-save.cc (get_file_format): Call read_mat5_binary_file_header
+	with third arg true instead of false, so we don't barf if the file
+	is not a matlab v5 binary file.
+
+2000-07-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (octave): Link to ../libcruft/blas-xtra/xerbla.o here.
+
+	* octave.cc (main): Remove kluge to attempt linking our version of
+	xerbla.
+
+2000-07-07  Steven G. Johnson  <stevenj@alum.mit.edu>
+
+	* load-save.cc (have_h5giterate_bug): New file-scope variable.
+	(hdf5_read_next_data): Only increment current_item if
+	have_h5giterate_bug is true.
+	(read_hdf5_data): Set have_h5giterate_bug here.
+	Only increment hs.current_item if have_h5giterate_bug is true.
+
+2000-07-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* c-file-ptr-stream.cc (c_file_ptr_buf::close):
+	Return -1 if file pointer is NULL.
+	Set file pointer to 0 after closing.
+	(c_file_ptr_buf::~c_file_ptr_buf): Call close after flushing.
+
+2000-07-05  Steven G. Johnson  <stevenj@alum.mit.edu>
+
+	* Makefile.in (BLAS_LIBS): Substitute here.
+	(octave): Use $(BLAS_LIBS) in the final link command.
+
+2000-06-30  Steven G. Johnson  <stevenj@alum.mit.edu>
+
+	* Makefile.in (octave): Link $(FLIBS) last.
+	* octave.cc (main): Force our own xerbla to be linked instead of
+	some system version.
+
+2000-06-29  James R. Van Zandt  <jrv@vanzandt.mv.com>
+
+	* load-save.cc (load_save_format): New value, LS_MAT5_BINARY.
+	(arrayclasstype, mat5_data_type): New enums.
+	(read_mat5_binary_data): New function.
+	(read_mat5_tag): New function.
+	(read_mat5_binary_element): New function.
+	(read_mat5_binary_file_header): New function.
+	(get_file_format): Check for mat5 binary format too.
+	(do_load): Handle mat5 binary format.
+	(write_mat5_tag): New function.
+	(write_mat5_array): New function.
+	(class mat5_callback): New class.
+	(save_mat5_binary_element): New functnon.
+	(do_save): Handle mat5 binary format.
+	(write_header): Handle LS_MAT5_BINARY case too.
+	(save_user_variables): Handle LS_MAT5_BINARY case too.
+	(Fsave): Handle LS_MAT5_BINARY case too.
+	(Fload): Handle LS_MAT5_BINARY case too.
+
+2000-06-29  Steven G. Johnson  <stevenj@alum.mit.edu>
+
+	All of the following changes are protected by #ifdef HAVE_HDF5.
+
+	* load-save.cc (load_save_format): New value, LS_HDF5.
+	(make_valid_identifier): New function.
+	(class hdf5_fstreambase, class hdf5_ifstream, class hdf5_ofstream):
+	New classes for reading and writing hdf5 data.
+	(hdf5_types_compatible): New function.
+	(hdf5_import_multidim): New function.
+	(hdf5_check_attr): New function.
+	(hdf5_read_next_data): New function.
+	(hdf5_make_complex_type): New function.
+	(hdf5_make_range_type): New function.
+	(read_hdf5_data): New function.
+	(get_file_format): Handle HDF5 format.
+	(do_load): Handle LS_HDF5 case.
+	(Fload): Handle HDF5 format.
+	(hdf5_add_attr): New function.
+	(save_type_to_hdf5): New function.
+	(add_hdf5_data): New function.
+	(do_save): Handle HDF5 format.
+	(get_default_save_format): Handle LS_HDF5 case.
+	(write_header): Handle LS_HDF5 case.
+	(save_user_variables): Handle HDF5 format.
+	(Fsave): Handle HDF5 format.
+
+2000-06-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (display_help_text): If writing to filter fails, send
+	unformatted text to output stream.
+
+2000-06-27  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* OPERATORS/op-bm-bm.cc (eq): Define using mx_el_eq, not operator ==.
+	(ne): Likewise, use mx_el_ne, not operator !=.
+
+	* pr-output.cc (Fdisp): Delete.
+
+2000-06-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (float_format::float_format): Set default values
+	for width and precision to -1.
+	(operator << (ostream&, pr_formatted_float&): Set width and
+	precision if values are >= 0.
+	(set_real_format, set_real_matrix_format, set_range_format,
+	set_complex_format, set_complex_matrix_format): If we have all
+	integers, infinities, or nans, set precision equal to field width.
+
+	* load-save.cc (read_ascii_data): Allow empty strings and string
+	vectors to be restored.
+
+	* variables.cc (var_matches_any_pattern): New function.
+	(Fclear): Use it to make exclusive clear work correctly.
+
+2000-06-08  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-range.h (octave_range::is_numeric_type): New function.
+
+	* sysdep.cc (Fkbhit): Also ask for input if forced_interactive.
+
+2000-06-07  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (oct-gperf.h): Use $(GPERF) instead of gperf.
+
+2000-05-31  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/qz.cc (Fqz): When computing finite generalized
+	eigenvalues, don't write past the end of the array.
+
+2000-05-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-base-nd-array.h, ov-base-nd-array.cc, ov-re-nd-array.h,
+	ov-re-nd-array.h: New files.
+	* Makefile.in: Add them to the appropriate lists.
+
+	* pt-stmt.h, pt-stmt.cc (class tree_statement):
+	Store comments associated with this parse tree element.
+	* pt-select.h, pt-select.cc (class tree_if_clause,
+	class tree_if_command, class tree_switch_case
+	class tree_switch_command): Likewise.
+	* pt-loop.h, pt-loop.cc (class tree_while_command,
+	class tree_do_until_command, class tree_simple_for_command,
+	class tree_complex_for_command): Likewise.
+	* pt-except.h, pt-except.cc (class tree_try_catch_command,
+	class tree_unwind_protect_command): Likewise.
+	* ov-usr-fcn.h, ov-usr-fcn.cc (class octave_user_function): Likewise.
+	* pt-pr-code.h, pt-pr-code.cc (tree_print_code::print_comment_elt,
+	tree_print_code::print_comment_list,
+	tree_print_code::print_indented_comment): New functions.
+	(tree_print_code::visit_simple_for_command,
+	tree_print_code::visit_complex_for_command,
+	tree_print_code::visit_octave_user_function_header,
+	tree_print_code::visit_octave_user_function_trailer,
+	tree_print_code::visit_if_command, tree_print_code::visit_statement,
+	tree_print_code::visit_switch_case,
+	tree_print_code::visit_switch_command,
+	tree_print_code::visit_try_catch_command,
+	tree_print_code::visit_unwind_protect_command
+	tree_print_code::visit_while_command,
+	tree_print_code::visit_do_until_command): Handle comments.
+	* lex.l, parse.y: Handle comments in parse trees.
+	* comment-list.h, comment-list.cc: New files.
+	* Makefile.in: Add them to the appropriate lists.
+
+2000-04-23  etienne grossmann  <etienne@anonimo.isr.ist.utl.pt>
+
+	* pt-mat.cc (tm_row_const::tm_row_const_rep::eval_error):
+	New args x and y, for dimension mismatch info.
+	Change callers where appropriate.
+	(tm_const::init): Report mismatched column dimensions.
+
+2000-04-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sysdep.cc (kbhit): Also clear cin if at EOF.
+
+2000-04-11  Joao Cardoso  <jcardoso@inescn.pt>
+
+	* sysdep.cc (kbhit): New arg, wait.
+	(raw_mode): Ditto.
+	(Fkbhit): If given an arg, call kbhit with wait = false.
+
+	* DLD-FUNCTIONS/minmax.cc (Fmax, Fmin): Fix doc string.
+
+2000-04-04  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dynamic-ld.cc (octave_dynamic_loader::do_load): Undo previous change.
+
+2000-04-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dynamic-ld.cc (octave_dynamic_loader::do_load): Also fail with
+	error message if we don't find the mangled function name in the
+	file.
+
+2000-03-31  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (printf_value_cache::string_value): Return string
+	matrices in a Matlab-compatible way.
+	(printf_value_cache): Redesign the way list_exhausted works.
+
+	* oct-fstrm.cc (octave_fstream::do_close): New function.
+	* oct-stdstrm.cc (octave_istdiostream::do_close): Ditto.
+	(octave_ostdiostream::do_close): Ditto.
+	* c-file-ptr-stream.cc (c_file_ptr_buf::close): Ditto.
+	(i_c_file_ptr_stream::close): Ditto.
+	(o_c_file_ptr_stream::close): Ditto.
+	* oct-prcstrm.cc (octave_iprocstream::do_close): Ditto.
+	(octave_oprocstream::do_close): Ditto.
+	(octave_iprocstram::~octave_iprocstram): Call do_close here.
+	(octave_iprocstram::~octave_oprocstram): Likewise.
+
+	* oct-stream.h (octave_base_stream::do_close): New virtual function.
+	(octave_base_stream::close): If stream is open, call do_close.
+
+	* c-file-ptr-stream.cc (c_file_ptr_buf::flush): New function.
+	(c_file_ptr_buf::~c_file_ptr_buf): Use it.
+	(c_file_ptr_buf::overflow): Ditto.
+	(c_file_ptr_buf::sync): Ditto.
+
+2000-03-30  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-procbuf.cc (octave_procbuf::open): Make output streams line
+	buffered.
+
+2000-03-24  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.cc (my_friendly_exit): Prefix failure messages with
+	panic instead of error.
+
+	* c-file-ptr-stream.cc (c_file_ptr_buf::~c_file_ptr_buf):
+	Avoid dereferencing NULL pointer.
+
+	* oct-stream.cc (printf_format_list::add_elt_to_list,
+	printf_format_list::process_conversion,
+	printf_format_list::finish_conversion): New args, flags, fw, and prec.
+	(printf_format_list::printf_format_list): Save more complete info.
+	(printf_format_list::printme): Print flags, fw, and prec.
+	(octave_base_stream::printf): Simplify.
+	(do_printf_conv): Delete have_arg arg, since it is always true now.
+	(octave_base_stream::do_printf): Handle case of no args and %
+	directly instead of using do_printf_conv.
+	(printf_value_cache::exhausted): Rename from no_more_values.
+	(DO_PCT_CONVERSION): New macro
+	(octave_base_streain::do_scanf, octave_base_streain::do_oscanf):
+	Use it.
+	(scanf_format_list::finish_conversion): `%' counts as a conversion too.
+	Also don't forget to set type for it.
+	(OCTAVE_SCAN_0): Delete.
+	(OCTAVE_SCAN): Rename from OCTAVE_SCAN_1.
+	(octave_base_stream::scanf, octave_base_stream::oscanf): Don't
+	special-case number of conversions here.
+	(octave_base_stream::oscanf, octave_base_stream::do_oscanf): Only
+	cycle through fmt elements if the number of conversions is greater
+	than 0.
+
+	* oct-stream.h (scanf_format_list::next): New arg, `cycle'.
+	(printf_format_list::next): New arg, `cycle'.
+	(printf_format_list::last_elt_p): New function.
+	(printf_format_elt): New fields fw, prec, and flags.
+	Define copy constructor and assignment operator.
+	(scanf_format_elt): Define copy constructor and assignment operator.
+
+2000-03-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (OCTAVE_SCAN_0, OCTAVE_SCAN_1): New macros.
+	(do_scanf_conv, BEGIN_S_CONVERSION, BEGIN_CHAR_CLASS_CONVERSION,
+	do_scanf, scanf, do_oscanf, do_oscanf, oscanf): Use them instead
+	of calling istream::scan directly.
+	(octave_scan): New function.
+	(do_scanf_conv): Second arg is now scanf_format_elt instead of char*.
+	Change all callers.
+
+	* oct-procbuf.h, oct-procbuf.cc (octave_procbuf):
+	Derive from c_file_ptr_buf instead of filebuf.
+
+	* oct-stream.cc (octave_base_stream::printf): Use octave_format
+	instead of ostream::form.  Return number of characters written.
+
+2000-03-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (do_printf_conv): Use octave_format instead of
+	ostream::form.  Return number of characters written.
+	(octave_base_stream::do_printf): Return number of characters written.
+
+	* error.cc (verror, vwarning): Use octave_format instead of
+	ostream::vform.
+
+	* utils.cc (octave_format, octave_vformat): New functions.
+	* cutils.c (octave_snprintf, octave_vsnprintf): New functions.
+
+	* oct-lvalue.h (dummy_val): New static variable.
+	(octave_lvalue::octave_lvalue): Use it to initialize val.
+
+	* variables.cc (is_valid_function): Look in the global symbol
+	table for functions.
+
+2000-03-21  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (LIBRARIES): Conditionally define.
+	(libraries): Depend on $(LIBRARIES).
+	(octave): Depend on $(LIBRARIES), not libraries.  Also depend on
+	stamp-prereq and stamp-oct-links.
+	(all): Don't depend on stamp-prereq or stamp-oct-links.
+	(liboctinterp.$(LIBEXT), liboctinterp.$(SHELXT)): Delete target
+	before rebuilding.
+
+2000-03-21  Ben Sapp  <bsapp@nua.lampf.lanl.gov>:
+
+	* Makefile.in (libraries): Depend only on library targets, not
+	archive members.
+
+2000-03-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (objects): New target
+
+	* c_file_ptr_stream.h, c_file_ptr_stream.cc: New files.
+	* oct-stdstrm.h, oct-stdstrm.cc, oct-prcstrm.cc:
+	Use c_file_ptr_buf, i_c_file_ptr_stream, and o_c_fie_ptr_stream
+	instead of stdiobuf, istdiostream, and ostdiostream.
+
+	* pr-output.cc (set_real_format, set_real_matrix_format,
+	set_complex_format, set_complex_matrix_format, set_range_format):
+	Do the right thing again for int, NaN, and Inf values.
+
+2000-03-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (pr_plus_format): Rename from do_plus_format.
+	Change all callers.
+	(pr_float, pr_complex): New arg, scale.  Handle scaling here.
+	(float_format): New class for managing details of formatting
+	floats.  Use it instead of character string formats and the
+	nonstandard form() function from the GNU iostream library.
+
+2000-02-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (clean): Also delete gendoc.
+
+2000-02-18  James R. Van Zandt  <jrv@vanzandt.mv.com>
+
+	* load-save.cc (Vcrash_dumps_octave_core): Fix comment for this var.
+
+2000-02-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (handle_number): Don't transorm `[Dd]' to `e' if reading
+	hex.
+
+2000-02-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install-inc): Install files in
+	$(octincludedir)/octave.
+	(uninstall): Remove them from the correct directory too.
+
+	* defaults.h, defaults.cc (Vlocal_ver_arch_lib_dir): New variable.
+	* defaults.cc (set_default_local_ver_arch_lib_dir): New function.
+	(install_defaults): Call it.
+	(exec_path): Prepend the versioned form of the local arch lib
+	directory to the standard path.
+	* defaults.h.in (OCTAVE_LOCALVERARCHLIBDIR,
+	OCTAVE_LOCALVERFCNFILEDIR, OCTAVE_LOCALVEROCTFILEDIR):
+	Substitute these too.
+	* toplev.cc (Foctave_config_info): Add them to the struct.
+
+2000-02-08  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (Foctave_config_info): Add MKOCTFILE_INCFLAGS to the
+	struct.
+	* oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_INCFLAGS): Define.
+
+2000-02-07  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/balance.cc (Fbalance): Explicitly request
+	conversion from Matrix to ComplexMatrix.
+	* DLD-FUNCTIONS/qz.cc (Fqz): Likewise.
+
+	* ov-re-mat.h (octave_matrix::complex_matrix_value): Explicitly
+	request conversion from Matrix type.
+
+	* ov-ch-mat.h (octave_char_matrix::matrix_value): Explicitly
+	request conversion from charMatrix type.
+	(octave_char_matrix::complex_matrix_value): Likewise.
+	* ov-bool-mat.h (octave_bool_matrix::matrix_value): Likewise.
+	(octave_bool_matrix::complex_matrix_value): Likewise.
+
+	* ov-range.h (octave_range::complex_matrix_value): Explicitly
+	request conversion from Matrix type.
+
+	* ov-cx-mat.h, ov-re-mat.h: Explicitly request conversions from
+	diagonal matrix types in constructors.
+
+	* mappers.cc (ximag, xreal): Return double, not Complex.
+
+	* error.cc (panic): Turn off buffering of error messages.
+	Don't call flush_octave_stdout here, verror will do it for us.
+	(verror): Don't call flush_octave_stdout if buffering error messages.
+
+	* pt-except.cc (tree_try_catch_command::eval): Only restore
+	buffer_error_message value (by running the unwind_protect element
+	for it) if it has been saved.
+
+	* help.cc (Ftype): Return value if nargout is NOT equal to zero.
+	Delete unnecessary unwind_protect::begin_frame().
+
+	* toplev.cc (octave_config_info): Stuff lots of new config info in
+	the struct.
+
+	* oct-conf.h.in: Delete TARGET_HOST_TYPE.
+
+2000-02-04  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* siglist.c: Include <signal.h>.
+
+	* lex.l (is_plot_keyword): Add minimum match length in call to
+	almost_match.
+
+	* Makefile.in (%.df : %.cc): Don't pass -c to compiler.
+
+2000-02-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-base-mat.cc: Include pr-output.h here.
+
+	* DLD-FUNCTIONS/rand.cc (curr_rand_dist): Return const char *
+	instead of char *.
+
+	* oct-fstrm.cc (octave_fstream::seek, octave_fstream::tell):
+	Call pubseekoff instead of seekoff.
+
+	* DLD-FUNCTIONS/dassl.cc (print_dassl_option_list): Use stream
+	manipulators instead of GNU iostream-specific form function.
+	* DLD-FUNCTIONS/fsolve.cc (print_fsolve_option_list): Ditto.
+	* DLD-FUNCTIONS/lsode.cc (print_lsode_option_list): Ditto.
+	* DLD-FUNCTIONS/quad.cc (print_quad_option_list): Ditto.
+	* pr-output.cc (pr_scale_header): Ditto.
+
+	* sighandlers.h: Include signal.h here.
+	* sighandlers.cc: Not here.
+
+	* utils.cc: Include setjmp.h, not csetjmp.
+	* toplev.cc: Ditto.
+
+	* sighandlers.cc: Include signal.h, not csignal.
+
+	* pt-plot.h: Don't include csignal.
+	* toplev.cc: Ditto.
+	* oct-hist.cc: Ditto.
+	* octave.cc: Ditto.
+	* pager.cc: Ditto.
+	* input.cc: Ditto.
+	* help.cc: Ditto.
+
+	* pt-plot.cc (send_to_plot_stream): Use operator== and substr
+	method to do limited-length string comparison.
+	* input.cc (generate_completion): Likewise.
+	* ov-dld-fcn.cc (octave_dld_function::octave_dld_function): Likewise.
+	* ov-usr-fcn.cc (octave_user_function::mark_as_system_fcn_file):
+	Likewise.
+
+	* utils.cc (check_preference): Expect exact string matches.
+	* variables.cc (ignore_function_time_stamp): Likewise.
+	* lex.l (whitespace_in_literal_matrix): Likewise.
+
+	* mappers.cc (xconj, ximag, xreal): New functions.  Use them in
+	DEFUN_MAPPER calls.
+
+	* defun-int.h (DEFUN_MAPPER_INTERNAL): Cast function pointer args
+	to octave_mapper constructor.
+
+2000-02-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* procstream.cc (procstreambase::procstreambase,
+	procstreambase::open, procstreambase::close):
+	Call std::ios::setstate, not set.
+
+	* lex.l (plot_axes_token): Declare plot_axes as const char *.
+	Declare tmp const char **.
+
+	* oct-procbuf.h: Include fstream, not streambuf.h.
+
+	* load-save.cc (Fsave): Call pubseekoff instead of seekoff.
+	* oct-strstrm.cc (octave_base_strstream::tell): Likewise.
+	(octave_base_strstream::seek): Likewise.
+
+	* oct-stream.cc (octave_base_stream::read): Rename count to char_count.
+	(octave_base_stream::do_gets): Likewise.
+
+	* octave-stream.cc (octave_base_stream::write): Rename flt_fmt to ffmt.
+	(octave_base_stream::read): Likewise.
+
+	* TEMPLATE-INST/SLStack-sym.cc: Delete meaningless `extern
+	template' declarations.
+	* TEMPLATE-INST/Array-tc.cc: Ditto.
+
+	* TEMPLATE-INST/Map-fnc.cc: Don't try to instantiate goodCHptr or
+	CHptr_to_index here.
+	* TEMPLATE-INST/Map-tc.cc: Likewise.
+	* Map.h (CHNode::goodCHptr, CHNode::CHptr_to_index): Now member
+	functions.  Change all callers.
+
+	* load-save.cc (read_binary_file_header): Declare magic_len `const'.
+
+	* token.h (token::token (const token&), token::operator=):
+	Delete unnecessary definitions.
+
+	* oct-stream.cc (octave_stream::mode_as_string): Use
+	std::ios::binary, not std::ios::bin.
+	* load-save.cc (Fsave, Fload, save_user_variables): Likewise.
+
+	* DLD-FUNCTIONS/qz.cc (Fqz): Use Array<int> class instead of
+	trying to create automatic int array with variable size.
+
+	* variables.cc (F__dump_symbol_info__): Fix continuation char.
+	* mappers.cc (Ftoupper): Likewise.
+	* DLD-FUNCTIONS/besselj.cc (Fairy, Fbesselj): Likewise.
+	* DLD-FUNCTIONS/chol.cc (Fchol): Likewise.
+	* DLD-FUNCTIONS/det.cc (Fdet): Likewise.
+	* DLD-FUNCTIONS/eig.cc (Feig): Likewise.
+	* DLD-FUNCTIONS/gammainc.cc (gammainc): Likewise.
+	* DLD-FUNCTIONS/givens.cc (givens): Likewise.
+	* DLD-FUNCTIONS/hess.cc (hess): Likewise.
+	* DLD-FUNCTIONS/inv.cc (inv): Likewise.
+	* DLD-FUNCTIONS/log.cc (logm): Likewise.
+	* DLD-FUNCTIONS/lu.cc (lu): Likewise.
+	* DLD-FUNCTIONS/qr.cc (qr): Likewise.
+	* DLD-FUNCTIONS/schur.cc (schur): Likewise.
+	* DLD-FUNCTIONS/balance.cc (balance): Likewise.
+	* DLD-FUNCTIONS/svd.cc (svd): Likewise.
+	* DLD-FUNCTIONS/syl.cc (syl): Likewise.
+	* DLD-FUNCTIONS/expm.cc (Fexpm): Likewise.
+
+	* token.h (token::token_type, token::end_tok_type,
+	token::plot_tok_type): Delete extraneous comma from enum decls.
+	* load-save.cc (load_save_format): Likewise.
+
+	* pt-idx.cc (tree_index_expression::tree_index_expression):
+	Delete default arg values.
+	* oct-fstrm.cc (octave_fstream::octave_fstream): Likewise.
+	* oct-stream.cc (octave_stream::octave_stream): Likewise.
+
+	* siglist.h, siglist.c: New files.
+	* Makefile.in: Add them to the appropriate lists.
+	* siglist.c (sys_siglist): Move definition here from sighandlers.cc.
+	* siglist.h (sys_siglist): Move declaration here from sighandlers.h.
+
+	* ov.h, ov-bool.h, ov-bool-mat.h (bool_matrix_value):
+	Delete unnecessary arg.
+
+	* ov.h (octave_value::do_multi_index_op): Rename from do_index_op.
+
+	* ov-fcn.h (octave_function::is_system_fcn_file): Now const.
+
+	* Map.cc (index_to_CHptr): Now a macro.
+	(CHMap<C>::hash): Now a member function.
+
+	* defun-int.h (UNDERSCORIFY): New macro.
+	(DEFCONST_INTERNAL, DEFCONSTX_INTERNAL): Use it.
+
+	* data.cc (Fis_list): Fix continuation char.
+	* defaults.cc (IMAGEPATH): Likewise.
+
+	* Map.cc (CHptr_to_index, goodCHptr): Delete static decl.
+
+	* ov.h (unary_op, binary_op, assign_op): Prepend `op_' to elts.
+	Change all usses
+
+	* All source files: Sprinkle with std:: qualifier as needed.
+
+2000-01-31  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.cc (install_signal_handlers): Add std:: qualifier
+	for set_net_handler.
+
+	* All source files: Include iostream, fstream, strstream,
+	etc. as needed instead of using forward declarations for these
+	classes.
+
+2000-01-30  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (input_event_hook, Finput_event_hook): New functions.
+	(hook_fcn, user_data): New static variables.
+
+2000-01-28  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-except.cc (do_catch_code): Don't do anything special for
+	tree_return_command::returning, or tree_break_command::breaking.
+
+	* error.cc (vwarning): New function.
+	(warning): Use it instead of calling verror.
+
+	* oct-stream.cc (octave_base_stream::oscanf):
+	Result is now always nconv+1 elements.  Return count of successful
+	conversions in last element.
+	* file-io.cc (Ffscanf, Fsscanf, Fscanf): Fix doc string.
+
+	* pt-except.cc (do_catch_code): Unwind-protect buffer_error_messages.
+	Be sure to run all unwind-protects before returning.
+	(tree_try_catch_command::eval): Add do_catch_code cleanup function
+	to unwind-protect stack before resetting buffer_error_messages.
+	Use unwind-protect to save and restore buffer_error_messages.
+	If there is no catch code, discard the cleanup function and run
+	the unwind-protect for buffer_error_messages.
+
+	* error.cc (bind_global_error_variable): Avoid dereferencing
+	error_message_buffer if it is NULL.
+
+	* parse.y (evaluating_function_body): New global flag.
+	* ov-usr-fcn.cc (octave_user_function::do_index_op):
+	Protect and set it here.
+	* parse.y (make_break_command, make_return_command): Check it here.
+
+	* error.cc (warning_state): New global flag.
+	(warning): Set it here.
+	* lex.l (reset_parser): Clear it here.
+	* parse.y (fold): Check it here.
+
+2000-01-27  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-walk.h (tree_walker::visit_do_until_command): New pure virtual.
+	* pt-pr-code.cc (tree_print_code::visit_do_until_command):
+	New function.
+	* pt-loop.h (tree_do_until_command): New class.
+	(tree_while_command::expr, tree_while_command::list):
+	Now protected instead of private.
+	* parse.y (make_do_until_command): New function.
+	(loop_command): Recognize do-until statement.
+	(DO, UNTIL): New tokens.
+
+	* input.cc (match_sans_spaces): Require non-blank part of test
+	string to match standard string exactly.
+
+2000-01-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.h (scanf_format_elt::char_class): New struct elt.
+	Add arg to constructor.
+	(scanf_format_elt::special_conversion): New enum.
+	* oct-stream.cc (scanf_format_list::add_elt_to_list): New arg,
+	char_class.  Pass it to scanf_format_elt constructor.
+	(scanf_format_list::scanf_format_list): Create separate list
+	elements for whitespace and literal conversions.
+	(expand_char_class): New function.
+	(scanf_format_list::finish_conversion): Extract character class
+	(not including the delimiting brackets) and expand the list of
+	characters.  Pass the result to add_elt_to_list.
+	(scanf_format_list::all_character_conversions): Also accept '^',
+	scanf_format_elt::literal_conversion, and
+	scanf_format_elt::whitespace_conversion types too.
+	(DO_WHITESPACE_CONVERSION, BEGIN_CHAR_CLASS_CONVERSION,
+	BEGIN_C_CONVERSION, BEGIN_S_CONVERSION, DO_LITERAL_CONVERSION):
+	New macros.
+	(octave_base_stream::do_scanf, octave_base_stream::do_oscanf):
+	Use them to avoid code duplication.
+	Handle whitespace, literal text, and character class conversions.
+	(octave_base_stream::oscanf): Loop over all format list elements,
+	not just the first nconv elements.  Clear status flags on is for
+	all streams.
+
+2000-01-25  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* xdiv.cc (result_ok): Just check value of info.
+	(solve_singularity_warning): New function.
+	(xleftdiv, xdiv): Pass pointer to solve_singularity_warning to
+	solve function.
+
+	* lex.l (handle_identifier): Set next_tok_is_eq if we are looking
+	at `=', but not if we are looking at `=='.
+
+	* pt-pr-code.cc (tree_print_code::visit_unwind_protect_command):
+	Print `unwind_protect_cleanup', not `cleanup_code'.
+
+	* pager.cc (octave_pager_buf::flush_current_contents_to_diary):
+	New function.
+	(octave_pager_stream::flush_current_contents_to_diary):
+	Ditto.
+	(close_diary_file): Use the new octave_pager_stream function to
+	try to flush the current buffer to the diary when it is closed.
+
+	* variables.cc (Fexist): Return 6 for built-in constants.
+
+	* pt-plot.cc (Fgshow): Don't append " " after last arg.
+	(Fgset): Likewise.
+
+2000-01-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-base-mat.h (octave_base_matrix::length): Return 0 for empty
+	arrays.
+
+2000-01-20  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/time.cc (Fstrptime): New function.
+
+	* load-save.cc (Fsave): Add missing else.
+
+2000-01-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/gammainc.cc (Fgammainc): Texinfoize doc string.
+	* ov-typeinfo.cc (Ftypeinfo): Ditto.
+	* parse.y (Vwarn_future_time_stamp): Ditto.
+	* DLD-FUNCTIONS/minmax.cc (Fmax, Fmin): Ditto.
+	* ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Ditto.
+	* defaults.cc (VOCTAVE_HOME, Frehash): Ditto.
+	* toplev.cc (Fwarranty, Fcasesen): Ditto.
+	* utils.cc (Fdo_string_escapes, Ffile_in_loadpath): Ditto.
+	* variables.cc (F__dump_symtab_info__, F__dump_symbol_info__): Ditto.
+	* ov-list.cc (Flist, Fappend, Fnth, Freverse, Fsplice): Ditto.
+	* input.cc (Fread_readline_init_file): Ditto.
+	* file-io.cc (Fis_stream): Ditto.
+	* ov-cell.cc (Fiscell, Fcell): Ditto.
+	* pt-assign.cc (Vprint_rhs_assign_val): Ditto.
+	* pt-decl.cc (Vinitialize_global_variables): Ditto.
+	* symtab.cc (Vvariables_can_hide_functions): Ditto.
+
+	* pt-plot.cc (Fgraw, Fgset, Fgshow, Vgnuplot_command_plot,
+	Vgnuplot_command_replot, Vgnuplot_command_splot,
+	Vgnuplot_command_using, Vgnuplot_command_with,
+	Vgnuplot_command_axes, Vgnuplot_command_title,
+	Vgnuplot_command_end): Texinfoize doc strings.
+
+	* oct-procbuf.cc (__kluge_procbuf_delay__): Rename from
+	kluge_procbuf_delay.  Texinfoize doc string.
+
+2000-01-13  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (gobble_leading_whitespace): Discard first space character
+	after consecutive comment characters.
+	* lex.l (grab_help_text): Ditto.
+
+	* lex.l (Vwhitespace_in_literal_matrix, Vwarn_separator_insert,
+	Vwarn_single_quote_string): Texinfoize doc string.
+
+2000-01-11  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h, ov.cc (octave_value::column_vector_value,
+	octave_value::row_vector_value,
+	octave_value::complex_column_vector_value,
+	octave_value::complex_row_vector_value): New functions.
+	(octave_value::vector_value): Now returns Array<double>.
+	(octave_value::complex_vector_value): Now returns Array<Complex>.
+	Sprinkle conversions where necessary.
+
+	* ov.cc (Vprefer_column_vectors): Now static.
+	* ov.h (octave_value (const ComplexRowVector&),
+	octave_value (const ComplexColumnVector&),
+	octave_value (const RowVector&), octave_value (const ColumnVector&)):
+	Delete second arg.  Change all callers.
+
+	* oct-obj.h (octave_value_list (const RowVector&),
+	octave_value_list (const ColumnVector&),
+	octave_value_list (const ComplexRowVector&),
+	octave_value_list (const ComplexColumnVector&)): Likewise.
+	* ov-cx-mat.h, ov-cx-mat.cc
+	(octave_complex_matrix (const ComplexRowVector&),
+	(octave_complex_matrix (const ComplexColumnVector&)):
+	Delete second arg, simply create object with orientation
+	corresponding to vector arg.  Move constructors to class decl.
+	* ov-re-mat.h, ov-re-mat.cc (octave_matrix (const RowVector&),
+	(octave_matrix (const ColumnVector&)):
+	Delete second arg, simply create object with orientation
+	corresponding to vector arg.  Move constructors to class decl.
+
+2000-01-07  Ben Sapp  <bsapp@nua.lampf.lanl.gov>
+
+	* mappers.cc (Fconj, Ferf, Ferfc, Fgamma, Fimag, Flgamma, Flog10,
+	Freal, Fround): Add @seealso{...} to doc strings.
+
+2000-01-06  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (do_scanf): Do the right thing again for character
+	conversions.
+
+	* help.cc (display_help_text): Also strip out leading spaces
+	before Texinfo @-commands before sending doc string to makeinfo.
+	(display_help_text): Improve format of `See also' string.
+
+2000-01-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (display_help_text): Pass a definition for @seealso
+	through the filter.
+
+1999-12-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (Vwarn_single_quote_string): New variable.
+	(syms_of_lex): DEFVAR it.
+	(warn_single_quote_string): New function.
+	(gripe_single_quote_string): New function.
+	Use new stuff to allow warnings for code that uses single quote
+	characters to introduce string constants.
+
+1999-12-20  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* mkbuiltins: Add #undef quad to generated file.
+
+1999-12-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (Vwarn_separator_insert): New variable.
+	(syms_of_lex): DEFVAR it.
+	(warn_separator_insert): New function.
+	(maybe_warn_separator_insert): New function.
+	Use new stuff to allow warnings for code that might result in
+	auto-insertion of commas or semicolons, depending on the value of
+	whitespace_in_literal_matrix.
+
+	* parse.y (Fsource): Record function file name here too.
+
+1999-12-13  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (link_to_global_variable): If the local symbol is
+	not a variable, don't bother to clear it.  Instead, just redefine
+	it by aliasing to the global symbol.
+
+1999-11-23  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/balance.cc (Fbalance): Texinfoize doc string.
+	* DLD-FUNCTIONS/det.cc (Fdet): Ditto.
+	* DLD-FUNCTIONS/eig.cc (Feig): Ditto.
+	* DLD-FUNCTIONS/givens.cc (Fgivens): Ditto.
+	* DLD-FUNCTIONS/inv.cc (Finv): Ditto.
+	* DLD-FUNCTIONS/chol.cc (Fchol): Ditto.
+	* DLD-FUNCTIONS/hess.cc (Fhess): Ditto.
+	* DLD-FUNCTIONS/lu.cc (Flu): Ditto.
+	* DLD-FUNCTIONS/qr.cc (Fqr): Ditto.
+	* DLD-FUNCTIONS/schur.cc (Fschur): Ditto.
+	* DLD-FUNCTIONS/svd.cc (Fsvd): Ditto.
+	* DLD-FUNCTIONS/expm.cc (Fexpm): Ditto.
+	* DLD-FUNCTIONS/log.cc (Flogm, Fsqrtm): Ditto.
+	* DLD-FUNCTIONS/syl.cc (Fsyl): Ditto.
+	* DLD-FUNCTIONS/pinv.cc (Fpinv): Ditto.
+	* DLD-FUNCTIONS/qz.cc (Fqz): Ditto.
+	* DLD-FUNCTIONS/dassl.cc (Fdassl, Fdassl_options): Ditto.
+	* DLD-FUNCTIONS/lsode.cc (Flsode, Flsode_options): Ditto.
+	* data.cc (Flength, Fsize, Fisempty): Ditto.
+	* sysdep.cc (Fkbhit): Ditto.
+	* input.cc (Fkeyboard, Finput): Ditto.
+	* variables.cc (ans): Ditto.
+	* pr-output.cc (Fdisp, Fformat): Ditto.
+	* ov.cc (Vprint_answer_id_name): Ditto.
+	* defaults.cc (IMAGEPATH): Ditto.
+	* error.cc (Ferror, Fwarning, Fusage, error_text, beep_on_error):
+	Ditto.
+	* load-save.cc (Fload, Fsave, Vdefault_save_format,
+	Vsave_precision): Ditto.
+	* file-io.cc (Ffflush, Ffopen, Ffclose, Ffputs, Ffgetl, Ffgets,
+	Ffprintf, Fsprintf, Fscanf, Ffscanf, Fsscanf, Ffread, Ffwrite,
+	Ffseek, Fftell, Ffeof, Fferror, Ffreport, Ftmpnam, Vstdin_file,
+	Vstdout_file, Vstderr_file, SEEK_SET, SEEK_CUR, SEEK_END): Ditto.
+	* pager.cc (Vpager_binary, Vpage_output_immediately,
+	Vpage_screen_output, Fmore): Ditto.
+
+1999-11-21  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (Vtreat_neg_dim_as_zero): Texinfoize doc string.
+	* DLD-FUNCTIONS/find.cc (Ffind): Ditto.
+	* DLD-FUNCTIONS/rand.cc (Frand, Frandn): Ditto.
+	* DLD-FUNCTIONS/sort.cc (Fsort): Ditto.
+	* mappers.cc (Fisinf, Fisnan, Ffinite): Ditto.
+	* data.cc (Fall, Fany, Fdiag, Fones, Fzeros, Feye, Flinspace): Ditto.
+	* defaults.cc (Vloadpath, Vdefault_loadpath): Ditto.
+	* parse.y (Feval, Ffeval, Vdefault_eval_print_flag,
+	Vwarn_missing_semicolon, Vwarn_function_name_clash, Fsource): Ditto.
+	* ov-usr-fcn.cc (Vmax_recursion_depth, Vdefault_return_value,
+	Vdefine_all_return_values, Vreturn_last_computed_value): Ditto.
+	* ov.cc (Vok_to_lose_imaginary_part, Vdo_fortran_indexing,
+	Vprefer_column_vectors, Vresize_on_range_error,
+	Vwarn_divide_by_zero): Ditto.
+	* pt-stmt.cc (Vsilent_functions): Ditto.
+	* variables.cc (Vignore_function_time_stamp): Ditto.
+	* dynamic-ld.cc (Vwarn_reload_forces_clear): Ditto.
+
+1999-11-20  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/fft.cc (Ffft): Texinfoize doc string.
+	* DLD-FUNCTIONS/ifft.cc (Fifft): Ditto.
+	* DLD-FUNCTIONS/fft2.cc (Ffft2): Ditto.
+	* DLD-FUNCTIONS/ifft2.cc (Fifft2): Ditto.
+	* DLD-FUNCTIONS/filter.cc (Ffilter): Ditto.
+	* DLD-FUNCTIONS/quad.cc (Fquad, Fquad_options): Ditto.
+	* DLD-FUNCTIONS/colloc.cc (Fcolloc): Ditto.
+	* DLD-FUNCTIONS/fsolve.cc (Ffsolve, Ffsolve_options): Ditto.
+	* defaults.cc (Veditor): Ditto.
+	* pt-plot.cc (Vautomatic_replot, Vgnuplot_binary,
+	Vgnuplot_has_frames, Vgnuplot_has_multiplot, Fclearplot,
+	Fcloseplot, Fpurge_tmp_files, Fishold, Fhold):
+
+	* Makefile.in (parse.cc): Expect 11 shift/reduce conflicts now.
+
+1999-11-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (Vwarn_assign_as_truth_value,	Vwarn_variable_switch_label):
+	Texinfoize doc strings.
+
+	* DLD-FUNCTIONS/pinv.cc (Fpinv): Texinfoize doc string.
+
+	* defun-int.h (DEFUN_DLD_INTERNAL): New macro.
+	* defun-dld.h [MAKE_BUILTINS] (DEFUN_DLD): Simply expand to
+	DEFUN_DLD_INTERNAL.
+	* mkbuiltins: Generate code to define DEFUN_DLD_INTERNAL.
+	* mkgendoc: Likewise.
+
+	* Makefile.in (gendoc.o): Don't optimize when creating gendoc.
+	(%.dc : %.cc): Delete rule.
+
+	* pt-decl.cc (Vdefault_global_variable_value): Texinofize doc string.
+	* variables.cc (Fclear, Fdocument, Fexist, Fis_global, Fwho): Ditto.
+	* help.cc (Ftype, Fwhich): Ditto.
+	* ov.cc (Vstruct_levels_to_print, Vimplicit_str_to_num_ok): Ditto.
+	* data.cc (Fis_struct, Fstruct_elements, Fstruct_constains): Ditto.
+	* strfns.cc (Fisstr, Fsetstr): Ditto.
+	* pt-mat.cc: (Fimplicit_num_to_str_ok, Fstring_fill_char): Ditto.
+	* utils.cc (Fundo_string_escapes): Ditto.
+	* mappers.cc: (Fisalnum, Fisalpha, Fisascii, Fiscntrl, Fisdigit,
+	Fisgraph, Fislower, Fisprint, Fispunct, Fisspace, Fisupper,
+	Fisxdigit, Ftoascii, Ftolower, Ftoupper): Ditto.
+
+1999-11-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* syscalls.cc (symbols_of_syscalls): Use DEFCONSTX to define
+	Octave constants for C macros like O_WRONLY.
+
+	* oct-lvalue.cc (octave_lvalue::set_index): Disallow expressions
+	like x(i)(j) = rhs.
+
+1999-11-17  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* symtab.cc (symbol_record::type_as_string): New function.
+
+	* symtab.cc (symbol_record::which): New functions.
+	* help.cc (do_which): New functions.
+	(Fwhich): Use them.
+
+	* help.cc (help_from_symbol_table, help_from_file): New functions.
+	(builtin_help): Use them.
+
+	* help.cc (do_type): New function.
+	(symbol_record::type): New function.
+	(Ftype): Use them.
+
+	* help.cc (print_symbol_type): Delete.
+
+	* symtab.cc (symbol_table::name_list): Delete count arg.
+	(symbol_table::symbol_list): Likewise.
+	(symbol_table::glob): Likewise.  Also return Array<symbol_record *>
+	instead of symbol_record **.
+	Change all callers.
+	* help.cc (names, display_symtab_names): Delete count arg.
+
+	* help.cc (print_symbol_type, Ftype): No longer need to look up
+	fcn_file_name in the loadpath.
+
+	* help.cc (print_symbol_type): Handle dld functions.
+	(help_from_symbol_table, help_from_file): New functions.
+	(builtin_help): Use them.
+
+1999-11-16  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-cell.cc (Fiscell, Fcell): New Functions.
+	(octave_cell::do_index_op): New function.
+
+	* utils.cc (get_dimensions): Move here from data.cc and make extern.
+	(Vtreat_neg_dim_as_zero, treat_neg_dim_as_zero): Likewise.
+	(symbols_of_utils): New function.
+
+	* data.cc (fill_matrix (const octave_value_list&, double,
+	const char*)): New function.
+	(Fones, Fzeros): Use it to avoid some code duplication.
+
+1999-11-15  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-cell.h, pt-cell.cc, ov-cell.h, ov-cell.cc, Cell.h, Cell.cc:
+	New files.
+	* Makefile.in: Add them to the appropriate lists.
+	* pt-walk.h (visit_cell (tree_cell&): New pure virtual.
+	* pt-pr-code.cc (tree_print_code::visit_cell (tree_cell&)): New
+	function.
+	* TEMPLATE-INST/Array-tc.cc: Instantiate 2D arrays of octave_value
+	objects.
+	* pt-all.h: Include pt-cell.h.
+	* ov.h, ov.cc (octave_value::is_cell, octave_value::cell_value):
+	New functions.
+	* ov-base.h, ov-base.cc (octave_value::is_cell,
+	octave_value::cell_value): Provide defaults.
+	* lex.h, lex.l: Handle `{' and `}' tokens (for cell arrays).
+	(bracketflag): Rename from braceflag.
+	(handle_close_bracket): Rename from handle_close_brace.
+	(class bracket_brace_paren_nesting_level): Rename from
+	brace_paren_nesting_level.
+	(bracket_brace_paren_nesting_level::bracket,
+	bracket_brace_paren_nesting_level::is_bracket): New functions to
+	keep count of nesting level for `[' and `]'.
+	(bracket_brace_paren_nesting_level::brace,
+	bracket_brace_paren_nesting_level::is_brace): Now keeps count of
+	nesting level for `{' and `}'.
+	* parse.y (tree_cell_type): New type.
+	Give '{' the same precedence and associativity as '(' and '.'
+	(matrix_rows, matrix_rows1): Rename from rows, rows1.
+	(cell, cell_rows, cell_rows1): New non-terminals.
+	(cell_or_matrix_row): Rename from matrix_row.
+	(primary_expr): Accept cell here.
+	(postfix_expr): Allow indexing using '{' arg_list '}'.
+	(finish_cell): New function.
+
+1999-11-12  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (jump_to_top_level): No longer declared extern "C".
+
+	* cutils.c (octave_strcasecmp, octave_strncasecmp): New functions.
+	* utils.cc (almost_match): Call octave_strncasecmp instead of
+	calling strncasecmp directly.
+
+1999-11-10  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y: Don't define warn_reload_forces_clear here.
+
+	* Makefile.in (DISTFILES): Include DOCSTRINGS.
+
+1999-11-05  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.cc (install_signal_handlers): Don't install
+	sigwinch_handler.
+
+	* oct-iostrm.h (octave_istream::eof, octave_ostream::eof): Provide
+	implementation for these.
+
+	* oct-stream.cc (octave_base_stream::do_scanf):
+	The stdin stream is only special if we are interactive.
+	(octave_base_stream::scanf): Ditto.
+	(octave_base_stream::do_oscanf): Ditto.
+	(octave_base_stream::oscanf): Ditto.
+
+	* ov.h (octave_value::is_stream): New predicate.
+	* ov-file.h (octave_file::is_stream): Return true.
+	* file-io.cc (Fis_stream): New function.
+
+	* ov-file.h (class octave_file): stream is now an object instead
+	of pointer.
+	* ov-file.cc (octave_file::print_raw): Handle stream as object
+	instead of pointer.  Also print stream status.
+
+	* ov-base.cc (octave_base_value::stream_value): Return object
+	instead of pointer.
+
+	* ov.cc (octave_value::stream_value): Return object instead of pointer.
+	(octave_value::octave_value (const octave_stream&)): Take const
+	reference instead of pointer arg.
+
+	* TEMPLATE-INST/Array-os.cc: Instantiate Arrays of octave_stream
+	objects, not pointers to them.
+
+	* OPERATORS/op-fil-b.cc: Cope with octave_stream class changes.
+	* OPERATORS/op-fil-bm.cc: Likewise.
+	* OPERATORS/op-fil-cm.cc: Likewise.
+	* OPERATORS/op-fil-cs.cc: Likewise.
+	* OPERATORS/op-fil-lis.cc: Likewise.
+	* OPERATORS/op-fil-m.cc: Likewise.
+	* OPERATORS/op-fil-rec.cc: Likewise.
+	* OPERATORS/op-fil-s.cc: Likewise.
+	* OPERATORS/op-fil-str.cc: Likewise.
+	* file-io.cc: Likewise.
+	* syscalls.cc (Fdup): Likewise.
+
+	* oct-fstrm.cc, oct-fstrm.h, oct-iostrm.cc, oct-iostrm.h,
+	oct-prcstrm.cc, oct-prcstrm.h, oct-stdstrm.cc, oct-stdstrm.h,
+	oct-stream.cc, oct-stream.h, oct-strstrm.cc, oct-strstrm.h:
+	Rewrite to allow octave_stream objects to be used like values
+	instead of having to use pointers.
+
+1999-11-03  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (octave_base_stream::do_scanf): If it looks like
+	we have a matching failure, then reset the failbit in the stream
+	state.
+	(octave_base_stream::do_oscanf): Likewise.
+
+1999-11-02  Ben Sapp  <bsapp@nua.lampf.lanl.gov>
+
+	* help.cc (Fhelp): Texinfoize doc string.
+	* input.cc (Fecho, Fcompletion_matches): Ditto.
+	* oct-hist.cc (Fedit_history, Fhistory, Frun_history): Ditto.
+	* pager.cc (Fdiary): Ditto.
+	* sysdep.cc (Fclc): Ditto.
+	* toplev.cc (Fquit, Fatexit): Ditto.
+
+1999-11-02  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (yywrap): No longer static.
+	(have_continuation): Declare input character as int, not char, so
+	comparison to EOF will work.
+
+1999-11-01  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defun.cc (print_usage): Use display_help_text instead of sending
+	help message directly to octave_stdout.
+
+1999-10-29  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defun-dld.h (INSTALL_DLD_FCNS, INSTALL_DLD_FCN): Delete definitions.
+	* DLD-FUNCTIONS/dassl.cc: Don't use INSTALL_DLD_FCN or
+	INSTALL_DLD_FCNS macros.  They are not necessary with the new code
+	in dynamic-ld.cc.
+	* DLD-FUNCTIONS/lsode.cc: Ditto.
+	* DLD-FUNCTIONS/fsolve.cc: Ditto.
+	* DLD-FUNCTIONS/quad.cc: Ditto.
+	* DLD-FUNCTIONS/time.cc: Ditto.
+	* DLD-FUNCTIONS/besselj.cc: Ditto.
+	* DLD-FUNCTIONS/getgrent.cc: Ditto.
+	* DLD-FUNCTIONS/getpwent.cc: Ditto.
+	* DLD-FUNCTIONS/inv.cc: Ditto.
+	* DLD-FUNCTIONS/log.cc: Ditto.
+	* DLD-FUNCTIONS/minmax.cc: Ditto.
+	* DLD-FUNCTIONS/rand.cc: Ditto.
+
+	* dynamic-ld.cc, dynamic-ld.h: Major rewrite to allow reloading of
+	dynamically linked functions.
+
+	* symtab.cc (symbol_record::replace_all_defs): Don't allow top
+	definition to be NULL.
+	(symbol_table::clear): Allow dynamically linked functions to be
+	cleared.
+
+	* symtab.h (TYPE): New enum value, DLD_FUCTION.
+	(symbol_type): Now 8 bits wide.
+	(SYMTAB_ALL_TYPES): Include DLD_FUNCTION.
+	(symbol_record::symbol_def::is_function): Also recognize dld functions.
+	(symbol_record::symbol_def::is_dld_function): New function.
+	(symbol_record::is_dld_function): Ditto.
+
+	* defun.cc (install_dld_function): New function.
+	* defun-int.h: Provide declaration here.
+	(octave_dld_fcn_installer): New typedef.
+	(DEFINE_FUN_INSTALLER_FUN): Installer function now takes an
+	oct_shlib object as an arg.  Allow installation of a function to
+	happen more than once.
+
+	* octave.cc (initialize_error_handlers): Call
+	set_liboctave_warning_handler here too.
+
+	* ov-builtin.h (is_builtin_function): Return true.
+	Data member is now protected, not private.
+
+	* ov-fcn.h (is_dynamically_loaded_function): New predicate.
+	(unload): New function.
+	Data members are now protected, not private.
+
+	* ov.h (is_builtin_function, is_dld_function): New predicates.
+	* ov-base.h (is_builtin_function, is_dld_function): Ditto.
+
+	* parse.y (Vwarn_reload_forces_clear): New static flag.
+	(warn_reload_forces_clear): New function.
+	(symbols_of_parse): DEFVAR warn_reload_forces_clear.
+
+	* variables.cc (Fclear): Look for dld functions too.
+
+	* ov-dld-fcn.cc, ov-dld-fcn.h: New files.
+	* Makefile.in (OV_INCLUDES, OV_SRC): Add them to the lists.
+
+	* Makefile.in (DEFVAR_PATTERN): Also match DEFCONSTX.
+
+1999-10-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLList.h, DLList.cc: New files.
+	* Makefile.in (INCLUDES, DIST_SRC): Add them to the lists.
+
+	* DLD-FUNCTIONS/lsode.cc (Flsode): Be sure to call
+	unwind_protect::run_frame before returning.
+	* DLD-FUNCTIONS/quad.cc (Fquad): Likewise.
+	* DLD-FUNCTIONS/fsolve.cc (Ffsolve): Likewise.
+	* DLD-FUNCTIONS/dassl.cc (Fdassl): Likewise.
+
+	* load-save.cc (read_mat_ascii_data): When reading from
+	tmp_stream, check its state, not the state of is.
+
+	* defun-dld.h (INSTALL_DLD_FCN, INSTALL_DLD_FCNS): New macros.
+	* DLD-FUNCTIONS/dassl.cc: Use them.
+	* DLD-FUNCTIONS/lsode.cc: Ditto.
+	* DLD-FUNCTIONS/fsolve.cc: Ditto.
+	* DLD-FUNCTIONS/quad.cc: Ditto.
+	* DLD-FUNCTIONS/time.cc: Ditto.
+	* DLD-FUNCTIONS/besselj.cc: Ditto.
+	* DLD-FUNCTIONS/getgrent.cc: Ditto.
+	* DLD-FUNCTIONS/getpwent.cc: Ditto.
+	* DLD-FUNCTIONS/inv.cc: Ditto.
+	* DLD-FUNCTIONS/log.cc: Ditto.
+	* DLD-FUNCTIONS/minmax.cc: Ditto.
+	* DLD-FUNCTIONS/rand.cc: Ditto.
+
+	* data.cc (Flinspace): Let linspace functions handle errors.
+
+	* mkgendoc (print_doc_string): Handle quoted names.
+
+	* file-io.cc (symbols_of_file_io): Use DEFCONSTX for SEEK_SET,
+	SEEK_CUR, and SEEK_END.
+
+	* defun.h (DEFCONST): Just pass name, defn, and doc to
+	DEFCONST_INTERNAL.
+	(DEFCONSTX): Likewise, pass name, defn, and doc to DEFCONSTX_INTERNAL.
+	* defun-int.h [MKBUILTINS] (DEFCONST_INTERNAL): Likewise, pass
+	name, defn, and doc to XDEFCONST_INTERNAL.
+	[MKBUILTINS] (DEFCONSTX_INTERNAL): New macro.
+	(INSTALL_CONST): New macro.
+	[! MKBUILTINS] (DEFCONST_INTERNAL): Use it to handle details here.
+	[! MKBUILTINS] (DEFCONSTX_INTERNAL): Ditto.
+	* mkgendoc: Fix definition of XDEFCONST_INTERNAL to match.
+	* mkbuiltins: Ditto.
+
+	* mkdefs: Match spaces before BEGIN_INSTALL_BUILTIN.
+
+	* Makefile.in (DEFUN_PATTERN): Also match DEFUN_MAPPER.
+
+1999-10-26  Ben Sapp  <bsapp@nua.lampf.lanl.gov>
+
+	* data.cc (VI, VInf, VJ, VNaN, Ve, Veps, Vfalse, Vi, Vinf, Vj,
+	Vnan, Vpi, Vrealmax, Vrealmin): Texinfoize doc strings.
+	* mappers.cc (Fabs, Facos, Facosh, Fangle, Farg, Fasin, Fasinh,
+	Fatan, Fatanh, Fceil, Fconj, Fcos, Fcosh, Ferf, Ferfc, Fexp,
+	Ffinite, Ffix, Ffloor, Fgamma, Fimag, Flgamma, Flog, Flog10,
+	Freal, Fround, Fsign, Fsin, Fsinh, Fsqrt, Ftan, Ftanh): Ditto.
+
+1999-10-23  Ben Sapp  <bsapp@nua.lampf.lanl.gov>
+
+	* data.cc (Fis_matrix): Texinfoize doc string.
+	* ov.cc	(Vpropagate_empty_matrices): Ditto.
+	* pt-mat.cc: (Vempty_list_elements_ok): Ditto.
+	* pr-output.cc (Vfixed_point_format, Voutput_max_field_width,
+	Voutput_precision, Vprint_empty_dimensions, Vsplit_long_rows):
+	Ditto.
+
+1999-10-22  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-usr-fcn.cc (octave_user_function::do_index_op): If
+	Vmax_recursion_depth is exceeded, call unwind_protect::run_frame
+	before returning.
+
+1999-10-21  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* cutils.c (do_octave_usleep): Handle useconds > 1e6.
+
+	* variables.h (is_valid_function): Provide default values for the
+	string argument.
+
+	* symtab.cc (variable_reference): Maybe print warning (or error)
+	about variables that hide functions of the same name.
+	(symbol_record::define (const octave_value&, unsigned int)): Ditto.
+	(Vvariables_can_hide_functions): New static variable.
+	(variables_can_hide_functions, symbols_of_symtab): New functions.
+
+	* cutils.c: New file.
+	* Makefile.in (SOURCES): Add it to the list.
+	* utils.h: Declare octave_usleep here.
+	* dirfns.cc (Fls): Simply all octave_usleep.
+	* oct-procbuf.cc (octave_procbuf::open): Ditto.
+	* sysdep.cc (Fusleep): Ditto.
+	* toplev.cc (run_command_and_return_output): Ditto.
+
+1999-10-20  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (make_diag (const octave_value&, const octave_value&)):
+	Delete special cases for scalars and simply attempt conversion of
+	first arg to a matrix value.  If that fails, we will still see an
+	error message.
+
+	* Makefile.in (DISTFILES): Add mkgendoc to the list.
+
+1999-10-19  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (stmp-pic): New target.
+	($(PICOBJS)): Depend on stmp-pic, not pic.
+
+	* ov.h (get_rep): New function.
+
+	* help.cc (display_help_text): Pass definitions for VERSION,
+	OCTAVE_HOME, and TARGETHOSTTYPE to makeinfo.
+
+	* DLD-FUNCTIONS/getgrent.cc: Texinfoize all doc strings.
+	* DLD-FUNCTIONS/getpwent.cc: Ditto.
+	* DLD-FUNCTIONS/getrusage.cc: Ditto.
+	* DLD-FUNCTIONS/time.cc: Ditto.
+
+	* defaults.cc (EXEC_PATH, OCTAVE_VERSION): Texinfoize doc strings.
+	* dirfns.cc (Fcd, Fls, Fpwd, Freaddir, Fmkdir, Frmdir, Frename,
+	Fglob, Ffnmatch): Ditto.
+	* file-io.cc (Fpopen, Fpclose, Fumask): Ditto.
+	* sysdep.cc (Fgetenv, Fputenv, Fpause, Fsleep, Fusleep, Fisieee,
+	Ftilde_expand): Ditto.
+	* toplev.cc (Fcomputer, Fsystem, Foctave_config_info): Ditto.
+	* utils.cc (Ffile_in_path): Ditto.
+	* syscalls.cc (Fdup2, Fexec, Ffcntl, Ffork, Fgetpgrp, Fgetpid,
+	Fgetppid, Fgetegid, Fgetgid, Fgeteuid, Fgetuid, Fmkfifo, Fpipe,
+	Fstat, Funlink, Fwaitpid, F): Ditto.
+	(Flstat): Refer to stat for doc.
+
+	* help.cc (looks_like_texinfo): New function.
+	(display_help_text): Use it to see if the doc string looks like
+	Texinfo source.  If so, use makeinfo to format the text before
+	displaying it.
+
+	* mkgendoc: New script.
+	* Makefile.in: Use it to create gendoc.cc, which is compiled and
+	run to create DOCSTRINGS file from sources.
+
+1999-10-18  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (help_from_info): Print `unable to find info' message if
+	try_info returns 127; otherwise, print `not indexed' message.
+	Don't sleep after printing `not indexed' message.
+
+1999-10-14  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (fold (tree_unary_expression *)): New function.
+	(make_prefix_op, make_postfix_op): Use it.
+
+1999-10-13  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (oct-gperf.h): Ask for ANSI-C output from gperf
+	(requires gperf-2.7 or later).
+
+	* sighandlers.cc (sigwinch_handler): New function.
+	(install_signal_handlers): Install it.
+
+Thu Sep 23 19:49:36 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (Fsystem): For async case, use execl instead of
+	system, avoiding the need to exit after executing the subprocess.
+
+Thu Sep  9 17:09:23 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (get_size): Allow zero values.
+	(get_size): New arg, one_elt_size_spec.
+	(do_scanf_conv): New arg, `conv_count'.  Change instantiation
+	requests and all callers.
+	(octave_base_stream::do_scanf): Improve scanning of strings.
+	(octave_base_stream::do_oscanf): Remove size limit on %s conversions.
+
+	* oct-stream.cc (scanf_format_list::all_character_conversions):
+	Don't count %p as a character conversion.
+
+Tue Sep  7 08:31:04 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (set_real_matrix_format, set_complex_matrix_format):
+	Move check for fixed_point_format ahead of check for
+	int_or_inf_or_nan.
+
+Thu Sep  2 11:54:51 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-obj.cc (make_argv): Correctly handle empty strings as args.
+
+Fri Aug 20 08:17:52 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/quad.cc (quad): Delete unused label.
+
+	* unwind-prot.cc (saved_variable::~saved_variable): Don't try to
+	delete gen_ptr_value here.
+
+Mon Aug 16 21:34:33 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (next_token_is_sep_op): New function.
+	(handle_close_brace, maybe_unput_comma): Use it.
+	(have_continuation): Also handle CRLF here.
+
+Wed Aug 11 16:06:57 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (Ffopen): Make fopen ("filename") work and imply that
+	MODE = "r".
+
+Wed Jul 21 15:38:52 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (display_names_from_help_list): Sort names before
+	listing them.
+	(print_symbol_type, Ftype): Also handle built-in constants.
+	(LIST_SYMBOLS): Correct call to symbol_table::name_list.
+	(simple_help): List constants here too.  List constants and
+	variables before functions, not after.  Sort names before listing
+	them.
+
+	* variables.cc (do_who): Display built-in constants in a separate
+	section.
+
+	* error.cc (bind_global_error_variable, clear_global_error_variable):
+	Call bind_builtin_constant, not bind_builtin_variable to set
+	__error_text__.
+	* octave.cc (intern_argv): Likewise, for argv and __argv__.
+
+	* defun.cc (install_builtin_constant): Move function guts to
+	bind_builtin_constant in variables.cc.
+	* variables.cc (bind_builtin_constant): New function.
+
+	* symtab.cc (symbol_record::define, symbol_record::variable_reference):
+	Handle constants the same as functions.
+	(symbol_record::link_to_builtin_variable): New function.
+	(symbol_record::define_builtin_const): New function.
+	(symbol_record::define_as_fcn): Delete unused function.
+	(symbol_record::read_only_error):
+	Handle constants the same as variables.
+	* symtab.h (symbol_record::BUILTIN_CONSTANT): New enum value.
+	(symbol_record::symbol_type): Increase width to 7 bits.
+	(symbol_record::symbol_def::is_constant): New function.
+	(symbol_record::symbol_def::is_builtin_constant): New function.
+	(symbol_record::is_constant): New function.
+	(symbol_record::is_builtin_constant): New function.
+	(SYMTAB_ALL_TYPES): Add symbol_record::BUILTIN_CONSTANT.
+	* variables.cc (link_to_builtin_variable): Delete unused function.
+	(link_to_builtin_or_function): Handle built-in constants here too.
+
+	* defun.cc (install_builtin_variable): Delete inst_as_fcn arg.
+	(install_builtin_constant): New function.
+	(install_builtin_variable_as_function): Delete unused function.
+	* defun.h (DEFVAR_INTERNAL): Delete inst_as_fcn arg.
+	(DEFCONST_INTERNAL): New macro.
+	* defun.h (DEFVAR): Delete inst_as_fcn arg.
+	(DEFCONST, DEFCONSTX): Define using DEFCONST_INTERNAL instead of
+	DEFVAR_INTERNAL.
+	* data.cc, defaults.cc, error.cc, help.cc, input.cc, lex.l,
+	load-save.cc, oct-hist.cc, oct-procbuf.cc, ov-fcn.h,
+	ov-usr-fcn.cc, ov.cc, pager.cc, parse.y, pr-output.cc,
+	pt-assign.cc, pt-decl.cc, pt-mat.cc, pt-plot.cc, pt-stmt.cc,
+	toplev.cc, variables.cc:
+	Change all invocations of DEFVAR to match new definition.
+
+	* data.cc (symbols_of_data): Add DEFCONSTs for true and false.
+
+Thu Jul 15 10:59:42 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (Fis_bool, Fis_complex, Fisempty, Fisnumeric, Fis_list,
+	Fis_map, Fis_struct): Return bool object.
+	(Fisreal): New function.
+
+	* ov-str-mat.h (octave_char_matrix_str): Only return true if
+	Vimplicit_str_to_num_ok is also true.
+
+	* DLD-FUNCTIONS/time.cc (Ftime): Print usage message if	any
+	arguments are supplied.
+
+	* variables.cc (symbol_out_of_date): Call octave_time for time stamps.
+
+	* fn-cache.h (octave_fcn_file_name_cache::timestamp):
+	Now octave_time object.
+
+	* strftime.c: Move to liboctave directory.
+	* Makefile.in (DIST_SRC): Delete from list.
+
+	* ov-usr-fcn.h (octave_user_function::t_parsed,
+	octave_user_function::t_checked): Now octave_time objects.
+	(octave_user_function::time_parsed,
+	(octave_user_function::time_checked):
+	Return value is now octave_time object.
+	(octave_user_function::mark_fcn_file_up_to_date)):
+	Arg is now octave_time object.
+
+	* ov-fcn.h (octave_function::mark_fcn_file_up_to_date)):
+	Arg is now octave_time object.
+	(octave_function::time_parsed, octave_function::time_checked):
+	Return value is now octave_time object.
+
+	* input.cc (Vlast_prompt_time): Now an octave_time object.
+	(octave_gets): Call octave_time::stamp() to set Vlast_prompt_time.
+
+	* DLD-FUNCTIONS/time.cc (mk_tm_map, extract_tm, Ftime, Fgmtime,
+	Flocaltime, Fmktime, Fstrftime): Use new classes defined in
+	liboctave/oct-time.cc instead of accessing C functions directly.
+
+Wed Jul 14 17:38:46 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* systime.h: Move to liboctave directory.
+	* Makefile.in (INCLUDES): Delete it from the list
+
+Tue Jul 13 14:34:57 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.cc (sigchld_handler): Only wait for processes in
+	octave_child_list.
+	* toplev.cc (cmd_status): Delete unused static variable.
+	(cmd_death_handler): Delete unused function.
+	(run_command_and_return_output): Don't add cmd_death_handler to
+	octave_child_list.  Simply extract command exit status from
+	calling close() on the procstream object.
+
+Mon Jul 12 22:38:50 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defun.h (DEFUN_MAPPER): Handle new args, d_b_map and c_b_map.
+	* defun-int.h (DEFUN_MAPPER_INTERNAL): Likewise.
+	* mappers.cc (install_mapper_functions): Supply new args to
+	all uses of DEFUN_MAPPER.
+	* ov-mapper.cc (octave_mapper::apply): Handle mapper functions
+	that return bool objects.
+	* ov-mapper.h (octave_mapper::d_b_mapper, octave_mapper::c_b_mapper):
+	New typedefs.
+	(octave_mapper::octave_mapper): Handle new mapper function types.
+
+	* DLD-FUNCTIONS/minmax.cc: Do a better job of handling NaNs.
+
+Sun Jul 11 13:15:17 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (do_plus_format (ostream&, double)): New function.
+	(octave_print_internal (ostream&, double, bool)): Use it.
+	(octave_print_internal (ostream&, const Matrix&, bool, int)): Ditto.
+
+	* pr-output.cc (do_plus_format (ostream&, const Complex&)):
+	New function.
+	(octave_print_internal (ostream&, const Complex&, bool)): Use it.
+	(octave_print_internal (ostream&, const ComplexMatrix&, bool, int)):
+	Ditto.
+
+Sun Jun 20 23:04:00 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sysdep.cc: Include sys/ioctl.h if available.
+
+Sat Jun 19 12:07:16 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (do_who): Make pattern and multiple non-option
+	arguments work.
+
+Mon Jun  7 09:54:51 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (next_token_is_bin_op, next_token_is_postfix_unary_op,
+	handle_number): Delete yytext arg.  Change all callers.
+	(next_token_is_postfix_unary_op): Check the first character
+	obtained from yyinput before calling it again.
+	(next_token_is_bin_op): Do a more thorough check.
+	(handle_identifier): Also enter token in local symbol table if the
+	following token is a dot and it looks like a binary operator.
+	(whitespace_in_literal_matrix): Now static.
+
+	* lex.l: Always use unput, not yyunput.
+
+Fri May 28 11:02:37 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/chol.cc (Fchol): If two output arguments, never
+	produce error message.
+
+Thu May 27 18:28:35 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/chol.cc (Fchol): Also return info as second output.
+
+	* DLD-FUNCTIONS/minmax.cc (max (const ComplexMatrix&, const
+	ComplexMatrix&)): Correct test for real columns only.
+	(min (const ComplexMatrix&, const ComplexMatrix&)): Likewise.
+
+Wed Apr 14 12:54:25 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/dassl.cc (Fdassl): Prevent recursive calls.
+	* DLD-FUNCTIONS/fsolve.cc (Ffsolve): Likewise.
+	* DLD-FUNCTIONS/lsode.cc (Flsode): Likewise.
+	* DLD-FUNCTIONS/quad.cc (Fquad): Likewise.
+
+	* file-io.cc (Fsscanf, Ffscanf): Doc fix.
+
+Sat Mar 27 11:07:51 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h (octave_value::count): New function.
+	* symtab.cc (symbol_record::dump_symbol_info): New function.
+	* symtab.cc (symbol_record::symbol_def::dump_symbol_info): Ditto.
+	* variables.cc (F__dump_symbol_info__): Ditto.
+
+	* pt-misc.cc (tree_parameter_list::clear): New function.
+	* ov-usr-fcn.h (octave_user_function::clear_args_passed): Ditto.
+	* ov-usr-fcn.cc (clear_param_list): New function.
+	(clear_args_passed): New function.
+	(octave_user_function::do_index_op): Use them to decrement
+	reference counts on local variables.
+
+Fri Mar 26 00:51:53 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (libraries): Use the libfoo.a(objects) method of
+	creating static libs.
+
+	* defaults.cc (symbols_of_defaults): Initialize LOADPATH to
+	Vload_path, not ":".
+
+Thu Mar 18 12:09:23 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (Fisnumeric): Fix typo.
+
+Thu Mar  4 02:17:04 1999  James Macnicol  <jamesm@evans.ee.adfa.oz.au>
+
+	* file-io.cc (Ffread, Ffwrite): Add uint16 and uint32 data types
+	to doc string.
+
+Wed Mar  3 11:55:17 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (handle_string): Allow "" to pass through unchanged if
+	working on a gset command.
+
+Tue Mar  2 01:36:29 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (Fexist): If a variable isn't defined, only go on
+	to look for a global by the same name if we are at the top level.
+
+Fri Jan 29 02:18:36 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_NAME_AND_VERSION): Say `GNU Octave', not just
+	Octave.
+
+Thu Jan 28 21:29:16 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (Fcomputer): Use CANONICAL_HOST_TYPE, not TARGET_HOST_TYPE.
+	(octave_config_info): Likewise.
+	* version.h: Ditto.
+
+	* sysdep.cc (Fpause): Flush output before getting user input.
+
+Wed Jan 27 14:18:29 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (DEFFUN_PATTERN, DEFVAR_PATTERN): Use egrep again.
+	Make the patterns work with stupid egreps that don't like empty
+	elements in alternation patterns.
+
+Fri Jan 22 04:41:48 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (save_ascii_data): Check for string type first,
+	then range, then the rest.
+	(save_binary_data): Ditto.
+
+	* pager.cc (more_than_a_screenful): Accept length as second arg.
+	Handle long lines properly, assuming the terminal wraps long lines.
+	(octave_pager_buf::do_sync): Accept length of data as second arg.
+	Use write instead of << to put characters on output stream.
+	(octave_pager_buf::sync): Don't assume data ends at first NUL.
+	(octave_diary_buf::sync): Ditto.
+
+Thu Jan 21 22:15:23 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (save_mat_binary_data): Check for string type
+	first, then range, then the rest.
+
+Wed Jan 20 12:01:14 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (octave_base_stream::do_scanf): Handle short and
+	long ints correctly.
+
+Fri Jan 15 13:04:58 1999  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (end_error): Handle case of endswitch too.
+
+	* Makefile.in: Use basic regular expressions and grep instead of
+	egrep to find files that contain DEFVAR, DEFCONST, or DEFUN.
+
+Wed Dec  9 14:14:11 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (octave): Add $(RDYNAMIC_FLAG) to link command.
+
+Fri Dec  4 20:26:33 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/time.cc (Fstrftime): Make it work even when not
+	using the GNU version of strftime, which allows passing NULL for
+	the buffer to determine the required size of the buffer.
+
+Wed Dec  2 22:38:40 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (file_in_loadpath): Expect argc == 2, not 3.
+
+Tue Nov 24 23:38:19 1998  Eric Norum  <eric@skatter.USask.Ca>
+
+	* mkbuiltins: Also strip off leading `./' from file names.
+	* mkops: Ditto.
+
+Tue Nov 24 23:24:26 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* strftime.c: Surround everything with #ifdef HAVE_STRFTIME / #endif.
+
+	* lex.h (YY_FATAL_ERROR): Call yy_falta_error after
+	jump_to_top_level to avoid gcc warning.
+
+Fri Nov 20 13:34:47 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-bool.h, ov-bool.cc (class octave_bool): Derive from
+	octave_base_scalar and get common functions via derivation.
+	* ov-scalar.h, ov-scalar.cc (class octave_scalar): Ditto.
+	* ov-complex.h, ov-complex.cc (class octave_complex): Ditto.
+
+	* ov-base-scalar.h, ov-base-scalar.cc (class octave_base_scalar):
+	New files for new class definition.  Put common scalar data type
+	stuff here.
+	* Makefile.in (OV_INCLUDES, OV_SRC): Add them to the lists.
+
+Thu Nov 19 14:30:25 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dynamic-ld.cc (octave_dynamic_loader::mangle_name):
+	Prepend underscore here.
+	(octave_dynamic_loader::load_fcn_from_dot_oct_file): Not here.
+
+	* ov-re-mat.h (octave_matrix_value): Delete experimental code for
+	handling structure references for things like .rows, .cols, etc.
+
+Wed Nov 18 01:18:46 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (VAR_FILES): Be more careful about matching.
+	(DEF_FILES): Likewise.
+
+	* ov-base-mat.h, ov-base-mat.cc, ov-bool-mat.h, ov-bool-mat.cc,
+	ov-ch-mat.h, ov-ch-mat.cc, ov-cx-mat.h, ov-cx-mat.cc,
+	ov-re-mat.h, ov-re-mat.cc: Move default definition of all, any,
+	is_matrix_type, is_numeric_type, valid_as_zero_index, and
+	do_index_op to base class.
+	Provide definitions that override the defaults where necessary.
+
+	* mappers.cc: Don't include lo-specfun.h.
+
+Tue Nov 17 14:35:56 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* besselj.cc (Fbesselh, Fairy); New functions.
+	(Fbesselj, Fbessely, Fbesselk, Fbesseli): Update doc strings.
+	(do_bessel): Handle additional args.
+
+Fri Nov 13 14:47:11 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (NUMBER): Allow hexadecimal constants.
+	(looks_like_hex): New function.
+	(handle_number): Check for hexadecimal constants and convert them
+	to unsigned integer values.
+
+Thu Nov 12 11:13:24 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (gnu_readline): Check for EOF from command_editor::readline.
+
+	* ov-str-mat.h, ov-str-mat.cc (class octave_char_matrix_str):
+	Get common functions via new derivation scheme.
+
+	* ov-bool-mat.h, ov-bool-mat.cc (class octave_bool_matrix):
+	Derive from octave_base_matrix and get common functions via derivation.
+	* ov-ch-mat.h, ov-ch-mat.cc (class octave_char_matrix): Ditto.
+	* ov-cx-mat.h, ov-cx-mat.cc (class octave_complex_matrix): Ditto.
+	* ov-re-mat.h, ov-re-mat.cc (class octave_real_matrix): Ditto.
+
+	* ov-base-mat.h, ov-base-mat.cc (class octave_base_matrix): New
+	files  for new class definition.  Put common matrix data type
+	stuff here.
+
+	* ov-list.cc (Fnth): New function.
+
+	* ov-list.cc (octave_list::do_index_op): Allow more complex indexing.
+
+	* oct-obj.cc (octave_value_list::index): New function.
+	(octave_value_list::octve_value_list (Array<octave_value>)):
+	New private constructor.
+
+	* ov-list.cc (Fsplice): Fix docstring to match.
+	* oct-obj.cc (octave_value_list::splice): Allow special case
+	splice (x, length(x)+1, 0, y) to be equivalent to append (x, y).
+
+	* ov-list.cc (Fappend): If an arg is a list, concatenate the lists
+	instead of appending arg as a single element.
+
+Wed Nov 11 14:07:27 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (get_mat_data_input_line): New function.
+	(get_lines_and_columns): Use it here.
+	(read_mat_ascii_data): And here and do our own reading instead of
+	using Matrix::operator<<.
+
+Tue Nov 10 16:12:25 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (make_constant): Initialize retval to 0.
+
+	* toplev.h (clean_up_and_exit (void)): Delete declaration.
+	* toplev.cc (do_octave_atexit): Move guts of clean_up_for_exit
+	here, but ensure that the actions are only executed once.
+	* octave.cc (main): Don't register cleanup_tmp_files with atexit.
+
+	* ov.h, ov.cc (class octave_value): Use DECLARE_OCTAVE_ALLOCATOR
+	and DEFINE_OCTAVE_ALLOCATOR for uniform declaration and definition
+	of allocator functions.  Use DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA
+	and DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA for uniform declaration
+	and definition of type id functions and data.
+	* ov-usr-fcn.h, ov-usr-fcn.cc (class octave_user_function): Ditto.
+	* ov-scalar.h, ov-scalar.cc (class octave_scalar): Ditto.
+	* ov-re-mat.h ov-re-mat.cc (class octave_matrix): Ditto.
+	* ov-range.h, ov-range.cc (class octave_range): Ditto.
+	* ov-mapper.h, ov-mapper.cc (class octave_mapper): Ditto.
+	* ov-list.h, ov-list.cc (class octave_list): Ditto.
+	* ov-file.h, ov-file.cc (class octave_file): Ditto.
+	* ov-fcn.h, ov-fcn.cc (class octave_function): Ditto.
+	* ov-cx-mat.h, ov-cx-mat.cc (class octave_complex_matrix): Ditto.
+	* ov-complex.h, ov-complex.cc (class octave_complex): Ditto.
+	* ov-ch-mat.h, ov-ch-mat.cc (octave_char_matrix): Ditto.
+	* ov-builtin.h, ov-builtin.cc (class octave_builtin): Ditto.
+	* ov-bool.h, ov-bool.cc (class octave_bool): Ditto.
+	* ov-bool-mat.h, ov-bool-mat.cc (octave_bool_matrix): Ditto.
+
+	* ov.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): New macro.
+	(DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Ditto.
+
+Mon Nov  9 16:12:37 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (octave_print_internal): Reorder default args for
+	charMatrix version.
+	(octave_print_internal): New function for boolMatrix.
+
+	* version.h (OCTAVE_STARTUP_MESSAGE): Note that this is a
+	development release.
+
+	* toplev.cc (do_octave_atexit): Call flush_octave_stdout here.
+	(clean_up_for_exit): And here.
+
+Mon Nov  9 15:20:53 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (get_user_input): Check retval.length(), not	retval.length.
+
+Sun Nov  8 19:30:33 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-assign.cc (tree_simple_assignment::rvalue): If etype is
+	asn_eq, don't evaluate ult again because retval is just rhs value.
+	(tree_multi_assignment::rvalue): Likewise.
+
+Fri Nov  6 12:14:29 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-loop.cc (tree_for_command::eval): Move code for string RHS
+	outside if clause for matrix types.
+
+	* pt-idx.cc: Don't forget to define arg_nm.
+	Move contstructor here.
+	* pt-idx.h: From here.
+
+	* data.cc (Fisempty): Also return true for empty strings.
+
+Wed Nov  4 17:21:41 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-base.cc (octave_base_value::rows, octave_base_value::columns,
+ 	octave_base_value::length): Delete.
+	* ov-base.h (octave_base_value::rows, octave_base_value::columns,
+ 	octave_base_value::length): Define here.  All return -1 if not
+	defined in a derived class.
+
+	* data.cc (Fis_matrix): Also return true if the arg is a range.
+
+Tue Nov  3 09:40:24 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (Fis_bool): New function.
+	Also add alias for islogical.
+
+	* ov.h (octave_value::is_bool_type): New function.
+	* ov-base.h (octave_base_value::is_bool_type): Likewise.
+	* ov-bool.h (octave_bool::is_bool_type): Likewise.
+	* ov-bool-mat.h (octave_bool_matrix::is_bool_type): Likewise.
+
+Mon Nov  2 13:36:04 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (handle_close_brace): Also handle case of ']' followed by
+	other assignment ops (+=, -=, ...).
+
+	* pt-assign.cc (tree_simple_assignment::rvalue): Correctly handle
+	return value and printing for operators other than `='.
+	(tree_multi_assignment::rvalue): Likewise.
+
+	* pt-assign.h (tree_multi_assignment::etype): New data member.
+	* pt-assign.cc 	(tree_multi_assignment::rvalue): Use it instead of
+	assuming `='.
+	(tree_multi_assignment::oper): New function.
+	* pt-pr-code.cc (tree_print_code::visit_multi_assignment): Use
+	it instead of always printing `='.
+	* parse.y (make_assign_op): Pass expression type to
+	tree_multi_assignment constructor.
+
+	* Makefile.in (stmp-pic): New target.
+	($(PICOBJ)): Depend on stmp-pic, not pic.
+	(clean): Delete stmp-pic.
+
+Sun Nov  1 23:24:55 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* mappers.cc (install_mapper_functions): Add alias for isfinite.
+
+Sat Oct 31 08:46:55 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (Fisnumeric): New function.
+
+Fri Oct 30 08:39:30 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-lvalue.cc (octave_lvalue::do_unary_op): Make it work for
+	indexed ops too.
+	* ov.cc (octave_value::unary_op_to_assign_op): New function.
+	(octave_value::do_non_const_unary_op): New function for	indexed ops.
+
+	* parse.y (LEFTDIV_EQ, ELEFTDIV_EQ): New tokens.
+	(assign_expr): Add rules for them.
+	(make_assign_op): Handle them here too.
+	* lex.l: Recognize them.
+	* ov.h (octave_value::assign_op): Add ldiv_eq and el_ldiv_eq.
+	* ov.cc (octave_value::assign_op_as_string): Ditto.
+	(octave_value::op_eq_to_binary_op): Ditto.
+	(octave_value::assign): Handle OP= style operators with brute force.
+	(octave_value::simple_assign): New function.
+
+	* parse.y (matrix): Dont' forget to reset
+	lexer_flags.looking_at_matrix_or_assign_lhs.
+
+	* oct-lvalue.cc (octave_lvalue::assign): Don't call change
+	function if error occurs.
+	(octave_lvalue::do_unary_op): If we have an index, fail with message.
+
+Thu Oct 29 09:27:04 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.cc (do_binary_op): Protect against invalid type conversions.
+	(try_assignment_with_conversion): Likewise.
+	(do_unary_op): Likewise.
+
+	* ov.h (OV_UNOP_FN, OV_UNOP_OP, OV_UNOP_FN_OP): New macros.
+	Use them to define not, uminus, transpose, hermitian functions
+	and operators ! and -.
+	(OV_BINOP_FN, OV_BINOP_OP, OV_BINOP_FN_OP): New macros.
+	Use them to define add, sub, mul, div, pow, ldiv, lshift, rshift,
+	lt, le, eq, ge, gt, ne, el_mul, el_div, el_pow, el_ldiv, el_and,
+	el_or, struct_ref, functions and operators <, <=, ==, >=, >, !=,
+	+, -, *, and /.
+
+	* ops.h (CONVDECLX): New macro.
+	* ov-base.cc (matrix_conv, complex_matrix_conv, string_conv):
+	Use it to declare these functions.
+
+	* ops.h (CONVDECL, INSTALL_WIDENOP):
+	Prefix function name with `oct_conv_'.
+	(INSTALL_BINOP, BINOPDECL): Prefix function name with `oct_binop_'.
+	(INSTALL_ASSIGNOP, INSTALL_ASSIGNANYOP, ASSIGNOPDECL):
+	Prefix function name with `oct_assignop_'.
+	(UNOPDECL, DEFNCUNOP_METHOD, INSTALL_UNOP, INSTALL_NCUNOP):
+	Prefix function name with `oct_unop_'.
+
+	* ov-str-mat.cc (default_numeric_conversion_function):
+	Return 0 if conversion fails.
+
+	* parse.y (make_prefix_op, make_postfix_op): Use
+	octave_value::unary_op enum.
+
+	* pt-unop.cc (tree_prefix_expression::rvalue): Use new unary_op
+	functions from octave_value and octave_lvalue classes.
+	(tree_prefix_expression::rvalue): Likewise.
+
+	* pt-unop.cc (tree_unary_expression::oper): Move here.
+	(tree_prefix_expression::oper, tree_postfix_expression): From here.
+
+	* pt-unop.h (tree_prefix_expression, tree_postfix_expression):
+	Delete enums.
+	(tree_unary_expression): Use octave_value::unary_op enum.
+	* parse.y (make_prefix_op, make_postfix_op): Likewise.
+
+	* oct-lvalue.h (octave_lvalue::do_unary_op): New function.
+	(octave_lvalue::increment, octave_lvalue::decrement): Delete.
+
+	* ov-typeinfo.h (octave_value_typeinfo::non_const_unary_ops):
+	New data member.
+	* ov-typeinfo.h (octave_value_typeinfo::lookup_non_const_unary_op):
+	New function.
+	* ov-typeinfo.cc (octave_value_typeinfo::register_non_const_unary_op):
+	New function.
+	(octave_value_typeinfo::do_register_non_const_unary_op): Ditto.
+	(octave_value_typeinfo::do_lookup_non_const_unary_op): Ditto.
+
+	* ov.cc (octave_value::do_non_const_unary_op): New function.
+
+	* Makefile.in (OP_XSRC): Add op-chm.cc and op-range.cc to the list.
+
+	* OPERATORS/op-str-str.cc: Define string matrix unary operators here.
+	(install_str_str_ops): Install them here.
+	* ov-bool-mat.h (octave_bool_matrix::transpose,
+	octave_bool_matrix_value::hermitian): Delete.
+
+	* OPERATORS/op-chm.cc: New file.  Define char matrix unary operators.
+	(install_chm_ops): Install them here.
+	* ov-ch-mat.h (octave_char_matrix::transpose,
+	octave_char_matrix_value::hermitian): Delete.
+	* ops.cc (install_ops): Call install_chm_ops.
+
+	* OPERATORS/op-bm-bm.cc: Define bool matrix unary operators here.
+	(install_bm_bm_ops): Install them here.
+	* ov-bool-mat.h (octave_bool_matrix::transpose,
+	octave_bool_matrix_value::hermitian): Delete.
+
+	* ov-bool.h (octave_bool::not, octave_bool::uminus,
+	octave_bool::transpose, octave_bool::hermitian): Delete.
+
+	* OPERATORS/op-cs-cs.cc: Define complex scalar unary operators here.
+	(install_cs_cs_ops): Install them here.
+	* ov-complex.h (octave_complex::not, octave_complex::uminus,
+	octave_complex::transpose, octave_complex::hermitian): Delete.
+
+	* OPERATORS/op-cm-cm.cc: Define complex matrix unary operators here.
+	(install_cm_cm_ops): Install them here.
+	* ov-cx-mat.h (octave_complex_matrix::not,
+	octave_complex_matrix::uminus, octave_complex_matrix::transpose,
+ 	octave_complex_matrix::hermitian): Delete.
+
+	* OPERATORS/op-m-m.cc: Define matrix unary operators here.
+	(install_m_m_ops): Install them here.
+	* ov-re-mat.h (octave_matrix::not, octave_matrix::uminus,
+	octave_matrix::transpose, octave_matrix::hermitian): Delete.
+
+	* OPERATORS/op-range.cc: New file.  Define range unary operators.
+	(install_range_ops): Install them here.
+	* ov-range.h (octave_range::not, octave_range::uminus,
+	octave_range::transpose, octave_range::hermitian): Delete.
+	* ops.cc (install_ops): Call install_range_ops.
+
+	* OPERATORS/op-s-s.cc: Define scalar unary operators here.
+	(install_s_s_ops): Install them here.
+	* ov-scalar.h (octave_scalar::not, octave_scalar::uminus,
+	octave_scalar::transpose, octave_scalar::hermitian): Delete.
+
+	* ops.h (INSTALL_UNOP, CAST_UNOP_ARG, UNOPDECL, DEFUNOPX, DEFUNOP,
+	DEFUNOP_OP, DEFUNOP_FN): New macros.
+
+	* ov.h (unary_op_fcn): New typedef.
+	(octave_value::unary_op): New enum.
+	* ov.cc (octave_value::octave_value): New function.
+
+	* ov.h (octave_value::not, octave_value::uminus,
+	octave_value::transpose, octave_value::hermitian,
+	octave_value::increment, octave_value::decrement): Delete.
+
+	* ov-base.cc (octave_base_value::not, octave_base_value::uminus,
+	octave_base_value::transpose, octave_base_value::hermitian,
+	octave_base_value::increment, octave_base_value::decrement): Delete.
+
+	* ov.cc (gripe_unary_op): New function.
+	(do_unary_op): New function.
+	* ov-typeinfo.h (octave_value_typeinfo::unary_ops):
+	New data member.
+	* ov-typeinfo.cc (octave_value_info::register_unary_op,
+	octave_value_info::do_register_unary_op,
+	octave_value_info::lookup_unary_op,
+	octave_value_info::do_lookup_unary_op):
+	New functions.
+
+	* ov-list.cc (Fsplice): Use new octave_value::int_value function here.
+	(octave_list::do_index_op): Likewise.
+	(octave_list::assign): Likewise.
+	* toplev.cc (Fquit): Likewise.
+	* syscalls.cc (Fwaitpid): Likewise.
+	(Ffcntl): Likewise.
+	* file-io.cc (do_fread): Likewise.
+	(do_fwrite): Likewise.
+	* data.cc (make_diag): Likewise.
+	(Fsize): Likewise.
+	(get_dimensions): Likewise.
+	(Flinspace):
+
+	* ov-base.cc (octave_base_value::int_value): New function.
+	(octave_base_value::nint_value): Ditto.
+	* ov.h (octave_value::int_value): Ditto.
+	(octave_value::nint_value): Ditto.
+
+	* ov-list.cc (octave_list::assign): Fix off-by-one error.
+
+Wed Oct 28 11:01:37 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (read_mat_ascii_data): Try harder to convert file
+	name to valid variable name.
+
+	* data.cc (Fisempty, Fis_matrix): New functions.
+
+	* ov-str-mat.h (octave_char_matrix_str::is_matrix_type): New function.
+
+	* OPERATORS/op-list.cc: New file.
+	* Makefile.in (OP_XSRC): Add it to the list.
+
+	* ov-list.cc (octave_list::assign): New function.
+
+	* ov-typeinfo.h (octave_value_typeinfo::assignany_ops):
+	New data member.
+	* ov-typeinfo.cc (octave_value_info::register_assignany_op,
+	octave_value_info::do_register_assignany_op,
+	octave_value_info::lookup_assignany_op,
+	octave_value_info::do_lookup_assignany_op):
+	New functions.
+	* ov.cc (octave_value::try_assignment (octave_value::assign_op,
+	const octave_value_list&, const octave_value&)): If no assignment
+	operator for particular RHS type exists, try finding one for
+	generic octave_value as RHS type.
+	* ops.h (DEFASSIGNANYOP_FN): New macro.
+
+	* ov-list.cc (Fsplice): New function.
+	* oct-obj.cc (octave_value_list::splice): New function.
+
+	* ov.cc (Vresize_on_range_error): No longer static.
+	* ov.h (Vresize_on_range_error): Provide extern declaration.
+
+	* oct-procbuf.cc (symbols_of_oct_procbuf): Don't declare static.
+
+	* data.cc (Flength): New function.
+	* ov.h (octave_value::length): New virtual function.
+	* ov-base.cc (octave_base_value::length): New function.
+	(octave_base_value::rows, octave_base_value::columns): Move
+	definitions here, from ov-base.h.  Don't return -1.  Instead,
+	gripe about wrong argument type.
+	* ov-bool-mat.h (octave_bool_matrix::length): New function.
+	* ov-bool.h (octave_bool::length): Ditto.
+	* ov-ch-mat.h (octave_char_matrix::length): Ditto.
+	* ov-complex.h (octave_complex::length): Ditto.
+	* ov-cx-mat.h (octave_complex_matrix::length): Ditto.
+	* ov-list.h (octave_list::length): Ditto.
+	* ov-range.h (octave_range::length): Ditto.
+	* ov-re-mat.h (octave_matrix::length): Ditto.
+	* ov-scalar.h (octave_scalar::length): Ditto.
+
+Tue Oct 27 22:19:24 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-list.cc (octave_list::print_raw): Handle case of empty list.
+	(octave_list::print_name_tag): Likewise.
+
+	* octave.cc (intern_argv): Built-in variable argv is now a list of
+	strings instead of a string vector.
+	Always bind argv, making it an empty list if there are no args.
+
+Mon Oct 26 08:41:46 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* xdiv.cc (mx_leftdiv_conform): Explicitly declare args to be
+	passed as references to const objects.  Fix explicit instantiation
+	requests to match.
+	(mx_div_conform): Likewise.
+
+	* pt-unop.h (tree_prefix_expression): Reorder constructor args to
+	put those with default values last.
+	(tree_postfix_expression): Likewise.
+	* parse.y: Change all callers.
+
+Fri Oct 23 12:07:32 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (Ffile_in_loadpath): New function.
+
+	* defaults.cc (Vload_path, Vdefault_load_path): Now static.
+
+	* help.cc (simple_help): Use Vload_path_dir_path here instead of
+	trying to reconstruct it from Vload_path.
+	* fn-cache.cc (octave_fcn_file_name_cache::do_list): Likewise.
+	(octave_fcn_file_name_cache::update): Likewise.
+
+	* defaults.cc (octave_loadpath): Construct Vload_path_dir_path
+	using Vdefault_load_path.
+	(set_default_path): Likewise.
+
+	* defaults.h, defaults.cc (maybe_add_default_load_path): Delete.
+
+	* defaults.cc (Vdefault_load_path): New static variable.
+	(set_default_path): Set it.
+	(maybe_add_default_load_path): Use it.
+	(symbols_of_defaults): Add DEFCONST for DEFAULT_LOADPATH.
+	Thanks to Rafael Laboissiere <rafael@icp.inpg.fr>.
+
+	* defaults.cc (set_default_path): If OCTAVE_PATH is set in the
+	environment, call maybe_add_default_load_path on it.
+
+Tue Oct 20 20:58:04 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defaults.cc (maybe_add_default_load_path): If LOADPATH contains
+	an embedded "::", insert the default path there too.
+
+Fri Oct 16 00:52:15 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (in_matrix_or_assign_lhs): New subroutine for lexical
+	feedback.
+	(matrix): Use it.
+	(assign_lhs): Ditto.
+	* lex.h (lexical_feedback::looking_at_matrix_or_assign_lhs): New
+	data member.
+	* lex.l (handle_identifier): Use it to handle keywords like `cd'
+	as variables in contexts like [ab, cd] = foo ().
+
+	* ov-str-mat.h
+	(octave_char_matrix_str::octave_char_matrix_str (char c)):
+	New constructor.
+	* ov-ch-mat.h (octave_char_matrix::octave_char_matrix (char c)):
+ 	New constructor.
+	* ov.cc (octave_value::octave_value (char c): New constructor.
+
+	* pt-loop.cc (tree_simple_for_command::eval): Handle case of RHS
+	as string.
+
+Thu Oct 15 00:56:47 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/rand.cc: Declare Fortran subroutines as returning
+	int, not int*.
+
+Wed Oct 14 23:51:31 1998  Georg Thimm  <thimm@idiap.ch>
+
+	* load-save.cc (Vcrash_dumps_octave_core): New static variable.
+	(save_user_variables): Only save variables if
+	Vcrash_dumps_octave_core is true.
+	(symbols_of_load_save): Add DEFVAR for it here.
+	(crash_dumps_octave_core): New function.
+	* octave.cc (maximum_braindamage): Bind crash_dumps_octave_core to
+	0.0 here.
+
+Tue Oct 13 22:05:55 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (read_readline_init_file): New function.
+
+Thu Oct  8 13:47:55 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-procbuf.h (octave_procbuf::wstatus): New data member.
+	Initialize in constructors.
+	(octave_procbuf::wait_status): New member function.
+	* oct-procbuf.cc (octave_procbuf::sys_close): Use class data
+	member wstatus, not local variable.
+	* procstream.cc (procstreambase::close): Don't call sys_close directly.
+	Get subprocess exit status by calling wait_status for our procbuf.
+	* pt-plot.cc (close_plot_stream): Send "quit" command to gnuplot
+	before deleting plot_stream.
+
+Thu Oct  1 22:39:44 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (Fis_complex): New function.
+
+Fri Sep 25 11:50:44 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (write_header): Rename from write_binary_header.
+	Also write header for Octave ASCII files.
+
+	* load-save.cc (Fsave): Implement -append option.
+
+	* defaults.cc (Frehash): New function.
+
+Fri Sep 25 11:50:44 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (help_from_info): Improve error message in case that
+	info doesn't work.
+
+Thu Sep 24 10:48:12 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (DLD_XSRC): Replace qzval.cc with qz.cc
+
+	* DLD-FUNCTIONS/balance.cc: Update from A. S. Hodel
+	<scotte@eng.auburn.edu>.
+
+	* DLD-FUNCTIONS/qz.cc: New file.
+
+	* DLD-FUNCTIONS/qzval.cc: Delete.
+
+	* parse.y (plot_command1): Don't allow it to be empty.
+	(plot_command): Handle simple `PLOT' and `PLOT ranges' as special
+	cases here.
+
+Wed Sep 23 21:10:08 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l: Change <MATRIX>{SNLCMT}*\n{SNLCMT}* pattern
+	to <MATRIX>{S}*{COMMENT}{SNLCMT}* | <MATRIX>{S}*{NL}{SNLCMT}*.
+
+Fri Sep  4 10:50:00 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (Ffwrite): Fix doc string.
+
+Wed Sep  2 16:22:23 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (match_sans_spaces): Make it work.
+
+	* toplev.cc (quit): Require nargout == 0.
+
+	* input.cc (get_user_input): Only try matching "exit", "quit", and
+	"return" if debugging.
+
+Tue Sep  1 12:50:24 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc: Use -H as single character equivalent of --no-history.
+
+Sat Aug 29 12:23:12 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-obj.cc (octave_value_list::make_argv): If some values are
+	string vectors, insert all the elements, not just the first.
+
+Tue Aug 18 16:39:50 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (octave_base_stream::do_gets): Accept last line of
+	file even if it doesn't end in a newline character.
+
+Tue Aug 18 16:25:49 1998  Mumit Khan  <khan@xraylith.wisc.edu>
+
+	* xdiv.cc (mx_leftdiv_conform, mx_div_conform): Instantiate correct
+	templates.
+
+Thu Jul 30 00:37:43 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-loop.cc (tree_for_command::eval): Check for range first.
+	If error occurs when extracting matrix value, return early.
+	Don't bother to check for string type.
+
+	* ov-ch-mat.h (octave_char_matrix::is_real_matrix): New function.
+
+Tue Jun 23 15:09:54 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (clear_current_script_file_name): New function.
+	(parse_fcn_file): Bind current_script_file_name while script is
+	executing.  Use unwind_protect to clear it once the script is
+	finished.
+
+	* pt-plot.cc (Fgraw): New function.
+
+Mon Jun 22 22:13:38 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (is_valid_function): Provide version that takes
+	function name as string.
+
+	* parse.y (binary_expr): Fix thinko that resulted in incorrect
+	evaluation of -x^y.  Thanks to Richard Allan Holcombe
+	<raholcom@unity.ncsu.edu>.
+	(feval): Don't attempt to copy nonexistent arg names.
+
+Mon Jun 22 21:35:50 1998  Richard Allan Holcombe  <raholcom@unity.ncsu.edu>
+
+	* xpow.cc (xpow): Improve efficiency for matrix^(scalar int) case.
+
+Thu Jun  4 12:42:46 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-usr-fcn.cc (octave_user_function::octave_all_va_args):
+	If num_args_passed < num_named_args, create zero length list.
+
+Thu May 14 16:23:15 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/getrusage.cc: Include sys/types.h too.
+
+Mon May 11 00:38:45 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pager.cc (Fdiary): Don't forget to set write_to_diary file if
+	just given a file name.
+
+	* input.cc (octave_gets): Only send new line character to
+	octave_diary if current_input_line is empty or doesn't already end
+	with a new line character..
+	Don't send input from function files or	scripts to octave_diary.
+
+Sun May  3 19:54:38 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (reset_parser): Also call yyrestart if forced_interactive
+	is true, but not if input_from_startup_file is true.
+
+Tue Apr 28 14:06:20 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-procbuf.cc (Vkluge_procbuf_delay): New static variable.
+	(kluge_procbuf_delay): New function.
+	(symbols_of_oct_procbuf): New function.
+	(octave_procbuf::open): Delay Vkluge_procbuf_delay microseconds
+	after forking.
+
+Thu Apr 23 15:41:08 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defaults.cc (Vload_path_dir_path): New variable.
+	* utils.cc (file_in_path): Use it.
+
+	* utils.cc (search_path_for_file): Undo previous change.
+	(file_in_path): Undo previous change.
+	* defaults.cc (loadpath): Undo previous change.  Tilde expansion
+	is once again handled correctly by the code in
+	liboctave/pathsearch.cc.
+
+Mon Apr 20 21:50:34 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (get_dimensions): Allow zeros ([], 3) to work, for
+	compatibility with Matlab.
+
+	* dynamic-ld.cc [WITH_DL && ! HAVE_DLFCN_H]: Add declarations for
+	dlopen, dlerror, dlsym, and dlclose.
+
+	* octave.gperf: Handle __FILE__ and __LINE__.
+	* lex.l (is_keyword): Likewise.
+	* Makefile.in (oct-gperf.h): Pass -D option to gperf.
+	Postprocess output of gperf to convert name of static variable
+	from lookup to gperf_lookup, to avoid conflict with our	function
+	of the same name defined in variables.cc.
+
+Sat Apr 18 20:17:10 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (USE_GNU_INFO): Delete uses of this macro.
+
+Thu Apr 16 01:00:12 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dynamic-ld.cc: Only include dlfcn.h if HAVE_DLFCN_H.
+
+Wed Apr 15 01:03:05 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (Vlast_prompt_time): New global variable.
+	(octave_gets): Set it.
+	* ov-fcn.h (octave_function::time_checked): New virtual function
+	(octave_function::mark_fcn_file_up_to_date): Ditto.
+	* ov-usr-fcn.h (octave_user_function::time_checked): New function.
+	(octave_user_function::mark_fcn_file_up_to_date): Ditto.
+	(octave_user_function::t_checked): New data member.
+	* variables.cc (symbol_out_of_date): Only check file time stamp if
+	a prompt has been printed since the last time check.
+
+	* pt-plot.h, pt-plot.cc (subplot_axes): New class.
+	(subplot): Handle axes.
+	(Vgnuplot_command_axes): New static variable.
+	(gnuplot_command_axes): New function.
+	(symbols_of_pt_plot): DEFVAR gnuplot_command_axes.
+	* pt-walk.h (tree_walker::visit_subplot_axes): New virtual function.
+	* parse.y (plot_options): Handle axes.
+	* lex.l (plot_axes_token): New function.
+	(is_keyword): Use it.
+	(is_plot_keyword): Recognize "axes" and "axis".
+	* lex.h (class lexical_feedback): New field, in_plot_axes.
+	(lexical_feedback::init): Reset it.
+
+Tue Apr 14 23:32:27 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (parse_fcn_file): New arg, force_script.  Change callers.
+
+Fri Apr 10 11:01:27 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (type): Also print values of variables.
+
+Wed Apr  8 01:00:58 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (set_format): Set scale to 1.0 if all elements are
+	int or inf or nan.
+
+	* parse.y (Vwarn_future_time_stamp): New variable.
+	(symbols_of_parse): Add DEFVAR for it.
+	(warn_future_time_stamp): New function.
+	(frob_function_def): Maybe warn about files with future time stamps.
+
+Thu Apr  2 20:43:45 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-arg-list.cc (tree_argument_list::convert_to_const_vector): In
+	error messages, print element numbers starting with 1, not 0.
+
+Sat Mar 28 15:25:44 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (clean_up_for_exit): New function.
+	(clean_up_and_exit): Use it.
+	* sighandlers.cc (my_friendly_exit): Call it instead of
+	clean_up_and_exit, then do default action for signal.
+
+	* sighandlers.cc (octave_new_handler): Call my_friendly_exit with
+	signal set to SIGABRT if it is defined, or -1 otherwise.
+
+	* error.cc (verror): Fix thinko in attempt to skip `error: ' tag
+	when buffering error messages.
+	* pt-except.cc (tree_try_catch::eval): Reset buffer_error_messages
+	here if	just discarding unwind_protect frame.
+
+Wed Mar 18 12:35:18 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* xpow.cc (elem_xpow): For real-scalar .^ matrix case, result is
+	complex only if real-scalar is negative and matrix has some
+	non-integer values.
+
+Tue Mar 17 17:47:50 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-plot.cc (Vgnuplot_command_plot, Vgnuplot_command_replot,
+	Vgnuplot_command_splot, Vgnuplot_command_using,
+	Vgnuplot_command_with, Vgnuplot_command_title,
+	Vgnuplot_command_end): New static variables.
+	(symbols_of_pt_plot): DEFVAR them.
+	(gnuplot_command_plot, gnuplot_command_replot,
+	gnuplot_command_splot, gnuplot_command_using,
+	gnuplot_command_with, gnuplot_command_title,
+	gnuplot_command_end): New functions.
+	(open_plot_stream, send_to_plot_stream, tree_plot_command::eval,
+	subplot_using::print, subplot_style::print, subplot::print,
+	do_external_plotter_cd, Fgset, Fgshow): Use them instead of the
+	GPLOT_CMD_PLOT, GPLOT_CMD_REPLOT, GPLOT_CMD_SPLOT,
+	GPLOT_CMD_USING, GPLOT_CMD_WITH, GPLOT_CMD_TITLE, and
+	GPLOT_CMD_END macros.
+
+Fri Feb 27 12:25:27 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (additional_help_message): Fix www address.
+
+Tue Feb 24 00:42:59 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (simple_help): Put additional help message first.
+  	(additional_help_message): Add information about web site and
+	mailing list.
+
+Fri Feb 20 00:41:06 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-plot.cc (GPLOT_CMD_REPLOT): Clear before replot.
+
+	* Makefile.in: Better handling of lib flags for linking.
+
+Thu Feb 19 21:14:30 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-decl.cc (Vinitialize_global_values): New static variable.
+	(initialize_global_variables): New function.
+	(symbols_of_pt_decl): New function.
+	DEFVAR Vinitialize_global_values and initialize_global_variables.
+	(tree_global_command::do_init): If initialize_global_variables is
+	not true and the variable doesn't have an explicit initializer, don't
+	initialize it.  If we are giving it a default value, use the value
+	of the variable defualt_global_variable_value.
+	* octave.cc (maximum_braindamage): Set default_global_variable_value
+	and initialize_global_variables to Matlab-compatible values.
+
+Wed Feb 18 04:35:31 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/besselj.cc: Rename from bessel.cc.
+	* Makefile.in (DLD_XSRC): Likewise.
+
+	* syscalls.cc (Fvfork): Delete.
+
+	* oct-procbuf.cc: Just use fork.
+
+	* parse.y (feval): Provide version that takes function name
+	separate from other args.
+	* parse.h: Declare it.
+
+	* oct-procbuf.cc (octave_procbuf::open): Move declaration of
+	child_std_end outside of child scope and declare volatile.
+
+Mon Feb 16 15:04:28 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y: Include cstdio, for SEEK_SET.
+
+Thu Feb 12 22:07:00 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* system.c: New file.
+	* Makefile.in (SOURCES): Add it to the list.
+
+Fri Feb  6 01:23:18 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (octave_base_stream::file_number): Rename from fileno.
+	Change all uses.
+
+	* fsolve.cc (fsolve_option_table): Add missing & to function names.
+
+Thu Feb  5 02:27:18 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dirfns.cc (Fls): If first attempt at reading process output
+	fails, sleep once and try again.
+	* toplev.cc (run_command_and_return_output): Likewise.
+
+	* oct-procbuf.cc (octave_procbuf::open): Use vfork if it is available.
+
+	* syscalls.cc (Fvfork): New function.
+
+	* ov-bool-mat.cc: Only declare assign function if
+	CXX_NEW_FRIEND_TEMPLATE_DECL is not defined.
+
+	* ov-base.h, ov-bool-mat.h, ov-bool.h, ov-ch-mat.h, ov-complex.h,
+	ov-cx-mat.h, ov-range.h, ov-re-mat.h, ov-scalar.h: Handle default
+	args for *_value functions consistently.
+
+	* symtab.cc (maybe_list_cmp_fcn): Declare args as void*, not
+	void**, then use X_CAST.
+
+	* OPERATORS/op-s-cm.cc: Include mx-cm-s.h.
+
+	* defun-int.h: Include ov-builtin.h, ov-mapper.h, and symtab.h.
+	(install_builtin_mapper, install_builtin_function,
+	install_builtin_variable) Use specific types rather than void * in
+	declaration.
+	* defun.cc (install_builtin_mapper, install_builtin_function,
+	install_builtin_variable): Likewise.  Eliminate casts.
+
+	* load-save.cc (read_binary_data, read_mat_file_header,
+	save_binary_data): Use X_CAST, not static_cast.
+	* unwind-prot.h (unwind_protect::save_ptr): Likewise.
+	* Map.cc (goodCHptr, index_to_CHptr, CHptr_to_index): Likewise.
+	* dynamic-ld.cc (octave_dlopen_dynamic_loder::resolve_reference):
+	Likewise.
+
+	* pt-mat.cc (tm_const::operator bool ()):
+	(tm_row_const::operator bool ()): Likewise.
+	* oct-stream.cc (printf_value_cache::operator bool ()): Likewise.
+	(scanf_format_list::operator bool ()): Likewise.
+	(printf_format_list::operator bool ()): Likewise.
+	(octave_stream::operator bool ()): Likewise.
+
+Wed Feb  4 13:08:29 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/minmax.cc: Include cmath, not oct-math.h.
+
+	* syscalls.cc (Fdup2): Convert stream to actual system file id.
+
+	* oct-stream.cc (octave_base_stream::fileno, octave_stream::fileno):
+	New functions.
+
+Tue Feb  3 00:24:44 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defaults.cc (exec_path): Append Vbin_dir to std_path.
+
+	* octave.cc (initialize_pathsearch): Set TEXMFDBS, not TEXMF.
+	Look for OCTAVE_DB_PATH in environment.
+	Simplify using Vdata_dir and Vlibexec_dir.
+
+	* defaults.h.in (Vdata_dir, Vlibexecdir): Declare new vars.
+	defaults.cc: Define them.
+	(set_default_data_dir, set_default_libexecdir): New functions.
+	(install_defaults): Call them.
+
+	* defaults.h.in (OCTAVE_LIBEXECDIR): Define.
+
+Mon Feb  2 02:43:16 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install, uninstall): Use $(octlibdir), not $(libdir).
+	Use mk-libdir-link.
+
+	* defaults.h.in (OCTAVE_OCTLIBDIR): Substitute value.
+	(Vlib_dir): Delete declaration.
+	* defaults.cc (Vlib_dir): Delete.
+	(set_default_lib_dir): Delete.
+	(install_defaults): Don't call set_default_lib_dir.
+	(set_default_info_prog): If oct_info_prog is empty, set default to
+	"info" -- we expect it to be somewhere in the user's path.
+
+	* defun.h (DEFCONST, DEFCONSTX): Eliminate inst_as_fcn and chg_fcn
+	args.  Always pass true for inst_as_fcn and 0 for chg_fcn to
+	DEFVAR when creating built-in values like `e' or `stderr' that can
+	be redefined.  Change all uses.
+
+	* help.cc (Ftype): Handle script files too.
+	(Fwhich): Likewise.
+
+Sat Jan 31 00:00:26 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-ch-mat.cc (octave_char_matrix::is_true): Make it work.
+	* ov-str-mat.h, ov-str-mat.cc (octave_char_matrix_str::is_true):
+	Delete.
+
+	* load-save.cc (read_ascii_data): Allow strings of length 0.
+	If we don't find data on the first call, fail with error message.
+	(do_load): Pass count of items read to read_ascii_data.
+	Allow `load foo xyz' to work when foo contains only numbers.
+
+Fri Jan 30 23:46:42 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-str-mat.h (octave_char_matrix_str::all): Delete.
+	(octave_char_matrix_str::any): Delete.
+	* ov-ch-mat.h (octave_char_matrix::all, octave_char_matrix::any):
+	Call charMatrix::all, charMatrix::any.
+
+Thu Jan 29 16:25:46 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (read_mat_binary_data): Handle third digit of MOPT
+	as flag indicating row or column major ordering.
+
+Wed Jan 28 00:18:17 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/dassl.cc (lsode_option_table):
+	Add missing & to function names.
+	* DLD-FUNCTIONS/lsode.cc (lsode_option_table): Likewise.
+	* DLD-FUNCTIONS/quad.cc (quad_option_table): Likewise.
+
+	* Makefile.in (oct-gperf.h): Add -G option to gperf.
+
+	* load-save.cc (get_save_type): Add `UL' and `L' suffixes to large
+	constant values.  For LS_INT, use <= and >= for comparison.
+
+Mon Jan 26 13:17:59 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-usr-fcn.cc (Vmax_recursion_depth): New static variable.
+	(max_recursion_depth): New fucnction
+	(symbols_of_ov_usr_fcn): DEFVAR max_recursion_depth.
+	(octave_user_function::do_index_op): Check Vmax_recursion_depth.
+
+Thu Jan 22 13:45:26 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dynamic-ld.cc (make_dynamic_loader): Fix typo.
+
+Tue Jan 20 17:02:19 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (Fexist): If local symbol is undefined, check
+	global table.
+
+	* pr-output.cc (pr_max_internal): Initial value for result is
+	-DBL_MAX, not DBL_MIN.
+
+Thu Jan  8 11:54:33 1998  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* xpow.cc (elem_xpow): If second arg of pow is complex, make sure
+	first arg is also complex.
+
+	* symtab.cc (symbol_table::rename): Properly insert new item at
+	the front of the list to avoid losing the rest of the items.
+
+Thu Dec 11 23:30:03 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (Fclear): Increment index to skip -x arg.
+
+Tue Dec  9 02:45:35 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (INCLUDES): Don't forget Pix.h.
+
+	* BaseSLList.cc: Don't include nonstandard libg++ header files.
+
+Sun Nov 30 14:58:56 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc: Include cmath, not oct-math.
+	* sysdep.cc: Likewise.
+
+	* DLD-FUNCTIONS/bessel.cc: New file.
+	* Makefile.in (DLD_XSRC): Add it to the list.
+
+Thu Nov 27 23:28:59 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (handle_string): Constructor for string class takes
+	(size_t, char) args, not (char, size_t).
+
+Wed Nov 26 00:39:34 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (OCTAVE_LIBS): Include $(SPECIAL_MATH_LIB) just
+	ahead of -lcruft.
+
+Thu Nov 20 15:16:22 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (maximum_braindamage): Bind implicit_num_to_str_ok to 1.
+	* pt-mat.cc (Vimplicit_num_to_str_ok): New static variable.
+	(implicit_num_to_str_ok): New function.
+	(symbols_of_pt_mat): DEFVAR implicit_num_to_str_ok.
+	(tm_row_const::some_str): New data member.
+	(tm_row_const::some_strings_p): New function.
+	(tm_row_const::init): Set some_str.
+	(tm_const::some_str): New data member.
+	(tm_const::some_strings_p): New function.
+	(tm_const::init): Set some_str.
+	(tree_matrix::eval): If Vimplicit_num_to_str_ok is true and some
+	of the elements are strings, force a string conversion before
+	returning.
+
+	* parse.y (fold, finish_colon_expression, finish_matrix):
+	If an error occurs, return the original expression.
+	Use unwind_protect to restore error_state.
+
+	* ov-ch-mat.h (octave_char_matrix::convert_to_str): Result is
+	char_matrix_str, not just char_matrix.
+
+Wed Nov 19 02:05:40 1997  Mumit Khan  <khan@dhaka.xraylith.wisc.edu>
+
+	* DLD-FUNCTIONS/filter.cc: Don't include extern template decls if
+	CXX_NEW_FRIEND_TEMPLATE_DECL is defined.
+	* ov-cx-mat.cc: Likewise.
+	* ov-re-mat.cc: Likewise.
+	* ov-str-mat.cc: Likewise.
+
+	* ov-cx-mat.h (octave_complex_matrix::decrement,
+	octave_complex_matrix):	Use explicit Complex constructor.
+
+Wed Nov 19 00:08:13 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-decl.cc (tree_global_command::do_init): Initialize global
+	values to `[]'.  Only perform explicit initialization once.
+
+Tue Nov 18 04:27:55 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (Vfixed_point_format): New variable.
+	(fixed_point_format): New fucntion.
+	(symbols_of_pr_output): Add DEFVAR for fixed_point_format.
+	(set_real_matrix_format): Handle fixed point format
+	(set_complex_matrix_format): Handle fixed point format
+	(set_format): New arg, scale in Matrix, ComplexMatrix, Range versions.
+	(pr_scale_header): New function.
+	(octave_print_internal): Handle fixed point format in Matrix,
+	ComplexMatrix, and Range versions.
+	* octave.cc (maximum_braindamage): Set fixed_point_format to 1.0.
+
+	* utils.cc (do_string_escapes): Move here, from lex.l.
+	Arg is now const string& instead of char*.
+	Return new string object instead of modifying arg in place.
+	(Fdo_string_escapes): New function.
+	* lex.l (handle_string): Use new version of do_string_escapes.
+
+	* lex.l (Vbackslash_escapes): Delete.
+	(backslash_escapes): Delete.
+	(do_string_escapes): Undo previous change.
+	(eat_whitespace, eat_continuation): Undo previous change.
+	(handle_string): Undo previous change.
+	(symbols_of_lex): Undo previous change.
+	* octave.cc (maximum_braindamage): Undo previous change.
+
+Fri Nov 14 01:53:13 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (eval_string (const string&, bool, int&, int)): No
+	longer static.
+	* parse.h: Provide declaration.
+	* input.cc (get_user_input (const octave_value_list&, bool, int)):
+	New arg, nargout.  Pass it to eval_string.
+	(keyboard): Pass nargout = 0 to get_user_input.
+	(input): Pass nargout to get_user_input.
+
+	* input.cc (get_user_input (const octave_value_list&, bool)):
+	Return octave_value_list() if user enters `quit', `exit', or `return'.
+	If debugging, let eval_string handle the printing chores and
+	reset error_state before asking for more input.
+
+	* input.cc (Fkeyboard): Unconditionally turn on history here.
+
+	* lex.l (have_continuation, have_ellipsis_continuation): Declare
+	arg as bool, not int.  Change callers.
+
+	* lex.l (Vbackslash_escapes): New static variable.
+	(backslash_escapes): New function.
+	(do_string_escapes): Return immediately if ! Vbackslash_escapes.
+	(eat_whitespace, eat_continuation): Only call have_continuation if
+	Vbackslash_escapes.
+	(handle_string): Backslash is only special if Vbackslash_escapes.
+	(symbols_of_lex): Add DEFVAR for backslash_escapes.
+	* octave.cc (maximum_braindamage): Set backslash_escapes to 0.
+
+Thu Nov 13 16:20:40 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (Fexist): Also return 2 if NAME is a regular file
+	somewhere in the LOADPATH.
+
+	* data.cc (sumsq): Fix doc string.
+
+	* parse.y (Fsource): Call parse_fcn_file, not parse_and_execute.
+
+Tue Oct  7 16:51:01 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defun-int.h (DEFINE_FUN_INSTALLER_FUN): Set installed to true
+	after installing the function.
+
+Thu Sep 25 10:17:26 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/filter.cc (Ffilter): Return second output value
+	even when called with only 3 arguments.
+
+Mon Sep 22 16:44:27 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/rand.cc (do_rand): Print error if first of two
+	args is a string but doesn't match "seed".
+	(Frand, Frandn): Fix doc string.
+
+Mon Aug 25 10:42:07 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (get_user_input): Return an empty string if the user
+	just types RET.
+
+Thu Jul 31 22:59:04 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l <TEXT_FCN>: Ensure that we handle words that begin with
+	single or double quotes as strings.
+
+Thu Jul 17 13:06:48 1997  Klaus Gebhardt  <gebhardt@crunch.ikp.physik.th-darmstadt.de>
+
+	* DLD-FUNCTIONS/rand.cc (Frand): Use F77_XFCN to call getsd,
+	setsd, setall, setcgn, dgenunf, and dgennor since they can call
+	XSTOPX.
+
+Mon Jul 14 12:54:23 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dynamic-ld.cc (octave_dynamic_loader::load_fcn_from_dot_oct_file):
+	If first attempt to load function fails, prepend and underscore
+	and try again.
+
+	* Makefile.in (install-inc): If defaults.h, oct-conf.h, or
+	oct-gperf.h don't exist in the current directory, look in $(srcdir).
+
+Mon Jul  7 21:14:07 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/qr.cc (Fqr): Correctly handle nargout == 0.
+
+Wed Jul  2 16:47:09 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* matherr.c: New file.  Move matherr function here.
+	* sysdep.cc: From here.
+	* Makefile.in (DIST_SRC): Add matherr.c to the list.
+
+	* error.cc (handle_message): Avoid bug in g++ snapshot.
+
+Thu Jun 26 22:04:09 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (file_in_path): Add default load path to PATH arg if
+	it begins or ends with a colon.
+
+Wed Jun 25 13:31:06 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-lvalue.h (octave_lvalue::struct_elt_ref): Ensure val is unique.
+
+Fri Jun 20 12:33:35 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (cmd_death_handler): New function.
+	(run_command_and_return_output): Insert pid of command in
+	octave_child_list along with pointer to cmd_death_handler so we
+	can get the exit status without having to block SIGCHLD.
+	(cleanup_iprocstream): Remove pid of command from octave_child_list.
+
+Sun Jun 15 16:11:13 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* OPERATORS/op-cs-s.cc (ldiv): Doh, v1 is complex, v2 is real.
+
+	* Makefile.in (DISTFILES): Add mkops to the list.
+	(dist): Correctly link files in DLD-FUNCTIONS, OPERATORS, and
+	TEMPLATE-INST subdirectories.
+
+Fri Jun  6 04:30:57 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/npsol.cc, DLD-FUNCTIONS/qpsol.cc,
+	DLD-FUNCTIONS/fsqp.cc: Delete.
+	* Makefile.in (DLD_XSRC): Remove them from the list.
+
+	* utils.cc (search_path_for_file): New arg, do_tilde_expansion.
+	If TRUE, perform tilde expansion on path before searching.
+	(file_in_path): Call search_path_for_file with do_tilde_expansion
+	set to false, since we've already performed tilde expansion on the
+	load path.
+
+	* defaults.cc (loadpath): Perform tilde expansion here.
+
+Thu Jun  5 01:42:39 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in: Make building of static library optional.
+	(liboctave.$(SHLEXT_VER)): Add $(SONAME_FLAGS) to command.
+
+	* dynamic-ld.cc (octave_shl_load_dynamic_loader::resolve_reference):
+	Call shl_findsym with type set to TYPE_UNDEFINED.
+
+	* Makefile.in (stamp-picdir): Delete.
+	(pic): New target.  Don't worry so much about creating pic
+	directory only when it is really needed.
+	(stamp-interp): Delete.
+	(libraries): New target.  Depend on shared library directly.
+
+Wed Jun  4 00:09:42 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (main): Call dir_path::set_program_name here.
+
+Tue Jun  3 16:47:34 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (symbol_out_of_date): Make it work again.
+
+	* parse.y (parse_and_execute): Move here from toplev.cc
+	(default_eval_print_flag): Likewise.
+	(safe_fclose): Likewise.
+	(eval_string): Likewise.
+	(Fsource): Likewise.
+	(Ffeval): Likewise.
+	(feval): Likewise.
+	(Feval): Likewise.
+	(symbols_of_parse): Define default_eval_print_flag here instead of
+	in varaibles.cc.
+	(looks_like_octave_copyright): Move here from variables.cc
+	(gobble_leading_whitespace): Likeiwse.
+	(is_function_file): Likewise.
+	(restore_input_stream): Likewise.
+	(parse_fcn_file): Likewise.
+	(load_fcn_from_file): Likewise.
+	(get_help_from_file): Likewise.
+
+	* toplev.cc (syms_of_toplev): Define argv, program_name, and
+	program_invocation_name here instead of in variables.cc.
+
+	* parse.h (line_editing): Move here from toplev.h.  Now bool, not int.
+	(reading_startup_message_printed) Likewise.
+	(input_from_startup_file): Likewise.
+	(input_from_command_line_file): Likewise.
+
+	* load-save.cc: Use bool instead of int where appropriate.
+
+	* input.h (enum echo_state): Move here from variables.h.
+	(Vecho_executing_commands): Likewise.  Now bool, not int.
+	* input.cc (echo_executing_commands): Move here from variables.cc.
+	(symbols_of_input): Define echo_executing_commands here instead of
+	in variables.cc.
+
+	* octave.cc (program_invocation_name): Don't define.
+	(intern_argv): Don't set program_invocation_name here.
+	(main): Call octave_env::set_program_name here, not in intern_argv.
+
+	* toplev.cc (quitting_gracefully): Move here from octave.h and
+	make static bool instead of extern int.
+
+	* error.cc (bind_global_error_variable, clear_global_error_variable):
+	Move here from variables.cc.
+	(symbols_of_error): Define error_text here instead of in variables.cc.
+
+	* pager.cc (write_to_diary_file): Now bool, not int.
+	(really_flush_to_pager): Likewise.
+ 	(flushing_to_pager): Likewise.
+	* sighandlers.h (can_interrupt): Likewise.
+	* error.h (buffer_error_messages): Likewise.
+	* oct-hist.h (input_from_tmp_history_file, Vsaving_history): Likewise.
+	* input.h (forced_interactive): Likewise.
+	(get_input_from_eval_string): Likeiwse.
+	(reading_script_file): Likeiwse.
+	(reading_fcn_file): Likeiwse.
+	(interactive): Likewise.
+
+	* unwind-prot.cc (saved_variable::saved_variable (bool *, bool)):
+	Set type_tag to boolean, not int.
+
+Mon Jun  2 00:40:10 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.h (Octave_builtin_fcn): Delete typedef.
+
+	* help.cc (make_name_list): Move here from variables.cc.
+	(keyword_help, names): Now static.
+	(struct help_list): Move declaration here from help.h.
+
+	* oct-hist.cc (Vhistory_file, Vhistory_size, Vsaving_history):
+	Move here from variables.cc.
+	(symbols_of_oct_hist): New function.
+
+	* version.h: Protect against multiple inclusion.
+
+	* defun.cc (check_version): New function.
+	* defun-int.h (DEFINE_FUN_INSTALLER_FUN): Use it.
+
+	* help.h, help.cc (additional_help_message): Now extern.
+	(operator_help): Now static.
+
+	* defun.cc (print_usage): Move here from help.cc
+	* DLD-FUNCTIONS/*.cc, data.cc, dirfns.cc, file-io.cc, input.cc,
+	load-save.cc, octave.cc, ov-list.cc, ov-typeinfo.cc,
+	ov-usr-fcn.cc, pager.cc, pr-output.cc, pt-plot.cc, strfns.cc,
+	syscalls.cc, sysdep.cc, utils.cc, toplev.cc:
+	Don't include help.h.
+
+	* TEMPLATE-INST/Array-sym.cc: New file.
+
+	* load-save.cc (do_load): Don't use ostream::form.
+	* pr-output.cc: Likewise, at least where it is easy to do so.
+	* oct-stream.cc: Ditto.
+
+	* symtab.h (symbol_record::symbol_def::rows): New function.
+	(symbol_record::symbol_def::columns): Ditto.
+	(symbol_record::symbol_def::type_name): Ditto.
+	(symbol_record::rows): Ditto
+	(symbol_record::columns): Ditto
+	(symbol_record::type_name): Ditto
+
+	* symtab.h, symtab.cc (symbol_record::hides_fcn): New function.
+	(symbol_record::hides_builtin): Ditto.
+	(symbol_record::print_symbol_info_line): Ditto.
+	(symbol_table::long_list): Delete.
+	(symbol_table::symbol_list): New function.
+	(symbol_table::maybe_list): Delete argc arg.
+	(symbol_table::name_list): Rename from symbol_table::list.
+	Change all callers.
+
+	* symtab.h, symtab.cc (class symbol_record_info): Delete.
+
+	* symtab.cc (matches_patterns): Use vector form of glob_match.
+
+Sun Jun  1 14:04:26 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-check.h, pt-check.cc: New files, for semantic checking of
+	parse trees.
+
+	* symtab.h (class symbol_def): Now nested in symbol_record class.
+	(enum TYPE): Move from symbol_def to symbol record class.  Change
+	all uses.
+
+	* symtab.h, symtab.cc (symbol_table::maybe_list): New function,
+	from variables.cc.  Change all uses.
+
+	* pt-idx.h (tree_identifier::lvalue_ok): New function.
+	* pt-id.h (tree_index_expression::lvalue_ok): Likewise.
+	* pt-indir.h (tree_indirect_ref::lvalue_ok): Likewise.
+
+	* pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_oct_obj): Delete.
+	* pt-walk.h (tree_walker::visit_oct_obj): Delete declaration.
+
+	* lex.h (class lexical_feedback): Delete maybe_screwed_again.
+	* lex.l (lexical_feedback::init): Don't set it.
+
+Fri May 30 16:07:22 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* mappers.cc: Include <cfloat> here.
+
+Tue May 27 10:08:43 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (eval_string): Don't index tmp if it is empty.
+
+Sat May 24 00:18:41 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (valid_identifier): Move here and make static.
+	* symtab.h, symtab.cc (valid_identifier): Delete declaration and
+	definition.
+
+Fri May 23 22:54:28 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* symtab.h (symbol_def::symbol_def): Use initializer list instead
+	of calling init_state.
+	(symbol_def::init_state): Delete.
+
+	* symtab.cc (symbol_table::print_stats): New function.
+	* variables.cc (F__dump_symtab_info__): New function.
+
+	* symtab.h, symtab.cc (symbol_table::hash): Return masked value.
+	(symbol_table::table_size): New data member.
+	(symbol_table::symbol_table): Set size of table in constructor.
+	(HASH_TABLE_SIZE): Replace uses with table_size.
+	(HASH_MASK): Delete.
+	* variables.cc (initialize_symbol_tables): Set top-level and
+	global symbol table sizes here.
+
+Thu May 22 13:32:55 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dynamic-ld.cc (octave_shl_load_dynamic_loader::resolve_reference):
+	Call shl_findsym with type set to TYPE_PROCEDURE.  Pass the
+	address of the pointer we want to define.
+
+Wed May 21 16:30:25 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/time.cc (extract_tm): Avoid memory leak in dealing
+	with time zone.
+
+	* Makefile.in (install-in): Use new mk-includedir-link macro.
+	(install-lib): Install in $octlibdir.  Use new mk-libdir-link macro.
+
+Tue May 20 01:24:11 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-list.cc (Flist): Rename from Fmake_list.
+
+Mon May 19 14:45:58 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (maximum_braindamage): Set default_eval_print_flag to 0.
+
+Sat May 17 16:32:23 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defaults.cc (set_default_editor): Default is now Emacs, not vi.
+
+Fri May 16 00:07:11 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-idx.cc (tree_index_expression::name): New function.
+
+	* pt.cc	(tree::str_print_code): New file, new convenience function.
+	* pt-arg-list.cc (tree_argument_list::get_arg_names): Use it.
+	* pt-assign.cc (tree_simple_assignment::rvalue): Likewise.
+	(tree_multi_assignment::rvalue): Likewise.
+
+	* pt-colon.h (tree_colon_expression::save_base): New data memmber.
+	(tree_colon_expression::preserve_base): New function.
+	* parse.y (finish_colon_expression): When converting to a simple
+	expression, be sure to delete the original colon expression but
+	not the base value.
+
+	* pt-mat.cc (tree_matrix::~tree_matrix): Actually do something.
+
+	* pt-all.h: New file.
+	* parse.y, lex.l, pt-pr-code.cc: Use it.
+
+	* pt.h: Rename from pt-base.h.
+
+	* All parse tree classes: Add private copy constructors and
+	assignment operators to prevent copying.
+
+	* pt-base.cc: Delete.
+
+	* unwind-prot.h, unwind-prot.cc: Make a bit more object-oriented.
+	Change all uses of unwind_protect stuff to match.
+
+	* pt-jump.h, pt-jump.cc (breaking, continuing, returning):
+	Make these flags static members of the corresponding class.
+	Change all uses.
+
+	* pt-assign.cc (tree_simple_assignment_expression::eval,
+	tree_multi_assignment_expression::eval): Clear lvalue index here.
+
+	* oct-lvalue.cc (octave_lvalue::assign): Don't clear index here.
+	* oct-lvalue.h (octave_lvalue::clear_index): New function.
+	(octave_lvalue::set_index): Rename from octave_lvalue::index.
+	Change all callers.
+
+Thu May 15 11:48:10 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-select.h, pt-select.cc (class tree_if_command_list,
+	class tree_if_clause, class tree_switch_case_list,
+	class tree_switch_case): Move here from pt-misc.h, pt-misc.cc.
+	* pt-decl.h, pt-decl.cc (class tree_decl_init_list,
+	class tree_decl_elt): Move here from pt-mist.h, pt-misc.cc
+
+	* pt-arg-list.h, pt-stmt.h: New files, extracted from pt-misc.h.
+	* pt-arg-list.cc, pt-stmt.cc: New files, extracted from pt-misc.cc.
+
+	* pt-decl.h, pt-except.h, pt-jump.h, pt-loop.h, pt-select.h:
+	New files, extraced from pt-cmd.h.
+	* pt-decl.cc, pt-except.cc, pt-jump.cc, pt-loop.cc, pt-select.cc:
+	New files, extraced from pt-cmd.cc.
+
+	* pt-unop.h, pt-binop.h, pt-colon.h, pt-idx.h, pt-assign.h:
+	New files, extracted from pt-exp.h
+	* pt-unop.cc, pt-binop.cc, pt-colon.cc, pt-idx.cc, pt-assign.cc:
+	New files, extracted from pt-exp.cc
+	* pt-exp.h, pt-exp.cc: Rename from pt-exp-base.h, pt-exp-base.cc.
+
+	* oct-lvalue.h: Rename from oct-var-ref.h.  Rename class from
+	octave_variable_reference to octave_lvalue.  Change all uses.
+	* oct-lvalue.cc: Rename from oct-var-ref.cc.
+
+	* variables.cc (bind_ans): Only bind ans and print result if value
+	is defined.
+
+	* defun.cc: New file.  Move functions for installing objects in
+	the symbol table here from variables.cc.
+
+	* oct-obj.h, oct-obj.cc: Add custom allocator, fwiw.
+
+	* toplev.cc (main_loop): Correctly increment command number.
+
+	* TEMPLATE-INST/SLList-tm.cc: Don't instantiate lists of pointers
+	to tree_matrix_row objects.
+	* TEMPLATE-INST/SLList-misc.cc: Do instantiate lists of pointers
+	to tree_argument_list objects.
+
+	* DLD-FUNCTIONS/dassl.cc: Update to use new octave_function
+	interface to user-supplied functions.
+	* DLD-FUNCTIONS/fsolve.cc: Likewise.
+	* DLD-FUNCTIONS/lsode.cc: Likewise.
+	* DLD-FUNCTIONS/npsol.cc: Likewise.
+	* DLD-FUNCTIONS/quad.cc: Likewise.
+
+	* dynamic-ld.h, dynamic-ld.cc (builtin_fcn_installer typedef):
+	Rename from builtin_fcn.
+	(octave_dynamic_loader::load_fcn_from_dot_oct_file):
+	Simplify by using new installer function defined by DEFUN_DLD.
+
+	* defun-dld.h (DEFUN_DLD): Use DEFINE_FUN_INSTALLER_FUN instead of
+	DEFINE_FUN_STRUCT_FUN.
+	* defun.h (DEFUN_MAPPER): Use DEFUN_MAPPER_INTERNAL.
+	* defun-int.h (DEFVAR_INTERNAL): Rename from DEFVAR_INT and move
+	here from defun.h.  Change all uses.
+	(DEFUN_MAPPER_INTERNAL): New macro.
+	(DEFINE_FUN_INSTALLER_FUN): New macro to define function that the
+	dynamic loader calls to do all the work of installing a new function.
+	(DEFINE_FUN_STRUCT_FUN): Delete.
+
+	* parse.y: Rewrite to handle more general expressions.
+	* lex.l: Corresponding changes.
+
+	* pt-walk.h, pt-pr-code.h, pt-pr-code.cc: Cope with new parse tree
+	object structure.
+
+	* pt-misc.cc (class tree_for_command): Split into
+	tree_simple_for_command and tree_complex_for_command classes.
+
+	* pt-misc.h, pt-misc.cc (tree_statement::eval): Handle identifier
+	lookup and printing and binding ans here.
+	(tree_statement_list::eval): Simplify.
+	(tree_argument_list::all_elements_are_constant): New function.
+	(class tree_decl_elt): Now contains id and expr, not an assignment
+	expression.
+
+	* pt-exp-base.h pt-exp.h pt-id.h pt-indir.h pt-mat.h pt-const.h,
+	pt-exp-base.cc pt-exp.cc pt-id.cc pt-indir.cc pt-mat.cc pt-const.cc:
+	Replace eval functions with rvalue and lvalue functions.
+	Change all uses.
+	(lvalue_ok, rvalue_ok): New functions, for future compile-time
+	semantic checks.
+
+	* oct-var-ref.h (is_defined, is_map): New functions.
+
+	* pt-exp.h (class tree_oct_obj): Delete.
+
+	* variables.cc (extract_function, is_valid_function): Return
+	pointer to octave_function, not octave_symbol.
+	(link_to_global_variable): Rewrite.  Handle errors in
+	symbol_record::mark_as_linked_to_global.
+
+	* symtab.h, symtab.cc (class symbol_def, class symbol_record):
+	Symbols are now stored as octave_value objects only.
+
+	* ov.cc (install_types): Register function types here.
+	* ov-fcn.h, ov-fcn.cc, ov-builtin.h, ov-builtin.cc, ov-mapper.h,
+	ov-mapper.cc, ov-usr-fcn.h, ov-usr-fcn.cc: New classes for
+	functions as values.
+	* ov.h (class octave_value): Don't derive from octave_symbol.
+	* oct-fcn.h, oct-fcn.cc, oct-builtin.h, oct-builtin.cc,
+	oct-mapper.h, oct-mapper.cc, oct-usr-fcn.h, oct-usr-fcn.cc,
+	oct-sym.h, oct-sym.cc: Delete.
+
+Sun May 11 17:51:22 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (Ftype): Make it work again for functions.
+
+	* pt-pr-code.cc (tree_print_code::print_parens): New function.
+	Use it in other tree_print_code functions to handle printing all
+	the parens that we found when parsing the expression, not just one
+	pair.
+	* pt-exp-base.h (tree_expression::paren_count): Rename from
+	is_in_parens.
+	* parse.y (maybe_warn_assign_as_truth_value): Use new name.
+
+	* parse.y (constant): New non-terminal.
+	(simple_expr1): Use it.
+
+	* parse.y (make_unary_op): Delete.
+	(simple_expr1): Where appropriate, use make_prefix_op and
+	make_postfix_op instead of make_unary_op.  Allow increment and
+	decrement ops to work on expressions, not just identifiers.
+	(make_prefix_op, make_postfix_op): Arg is expression, not identifier.
+	Handle old unary_op cases too.
+	(fold (tree_unary_expression *)): Delete.
+	* pt-exp.h, pt-exp.cc (tree_prefix_expression::eval): Handle unary
+	minus and not here.
+	(tree_postfix_expression::eval): Likewise, for transpose and hermitian.
+	(class tree_prefix_expression, class tree_postfix_expression):
+	Derive from tree_unary_expression.  Delete identifier member.
+	Delete ident member function.
+	(tree_unary_expression): Don't handle evaluation here.
+	* pt-exp-base.h (mark_in_parens): No longer virtual. Return this.
+	(reference): New virtual function.
+	(class tree_expression): Don't handle expression type here.
+	* pt-mvr-base.h (tree_multi_val_ret::tree_multi_val_ret): Likewise.
+	* pt-mvr.h, pt-mvr.cc (tree_multi_assignment_expression): Likewise.
+	* pt-walk.h (visit_unary_expression): Delete declaration.
+	* pt-pr-code.h, pt-pr-code.cc (visit_unary_expression): Delete.
+	(visit_prefix_expression): Use operand(), not ident().
+	new, visit_postfix_expression):
+	* pt-id.h, pt-id.cc (increment, decrement): Delete.
+
+	* pt-misc.cc (tree_parameter_list::define_from_arg_vector): Get a
+	reference to each element and use the assignment operator instead
+	of tree_identifier::define.
+	* pt-id.h, pt-id.cc (tree_identifier::define): Delete versions
+	that take octave_value and octave_symbol args.
+
+Sat May 10 23:32:13 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-indir.h, pt-indir.cc (tree_indirect_reference::value): Delete.
+
+	* oct-var-ref.cc (octave_variable_ref::assign): Clear idx after
+	assignment.
+
+	* octave_value classes: Add is_constant, is_function, and
+	function_value functions.
+
+	* ov.h, ov.cc (assign): Return void, not reference to octave_value.
+	(do_index_op): Rename, from index.
+	(do_struct_elt_index_op): Rename, from struct_elt_val.
+	Add version that accepts index arg.
+	Change all uses and derived classes to match.
+	* pt-const.h (index): Delete.
+	* oct-var-ref.h, oct-var-ref.cc (value): Handle indexed structure
+	ops here too.
+
+Fri May  9 07:40:59 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-exp.cc (print_rhs_assign_val, symbols_of_pt_exp): New functions.
+	(Vprint_rhs_assign_val): New static variable.
+	(tree_simple_assignment_expression::eval): Use it to optionally
+	allow the rhs (which is the result) of an assignment to be printed
+	instead of the left.
+
+	* pt-exp.cc (tree_simple_assignment_expression::eval): Use new
+	octave_variabl_reference::index function to handle indexing.
+
+	* oct-var-ref.h, oct-var-ref.cc (idx): New data member.
+	(octave_variable_reference::index): Set it.
+	(octave_variable_reference::assign): Handle indexing here.
+	Delete version of this function htat takes index arg.
+
+	* variables.h (struct builtin_varaible): Delete.
+	* variables.cc (install_builtin_variable): Take all elts of
+	builtin_variable struct directly.
+	* defun.h (DEFVAR_INT): Call install_builtin_variable directly.
+
+	* symtab.h, defun-int.h: Don't include variables.h.
+
+	* symtab.h (symbol_record::sv_function): Move typedef here.
+	* variables.h: From here.
+
+	* oct-var-ref.h, oct-var-ref.cc: New files for
+	octave_variable_reference class, extracted from variables.h and
+	variables.cc
+	* Makefile.in: Add them to the appropriate lists.
+
+	* oct-obj.h (octave_value_list::empty): New function.
+
+	* variables.h (class octave_variable_reference):  Rewrite to work
+	as a proxy class to store a pointer to octave_value and,
+	optionally, the change function to call and the name of the
+	structure element we are referencing.  Handle assignment,
+	increment, decrement, and value operations.
+
+Thu May  8 23:40:59 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-re-mat.h, ov-re-mat.cc (struct_elt_ref, struct_elt_val,
+	assign_struct_elt): Provide functions for looking up and setting
+	matrix dimensions.
+
+	* symtab.cc (symbol_record::define): Don't call sv_fcn here.
+	Don't save and restore value here.
+	(symbol_record::define_builtin_var): Do call sv_fcn here.
+	(symbol_record::variable_reference): Don't make value unique here.
+	Return pointer to sv_fcn in octave_variable_reference.
+
+	* pt-misc.cc (tree_parameter_list::initialize_undefined_elements):
+	Simplify.
+
+	* pt-id.h, pt-id.cc (tree_identifier::reference): Return
+	octave_variable_reference, not octave_value&.
+	* symtab.h, symtab.cc (symbol_record::variable_reference): Ditto.
+	* pt-indir.h, pt-indir.cc (tree_indirect_ref::reference): Ditto.
+	Simplify too.
+
+	* pt-const.h (tree_constant::reference, tree_constant::value,
+	tree_constant::assign):  Delete unnecessary functions.
+	* pt-id.h, pt-id.cc (tree_identifier::assign): Ditto.
+
+	* pt-cmd.cc (tree_for_command::do_for_loop_once): Simplify.
+
+	* ov.h, ov.cc, ov-base.h, ov-base.cc, ov-struct.h, ov-struct.cc
+	(struct_elt_ref): New arg, octave_value* parent.
+	Allow deferred lookup.  Return octave_variable_reference, not
+	octave_value&.
+
+	* ov.h, ov.cc, ov-re-mat.h, ov-re-mat.cc (assign_struct_elt):
+	New virtual functions.
+
+	* ov.h, ov.cc (Vresize_on_range_error): Now static.
+
+	* pt-mvr.cc (tree_index_expression::eval): Delete redundant check
+	of error_state.
+
+Wed May  7 21:17:00 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (generate_completion): Rename from command_generator.
+	Use string objects instead of char*.
+	(generate_possible_completions): Let qsort also make matches unique.
+	(initialize_command_input): Register generate_completion with the
+	command_editor class.
+	(completion_matches): Simplify using generate_completion.
+
+	* pt-pr-code.cc (tree_print_code::visit_constant): For val, call
+	print_raw, not print.
+
+	* oct-usr-fcn.h (octave_user_function::argn_sr): New data member.
+	(octave_user_function::install_automatic_vars): Rename from
+	install_nargin_and_nargout.
+	(octave_user_function::bind_automatic_vars): Rename from
+	bind_nargin_and_nargout.
+	* oct-usr-fcn.cc (octave_user_function::eval): Extract arg names
+	from args vector and bind them to argn.
+	* oct-obj.h (octave_value_list::names): New data member.
+	* oct-obj.cc (octave_value_list::stash_name_tags): New function.
+	(octave_value_list::name_tags): Ditto.
+	* pt-const.h, pt-const.cc (tree_constant::print_raw): New function.
+	* pt-misc.h, pt-misc.cc (tree_argument_list::get_arg_names):
+	New function.
+	* pt-mvr.h, pt-mvr.cc (class index_expression): Cache arg names.
+	* toplev.cc (feval): Now static.  Handle arg names.
+
+	* mkops: Cope with moving files defining operators to OPERATORS
+	subdirectory.
+
+Tue May  6 00:48:59 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* DLD-FUNCTIONS/getgrent.cc: Use new octave_group class.
+	* DLD-FUNCTIONS/getpwent.cc: Use new octave_passwd class.
+
+	* syscalls.cc: Simplify by using new functions defined in
+	liboctave/oct-syscalls.cc.
+
+	* file-io.cc (Ftmpnam): Accept DIR and PREFIX args.
+
+Mon May  5 00:54:03 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-str-mat.cc (octave_char_matrix_str::print_name_tag): Print
+	empty strings on one line.
+
+	* DLD-FUNCTIONS, OPERATORS, and	TEMPLATE-INST: New subdirectories.
+	Move appropriate files to new directories.
+	* Makefile.in: Add DLD-FUNCTIONS, OPERATORS, and TEMPLATE-INST
+	directories to VPATH.  Fix rules to work with new directory
+	structure.
+
+Sun May  4 22:40:45 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	*  input.cc (initialize_command_input): Rename from
+	initialize_readline.
+	(gnu_readline, octave_gets, get_user_input): Simplify, return
+	string, not char *.
+
+	* Many of other files: Miscellaneous changes to go along with the
+	changes described in the liboctave/ChangeLog for May 4.  More code
+	moved from here to liboctave.
+
+Fri May  2 19:50:33 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pathlen.h: Move to ../liboctave.
+
+Thu May  1 21:50:44 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (get_struct_elts): New fucntion.
+	(looks_like_struct, generate_struct_completions): Move here from
+	input.cc, rewrite, and make work again.
+
+Wed Apr 30 00:24:05 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool.cc, ov-bool.h,
+	ov-ch-mat.cc, ov-ch-mat.h, ov-complex.cc, ov-complex.h,
+	ov-cx-mat.cc, ov-cx-mat.h, ov-file.cc, ov-file.h, ov-list.cc,
+	ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc,
+	ov-scalar.h, ov-str-mat.cc, ov-struct.cc, ov.h (scalar_value):
+	New function.  Same as double_value, but name is consistent with
+	octave_scalar class.
+
+	* op-fil-b.cc, op-fil-cm.cc, op-fil-lis.cc, op-fil-rec.cc,
+	op-fil-str.cc, op-fil-bm.cc, op-fil-cs.cc, op-fil-m.cc,
+	op-fil-s.cc: New files.
+
+	* ops.h (ASSIGNOPDECL, DEFASSIGNOP, DEFASSIGNOP_FN, CONVDECL,
+	DEFCONV, BINOPDECL, DEFBINOPX, DEFBINOP, DEFBINOP_OP, DEFBINOP_FN,
+	BINOP_NONCONFORMANT): New macros.
+	* op-b-b.cc, op-bm-bm.cc, op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc,
+	op-cm-s.cc, op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, op-cs-s.cc,
+	op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc, op-s-cm.cc,
+	op-s-cs.cc, op-s-m.cc, op-s-s.cc, op-str-str.cc: Use them.
+
+	* Makefile.in (octave): Also depend on ops.o.
+
+	* builtins.h: Delete.
+	* octave.cc: Add extern declaration here.
+
+	* mappers.h: Delete.
+	* Makefile.in (INCLUDES): Delete from list.
+	* mkbuiltins: Add extern declaration in builtins.cc.
+
+	* mkops: New file.
+	* ops.cc: Delete.
+	* Makefile.in (SOURCES): Delete from the list.
+	(ops.cc): New target.
+	(OP_SOURCES): New list.  Move all op-*.cc files here from SOURCES.
+	Add $(OP_SOURCES) to SOURCES list.
+
+	* variables.cc (symbols_of_variables): No longer static.
+	* ov.cc (symbols_of_ov): Rename from symbols_of_value.
+
+	* ov-base.h: Delete declaration for install_base_type_conversions.
+	* op-b-b.h, op-bm-bm.h, op-cm-cm.h, op-cm-cs.h, op-cm-m.h,
+	op-cm-s.h, op-cs-cm.h, op-cs-cs.h, op-cs-m.h, op-cs-s.h,
+	op-m-cm.h, op-m-cs.h, op-m-m.h, op-m-s.h, op-s-cm.h, op-s-cs.h,
+	op-s-m.h, op-s-s.h, op-str-str.h: Delete.
+	* Makefile.in (INCLUDES): Delete them from the list.
+
+Tue Apr 29 22:27:49 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.h, variables.cc (install_builtin_variables): Delete.
+	* mkbuiltins: Also generate install_builtin_variables function.
+	* Makefile.in: Fix rule to call mkbuiltins with correct args.
+	(clean): Also delete def-files and var-files.
+	* defaults.h.in, dirfns.h, error.h, file-io.h, help.h, input.h,
+	lex.h, load-save.h, oct-usr-fcn.h, pager.h, parse.h, pr-output.cc,
+	pr-output.h, pt-mat.h, pt-misc.h, pt-plot.h, toplev.h:
+	Delete declarations of symbols_of_* functions.
+	* data.h, syscalls.h: Delete.
+
+	* pr-output.cc (octave_print_internal): Leave printing of final
+	new line up to the caller.
+
+	* ov.h, ov.cc (reset_indent_level, increment_indent_level,
+	decrement_indent_level, newline, indent, reset,
+	curr_print_indent_level, beginning_of_line):
+	New functions and static data to manage indent level for printing.
+	(print_as_scalar): Delete.
+	(print, print_with_name): Always require stream arg.
+	Change all callers.
+
+	* oct-stream.h (octave_stream::input_stream): Make publicly available.
+	(octave_stream::output_stream): Likewise.
+
+	* ov-base.h, ov-base.cc, ov.h, ov.cc, ov-file.h ov-base.h
+	(is_file, stream_value, stream_number): New functions.
+	* ov-file.h, ov-file.cc: New files for value class to manage files.
+	* file-io.cc (symbols_of_file_io): Define stdin, stdout, and
+	stderr as octve_file objects, not just integers.
+	(Ffopen, Fpopen): Return octave_file objects, not integer file ids.
+	* syscalls.cc (Fpipe): Likewise.
+	* oct-stream.h, oct-stream.cc (octave_stream_list::insert):
+	Return octave_file object, not integer file id.
+
+	* ov-base.cc, ov-bool-mat.cc, ov-bool.cc, ov-ch-mat.cc,
+	ov-complex.cc, ov-cx-mat.cc, ov-file.cc, ov-list.cc, ov-range.cc,
+	ov-re-mat.cc, ov-scalar.cc, ov-str-mat.cc, ov-struct.cc, ov.cc
+	(print_name_tag, print_raw): New functions.
+
+	* help.cc (Ftype): Don't cast symbol definition to tree_constant *.
+
+	* variables.cc (link_to_global_variable): Don't try to define
+	symbol with tree_constant objects.
+	(bind_ans): Call symbol_record::define directly and then
+	octave_value::print_with_name instead of creating a temporary
+	assignment expression.
+
+	* pt-pr-code.cc (tree_print_code::indent): Don't use ostream::form.
+
+	* pt-exp-base.h, pt-exp.h, pt-exp.cc (oper): Return string, not
+	char *.  Change all where necessary.
+
+Mon Apr 28 16:33:49 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h (octave_value binary_op enum): Add lshift and rshift.
+	(octave_value assign_op enum): Add lshift_eq and rshift_eq.
+	* ov.cc (assign_op_as_string, binary_op_as_string): Include them.
+	* parse.y (LSHIFT_EQ RSHIFT_EQ LSHIFT RSHIFT): New tokens.
+	Add them to the precedence list.
+	(simple_expr): Add new operators.
+	(make_assign_op, make_binary_op): Handle new operators.
+	* lex.l: Recognize new operators.
+
+	* lex.l: Recognize them.
+
+Sun Apr 27 20:17:49 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-misc.cc (Vsilent_functions, silent_functions):
+	Move here from oct-usr-fcn.cc.
+	(symbols_of_pt_misc): New function.  DEFVAR silent_functions.
+	(tree_statement_list::eval): Handle Vsilent_functions here instead
+	of in octave_user_function::eval.
+	(tree_statement::eval): New functions.
+	(tree_statement_list::eval): Use them.
+	Change print flag arg to silent flag.  Change all callers.
+	* variables.cc (install_builtin_variables): Call symbols_of_pt_misc.
+	* toplev.cc (parse_and_execute): Delete print arg.  Change all callers.
+	(eval_string): Change print flag arg to silent flag.  Change callers.
+
+	* dynamic-ld.h, dynamic-ld.cc: Rewrite to use singleton class.
+	* variables.cc (load_fcn_from_file): Use new dynamic linking class.
+
+	* dynamic-ld.h (Octave_builtin_fcn): Delete typedef.
+	* dynamic-ld.cc: Simplify via the magic of function pointers.
+
+	* pt-fcn.h pt-fcn.cc pt-fvc.h pt-fvc.cc pt-fvc-base.h pt-fvc-base.cc:
+	Delete obsolete files.
+	* Makefile.in: Remove them from various lists.
+
+	* pt-walk.h (visit_octave_user_function): Rename from visit_function.
+	(visit_builtin): Delete.
+	* pt-pr-code.h, pt-pr-code.cc (visit_octave_user_function):
+	Rename from visit_function.
+	(visit_octave_user_function_header): Rename from visit_function_header.
+	(visit_octave_user_function_trailer): Rename from
+	visit_function_trailer.
+
+	* ov.h, ov.cc (eval): New functions.
+
+	* dassl.cc, fsolve.cc, lsode.cc, npsol.cc, qpsol.cc, quad.cc:
+	Declare user-defined functions as a pointer to an octave_symbol
+	object, not as a pointer to a tree_fvc object.
+
+	* symtab.h, symtab.cc: Use new octave_symbol class.
+	* variables.cc (install_builtin_function, install_builtin_mapper,
+	install_builtin_variable, install_builtin_variable_as_function):
+	Make work with new octave_symbol class and symbol table structure.
+
+	* variables.h: Delete declaration of builtin_function struct.
+	* defun-dld.h (DEFUN_DLD): Simplify.
+	* defun-int.h (DEFINE_FUN_STRUCT): Delete.
+	(DEFINE_FUN_STRUCT_FUN): Rewrite to not use static builtin_function
+	object.
+
+	* mappers.h: Delete declaration of builtin_mapper_function struct.
+	* mappers.cc: Declare wrapper functions static.
+	* defun.h (DEFUN_MAPPER): Simplify.
+
+	* oct-sym.h: New file.  Declare base class for Octave symbols.
+	* ov.h: Derive octave_value class from octave_symbol.
+	* oct-fcn.h, oct-fcn.cc: New files to declare and define
+	base class for functions.
+	* oct-builtin.h, oct-builtin.cc: New files to declare and define
+	class for built-in functions.
+	* oct-mapper.h, oct-mapper.cc: New files to declare and define
+	class for mapper functions.
+	* oct-usr-fcn.h, oct-usr-fcn.cc: New files to declare and define
+	base class for user-defined functions.
+	* Makefile.in: Add new files to appropriate lists.
+
+	* pt-id.h, pt-id.cc: Move tree_identifier class here.
+	* pt-fvc.h, pt-fvc.cc: From here.
+
+	* pt-indir.h, pt-indir.cc: Move tree_indirect_ref class here.
+	* pt-fvc.h, pt-fvc.cc: From here.
+
+Thu Apr 24 03:58:16 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (magic_colon): New nonterminal.
+	(arg_list): Simplify using magic_colon.
+
+	* lex.h (class lexical_feedback): Delete maybe_screwed field.
+	New field, parsed_function name.
+	* lex.l (lexical_feedback::init): Initialize it.
+	(handle_identifier): Don't return SCREW.  Handle switching
+	symbol table context properly for `function f ()' vs `function x ='.
+	(is_keyword): If looking at function keyword, don't set current
+	symbol table to point to the local table.
+	* parse.y (recover_from_parsing_function): New function.
+	(finish_function_def): Use identifier, not token.
+	Simplify parsing of functions.
+
+	* ov-list.h, ov-list.cc: New files to implement generic list type.
+	* ov.cc (list_indent): New global variable.
+	(increment_list_indent, decrement_list_indent): New functions.
+	(install_types): Register octave_list type.
+	* ov-base.cc (octave_base_value::is_list): New function.
+
+	* oct-sym.h: New file.
+	* ov.h (class octave_value): Derive from octave_symbol class.
+
+	* pt-const.h, pt-const.cc: Delete lots of old useless cruft.
+
+	* pt-exp.h, pt-exp.cc (tree_binary_expression): Use type codes for
+	operators from octave_value instead of repeating them here.
+
+	* pt-fvc-base.cc (tree_fvc::increment, tree_fvc::decrement): Delete.
+	* pt-fvc.cc (tree_identifier::increment): Get reference to value
+	and increment that instead of using virutal tree_fvc::increment
+	function.
+
+	* lex.l: Handle +=, -=, *=, /=, .+=, .-=, .*=, ./=, &=, and |= ops.
+	* parse.y (make_assign_op): Rename from make_simple_assignment and
+	handle different op types.
+	(simple_expr1): Do new ops.
+	* pt-misc.cc (initialize_undefined_elements): Pass op to assign.
+	* pt-cmd.cc (tree_for_command::do_for_command_once): Likewise.
+	* pt-fvc.cc (tree_identifier::assign): Pass op.
+	* pt-exp.cc (tree_simple_assignment_expression): Handle new ops.
+	* variables.cc (octave_variable_reference::assign): Likewise.
+	* ov.h (class octave_value): Likewise.
+	* ov.cc (octave_value::assign_op_as_string): New function.
+	(octave_value::assign, octave_value::convert_and_assign,
+	octave_value::try_assignment_with_conversion,
+	octave_value::try_assignment): Pass op.
+	* pt-pr-code.cc (tree_print_code::visit_simple_assignment_expression):
+	Use expr.oper() instead of printing "=".
+	* op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-m-m.cc,
+	op-m-s.cc, op-str-str.cc: Pass op to INSTALL_ASSIGNOP.
+	* ops.h (INSTALL_ASSIGNOP): Pass op.
+	* ov-typeinfo.cc (do_register_assign_op): Include op type in table.
+	(do_lookup_assign_op): Use op in lookup.
+
+	* ops.h (INSTALL_UNOP): Delete.
+
+	* input.cc (generate_struct_completions, looks_like_struct):
+	Disable, since they don't work now anyway.
+
+	* help.cc (Ftype): Work with octave_value instead of a pointer to
+	tree_constant.
+	* symtab.cc (symbol_record_info::symbol_record_info): Likewise.
+
+Tue Apr 22 22:59:55 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (Ffprintf): If first arg is a string, assume FID = 1.
+
+Fri Apr 18 20:16:34 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-obj.h, oct-obj.cc: Implement octave_value_list with
+	Array<octave_value> as a data member, not as a class derived from
+	Array<octave_value>.
+	(octave_value_list::length, octave_value_list::resize,
+	octave_value_list::prepend, octave_value_list::append,
+	octave_value_list::reverse): New functions.
+
+	* op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc,
+	op-cs-m.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc,
+	op-s-cm.cc, op-s-m.cc: Use new bool ops from liboctave instead of
+	the macros defined in ops.h.
+
+Thu Apr 17 13:12:22 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (ABORT_PARSE): Handle forced_interactive the same as
+	interactive.
+
+Mon Apr 14 01:46:50 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (octave_read): Don't forget to free input buffer if it
+	exists and has zero length.
+	(gnu_readline): Free buf if fgets returns 0.
+
+Wed Apr  9 00:03:57 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* time.cc (mk_tm_map): Only set zone field if HAVE_TM_ZONE or
+	HAVE_TZNAME are defined.
+
+Tue Apr  8 12:39:21 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* time.cc (extract_tm): Set tm.tm_zone if HAVE_TM_ZONE is defined,
+	not if HAVE_TMZONE is defined.
+
+	* Makefile.in (%.oct : %.o): Use $(SH_LD), not $(CXX).
+
+Wed Apr  2 21:32:16 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dynamic-ld.cc, dynamic-ld.h (init_dynamic_linker): Delete
+	function and declaration.
+	* octave.cc (main): Don't call it.
+
+Mon Mar 31 00:37:48 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-base-exp.h (tree_expression::eval): Give arg a default value.
+	* pt-const.h (tree_constant::eval): Likewise.
+	* pt-exp.h (tree_prefix_expression::eval, tree_colon_expression::eval,
+	tree_postfix_expression::eval, tree_unary_expression::eval,
+	tree_binary_expression::eval, tree_boolean_expression::eval,
+	tree_simple_assignment_expression::eval): Likewise.
+	* pt-fcn.h (tree_function::eval): Likewise.
+	* pt-fvc.h (tree_identifier::eval, tree_indirect_ref::eval,
+	tree_builtin::eval): Likewise.
+	* pt-mat.h (tree_matrix::eval): Likewise.
+	* pt-misc.h (tree_statement_list::eval): Likewise.
+	* pt-mvr-base.h (tree_multi_val_ret::eval): Likewise.
+	* pt-mvr.h (tree_oct_obj::eval, tree_index_expression::eval,
+	tree_multi_assignment_expression::eval): Likewise.
+	* dassl.cc, fsolve.cc, load-save.cc, lsode.cc, npsol.cc, parse.y,
+	pt-cmd.cc, pt-exp-base.cc, pt-exp.cc, pt-fvc.cc, pt-mat.cc,
+	pt-misc.cc, pt-mvr.cc, pt-plot.cc, quad.cc, toplev.cc, variables.cc:
+	Change callers of eval() to use bool instead of int and to make
+	use of default argument value.
+
+	* toplev.h, toplev.cc (parse_and_execute, eval_string): Flag args
+	are now bool instead of int.
+
+	* symtab.h, symtab.cc: Use bool instead of int in more places.
+	* variables.h, variables.cc: Likewise.
+	* lex.h, lex.l: Likewise.
+	* parse.y: Likewise.
+	* help.cc, input.cc, lex.l, load-save.cc, parse.y, pt-fcn.cc:
+	Change callers of symbol_table::lookup to use bool instead of int,
+	and to make use of default arguments.
+
+Fri Mar 28 15:33:11 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (Vwarn_comma_in_declaration): Delete.
+	(symbols_of_parse): Delete DEFVAR for warn_comma_in_declaration.
+	(decl1): Don't allow commas in declarations.
+
+	* lsode.cc (struct LSODE_OPTIONS): Handle integer options.
+	(print_lsode_option_list, set_lsode_option, show_lsode_option): Ditto.
+	(lsode_option_table): Add element for step limit.
+	(lsode_user_jacobian): New function.
+	(Flsode): Allow function name arg to be a 2-element string array
+	specifying the function and jacobian function.
+
+	* variables.cc (get_global_value, set_global_value): New functions.
+
+Wed Mar 26 17:08:27 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	Implement static variable declaration:
+
+	* lex.l (is_keyword): Handle static.
+	* octave.gperf: Likewise.
+	* parse.y (Vwarn_comma_in_declaration): Rename from
+	Vwarn_comma_in_global_decl.
+	Handle new static command.
+	* pt-cmd.h, pt-cmd.cc (class tree_decl_command): New base class
+	for static and global declaration commands.
+	(class tree_global_command): Derive from tree_decl_command.
+	(class tree_static_command): New class, derived from tree_decl_command.
+	* pt-fvc.cc, pt-fvc.h (tree_identifier::mark_as_static): New function.
+	* pt-misc.h, pt-misc.h (class tree_decl_elt): Rename from tree_global.
+	(class tree_decl_init_list): Rename from tree_global_init_list.
+	* pt-pr-code.cc, pt-pr-code.h (tree_print_code::visit_decl_command):
+	Rename from visit_global_command.
+	(tree_print_code::visit_decl_elt): Rename from visit_global.
+	(tree_print_code::visit_decl_init_list): Rename from
+	visit_global_init_list.
+	* pt-walk.h (tree_walker::visit_decl_command): Rename from
+	visit_global_command.
+	(tree_walker::visit_decl_elt): Rename from visit_tree_global.
+	(tree_walker::visit_decl_init_list): Rename from
+	visit_global_init_list.
+	* variables.cc (link_to_global_variable): Trying to make a static
+	variable global is an error.
+	* SLList-misc.cc: Instantiate lists of pointers to tree_decl_elt
+	objects, not tree_global objects.
+	* symtab.h, symtab.cc (symbol_record::tagged_static): New field.
+	(symbol_record::mark_as_static, symbol_record::is_static):
+	New functions.
+	* symtab.cc (symbol_record::init_state): Initialize tagged_static.
+	(symbol_record::clear): Don't clear static variables.
+	* symtab.cc (push_context): Don't do anything for static variables.
+
+Tue Mar 25 17:17:17 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-bool-mat.cc, ov-bool-mat.h, ov-bool.cc, ov-bool.h: New files.
+
+	* defaults.cc (symbols_of_defaults): DEFCONST OCTAVE_HOME.
+
+	* toplev.cc (octave_config_info): Delete use of CXXLIBS.
+	* oct-conf.h.in: Ditto.
+
+	* octave.cc (maximum_braindamage): Don't bind prefer_zero_one_indexing.
+	* ov.h: Don't declare Vprefer_zero_one_indexing.
+	* ov.cc: Don't define Vprefer_zero_one_indexing.
+	(prefer_zero_one_indexing): Delete.
+	(symbols_of_value): Delete DEFVAR for prefer_zero_one_indexing.
+
+	* ov.h, ov.cc, ov-base.h, ov-base.cc: Add constructors and
+	extractors for bool and boolMatrix types.
+
+	* ov.cc (install_types): Register octave_bool and
+	octave_bool_matrix types.
+
+	* op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc,
+	op-cs-m.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc,
+	op-s-cm.cc, op-s-m.cc, op-s-s.cc, ov-re-mat.cc:
+	Return boolMatrix instead of Matrix object.
+	* ops.h (BOOL_OP3, MX_MX_BOOL_OP): Likewise.
+
+	* op-b-b.h, op-b-b.cc, op-bm-bm.h, op-bm-bm.cc: New files.
+	* Makefile.in: Add them to the lists.
+	* ops.cc: Include header files here.
+	(install_ops): Call install_b_b_ops() and install_bm_bm_ops() here.
+
+	* variables.cc (symbols_of_variables): Don't rely on default
+	conversion from int to double for value returned from
+	default_history_size().
+
+	* pr-output.cc: Include cstdio.
+
+	* parse.y (param_list_end): Fix typo in last change.
+
+	* quad.cc (quad): Cast integer return values to double.
+	* npsol.cc (show_npsol_option): Likewise.
+	* qpsol.cc (show_qpsol_option): Likewise.
+	* file-io.cc (Fsprintf, Ffwrite): Likewise.
+
+Mon Mar 24 13:11:47 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-typeinfo.cc (typeinfo): If invoked with an argument, return
+	the type of the argument as a string.  Fix doc string.
+
+Thu Mar 20 14:47:49 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* mk-oct-links (links_dir): Don't use -h option for grep.  It's
+	not needed since we are working on one file at a time anyway.
+
+Mon Mar 17 10:53:29 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (handle_identifier): When handling indirect_ref, set
+	lexer_flags.quote_is_transpose to 1 so that a.b' to work as
+	expected.
+
+	* parse.y (param_list_beg, param_list_end): New nonterminals.
+	(param_list, param_list1): Use them.
+
+Wed Mar 12 16:57:28 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install-strip): New target.
+
+Mon Mar 10 22:38:16 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (clean): Delete .oct files too.
+
+	* toplev.cc (Vdefault_eval_print_flag): New static variable.
+	(eval_string): New arg, print.
+	(Feval): Pass Vdefault_eval_print_flag to eval_string.
+	(default_eval_print_flag): New function.
+	(symbols_of_toplev): New function.
+
+	* variables.cc (install_builtin_variables): Call it.
+
+	* pt-exp.h, pt-exp.cc (class tree_boolean_expression): Rename enum
+	fields `and' and `or' to `bool_and' and `bool_or'.
+	(tree_unary_expression): Rename enum field `not' to `unot'.
+	(class tree_binary_expression): Rename enum fields `and' and `or'
+	to `el_and' and `el_or'.
+	* parse.y: Change all uses.
+
+	* time.cc (extract_tm): Truncate field values instead of rounding.
+	(gmtime, localtime): Likewise, for timeval.
+
+	* ov.h (class octave_value): Delete unused variable freeptr.
+
+	* mappers.cc: Delete functions that are already in
+	liboctave/lo-mappers.cc.
+
+	* oct-strstrm.cc (octave_base_strstream::tell): Use const_cast,
+	not static_cast.
+
+	* help.cc (help_from_list): Add missing const qualifiers.
+	* help.h (struct help_list): Likewise.
+	* lex.l (match_any, plot_style_token): Likewise.
+	* load-save.cc (extract_keyword, ascii_save_type): Likewise.
+	* oct-hist.cc (mk_tmp_hist_file): Likewise.
+	* octave.cc (execute_startup_files): Likewise.
+	* octave.gperf (struct octave_kw): Likewise.
+	* pr-output.cc (pr_any_float): Likewise.
+	* pt-mvr.cc (tree_index_expression::eval_error): Likewise.
+	* pt-exp-base.h, pt-exp.h, pt-exp.cc: Likewise.
+	* parse.y: Likewise.
+
+Sun Mar  9 03:46:45 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-exp-base.h (tree_expression): Delete extra comma at end of list.
+
+	* dirfns.cc error.cc file-io.cc fsolve.cc input.cc load-save.cc
+	npsol.cc pt-fcn.cc qpsol.cc quad.cc syscalls.cc toplev.cc
+	variables.cc: Eliminate embedded newlines in string constants.
+
+	* Map.cc, data.cc, dirfns.cc, dynamic-ld.cc, file-io.cc,
+	fsolve.cc, getgrent.cc, getpwent.cc, getrusage.cc, help.cc,
+	input.cc, load-save.cc, mappers.cc, minmax.cc, npsol.cc,
+	oct-fstrm.cc, oct-procbuf.h, oct-stdstrm.cc, oct-stdstrm.h,
+	oct-stream.cc, oct-stream.h, oct-strstrm.cc, octave.cc,
+	ov-base.h, ov-range.cc, ov-typeinfo.cc, ov.cc, pr-output.cc,
+	pt-cmd.cc, pt-exp.cc, pt-fcn.cc, pt-fvc.cc, pt-mat.cc,
+	pt-misc.cc, pt-plot.cc, qpsol.cc, quad.cc, sort.cc, strfns.cc,
+	symtab.cc, syscalls.cc, sysdep.cc, time.cc, toplev.cc,
+	unwind-prot.cc, unwind-prot.h, variables.cc, xpow.cc:
+	Use `static_cast<T> (val)' instead of old C-style `(T) val' casts.
+
+Sat Mar  8 02:35:13 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (save_ascii_data, save_three_d): Where appropriate,
+	use bool instead of int.
+	(save_binary_data, save_mat_binary_data, save_ascii_data):
+	Print warning instead of error for wrong type arg.
+
+	* gripes.cc (gripe_wrong_type_arg): New arg, is_error.
+
+	* pt-plot.cc (save_in_tmp_file): Call save_ascii_data with bool
+	arg, not int.
+
+Fri Mar  7 00:56:16 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dassl.cc (show_dassl_option): For values that are determined
+	automatically, return a string instead of a magic value (-1.0).
+	* fsolve.cc (show_fsolve_option): Likewise.
+	* lsode.cc (show_lsode_option): Likewise.
+	* npsol.cc (show_npsol_option): Likewise.
+	* qpsol.cc (show_qpsol_option): Likewise.
+
+	* variables.cc (extract_function): New function.
+	* dassl.cc (Fdassl): Use it instead of is_valid_function.
+	* fsolve.cc (Ffsolve): Likewise.
+	* npsol.cc (Fnpsol): Likewise.
+	* qpsol.cc (Fqpsol): Likewise.
+	* quad.cc (Fquad): Likewise.
+
+Thu Mar  6 20:07:24 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.cc (my_friendly_exit, octave_new_handler,
+	sigfpe_handler, sigpipe_handler): Don't all error() or warning().
+
+	* pager.cc (pager_death_handler): Don't try to clear pager, just
+	print message to cerr.
+	(do_sync): If the status of the pager is bad or it looks like it
+	is dead, restore the interrupt handler.
+
+	* load-save.cc (extract_keyword (istream&, char*, int&)):
+	Move declaration of buf inside loop, to avoid deleting its guts
+	and then trying to reuse it.
+	(extract_keyword (istream&, char*)): Likewise.
+
+Tue Mar  4 20:36:53 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-fcn.cc (tree_function::eval): Protect function from being
+	redefined while it is being evaluated.
+	(unprotect_function): New function, for use with unwind_protect stuff.
+	* pt-fcn.h (tree_function::symtab_entry): New data member.
+	(tree_function::init): Initialize it to 0.
+	(tree_function::stash_symtab_ptr): New function.
+	* parse.y (frob_function_def): Stash pointer to function's
+	symbol_record in the function definition.
+
+	* symtab.cc (symbol_record::read_only_error): New argument,
+	action.  Change all callers.
+	(symbol_record::rename): Don't allow read-only symbols to be renamed.
+
+	* variables.cc (Fexist): Don't let files with `.' in their names
+	confuse us.
+
+	* symtab.cc (valid_identifier (const string&)): New function.
+
+Sat Mar  1 15:23:14 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 2.0.5 released.
+
+Sat Mar  1 01:34:08 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (stamp-oct-links): New target.  Make links in build
+	directory too, so that the tests will work.
+
+	* quad.cc: If quad is defined, undefine it.
+
+	* octave.cc: If WITH_KPATHSEARCH is defined, don't define
+	program_invocation_name or program_invocation_short_name.
+
+	* strftime.c: Update to current version from FSF.
+	* time.cc (Fstrftime): Call strftime with buf = 0 to get buffer
+	size, then call again to actually format the time struct.
+
+Fri Feb 28 01:49:48 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	Implement switch statement:
+
+	* parse.y (Vwarn_variable_switch_label): New static variable.
+	(warn_variable_switch_label): New function.
+	(symbols_of_parse): Provide warn_variable_switch_label as Octave
+	variable here.
+	(make_switch_case, finish_switch_command): New functions.
+	(maybe_warn_variable_switch_label): New function.
+	(end_error): Handle endswitch.
+	(switch_command, case_list, case_list1, switch_case, default_case):
+	New nonterminals.
+	(command): Add switch_command here.
+	* lex.l	(is_keyword): Handle switch, case, otherwise, and endswitch.
+	* octave_gperf: Recognize switch, case, otherwise, and endswitch.
+	* token.h (end_tok_type): New item, switch_end.
+	* pt-cmd.cc (tree_switch_command): New class.
+	* pt-misc.cc (tree_switch_case, tree_switch_case_list): New classes.
+	* pt-pr-code.cc (tree_print_code::visit_switch_case,
+	tree_print_code::visit_switch_case_list,
+	tree_print_code::visit_switch_command): New functions.
+ 	* pt-walk.h (tree_walker::visit_switch_case,
+	tree_walker::visit_switch_case_list,
+	tree_walker::visit_switch_command): New pure virtual declarations.
+	Implement new switch statement.
+	* SLList-misc.cc: Instantiate lists of pointers to
+	tree_switch_case objects too.
+
+	* lex.h, lex.l, parse.y: Delete all references to lexer_flags::iffing.
+
+	* syswait.h: Include sys/wait.h on NeXT systems, but don't use the
+	WIFEXTED, WEXITSTATUS, and WIFSIGNALLED macros defined there.
+	Also define waitpid in terms of wait4.  From Rex A. Dieter
+	<rdieter@math.unl.edu>.
+
+Wed Feb 26 16:43:31 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (octave_base_stream::do_scanf): Don't report an
+	error if a conversion fails or we reach EOF.
+
+Tue Feb 25 22:21:05 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* time.cc (strftime): increase initial buffer size.
+
+Mon Feb 24 17:49:21 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-fvc.cc (tree_builtin::eval): Enable checking for max number
+	of arguments.
+
+	* error.cc (handle_message): Don't fail if args is empty.
+
+Sun Feb 23 22:42:52 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.h (lexical_feedback::looking_at_return_list): New field.
+	(lexical_feedback::looking_at_parameter_list): Ditto.
+	* lex.l (lexical_feedback::init): Initialize them.
+	(handle_identifier): Use them.
+	* parse.y: Likewise.
+
+Fri Feb 21 15:35:18 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l: Require flex 2.5 or later (we really want 2.5.4 or later,
+	but there seems to be no good way to check the patchlevel).
+
+	* oct-stream.cc (octave_base_stream::oscanf): Instead of returning
+	an error, just quit processing after a conversion fails.
+
+Thu Feb 20 02:58:05 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 2.0.4 released.
+
+Wed Feb 19 10:30:14 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.cc (octave_ignore_interrupts,
+	octave_catch_interrupts, octave_set_interrupt_handler):
+	Return old value, not pointer to static data.  Fix all uses.
+
+	* sighandlers.h (octave_interrupt_handler): Move declaration here.
+	* sighandlers.cc: From here.
+
+	* toplev.cc: Undo previous change.
+
+	* lex.l (handle_identifier): Allow commands like ls, save, etc. to
+	also be used as simple variable names.  Also make it possible to
+	use the normal function call syntax to invoke them.
+
+Tue Feb 18 09:22:04 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (%.oct:%.o, %.oct:pic/%.o): Use $(SH_LDFLAGS) here.
+
+	* Version 2.0.3 released.
+
+Tue Feb 18 00:27:49 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (run_command_and_return_output):
+	Block SIGCHLD while running subprocess.
+	(cleanup_iprocstream): Unblock it here.
+
+	* sighandlers.h (BLOCK_SIGNAL, BLOCK_CHILD, UNBLOCK_CHILD): Move here.
+	* sighandlers.cc: From here.
+
+	* toplev.cc (system): Shift then mask exit status.
+
+	* help.cc (try_info): Shift first, then mask exit status.
+
+	* toplev.cc (octave_config_info): Handle option argument.
+
+Fri Feb 14 16:23:30 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (octave_base_stream::do_scanf): Don't forget to
+	check to see if the result matrix needs resizing!
+
+	* Makefile.in (bin-dist): Don't write empty strings to LIBRARIES.
+
+Thu Feb 13 03:02:08 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (stamp-prereq): Depend on stamp-picdir.
+	(all): Don't depend on stamp-prereq or stamp-picdir.
+	(stamp-tinst, stamp-interp, libtinst.a, liboctinterp.a):
+	Do depend on stamp-prereq.
+	(stamp-picdir): Silence noise about making pic.
+	(stamp-tinst, stamp-interp): Use $(SH_LD) $(SH_LDFLAGS) instead of
+	$(CXX) -shared.
+
+	* oct-conf.h.in: Reinstate RLD_FLAG.
+	* toplev.cc (octave_config_info): Likewise.
+
+	* data.cc (map_d_m, map_m_d, map_m_m): Rename from map.
+	(Fatan2): Use new function names.
+
+	* pt-fvc.cc (apply_mapper_fcn): Use member function map() instead
+	of friend function.
+
+	* gripes.cc (gripe_wrong_type_arg (const char*, const string&)):
+	New function.
+
+Wed Feb 12 17:27:53 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* syscalls.cc (symbols_of_syscalls): Add O_ASYNC and O_SYNC.
+
+Mon Feb 10 01:22:27 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dirfns.cc (Freaddir, Fmkdir, Frmdir, Frename):
+	Also return status and error message.
+
+	* syscalls.cc (Fdup2, Fexec, Ffork, Ffcntl, Funlink, Fmkfifo,
+	Fpipe, Fwaitpid): Also return error message.
+
+Sat Feb  8 17:16:09 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-exp.cc (tree_simple_assignment_expression::eval): Return
+	value of RHS, but (if printing) print complete value of LHS.
+
+	* pr-output.cc (octave_print_internal): Print a new line for empty
+	string matrices.
+
+Wed Feb  5 14:30:44 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (scanf_format_list::process_conversion): Accept
+	but don't actually use h, l, and L modifiers.  Always insert l
+	modifier for floating point conversions.
+
+Fri Jan 31 13:55:10 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pager.cc (do_sync): Always flush the cout stream after writing.
+
+Wed Jan 29 08:25:29 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defaults.cc (exec_path): Don't include bin_dir in std_path.
+
+	* pager.cc (do_sync): Flush the cout stream after writing if
+	running in interactive or forced_interactive mode.
+
+	* mk-oct-links: Rename from mk-oct-links.in.
+	Don't use symbolic links.
+	* Makefile.in: Distribute mk-oct-links, not mk-oct-links.in
+	(mk-oct-links): Delete target.
+	(install-oct, bin-dist): Don't depend on mk-oct-links.
+	Run $(srcdir)/mk-oct-links, not ./mk-oct-links.
+
+	* qr.cc (qr): Doc fix.
+
+Tue Jan 28 10:48:28 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install-inc): Create a relative symbolic link.
+	(install-bin): Create a relative symbolic link.
+
+Mon Jan 27 12:12:03 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 2.0.2 released.
+
+	* Makefile.in (CXXFLAGS_NO_PT_FLAGS): Rename from XALL_CXXFLAGS.
+	Substitute bsd_gcc_kluge_targets_frag.
+
+	* sysdep.cc (Fsleep): New function.
+	(Fusleep): New function.
+
+	* toplev.cc (octave_config_info): Don't include RLD_FLAG.
+	* oct-conf.h.in: Don't define RLD_FLAG
+
+Sun Jan 26 19:41:48 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.cc (sigchld_handler): Block SIGCHLD while
+	sigchld_hander is running.
+
+Sat Jan 25 22:36:39 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (bin-dist): Update for 2.x.
+
+Fri Jan 24 10:05:00 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* mk-oct-links.in: New arg, -p, to just print list of files to link.
+
+	* lex.l (handle_number): Convert `D' or `d' exponents to `e'
+	before scanning.
+
+Thu Jan 23 10:00:00 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_no_op_command):
+	New function.
+	* pt-cmd.h, pt-cmd.cc (tree_no_op_command): New class.
+	* parse.y (make_break_command, make_continue_command,
+	make_return_command): Where they don't really make sense, turn
+	these commands into no-ops.  Accept return and break if reading a
+	script file.
+	* toplev.cc (parse_and_execute): Handle return and break in script
+	files.  Quit executing commands if an error occurs when reading a
+	script file.  Set global_command to 0 after deleting it.
+	(main_loop): If not interactive or forced_interactive, handle
+	break and return, and quit executing commands if an error occurs.
+	Set global_command to 0 after deleting it.
+	* error.cc (Ferror): Doc fix.
+	* pt-walk.h (tree_walker): Add declaration for visit_no_op_command.
+
+Wed Jan 22 20:54:12 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (gnu_readline): If not using readline, flush
+	rl_outstream after printing prompt.
+	(octave_gets): Also call flush_octave_stdout() if
+	forced_interactive, not just if interactive.
+	(do_input_echo): If forced_interactive, only echo prompt and
+	command line if also reading a script file.
+
+Tue Jan 21 23:02:34 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* SLList.h: Include "BaseSLList.h", not <BaseSLList.h>.
+
+Mon Jan 20 11:11:12 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (token_stack): Don't declare static.
+	* pt-plot.cc (tmp_files): Likewise.
+	* toplev.cc (octave_atexit_functions): Likewise.
+	* unwind-prot.cc (unwind_protect_list): Likewise.
+
+	* ops.h (MX_MX_BOOL_OP): Correctly handle case of one or both
+	arguments being empty.  Change all callers.
+
+	* oct-stream.cc (printf_value_cache::looking_at_string):
+	Handle empty strings correctly now that they are 0x0.
+
+	* file-io.cc: Don't include "syswait.h" here.
+
+Sun Jan 19 22:38:45 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.h (octave_base_stream::seek): Declare offset arg as
+	streamoff, not streampos.
+	(octave_stream::seek): Likewise.
+	* oct-strstrm.h (octave_base_strstream::seek): Likewise.
+	* oct-stdstrm.h (octave_base_stdiostream::seek): Likewise.
+	* oct-iostrm.h (octave_base_iostream::seek): Likewise.
+	* oct-fstrm.h (octave_fstream::seek): Likewise.
+
+Fri Jan 17 18:13:10 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (Ffflush): Handle stdout as a special case.
+
+	* oct-stream.cc (octave_stream_list::do_get_file_number):
+	Do the work for octave_stream::get_file_number.
+	(octave_stream_list::get_file_number): Convert to static function.
+
+Wed Jan  8 11:42:44 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* log.cc (sqrtm): For complex arg case, compute sqrt, not log.
+
+Tue Jan  7 00:16:41 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 2.0.1 released.
+
+Mon Jan  6 00:00:07 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-mat.cc (tm_row_const_rep::all_mt): New variable.
+	(tm_row_const::all_empty): New function.
+	(tm_row_const::tm_row_const_rep::init): Set all_mt here.
+	(tm_const::all_mt): New variable.
+	(tm_const::all_emtpy): New function.
+	(tm_const::init): Set all_mt here.
+	(tree_matrix::eval): Return an empty matrix if the list contains
+	only empty elements.  If it contains only empty strings, return an
+	empty string.
+
+Sun Jan  5 12:50:25 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ops.h (SC_MX_BOOL_OP, MX_SC_BOOL_OP): New arg, empty_result.
+	* op-cm-cm.cc, op-cm-cs.cc, op-cm-m.cc, op-cm-s.cc, op-cs-cm.cc,
+	op-cs-m.cc, op-m-cm.cc, op-m-cs.cc, op-m-m.cc, op-m-s.cc,
+	op-s-cm.cc, op-s-m.cc, op-str-str.cc: Change all uses of
+	SC_MX_BOOL_OP and MX_SC_BOOL_OP macros.  Return correct results
+	for empty matrix cases.
+
+	* pt-fcn.cc (tree_function::eval): If Vdefine_all_return_values is
+	true, initialize return values before evaluating function, for
+	compatibility with Matlab.
+
+	* oct-stream.cc (get_size): Correctly set size when arg is scalar.
+
+Thu Jan  2 12:40:10 1997  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install-oct): Quote $(OCT_FILES) in for loop to
+	avoid syntax error from ksh.
+
+	* pr-output.cc (octave_print_internal): Avoid unused parameter
+	warning from gcc.
+
+Thu Dec 19 12:13:42 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (octave_base_stream::do_scanf):
+	Don't treat %l{e,f,g} differently from %{e,f,g}.
+	(octave_base_stream::do_oscanf): Likewise.
+
+	* sighandlers.cc (sigchld_handler): Fix typos.
+
+Wed Dec 18 20:17:23 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (Ffgetl, Ffgets): Also return number of characters	read.
+
+	* ov-range.cc (octave_range::not): New function.
+	* ov-range.h (octave_range::uminus): New function.
+
+	* BaseSLList.cc: Include error.h.
+	(BaseSLList::error): Call ::error() to process error message.
+
+Fri Dec 13 02:38:19 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.cc (octave_value::convert_and_assign): Preserve lhs value if
+	assignment fails.
+
+Wed Dec 11 12:33:16 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-plot.cc (GPLOT_CMD_END): Don't put semicolons at the end of
+	each plot command; it causes trouble with gnuplot 3.5.
+
+Tue Dec 10 00:31:13 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 2.0 released.
+
+	* pr-output.cc (set_format_style): Don't try to access argv unless
+	argc > 1.
+
+	* SLList-expr.cc SLList-misc.cc SLList-plot.cc SLList-str.cc
+	SLList-tc.cc SLList-tm.cc SLList.h SLStack-i.cc SLStack-pc.cc
+	SLStack-str.cc SLStack-sym.cc SLStack-tok.cc SLStack-ue.cc
+	SLStack-ui.cc, pt-mat.cc: Include Stack.h, Stack.cc, SLStack.cc,
+	and SLList.cc as necessary.
+
+	* Stack.cc, SLStack.cc, SLList.cc: New files.
+	* Makefile.in (SOURCES): Add them to the list.
+
+Mon Dec  9 12:03:45 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install-bin): Use $(EXE) suffix so install will
+	find the right file on cygwin32 systems.
+
+	* ov.h: Declare proper form of do_binary_op as friend to
+	octave_value class.
+
+Sat Dec  7 22:00:10 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (do_printf_conv, do_scanf_conv,
+	do_oscanf_num_conv, do_oscanf_str_conv): Convert to real
+	functions instead of CPP macros, using templates where necessary.
+	(do_oscanf_num_conv, do_oscanf_str_conv): Correctly handle
+	discarded values.
+
+Fri Dec  6 00:20:25 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 1.94.
+
+	* Map-*.cc, SLList-*.cc, SLStack-*.cc: Include config.h.
+
+	* ov.h: Don't include SLList.h.
+
+	* SLStack.cc: Delete.  Move everything to SLStack.h.
+
+	* BaseSLList.h, BaseSLList.cc: New files.  Split out the
+	non-template base class parts of SLList.
+
+	* Makefile.in (TEMPLATE_SRC): Delete.  Move files to SOURCES.
+	* Map.h, Map.cc: Add #pragma interface/implementation.
+	* SLStack.h, SLStack.cc: Add #pragma interface/implementation.
+
+	* SLList.h, SLList.cc: New files, from libg++, but with #pragma
+	interface/implementation.
+	* Makefile.in (SOURCES): Add SLList.cc.
+	(INCLUDES): Add SLList.h.
+
+Thu Dec  5 18:36:44 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc: Don't include sun-utils.h.
+
+Tue Dec  3 23:47:09 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* op-str-str.cc (eq, ne): Handle operations with scalars.
+
+Thu Nov 21 12:30:36 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-str-mat.h (octave_char_matrix_str): Provide transpose and
+	hermitian operators.
+	* ov-ch-mat.h (octave_char_matrix): Likewise.
+
+Wed Nov 20 00:35:57 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.h (struct octave_interrupt_handler): Provide
+	forward declaration here.
+	* sighandlers.cc (octave_interrupt_handler): New struct.
+	(octave_catch_interrupts): Rename from catch_interrupts.
+	(octave_ignore_interrupts, octave_set_interrupt_handler):
+	New functions.
+	* help.cc, oct-hist.cc, pager.cc, toplev.cc: Use new functions for
+	handling interrupts so that we can hide the details of whether or
+	not we have to deal with SIGBREAK.
+
+	* pt-plot.cc [! HAVE_POSIX_SIGNALS] (open_plot_stream):
+	Simply ignore and restore the interrupt handler here.
+
+	* sighandlers.cc (MAYBE_REINSTALL_SIGHANDLER): New macro.  Use it
+	instead of always checking MUST_REINSTALL_SIGHANDLERS everywhere.
+	(sigchld_handler): If octave_child_list is empty, wait for any
+	child, but don't hang, and don't collect status info.
+	[__EMX__] (sigchld_handler): Save and restore handlers for SIGINT,
+	SIGBREAK, and SIGCHLD.  Ignore them while waiting on children.
+	(install_signal_handlers): If SIGBREAK exists, handle it like SIGINT.
+
+	* toplev.cc [USE_READLINE] (clean_up_and_exit):
+	Call rl_deprep_terminal() to restore terminal settings.
+
+	* sysdep.cc [__EMX__ && OS2] (Fextproc): New command.
+	[__EMX__ && OS2] (FEXTPROC): Alias for Fextproc.
+
+	* Version 1.93.
+
+	* sysdep.cc (octave_chdir): [__EMX__]: Make copy of string before
+	converting to upper case.
+
+	* getgrent.cc (mk_gr_map): Only set the passwd field if
+	HAVE_GR_PASSWD is defined.
+
+Tue Nov 19 12:01:13 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sysdep.cc (OS2_init): New function.
+	[__EMX__] (sysdep_init): Call it.
+
+	* lex.l (plot_style_token): Add new plot styles for gnuplot 3.6.
+	* pt-plot.cc (subplot_style::columns_ok): Rename from
+	subplot_style::errorbars. Recognize more styles and do a better
+	job of diagnosing column number/style mismatches.
+
+	* sighandlers.cc (my_friendly_exit): If we are called twice, try
+	to remove the signal handler for SIGABRT and the call abort ().
+
+	* help.cc (Ftype): If a function is defined from a file and
+	transformed text has not been requested, just print the contents
+	of the file.
+
+	* parse.y (fold): New functions for constant folding for binary
+	and unary expressions.  Keep track of original text even when
+	transformations occur.
+	(make_binary_op, make_boolean_op, make_unary_op): Use them.
+	(finish_colon_expression, finish_matrix): Keep track of original
+	text even when transformations occur.
+
+	* help.cc (Ftype): Don't mess with Vps4.
+	Handle new option `-transformed'.
+
+	* pt-const.h, pt-const.cc (tree_constant::print):
+	New arg, pr_orig_text.
+
+	* pt-exp.h, pt-exp.cc (tree_colon_expression::is_range_constant):
+	Delete.
+
+	* pt-exp-base.h (tree_expression::original_text): New virtual function.
+	pt-exp-base.cc (tree_expression::original_text): Default version.
+
+	* pt-pr-code.h (tree_print_code::print_original_text,
+	tree_print_code::prefix): New fields.
+	* pt-pr-code.cc (tree_print_code::visit_constant): Pass
+	print_original_text to tree_constant::print().
+	(tree_print_code::indent): Use prefix instead of Vps4.
+	* pt-fcn.cc (tree_function::print_function_header,
+	tree_function::print_function_trailer): Pass Vps4 to
+	tree_print_code_constructor for prefix.
+	* pt-misc.cc (tree_statement::maybe_echo_code): Pass Vps4 to
+	tree_print_code_constructor for prefix.
+
+	* pt-mat.h, pt-mat.cc (tree_matrix::all_elements_are_constant):
+	Rename from is_matrix_constant.
+	(tree_matrix_row::all_elements_are_constant): Likewise.
+	Change all callers.
+
+Mon Nov 18 14:13:32 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install-inc): Try harder to create the link from
+	include/octave to include/octave-VERSION.
+
+Sun Nov 17 14:14:48 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (parse.cc): Expect 13 shift/reduce conflicts.
+
+	* parse.y (set_stmt_print_flag): New function.
+	(sep_type): New member for bison %union declaration.
+	Simplify rules for statement lists keeping track of the type of
+	the first separator in the values associated with the
+	nonterminals for the separators.
+
+	* lex.l (handle_identifier): Set lexer_flags.doing_set if the
+	token is "gset", not "set".
+
+Sat Nov 16 21:41:26 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (parse.cc, lex.cc): Add special rules for these files.
+	Delete pattern rules for .y and .l files.
+
+Fri Nov 15 13:48:02 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-plot.cc: Put semicolons at the ends of all plot commands.
+
+	* defaults.cc (subst_octave_home): Start subsequent searchs from
+	the end of the replaced text.
+
+	* pr-output.cc (pr_any_float): Kluge for SCO systems.
+
+	* pr-output.cc (pr_any_float, pr_complex): Don't declare inline.
+
+	* mappers.cc: Include lo-ieee.h, for isinf and isnan on SCO
+	systems.
+
+Thu Nov 14 00:06:19 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-plot.cc (Fgset, Fgshow): New commands.
+	(Fshow): Print warning and call gshow.
+	(Fset): Print warning and call gset.
+
+	* variables.cc (parse_fcn_file): Add unwind-protect for file
+	pointer, so the file is always closed.
+	(get_help_from_file): Likewise.
+	* toplev.cc (parse_and_execute): Likewise.
+
+	* Makefile.in (install-oct): Depend on mk-oct-links.
+	(mk-oct-links): New target.
+
+	* Version 1.92.
+
+Wed Nov 13 11:13:22 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sighandlers.cc (sys_siglist): [__EMX__]: Add definitions.
+
+	* octave.cc (execute_startup_files): Allow init file name ot be
+	specified by an environment variable.
+
+	* dirfns.cc (make_absolute): [__EMX__]: Path is already absolute
+	if it begins with any character followed by a colon.
+
+	* load-save.cc (read_mat_ascii_matrix, get_lines_and_columns,
+	get_complete_line): New functions, for reading headless text files.
+	(load_save_format): Add LS_MAT_ASCII, for headless text files.
+	(do_load): Handle LS_MAT_ASCII files.
+	Thanks to Mel Melchner <mjm@research.att.com> for initial version
+	of this code.
+
+	* sysdep.cc: Conditionally include ieeefp.h.
+	(BSD_init, SCO_init): New functions.
+	(sysdep_init): Conditionally call them here.
+
+Tue Nov 12 00:14:56 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-plot.cc (open_plot_stream): Don't block SIGCHLD.
+
+	* load-save.cc (read_binary_data): When reading string arrays, be
+	sure to create an octave_char_matrix_str object, not just an
+	octave_char_matrix object.
+	(read_ascii_data): Likewise.
+
+Mon Nov 11 22:52:58 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (read_binary_data): Don't forget teminating NUL for
+	string that we plan to insert.
+	(read_ascii_data): Likewise.
+
+Sun Nov 10 16:58:07 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dirfns.cc (Ffnmatch): New function.
+
+	* octave.cc (intern_argv): Use new string_vector constructor.
+
+	* ov-str-mat.cc (octave_char_matrix_str::all_strings): Have
+	charMatrix::row_as_string() strip trailing whitespace.
+
+	* dirfns.cc (Fglob): new function.
+
+	* sysdep.cc (oct_tilde_expand): Provide version that works on
+	string vectors too.
+	(Ftilde_expand): Work on string vector args.
+
+	* load-save.cc (save_binary_data): Call char_matrix_value() to
+	extract charMatrix from octave_value object, not all_strings().
+	(save_ascii_data): Likewise.
+	* pt-mat.cc (tree_matrix::eval): Likewise.
+
+	* ov.h (octave_value::all_strings): Return string_vector, not
+	charMatrix.
+	* ov-base.cc (octave_base_value::all_strings): Likewise.
+	* ov-str-mat.h, ov-str-mat.cc (octave_char_matrix_str::all_strings):
+	Likewise.
+
+Fri Nov  8 09:54:59 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defaults.cc, dynamic-ld.cc, fn-cache.cc, help.cc, oct-hist.cc,
+	octave.cc, pager.cc, pt-fcn.cc, toplev.cc, utils.cc, variables.cc,
+	lex.l: Change #include "" to #include <> for defaults.h,
+	oct-conf.h, oct-gperf.h, y.tab.h, and version.h, to avoid getting
+	them from $srcdir when we really want the version from the build
+	directory.  (Maybe this should be done for all the include files,
+	not just those that are auto-generated?  Hmm.)
+
+	* defaults.h.in (CXXLIB_LIST, CXXLIB_PATH, FLIB_LIST, FLIB_PATH):
+	Delete.
+
+	* Makefile.in (install-oct): Use $(INSTALL_PROGRAM) for .oct files.
+
+Thu Nov  7 07:59:07 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (gobble_leading_white_space): New arg, update_pos.
+	* (is_function_file): Don't update file position information here.
+
+	* Version 1.91.
+
+	* pt-fvc.cc (tree_indirect_ref::reference): If the lhs object is
+	not a map, convert it to one.
+
+	* ov-typeinfo.h (init_tab_sz): New static member.
+
+	* ov-struct.cc, ov-struct.h: Add hooks for custom memory management.
+	* ov-scalar.cc, ov-scalar.h: Likewise.
+	* ov-re-mat.cc, ov-re-mat.h: Likewise.
+	* ov-range.cc, ov-range.h: Likewise.
+	* ov-cx-mat.cc, ov-cx-mat.h: Likewise.
+	* ov-complex.cc, ov-complex.h: Likewise.
+	* ov-ch-mat.cc, ov-ch-mat.h: Likewise.
+
+Wed Nov  6 12:32:48 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pager.cc (do_sync): Don't call clear_external_pager() here.
+
+	* pt-const.h (tree_constant::allocator) New static member.
+	(tree_constant::operator new, tree_constant::operator delete):
+	Implement with custom allocator.
+
+	* syscalls.cc (Fgetgid, Fgetegid): New functions.
+
+	* sighandlers.cc (sigchld_handler): If necessary, reinstall
+	handler after call to waitpid().
+
+	* pager.cc (pager_death_handler): Don't use warning() to print
+	message.
+
+	* getgrent.cc: New file.
+	* Makefile.in (DLD_SRC): Add it.
+
+	* ov.cc (octave_value::print_with_name): Call is_map() instead of
+	print_as_structure().
+	* ov-struct.cc (octave_struct::print): Likewise.
+
+	* ov.h, ov.cc, pt-const.h: Delete force_numeric(), make_numeric(),
+	convert_to_matrix_type(), print_as_structure() member functions.
+
+	* variables.cc (is_function_file): Call gobble_leading_whitespace
+	here to strip all leading whitespace and comments.
+	(parse_fcn_file): If reading a function file, call
+	gobble_leading_whitespace again after resetting parser state to
+	grab help text.
+
+Tue Nov  5 13:00:35 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* syscalls.cc (Fgeteuid, Fgetuid): New functions.
+
+	* getpwent.cc: Use gripe_not_supported from gripes.cc, instead of
+	local gripe_not_implemented function.
+
+	* input.cc, sysdep.cc, variables.cc: Only include readline.h and
+	history.h if USE_READLINE is defined.
+
+	* help.cc: Make it compile without warnings even if USE_GNU_INFO
+	is not defined.
+
+	* sighandlers.h (octave_child_list): Don't define
+	HAVE_POSIX_SIGNALS HERE.
+
+	* sighandlers.cc (SIGHANDLER_RETURN): New macro.
+	(generic_sig_handler, sigchld_handler, sigfpe_handler,
+	sigint_handler, sigpipe_handler):  Use it.
+	(sigchld_handler, sigfpe_handler, sigint_handler, sigpipe_handler):
+	Only reinstall signal handler if MUST_REINSTALL_SIGHANDLER is defined.
+
+Sun Nov  3 00:45:30 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-const.cc (tree_constant::print): Just call val.print().
+	* ov-base.cc, ov-ch-mat.cc, ov-colon.cc, ov-complex.cc,
+	ov-cx-mat.cc, ov-range.cc, ov-re-mat.cc, ov-scalar.cc,
+	ov-str-mat.cc, ov-struct.cc ov-va-args.cc, ov.cc (print):
+	Handle pr_as_read_syntax arg.
+
+	* defaults.cc (subst_octave_home): Search for prefix repeatedly in
+	retval, not s.
+
+	* gripes.h: Make declaration of gripes_not_supported match
+	definition.
+
+	* mk-oct-links.in: In sed command, match "DEFUN_DLD *( *", not
+	"DEFUN_DLD_BUILTIN *( *".
+
+	* chol.cc, colloc.cc, dassl.cc, det.cc, eig.cc, expm.cc, fft.cc,
+	fft2.cc, filter.cc, find.cc, fsolve.cc, fsqp.cc, getpwent.cc,
+	getrusage.cc, givens.cc, hess.cc, ifft.cc, ifft2.cc, inv.cc,
+	log.cc, lpsolve.cc, lsode.cc, lu.cc, minmax.cc, npsol.cc, pinv.cc,
+	qpsol.cc, qr.cc, quad.cc, qzval.cc, rand.cc, schur.cc, sort.cc,
+	svd.cc, syl.cc, time.cc: Change all uses of DEFUN_DLD_BUILTIN to
+	be just DEFUN_DLD.
+
+	* defun-dld.h: Eliminate DEFUN_DLD_BUILTIN.
+
+	* syswait.h: Use #ifdef HAVE_SYS_WAIT_H, not #if HAVE_SYS_WAIT_H
+	to decide whether to include sys/wait.h.
+
+	* pt-exp-base.h (tree_expression): Declare oper() here as a
+	virtual member function.
+
+	* pt-pr-code.cc (tree_print_code::visit_constant): Check for
+	string before checking for char_matrix.
+
+	* ov-ch-mat.cc (octave_char_matrix::print): Supply correct number
+	of args to octave_print_internal().
+
+Sat Nov  2 20:44:55 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (Ftmpnam): Rename from Foctave_temp_file_name.
+
+	* Makefile.in (DLD_SRC): Move time.cc and getrusage.cc here from
+	SOURCES.  Add getpwent.cc.
+
+	* getrusage.cc: Rename from resource.cc.  Make getrusage a
+	loadable function.
+
+	* time.cc: Rename from timefns.cc.  Make time functions loadable.
+
+	* getpwent.cc: New file.
+
+Wed Oct 30 01:06:19 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Version 1.90.
+
+	* Makefile.in (DISTFILES): Add ChangeLog.
+
+	* ov-range.cc (octave_range::convert_to_str): New function.
+
+	* ov-str-mat.h (octave_char_matrix_str::char_matrix_value):
+	Delete function.  Already handled by octave_char_matrix class.
+
+	* ov-ch-mat.h (octave_char_matrix::convert_to_str): New function.
+
+	* pager.cc (Fmore): Set page_screen_output to 1.0 or 0.0, not
+	"true" or "false".
+
+	* ov-ch-mat.cc, ov-struct.cc, ov-struct.h, pr-output.cc,
+	pt-cmd.cc, pt-const.cc, pt-const.h, pt-fcn.cc, pt-fvc-base.cc,
+	pt-fvc-base.h, pt-fvc.cc, pt-fvc.h, rand.cc, sighandlers.cc,
+	variables.cc, variables.h: Delete unused code.
+
+	* octave.cc: Only include pwd.h if HAVE_PWD_H.
+
+	* oct-strstrm.h: Include <string>, not <string.h>.
+
+	* defaults.cc, dirfns.cc, file-io.cc, help.cc, input.cc,
+ 	oct-hist.cc, oct-procbuf.cc, oct-procbuf.h, octave.cc, pager.h,
+ 	procstream.h, pt-misc.cc, pt-plot.cc, sighandlers.cc, strftime.c,
+ 	syscalls.cc, sysdep.cc, syswait.h, toplev.cc, utils.cc,
+ 	variables.cc: Only include sys/types.h if HAVE_SYS_TYPES_H.
+
+	* error.h (panic): Use GCC_ATTR_NORETURN macro, not NORETURN.
+	* toplev.h (clean_up_and_exit): Likewise.
+	* utils.h (jump_to_top_level): Likewise.
+
+	* derfaults.h.in, defaults.cc (local_arch_lib_dir): New variable.
+	* defaults.cc (set_default_local_arch_lib_dir): New function.
+	(install_defaults): Call it.
+	(exec_path): Use Vlocal_arch_lib_dir here.
+	* toplev.cc (octave_config_info): Add localarchlibdir to structure.
+
+Tue Oct 29 15:54:27 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install-oct): Don't do anything if $(OCT_FILES) is
+	empty.
+
+	* ov-range.cc (octave_range::index): New Function.
+	(octave_range::all, octave_range::any, octave_range::is_true):
+	Make these functions work.
+
+	* ov.cc (octave_value::try_assignment_with_conversion): Remove
+	left over debugging print statements.
+
+Mon Oct 28 10:49:03 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* strftime.c: Add missing #endif for previous change.
+
+Sun Oct 27 14:06:44 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-hist.cc (do_history): Rewite option parsing to avoid
+	(probably bogus) errors from g++ on cygwin32 system.
+
+	* strftime.c: Use autoconf macros TIME_WITH_SYS_TIME and
+	HAVE_SYS_TIME_H to decide which time.h files to include.
+
+	* oct-stream.h, oct-stream.cc (octave_stream::error,
+	octave_base_stream::error): Rename errno => err_num.
+
+Sat Oct 26 10:40:05 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-hist.cc (do_history): Move declaration of file inside
+	conditional.
+
+	* defun.h (DEFVAR_INT): Set eternal flag with (svc_fcn != 0)
+	instead of (sv_fcn ? 1 : 0)
+
+Fri Oct 25 01:10:51 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov-ch-mat.h (octave_char_matrix::any): Return 0.0 instead of false.
+	(octave_char_matrix::all): Likewise.
+
+	* input.cc (Fecho): When binding value of echo_executing_commands,
+	cast ECHO_* to double.
+
+	* sighandlers.cc (octave_child_list::do_remove): Delete unused
+	variable `enlarge'.
+
+	* pt-const.h (tree_constant::tree_constant (const tree_constant&)):
+	Don't pass arg to tree_fvc constructor.
+
+	* resource.cc (getrusage): [HAVE_GETRUSAGE && RUSAGE_TIMES_ONLY]:
+	Only fill in time values.
+
+Thu Oct 24 20:37:28 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y: Comment out the %expect declaration so byacc can
+	compile this file.
+	(if_cmd_list): Add missing semicolon.
+	Include <cstdlib> for getenv if using byacc.
+
+	* ov.h: Move typedefs outside of octave_value class scope to avoid
+	problem with cygwin32 beta16 compiler.
+
+Fri Oct 18 13:44:33 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h (octave_value::index): Undo previous change.
+	* ov.cc (octave_value constructors): Call maybe_mutate() in most
+	cases.
+
+	* ov-complex.cc (octave_complex::index): Avoid implicit type
+	conversion back to scalar type.
+	* ov-scalar.cc (octave_scalar::index): Likewise.
+
+	* ov.h (octave_value::index): Call maybe_mutate() on retval before
+	returning it.
+
+Wed Oct 16 12:00:11 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* ov.h (octave_value::struct_elt_val): New optional arg, silent.
+	* ov-base.h, ov-base.cc, ov-struct.h, ov-struct.cc: Likewise, but
+	for the derived classes the arg is required.
+
+	* data.cc (Fstruct_contains): Require arguments to be struct and
+	string, respectively.  Call octave_value::struct_elt_val with
+	silent flag set.
+
+	* pt-mat.cc (tm_row_const::tm_row_const_rep::eval_error,
+	tm_row_const::tm_row_const_rep::eval_warning): New functions.
+	(tm_row_const::tm_row_const (const tree_matrix_row&): Use them to
+	give better error messages.
+
+	* pt-fvc.cc (tree_identifier::eval): Avoid dereferencing null
+	object_to_eval.
+
+Tue Oct 15 11:35:51 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* op-cs-cm.cc, op-cs-cs.cc, op-cs-m.cc, op-cs-s.cc
+	(complex_matrix_conv): New functions.
+	Install preferred assignment conversion and widening ops.
+
+	* op-s-cm.cc, op-s-cs.cc (complex_matrix_conv): New functions.
+	Install preferred assignment conversion and widening ops.
+
+	* op-s-m.cc, op-s-s.cc (matrix_conv): New functions.
+	Install preferred assignment conversion and widening ops.
+
+	* ov.cc (octave_value::try_assignment_with_conversion,
+	octave_value::convert_and_assign, octave_value::try_assignment):
+	New functions.
+	(octave_value::assign): Use them to implement twisted logic for
+	type conversions in assigments.
+
+	* pt-const.h (tree_constant::maybe_mutate): New function.
+	* ov.h (octave_value::maybe_mutate): New function.
+	(octave_value::try_narrowing_conversion): New function.
+	Use just one typedef for widening_op_fcn and numeric_conv_fcn.
+	Change all uses.
+	* ov-base.h, ov-complex.h, ov-complex.cc, ov-cx-mat.h,
+	ov-cx-mat.cc, ov-range.h, ov-range.cc, ov-re-mat.h, ov-re-mat.cc,
+	Provide derived class versions of try try_narrowing_conversion().
+
+	* pr-output.cc (octave_print_internal): Don't bother handing off
+	to scalar/real versions, even when it would seem appropriate.
+
+	* symtab.cc (symbol_def::define (tree_constant *)): Call
+	maybe_mutate on constants here.
+
+Mon Oct 14 11:05:24 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-fvc.cc (tree_identifier::eval): If retval is undefined and
+	the object to eval is a constant, print	error message.
+
+	* Makefile (distclean): Remove *.oct too.
+
+	* defun-int.h: Include variables.h here.
+
+Sun Oct 13 10:52:28 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (print_symbol_info_line): Never print negative
+	diminsions.
+
+	* symtab.h (octave_symbol_record_info): Store const_type as string.
+	(octave_symbol_record_info::init): Delete.  Fix constructors.
+	(octave_symbol_record_info::type_name): Handle const_type as string.
+
+	* octave.cc (maximum_braindamage): Replace "true" with 1.0 and
+	"false" with 0.0 in calls to bind_builtin_variable().
+	Include sun-utils.h here.
+	(intern_argv): Also bind __argv__.
+
+Sat Oct 12 13:40:21 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (distclean): Also delete mk-oct-links.
+
+Fri Oct 11 13:13:13 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	Changes for Octave's new type system:
+
+	* arith-ops.cc: Delete.
+	* pt-const.h, pt-const.cc: Massive changes.  Most functionality
+	moved to ov.h, ov.cc, and derived classes.
+
+	* variables.h, variables.cc (octave_variable_reference): New class
+	for getting references to variables and structure elements used in
+	assignments or value contexts.
+
+	* symtab.h, symtab.cc (symbol_record::define (const octave_value&),
+	symbol_record::variable_value, symbol_record::variable_reference):
+	New functions.
+	(symbol_record_info::type_name): Rename from type_as_string.
+
+	* pt-fvc-base.h, pt-fvc-base.cc (tree_fvc::increment,
+	tree_fvc::decrement): New functions to replace
+	tree_fvc::bump_value.
+	#if 0 assign and lookup_map_element functions.
+
+	* pt-mvr.cc (tree_multi_assignment_expression::eval):
+	Generated RHS value is now a tree_constant.
+
+	* pt-exp.h, pt-exp.cc (tree_boolean_expression): New class.
+	(tree_unary_expression, tree_binary_expression,
+	tree_boolean_expression): Move codes here from tree_expression.
+	(tree_simple_assignment_expression): Cope with changes to way of
+	doing assignments.
+
+	* pt-exp-base.h, pt-exp-base.cc (enum type): Delete codes for
+	unary and binary ops.
+	(tree_expression::expression_type): Delete.
+	(tree_expression::is_logically_true): Hand off to
+	octave_value::is_true to do real work.
+
+	* pr-output.h, pr-output.cc (any_element_is_inf_or_nan,
+	all_elements_are_ints): Delete.  Call member new functions for
+	these operations.
+	(free_format, plus_format, bank_format, hex_format,
+	compact_format, print_e, print_big_e): Use bool, not int.
+	(octave_print_internal): Hand off to scalar/real versions when
+	appropriate.
+
+	* octave.cc (main): Call initialize_types() and install_ops().
+	(verbose_usage): Add WWW address to output.
+
+	* parse.y (indirect_ref): Handle by making a tree instead of a
+	list using new version of tree_indirect_ref class.
+
+	* parse.y (make_boolean_op): New function.  Use it instead of
+	make_binary_op to create trees for && and || ops.
+	(make_binary_op): Codes come from tree_binary_expression now,
+	instead of tree_expression.
+	(make_unary_op): Codes come from tree_unary_expression now,
+	instead of tree_expression.
+	(make_boolean_op): Codes come from tree_boolean_expression.
+
+	 *parse.y (tree_constant_type): Change type to tree_constant* from
+	octave_value*, and rename from octave_value_type.  Change uses.
+
+	* defun.h (DEFVAR_INT): Pass octave_value not pointer to
+	octave_value for defn when creating builtin_variable.
+
+	* gripes.h, gripes.cc (gripe_invalid_conversion): Args are
+	strings, not char*.
+	(gripe_implicit_conversion, gripe_divide_by_zero): New extern
+	gripe functions.
+
+	* mkbuiltins: For each file, create a separate static function to
+	install builtins, then create another single extern function to
+	call all of them.
+
+	* pt-fcn.cc (tree_function::bind_nargin_and_nargout):
+	Just pass doubles and let symbol_record::define handle creating
+	new value.
+
+	* pt-pr-code.cc, pt-pr-code.h (visit_constant): Renamed from
+	visit_octave_value.
+	(visit_unary_expression): Use tree_expression::is_prefix_op()
+	instead of switch on op types.
+
+	* pt-walk.h (visit_constant): Renamed from visit_octave_value.
+
+	* pt-misc.cc (initialize_undefined_elements): Get reference to
+	tmp, then assign.
+	* pt-cmd.cc (do_for_loop_once): Likewise, for loop identifier.
+
+	* input.cc (generate_struct_completions, looks_like_struct): Cast
+	tmp_fvc to tree_constant*, not octave_value*.
+	(get_user_input): Call print() on retval, not eval(1).
+
+	* help.cc (Ftype): Cast defn to tree_constant*, not octave_value*.
+
+	* balance.cc: Fix docstring.
+
+	* dassl.cc, fsolve.cc, load-save.cc, lsode.cc, npsol.cc, qpsol.cc,
+	quad.cc:
+	Include pt-fvc.h.
+
+	* data.cc (Fstruct_contains): call octave_value::struct_elt_val,
+	not octave_value::lookup_map_element.
+
+	* dirfns.cc (Fcd): Pass directory name as string directly to
+	bind_builtin_variable instead of creating new octave_value.
+
+	* toplev.cc: Include pt-fvc.h and lo-mappers.h
+
+	* data.cc, error.cc, file-io.cc, load-save.cc, pager.cc,
+	pt-mat.cc, pt-plot.cc, syscalls.cc, toplev.cc:
+	Include variables.h.
+
+	* Array-tc.cc, Map-tc.cc, SLList-misc.cc SLList-tc.cc, data.cc,
+	defaults.cc, dynamic-ld.cc, error.cc, gripes.cc, lex.l, octave.cc,
+	oct-map.h, oct-map.cc, oct-obj.h, pt-cmd.cc, pt-exp.cc, pt-fcn.cc,
+	pt-fvc-base.cc, pt-mat.cc, pt-misc.cc, pt-mvr-base.cc, pt-mvr.h,
+	resource.cc, strfns.cc, sysdep.cc, timefns.cc, toplev.cc:
+	Include ov.h instead of pt-const.h.
+
+	* xpow.cc (any_element_is_negative): Delete.
+	(xpow and elem_xpow functions): Check conformance here.
+
+	* xdiv.cc (mx_leftdiv_conform, mx_div_conform):
+	Now template-based, taking Matrices instead of dimensions as args.
+	Change all callers.
+
+	* op-cm-cm.cc, op-cm-cm.h, op-cm-cs.cc, op-cm-cs.h, op-cm-m.cc,
+ 	op-cm-m.h, op-cm-s.cc, op-cm-s.h, op-cs-cm.cc, op-cs-cm.h,
+ 	op-cs-cs.cc, op-cs-cs.h, op-cs-m.cc, op-cs-m.h, op-cs-s.cc,
+ 	op-cs-s.h, op-m-cm.cc, op-m-cm.h, op-m-cs.cc, op-m-cs.h, op-m-m.cc,
+	op-m-m.h, op-m-s.cc, op-m-s.h, op-s-cm.cc, op-s-cm.h, op-s-cs.cc,
+ 	op-s-cs.h, op-s-m.cc, op-s-m.h, op-s-s.cc, op-s-s.h,
+ 	op-str-str.cc, op-str-str.h, ops.cc, ops.h, ov-base.cc, ov-base.h,
+ 	ov-ch-mat.cc, ov-ch-mat.h, ov-colon.cc, ov-colon.h, ov-complex.cc,
+ 	ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, ov-range.cc, ov-range.h,
+ 	ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h, ov-str-mat.cc,
+	ov-str-mat.h, ov-struct.cc, ov-struct.h, ov-typeinfo.cc,
+ 	ov-typeinfo.h, ov-va-args.cc, ov-va-args.h, ov.cc, ov.h:
+ 	New files for Octave's new type system.
+	* Makefile.in: Add them to the appropriate lists.
+
+Sat Sep 14 21:58:33 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* mkbuiltins: Use .df instead of .def.
+	Write one function for each .df file, then call them
+	all in install_builtin_functions().
+	* Makefile.in: Handle .df instead of .def.
+
+	* balance.cc (balance): Fix typo in doc string.
+
+Wed Aug 28 21:01:49 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (verbose_usage): Include WWW address and bug-octave
+	mailing list address.
+
+Tue Aug 20 17:41:19 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in: Only define pattern rules for making .oct files if
+	OCTAVE_LITE is true.
+	Only add pic/ to $(TI_OBJ) if $(SHARED_LIBS) is true.
+	(stamp-picdir): Only create a pic subdirectory if SHARED_LIBS or
+	OCTAVE_LITE is true AND CPICFLAG or CXXPICFLAG is not empty.
+
+	* minmax.cc (Fmin, Fmax): Deal with changes to Matrix class
+	min/max methods.
+
+Thu Jul 25 01:42:38 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (generate_possible_completions): Force the names to be
+	unique.
+
+	* load-save.cc (read_mat_binary_data): Expect to read terminating
+	NUL character in the variable name.
+	(save_mat_binary_data): Likewise, save it here.
+
+Wed Jul 24 05:08:07 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lsode.cc (Flsode): Don't set the return value if an error
+	occurred during integration.
+	* dassl.cc (Fdassl): Likewise.
+
+	* file-io.cc (symbols_of_file_io): Redefine values of SEEK_SET,
+	SEEK_CUR, and SEEK_END for Matlab compatibility.
+	* oct-stream.cc (seek): Check for compatible values of ORIGIN arg.
+	Also handle "bof", "cof", and "eof".
+
+Fri Jul 19 15:24:36 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-const.cc: When creating octave_value_reps from ComplexMatrix
+	values, check to see if all the elements are actually real.
+
+Tue Jul 16 10:53:42 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (decode_prompt_string): Swap meanings of \h and \H.
+
+Mon Jul 15 16:01:51 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (run_command_and_return_output): Renamed from do_system.
+	(Fsystem): Make `system ("emacs")' work as one would expect.
+
+Sun Jul 14 17:34:33 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (Ffopen, Ffread, Ffwrite): Update doc strings,
+	correctly handle default architecture and precision args.
+
+	* load-save.cc (mopt_digit_to_float_format): Rename from
+	get_floating_point_format.
+	(float_format_to_mopt_digit): New function.
+
+	* oct-stream.cc (octave_base_stream::read, octave_base_stream::write):
+	Simplify by calling Matrix::read and Matrix::write to do real work
+	of reading, writing, and format conversion.
+
+	* oct-stream.h (octave_base_stream): Move data_type enum to
+	liboctave/data-conv.h.  Use float_format from
+	liboctave/mach-info.h instead of arch_type enum.
+
+	* sysdep.h, sysdep.cc (octave_words_big_endian, ten_little_endians):
+ 	Delete.  Now part of oct_mach_info class in liboctave.
+
+Tue Jul  9 11:18:59 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* arith-ops.cc, balance.cc, dassl.cc, data.cc, filter.cc, find.cc,
+	fsolve.cc, load-save.cc, log.cc, lsode.cc, minmax.cc, npsol.cc,
+	oct-obj.cc, oct-stream.cc, pr-output.cc, pt-cmd.cc, pt-const.cc,
+	pt-fvc.cc, pt-plot.cc, quad.cc, rand.cc, sighandlers.cc, sort.cc,
+	syscalls.cc, unwind-prot.cc, xdiv.cc, xpow.cc:
+	When indexing arrays, use operator() instead of elem() so that
+	bounds checking can be done consistently.
+
+Mon Jun 24 02:13:27 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install-oct): Use INSTALL_PROGRAM, instead of
+	INSTALL_DATA for installing shared libraries.
+
+	* lex.l (grab_help_text): Ignore all initial comment characters,
+	not just the first.
+	* variables.cc (gobble_leading_white_space): Likewise.
+
+Sat Jun 22 22:43:45 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.h, input.cc (octave_completion_matches_called): New varaible.
+	(Fcompletion_matches): Set it to true on a successful call.
+	* toplev.cc (main_loop): If octave_completion_matches_called is
+	true, don't increment current_command_number.
+
+Thu Jun 13 03:52:19 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (is_mapper_function_name,
+	is_builtin_function_name): New functions.
+	(Fdocument): Use them.
+	Define as regular function, not a text style function.
+
+Thu Jun  6 00:09:25 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-plot.cc: Handle new built-in variable `gnuplot_has_frames'.
+
+Wed Jun  5 14:45:04 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (decode_prompt_string): \h now means the whole host
+	name and \H is the host name up to the first `.'.
+
+Thu May 30 23:41:51 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* fn-cache.cc (octave_fcn_file_name_cache::do_list): Always
+	recompute the lists of function files instead of trying to cache
+	them.
+
+Tue May 28 12:05:24 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (warn_old_style_preference): New function.
+	(check_preference): Use it.
+
+	* fn-cache.h: Include <ctime> here.
+
+Fri May 24 00:57:14 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (completion_matches): Don't return empty string_vectors.
+
+	* octave.cc (long_opts): Add braindead.
+
+Thu May 23 01:49:33 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (gnu_readline): New optional arg, force_readline.
+	(get_user_input): Use it.
+
+	* pt-const.cc (OCT_VAL_REP::assign): If converting the rhs to a
+	numeric value, convert a copy, not the actual object.
+	(OCT_VAL_REP::do_index): Prevent s([]) from resulting in a string
+	with zero rows.
+
+	* mappers.cc: Handle toascii here.
+	* strfns.cc: Not here.
+
+	* mappers.cc: Handle tolower and toupper here.
+	* mappers.h: Rename can_return_complex_for_real to flag and
+	overload meaning for ch_mapper.
+	* pt-fvc.cc (apply_mapper_fcn): Handle overloaded meaning.
+
+	* syscalls.cc (stat): Return 3 values instead of just 1.
+	(lstat): Likewise.
+
+Wed May 22 02:34:20 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-const.cc (OCT_VAL_REP::make_numeric): For string to number
+	conversions, correctly set type tag before calling force_numeric.
+	(do_binary_op): Force string to number conversion if both args are
+	strings and we are doing some sort of comparison operation.
+
+	* Makefile.in (stamp-tinst, stamp-interp): Use SH_TERMLIBS and
+	SH_LIBS instead of TERMLIBS and LIBS.
+
+	* pt-const.cc (do_unary_op): Add special case to handle
+	transposing strings.
+
+	* pt-mat.cc (Vstring_fill_char): New variable.
+	(symbols_of_pt_mat): DEFVAR it.
+
+	* input.cc (generate_struct_completions,
+	generate_possible_completions):	Return string_vector, not char **.
+	Change all callers.
+
+	* pt-const.cc (lookup_map_element): Use substr() correctly.
+
+Tue May 21 21:37:17 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct.h: New file.
+	* Makefile.in (INCLUDES): Add it to the list.
+
+	* octave.cc: New args --no-site-file and --no-init-file.  Delete
+	--ignore-init-file.  The flag --norc (-f) implies both
+	--no-site-file and --no-init-file.
+
+Fri May 17 01:54:51 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (Fcompletion_matches): New function.
+
+	* utils.cc (get_fcn_file_names): Delete.
+	* help.cc (simple_help): Use new file name cache instead of
+	calling get_fcn_file_names.
+	* variables.cc (make_name_list): Likewise.
+
+	* fn-cache.h, fn-cache.cc, Map-fnc.cc: New files.
+	* Makefile.in: Add them to the lists.
+
+	* Makefile.in (uninstall): Install in octincludedir, not includedir.
+
+	* pt-plot.h: Include <csignal> here.
+
+Thu May 16 10:52:51 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (octave_stream::oscanf, octave_base_stream::oscanf,
+ 	octave_base_stream::do_oscanf): New functions for backward
+	compatibility with older versions of Octave.
+	(scanf_format_elt, scanf_format_list): Keep track of width specifier.
+	* file-io.cc (Fscanf): New function.
+	(Fscanf, Ffscanf, Fsscanf): Handle compatibility arg.
+
+Wed May 15 01:00:12 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-stream.cc (do_scanf): If doing '%c' conversion, unset
+	ios::skipws on input stream.
+
+	* sighandlers.h, sighandlers.cc (octave_child, octave_child_list):
+	New classes for keeping track of the child processes we create.
+	(sigchld_handler): Check in octave_child_list to see if there is
+	anything we can do for the child that died.
+	* pager.cc: Register child pager process.
+	* pt-plot.cc: Likewise, for the plotter.
+	* Array-oc.cc: New file
+	* Makefile.in (TI_SRC): Add it to the list.
+
+	* pager.cc (do_sync): Don't check error_state.
+	(flushing_output_to_pager): New static variable.
+	(flush_octave_stdout): Use it to avoid doing anything if already
+	flushing output.
+
+	* sighandlers.cc (sigchld_handler): Call warning instead of
+	writing directly to cerr.
+	(sigpipe_handler): Call warning instead of message.
+
+	* octave.cc (main): Call install_signal_handlers,
+	initialize_file_io, initialize_symbol_tables, and install_builtins
+	before parsing command line options.
+
+	* user-prefs.h, user-prefs.cc: Delete.
+
+	* utils.cc (check_preference): Move here.
+	* user-prefs.cc: From here.
+
+	* defaults.cc: New file.  Move initialization stuff from
+	variables.cc.  Move DEFVARS for EDITOR, EXEC_PATH, LOADPATH,
+	IMAGEPATH, and OCTAVE_VERSION here.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	INFO_FILE and INFO_PROGRAM.
+	* help.cc: Move all of that here.
+	(symbols_of_help): Add DEFVARS for INFO_FILE and INFO_PROGRAM.
+
+Tue May 14 00:23:06 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pager.cc (do_sync): Be more defensive about sending stuff to the
+	external pager.
+	* sighandlers.cc (sigchld_handler): For now, only wait for
+	octave_pager_pid.  Don't call error().  Do set octave_pager_pid to
+	-1 if the pager process no longer exists.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	PWD.
+	* dirfns.cc: Move all of that here.
+	(symbols_of_dirfns): New function.
+	* variables.cc (install_builtin_variables): Call it.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	default_save_format and save_precision.
+	* load-save.cc: Move all of that here.
+	(symbols_of_load_save): New function.
+	* variables.cc (install_builtin_variables): Call it.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	warn_divide_by_zero.
+	* arith-ops.cc: Move all of that here.
+	(symbols_of_arith_ops): New function.
+	* variables.cc (install_builtin_variables): Call it.
+
+	* mappers.cc: Add wrappers for ctype is* functions so that they
+	will work on systems that only define them as macros.
+
+Mon May 13 00:27:08 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	suppress_verbose_help_message.
+	* help.cc: Move all of that here.
+	(symbols_of_help): New function.
+	* variables.cc (install_builtin_variables): Call it.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	treat_neg_dim_as_zero.
+	* pt-const.cc: Move all of that here.
+
+	* pager.cc (octave_pager_stream::do_sync): Don't return early if
+	not interactive.
+
+	* data.h: New file.
+	* Makefile.in (INCLUDES): Add it to the list.
+	* data.cc (symbols_of_data): New function.  Move definition of I,
+	Inf, J, NaN, e, eps, i, inf, j, nan, pi, realmin, and realmax here.
+	* variables.cc: From here.
+	(install_builtin_variables): Call symbols_of_data.
+
+	* file-io.cc (symbols_of_file_io): New function.  Move definition
+	of SEEK_CUR, SEEK_END, SEEK_SET, stdin, stdout, stderr here.
+	* variables.cc: From here.
+	(install_builtin_variables): Call symbols_of_file_io.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	do_fortran_indexing, implicit_str_to_num_ok,
+	ok_to_lose_imaginary_part, prefer_column_vectors,
+	prefer_zero_one_indexing, print_answer_id_name,
+	propagate_empty_matrices, resize_on_range_error, and
+	struct_levels_to_print.
+	* pt-const.cc: Move all of that here.
+	(symbols_of_pt_const): New function.
+	* variables.cc (install_builtin_variables): Call it.
+	* pt-fvc.cc (tree_identifier::assign): Use Vresize_on_range_error
+	instead of user_pref.resize_on_range_error here.
+	* load-save.cc (save_mat_binary_data): Use Vimplicit_str_to_num_ok
+	instead of user_pref.implicit_str_to_num_ok here.
+	* utils.cc (empty_arg): Use Vpropagate_empty_matrices instead of
+	user_pref.propagate_empty_matrices here.
+	* pt-exp-base.cc (tree_expression::is_logically_true): Likewise..
+
+	* pt-fcn.cc (symbols_of_pt_fcn): Also move DEFVAR for
+	default_return_value here.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	ps1, ps2, ps4, and completion_append_char.
+	* input.cc: Move all of that here.
+	(symbols_of_input): New function.
+	* variables.cc (install_builtin_variables): Call it.
+	* pt-pr-code.cc (indent): Use Vps4 instead of user_pref.ps4 here.
+	* help.cc (Ftype): Also here.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	automatic_replot, gnuplot_binary, and gnuplot_has_multiplot.
+	* pt-plot.cc: Move all of that here.
+	(symbols_of_pt_plot): New function.
+	* variables.cc (install_builtin_variables): Call it.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	beep_on_error.
+	* error.cc: Move all of that here.
+	(symbols_of_error): New function.
+	* variables.cc (install_builtin_variables): Call it.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	empty_list_elements_ok.
+	* pt-mat.cc: Move all of that here.
+	(symbols_of_pt_mat): New function.
+	* variables.cc (install_builtin_variables): Call it.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	define_all_return_values, return_last_computed_value, and
+	silent_functions.
+	* pt-fcn.cc: Move all of that here.
+	(symbols_of_pt_fcn): New function.
+	* variables.cc (install_builtin_variables): Call it.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	whitespace_in_literal_matrix.
+	* lex.l: Move all of that here.
+	(symbols_of_lex): New function.
+	* variables.cc (install_builtin_variables): Call it.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	warn_assign_as_truth_value, warn_comma_in_global_decl,
+	warn_function_name_clash, and warn_missing_semicolon.
+	* parse.y: Move all of that here.
+	(symbols_of_parse): New function.
+	* variables.cc (install_builtin_variables): Call it.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	output_precision, output_max_field_width, print_empty_dimensions,
+	and split_long_rows.
+	* pr-output.cc: Move all of that here.
+	(symbols_of_pr_output): New function.
+	* variables.cc (install_builtin_variables): Call it.
+
+	* user-prefs.h, user-prefs.cc: Delete all stuff related to
+	page_screen_output, page_output_immediately, and pager_binary.
+	* pager.cc: Move all of that here.
+
+	* user-prefs.h (check_preference): Provide declaration.
+	* user-prefs.cc (check_preference): Make external.
+
+	* toplev.cc (Foctave_config_info): New function.
+
+	* oct-conf.h.in: New file
+	* Makefile.in (oct-conf.h): New target.
+	Add it to the appropriate lists.
+
+	* sighandlers.cc (sigchld_handler): Don't complain about wait
+	returning a negative value.
+
+	* file-io.cc (Fsscanf, Fsprintf): Pass true for second arg of
+	octave_stream constructor.
+
+	* oct-stream.h (octave_stream): New field, preserve.
+	(octave_stream::~octave_stream): If preserve, don't delete rep.
+
+	* pager.cc (symbols_of_pager): Set default for
+	page_output_immediately to 0.
+
+	* toplev.cc (do_system): Correctly handle return_output.
+	Append ends to output_buf before calling str().
+
+	* variables.cc: If M_PI and M_E are available, use them.
+
+	* mk-oct-links.in (links_dir): If old link exists, delete it first.
+
+Sun May 12 01:46:07 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (DISTFILES): List defaults.h.in and oct-gperf.h here.
+	(INCLUDES): Not here.
+	(install-inc): New target.
+	(uninstall): Also delete libraries and include files.
+	(install-inc): If linkdir is a directory, leave it alone.
+	(TERMLIBS, LIBPLPLOT, LIBDLFCN): Don't substitute here (now in
+	Makeconf).
+
+	* oct-stream.cc (octave_base_stream::do_read): Provide initial
+	value for tmp var.
+
+	* pt-walk.h, pt-pr-code.h, pt-pr-code.cc: New tree-walking classes.
+	* Makefile.in: Add them to the appropriate lists.
+	* pt-fvc-base.h, pt-exp-base.cc, pt-fvc-base.cc, pt-mvr-base.cc,
+	pt-base.cc, pt-mvr.cc, pt-mat.h, pt-mat.cc, pt-fvc.cc,
+	pt-const.cc, pt-cmd.cc, pt-const.h, pt-misc.cc, pt-plot.cc,
+	pt-fcn.cc, pt-plot.h, pt-mvr.h, pt-mvr-base.h, pt-misc.h,
+	pt-fcn.h, pt-exp.h, pt-exp.cc, pt-exp-base.h, pt-fvc.h, pt-cmd.h,
+	pt-base.h:
+	Replace print_code stuff with accept() functions.
+	Add member access functions where necessary.
+	* help.cc (Ftype): Update to use new method of walking trees to
+	print text representation of user-defined functions.
+
+	* file-io.cc (Ffscanf): Update doc string.
+	(Fsscanf): Likewise.
+
+	* oct-stream.cc (octave_base_stream::do_read): Correctly set max_size.
+	Pad mval with zeros on final resize.
+	(octave_base_stream::do_scanf): Likewise.
+	(do_scanf_conv): Correctly resize mval.
+
+Sat May 11 05:14:09 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pager.cc (octave_pager_buf::sync): Correctly set bypass_pager.
+
+	* lex.l (<MATRIX>{SNLCMT}*\]{S}*): Match SNLCMT, not just SNL.
+
+Fri May  3 11:05:30 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-const.cc (OCT_VAL_REP::set_index): Complain if type can't be
+	indexed.
+
+	* input.cc (get_user_input): Don't increment input line number if
+	input is coming from eval string.
+
+	* user-prefs.cc: Allow empty strings for prompts.
+
+Thu May  2 10:50:29 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-mvr.h (class tree_oct_obj): Declare values data member const.
+
+Sun Apr 28 03:16:52 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* user-prefs.h (user_preferences): New field,
+	`page_output_immediately'.
+	* user-prefs.cc (init_user_prefs): Initialize it.
+	(page_output_immediately): New function.
+	* pager.cc (syms_of_pager): Add DEFVAR.
+	(really_flush_to_pager): New file-scope variable.
+	(flush_octave_stdout): Set and restore it.
+	(octave_pager_buf::sync): Check it, user_pref.page_screen_output,
+	and user_pref.page_output_immediately to decide when to really
+	flush output.
+	(more_than_a_screenful): New function.  If paging but not
+	immediately, then check this too.
+
+	* pager.cc (default_pager): Move here from variables.cc.  If pager
+	is less and LESS is not in the environment, append useful flags.
+	(symbols_of_pager): New function.
+	* variables.cc (install_builtin_variables): Call it.
+	Delete pager-related DEFVARs.
+
+	* syswait.h (WIFSIGNALLED): Define if sys/wait.h doesn't.
+
+	* sighandlers.cc: Handle SIGCHLD.
+
+	* pager.cc, pager.h: Rewrite.
+	* pt-mvr.cc, pt-misc.cc, pt-fcn.cc, pt-const.cc, oct-hist.cc,
+	file-io.cc, help.cc, variables.cc, qpsol.cc, dassl.cc, quad.cc,
+	npsol.cc, lsode.cc, fsolve.cc, load-save.cc, dirfns.cc, octave.cc,
+	toplev.cc, error.cc, input.cc:
+	Write to octave_stdout and octave_diary instead of calling
+	maybe_page_output() or maybe_write_to_diary_file().
+
+	* oct-procbuf.h, oct-procbuf.cc: New files.
+	* procstream.h (class procstreambase): Use octave_procbuf instead
+	of procbuf from libg++, so we can get pids of subprocesses.
+
+Fri Apr 26 01:21:29 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-const.cc (OCT_VAL_REP::do_index): Call maybe_mutate() before
+	returning.
+
+	* mappers.h (struct Mapper_fcn): Delete.
+	(struct builtin_mapper_function): New field ch_mapper.
+	* pt-fvc.h (tree_builtin): Convert type of mapper_fcn from
+	Mapper_fcn to builtin_mapper_function.
+	* variables.cc (install_builtin_mapper): Likewise, for arg.
+	Simplify, since we don't have to do the copying ourselves now.
+	* pt-fvc.cc (apply_mapper_function): Handle ch_mapper case.
+	* defun.h (DEFUN_MAPPER): Likewise.
+	* mappers.cc (install_builtin_mappers): Likewise.
+	Add ctype is* functions here.
+
+Thu Apr 25 00:57:06 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* arith-ops.h, defun-int.h, defun.h, dynamic-ld.h, gripes.h,
+	load-save.h, oct-map.h, oct-obj.h, oct-stream.h, pt-cmd.h,
+	pt-const.h, pt-exp-base.h, pt-exp.h, pt-fcn.h, pt-fvc-base.h,
+	pt-fvc.h, pt-mat.h, pt-misc.h, pt-mvr-base.h, pt-mvr.h, pt-plot.h,
+	symtab.h, toplev.h, utils.h, variables.h, xpow.h, Array-tc.cc,
+	Map-i.cc, Map-tc.cc, SLList-tc.cc, arith-ops.cc, balance.cc,
+	bogus.cc, chol.cc, colloc.cc, dassl.cc, data.cc, det.cc,
+	dirfns.cc, eig.cc, error.cc, expm.cc, fft.cc, fft2.cc, file-io.cc,
+	filter.cc, find.cc, fsolve.cc, fsqp.cc, givens.cc, gripes.cc,
+	help.cc, hess.cc, ifft.cc, ifft2.cc, input.cc, inv.cc,
+	load-save.cc, log.cc, lpsolve.cc, lsode.cc, lu.cc, minmax.cc,
+	npsol.cc, oct-hist.cc, oct-obj.cc, oct-stream.cc, pager.cc,
+	pinv.cc, pr-output.cc, pt-cmd.cc, pt-const.cc, pt-exp-base.cc,
+	pt-exp.cc, pt-fcn.cc, pt-fvc-base.cc, pt-fvc.cc, pt-mat.cc,
+	pt-misc.cc, pt-mvr-base.cc, pt-mvr.cc, pt-plot.cc, qpsol.cc,
+	qr.cc, quad.cc, qzval.cc, rand.cc, resource.cc, schur.cc, sort.cc,
+	strfns.cc, svd.cc, syl.cc, symtab.cc, syscalls.cc, sysdep.cc,
+	timefns.cc, toplev.cc, utils.cc, variables.cc, xpow.cc, parse.y:
+	Rename tree_constant -> octave_value.
+	Rename Octave_object -> octave_value_list.
+
+Wed Apr 24 22:15:34 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (Fsystem): Merge functionality of async_system and
+	sync_system.
+
+	* oct-fstrm.h, oct-iostrm.h, oct-prcstrm.h, oct-stdstrm.h,
+	oct-stream.h, oct-strstrm.h, oct-fstrm.cc, oct-iostrm.cc,
+	oct-prcstrm.cc, oct-stdstrm.cc, oct-stream.cc, oct-strstrm.cc,
+	Array-os.cc: New files.
+	* Makefile.in: Add them to the appropriate lists.
+	* file-io.cc: Rewrite to use new stream classes.
+
+Tue Apr 23 18:59:25 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* gripes.cc (gripe_not_supported): New function.
+
+	* toplev.cc (do_octave_atexit, Fatexit): New functions.
+	(octave_atexit_functions): New file-scope variable.
+	* octave.cc (main): Register do_octave_atexit with atexit.
+
+	* variables.cc (install_builtin_variables): Call
+	symbols_of_syscalls here.
+
+	* syscalls.h, syscalls.cc: New files.
+
+Mon Apr 22 21:14:01 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* syscalls.cc: New file.
+	(Flstat, Fmkfifo, Fstat, Funlink, Fwait, Fwaitpid): Move here.
+	* file-io.cc: From here.
+	* Makefile.in (SOURCES): Add syscalls.cc to the list.
+
+Wed Apr 17 18:34:10 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-info.h, file-info.cc: Delete files.
+	* Makefile.in: Remove from lists.
+
+	* toplev.cc (Fquit): Accept exit status argument.
+	(Fflops): Delete (now a function file).
+
+Thu Apr 11 16:20:20 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l: Recognize `.'.
+	Update current_input_column even for unrecognized characters.
+	Return LEXICAL_ERROR for unrecognized characters.
+
+Mon Apr  8 19:59:01 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (install_builtin_variables): Split into several
+	functions to make compiling with g++ go faster and consume less
+	memory.
+
+Sun Apr  7 16:25:35 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (Fsave): Print usage if i == argc.
+	(Fload): Likewise.
+
+Sat Apr  6 21:26:49 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (clean): Also delete pic/*.o
+	(maintainer-clean, distclean): Also remove stamp-picdir,
+	stamp-tinst, stamp-interp, and pic directory.
+	(stamp-prereq): New target.
+
+Wed Apr  3 11:19:30 1996  Rick Niles  <niles@axp745.gsfc.nasa.gov>
+
+	* resource.cc: Don't make including sys/resource.h and sys/times.h
+	mutually exclusive.
+
+Fri Mar 29 13:43:37 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (distclean): Delete so_locations, which is created
+	on DEC Alpha systems.
+
+Thu Mar 28 02:53:48 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.h (undo_string_escape): Provide extern declaration here.
+
+	* lex.l (NL): Allow \r\n as new line character.
+	(.): Complain if invalid character is found on input
+
+Fri Mar 22 03:47:52 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* resource.cc (getrusage): If getrusage is missing, try using
+	times to at least fill in the cpu time values.  If neither one is
+	available, return 0 for cpu times instead of NaN.
+
+	* sighandlers.cc (octave_signal_mask): New file-scope variable.
+	(octave_save_signal_mask, octave_restore_signal_mask): New functions.
+	* toplev.cc (main_loop): Use them.
+
+Wed Mar 20 01:21:28 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (get_fcn_file_names (const string&, int)): Resize
+	retval to value of k, not i.
+	(get_fcn_file_names (int)): In loop for copying names to retval,
+	don't increment j twice.
+
+Mon Mar 18 22:27:19 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in ($(MAKEDEPS)): Depend on oct-gperf.h.
+
+Fri Mar  1 18:15:52 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* fsolve.cc (fsolve_options): Delete unused argument nargout.
+
+	* filter.cc: Use MArray instead of Array so that automatic
+	conversions will work again.
+
+Tue Feb 27 04:49:51 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (looks_like_octave_copyright): Make the strings
+	that we are trying to match both have length 29.
+
+	* Makefile.in (install-bin): Use $(INSTALL_PROGRAM), not $(INSTALL).
+
+	* load-save.cc (read_mat_binary_data): Make sure name is
+	NUL terminated.
+
+Mon Feb 26 18:18:45 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (whos): Make argv from tmp_args, not args.
+
+	* defun.h (DEFCONSTX): Don't stringify name.
+
+Sat Feb 24 01:12:59 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install-oct): Make mk-oct-links executable.
+	* mk-oct-links.in (links_dir): Update to match new format of
+	DEFUN_DLD_BUILTIN macro.  Use LN_S, not just LN.
+	(links_dir):
+
+	* pr-output.cc (octave_print_internal): New arg, extra_indent, for
+	versions of this function that take matrices and ranges.
+	* pt-const.cc (TC_REP::print (ostream&)): Fix printing of structures.
+	Pass struct_indent to octave_print_internal as appropriate.
+	(print_with_name (ostream&, const string&, bool)): Handle spacing
+	around `=' differently for structures.
+
+Fri Feb 23 04:51:04 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* token.cc (token (double, const string&, int, int)): Store orig_text.
+
+Tue Feb 20 20:36:01 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (Fclear): Fix off-by-one error.
+
+Sat Feb 17 16:54:02 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-hist.cc (default_history_file): Append "/.octave_hist" to
+	return value, not to home_directory.
+
+Fri Feb 16 18:10:46 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc: (NINT, D_NINT): Move to liboctave.
+
+	* sysdep.cc (octave_ieee_init): Move to liboctave.
+
+	* procstream.h, procstream.cc: Rewrite.
+
+	* pager.cc (cleanup_oprocstream): New static function.
+	* toplev.cc (cleanup_iprocstream): Likewise.
+	* dirfns.cc (cleanup_iprocstream): Likewise.
+
+	* unwind-prot.cc (matrix_cleanup, complex_matrix_cleanup): Delete.
+
+Thu Feb 15 22:03:28 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-obj.cc, oct-obj.h: Move most code to the header.
+
+	* oct-obj.cc (make_argv, all_strings): New member functions.
+	* utils.cc: Moved from here.
+
+	* load-save.cc: Move byte swapping stuff to liboctave.
+	Move float format conversion stuff to liboctave.
+	(all_parts_int, too_large_for_float): Move to liboctave.
+
+	* symtab.cc (valid_identifier): Move here.
+	* load-save.cc: From here.
+
+	* sysdep.cc: Move floating-point format stuff to liboctave.
+	* pr-output.cc: Include float-fmt.h here.
+
+Wed Feb 14 01:49:20 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defun.h, defun-dld.h, defun-int.h: Simplify interface for DEFUN,
+	DEFUN_DLD, DEFVAR, and DEFCONST macros.  Change all uses.
+
+	* qzval.cc: Move guts to liboctave.
+
+Tue Feb 13 10:28:27 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (parse_fcn_file): Also avoid saving history if
+	input is from a script file.
+
+	* help.cc (Ftype): Call unwind_protect_str for user_pref.ps4.
+
+	* npsol.cc (nonlinear_constraints_ok): Now static.
+
+	* npsol.cc (linear_constraints_ok): Now static.
+	* qpsol.cc (linear_constraints_ok): Duplicate here.
+
+	* data.cc (Flinspace): Don't print usage message if nargin == 2.
+
+Sun Feb 11 14:20:32 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* mk-oct-links.in: Rename from mk-oct-links.
+	(LN_S): Use this variable instead of ln.
+	Set -e option for shell.
+	Exit with status of last command.
+	Print message when making link.
+	* Makefile.in (DISTFILES): Add mk-oct-links.in to the list.
+	(install-oct): Run ./mk-oct-links, not $(srcdir)/mk-oct-links.
+
+	* variables.cc (install_builtin_variables): Restore accidentally
+	deleted DEFVAR for save_precision.
+
+Fri Feb  9 11:24:32 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (INCLUDES): Delete statdefs.h from the list (it's
+	now in the liboctave directory).
+
+	* toplev.cc (toplevel): Define here.
+	* octave.cc (toplevel): Not here.
+
+	* toplev.cc (main_loop): New function.
+	* octave.cc (main): Call it here instead of doing main loop
+	actions here.
+
+	* user-prefs.cc (do_fortran_indexing): Also set liboctave_dfi_flag.
+	(prefer_column_vectors): Also set liboctave_pcv_flag.
+	(prefer_zero_one_indexing): Also set liboctave_pzo_flag.
+	(resize_on_range_error): Also set liboctave_rre_flag.
+
+	* variables.cc (restore_command_history): New function.
+	(parse_fcn_file): Use it here in unwind_protect.
+
+	* dynamic-ld.cc (load_octave_oct_file): Reverse sense of test.
+	(load_octave_builtin): Delete.
+	(mangle_octave_oct_file_name): Delete.
+
+	* pt-fvc.cc (tree_builtin::eval): Don't try to dynamically load
+	functions here.
+
+	* pr-output.cc (set_format_style): Decrement argc for first arg too.
+
+	* input.cc (gnu_readline): If readline returns an empty string,
+	convert it to a string containing a single newline character.
+
+	* octave.cc (octave_argv): Now a static string_vector.
+	(intern_argv): Use string_vector ops, not charMatrix ops.
+	* toplev.cc (octave_argv): Delete definition.
+	* toplev.h (octave_argv): Delete declaration.
+
+Thu Feb  8 10:58:24 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (conf-dist): New target.
+
+Tue Feb  6 10:59:45 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (Ftype): Correctly handle structure names.
+
+Sun Feb  4 02:02:20 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* qpsol.cc (Fqpsol): Call set_options(), not copy() to set
+	options for QPSOL objects.
+
+	* npsol.cc (Fnpsol): Call set_options(), not copy() to set
+	options for NPSOL objects.
+
+	* quad.cc (Fquad): Call set_options(), not copy() to set
+	options for Quad objects.
+
+	* dynamic-ld.cc (load_octave_builtin): Don't call destructor on string.
+	(load_octave_oct_file): Likewise.
+	Check oct_file.empty(), not just oct_file.
+
+	* fsolve.cc (Ffsolve): Call set_options(), not copy() to set
+	options for NLEqn object.
+
+	* variables.cc (do_who): Properly set match patterns from argument
+	vector for call to maybe_list.
+
+Sat Feb  3 03:29:33 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (long_opts): Properly set second field using new enum.
+
+	* lsode.cc: Change ODE to LSODE where appropriate.
+	Use LSODE_options, not ODE_options.
+
+	* dassl.cc: Change DAE to DASSL where appropriate.
+	Use DASSL_options, not ODE_options.
+
+Fri Feb  2 01:41:37 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dirfns.cc: Include unistd.h.
+
+	* parse.y, lex.l: Handle matrix lists without ml or mlnm stacks.
+	* pt-mat.h, pt-mat.cc (tree_matrix):
+	Rewrite to use SLList instead of home brew list.
+	* SLList-tm.cc: New file
+	* Makefile.in: Add it to the lists.
+	* SLStack-tm.cc: Delete.
+	* Makefile.in: Delete it from the lists.
+
+	* All pt-* files: Use bool instead of int where appropriate.
+
+	* Makefile.in (DEP_SOURCES_3): Add octave.cc.
+
+	* pt-const.h (class tree_constant::tree_constant_rep): Make
+	everything in this class public, then it doesn't need to declare
+	the tree_constant class as a friend.
+
+Thu Feb  1 01:42:45 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.h, lex.l, parse.h, parse.y (class lexical_feedback): New
+	class for lexer flags.  Replace lots of global vars with members
+	of this class.
+
+	* lex.l (class brace_paren_nesting_level): New class to replace
+	nesting_level stack.  nesting_level is now an instance of this
+	class.
+
+	* lex.l (yum_yum): New typedef.
+	(ATE_NOTHING): New global var.
+	(ATE_SPACE_OR_TAB, ATE_NEWLINE): Don't #define these, declare them
+	as const yum_yum.
+	(eat_whitespace, eat_continuation): Return yum_yum, not int.
+
+	* lex.l (SHORT_CIRCUIT_LOGICALS): Delete.  Always do this for ||
+	and && tokens.
+	(yy_flex_alloc, yy_flex_realloc, yy_flex_free, next_char_is_space):
+	Delete.
+
+	* toplev.cc (verbose_flag): Delete definition.
+	* toplev.h (verbose_flag): And declaration.
+	* octave.cc (verbose_flag): Now static.
+
+	* lex.l (lookup_identifier): Arg is now string, not char*.
+	(handle_identifier, is_plot_keyword, is_keyword): Likewise.
+	(strip_trailing_whitespace): Return value is now string, not char*.
+	(plot_style_token): Likewise, for both arg and return value.
+
+	* input.cc (octave_gets_line): Delete.
+	(gnu_readline, octave_gets, octave_read):
+	Properly handle input when using_readline is either true or false.
+	Don't limit length of input lines to flex buffer size.
+	(get_user_input): New function.
+
+	* octave.cc (main): Handle --no-line-editing.
+	* toplev.h (using_readline): Provide external declaration here.
+	* input.h: Not here.
+	* toplev.cc (using_readline): Define here.
+	* input.cc: Not here.
+
+	* toplev.h (no_line_editing): Delete declaration.
+	* input.cc (no_line_editing): Delete definition.
+
+Wed Jan 31 05:28:45 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* input.cc (DEFAULT_ARRAY_SIZE, PROMPT_GROWTH): Delete definitions
+	of unused macros.
+	(read_octal): Now static.
+
+	* givens.cc (Fgivens): Use new functions from matrix classes
+	instead of calling Fortran functions directly.
+	* syl.cc (Fsyl): Likewise.
+	* expm.cc (Fexpm): Likewise.
+
+Mon Jan 29 00:00:48 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc: Use new prog_args class instead of calling getopt
+	directly.
+
+	* getopt.h, getopt.c, getopt1.c: Move to liboctave directory.
+	* Makefile: Remove from lists.
+
+	* utils.cc (strconcat, read_until, discard_until): Delete.
+
+	* pager.cc (terminal_columns, terminal_rows): Move to
+	liboctave/oct-term.cc.
+	* pager.cc, pr-output.cc: Include oct-term.h.
+
+	* utils.cc (list_in_columns): Moved to liboctave/str-vec.cc.
+	Change all callers to use new member function syntax.
+
+	* dirfns.cc (absolute_program): Now static.
+	(absolute_pathname): Delete.
+
+	* pt-plot.cc (save_in_tmp_file): Call oct_tempnam, not
+	octave_tmp_file_name.  Include file-ops.h.
+	* file-io.cc (do_scanf, Foctave_tmp_file_name): Likewise.
+	* oct-hist.cc (mk_tmp_hist_file): Likewise.
+
+	* file-io.cc (Foctave_tmp_file_name): Move here.
+	* utils.cc: From here.
+
+	* utils.cc (octave_tmp_file_name): Move to liboctave/file-ops.cc.
+
+	* tempname.c, tempnam.c: Move to liboctave directory.
+	* Makefile.in: Remove from lists.
+
+Sun Jan 28 19:00:52 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* xdiv.cc (all xdiv functions): Return Matrix or ComplexMatrix,
+	not tree_constant.
+
+	* oct-hist.h, oct-hist.cc, toplev.cc, octave.cc, input.cc,
+	file-io.cc, user-prefs.cc: Rewrite to use new command_history
+	class instead of calling readline history functions directly.
+
+	* utils.cc (get_fcn_file_names): Delete num arg.
+
+Thu Jan 25 20:33:54 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (matches_patterns): Use new glob_match class
+	instead of calling fnmatch directly.
+	* symtab.cc (matches_patterns, symbol_table::glob): Likewise.
+	* variables.cc (Fclear): Likewise.
+
+Wed Jan 24 02:05:22 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* fnmatch.h fnmatch.c: Delete.
+	* Makefile.in: Add glob stuff in the appropriate places, remove
+	fnmatch.h and fnmatch.c from lists.
+
+	* octave.cc (program_invocation_name, program_invocation_short_name):
+	Maybe declare.
+	(initialize_globals): Maybe initialize them.
+
+	* octave.cc (initialize_pathsearch): Define here, not in pathsearch.cc.
+	* pathsearch.h, pathsearch.cc: Remove files.
+	* Makefile.in: Remove them from the lists.
+
+	* help.cc (simple_help): Ignore directories that don't have any .m
+	or .oct files.
+
+	* utils.cc (search_path_for_file): Use new dir_path class instead
+	of calling kpathsea routines directly.
+	(get_fcn_file_names): Likewise.
+	* help.cc (simple_help): Likewise.
+
+	* dirfns.cc (make_absolute): Don't convert empty arg to "./".
+
+	* sysdir.h: Move to liboctave directory.
+	* Makefile.in: Remove from lists.
+
+	* dirfns.cc (Freaddir): Use new dir_entry class instead of calling
+	readdir directly.  Include dir-ops.h, not sysdir.h.
+	* utils.cc (get_fcn_file_names): Likewise.  Delete unnecessary
+	first arg, change all callers.
+
+Tue Jan 23 00:43:12 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* safe-xstat.hin, safe-xstat.cin, statdefs.h, file-ops.h,
+	file-ops.cc, filemode.c, mkdir.c, rmdir.c, rename.c:
+	Files moved to liboctave directory.
+	* Makefile.in: Remove them from lists.  Move appropriate rules.
+
+	* acosh.c, asinh.c, atanh.c, erf.c, erfc.c, gamma.c, lgamma.c:
+	Files moved to liboctave directory.
+	* Makefile.in: Remove them from lists.
+	* missing-math.h: Deleted.
+	* pr-output.cc, sysdep.cc, minmax.cc, mappers.cc, expm.cc,
+	arith-ops.cc: Include oct-math.h, not cmath or missing-math.h.
+
+Mon Jan 22 19:33:05 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (Fexist): Use file_stat instead of calling stat
+	directly.  Include file-ops.h, not statdefs.h.
+	* octave.cc (execute_startup_files): Likewise.
+	* file-io.cc (file_io_get_file, fopen_internal, popen_internal, Fstat):
+	Likewise.
+	(mk_stat_map): Likewise, use file_stat object, not struct stat.
+	* oct-hist.cc (do_history): Likewise.
+
+	* file-ops.h, file-stat.cc: New files.
+	* Makefile.in: Include them.
+	* dirfns.cc: Delete is_newer.  Don't include statdefs.h.
+	* toplev.cc: Don't include statdefs.h.
+
+Sun Jan 21 22:48:03 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-mvr.h, pt-fvc.h, Map.cc, Map.h, dynamic-ld.h,
+	pt-fvc-base.cc, SLList-str.cc, pt-fcn.h, pt-fvc-base.h,
+	SLStack-str.cc, pt-mvr.cc, pt-exp.cc, token.h, token.cc,
+	user-prefs.h, pt-base.cc, user-prefs.cc, dirfns.h, sysdep.h,
+	sysdep.cc, input.h, parse.h, lex.l, parse.y, defun.h, mappers.h,
+	pt-fvc.cc, pt-plot.h, load-save.h, octave.cc, defun-int.h, help.h,
+	variables.h, oct-map.h, oct-obj.h, oct-obj.cc, pt-const.cc,
+	oct-map.cc, input.cc, symtab.h, pt-const.h, pathsearch.cc,
+	pr-output.h, pr-output.cc, toplev.h, timefns.cc, schur.cc,
+	pt-plot.cc, pager.cc, load-save.cc, dynamic-ld.cc, dirfns.cc,
+	data.cc, file-info.h, file-info.cc, colloc.cc, utils.h, qpsol.cc,
+	quad.cc, npsol.cc, lsode.cc, fsolve.cc, dassl.cc, file-io.cc,
+	help.cc, utils.cc, oct-hist.h, oct-hist.cc, symtab.cc, toplev.cc,
+	pt-fcn.cc, unwind-prot.h, unwind-prot.cc, variables.cc:
+	Most functions in these files that deal with character strings
+	have been converted to use the string class insatead of char*.  If
+	you want more detailed information, you'll have to figure it out
+	for yourself.
+
+Sat Jan 20 18:19:12 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dynamic-ld.cc [WITH_DL]: Define RTLD_LAZY to be 1 if it is not
+	already defined.
+
+Sun Jan 14 07:48:05 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pt-const.cc (print_as_scalar, print_as_structure):
+	Make these member functions.
+	(tree_constant::print_with_name): New function, moved here from
+	old tree-expr.cc file (where it was called print_constant) and
+	converted to member function.  Change all callers.
+
+Fri Jan 12 01:54:49 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (initialize_globals): Don't do kpathsearch stuff here.
+	(main): Call initialize_pathsearch() here.
+
+	* pathsearch.cc: New file.
+	* Makefile.in (SOURCES): Add it to the list
+
+	* oct-hist.h: Rename from octave-hist.h.
+	* oct-hist.cc: Rename from octave-hist.cc.
+	* Makefile.in, parse.y, other .cc files: Cope with it.
+
+	* dynamic-ld.cc: Avoid warnings if !WITH_DYNAMIC_LINKING.
+
+	* load-save.cc (save_ascii_data): string::data() returns const char*.
+
+	* utils.h: Don't provide forward declaration for tree_constant.
+
+	* oct-obj.h: Don't include mx-base.h or provide forward
+	declarations for Matrix and Range types.
+
+	* file-info.h: Don't include oct-obj.h.  Do include cstdio.
+
+	* symtab.h: Don't provide forward declaration for ostream.
+
+	* variables.h: Don't provide forward declarations for istream,
+	ostrstream, tree, builtin_function, or builtin_variable objects.
+
+	* balance.cc, chol.cc, colloc.cc, dassl.cc, det.cc, eig.cc,
+	expm.cc, fft.cc, fft2.cc, filter.cc, find.cc, fsolve.cc, fsqp.cc,
+	givens.cc, hess.cc, ifft.cc, ifft2.cc, inv.cc, log.cc, lpsolve.cc,
+	lsode.cc, lu.cc, minmax.cc, npsol.cc, pinv.cc, qpsol.cc, qr.cc,
+	quad.cc, qzval.cc, rand.cc, schur.cc, sort.cc, svd.cc, syl.cc:
+	Clean up #include statements.
+
+	* pt-const.h: Don't include oct-obj.h or tree-base.h.
+	Provide forward declaration of Octave_object here.
+	* pt-const.cc: Include oct-obj.h here.
+
+	* pt-mat.h, pt-fcn.h, pt-const.h, pt-misc.h, pt-plot.h,
+	pt-exp-base.h, pt-cmd.h, pt-fvc-base.h, pt-mvr-base.h, pt-exp.h,
+	pt-mvr.h, pt-fvc.h: New files, split from tree-expr.h and/or
+	renamed from other tree-*.h files (pt == parse tree).
+	* pt-base.cc, pt-const.cc, pt-exp.cc, pt-fvc-base.cc, pt-mat.cc,
+	pt-mvr-base.cc, pt-plot.cc, pt-cmd.cc, pt-exp-base.cc, pt-fcn.cc,
+	pt-fvc.cc, pt-misc.cc, pt-mvr.cc: Likewse, split from tree-expr.cc
+	and/or other tree-*.cc files.
+	* Makefile.in: Include them in the appropriate lists.
+	* All: Fix #include statements to match.
+
+	* Array-tc.cc: Don't instantiate ArrayRep objects.
+
+Thu Jan 11 02:35:19 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* tree-const.cc (tree_constant::eval (int, int, const Octave_object&)):
+	Define here instead of in tree-const.h.
+
+Wed Jan 10 04:34:20 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* tree-const.h (tree_constant::tree_constant (const string&):
+	* tree-const.cc (TC_REP::tree_constant_rep (const string&)):
+	New constructor.
+
+Tue Jan  9 04:10:29 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* rand.cc (do_rand): Use string_value() result directly instead of
+	c_str() conversion.
+	* balance.cc (Fbalance): Likewise.
+
+	* tree-const.cc (TC_REP::string_value()):
+	Handle new definition of charMatrix::row_as_string()
+	* load-save.cc (save_ascii_data): Ditto.
+	(save_binary_data): Ditto.
+	* pr-output.cc (octave_print_internal): Ditto.
+
+	* balance.cc (Fbalance):
+	Handle new definition of TC_REP::string_value()
+	* colloc.cc (Fcolloc): Ditto.
+	* dassl.cc (Fdassl_options): Ditto.
+	* data.cc (Fstruct_contains): Ditto.
+	* dirfns.cc (Fmkdir): Ditto.
+	(Freaddir): Ditto.
+	(Frmdir): Ditto.
+	(Frename): Ditto.
+	* error.cc (handle_message): Ditto.
+	* file-io.cc (process_printf_format): Ditto.
+	(fopen_internal): Ditto.
+	(file_io_get_file): Ditto.
+	(return_valid_file): Ditto.
+	(Flstat): Ditto.
+	(Fstat): Ditto.
+	(unlink_internal): Ditto.
+	(mkfifo_internal): Ditto.
+	(async_system_internal): Ditto.
+	(sync_system_internal): Ditto.
+	(execute_internal): Ditto.
+	(popen_internal): Ditto.
+	(fwrite_internal): Ditto.
+	(fread_internal): Ditto.
+	(do_printf): Ditto.
+	(do_scanf): Ditto.
+	* input.cc (get_user_input): Ditto.
+	* lsode.cc (Flsode_options): Ditto.
+	* npsol.cc (Fnpsol_options):Ditto.
+	* qpsol.cc (Fqpsol_options):Ditto.
+	* quad.cc (Fquad_options): Ditto.
+	* rand.cc (do_rand): Ditto.
+	* schur.cc (Fschur): Ditto.
+	* sysdep.cc (Fputenv): Ditto.
+	(Fgetenv): Ditto.
+	* timefns.cc (extract_tm): Ditto.
+	(Fstrftime): Ditto.
+	* toplev.cc (Fsource): Ditto.
+	(eval_string): Ditto.
+	(Fsystem): Ditto.
+	* tree-plot.cc (subplot::handle_plot_data): Ditto.
+	* variables.cc (is_valid_function): Ditto.
+	(Fis_global): Ditto.
+	(Fexist): Ditto.
+	(builtin_string_variable): Ditto.
+	* utils.cc (make_argv): Ditto.
+	(Fundo_string_escapes): Ditto.
+
+Mon Jan  8 01:54:50 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (install-bin): Use $(LN_S), not just ln.
+
+	* variables.cc (octave_fcn_file_dir): New function.
+	* tree-expr.cc (mark_as_system_fcn_file): Use it instead of
+	octave_lib_dir.
+
+	* Makefile.in (clean): If $(SHARED_LIBS), also remove shared libs.
+
+	* pr-output.cc (set_format (const ComplexMatrix&, int&, int&)):
+	Unconditionally call all_elements_are_int_or_inf_or_nan().
+	(set_format (const Matrix&, int&, int&)): Likewise.
+
+Sun Jan  7 19:12:39 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc (oct_putenv): New function.
+	* sysdep.cc (Fputenv): Use oct_putenv.
+	* octave.cc (initialize_globals): Likewise.
+
+Sat Jan  6 23:22:37 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sysdep.cc (Fputenv): New function.
+
+	* input.cc (initialize_readline): Call rl_initialize() here.
+
+	* octave.cc: Conditionally define atexit to be on_exit here.
+	* toplev.cc: Not here.
+
+Fri Jan  5 14:01:02 1996  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc: Don't include <pwd.h> here.
+
+	* octave-hist.cc, tree-plot.cc, utils.cc: Do include "sysdep.h".
+
+	* dirfns.cc, file-io.cc, help.cc, load-save.cc, octave.cc,
+	octave-hist.cc, tree-plot.cc, utils.cc:
+	Don't include <readline/tilde.h>.
+	* sysdep.h: Do include it here.
+
+	* tree-const.cc (TC_REP::assign (tree_constant&, Octave_object&)):
+ 	If we have a matrix or range, call maybe_mutate before returning.
+
+Sun Dec 31 15:56:18 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* npsol.cc (Fnpsol): Improve doc string.
+	* qpsol.cc (Fqpsol): Likewise.
+
+Fri Dec 29 21:46:58 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* defun-dld.h: Make work again for OCTAVE_LITE and
+	WITH_DYNAMIC_LINKING.
+
+	* Makefile.in: Handle shared libraries.
+
+Wed Dec 27 17:47:51 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* mk-oct-links: New file.
+	* Makefile.in (install-oct): Use it.
+	* f-*.cc: Rename to *.cc.
+
+	* Makefile.in (install-bin, install-lib, install-oct): New targets.
+	(install): Use them.
+
+Tue Dec 26 21:38:22 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* toplev.cc (reading_startup_message_printed): Move initialization
+	here and make extern.
+
+	* dirfns.cc, dynamic-ld.cc, help.cc, input.cc, octave-hist.cc,
+	octave.cc, sighandlers.cc, sysdep.cc, tree-expr.cc, tree-misc.cc,
+	utils.cc, variables.cc, parse.y, lex.l: Include toplev.h instead
+	of octave.h.
+	* toplev.h: rename from octave.h.
+
+	* octave.cc (main): Delete unused variable saved_sigint_handler.
+
+Sun Dec 24 00:26:54 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dynamic-ld.cc: Massive re-write to handle dlopen/dlsym and
+	shl_load/shl_findsym methods of dynamic linking.
+
+	* utils.cc (get_fcn_file_names): Check for .oct files if
+	WITH_DYNAMIC_LINKING, not WITH_DLD.
+
+	* Makefile.in (LIB, TERMLIBS): Substitute values.
+	(octave): Add $(LIBS) to link command and use $(TERMLIBS) instead
+	of -ltermcap.
+
+Sat Dec 23 21:56:12 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dynamic-ld.h, dynamic-ld.cc: Remove old unused code.
+
+	* variables.cc (load_fcn_from_file):
+	Always call load_octave_oct_file.
+
+Wed Dec 20 00:56:57 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pr-output.cc (set_real_format, set_real_matrix_format,
+	set_complex_format, set_complex_matrix_format, set_range_format):
+	New functions.  Ensure the count of the digits to the right of the
+	decimal point is positive.
+
+	* xpow.cc (xpow (const Matrix&, double)): Print warning if
+	inverting singular matrix (but return value anyway, in the name of
+	compatibility).
+	xpow (const ComplexMatrix&, double)): Likewise.
+
+	* f-inv.cc (Finv): If matrix is singular, return result anyway, in
+	the name of compatibility.
+
+	* symtab.cc (symbol_record::pop_context):
+	Don't assert (! context.empty ()).
+
+	* tree-const.cc (TC_REP::char_matrix_value): Don't complain about
+	type conversion if object is an empty matrix.f
+	(TC_REP::assign): If rhs is a string, don't convert to numeric
+	type if rhs is empty or "".
+	Only widen if rhs is not empty.
+	Don't return 0x0 char_matrix if it is supposed to be a string.
+
+	* arith-ops.h, mappers.h, pr-output.h, xdiv.h, xpow.h: Include
+	oct-cmplx.h in place of forward declaration for class Complex.
+
+	* pr-output.cc, mappers.cc, arith-ops.cc, xdiv.cc, xpow.cc,
+	utils.cc: Include "oct-cmplx.h" instead of <Complex.h>.
+
+	* octave.cc (initialize_error_handlers): Don't call
+	set_Complex_error_handler().
+	(octave_Complex_error_handler): Delete unused function.
+	Delete declaration for set_Complex_error_handler().
+
+	* sighandlers.cc (catch_interrupts): New function.
+	* octave.cc (main): Call catch_interrupts() instead of calling
+	octave_set_signal_handler() directly.
+
+Tue Dec 19 03:22:37 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (looks_like_octave_copyright): Also recognize the
+	string " This program is free software".
+
+Thu Dec 14 01:54:06 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave-hist.cc (clean_up_history): Only write history file if
+	user_pref.saving_history.
+
+	* octave-hist.cc (initialize_history, clean_up_history,
+	do_history): Perform tilde expansion on history file name.
+
+	* octave.cc (main): Check `defined (HAVE_ON_EXIT)' not just
+	`(HAVE_ON_EXIT)'.
+
+	* user-prefs.h (user_preferences): New fields, `history_file' and
+	`history_size'.
+	* user-prefs.cc (init_user_prefs): Initialize them.
+	(sv_history_file, history_size): New functions.
+	* variables.cc (install_builtin_variables): Initialize user-level
+	variables history_file and history_size.
+	* octave-hist.cc (default_history_size): Now extern.
+	(default_history_file): Likewise.
+	(octave_hist_size, octave_hist_file): Use user preference
+	variables instead.
+	* octave.cc (main): Call initialize_history after
+	execute_startup_files.
+
+Fri Dec  8 15:53:59 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* user-prefs.h (user_preferences): New field, `saving_history'.
+	* user-prefs.cc (init_user_prefs): Initialize it.
+	(saving_history): New function.
+	* variables.cc (install_builtin_variables): Initialize user-level
+	variable saving_history.
+	* octave.cc (parse_and_execute): Don't reset value of
+	saving_history here.
+	(main) Use user_pref.saving_history instead of saving_history.
+	* variables.cc (parse_fcn_file): Likewise.
+	* octave-hist.cc (maybe_save_history): Likewise.
+	Don't save history if input_from_startup_file.
+
+Mon Nov 27 23:05:52 1995  John W. Eaton  <jwe@bevo.che.wisc.edu>
+
+	* resource.cc: Include systime.h before <sys/resource.h>.
+
+Tue Nov 14 14:09:40 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* error.cc: Include cstring.
+
+	* tree-expr.cc (print_code): Decrement indent level after printing
+	function body.
+
+	* Makefile.in: Remove references to oct-str.cc, oct-str.h, and
+	Array-string.cc.
+
+	* tree-const.h: Don't include oct-str.h.
+
+Mon Nov  6 11:16:49 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* parse.y (make_plot_command, finish_colon_expression,
+	make_unwind_protect, make_try_command, make_for_command,
+	make_break_command, make_continue_command, make_return_command,
+	start_if_command, finish_if_command, make_elseif_clause,
+	make_simple_assignment, make_multi_val_ret, start_function_def,
+	frob_function_def, finish_function_def, start_matrix,
+	finish_matrix):  New functions.  Use them in the grammar to clean
+	things up a bit.  Possibly convert matrix lists, colon
+	expressions, binary expressions, and unary expressions to constant
+	values.
+	(tree_matrix_type): Delete.
+	(simple_expr1): Handle all expression stuff here, including
+	assignments.
+	(simple_expr): Just check to see that simple_expr1 produced
+	something useful.
+
+	* tree-plot.cc, tree-plot.h: Move most simple constructors to the
+	header file.
+
+	* tree-expr.h (tree_expression::is_constant): Move virtual
+	function definition here.
+	(tree_fvc::is_constant): From here.
+	(tree_expression::is_matrix_constant): New virtual function.
+	(tree_expression::is_range_constant): New virtual function.
+	* tree-expr.cc (tree_matrix::is_matrix_constant): New function.
+	* tree-expr.cc (tree_colon_expression::is_range_constant): New
+	function.
+
+Fri Nov  3 03:42:04 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.cc, utils.h (jump_to_top_level): Declare as extern "C".
+
+	* tree-const.h (tree_constant::eval ()): Only mutate if printing.
+
+	* tree-const.cc (TC_REP::tree_constant_rep (const Complex&),
+	TC_REP::tree_constant_rep (const ComplexMatrix&),
+	TC_REP::tree_constant_rep (const ComplexDiagMatrix&),
+	TC_REP::tree_constant_rep (const ComplexRowVector&),
+	TC_REP::tree_constant_rep (const ComplexColumnVector&)):
+	Also check to see if we can convert to scalar_constant, not just
+	complex_scalar_constant.
+
+	* user-prefs.h (user_preferences): New field, `exec_path'.
+	* user-prefs.cc (init_user_prefs): Initialize it.
+	(sv_exec_path): New function.
+	* variables.cc (install_builtin_variables): Add DEFUN for EXEC_PATH.
+	(default_exec_path): New function.
+	* octave.cc (exec_path): New global variable.
+	Don't set and putenv() exec path here.
+	(long_opts): Add --exec-path option.
+	(main): Handle it.
+	(initialize_globals): Set default value here.
+
+	* user-prefs.h (user_preferences): New field, `info_prog'.
+	* user-prefs.cc (init_user_prefs): Initialize it.
+	(sv_info_prog): New function.
+	* variables.cc (install_builtin_variables): Add DEFUN for INFO_PROGRAM.
+	(default_info_prog): New function.
+	* octave.cc (info_prog): New global variable.
+	(initialize_globals): Set default value here.
+	(long_opts): Add --info-prog option.
+	(main): Handle it.
+	* help.cc (try_info): Use user_pref.info_prog here.
+
+	* octave.cc (initialize_globals): Put arch_dir and bin_dir ahead
+	of shell_path when resetting PATH.
+
+Thu Nov  2 04:30:13 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* f-rand.cc (Frandn): New function.
+	(do_initialization): New function.
+	(do_rand): New function for doing the real work.
+	(Frand): Use it.
+
+	* octave.cc (parse_and_execute): New arg, warn_for.  If given,
+	print message if file cannot be opened.
+	Set curr_fcn_file_full_name here.
+	(Fsource): Pass extra arg to parse_and_execute to get warning message.
+
+	* tree-const.h: Handle line and column info for double, Complex,
+	and char* constants.
+
+	* parse.y (maybe_convert_to_ans_assign): Pass along line and
+	column info from expression.
+
+	* parse.y (make_constant): New function.
+	(simple_expr1, word_list): Use it.
+
+	* input.cc, input.h (curr_fcn_file_full_name): New global.
+	* variables.cc (load_fcn_from_file): Set it here.
+	* parse.y (func_def2, yyerror, maybe_warn_missing_semi): Use it.
+	(func_def2): If !reading_fcn_file, don't call strcmp if
+	curr_fcn_file_name is 0.
+
+	* octave.cc (Fsource): New function.
+	(parse_and_execute): Declare file name const char *.
+	* input.cc (get_input_from_file): Likewise.
+
+Wed Nov  1 13:54:34 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* f-filter.cc: New file.
+	* Makefile.in (DLD_SRC): Add it to the list.
+
+	* sysdep.h (gethostname): Change declaration to match definition
+	in sysdep.cc.
+
+	* resource.cc: Include sysdep.h here, for octave_NaN.
+
+Tue Oct 31 02:12:18 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* tree-const.cc (TC_REP::assign): After converting rhs to a
+	numeric type, use the converted value, not the original.
+
+	* dirfns.cc (Fpwd): If nargout == 0, print the directory name
+	instead of returning it.
+
+	* pager.cc (maybe_page_output): Call maybe_write_to_diary_file here.
+	(flush_output_to_pager): Not here.
+
+Mon Oct 30 23:39:43 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (install_builtin_commands): Add DEFVAR for
+	echo_executing_commands.
+
+	* octave-hist.cc (do_edit_history): Handle new echo stuff.
+	* variables.cc (parse_fcn_file): Likewise.
+	* octave.cc (parse_and_execute): Likewise.
+	(main): Likewise.
+	* input.cc (do_input_echo):
+	(Fecho): New function.
+
+	* tree-expr.cc (tree_function::print_code_function_header,
+	tree_function::print_code_function_trailer): New functions.
+	(tree_function::print_code): Use them.
+	(tree_function::eval): Likewise, if echoing commands.
+	* tree-misc.cc (tree_statement::maybe_echo_code): New function.
+
+	* user-prefs.h (user_preferences): New field, echo_executing_commands.
+	(echo_state): New enum, for various types of echoing we do.
+	* user-prefs.cc (echo_executing_commands): New function.
+
+	* tree-base.cc (print_code_indent): Print PS4 as line prefix.
+	* help.cc (Ftype): Add unwind_protect for ps4 and set it to ""
+	before printing code.
+
+	* tree-misc.h (tree_statement_list): New field, function_body.
+	(tree_statement_list::mark_as_function_body): New function.
+	* parse.y (func_def3): Mark function bodies.
+
+	* pr-output.cc (octave_print_internal): Undo string escapes when
+	printing charMatrix as strings.
+
+Sat Oct 28 17:38:29 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* utils.h (undo_string_escapes): Add missing const in declaration.
+
+Fri Oct 27 03:49:44 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (next_available_file_number): New stack for keeping
+	track of next available file number.
+	(get_next_avail_file_num): New function.
+	(fopen_file_for_user, fopen_internal, popen_internal,
+	execute_internal): Use it.
+
+Mon Oct 23 07:00:09 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* tree-const.cc (TC_REP::convert_to_matrix_type,
+	tree_constant::convert_to_matrix_type): New arg, make_complex.
+	(TC_REP::set_index): New arg, rhs_is_complex.  Pass it to
+	convert_to_matrix_type.
+	(TC_REP::assign): Pass rhs.is_complex_type() to set_index.
+
+Thu Oct 19 00:38:38 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* xpow.cc: Include <climits>.
+
+	* sysdep.cc (Fpause): Do pause even if not interactive.
+
+	* tree-const.cc (TC_REP::assign): Don't make RHS numeric if both
+	RHS and LHS are strings.
+
+Wed Oct 18 22:19:16 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* f-expm.cc (Fexpm): Avoid taking log of negative number.  Also,
+	don't unnecessarily divide the input matrix by 1.0.
+
+	* input.cc (decode_prompt_string): Recognize \[ and \] too.
+	(initialize_readline): Bind M-p to history-search-backward and M-n
+	to history-search-forward.
+
+Tue Oct 17 04:31:06 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* xpow.cc (xpow): Handle integer powers better for complex^double.
+	(elem_xpow): Likewise.
+
+	* lex.l ({CCHAR}): If nesting_level.top() is BRACE, return ';',
+	not '\n'.
+
+Mon Oct 16 19:03:45 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* help.cc (Fwhich): Fix doc string.
+
+	* variables.cc (Fexist): Update doc string.
+
+Sun Oct 15 22:19:16 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Another massive set of changes to support character matrices
+	with indexing.  The Octave_str_object class is no longer used.
+	Anything having to do with Octave_str_object in the following
+	files has been changed to use charMatrix instead: octave.h,
+	load-save.cc, octave.cc, strfns.cc, data.cc, pr-output.h,
+	pr-output.cc, tree-const.h, dirfns.cc, tree-const.cc,
+	tree-expr.cc.
+
+Sat Oct 14 22:28:18 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* f-sort.cc (mx_sort): Don't attempt to sort vectors that have
+	only one element, or matrices that have only one row.
+
+Thu Oct 12 02:16:58 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* mappers.cc (install_mapper_functions): Add gammaln as an alias
+	for lgamma.
+
+	* tree-const.h, tree-const.cc: Massive overhaul of indexing and
+	indexed assignment functions.
+	* tc-inlines.h, tc-rep.h: Remove files.
+	* Makefile.in: Remove mention of them here too.
+
+	* Makefile.in: Include $(TI_SRC) in DEP_SOURCES_3, not
+	$(TI_SOURCES).
+	Include $(DLD_SRC) in DEP_SOURCES_3.
+	Include $(TI_SRC) in DEF_FILES_5.
+
+Wed Oct 11 01:26:18 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* Makefile.in (INCLUDES): Remove tc-inlines.h and tc-rep.h from
+	the list.
+
+Mon Oct  9 08:31:04 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* lex.l (next_token_is_bin_op): Do match `.+', `.*', etc.
+
+Sun Oct  8 18:19:56 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* idx-vector.h, idx-vector.cc: Delete files.
+	* Makefile.in (SOURCES, INCLUDES): Remove them from lists.
+
+Fri Oct  6 00:52:06 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* f-svd.cc (Fsvd): If nargout == 0 or nargout == 1, don't ask for
+	U and V.
+
+Wed Oct  4 00:04:57 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* f-npsol.cc (Fnpsol, Fnpsol_options): Avoid unused variable
+	warnings if NPSOL_MISSING.
+	* f-qpsol.cc (Fqpsol, Fqpsol_options): Likewise for QPSOL_MISSING.
+
+	* Makefile.in (DISTFILES): Add octave.gperf.
+
+	* lex.l (next_token_is_bin_op): Don't ever return true for `.'
+	since that causes problems with things like [ .1 .1 ].
+
+Tue Oct  3 05:30:24 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (is_valid_function): Avoid setting error_state if
+	argument is not a string.
+
+	* parse.y (maybe_warn_missing_semi): New function.
+	(list1, list): Call it if statement not terminated by semicolon.
+	* tree-misc.h (tree_statement::line, tree_statement::column):
+	New functions.
+	* octave.cc (input_from_command_line_file): New global variable.
+	(main): Set it.
+	(parse_and_execute): Unwind-protect it and set it to zero.
+	(eval_string): Likewise.
+	* variables.cc (parse_fcn_file): Likewise.
+
+	* user-prefs.cc (warn_missing_semicolon): New function.
+	* user-prefs.h (user_preferences): New field, warn_missing_semicolon.
+	* variables.cc (install_builtin_variables): DEFVAR it.
+
+	* tree-expr.cc (tree_expression::is_logically_true): Actually use
+	argument.
+
+Mon Oct  2 19:55:48 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (install_builtin_variables): Reduce the default
+	value of save_precision to 15.
+
+	* variables.cc (builtin_real_scalar_variable): Return 1 for
+	success, 0 for failure.
+
+	* user-prefs.cc (struct_levels_to_print, set_save_precision,
+	set_output_max_field_width, set_output_precision):
+	Change sense of test for builtin_real_scalar_variable return value.
+	(check_preference): Rename from check_str_pref.  Change all callers.
+	Accept value of 0 to be the same as "false" and nonzero to be the
+	same as "true".
+	Delete val to avoid memory leak.
+	* variables.cc (install_builtin_variables): Change initial values
+	from "true" to 1, "false" to 0.
+
+	* variables.cc (install_builtin_variables): Add DEFVAR for
+	gnuplot_has_multiplot.
+
+	* user-prefs.h (user_preferences): New field,
+	`gnuplot_has_multiplot'.
+	* user-prefs.cc (init_user_prefs): Initialize it.
+	(gnuplot_has_multiplot): New function.
+
+Sat Sep 30 16:52:57 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* oct-gperf.h, octave.gperf: Newfiles.
+	* Makefile.in (DISTFILES): Add octave.gperf.
+	(INCLUDES): Add oct-gperf.h.
+	(oct-gperf.h): New rule.
+	(local-dist, dist): Depend on oct-gperf.h.
+	* lex.l (is_keyword): Use perfect hash function to lookup
+	keywords.
+
+Fri Sep 29 04:36:04 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* version.h (OCTAVE_NAME_AND_VERSION): Add TARGET_HOST_TYPE to this.
+
+Thu Sep 28 00:03:51 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* tree-expr.cc (tree_expression::is_logically_true): New function.
+	* tree-cmd.cc (tree_while_command::eval): Use it instead of
+	handling the test directly here.
+	* tree-misc.cc (tree_if_clause::eval): Likewise
+
+	* tree-const.cc (TC_REP::force_numeric): Don't try to print value
+	of str_obj with %s.
+
+	* error.cc (buffer_error_messages): Rename from
+	suppress_octave_error_messages.
+	(error_message_buffer): New global variable.
+	(verror): Handle buffering of messages.
+	(handle_message): New function.
+	(Ferror, Fwarning, Fusage): Use it instead of duplicating code.
+
+	* octave.cc (Feval): Buffer error messages instead of supressing them.
+
+	* lex.l (is_keyword): Recognize `try', `catch', and `end_try_catch'.
+	* parse.y (TRY, CATCH): New tokens.
+	(command): Recognize try-catch block.
+	(end_error): Add cases for unwind_protect_end and try_catch_end.
+	* token.h (end_tok_type): New field, try_catch_end.
+	* tree-cmd.h, tree-cmd.cc (tree_try_catch): New class.
+	* variables.cc (bind_global_error_variable): New Function.
+	(clear_global_error_variable): Likewise.
+	(install_builtin_variables): Add DEFCONST for __error_text__.
+	* help.cc (keywords): Add `try', `catch', and `end_try_catch'.
+
+	* tree-cmd.cc (tree_unwind_protect::eval): Undo previous change.
+
+	* dirfns.cc (Freaddir, Fmkdir, Frmdir):
+	Do tilde expansion on the argument.
+
+Tue Sep 26 00:10:29 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* f-dassl.cc, f-fsolve.cc, f-lsode.cc, f-npsol.cc, f-quad.cc:
+	Don't try to figure out if the user-supplied functions take the
+	correct number of arguments.  Simply let the call fail.
+	* variables.cc (takes_correct_nargs): Delete unused function.
+	* tree-expr.cc (tree_builtin::eval): Don't complain for too many
+	arguments to mapper functions.
+	* tree-expr.h, tree-expr.cc (tree_builtin, tree_function, tree_fvc):
+	Delete unused function max_expected_args.
+
+	* defun.h (DEFUN): Delete unnecessary args nargin_min and nargout_max.
+	New arg unused_arg_flags.
+	(DEFUN_TEXT): Likewise.
+	* defun-dld.h (DEFUN_DLD_BUILTIN): Likewise.
+	* defun-int.h (DEFUN_INTERNAL, DECLARE_FUN, DEFINE_FUN_STRUCT):
+	Do the real work.
+
+	* data.cc, dirfns.cc, dynamic-ld.cc, error.cc, f-balance.cc,
+ 	f-chol.cc, f-colloc.cc, f-dassl.cc, f-det.cc, f-eig.cc, f-expm.cc,
+ 	f-fft.cc, f-fft2.cc, f-find.cc, f-fsolve.cc, f-fsqp.cc,
+ 	f-givens.cc, f-hess.cc, f-ifft.cc, f-ifft2.cc, f-inv.cc, f-log.cc,
+ 	f-lpsolve.cc, f-lsode.cc, f-lu.cc, f-minmax.cc, f-npsol.cc,
+ 	f-pinv.cc, f-qpsol.cc, f-qr.cc, f-quad.cc, f-qzval.cc, f-rand.cc,
+ 	f-schur.cc, f-sort.cc, f-svd.cc, f-syl.cc, file-io.cc, help.cc,
+ 	input.cc, lex.l, load-save.cc, mappers.cc, octave-hist.cc,
+ 	octave.cc, octave.h, pager.cc, pr-output.cc, resource.cc,
+ 	sighandlers.cc, strfns.cc, sysdep.cc, timefns.cc, token.cc,
+ 	tree-const.cc, tree-expr.cc, tree-expr.h, tree-plot.cc,
+ 	unwind-prot.cc, unwind-prot.h, utils.cc, variables.cc,
+ 	variables.h, version.h, xdiv.cc:
+	Avoid unused variable warnings.
+
+	* tree-expr.h (tree_oct_obj::print_value (ostream&)):
+	Delete name of unused arg.
+	(tree_fvc::save (ostream&, int, int): Likewise.
+
+	* tree-const.h (tree_constant::tree_constant (magic_colon)):
+	Delete name of unused arg.
+	(tree_constant::tree_constant (all_va_args)): Likewise
+	(ColumnVector vector_value (int, int)): Likewise.
+	(ComplexColumnVector vector_value (int, int)): Likewise.
+	(Octave_object::eval (int, int, const Octave_object&): Likewise.
+
+	* octave.cc (execute_startup_files): Look for octaverc first in
+	site/m, then in $(version)/m.
+	* variables.cc (get_local_site_defaults): New function.
+	* defaults.h.in (OCTAVE_LOCALFCNFILEDIR, OCTAVE_LOCALSTARTUPFILEDIR):
+	New macros.
+	* Makefile.in (defaults.h): Also substitute ${localfcndir}.
+
+Mon Sep 25 17:01:03 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* variables.cc (install_builtin_variables): Add DEFCONST for "e".
+
+Fri Sep 22 02:18:45 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* dirfns.cc (Fls): Delete ls_command after using it, not before.
+
+	* input.h, input.cc (gnu_readline): Don't declare gnu_readline
+	`extern "C"'.
+
+	* sysdep.h: Only declare gethostname if it is missing, then don't
+	declare it `extern "C"'.
+
+	* dirfns.cc: Don't declare strerror().
+
+	* input.cc (command_generator): Use malloc, not xmalloc.  Don't
+	declare xmalloc.
+	(gnu_readline): Don't declare this `extern "C"'.
+
+	* octave-hist.cc: Don't declare history_get().  It is now in
+	readline/history.h.
+
+	* input.cc: Don't declare history_get().  It is now in
+	readline/readline.h.
+
+	* resource.cc: Don't surround include of sys/resource.h in
+	`extern	"C" { }'.
+
+	* fnmatch.h [__cplusplus]: Surround contents in `extern "C" { }'.
+	* load-save.cc, symtab.cc, variables.cc: Don't surround
+	fnmatch.h include in `extern "C" { }'.
+
+	* help.cc: Don't #undef __FUNCTION_DEF before including
+	readline/tilde.h.
+
+	* dirfuns.cc, file-io.cc, help.cc, load-save.cc, octave-hist.cc,
+	sysdep.cc, tree-plot.cc, utils.cc, variables.cc:
+	Don't surround readline includes in `extern "C" { }'.
+
+	* sysdep.cc: Move all include statements to top of file.
+
+Tue Sep 19 01:58:21 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.cc (Fsystem): Use iprocstream *, and unwind_protect it.
+	* pager.cc (flush_output_to_pager): Likewise.
+	* dirfns.cc (Fls): Likewise.
+	* tree-plot.cc (plot_stream): Now a pointer.
+	(open_plot_stream): Deal with it.
+	(send_to_plot_stream, cleanup_tmp_files, do_external_plotter_cd):
+	Likewise.
+
+	* procstream.cc (cleanup_iprocstream, cleanup_oprocstream):
+	New functions.
+
+	* procstream.h, procstream.cc (class iprocstream, class oprocstream):
+	Keep track of pbuf.  Initialize it to 0 in default constructors,
+	delete it in destructor.  Don't call close in destructor.
+
+	* sighandlers.cc (octave_set_signal_handler): New function.
+	Use this name instead of signal everywhere.
+	* help.cc (try_info): Likewise.
+	* pager.cc (flush_output_to_pager): Likewise.
+	* octave.cc (main): Likewise.
+	* octave-hist.cc (do_edit_history): Likewise.
+
+	* input.cc (initialize_readline): Set rl_paren_string_delimiters
+	to avoid treating single quotes as string delimiters when doing
+	paren matching.
+
+	* Makefile.in (SOURCES): Don't list Map.cc or SLStack.cc here.
+
+	* tree-const.cc: Do include utils.h.
+
+	* sysdep.cc: Don't surround terminal includes in extern "C".
+	Include them before readline.h.
+
+	* Map.h: Don't include utils.h.
+	(CHNode::CHNode (const char*, const C&, CHNode *t):
+	Do strsave() inline.
+
+	* input.cc (generate_possible_completions): Generate name list
+	even when text == 0.
+	(operate_and_get_next): Don't declare history_stifled, call
+	history_is_stifled () instead.
+	Don't declare history_length, or max_input_history either.
+	Check (where >= history_length - 1) too, as in recent versions of
+	bash.
+
+	* user-prefs.h (user_prefs): New field, `completion_append_char'.
+	* user-prefs.cc (init_user_prefs): Initialize it.
+	(sv_completion_append_char): New function.
+	* variables.cc (install_builtin_variables): Install
+	completion_append_char.
+	* input.cc (command_generator): Use it.
+
+	* SLList-expr.cc, SLList-misc.cc, SLList-plot.cc, SLList-tc.cc,
+	DLList-fi.cc: Include config.h.
+	* DLList-fi.cc: Include file-info.h, not file-io.h.
+
+Mon Sep 18 11:01:24 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* octave.h (clean_up_and_exit): Tag with NORETURN instead of using
+	typedef trick.
+	* error.h (panic): Likewise.
+	* utils.h (jump_to_top_level): Likewise.
+
+	* file-io.h: Protect from multiple includes with octave_file_io,
+	not octave_files.
+
+	* file-info.h (class file_info): Convert to using std C++ string
+	class from char *.
+	* file-info.cc: Likewise.  Don't include utils.h.
+	* file-io.cc (return_valid_file, fopen_file_for_user,
+	fflush_internal, do_scanf): Use operator ==, not strcmp.
+	(close_files): Call error with file.name ().data (),
+	not file.name ().
+	(freport_internal): Call form with file.mode ().data () and
+	file.name ().data ().
+
+	* file-io.cc, file-io.h: Extract file_info class.
+	* file-info.cc, file-info.h: New files for file_info class.
+
+	* user-prefs.h (user_prefs): New field, `beep_on_error'.
+	* user-prefs.cc (init_user_prefs): Initialize it.
+	(beep_on_error): New function.
+	* variables.cc (install_builtin_variables): Install beep_on_error.
+	* octave.cc (maximum_braindamage): Set beep_on_error to "true".
+	* error.cc (verror): Conditionally beep.
+	(error): Don't reset error_state until after verror is called.
+
+Sun Sep 17 16:41:25 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (read_mat_binary_data, read_ascii_data,
+	save_ascii_data, read_binary_data, save_binary_data):
+	Handle string arrays.
+
+Fri Sep 15 00:24:19 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* user-prefs.cc (struct_levels_to_print,
+	set_output_max_field_width, set_output_precision,
+	set_save_precision): Eliminate unecessary kludge variable.
+
+	* variables.cc (gobble_leading_white_space): New arg,
+	in_parts.  Change all callers.
+
+	* lex.l (HELP_FCN): Delete start state.  The `help' command is now
+	handled the same as any other text-style function.
+
+	* gripes.cc (gripe_invalid_value_specified): New function
+	* user-prefs.cc: Use it.
+
+	* sysdep.cc (octave_words_big_endian): New global variable.
+	(ten_little_endians): New function.
+	(sysdep_init): Call it.
+	* load-save.cc (words_big_endian): Use this at run-time instead of
+	depending on WORDS_BIGENDIAN at compile-time.
+
+	* symtab.h (SYMTAB_VARIABLES): New macro.
+	* variables.cc (Fclear): Use it instead of just
+	symbol_def::USER_VARIABLE when looking for variables.
+
+	* octave.cc (main): If there is a file to execute, set
+	program_invocation_name and program_name to the name of the file
+	and argv to the remaining args.
+	(intern_argv): Only define argv if there are some remaining
+	arguments.
+
+	* defun.h (DEFVAR_INT): New macro.
+	(DEFVAR): Define in terms of DEFVAR_INT.  Delete args protect and
+	eternal.
+	(DEFCONST): New macro.
+	* variables.cc (install_builtin_variables): Use DEFCONST where
+	appropriate, change uses of DEFVAR to match new definition.
+
+	* variables.cc (bind_builtin_variable): New variant that accepts
+	const tree_constant& value.
+	(install_builtin_variables): Properly alphabetize DEFVAR for this.
+
+	* octave.cc (short_opts): Prefix with `+' to prevent argv
+	permutation.
+	(main): Don't use readline if forced_interactive.
+	(traditional): New file-scope variable.
+	(long_opts, usage_string, verbose_usage): Add `--traditional'.
+	(maximum_braindamage): New function.
+	(main): Call it if --traditional.
+
+	* input.cc (do_input_echo): Print prompt correctly when
+	forced_interactive is either true or false.
+
+Thu Sep 14 00:54:06 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* data.cc (Fstruct_elements): New function.
+
+	* file-io.cc (Fumask): New function.
+
+	* dirfns.cc (Fmkdir, Frmdir, Frename): New functions.
+
+	* Makefile.in: Add rules and dependencies for building safe-stat.o
+	and safe-lstat.o.
+
+	* mkdir.c, rename.c, rmdir.c: New files.
+	* Makefile.in (SOURCES): Include them in the list.
+
+	* safe-xstat.hin, safe-xstat.cin: New files
+	* Makefile.in (DISTFILES): Include them in the list.
+
+	* sighandlers.cc (octave_new_handler): Try to continue on memory
+	exhausted errors.
+	(sigfpe_handler): Improve error message.
+
+	* Makefile.in: Use `ifndef omit_deps', not `ifndef $(omit_deps)'.
+
+	* dirfns.cc (Freaddir): New function.
+
+	* f-sort.cc: Complete rewrite.  Now uses stable sort algorithm and
+	correctly handles complex matrices containing columns of all real
+	numbers.
+
+Wed Sep 13 03:16:40 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* arith-ops.cc: Unconditionally #define DIVIDE_BY_ZERO_ERROR.
+
+	* variables.cc (install_builtin_variables): Unconditionally
+	install NaN and nan.
+
+	* mappers.cc (xisinf): Don't do bogus things if isinf, isnan, or
+	finite are missing.
+	(xfinite): Likewise.
+
+	* sysdep.cc (octave_ieee_init): Don't set octave_NaN and
+	octave_Inf if values are not available.
+
+	* resource.cc (mk_ru_map): Don't use ru_ or tv_ as prefixes to
+	Octave names for the structure members.
+
+Tue Sep 12 02:04:16 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* procstream.h, procstream.cc: Rewrite.
+
+Mon Sep 11 18:42:05 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* filemode.c: New file, from Emacs.
+	* Makefile.in (SOURCES): Add it to the list.
+
+	* file-io.cc (Fstat, Flstat, mk_stat_map): New functions.
+
+	* timefns.cc (mk_tm_map): Don't use tm_ as prefix to Octave names
+	for these structure members.
+	(extract_tm): Likewise.
+	(Flocaltime): Fix doc string to match.
+
+Thu Sep  7 02:04:27 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* load-save.cc (save_user_variables): New function.
+	* sighandlers.cc (my_friendly_exit): Call it before exiting.
+	(sigfpe_handler): New function.
+	(install_signal_handlers) [__alpha__]: Install it.
+
+Wed Sep  6 14:35:10 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* tree-cmd.cc (tree_unwind_protect::eval): Ignore errors and
+	suppress error messages while executing first block of
+	unwind_protect commands.
+
+	* parse.y (end_error): Add missing case for unwind_protect_end.
+
+	* tree-expr.cc (tree_builtin::eval): Complain if no arguments
+	given for mapper functions.
+	(tree_fvc::lookup_map_element): Print error message for invalid
+	structure reference.
+
+Tue Sep  5 02:04:12 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc, input.cc, load-save.cc, octave.cc, sysdep.cc,
+	variables.cc, octave-hist.cc, utils.cc, f-schur.cc, f-rand.cc,
+	f-quad.cc, f-qpsol.cc, f-npsol.cc, f-lsode.cc, f-fsolve.cc,
+	f-dassl.cc, f-colloc.cc, f-balance.cc, error.cc, data.cc:
+	Add const qualifiers where appropriate.
+
+	* dirfns.h: Include <ctime>, for time_t.
+
+	* tempname.c, file-io.cc, help.cc, input.cc, octave-hist.cc,
+	octave.cc, sighandlers.cc, sysdep.cc, tree-expr.cc, tree-misc.cc,
+	tree-plot.cc, utils.cc, variables.cc, sysdir.h:
+	Move #include <sys/type.h> inside #ifdef HAVE_UNISTD_H.
+
+	* syswait.h: New file.
+	* Makefile.in (INCLUDES): Add it to the list.
+	* file-io.cc, sighandlers.cc: Use it instead of including
+	sys/wait.h directly.
+
+	* octave.cc: Include statdefs.h, not sys/stat.h.
+
+	* sysdir.h: New file.
+	* Makefile.in (INCLUDES): Add it to the list.
+	* dirfns.cc, utils.cc: Use it instead of including the headers
+	directly.
+
+	* pathlen.h: New file.
+	* Makefile.in (INCLUDES): Add it to the list.
+	* dirfns.cc, input.cc: Use it instead of including sys/param.h
+	directly.
+	* utils.cc: Don't include sys/param.h
+
+Sun Sep  3 18:52:59 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* tree-const.cc (TC_REP::string_value): Return const char*, not
+	char *.
+
+	* All .cc, .y, .l, .y files: Include <cctype>, not <ctype.h>, and
+	so on for all new C++ versions of these standard C headers.
+
+Thu Aug 31 17:09:38 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* pathsearch.h: Also hide `string'.
+
+	* oct-str.cc, oct-str.h: New files.
+	* Makefile.in: Add to the appropriate lists.
+	* tc-rep.h: Change char* to Octave_string* in anonymous union.
+	* tree-expr.cc (tree_matrix::eval): Handle multiple element strings.
+	* strfns.cc (toascii): Likewise.
+	* tree-const.cc (print_as_string): Likewise.
+	(TC_REP::force_numeric, TC_REP::rows, TC_REP::columns,
+	TC_REP::double_value, TC_REP::complex_value, TC_REP::matrix_value,
+	TC_REP::complex_matrix_value, TC_REP::convert_to_str): Likewise.
+	(TC_REP::print): Call octave_print_internal for string case.
+	(all_strings): New function.
+	Fix constructors to use new data structure.
+	* pr-output.cc (octave_print_internal): Add version for strings.
+	* Array-string.cc: New file.
+
+	* octave.cc (octave_argv): New global variable.
+	(intern_argv): New function.
+	(main): Fix argument parsing to do the right thing for arguments
+	to executable scripts.
+	* variables.cc: Add DEFUNs for argv, program_invocation_name, and
+	program_name.
+
+	* defun.h (DEFVAR): Fix comment.
+
+Thu Aug 24 00:02:00 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* file-io.cc (fgets_internal): Make second arg optional.  Add
+	optional arg `strip_final_newline'.
+	(Ffgets): Change to match new definition of fgets_internal.
+	(Ffgetl): Implement using the new fgets_internal.
+
+	* f-rand.cc (Frand): Update code for sizing return value to match
+	that used by ones, zeros, and eye.
+
+Wed Aug 23 19:52:45 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* tree-const.cc (do_vector_assign): Don't crash for
+	A(range) = scalar, or A(matrix) = scalar.
+
+	* f-dassl.cc (set_dassl_option): Rename from do_dassl_option.
+	(show_dassl_option): New function.
+	(Fdassl_options): Handle single arg.
+	* f-fsolve.cc (set_fsolve_option): Rename from do_fsolve_option.
+	(show_fsolve_option): New function.
+	(Ffsolve_options): Handle single arg.
+	* f-fsqp.cc (set_fsqp_option): Rename from do_fsqp_option.
+	(show_fsqp_option): New function.
+	(Ffsqp_options): Handle single arg.
+	* f-lpsolve.cc (set_lpsolve_option): Rename from do_lpsolve_option.
+	(show_lpsolve_option): New function.
+	(Flpsolve_options): Handle single arg.
+	* f-lsode.cc (set_lsode_option): Rename from do_lsode_option.
+	(show_lsode_option): New function.
+	(Flsode_options): Handle single arg.
+	* f-npsol.cc (set_npsol_option): Rename from do_npsol_option.
+	(show_npsol_option): New function.
+	(Fnpsol_options): Handle single arg.
+	* f-qpsol.cc (set_qpsol_option): Rename from do_qpsol_option.
+	(show_qpsol_option): New function.
+	(Fqpsol_options): Handle single arg.
+	* f-quad.cc: (set_quad_option): Rename from do_quad_option.
+	(show_quad_option): New function.
+	(Fquad_options): Handle single arg.
+	(Fquad): Doc fix.
+
+Tue Aug 22 00:38:05 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* tree-plot.cc (do_external_plotter_cd): New function.
+	* dirfns.cc (octave_change_to_directory): New function.  If cd is
+	successful, also call do_external_plotter_cd().
+	(Fcd): Call octave_change_to_directory(), not change_to_directory().
+
+	* pr-output.cc (pr_any_float): Change declaration of counter to
+	size_t to avoid gcc warnings.
+
+	* idx-vector.cc, octave-hist.cc, tree-const.cc, tree-expr.cc,
+	tree-misc.cc, utils.cc, xpow.cc, Map.cc:
+	Update for change in for loop variable scope for gcc 2.7.0.
+
+Mon Aug 21 19:34:53 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* tree-const.cc (fortran_style_matrix_assignment): Properly handle
+	case of complex LHS, real RHS.
+
+	* Makefile.in: Only include dependency files if $(omit_deps) is
+	not set.
+
+Wed Jul  5 00:03:58 1995  John Eaton  <jwe@bevo.che.wisc.edu>
+
+	* sysdep.cc: Explicitly include string.h.
+
+Sun Jun 25 00:18:10 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* load-save.cc (too_large_for_float (const Matrix&)):
+	Extract elements as doubles, not Complex.
+
+Sat Jun 24 22:59:15 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* pr-output.cc (any_element_is_inf_or_nan): Declare extern, not static.
+	* f-svd.cc (Fsvd): Call here to avoid trying to take SVD of matrix
+	containing Inf or NaN values.
+
+	* pr-output.cc (bit_format): New file-scope variable.
+	(set_format, pr_any_float): Handle bit_format.
+	(octave_print_internal): Handle bit_format like bank_format.
+	(init_format_state): Initialize bit_format.
+	(set_format_style): Allow `format bit' and `format native-bit'.
+
+Thu Jun  8 15:20:26 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* mappers.cc (arg, imag, signum): If arg is NaN, return NaN.
+
+Mon May 15 14:47:04 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* pager.cc (Fdiary): Initialize diary_file here, not in the
+	file-scope declaration.
+
+	* tree-expr.cc (tree_index_expression::eval):
+	Handle nargin == 0 the same as other cases.
+
+Tue May  2 10:02:23 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* load-save.cc (do_double_format_conversion): Add missing breaks.
+	(do_float_format_conversion): Likewise.
+
+Mon May  1 13:50:24 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* Makefile.in (OCTAVE_LIBS): Add @LIBPLPLOT@ to the list.
+
+	* timefns.cc (Ftime): Handle GETTIMEOFDAY_NO_TZ.
+
+	* Makefile.in (SOURCES): Delete tc-rep.cc, tc-rep-ass.cc, and
+	tc-rep-idx.cc from the list.
+
+	* tree-const.h: Add #pragma interface.
+	* tree-const.cc: Add contents of tc-rep.cc, tc-rep-ass.cc, and
+	tc-idx.cc to this file.  Add #pragma implementation.  This makes
+	tree-const.cc large, but makes the final binary smaller.
+
+	*  unwind-prot.h unwind-prot.cc token.cc token.h procstream.cc
+	procstream.h idx-vector.cc idx-vector.h symtab.cc symtab.h
+	oct-map.cc oct-map.h oct-obj.cc oct-obj.h tree-plot.h tree-plot.cc
+	tree-misc.cc tree-misc.h tree-expr.cc tree-expr.h tree-cmd.cc
+	tree-cmd.h tree-base.cc tree-base.h:
+	Add #pragma interface/implementation.
+
+	* Makefile.in (OCTAVE_LIBS): Delete @LIBINFO@ from list.
+	* help.cc: Don't include info headers or extern declarations for
+	functions from info.
+	(try_info): Call info as a subprocess.	Delete second arg.
+	Handle SIGINT here, not in help_from_info().
+	(help_from_info): Complain if info doesn't work.
+
+	* defun-dld.h (DEFUN_DLD_BUILTIN) [OCTAVE_LITE && MAKE_BUILTINS]:
+	If ! WITH_DLD, simply emit a character string constant.
+
+Fri Apr 28 15:23:06 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* lex.l ({IDENT}{S}*): Don't delete tok.  That's handled by
+	strip_trailing_whitespace() now.
+	(<HELP_FCN>[^ \t\n]*{S}*|<TEXT_FCN>[^ \t\n\;\,]*{S}*): Ditto.
+
+	* pathsearch.h: Include kpathsea/progname.h.
+	* octave.cc (initialize_globals): Call kpse_set_progname().
+
+	* token.h: Declare copy constructor and operator = private.
+	* token.cc: Abort if copy constructor or operator = is used.
+
+Thu Apr 27 13:54:39 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* tree-expr.cc (lookup_map_element): Don't list default argument
+	values here too.
+
+	* pr-output.cc (hex_format): New file-scope variable.
+	(set_format, pr_any_float): Handle hex_format.
+	(octave_print_internal): Handle hex_format like bank_format.
+	(init_format_state): Initialize hex_format.
+	(set_format_style): Allow `format hex' and `format native-hex'.
+
+	* variables.cc (bind_ans): Create ans_id each time with new and
+	ask tree_simple_assignment_expression to handle cleaning it up.
+	This apparently plugs a memory leak.
+
+	* help.cc (Ftype): Don't try to print map constants.  Handle
+	references to structure members.
+
+Wed Apr 26 12:40:59 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* input.cc (generate_struct_completions): New function.
+	(generate_possible_completions): Likewise.
+	(looks_like_struct): Likewise.
+	(command_generator): Handle completion of struct variables.
+
+	* tree-expr.h, tree-expr.cc (tree_fvc::lookup_map_element):
+	Add insert and silent args.
+
+	* oct-map.cc: New file.
+	* Makefile.in (SOURCES): Add it to the list.
+
+Mon Apr 24 09:41:02 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* variables.cc (Fexist): Handle structure references too.
+
+	* tree-const.cc (lookup_map_element (const char*, int, int):
+	New function.
+	(lookup_map_element (SLList<char*>&, int, int): New arg, silent.
+	* tc-rep.cc (lookup_map_element): New arg, silent. If nonzero,
+	don't call error().
+
+	* tc-rep.h (is_empty): Define here.
+	* tree-const.h (is_empty): Hand off to TC_REP::is_empty().
+
+	* data.cc (Fstruct_contains): Call lookup_map_element on args(0)
+	instead of extracting the map and calling contains() on it.
+
+	* parse.y (EPLUS, EMINUS): New tokens.
+	(simple_expr): Handle EPLUS, EMINUS the same as `+' and `-'.
+	* lex.l (".+", ".-"): New patterns.  Match these separately to
+	disallow using them as unary operators.
+
+	* lex.l (next_token_is_bin_op): Simplify by noting that spacing
+	only matters for those tokens that can also be unary ops.
+
+Fri Apr 21 14:34:45 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* load-save.cc (read_ascii_data): Allow reading of empty
+	matrices.
+
+	* tc-rep-ass.cc (vector_assignment): Only assert that we are not
+	doing fortran-style indexing and that nr <= 1 || nc <= 1.
+	(do_vector_assign): Handle assignment of [] when one dimension is
+	zero and the other is anything.
+
+Thu Apr 20 13:56:21 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* tc-rep-ass.cc (delete_rows, delete_columns): Simply return if
+	num_to_delete is 0.
+
+	* lex.l (handle_identifier): Don't match plot option keywords
+	inside parentheses or braces.
+
+	* variables.cc (parse_fcn_file): Also delete tmp_help_txt if
+	running a script.
+
+	* tree-cmd.h (tree_command): Add destructor.
+
+	* tree-expr.h tree_simple_assignment_expression (lhs_idx_expr):
+	Hang on to idx_expr, not just its parts so it can be deleted.
+	(init): Initialize it.
+	* tree-expr.cc (~tree_simple_assignment_expression): Delete it.
+
+	* tree-expr.h (tree_multi_val_ret, tree_oct_obj, tree_fvc,
+	tree_identifier, tree_builtin, tree_function): Add destructors.
+	* tree-expr.cc (tree_function::~tree_function): Delete some stuff.
+
+	* tree-misc.h (tree_va_return_list): Add destructor.
+
+	* octave.cc (__builtin_new, __builtin_delete): Provide our own,
+	for debugging.
+
+	* utils.cc (strconcat): Don't depend on the return value from
+	strcat.
+	(file_in_path): Simplify logic.
+
+	* parse.y (maybe_convert_to_ans_assign): Create ans_id each time
+	with new and ask tree_simple_assignment_expression to handle
+	cleaning it up.  This apparently plugs a memory leak.
+
+	* lex.l (strip_trailing_whitespace): Declare retval static.
+	Delete it before saving next string.
+
+	* error.cc (Ferror): Do call error() for empty string args.
+	(error_1): Don't print anything if fmt is "" or "\n", but do set
+	the error state appropriately.
+
+	* tree-cmd.cc (tree_unwind_protect::eval): Handle return and break
+	in the `try' part of the statement.
+
+Mon Apr 10 19:29:44 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* f-expm.cc, f-givens.cc, f-qzval.cc, f-syl.cc, f-rand.cc:
+	Where appropriate, declare Fortran functions to take reference
+	instead of pointer args.  Change callers.
+
+	* mappers.cc: Declare Fortran functions to take reference instead
+	of pointer args.  Change callers.
+
+	* gamma.c, lgamma.c, erfc.c, erf.c, atanh.c, asinh.c, acosh.c:
+	Declare Fortran functions to take reference instead of pointer
+	args.
+
+Sun Apr  9 19:38:53 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* file-io.cc (Fpopen, Fpclose, Fexecute, Fsync_system,
+	Fasync_system, Fwaitpid, Fmkfifo, Funlink): New functions.
+
+	* sighandlers.cc (sigchld_handler): New function.
+	(install_signal_handlers): Add call to install
+	sigchld_handler. (This is #if 0'd out, waiting for code to help
+	determine which child exited and what to do about it).
+
+	* tree-expr.h (tree_oct_obj): New class.
+
+	* tree-expr.h (tree_multi_assignment_expression::preserve): New
+	data member.  Add arg with default value to constructors.  Change
+	callers as necessary.
+	* tree-expr.cc (~tree_multi_assignment_expression): Conditionally
+	delete lhs.
+
+	* parse.y (make_multi_val_ret): Pass matrix instead of getting it
+	from the global matrix list.
+	(expression): Extract matrix from matrix list before calling
+	make_multi_val_ret().
+
+	* parse.y (command): Handle new for loop syntax for structures.
+
+	* tree-plot.h (subplot_list): Include tree_print_code() in
+	initializer lists for constructors.
+	* tree-expr.h (tree_statement_list, tree_argument_list,
+	tree_parameter_list, tree_return_list, tree_global_init_list,
+	tree_if_command_list, ): Likewise.
+
+	* tree-cmd.h (tree_for_command::id_list): New data member.
+	(tree_for_command (tree_return_list*, tree_expression*,
+	tree_statement_list*, int, int)): Likewise.
+	* tree-cmd.cc (tree_for_command::eval): Handle for loops with
+	structures.
+	(do_for_loop_once (tree_return_list*, Octave_object&, int&)):
+	New form for handling for loops with structures.
+
+	* sysdep.cc (octave_ieee_init): Determine floating point format
+	here.
+	(native_float_format): New global variable.
+	(Fisieee): Compute return value from native_float_format, not by
+	using preprocessor macros.
+	* sysdep.h (enum floating_point_format): Move declaration here.
+	* load-save.cc: From here.
+	Always define all floating point format conversion routines.
+	(do_double_format_conversion, do_float_format_conversion):
+	Use native_float_format instead of preprocessor macros.
+
+Sat Apr  8 15:41:35 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* Makefile (TEMPLATE_SRC): New variable.
+	(DISTFILES): Add $(TEMPLATE_SRC).
+	(SOURCES): Delete Map.cc and SLStack.cc from here.
+
+	* variables.cc (install_builtin_variables): Use OCTAVE_VERSION
+	instead of version_string to initialize OCTAVE_VERSION.
+	* version.h (version_string): Delete.
+
+	* getopt.c (_getopt_internal): Initialize indfound to avoid warning.
+
+Fri Apr  7 15:29:41 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* tc-inlines.h (REP_RHS_MATRIX): Just check to see if tc is real
+	or complex.  If conversion fails, return.
+
+Thu Apr  6 00:10:47 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* data.cc (Fstruct_contains): New function.
+
+	* tc-rep.cc (print_code): Add extra parens around while condition
+	to avoid warning.
+	* utils.cc (undo_string_escapes): Likewise.
+	* input.cc (decode_prompt_string): Likewise.  Also rewrite if
+	statement to avoid warning.
+
+Tue Apr  4 22:54:17 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* tree-expr.cc (tree_multi_assignment_expression::eval,
+	tree_simple_assignment_expression::eval):  Call print_constant
+	even if user_pref.print_answer_id_name is false.
+
+Mon Apr  3 17:57:14 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* tc-inlines.h (TC_REP): Avoid redefinition.
+
+	* tree-const.h (do_binary_op, do_unary_op): Declare as friends of
+	tree_constant class too.
+
+	* tree-plot.h (subplot_using::have_values): Delete data member.
+	* tree-plot.cc (subplot_using::eval): Always recompute values.
+
+Fri Mar 31 10:18:32 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* tc-rep.cc (print): Print open brace for structures here.
+	* tree-expr.cc (print_constant): Not here.
+
+	* symtab.cc (define): Don't delete arg if sv_fcn fails.
+
+	* tree-const.cc (print): New function.  Create ostrstream buffer
+	and pass it to rep->print().
+	* tree-const.h (eval (int)): Call print(), not rep->print().
+	* tc-rep.cc (structure_indent_level): New file-scope variable.
+	(print): New arg, output_buf, is stream to print to.
+	Print values of structure elements too.
+
+	* user-prefs.h (user_preferences): New field, struct_levels_to_print.
+	* user-prefs.cc (struct_levels_to_print): New function.
+	* variables.cc (install_builtin_variables): Add DEFVAR for new
+	variable struct_levels_to_print.
+
+	* tree-const.cc (print_as_scalar, print_as_structure): Move here
+	from tree-expr.cc and make extern.
+
+	* tree-expr.cc (print_as_structure): New function.
+	(print_constant): Use it.
+
+	* tree-expr.cc (print_constant): New arg, print_padding.
+	(tree_simple_assignment_expression::eval): Use print_constant
+	instead of duplicating code here.
+	(tree_multi_assignment_expression::eval): Likewise.
+
+Thu Mar 30 13:24:11 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* Makefile.in (SOURCES): Add resource.cc.
+	* resource.cc: New file, extracted from timefns.cc.
+	(Fgetrusage): New function.
+	* timefns.cc (cputime): Delete (now implemented in a function file
+	using new getrusage function).
+
+Wed Mar 29 22:52:42 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* Makefile.in (SOURCES): Add strftime.c.
+	* strftime.c: New file, from sh-utils distribution.
+
+	* timefns.cc (mk_tm_map, extract_tm, Ftime, Fgmtime, Flocaltime,
+	Fmktime, Fstrftime): New basic time functions.
+	(Fclock, Fdate): Delete (now implemented in function files using new
+	time functions).
+
+Tue Mar 28 17:51:51 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* file-io.cc (return_valid_file, do_printf, do_scanf,
+	fclose_internal, feof_internal, ferror_internal, fflush_internal,
+	fgets_internal, fopen_internal, fread_internal, freport_internal,
+	frewind_internal, fseek_internal, ftell_internal,
+	fwrite_internal): Declare static.
+	* file-io.h: Delete extern declarations for them.
+
+Fri Mar 24 09:52:50 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* pr-output.cc (pr_col_num_header): New function.
+	(compact_format): New file-scope variable.
+	(set_format_style): Handle loose and compact formats.
+	(octave_print_internal (ostream&, const ComplexMatrix&, int)):
+	Replace duplicate code with call to pr_col_num_header().
+	(octave_print_internal (ostream&, const Matrix&, int): Likewise.
+	(octave_print_internal (ostream&, const Range&, int): Likewise.
+
+Tue Mar 21 08:44:48 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* mappers.cc (xgamma): Always use Slatec library function.
+	* (xlgamma): Likewise.
+	* Makefile.in (SOURCES): Don't include lgamma.c.
+
+Fri Mar 17 22:38:39 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* tc-rep.cc (TC_REP::new): Don't try to keep track of newlist_tail.
+	Explicitly initialize newlist to zero.
+	* tree-const.cc (tree_constant::operator new): Likewise.
+
+Fri Mar 10 12:40:24 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* tree-cmd.cc (quit_loop_now): Declare inline.
+	(tree_for_command::do_for_loop_once): Split into two versions, one
+	for the general case and one for when the loop variable is a
+	simple identifier.
+	(DO_LOOP): New macro.  Move tests outside of loop.
+	(tree_for_command::eval): Speed up by checking to see if loop
+	variable is a simple identifier and by using DO_LOOP.
+
+	* tree-const.h: New union of rep and freeptr.  The freeptr element
+	is used for our custom memory management functions.
+
+	* tc-rep.h: Add freeptr element to anonymous union (for our custom
+	memory management functions).
+
+	* tree-const.cc (newlist, newlist_grow_size, newlist_tail): New
+	static variables.
+	(tree_constant::operator new): Always define to allow more
+	efficient allocation of single tree_constants.
+	(tree_constant::operator delete): Likewise, handle deletion of the
+	memory we allocate.
+
+	* tc-rep.cc (newlist, newlist_grow_size, newlist_tail): New static
+	variables.
+	(tree_constant::operator new): Always define to allow more
+	efficient allocation of single tree_constants.
+	(tree_constant::operator delete): Likewise, handle deletion of the
+	memory we allocate.
+
+Fri Mar  3 14:00:08 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* error.cc (verror): Terminate output_buf with ends.
+
+	* statdefs.h: Use C-style comment in first line instead of
+	C++-style comment.
+
+Mon Feb 27 10:11:18 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* parse.y (maybe_convert_to_ans_assign): Only lookup ans once.
+	* variables.cc (bind_ans): New function.
+	* tree-expr.cc (tree_identifier::eval (int)): Use it here.
+	(tree_identifier::eval (int, int, const Octave_object&): And here.
+
+	* tree-expr.cc (install_nargin_and_nargout): New function.
+	* tree-expr.h (tree_function::tree_function (tree_statement_list *,
+	symbol_table *, int, int)): Call it.
+
+	* tree-expr.cc (tree_function::bind_nargin_and_nargout): New function.
+	(tree_function::eval): Call it insead of the one from variables.cc.
+
+	* variables.cc (bind_nargin_and_nargout): #if 0 out.
+
+Sun Feb 26 00:17:06 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* load-save.cc (Fload, Fsave): Free fname returned by tilde_expand().
+	* dirfns.cc (Fls): Likewise.
+
+	* tree-expr.cc (tree_multi_assignment_expression::eval (int, int,
+	const Octave_object&)): Call tree_return_list::operator () (Pix)
+	explicitly.
+
+	* octave.cc (initialize_globals): Put TEXMF in the environment for
+	kpthsea.
+
+	* Makefile.in (OCTAVE_LIBS): Use @LIBINFO@ and @LIBREADLINE@,
+	substituted by configure.  Use kpathsea.a, not libkpathsea, so we
+	don't have to modify the kpathsea Makefile.
+
+Sat Feb 25 18:59:26 1995  John Eaton  <jwe@schoch.che.utexas.edu>
+
+	* pathsearch.cc: New file.
+	* pathsearch.h: New file.
+	* Makefile.in (INCLUDES): Include it in the list.
+	* dynamic-ld.cc, help.cc, utils.cc: Use it instead of repeating
+	identical code multiple times.
+
+	* variables.cc (install_builtin_variables): Only DEFVAR
+	suppress_verbose_help_message if USE_GNU_INFO.
+
+	* help.cc (Fhelp): Only handle -i if USE_GNU_INFO.
+	(additional_help_message): Only print message if USE_GNU_INFO.
+	(builtin_help): New function.
+	(help_from_info): New function.  Print warning if not USE_GNU_INFO.
+
+See ChangeLog.1 in the top level directory for earlier changes.