view src/ChangeLog @ 12335:6e9f100c0d61

include <unistd.h> in octave.cc
author John W. Eaton <jwe@octave.org>
date Thu, 03 Feb 2011 16:54:48 -0500
parents 63dc132a1000
children f6763ab98609
line wrap: on
line source

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.

2010-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 o