Mercurial > hg > octave-max
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