src/ChangeLog
author John W. Eaton <jwe@octave.org>
Thu Jul 16 11:56:44 2009 -0400 (2009-07-16)
changeset 9384 44300eb51817
parent 9381 4290384284b7
child 9387 b308b2e12f04
permissions -rw-r--r--
graphics.cc (get_array_limits): require min_pos value to be greater than zero
     1 2009-07-16  John W. Eaton  <jwe@octave.org>
     2 
     3 	* graphics.cc (get_array_limits): Require min_pos value to be
     4 	greater than zero.
     5 
     6 2009-07-08  John W. Eaton  <jwe@octave.org>
     7 
     8 	* pt-assign.cc (maybe_warn_former_built_in_variable): Improve message.
     9 
    10 	2009-07-21  Jaroslav Hajek  <highegg@gmail.com>
    11 
    12 	Version 3.2.2 released.
    13 
    14 2009-07-03  Jaroslav Hajek  <highegg@gmail.com>
    15 
    16 	* pt-eval.cc (do_unwind_protect_cleanup_code): Add missing
    17 	unwind_protect::run.
    18 
    19 2009-07-02  Jaroslav Hajek  <highegg@gmail.com>
    20 
    21 	* help.cc (do_which): Also look for files.
    22 
    23 2009-07-02  Jaroslav Hajek  <highegg@gmail.com>
    24 
    25 	* Cell.cc (Cell::index): Use proper resize_fill_value.
    26 
    27 2008-07-01  David Bateman  <dbateman@free.fr>
    28 	
    29 	* pr-output.cc (static inline std::string rational_approx (double, 
    30 	int)): Test for underflow of fractional part of rational approximation
    31 	earlier in the loop.
    32 
    33 2009-07-01  Joe Rothweiler <octaveuser@sensicomm.com>
    34 
    35 	* input.cc (raw_mode): Use TCSADRAIN if no wait.
    36 
    37 2009-06-30  Jaroslav Hajek  <highegg@gmail.com>
    38 
    39 	* symtab.h (force_variable): Remove assertion.
    40 
    41 2009-06-26  John W. Eaton  <jwe@octave.org>
    42 
    43 	* load-path.cc (Faddpath): Preserve order of prepended elements.
    44 
    45 2009-06-24  Thorsten Meyer  <thorsten.meyier@gmx.de>
    46 
    47 	* oct-map.cc (Octave_map::squeeze, Octave_map::permute,
    48 	Octave_map::transpose, Octave_map::reshape, Octave_map::concat,
    49 	Octave_map::index): Add tests for preservation of key order in
    50 	struct arrays.
    51 
    52 2009-06-24  Jaroslav Hajek  <highegg@gmail.com>
    53 
    54 	* pt-mat.cc (get_concat_class): Use empty string as zero value.
    55 	(tm_row_const_rep::tm_row_const_rep): Initialize class_nm to empty
    56 	string.
    57 	(tm_const::tm_const): Ditto.
    58 
    59 2009-06-24  John W. Eaton  <jwe@octave.org>
    60 
    61 	* pt-assign.cc (former_built_in_variables): Remove "ans" from the list.
    62 
    63 2009-06-24  Jaroslav Hajek  <highegg@gmail.com>
    64 
    65 	* pt-eval.cc (do_unwind_protect_cleanup_code):
    66 	Workaround sig_atomic_t != int.
    67 
    68 2009-06-23  Jaroslav Hajek  <highegg@gmail.com>
    69 
    70 	* quit.h (octave_quit_exception): Delete.
    71 	(exit_status, quitting_gracefully): New globals.
    72 	* quit.cc: Initialize them.
    73 	(Fquit): Set the globals, simulate interrupt.
    74 	(main_loop): Handle exit properly.
    75 	* octave.cc (execute_eval_option_code): Ditto.
    76 	(execute_command_line_file): Ditto.
    77 	* pt-eval.cc (do_unwind_protect_cleanup_code):
    78 	Fix order of unwind_protect calls.
    79 
    80 2009-06-23  John W. Eaton  <jwe@octave.org>
    81 
    82 	* oct-map.cc (Octave_map::squeeze, Octave_map::permute,
    83 	Octave_map::transpose, Octave_map::reshape, Octave_map::concat):
    84 	Preserve key order.
    85 
    86 2009-06-22  Jaroslav Hajek  <highegg@gmail.com>
    87 
    88 	* ov-cell.cc (octave_cell::all_strings): Avoid duplicate conversions.
    89 
    90 2009-06-20  Jaroslav Hajek  <highegg@gmail.com>
    91 
    92 	* ov.cc (Fsubsasgn): Uniquify shared value before assigning to it.
    93 
    94 2009-06-17  John W. Eaton  <jwe@octave.org>
    95 
    96 	* mex.cc (mxArray_octave_value::get_data):
    97 	If octave_value::mex_get_data returns a valid pointer, mark it as
    98 	foreign and return it instead of enumerating the types that can be
    99 	handled directly.
   100 
   101 	* ov-re-mat.h (octave_matrix::mex_get_data): New function.
   102 	* ov-bool-mat.h (octave_bool_matrix::mex_get_data): Ditto.
   103 	* ov-flt-re-mat.h (octave_float_matrix::mex_get_data): Ditto.
   104 	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::mex_get_data): Ditto.
   105 	* ov-base-mat.h (octave_base_matrix::mex_get_data): Delete.
   106 
   107 2009-06-16  Jaroslav Hajek  <highegg@gmail.com>
   108 
   109 	* symtab.h (symbol_table::set_scope_and_context): Avoid checking
   110 	error_state for setting context.
   111 
   112 2009-06-12  Kai NODA  <nodakai@gmail.com>
   113 
   114 	* ls-mat4.h: Fix include guard
   115 	* ov-type-conv.h: Add missing include guard.
   116 
   117 2009-06-12  Jaroslav Hajek  <highegg@gmail.com>
   118 
   119 	* ov-cell.cc (octave_cell::sort (Array<octave_idx_type>&)): Simplify.
   120 
   121 2009-06-10  John W. Eaton  <jwe@octave.org>
   122 
   123 	* pt-fcn-handle.cc (tree_anon_fcn_handle::dup): Don't convert to
   124 	tree_constant object here.  Do inherit from current symbol table
   125 	scope and context.  New test.
   126 
   127 	* lex.l	(handle_identifier): Set lexer_flags.looking_for_object_index
   128 	false if identifier is a keyword.
   129 	({IDENT}{S}*): Don't set lexer_flags.looking_for_object_index here.
   130 
   131 2009-06-09  Jaroslav Hajek  <highegg@gmail.com>
   132 
   133 	* octave.cc (octave_main): Call initialize_command_input
   134 	conditionally. Move line_editing update in front of it.
   135 	Call command_editor::force_default_editor if not line_editing.
   136 
   137 2009-06-09  Jaroslav Hajek  <highegg@gmail.com>
   138 
   139 	* data.cc (Flog2): Fix tests.
   140 
   141 2009-06-08  John W. Eaton  <jwe@octave.org>
   142 
   143 	* variables.cc (symbol_exist): Returnn 1 for function handles and
   144 	inline function objects.
   145 
   146 2009-06-08  Jaroslav Hajek  <highegg@gmail.com>
   147 
   148 	* symtab.h (symbol_table::do_clear_global,
   149 	symbol_table::do_clear_global_pattern): Properly erase from both local
   150 	and global table.
   151 
   152 2009-06-08  Jaroslav Hajek  <highegg@gmail.com>
   153 
   154 	* variables.cc (Fclear): Clear also globals when called without
   155 	arguments.
   156 
   157 2009-06-07  Jaroslav Hajek  <highegg@gmail.com>
   158 
   159 	* graphics.cc (color_property::do_set): Allow a wider range of types.
   160 
   161 2009-06-07  Jaroslav Hajek  <highegg@gmail.com>
   162 
   163 	* DLD-FUNCTIONS/find.cc (Ffind): Fix docs. Improve second argument
   164 	handling. Add regression tests.
   165 
   166 2009-06-06  Rik  <rdrider0-list@yahoo.com>
   167 
   168 	* data.cc: Update documentation for 'complex' function
   169 
   170 2009-06-06  Rik  <rdrider0-list@yahoo.com>
   171 
   172 	* load-save.cc: Update documentation for NA and isna functions
   173 
   174 2009-06-06  Rik  <rdrider0-list@yahoo.com>
   175 
   176 	* load-save.cc: Update documentation for load and save
   177 
   178 2009-06-06  Rik  <rdrider0-list@yahoo.com>
   179 
   180 	* pr-output.cc: Update documentation for 'format'
   181 
   182 2009-06-05  Rik  <rdrider0-list@yahoo.com>
   183 
   184 	* variables.cc: Update documentation for 'who' family of functions
   185 
   186 2009-06-03  Rik  <rdrider0-list@yahoo.com>
   187 
   188 	* input.cc: Correct documentation for keyboard function
   189 
   190 	2009-05-25  Jaroslav Hajek  <highegg@gmail.com>
   191 
   192 	Version 3.2.0 released.
   193 
   194 2009-06-02  Rob Mahurin  <rob@utk.edu>
   195 
   196 	* Makefile.in: Add CARBON_LIBS to OCTINTERP_LINK_DEPS.
   197 	From Bernard Desgraups <bdesgraupes@orange.fr>.
   198 	
   199 2009-06-02  Jaroslav Hajek  <highegg@gmail.com>
   200 
   201 	* ov-base.cc (octave_base_value::numeric_assign): Gripe when no index
   202 	given.
   203 	* ov-cell.cc (octave_cell::subsasgn): Ditto.
   204 	* ov-struct.cc (octave_struct::subsasgn): Ditto.
   205 	* ov-list.cc (octave_list::subsasgn): Ditto.
   206 
   207 2009-05-28  John W. Eaton  <jwe@octave.org>
   208 
   209 	* load-path.cc (load_path::do_files): Avoid shadow warning from GCC.
   210 
   211 2009-05-27  John W. Eaton  <jwe@octave.org>
   212 
   213 	* DLD-FUNCTIONS/__magick_read__.cc (write_image):
   214 	Bail out if given indexed image.
   215 
   216 2009-05-27  Jaroslav Hajek  <highegg@gmail.com>
   217 
   218 	* DLD-FUNCTIONS/__magick_read__.cc (encode_map): Fix RGB color
   219 	construction.
   220 
   221 2009-05-26  John W. Eaton  <jwe@octave.org>
   222 
   223 	* load-path.h, load-path.cc (load_path::files, load_path::do_files): 
   224 	New arg, OMIT_EXTS.
   225 	* help.cc (F__list_functions__): Call load_path::files with
   226 	omit_exts set to true.
   227 
   228 	* symtab.h
   229 	(symbol_table::symbol_record::symbol_record_rep::is_variable):
   230 	Use "! is_local ()" instead of storage_class != local.
   231 	(symbol_table::do_variable_names): Only add variables to the list.
   232 	(symbol_table::unmark_forced_variables): New static function
   233 	* variables.cc (do_who): Use is_variable instead of is_defined.
   234 	Also limit output to variables when using regexp pattern.
   235 	* octave.cc (unmark_forced_vars): Delete.
   236 	(execute_eval_option_code): Don't add unmark_forced_vars to 
   237 	unwind_protect stack here.
   238 	* toplev.cc (main_loop): Add symbol_table::unmark_forced_variables
   239 	to the unwind_protect stack here.
   240 	* input.cc (get_debug_input): Likewise.
   241 	* parse.y (parse_fcn_file, eval_string): Likewise.
   242 
   243 2009-05-25  Jaroslav Hajek  <highegg@gmail.com>
   244 
   245 	* toplev.h (quit_allowed): New global variable.
   246 	* toplev.cc (quit_allowed): Declare it.
   247 	(Fquit): Raise error if quitting is not allowed.
   248 	* octave.cc (octave_main): if running as embedded, disable quit by
   249 	default.
   250 
   251 2009-05-25  Jaroslav Hajek  <highegg@gmail.com>
   252 
   253 	* variables.cc (do_who): Only output symbols with a defined value.
   254 
   255 2009-05-22  Michael Goffioul  <michael.goffioul@gmail.com>
   256 
   257 	* toplev.h (main_loop): Tag with OCTINTERP_API.
   258 	* input.h (octave_read, get_input_from_file, get_input_from_stdin):
   259 	Ditto.
   260 	* lex.h (create_buffer, current_buffer, switch_to_buffer,
   261 	delete_buffer, restore_input_buffer, delete_input_buffer): Ditto.
   262 
   263 2009-05-22  Robert T. Short  <octave@phaselockedsystems.com>
   264 
   265 	* ov-class.h, ov-class.cc (octave_class::clear_exemplar_map):
   266 	New function.
   267 	* symtab.h (symbol_record::clear_objects,
   268 	symbol_record::do_clear_objects): New functions.
   269 	* variables.cc (do_matlab_compatible_clear, clear):
   270 	Handle -classes option.
   271 
   272 2009-05-22  Jaroslav Hajek  <highegg@gmail.com>
   273 
   274 	* src/ov-base-mat.cc (octave_base_matrix<MT>::assign (const
   275 	octave_value_list, typename MT::element_type)): Avoid out of bounds
   276 	assignments.
   277 
   278 2009-05-21  Michael Goffioul  <michael.goffioul@gmail.com>
   279 
   280 	* graphics.cc (figure::properties::get_boundingbox,
   281 	figure::properties::set_boundingbox): Get screen size from root
   282 	object.
   283 	(convert_position): Get screen resolution from root object and remove
   284 	unneeded "backend" argument.
   285 	(axes::properties::get_boundingbox,
   286 	figure::properties::get_boundingbox,
   287 	figure::properties::set_boundingbox): Remove unneeded backend argument
   288 	to convert_position call.
   289 
   290 	* debug.h (class bp_table): Tag with OCTINTERP_API.
   291 	* input.h (Vdebugging): Ditto.
   292 	* pt-eval.h (class tree_evaluator): Ditto.
   293 	* toplev.h (class octave_call_stack): Ditto.
   294 
   295 	* file-io.cc (mkstemp): Add mktemp-based implementation of mkstemp on
   296 	platforms that do not have it (mkstemp is required by the new help
   297 	system).
   298 
   299 	* TEMPLATE-INST/Array-os.cc: Add "extern template" declaration for
   300 	Array<octave_idx_type> to avoid implicit instantiation (and duplicate
   301 	symbols at link-time) [Win32]
   302 
   303 2009-05-20  John W. Eaton  <jwe@octave.org>
   304 
   305 	* pt-assign.cc (maybe_warn_former_built_in_variable):
   306 	Set initialized to true when done initializing vars set.
   307 	From Michael Goffioul  <michael.goffioul@gmail.com>.
   308 
   309 2009-05-20  Jaroslav Hajek  <highegg@gmail.com>
   310 
   311 	* ov-typeinfo.h
   312 	(octave_value_typeinfo::unary_class_ops,
   313 	octave_value_typeinfo::unary_ops,
   314 	octave_value_typeinfo::non_const_unary_ops,
   315 	octave_value_typeinfo::binary_class_ops,
   316 	octave_value_typeinfo::binary_ops,
   317 	octave_value_typeinfo::compound_binary_class_ops,
   318 	octave_value_typeinfo::compound_binary_ops,
   319 	octave_value_typeinfo::cat_ops,
   320 	octave_value_typeinfo::assign_ops,
   321 	octave_value_typeinfo::assignany_ops,
   322 	octave_value_typeinfo::pref_assign_conv,
   323 	octave_value_typeinfo::type_conv_ops,
   324 	octave_value_typeinfo::widening_ops): Declare as Array<void *>.
   325 	* ov-typeinfo.cc: Reflect changes.
   326 
   327 2009-05-20  Jaroslav Hajek  <highegg@gmail.com>
   328 
   329 	* toplev.h (octave_exit_func): New typedef.
   330 	(octave_exit): Change to octave_exit_func.
   331 	
   332 2009-05-20  Jaroslav Hajek  <highegg@gmail.com>
   333 	
   334 	* ov-typeinfo.cc: Don't include oct-obj.h.
   335 
   336 2009-05-20  Jaroslav Hajek  <highegg@gmail.com>
   337 
   338 	* toplev.h (octave_quit_exception): New class.
   339 	(octave_exit): New global variable.
   340 	* toplev.cc (octave_exit): Initialize to ::exit.
   341 	(clean_up_and_exit): Call octave_exit if set.
   342 	(Fquit): Raise octave_quit_exception to quit.
   343 	(main_loop): Catch octave_quit_exception.
   344 	* octave.cc (execute_command_line_file): Ditto.
   345 	(execute_eval_option_code): Ditto.
   346 
   347 2009-05-19  John W. Eaton  <jwe@octave.org>
   348 
   349 	* DLD-FUNCTIONS/fltk_backend.cc (F__fltk_redraw__): New function.
   350 	(F__init_fltk__): Call add_input_event_hook with feval to add
   351 	__fltk_redraw__ to the list of even hook functions to call.
   352 	Call mlock when initializing.
   353 	(F__remove_fltk__): Call remove_input_event_hook with feval to
   354 	remove __fltk_redraw__ from the list of event hook functions.
   355 	Unlock __init_fltk__ when shutting down.
   356 
   357 	* input.cc (Finput_event_hook): Delete.
   358 	(input_event_hook): Handle set of functions instead of just one.
   359 	(Fadd_input_event_hook, Fremove_input_event_hook): New functions.
   360 
   361 2009-05-19  Jaroslav Hajek  <highegg@gmail.com>
   362 
   363 	* Makefile.in: Add X11_LIBS to OCTINTERP_LINK_DEPS.
   364 
   365 2009-05-17  Jaroslav Hajek  <highegg@gmail.com>
   366 
   367 	* TEMPLATE-INST/Array-tc.cc: Change #include.
   368 
   369 2009-05-15  Robert T. Short  <octave@phaselockedsystems.com>
   370 
   371 	* ov-class.cc (octave_class::exemplar_info): Fix typo in error message.
   372 	* ov-class.cc (Fmethods): Methods returns cell array.
   373 	* ls-mat5.cc (read_mat5_binary_element):
   374 	Construct exemplar array and ensure inheritance is correct.
   375 
   376 2009-05-15  John W. Eaton  <jwe@octave.org>
   377 
   378 	* error.cc (Ferror): Handle error struct argument.
   379 
   380 	* ls-mat5.cc (save_mat5_binary_element): Avoid multiple calls to
   381 	contents method.  From David Bateman <dbateman@free.fr>.
   382 	(save_mat5_element_length): Use const Cell to avoid making copies
   383 	when indexing.
   384 
   385 2009-05-15  Jaroslav Hajek  <highegg@gmail.com>
   386 
   387 	* oct-stream.cc: Don't instantiate Array2<read_fptr>.
   388 	(octave_stream::read): Make read_fptr_table a static 2d array.
   389 	(FILL_TABLE_ROW): Update.
   390 
   391 2009-05-12  Jaroslav Hajek  <highegg@gmail.com>
   392 
   393 	* data.cc (F__accumarray_sum__): Optimize the constant range case.
   394 
   395 2009-05-11  John W. Eaton  <jwe@octave.org>
   396 
   397 	* sparse-xdiv.cc (do_rightdiv_sm_dm, do_leftdiv_dm_sm):
   398 	Avoid apparent MSVC bug with typedef.
   399 
   400 	* Makefile.in (install-lib): Remove
   401 	$(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB_VER), not
   402 	$(DESTDIR)$(octlibdir)/$(SHLPRE)octinterp.$(SHLEXT_VER).
   403 
   404 2009-05-08  Carsten Clark <tantumquantum+gnuoctave@gmail.com>
   405 
   406 	* data.cc (Fissorted): Fix typo in documentation entry.
   407 
   408 2009-05-07  Robert T. Short  <octave@phaselockedsystems.com>
   409 
   410 	* ov-class.h, ov-class.cc (octave_class::reconstruct_exemplar):
   411 	New function.
   412 	* ov-class.cc (octave_class::load_binary, octave_class::load_hdf5,
   413 	octave_class::load_ascii): Construct exemplar table and ensure
   414 	inheritance is correct.
   415         * ov-struct.cc (struct): Return struct from object.
   416 
   417 2009-05-07  John W. Eaton  <jwe@octave.org>
   418 
   419 	* graphics.h.in (base_graphics_object::set): Undo previous change.
   420 	(base_properties::set (const caseless_str&, const octave_value&):
   421 	New virtual function.
   422 	(base_properties::set (const caseless_str&, const std::string&,
   423 	const octave_value&)): No longer virtual.
   424 
   425 	* toplev.cc (octave_config_info): Remove F2C and F2CFLAGS from the
   426 	config infor struct.
   427 	* oct-conf.h.in (OCTAVE_CONF_F2CFLAGS, OCTAVE_CONF_F2C):
   428 	Delete definitions.
   429 
   430 2009-05-07  Marco Atzeri  <marco_atzeri@yahoo.it>
   431 
   432         * Makefile.in: (SHLPRE): Rename from SHLLIBPRE.
   433 
   434 2009-05-07  John W. Eaton  <jwe@octave.org>
   435 
   436 	* genprops.awk (emit_declarations): Emit decls for static
   437 	has_property functions.
   438 	(emit_source): Add class name argument to base_properties::set
   439 	function.  Pass class name to set_dynamic and
   440 	base_properties::set.  Emit definitions for has_property
   441 	functions.
   442 	* graphics.h.in, graphics.cc
   443 	(base_properties::set, base_properties::set_dynamic):
   444 	New argument CNAME.
   445 	(base_properties::all_dynamic_properties): New static data member.
   446 	(base_properties::has_dynamic_property): New static function.
   447 	(base_graphics_object::set): Pass class name to
   448 	base_properties::set function.
   449 	(property_list::set): Check for invalid property names.
   450 
   451 2009-05-06  Jaroslav Hajek  <highegg@gmail.com>
   452 
   453 	* ov-re-mat.cc (Fdouble): Fix order of branches.
   454 
   455 2009-05-05  John Swensen  <jpswensen@comcast.net>
   456 
   457 	* debug.h, debug.cc (breakpoints): Rename from bp_map, use a
   458 	std::set instead of a std::map object.  Change all uses.
   459 	(bp_table::do_get_breakpoint_list): Simplify.
   460 
   461 2009-05-05  Robert T. Short  <octave@phaselockedsystems.com>
   462 
   463 	* ov-class.h, ov-class.cc (octave_class::reconstruct_parents):
   464 	New function.
   465 	* ov-class.cc (octave_class::load_binary, octave_class::load_hdf5):
   466 	Contstruct parent list.
   467 	(get_current_method_class): Clean up method class extraction.
   468 
   469 2009-05-05  John W. Eaton  <jwe@octave.org>
   470 
   471 	* graphics.cc (array_property::validate): Require object to be any
   472 	numeric type, not necessarily a double precision value.
   473 
   474 	* variables.cc (set_internal_variable): Pass NM in call to error.
   475 
   476 2009-05-04  Peter O'Gorman  <pogma@thewrittenword.com>
   477 
   478 	* utils.cc: Don't define HAVE_C99_VSNPRINTF here.
   479 
   480 2009-05-01  John W. Eaton  <jwe@octave.org>
   481 
   482 	* error.cc (Vlast_error_file, Vlast_error_name, Vlast_error_line,
   483 	Vlast_error_column): Delete.
   484 	(Vlast_error_stack): New static variable.
   485 	(initialize_last_error_stack): New static function.
   486 	(verror, Frethrow, Flasterror): Set or use Vlast_error_stack, not
   487 	Vlast_error_file, etc.
   488 
   489 2009-04-27  John W. Eaton  <jwe@octave.org>
   490 
   491 	* ov-class.cc (octave_class::dotref): Handle empty parent class.
   492 	(octave_class::get_current_method_class): Allow result to be empty.
   493 	(called_from_builtin): New static function.
   494 	(octave_class::subsref, octave_class::subsasgn): Use it.
   495 
   496 2009-04-23  John W. Eaton  <jwe@octave.org>
   497 
   498 	* ov-class.cc (Fclass): Check newly constructed classes against
   499 	the first constructed object of the class.
   500 
   501 	* ov-class.h, ov-class.cc (octave_class::exmplar_info): New class.
   502 	(exemplar_map): New static data member.
   503 	(exemplar_iterator, exemplar_const_iterator): New typedefs.
   504 
   505 	* ov-class.h (octave_class::nparents,
   506 	octave_class::parent_class_name_list): New functions.
   507 	* ov.h (octave_base_value::nparents,
   508 	octave_base_value::parent_class_name_list): New functions.
   509 	* ov-base.h, ov-base.cc (octave_base_value::nparents,
   510 	octave_base_value::parent_class_name_list): New functions.
   511 	(parent_class_names): Error if called for wrong type argument.
   512 
   513 	* symtab.cc (load_out_of_date_fcn): New arg, dispatch_type.
   514 	(out_of_date_check_internal): Pass dispatch type to
   515 	load_out_of_date_fcn.
   516 
   517 2009-04-22  John W. Eaton  <jwe@octave.org>
   518 
   519 	* ov-base-int.cc (octave_base_int_helper<T, false,
   520 	false>::char_value_out_of_range): Correct result for specialization.
   521 
   522 	* ov-class.cc (octave_class::dotref, octave_class::subsasgn):
   523 	Protect against possibly invalid octave_value -> string conversions.
   524 
   525 2009-04-22  Robert T. Short  <octave@phaselockedsystems.com>
   526 
   527 	* variables.cc (symbol_exist): Also return 1 for objects.
   528 	* ov-base.h (octave_base_value::assign): New virtual function.
   529 	* ov-class.h (octave_class::assign): New function.
   530 	* ov-class.cc (octave_class::find_parent_class): Simplify.
   531 	(octave_class::octave_class): Don't allow duplicate parent classes.
   532 	(octave_class::subsasgn): Allow cls = method (cls, value) to work
   533 	properly when method is a parent-class method.
   534 	(get_method_class): New static function.
   535 	(octave_class:subsasgn, octave_class::dotref): Use it.
   536 	(F__isa_parent__): New function.
   537 
   538 2009-04-22  Jaroslav Hajek  <highegg@gmail.com>
   539 
   540 	* ov-range.cc (octave_range::char_array_value): New virtual function
   541 	override.
   542 	* ov-range.h: Declare it.
   543 
   544 2009-04-22  Jaroslav Hajek  <highegg@gmail.com>
   545 
   546 	* pt-mat.cc (tm_row_const::tm_row_const_rep::do_init_element):
   547 	Update class name even for all-zeros elements.
   548 	(get_concat_class): Update the default value if possible.
   549 
   550 2009-04-21  John W. Eaton  <jwe@octave.org>
   551 
   552 	* parse.y (Fassignin): Add missing unwind_protect frame.
   553 
   554 	* toplev.h (push (symbol_table::scope_id, symbol_table::context_id)):
   555 	New function.
   556 
   557 	* toplev.cc (main_loop): Don't call symbol_table::reset_scope.
   558 
   559 	* mex.cc (mexGetVariable, mexPutVariable): Use unwind_protect to
   560 	restore call stack and scope.
   561 
   562 	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
   563 	Don't use symbol_table::push_scope.
   564 	* variablees.cc (do_who): Likewise.  Use octave_call_stack and
   565 	unwind_protect to manage change in scope.
   566 	* ov-fcn-handle.cc (octave_fcn_handle::load_ascii,
   567 	octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5):
   568 	Likewise.
   569 	* ls-mat5.cc (read_mat5_binary_element): Likewise.
   570 
   571 	* symtab.h (erase_scope (void*)): New function, for unwind_protect.
   572 	(symbol_table::push_scope, symbol_table::pop_scope,
   573 	symbol_table::reset_scope): Delete.
   574 	(symbol_table::scope_stack): Delete static member.
   575 	* symtab.cc (symbol_table::scope_stack): Delete definition.
   576 
   577 2009-04-17  Jaroslav Hajek  <highegg@gmail.com>
   578 
   579 	* oct-map.h (Octave_map::contents (const_iterator) const,
   580 	Octave_map::contents (iterator)): Simplify.
   581 
   582 2009-04-17  Jaroslav Hajek  <highegg@gmail.com>
   583 
   584 	* oct-map.cc (Octave_map::assign (const octave_value_list&, const
   585 	std::string&, const Cell&)): Fix & simplify.
   586 	(common_size): Remove.
   587 
   588 2009-04-16  Jaroslav Hajek  <highegg@gmail.com>
   589 
   590 	* pt-idx.cc (make_value_list): Gripe on magic end query for undefined
   591 	variables.
   592 
   593 2009-04-16  Jaroslav Hajek  <highegg@gmail.com>
   594 
   595 	* xpow.cc (same_sign): New helper function.
   596 	(elem_xpow (double, const Range&), elem_xpow (const Complex&, const Range&)): 
   597 	Only optimize monotonic-magnitude integer ranges, start always from
   598 	the smaller end.
   599 
   600 2008-04-11  David Bateman  <dbateman@free.fr>
   601 
   602 	* ov-cell.cc (Fstruct2cell): Treat possible trailing singleton for
   603 	creation of cell array from column structure vector.
   604 
   605 2009-04-09  Jaroslav Hajek  <highegg@gmail.com>
   606 
   607 	* ov-cell.cc (octave_cell::subsasgn): Fix reference counting
   608 	optimization.
   609 
   610 2009-04-08  John W. Eaton  <jwe@octave.org>
   611 
   612 	* load-path.cc (rehash_internal): New function.
   613 	(Frehash): Use it.
   614 	(Fpath, Faddpath, Frmpath): Call rehash_internal if path is modified.
   615 
   616 2009-04-08  Jaroslav Hajek  <highegg@gmail.com>
   617 
   618 	* xpow.cc (elem_xpow (double, const Range&),
   619 	elem_xpow (const Complex&, const Range&)): New functions.
   620 	* xpow.h: Declare them.
   621 	* OPERATORS/op-range.cc: Define scalar .^ range and complex .^ range &
   622 	install them.
   623 
   624 2009-04-04  Jaroslav Hajek  <highegg@gmail.com>
   625 
   626 	* ov-struct.cc (octave_struct::subsasgn): Fix reference counting
   627 	optimization.
   628 
   629 2008-04-03  David Bateman  <dbateman@free.fr>
   630 
   631 	* DLD-FUNCTIONS/max.cc (MINMAX_SPARSE_BODY): Allow sparse boolean 
   632 	values.
   633 
   634 2009-04-01  Jaroslav Hajek  <highegg@gmail.com>
   635 
   636 	* ov-str-mat.cc (default_numeric_conversion_function):
   637 	Create an octave_scalar if possible.
   638 
   639 2009-03-29  John W. Eaton  <jwe@octave.org>
   640 
   641 	* DLD-FUNCTIONS/fltk_backend.cc (plot_window::button_press):
   642 	Don't pass arbitrary input to fl_message as a format string.
   643 
   644 2009-03-29  Jaroslav Hajek  <highegg@gmail.com>
   645 
   646 	* pt-eval.cc (do_unwind_protect_cleanup_code): Protect also
   647 	octave_interrupt_state.
   648 
   649 2009-03-29  Jaroslav Hajek  <highegg@gmail.com>
   650 
   651 	* DLD-FUNCTIONS/cellfun.cc (Fcellslices): Index n-d arrays along the
   652 	last dimension.
   653 
   654 2009-03-27  Jaroslav Hajek  <highegg@gmail.com>
   655 
   656 	* DLD-FUNCTIONS/balance.cc (Fbalance): Fix order of output args.
   657 
   658 2009-03-26  Jaroslav Hajek  <highegg@gmail.com>
   659 
   660 	* DLD-FUNCTIONS/find.cc 
   661 	(find_nonzero_elem_idx (const Array<T>&, ...)): Move dimensions
   662 	fixup to liboctave.
   663 
   664 2009-03-26  Jaroslav Hajek  <highegg@gmail.com>
   665 
   666 	* DLD-FUNCTIONS/find.cc 
   667 	(find_nonzero_elem_idx (const Array<T>&, ...)): Simplify.
   668 	Instantiate for bool and octave_int types.
   669 	(find_nonzero_elem_idx (const Sparse<T>&, ...)): 
   670 	Instantiate for bool.
   671 	(Ffind): Handle bool and octave_int cases.
   672 
   673 2009-03-25  John W. Eaton  <jwe@octave.org>
   674 
   675 	* version.h (OCTAVE_VERSION): Now 3.1.55+.
   676 	(OCTAVE_API_VERSION): Now api-v37+.
   677 
   678 	* version.h (OCTAVE_VERSION): Now 3.1.55.
   679 	(OCTAVE_API_VERSION): Now api-v37.
   680 	(OCTAVE_RELEASE_DATE): Now 2009-03-25.
   681 
   682 	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Also return
   683 	[](0x0) if the array has 0 rows and it is not a column vector.
   684 
   685 	* oct-stream.cc (octave_stream::write (const Array<T>&,
   686 	octave_idx_type, oct_data_conv::data_type, octave_idx_type,
   687 	oct_mach_info::float_format)): Seek to skip if still inside bounds
   688 	of existing file.  Otherwise, write NUL to skip.
   689 
   690 	* Makefile.in (%.df : %.cc): Write source file name to output,
   691 	wrapped in XDEFUN_FILE_NAME macro.
   692 	* mkbuiltins: Provide definition for XDEFUN_FILE_NAME.
   693 	* mkgendoc: Likeiwse.
   694 	(XDEFUN_DLD_INTERNAL, XDEFUNX_DLD_INTERNAL, XDEFUN_INTERNAL,
   695 	XDEFCONSTFUN_INTERNAL, XDEFUNX_INTERNAL, XDEFVAR_INTERNAL,
   696 	XDEFCONST_INTERNAL): Pass file_name to print_doc_string.
   697 	(print_doc_string): New arg, FILE_NAME.  Print file name as
   698 	comment.
   699 
   700 2009-03-24  John W. Eaton  <jwe@octave.org>
   701 
   702 	* ov-class.cc (F__parent_classes__): New function.
   703 
   704 2009-03-24  Robert T. Short  <octave@phaselockedsystems.com>
   705 
   706 	* ov-class.h, ov-class.cc (octave_class::octave_class (const
   707 	Octave_map&, const std::string&, const octave_value_list&)):
   708 	New constructor.
   709 	(octave_class::find_parent_class, octave_class::parent_classes):
   710 	New functions.
   711 	(octave_class::dotref): Also look in parent class.
   712 	(Fclass): Handle parent class arguments.
   713 
   714 	* ov-base.h (octave_base_value::get_parent_list,
   715 	octave_base_value::parent_classes): New virtual functions.
   716 
   717 	* load-path.h, load-path.cc (load_path::parent_map): New data member. 
   718 	(load_path::add_to_parent_map): New static function.
   719 	(load_path::do_add_to_parent_map): New member function.
   720 	(load_path::do_find_method): Also look in parent classes for methods.
   721 	(load_path::parent_map_type, load_path::const_parent_map_iterator,
   722 	load_path::parent_map_iterator): New typedefs.
   723 
   724 2009-03-23  John W. Eaton  <jwe@octave.org>
   725 
   726 	* symtab.h
   727 	(symbol_table::symbol_record::symobl_recoord_rep::is_variable):
   728 	Also return true if symbol is tagged as a variable.
   729 	(symbol_table::symbol_record::symobl_recoord_rep::force_variable):
   730 	Don't set variable value.
   731 	(symbol_table::symbol_record::symobl_recoord_rep::clear_forced,
   732 	symbol_table::symbol_record::clear_forced): Delete.
   733 	(symbol_table::unmark_forced_variables): Rename from
   734 	symbol_table::clear_forced_variables.
   735 	(symbol_table::do_unmark_forced_variables): Rename from
   736 	symbol_table::do_clear_forced_variables.
   737 	* parse.y (make_script, finish_function): Call
   738 	symbol_table::unmark_forced_variables instead of
   739 	symbol_table::clear_forced_variables.
   740 	* octave.cc (unmark_forced_vars): New function.
   741 	(execute_eval_option_code): Add it to the unwind-protect stack.
   742 
   743 2009-03-22  Jaroslav Hajek  <highegg@gmail.com>
   744 
   745 	* pt-eval.cc (tree_evaluator::visit_simple_for_command):
   746 	Remove struct branch, handle structs by the generic code.
   747 	(tree_evaluator::visit_complex_for_command):
   748 	Add missing const qualifiers.
   749 
   750 2009-03-21  Jaroslav Hajek  <highegg@gmail.com>
   751 
   752 	* ov-base-diag.cc: Add missing include.
   753 	* sparse-xdiv.cc: Ditto.
   754 	* DLD-FUNCTIONS/__glpk__.cc: Ditto.
   755 	* DLD-FUNCTIONS/__lin_interpn__.cc: Ditto.
   756 	* DLD-FUNCTIONS/__voronoi__.cc: Ditto.
   757 
   758 2009-03-20  Jaroslav Hajek  <highegg@gmail.com>
   759 
   760 	* ov-re-mat.cc (octave_matrix::load_ascii): Simplify.
   761 	* ov-flt-re-mat.cc (octave_float_matrix::load_ascii): Simplify.
   762 	* ov-cx-mat.cc (octave_complex_matrix::load_ascii): Simplify.
   763 	* ov-flt-cx-mat.cc (octave_float_complex_matrix::load_ascii): Simplify.
   764 
   765 2009-03-20  Jaroslav Hajek  <highegg@gmail.com>
   766 
   767 	* ov-re-mat.cc (octave_matrix::isnan, octave_matrix::isinf,
   768 	octave_matrix::finite): Simplify.
   769 	* ov-flt-re-mat.cc (octave_float_matrix::isnan,
   770 	octave_float_matrix::isinf, octave_float_matrix::finite): Simplify.
   771 	* ov-cx-mat.cc (octave_complex_matrix::isnan,
   772 	octave_complex_matrix::isinf, octave_complex_matrix::finite):
   773 	Simplify.
   774 	* ov-flt-cx-mat.cc (octave_float_complex_matrix::isnan,
   775 	octave_float_complex_matrix::isinf,
   776 	octave_float_complex_matrix::finite): Simplify.
   777 
   778 2009-03-19  Benjamin Lindner  <lindnerb@users.sourceforge.net>
   779 
   780 	* ls-oct-ascii.cc (extract_keyword): Replace loop with call to
   781 	read_until_newline to avoid leaving stray '\r' in stream when
   782 	reading files with CRLF line endings.
   783 
   784 2009-03-18  Jaroslav Hajek <highegg@gmail.com>
   785 
   786 	* DLD-FUNCTIONS/cellfun.cc
   787 	(scalar_col_helper, scalar_col_helper_def, scalar_col_helper_nda,
   788 	scalar_query_helper): New classes.
   789 	(make_col_helper): New function.
   790 	(Fcellfun): Use col_helper classes for UniformOutput. Avoid copying by
   791 	using const variables.
   792 
   793 2009-03-17  Jaroslav Hajek  <highegg@gmail.com>
   794 
   795 	* OPERATORS/op-b-bm.cc: Add missing INSTALL_BINOPs.
   796 	* OPERATORS/op-bm-b.cc: Ditto.
   797 	* OPERATORS/op-fm-fm.cc: Ditto.
   798 	* OPERATORS/op-m-m.cc: Ditto.
   799 
   800 2009-03-17  Jaroslav Hajek  <highegg@gmail.com>
   801 
   802 	* ov.cc (octave_value::octave_value): Move to ov.h
   803 	* ov.h (octave_value::octave_value): Implement fast inline constructor
   804 	using a static rep.
   805 
   806 2009-03-15  Jaroslav Hajek  <highegg@gmail.com>
   807 
   808 	* DLD-FUNCTIONS/cellfun.cc (Fcellslices): New DLD function.
   809 
   810 2009-03-13  Jaroslav Hajek  <highegg@gmail.com>
   811 
   812 	* ov.h (octave_value::compound_binary_op): Support bool compound ops.
   813 	* ov.cc (do_binary_op, decompose_binary_op, binary_op_fcn_name):
   814 	Ditto.
   815 	* pt-cbinop.cc (strip_not, simplify_and_or_op): New funcs.
   816 	(maybe_compound_binary_expression): Support bool compound ops.
   817 	* OPERATORS/op-int.h: Support bool compound ops.
   818 	* OPERATORS/op-b-bm.cc: Ditto.
   819 	* OPERATORS/op-bm-b.cc: Ditto.
   820 	* OPERATORS/op-bm-bm.cc: Ditto.
   821 	* OPERATORS/op-fm-fm.cc: Ditto.
   822 	* OPERATORS/op-m-m.cc: Ditto.
   823 
   824 2009-03-13  Jaroslav Hajek  <highegg@gmail.com>
   825 
   826 	* xpow.cc (xpow (const NDArray&, double), xpow (const ComplexNDArray&, double),
   827 	xpow (const FloatNDArray&, float), xpow (const FloatComplexNDArray&,
   828 	float)): Use xisint for testing ints. Optimize w.r.t int exponents.
   829 
   830 2009-03-13  John W. Eaton  <jwe@octave.org>
   831 
   832 	* parse.y (maybe_warn_assign_as_truth_value, make_binary_op,
   833 	maybe_warn_variable_switch_label, maybe_warn_associativity_change): 
   834 	Print file and line number info if available.
   835 	* lex.l (gripe_matlab_incompatible): Likewise.
   836 
   837 	* error.cc (pr_where): Use octave_call_stack::backtrace to print
   838 	complete stack trace at once.  Don't attempt to print code.
   839 	(error_2): Set error_state to 0 before calling pr_where.
   840 	(warning_1): Switch sense of test on symbol_table::at_top_level.
   841 	Call pr_where after printing primary warning message.
   842 
   843 2009-03-13  Jaroslav Hajek  <highegg@gmail.com>
   844 
   845 	* ov-range.h (octave_range::octave_range (const Range&)): Allow
   846 	constructing from invalid range op result.
   847 	* ov-range.cc (octave_range::try_narrowing_conversion): Validate
   848 	invalid range op results.
   849 	* data.cc (fill_matrix): Return packed form (zero-step range) if
   850 	possible.
   851 
   852 2009-03-10  Jason Riedy  <jason@acm.org>
   853 
   854 	* DLD-FUNCTIONS/lu.cc (lu): Call fact.Pr_mat () and fact.Pc_mat ()
   855 	to return permutation matrices in the sparse case.
   856 
   857 2009-03-12  John W. Eaton  <jwe@octave.org>
   858 
   859 	* ls-mat-ascii.cc (get_mat_data_input_line): If we are looking at
   860 	'\r' or '\n', skip current line ending instead of skipping until
   861 	the next.
   862 
   863 2009-03-12  Ben Abbott <bpabbott@mac.com>
   864 
   865 	* graphics.cc: Fix default "papersize" property value.
   866 
   867 2009-03-12  Jaroslav Hajek  <highegg@gmail.com>
   868 
   869 	* ov-flt-perm.h, ov-flt-perm.cc: Remove sources.
   870 	* ov.h, ov.cc (octave_value::octave_value (const PermMatrix&)): Remove
   871 	use "single" argument.
   872 	* ov.cc (install_types): Update.
   873 	* xpow.cc, xpow.h (xpow (PermMatrix, float)): Remove.
   874 	* ov-base-diag.cc (octave_base_diag::do_index_op): Remove permutation
   875 	creating block.
   876 	* ov-re-diag.cc (octave_diag_matrix::do_index_op): Move it here.
   877 	* ov-re-diag.h (octave_diag_matrix::do_index_op): New decl.
   878 
   879 	* DLD-FUNCTIONS/det.cc (Fdet): Update.
   880 	* DLD-FUNCTIONS/inv.cc (Finv): Update.
   881 	* DLD-FUNCTIONS/pinv.cc (Fpinv): Update.
   882 
   883 	* OPERATORS/op-fcm-pm.cc <-- OPERATORS/op-fcm-fpm.cc
   884 	* OPERATORS/op-fcm-pm.cc: Update.
   885 	* OPERATORS/op-fm-pm.cc <-- OPERATORS/op-fm-fpm.cc
   886 	* OPERATORS/op-fm-pm.cc: Update.
   887 	* OPERATORS/op-pm-fcm.cc <-- OPERATORS/op-fpm-fcm.cc
   888 	* OPERATORS/op-pm-fcm.cc: Update.
   889 	* OPERATORS/op-pm-fm.cc <-- OPERATORS/op-fpm-fm.cc
   890 	* OPERATORS/op-pm-fm.cc: Update.
   891 	* OPERATORS/op-pm-pm.cc: Update.
   892 	* OPERATORS/op-pm-template.cc: Update.
   893 
   894 2009-03-11  Jaroslav Hajek  <highegg@gmail.com>
   895 	
   896 	* xpow.cc (xpow (const PermMatrix&, double), xpow (const PermMatrix&,
   897 	float)): New functions.
   898 	* xpow.h: Declare them.
   899 	* DLD-FUNCTIONS/op-pm-pm.cc: Support permutation matrix ^ scalar.
   900 	* DLD-FUNCTIONS/op-fpm-fpm.cc: Ditto.
   901 
   902 2009-03-11  Jaroslav Hajek  <highegg@gmail.com>
   903 
   904 	* ov-ch-mat.cc (octave_char_matrix::double_value, 
   905 	octave_char_matrix::float_value, octave_char_matrix::complex_value,
   906 	octave_char_matrix::float_complex_value): Cast to unsigned char.
   907 
   908 2009-03-10  Jason Riedy  <jason@acm.org>
   909 
   910 	* OPERATORS/op-pm-sm.cc (mul_pm_sm): New Octave binding for
   911 	perm * sparse.
   912 	(ldiv_pm_sm): New Octave binding for perm \ sparse.
   913 	(mul_sm_pm): New Octave binding for sparse * perm.
   914 	(div_sm_pm): New Octave binding for sparse / perm.
   915 	(install_pm_sm_ops): Install the above bindings.
   916 
   917 	* OPERATORS/op-pm-scm.cc (mul_pm_scm): New Octave binding for
   918 	perm * sparse complex.
   919 	(ldiv_pm_scm): New Octave binding for perm \ sparse complex.
   920 	(mul_scm_pm): New Octave binding for sparse complex * perm.
   921 	(div_scm_pm): New Octave binding for sparse complex / perm.
   922 	(install_pm_scm_ops): Install the above bindings.
   923 
   924 	* Makefile.in (PERM_OP_XSRC): Add op-pm-sm.cc and op-pm-scm.cc for
   925 	operations between permutations and sparse matrices.
   926 
   927 2009-03-10  Jason Riedy  <jason@acm.org>
   928 
   929 	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): New override
   930 	for find on PermMatrix.
   931 	(find): Add a branch testing arg.is_perm_matrix () and calling the
   932 	above override.
   933 
   934 2009-03-10  John W. Eaton  <jwe@octave.org>
   935 
   936 	* c-file-ptr-stream.cc, dynamic-ld.cc, error.cc, lex.l, pager.cc,
   937 	zfstream.cc: Include <iostream>.
   938 	* zfstream.h: Include <iosfwd> instead of <istream> and <ostream>.
   939 	* c-file-ptr-stream.h, help.h, load-path.h, load-save.h,
   940 	ls-ascii-helper.h, oct-iostrm.h, oct-stream.h, ov-base-diag.h,
   941 	ov-base-int.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h,
   942 	ov-base.h, ov-bool-mat.h, ov-bool-sparse.h, ov-bool.h, ov-cell.h,
   943 	ov-ch-mat.h, ov-class.h, ov-colon.h, ov-complex.h, ov-cs-list.h,
   944 	ov-cx-mat.h, ov-cx-sparse.h, ov-fcn-handle.h, ov-fcn-inline.h,
   945 	ov-float.h, ov-flt-complex.h, ov-flt-cx-mat.h, ov-flt-re-mat.h,
   946 	ov-intx.h, ov-list.h, ov-range.h, ov-re-mat.h, ov-re-sparse.h,
   947 	ov-scalar.h, ov-str-mat.h, ov-struct.h, ov.h, pager.h,
   948 	pr-output.h, procstream.h, pt-assign.h, pt-cell.h, pt-const.h,
   949 	pt-fcn-handle.h, pt-id.h, pt-mat.h, pt.h, utils.h:
   950 	Include <iosfwd> instead of <iosstream>.
   951 
   952 2009-03-10  Jaroslav Hajek  <highegg@gmail.com>
   953 
   954 	* data.cc (Fsize_equal): Allow single argument call.
   955 	* DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Update docs.
   956 
   957 2009-03-09  Benjamin Lindner  <lindnerb@users.sourceforge.net>
   958 
   959 	* ls-ascii-helper.h, ls-ascii-helper.cc: New files.
   960 	* Makefile.in: Add them to the appropriate lists.
   961 	* load-save.cc (Fload): Open all files in binary mode.
   962 	* ov-range.cc (load_ascii): Explicitly handle CR and CRLF line endings.
   963 	* ov-fcn-handle.cc (load_ascii): Likewise.
   964 	* ov-fcn-inline.cc (load_ascii): Likewise.
   965 	* ov-str-mat.cc (load_ascii): Likewise.
   966 	* ls-mat-ascii.cc (get_mat_data_input_line): Likewise.
   967 	* ls-oct-ascii.cc (extract_keyword, read_ascii_data): Likewise.
   968 	* ls-oct-ascii.h (extract_keyword): Likewise.
   969 	
   970 2009-03-09  John W. Eaton  <jwe@octave.org>
   971 
   972 	* graphics.h.in (OCTAVE_DEFAULT_FONTNAME): New macro, defaults to "*".
   973 	(axes::properties, text::properties): Use it to set default fontname.
   974 	* graphics.cc (axes::properties::set_defaults): Likewise.
   975 
   976 2009-03-09  Rafael Laboissiere  <rafael@debian.org>
   977 
   978 	* Makefile.in (maintainer-clean): Remove y.tab.h here.
   979 	(distclean): Not here.
   980 
   981 2009-03-09  Jason Riedy  <jason@acm.org>
   982 
   983 	* OPERATORS/op-dm-sm.cc (add_dm_sm): Octave binding for diag + sparse.
   984 	(sub_dm_sm): Octave binding for diag - sparse.
   985 	(add_sm_dm): Octave binding for diag + sparse.
   986 	(sub_sm_dm): Octave binding for diag - sparse.
   987 	(install_dm_sm_ops): Install above bindings.
   988 
   989 	* OPERATORS/op-dm-scm.cc (add_cdm_sm): Octave binding for diag + sparse.
   990 	(add_dm_scm): Octave binding for diag + sparse.
   991 	(add_cdm_scm): Octave binding for diag + sparse.
   992 	(sub_cdm_sm): Octave binding for diag - sparse.
   993 	(sub_dm_scm): Octave binding for diag - sparse.
   994 	(sub_cdm_csm): Octave binding for diag - sparse.
   995 	(add_sm_cdm): Octave binding for diag + sparse.
   996 	(add_scm_dm): Octave binding for diag + sparse.
   997 	(add_scm_cdm): Octave binding for diag + sparse.
   998 	(sub_sm_cdm): Octave binding for diag - sparse.
   999 	(sub_scm_dm): Octave binding for diag - sparse.
  1000 	(sub_scm_cdm): Octave binding for diag - sparse.
  1001 	(install_dm_scm_ops): Install above bindings.
  1002 
  1003 2009-03-08  Jason Riedy  <jason@acm.org>
  1004 
  1005 	* sparse-xdiv.h (xleftdiv): Declare overrides for
  1006 	xleftdiv (diagonal, sparse), both real and complex.
  1007 	(xdiv): Declare overrides for xdiv (sparse, diagonal), both real
  1008 	and complex.
  1009 
  1010 	* sparse-xdiv.cc (do_rightdiv_sm_dm): New template function.
  1011 	Implementation for xdiv (sparse, diagonal).
  1012 	(xdiv): Call do_rightdiv_sm_dm to implement overrides, real and
  1013 	complex.
  1014 	(do_leftdiv_dm_sm): New template function.  Implementation for
  1015 	xleftdiv (diagonal, sparse).
  1016 	(xleftdiv): Call do_leftdiv_dm_sm to implement overrides, real and
  1017 	complex.
  1018 
  1019 	* OPERATORS/op-dm-sm.cc (ldiv_dm_sm): Octave binding for real left
  1020 	division, diagonal into sparse.
  1021 	(div_sm_dm): Octave binding for real right division, sparse by
  1022 	diagonal.
  1023 	(install_dm_sm_ops): Install above bindings.
  1024 
  1025 	* OPERATORS/op-dm-scm.cc (ldiv_dm_scm): Octave binding for real
  1026 	diagonal \ complex sparse.
  1027 	(ldiv_cdm_sm): Octave binding for complex diagonal \ real sparse.
  1028 	(ldiv_cdm_scm): Octave binding for complex diagonal \ complex sparse.
  1029 	(div_scm_dm): Octave binding for complex sparse / real diagonal.
  1030 	(div_sm_cdm): Octave binding for real sparse / complex diagonal.
  1031 	(div_scm_cdm): Octave binding for complex sparse / complex diagonal.
  1032 	(install_dm_scm_ops): Install above bindings.
  1033 
  1034 2009-03-08  Jason Riedy  <jason@acm.org>
  1035 
  1036 	* OPERATORS/op-dm-scm.cc: New file.  Implement multiplication
  1037 	between diagonal matrices (both real and complex) and complex
  1038 	sparse matrices.
  1039 	* OPERATORS/op-dm-sm.cc: New file.  Implement multiplication
  1040 	between diagonal matrices and sparse matrices, all real.
  1041 	* Makefile.in (DIAG_OP_XSRC): Add op-dm-sm.cc and op-dm-scm.cc.
  1042 
  1043 2009-03-09  Jaroslav Hajek  <highegg@gmail.com>
  1044 
  1045 	* data.cc (F__accumarray_sum__): New function.
  1046 	(do_accumarray_sum): New helper template function.
  1047 
  1048 2009-03-07  Jaroslav Hajek  <highegg@gmail.com>
  1049 
  1050 	* xdiv.cc (mdm_div_impl, dmm_lelftdiv_impl, dmdm_div_impl,
  1051 	dmdm_leftdiv_impl): Optimize.
  1052 
  1053 2009-03-07  John W. Eaton  <jwe@octave.org>
  1054 
  1055 	* pr-output.cc (octave_print_internal (std::ostream&,
  1056 	const PermMatrix&, bool, int)): Delete unused variable SCALE.
  1057 
  1058 	* utils.cc (octave_vsnprintf): Avoid uninitialized variable
  1059 	warning from GCC.
  1060 
  1061 	* DLD-FUNCTIONS/qz.cc (Fqz): Avoid "maybe clobbered by vfork"
  1062 	warning from GCC.
  1063 
  1064 	* version.h (OCTAVE_VERSION): Now 3.1.54.
  1065 	(OCTAVE_API_VERSION): Now api-v36.
  1066 	(OCTAVE_RELEASE_DATE): Now 2009-03-07.
  1067 
  1068 	* octave.cc (verbose_usage): Include --doc-cache-file in option list.
  1069 
  1070 2009-03-06  Jaroslav Hajek  <highegg@gmail.com>
  1071 
  1072 	* ov.h (octave_value::diag_matrix_value,
  1073 	octave_value::complex_diag_matrix_value,
  1074 	octave_value::float_diag_matrix_value,
  1075 	octave_value::float_complex_diag_matrix_value,
  1076 	octave_value::perm_matrix_value): New methods.
  1077 
  1078 	* ov-base.cc (octave_base_value::diag_matrix_value,
  1079 	octave_base_value::complex_diag_matrix_value,
  1080 	octave_base_value::float_diag_matrix_value,
  1081 	octave_base_value::float_complex_diag_matrix_value,
  1082 	octave_base_value::perm_matrix_value): New virtual methods.
  1083 	
  1084 	* ov-base.h: Declare them.
  1085 
  1086 	* ov-base-diag.h (octave_base_diag::diag_matrix_value,
  1087 	octave_base_diag::complex_diag_matrix_value,
  1088 	octave_base_diag::float_diag_matrix_value,
  1089 	octave_base_diag::float_complex_diag_matrix_value,
  1090 	octave_base_diag::perm_matrix_value): Remove declarations.
  1091 
  1092 	* DLD-FUNCTIONS/inv.cc (Finv): Simplify handling diag & perm matrices.
  1093 	* DLD-FUNCTIONS/pinv.cc (Fpinv): Ditto.
  1094 	* DLD-FUNCTIONS/det.cc (Fdet): Ditto.
  1095 
  1096 2009-03-05  Jaroslav Hajek  <highegg@gmail.com>
  1097 	
  1098 	* ls-hdf5.cc (add_hdf5_data): Handle diag & perm matrices.
  1099 
  1100 2009-03-05  John W. Eaton  <jwe@octave.org>
  1101 
  1102 	* pt-cell.cc, pt-cell.h (tree_cell::dup): Now const.
  1103 	* comment-list.cc, comment-list.h (octave_comment_list::dup): Ditto.
  1104 	* pt-arg-list.cc, pt-arg-list.h (tree_argument_list::dup): Ditto.
  1105 	* pt-assign.cc, pt-assign.h (tree_simple_assignment::dup,
  1106 	tree_multi_assignment::dup): Ditto.
  1107 	* pt-binop.cc, pt-binop.h (tree_binary_expression::dup,
  1108 	tree_boolean_expression::dup): Ditto.
  1109 	* pt-cmd.cc, pt-cmd.h (tree_no_op_command::dup,
  1110 	tree_function_def::dup): Ditto.
  1111 	* pt-colon.cc, pt-colon.h (tree_colon_expression::dup): Ditto.
  1112 	* pt-const.cc, pt-const.h (tree_constant::dup): Ditto.
  1113 	* pt-decl.cc, pt-decl.h (tree_decl_elt::dup, tree_decl_init_list::dup,
  1114 	tree_global_command::dup, tree_static_command::dup): Ditto.
  1115 	* pt-except.cc, pt-except.h (tree_try_catch_command::dup,
  1116 	tree_unwind_protect_command::dup): Ditto.
  1117 	* pt-fcn-handle.cc, pt-fcn-handle.h (tree_fcn_handle::dup,
  1118 	tree_anon_fcn_handle::dup): Ditto.
  1119 	* pt-id.cc, pt-id.h (tree_identifier::dup): Ditto.
  1120 	* pt-idx.cc, pt-idx.h (tree_index_expression::dup): Ditto.
  1121 	* pt-jump.cc, pt-jump.h (tree_break_command::dup,
  1122 	tree_continue_command::dup, tree_return_command::dup): Ditto.
  1123 	* pt-loop.cc, pt-loop.h (tree_while_command::dup,
  1124 	tree_do_until_command::dup, tree_simple_for_command::dup,
  1125 	tree_complex_for_command::dup): Ditto.
  1126 	* pt-mat.cc, pt-mat.h (tree_matrix::dup): Ditto.
  1127 	* pt-misc.cc, pt-misc.h (tree_parameter_list::dup,
  1128 	tree_return_list::dup): Ditto.
  1129 	* pt-select.cc, pt-select.h (tree_if_clause::dup,
  1130 	tree_if_command_list::dup, tree_if_command::dup,
  1131 	tree_switch_case::dup, tree_switch_case_list::dup,
  1132 	tree_switch_command::dup): Ditto.
  1133 	* pt-stmt.cc, pt-stmt.h (tree_statement::dup,
  1134 	tree_statement_list::dup): Ditto.
  1135 	* pt-unop.cc, pt-unop.h (tree_prefix_expression::dup,
  1136 	tree_postfix_expression::dup): Ditto.
  1137 	* pt-fcn-handle.h (tree_anon_fcn_handle::parameter_list,
  1138 	tree_anon_fcn_handle::return_list, tree_anon_fcn_handle::body,
  1139 	tree_anon_fcn_handle::scope): Ditto.
  1140 
  1141 2009-03-05  Jason Riedy  <jason@acm.org>
  1142 
  1143 	* ov-base-int.cc (convert_to_str_internal): Replace elt_type with
  1144 	element_type throughout.
  1145 
  1146 2009-03-05  Jaroslav Hajek  <highegg@gmail.com>
  1147 
  1148 	* DLD-FUNCTIONS/sparse.cc (Fsparse): Handle diagonal and permutation
  1149 	matrices.
  1150 
  1151 2009-03-03  John W. Eaton  <jwe@octave.org>
  1152 
  1153 	* ov-struct.cc (octave_struct::save_ascii,
  1154 	octave_struct::save_binary, octave_struct::save_hdf5):
  1155 	Preserve order of structure fields.
  1156 	* ls-mat5.cc (save_mat5_binary_element): Likewise.
  1157 
  1158 	* symtab.h (symbol_table::do_inherit): Only inherit values for
  1159 	symbols from the donor_scope that already exist in the table.
  1160 	(symbol_table::symbol_record::symbol_record_rep::dup): Now const.
  1161 	(symbol_table::symbol_record::operator=): Decrement rep->count and
  1162 	maybe delete rep.
  1163 	(symbol_table::fcn_info::operator=): Likewise.
  1164 
  1165 	* pt-fcn-handle.cc: (tree_anon_fcn_handle::dup): Transform
  1166 	tree_anon_fcn_handle objects to tree_constant objects containing
  1167 	octave_fcn_handle objects.  New tests.
  1168 
  1169 	* pt-assign.cc (tree_simple_assignment::rvalue1): Assign result of
  1170 	call to rhs->rvalue1() to an octave_value object, not an
  1171 	octave_value_list object.
  1172 
  1173 2009-03-03  Jaroslav Hajek  <highegg@gmail.com>
  1174 
  1175 	* oct-stream.h (octave_stream_list::lookup_cache): New member field.
  1176 	(octave_stream_list::octave_stream_list): Initialize it.
  1177 	(octave_stream_list::do_lookup): Use it.
  1178 	(octave_stream_list::clear): Make flush optional. Do physically erase
  1179 	entries from the map. Close files.
  1180 	(octave_stream_list::do_remove): Call clear on "all". Do erase deleted
  1181 	entry from the map.
  1182 
  1183 2009-03-02  John W. Eaton  <jwe@octave.org>
  1184 
  1185 	* graphics.cc (Fget, F__get__): Return a column vector of property
  1186 	values, not a row vector.
  1187 
  1188 2009-03-01  John W. Eaton  <jwe@octave.org>
  1189 
  1190 	* OPERATORS/op-fcm-fcm.cc (DEFNDASSIGNOP_FN (dbl_assign)):
  1191 	LHS type is float_complex_matrix, not complex_matrix.  RHS value
  1192 	function is float_complex_array, not complex_array.
  1193 
  1194 2009-03-01  Jaroslav Hajek  <highegg@gmail.com>
  1195 
  1196 	* ov-perm.cc (octave_perm_matrix::print_raw): Call
  1197 	octave_print_internal.
  1198 	(octave_perm_matrix::print_raw): Call print_raw.
  1199 	* pr-output.cc (octave_print_internal (...,const DiagMatrix&,...)):
  1200 	Indicate diagonal matrix.
  1201 	(octave_print_internal (...,const ComplexDiagMatrix&,...)): Ditto.
  1202 	(octave_print_internal (...,const PermMatrix&,...)): New function.
  1203 	* pr-output.h: Declare it.
  1204 
  1205 2009-02-27  Jaroslav Hajek  <highegg@gmail.com>
  1206 
  1207 	* OPERATORS/op-dms-template.cc (gripe_if_zero): New template static
  1208 	function.
  1209 	(dmsdiv, sdmldiv): Call it.
  1210 
  1211 2009-02-26  John W. Eaton  <jwe@octave.org>
  1212 
  1213 	* symtab.h (symbol_table::symbol_record::symbol_record_rep::forced):
  1214 	New static constant.
  1215 	(symbol_table::symbol_record::symbol_record_rep::force_variable,
  1216 	symbol_table::symbol_record::force_variable): New functions.
  1217 	(symbol_table::symbol_record::symbol_record_rep::is_forced,
  1218 	symbol_table::symbol_record::symbol_record_rep::mark_forced,
  1219 	symbol_table::symbol_record::symbol_record_rep::unmark_forced,
  1220 	symbol_table::symbol_record::symbol_record_rep::clear_forced,
  1221 	symbol_table::symbol_record::is_forced,
  1222 	symbol_table::symbol_record::mark_forced,
  1223 	symbol_table::symbol_record::clear_forced,
  1224 	symbol_table::symbol_record::unmark_forced): New fucntions.
  1225 	* lex.h, lex.l (force_local_variable): Delete.
  1226 	(handle_identifier): Call symbol_table::force_variable instead of
  1227 	force_local_variable.
  1228 	* parse.y (make_script): Call symbol_table:clear_forced_variables
  1229 	after defining script.
  1230 	(finish_function): Call symbol_table::clear_forced_variables
  1231 	instead of symbol_table::clear_variables.
  1232 	
  1233 	* DLD-FUNCTIONS/chol.cc: Correct spelling of CHOLMOD in tests.
  1234 
  1235 	* version.h (OCTAVE_VERSION): Now 3.1.53+.
  1236 	(OCTAVE_API_VERSION): Now api-v35+.
  1237 
  1238 2009-02-25  John W. Eaton  <jwe@octave.org>
  1239 
  1240 	* version.h (OCTAVE_VERSION): Now 3.1.53.
  1241 	(OCTAVE_API_VERSION): Now api-v35.
  1242 	(OCTAVE_RELEASE_DATE): Now 2009-02-25.
  1243 	(OCTAVE_COPYRIGHT): Update year.
  1244 
  1245 	* Makefile.in (distclean): Remove tags TAGS y.tab.h y.output
  1246 	yy.lex.c here, not in maintainer-clean target.  Also remove
  1247 	parse.output.
  1248 
  1249 	* DLD-FUNCTIONS/rand.cc: Note that the tests for the old random
  1250 	number generator will fail if using 64-bit indexing.
  1251 
  1252 2009-02-25  Jaroslav Hajek  <highegg@gmail.com>
  1253 
  1254 	* DLD-FUNCTIONS/lu.cc (maybe_set_triangular): New function.
  1255 	(Flu): Use it.
  1256 	* DLD-FUNCTIONS/qr.cc (maybe_set_triangular): New function.
  1257 	(Fqr): Use it.
  1258 
  1259 2009-02-25  John W. Eaton  <jwe@octave.org>
  1260 
  1261 	* DLD-FUNCTIONS/chol.cc: Fix tests for missing cholmod.
  1262 
  1263 	* input.cc (get_debug_input): Write debugging location info
  1264 	directly to std::cerr instead of calling message.
  1265 	* pt-eval.cc (tree_evaluator::do_breakpoint): Write debugging
  1266 	location info directly to std::cerr, not octave_stdout.
  1267 
  1268 	* defaults.h.in (OCTAVE_DOC_CACHE_FILE): New macro.
  1269 	* defaults.cc (set_default_doc_cache_file): New function.
  1270 	(install_defaults): Call it.
  1271 
  1272 	* help.cc (__list_functions__): Simplify
  1273 
  1274 	* input.cc (get_debug_input): Don't pass arbitrary input to
  1275 	message as a format string.
  1276 
  1277 2009-02-24  John W. Eaton  <jwe@octave.org>
  1278 
  1279 	* help.cc, help.h (Vdoc_cache_file): New global variable.
  1280 	(Fdoc_cache_file): New function.
  1281 	* octave.cc (DOC_CACHE_FILE_OPTION): New option tag.
  1282 	(long_opts): Include doc-cache-file in the list.
  1283 	(octave_main): Handle DOC_CACHE_FILE_OPTION.
  1284 
  1285 2009-02-24  Jaroslav Hajek  <highegg@gmail.com>
  1286 
  1287 	* ov-scalar.h 
  1288 	(octave_scalar::int8_scalar_value): New method.
  1289 	(octave_scalar::int16_scalar_value): New method.
  1290 	(octave_scalar::int32_scalar_value): New method.
  1291 	(octave_scalar::int64_scalar_value): New method.
  1292 	(octave_scalar::uint8_scalar_value): New method.
  1293 	(octave_scalar::uint16_scalar_value): New method.
  1294 	(octave_scalar::uint32_scalar_value): New method.
  1295 	(octave_scalar::uint64_scalar_value): New method.
  1296 
  1297 	* ov-float.h 
  1298 	(octave_float_scalar::int8_scalar_value): New method.
  1299 	(octave_float_scalar::int16_scalar_value): New method.
  1300 	(octave_float_scalar::int32_scalar_value): New method.
  1301 	(octave_float_scalar::int64_scalar_value): New method.
  1302 	(octave_float_scalar::uint8_scalar_value): New method.
  1303 	(octave_float_scalar::uint16_scalar_value): New method.
  1304 	(octave_float_scalar::uint32_scalar_value): New method.
  1305 	(octave_float_scalar::uint64_scalar_value): New method.
  1306 
  1307 	* OPERATORS/op-s-s.cc (scalar_to_float): Remove duplicate conversion.
  1308 	* OPERATORS/op-range.cc (range_to_float_matrix): Ditto.
  1309 
  1310 2009-02-24  John W. Eaton  <jwe@octave.org>
  1311 
  1312 	* OPERATORS/op-float-conv.cc: New file.
  1313 	* Makefile.in (FLOAT_OP_XSRC): Add it to the list.
  1314 	(DOUBLE_OP_XSRC): Move op-double-conv.cc here from INTTYPE_OP_XSRC.
  1315 	* ops.h (DEFFLTCONVFN, DEFSTRFLTCONVFN): New macros.
  1316 
  1317 2009-02-23  John W. Eaton  <jwe@octave.org>
  1318 
  1319 	* ov-base-sparse.cc (octave_base_sparse<T>::print_raw):
  1320 	Remove extra ")" from output.
  1321 
  1322 	* DLD-FUNCTIONS/eigs.cc (Feigs): If sigma argument is not a
  1323 	string, try extraction as complex value and check for error
  1324 	instead of inquiring about type first.
  1325 
  1326 	* pt-eval.cc (tree_evaluator::visit_break_command,
  1327 	tree_evaluator::visit_return_command,
  1328 	tree_evaluator::visit_global_command,
  1329 	tree_evaluator::visit_static_command): Handle breakpoint.
  1330 	(tree_evaluator::visit_simple_for_command,
  1331 	tree_evaluator::visit_complex_for_command): Handle breakpoint once
  1332 	at beginning of loop.
  1333 	(tree_evaluator::visit_if_command_list): Don't call do_breakpoint
  1334 	for else clauses.
  1335 	(tree_evaluator::visit_no_op_command): Handle breakpoint if no-op
  1336 	command is end of function or script.
  1337 	(tree_evaluator::visit_statement): Handle breakpoint for
  1338 	expressions but not commands.
  1339 	(tree_evaluator::visit_while_command,
  1340 	tree_evaluator::visit_do_until_command):
  1341 	Check for breakpoint set on cmd, not expr.
  1342 	(tree_evaluator::visit_do_until_command): Handle breakpoint
  1343 	between check for breaking out of loop and loop control
  1344 	expression.
  1345 
  1346 	* pt-cmd.h (tree_no_op_command::eof): New data member
  1347 	(tree_no_op_command::tree_no_op_command): Initialize it.
  1348 	(tree_no_op_command::is_end_of_fcn_or_script): New function.
  1349 	* pt-stmt.cc (tree_statement::is_end_of_fcn_or_script):
  1350 	Call is_end_of_fcn_or_script instead of looking at original text
  1351 	of no-op command.
  1352 
  1353 	* pt-select.h, pt-select.cc (tree_if_command::set_breakpoint,
  1354 	tree_if_command::delete_breakpoint): New functions.
  1355 	(tree_switch_command::set_breakpoint,
  1356 	tree_switch_command::delete_breakpoint): New functions.
  1357 	* pt-stmt.h, pt-stmt.cc (tree_statement::set_breakpoint,
  1358 	tree_statement::delete_breakpoint, tree_statement::is_breakpoint):
  1359 	Delegate real work to cmd or expr.
  1360 	(tree_statement::bp): Delete data member.
  1361 	(tree_statement::tree_statement): Don't initialize bp.
  1362 	(tree_statement::dup): Don't copy bp.
  1363 
  1364 	* pt.h (tree::line (int), tree:column (int)): New functions.
  1365 	(tree:set_breakpoint, tree::delete_breakpoint): Now virtual.
  1366 
  1367 	* parse.y (finish_if_command): Also store line and column info for
  1368 	if statement in first element of list.
  1369 	(finish_switch_command): Likewise, for switch.
  1370 
  1371 	* input.cc (last_debugging_command): New static variable.
  1372 	(octave_gets): Set it here.  Don't insert repeated debugging
  1373 	commands in the history list.
  1374 
  1375 2009-02-23  Jaroslav Hajek  <highegg@gmail.com>
  1376 
  1377 	* DLD-FUNCTIONS/pinv.cc: Support diagonal and permutation matrices.
  1378 
  1379 2008-02-21  David Bateman  <dbateman@free.fr>
  1380 
  1381 	* OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, OPERATORS/op-s-scm.cc,
  1382 	OPERATORS/op-s-sm.cc, OPERATORS/op-scm-cs.cc, OPERATORS/op-scm-s.cc,
  1383 	OPERATORS/op-sm-cs.cc, OPERATORS/op-sm-s.cc: Don't perform any 
  1384 	narrowing to full matrices.
  1385 
  1386 2009-02-20  Jaroslav Hajek  <highegg@gmail.com>
  1387 
  1388 	* ov-base-diag.h (octave_base_diag::sqrt): Remove.
  1389 	* ov-re-diag.cc (octave_diag_matrix::sqrt): New method.
  1390 	* ov-re-diag.h: Declare it.
  1391 	* ov-flt-re-diag.cc (octave_float_diag_matrix::sqrt): New method.
  1392 	* ov-flt-re-diag.h: Declare it.
  1393 	* ov-cx-diag.cc (octave_complex_diag_matrix::sqrt): New method.
  1394 	* ov-cx-diag.h: Declare it.
  1395 	* ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::sqrt): New method.
  1396 	* ov-flt-cx-diag.h: Declare it.
  1397 
  1398 2009-02-20  John W. Eaton  <jwe@octave.org>
  1399 
  1400 	* dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Clear and
  1401 	reload mex file if it is out of date.  Don't check path for file.
  1402 
  1403 	* pt-bp.cc (tree_breakpoint::visit_octave_user_script,
  1404 	tree_breakpoint::visit_octave_user_function):
  1405 	Don't panic.  Call accept on command list if it exists.
  1406 
  1407 2009-02-20  Jaroslav Hajek  <highegg@gmail.com>
  1408 
  1409 	* ov-base-mat.cc (octave_base_matrix<MT>::do_index_op):
  1410 	Correctly compute all-scalar index.
  1411 	* ov-cell.cc (octave_cell::is_sorted, octave_cell::is_sorted_rows):
  1412 	New methods.
  1413 	(octave_cell::octave_cell (const Array<std::string>&)): New
  1414 	constructor.
  1415 	* ov-cell.h: Declare them.
  1416 	* ov-cell.cc (octave_cell::sort): Create result already with
  1417 	cellstr_cache.
  1418 	* strfns.cc (Fstrcmp): Use special code when dealing with
  1419 	cellstr arrays.
  1420 
  1421 2009-02-20  John W. Eaton  <jwe@octave.org>
  1422 
  1423 	* ov-base-mat.cc (octave_base_matrix<MT>::assign):
  1424 	Correctly compute all-scalar index.
  1425 
  1426 	* symbtab.cc (symbol_table::stash_dir_name_for_subfunctions):
  1427 	New function.
  1428 	* symtab.h: Provide decl.
  1429 	* parse.y (load_fcn_from_file): Call it after parsing a function.
  1430 
  1431 2009-02-19  Jaroslav Hajek  <highegg@gmail.com>
  1432 
  1433 	* ov-cell.h (octave_cell::cellstr_cache): New field.
  1434 	(octave_cell::clear_cellstr_cache, octave_cell::make_cellstr_cache,
  1435 	octave_cell::assign, octave_cell::delete_elements,
  1436 	octave_cell::mex_get_data): New methods.
  1437 	(octave_cell::is_cellstr): Reuse cellstr cache if possible, create if
  1438 	successful.
  1439 	(octave_cell::cellstr_value): Reuse cellstr cache if possible.
  1440 	(octave_cell::subsasgn): Clear cellstr cache.
  1441 
  1442 2009-02-19  Jaroslav Hajek  <highegg@gmail.com>
  1443 
  1444 	* DLD-FUNCTIONS/lookup.cc (Flookup): Use Array<T>::lookup if possible.
  1445 	Do not compare octave_values directly. Properly check for iscellstr.
  1446 
  1447 2009-02-19  John W. Eaton  <jwe@octave.org>
  1448 
  1449 	* data.cc, graphics.cc, help.cc, lex.l, load-path.cc, parse.y:
  1450 	Consistent doc strings for internal functions.
  1451 
  1452 2009-02-18  John W. Eaton  <jwe@octave.org>
  1453 
  1454 	* ov.cc (convert_to_octave_idx_type_array): New static function.
  1455 	(octave_value::octave_idx_type_vector_value): New function.
  1456 	* ov.h (octave_value::octave_idx_type_vector_value): Provide decl.
  1457 	* DLD-FUNCTIONS/qr.cc (Fqrdelete, Fqrinsert): Use it to convert
  1458 	octave_value object to array of octave_idx_type values.
  1459 
  1460 	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Likewise.
  1461 	* DLD-FUNCTIONS/time.cc (strptime): Likewise.
  1462 	* DLD-FUNCTIONS/quad.cc (Fquad): Eliminate unnecessary cast.
  1463 	* toplev.cc (run_command_and_return_output): Likewise.
  1464 
  1465 	* strfns.cc (Fstrvcat): Use octave_idx_type and size_t instead of
  1466 	int as needed.
  1467 	(Fstrcmp, Fstrncmp): Use octave_idx_type instead of int as needed.
  1468 
  1469 	* DLD-FUNCTIONS/hex2num.cc (Fhex2num, Fnum2hex):
  1470 	Use union to avoid reinterpret_cast and GCC warning.
  1471 
  1472 	* mex.cc (call_mex): Declare local nargout variable volatile to
  1473 	avoid "maybe clobbered by vfork" warning from GCC.
  1474 
  1475 	* ov-cx-mat.cc (xabs): Comment out unused static function.
  1476 	* ov-flt-cx-mat.cc (xabs): Ditto.
  1477 
  1478 	* c-file-ptr-stream.cc (c_file_ptr_buf::seekoff,
  1479 	c_file_ptr_buf::seepos, c_zfile_ptr_buf::seekoff,
  1480 	c_zfile_ptr_buf::seepos): Avoid unused paramter warnings.
  1481 
  1482 2009-02-18  Jaroslav Hajek  <highegg@gmail.com>
  1483 
  1484 	* data.cc (Fresize): Allow arbitrary number of parameters. Improve
  1485 	documentation.
  1486 
  1487 2009-02-17  Benjamin Lindner  <lindnerb@users.sourceforge.net>
  1488 
  1489 	* file-io.cc: (Fmkstemp): Use mkstemps if it is available and
  1490 	mkstemp is missing.
  1491 
  1492 2009-02-17  Olaf Till  <olaf.till@uni-jena.de>
  1493 
  1494 	* DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/daspk.cc, 
  1495 	DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/dasrt.cc: Documentation fixes.
  1496 
  1497 2009-02-17  Kai Habel  <kai.habel@gmx.de>
  1498 
  1499 	* DLD-FUNCTIONS/convhulln.cc (Fconvhulln): Compute convex hull
  1500 	volume and return it as second output.  New tests.
  1501 
  1502 2009-02-17  John W. Eaton  <jwe@octave.org>
  1503 
  1504 	* ov-fcn.h (octave_function::octave_function): Initialize data members.
  1505 	(octave_function::dispatch_class): No longer virtual.
  1506 	Replace with version from ov-usr-fcn.h.
  1507 	(octave_function::xdispatch_class,
  1508 	octave_function::stash_dispatch_class): Move here from ov-usr-fcn.h.
  1509 	(octave_function::mark_as_private_function,
  1510 	octave_function::is_private_function,
  1511 	octave_function::is_private_function_of_class): New functions.
  1512 	(octave_function::private_function): New data member.
  1513 	* ov-usr-fcn.h (octave_user_function::xdispatch_class,
  1514 	octave_user_function::stash_dispatch_class,
  1515 	octave_user_function::dispatch_class): Delete.
  1516 	* ov-usr-fcn.cc (octave_user_function::octave_user_function):
  1517 	Don't initialize xdispatch_type.
  1518 
  1519 	* symtab.cc
  1520 	(symbol_table::fcn_info::fcn_info_rep::load_private_function):
  1521 	If private directory is subdirectory of class directory, qmark
  1522 	function as a private directory of the class.
  1523 
  1524 	* ov-class.cc (octave_class::in_class_method): Also return true
  1525 	for functions that are private to a class.
  1526 	(octave_class::subsasgn): If not in class method, look for
  1527 	subsasgn method.  If not found, or if not in a class method,
  1528 	perform default struct-style subscripted indexing.
  1529 
  1530 	* ov-class.h (octave_class::empty_clone):
  1531 	Preserve fields and class name.
  1532 	* oct-map.h (Octave_map::Octave_map (const string_vector&):
  1533 	New constructor.
  1534 
  1535 	* ov-class.cc (octave_class::subsref): If indexing directly and
  1536 	result is map, return class object, not simple struct.
  1537 
  1538 	* symtab.cc
  1539 	(symbol_table::fcn_info::fcn_info_rep::load_private_function):
  1540 	Pass dir_name to load_fcn_from_file.
  1541 	
  1542 2009-02-17  Jaroslav Hajek  <highegg@gmail.com>
  1543 
  1544 	* DLD-FUNCTIONS/data.cc (NATIVE_REDUCTION): Add BOOL_FCN argument.
  1545 	(NATIVE_REDUCTION_1): Check integer overflow flags and possibly gripe.
  1546 	(Fsum): Reflect change.
  1547 	(Fcumsum): USE NATIVE_REDUCTION.
  1548 	* gripes.cc (gripe_native_integer_math_truncated): New function.
  1549 
  1550 2009-02-17  Jaroslav Hajek  <highegg@gmail.com>
  1551 
  1552 	* DLD-FUNCTIONS/max.cc (Fcummin, Fcummax): Improve inline docs.
  1553 
  1554 2009-02-17  Jaroslav Hajek  <highegg@gmail.com>
  1555 
  1556 	* DLD-FUNCTIONS/max.cc (MINMAX_DOUBLE_SBODY): New macro.
  1557 	(MINMAX_DOUBLE_BODY): Move part of code to MINMAX_DOUBLE_SBODY.
  1558 	(MINMAX_SINGLE_SBODY): New macro.
  1559 	(MINMAX_SINGLE_BODY): Move part of code to MINMAX_DOUBLE_SBODY.
  1560 	(MINMAX_INT_SBODY): New macro.
  1561 	(MINMAX_INT_BODY): Move part of code to MINMAX_DOUBLE_SBODY.
  1562 	(CUMMINMAX_BODY): New macro.
  1563 	(Fcummin, Fcummax): New DLD functions.
  1564 
  1565 2009-02-17  John W. Eaton  <jwe@octave.org>
  1566 
  1567 	* octave.gperf: Eliminate whitespace to allow gperf 2.7.2 to work.
  1568 
  1569 	* file-io.cc (Ffscanf, Fsscanf): Check error_state after call to
  1570 	octave_stream::scanf.
  1571 	(Ffgetl): Check error state after call to octave_stream::getl.
  1572 	(Ffgets): Check error state after call to octave_stream::gets.
  1573 
  1574 	* oct-stream.cc (octave_base_stream::do_gets,
  1575 	octave_base_stream::do_scanf):
  1576 	Disallow reading from stdin when running interactively.
  1577 
  1578 	* toplev.cc (octave_config_info): Add CARBON_LIBS, X11_INCFLAGS,
  1579 	and X11_LIBS to the struct.
  1580 	* oct-conf.h.in (OCTAVE_CONF_CARBON_LIBS,
  1581 	OCTAVE_CONF_X11_INCFLAGS, OCTAVE_CONF_X11_LIBS): New macros.
  1582 
  1583 2009-02-17  Thomas Treichl  <Thomas.Treichl@gmx.net>
  1584 
  1585 	* Makefile.in (octave$(EXEEXT)): Link with CARBON_LIBS.
  1586 
  1587 2009-02-16  John W. Eaton  <jwe@octave.org>
  1588 
  1589 	* lex.l (next_token_can_follow_bin_op):
  1590 	Push all characters read on to buffer stack.
  1591 
  1592 	* genprops.awk (emit_source): Don't use + to concatenate strings.
  1593 
  1594 2009-02-16  Jaroslav Hajek  <highegg@gmail.com>
  1595 
  1596 	* data.cc (NATIVE_REDUCTION): Use boolNDArray::any for native bool
  1597 	summation, boolNDArray::sum for double-valued.
  1598 
  1599 2009-02-16  Jaroslav Hajek  <highegg@gmail.com>
  1600 
  1601 	* ov-base-mat.cc (octave_base_matrix<MT>::assign (const octave_value_list&,
  1602 	typename MT::element_type): Fix invalid index.
  1603 	* ov-re-mat.cc (default_numeric_demotion_function): Use
  1604 	float_array_value instead of float_matrix_value.
  1605 
  1606 2009-02-16  John W. Eaton  <jwe@octave.org>
  1607 
  1608 	* input.cc (gnu_readline): Use fputs instead of fprintf.
  1609 
  1610 2009-02-15  John W. Eaton  <jwe@octave.org>
  1611 
  1612 	* defun.cc, defun-int.h, defun-dld.h (DEFUN_INTERNAL,
  1613 	DEFCONSTFUN_INTERNAL, DEFUNX_INTERNAL, DEFUN_DLD_INTERNAL,
  1614 	DEFUNX_DLD_INTERNAL, install_builtin_function,
  1615 	install_dld_function, install_mex_function):
  1616 	Delete IS_TEXT_FCN arg.  Fix all uses.
  1617 	(DEFMD, DEFUN_TEXT): Delete.
  1618 	* mkbuiltins, mkgendoc: Adapt to DEFUN macro changes.
  1619 
  1620 	* lex.h, lex.l (lexer_flags::at_beginning_of_statement):
  1621 	New data member.  Set it as needed in rules.
  1622 	(is_keyword_token):
  1623 	Handle lexer_flags::at_beginning_of_statement.
  1624 	(next_token_can_follow_bin_op, looks_like_command_arg): New functions.
  1625 	(handle_identifier): Use them to determine 
  1626 	Don't check is_command_name or is_rawcommand_name.
  1627 	* parse.y (statement): Recognize word_list_cmd here.
  1628 	(expression): Not here.
  1629 
  1630 	* lex.l (handle_string): Delete arg TEXT_STYLE.
  1631 	(BIN_OP_RETURN, XBIN_OP_RETURN): New arg, BOS. Change all uses.
  1632 
  1633 	* lex.h, lex.l (lexer_flags::doing_raw_command): Delete data
  1634 	member and all uses.
  1635 
  1636 	* debug.cc, dirfns.cc, error.cc, input.cc, lex.l, load-path.cc,
  1637 	load-save.cc, oct-hist.cc, ov-class.cc, pager.cc, parse.y,
  1638 	pr-output.cc, sysdep.cc, utils.cc, variables.cc:
  1639 	Replace all uses of DEFCMD with DEFUN.
  1640 
  1641 	* variables.cc (command_set, rawcommand_set): Delete static variables.
  1642 	(mark_as_command, unmark_command, is_command_name,
  1643 	mark_as_rawcommand, unmark_raw_command, is_rawcommand_name): Delete.
  1644 	(Fmark_as_command, Funmark_command, Fiscommand,
  1645 	Fmark_as_rawcommand, Funmark_rawcommand, Fisrawcommand):
  1646 	Convert to .m files and move to scripts/deprecated.
  1647 	* variables.h (mark_as_command, is_command_name,
  1648 	is_marked_as_rawcommand, mark_as_rawcommand, unmark_rawcommand,
  1649 	is_rawcommand_name): Delete decls.
  1650 
  1651 	* lex.h, lex.l (lexer_flags.looking_at_object_index): Now a
  1652 	std::list<bool> object instead of an int.
  1653 	Push TRUE to list at start of object index.  Push FALSE at
  1654 	beginning of matrix list.  Pop value at end of object index or
  1655 	matrix list.
  1656 	(lexer_flags.looking_for_object_index): New data member.
  1657 	Set it as needed in rules.
  1658 	(inside_any_object_index): New function.
  1659 	* parse.y (begin_obj_idx, cancel_obj_idx): Delete non-terminals
  1660 	and all uses.
  1661 
  1662 2009-02-13 Ben Abbott <bpabott@mac.com>
  1663 
  1664 	* graphics.h.in (class axes::properties): Initialize ticklength.
  1665 	* graphics.cc (default_axes_ticklength): New function.
  1666 
  1667 2009-02-13  John W. Eaton  <jwe@octave.org>
  1668 
  1669 	* oct-stream.cc (octave_base_stream::do_gets): Handle CRLF and CR.
  1670 
  1671 	* toplev.cc (do_octave_atexit): Only save history if
  1672 	Vsaving_history is true.
  1673 
  1674 2009-02-12  John W. Eaton  <jwe@octave.org>
  1675 
  1676 	* data.cc, ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h,
  1677 	ov-base-sparse.h, ov-base.cc, ov-base.h, ov-perm.h, ov-range.h,
  1678 	ov.h: Rename internal issorted and issorted_rows functions to
  1679 	is_sorted and is_sorted_rows.
  1680 
  1681 	* ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base.h,
  1682 	ov-cell.h, ov-perm.h, ov-range.h, ov.h, data.cc, ov-base.cc,
  1683 	ov-cell.cc: Rename all uses of sortrows_idx to sort_rows_idx.
  1684 
  1685 	* TEMPLATE-INST/Array-tc.cc: Don't instantiate sort functions for
  1686 	Arrays of octave_value objects.
  1687 	(octave_sort<octave_value>::ascending_compare,
  1688 	octave_sort<octave_value>::descending_compare): Delete.
  1689 
  1690 	* ov.h (octave_value::cellstr_value): New function.
  1691 	* ov-base.cc, ov-base.h (octave_base_value::cellstr_value):
  1692 	New function.
  1693 	* ov-cell.h (octave_cell::cellstr_value, octave_cell::sort,
  1694 	octave_cell::sortrows_idx): New functions
  1695 	* Cell.h, Cell.cc (Cell::Cell (Array<std::string>)): New constructor.
  1696 
  1697 	* TEMPLATE-INST/Array-tc.cc: Undo previous change.
  1698 	(octave_sort<octave_value>::ascending_compare,
  1699 	octave_sort<octave_value>::descending_compare):
  1700 	Pass args by const reference instead of value.
  1701 
  1702 	* version.h (OCTAVE_VERSION): Now 3.1.52+.
  1703 	(OCTAVE_API_VERSION): Now api-v34+.
  1704 
  1705 	* TEMPLATE-INST/Array-tc.cc
  1706 	(octave_sort<octave_value>::ascending_compare,
  1707 	octave_sort<octave_value>::descending_compare):
  1708 	Delete unused template specializations.
  1709 	Use NO_INSTANTIATE_ARRAY_SORT instead of INSTANTIATE_ARRAY_SORT
  1710 	for octave_values.
  1711 
  1712 2009-02-11  Thomas Treichl  <Thomas.Treichl@gmx.net>
  1713 
  1714 	* gl-render.h: Use HAVE_FRAMEWORK_OPENGL.
  1715 	* gl-render.cc (opengl_tesselator, opengl_renderer::draw, 
  1716 	opengl_renderer::init_marker): Use HAVE_FRAMEWORK_OPENGL.
  1717 	
  1718 2009-02-11  Jaroslav Hajek  <highegg@gmail.com>
  1719 
  1720 	* ov.h (octave_value::issorted, octave_value::sortrows_idx,
  1721 	octave_value::issorted_rows): New methods.
  1722 	* ov.cc (octave_base_value::issorted, octave_base_value::sortrows_idx,
  1723 	octave_base_value::issorted_rows): New methods.
  1724 	* ov.cc: Declare them.
  1725 
  1726 	* ov-base-mat.h (octave_base_matrix::issorted, octave_base_matrix::sortrows_idx,
  1727 	octave_base_matrix::issorted_rows): New methods.
  1728 
  1729 	* ov-base-diag.h (octave_base_diag::issorted, octave_base_diag::sortrows_idx,
  1730 	octave_base_diag::issorted_rows): New methods.
  1731 
  1732 	* ov-perm.h (octave_perm_matrix::issorted, octave_perm_matrix::sortrows_idx,
  1733 	octave_perm_matrix::issorted_rows): New methods.
  1734 
  1735 	* ov-range.h (octave_range::issorted, octave_range::sortrows_idx,
  1736 	octave_range::issorted_rows): New methods.
  1737 
  1738 	* data.cc (F__sortrows_idx__, Fissorted): New defuns.
  1739 
  1740 2009-02-11  John W. Eaton  <jwe@octave.org>
  1741 
  1742 	* toplev.cc (octave_config_info): Add octetcdir to the struct.
  1743 	* defaults.h.in (OCTAVE_OCTETCDIR): New macro.
  1744 
  1745 2009-02-10  Jaroslav Hajek  <highegg@gmail.com>
  1746 
  1747 	* DLD-FUNCTIONS/__pchip_deriv__.cc (F__pchip_deriv__):
  1748 	Add support for computing pchip derivatives along rows of matrix.
  1749 	Eliminate redundant copying by using const args where appropriate.
  1750 
  1751 2009-02-09  John W. Eaton  <jwe@octave.org>
  1752 
  1753 	* version.h (OCTAVE_VERSION): Now 3.1.52.
  1754 	(OCTAVE_RELEASE_DATE): Now 2009-02-09.
  1755 	(OCTAVE_COPYRIGHT): Update year.
  1756 
  1757 	* load-path.cc (dir_info::update, dir_info::initialize):
  1758 	Likewise, to allow some functionality if getcwd fails.
  1759 
  1760 	* toplev.cc (main_loop): Also catch octave_execution_exception.
  1761 
  1762 	* DLD-FUNCTIONS/dispatch.cc: Comment out troublesome tests.
  1763 
  1764 	* DLD-FUNCTIONS/eigs.cc: Increase tolerance to 1e-11 on all tests.
  1765 
  1766 	* lex.l (lexical_feedback::looking_at_decl_list): New data member.
  1767 	* lex.l (lexical_feedback::init): Initialize it.
  1768 	(handle_identifier): Also force local variable if looking_at_decl_list.
  1769 	* parse.y (parsing_decl_list): New non-terminal.
  1770 	(declaration): Use it.  Set lexer_flags.looking_at_decl_list to
  1771 	false after parsing the declaration.
  1772 
  1773 2009-02-09  Jaroslav Hajek  <highegg@gmail.com>
  1774 
  1775 	* TEMPLATE-INST/Array-tc.cc: Reflect changes in octave_sort.
  1776 
  1777 2009-02-08  John W. Eaton  <jwe@octave.org>
  1778 
  1779 	* octave.cc (initialize_pathsearch): Delete.
  1780 	(octave_main): Don't call initialize_pathsearch.
  1781 
  1782 2009-02-07  John W. Eaton  <jwe@octave.org>
  1783 
  1784 	* parse.y (eval_string): Use the one true evaluator.
  1785 
  1786 2009-02-06  John W. Eaton  <jwe@octave.org>
  1787 
  1788 	* Makefile.in (INCLUDES): Include oct-hdf5.h in the list.
  1789 
  1790 	* Makefile.in (oct-gperf.h): Don't use pipeline to process gperf
  1791 	output.
  1792 
  1793 2009-02-05  John W. Eaton  <jwe@octave.org>
  1794 
  1795 	* symtab.cc (symbol_table::fcn_info::cn_info_rep::xfind):
  1796 	New function.
  1797 	(symbol_table::fcn_info::cn_info_rep::find):
  1798 	Use it to avoid recursive call.
  1799 
  1800 	* graphics.cc (Fdrawnow): Return after errors.  Don't strip
  1801 	trailing directory separator from name used in call to file_stat.
  1802 
  1803 	* DLD-FUNCTIONS/eigs.cc (Feigs): Avoid warnings about ambiguous
  1804 	else.  Style fixes.  Return after errors.
  1805 
  1806 2009-02-05  Jaroslav Hajek  <highegg@gmail.com>
  1807 
  1808 	* oct-map.cc (Octave_map::index): Optimize.
  1809 
  1810 2009-02-05  Jaroslav Hajek  <highegg@gmail.com>
  1811 
  1812 	* OPERATORS/op-cm-cs.cc: Use scalar_value in scalar-to-matrix
  1813 	indexed assignments.
  1814 	* OPERATORS/op-fcm-fcs.cc: Ditto.
  1815 	* OPERATORS/op-fm-fs.cc: Ditto.
  1816 	* OPERATORS/op-m-s.cc: Ditto.
  1817 	* OPERATORS/op-int.h (OCTAVE_MS_INT_ASSIGN_OPS): Use homogeneous
  1818 	integer scalar-to-matrix assignment.
  1819 	(OCTAVE_MM_INT_ASSIGN_OPS): Use homogeneous integer matrix-to-matrix
  1820 	assignment.
  1821 
  1822 	* Cell.h (Cell::index): Remove direct idx_vector overloads.
  1823 	(Cell::assign): Remove direct idx_vector overloads.
  1824 	(Cell::delete_elements): Remove direct idx_vector overloads.
  1825 	* Cell.cc (Cell::index (const octave_value_list&)): Call
  1826 	ArrayN<octave_value>::index.
  1827 
  1828 	* oct-map.h (Octave_map::index): Remove direct idx_vector overloads.
  1829 	* oct-map.cc (Octave_map::index): Ditto.
  1830 	* ov-base-mat.cc (octave_base_mat::do_index_op): Optimize scalar
  1831 	indexing case.
  1832 	(octave_base_mat::assign (const octave_value_list&, const MT&)):
  1833 	Specialize variable argument number.
  1834 	(octave_base_mat::assign (const octave_value_list&, const 
  1835 	typename MT::element_type&)):
  1836 	New method overload with optimized scalar indexing case.
  1837 
  1838 	* ov-cell.cc (octave_base_matrix<Cell>::do_index_op,
  1839 	octave_base_matrix<Cell>::assign,
  1840 	octave_base_matrix<Cell>::delete_elements): Specialize.
  1841 	(octave_cell::assign (const_octave_value_list, const octave_value&):
  1842 	Delete method.
  1843 	* ov-cell.h: Reflect change.
  1844 
  1845 	* ov-cx-mat.cc (octave_complex_matrix::assign): Delete overloads.
  1846 	* ov-cx-mat.h: Reflect changes.
  1847 	* ov-flt-cx-mat.cc (octave_float_complex_matrix::assign): Delete overloads.
  1848 	* ov-flt-cx-mat.h: Reflect changes.
  1849 	* ov-list.cc (octave_list::do_index_op): Simplify.
  1850 	* ov-struct.cc (octave_struct::do_index_op): Simplify.
  1851 	* pt-eval.cc (tree_evaluator::visit_simple_for_command): Optimize
  1852 	traversing a row vector.
  1853 
  1854 2009-02-05  John W. Eaton  <jwe@octave.org>
  1855 
  1856 	* variables.cc (Vignore_function_time_stamp):
  1857 	Eliminate unused static variable.
  1858 
  1859 	* debug.cc (get_file_line): Override default precedence in logical
  1860 	expression.
  1861 
  1862 	* ov-null-mat.cc (default_null_str_numeric_conversion_function,
  1863 	default_null_sq_str_numeric_conversion_function,
  1864 	default_null_matrix_numeric_conversion_function):
  1865 	Avoid unused variable warning.
  1866 
  1867 	* ov-flt-re-diag.cc (octave_float_diag_matrix::save_binary):
  1868 	Avoid unused parameter warning.
  1869 	* pt-eval.cc (tree_evaluator::visit_if_clause): Likewise.
  1870 	* ov-typeinfo.cc (octave_value_typeinfo::do_register_type): Likewise.
  1871 	* ov-base.cc (octave_base_value::subsref (const std::string&,
  1872 	const std::list<octave_value_list>&, bool): Likewise.
  1873 	* ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::save_binary): 
  1874 	Likewise.
  1875 
  1876 	* oct-hdf5.h: New file.
  1877 	* ls-hdf5.cc, ov-base.h, ov.h: Include oct-hdf5.h instead of hdf5.h.
  1878 	* ls-hdf5.h: Include oct-hdf5.h.
  1879 	* load-save.cc: Include ls-hdf5.h instead of hdf5.h.
  1880 	* ov-base-sparse.cc, load-save.cc:
  1881 	Don't protect #include "ls-hdf5.h" with #ifdef.
  1882 
  1883 2009-02-04  Kai Habel  <kai.habel@gmx.de>
  1884 
  1885 	* gl-render.cc (opengl_renderer::draw (surface::properties)):
  1886 	Normalize surface normals. Correct calculation of diffuse lighting.
  1887 	* gl-render.cc (opengl_renderer::draw (patch::properties)):
  1888 	Correct calculation of diffuse lighting.
  1889 
  1890 2009-02-04  John W. Eaton  <jwe@octave.org>
  1891 
  1892 	* help.cc (do_which): If NAME is not in the symbol table, look for
  1893 	a function file in the load path.
  1894 	(raw_help_from_file): Unwind-protect and set reading_script_file.
  1895 
  1896 	* pt-loop.h, pt-loop.cc (evaluating_looping_command):
  1897 	Delete global variable and all uses.
  1898 	* parse.y, parse.h (evaluating_function_body): Delete global
  1899 	variable and all uses.
  1900 	(make_break_command, make_continue_command, make_return_command):
  1901 	Use tree_evaluator::in_fcn_or_script_body and
  1902 	tree_evaluator::in_loop_command instead of
  1903 	evaluating_function_body and evaluating_looping_command.
  1904 
  1905 	* pt-eval.h (tree_evaluator::in_function_or_script_body):
  1906 	Delete 	member variable and all uses.
  1907 	(tree_evaluator::reset): Delete function and all uses.
  1908 	
  1909 	* pt-eval.cc, pt-eval.h (tree_evaluator::in_fcn_or_script_body,
  1910 	tree_evaluator::in_loop_command): New static variables.
  1911 	(tree_evaluator::visit_simple_for_command,
  1912 	tree_evaluator::visit_complex_for_command,
  1913 	tree_evaluator::visit_while_command,
  1914 	tree_evaluator::visit_do_until_command): Unwind-protect and set
  1915 	tree_evaluator::in_loop_command instead of
  1916 	evaluating_looping_command.
  1917 	(tree_evaluator::visit_statement): Only call echo_code if
  1918 	evaluating function or script and (Vecho_executing_commands &
  1919 	ECHO_FUNCTIONS).  Use tree_evaluator::in_fcn_or_script_body
  1920 	instead of evaluating_function_body.  
  1921 
  1922 	* ov-usr-fcn.cc (octave_user_script::do_multi_index_op):
  1923 	octave_user_function::do_multi_index_op): Unwind-protect and set
  1924 	tree_evaluator::in_fcn_or_script_body.
  1925 
  1926 	* pt-stmt.cc, pt-stmt.h (tree_statement::echo_code):
  1927 	Rename from maybe_echo_code.  Simplify.
  1928 
  1929 2009-02-04  Jaroslav Hajek  <highegg@gmail.com>
  1930 
  1931 	* pt-loop.h (tree_simple_for_command::do_for_loop_once,
  1932 	tree_complex_for_command::do_for_loop_once): Remove obsolete decls.
  1933 	* pt-loop.cc (quit_loop_now): Remove obsolete method.
  1934 	* pt-eval.cc (DO_ND_LOOP): Delete macro.
  1935 	(tree_evaluator::visit_simple_for_command): Use the generic
  1936 	do_index_op for iterating matrices.
  1937 
  1938 2009-02-04  John W. Eaton  <jwe@octave.org>
  1939 
  1940 	New evaluator and debugger derived from tree-walker class.
  1941 
  1942 	* pt-eval.h, pt-eval.cc: New files.  Parse tree evaluator code
  1943 	adapted from eval member functions in classes derived from
  1944 	tree_command.
  1945 	* Makefile.in (PT_INCLUDES, PT_SRC): Add them to the lists
  1946 
  1947 	* pt-cmd.cc (tree_function_def::eval): Delete.
  1948 	* pt-cmd.h: Delete decl.
  1949 	(tree_command::eval): Delete pure virtual function.
  1950 	(tree_no_op_command::eval): Delete.
  1951 	(tree_function_def::function): Return octave_value, instead of
  1952 	pointer to octave_function.  Change all uses.
  1953 
  1954 	* pt-except.cc (do_catch_code, tree_try_catch_command::eval,
  1955 	do_unwind_protect_cleanup_code,
  1956 	tree_unwind_protect_command::eval): Delete.
  1957 	* pt-except.h: Delete decls.
  1958 
  1959 	* pt-jump.cc (tree_break_command::eval, tree_return_command::eval,
  1960 	tree_continue_command::eval): Delete.
  1961 	* pt-jump.h: Delete decls.
  1962 
  1963 	* pt-loop.cc (DO_ND_LOOP): Delete macro.
  1964 	(tree_while_command::eval, tree_do_until_command::eval,
  1965 	tree_simple_for_command::do_for_loop_once,
  1966 	tree_simple_for_command::eval,
  1967 	tree_complex_for_command::do_for_loop_once,
  1968 	tree_complex_for_command::eval):
  1969 	* pt-loop.h: Delete decls.
  1970 
  1971 	* pt-select.cc (tree_if_clause::eval, tree_if_command_list::eval,
  1972 	tree_if_command::eval, tree_switch_case::eval,
  1973 	tree_switch_case_list::eval, tree_switch_command::eval): Delete.
  1974 	* pt-select.h: Delete decls.
  1975 	(class tree_if_clause, class tree_switch_case): Derive from tree.
  1976 	Handle line and column in constructors.
  1977 
  1978 	* pt-stmt.cc (tree_statement::eval): Delete
  1979 	* pt-stmt.h: Delete decl.
  1980 
  1981 	* pt-stmt.cc, pt-stmt.h (tree_statement::is_command,
  1982 	tree_statement::is_expression, tree_statement::line,
  1983 	tree_statement::column): Now const.
  1984 	
  1985 	* pt-stmt.cc (tree_statement::set_print_flag,
  1986 	tree_statement::is_end_of_fcn_or_script): New functions.
  1987 	* pt-stmt.h: Provide decl.
  1988 	(set_breakpoint, delete_breakpoint, is_breakpoint): New function.
  1989 	(bp): New member variable.
  1990 	(print_result): Delete member variable.
  1991 	(tree_statement_list::anon_function_body): New member variable.
  1992 	(tree_statement_list::mark_as_anon_function_body,
  1993 	tree_statement_list::is_anon_function_body,
  1994 	tree_statement_list::is_script_body): New functions.
  1995 
  1996 	* pt-decl.cc (tree_decl_init_list::eval,
  1997 	tree_decl_command::accept, tree_global_command::do_init,
  1998 	tree_global_command::eval, tree_static_command::do_init,
  1999 	tree_static_command::eval): Delete.
  2000 	* pt-decl.h: Delete decls.
  2001 	(tree_decl_elt::eval_fcn): Delete typedef.
  2002 
  2003 	* pt-decl.cc (tree_global_command::accept,
  2004 	tree_static_command::accept): New functions.
  2005 	
  2006 	* pt-stmt.cc (tree_statement::print_result): Move here from
  2007 	pt-stmt.h.  Return true if expr is printable.
  2008 
  2009 	* ov-base.cc (Vsilent_functions): Delete.
  2010 	(octave_base_value::print_with_name): Don't check
  2011 	evaluating_function_body && Vsilent_functions here.
  2012 	* ov-class.cc (octave_class::print_with_name): Likewise.
  2013 	* ov-base.h (Vsilent_functions): Delete decl.
  2014 	* pt-eval.cc (Fsilent_functions): Move here from ov-base.cc.
  2015 	(Vsilent_functions): New static variable.
  2016 
  2017 	* sighandlers.cc (user_abort): Set tree_evaluator::debug_mode here.
  2018 
  2019 	* pt.h (tree::bp): Rename from tree::break_point.
  2020 	(tree::set_breakpoint, tree::delete_breakpoint, tree::is_breakpoint):
  2021 	No longer virtual.
  2022 
  2023 	* input.cc (get_debug_input): Use current_evaluator and
  2024 	tree-walker to evaluate command.
  2025 	* ov-usr-fcn.cc (octave_user_script::do_multi_index_op): Likewise.
  2026 	* toplev.cc (main_loop): Likewise.
  2027 	* parse.y (eval_string):
  2028 
  2029 	* input.h, input.cc (Vdebugging_current_line): Delete.
  2030 	(get_debug_input): Use tree_evaluator::debug_line instead of
  2031 	Vdebugging_current_line.
  2032 
  2033 	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
  2034 	Handle inline functions and anonymous functions as single
  2035 	expressions.
  2036 	* parse.y (eval_string): Likewise.
  2037 
  2038 	* parse.y (make_do_until_command): Rename first argument from
  2039 	do_tok to until_tok.
  2040 	(loop_command): Pass UNTIL token instead of DO token to
  2041 	make_do_until_command.
  2042 	(make_elseif_clause): New arg, elseif_tok.  Pass line and column
  2043 	info to tree_if_clause constructor.
  2044 	(elseif_clause): Pass ELSEIF token to make_elseif_clause.
  2045 	(make_switch_case): New arg, case_tok.  Pass line and column info
  2046 	to tree_switch_case constructor.
  2047 	(switch_case): Pass CASE token to make_switch_case.
  2048 	(make_script): New arg end_script.  Append it to cmds.
  2049 	(script): Create no-op command for end of script and pass it to
  2050 	make_script.
  2051 	(start_function): New arg, end_function. Append it to body.
  2052 	(function2): Pass end_function to start_function.
  2053 	(make_end): New function.
  2054 	(function_end): Declare as tree_statement_type.
  2055 	Create no-op command for end of script.
  2056 	(make_anon_fcn_handle): Mark body as anonymous function.
  2057 	(set_stmt_print_flag): Set print flag for all separator types
  2058 
  2059 	* parse.y (fold (tree_binary_expression*),
  2060 	fold (tree_unary_expression *),	finish_colon_expression,
  2061 	finish_matrix): Call rvalue1 instead of rvalue.
  2062 	Stash line number in new tree_constant object.
  2063 
  2064 	* debug.h (bp_table::have_breakpoints): New static function.
  2065 	(bp_table::do_have_breakpoints): New member function.
  2066 	* debug.cc (bp_table::do_add_breakpoint,
  2067 	bp_table::do_remove_breakpoint,
  2068 	bp_table::do_remove_all_breakpoints_in_file,
  2069 	bp_table::do_remove_all_breakpoints): Call
  2070 	bp_table::have_breakpoints to set tree_evaluator::debug_mode.
  2071 	(Fdbnext): Delete function.  Alias to dbstep.
  2072 	(Fdbquit, Fdbcont): Set tree_evaluator::dbstep_flag to zero.
  2073 	(Fdbstep): Rewrite to use tree_evaluator::dbstep_flag instead of
  2074 	tree::break_next, tree::last_line, tree::break_function, and
  2075 	tree::last_break_function.
  2076 	(Fdbwhere): Use tree_evaluator::debug_line and
  2077 	tree_evaluator::debug_column to get current line and column info.
  2078 	Don't print column if it is less than zero.
  2079 	* pt.cc, pt.h (tree::break_next, tree::last_line,
  2080 	tree::last_break_function, tree::break_function,
  2081 	tree::break_statement): Delete.
  2082 
  2083 	* pt-bp.cc (tree_breakpoint::visit_global_command,
  2084 	tree_breakpoint::visit_static_command,
  2085 	tree_breakpoint::take_action (tree_statement&)): New functions.
  2086 	* pt-bp.h: Provide decls.
  2087 
  2088 	* pt-bp.h (tree_walker::visit_global_command,
  2089 	tree_walker::visit_static_command): New pure virtual functions.
  2090 	(tree_walker::visit_decl_command): Delete.
  2091 
  2092 	* pt-bp.cc (tree_breakpoint::visit_decl_command): Delete.
  2093 	* pt-bp.h: Delete decl.
  2094 	(MAYBE_DO_BREAKPOINT): Delete macro and all uses.
  2095 
  2096 	* pt-bp.cc (tree_breakpoint::visit_no_op_command): Do nothing.
  2097 	(tree_breakpoint::visit_argument_list,
  2098 	tree_breakpoint::visit_binary_expression,
  2099 	tree_breakpoint::visit_colon_expression,
  2100 	tree_breakpoint::visit_decl_elt,
  2101 	tree_breakpoint::visit_decl_init_list,
  2102 	tree_breakpoint::visit_octave_user_script,
  2103 	tree_breakpoint::visit_octave_user_function,
  2104 	tree_breakpoint::visit_octave_user_function_header,
  2105 	tree_breakpoint::visit_octave_user_function_trailer,
  2106 	tree_breakpoint::visit_identifier,
  2107 	tree_breakpoint::visit_index_expression,
  2108 	tree_breakpoint::visit_matrix, tree_breakpoint::visit_cell,
  2109 	tree_breakpoint::visit_multi_assignment,
  2110 	tree_breakpoint::visit_anon_fcn_handle,
  2111 	tree_breakpoint::visit_constant,
  2112 	tree_breakpoint::visit_fcn_handle,
  2113 	tree_breakpoint::visit_parameter_list,
  2114 	tree_breakpoint::visit_postfix_expression,
  2115 	tree_breakpoint::visit_prefix_expression,
  2116 	tree_breakpoint::visit_return_list,
  2117 	tree_breakpoint::visit_simple_assignment): Call panic_impossible
  2118 	since breakpoints aren't set on expressions.
  2119 	(tree_breakpoint::visit_if_clause): Fold into visit_if_command_list.
  2120 	(tree_breakpoint::visit_switch_case): Fold into visit_switch_case_list.
  2121 	(tree_breakpoint::visit_try_catch_command,
  2122 	tree_breakpoint::visit_unwind_protect_command):
  2123 	Don't set breakpoint on command itself, the the statements it
  2124 	contains.
  2125 	(tree_breakpoint::visit_global_command,
  2126 	tree_breakpoint::visit_static_command): Call do_decl_command to do
  2127 	actual work.
  2128 	(tree_breakpoint::visit_while_command,
  2129 	tree_breakpoint::visit_do_until_command,
  2130 	tree_breakpoint::visit_simple_for_command,
  2131 	tree_breakpoint::visit_complex_for_command,
  2132 	tree_breakpoint::visit_statement,
  2133 	tree_breakpoint::visit_statement_list,
  2134 	tree_breakpoint::visit_switch_case_list): Set breakpoints at
  2135 	appropriate places.
  2136 
  2137 	* pt-pr-code.h, pt-pr-code.cc (tree_print_code::visit_global_command,
  2138 	tree_print_code::visit_static_command,
  2139 	tree_print_code::do_decl_command): New functions.
  2140 	(tree_print_code::visit_decl_command): Delete.
  2141 
  2142 	* pt-check.h, pt-check.cc (tree_checker::visit_global_command,
  2143 	tree_checker::visit_static_command, tree_checker::do_decl_command):
  2144 	New functions. 
  2145 	(tree_checker::visit_decl_command): Delete.
  2146 
  2147 	* pt-select.cc (tree_switch_case::label_matches): Call rvalue1
  2148 	instead of rvalue.
  2149 
  2150 	* pt-exp.h, pt-exp.cc (tree_expression::rvalue1): New function.
  2151 	(tree_expression::rvalue (void)): Delete.
  2152 	(tree_expression::is_logically_true): Call rvalue1 instead of rvalue.
  2153 
  2154 	* pt-fcn-handle.h, pt-fcn-handle.cc (tree_fcn_handle::rvalue1,
  2155 	tree_anon_fcn_handle::rvalue1): New functions.
  2156 	(tree_fcn_handle:rvalue (void),
  2157 	tree_anon_fcn_handle::rvalue1 (void)): Delete.
  2158 	(tree_fcn_handle::rvalue (int), tree_anon_fcn_handle_rvalue (int)):
  2159 	Call rvalue1 instead of rvalue.
  2160 
  2161 	* pt-idx.h, pt-idx.cc (tree_index_expression::rvalue1): New function.
  2162 	(tree_index_expression::rvalue (void)): Delete.
  2163 	(tree_index_expression::get_struct_index,
  2164 	tree_index_expression::rvalue (int)): Call rvalue1 instead of rvalue.
  2165 
  2166 	* pt-mat.h, pt-mat.cc (tree_matrix::rvalue1): New function.
  2167 	(tree_matrix::rvalue (void)): Delete.
  2168 	(tm_row_const::tm_row_const_rep::init,
  2169 	tree_matrix::rvalue (int)): Call rvalue1 instead of rvalue.
  2170 
  2171 	* pt-misc.cc (tree_parameter_list::convert_to_const_vector):
  2172 	Call rvalue1 instead of rvalue.
  2173 	* pt-arg-list.cc (tree_argument_list::convert_to_const_vector):
  2174 	Likewise.
  2175 
  2176 	* pt-unop.h, pt-unop.cc (tree_prefix_expression::rvalue1,
  2177 	tree_postfix_expression::rvalue1): New functions.
  2178 	(tree_prefix_expression::rvalue (void),
  2179 	tree_postfix_expression::rvalue (void)): Delete.
  2180 	(tree_prefix_expression::rvalue (int),
  2181 	tree_postfix_expression::rvalue (int)):
  2182 	Call rvalue1 instead of rvalue.
  2183 
  2184 	* pt-id.h, pt-id.cc (tree_identifier::rvalue1): New function.
  2185 	(tree_identifier::rvalue (void)): Delete.
  2186 
  2187 	* pt-assign.h, pt-assign.cc (tree_simple_assignment::rvalue1,
  2188 	tree_multi_assignment::rvalue1): New functions.
  2189 	(tree_simple_assignment::rvalue (void),
  2190 	tree_multi_assignment::rvalue (void): Delete.
  2191 	(tree_simple_assignment::rvalue (int)):
  2192 	Call rvalue1 instead of rvalue.
  2193 
  2194 	* pt-binop.h, pt-binop.cc (tree_binary_expression::rvalue1,
  2195 	tree_boolean_expression::rvalue1): New functions.
  2196 	(tree_binary_expression::rvalue (void),
  2197 	tree_boolean_expression::rvalue (void)): Delete.
  2198 	(tree_binary_expression::rvalue (int),
  2199 	tree_boolean_expression::rvalue (int)):
  2200 	Call rvalue1 instead of rvalue.
  2201 
  2202 	* pt-cbinop.h, pt-cbinop.cc
  2203 	(tree_compound_binary_expression::rvalue1): New function.
  2204 	(tree_compound_binary_expression::rvalue (void)): Delete.
  2205 
  2206 	* pt-cell.h, pt-cell.cc (tree_cell::rvalue1): New function.
  2207 	(tree_cell::rvalue (void)): Delete.
  2208 	(tree_cell::rvalue (int)): Call rvalue1 instead of rvalue.
  2209 
  2210 	* pt-colon.h, pt-colon.cc (tree_colon_expression::rvalue1):
  2211 	New function.
  2212 	(tree_colon_expression::rvalue (void)): Delete.
  2213 	(tree_colon_expression::rvalue (int)):
  2214 	Call rvalue1 instead of rvalue.
  2215 
  2216 	* pt-const.h, pt-const.cc (tree_constant::rvalue1): New function.
  2217 	(tree_constant::rvalue (void)): Delete.
  2218 	(tree_constant::rvalue (int)): Call rvalue1 instead of rvalue.
  2219 
  2220 	* pt-decl.h, pt-decl.cc (tree_decl_elt::ravlue1): New function.
  2221 	(tree_decl_elt::ravlue (void)): Delete.
  2222 	(tree_decl_elt::eval): Call rvalue1 instead of rvalue.
  2223 
  2224 2009-02-03  Jaroslav Hajek  <highegg@gmail.com>
  2225 
  2226 	* TEMPLATE-INST/Array-tc.cc: Replace vec_index by pointers.
  2227 
  2228 2009-02-02  Jaroslav Hajek  <highegg@gmail.com>
  2229 
  2230 	* ov-re-mat.cc (octave_matrix::abs, octave_matrix::real,
  2231 	octave_matrix::imag, octave_matrix::conj): Use special code.
  2232 	* ov-flt-re-mat.cc (octave_float_matrix::abs, octave_float_matrix::real,
  2233 	octave_float_matrix::imag, octave_float_matrix::conj): Use special code.
  2234 	* ov-cx-mat.cc (octave_complex_matrix::abs, octave_complex_matrix::real,
  2235 	octave_complex_matrix::imag, octave_complex_matrix::conj): Use special code.
  2236 	* ov-flt-cx-mat.cc (octave_float_complex_matrix::abs, octave_float_complex_matrix::real,
  2237 	octave_float_complex_matrix::imag, octave_float_complex_matrix::conj): Use special code.
  2238 
  2239 2009-01-30  Jaroslav Hajek  <highegg@gmail.com>
  2240 
  2241 	* DLD-FUNCTIONS/lookup.cc (Flookup): Add missing check.
  2242 
  2243 2009-01-29  John W. Eaton  <jwe@octave.org>
  2244 
  2245 	* pt-stmt.cc (tree_statement::eval): Check
  2246 	in_function_or_script_body instead of symbol_table::at_top_level ()
  2247 	to decide whether to call octave_call_stack::set_statement.
  2248 
  2249 	* graphics.cc (properties::set_defaults): Also set
  2250 	horizontalalignment, verticalalignmnt, and rotation properties for
  2251 	new label objects here.
  2252 
  2253 	* ov-base-scalar.cc (octave_base_scalar<ST>::is_true (void) const):
  2254 	Error if scalar is NaN.
  2255 	* ov-base-mat.cc (octave_base_matrix<MT>::is_true (void) const):
  2256 	Likewise, if any element of matrix is NaN.
  2257 	* ov-cell.cc (octave_cell::is_true): New function.
  2258 	* Cell.h (Cell::any_element_is_nan): New function.
  2259 
  2260 2009-01-29  Jaroslav Hajek  <highegg@gmail.com>
  2261 
  2262 	* pr-output.cc:
  2263 	(void octave_print_internal (..., const DiagMatrix& m,...),
  2264 	(void octave_print_internal (..., const ComplexDiagMatrix& m,...),
  2265 	(void octave_print_internal (..., const FloatDiagMatrix& m,...),
  2266 	(void octave_print_internal (..., const FloatComplexDiagMatrix& m,...)):
  2267 	New functions.
  2268 	* pr-output.h: Declare them.
  2269 	* ov-base-diag.cc (octave_base_diag::print_raw): Call
  2270 	octave_print_internal.
  2271 
  2272 2009-01-28  John W. Eaton  <jwe@octave.org>
  2273 
  2274 	* Makefile.in (install, uninstall): Handle SHLLIBPRE and SHLBINPRE
  2275 	library prefixes.  From Marco Atzeri <marco_atzeri@yahoo.it>.
  2276 
  2277 2008-01-28  David Bateman  <dbateman@free.fr>
  2278 
  2279 	* DLD-FUNCTIONS/regexp.cc (octregexp_list): Don't break for zero
  2280 	length match, but rather advance the index by one character and
  2281 	try again.
  2282 
  2283 2009-01-28  Jaroslav Hajek  <highegg@gmail.com>
  2284 
  2285 	* DLD-FUNCTIONS/lookup.cc (Flookup): Fix doc string.
  2286 
  2287 2009-01-27  John W. Eaton  <jwe@octave.org>
  2288 
  2289 	* load-path.cc (Fcommand_line_path): Rename from Fcommandlinepath.
  2290 
  2291 2009-01-27 Ben Abbott <bpabbott@mac.com>
  2292 
  2293 	* graphics.cc (convert_position): Handle character units.
  2294 	(default_axes_tick, default_figure_papersize,
  2295 	default_figure_paperposition): New functions.
  2296 	* graphics.h.in (class figure::properties): Use them to
  2297 	initialize papersize, paperposition, xtick, ytick, and ztick
  2298 	properties.
  2299 
  2300 2009-01-27  Jaroslav Hajek  <highegg@gmail.com>
  2301 
  2302 	* DLD-FUNCTIONS/qr.cc (Fqr): Treat empty matrices correctly.
  2303 
  2304 2009-01-26  Thomas Treichl  <Thomas.Treichl@gmx.net>
  2305 
  2306 	* display.cc (display_info::init): Use double instead of CGFloat.
  2307 	Use HAVE_FRAMEWORK_CARBON instead of OCTAVE_USE_OS_X_API.
  2308 
  2309 2009-01-26  John W. Eaton  <jwe@octave.org>
  2310 
  2311 	* load-path.cc (load_path::do_find_fcn): Handle @foo/bar.
  2312 
  2313 2009-01-24  Jaroslav Hajek  <highegg@gmail.com>
  2314 
  2315 	* pt-cell.cc (tree_cell::rvalue): Optimize the single row case.
  2316 
  2317 2009-01-24  Jaroslav Hajek  <highegg@gmail.com>
  2318 
  2319 	* ov-struct.cc (octave_struct::subsasgn): Reshape cs-list on rhs 
  2320 	according to the index expression.
  2321 	* ov-cell.cc (octave_cell::subsasgn): Ditto.
  2322 
  2323 2008-12-25 Ben Abbott <bpabbott@mac.com>
  2324 
  2325 	* load-path.cc (Fcommandlinepath): New function.
  2326 	* load-path.h (load_path::get_command_line_path,
  2327 	load_path::do_get_command_line_path): New functions.
  2328 
  2329 2009-01-24 Ben Abbott <bpabbott@mac.com>
  2330 
  2331 	* DLD-FUNCTIONS/eigs.cc: eigs.cc: skip tests if ARPACK is missing.
  2332 
  2333 2009-01-25  Søren Hauberg  <hauberg@gmail.com>
  2334 
  2335 	* help.cc (do_get_help_text, raw_help_from_symbol_table): new output to
  2336 	flag the a function is found but not documented.
  2337 	
  2338 2009-01-25  Søren Hauberg  <hauberg@gmail.com>
  2339 
  2340 	* help.cc (raw_help_from_file): No longer search for files called
  2341 	'Contents.m', as this is moved to 'script/help.m'.
  2342 	
  2343 
  2344 2009-01-23  John W. Eaton  <jwe@octave.org>
  2345 
  2346 	* toplev.cc (octave_call_stack::do_goto_caller_frame):
  2347 	Also allow caller frame to be base frame, not just user code.
  2348 
  2349 2009-01-23  Jaroslav Hajek  <highegg@gmail.com>
  2350 
  2351 	* gripes.cc (gripe_indexed_cs_list, gripe_invalid_inquiry_subscript):
  2352 	New functions.
  2353 	* gripes.h: Declare them.
  2354 	* pt-idx.cc: Remove definitions of the above funcs.
  2355 	* ov-cell.cc (octave_cell::subsref): Declare constants as const.
  2356 	(octave_cell::subsasgn): Remove dead branch, declare constants as const.
  2357 	(octave_cell::list_value): Optimize.
  2358 	* ov-struct.cc 
  2359 	(octave_struct::subsref): Declare constants as const.
  2360 	(octave_struct::subsasgn): Remove dead branch, declare constants as const.
  2361 	* ov-cs-list.cc (octave_cs_list::octave_cs_list (const Cell&)):
  2362 	Optimize.
  2363 	* oct-obj.cc (octave_value_list::octave_value_list (const
  2364 	std::list<octave_value_list>&)): New constructor.
  2365 	* oct-obj.h: Declare it.
  2366 	* pt-arg-list.cc (convert_to_const_vector): Optimize.
  2367 	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find): Use const
  2368 	reference to avoid redundant copy.
  2369 	* ov-usr-fcn.cc (octave_user_function::bind_automatic_vars): Optimize.
  2370 	(octave_user_function::octave_all_va_args): Optimize.
  2371 
  2372 2009-01-22  Jaroslav Hajek  <highegg@gmail.com>
  2373 
  2374 	* Cell.h (Cell::Cell (octave_value_list)): Only declare.
  2375 	(Cell::index (*)): Change resize_ok type to bool.
  2376 	* Cell.cc (Cell::Cell (octave_value_list)): Redefine.
  2377 	* oct-obj.h, oct-obj.cc: Change octave_value_list::data to
  2378 	Cell variable, reflect changes.
  2379 
  2380 2009-01-22  John W. Eaton  <jwe@octave.org>
  2381 
  2382 	* help.cc (do_which (std::ostream&, const std::string&), Fwhich):
  2383 	Delete.
  2384 	(do_which (const std::string&, std::string&), F__which__):
  2385 	New functions.
  2386 	* do_which (const std::string&):
  2387 	Call do_which (const std::string&, std::string&) to do the work.
  2388 
  2389 2009-01-22  Søren Hauberg  <hauberg@gmail.com>
  2390 
  2391 	* defun-int.h (print_usage): No longer mark as deprecated.
  2392 	* defun.cc (print_usage): Simply call feval to execute print_usage.m.
  2393 	* help.cc (additional_help_message, display_names_from_help_list,
  2394 	display_symtab_names, simple_help, try_info, help_from_info,
  2395 	display_help_text, display_usage_text, raw_help_from_list,
  2396 	help_from_list, help_from_symbol_table, help_from_file,
  2397 	builtin_help, Fhelp, display_file, do_type, Ftype,
  2398 	first_help_sentence, print_lookfor, Flookfor): Delete.
  2399 	(looks_like_html, raw_help_from_map, raw_help, do_get_help_text,
  2400 	F__operators__, F__keywords__, F__builtins__,
  2401 	file_is_in_dir, F__list_functions__): New functions.
  2402 	(pair_type, map_iter): New typedefs.
  2403 	(operators, keywords): Use pair_type for elements of list.
  2404 	(names): Use map for (keyword, doc) lists.
  2405 	(make_name_list): Sprinkle with const.
  2406 	* help.h (display_help_text, display_usage_text,
  2407 	additional_help_message): Delete decls.
  2408 
  2409 2009-01-22  John W. Eaton  <jwe@octave.org>
  2410 
  2411 	* toplev.cc (octave_config_info): Check OCTAVEUSE_OS_X_API instead
  2412 	of __APPLE__ && __MACH__.
  2413 
  2414 	* display.cc (display_info::init): Get info for Windows and OS X
  2415 	systems.
  2416 
  2417 2009-01-22  Jaroslav Hajek  <highegg@gmail.com>
  2418 
  2419 	* pt-idx.cc (tree_index_expression::lvalue): Correct tmpi when seeing
  2420 	a plain struct component.
  2421 	* ov-struct.cc (octave_struct::subsasgn): Use proper type substr in
  2422 	empty_conv.
  2423 
  2424 2009-01-22  Jaroslav Hajek  <highegg@gmail.com>
  2425 
  2426 	* DLD-FUNCTIONS/qr.cc: Remove HAVE_QRUPDATE check.
  2427 	* DLD-FUNCTIONS/chol.cc: Ditto.
  2428 
  2429 2009-01-21  John W. Eaton  <jwe@octave.org>
  2430 
  2431 	* Makefile.in (display.o): Add X11_INCFLAGS to CPPFLAGS.
  2432 	(octave$(EXEEXT)): Link with X11_LIBS.
  2433 
  2434 	* display.h, display.cc: New files.
  2435 	* graphics.cc (default_screendepth, default_screensize,
  2436 	default_screenpixelsperinch): New functions.
  2437 	* graphics.h.in (class root_figure::properties): New property,
  2438 	screendepth.  Use default_screensize to initialize screensize
  2439 	property.  Use default_screenpixelsperinch to initialize
  2440 	screenpixelsperinch property.
  2441 
  2442 	* graphics.cc (properties::init): Set default xlabel, ylabel,
  2443 	zlabel, and title properties that differ from default text
  2444 	properties.
  2445 
  2446 2009-01-21  Jaroslav Hajek  <highegg@gmail.com>
  2447 	
  2448 	* OPERATORS/op-range.cc: Define & register range-scalar ops.
  2449 
  2450 2009-01-21  Jaroslav Hajek  <highegg@gmail.com>
  2451 
  2452 	* ov.h (octave_value::subsref (..., bool auto_add)): New method.
  2453 	(octave_value::next_subsref (bool auto_add, ...)): New method.
  2454 	* ov.cc (octave_value::next_subsref (bool auto_add, ...)): New method.
  2455 	* ov-base.h (octave_base_value::subsref (..., bool auto_add)): New
  2456 	virtual method.
  2457 	* ov-base.cc (octave_base_value::subsref (..., bool auto_add)): New
  2458 	virtual method.
  2459 	* ov-cell.cc (octave_cell::subsref (..., bool auto_add)): New virtual
  2460 	method.
  2461 	* ov-cell.h (octave_cell::subsref (..., bool auto_add)): Declare it.
  2462 	* ov-struct.cc (octave_struct::subsref (..., bool auto_add)): New
  2463 	virtual method.
  2464 	(octave_struct::subsref (const std::string& type, const
  2465 	std::list<octave_value_list>& idx)): Do not allow resizing.
  2466 	* ov-struct.h (octave_struct::subsref (..., bool auto_add)): Declare
  2467 	it.
  2468 	* ov-struct.cc (octave_struct::dotref (..., bool auto_add)): New
  2469 	virtual method.
  2470 	* ov-struct.h (octave_struct::dotref (..., bool auto_add)): Declare it.
  2471 	* pt-idx.cc (tree_index_expression::rvalue): Do not reevaluate already
  2472 	evaluated part of the index chain.
  2473 	(tree_index_expression::rvalue): Do not reevaluate already evaluated
  2474 	part of the index chain. Do not actually perform trailing indexing. 
  2475 	Do not allow indexing cs-lists.
  2476 
  2477 2009-01-20  John W. Eaton  <jwe@octave.org>
  2478 
  2479 	* file-io.cc (Ffstat): New function.
  2480 
  2481 2009-01-17  Jaroslav Hajek  <highegg@gmail.com>
  2482 
  2483 	* DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete, Fqrshift):
  2484 	Reflect changes in liboctave.
  2485 	* DLD-FUNCTIONS/chol.cc (Fcholupdate, Fcholinsert):
  2486 	Reflect changes in liboctave.
  2487 
  2488 2009-01-19  Jaroslav Hajek  <highegg@gmail.com>
  2489 
  2490 	* ov.h (octave_value::make_unique (int)): New method.
  2491 	* oct-obj.h (octave_value_list::octave_value_list (const Cell&)): New
  2492 	constructor.
  2493 	* ov-cell.cc (octave_cell::subsasgn): Allow composed {} indexing
  2494 	in multi-assignments. Optimize.
  2495 	* ov-struct.cc (octave_struct::subsasgn): Correct composed {} indexing
  2496 	in multi-assignments. Optimize & fix bugs.
  2497 	* pt-idx.cc (tree_index_expression::lvalue): Rewrite to allow
  2498 	specifying cs-list anywhere in index chain, be more robust.
  2499 
  2500 2009-01-19  John W. Eaton  <jwe@octave.org>
  2501 
  2502 	* lex.l (grab_comment_block): If not reading input from a file,
  2503 	bail out at first newline inside a comment.
  2504 
  2505 	* lex.l (lexer_debug_flag): New static variable.
  2506 	(F__lexer_debug_flag__): New function.
  2507 	(LEXER_DEBUG): New macro.  Use it in all patterns.
  2508 	(DISPLAY_TOK_AND_RETURN): Also display token if lexer_debug_flag
  2509 	is set.
  2510 	(process_comment): Display comment if lexer_debug_flag is set.
  2511 	(display_character, display_state, lexer_debug): New static functions.
  2512 	(xunput): Display character if lexer_debug_flag is set.
  2513 
  2514 2009-01-17  Jaroslav Hajek  <highegg@gmail.com>
  2515 
  2516 	* ov.h: Describe usage of storable_value and make_storable_value.
  2517 	* ov.cc: Remove FIXME comment.
  2518 
  2519 2009-01-15  John W. Eaton  <jwe@octave.org>
  2520 
  2521 	* data.cc (Freshape): Include mismatched dimensions in error message.
  2522 	From Robert Millan <rmh@aybabtu.com>.
  2523 
  2524 2009-01-14  Jaroslav Hajek  <highegg@gmail.com>
  2525 
  2526 	* ov.cc (octave_value::maybe_economize): New method.
  2527 	(octave_value::non_null_value): rename to storable_value.
  2528 	(octave_value::make_non_null_value): rename to make_storable_value.
  2529 	* ov-base.h (octave_base_value::maybe_economize): New method.
  2530 	* ov-base-mat.h (octave_base_mat::maybe_economize): New override.
  2531 	* oct-obj.cc (octave_value_list::normalize_null_values):
  2532 	Rename to make_storable_values, use make_storable_value.
  2533 	* oct-obj.h: Ditto.
  2534 	* ov-builtin.cc: non_null_value -> storable_value.
  2535 	* ov-cell.cc: Ditto.
  2536 	* ov-struct.cc: Ditto.
  2537 	* pt-decl.h: Ditto.
  2538 
  2539 2009-01-15  Søren Hauberg  <hauberg@gmail.com>
  2540 
  2541 	* DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image):
  2542 	Initialize bitdepth.
  2543 
  2544 2009-01-14  Søren Hauberg  <hauberg@gmail.com>
  2545 
  2546 	* DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/chol.cc,
  2547 	DLD-FUNCTIONS/daspk.cc, DLD-FUNCTIONS/dasrt.cc,
  2548 	DLD-FUNCTIONS/dassl.cc, DLD-FUNCTIONS/filter.cc,
  2549 	DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/gcd.cc,
  2550 	DLD-FUNCTIONS/givens.cc, DLD-FUNCTIONS/hess.cc,
  2551 	DLD-FUNCTIONS/lsode.cc, DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/qz.cc,
  2552 	DLD-FUNCTIONS/schur.cc, DLD-FUNCTIONS/svd.cc,
  2553 	DLD-FUNCTIONS/syl.cc, data.cc, mappers.cc:
  2554 	Use ifnottex instead of ifinfo.
  2555 
  2556 2009-01-14  John W. Eaton  <jwe@octave.org>
  2557 
  2558 	* load-path.cc (load_path::do_set): Call do_clear after disabling
  2559 	add_hook.
  2560 
  2561 2009-01-13  Jaroslav Hajek  <highegg@gmail.com>
  2562 
  2563 	* dirfns.cc (Freadddir): qsort -> sort.
  2564 	* graphics.cc (maybe_set_children): Ditto.
  2565 	* help.cc (simple_help): Ditto.
  2566 	* input.cc (generate_possible_completions): Ditto.
  2567 	* oct_map.cc (keys_ok): Ditto.
  2568 	* ov-fcn-inline.cc (Finline): Ditto.
  2569 	* variables.cc (Fisrawcommand): Ditto.
  2570 
  2571 2009-01-12  John W. Eaton  <jwe@octave.org>
  2572 
  2573 	* octave.cc (maximum_braindamage): Set confirm_recursive_rmdir to
  2574 	false.
  2575 
  2576 	* strfns.cc (Fstrcmp, Fstrncmp): Simplify by initializing all
  2577 	elements of output to false with constructor argument.
  2578 
  2579 2009-01-12  Thorsten Meyer  <thorsten.meyier@gmx.de>
  2580 
  2581 	* strfns.cc (Fstrncmp): New test.
  2582 	
  2583 2009-01-12  John W. Eaton  <jwe@octave.org>
  2584 
  2585 	* pt-stmt.h (tree_statement::is_null_statement): New function.
  2586 	* parse.y (set_stmt_print_flag): Return list.  Remove trailing
  2587 	null statements from list.
  2588 	(list, simple_list): Simplify action.
  2589 	(make_statement, make_statement_list, append_statement_list):
  2590 	Always create statements and them to the list.
  2591 
  2592 	* base-list.h (octave_base_list::push_front,
  2593 	octave_base_list::push_back, octave_base_list::pop_front,
  2594 	octave_base_list::pop_back): New functions.
  2595 
  2596 	* DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete, Fqrshift):
  2597 	Require args to be numeric, not necessarily matrix objects.
  2598 
  2599 2009-01-12  Ben Abbott  <bpabbott@mac.com>
  2600 
  2601 	* graphics.h.in (text::properties::fontunits): Fix typo in list of
  2602 	possible values.
  2603 
  2604 2009-01-12  John W. Eaton  <jwe@octave.org>
  2605 
  2606 	* strfns.cc (Fstrvcat, Fchar): Use queue to avoid duplicate calls
  2607 	to all_strings.
  2608 
  2609 2009-01-12  Thorsten Meyer  <thorsten.meyier@gmx.de>
  2610 
  2611 	* strfns.cc (Fstrvcap): New function.
  2612 	
  2613 2008-11-29  Thorsten Meyer  <thorsten.meyier@gmx.de>
  2614 
  2615         * strfns.cc (Fchar, Fischar, Fstrncmp, Flist_in_columns):
  2616 	Improve documentation strings.  Add examples and tests.
  2617         
  2618 2009-01-12  Jaroslav Hajek  <highegg@gmail.com>
  2619 
  2620 	* ov-perm.cc (octave_perm_matrix::do_index_op): Return shallow copy
  2621 	when indexed by (:,:).
  2622 	* ov-base-mat.cc (octave_base_diag::do_index_op): Return shallow copy
  2623 	when indexed by (:,:). Optimize indexing equivalent to resizing.
  2624 	* data.cc: Fix tests.
  2625 	* mappers.cc: Fix tests.
  2626 
  2627 2009-01-12  Jaroslav Hajek  <highegg@gmail.com>
  2628 
  2629 	* ov-base-diag.h, ov-base-mat.h, ov-base-scalar.h, ov-base-sparse.h,
  2630 	ov-base.cc, ov-base.h, ov-perm.h, ov-range.h, ov.h: Add full_value
  2631 	methods to octave_value, octave_base_value and its relevant
  2632 	subclasses.
  2633 	* data.cc (Ffull): New DEFUN.
  2634 	* DLD-FUNCTIONS/sparse.cc (Ffull): move to data.cc.
  2635 2009-01-11  Jaroslav Hajek  <highegg@gmail.com>
  2636 	
  2637 	* ov.h (octave_value::is_copy_of): New method.
  2638 	* ov-struct.cc (numeric_conv): Add output parameter orig.
  2639 	(octave_struct::subsasgn): Temporarily erase duplicate lhs value prior
  2640 	to assignment.
  2641 
  2642 2009-01-11  Jaroslav Hajek  <highegg@gmail.com>
  2643 
  2644 	* oct-obj.cc (octave_value_list::all_scalars): New method.
  2645 	* oct-obj.h: Declare it.
  2646 	* ov-cell.cc (octave_cell::subsasgn): Disable assigning
  2647 	to non-scalar {}-indexed cell, unless in a multi-assignment.
  2648 
  2649 2009-01-10  Jaroslav Hajek  <highegg@gmail.com>
  2650 
  2651 	* DLD-FUNCTIONS/sparse.cc (Ffull): Convert diagonal & permutation
  2652 	matrices, leave other classes untouched.
  2653 
  2654 2009-01-09  Jaroslav Hajek  <highegg@gmail.com>
  2655 
  2656 	* OPERATORS/op-cdm-cdm.cc: Install missing widening op.
  2657 	* OPERATORS/op-dm-dm.cc: Ditto.
  2658 	* OPERATORS/op-fcdm-fcdm.cc: Ditto.
  2659 	* OPERATORS/op-fdm-fdm.cc: Ditto.
  2660 	* OPERATORS/op-pm-pm.cc: Ditto.
  2661 	* OPERATORS/op-fpm-fpm.cc: Ditto.
  2662 
  2663 2009-01-09  Jaroslav Hajek  <highegg@gmail.com>
  2664 
  2665 	* ov-cell.cc (octave_cell::subsasgn): Put erased copy back after
  2666 	make_unique has been called.
  2667 
  2668 2009-01-09  Kai Habel <kai.habel@gmx.de>
  2669 
  2670         * graphics.cc: Calculate normals for surface boundaries, use
  2671         more neighboring points to calculate interior normals
  2672 
  2673 2009-01-09  John W. Eaton  <jwe@octave.org>
  2674 
  2675 	* input.cc (get_user_input (void)): Don't increment input_line_number.
  2676 	* lex.l (xunput): New function.  Use it in place of yyunput
  2677 	anywhere a newline character may be put back on the input stream.
  2678 	Increment input_line_number in all rules that consume newlines
  2679 	characters.
  2680 	(text_yyinput): Increment input_line_number
  2681 	(fixup_column_count): Increment input_line_number.
  2682 	(prep_for_function): Set input_line_number to 1, not 0.
  2683 	(reset_parser): Set input_line_number to current_command_number,
  2684 	not current_command_number-1.
  2685 	(flex_stream_reader::ungetc): Call xunput, not yyunput.
  2686 	* parse.y (input_line_number): Initialize to 1, not 0.
  2687 	(text_getc): Increment input_line_number correctly.
  2688 	(stdio_stream_reader::ungetc): Decrement input_line_number if
  2689 	putting back a newline character.
  2690 	(parse_fcn_file): Set input_line_number to 1, not 0.
  2691 	(eval_string): Unwind-protect input_line_number and
  2692 	current_input_column.
  2693 
  2694 	* parse.y (make_statement): New function.
  2695 	(statement): Use it.
  2696 	(make_statement_list, append_statement_list): New functions.
  2697 	(simple_list1, list1): Use them.
  2698 
  2699 2009-01-08  Jaroslav Hajek  <highegg@gmail.com>
  2700 
  2701 	* ov-cell.cc (octave_cell::subsasgn): Erase duplicate lhs value 
  2702 	prior to assignment to avoid a redundant copy.
  2703 
  2704 2008-12-26  Thorsten Meyer  <thorsten.meyier@gmx.de>
  2705 
  2706 	* mappers.cc (Ftoascii), mappers.cc (Ftolower), mappers.cc
  2707 	(Ftoupper), DLD-FUNCTIONS/regexp.cc (Fregexp),
  2708 	DLD-FUNCTIONS/regexp.cc	(Fregexpi), DLD-FUNCTIONS/regexp.cc
  2709 	(Fregexprep): Add references.
  2710 	
  2711 2008-12-27  Jaroslav Hajek <highegg@gmail.com>
  2712 
  2713 	* oct-obj.h, oct-obj.cc (octave_value_list::valid_scalar_indices): Remove.
  2714 	* ov-base-diag.cc, ov-base-diag.h, ov-base-scalar.cc, ov-base.h,
  2715 	ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc, ov-bool-sparse.h,
  2716 	ov-bool.cc, ov-bool.h, ov-ch-mat.cc, ov-ch-mat.h, ov-colon.h,
  2717 	ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h,
  2718 	ov-cx-sparse.cc, ov-cx-sparse.h, ov-float.cc, ov-float.h,
  2719 	ov-flt-complex.cc, ov-flt-complex.h, ov-flt-cx-mat.cc,
  2720 	ov-flt-cx-mat.h, ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h,
  2721 	ov-perm.cc, ov-perm.h, ov-range.h, ov-re-mat.cc, ov-re-mat.h,
  2722 	ov-re-sparse.cc, ov-re-sparse.h, ov-scalar.cc, ov-scalar.h,
  2723 	ov-str-mat.cc, ov-str-mat.h, ov.h:
  2724 	Remove valid_as_scalar_index and valid_as_zero_index methods
  2725 	from octave_value, octave_base_value and all of its subclasses.
  2726 
  2727 2008-12-26  Francesco Potortì  <pot@gnu.org>
  2728 
  2729 	* data.cc (resize): Add cross reference to postpad.
  2730 
  2731 2008-12-25  Jaroslav Hajek <highegg@gmail.com>
  2732 
  2733 	* load-save.h (load_save_format_type, load_save_format_options): New
  2734 	enums.
  2735 	(load_save_format): Convert to a class.
  2736 	* load-save.cc (do_save(..., const octave_value&,...)): Use fmt.type
  2737 	in switch. Use options of LS_MAT_ASCII.
  2738 	(do_load, write_header): Use format.type in switch.
  2739 	* ls-mat-ascii.h (save_mat_ascii_data): Add tabs option.
  2740 	* ls-mat-ascii.cc (save_mat_ascii_data): Implement it.
  2741 
  2742 2008-12-24  Ben Abbott  <bpabbott@mac.com>
  2743 
  2744 	* DLD-FUNCTIONS/chol.cc: Compare results to 0 in tests.
  2745 	Delete spurious function calls in test block.
  2746 
  2747 2008-12-24  John W. Eaton  <jwe@octave.org>
  2748 
  2749 	* DLD-FUNCTIONS/eigs.cc: Use "testif HAVE_ARPACK" to skip tests if
  2750 	ARPACK is not available.
  2751 
  2752 	* Makefile.in (DLD_XSRC): Add eigs.cc to the list.
  2753 
  2754 	* load-save.cc (parse_save_options): Handle -double.
  2755 
  2756 2008-12-23  David Bateman  <dbateman@free.fr>
  2757 
  2758 	* DLD-FUNCTIONS/eigs.cc: New file.
  2759 	* Makefile.in (DLD_XSRC): Add it here.
  2760 
  2761 2008-12-22  David Bateman  <dbateman@free.fr>
  2762 
  2763 	* DLD-FUNCTIONS/__voronoi__.cc (F__voronoi__): Resize AtInf array
  2764 	before returning it.
  2765 
  2766 2008-12-12  David Bateman  <dbateman@free.fr>
  2767 
  2768 	* DLD-FUNCTIONS/chol.cc (Fcholinv): Add test.
  2769 
  2770 2008-12-12  Jaroslav Hajek  <highegg@gmail.com>
  2771 
  2772 	* ls-hdf5.cc (add_hdf5_data): Check for diagonal & permutation
  2773 	matrices and convert them to full prior to saving.
  2774 
  2775 2008-12-11  Jaroslav Hajek  <highegg@gmail.com>
  2776 	
  2777 	* ov-re-mat.cc (Fdouble): Handle diagonal & perm matrices. 
  2778 	* ov-flt-re-mat.cc (Fsingle): Handle diagonal & perm matrices. 
  2779 
  2780 2008-12-11  Jaroslav Hajek  <highegg@gmail.com>
  2781 
  2782 	* ov-base-diag.cc (octave_base_diag<DMT,MT>::subsasgn): New method.
  2783 	* ov-base-diag.h (octave_base_diag<DMT,MT>::subsasgn): Declare it.
  2784 	(octave_base_diag<DMT,MT>::chk_valid_scalar): New method decl.
  2785 
  2786 	* ov-re-diag.cc (octave_diag_matrix::chk_valid_scalar): New method
  2787 	override.
  2788 	* ov-re-diag.h: Declare it.
  2789 	* ov-flt-re-diag.cc (octave_float_diag_matrix::chk_valid_scalar): New
  2790 	method override.
  2791 	* ov-flt-re-diag.h: Declare it.
  2792 	* ov-cx-diag.cc (octave_complex_diag_matrix::chk_valid_scalar): New 
  2793 	method override.
  2794 	* ov-cx-diag.h: Declare it.
  2795 	* ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::chk_valid_scalar): 
  2796 	New method override.
  2797 	* ov-flt-cx-diag.h: Declare it.
  2798 
  2799 2008-12-10  Jaroslav Hajek  <highegg@gmail.com>
  2800 
  2801 	* DLD-FUNCTIONS/expm.cc: Remove.
  2802 	* Makefile.in: Update.
  2803 
  2804 2008-12-10  Jaroslav Hajek  <highegg@gmail.com>
  2805 
  2806 	* ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::empty_clone): Construct an
  2807 	empty matrix instead of zero.
  2808 
  2809 2008-12-07  Thorsten Meyer  <thorsten.meyier@gmx.de>
  2810 
  2811         * mappers.cc (Ftolower): Make lower alias of tolower, add tests
  2812         * mappers.cc (Ftoupper): Make upper alias of toupper, add tests
  2813 
  2814 2008-12-09  Jaroslav Hajek  <highegg@gmail.com>
  2815 
  2816 	* DLD-FUNCTIONS/balance.cc (Fbalance): Exploit the new AEPBAL functionality.
  2817 
  2818 2008-12-08  Jaroslav Hajek  <highegg@gmail.com>
  2819 	
  2820 	* xpow.cc ( xpow (const DiagMatrix& a, double b), 
  2821 	xpow (const DiagMatrix& a, const Complex& b), 
  2822 	xpow (const ComplexDiagMatrix& a, double b), 
  2823 	xpow (const ComplexDiagMatrix& a, const Complex& b), 
  2824 	xpow (const FloatDiagMatrix& a, float b), 
  2825 	xpow (const FloatDiagMatrix& a, const FloatComplex& b), 
  2826 	xpow (const FloatComplexDiagMatrix& a, float b), 
  2827 	xpow (const FloatComplexDiagMatrix& a, const FloatComplex& b)):
  2828 	New methods.
  2829 	* xpow.h: Declare them.
  2830 	* OPERATORS/op-dms-template.cc: Support diagonal matrix ^ scalar.
  2831 
  2832 2008-12-08  Jaroslav Hajek  <highegg@gmail.com>
  2833 
  2834 	* ov-re-diag.cc (octave_diag_matrix::save_binary,
  2835 	octave_diag_matrix::load_binary): New methods.
  2836 	* ov-re-diag.h: Declare them.
  2837 	* ov-flt-re-diag.cc (octave_float_diag_matrix::save_binary,
  2838 	octave_float_diag_matrix::load_binary): New methods.
  2839 	* ov-flt-re-diag.h: Declare them.
  2840 	* ov-cx-diag.cc (octave_complex_diag_matrix::save_binary,
  2841 	octave_complex_diag_matrix::load_binary): New methods.
  2842 	* ov-cx-diag.h: Declare them.
  2843 	* ov-flt-cx-diag.cc (octave_float_complex_diag_matrix::save_binary,
  2844 	octave_float_complex_diag_matrix::load_binary): New methods.
  2845 	* ov-flt-cx-diag.h: Declare them.
  2846 	* ov-perm.cc (octave_perm_matrix::save_binary,
  2847 	octave_perm_matrix::load_binary): New methods.
  2848 	* ov-perm.h: Declare them.
  2849 
  2850 2008-12-06  Jaroslav Hajek  <highegg@gmail.com>
  2851 
  2852 	* ov-fcn-handle.cc (octave_fcn_handle::load_binary): Call istream::get
  2853 	rather than istream::read to supply null terminating character.
  2854 
  2855 2008-10-29  Jaroslav Hajek  <highegg@gmail.com>
  2856 	* file-io.cc, gl-render.cc, load-save.cc, ls-hdf5.cc, ls-mat4.cc,
  2857 	ls-mat5.cc, ls-oct-binary.cc, mex.cc, oct.h, ov-base-int.cc,
  2858 	ov-bool-mat.cc, ov-bool-sparse.cc, ov-cell.cc, ov-class.cc,
  2859 	ov-cx-mat.cc, ov-cx-sparse.cc, ov-fcn-handle.cc, ov-fcn-inline.cc,
  2860 	ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-re-mat.cc, ov-re-sparse.cc,
  2861 	ov-str-mat.cc, ov-struct.cc, toplev.cc,
  2862 	DLD-FUNCTIONS/__lin_interpn__.cc, DLD-FUNCTIONS/amd.cc,
  2863 	DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/cellfun.cc,
  2864 	DLD-FUNCTIONS/colamd.cc, DLD-FUNCTIONS/gcd.cc,
  2865 	DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/regexp.cc,
  2866 	DLD-FUNCTIONS/symbfact.cc, DLD-FUNCTIONS/symrcm.cc: 
  2867 	Include oct-locbuf.h.
  2868 
  2869 2008-12-05  Jaroslav Hajek  <highegg@gmail.com>
  2870 
  2871 	* ov-base-diag.cc (save_ascii, load_ascii): Save natively.
  2872 	* ov-base-diag.h (load_ascii): Declare.
  2873 	* ov-perm.cc (save_ascii, load_ascii): Save natively.
  2874 	* ov-perm.h (load_ascii): Declare.
  2875 
  2876 
  2877 2008-12-04  Thorsten Meyer  <thorsten.meyier@gmx.de>
  2878 
  2879         * strfns.cc (Fchar): Add test from str2mat.m
  2880         
  2881 2008-12-04  Jaroslav Hajek  <highegg@gmail.com>
  2882 
  2883 	* ov.h (octave_value::is_perm_matrix): New method.
  2884 	* ov-base.h (octave_base_value::is_perm_matrix): New method.
  2885 	* ov-perm.h (octave_perm_matrix::is_perm_matrix): New method.
  2886 	* DLD-FUNCTIONS/inv.cc (Finv): Handle permutation matrices specially,
  2887 	compute rcond for diagonal matrices.
  2888 	* DLD-FUNCTIONS/det.cc (Fdet): Handle permutation & diagonal matrices
  2889 	specially.
  2890 
  2891 2008-12-03  Jaroslav Hajek  <highegg@gmail.com>
  2892 
  2893 	* ov-perm.h: New source.
  2894 	* ov-perm.cc: New source.
  2895 	* ov-flt-perm.h: New source.
  2896 	* ov-flt-perm.cc: New source.
  2897 	* ov-base-diag.cc (octave_base_diag<DMT, MT>::do_index_op):
  2898 	If subscripting an identity matrix by permutation(s), return a
  2899 	permutation matrix object.
  2900 	* ov.cc (octave_value::octave_value (const PermMatrix&)): New
  2901 	constructor.
  2902 	* ov.cc (octave_value::octave_value (const PermMatrix&)): Declare it.
  2903 	* op-cm-pm.cc: New source.
  2904 	* op-fcm-fpm.cc: New source.
  2905 	* op-fm-fpm.cc: New source.
  2906 	* op-fpm-fcm.cc: New source.
  2907 	* op-fpm-fm.cc: New source.
  2908 	* op-fpm-fpm.cc: New source.
  2909 	* op-m-pm.cc: New source.
  2910 	* op-pm-cm.cc: New source.
  2911 	* op-pm-m.cc: New source.
  2912 	* op-pm-pm.cc: New source.
  2913 	* op-pm-template.cc: New source.
  2914 	* Makefile.in: Include new sources.
  2915 	* DLD-FUNCTIONS/qr.cc (Fqr): Reflect interface changes of QR classes.
  2916 
  2917 2008-12-03  John W. Eaton  <jwe@octave.org>
  2918 
  2919 	* debug.cc (bp_table::do_get_breakpoint_list): Style fixes.
  2920 
  2921 2008-12-01  Jaroslav Hajek  <highegg@gmail.com>
  2922 
  2923 	* ov-base.h (octave_base_value::is_diag_matrix): New virtual method.
  2924 	* ops.h (CONCAT2, CONCAT3): New macros. Use CONCAT macros instead of 
  2925 	direct token pasting to avoid disabling argument prescan.
  2926 	* xdiv.cc, xdiv.h: Implement xdiv and xleftdiv overloads for diagonal
  2927 	and mixed dense-diagonal operands.
  2928 
  2929 	* ov-re-diag.h: New source.
  2930 	* ov-re-diag.cc: New source.
  2931 	* ov-flt-re-diag.h: New source.
  2932 	* ov-flt-re-diag.cc: New source.
  2933 	* ov-base-diag.h: New source.
  2934 	* ov-base-diag.cc: New source.
  2935 	* OPERATORS/op-m-dm.cc: New source.
  2936 	* OPERATORS/op-m-cdm.cc: New source.
  2937 	* OPERATORS/op-fm-fdm.cc: New source.
  2938 	* OPERATORS/op-fm-fcdm.cc: New source.
  2939 	* OPERATORS/op-fdm-fs.cc: New source.
  2940 	* OPERATORS/op-fdm-fm.cc: New source.
  2941 	* OPERATORS/op-fdm-fdm.cc: New source.
  2942 	* OPERATORS/op-fdm-fcs.cc: New source.
  2943 	* OPERATORS/op-fdm-fcm.cc: New source.
  2944 	* OPERATORS/op-fdm-fcdm.cc: New source.
  2945 	* OPERATORS/op-fcm-fdm.cc: New source.
  2946 	* OPERATORS/op-fcm-fcdm.cc: New source.
  2947 	* OPERATORS/op-fcdm-fs.cc: New source.
  2948 	* OPERATORS/op-fcdm-fm.cc: New source.
  2949 	* OPERATORS/op-fcdm-fdm.cc: New source.
  2950 	* OPERATORS/op-fcdm-fcs.cc: New source.
  2951 	* OPERATORS/op-fcdm-fcm.cc: New source.
  2952 	* OPERATORS/op-fcdm-fcdm.cc: New source.
  2953 	* OPERATORS/op-dms-template.cc: New source.
  2954 	* OPERATORS/op-dm-template.cc: New source.
  2955 	* OPERATORS/op-dm-s.cc: New source.
  2956 	* OPERATORS/op-dm-m.cc: New source.
  2957 	* OPERATORS/op-dm-dm.cc: New source.
  2958 	* OPERATORS/op-dm-cs.cc: New source.
  2959 	* OPERATORS/op-dm-cm.cc: New source.
  2960 	* OPERATORS/op-dm-cdm.cc: New source.
  2961 	* OPERATORS/op-cm-dm.cc: New source.
  2962 	* OPERATORS/op-cm-cdm.cc: New source.
  2963 	* OPERATORS/op-cdm-s.cc: New source.
  2964 	* OPERATORS/op-cdm-m.cc: New source.
  2965 	* OPERATORS/op-cdm-dm.cc: New source.
  2966 	* OPERATORS/op-cdm-cs.cc: New source.
  2967 	* OPERATORS/op-cdm-cm.cc: New source.
  2968 	* OPERATORS/op-cdm-cdm.cc: New source.
  2969 	* Makefile.in: Include them.
  2970 
  2971 	* ov-re-mat.cc (octave_matrix::diag): New method override.
  2972 	* ov-re-mat.h: Declare it.
  2973 	* ov-cx-mat.cc: Likewise with octave_complex_matrix.
  2974 	* ov-cx-mat.h: Likewise with octave_complex_matrix.
  2975 	* ov-flt-re-mat.cc: Likewise with octave_float_matrix.
  2976 	* ov-flt-re-mat.h: Likewise with octave_float_matrix.
  2977 	* ov-flt-cx-mat.cc: Likewise with octave_float_complex_matrix.
  2978 	* ov-flt-cx-mat.h: Likewise with octave_float_complex_matrix.
  2979 	* ov.cc (octave_value::octave_value (const DiagMatrix&))
  2980 	(octave_value::octave_value (const FloatDiagMatrix&))
  2981 	(octave_value::octave_value (const ComplexDiagMatrix&))
  2982 	(octave_value::octave_value (const FloatComplexDiagMatrix&)):
  2983 	Construct a diagonal matrix object.
  2984 	* data.cc (Fdiag): Support explicit dimensions. Fix tests.
  2985 	(Feye): Return diagonal matrix objects if possible. Fix tests.
  2986 	* mappers.cc (Freal, Fimag): Fix tests.
  2987 	* DLD-FUNCTIONS/inv.cc (Finv): Handle diagonal matrix objects.
  2988 	* ov-range.h (octave_range::diag): Declare only.
  2989 	* ov-range.cc (octave_range::diag): Return DiagMatrix if possible.
  2990 
  2991 2008-11-25  Jaroslav Hajek  <highegg@gmail.com>
  2992 	* ov.cc (octave_value::is_equal): New member function.
  2993 	* ov.h: Declare it.
  2994 	* pt-select.cc (tree_switch_case::label_matches): Call
  2995 	octave_value::is_equal.
  2996 
  2997 2008-12-04  Thomas Treichl  <Thomas.Treichl@gmx.net>
  2998 
  2999 	* DLD-FUNCTIONS/cellfun.cc: Added more tests for cellfun.
  3000 
  3001 2008-11-25  Jaroslav Hajek  <highegg@gmail.com>
  3002 
  3003 	* ov-base.h (octave_base_value::type_conv_info): New class.
  3004 	* ov-base.h, ov-bool-mat.cc, ov-bool-mat.h, ov-bool-sparse.cc,
  3005 	ov-bool-sparse.h, ov-bool.cc, ov-bool.h, ov-complex.cc, ov-complex.h,
  3006 	ov-cx-mat.cc, ov-cx-mat.h, ov-null-mat.cc, ov-null-mat.h,
  3007 	ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc,
  3008 	ov-scalar.h, ov-str-mat.cc, ov-str-mat.h, ov.h:
  3009 	Return type_conv_info instead of type_conv_fcn from
  3010 	numeric_conversion_function and numeric_demotion_function
  3011 	methods.
  3012 	* ov-base.cc (octave_base_value::numeric_assign): Try biased conversion
  3013 	first if possible.
  3014 	* ov.cc (do_binary_op): Likewise. Also, search recursively.
  3015 	* ov.cc (do_cat_op): Likewise.
  3016 
  3017 2008-11-24  David Bateman  <dbateman@free.fr>
  3018 
  3019 	* graphics.cc (F__go_delete__): Check validity of handles before
  3020 	deleting them to avoid issues with callback function also deleting
  3021 	the handles.
  3022 	
  3023 2008-11-21  John Swensen  <jpswensen@comcast.net> 
  3024 
  3025 	* debug.cc (bp_table::do_get_breakpoint_list): Avoid modifying
  3026 	bp_map while iterating over it.
  3027 
  3028 2008-11-21  Jarkko Kaleva  <d3roga@gmail.com>
  3029 
  3030 	* DLD-FUNCTIONS/eig.cc (Feig): Handle generalized eigenvalues and 
  3031 	eigenvectors.
  3032 
  3033 2008-11-19  Jaroslav Hajek  <highegg@gmail.com>
  3034 
  3035 	* DLD_FUNCTIONS/det.cc: Include only DET.h. Retrieve & matrix type &
  3036 	store it after calculation if possible.
  3037 
  3038 2008-11-17  John W. Eaton  <jwe@octave.org>
  3039 
  3040 	* load-path.cc (load_path::dir_info::update): Simplify previous
  3041 	change.
  3042 
  3043 	* load-path.h (load_path::dir_info::abs_dir_name): New data member.
  3044 	(load_path::dir_info::dir_info, load_path::dir_info::operator =):
  3045 	Copy abs_dir_name.
  3046 	(load_path::abs_dir_cache_type, load_path::dir_cache_iterator,
  3047 	load_path::const_dir_cache_iterator): New typedefs.
  3048 	(load_path::abs_dir_cache): New static data member.
  3049 	(load_path::dir_info:dir_info): New constructor.
  3050 	* load-path.cc (load_path::abs_dir_cache): Define new static data
  3051 	member.
  3052 	(load_path::dir_info::update): Look in abs_dir_cache for relative
  3053 	directory names.
  3054 	(load_path::dir_info::initialize): Update abs_dir_cache here.
  3055 
  3056 2008-11-13  John W. Eaton  <jwe@octave.org>
  3057 
  3058 	* ov-int8.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-uint8.h,
  3059 	ov-uint16.h, ov-uint32.h, ov-uint64.h: Don't define
  3060 	OCTAVE_INT_NDARRAY_T.
  3061 	* ov-intx.h (class OCTAVE_VALUE_INT_MATRIX_T,
  3062 	class OCTAVE_VALUE_INT_SCALAR_T): Use intNDArray<OCTAVE_INT_T>
  3063 	instead of OCTAVE_INT_NDARRAY_T.
  3064 	(OCTAVE_VALUE_INT_MATRIX_T::increment,
  3065 	OCTAVE_VALUE_INT_MATRIX_T::decrement,
  3066 	OCTAVE_VALUE_INT_SCALAR_T::increment,
  3067 	OCTAVE_VALUE_INT_SCALAR_T::decrement): Convert 1 to OCTAVE_INT_T.
  3068 
  3069 2008-11-15  Thorsten Meyer  <thorsten.meyier@gmx.de>
  3070 
  3071         * strfns.cc (Fchar): adapt to conserve empty strings, add tests
  3072         
  3073 2008-11-12  Michael Goffioul  <michael.goffioul@gmail.com>
  3074 
  3075 	* dirfcn.cc (Ffilesep): Make it return all file separators when 'all'
  3076 	is given as argument.
  3077 
  3078 	* DLD-FUNCTIONS/getrusage.cc: Undefine min/max.
  3079 	* TEMPLATE-INST/Array-os.cc: Declare Array<bool> as extern template.
  3080 
  3081 2008-11-12  David Bateman  <dbateman@free.fr>
  3082 
  3083 	* OPERATORS/op-cell.cc (op_catop_matrix_cell): Cast args in the correct
  3084 	order.
  3085 	* OPERATORS/op-struct.cc (op_catop_matrix_struct): Ditto.
  3086 
  3087 2008-11-11  Jaroslav Hajek <highegg@gmail.com>
  3088 
  3089 	* pt-assign.cc: Fix handling of empty cs-lists in assignment LHS.
  3090 
  3091 2008-11-11  John W. Eaton  <jwe@octave.org>
  3092 
  3093 	* lex.l (<MATRIX_START>{S}+): Don't insert separator if next token
  3094 	is a separator.
  3095 
  3096 	* parse.y (F__parser_debug_flag__): New function.
  3097 
  3098 2008-10-31  Jaroslav Hajek <highegg@gmail.com>
  3099 
  3100 	* xnorm.cc: New source.
  3101 	* xnorm.h: New header file.
  3102 	* Makefile.in: Include xnorm.cc in the build process.
  3103 	* data.cc (Fnorm): Call xnorm, xcolnorms, xrownorms or xfrobnorm
  3104 	to do the actual work.
  3105 
  3106 
  3107 2008-10-31  David Bateman  <dbateman@free.fr>
  3108 
  3109 	* ov-base-scalar.h (octave_value octave_base_scalar::reshape 
  3110 	(const dim_vector&) const): New method.
  3111 
  3112 2008-10-30  John W. Eaton  <jwe@octave.org>
  3113 
  3114 	* oct-map.cc (Octave_map::index): Copy key_list.
  3115 
  3116 2008-10-31  David Bateman  <dbateman@free.fr>
  3117 
  3118 	* graphics.h.in (void image::init (void)): Add a constraint for
  3119 	logical cdata.
  3120 	
  3121 	* graphics.h.in (base_property::delete_listener): New method.
  3122 	(property::delete_listener): New method.
  3123 	(base_graphics_object::delete_listener): New method.
  3124 	(base_graphics_object::delete_property_listener): New method.
  3125 	(base_graphics_object::remove_all_listeners): New method.
  3126 	(graphics_object::delete_property_listener): New method.
  3127 	(axes::set_defaults): Call remove_all_listeners.
  3128 	* graphics.cc (void base_properties::delete_listener): New method
  3129 	(void base_graphics_object::remove_all_listeners (void)): New method
  3130 	(Fdellistener): New command to remove listener functions associated
  3131 	with a property.
  3132 	
  3133 2008-10-30  David Bateman  <dbateman@free.fr>
  3134 
  3135 	* graphics.h.in (axes::properties): Add keyreverse property.
  3136 	* graphics.cc (axes::properties::set_defaults): Initialize
  3137 	keyreverse property.
  3138 
  3139 2008-10-28  Jaroslav Hajek <highegg@gmail.com>
  3140 
  3141 	* Cell.h (Cell::assign (const Array<idx_vector>&, ...),
  3142 	Cell::delete_elements (const Array<idx_vector>&, ...)):
  3143 	New member functions.
  3144 	* Cell.cc (Cell::assign (const octave_value_list&, ...),
  3145 	Cell::delete_elements (const octave_value_list&, ...)):
  3146 	Call Array<T>::assign.
  3147 	* DLD-FUNCTIONS/dlmread.cc: Call Array<T>::resize_fill.
  3148 	* ov-base-mat.cc (octave_base_matrix::assign): Call Array<T>::assign.
  3149 	(octave_base_matrix::delete_elements):: Call Array<T>::delete_elements.
  3150 	* ov-cell.cc (Fcell): Call Array<T>::chop_trailing_singletons,
  3151 	simplify.
  3152 	* ov-cx-mat.cc (octave_complex_matrix::assign): Call Array<T>::assign.
  3153 	* ov-flt-cx-mat.cc (octave_float_complex_matrix::assign): Call
  3154 	Array<T>::assign.
  3155 	* ov-list.cc (octave_list::subsasgn): Call Array<T>::assign.
  3156 	* pr-output.cc (PRINT_ND_ARRAY): Use zero-based indices.
  3157 
  3158 
  3159 2008-10-29  Thorsten Meyer  <thorsten.meyier@gmx.de>
  3160 
  3161 	* data.cc (Fcolumns): Remove "and" from @seealso string.
  3162 	* mappers.cc (Fgamma, Flgamma): Replace @seealso reference to
  3163 	deprecated gammai by gammainc.
  3164 	* DLD-FUNCTIONS/sqrtm.cc (Fsqrtm): Remove reference to Octave
  3165 	Forge function funm.
  3166 	* DLD-FUNCTIONS/qz.cc (Fqz): removed @seealso reference to Octave
  3167 	Forge function dare.
  3168 	* DLD-FUNCTIONS/rcond.cc (Frcond): removed @seealso reference to
  3169 	mldivide.
  3170 	* debug.cc (Fdbstop): Fix @seealso references and function name in
  3171 	docstring of dbnext.
  3172 	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Remove @seealso reference
  3173 	to isclass.
  3174 	* syscalls.cc (Fwaitpid): Replace WCONTINUED by WCONTINUE.
  3175 	* oct-hist.cc (Fhistory_size, Fsaving_history): Fix @seealso
  3176 	references to history_timestamp_format_string.
  3177 	* DLD-FUNCTIONS/luinc.cc (Fluinc): Remove reference to missing
  3178 	function cholinc.
  3179         
  3180 2008-10-29  Jaroslav Hajek  <highegg@gmail.com>
  3181 
  3182 	* DLD-FUNCTIONS/qr.cc (Fcholinsert, Fcholdelete, Fcholshift): Fix
  3183 	inline docs.
  3184 
  3185 2008-10-28  John W. Eaton  <jwe@octave.org>
  3186 
  3187 	* parse.y (finish_function): Clear local variables in function scope.
  3188 	* symtab.h (symbol_table::clear_variables): New argument, scope.
  3189 
  3190 2008-10-28  Brian Gough  <bjg@gnu.org>
  3191 
  3192 	* DLD-FUNCTIONS/besselj.cc: Added tests.
  3193 
  3194 2008-10-23  John W. Eaton  <jwe@octave.org>
  3195 
  3196 	* oct-hist.c (initialize_history): New arg, read_history_file)
  3197 	* oct-hist.h: Fix decl.
  3198 	* octave.cc (octave_main): Set read_history_file to false if
  3199 	--no-history option is specified.  Pass read_history_file to
  3200 	initialize_history.
  3201 
  3202 	* DLD-FUNCTIONS/fltk_backend.cc: Update initialization comment.
  3203 
  3204 2008-10-22  John W. Eaton  <jwe@octave.org>
  3205 
  3206 	* DLD-FUNCTIONS/fltk_backend.cc (figure_manager::do_close_all):
  3207 	Rename from close_all.  Now private.
  3208 	(figure_manager::do_new_window): Rename from new_window.
  3209 	Now private.
  3210 	(figure_manager::do_delete_window): Rename from delete_window.
  3211 	Now private.
  3212 	(figure_manager::do_mark_modified): Rename from mark_modified.
  3213 	Now private.
  3214 	(figure_manager::do_get_size): Rename from get_size.  Now private.
  3215 	(figure_manager::close_all, figure_manager::do_new_window, 
  3216 	figure_manager::do_delete_window,
  3217 	figure_manager::do_mark_modified, figure_manager::do_get_size):
  3218 	New static functions.
  3219 	(figure_manager::instance_ok): New function.
  3220 	(figure_manager::Instance): Delete.  Eliminate all uses in favor
  3221 	of static methods that call instance_ok and forward to private
  3222 	member functions.
  3223 	(figure_manager::instance): New static data member.
  3224 	(figure_manager::hnd2idx, figure_manager::figprops2idx,
  3225 	figure_manager::figprops2idx, figure_manager::str2idx): Now static.
  3226 
  3227 	* DLD-FUNCTIONS/fltk_backend.cc (figure_manager::default_size):
  3228 	Increase default window size.
  3229 
  3230 	* graphics.cc (figure::properties::remove_child): New function.
  3231 	* graphics.h.in: Provide decl.
  3232 
  3233 	* gl-render.cc (opengl_renderer::draw): Get all children.
  3234 
  3235 	* DLD-FUNCTIONS/fltk_backend.cc (__fltk_redraw__):
  3236 	Check for "root" object, not "root_figure".
  3237 
  3238 	* graphics.h.in (base_properties::get_all_children): New function.
  3239 
  3240 2008-10-22  David Bateman  <dbateman@free.fr>
  3241 
  3242 	* graphics.h.in (line::properties, surface::properties): Add data
  3243 	source properties.
  3244 
  3245 2008-10-21  John W. Eaton  <jwe@octave.org>
  3246 
  3247 	* graphics.h.in (axes::properties::delete_children): Delete decl.
  3248 
  3249 	* graphics.h.in (gh_manager::is_handle_visible): New function.
  3250 	(axes::properites): Move title property after label properties.
  3251 	(graphics_object::is_handle_visible): New function.
  3252 	(base_properties::is_handle_visible): New function.
  3253 	(base_properties): Mark children property with G.
  3254 	* graphics.cc (axes::properties::set_text_child): New function.
  3255 	(axes::properties::set_title, axes::properties::set_xlabel,
  3256 	axes::properties::set_ylabel, axes::properties::set_zlabel): Use it.
  3257 	(base_property::get_children): New function.  Only
  3258 	return handles that are visible.
  3259 	(axes::properties::delete_text_child): Set handlevisibility to
  3260 	"off" for newly created object and add it to the list of children.
  3261 	Call base_properties::remove_child on previous handle value.
  3262 	(axes::properties::set_defaults): Don't explicitly delete xlabel,
  3263 	ylabel, zlabel, and title handles.  Reinitialize them after
  3264 	deleting children.
  3265 	(axes::properties::remove_child): Don't explicitly delete xlabel,
  3266 	ylabel, zlabel, and title handles.
  3267 	(axes::properties::init): Move here from graphics.h.in.  Set
  3268 	handlevisibility to "off" for xlabel, ylabel, zlabel, and title
  3269 	and add them to the list of children.
  3270 	(axes::properties::delete_children): Delete.
  3271 
  3272 	* genprops.awk: Allow whitespace between BEGIN_PROPERTIES and
  3273 	opening paren.  Accept optional second argument for graphics
  3274 	object name.
  3275 	* graphics.h.in (root_figure properties): Pass "root" as second
  3276 	arg to BEGIN_PROPERTIES.
  3277 
  3278 2008-10-16  John W. Eaton  <jwe@octave.org>
  3279 
  3280 	* graphics.cc (make_handle_fraction): New static function.
  3281 	(gh_manager::get_handle): Use it.
  3282 	(gh_manager::do_free): Call make_handle_fraction to replace
  3283 	fractional part of non-figure handles.
  3284 
  3285 	* graphics.cc (base_properties::remove_child): Handle children as
  3286 	a column vector instead of a row vector.
  3287 
  3288 	* utils.cc (Fis_absolute_filename, Fis_rooted_relative_filename,
  3289 	Fmake_absolute_filename, Ffind_dir_in_path): New functions.
  3290 
  3291 2008-10-16  David Bateman  <dbateman@free.fr>
  3292 
  3293 	* graphics.cc (void axes::properties::set_defaults 
  3294 	(base_graphics_object&,	const std::string&)): Preserve font
  3295 	and position properties if the axis is "replaced".
  3296 
  3297 2008-10-16  John W. Eaton  <jwe@octave.org>
  3298 
  3299 	* graphics.h.in (class axes::properties): New property: interpreter.
  3300 
  3301 2008-10-15  David Bateman  <dbateman@free.fr>
  3302 
  3303 	* ov-class.c (Fsuperiorto, Finferiorto): Allow more than one class
  3304 	to be defined at a time.
  3305 
  3306 2008-10-12  David Bateman  <dbateman@free.fr>
  3307 
  3308 	* pt-colon.cc (octave_value tree_colon_expression::make_range 
  3309 	(const octave_value&, const octave_value&, const octave_value&)):
  3310 	Treating class overloading of colon operator.
  3311 	(octave_value tree_colon_expression::rvalue (void)): Ditto.
  3312 
  3313 2008-10-10  John W. Eaton  <jwe@octave.org>
  3314 
  3315 	* graphics.h.in (base_properties::adopt): Place new child at front
  3316 	of list, not end.  Make list of children a column vector instead
  3317 	of a row vector.
  3318 
  3319 	* graphics.cc (gh_manager::do_free): Set the beingdeleted
  3320 	property, then delete the children, then execute the deletefcn.
  3321 	(axes::properties::set_defaults, axes::properties::remove_child,
  3322 	axes::properites::delete_children): Call delete_text_child to
  3323 	manage the title, xlabel, ylabel, and zlabel properties.
  3324 	(axes::properties::get_title, axes::properties::get_xlabel,
  3325 	axes::properties::get_ylabel, axes::properties::get_zlabel): Delete.
  3326 
  3327 	* graphics.h.in (axes::properites::title,
  3328 	axes::properites::xlabel, axes::properites::ylabel,
  3329 	axes::properites::zlabel): No longer mutable.  Don't generate
  3330 	factory default values or custom get functions for these
  3331 	properties.
  3332 
  3333 	* graphics.cc (axes::properties::delete_text_child): New function.
  3334 	* graphics.h.in: Provide decl.
  3335 
  3336 	* graphics.h.in (graphics_object::type): New function.
  3337 
  3338 2008-10-10  David Bateman  <dbateman@free.fr>
  3339 
  3340 	* graphics.h.in (radio_property axes::properties::__colorbar__):
  3341 	Delete.
  3342 	* graphics.cc (void axes::properties::sync_positions (void)):
  3343 	Disable code synchronizing outerposiiton and position.
  3344 	(void axes::properties::set_defaults (base_graphics_object&,
  3345 	const std::string&): Remove __colorbar__.
  3346 	(F__go_delete__): Don't delete if already being deleting to avoid
  3347 	recursion in callback functions.
  3348 	(F__go_axes_init__): Flag error if handle is deleted during
  3349 	initialization due.
  3350 	
  3351 2008-10-09  David Bateman  <dbateman@free.fr>
  3352 
  3353 	* ov-class.cc (Octave_map octave_class::map_value (void) const): 
  3354 	Remove.
  3355 	(bool octave_class::save_ascii (std::ostream&), 
  3356 	bool octave_class::load_ascii (std::istream&),
  3357 	bool octave_class::save_binary (std::ostream&, bool&),
  3358 	bool octave_class::save_binary (std::ostream&, bool&),
  3359 	bool octave_class::save_hdf5 (hid_t, const char *, bool),
  3360 	bool octave_class::load_hdf5 (hid_t, const char *, bool)):
  3361 	Allow saving and reloading of classes.
  3362 	* ov-class. (Octave_map octave_class::map_value (void) const): 
  3363 	Remove.
  3364 	* ls-mat.cc (std::string read_mat5_binary_element (std::istream&, 
  3365 	const std::string&, bool, bool&, octave_value&), 
  3366 	int save_mat5_element_length (const octave_value&, const std::string&,
  3367 	bool, bool)): Allow saving and loading of classes. 
  3368 	* ls-oct-ascii.h (template <class T> bool extract_keyword 
  3369 	(std::istream&, const char *, T&, const bool)): Initialize value with
  3370 	null constructor rather than 0.
  3371 	
  3372 2008-10-07  David Bateman  <dbateman@free.fr>
  3373 
  3374 	* graphics.cc (F__go_delete__): Allow arrays of graphic handles.
  3375 
  3376 2008-10-01  Jaroslav Hajek <highegg@gmail.com>
  3377 
  3378 	* OPERATORS/op-i64-i64.cc: Instantiate all 64-bit operations.
  3379 	* OPERATORS/op-ui64-ui64.cc: Instantiate all unsigned 64-bit operations.
  3380 
  3381 2008-10-06  John W. Eaton  <jwe@octave.org>
  3382 
  3383 	* ov-type-conv.h (octave_type_conv_body): Avoid shadow warning
  3384 	from GCC.
  3385 
  3386 2008-10-06  David Bateman  <dbateman@free.fr>
  3387 
  3388 	* graphics.cc (static bool is_handle (const octave_value&)): Delete.
  3389 	(static octave_value is_handle (const octave_value&)): New function.
  3390 
  3391 2008-10-03  Jaroslav Hajek  <highegg@gmail.com>
  3392 
  3393 	* Cell.cc (Cell::delete_elements): Don't pass second arg to
  3394 	Array<T>::maybe_delete_elements.
  3395 	* ov-base-mat.cc (octave_base_matrix<MT>::delete_elements): Ditto.
  3396 
  3397 2008-10-02  Jaroslav Hajek  <highegg@gmail.com>
  3398 
  3399 	* Cell.h (Cell::delete_elements): Declare new member function.
  3400 	* Cell.h (Cell::delete_elements): Define it.
  3401 	* oct-map.cc (Octave_map::maybe_delete_elements): Call delete_elements
  3402 	instead of assign with empty Cell.
  3403 
  3404 2008-10-02  John W. Eaton  <jwe@octave.org>
  3405 
  3406 	* pt-arg-list.cc (tree_argument_list::convert_to_const_vector):
  3407 	Don't insert undefined elements in return list.
  3408 
  3409 2008-09-30  Jaroslav Hajek  <highegg@gmail.com>
  3410 
  3411 	* ov-str-mat.h (octave-char-matrix-str::assign): Remove declaration.
  3412 	* ov-str-mat.cc (octave-char-matrix-str::assign): Remove definition.
  3413 
  3414 2008-09-30  John W. Eaton  <jwe@octave.org>
  3415 
  3416 	* DLD-FUNCTIONS/__magick_read__.cc: Only define
  3417 	magick_to_octave_value if HAVE_MAGICK is defined.
  3418 
  3419 2008-09-29  John W. Eaton  <jwe@octave.org>
  3420 
  3421 	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::load_class_method):
  3422 	Call load_class_constructor if name and dispatch_type are the same.
  3423 
  3424 2008-09-29  David Bateman  <dbateman@free.fr>
  3425 
  3426 	* symtab.cc (octave_value symbol_table::find_function 
  3427 	(const std::string&, tree_argument_list *, const string_vector&,
  3428 	octave_value_list&, bool&)): If first character of function name
  3429 	is "@" then look for class specific method.
  3430 
  3431 2008-09-26  John W. Eaton  <jwe@octave.org>
  3432 
  3433 	* symtab.cc (out_of_date_check_internal):
  3434 	Fix order of arguments in call to load_path::find_method.
  3435 
  3436 2008-09-26  David Bateman  <dbateman@free.fr>
  3437 
  3438 	* ov-class.h (idx_vector index_vector (void) const): Declare new
  3439 	maethod.
  3440 	* ov-class.cc (idx_vector index_vector (void) const): Define new
  3441 	method.
  3442 	* (Fismethod): New function.
  3443 
  3444 2008-09-26  John W. Eaton  <jwe@octave.org>
  3445 
  3446 	* DLD-FUNCTIONS/urlwrite.cc (urlwrite_cleanup_file) New function.
  3447 	(urlwrite_delete_file, urlwrite_filename): New static variables.
  3448 	(Furlwrite): Only return filename if urlget succeeds.  Use
  3449 	unwind_protect to delete files we create if download fails.
  3450 
  3451 2008-09-26  Jaroslav Hajek  <highegg@gmail.com>
  3452 
  3453 	* ov-null-mat.h: New header file.
  3454 	* ov-null-mat.cc: New source.
  3455 	* ov.h (octave_value::is_null_value, octave_value::non_null_value,
  3456 	octave_value::make_non_null_value):
  3457 	Declare new member functions.
  3458 	* ov.cc (octave_value:non_null_value, octave_value::make_non_null_value): 
  3459 	Define them.
  3460 	(octave_value::assign (assign_op op, const octave_value& rhs)): 
  3461 	(register_types): Register null types.
  3462 	Call non_null_value ().
  3463 	* oct-obj.cc (octave_value_list::normalize_null_values): New member
  3464 	function. 
  3465 	* oct-obj.h (octave_value_list::normalize_null_values): Declare it.
  3466 	* ov-base.h (is_null_value): New virtual member function.
  3467 	* ops.h (NULLASSIGNOPDECL, DEFNULLASSIGNOP_FN): New macros.
  3468 	* ov-base-mat.cc (octave_base_mat<MT>::delete_elements): New member func.
  3469 	* ov-base-mat.h: Declare it.
  3470 	* ov-base-sparse.cc (octave_base_sparse<MT>::delete_elements): New member func.
  3471 	* ov-base-sparse.h: Declare it.
  3472 	* ov-cell.cc (octave_cell:subsasgn): Handle null values.	
  3473 	* ov-struct.cc (octave_cell:subsasgn): Handle null values.
  3474 	* ov-builtin.cc (octave_builtin::do_multi_index_op): Normalize return
  3475 	values.
  3476 	* pt-misc.cc (tree_parameter_list::define_from_arg_vector): Call
  3477 	octave_lvalue::define instead of octave_lvalue::assign.
  3478 	* pt-decl.h (tree_decl_elt::rvalue): Call non_null_value ().
  3479 	* OPERATORS/op-int.h (OCTAVE_INT_NULL_ASSIGN_OPS,
  3480 	OCTAVE_INSTALL_INT_NULL_ASSIGN_OPS): New macros.
  3481 	* OPERATORS/op-m-m.cc: Install & define assignment & conversion operators.
  3482 	* OPERATORS/op-bm-bm.cc: Ditto.
  3483 	* OPERATORS/op-cell.cc: Ditto.
  3484 	* OPERATORS/op-cm-cm.cc: Ditto.
  3485 	* OPERATORS/op-cs-cs.cc: Ditto.
  3486 	* OPERATORS/op-fcm-fcm.cc: Ditto.
  3487 	* OPERATORS/op-fcs-fcs.cc: Ditto.
  3488 	* OPERATORS/op-fm-fm.cc: Ditto.
  3489 	* OPERATORS/op-fs-fs.cc: Ditto.
  3490 	* OPERATORS/op-int.h: Ditto.
  3491 	* OPERATORS/op-m-m.cc: Ditto.
  3492 	* OPERATORS/op-range.cc: Ditto.
  3493 	* OPERATORS/op-s-s.cc: Ditto.
  3494 	* OPERATORS/op-scm-scm.cc: Ditto.
  3495 	* OPERATORS/op-sm-sm.cc: Ditto.
  3496 	* OPERATORS/op-str-str.cc: Ditto.
  3497 	* OPERATORS/op-i16-i16.cc: Ditto.
  3498 	* OPERATORS/op-i32-i32.cc: Ditto.
  3499 	* OPERATORS/op-i64-i64.cc: Ditto.
  3500 	* OPERATORS/op-i8-i8.cc: Ditto.
  3501 	* OPERATORS/op-ui16-ui16.cc: Ditto.
  3502 	* OPERATORS/op-ui32-ui32.cc: Ditto.
  3503 	* OPERATORS/op-ui64-ui64.cc: Ditto.
  3504 	* OPERATORS/op-ui8-ui8.cc: Ditto.
  3505 
  3506 2008-09-25  David Bateman  <dbateman@free.fr>
  3507 
  3508 	* pt-mat.cc (class tm_row_const): Add any_class test
  3509 	(class tm_const): Ditto.
  3510 	(octave_value tree_matrix::rvalue (void)): If any object to
  3511 	concatenate is a class object, dispatch to the appropriate
  3512 	vertcat/horzcat function.
  3513 
  3514 2008-09-25  John W. Eaton  <jwe@octave.org>
  3515 
  3516 	* symtab.cc (symbol_table::do_find): Don't set evaluated_args and
  3517 	args_evaluated here, prior to call to symbol_table::fcn_info::find.
  3518 
  3519 2008-09-24  Søren Hauberg  <hauberg@gmail.com>
  3520 
  3521 	* DLD-FUNCTIONS/__magick_read__.cc (magick_to_octave_value): New
  3522 	template function with specializations for various
  3523 	GraphicsMagick++ types.
  3524 	(F__magick_finfo__): New function.
  3525 
  3526 2008-09-24  John W. Eaton  <jwe@octave.org>
  3527 
  3528 	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
  3529 	Add symbol_table::clear_variables cleanup function to the
  3530 	unwind_protect stack after the parameter list cleanup functions.
  3531 
  3532 	* load-path.cc (load_path::do_initialize): Check for OCTAVE_PATH
  3533 	in the environment, not OCTAVE_LOADPATH.
  3534 
  3535 2008-09-24  Thomas Weber  <thomas.weber.mail@gmail.com>
  3536 
  3537 	* DLD-FUNCTIONS/regexp.cc (octregexp_list): Retry if match limit
  3538 	is exceeded.
  3539 
  3540 2008-09-24  John W. Eaton  <jwe@octave.org>
  3541 
  3542 	* genprops.awk (emit_declarations): Emit call to set_mode before
  3543 	updaters.
  3544 
  3545 2008-09-23  John W. Eaton  <jwe@octave.org>
  3546 
  3547 	* pt-arg-list.cc (F__end__): Dispatch to user-defined end
  3548 	function for classes if one is defined.
  3549 	* lex.l (is_keyword_token): Allow "end" as a functon name.
  3550 
  3551 2008-09-23  David Bateman  <dbateman@free.fr>
  3552 
  3553 	* variables.cc (static octave_value do_who (int, const string_vector&,
  3554 	bool, bool, std::string): Add final message argument and simple
  3555 	treatment of the "-file" option.
  3556 
  3557 2008-09-22  David Bateman  <dbateman@free.fr>
  3558 
  3559 	* debug.cc (static octave_user_code * get_user_code 
  3560 	(const std::string&)): Only check user code as break points can't
  3561 	be set in builtins or oct-files.
  3562 	(bp_table::intmap bp_table::do_remove_all_breakpoints_in_file 
  3563 	(const std::string&, bool)): Add flag to silence the error message 
  3564 	from this function if a user code with breakpoints is not found.
  3565 	(bp_table::fname_line_map bp_table::do_get_breakpoint_list (const 
  3566 	octave_value_list&)): Do an ourt of date check on the function
  3567 	before checking the breakpoints.
  3568 	* debug.h (do_remove_all_breakpoints_in_file, 
  3569 	remove_all_breakpoints_in_file): Add flag to silence error
  3570 	message.
  3571 	* symtab.cc (out_of_date_check_internal): Clear breakpoints in
  3572 	function if out_of_date. split into two versions taking the 
  3573 	octave_function pointer seperately or not.
  3574 	* symtab.h (bool out_of_date_check (octave_function*)): New function.
  3575 	
  3576 2008-09-18  David Bateman  <dbateman@free.fr>
  3577 
  3578 	* DLD-FUNCTIONS/fftw.cc (Ffftw): Clarify the documentation.
  3579 
  3580 2008-09-17  Krzesimir Nowak  <qdlacz@gmail.com>
  3581 
  3582 	* debug.cc (Fisdebugmode): New function.
  3583 
  3584 2008-09-17  David Bateman  <dbateman@free.fr>
  3585 
  3586 	* data.cc (do_cat): Chopping trailing singleton dimensions.
  3587 
  3588 	* data.cc (SINGLE_TYPE_CONCAT, DO_SINGLE_TYPE_CONCAT): New macros
  3589 	(do_cat): Special case single type concatenations for speed.
  3590 	* pt.mat.cc (std::string get_concat_class (const std::string&,
  3591 	const std::string&), void maybe_warn_string_concat (bool, bool)):
  3592 	Remove static declaration.
  3593 	* pt-mat.h (std::string get_concat_class (const std::string&,
  3594 	const std::string&), void maybe_warn_string_concat (bool, bool)):
  3595 	Define extern here.
  3596 	
  3597 	* DLD-FUNCTIONS/sparse.cc (Fsparse): Clarify the help string.
  3598 
  3599 2008-09-10  John W. Eaton  <jwe@octave.org>
  3600 
  3601 	* octave.cc (octave_main): Make all command-line arguments
  3602 	available to startup scripts and PKG_ADD files.
  3603 
  3604 2008-09-09  David Bateman  <dbateman@free.fr>
  3605 
  3606 	* DLD-FUNCTIONS/regexp.cc (octregexp_list): Distinguish between
  3607 	matlab named tokens and perl lookbehind expressions. For
  3608 	lookbehind expression replace "*" and "+" with a limited number of
  3609 	fixed length expressions to simulate arbitrary length look behind.
  3610 
  3611 2008-09-08  Michael Goffioul  <michael.goffioul@gmail.com>
  3612 
  3613 	* DLD-FUNCTIONS/__magick_read__.cc (encode_uint_image): Resolve "pow"
  3614 	ambiguity.
  3615 
  3616 	* graphics.cc (base_properties::get_dynamic,
  3617 	base_properties::set_dynamic, base_propertyes::get_property_dynamic):
  3618 	Add the 3rd template parameter to std::map, corresponding to all_props
  3619 	field.
  3620 
  3621 2008-09-08  John W. Eaton  <jwe@octave.org>
  3622 
  3623 	* ls-oct-ascii.cc (std::string extract_keyword (std::istream&,
  3624 	const char *, const bool)): Also accept \r as line ending character.
  3625 	* ls-oct-ascii.h (template <class T> bool extract_keyword
  3626 	(std::istream&, const char *, T&, const bool)): Likewise.
  3627 	(template <class T> bool extract_keyword (std::istream&, const
  3628 	string_vector&, std::string&, T&, const bool)): Likewise.
  3629 
  3630 2008-09-03  Ben Abbott  <bpabott@mac.com>
  3631 
  3632 	* mappers.cc: Use eps(single) as tolerance for single precesion test.
  3633 
  3634 2008-09-03  John W. Eaton  <jwe@octave.org>
  3635 
  3636 	* variables.cc (mlock): Lock current function on the call stack.
  3637 	(Fmlock): Lock caller.
  3638 
  3639 	* symtab.cc (out_of_date_check_internal): If dispatch type is set,
  3640 	check for method.  If that fails, check for regular function. 
  3641 
  3642 2008-09-02  Michael Goffioul  <michael.goffioul@gmail.com>
  3643 
  3644 	* graphics.cc (hggroup::update_axis_limits): Also reacts on
  3645 	[xyzac]liminclude changes.
  3646 
  3647 2008-08-31  Michael Goffioul  <michael.goffioul@gmail.com>
  3648 
  3649 	* DLD-FUNCTIONS/fltk_backend.cc (fltk_backend::redraw_figure,
  3650 	fltk_backend::print_figure): Change graphics_handle argument to
  3651 	graphics_object.
  3652 
  3653 2008-08-29  David Bateman  <dbateman@free.fr>
  3654 
  3655 	* src/graphics.cc: Replace int by octave_idx_type in multiple
  3656 	places.
  3657 	(array_property::is_equal): In macro CHECK_ARRAY_EQUAL, special
  3658 	case scalar case and keep copy of array value to avoid early
  3659 	destruction of converted array values.
  3660 	
  3661 2008-08-28  David Bateman  <dbateman@free.fr>
  3662 
  3663 	* graphics.h.in (root_figure::properties::showhiddenhandles):
  3664 	New property.
  3665 
  3666 2008-08-27  Jaroslav Hajek  <highegg@gmail.com>
  3667 
  3668 	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Initialize output vectors 
  3669 	by NA value.
  3670 
  3671 2008-08-26 Ben Abbott  <bpabott@mac.com>
  3672 
  3673 	* mappers.cc: Adjust tolerance for single precesion tests.
  3674 
  3675 	* DLD-FUNCTIONS/chol.cc: Double tolerance.
  3676 
  3677 2008-08-26  Jaroslav Hajek  <highegg@gmail.com>
  3678 
  3679 	* parse.y (Fassignin): Use default  scope when calling varref.
  3680 
  3681 2008-08-26  Michael Goffioul  <michael.goffioul@gmail.com>
  3682 
  3683 	* genprops.awk (emit_declarations): Call updaters/listeners only when
  3684 	'set' method returned true.
  3685 	* graphics.h.in (base_property::set, base_property::do_set):
  3686 	Return bool value.
  3687 	(property::set): Likewise.
  3688 	(string_property::do_set): Check value change and return bool value.
  3689 	(radio_property::do_set, double_property::do_set,
  3690 	array_property::do_set): Likewise.
  3691 	(color_property::do_set, double_radio_property::do_set,
  3692 	row_vector_property::do_set, bool_property::do_set,
  3693 	handle_property::do_set): Return bool value.
  3694 	(any_property::do_set, callback_property::do_set): Return always true.
  3695 	(color_values::operator==, color_values::operator!=): Add.
  3696 	(array_property::is_equal): Add.
  3697 	* graphics.cc (base_property::set): Executes listeners/notifiers only
  3698 	when do_set returns true. Return bool value.
  3699 	(color_property::do_set, double_radio_property::do_set): Check value
  3700 	change and return bool value.
  3701 	(array_property::is_equal): Add.
  3702 
  3703 	* genprops.awk (emit_declarations, emit_source): Change code emission
  3704 	when emitting base_properties code (base is 1).
  3705 	(BEGIN): Initialize pcount to 0.
  3706 	(BEGIN_PROPERTIES): Initialize base to 0.
  3707 	(BEGIN_BASE_PROPERTIES): New statement.
  3708 	(main): Add support for 'f' modifier. Add support for non xxx_property
  3709 	typed properties.
  3710 	* graphics.h.in (base_properties::base_properties): Remove
  3711 	implementation.
  3712 	(base_properties::get_tag, base_properties::get_parent,
  3713 	base_properties::get_type, base_properties::get___myhandle__,
  3714 	base_properties::get_busyaction, base_properties::get_buttondownfcn,
  3715 	base_properties::is_clipping, base_properties::get_clipping,
  3716 	base_properties::execute_createfcn, base_properties::get_createfcn,
  3717 	base_properties::execute_deletefcn, base_properties::get_deletefcn,
  3718 	base_properties::get_handlevisibility, base_properties::is_hittest,
  3719 	base_properties::get_hittest, base_properties::is_interruptible,
  3720 	base_properties::get_interruptible, base_properties::is_selected,
  3721 	base_properties::get_selected, base_properties::is_selectionhighlight,
  3722 	base_properties::get_selectionhighlight,
  3723 	base_properties::get_uicontextmenu, base_properties::get_userdata,
  3724 	base_properties::is_visible, base_properties::get_visible,
  3725 	base_properties::is_beingdeleted, base_properties::get_beingdeleted,
  3726 	base_properties::set_busyaction, base_properties::set_buttondownfcn,
  3727 	base_properties::set_clipping, base_properties::set_createfcn,
  3728 	base_properties::set_deletefcn, base_properties::set_handlevisibility,
  3729 	base_properties::set_hittest, base_properties::set_interruptible,
  3730 	base_properties::set_selected,
  3731 	base_properties::set_selectionhighlight,
  3732 	base_properties::set_uicontextmenu, base_properties::set_userdata,
  3733 	base_properties::set_visible, base_properties::set_beingdeleted,
  3734 	base_properties::get_children): Remove (now auto-generated).
  3735 	(base_properties::enum): Likewise.
  3736 	(base_properties::is_modified): Call is___modified__.
  3737 	(base_properties::set_modified): Call set___modified__.
  3738 	(base_properties::set_children): Add.
  3739 	(base_properties::set_dynamic, base_properties::get_dynamic,
  3740 	base_properties::get_property_dynamic): New methods.
  3741 	(class base_properties): Surround properties declaration with
  3742 	BEGIN_BASE_PROPERTIES/END_PROPERTIES pair.
  3743 	* graphics.cc (base_properties::get, base_properties::set,
  3744 	base_properties::get_property): Remove (now auto-generated).
  3745 	(base_properties::set_dynamic, base_properties::get_dynamic,
  3746 	base_properties::get_property_dynamic): New methods.
  3747 	(base_properties::set_children): Likewise.
  3748 
  3749 	* DLD_FUNCTIONS/fltk_backend.cc (F__fltk_redraw__): Make static.
  3750 	(F__init_fltk__): Protect from mutliple invocations.
  3751 	(F__remove_fltk__): Likewise.
  3752 	(F__init_fltk__): Register input event hook.
  3753 	(F__remove_fltk__): Unregister input event hook.
  3754 
  3755 	* DLD_FUNCTIONS/fltk_backend.cc (fltk_backend::close_figure): Remove.
  3756 	(fltk_backend::object_destroyed, fltk_backend::property_changed): New
  3757 	methods.
  3758 	* genprops.awk (emit_declarations): Generate "enum" property fields.
  3759 	(emit_sources): Emit set_id calls.
  3760 	* graphics.h.in (base_property::id): New field.
  3761 	(base_property::base_property): Initialize it.
  3762 	(base_property::get_id, base_property::set_id): Add accessors.
  3763 	(property::get_id, property::set_id): Likewise.
  3764 	(base_graphics_backend::close_figure, graphics_backend::close_figure):
  3765 	Remove methods.
  3766 	(base_graphics_backend::redraw_figure,
  3767 	base_graphics_backend::print_figure, graphics_backend::redraw_figure,
  3768 	graphics_backend::print_figure): Change graphics_handle argument into
  3769 	graphics_object.
  3770 	(base_graphics_backend::property_changed,
  3771 	base_graphics_backend::object_created,
  3772 	base_graphics_backend::object_destroyed,
  3773 	graphics_backend::property_changed, graphics_backend::object_created,
  3774 	graphics_backend::object_destroyed): New signature with
  3775 	graphics_object argument.
  3776 	(base_properties::base_properties): Add set_id calls.
  3777 	(class base_properties): Add "enum" property fields.
  3778 	(root_figure::properties::remove_child): Add overloaded method.
  3779 	(figure::properties::close): Remove.
  3780 	(figure::properties::set_backend): Call object_destroyed instead of
  3781 	close.
  3782 	(figure::~figure): Remove close call.
  3783 	(figure::properties::get_title): New method.
  3784 	* graphics.cc (base_property::set): Call property_changed only for
  3785 	valid id (>=0); Use graphics_object argument.
  3786 	(gh_manager::do_free): Call object_destroyed with graphics_object
  3787 	argument.
  3788 	(base_graphics_backend::property_changed,
  3789 	base_graphics_backend::object_created,
  3790 	base_graphics_object::object_destroyed): Implement wrappers for
  3791 	graphics_handle argument case.
  3792 	(gnuplot_backend::close_figure): Remove.
  3793 	(gnuplot_backend::object_destroyed,
  3794 	gnuplot_backend::property_changed): New methods.
  3795 	(gnuplot_backend::redraw_figure, gnuplot_backend::print_figure):
  3796 	Change graphics_handle argument to graphics_object.
  3797 	(root_figure::properties::remove_child): Add.
  3798 	(figure::properties::close): Remove.
  3799 	(figure::properties::set_position): Do not call set_figure_position.
  3800 	(figure::properties::get_title): New method.
  3801 	(gh_manager::do_make_graphics_handle): Call object_created with
  3802 	a graphics_object argument.
  3803 	(gh_manager::do_make_figure_handle): Likewise.
  3804 	(Fdrawnow): Call redraw_figure and print_figure with a graphics_object
  3805 	argument.
  3806 
  3807 2008-08-26  Maciek Gajewski <maciej.gajewski0@gmail.com>
  3808 
  3809 	* graphics.h.in (base_property::set): Remove inline implementation.
  3810 	(base_graphics_backend::property_changed,
  3811 	base_graphics_backend::object_created,
  3812 	base_graphics_backend::object_destroyed): New method.
  3813 	(graphics_backend::property_changed, graphics_backend::object_created,
  3814 	graphics_backend::object_destroyed): Likewise.
  3815 	* graphics.cc (base_property::set): Moved from header file.
  3816 	(gh_manager::do_free): Add backend notification.
  3817 	(gh_manager::do_make_graphics_handle): Likewise.
  3818 	(gh_manager::do_make_figure_handle): Likewise.
  3819 
  3820 2008-08-25  Thomas L. Scofield  <scofield@calvin.edu>
  3821 
  3822 	* DLD-FUNCTIONS/__magick_read__.cc: Untabify.
  3823 	(jpg_settings, encode_bool_image, encode_uint_image, encode_map):
  3824 	New functions.
  3825 	(write_image): Use them to handle various image types.
  3826 
  3827 2008-08-25  David Bateman  <dbateman@free.fr>
  3828 
  3829 	* graphics.cc (void gh_manager::do_execute_callback 
  3830 	(const graphics_handle&, const octave_value&, const
  3831 	octave_value&)): Don't pass the function handle as first arg of
  3832 	property listener functions
  3833 
  3834 	* graphics.h.in (class base_properties): Add functor for caseless
  3835 	string comparison. Use it in the property map, so that user added
  3836 	properties are found in a case insensitive fashion.
  3837 
  3838 2008-08-22  John W. Eaton  <jwe@octave.org>
  3839 
  3840 	* symtab.h (symbol_table::inherit): Pass reference to symbol table
  3841 	to do_inherit instead of scope.
  3842 	(symbol_table::do_inherit): First arg is now reference to
  3843 	symbol_table, not scope id.  Insert all variables from donor scope.
  3844 
  3845 2008-08-21  Thomas Treichl  <Thomas.Treichl@gmx.net>
  3846 	
  3847 	* mappers.cc: Increase test script tolerance.
  3848 
  3849 2008-08-20  John W. Eaton  <jwe@octave.org>
  3850 
  3851 	* help.cc (builtin_help): Go to next symbol name on error.
  3852 	(do_type, do_which): Omit separate path search for files.
  3853 	(help_from_symbol_table): Only insert Texinfo markup if it looks
  3854 	like the help message is already in Texinfo.
  3855 
  3856 2008-08-19  David Bateman  <dbateman@free.fr>
  3857 
  3858 	* load-path.cc (load-path::do_find_dir (const std:string&) const)):
  3859 	Method to find a directory on the load-path corresponding to the
  3860 	argument.
  3861 	* load-path.h (load-path::do_find_dir (const std:string&) const),
  3862 	load-path::find_dir (const std::string&) const): New methods.
  3863 	* utils.cc (std::string contents_file_in_path (const std::string&)):
  3864 	New function.
  3865 	* utils.h  (std::string contents_file_in_path (const std::string&)): 
  3866 	Declare it.
  3867 	* help.cc (static bool raw_help_from_file (const std::string&,
  3868 	std::string&, std::string&, bool&)): Also check is requested
  3869 	argument is a directory and contains the file Contents.m.
  3870 
  3871 	* OPERATORS/op-int-conv.cc (DEFINTCONVFN): New macro that warn
  3872 	for integer conversion issues. Use it to replace DEFCONVFN.
  3873 	* OPERATORS/op-int.h (DEFINTBINOP_OP, DEFINTNDBINOP_OP,
  3874 	DEFINTBINOP_FN, DEFINTNDBINOP_FN): New macros that warn for
  3875 	integer truncation issues. Use them to replace the corresponding
  3876 	macros in the integer arithmetic macros. Update other integer
  3877 	arithmetic functions that don't use these macros individually.
  3878 	* error.cc (initialize_default_warning_state (void)): Initialize
  3879 	the default warning state for the integer warnings to be off.
  3880 	* gripes.cc (void gripe_binop_integer_math_truncated (const char *,
  3881 	const char *, const char *), void gripe_unop_integer_math_truncated
  3882 	(const char *, const char *), void gripe_non_integer_conversion
  3883 	(const char *, const char *), void gripe_nan_conversion (const char *,
  3884 	const char *)): Warning functions for integer conversion and math
  3885 	issues.
  3886 	* gripes.h (void gripe_binop_integer_math_truncated (const char *,
  3887 	const char *, const char *), void gripe_unop_integer_math_truncated
  3888 	(const char *, const char *), void gripe_non_integer_conversion
  3889 	(const char *, const char *), void gripe_nan_conversion (const char *,
  3890 	const char *)): Declare them.
  3891 	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::convert_gripe,
  3892 	OCTAVE_VALUE_INT_SCALAR_T::convert_gripe): Adapt for new means of
  3893 	flagging integer truncation.
  3894 	(OCTAVE_VALUE_INT_MATRIX_T::decrement,
  3895 	OCTAVE_VALUE_INT_MATRIX_T::increment,
  3896 	OCTAVE_VALUE_INT_SCALAR_T::decrement,
  3897 	OCTAVE_VALUE_INT_SCALAR_T::increment): Check for integer
  3898 	truncation.
  3899 	* ov.cc (convert_to_int_array): Adapt for new means of
  3900 	flagging integer truncation.
  3901 
  3902 2008-08-19  Jaroslav Hajek  <highegg@gmail.com>
  3903 
  3904 	* pt-assign.h (tree_simple_assignment::first_execution): New
  3905 	member field.
  3906 	(tree_simple_assignment::first_execution): Ditto.
  3907 	* pt-assign.cc (tree_simple_assignment::tree_simple_assignment):
  3908 	Initialize first_execution.
  3909 	(tree_multi_assignment::tree_multi_assignment): Ditto.
  3910 	(tree_simple_assignment::rvalue): Check for obsolete built-in
  3911 	variables only at first execution.
  3912 	(tree_multi_assignment::rvalue): Ditto.
  3913 
  3914 	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Checks whether LB and UB are
  3915 	of proper size.
  3916 
  3917 	* oct-obj.cc, oct-obj.h (octave_value_list::make_argv): 
  3918 	Allow calling without fcn_name.
  3919 	* load-save.cc (parse_save_options (const string_vector&, ...)): 
  3920 	Return string_vector with parsed arguments removed instead.
  3921 	(parse_save_options (const std::string&, ...)):	Ditto.
  3922 	(Fsave): Fix calls to parse_save_options.
  3923 
  3924 2008-08-19  John W. Eaton  <jwe@octave.org>
  3925 
  3926 	* parse.y (Feval): Return value produced by evaluating CATCH string.
  3927 
  3928 2008-08-12  John W. Eaton  <jwe@octave.org>
  3929 
  3930 	* pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue):
  3931 	Call stash_parent_function_scope for user function.
  3932 	* ov-fcn-inline.cc (octave_fcn_inline::octave_fcn_inline): 
  3933 	Likewise.
  3934 
  3935 	* ov-struct.cc (octave_struct::subsref): Don't allow resizing for
  3936 	simple x(idx) case.
  3937 
  3938 2008-08-07  John W. Eaton  <jwe@octave.org>
  3939 
  3940 	* ov.cc (octave_value::idx_type_value): Don't include default
  3941 	argument values in definition.
  3942 
  3943 	* src/glrender.h, src/zfstream.h: Don't include config.h.
  3944 
  3945 	* oct-errno.h: Include <cerrno>.
  3946 
  3947 	* Cell.cc, DLD-FUNCTIONS/regexp.cc, DLD-FUNCTIONS/dlmread.cc,
  3948 	debug.cc, error.cc, file-io.cc, graphics.cc, help.cc, input.cc,
  3949 	lex.l, load-path.cc, load-save.cc, ls-mat-ascii.cc,
  3950 	ls-oct-ascii.cc, oct-stream.cc, octave.cc, variables.cc,
  3951 	ov-fcn-handle.cc, parse.y, pr-output.cc, symtab.cc, sysdep.cc,
  3952 	utils.cc, graphics.h.in: Replace all uses of NPOS with
  3953 	std::string::npos.
  3954 
  3955 	* ov.cc (octave_value::idx_type_value): Move definition here.
  3956 	* ov.h: From here.
  3957 
  3958 	* DLD-FUNCTIONS/fsolve.cc (override_options): Don't fail if
  3959 	options_map does not contain an expected keyword.
  3960 	Fix typo in warning identifier.
  3961 	(make_unimplemented_options): Use CamelCase names here.
  3962 
  3963 2008-08-06  Søren Hauberg  <hauberg@gmail.com>
  3964 
  3965 	* error.cc (Ferror): Update format of error messages in exmple.
  3966 	* parse.y: (Feval): Likewise.
  3967 
  3968 2008-08-06  John W. Eaton  <jwe@octave.org>
  3969 
  3970 	* DLD-FUNCTIONS/fsolve.cc (hybrd_info_to_fsolve_info):
  3971 	Update INFO values to be compatible with Matlab's current fsolve.
  3972 	(make_unimplemented_options, override_options): New functions.
  3973 	(Ffsolve): Handle optimset options.  Update doc string.
  3974 
  3975 	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op,
  3976 	octave_user_script::do_multi_index_op):
  3977 	Call octave_call_stack::backtrace_error_message.
  3978 	* toplev.h (octave_call_stack::do_pop): Don't call
  3979 	backtrace_error_message here.
  3980 	* toplev.cc, toplev.h (octave_call_stack::do_backtrace_error_message):
  3981 	Rename from octave_call_stack::backtrace_error_message.
  3982 	* toplev.h (octave_call_stack::backtrace_error_message):
  3983 	New public static function. 
  3984 
  3985 2008-08-05  John W. Eaton  <jwe@octave.org>
  3986 
  3987 	* gripes.cc (gripe_truncated_conversion,
  3988 	gripe_logical_conversion): Don't declare as extern here.
  3989 	* utils.cc (octave_format, octave_vformat): Likewise.
  3990 	* pr-output.cc (octave_print_internal (std::ostream&, const Cell&,
  3991 	bool, int, bool)): Likewise.
  3992 
  3993 	* toplev.cc (octave_call_stack::backtrace_error_message): New
  3994 	function.
  3995 	* toplev.h: Provide decl.
  3996 	(octave_call_stack::do_pop): Call backtrace_error_message if
  3997 	error_state is nonzero.
  3998 
  3999 	* pt-unop.cc (tree_prefix_expression::eval_error, 
  4000 	tree_postfix_expression::eval_error): Delete.  Eliminate all uses.
  4001 	* pt-unop.h: Delete decls.
  4002 
  4003 	* pt-select.cc (tree_switch_case::eval_error,
  4004 	tree_switch_command::eval_error): Delete.  Eliminate all uses.
  4005 	(tree_if_command::eval): Omit "evaluating if command" message.
  4006 	* pt-select.h: Delete decls.
  4007 
  4008 	* pt-loop.cc (tree_while_command::eval_error,
  4009 	tree_complex_for_command::eval_error,
  4010 	tree_simple_for_command::eval_error,
  4011 	tree_do_until_command::eval_error): Delete.  Eliminate all uses.
  4012 	* pt-loop.h: Delete decls.
  4013 
  4014 	* pt-exp.cc (tree_expression::is_logically_true): Omit "evaluating
  4015 	conditional expression" error message.
  4016 
  4017 	* pt-decl.cc (tree_global_command::eval): Omit "evaluating global
  4018 	command" error message.
  4019 	(tree_static_command::eval): Omit "evaluating static command"
  4020 	error message.
  4021 
  4022 	* pt-colon.cc (tree_colon_expression::eval_error): Omit
  4023 	"evaluating colon expression" error message.
  4024 	* pt-colon.h (tree_colon_expression::eval_error): Eliminate
  4025 	default argument value.
  4026 
  4027 	* pt-idx.cc (tree_index_expression::eval_error): Delete.
  4028 	Eliminate all uses.
  4029 	* pt-idx.h: Delete decl.
  4030 
  4031 	* pt-binop.cc (tree_binary_expression::eval_error): Delete.
  4032 	* pt-binop.cc, pt-cbinop.cc: Eliminate all uses of eval_error.
  4033 	* pt-binop.h: Delete decl.
  4034 
  4035 	* pt-assign.cc (tree_simple_assignment::eval_error,
  4036 	tree_multi_assignment::eval_error): Delete.  Eliminate all uses.
  4037 	* pt-assign.h: Delete decls.
  4038 
  4039 	* ov-usr-fcn.cc (octave_user_script::traceback_error,
  4040 	octave_user_function::traceback_error): Delete.  Eliminate all uses.
  4041 	* ov-usr-fcn.h: Delete decls.
  4042 
  4043 	* ov-builtin.cc (octave_builtin::do_multi_index_op): Call
  4044 	gripe_library_exectuion_error on octave_execution_exception.
  4045 	* ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Likewise.
  4046 	* ov.cc (do_binary_op, do_cat_op, do_unary_op,
  4047 	do_non_const_unary_op): Likewise.
  4048 	* pt-stmt.cc (tree_statement::eval): Likewise.
  4049 
  4050 	* gripes.cc (gripe_library_execution_error): New function.
  4051 	* gripes.h: Provide decl.
  4052 
  4053 	* dirfns.cc (Fpathsep): Fix usage of dir_path::path_sep_str.
  4054 	* defaults.cc (set_exec_path, set_image_path): Likewise.
  4055 	* load-path.h (load_path::set_command_line_path): Likewise.
  4056 	* load-path.cc (maybe_add_path_elts, load_path::do_initialize,
  4057 	load_path::do_path, genpath, Fpath): Likewise.
  4058 	(split_path): Fix usage of dir_path::path_sep_char.
  4059 
  4060 2008-08-04  John W. Eaton  <jwe@octave.org>
  4061 
  4062 	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_autoload):
  4063 	Fix usage of file_ops::dir_sep_chars.
  4064 	* variables.cc (looks_like_struct):
  4065 	Likewise.
  4066 	* ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise.
  4067 	* octave.cc (execute_command_line_file): Likewise.
  4068 	* ls-mat5.cc (read_mat5_binary_element): Likewise.
  4069 	* load-save.cc (find_file_to_load): Likewise.
  4070 	* load-path.cc (load_path::do_find_file): Likewise.
  4071 	* graphics.cc (drawnow): Likewise.
  4072 	* parse.y (frob_function): Likewise.
  4073 
  4074 	* octave.cc (initialize_pathsearch): Fix usage of
  4075 	file_ops::dir_sep_str.
  4076 	* help.cc (Flookfor): Likewise.
  4077 	* dirfns.cc (Ffilesep): Likewise.
  4078 	(Fautoload): Likewise.
  4079 
  4080 	* defaults.cc (subst_octave_home): Fix usage of
  4081 	file_ops::dir_sep_char.
  4082 	(Fmfilename): Likewise.
  4083 
  4084 2008-07-31  John W. Eaton  <jwe@octave.org>
  4085 
  4086 	* parse.y (assign_lhs): Call force_local_variable on all elements
  4087 	of lexer_flags.pending_local_variables here, then clear the set.
  4088 	(matrix): Clear lexer_flags.pending_local_variable here.
  4089 	* lex.l (lexical_feedback::init): Clear it.
  4090 	(force_local_variable): No longer static.
  4091 	(is_variable): Also return true for names in the
  4092 	lexer_flags.pending_local_variables.
  4093 	(handle_identifier): If we are parsing a matrix list, mark
  4094 	identifiers as pending local variables rather than forcing them to
  4095 	be local variables immediately.
  4096 	* lex.h (lexical_feedback::pending_local_variables): New data member.
  4097 	(force_local_variable): Provide decl.
  4098 
  4099 2008-07-30  John W. Eaton  <jwe@octave.org>
  4100 
  4101 	* ov-intx.h, ov.cc: Style fixes.
  4102 
  4103 	* gripes.cc (gripe_truncated_conversion): Use the warning ID
  4104 	Octave:int-convert-overflow.
  4105 
  4106 2008-07-30  Jaroslav Hajek  <highegg@gmail.com>
  4107 
  4108 	* gripes.cc (gripe_truncated_conversion): New function.
  4109 	* gripes.h (gripe_truncated_conversion): Declare it.
  4110 	* ops.h (DEFCONVFNX2): New macro.
  4111 	(DEFCONVFN, DEFCONVFN2): Call DEFCONVFNX2 instead of DEFCONVFNX.
  4112 	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::convert_gripe): New member
  4113 	function.
  4114 	(OCTAVE_VALUE_INT_MATRIX_T::int*_array_value): Call convert_gripe.
  4115 	(OCTAVE_VALUE_INT_SCALAR_T::convert_gripe): New member function.
  4116 	(OCTAVE_VALUE_INT_SCALAR_T::int*_scalar_value): Call convert_gripe.
  4117 	(OCTAVE_VALUE_INT_SCALAR_T::int*_array_value): Call int*_scalar_value.
  4118 	* ov.cc (convert_to_int_array): New function.
  4119 	(int_vector_value): Call convert_to_int_array.
  4120 
  4121 2008-07-30  John W. Eaton  <jwe@octave.org>
  4122 
  4123 	* defun-dld.h (DEFUNX_DLD): Eliminate fsname arg.
  4124 	* defun-int.h (DEFINE_FUN_INSTALLER_FUN2,
  4125 	DEFINE_FUN_INSTALLER_FUN3, DEFINE_FUNX_INSTALLER_FUN2): Delete.
  4126 	(DEFINE_FUNX_INSTALLER_FUN): Rename from DEFINE_FUNX_INSTALLER_FUN3.
  4127 	Don't emit fsname function.  Don't append cxx_abi to gname.
  4128 	(DEFINE_FUN_INSTALLER_FUN): Define in terms of
  4129 	DEFINE_FUNX_INSTALLER_FUN, not DEFINE_FUN_INSTALLER_FUN2.
  4130 	* dynamic-ld.cc (octave_dynamic_loader::name_mangler,
  4131 	octave_dynamic_loader::name_uscore_mangler): New functions.
  4132 	(octave_dynamic_loader::mangle_name,
  4133 	octave_dynamic_loader::xmangle_name): Delete.
  4134 	(octave_dynamic_loader::do_load_oct): Search for function with
  4135 	name_mangler then name_uscore_mangler.
  4136 
  4137 	* oct-stream.cc (do_read): New arg, do_NA_conv.
  4138 	Perform NA translation if do_NA_conv is true.
  4139 	(DO_READ_VAL_TEMPLATE, read_fptr): Include the new arg for do_read
  4140 	in decl.
  4141 	(octave_stream::read): Pass do_NA_conv to do_read.
  4142 
  4143 2008-07-29  David Bateman  <dbateman@free.fr>
  4144 
  4145 	* data.cc (FNA): Add tests for conversion of single to double NA
  4146 	values.
  4147 
  4148 	* ov-flt-re-mat.cc (Fsingle): Documentation fix.
  4149 
  4150 2008-07-28  David Bateman  <dbateman@free.fr>
  4151 
  4152 	* error.cc (last_error_id, last_error_message, last_warning_id,
  4153 	last_warning_message): New functions to return the error/warning
  4154 	message and id without exposing the internal values.
  4155 	* error.h  (last_error_id, last_error_message, last_warning_id,
  4156 	last_warning_message): Declare them.
  4157 	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Use them to pass the error
  4158 	to the ErrorHandler function.
  4159 	
  4160 2008-07-28  John W. Eaton  <jwe@octave.org>
  4161 
  4162 	* error.cc (Flasterror, Flasterr): Unwind-protect error_state.
  4163 
  4164 	* DLD-FUNCTIONS/__magick_read__.cc (F__magick_write__, write_image):
  4165 	New functions.
  4166 
  4167 2008-07-25  John W. Eaton  <jwe@octave.org>
  4168 
  4169 	* DLD-FUNCTIONS/det.cc (Fdet): Return calculated determinant for
  4170 	numerically singular matrices, not 0.
  4171 
  4172 	* symtab.cc (get_dispatch_type): New function.
  4173 	(symbol_table::fcn_info::fcn_info_rep::find): Use it.
  4174 
  4175 	* ov-class.cc (set_class_relationship): Delete static function.
  4176 	(Fsuperiorto, Finferiorto): Warn about precedence conflicts.
  4177 	Call symbol_table::set_class_relationship instead of local static
  4178 	function.
  4179 	* symtab.h (symbol_table::class_precedence_table): New data member.
  4180 	(symbol_table::set_class_relationship, symbol_table::is_superiorto):
  4181 	New static functions.
  4182 
  4183 2008-07-24  John W. Eaton  <jwe@octave.org>
  4184 
  4185 	* load-path.h (load_path::dir_info::class_info): New struct.
  4186 	(load_path::dir_info::method_file_map_type): Now a map from
  4187 	class name to a to a class_info object.  Change all uses.
  4188 	* load-path.cc (load_path::dir_info::get_method_file_map):
  4189 	Also look for private functions in the class directory.
  4190 	(load_path::add_to_method_map): Also add private functions from
  4191 	class directories to private_fcn_map.
  4192 
  4193 	* dirfns.cc (Fmkdir): If directory already exists, return status =
  4194 	true, but also set error message.
  4195 
  4196 2008-07-23  John W. Eaton  <jwe@octave.org>
  4197 
  4198 	* ov-usr_fcn.cc (octave_user_function::do_multi_index_op):
  4199 	Don't unwind_protect and set curr_parent_function here.
  4200 	* toplev.cc (curr_parent_function): Delete definition.
  4201 	* toplev.h: (curr_parent_function): Delete declaration.
  4202 
  4203 	* ov-usr-fcn.h (octave_user_function::parent_scope): New data member.
  4204 	(octave_user_function::parent_fcn_scope,
  4205 	octave_user_function::stash_parent_fcn_scope): New functions.
  4206 	* ov-usr_fcn.cc (octave_user_function::octave_user_function):
  4207 	Initialize parent_scope.
  4208 	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find):
  4209 	Check parent of current function by looking at call stack, not
  4210 	global curr_parent_function variable.
  4211 	* parse.y (frob_function): If parsing nested function, stash
  4212 	current parent function scope.
  4213 	* ov-fcn.h (octave_function::parent_fcn_scope): New virtual function.
  4214 
  4215 2008-07-22  Michael Goffioul  <michael.goffioul@gmail.com>
  4216 
  4217 	* graphics.cc (F__go_execute_callback__): New function.
  4218 
  4219 	* DLD-FUNCTIONS/fltk_backend.cc: Undefine min/max after FLTK headers
  4220 	inclusion.
  4221 
  4222 	* graphics.h.in (class base_graphics_event, class graphics_event): New
  4223 	classes (replace gh_manager::event_data).
  4224 	(class gh_manager::event_data): Remove.
  4225 	(gh_manager::post_function, gh_manager::do_post_function): Use
  4226 	graphics_event::event_fcn type.
  4227 	(gh_manager::event_queue, gh_manager::do_post_event): Use
  4228 	graphics_event type.
  4229 	* graphics.cc (class callback_event, class function_event, class
  4230 	set_event): Renamed from xxx_data classes.
  4231 	(graphics_event::create_callback_event,
  4232 	graphics_event::create_function_event,
  4233 	graphics_event::create_set_event): Renamed from gh_manager::xxx
  4234 	equivalent methods, removed reference count increment.
  4235 	(gh_manager::do_post_event): Likewise.
  4236 	(gh_manager::do_post_event): Use graphics_event type.
  4237 	(gh_manager::do_post_function): Use graphics_event::event_fcn type.
  4238 
  4239 2008-07-22  John W. Eaton  <jwe@octave.org>
  4240 
  4241 	* version.h (OCTAVE_VERSION): Now 3.1.51+.
  4242 
  4243 2008-07-21  John W. Eaton  <jwe@octave.org>
  4244 
  4245 	* version.h (OCTAVE_VERSION): Now 3.1.51.
  4246 	(OCTAVE_RELEASE_DATE): Now 2008-07-21.
  4247 
  4248 	* ov-class.cc (octave_class::subsasgn): Only do internal magic if
  4249 	rhs is not an octave_class object.
  4250 
  4251 	* OPERATORS/op-struct.cc: Define concatenation operators for
  4252 	struct/matrix concatenation (valid if matrix is empty).
  4253 	* OPERATORS/op-cell.cc (install_cell_ops): Likewise, for cells.
  4254 
  4255 	* DLD-FUNCTIONS/fltk_backend.cc: Don't include oct.h.
  4256 	Make compilation of entire file conditional on HAVE_FLTK.
  4257 
  4258 	* gl-render.cc: Make compilation of entire file conditional on
  4259 	HAVE_OPENGL.
  4260 
  4261 	* Makefile.in (GL_RENDER_SRC, FLTK_BACKEND_SRC): Delete variables.
  4262 	(DLD_XSRC): Always include fltk_backend.cc in the list.
  4263 	(DIST_SRC): Always include gl-render.cc in the list.
  4264 
  4265 2008-07-19  John W. Eaton  <jwe@octave.org>
  4266 
  4267 	* version.h (OCTAVE_VERSION): Now 3.1.50+.
  4268 	(OCTAVE_API_VERSION): Now api-v33+.
  4269 
  4270 2008-07-18  John W. Eaton  <jwe@octave.org>
  4271 
  4272 	* version.h (OCTAVE_VERSION): Now 3.1.50.
  4273 	(OCTAVE_API_VERSION): Now api-v33.
  4274 	(OCTAVE_RELEASE_DATE): Now 2008-07-18.
  4275 	(OCTAVE_COPYRIGHT): Update date to 2008.
  4276 
  4277 2008-07-18  John W. Eaton  <jwe@octave.org>
  4278 
  4279 	* Makefile.in (__magick_read__.df): New rule.
  4280 	Append MAGICK_INCFLAGS to CPPFLAGS.
  4281 
  4282 	* Makefile.in (EXTRAS): Add graphics-props.cc to the list.
  4283 	List graphics-props.cc as a target generated by genprops.awk.
  4284 
  4285 2008-07-18 Carlo de Falco  <carlo.defalco@gmail.com>
  4286 
  4287 	* gl-render.h: Conditionally include GL/gl.h or OpenGL/gl.h
  4288 	and GL/glu.h or OpenGL/glu.h
  4289 
  4290 2008-07-17  John W. Eaton  <jwe@octave.org>
  4291 
  4292 	* symtab.cc (out_of_date_check_internal): New arg, dispatch_type.
  4293 	Use it to handle class methods.
  4294 
  4295 	* toplev.h (octave_call_stack::do_caller): New function.
  4296 	(octave_call_stack::caller): Use it.
  4297 
  4298 2008-07-17  Jaroslav Hajek  <highegg@gmail.com>
  4299 
  4300 	* Makefile.in (convhulln.oct, __delaunayn__.oct, __voronoi__.oct, 
  4301 	regexp.oct, urlwrite.oct, __glpk__.oct, fltk_backend.oct):
  4302 	Use OCT_LINK_DEPS instead of DL_LDFLAGS for target-specific
  4303 	dependencies.
  4304 
  4305 2008-07-17  David Bateman  <dbateman@free.fr>
  4306 
  4307 	* DLD-FUNCTION/__magick_read__.cc (F__magick_read__): Allow build
  4308 	without GraphicsMagick++ installed.
  4309 
  4310 2008-07-16  John W. Eaton  <jwe@octave.org>
  4311 
  4312 	* graphics.h.in (gh_manager::autolock): Delete copy constructor
  4313 	and assignment definitions.
  4314 
  4315 2008-07-16  Michael Goffioul  <michael.goffioul@gmail.com>
  4316 
  4317 	* graphics.h.in (callback_property::execute): Remove static version.
  4318 	(base_properties::is_hittest, base_properties::is_interruptible,
  4319 	base_properties::is_selected, base_properties::is_selectionhighlight):
  4320 	New convenience property accessors.
  4321 	(base_graphics_object::get_handle, graphics_object::get_handle): Idem.
  4322 	(gh_manager::graphics_lock): New global mutex
  4323 	(gh_manager::lock, gh_manager::unlock, gh_manager::do_lock,
  4324 	gh_manager::do_unlock): Add accessors for it.
  4325 	(gh_manager::autolock): New class for easy locking of the graphics
  4326 	system.
  4327 	(gh_manager::event_data): New class for event management.
  4328 	(gh_manager::event_queue): New object to hold pending events.
  4329 	(gh_manager::callback_objects): New stack of callback objects.
  4330 	(gh_manager::execute_callback, gh_manager:post_callback,
  4331 	gh_manager::post_function, gh_manager::post_set,
  4332 	gh_manager::process_events, gh_manager::flush_events,
  4333 	gh_manager::restore_gcbo): New static methods for event management.
  4334 	(gh_manager::do_execute_callback, gh_manager::do_post_callback,
  4335 	gh_manager::do_post_function, gh_manager::do_post_set,
  4336 	gh_manager::do_process_events, gh_manager::do_post_event,
  4337 	gh_manager::do_restore_gcbo): New non-static versions.
  4338 	* graphics.cc (xreset_gcbo): Remove.
  4339 	(execute_callback): Likewise.
  4340 	(base_property::run_listeners, callback_property::execute): Use
  4341 	gh_manager::execute_callback.
  4342 	(class callback_event_data, class function_event_data, class
  4343 	set_event_data): New classes to implement various types of events.
  4344 	(gh_manager::event_data::create_callback_event,
  4345 	gh_manager::event_data::create_function_event,
  4346 	gh_manager::event_data::create_set_event): Implement event factory
  4347 	methods.
  4348 	(gh_manager::do_restore_gcbo, gh_manager::do_execute_callback,
  4349 	gh_manager::do_post_event, gh_manager::do_post_callback,
  4350 	gh_manager::do_post_function, gh_manager::do_post_set,
  4351 	gh_manager::do_process_events): New methods for event management.
  4352 	(Fishandle, Fset, Fget, F__get__, F__go_figure__, F__go_delete__,
  4353 	F__go_axes_init__, F__go_handles__, F__go_figure_handles__,
  4354 	Favailable_backends, Fdrawnow, Faddlistener, Faddproperty,
  4355 	get_property_from_handle, set_property_in_handle): Lock graphics
  4356 	system.
  4357 	(GO_BODY): Likewise.
  4358 	(Fdrawnow): Support single "expose" argument.
  4359 
  4360 2008-07-15  John W. Eaton  <jwe@octave.org>
  4361 
  4362 	* DLD-FUNCTIONS/__convn__.cc (convn): Cast second arg to
  4363 	octave_idx_type in call to std::max.
  4364 
  4365 2008-07-14  John W. Eaton  <jwe@octave.org>
  4366 
  4367 	* Makefile.in (convhulln.oct, __delaunayn__.oct, __voronoi__.oct, 
  4368 	regexp.oct, urlwrite.oct, __glpk__.oct, fltk_backend.oct):
  4369 	Simplify with target-specific settings for DL_LDFLAGS.
  4370 
  4371 	* DLD-FUNCTIONS/__magick_read__.cc: Delete "using namespace std"
  4372 	and "using namespace Magick" directives.  Style fixes.
  4373 
  4374 	* oct-conf.h.in (OCTAVE_CONF_MAGICK_INCFLAGS,
  4375 	OCTAVE_CONF_MAGICK_LIBS): Substitute here.
  4376 	* toplev.cc (octave_config_info): Include MAGICK_INCFLAGS and
  4377 	MAGICK_LIBS in the struct.
  4378 	* Makefile.in (DLD_XSRC): Add __magick_read__.cc to the list.
  4379 	(OCTAVE_LIBS): Add $(MAGICK_LIBS) to the list for static linking case.
  4380 	(__magick_read__.d, __magick_read__.o, pic/__magick_read__.o):
  4381 	Append MAGICK_INCFLAGS to CPPFLAGS.
  4382 	(__magick_read__.oct): Append MAGICK_LIBS to LDFLAGS.
  4383 
  4384 2008-07-14  Thomas L. Scofield  <scofield@calvin.edu>
  4385 
  4386 	* DLD-FUNCTIONS/__magick_read__.cc: New file from Octave Forge.
  4387 
  4388 2008-07-11  John W. Eaton  <jwe@octave.org>
  4389 
  4390 	* syscalls.cc (const_value): Delete arg NM.  Change all uses.
  4391 
  4392 	* DLD-FUNCTIONS/fft.cc (do_fft): Avoid GCC warning.
  4393 	* DLD-FUNCTIONS/fft2.cc (do_fft2): Likewise.
  4394 	* DLD-FUNCTIONS/fftn.cc (do_fftn): Likewise.
  4395 	* DLD-FUNCTIONS/qr.cc (Fqrshift): Likewise.
  4396 	* DLD-FUNCTIONS/lookup.cc (Flookup): Likewise.
  4397 	* gl-render.cc (opengl_renderer::draw): Likewise.
  4398 	* graphics.cc (axes::update_axis_limits,
  4399 	hggroup::update_axis_limits, Favailable_backends):
  4400 	Likewise.
  4401 	* pt-cmd.cc (tree_no_op_command::dup, tree_function_def::dup):
  4402 	Likewise.
  4403 	* pt-const.cc (tree_constant::dup): Likewise.
  4404 	* pt-id.cc (tree_identifier::dup): Likewise.
  4405 	* pt-jump.cc (tree_break_command::dup, tree_continue_command::dup,
  4406 	tree_return_command::dup): Likewise.
  4407 
  4408 	* DLD-FUNCTIONS/colamd.cc: Style fixes.
  4409 	(tree_postorder): Rename from TreePostorder.
  4410 	(tree_postorder, coletree): Avoid GCC warnings.
  4411 
  4412 	* DLD-FUNCTIONS/chol.cc (Fchol): Avoid GCC warnings.
  4413 	(Fcholdelete, Fcholshift): Delete unused arg nargout.
  4414 
  4415 	* toplev.cc, toplev.h (octave_call_stack::caller_user_function,
  4416 	octave_call_stack::caller_user_script,
  4417 	octave_call_stack::do_caller_user_function,
  4418 	octave_call_stack::do_caller_user_script):
  4419 	Delete functions and decls. 
  4420 
  4421 	* defun.cc (print_usage): Call octave_call_stack::caller_user_code,
  4422 	not octave_call_stack::caller_user_function.
  4423 	* debug.cc (get_user_code): Likewise.
  4424 
  4425 	* toplev.h (octave_call_stack::difference_type): Delete typedef.
  4426 	* toplev.cc, toplev.h (octave_call_stack::caller_user_code_line,
  4427 	octave_call_stack::do_caller_user_code_line, 
  4428 	octave_call_stack::caller_user_code_column,
  4429 	octave_call_stack::do_caller_user_code_column,
  4430 	octave_call_stack::caller_script,
  4431 	octave_call_stack::do_caller_script,
  4432 	octave_call_stack::caller_user_function,
  4433 	octave_call_stack::do_caller_user_function,
  4434 	octave_call_stack::caller_user_code,
  4435 	octave_call_stack::do_caller_user_code):
  4436 	Delete unused difference_type arg.
  4437 
  4438 	* ov-float.h, ov-flt-re-mat.cc, ov-range.h, ov-re-mat.h,
  4439 	ov-re-sparse.cc, ov-scalar.h: Check for NaN in bool_value and
  4440 	bool_array_value member functions to bool.
  4441 
  4442 	* ops.h (DEFSCALARBOOLOP_OP): New macro.
  4443 	* OPERATORS/op-s-s.cc, OPERATORS/op-fs-fs.cc: Use it to define
  4444 	el_and and el_or ops.
  4445 
  4446 2008-07-10  David Bateman  <dbateman@free.fr>
  4447 
  4448 	* DLD-FUNCTIONS/lookup.cc (assign): Delete.
  4449 	(Flookup): Use new NDArray constructors rather than assign.
  4450 	* data.cc (Fsort): Use new NDArray constructors rather than 
  4451 	directly assigning.
  4452 	* besselj.cc (int_array2_to_matrix, int_arrayn_to_array,
  4453 	int_array2_to_float_matrix, int_arrayn_to_float_array): Delete.
  4454 	(do-bessel): Use new NDArray constructors.
  4455 	* max.cc (MINMAX_SPARSE_BODY, MINMAX_INT_BODY, MINMAX_SINGLE_BODY,
  4456 	MINMAX_DOUBLE_BODY): Use new NDArray constructors. 
  4457 	* ov-bool.h (array_value, float_array_value): Explictly cast
  4458 	boolean scalar to double before the assignment to avoid ambiguity.
  4459 
  4460 2008-07-10  David Bateman  <dbateman@free.fr>
  4461 
  4462 	* ls-mat4.cc (read_mat_binary_data, save_mat_binary_data): Add
  4463 	loading and saving of sparse matrices.
  4464 	
  4465 2008-07-10  Michael Goffioul  <michael.goffioul@gmail.com>
  4466 
  4467 	* Makefile.in: Add OPENGL_LIBS to liboctinterp link command. Add
  4468 	GRAPHICS_CFLAGS to fltk_backend.cc compilation command.
  4469 	* data.cc: Define hypotf to _hypotf when not present.
  4470 	* gl-render.h: Replace OCTGRAPHICS_API with OCTINTERP_API.
  4471 	* gl-render.cc: Get rid of Array2<vertex_data>.
  4472 	* OPERATORS/op-int.h: Use powf instead of pow when invoked
  4473 	with float arguments.
  4474 
  4475 2008-07-09  John W. Eaton  <jwe@octave.org>
  4476 
  4477 	* input.cc (get_debug_input): Don't delete global_command here.
  4478 	* toplev.cc (main_loop): Undo previous change.
  4479 
  4480 	* toplev.h (octave_call_stack::instance_ok): Push top scope when
  4481 	creating instance.
  4482 
  4483 	* DLD-FUNCTIONS/inv.cc (Finv): Avoid GCC warning.
  4484 
  4485 	* DLD-FUNCTIONS/expm.cc (Fexpm): Avoid GCC warning.
  4486 
  4487 	* ov-fcn-inline.cc (octave_fcn_inline::load_ascii): Avoid GCC warning.
  4488 
  4489 2008-07-09  Michael Goffioul  <michael.goffioul@gmail.com>
  4490 
  4491 	* gl-render.cc (opengl_renderer::draw(figure)): Enable line smoothing
  4492 	according to __enhanced__ property.
  4493 	(opengl_renderer::draw_marker): Only draw markers with valid call
  4494 	lists ID.
  4495 	(opengl_renderer::make_marker_list): Do not produce filled marker call
  4496 	list for non-fillable markers.
  4497 	(opengl_renderer::draw(axes)): Do not antialias axes system.
  4498 
  4499 	* gl-render.cc (opengl_renderer::set_polygon_offset): Also enable
  4500 	polygon offseting in GL_LINE mode.
  4501 	(opengl_renderer::draw_marker): Offset markers foward instead of
  4502 	backward (to draw them above lines).
  4503 
  4504 	* Makefile.in: new substituted variables GL_RENDER_SRC and
  4505 	FLTK_BACKEND_SRC.
  4506 
  4507 	* gl-render.cc (vertex_data::vertex_data_rep::vertex_data(void),
  4508 	vertex_data::vertex_data(void), vertex_data::vertex_data(...)):
  4509 	initialize reference counting correctly.
  4510 
  4511 2008-07-09  John W. Eaton  <jwe@octave.org>
  4512 
  4513 	* toplev.cc (main_loop): Unwind-protect global_command.
  4514 	* input.cc (get_debug_input): Likewise.
  4515 
  4516 2008-07-09  David Bateman  <dbateman@free.fr>
  4517 
  4518 	* pt-id.cc (octave_value_list tree_identifier::rvalue (int), 
  4519 	octave_lvalue tree_identifier::lvalue (void)): Remove 
  4520 	MAYBE_DO_BREAKPOINT.
  4521 
  4522 2008-07-08  John W. Eaton  <jwe@octave.org>
  4523 
  4524 	* graphics.h.in (axes::properties::keypos): Declare as
  4525 	any_property instead of double_property.
  4526 
  4527 2008-06-28  John W. Eaton  <jwe@octave.org>
  4528 
  4529 	* debug.cc (push_dummy_call_stack_elt): Delete.
  4530 	(Fdbstack): Don't push dummy stack elt.  Use nskip instead of
  4531 	nframes, and curr_frame instead of idx.  Pass curr_frame to
  4532 	octave_call_stack::backtrace.
  4533 
  4534 	* ls-mat5.cc (read_mat5_binary_element): Explicitly pass 0 for
  4535 	current_context in call to symbol_table::varref.
  4536 	* ov-fcn-handle.cc (octave_fcn_handle::load_ascii): Likewise.
  4537 	Fix test.
  4538 
  4539 	* mex.cc (mexGetVariable, mexPutVariable): Use octave_call_stack
  4540 	methods to manipulate scope and context.
  4541 	* parse.y (source_file, Fassignin, Fevalin): Likewise.
  4542 
  4543 	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
  4544 	Call octave_call_stack::push after call to symbol_table::push_scope.
  4545 	Call unwind_protect::add with octave_call_stack::unwind_pop
  4546 	immediately after call to octave_call_stack::push.
  4547 
  4548 	* symtab.cc (symbol_table::xcurrent_caller_scope): Delete definition.
  4549 	* symtab.h (symbol_table::xcurrent_caller_scope): Delete decl.
  4550 	Delete all uses.
  4551 	(xcurrent_context_this_table): Delete.  Delete all uses.
  4552 	(symbol_table::current_caller_scope): Delete.
  4553 
  4554 	* toplev.cc (octave_call_stack::do_num_user_code_frames):
  4555 	New function.
  4556 	(octave_call_stack::do_backtrace): New arg, curr_user_frame.	
  4557 	Rename nframes arg to nskip.  Correctly handle curr_frame not at
  4558 	end of stack.
  4559 	(octave_call_stack::do_goto_frame_relative): Rename n arg to nskip.
  4560 	Correctly handle curr_frame not at end of stack.
  4561 	(octave_call_stack::do_goto_caller_frame): New function.
  4562 	(octave_call_stack::do_goto_base_frame): New function.
  4563 	* toplev.h: Provide decls for new functions.
  4564 	(octave_call_stack::call_stack_elt::prev): New data member.
  4565 	Initialize it in constructor.
  4566 	(octave_call_stack::const_reverse_iterator,
  4567 	octave_call_stack::reverse_iterator): New typedefs.
  4568 	(octave_call_stack::symbol_table::scope_id current_scope,
  4569 	octave_call_stack::symbol_table::context_id current_context,
  4570 	octave_call_stack::num_user_code_frames,
  4571 	octave_call_stack::goto_caller_frame,
  4572 	octave_call_stack::goto_base_frame,
  4573 	octave_call_stack::do_num_user_code_frames,
  4574 	octave_call_stack::do_current_scope,
  4575 	octave_call_stack::do_current_context): New functions.
  4576 
  4577 	(octave_call_stack::push): Default value for context arg is
  4578 	symbol_table::current_context, not 0.
  4579 	(octave_call_stack::do_push): Save previous frame.  Always push
  4580 	new frame on back of stack.  Call symbol_table::set_scope_and_context.
  4581 	(octave_call_stack::do_pop): Restore previous frame.  Always pop
  4582 	frame from back of stack.  Call symbol_table::set_scope_and_context.
  4583 
  4584 2008-06-26  John W. Eaton  <jwe@octave.org>
  4585 
  4586 	* token.h: Omit "class symbol_table::symbol_record" decl;
  4587 
  4588 	* lex.l (grab_block_comment): Use parens around || expression
  4589 	within && expression.
  4590 
  4591 2008-06-23  John W. Eaton  <jwe@octave.org>
  4592 
  4593 	* debug.cc (Fdbstack): Avoid shadowed variable warning.
  4594 
  4595 2008-06-23  Jaroslav Hajek  <highegg@gmail.com>
  4596 
  4597 	* genprops.awk (emit_source): Avoid gensub for portability.
  4598 	(BEGIN): Ditto.
  4599 
  4600 2008-06-20  Jaroslav Hajek  <highegg@gmail.com>
  4601 
  4602 	* DLD-FUNCTIONS/regexp.cc (octregexp_list): Make "once" an output
  4603 	argument.
  4604 	(octregexp): Do not use cell arrays when "once" is requested.
  4605 
  4606 	* ov.cc (make_vector_dims): New function.
  4607 	(vector_value, complex_vector_value, float_vector_value,
  4608 	float_complex_vector_value): Query N-d array values and simplify,
  4609 	avoid copying.
  4610 	(column_vector_value, complex_column_vector_value,
  4611 	float_column_vector_value, float_complex_column_vector_value,
  4612 	row_vector_value, complex_row_vector_value,
  4613 	float_row_vector_value, float_complex_row_vector_value): 
  4614 	Simplify to trivial wrappers.
  4615 	(int_vector_value): Avoid conversions if integer type, query N-d array
  4616 	value, simplify.
  4617 
  4618 2008-06-17  John W. Eaton  <jwe@octave.org>
  4619 
  4620 	* toplev.h, toplev.cc (class octave_call_stack):
  4621 	Push elements on and pop from back of queue.
  4622 	(octave_call_stack::do_push, octave_call_stack::do_pop):
  4623 	Always adjust curr_frame.
  4624 	(octave_call_stack::size, octave_call_stack::do_size): New functions.
  4625 	* pt-stmt.cc (tree_statement::eval):
  4626 	Also call octave_call_stack::set_statement when debugging.
  4627 	* debug.cc (push_dummy_call_stack_elt): New function.
  4628 	(Fdbstack): Omit dbstack from call stack by popping element rather
  4629 	than adjusting frame number.  Correctly handle arg.
  4630 
  4631 2008-06-12  David Bateman  <dbateman@free.fr>
  4632 
  4633 	* DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrshift, Fqrdelete):
  4634 	Allow single precision arguments, add tests for single precision.
  4635 
  4636 2008-06-11  John W. Eaton  <jwe@octave.org>
  4637 
  4638 	* ov-base.cc (octave_base_value::streamoff_value,
  4639 	octave_base_value::streamoff_array_value): Delete.
  4640 	* ov-base.h: Delete decls.
  4641 	(octave_base_value::is_streamoff): Delete.
  4642 	* ov-float.cc (octave_float_scalar::streamoff_value,
  4643 	octave_float_scalar::streamoff_array_value): Delete.
  4644 	* ov-float.h: Delete decls.
  4645 	* ov-flt-re-mat.cc (octave_float_matrix::streamoff_array_value): Delete.
  4646 	* ov-flt-re-mat.h: Delete decl.
  4647 	* ov-re-mat.cc (octave_matrix::streamoff_array_value): Delete.
  4648 	* ov-re-mat.h: Delete decl.
  4649 	* ov-re-sparse.cc (octave_sparse_matrix::streamoff_array_value): Delete.
  4650 	* ov-re-sparse.h: Delete decl.
  4651 	* ov-scalar.cc (octave_scalar::streamoff_value,
  4652 	octave_scalar::streamoff_array_value): Delete.
  4653 	* ov-scalar.h: Delete decls.
  4654 	* ov.cc (octave_value::octave_value (const streamoff_array&),
  4655 	octave_value::octave_value (const ArrayN<std::streamoff>&),
  4656 	octave_value::streamoff_value (void) const,
  4657 	octave_value::streamoff_array_value (void) const): Delete.
  4658 	* ov.h: Delete decls.
  4659 	(octave_value::is_streamoff): Delete.
  4660 	* ov.cc (install_types): Don't register streamoff type.
  4661 	* ov-streamoff.h, ov-streamoff.cc, OPERATORS/op-streamoff.cc: Delete.
  4662 	* Makefile.in: Delete them from the lists.
  4663 
  4664 	* error.cc (verror): Restore newline in msg_string.  Stripping
  4665 	"error: " prefix when buffering error messages is no longer neeed.
  4666 
  4667 2008-06-25  David Bateman  <dbateman@free.fr>
  4668 
  4669 	* pr-output.cc (Frats): Print usage if nargin == 0.
  4670 	
  4671 2008-06-10  John W. Eaton  <jwe@octave.org>
  4672 
  4673 	* mexproto.h (mxCreateLogicalScalar): Declar arg as mxLogical, not int.
  4674 
  4675 2008-06-09  John W. Eaton  <jwe@octave.org>
  4676 
  4677 	* graphics.cc (execute_callback): Pass CB by const reference and
  4678 	explicitly make a copy.
  4679 	(xget_ancestor): Pass GO by const reference and explicitly make a copy.
  4680 
  4681 	* error.cc (verror): Omit "name: " and "\a" from Vlast_error_msg.
  4682 	Save line and column information from user code.
  4683 	* toplev.cc (octave_call_stack::do_caller_user_code_line,
  4684 	octave_call_stack::do_caller_user_code_column): New functions.
  4685 	* toplev.h: Provide decls.
  4686 	(octave_call_stack::caller_user_code_line,
  4687 	octave_call_stack::caller_user_code_column): New functions.
  4688 	(octave_call_stack::current_line, octave_call_stack::current_column): 
  4689 	Default return value is -1, not 0.
  4690 
  4691 2008-06-06  John W. Eaton  <jwe@octave.org>
  4692 
  4693 	* ov.h (octave_value::erase_subfunctions):
  4694 	New function.
  4695 	* ov-base.h (octave_base_value::erase_subfunctions):
  4696 	New virtual function.
  4697 	* ov-usr-fcn.h (octave_user_function::erase_subfunctions):
  4698 	New function.
  4699 	* symtab.h (symbol_table::fcn_info::::erase_subfunction,
  4700 	symbol_table::fcn_info::fcn_info_rep::erase_subfunction,
  4701 	symbol_table::erase_subfunctions_in_scope):
  4702 	New functions.
  4703 	(symbol_table::fcn_info::fcn_info_rep::clear_user_function):
  4704 	Erase subfunctions here.
  4705 
  4706 	* variables.cc (Fmlock): Doc fix.
  4707 
  4708 2008-06-05  John W. Eaton  <jwe@octave.org>
  4709 
  4710 	* gl-render.cc (opengl_renderer::draw): Correctly avoid shadow
  4711 	warnings from gcc for xmin, xmax, ymin, ymax, zmin, and zmax.
  4712 
  4713 	* graphics/ChangeLog, graphics/Makefile.in, graphics/Makerules.in,
  4714 	graphics/fltk_backend/Makefile.in, graphics/opengl/Makefile.in:
  4715 	Delete.
  4716 
  4717 	* gl-render.cc, gl-render.h: Move here from src/graphics/opengl.
  4718 	* Makefile.in: Add them to the appropriate lists.
  4719 	(octave$(EXEEXT)): Also link with $(OPENGL_LIBS)
  4720 
  4721 	* fltk_backend.cc: Move here from src/graphics/fltk_backend.
  4722 	* Makefile.in (DLD_XSRC): Add it to the list
  4723 	(fltk_backend.oct): Include special rules for linking with
  4724 	$(GRAPHICS_LIBS) and $(FT2_LIBS).
  4725 
  4726 	* dynamic-ld.cc (octave_dynamic_loader::mex_mangler,
  4727 	octave_dynamic_loader::mex_uscore_mangler,
  4728 	octave_dynamic_loader::mex_f77_mangler): New functions.
  4729 	(octave_dynamic_loader::do_load_mex): Use them.
  4730 	(octave_dynamic_loader::do_remove_oct): Rename from
  4731 	octave_dynamic_loader::do_remove.
  4732 	(octave_dynamic_loader::do_remove_mex): New function.
  4733 	* dynamic-ld.h: Provide/fix decls.
  4734 
  4735 	* graphics.cc (properties::update_normals): Style fixes.
  4736 	* graphics.h.in: Style fixes.
  4737 
  4738 	ChangeLog entries for gl-render.h, gl-render.cc, and
  4739 	fltk_backend.cc before the move:
  4740 
  4741 	2008-06-05  John W. Eaton  <jwe@octave.org>
  4742 
  4743 	* opengl/gl-render.cc (xmin): New static function.
  4744 
  4745 	* opengl/gl-render.h (opengl_renderer): Style fixes.
  4746 	* fltk_backend/fltk_backend.cc: Style fixes.
  4747 
  4748 	2008-04-26  Michael Goffioul  <michael.goffioul@gmail.com>
  4749 
  4750 	* opengl/gl-render.h (opengl_renderer::draw(hggroup)): New method.
  4751 	* opengl/gl-render.cc (opengl_renderer::draw(hggroup)): Likewise.
  4752 	(opengl_renderer::draw(graphics_object)): Call it.
  4753 
  4754 	2008-03-17  Shai Ayal  <shaiay@users.sourceforge.net>
  4755 
  4756 	* fltk_backend/fltk_backend.cc (plot_window::resize,
  4757 	plot_window::draw): make canvas the size of figure.position
  4758 
  4759 	2008-03-09  Shai Ayal  <shaiay@users.sourceforge.net>
  4760 
  4761 	* fltk_backend/fltk_backend.cc (plot_window::handle): add zoom
  4762 	stack
  4763 
  4764 	2008-03-06  Shai Ayal  <shaiay@users.sourceforge.net>
  4765 
  4766 	* fltk_backend/fltk_backend.cc (plot_window::handle): Add handling
  4767 	of the 'a' and 'g' keys
  4768 	(plot_window: toggle_grid): New helper function
  4769 	(plot_window): Add new togglegrid button
  4770 
  4771 	2008-03-01  Shai Ayal  <shaiay@users.sourceforge.net>
  4772 
  4773 	* fltk_backend/fltk_backend.cc (OpenGL_fltk::draw_overlay,
  4774 	OpenGL_fltk::zoom, OpenGL_fltk::set_zoom_box): Added to support
  4775 	zoom box
  4776 	(plot_window::handle): Added zoom box code, B-3 now does autoscale
  4777 	(plot_window::axis_auto): New utility function to call axis("auto")
  4778 	(plot_window::button_press): "A" button now does autoscale
  4779 
  4780 	* opengl/gl-render.cc (make_marker_list): Add the "+x*.^v><"
  4781 	markers
  4782 
  4783 	2008-02-27  Michael Goffioul  <michael.goffioul@gmail.com>
  4784 
  4785 	* opengl/gl-render.cc (opengl_renderer::draw(patch),
  4786 	opengl_renderer::draw(surface)): Adapt to type change of facealpha and
  4787 	edgealpha, using double_radio_property class.
  4788 
  4789 	2008-02-26  Michael Goffioul  <michael.goffioul@gmail.com>
  4790 
  4791 	* opengl/gl-render.h: Make sure windows.h is included before OpenGL
  4792 	headers.
  4793 	* fltk_backend/Makefile.in (FLTK_EXTRA_CXXFLAGS): Use $(srcdir) for
  4794 	includesion of OpenGL renderer headers.
  4795 	(Makeconf): Move inclusion of Makeconf later on, to avoid freezing
  4796 	MinGW make.
  4797 
  4798 	* fltk_backend/Makefile.in (GRAPHICS_CFLAGS): New substituted
  4799 	variable.
  4800 
  4801 	2008-02-25  Shai Ayal  <shaiay@users.sourceforge.net>
  4802 
  4803 	* fltk_backend/fltk_backend.cc (class plot_window): Many changes
  4804 	to use figure::properties instead of figure handle to reference
  4805 	the figure
  4806 	(class figure_manager): ditto
  4807 	(__fltk_redraw__): moved most of functionality into the
  4808 	figure_manager class
  4809 	(plot_window::pixel2pos): Modified to use axes::pixel2coord
  4810 	(plot_window::pixel2staus): Modified to use pixel2pos
  4811 	(plot_window::handle): Added zoom with mouse 
  4812 
  4813 	2008-02-24  Shai Ayal  <shaiay@users.sourceforge.net>
  4814 
  4815 	* fltk_backend/fltk_backend.cc (OpenGL_fltk::Draw): removed double
  4816 	buffer switch
  4817 	(OpenGL_fltk::setup_viewport): removed call to glOrtho --
  4818 	gl-render takes care of all the transformations
  4819 
  4820 	2008-02-23  Shai Ayal  <shaiay@users.sourceforge.net>
  4821 
  4822 	* fltk_backend/fltk_backend.cc (plot_window::mark_modifed): mark
  4823 	the whole window as damaged (otherwise changing figure.postion
  4824 	does not have immediate effect)
  4825 	(plot_window::draw): New function, checks for window size 
  4826 	(__fltk_maxtime__): New DEFUN to allow tweaking of fltk timeout
  4827 	(__fltk_redraw__): Use fltk_maxtime as timeout
  4828 
  4829 	2008-02-21  Michael Goffioul  <michael.goffioul@gmail.com>
  4830 
  4831 	* opengl/gl-render.cc (opengl_renderer::patch_tesselator::combine):
  4832 	Protect against NULL vertex data.
  4833 
  4834 	* opengl/gl-render.cc (opengl_renderer::draw(patch)): Add marker
  4835 	rendering of patch objects.
  4836 
  4837 	2008-02-21  Shai Ayal  <shaiay@users.sourceforge.net>
  4838 
  4839 	* opengl/gl-render.cc: remove OpenGL includes
  4840 	* opengl/gl-render.h: add OpenGL includes
  4841 	* fltk_backend/fltk_backend.cc: remove OpenGL includes
  4842 	(__fltk_redraw__): put figure handle into the figure's
  4843 	__plot_stream__ property for later
  4844 	(fltk_backend::close_figure): use argument as figure handle to
  4845 	close
  4846 
  4847 	2008-02-20  Shai Ayal  <shaiay@users.sourceforge.net>
  4848 
  4849 	* fltk_backend/Makefile.in: initial import
  4850 
  4851 	* fltk_backend/fltk_backend.cc: initial import
  4852 	
  4853 
  4854 	2008-02-20  Michael Goffioul  <michael.goffioul@gmail.com>
  4855 
  4856 	* opengl/gl-render.h (opengl_renderer::draw(patch)): New method to
  4857 	render patch objects.
  4858 	(class opengl_renderer::patch_tesselator): Forward declaration.
  4859 	* opengl/gl-render.cc (opengl_texture::create): Use RGB data format
  4860 	instead of RGBA.
  4861 	(class opengl_tesselator): New classes to abstract GLU tessellation
  4862 	process.
  4863 	(class opengl_renderer::patch_tesselator): New class to render opaque
  4864 	patch objects.
  4865 	(class vertex_data): New class to hold vertex data during tessellation
  4866 	of patch objects.
  4867 	(opengl_renderer::draw(patch)): New method to render patch objects (no
  4868 	transparency, no border, no marker yet).
  4869 	(opengl_renderer::draw(graphics_object)): Dispatch to it.
  4870 
  4871 	* opengl/gl-render.cc (opengl_renderer::draw(patch)): Use patch color
  4872 	data and support face/vertex single color specification.
  4873 
  4874 	* opengl/gl-render.cc (opengl_tesselator::begin_polygon): Set
  4875 	tessellation property also for non-filled polygons.
  4876 	(opengl_renderer::patch_tesselator::vertex): Protect against empty
  4877 	color matrices.
  4878 	(opengl_renderer::draw(patch)): Render patch border (no transparency
  4879 	yet).
  4880 
  4881 	2008-02-19  Michael Goffioul  <michael.goffioul@gmail.com>
  4882 
  4883 	* opengl/gl-render.cc (opengl_texture::texture_rep::tex_coord,
  4884 	opengl_texture::tex_coord): New wrapper around glTexCoord2d.
  4885 	(opengl_renderer::draw(surface)): Use it for texturemap
  4886 	implementation.
  4887 	(opengl_renderer::draw(surface)): Fix indexing bug when creating clip
  4888 	matrix.
  4889 	(opengl_texture::operator=): Add assignment operator.
  4890 	(opengl_texture::create): New static opengl_texture creator.
  4891 	(opengl_texture::is_valid): New accessor.
  4892 
  4893 	2008-02-18  Michael Goffioul  <michael.goffioul@gmail.com>
  4894 
  4895 	* opengl/gl-render.cc (class opengl_texture): New class to wrap
  4896 	texture operations in OpenGL.
  4897 
  4898 	2008-02-17  Michael Goffioul  <michael.goffioul@gmail.com>
  4899 
  4900 	* opengl/gl-render.cc (opengl_renderer::draw(surface)): Set material
  4901 	color when rendering surface facets.
  4902 
  4903 	* opengl/gl-render.cc (opengl_renderer::draw(surface)): Add rendering
  4904 	of mesh and markers.
  4905 
  4906 	2008-02-16  Michael Goffioul  <michael.goffioul@gmail.com>
  4907 
  4908 	* opengl/gl-render.cc (opengl_renderer::draw(figure)): Initialize the
  4909 	OpenGL context correctly.
  4910 	(opengl_renderer::draw(surface)): Add missing glEnd call.
  4911 
  4912 	2008-02-14  Michael Goffioul  <michael.goffioul@gmail.com>
  4913 
  4914 	* opengl/gl-render.h opengl/gl-render.cc: Add rendering
  4915 	interface for surface objects (actual implement still
  4916 	missing).
  4917 
  4918 	2008-02-14  Michael Goffioul  <michael.goffioul@gmail.com>
  4919 
  4920 	* Makefile.in Makerules.in: Initial import
  4921 	* opengl/Makefile.in: Likewise.
  4922 	* opengl/gl-render.h opengl/gl-render.cc: Likewise.
  4923 
  4924 2008-06-04  Shai Ayal  <shaiay@users.sourceforge.net>
  4925 
  4926 	* graphics.cc (axes::properties::set_defaults): Preserve position
  4927 	if mode is replace.
  4928 	(axes::properties::sync_positions): Use default_axes_postion for
  4929 	consistency.
  4930 
  4931 	* graphics.h.in (axes::properties::sync_positions,
  4932 	axes::properties::update_position,
  4933 	axes::properties::update_outerposition): New functions to sync
  4934 	outerposition and position.
  4935 
  4936 	* graphics.h.in (axes::properties::update_xlim,
  4937 	axes::properties::update_ylim, axes::properties::update_zlim):
  4938 	pass is_logscale flag to axes::properties::calc_ticks_and_lims
  4939 	* graphics.cc (axes::properties::calc_ticks_and_lims): Added
  4940 	support for log scale
  4941 
  4942 	* graphics.h.in (axes::properities::fix_limits) : New method.
  4943 	(axes::properties::update_xlim, axes::properties::update_ylim,
  4944 	axes::properties::update_zlim): Use fix_limits.
  4945 
  4946 	* graphics.cc (axes::properties::calc_ticks_and_lims): Make sure
  4947 	that lo <= hi.
  4948 
  4949 	* graphics.h.in (axes::pixel2coord, axes::coord2pixel): New functions.
  4950 
  4951 	* graphics.cc (convert_position): No longer static.
  4952 	* graphics.h.in: Provide decl.
  4953 
  4954  	* graphics.cc (Favailable_backends): New function.
  4955   	* graphics.h.in (base_graphics_backend::available_backends_list):
  4956 	New function.
  4957 
  4958 	* graphics.cc (axes::properties::calc_ticks_and_lims): Refactor.
  4959 	Adjust axes limits & tics together so that the result is consistent.
  4960 	(axes::properties::calc_tick_sep): Ditto.
  4961 	(axes::properties::get_axis_limits): Ditto.  Now a member of
  4962 	axes::properties
  4963 	(magform): Now file-scope static function instead of
  4964 	axes::properties member function.
  4965 
  4966 	* graphics.h.in (axes::properties::update_xlim): call the new
  4967 	axes::properties::calc_ticks_and_lims method
  4968 	(axes::properties::update_ylim): ditto
  4969 	(axes::properties::update_zlim): ditto
  4970 
  4971 2008-06-04  Michael Goffioul <michael.goffioul@gmail.com>
  4972 
  4973 	* ov-fcn-inline.h (class octave_fcn_inline): Mark with OCTINTERP_API.
  4974 	* ov-fcn-handle.h (class Octave_fcn_handle): Likewise.
  4975 	* ls-oct-binary.h (save_binary_data, read_binary_data): Likewise.
  4976 
  4977 	* genprops.awk (emit_source): Fix if-then-else statement generation
  4978 	when the first property is hidden.
  4979 	* graphics.h.in (base_properties::adopt): Call mark_modified.
  4980 	(class hggroup): New graphics object class.
  4981 	* graphics.cc (lookup_object_name, make_graphics_object_from_type,
  4982 	property_list::lookup, property_list::set,
  4983 	root_figure::init_factory_properties): Support hggroup as possible
  4984 	object type.
  4985 	(hggroup::update_axis_limits): New graphics object class.
  4986 	(make_graphics_object): Look for "parent" property in the arguments
  4987 	and use it as actual parent for the created object.
  4988 	(F__go_hggroup__): New function.
  4989 	(F__go_delete__): Set Vdrawnow_requested to true.
  4990 
  4991 	* graphics.h.in (base_property::clone, string_property::clone,
  4992 	radio_property::clone, color_property::clone, double_property::clone,
  4993 	double_radio_property::clone, array_property::clone,
  4994 	row_vector_property::clone, bool_property::clone,
  4995 	handle_property::clone, callback_property::clone, any_property::clone,
  4996 	property::clone): New virtual method.
  4997 	(property::create): New static method to create dynamic properties.
  4998 	(base_properties::has_property): New method to check the existence of
  4999 	a property.
  5000 	(any_property::any_property, row_vector_property::row_vector_property,
  5001 	double_radio_property::double_radio_property): New copy constructors.
  5002 	* graphics.cc (lookup_object_name): New static utility function.
  5003 	(make_graphics_object_from_type): Likewise.
  5004 	(gh_manager::do_make_graphics_handle): Use it.
  5005 	(dprop_obj_map): New static map used for chaching purpose in dynamic
  5006 	property creation.
  5007 	(property::create): New static method to create dynamic properties.
  5008 	(base_properties::has_property): New method to check the existence of
  5009 	a property.
  5010 	(base_properties::override_defaults): Check parent validity.
  5011 	(Faddlistener): Documentation fix.
  5012 	(Faddproperty): New function to create dynamic properties.
  5013 
  5014 	* genprops.awk (emit_get_array): Don't produce get_xxx_property
  5015 	accessors.
  5016 	* graphics.h.in (array_property::get_limits): New method to return the
  5017 	array limits.
  5018 	(base_properties::get_xdata_property,
  5019 	base_properties::get_ydata_property,
  5020 	base_properties::get_zdata_property,
  5021 	base_properties::get_ldata_property,
  5022 	base_properties::get_udata_property,
  5023 	base_properties::get_xldata_property,
  5024 	base_properties::get_xudata_property,
  5025 	base_properties::get_cdata_property): Remove methods, replaced with
  5026 	limit-based equivalent.
  5027 	(base_graphics_object::get_xdata_property,
  5028 	base_graphics_object::get_ydata_property,
  5029 	base_graphics_object::get_zdata_property,
  5030 	base_graphics_object::get_ldata_property,
  5031 	base_graphics_object::get_udata_property,
  5032 	base_graphics_object::get_xldata_property,
  5033 	base_graphics_object::get_xudata_property,
  5034 	base_graphics_object::get_cdata_property): Likewise.
  5035 	(graphics_object::get_xdata_property,
  5036 	graphics_object::get_ydata_property,
  5037 	graphics_object::get_zdata_property,
  5038 	graphics_object::get_ldata_property,
  5039 	graphics_object::get_udata_property,
  5040 	graphics_object::get_xldata_property,
  5041 	graphics_object::get_xudata_property,
  5042 	graphics_object::get_cdata_property): Likewise.
  5043 	(base_properties::get_xlim, base_properties::get_ylim,
  5044 	base_properties::get_zlim, base_properties::get_clim,
  5045 	base_properties::get_alim, base_properties::is_xliminclude,
  5046 	base_properties::is_yliminclude, base_properties::is_zliminclude,
  5047 	base_properties::is_climinclude, base_properties::is_aliminclude):
  5048 	New methods.
  5049 	(base_graphics_object::get_xlim, base_graphics_object::get_ylim,
  5050 	base_graphics_object::get_zlim, base_graphics_object::get_clim,
  5051 	base_graphics_object::get_alim, base_graphics_object::is_xliminclude,
  5052 	base_graphics_object::is_yliminclude,
  5053 	base_graphics_object::is_zliminclude,
  5054 	base_graphics_object::is_climinclude,
  5055 	base_graphics_object::is_aliminclude): Likewise.
  5056 	(graphics_object::get_xlim, graphics_object::get_ylim,
  5057 	graphics_object::get_zlim, graphics_object::get_clim,
  5058 	graphics_object::get_alim, graphics_object::is_xliminclude,
  5059 	graphics_object::is_yliminclude, graphics_object::is_zliminclude,
  5060 	graphics_object::is_climinclude, graphics_object::is_aliminclude):
  5061 	Likewise.
  5062 	(base_graphics_object::update_axis_limits): Provide default behavior
  5063 	by passing the call to the parent object.
  5064 	(line::properties::xdata, line::properties::ydata,
  5065 	line::properties::zdata, line::properties::ldata,
  5066 	line::properties::udata, line::properties::xldata,
  5067 	line::properties::xudata): Replace 'l' modifier with 'u'.
  5068 	(line::properties::xlim, line::properties::ylim,
  5069 	line::properties::zlim, line::properties::xliminclude,
  5070 	line::properties::yliminclude, line::properties::zliminclude): New
  5071 	hidden properties.
  5072 	(line::properties::update_xdata, line::properties::update_ydata,
  5073 	line::properties::update_zdata, line::properties::update_xldata,
  5074 	line::properties::update_xudata, line::properties::update_ldata,
  5075 	line::properties::update_udata): New updaters that update limit
  5076 	properties.
  5077 	(line::properties::compute_xlim, line::properties::compute_ylim): New
  5078 	method to compute actual limits taking into account x/y data and
  5079 	upper/lower bounds.
  5080 	(text::properties::position): Add 'u' modifier.
  5081 	(text::properties::xlim, text::properties::ylim,
  5082 	text::properties::zlim, text::properties::xliminclude,
  5083 	text::properties::yliminclude, text::properties::zliminclude): New
  5084 	hidden properties.
  5085 	(text::properties::update_position): New updater that updates limit
  5086 	properties.
  5087 	(image::properties::xdata, image::properties::ydata,
  5088 	image::properties::cdata): Replace 'l' modifier with 'u'.
  5089 	(image::properties::cdatamapping): Add 'l' modifier.
  5090 	(image::properties::xlim, image::properties::ylim,
  5091 	image::properties::clim, image::properties::xliminclude,
  5092 	image::properties::yliminclude, image::properties::climinclude): New
  5093 	hidden properties.
  5094 	(image::properties::get_climinclude,
  5095 	image::properties::is_climinclude): Provide specialized inline
  5096 	accessors.
  5097 	(image::properties::update_xdata, image::properties::update_ydata,
  5098 	image::properties::update_cdata): New updaters that update limit
  5099 	properties.
  5100 	(patch::properties::xdata, patch::properties::ydata,
  5101 	patch::properties::zdata, patch::properties::cdata): Replace 'l'
  5102 	modifier with 'u'.
  5103 	(patch::properties::cdatamapping): Add 'l' modifier.
  5104 	(patch::properties::alphadatamapping): New property.
  5105 	(patch::properties::xlim, patch::properties::ylim,
  5106 	patch::properties::zlim, patch::properties::clim,
  5107 	patch::properties::alim, patch::properties::xliminclude,
  5108 	patch::properties::yliminclude, patch::properties::zliminclude,
  5109 	patch::properties::climinclude, patch::properties::aliminclude: New
  5110 	hidden properties.
  5111 	(patch::properties::get_climinclude,
  5112 	patch::properties::is_climinclude, patch::properties::get_aliminclude,
  5113 	patch::properties::is_aliminclude): Provide specialized inline
  5114 	accessors.
  5115 	(patch::properties::update_xdata, patch::properties::update_ydata,
  5116 	patch::properties::update_zdata, patch::properties::update_cdata): New
  5117 	updaters that update limit properties.
  5118 	(surface::properties::xdata, surface::properties::ydata,
  5119 	surface::properties::zdata, surface::properties::cdata,
  5120 	surface::properties::alphadata): Replace 'l' modifier with 'u'.
  5121 	(surface::properties::cdatamapping,
  5122 	surface::properties::alphadatamapping): Add 'l' modifier.
  5123 	(surface::properties::xlim, surface::properties::ylim,
  5124 	surface::properties::zlim, surface::properties::clim,
  5125 	surface::properties::alim, surface::properties::xliminclude,
  5126 	surface::properties::yliminclude, surface::properties::zliminclude,
  5127 	surface::properties::climinclude, surface::properties::aliminclude: New
  5128 	hidden properties.
  5129 	(surface::properties::get_climinclude,
  5130 	surface::properties::is_climinclude,
  5131 	surface::properties::get_aliminclude,
  5132 	surface::properties::is_aliminclude): Provide specialized inline
  5133 	accessors.
  5134 	(surface::properties::update_xdata, surface::properties::update_ydata,
  5135 	surface::properties::update_zdata): Update limit properties.
  5136 	(surface::properties::update_cdata,
  5137 	surface::properties::update_alphadata): New updaters that update limit
  5138 	properties.
  5139 	* graphics.cc (base_properties::update_axis_limits): Simply call
  5140 	update_axis_limits in owning graphics_object.
  5141 	(base_graphics_object::update_axis_limits): Provide default behavior
  5142 	by passing the call to the parent object.
  5143 	(check_limits_vals(double&,double&,double&,const octave_value&)): New
  5144 	static method to work with new limit properties in graphics objects.
  5145 	(get_children_limits): New static method to compute the raw limits of
  5146 	a set of children, based on the new limit properties.
  5147 	(axes::update_axis_limits): Simplify and call get_children_limits. Add
  5148 	handling of alpha limits.
  5149 	(line::properties::compute_xlim, line::properties::compute_ylim): New
  5150 	methods to compute line limits taking into account upper/lower bounds.
  5151 
  5152 	* graphics.cc (axes::properties::sync_positions): Update
  5153 	transformation data.
  5154 
  5155 	* graphics.cc (Faddlistener): Rename from Fadd_listener.
  5156 
  5157 	* graphics.h.in (axes::properties::pixel2coord): Center Z coordinate
  5158 	on x_zlim instead of 0.
  5159 	(axes::properties::zoom, axes::properties::unzoom,
  5160 	axes::properties::clear_zoom_stack): New methods to handle zoom stack.
  5161 	(axes::properties::zoom_stack): New field to hold zoom stack.
  5162 	(axes::properties::update_xlim, axes::properites::update_ylim):
  5163 	Additional do_clr_zoom argument to control whether the zoom stack will
  5164 	be cleared.
  5165 	(axes::properties::update_zlim): Clear zoom stack.
  5166 	* graphics.cc (axes::properties::zoom, axes::properties::unzoom,
  5167 	axes::properties::clear_zoom_stack): New methods to handle zoom stack.
  5168 
  5169 	* genprops.awk (emit_source): Use all properties in factory defaults.
  5170 
  5171 	* graphics.h.in (base_property::base_property): Set internal counter
  5172 	to 1 by default.
  5173 	(property::property): Adapt constructors to default counter value in
  5174 	base_property.
  5175 
  5176 	* graphics.h.in (base_properties::get_property): Make virtual and
  5177 	remove const modifier.
  5178 	* graphics.cc (base_properties::get_property): Can return built-in
  5179 	properties. Generate an error if the property does not exist.
  5180 	(base_properties::add_listener): Use get_property.
  5181 	(Fadd_listener): Add documentation.
  5182 	* genprops.awk (emit_common_declarations, emit_source): Emit code for
  5183 	overloaded get_property method.
  5184 
  5185 	* genprops.awk (emit_declarations): Run listeners in the property
  5186 	setter methods.
  5187 	* graphics.h.in (enum listener_mode): New enum type for listeners.
  5188 	(base_property::set): Make non-virtual and handle listeners execution.
  5189 	(base_property::listeners): New field holding a map of listeners.
  5190 	(base_property::add_listener, base_property::run_listeners,
  5191 	base_property::do_set): New methods to handle listeners.
  5192 	(property::add_listener, property::run_listeners): Likewise.
  5193 	(base_properties::add_listener): Likewise.
  5194 	(base_graphics_object::add_property_listener,
  5195 	graphics_object::add_property_listener): Likewise.
  5196 	(all property classes): Rename set to do_set and make it protected.
  5197 	* graphics.cc (base_property::run_listeners): New method to execute
  5198 	listeners.
  5199 	(color_property::set, double_radio_property::set,
  5200 	handle_property::set): Rename to do_set.
  5201 	(base_properties::add_listener): New method to handle listener
  5202 	additio. Only handle dynamic properties.
  5203 	(Fadd_listener): New octave interface to add property listeners to
  5204 	graphics object.
  5205 
  5206 	* genprops.awk (emit_get_data): Remove.
  5207 	(emit_declarations): Treat row_vector_property as array_property and
  5208 	remove data_property references.
  5209 	* graphics.h.in (array_property::array_property(array_property)): Add
  5210 	copy constructor.
  5211 	(class data_property): Remove (replaced by array_property).
  5212 	(class base_graphics_backend, class graphics_backend): Replace
  5213 	data_property references with array_property.
  5214 	(line::properties::xdata, line::properties::ydata,
  5215 	line::properties::zdata, line::properties::ldata,
  5216 	line::properties::udata, line::properties::xldata,
  5217 	line::properties::xudata): Turn into row_vector_property.
  5218 	(image::properties::xdata, image::properties::ydata): Likewise.
  5219 	(image::properties::init): Add length constraints for xdata and ydata.
  5220 	(patch::properties::xdata, patch::properties::ydata,
  5221 	patch::properties::zdata, patch::properties::facevertexalphadata):
  5222 	Turn into array_property.
  5223 	(surface::properties::xdata, surface::properties::ydata,
  5224 	surface::properties::zdata): Likewise.
  5225 	(patch::properties::init): Add size constraints for xdata, ydata,
  5226 	zdata and facevertexalphadata.
  5227 	(surface::properties::init): Add size constraints for xdata, ydata and
  5228 	zdata.
  5229 	* graphics.cc (check_limit_vals): Remove override with data_property.
  5230 	(axes::update_axis_limits): Replace data_property references with
  5231 	array_property.
  5232 
  5233 	* graphics.h.in (root_figure::get_default): Use factory defaults when
  5234 	no explicit default value exists.
  5235 	(figure::properties::set___backend__): Reset __plot_stream__ to empty
  5236 	value.
  5237 	* graphics.cc (gh_manager::gh_manager): Call
  5238 	graphics_backend::default_backend to make sure the default backend is
  5239 	initialized.
  5240 
  5241 	* graphics.h.in (patch::properties::edgealpha,
  5242 	surface::properties::facealpha, surface::properties::edgealpha): Fix
  5243 	typos in property names.
  5244 
  5245 	* graphics.h.in (class double_radio_property): New property class for
  5246 	holding face/edge alpha values.
  5247 	(patch::properties::facealpha, patch::properties::edgealpha,
  5248 	surface::properties::facealpha, surface::properties::edgealpha): Use
  5249 	double_radio_property class.
  5250 	* graphics.cc (double_radio_property::set): Implement new property
  5251 	class.
  5252 	* genprops.awk (emit_get_double_radio): New function to emit code for
  5253 	double_radio_property.
  5254 	(emit_declarations): Use it.
  5255 
  5256 	* graphics.h.in (array_property::array_property(void)): New default
  5257 	constructor.
  5258 	(array_property::xmin, array_property:xmax, array_property::xminp,
  5259 	array_property::min_val, array_property::max_val,
  5260 	array_property::min_pos): New fields and accessors to hold min/max
  5261 	values of the array data.
  5262 	(array_property::get_data_limits): New method to compute min/max
  5263 	values of the array data.
  5264 	(base_properties::get_cdata_property,
  5265 	graphics_object::get_cdata_property): Return array_property.
  5266 	(image::properties::cdata, surface::properties::cdata,
  5267 	patch::properties::cdata, patch::properties::facevertexcdata): Turn
  5268 	into array_property type.
  5269 	(image::properties::init, surface::properties::init,
  5270 	patch::properties::init): Add constraint initialization for cdata and
  5271 	facevertexcdata (patch only).
  5272 	* genprops.awk (emit_get_array): New function to emit accessor for
  5273 	array_property.
  5274 	(emit_declarations): Use it.
  5275 	* graphics.cc (get_array_limits): New template function to compute
  5276 	min/max values of an Array<T> object.
  5277 	(array_property::get_data_limits): New method to compute min/max
  5278 	values of the array data, using get_array_limits.
  5279 	(check_limit_vals): Overridden function with array_property.
  5280 	(axes::update_axis_limits): Turn cdata property into array_property.
  5281 
  5282 	* graphics.h.in (patch::properties::get_color_data): New utility
  5283 	function to retrieve actual color data.
  5284 	* graphics.cc (patch::properties::get_color_data): Likewise.
  5285 
  5286 	* graphics.h.in (base_scaler::is_linear, lin_scaler::is_linear,
  5287 	scaler::is_linear): New method to detect linear scales.
  5288 	(graphics_xform::scale(Matrix)): New method to scale 2D/3D coordinates
  5289 	directly.
  5290 	(patch::properties::facelighting): Set default value to "none".
  5291 
  5292 	* graphics.h.in (axes::axes): Be sure to initialize transformation
  5293 	data correctly.
  5294 
  5295 	* graphics.cc (xget_ancestor): Pass graphics_object argument by value
  5296 	instead of by reference.
  5297 
  5298 	* graphics.h.in (surface::properties::xdata,
  5299 	surface::properties::ydata, surface::properties::zdata,
  5300 	surface::properties::normalmode, surface::properties::vertexnormals):
  5301 	Add 'u' modifier.
  5302 	(surface::properties::update_normals): New method to compute normals
  5303 	automatically.
  5304 	(surface::properties::update_xdata, surface::properties::update_ydata,
  5305 	surface::properties::update_zdata,
  5306 	surface::properties::update_normalmode,
  5307 	surface::properties::update_vertexnormals): New updaters to update
  5308 	normals automatically.
  5309 	* graphics.cc (surface::properties::update_normals): Likewise.
  5310 	(cross_product): New inlined utility function for cross product
  5311 	computation adn accumulation.
  5312 
  5313 	* graphics.h.in (class base_scaler, class lin_scaler, class
  5314 	log_scaler, class scaler): Add scale method for NDArray.
  5315 	(log_scaler::do_scale): Factorize scaling code.
  5316 
  5317 	* graphics.h.in (figure::properties::update_position): Re-remove.
  5318 	(figure::properties::facecolor): Re-add 'texturemap' value.
  5319 	(surface::properties::get_color_data): New method to compute actual
  5320 	surface color data from cdata.
  5321 	* graphics.cc (surface::properties::get_color_data): Likewise.
  5322 	(xget_ancestor): New utility function to retrieve an ancestor of a
  5323 	given type.
  5324 	(convert_cdata): New utility function to convert cdata property into
  5325 	actual color data.
  5326 
  5327 	* graphics.h.in (surface::properties::facecolor): Add "texturemap"
  5328 	as possible value.
  5329 	(class surface::properties): New properties alphadata,
  5330 	alphadatmapping, ambientstrength, backfacelighting, diffusestrength,
  5331 	edgealpha, edgelighting, erasemode, facelighting, meshstyle,
  5332 	normalmode, specularcolorreflectance, specularexponent,
  5333 	specularstrength, vertexnormals.
  5334 	(surface::properties::init): Add constraints for alphadata,
  5335 	vertexnormals and cdata (the latter are commented until cdata
  5336 	has changed type).
  5337 
  5338 	* graphics.h.in (base_properties::update_boundingbox): New method
  5339 	to handle object resize.
  5340 	(figure::properties::set_boundingbox): New method to set figure
  5341 	position from backend.
  5342 	(figure::properties::update_position): Remove method.
  5343 	(figure::properties::position): Remove 'u' modifier and add 'S'
  5344 	modifier.
  5345 	(axes::properties::update_boundingbox): Overload to recompute
  5346 	transformation when axes size changed.
  5347 	* graphics.cc (base_properties::update_boundingbox): New method.
  5348 	(figure::properties::set_boundingbox,
  5349 	figure::properties::set_position): Likewise.
  5350 
  5351 	* genprops.awk: Add 'U' modifier to support extern updaters.
  5352 	* graphics.h.in (base_graphics_backend::gripe_invalid): New method
  5353 	to simplify error reporting.
  5354 	(class base_graphics_backend): Use it.
  5355 	(base_graphics_backend::set_figure_position): New backend method.
  5356 	(graphics_backend::set_figure_position): Likewise.
  5357 	(figure::properties::position): Mark property with updater.
  5358 	(figure::properties::update_position): New updater.
  5359 
  5360 	* graphics.h.in (root_figure::properties::callbackobject):
  5361 	New root property.
  5362 	(root_figure::properties::cbo_stack): New field.
  5363 	* graphics.cc (xset_gcbo, xreset_gcbo): New utility functions.
  5364 	(execute_callback): Set callbackobject property in root object
  5365 	before executing a callback.
  5366 	(root_figure::properties::set_callbackobject): Implement accessor.
  5367 
  5368 	* graphics.h.in (root_figure::properties::callbackobject):
  5369 	New root property.
  5370 	(root_figure::properties::cbo_stack): New field.
  5371 	* graphics.cc (xset_gcbo, xreset_gcbo): New utility functions.
  5372 	(execute_callback): Set callbackobject property in root object
  5373 	before executing a callback.
  5374 	(root_figure::properties::set_callbackobject): Implement accessor.
  5375 
  5376 	* graphics.h.in (class root_figure::properties,
  5377 	class line::properties, class text::properties,
  5378 	class image::properties, class patch::properties,
  5379 	class surface::properties): Export classes with
  5380 	OCTINTERP_API.
  5381 
  5382 	* graphics.cc (axes::properties::set_defaults): Use correct
  5383 	default values for gridlinestyle and minorgridlinestyle.
  5384 
  5385 2008-06-03  Jaroslav Hajek  <highegg@gmail.com>
  5386 
  5387 	* load-save.cc (Fload): Fix "-7" option.
  5388 
  5389 2008-06-02  David Bateman  <dbateman@free.fr>
  5390 
  5391 	* pt.cc (tree:last_break_function): Next pointer to last function
  5392 	with a breakpoint.
  5393 	* pt.h (tree:last_break_function): ditto.
  5394 	* debug.cc (Fdbstep): Use tree::break_function value of zero to
  5395 	signal to step into the next function. Set tree::last_break_function
  5396 	to indicate position of last breakpoint.
  5397 	(Fdbnext):  Set tree::last_break_function to indicate position of
  5398 	last breakpoint.
  5399 	* pt-bp.h (MAYBE_DO_BREAKPOINT): Check tree::break_function value
  5400 	of zero as well. Only check tree::last_line if we are in teh same
  5401 	function as the last breakpoint.
  5402 	* input.cc (char Vfilemarker): New global variable.
  5403 	(Ffilemarker): New function to query and set Vfilemarker.
  5404 	* input.h (extern char Vfilemarker): Make Vfilemarker available.
  5405 	* util.cc (fcn_file_in_path): If the input argument contains
  5406 	Vfilemarker, strip the trailing part of string from this point
  5407 	when looking for function file.
  5408 	* toplev.cc (octave_call_stack::fo_backtrace): Mark subfunctions
  5409 	with the name of the parent function and Vfilemarker.
  5410 	* symtab.cc (symbol_table::find_function (const std::string&,
  5411 	tree_argument_list *, const string_vector&, octave_value_list*,
  5412 	bool&): If function name contains Vfilemarker, check in scope of
  5413 	specified parent function.
  5414 
  5415 	* DLD-FUNCTIONS/betainc.cc: Move test code here. Add test code for
  5416 	single precision type.
  5417 	* DLD-FUNCTIONS/gammainc.cc: Ditto.
  5418 	* DLD-FUNCTIONS/gcd.cc (Fgcd): Support single precision. Move test
  5419 	code here. Add test code for single precision type.
  5420 	* data.cc: Move test code here and add tests for single precision
  5421 	type. Add tests for Fislogical.
  5422 	(NATIVE_REDUCTION): Support the 'double' argument.
  5423 	* mapper.cc: Move test code here and add tests for single precision
  5424 	type.
  5425 	* ov-float.cc (CD_SCALAR_MAPPER): Replace Complex with
  5426 	FloatComplex.
  5427 	(erf, erfc, abs, acos, asin, asinh, atan, atanh, ceil, cos, cosh,
  5428 	exp, expm1, floor, log10, log1p, sin, sinh, sqrt, tan, tanh): Use
  5429 	float version of base functions (ie. ::sinf and not ::sin)
  5430 	(lgamma, acosh, log, log2, log10, log1p): Use single precision
  5431 	infinity value.
  5432 	* ov-flt-complex.cc (erf, erfc, expm1, log1p): Use the float
  5433 	version of base functions.
  5434 	* ov-flt-cx-mat.cc (DARRY_MAPPER): Replace NDArray with FloatNDArray.
  5435 	(erf, erdc, gamma): Use FloatNDArray::dmapper and not
  5436 	NDArray::dmapper.
  5437 	* ov-flt-cx-mat.h (is_double_type): Delete.
  5438 	(is_single_type): New method.
  5439 	* ov-flt-re-mat.cc (lgamma,  acosh, log, log2, log10, log1p,
  5440 	sqrt): Use single precision infinity value.
  5441 	
  5442 	* chol.cc (Fcholinv, Fchol2inv, Fcholupdate, Fcholinsert,
  5443 	Fcholdelete, Fcholshift): Allow single precision arguments.
  5444 	(Fchol): Move test code here. Add test code for single precision.
  5445 	(Fcholupdate, Fcholinsert, Fcholdelete, Fcholshift): Add test code
  5446 	for single precision.
  5447 	* conv2.cc (Fconv2): Add single precision test code.
  5448 	* det.cc (Fdet): For single values or empty matrices, return
  5449 	single precision arg for single precion input. Move test code
  5450 	here. Add single precision test code.
  5451 	* fft.cc (do_fft): For empty single precision arguments return a
  5452 	single precision value. Add single precision test code. Remove
  5453 	fft2 test code.
  5454 	* fft2.cc (do_fft2): For empty single precision arguments return a
  5455 	single precision value. Add single precision test code. Move fft2
  5456 	test code here.
  5457 	* fftn.cc (do_fftn): For empty single precision arguments return a
  5458 	single precision value.
  5459 	* eig.cc (Feig):  Move test code here. Add single precision test
  5460 	code.
  5461 	* expm.cc (Fexpm): Ditto.
  5462 	* find.cc (Ffind): Ditto.
  5463 	* hess.cc (Fhess): Ditto.
  5464 	* inv.cc (Finc): Ditto.
  5465 	* lu.cc (Flu): Ditto.
  5466 	* qr.cc (Fqr): Ditto.
  5467 	* schur.cc (Fschur): Ditto.
  5468 	* svd.cc (Fsvd): Ditto.
  5469 	* syl.cc (Fsyl): Ditto.
  5470 	
  5471 	* op-fcm-fcm.cc, op-fcm-fcs.cc, op-fcm-fm.cc, op-fcm-fs.cc, 
  5472 	op-fcs-fcm.cc, op-fcs-fcs.cc, op-fcs-fm.cc, op-fcs-fs.cc, 
  5473 	op-fm-fcm.cc, op-fm-fcs.cc, op-fm-fm.cc, op-fm-fs.cc, 
  5474 	op-fs-fcm.cc, op-fs-fcs.cc, op-fs-fm.cc, op-fs-fs.cc: Add mixed
  5475 	double, single precision concatenation operators.
  5476 
  5477 	* data.cc (Fall, Fany, Fdiag, Fcat, Fismatrix, Fones, Fzeros,
  5478 	Finf, FNaN, FNA, Feye, Flinspace, Freshape, Ftranspose,
  5479 	Fctranspose, Fsort). Move tests here. Add single precision tests.
  5480 	* mappers.cc (Ffinite, Fisinf, Fisna, Fisnan): Ditto.
  5481 	* ov-float.cc (octave_float_scalar:resize): single precision
  5482 	return value.
  5483 	* ov.cc (octave_value::octave_value (const
  5484 	FloatComplexDiagMatrix&)): Ditto.
  5485 	* data.cc (Fnorm): Add single precision.
  5486 	(do_cat): Disable fast return and skipping empty matrices, as they
  5487 	play a part in determining the return type.
  5488 	* ov.cc (octave_value do_cat_op (const octave_value&, const
  5489 	octave_value&, const Array<octave_idx_type>&)): ditto.
  5490 
  5491 2008-06-02  Jaroslav Hajek  <highegg@gmail.com>
  5492 
  5493 	* ov-cell.cc (Fcellstr): For compatibility with Matlab, return {''}
  5494 	when given ''.
  5495 
  5496 2008-05-26  Jaroslav Hajek  <highegg@gmail.com>
  5497 
  5498 	* DLD-FUNCTIONS/fsolve.cc (fsolve_user_function,
  5499 	fsolve_user_jacobian): Reshape argument to original dims before
  5500 	passing. 
  5501 	(Ffsolve): Save original dimensions of the starting guess and reshape
  5502 	on return. Fix tests.
  5503 
  5504 2008-05-21  David Bateman  <dbateman@free.fr>
  5505 
  5506 	* DLD-FUNCTIONS/quad.cc (quad_float_user_function): New function.
  5507 	(Fquad): Handle float type.
  5508 	New tests.
  5509 
  5510 2008-05-21  Jaroslav Hajek  <highegg@gmail.com>
  5511 
  5512 	* OPERATORS/op-fcm-fcm.cc (trans_mul, mul_trans, herm_mul, mul_herm):
  5513 	New functions.
  5514 	(install_fcm_fcm_ops): Install them.
  5515 	* OPERATORS/op-fm-fm.cc (trans_mul, mul_trans): New functions.
  5516 	(install_fm_fm_ops): Install them.
  5517 
  5518 	* OPERATORS/op-sm-m.cc (trans_mul): New function.
  5519 	(install_sm_m_ops): Register it.
  5520 	* OPERATORS/op-m-sm.cc (mul_trans): New function.
  5521 	(install_m_sm_ops): Register it.
  5522 	* OPERATORS/op-scm-cm.cc (trans_mul, herm_mul): New function.
  5523 	(install_scm_cm_ops): Register it.
  5524 	* OPERATORS/op-cm-scm.cc (mul_trans, mul_herm): New function.
  5525 	(install_cm_scm_ops): Register it.
  5526 
  5527 	* dMatrix.cc: Declare DSYRK.
  5528 	(xgemm): Call DSYRK if symmetric case detected.
  5529 	* CMatrix.cc: Declare ZSYRK, ZHERK.
  5530 	(xgemm): Call ZSYRK/ZHERK if symmetric/hermitian case detected.
  5531 
  5532 	* ov.h (octave_value::compound_binary_op): New enum.
  5533 	(do_binary_op (octave_value::compound_binary_op, ...), 
  5534 	octave_value::binary_op_fcn_name (compound_binary_op),
  5535 	octave_value::do_binary_op (compound_binary_op, ...)):
  5536 	New declarations.
  5537 	(OV_COMP_BINOP_FN): New macro (+ several expansions).
  5538 	* ov.cc (octave_value::binary_op_fcn_name (compound_binary_op),
  5539 	decompose_binary_op, do_binary_op (compound_binary_op, ...)): 
  5540 	New functions.
  5541 	* ov-typeinfo.h (octave_value_typeinfo::register_binary_class_op 
  5542 	(octave_value::compound_binary_op, ...),
  5543 	octave_value_typeinfo::register_binary_op 
  5544 	(octave_value::compound_binary_op, ...),
  5545 	octave_value_typeinfo::do_register_binary_class_op 
  5546 	(octave_value::compound_binary_op, ...),
  5547 	octave_value_typeinfo::do_register_binary_op 
  5548 	(octave_value::compound_binary_op, ...),
  5549 	octave_value_typeinfo::do_lookup_binary_class_op 
  5550 	(octave_value::compound_binary_op),
  5551 	octave_value_typeinfo::do_lookup_binary_op 
  5552 	(octave_value::compound_binary_op, ...)):
  5553 	New declarations.
  5554 	(octave_value_typeinfo::lookup_binary_class_op
  5555 	(octave_value::compound_binary_op),
  5556 	(octave_value_typeinfo::lookup_binary_op
  5557 	(octave_value::compound_binary_op, ...)):
  5558 	New functions.
  5559 	(octave_value_typeinfo::compound_binary_class_ops,
  5560 	octave_value_typeinfo::compound_binary_ops): 
  5561 	New fields.
  5562 	* ov-typeinfo.cc (octave_value_typeinfo::register_binary_class_op 
  5563 	(octave_value::compound_binary_op, ...),
  5564 	octave_value_typeinfo::register_binary_op 
  5565 	(octave_value::compound_binary_op, ...),
  5566 	octave_value_typeinfo::do_register_binary_class_op 
  5567 	(octave_value::compound_binary_op, ...),
  5568 	octave_value_typeinfo::do_register_binary_op 
  5569 	(octave_value::compound_binary_op, ...),
  5570 	octave_value_typeinfo::do_lookup_binary_class_op 
  5571 	(octave_value::compound_binary_op),
  5572 	octave_value_typeinfo::do_lookup_binary_op 
  5573 	(octave_value::compound_binary_op, ...)):
  5574 	New functions.
  5575 	(octave_value::do_register_type): Resize also compound_binary_ops
  5576 	field.
  5577 	* pt-exp.h (tree_expression::is_unary_expression): New virtual
  5578 	function.
  5579 	* pt-unop.h (tree_unary_expression::is_unary_expression): New virtual
  5580 	override.
  5581 	* pt-cbinop.h, pt-cbinop.cc: New files (implement
  5582 	tree_compound_binary_expression class).
  5583 	* pt-all.h: Include pt-cbinop.h.
  5584 	* Makefile.in (PT_INCLUDES, PT_SRC): Include them in the lists.
  5585 	* parse.y (make_binary_op): Call maybe_compound_binary_expression.
  5586 	* OPERATORS/op-m-m.cc (trans_mul, mul_trans): New operator handlers.
  5587 	(install_m_m_ops): Register them.
  5588 	* OPERATORS/op-cm-cm.cc (trans_mul, mul_trans, herm_mul, mul_herm): 
  5589 	New operator handlers.
  5590 	(install_cm_cm_ops): Register them.
  5591 
  5592 	* DLD-FUNCTIONS/matrix_type.cc: Fix tests relying on the
  5593 	older more optimistic hermitian check.
  5594 
  5595 2008-05-21  David Bateman  <dbateman@free.fr>
  5596 
  5597 	* DLD-FUNCTIONS/rcond.cc (Frcond): Add support for single precision.
  5598 
  5599 	* DLD-FUNCTIONS/sqrt.m: Replace DBL_* with FLT_* for single
  5600 	precision types.
  5601 	* data.cc (static octave_value fill_matrix (const
  5602 	octave_value_list&, double, float, const char *)): Add function
  5603 	with additional argument to allow for different valid for double
  5604 	and single precision.
  5605 	(Finf, FNaN, FNA, Frealmax, Frealmin): Use it here.
  5606 	(Feps): Modify behavior for a single numerical argument to give
  5607 	difference to next largest value in the class of the type passed.
  5608 
  5609 2008-05-21  John W. Eaton  <jwe@octave.org>
  5610 
  5611 	* pt-idx.h (tree_index_expression::tree_index_expression (int, int)): 
  5612 	Delete default argument values.
  5613 
  5614 2008-05-20  David Bateman  <dbateman@free.fr>
  5615 
  5616 	* data.cc (Flog2): Handle single precision.
  5617 	* ov-float.h, ov.float.cc, ov-flt-complex.h, ov-flt-complex.cc,
  5618 	ov-flt-re-mat.h, ov-flt-re-mat.cc, ov-flt-cx-mat.h,
  5619 	ov-flt-cx-mat.cc: Provide single precision version of log2 mapper
  5620 	function.
  5621 
  5622 	* DLD-FUNCTIONS/__convn__.cc, DLD-FUNCTIONS/__pchip_deriv__.cc,
  5623 	DLD-FUNCTIONS/besselj.cc, DLD-FUNCTIONS/betainc.cc,
  5624 	DLD-FUNCTIONS/conv2.cc, DLD-FUNCTIONS/gammainc.cc,
  5625 	DLD-FUNCTIONS/givens.cc, DLD-FUNCTIONS/kron.cc,
  5626 	DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/syl.cc, data.cc:
  5627 	Prefer demotion to single precision rather than promotion to double.
  5628 
  5629 	* ov-float.cc, ov-float.h, ov-flt-complex.cc, ov-flt-complex.h,
  5630 	ov-flt-cx-mat.cc, ov-flt-cx-mat.h, ov-flt-re-mat.cc,
  5631 	ov-flt-re-mat.h (numeric_conversion_function (void) const): 
  5632 	Remove method.
  5633 
  5634 	* ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h,
  5635 	ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h 
  5636 	(numeric_conversion_function (void) const): Add method for
  5637 	conversion to single precision.
  5638 
  5639 	* DLD-FUNCTIONS/conv2.cc (Fconv2): Don't access third arg if we
  5640 	don't have one.
  5641 	
  5642 	* DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/expm.cc,
  5643 	DLD-FUNCTIONS/find.cc, DLD-FUNCTIONS/hess.cc,
  5644 	DLD-FUNCTIONS/qr.cc: COnvert for use with single precision.
  5645 
  5646 	* OPERATORS/op-int.h, OPERATORS/op-int-conv.cc,
  5647 	OPERATORS/op-int-concat.cc: Adapt for single precision.
  5648 
  5649 	* OPERATORS/op-i8-i8.cc, OPERATORS/op-i16-i16.cc, 
  5650 	OPERATORS/op-i32-i32.cc, OPERATORS/op-i64-i64.cc, 
  5651 	OPERATORS/op-ui8-ui8.cc, OPERATORS/op-ui16-ui16.cc, 
  5652 	OPERATORS/op-ui32-ui32.cc, OPERATORS/op-ui64-ui64.cc:
  5653 	Add includes for single precision types.
  5654 	
  5655 	* OPERATORS/op-b-b.cc, OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc,
  5656 	OPERATORS/op-fcm-fs.cc, OPERATORS/op-fcs-fs.cc,
  5657 	OPERATORS/op-fm-fs.cc, OPERATORS/op-fs-fcm.cc,
  5658 	OPERATORS/op-fs-fcs.cc, OPERATORS/op-fs-fm.cc,
  5659 	OPERATORS/op-fs-fs.cc, OPERATORS/op-int.h, ov.cc, ov-scalar.cc,
  5660 	ov-float.h, ov-flt-complex.cc, ov-float.cc, ov-flt-re-mat.cc,
  5661 	ov-flt-cx-mat.cc: Replace octave_float with octave_scalar_float
  5662 
  5663 	* OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc, 
  5664 	OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc, 
  5665 	OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc, 
  5666 	OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc, 
  5667 	OPERATORS/op-fcm-fm.cc, OPERATORS/op-fcm-fs.cc, 
  5668 	OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc, 
  5669 	OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc, 
  5670 	OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc, 
  5671 	OPERATORS/op-m-m.cc, OPERATORS/op-m-s.cc, 
  5672 	OPERATORS/op-m-cm.cc, OPERATORS/op-m-cs.cc, 
  5673 	OPERATORS/op-s-m.cc, OPERATORS/op-s-s.cc, 
  5674 	OPERATORS/op-s-cm.cc, OPERATORS/op-s-cs.cc, 
  5675 	OPERATORS/op-cm-m.cc, OPERATORS/op-cm-s.cc, 
  5676 	OPERATORS/op-cm-cm.cc, OPERATORS/op-cm-cs.cc, 
  5677 	OPERATORS/op-cs-m.cc, OPERATORS/op-cs-s.cc, 
  5678 	OPERATORS/op-cs-cm.cc, OPERATORS/op-cs-cs.cc:
  5679 	Add mixed single/double assign operators.
  5680 
  5681 	* ov.h (numeric_demotion_function): New method for double to
  5682 	single demotion.
  5683 	* ov-base.h (numeric_demotion_function): Declare virtual version.
  5684 
  5685 	* ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h,
  5686 	ov-re-mat.cc, ov-re-mat.h, ov-scalar.cc, ov-scalar.h 
  5687 	(numeric_cdemote_function (void) const): Add method for
  5688 	conversion to single precision renamed from the method
  5689 	numeric_conversion_function
  5690 
  5691 	* ov.cc (do_binary_op): Use demotion function seperately than the
  5692 	numeric conversion function so as to avoid isses like
  5693 	a=zeros(2,2);a(1,:)=1:2.
  5694 
  5695 	* OPERATORS/op-fcm-fcm.cc, OPERATORS/op-fcm-fcs.cc,
  5696 	OPERATORS/op-fcm-fm.cc, OPERATORS/op-fcm-fs.cc,
  5697 	OPERATORS/op-fcs-fcm.cc, OPERATORS/op-fcs-fcs.cc,
  5698 	OPERATORS/op-fcs-fm.cc, OPERATORS/op-fcs-fs.cc,
  5699 	OPERATORS/op-fm-fcm.cc, OPERATORS/op-fm-fcs.cc,
  5700 	OPERATORS/op-fm-fm.cc, OPERATORS/op-fm-fs.cc,
  5701 	OPERATORS/op-fs-fcm.cc, OPERATORS/op-fs-fcs.cc,
  5702 	OPERATORS/op-fs-fm.cc, OPERATORS/op-fs-fs.cc, ov-float.cc,
  5703 	ov-float.h, ov-flt-complex.cc, ov-flt-complex.h, ov-flt-cx-mat.cc,
  5704 	ov-flt-cx-mat.h, ov-flt-re-mat.cc, ov-flt-re-mat.h: New files.
  5705 	* Makefile.in (OV_INCLUDES, OV_SRC, OP_XSRC. FLOAT_OP_XSRC,
  5706 	DOUBLE_OP_XSRC): Add them here.
  5707 
  5708 	* DLD-FUNCTIONS/__convn__.cc, DLD-FUNCTIONS/__lin_interpn__.cc,
  5709 	DLD-FUNCTIONS/__pchip_deriv__.cc, DLD-FUNCTIONS/besselj.cc,
  5710 	DLD-FUNCTIONS/betainc.cc, DLD-FUNCTIONS/bsxfun.cc,
  5711 	DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/conv2.cc,
  5712 	DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/eig.cc, DLD-FUNCTIONS/fft.cc,
  5713 	DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftn.cc,
  5714 	DLD-FUNCTIONS/fftw.cc, DLD-FUNCTIONS/filter.cc,
  5715 	DLD-FUNCTIONS/gammainc.cc, DLD-FUNCTIONS/givens.cc,
  5716 	DLD-FUNCTIONS/inv.cc, DLD-FUNCTIONS/kron.cc,
  5717 	DLD-FUNCTIONS/lookup.cc, DLD-FUNCTIONS/lu.cc,
  5718 	DLD-FUNCTIONS/matrix_type.cc, DLD-FUNCTIONS/max.cc,
  5719 	DLD-FUNCTIONS/pinv.cc, DLD-FUNCTIONS/schur.cc,
  5720 	DLD-FUNCTIONS/sqrtm.cc, DLD-FUNCTIONS/svd.cc,
  5721 	DLD-FUNCTIONS/syl.cc, DLD-FUNCTIONS/symbfact.cc,
  5722 	DLD-FUNCTIONS/typecast.cc, OPERATORS/op-b-b.cc,
  5723 	OPERATORS/op-b-bm.cc, OPERATORS/op-bm-b.cc, OPERATORS/op-bm-bm.cc,
  5724 	OPERATORS/op-cm-cm.cc, OPERATORS/op-cs-cs.cc, OPERATORS/op-m-m.cc,
  5725 	OPERATORS/op-range.cc, OPERATORS/op-s-s.cc, bitfcns.cc, data.cc,
  5726 	oct-stream.cc, ov-base.cc, ov-base.h, ov-bool-mat.cc,
  5727 	ov-bool-mat.h, ov-bool.h, ov-ch-mat.cc, ov-ch-mat.h,
  5728 	ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h, ov-intx.h,
  5729 	ov-range.cc, ov-range.h, ov-re-mat.cc, ov-re-mat.h, ov-scalar.h,
  5730 	ov.cc, ov.h, pr-output.cc, pr-output.h, pt-mat.cc, utils.cc,
  5731 	utils.h, xdiv.cc, xdiv.h, xpow.cc, xpow.h:
  5732 	Allow single precision types.
  5733 
  5734 2008-05-20  David Bateman  <dbateman@free.fr>
  5735 
  5736 	* DLD-FUNCTIONS/rcond.cc: New function.
  5737 	* Makefile.in (DLD_XSRC): Add it here.
  5738 
  5739 	* debug.cc (Fdbstop): If no line specified assume line 1.
  5740 	(Fdbstep, Fdbcont, Fdbnext): Move debugging functions 
  5741 	to normal commands.
  5742 	(Fdbquit): New command to quit debugging mode and return to the 
  5743 	prompt.
  5744 	(Fdbstep): Modify the dbstep command for compatibility.
  5745 	* input.cc (Vdebugging_current_line): Store current line being
  5746 	debugged for use in DEFCMD versions of debug commands.
  5747 	(match_sans_spaces_semi): Delete.
  5748 	(static void get_debug_input (const std;string&)): New function to
  5749 	parse input in debug mode using standard Octave parser.
  5750 	(static octave_value_list get_user_input (const
  5751 	octave_value_list&, int)): Remove debugging specialization.
  5752 	* input.h (Vdebugging_current_line): Store current line being
  5753 	debugged for use in DEFCMD versions of debug commands.
  5754 	* parse.y (make_return_command): Special handling in debug mode.
  5755 	* pt-bp.h (MAYBE_DO_BREAKPOINT): Support break in n lines needed
  5756 	to support "dbstep N". 
  5757 	* pt.cc (tree::break_next): Convert to a down counter to support
  5758 	break in N lines. Breakpoint occure when tree::break_next is zero.
  5759 	* toplev.cc (octave_user_script *
  5760 	octave_call_stack::do_caller_user_script (difference_type) const):
  5761 	Support skipping the first N functions to support "dbstep out".
  5762 	(octave_user_function * octave_call_stack::do_caller_user_function
  5763 	(difference_type) const): Ditto.
  5764 	(octave_user_code * octave_call_stack::do_caller_user_code
  5765 	(difference_type) const): Ditto.
  5766 	* toplev.h (octave_user_script *
  5767 	octave_call_stack::do_caller_user_script (difference_type) const):
  5768 	Add difference_type argument.
  5769 	(octave_user_function * octave_call_stack::do_caller_user_function
  5770 	(difference_type) const): Ditto.
  5771 	(octave_user_code * octave_call_stack::do_caller_user_code
  5772 	(difference_type) const): Ditto.
  5773 	(static octave_user_script *caller_script (difference_type)):
  5774 	Ditto.
  5775 	(static octave_user_function *caller_user_function
  5776 	(difference_type q)): Ditto.
  5777 	(static octave_user_code *caller_user_code (difference_type q)):
  5778 	Ditto.
  5779 
  5780 2008-05-20  Kim Hansen  <kimhanse@gmail.com>
  5781 
  5782 	* load-path.cc (load_path::do_initialize):
  5783 	Include separator when appending sys_path.
  5784 
  5785 2008-05-20  Bill Denney  <bill@denney.ws>
  5786 
  5787 	* file-io.cc (Ffgets, Fgets, Ffputs, Ffscanf): Doc fix (seealso).
  5788 
  5789 2008-05-20  Thomas Weber  <thomas.weber.mail@gmail.com>
  5790 
  5791 	* DLD-FUNCTIONS/rand.cc (Frandn): Doc fix.
  5792 
  5793 2008-05-20  David Bateman  <dbateman@free.fr>
  5794 
  5795 	* load-save.cc (do_load): Treat non verbose list_only output in
  5796 	the same manner as Fwho.
  5797 	* symtab.h (static void clear_variable_regexp (const
  5798 	std::string&): New method.
  5799 	(static std::list<symbol_record> regexp (const std::string&)): Ditto.
  5800 	(static std::list<symbol_record> regexp_variables (const
  5801 	std::string&)): Ditto.
  5802 	(static std::list<symbol_record> regexp_global_variables (const
  5803 	std::string&)): Ditto,
  5804 	(static std::list<symbol_record> regexp_variables (const
  5805 	string_vector&)): Ditto.
  5806 	(void do_clear_variable_regexp (const std::string&)): Ditto.
  5807 	(std::list<symbol_record> do_regexp (const std::string&, bool)
  5808 	const): Ditto.
  5809 	(do_who): Accept the "-regexp" option. Use regexp versions of
  5810 	symbol table functions.
  5811 	(static inline bool name_match_any_pattern (const string_vector&,
  5812 	int, int, bool): Add regexp argument, and use regexp matching if
  5813 	true.
  5814 	(do_clear_variables): Add regexp option and pass to
  5815 	name_match_any_pattern.
  5816 	(Fclear): Accept the -regexp option.
  5817 
  5818 2008-05-07  John W. Eaton  <jwe@octave.org>
  5819 
  5820 	* pt-arg-list.cc, pt-arg-list.h (tree_argument_list::dup):
  5821 	New arg, context.
  5822 	* pt-assign.cc, pt-assign.h (tree_simple_assignment::dup,
  5823 	tree_multi_assignment::dup): Likewise.
  5824 	* pt-binop.cc, pt-binop.h (tree_binary_expression::dup,
  5825 	tree_boolean_expression::dup): Likewise.
  5826 	* pt-cell.cc, pt-cell.h (tree_cell::dup): Likewise.
  5827 	* pt-cmd.cc, pt-cmd.h (tree_no_op_command::dup,
  5828 	tree_function_def::dup): Likewise.
  5829 	* pt-colon.cc, pt-colon.h (tree_colon_expression::dup): Likewise.
  5830 	* pt-const.cc, pt-const.h (tree_constant::dup): Likewise.
  5831 	* pt-decl.cc, pt-decl.h (tree_decl_elt::dup, tree_decl_init_list::dup,
  5832 	tree_global_command::dup, tree_static_command::dup): Likewise.
  5833 	* pt-except.cc, pt-except.h (tree_try_catch_command::dup,
  5834 	tree_unwind_protect_command::dup): Likewise.
  5835 	* pt-exp.h (tree_expression:dup): Likewise.
  5836 	* pt-fcn-handle.cc, pt-exp.h (tree_expression:dup): Likewise.
  5837 	* pt-fcn-handle.h (tree_fcn_handle::dup,
  5838 	tree_anon_fcn_handle::dup): Likewise.
  5839 	* pt-id.cc, pt-id.h (tree_identifier::dup): Likewise.
  5840 	* pt-idx.cc, pt-idx.h (tree_index_expression::dup): Likewise.
  5841 	* pt-jump.cc, pt-jump.h (tree_break_command::dup,
  5842 	tree_continue_command::dup, tree_return_command::dup): Likewise.
  5843 	* pt-loop.cc, pt-loop.h (tree_while_command::dup,
  5844 	tree_do_until_command::dup, tree_simple_for_command::dup,
  5845 	tree_complex_for_command::dup): Likewise.
  5846 	* pt-mat.cc, pt-mat.h (tree_matrix::dup): Likewise.
  5847 	* pt-misc.cc, pt-misc.h (tree_parameter_list::dup,
  5848 	tree_return_list::dup): Likewise.
  5849 	* pt-select.cc, pt-select.h (tree_if_clause::dup,
  5850 	tree_if_command_list::dup, tree_if_command::dup,
  5851 	tree_switch_case::dup, tree_switch_case_list::dup,
  5852 	tree_switch_command::dup, tree_statement::dup,
  5853 	tree_statement_list::dup, tree_prefix_expression::dup,
  5854 	tree_postfix_expression::dup): Likewise.
  5855 
  5856 	* ov-fcn-handle.cc (octave_fcn_handle::save_ascii,
  5857 	octave_fcn_handle::save_binary, octave_fcn_handle::save_hdf5):
  5858  	Pass context to symbol_table::all_variables.
  5859 	* load-save.cc (dump_octave_core): Likewise.
  5860 	* ov-fcn-handle.cc (Ffunctions): Don't skip anonymous functions
  5861 	with the name set to the text of the function body.
  5862  	Pass context to symbol_table::all_variables and
  5863 	symbol_table::symbol_record::varval.
  5864 
  5865 	* symtab.h (symbol_table::varref, symbol_table::do_varref,
  5866 	symbol_table::varval, symbol_table::do_varval,
  5867 	symbol_table::all_variables, symbol_table::do_all_variables, 
  5868 	symbol_table::symbol_record::varref,
  5869 	symbol_table::symbol_record::varval,
  5870 	symbol_table::symbol_record::is_defined,
  5871 	symbol_table::symbol_record::is_variable,
  5872 	symbol_table::symbol_record::symbol_record_rep::varref,
  5873 	symbol_table::symbol_record::symbol_record_rep::varval,
  5874 	symbol_table::symbol_record::symbol_record_rep::is_defined,
  5875 	symbol_table::symbol_record::symbol_record_rep::is_variable,
  5876 	):
  5877 	* symtab.h (symbol_table::do_inherit): New arg, donor_context.
  5878 	Look for value in donor_contxt.  Set value in base context.
  5879 	* symtab.cc (symbol_table::symbol_record::symbol_record_rep::dump):
  5880 	Pass xcurrent_context to varval.
  5881 
  5882 2008-05-06  David Bateman  <dbateman@free.fr>
  5883 
  5884 	* ov-fcn-inline.cc (Finline): Also ignore NaN, Inf, pi, NA and eps.
  5885 
  5886 	* bitfcns.cc (BITOP): Treat octave_bool types and octave_scalar.
  5887 
  5888 2008-05-06  John W. Eaton  <jwe@octave.org>
  5889 
  5890 	* symtab.h (symbol_table::scope_id_cache): New class.  Use it to
  5891 	replace scope_ids_in_use and scope_ids_free_list.
  5892 	(symbol_table::erase_scope): Call free_scope.
  5893 	(symbol_table::free_scope): Call scope_id_cache::free.
  5894 
  5895 	* ov-fcn.h (octave_function::lock_subfunctions,
  5896 	octave_function::unlock_subfunctions): New virtual functions.
  5897 	(octave_function::lock_subfunctions): Call lock_subfunctions here.
  5898 	(octave_function::unlock_subfunctions): Call unlock_subfunctions here.
  5899 	* ov-usr-fcn.h (octave_user_function::lock_subfunctions,
  5900 	octave_user_function::unlock_subfunctions): New functions.
  5901 
  5902 	* symtab.h (symbol_table::lock_subfunctions,
  5903 	symbol_table::lock_subfunctions,
  5904 	symbol_table::fcn_info::lock_subfunction,
  5905 	symbol_table::fcn_info::unlock_subfunction,
  5906 	symbol_table::fcn_info::fcn_info_rep::lock_subfunction, 
  5907 	symbol_table::fcn_info::fcn_info_rep::unlock_subfunction):	
  5908 	New functions.
  5909 
  5910 	* symtab.h (symbol_table::set_scope, symbol_table::get_instance):
  5911 	Don't set instance unless allocation succeeds.
  5912 	(symbol_table::print_scope, symbol_table::do_print_scope): Delete.
  5913 	(symbol_table::free_scope): Avoid using invalid iterator.
  5914 	(symbol_table::erase_scope): Call free_scope here.
  5915 
  5916 	* ov-fcn-handle.cc (octave_fcn_handle::load_ascii,
  5917 	octave_fcn_handle::load_binary, octave_fcn_handle::load_hdf5):
  5918 	Cache anonymous name here.
  5919 	(octave_fcn_handle::octave_fcn_handle): Move here from
  5920 	ov-fcn-handle.h.  Cache name if function is user-defined.
  5921 
  5922 	* pt-id.cc (tree_identifier::dup): Avoid shadow warning.
  5923 
  5924 	* symtab.h (symbol_table::cache_name, symbol_table::do_cache_name):
  5925 	New functions.
  5926 	(symbol_table::get_instance): Cache top-level name here.
  5927 	* parse.y (finish_function): Call symbol_table::cache_name here.
  5928 
  5929 	* symtab.cc (F__dump_symtab_info__): New function.
  5930 	
  5931 	* symtab.cc (symbol_table::dump, symbol_table::dump_global,
  5932 	symbol_table::dump_functions, symbol_table::do_dump,
  5933 	symbol_table::symbol_record::symbol_record_rep::dump,
  5934 	symobl_table::fcn_info::fcn_info_rep::dump): New functions.
  5935 	* symtab.h: Provide decls.
  5936 	(symtab::scopes, symbol_table::symbol_record::dump,
  5937 	symbol_table::fcn_info::dump): New functions.
  5938 	(symtab::get_instance): New arg, create; if false throw error if
  5939 	instance for given scope is not found.
  5940 
  5941 	* ov-base.cc (octave_base_value::dump): New virtual function.
  5942 	* ov-base.h: Proivde decl.
  5943 	* ov.h (octave_value::dump): New function.
  5944 
  5945 	* ov.h, ov.c (octave_value::function_value): New const version.
  5946 	* ov-base.h, ov-base.cc (octave_base_value::function_value): Likewise.
  5947 	* ov-builtin.h (octave_builtin::function_value): Likewise.
  5948 	* ov-fcn-handle.h (octave_fcn_handle::function_value): Likewise.
  5949 	* ov-mex-fcn.h (octave_mex_function::function_value): Likewise.
  5950 	* ov-usr-fcn.h (octave_user_script::function_value,
  5951 	octave_user_function): Likewise.
  5952 	
  5953 	* symtab.h, symtab.cc: Use consistent naming scheme for iterator
  5954 	typedefs.  Change all uses.
  5955 
  5956 	* variables.cc (F__print_symtab_info__, F__print_symbol_info__):
  5957 	Delete.
  5958 
  5959 	* ov-cell.cc (Fstruct2cell): Handle structure arrays properly.
  5960 
  5961 2008-05-05  David Bateman  <dbateman@free.fr>
  5962 
  5963 	* sysdep.cc (Fputenv): Allow single arg. Alias to setenv.
  5964 
  5965 2008-05-05  John W. Eaton  <jwe@octave.org>
  5966 
  5967 	* input.cc (Fre_read_readline_init_file): New function.
  5968 
  5969 2008-05-04  John W. Eaton  <jwe@octave.org>
  5970 
  5971 	* ov-fcn-handle.cc (Ffunctions): Pass octave_value object instead
  5972 	of Cell in structure field assignment.
  5973 
  5974 	* parse.y (frob_function): Don't install subfunctions here.
  5975 	(finish_function): Handle subfunctions here.
  5976 	Conditionally define tree_function_def object here.
  5977 
  5978 	* symtab.h (symbol_table::fcn_info::fcn_info_rep::find_function):
  5979 	Initialize args_evaluated.
  5980 	* pt-id.cc (tree_identifier::rvalue): Likewise.
  5981 	* variables.cc (symbol_exist): Likewise.
  5982 
  5983 	* pt-id.h (tree_identifier::tree_identifer): Delete useless statement.
  5984 
  5985 	* variables.cc (get_global_value): Use symbol_table::global_varval
  5986 	instead of passing scope to symbol_table::varval.
  5987 	(set_global_value): Use symbol_table::global_varref
  5988 	instead of passing scope to symbol_table::varref.
  5989 	(do_who): Use symbol_table::glob_global_variables
  5990 	instead of passing scope to symbol_table::glob_variables.
  5991 	(do_clear_globals):
  5992 	Use symbol_table::global_variable_names and
  5993 	symbol_table::clear_global instead of passing scope to
  5994 	symbol_table::clear_variables.
  5995 	Use symbol_table::global_variable_names instead of passing scope
  5996 	to symbol_table::variable_names.
  5997 
  5998 	* unwind-prot.cc (unwind_protect::save_size_t): New function.
  5999 	(saved_variable::restore_value): Handle size_t values.
  6000 	(saved_variable::saved_variable): New size_t constructor.
  6001 	(saved_variable::size_type): New var_type enum value.
  6002 	(saved_variable::ptr_to_size_t, saved_variable::size_t_value):
  6003 	New union elements.
  6004 	* unwind-prot.h (unwind_protect::save_size_t): Provide decl
  6005 	(unwind_protect_size_t): New macro.
  6006 
  6007 	* toplev.cc (octave_call_stack::do_goto_frame,
  6008 	octave_call_stack::do_goto_frame_relative): New functions.
  6009 	(octave_call_stack::do_backtrace): Also return scope and context ids.
  6010 	* toplev.h 	(octave_call_stack::do_goto_frame,
  6011 	octave_call_stack::do_goto_frame_relative): Provide decls.
  6012 	(octave_call_stack::curr_frame): New data member.
  6013 	(octave_call_stack::octave_call_stack): Initialize it.
  6014 	(octave_call_stack::call_stack_elt::scope,
  6015 	(octave_call_stack::call_stack_elt::context): New data members.,
  6016 	(octave_call_stack::current_frame,
  6017 	(octave_call_stack::do_current_frame
  6018 	octave_call_stack::do_goto_frame,
  6019 	octave_call_stack::do_goto_frame_relative): New functions.
  6020 	(octave_call_stack::push, octave_call_stack::do_push):
  6021 	New args, scope and context.
  6022 	(octave_call_stack::do_push, octave_call_stack::do_pop): Update
  6023 	curr_frame if debugging.
  6024 
  6025 	* symtab.cc (symbol_table::global_table): New map for global values.
  6026 	(symbol_table::xcurrent_context): New variable for context info.
  6027 	* symtab.h: Provide decls.
  6028 	(symbol_table::global_varref, symbol_table::global_varval,
  6029 	symbol_table::current_context,
  6030 	symbol_table::set_scope_and_context,
  6031 	symbol_table::glob_global_variables,
  6032 	symbol_table::global_variable_names,
  6033 	symbol_table::top_leve_variable_names):
  6034 	New functions.
  6035 	(symbol_table::context_id, const_global_table_iterator,
  6036 	global_table_iterator): New typedefs.
  6037 	(symbol_table::xcurrent_context_this_table): New variable.
  6038 	(symbol_table::symbol_table): Initialize it.
  6039 	(symbol_table::set_scope): Use it.
  6040 	(symbol_table::symbol_record::find, symbol_table::do_find):
  6041 	Use symbol_table::global_varref instead of passing scope to
  6042 	symbol_table::varref.
  6043 	(symbol_table::symbol_record::symbol_record_rep::value_stack):
  6044 	Now a std::deque instead of a std::stack.
  6045 	(symbol_table::symbol_record::symbol_record_rep::push_context,
  6046 	symbol_table::symbol_record::symbol_record_rep::pop_context):
  6047 	Don't push or pop persistent of global variables.
  6048 	(symbol_table::symbol_record::symbol_record_rep::varval,
  6049 	Handle context here.  Call symbol_table::global_varval instead of
  6050 	passing scope to symbol_table::varval.
  6051 	(symbol_table::symbol_record::symbol_record_rep::varref):
  6052 	Handle context here.  Call symbol_table::global_varref instead of
  6053 	passing scope to symbol_table::varref.
  6054 	(symbol_table::symbol_record::varref,
  6055 	symbol_table::symbol_record::varval): No need to handle global
  6056 	values specially here.
  6057 	(symbol_table::symbol_record::push_context
  6058 	symbol_table::symbol_record::pop_context: No need to handle global
  6059 	or persistent values specially here.
  6060 	(symbol_table::get_instance): Don't return global scope.
  6061 	(symbol_table::do_push_context, symbol_table::do_pop_context):
  6062 	Increment/decrement xcurrent_context.
  6063 	(symbol_table::do_clear_global, symbol_table::do_clear_global_pattern):
  6064 	Use global_table instead of separate scope.	
  6065 
  6066 	* symtab.h, symtab.cc (symbol_table::fcn_info::fcn_info_rep::find,
  6067 	symbol_table::fcn_info::fcn_info_rep::find_function,
  6068 	symbol_table::fcn_info::find, symbol_table::fcn_info::find_function,
  6069 	symbol_table::find, symbol_table::find_function,
  6070 	symbol_table::do_find, symbol_table::insert, symbol_table::varref,
  6071 	symbol_table::varval, symbol_table::persistent_varref,
  6072 	symbol_table::persistent_varval, symbol_table::erase_persistent,
  6073 	symbol_table::is_variable, symbol_table::clear,
  6074 	symbol_table::clear_variables, symbol_table::clear_global,
  6075 	symbol_table::clear_variable, symbol_table::clear_global_pattern,
  6076 	symbol_table::clear_variable_pattern, symbol_table::push_context,
  6077 	symbol_table::pop_context, symbol_table::mark_hidden,
  6078 	symbol_table::mark_global, symbol_table::glob,
  6079 	symbol_table::glob_variables, symbol_table::variable_names,
  6080 	symbol_table::is_local_variable, symbol_table::is_global):
  6081 	Eliminate scope arg.  Change all uses.
  6082 	(symbol_table::erase_scope, symbol_table::dup_scope):
  6083 	Require scope arg.
  6084 
  6085 	* pt-stmt.cc (tree_statement::eval): Don't update statement info
  6086 	in octave_call_stack if debugging.
  6087 
  6088 	* pt-id.h (tree_identifier::xsym): New function.
  6089 	(tree_identifier::rvalue, tree_identifier::lvalue,
  6090 	tree_identifier::dup, tree_identifier::is_defined,
  6091 	tree_identifier::is_variable, tree_identifier::mark_global,
  6092 	tree_identifier::mark_as_static, tree_identifier::do_lookup,
  6093 	tree_identifier::mark_as_formal_parameter):
  6094 	Use xsym to access symbol.
  6095 	(tree_identifier::scope): New data member.
  6096 	(tree_identifier::tree_identifier): Initialize it.
  6097 
  6098 	* ov-usr-fcn.cc (octave_user_script::octave_user_script,
  6099 	octave_user_function::octave_user_function):
  6100 	Initialize call_depth to -1.
  6101 	(octave_user_script::do_multi_index_op): Fix comparison of
  6102 	call_depth with Vmax_recursion_depth.
  6103 	(octave_user_function::do_multi_index_op):
  6104 	Compare call depth > 0, instead of > 1.
  6105 	* ov-usr-fcn.h (octave_user_function::save_args_passed):
  6106 	Compare call depth > 0, instead of > 1.
  6107 
  6108 	* input.cc (Vdebugging): New variable.
  6109 	(get_user_input): Eliminate DEBUG argument.  Use global Vdebugging
  6110 	variable instead.  Change all callers.
  6111 	(saved_frame): New static variable.
  6112 	(restore_frame): New function.
  6113 	(do_keyboard): Unwind-protect Vdebugging here and set it to TRUE.
  6114 	Save current frame.  Use unwind_protect to restore it.
  6115 	(Fkeyboard): Save current frame.  Use unwind_protect to restore it.
  6116 	Move up the call stack one frame before calling do_keyboard.  
  6117 	* input.h (Vdebugging): Provide decl.
  6118 
  6119 	* mex.cc (mexGetVariable): Handle global vars with get_global_value.
  6120 	(mexPutVariable): Likewise, with set_global_value.
  6121 
  6122 	* octave.cc (intern_argv): Assert that we are at the top level.
  6123 	Don't pass scope to symbol_table::varref or symbol_table::mark_hidden.
  6124 
  6125 	* load-save.cc (install_loaded_variable): Use
  6126 	symbol_table::global_varref instead of passing global scope to
  6127 	symbol_table::varref.
  6128 
  6129 	* help.cc (make_name_list): Call symbol_table::global_variable_names
  6130 	and symbol_table::top_level_variable_names instead of passing
  6131 	scope to symbol_table::variable_names.
  6132 
  6133 	* debug.cc (do_dbupdown, Fdbup, Fdbdown): New functions.
  6134 	(current_stack_frame): Delete static variable.
  6135 	(Fdbstack): Rename from F__dbstack__.  Implement all of dbstack
  6136 	here instead of partially in dbstack.m.
  6137 
  6138 2008-05-03  John W. Eaton  <jwe@octave.org>
  6139 
  6140 	* pt-arg-list.cc (F__end__): If there are more dimensions than
  6141 	indices, smash extra dimensions first.
  6142 	(num_indices): New static variable.
  6143 	(tree_argument_list::convert_to_const_vector): Save and set it.
  6144 
  6145 	* parse.y (parse_fcn_file): Also temporarily set parser_end_of_input
  6146 	and get_input_from_eval_string to false while reading script files.
  6147 
  6148 2008-05-01  John W. Eaton  <jwe@octave.org>
  6149 
  6150 	* parse.y (load_fcn_from_file): Expect
  6151 	* dynamic-ld.cc (octave_dynamic_loader::do_load_oct):
  6152 	Search currently loaded .oct files by file name.  Don't search
  6153 	currently loaded files for functions.
  6154 	(octave_shlib_list::find_file, octave_shlib_list::do_find_file):
  6155 	New functions.
  6156 	(octave_shlib_list::search, octave_shlib_list::do_search): Delete.
  6157 
  6158 	* dynamic-ld.cc (octave_dynamic_loader::do_load_oct): No need to
  6159 	do load_path lookups here.
  6160 	(octave_shlib_list::iterator, octave_shlib_list::const_iterator):
  6161 	New typedefs.
  6162 	(octave_shlib_list::do_remove, octave_shlib_list::do_search,
  6163 	octave_shlib_list::do_display): Use them.
  6164 	(octave_mex_file_list::iterator, octave_mex_file_list::const_iterator):
  6165 	New typedefs.
  6166 	(octave_mex_file_list::do_remove): Use them.
  6167 
  6168 2008-05-03  Rafael Laboissiere <rafael@debian.org>
  6169 
  6170 	* DLD-FUNCTIONS/time.cc, file_io.cc: Use ischar instead of
  6171 	deprecated isstr.
  6172 
  6173 2008-04-30  John W. Eaton  <jwe@octave.org>
  6174 
  6175 	* dynamic-ld.cc (octave_dynamic_loader::do_load_oct):
  6176 	If function already exists, reload it anyway.  Clear existing
  6177 	oct_file only if reloading a function from the same file.
  6178 	(octave_shlib_list::display): New static function.
  6179 	(octave_shlib_list::do_display): New function.
  6180 
  6181 	* symtab.cc (out_of_date_check_internal): Better handling for
  6182 	functions found in files by relative file names.
  6183 	(load_out_of_date_fcn): New function.
  6184 
  6185 	* ls-oct-ascii.cc (extract_keyword): Return early if first char is
  6186 	not a comment character.
  6187 	(read_ascii_data): Accept .nargin. and .nargout. as valid identifiers.
  6188 
  6189 	* ov-fcn-handle.cc: Combine tests.  Test saving and loading
  6190 	handles for built-in, .oct, and .m functions.
  6191 	(octave_fcn_handle::save_ascii, octave_fcn_handle::save_binary,
  6192 	octave_fcn_handle::save_hdf5, octave_fcn_handle::print):
  6193 	Avoid dereferencing invalid pointer.
  6194 
  6195 	* data.cc: Fix tests.  Use "%!assert", not "%! assert" for
  6196 	individual assert tests.
  6197 
  6198 2008-04-30  Jaroslav Hajek  <highegg@gmail.com>
  6199 
  6200 	* ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h,
  6201 	ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h,
  6202 	ov-cx-sparse.cc, ov-cx-sparse.h, ov-intx.h, ov-range.h,
  6203 	ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h,
  6204 	ov-scalar.cc, ov-scalar.h, ov.h:
  6205  	Provide log2 mapper function.
  6206 	* data.cc (Flog2): New function.
  6207 
  6208 2008-04-25  John W. Eaton  <jwe@octave.org>
  6209 
  6210 	* pt-stmt.h (tree_statement_list::function_body): New data member.
  6211 	(tree_statement_list::tree_statement_list): Initialize it.
  6212 	(tree_statement_list::mark_as_script_body): New function.
  6213 	(tree_statement::maybe_echo_code, tree_statement::eval):
  6214 	Rename in_function_body argument to in_function_or_script_body.
  6215 	* pt-stmt.cc (tree_statement::eval): Only set statement in call
  6216 	stack if in_function_or_script_body is true.
  6217 
  6218 	* pt-stmt.cc (tree_statement_list::eval): Call elt->eval with
  6219 	function_body || script_body.
  6220 	* ov-usr-fcn.cc (octave_user_script::octave_user_script):
  6221 	command list as script body here.
  6222 	(octave_user_function::octave_user_function):
  6223 	Mark command list as function body here.
  6224 	* parse.y (start_function, make_anon_fcn_handle): Not here.
  6225 
  6226 	* toplev.h, toplev.cc (octave_call_stack::backtrace,
  6227 	octave_call_stack::do_backtrace): New arg, N.  Skip innermost N
  6228 	stack frames.
  6229 
  6230 	* debug.cc (F__dbstack__): New function.
  6231 	(current_stack_frame): New static variable.
  6232 
  6233 	* error.cc (verror, pr_where): Use octave_call_stack instead of
  6234 	tree_statement stack to get line and column information.
  6235 	(pr_where): Use octave_call_stack instead of tree_statement stack
  6236 	to get current statement.
  6237 	* input.cc (get_user_input): Extract current line number from
  6238 	octave_call_stack instead of tree_statement_stack.
  6239 	* pt-stmt.cc (tree_statement::eval): Put current statement on
  6240 	octave_call_stack instead of tree_statement_stack.
  6241 	* pt-stmt.h, pt-stmt.cc (class tree_statement_stack): Delete.
  6242 
  6243 	* toplev.h, toplev.cc (octave_call_stack::call_stack_elt):
  6244 	New nested struct.
  6245 	(octave_call_stack::cs): Now a deque of call_stack_elts.
  6246 	Change all uses.
  6247 	(octave_call_stack::current_statement,
  6248 	octave_call_stack::current_line,
  6249 	octave_call_stack::current_column,
  6250 	octave_call_stack::top_statement,
  6251 	octave_call_stack::set_statement, octave_call_stack::backtrace):
  6252 	New static functions.
  6253 	(octave_call_stack::do_current_line,
  6254 	octave_call_stack::do_current_column,
  6255 	octave_call_stack::do_top_statement,
  6256 	octave_call_stack::do_set_statement,
  6257 	octave_call_stack::do_backtrace): New member functions.
  6258 
  6259 2008-04-24  John W. Eaton  <jwe@octave.org>
  6260 
  6261 	* toplev.h, toplev.cc (octave_call_stack::unwind_pop_script):
  6262 	Delete unused function.
  6263 
  6264 	* ov-usr-fcn.cc: Move constructor definitions here, from ov-usr-fcn.h.
  6265 	* ov-usr-fcn.h (octave_user_script::octave_user_script): 
  6266 	Also Initialize t_parsed and t_checked.
  6267 
  6268 2008-04-24  Jaroslav Hajek  <highegg@gmail.com>
  6269 
  6270 	* ov-usr-fcn.h (octave_user_script::octave_user_script): 
  6271 	Initialize call_depth.
  6272 
  6273 2008-04-24  John W. Eaton  <jwe@octave.org>
  6274 
  6275 	* file-io.cc (do_stream_open): Return -1 for directories.
  6276 
  6277 2008-04-23  John W. Eaton  <jwe@octave.org>
  6278 
  6279 	* DLD-FUNCTIONS/__qp__.cc (qp): Avoid bounds error when removing
  6280 	constraint from active set.
  6281 
  6282 	* lex.l (text_yyinput): New function.  Use it in place of yyinput.
  6283 	(next_token_is_sep_op, scan_for_comments, eat_whitespace,
  6284 	have_continuation): No need to check for CR or CRLF.
  6285 	* parse.y (text_getc): Also return NL for single CR.
  6286 
  6287 2008-04-32  Michael Goffioul  <michael.goffioul@gmail.com>
  6288 
  6289 	* input.cc (get_input_from_file): Open file in binary mode.
  6290 
  6291 2008-04-20  John W. Eaton  <jwe@octave.org>
  6292 
  6293 	* oct-stream.cc (octave_stream::read): Allow single data type
  6294 	specification but return double.
  6295 
  6296 2008-04-18  John W. Eaton  <jwe@octave.org>
  6297 
  6298 	* lex.l, lex.h (process_comment): New arg, start_in_block.  Call
  6299 	grab_block_comment if start_in_block is true.  Change all uses.
  6300 	* lex.l (grab_block_comment): New function.
  6301 	(grab_comment_block): New arg, at_bol.  Change all uses.
  6302 	Call grab_block_comment if we find the start of a block comment.
  6303 	(block_comment_nesting_level): New static variable.
  6304 	(^{S}*{CCHAR}\{{S}*{NL}): New rule.
  6305 	(<<EOF>>): Warn about open block comments.
  6306 	(reset_parser): Set block_comment_nesting_level to zero.
  6307 	* parse.y (parse_fcn_file): Stash help text from
  6308 	gobble_leading_white_space after calling reset_parser.
  6309 	(text_getc): Keep track of input_line_number here.
  6310 	(skip_white_sapce): Don't increment input_line_number here.
  6311 	* lex.l (grab_comment_block): Or here.
  6312 
  6313 	* lex.l (Vdisplay_tokens): New static variable.
  6314 	(F__display_tokens__): New function.
  6315 	(display_token): New function.
  6316 	(DISPLAY_TOK_AND_RETURN): New macro.
  6317 	(COUNT_TOK_AND_RETURN): Use DISPLAY_TOK_AND_RETURN.
  6318 	(<COMMAND_START>[\"\'], "'", \"): Move handle_string outside of
  6319 	COUNT_TOK_AND_RETURN macro parameter list.
  6320 	(handle_identifier): Don't use macros to return token values here.
  6321 	(<MATRIX_START>{S}*{COMMENT}{SNLCMT}*|<MATRIX_START>{S}*{NL}{SNLCMT}*):
  6322 	Recognize block comments here.
  6323 	
  6324 	* pr-output.cc (Fdisp): If nargout > 0, produce an sq-string
  6325 	unless arg is a dq-string.
  6326 
  6327 2008-04-17  John W. Eaton  <jwe@octave.org>
  6328 
  6329 	* parse.y (looks_like_copyright): Handle leading whitespace.
  6330 	(class stdio_stream_reader): New class.
  6331 	(skip_white_space): New function.
  6332 	(gobble_leading_white_space): New arg, EOF.  Change all uses.
  6333 	Use skip_white_space and grab_comment_block to process comments.
  6334 	(process_leading_comments): Delete.
  6335 	(parse_fcn_file): Call gobble_leading_white_space instead of
  6336 	process_leading_comments.
  6337 	Skip parsing if gobble_leading_white_space detects EOF.
  6338 	* lex.l (process_comment): Delete CCHAR arg.  Change all uses.
  6339 	({CCHAR}): Unput comment character before calling process_comment.
  6340 	(grab_comment_block): Rename from grab_help_text.  Don't discard
  6341 	spaces from comment text.  Update input_line_number and
  6342 	current_input_column as characters are read.  Warn only once about
  6343 	incompatible comment characters in a given block of comments.
  6344 	Use stream_reader class instead of accessing yyinput and yyunput
  6345 	directly.
  6346 	(class flex_stream_reader): New class.
  6347 	(process_comment): Use grab_comment_block to handle all comments.
  6348 	Don't call maybe_gripe_matlab_incompatible_comment.
  6349 	Always store comment text returned by grab_comment_block.
  6350 	* lex.h (grab_comment_block): Provide decl.
  6351 	(class stream_reader): New class.
  6352 
  6353 2008-04-16  John W. Eaton  <jwe@octave.org>
  6354 
  6355 	* parse.y (Fautoload, Fmfilename): Call
  6356 	octave_call_stack::caller_user_code, not
  6357 	octave_call_stack::caller_user_script_or_function.
  6358 	* toplev.cc, toplev.h (octave_call_stack::caller_user_code):
  6359 	Rename from octave_call_stack::caller_user_script_or_function.
  6360 	(octave_call_stack::do_caller_user_code): Rename from
  6361 	octave_call_stack::do_caller_user_script_or_function.
  6362 	* ov-usr-fcn.h (class octave_user_code): New class, derived from
  6363 	octave_fucntion.
  6364 	(class octave_user_function, class octave_user_script): Derive
  6365 	from octave_user_code, not octave_function.
  6366 	(octave_user_script::user_code_value,
  6367 	octave_user_function::user_code_value): New functions.
  6368 	* ov.cc (octave_value::user_script_value,
  6369 	octave_value::user_code_value): New functions.
  6370 	* ov.h: Provide decls.
  6371 	(octave_value::is_user_code, octave_value::is_user_script):
  6372 	New functions.
  6373 	* ov-base.cc (octave_base_value::user_script_value,
  6374 	octave_base_value::user_code_value): New virutal functions.
  6375 	* ov-base.h: Provide decls.
  6376 	(octave_base_value::is_user_script, octave_base_value::is_user_code):
  6377 	New virtual functions.
  6378 	* error.cc (verror, pr_where, error_2, warning_1):
  6379 	Call octave_call_stack::caller_user_code instead of
  6380 	octave_call_stack::caller_user_script_or_function
  6381 	* input.cc (get_user_input): Likewise.
  6382 	* debug.h (bp_table::breakpoint_map): Use pointer to
  6383 	octave_user_code instead of octave_user_function.
  6384 	* debug.cc (get_user_code): Rename from get_user_function.
  6385 	Return pointer to octave_user_code instead of octave_user_function.
  6386 	Change all uses.
  6387 	(bp_table::do_add_breakpoint, bp_table::do_remove_breakpoint,
  6388 	bp_table::do_remove_all_breakpoints_in_file,
  6389 	bp_table::do_get_breakpoint_list):
  6390 	Avoid dereferencing invalid pointers.
  6391 	(parse_dbfunction_params): Call
  6392 	octave_call_stack::caller_user_code, not
  6393 	octave_call_stack::caller_user_script_or_function. 
  6394 
  6395 	* load-save.cc (Fsave): Fix continuation character in doc string.
  6396 
  6397 	* pt-walk.h (tree_walker::visit_function_def): New function.
  6398 	* pt-pr-code.cc (tree_print_code::visit_function_def): New function.
  6399 	* pt-pr-code.h: Provide decl.
  6400 	* pt-bp.cc (tree_breakpoint::visit_function_def): New function.
  6401 	* pt-bp.h: Provide decl.
  6402 	* pt-check.cc (tree_checker::visit_function_def): New function.
  6403 	* pt-check.h: Provide decl.
  6404 
  6405 	* parse.y (finish_function): Return ptr to tree_function_def object
  6406 	if curr_fcn_ptr is not defined.  Avoid dereferencing invalid pointers.
  6407 	(frob_function): Set curr_fcn_ptr only when reading a function file.
  6408 	(function): Call finish function in both cases to generate value
  6409 	of production.
  6410 
  6411 	* pt-cmd.h, pt-cmd.cc (tree_function_def): New class.
  6412 
  6413 	* parse.y (parse_and_execute): Delete.
  6414 	* parse.h: Delete decl.
  6415 
  6416 	* pt-pb.cc (tree_breakpoint::visit_octave_user_script): New function.
  6417 	* pt-pb.h: Provide decl.
  6418 	* pt-check.cc (tree_checker::visit_octave_user_script): New function.
  6419 	* pt-check.h: Provide decl.
  6420 	* pt-pr-code.cc (tree_print_code::visit_octave_user_script):
  6421 	New function.
  6422 	* pt-pr-code.h: Provide decl.
  6423 	* pt-walk.h (visit_octave_user_script): New pure virtual function.
  6424 
  6425 	* parse.y (make_script, process_leading_comments,
  6426 	looking_at_function_keyword): New static functions.
  6427 	(SCRIPT): New token.
  6428 	(script): New non-terminal.
  6429 	(command): Handle script here.
  6430 	(parse_fcn_file): Eliminate EXEC_SCRIPT argument.  Change all
  6431 	callers.  Parse scripts and return an octave_user_script rather
  6432 	than executing them here.
  6433 	(load_fcn_from_file): Handle script and function files the same.
  6434 	(source_file): Call d_multi_index_op on object returned by
  6435 	parse_fcn_file.
  6436 	(is_function_file): Delete.
  6437 	(gobble_leading_white_space): Don't recurse.  Simplify.  Eliminate
  6438 	SKIP_CODE, IN_PARTS, and SAVE_COPYRIGHT arguments.  Change all
  6439 	callers.
  6440 	(octave_function_ptr): Delete unused typedef.
  6441 	(get_help_from_file): If help text isn't found by
  6442 	gobble_leading_whitespace, parse file to find it.
  6443 
  6444 	* lex.l (SCRIPT_FILE_BEGIN): New exclusive start state.
  6445 	(prep_lexer_for_script): New function.
  6446 	(grab_help_text): New arg, EOF.
  6447 	(process_comment): New function.
  6448 	({CCHAR}): Use it.
  6449 	* lex.h (prep_lexer_for_script): Provide decl.
  6450 
  6451 	* lex.h, lex.cc, parse.y (lexical_feedback::beginning_of_function):
  6452 	Delete data member and all uses.
  6453 
  6454 	* ov-usr-fcn.cc (octave_user_script::~octave_user_script):
  6455 	Move destructor here from ov-usr-fcn.h.  Delete cmd_list.
  6456 	(octave_user_script::subsref, octave_user_script::accept,
  6457 	octave_user_script::traceback_error): New functions.
  6458 	(octave_user_script::do_multi_index_op):
  6459 	Execute cmd_list instead of calling source_file.
  6460 	* ov-usr-fcn.h (octave_usr_script::cmd_list,
  6461 	octave_usr_script::t_parsed, octave_usr_script::t_checked,
  6462 	octave_usr_script::call_depth): New data members.
  6463 	(octave_usr_script::octave_usr_script): Initialize all data members.
  6464 	(octave_usr_script::octave_usr_script (const std::string&, const
  6465 	std::string&, tree_statement_list *, const std::string&)):
  6466 	New constructor.
  6467 	(octave_usr_script::function_value,
  6468 	octave_usr_script::user_script_value, mark_fcn_file_up_to_date,
  6469 	octave_usr_script::stash_fcn_file_time,
  6470 	octave_usr_script::time_parsed, octave_usr_script::time_checked,
  6471 	octave_usr_script::subsref, octave_usr_script::body): New functions.
  6472 	(octave_user_script::subsref, octave_user_script::accept,
  6473 	octave_user_script::traceback_error): Provide decls.
  6474 
  6475 2008-04-14  Jaroslav Hajek  <highegg@gmail.com>
  6476 
  6477 	* oct-stream.cc (octave_scan_1): Ensure digit following X is hex
  6478 	digit before reading number as hex.
  6479 
  6480 2008-04-14  John W. Eaton  <jwe@octave.org>
  6481 
  6482 	* file-io.cc (Ffread): Allow SKIP arg to be omitted.
  6483 	(Ffwrite): Likewise.  Handle args in a way consistent with Ffread.
  6484 
  6485 2008-04-09  Michael Goffioul  <michael.goffioul@gmail.com>
  6486 
  6487 	* DLD-FUNCTIONS/dispatch.cc: Replace system("echo '...'>...") calls
  6488 	with real file writing.
  6489 
  6490 2008-04-07  Jaroslav Hajek  <highegg@gmail.com>
  6491 
  6492 	* DLD-FUNCTIONS/qr.cc (Fqrshift): New function.
  6493 	* DLD-FUNCTIONS/chol.cc (Fcholinsert, Fcholdelete, Fcholshift):
  6494 	New functions.
  6495 
  6496 2008-04-04  John W. Eaton  <jwe@octave.org>
  6497 
  6498 	* parse.y (make_constant): Handle escape sequences in dq-strings.
  6499 
  6500 2008-04-03  John W. Eaton  <jwe@octave.org>
  6501 
  6502 	* parse.y (make_constant): Also stash original text for strings.
  6503 
  6504 	* ov-fcn-handle.cc (octave_fcn_handle::subsref):
  6505 	Don't call next_subsref here.
  6506 
  6507 2008-04-01  John W. Eaton  <jwe@octave.org>
  6508 
  6509 	* pt-id.h (do_lookup (bool&, bool)): Delete.
  6510 	(do_lookup (tree_argument_list *, const string_vector&,
  6511 	octave_value_list&, bool&)): Call MAYBE_DO_BREAKPOINT here.
  6512 
  6513 2008-04-02  David Bateman  <dbateman@free.fr>
  6514 
  6515 	* graphics.cc (void gnuplot_backend::close_figure (const
  6516 	octave_value&) const): Allow for an input and output stream.
  6517 
  6518 2008-03-28  Jaroslav Hajek  <highegg@gmail.com>
  6519 
  6520 	* DLD-FUNCTIONS/lookup.cc: New file.
  6521 	* Makefile.in (DLD_XSRC): Add it to the list.
  6522 
  6523 2008-03-28  David Bateman  <dbateman@free.fr>
  6524 
  6525 	* ov-complex.cc (SCALAR_MAPPER, CD_SCALAR_MAPPER): New macro for
  6526 	complex values with zero imaginary part.
  6527 	(erf, erfc, gamma, lgamma): Use the new mappers to define these
  6528 	mapper functions.
  6529 	* ov-complex.h (erf, erfc, gamma, lgamma): Declare them.
  6530 	* ov-cx-mat.cc (any_element_less_than, any_element_greater_than):
  6531 	New static functions
  6532 	(DARRAY_MAPPER, CD_ARRAY_MAPPER): New macro for complex values
  6533 	with zero imaginary part.
  6534 	(erf, erfc, gamma, lgamma): Use the new mappers to define these
  6535 	mapper functions.
  6536 	* ov-cx-mat.h (erf, erfc, gamma, lgamma): Declare them.
  6537 	* ov-cx-sparse.cc (any_element_less_than, any_element_greater_than):
  6538 	New static functions
  6539 	(DSPARSE_MAPPER, CD_SPARSE_MAPPER): New macro for complex values
  6540 	with zero imaginary part.
  6541 	(erf, erfc, gamma, lgamma): Use the new mappers to define these
  6542 	mapper functions.
  6543 	* ov-cx-sparse.h (erf, erfc, gamma, lgamma): Declare them.
  6544 	* ov-re-sparse.cc (CD_SPARSE_MAPPER): Use correct mapper functors.
  6545 	* mapper.cc: Add tests for the above cases.
  6546 
  6547 2008-03-27  John W. Eaton  <jwe@octave.org>
  6548 
  6549 	* DLD-FUNCTIONS/max.cc: Rename from minmax.cc.
  6550 	* Makefile.in (DLD_XSRC): Rename minmax.cc to max.cc.
  6551 
  6552 	* DLD-FUNCTIONS/__convn__.cc (convn): Use traits class and
  6553 	typedefs to allow all types to be deduced from argument types.
  6554 
  6555 2008-03-27  Søren Hauberg  <hauberg@gmail.com>
  6556 
  6557 	* DLD-FUNCTIONS/__convn__.cc (Fconvn): Allow convolving real data with
  6558 	complex data.
  6559 
  6560 2008-03-26  John W. Eaton  <jwe@octave.org>
  6561 
  6562 	* ov-range.h (octave_range::subsref (const std::string&,
  6563 	const std::list<octave_value_list>&, int)):
  6564 	Forward to simple subsref.
  6565 	* ov-base-sparse.h (octave_base_sparse<T>::subsref (const std::string&,
  6566 	const std::list<octave_value_list>&, int)): Likewise.
  6567 	* ov-base-scalar.h (octave_base_sparse<T>::subsref (const std::string&,
  6568 	const std::list<octave_value_list>&, int)): Likewise.
  6569 	* ov-base-matrix.h (octave_base_matrix<T>::subsref (const std::string&,
  6570 	const std::list<octave_value_list>&, int)): Likewise.
  6571 
  6572 	* ov-struct.cc, ov-cell.h (octave_cell::subsref (const
  6573 	std::string&, const std::list<octave_value_list>&, int)):
  6574 	Define nargout version of subsref instead of simple version.
  6575 	* ov-struct.cc, ov-struct.h (octave_struct::subsref (const
  6576 	std::string&, const std::list<octave_value_list>&, int)):
  6577 	Define nargout version of subsref instead of simple version.
  6578 
  6579 	* ov-builtin.h (octave_builtin::subsref (const std::string&,
  6580 	const std::list<octave_value_list>&): Forward to nargout subsref.
  6581 	* ov-cell.h (octave_cell::subsref (const std::string&,
  6582 	const std::list<octave_value_list>&)):
  6583 	* ov-class.h (octave_class::subsref (const std::string&,
  6584 	const std::list<octave_value_list>&): Likewise.
  6585 	* ov-fcn-handle.h (octave_fcn_handle::subsref (const std::string&,
  6586 	const std::list<octave_value_list>&): Likewise.
  6587 	* ov-list.h (octave_list::subsref (const std::string&,
  6588 	const std::list<octave_value_list>&): Likewise.
  6589 	* ov-mex-fcn.h (octave_mex_function::subsref (const std::string&,
  6590 	const std::list<octave_value_list>&): Likewise.
  6591 	* ov-struct.h (octave_struct::subsref (const std::string&,
  6592 	const std::list<octave_value_list>&)):
  6593 	* ov-usr-fcn.h (octave_user_function::subsref (const std::string&,
  6594 	const std::list<octave_value_list>&): Likewise.
  6595 
  6596 	* ov.cc (octave_value::subsref): Use value of nargout instead of
  6597 	is_constant method to decide which type of subsref method to call.
  6598 	(octave_value::assign): Always call simple subref method here.
  6599 
  6600 	* DLD-FUNCTIONS/chol.cc, DLD-FUNCTIONS/det.cc,
  6601 	DLD-FUNCTIONS/getpwent.cc, DLD-FUNCTIONS/inv.cc,
  6602 	DLD-FUNCTIONS/qr.cc, DLD-FUNCTIONS/symrcm.cc, file-io.cc):
  6603 	Texinfo fixes.
  6604 
  6605 2008-03-26  Søren Hauberg  <hauberg@gmail.com>
  6606 
  6607 	* DLD-FUNCTIONS/__convn__.cc (Fconvn):
  6608 	Call complex_array_value to extract N-d array.
  6609 
  6610 2008-03-26  John W. Eaton  <jwe@octave.org>
  6611 
  6612 	* ov-base-sparse.cc (octave_base_sparse<T>::print_raw):
  6613 	Also display percentage of elements that are nonzero.
  6614 
  6615 2008-03-25  Søren Hauberg  <hauberg@gmail.com>
  6616 
  6617 	* DLD-FUNCTIONS/__convn__.cc: New file.
  6618 	* Makefile.in: Add __convn__.cc
  6619 
  6620 2008-03-25  David Bateman  <dbateman@free.fr>
  6621 
  6622 	* DLD-FUNCTIONS/hex2num.cc: New function
  6623 	* Makefile.in (DLD_XSRC): Add hex2num.cc.
  6624 
  6625 2008-03-25  Jaroslav Hajek  <highegg@gmail.com>
  6626 
  6627 	* mappers.cc (Fexpm1, Flog1p): New functions.
  6628 	* ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h,
  6629 	ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h,
  6630 	ov-cx-sparse.cc, ov-cx-sparse.h, ov-range.h, ov-re-mat.cc,
  6631 	ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h, ov-scalar.cc,
  6632 	ov-scalar.h, ov.h:
  6633 	Provide expm1 and log1p functions.
  6634 
  6635 	* mappers.cc (Froundb): New functions
  6636 	* ov-base.cc, ov-base.h, ov-bool-mat.h, ov-bool-sparse.h,
  6637 	ov-bool.h, ov-complex.cc, ov-complex.h, ov-cx-mat.cc, ov-cx-mat.h,
  6638 	ov-cx-sparse.cc, ov-cx-sparse.h, ov-intx.h, ov-range.h,
  6639 	ov-re-mat.cc, ov-re-mat.h, ov-re-sparse.cc, ov-re-sparse.h,
  6640 	ov-scalar.cc, ov-scalar.h, ov.h:
  6641  	Provide roundb mapper function.
  6642 
  6643 2008-03-25  Jaroslav Hajek  <highegg@gmail.com>
  6644 
  6645 	* load-save.cc (save_vars): Handle -struct modifier.
  6646 	(save_fields): New function.
  6647 	(Fsave): Document new feature.
  6648 
  6649 2008-03-25  John W. Eaton  <jwe@octave.org>
  6650 
  6651 	* lex.h (lexical_feedback::looking_at_initializer_expression):
  6652 	New data member.
  6653 	* lex.l (lexical_feedback::init): Initialize it.
  6654 	(handle_identifier): Don't unconditionally force identifiers to be
  6655 	variables in the current scope.  Don't call force_local_variable
  6656 	for symbols that appear in parameter initializer expressions.
  6657 	* parse.y (decl_param_init): New parser "subroutine".
  6658 	(decl2): Use it.  Set lexer_flags.looking_at_initializer_expression
  6659 	to false after parsing initializer.
  6660 
  6661 2008-03-24  David Bateman  <dbateman@free.fr>
  6662 
  6663 	* data.cc (map_s_s): Fix for sparse/sparse mappers that resulted
  6664 	in an empty sparse matrix being returned.
  6665 	(Fhypot): New function based on the libm hypot function.
  6666 
  6667 2008-03-24  Primozz Peterlin  <primozz.peterlin@gmail.com>
  6668 
  6669 	* variables.cc (Fexist): Doc fix.
  6670 
  6671 2008-03-23  David Bateman  <dbateman@free.fr>
  6672 
  6673 	* OPERATORS/op-int.h: Add el_div and el_ldiv operators to the
  6674 	binops that were missing them. Added elem_pow functions for mixed
  6675 	integer floating point cases. Initialize the mixed integer
  6676 	floating point cases.
  6677 
  6678 2008-03-21  John W. Eaton  <jwe@octave.org>
  6679 
  6680 	* ov-cell.h (octave_cell::is_constant): Return true.
  6681 	* ov-cell.h, ov-cell.cc (octave_cell::subsref (const std::string&,
  6682 	const std::list<octave_value_list>&)): Define.
  6683 	(octave_cell::subsref (const std::string&,
  6684 	const std::list<octave_value_list>&, int)): Call panic_impossible.
  6685 
  6686 	* ov-struct.h (octave_struct::is_constant): New function.
  6687 	* ov-struct.h, ov-struct.cc (octave_struct::subsref (const std::string&,
  6688 	const std::list<octave_value_list>&)): Define.
  6689 	(octave_struct::subsref (const std::string&,
  6690 	const std::list<octave_value_list>&, int)): Call panic_impossible.
  6691 
  6692 2008-03-21  David Bateman  <dbateman@free.fr>
  6693 
  6694 	* DLD-FUNCTIONS/amd.cc: New file.
  6695 	* Makefile.in (DLD_XSRC): Add amd.cc.
  6696 
  6697 2008-03-20  David Bateman  <dbateman@free.fr>
  6698 
  6699 	* Cell.cc (Cell Cell::diag (void) const): delete.
  6700 	(Cell Cell::diag (octave__idx_type) const):Rewrite in terms of
  6701 	template classes function.
  6702 	* Cell.h (Cell diag (void) const): delete.
  6703 
  6704 	* ov.h (octave_value diag (octave_idx_type) const): New method.
  6705 	* ov-base.h (virtual octave_value diag (octave_idx_type) const):
  6706 	New virtual method.
  6707 	* ov-base.cc (octave_value octave_base_value::diag
  6708 	(octave_idx_type) const): New default method.
  6709 	
  6710 	* ov-base-mat.h (octave_value diag (octave_idx_type) const): New
  6711 	method. 
  6712 	* ov-base-sparse.h (octave_value diag (octave_idx_type) const): New
  6713 	method. 
  6714 	* ov-base-scalar.h (octave_value diag (octave_idx_type) const): New
  6715 	method. 
  6716 	* ov-range.h (octave_value diag (octave_idx_type) const): New
  6717 	method. 
  6718 
  6719 	* data.cc (make_diag, make_spdiag): Delete.
  6720 	(Fdiag): Rewrite in terms of octave_value diag function.
  6721 		
  6722 	* data.cc (static octave_value make_diag (const Cell&,
  6723 	octave_idx_type)): New instantiation of template function.
  6724 	(static octave_value make_diag (const octave_value&,
  6725 	octave_idx_type)): Allow cell arrays.
  6726 
  6727 	* Cell.cc (Cell Cell::diag (void) const, Cell Cell::diag
  6728 	(octave__idx_type)): New methods for diagonal matrices.
  6729 	* Cell.h (Cell Cell::diag (void) const, Cell Cell::diag
  6730 	(octave__idx_type)): Declare them.
  6731 
  6732 2008-03-18  David Bateman  <dbateman@free.fr>
  6733 
  6734 	* ov-re-mat.cc (lgamma): Convert to a allow negative arguments.
  6735 	* ov-re-sparse.cc (lgamma): ditto.
  6736 	* ov-scalar.cc (lgamma): ditto.
  6737 
  6738 	* DLD-FUNCTIONS/minmax.cc: 64-bit indexing fix.
  6739 
  6740 2008-03-13  John W. Eaton  <jwe@octave.org>
  6741 
  6742 	* ov-usr-fcn.cc (octave_user_function::octave_user_function):
  6743 	Handle num_named_args in initialization list instead of functinon body.
  6744 
  6745 	* octave.gperf: Eliminate varargin and varargout keywords.
  6746 	* lex.l (is_keyword_token): Eliminate varargin_kw and varargout_kw
  6747 	from switch statement.
  6748 	* parse.y (return_list): Eliminate special cases for VARARGOUT.
  6749 	Call validate on tree_parameter_list object.
  6750 	(param_list1): Likewise, for VARARGIN.
  6751 	* pt-misc.cc (tree_parameter_list::validate): New function.
  6752 	(tree_parameter_list::mark_varargs_only): Now private.
  6753 	(tree_parameter_list::mark_varargs): Now private.
  6754 	* pt-misc.h (tree_parameter_list::validate): Provide decl.
  6755 
  6756 2008-03-12  John W. Eaton  <jwe@octave.org>
  6757 
  6758 	* variables.cc (Vwhos_line_format): Omit print_dims parameter.
  6759 	Fix doc string in Vwhos_line_format DEVAR.
  6760 	(symbol_record_name_compare): Delete unused function.
  6761 	(whos_parameter::dimensions): Delete struct field.
  6762 	(symbol_info_list): New class.
  6763 	(dimensions_string_req_first_space, make_dimensions_string,
  6764 	dimensions_string_req_total_space): Delete.
  6765 	(parse_whos_line_format): Move functionality to new
  6766 	symbol_info_list class.
  6767 	(print_symbol_info_line): Move functionality to new
  6768 	symbol_info_list::struct symbol_info::displaly_line method.
  6769 	(do_who): Simplify with new symbol_info_list class.
  6770 	Handle index expressions in addition to symbol names.
  6771 
  6772 	* DLD-FUNCTIONS/dlmread.cc (Fdlmread): Fix separator detection.
  6773 
  6774 2008-03-11  John W. Eaton  <jwe@octave.org>
  6775 
  6776 	* DLD-FUNCTIONS/eig.cc (Feig): Handle possible error from EIG.
  6777 	* DLD-FUNCTIONS/qp.cc (qp, Fqp): Likewise.
  6778 	* xpow.cc (xpow): Likewise.
  6779 
  6780 2008-03-11  John W. Eaton  <jwe@octave.org>
  6781 
  6782 	* DLD-FUNCTIONS/dlmread.cc: Style fixes.
  6783 
  6784 2008-03-11  David Bateman  <dbateman@free.fr>
  6785 
  6786 	* DLD-FUNCTIONS/dlmread.cc: Function ported from octave forge. Add
  6787 	spreadsheet style ranges.
  6788 	* Makefile.in (DLD_XSRC): Add dlmread.cc.
  6789 
  6790 2008-03-10  John W. Eaton  <jwe@octave.org>
  6791 
  6792 	* mex.cc (mxCreateLogicalScalar): Argument is now mxLogical.
  6793 
  6794 	* data.cc (Fisfloat): New function.
  6795 	* ov.h (octave_value::is_float_type): Ditto.
  6796 	* ov-base.h (octave_base_value::is_float_type): Ditto.
  6797 	* ov-complex.h (octave_complex): Ditto.
  6798 	* ov-cx-mat.h (octave_complex_matrix): Ditto.
  6799 	* ov-cx-sparse.h (octave_sparse_complex_matrix): Ditto.
  6800 	* ov-range.h (octave_range): Ditto.
  6801 	* ov-re-mat.h (octave_matrix): Ditto.
  6802 	* ov-re-sparse.h (octave_sparse_matrix): Ditto.
  6803 	* ov-scalar.h (octave_scalar): Ditto.
  6804 
  6805 	* mxarray.h.in (mxLogical): Use unsigned char instead of int.
  6806 	From Antwerpen, G. (Gert) van <gert.vanantwerpen@tno.nl>.
  6807 
  6808 2008-03-07  John W. Eaton  <jwe@octave.org>
  6809 
  6810 	* ov-struct.cc (octave_struct::print_raw): Don't print contents fo
  6811 	struct arrays that have more than one element.
  6812 
  6813 2008-03-06  David Bateman  <dbateman@free.fr>
  6814 
  6815 	* DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Document that
  6816 	the initial interpretation of a positive definite return from
  6817 	matrix_type is that the matrix is "probably" positive definite and
  6818 	not certainly so.
  6819 
  6820 2008-03-06  John W. Eaton  <jwe@octave.org>
  6821 
  6822 	* parse.y: Move tests here from test/test_eval.m.
  6823 	* DLD-FUNCTIONS/fft.cc: Move tests here from test/test_signal.m.
  6824 	* DLD-FUNCTIONS/dassl.cc: Move tests here from test/test_diffeq.m.
  6825 	* DLD-FUNCTIONS/lsode.cc: Move tests here from test/test_diffeq.m.
  6826 	* DLD-FUNCTIONS/quad.cc: Move tests here from test/test_quad.m.
  6827 	* DLD-FUNCTIONS/time.cc: Move tests here from test/test_system.m.
  6828 
  6829 2008-03-06  Alexander Barth  <barth.alexander@gmail.com>
  6830 
  6831 	* DLD-FUNCTIONS/__lin_interpn__.cc (lookup):
  6832 	Handle decreasing coordinate values.
  6833 
  6834 2008-03-05  Jaroslav Hajek  <highegg@gmail.com>
  6835 
  6836 	* DLD-FUNCTIONS/chol.cc (Fcholupdate): Adjust code to meet 
  6837 	Octave's coding guidelines.
  6838 
  6839 	* DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete): Adjust 
  6840 	code to meet Octave's coding guidelines.
  6841 	* DLD-FUNCTIONS/qr.cc (Fqrdelete): Fix incorrect test. 
  6842 
  6843 	* DLD-FUNCTIONS/qr.cc (Fqrinsert, Fqrdelete): Modify to use
  6844 	0-based indexing in liboctave's QR classes.
  6845 
  6846 2008-03-04  Jaroslav Hajek  <highegg@gmail.com>
  6847 
  6848 	* DLD-FUNCTIONS/chol.cc (Fcholupdate): New function.
  6849 
  6850 	* DLD-FUNCTIONS/qr.cc (Fqrupdate, Fqrinsert, Fqrdelete):
  6851 	New functions.
  6852 
  6853 2008-03-04  Ryan Rusaw  <rrusaw@gmail.com>
  6854 
  6855 	* toplev.h (octave_call_stack::element): New static function.
  6856 	(octave_call_stack::cs): Now std::deque instead of std::list.
  6857 
  6858 	* pt-stmt.cc (curr_statement, curr_caller_statement): Delete.
  6859 	* pt-stmt.h: Delete decls.
  6860 
  6861 	* pt-stmt.h, pt-stmt.cc (tree_statement_stack): New class.
  6862 
  6863 	* pt-stmt.cc (tree_statement::eval): Use tree_statement_stack
  6864 	instead of curr_statement variable.
  6865 
  6866 	* ov-usr-func.cc (octave_user_function::do_multi_index_op):
  6867 	Don't set curr_caller_statement.
  6868 
  6869 	* error.cc (verror, pr_where): Call tree_statement_stack::current_line
  6870 	and tree_statement_stack::current_column instead of 
  6871 	instead of curr_statement->line and curr_statement->column.
  6872 	* input.cc (get_user_input): Likewise.
  6873 
  6874 2008-02-27  John P. Swensen  <jpswensen@gmail.com>
  6875 
  6876 	* debug.cc (get_user_function): Call symtab::find_function instead
  6877 	of symtab::find_user_function.
  6878 
  6879 2008-02-27  John W. Eaton  <jwe@octave.org>
  6880 
  6881 	* oct-stream.cc (do_read): Stop reading if seek fails.
  6882 
  6883 2008-02-26  John W. Eaton  <jwe@octave.org>
  6884 
  6885 	* ov-base-int.cc (octave_base_int_helper,
  6886 	octave_base_int_helper_traits): New templates and specializations.
  6887 	(octave_base_int_matrix<T>::convert_to_str_internal,
  6888 	octave_base_int_matrix<T>::convert_to_str_internal): Use them.
  6889 
  6890 	* DLD-FUNCTIONS/rand.cc (do_rand): Pass name of calling function
  6891 	to octave_rand::state.
  6892 
  6893 	* variables.cc (bind_ans): Handle cs-lists recursively.
  6894 
  6895 	* ov-cs-list.h, ov-cs-list.cc (octave_cs_list::print,
  6896 	octave_cs_list::print_raw): Delete.
  6897 
  6898 2008-02-25  John W. Eaton  <jwe@octave.org>
  6899 
  6900 	* Cell.cc (Cell::map): New function.
  6901 	* Cell.h (Cell::map): Declare.
  6902 	(xisalnum, xisalpha, xisascii, xiscntrl, xisdigit,
  6903 	xisgraph, xislower, xisprint, xispunct, xisspace, xisupper,
  6904 	xisxdigit, xtoascii, xtolower, xtoupper): New mapper functions.
  6905 	(ctype_mapper): New private typedef.
  6906 
  6907 	* ov-cell.h (xisalnum, xisalpha, xisascii, xiscntrl, xisdigit,
  6908 	xisgraph, xislower, xisprint, xispunct, xisspace, xisupper,
  6909 	xisxdigit, xtoascii, xtolower, xtoupper): New mapper functions.
  6910 
  6911 2008-02-25  Michael Goffioul  <michael.goffioul@gmail.com>
  6912 
  6913 	* ov-scalar.cc (octave_scalar::round): Use xround instead of ::round
  6914 	in mapper implementation.
  6915 
  6916 2008-02-25  John W. Eaton  <jwe@octave.org>
  6917 
  6918 	* ov-base.cc (UNDEFINED_MAPPER, STRING_MAPPER): New macros.  Use
  6919 	them to define mapper functions.
  6920 
  6921 	* mappers.cc (Fisalnum, Fisalpha, Fisascii, Fiscntrl, Fisdigit,
  6922 	Fisgraph, Fislower, Fisprint, Fispunct, Fisspace, Fisupper,
  6923 	Fisxdigit, Ftoascii, Ftolower, Ftoupper):
  6924 	Use DEFUNX to define ctype mapper functions.
  6925 	Use new function names.
  6926 
  6927 	* ov-base.h, ov-base.cc, ov-str-mat.h, ov-str-mat.cc:
  6928 	Prepend x to ctype mapper function names.
  6929 
  6930 	* graphics.h.in (row_vector_property::row_vector_property):
  6931 	Set default constraints here.
  6932 	(row_vector_property::add_constraint): New function.
  6933 	(row_vector_property::validate): Delete decl.
  6934 	(axes::properties::init): Use single-arg add_constraint function
  6935 	for xlim, ylim, zlim, clim, and alim properties.
  6936 
  6937 	* graphics.cc (row_vector_property::validate): Delete.
  6938 
  6939 	* graphics.cc (axes::properties::update_camera,
  6940 	axes::properties::update_aspectratios):
  6941 	Avoid shadow warnings from GCC.
  6942 
  6943 	* graphics.h.in (base_properties::get_bounding_box):
  6944 	Avoid unused argument warning from GCC.
  6945 
  6946 	* graphics.h.in (array_property::add_constraint): Arg is now const
  6947 	reference, not value.
  6948 
  6949 	* graphics.h.in, graphics.cc (class row_vector_property): New class.	
  6950 	(axes::properties): xlim, ylim, zlim, clim, alim, xtick, ytick,
  6951 	ztick properties are now row_vector_property objects instead of
  6952 	array_property objects.
  6953 
  6954 	* genprops.awk: Special case row_vector_property in the same way
  6955 	as array_property.
  6956 
  6957 2008-02-22  John W. Eaton  <jwe@octave.org>
  6958 
  6959 	* DLD-FUNCTIONS/ccolamd.cc, DLD-FUNCTIONS/colamd.cc,
  6960 	DLD-FUNCTIONS/convhulln.cc, DLD-FUNCTIONS/dmperm.cc,
  6961 	DLD-FUNCTIONS/qz.cc, DLD-FUNCTIONS/regexp.cc,
  6962 	DLD-FUNCTIONS/symbfact.cc, zfstream.h, zfstream.cc:
  6963 	Use 0 instead of NULL.
  6964 
  6965 2008-02-22  David Bateman  <dbateman@free.fr>
  6966 
  6967 	* DLD-FUNCTIONS/chol.c (Fchol, Fcholinv, Fchol2iinv): Treat 
  6968 	sparse matrices. Add the "lower" and "vector" flags.
  6969 	* DLD-FUNCTIONS/inv.c (Finv): Treat sparse matrices.
  6970 	* DLD-FUNCTION/sparse.cc (static bool is_sparse (const
  6971 	octave_value&)): Remove and use arg.is_sparse_type () instead.
  6972 	(Fspcumprod, Fspcumsum, Fspprod, spsum, spsumsq, spdiag): Remove.
  6973 	* DLD-FUNCTIONS/splu.cc: Remove.
  6974 	* DLD-FUNCTIONS/lu.cc: Treat sparse matrices, Add "vector" flag.
  6975 	* DLD-FUNCTIONS/spchol.cc: Move to symbfact.cc
  6976 	* DLD-FUNCTIONS/symbfact.cc: Remove cholesky functions Fspchol,
  6977 	Fspcholinv, Fspchol2inv.
  6978 	* DLD-FUNCTIONS/luinc.cc: Modify for new sparse LU
  6979 	constructors. Ass the 'vector' flag.
  6980 	* DLD-FUNCTIONS/spparms.cc: Add the sum_tol flag.
  6981 
  6982 	* Makifile.in (DLD_XSRC): Remove spchol.cc, splu.cc and add 
  6983 	symbfact.cc
  6984 	* data.cc (NATIVE_REDUCTION): Treat sparse matrices
  6985 	(DATA_REDUCTION): Ditto.
  6986 	(template <class T> static octave_value make_spdiag (const T&, 
  6987 	octave_idx_type)): New template function for sparse diag
  6988 	function. Instantiate it.
  6989 	(static octave_value make_diag (const octave_value&, 
  6990 	octave_idx_type): Use make_spdiag for sparse matrice.
  6991 	(Fatan2): Compatibility fixes for mixed full/sparse matrices.
  6992 	
  6993 2008-02-21  John W. Eaton  <jwe@octave.org>
  6994 
  6995 	* DLD-FUNCTIONS/fsolve.cc (fsolve_user_jacobian):
  6996 	Check dimensions of user-supplied Jacobian matrix.
  6997 	(fsolve_user_function): Check for non-square systems.
  6998 
  6999 2008-02-20  John W. Eaton  <jwe@octave.org>
  7000 
  7001 	* data.cc (map_d_m, map_m_d, map_m_m, Fatan2, Ffmod):
  7002 	Handle N-d arrays.
  7003 
  7004 	* ov-bool-mat.h (octave_bool_matrix (const Array2<bool>&)): Delete.
  7005 
  7006 2008-02-20  David Bateman  <dbateman@free.fr>
  7007 
  7008 	* DLD-FUNCTIONS/det.cc, DLD-FUNCTIONS/find.cc,
  7009 	* DLD-FUNCTIONS/minmax.cc, DLD-FUNCTIONS/qr.cc:
  7010 	Treat sparse matrices.
  7011 	
  7012 	* DLD-FUNCTIONS/sparse.cc (Fspmin, Fspmax, Fatan2): Remove functions.
  7013 
  7014 	* DLD-FUNCTIONS/dmperm.cc: Rename from spqr.cc.
  7015 	(Fspqr): Delete function.
  7016 
  7017 	* DLD-FUNCTIONS/spqr.cc, DLD-FUNCTIONS/spdet.cc,
  7018 	DLD-FUNCTIONS/spfind.cc: Remove.
  7019 
  7020 	* Makefile.in (DLD_XSRC): Add dmperm.cc to the list.
  7021 	Delete det.cc, find.cc, minmax.cc, and qr.cc from the list.
  7022 
  7023 	* Makefile.in (OV_SRC): Remove ov-mapper.cc.
  7024 	(OV_INCLUDES): Remove ov-mapper.h.
  7025 	(DEFUN_PATTERN): No longer accept DEFUN_MAPPER as valid.
  7026 	* ov-mapper.cc, ov-mapepr.h: Delete, remove all includes of
  7027 	ov-mapper.h from all files.
  7028 
  7029 	* op-b-sbm.cc, op-bm-sbm.cc, op-smb-b.cc, op-sbm-bm.cc: Include 
  7030 	ov-bool-sparse.h.
  7031 
  7032 	* defun-int.h (DEFUN_MAPPER_INTERNAL, install_builtin_mapper):
  7033 	Remove.
  7034 	* defun.cc (install_builtin_mapper): Ditto.
  7035 	* defun.h (DEFUN_MAPPER): Remove.
  7036 
  7037 	* mappers.cc: Rewrite all mapper function using DEFUN and newly
  7038 	introduced octave_value mapper functions.
  7039 	(dummyp, xabs, xisalnum, xisascii, xiscntrl, xisdigit,
  7040 	xisgraph, xislower, xisprint, xispunct, xisspace, xisupper,
  7041 	xtoascii, xtolower, xtoupper, xconj, ximag, xreal): Remove
  7042 	static wrapper functions.
  7043 
  7044 	* mkbuiltins (XDEFUN_MAPPER_INTERNAL, install_builtin_functions): 
  7045 	Remove.
  7046 	* mkgendoc (XDEFUN_MAPPER_INTERNAL): Remove.
  7047 
  7048 	* ov.cc (octave_mapper::register_type): Remove.
  7049 	
  7050 	* ov.h (abs, acos, acosh, angle, arg, asin, asinh, atan, atanh,
  7051 	ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor, gamma,
  7052 	imag, isinf, isna, isnan, lgamma, log, log10, real, round, signum,
  7053 	sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii, iscntrl,
  7054 	isdigit, isgraph, islower, isprint, ispunct, isspace, isupper,
  7055 	isxdigit, toascii, tolower, toupper):
  7056 	New octave_value mapper	functions.
  7057 
  7058 	* ov-base.h (abs, acos, acosh, angle, arg, asin, asinh, atan,
  7059 	atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor,
  7060 	gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round,
  7061 	signum, sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii,
  7062 	iscntrl, isdigit, isgraph, slower, isprint, ispunct, isspace,
  7063 	isupper, isxdigit, toascii, tolower, toupper):
  7064 	New virtual mapper functions.
  7065 	* ov-base.cc (abs, acos, acosh, angle, arg, asin, asinh, atan,
  7066 	atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor,
  7067 	gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round,
  7068 	signum, sin, sinh, sqrt, tan, tanh, isalnum, isalpha, isascii,
  7069 	iscntrl, isdigit, isgraph, slower, isprint, ispunct, isspace,
  7070 	isupper, isxdigit, toascii, tolower, toupper):
  7071 	Base versions of mapper functions.
  7072 
  7073 	* ov-bool-mat.h (abs, acos, acosh, angle, arg, asin, asinh, atan,
  7074 	atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor,
  7075 	gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round,
  7076 	signum, sin, sinh, sqrt, tan, tanh):
  7077 	Mapper function recast boolen matrix as double.
  7078 	* ov-bool.h (abs, acos, acosh, angle, arg, asin, asinh, atan,
  7079 	atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor,
  7080 	gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round,
  7081 	signum, sin, sinh, sqrt, tan, tanh): Ditto.
  7082 	* ov-bool-sparse.h (abs, acos, acosh, angle, arg, asin, asinh,
  7083 	atan, atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix,
  7084 	floor, gamma, imag, isinf, isna, isnan, lgamma, log, log10, real,
  7085 	round, signum, sin, sinh, sqrt, tan, tanh): Ditto.
  7086 	(char_array_value): New method to convert to charNDArray.
  7087 	* ov-bool-sparse.cc (char_array_value): New method to convert to
  7088 	charNDArray.
  7089 	* ov-complex.cc (char_array_value): ditto.
  7090 	(xabs, ximag, xreal): Static wrapper functions.
  7091 	(abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil,
  7092 	conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna,
  7093 	isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan,
  7094 	tanh): New mapper methods.
  7095 	* ov-complex.h: Provide decls.
  7096 
  7097 	* ov-cx-mat.cc (char_array_value): New method to convert to
  7098 	charNDArray.
  7099 	(xabs, ximag, xreal): Static wrapper functions.
  7100 	(abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil,
  7101 	conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna,
  7102 	isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan,
  7103 	tanh): New mapper methods.
  7104 	* ov-cx-mat.h: Provide decls.
  7105 	
  7106 	* ov-cx-sparse.cc (char_array_value): New method to convert to
  7107 	charNDArray.
  7108 	(xabs, ximag, xreal): Static wrapper functions.
  7109 	(abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil,
  7110 	conj, cos, cosh, exp, finite, fix, floor, imag, isinf, isna,
  7111 	isnan, log, log10, real, round, signum, sin, sinh, sqrt, tan,
  7112 	tanh): New mapper methods.
  7113 	* ov-cx-sparse.h: Provide decls.
  7114 
  7115 	* ov-intx.h (abs, signum, imag, ceil, conj, fix, floor, real,
  7116 	round, finite, isinf, isna, isnan): Define for both matrix and
  7117 	scalar classes.
  7118 	
  7119 	* ov-range.h (abs, acos, acosh, angle, arg, asin, asinh, atan,
  7120 	atanh, ceil, conj, cos, cosh, erf, erfc, exp, finite, fix, floor,
  7121 	gamma, imag, isinf, isna, isnan, lgamma, log, log10, real, round,
  7122 	signum, sin, sinh, sqrt, tan, tanh): New mapper functions.
  7123 
  7124 	* ov-re-mat.cc (any_element_less_than): Static function to check if
  7125 	any elemet was less than a value,
  7126 	(any_element_greater_than): Ditto with greater than.
  7127 	(abs, acos, acosh, angle, arg, asin, asinh, atan, atanh, ceil,
  7128 	conj, cos, cosh, erf, erfc, exp, finite, fix, floor, gamma, imag,
  7129 	isinf, isna, isnan, lgamma, log, log10, real, round, signum, sin,
  7130 	sinh, sqrt, tan, tanh): New mapper functions.
  7131 	* ov-re-mat.h: Provide decls.
  7132 	
  7133 	* ov-scalar.cc (any_element_less_than): Static function to check if
  7134 	any elemet was less than a value,
  7135 	(any_element_greater_than): ditto with greater than.
  7136 	(abs acos acosh angle arg asin asinh atan atanh 
  7137 	ceil conj cos cosh erf erfc exp finite fix floor gamma imag 
  7138 	isinf isna isnan lgamma log log10 real round signum sin sinh 
  7139 	sqrt tan tanh): New mapper functions.
  7140 	* ov-scalar.h: Provide decls.
  7141 
  7142 	* ov-str-mat.cc (xisalnum, xisascii, xiscntrl, xisdigit,
  7143 	xisgraph, xislower, xisprint, xispunct, xisspace, xisupper,
  7144 	xtoascii, xtolower, xtoupper): New static wrapper functions.
  7145 	(isalnum, isalpha, isascii, iscntrl, isdigit, isgraph, islower,
  7146 	isprint, ispunct, isspace, isupper, isxdigit, toascii, tolower,
  7147 	toupper): New mapper methods.
  7148 	* ov-str-mat.h: Provide decls.
  7149 
  7150 2008-02-18  David Bateman  <dbateman@free.fr>
  7151 
  7152 	* data.cc (Fatan2): Reject arguments that are integer types.
  7153 
  7154 2008-02-19  Jaroslav Hajek  <highegg@gmail.com>
  7155 
  7156 	* DLD-FUNCTIONS/qr.cc: Doc fix.
  7157 
  7158 2008-02-18  John W. Eaton  <jwe@octave.org>
  7159 
  7160 	* symtab.h
  7161 	(symbol_table::fcn_info::fcn_info_rep::clear_unlocked_functions):
  7162 	symbol_table::fcn_info::fcn_info_rep::clear_cmdline_function,
  7163 	symbol_table::fcn_info::fcn_info_rep::clear_autoload_function):
  7164 	New functions.
  7165 	(symbol_table::fcn_info::fcn_info_rep::clear_user_function):
  7166 	Don't clear locked functions.
  7167 	(symbol_table::fcn_info::fcn_info_rep::clear_mex_function):
  7168 	Call clear_user_function instead of setting function_on_path directly.
  7169 	(symbol_table::fcn_info::fcn_info_rep::clear):
  7170 	Use new functions to do the real work.
  7171 
  7172 	* ov.h (octave_value::lock, octave_value::unlock,
  7173 	octave_value::islocked): New functions.
  7174 	* ov-base.cc (octave_base_value::lock, octave_base_value::unlock):
  7175 	New functions.
  7176 	* ov-base.h Provide decls.
  7177 	(octave_base_value::islocked): New function.
  7178 	* ov-fcn.h (octave_function::islocked): Now const.
  7179 
  7180 2008-02-15  John W. Eaton  <jwe@octave.org>
  7181 
  7182 	* ov-builtin.cc (octave_builtin::do_multi_index_op):
  7183 	Catch possible octave_execution_exception.
  7184 	* ov-mex-fcn.cc (octave_mex_function::do_multi_index_op): Likewise.
  7185 	* ov.cc (do_binary_op, do_cat_op, do_unary_op,
  7186 	octave_value::do_non_const_unary_op): Likewise.
  7187 
  7188 2008-02-14  John W. Eaton  <jwe@octave.org>
  7189 
  7190 	* DLD-FUNCTIONS/balance.cc, DLD-FUNCTIONS/qz.cc:
  7191 	Don't check f77_exception_encountered.
  7192 
  7193 	* sighandlers.cc (user_abort): If interrupting immediately, set
  7194 	octave_interrupt_state if it is not already set.
  7195 
  7196 	* pt-stmt.cc (tree_statement::eval): Catch execution exceptions.
  7197 
  7198 	* octave.cc (lo_error_handler): New static function.
  7199 	(initialize_error_handlers): Set liboctave_error_handler to
  7200 	lo_error_handler, not error.
  7201 
  7202 	* DLD-FUNCTIONS/urlwrite.cc (urlget): Call octave_rethrow_exception
  7203 	instead of octave_throw_interrupt_exception.
  7204 	* utils.cc (BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE_FOR_VSNPRINTF): 
  7205 	Likewise.
  7206 
  7207 2008-02-12  David Bateman  <dbateman@free.fr>
  7208 
  7209 	* graphics.h.in: Implement the cdatamapping property in patch and
  7210 	image objects.
  7211 
  7212 2008-02-12  John W. Eaton  <jwe@octave.org>
  7213 
  7214 	* pt-loop.cc (tree_simple_for_command::eval): Compute range
  7215 	element with multiplication.
  7216 
  7217 2008-02-11  John W. Eaton  <jwe@octave.org>
  7218 
  7219 	* Makefile.in ($(MAKEDEPS)): Skip dependencies if omit_deps is defined.
  7220 
  7221 2008-02-09  John W. Eaton  <jwe@octave.org>
  7222 
  7223 	* pr-output.cc (set_range_format): Eliminate sign arg.
  7224 	Change all callers.
  7225 
  7226 2008-02-08  John W. Eaton  <jwe@octave.org>
  7227 
  7228 	* ov-struct.cc (octave_struct::subsref): Allow Cell::index to resize.
  7229 
  7230 	* input.cc (interactive_input): Eliminate debug arg.  Change All uses.
  7231 	(get_user_input): Don't process input_buf if there is an error.
  7232 	Call reset_error_handler instead of setting error_state to 0.
  7233 
  7234 2008-02-08  Michael Goffioul  <michael.goffioul@gmail.com>
  7235 
  7236 	* graphics.h.in (callback_property::execute): New static
  7237 	helper method (useful to execute callbacks by name).
  7238 	* graphics.cc (callback_property::execute): Likewise.
  7239 	(execute_callback): Avoid undefined argument when executing
  7240 	callback. Do not use arguments when the callback is a string.
  7241 
  7242 2008-02-07  John W. Eaton  <jwe@octave.org>
  7243 
  7244 	* ov-range.h (octave_range::sort): New functions.
  7245 
  7246 2008-02-07  David Bateman  <dbateman@free.fr>
  7247 
  7248 	* Makefile.in (DLD_XSRC): Delete spkron.cc.
  7249 	* DLD-FUNCTIONS/spkron.cc: Delete.
  7250 	* DLD-FUNCTIONS/kron.cc: Include here and dispatch to the sparse
  7251 	version if either argument is sparse.
  7252 
  7253 2008-02-06  John W. Eaton  <jwe@octave.org>
  7254 
  7255 	* Makefile.in (parse.cc): Also use --defines option for bison.
  7256 
  7257 2008-02-06  Michael Goffioul  <michael.goffioul@gmail.com>
  7258 
  7259 	* graphics.cc (axes::properties::set_defaults): Set default axes
  7260 	color to white.
  7261 
  7262 2008-02-06  John W. Eaton  <jwe@octave.org>
  7263 
  7264 	* Makefile.in (parse.cc): Use "-o $@" instead of renaming y.tab.c.
  7265 	(maintainer-clean): Don't remove y.tab.c.
  7266 
  7267 	* Makefile.in (parse.cc : parse.y): Use mv instead of move-if-change.
  7268 	(stamp-prereq, stamp-liboctave-prereq): Eliminate.
  7269 	(clean): Don't remove stamp-prereq and stamp-liboctave-prereq.
  7270 	(OPT_BASE, OPT_IN, OPT_INC): New macros.
  7271 	(OPT_HANDLERS): Define in terms of OPT_BASE.
  7272 	($(OPT_INC) : %.h : %.in): New pattern rule.
  7273 	(PREREQ): New macro.
  7274 	($(MAKEDEPS)): Simplify with $(PREREQ).
  7275 
  7276 2008-02-05  John W. Eaton  <jwe@octave.org>
  7277 
  7278 	* Makefile.in: Unconditionally include $(MAKEDEPS).
  7279 	Mark $(MAKEDEPS) as .PHONY targets if omit_deps is true.
  7280 
  7281 2008-02-05  Michael Goffioul  <michael.goffioul@gmail.com>
  7282 
  7283 	* graphics.h.in (base_properties::get_boundingbox): New method.
  7284 	(figure::properties::get_boundingbox): Overload method.
  7285 	(axes::properties::get_boundingbox): Likewise.
  7286 	* graphics.cc (figure::properties::get_boundingbox): Return a
  7287 	left-to-right/top-to-bottom bounding box rectangle.
  7288 	(axes::properties::get_boundingbox): Likewise.
  7289 	(axes::properties::update_camera): Remove backend access and
  7290 	use the new axes bounding box.
  7291 
  7292 2008-02-04  Shai Ayal  <shaiay@users.sourceforge.net>
  7293 
  7294 	* graphics.h.in (axes::properties::update_xlim,
  7295 	axes::properties::update_ylim, axes::properties::update_zlim):
  7296 	New update methods.
  7297 
  7298 	* graphics.cc (axes::properties::calc_ticks): New function.
  7299 	(axes::properties::magform): New function.
  7300 	(axes::update_axis_limits): Call update_{x,y,z}lims if
  7301 	appropriate.
  7302 
  7303 2008-02-04  Michael Goffioul  <michael.goffioul@gmail.com>
  7304 
  7305 	* graphics.h.in (base_graphics_backend::get_screen_size,
  7306 	graphics_backend::get_screen_size): New methods.
  7307 	(graphics_backend::available_backends): Export symbol.
  7308 	(class figure::properties, class axes::properties): Export classes.
  7309 	(figure::properties::get_boundingbox): New utility method.
  7310 	(figure::properties::position): Use valid default position.
  7311 	(axes::properties::gridlinestyle,
  7312 	axes::properties::minorgridlinestyle):
  7313 	Use dotted line style as default. 
  7314 	* graphics.cc (default_figure_position): New static function.
  7315 	(gnuplot_backend::get_screen_size): New method.
  7316 	(figure::properties::get_boundingbox): New utility method.
  7317 
  7318 2008-02-02  Shai Ayal  <shaiay@users.sourceforge.org>
  7319 
  7320         * graphics.h.in (base_scaler::~base_scalar): New virtual destructor.
  7321         * graphics.cc (axes::properties::update_camera): Tag abs with std.
  7322 
  7323 	* graphics.h.in (graphics_backend::find_backend): New function.
  7324 	(class figure): Add __backend__ property and set method.
  7325 	
  7326 2008-02-02  John W. Eaton  <jwe@octave.org>
  7327 
  7328 	* help.cc (do_type): Don't print dyamically loaded function files.
  7329 
  7330 	* ov-fcn.h (octave_function::is_dynamically_loaded_function): Delete.
  7331 
  7332 2008-02-01  John W. Eaton  <jwe@octave.org>
  7333 
  7334 	* symtab.cc (Fset_variable, Fvariable_value):
  7335 	New functions, but commented out for now.
  7336 
  7337 2008-01-30  Michael Goffioul  <michael.goffioul@gmail.com>
  7338 
  7339 	* graphics.h.in (axes::properties::get_transform_matrix,
  7340 	axes::properties::get_inverse_transform_matrix,
  7341 	axes::properties::get_opengl_matrix_1,
  7342 	axes::properties::get_opengl_matrix_2,
  7343 	axes::properties::get_transform_zlim): New accessors.
  7344 	(base_properties::is_clipping): New accessor.
  7345 	(class graphics_xform): New class encapsulating axes transformation.
  7346 	(axes::properties::get_transform): New method returning a
  7347 	graphics_xform object.
  7348 	* graphics.cc (class graphics_xform): New class.
  7349 
  7350 2008-01-31  David Bateman  <dbateman@free.fr>
  7351 
  7352 	* ov.cc (octave_value::octave_value (const ArrayN<bool>&),
  7353 	octave_value::octave_value (const Sparse<bool>&, const MatrixType &),
  7354 	octave_value::octave_value (const ArrayN<std::streamoff>&)): New 
  7355 	constructors.
  7356 	* ov.h: (octave_value (const ArrayN<bool>&),
  7357 	octave_value (const Sparse<bool>&, const MatrixType &),
  7358 	octave_value (const ArrayN<std::streamoff>&)): Declare them.
  7359 	(octave_value sort (octave_idx_type, sortmode) const, octave_value
  7360 	sort (Array<octave_idx_type> &, octave_idx_type, sortmode) const):
  7361 	octave_value sort method.
  7362 	
  7363 	
  7364 	* ov-base.cc (sort): Base versions of teh octave_value sort methods.
  7365 	* ov-base.h (sort): Declare the octave_value sort methods
  7366 	* ov-base-scalar.h (sort): Simple sort methods for scalars.
  7367 	* ov-base-mat.h, ov-base-sparse.h (sort): Sort methods calling
  7368 	underlying array or sparse sort methods.
  7369 	* ov-str-mat.h (sort): String specific sort methods.
  7370 	
  7371 	* TEMPLATE-INST/Array-tc.cc: Instantiate the array sort methods.
  7372 	* ov-streamoff.h (sort): Sort versions returning and error.
  7373 	* oct-stream.cc, ov-typeinfo.cc, Array-os.cc: Null instantiation
  7374 	of array sort methods.
  7375 	
  7376 	* Makefile.in (DLD_XSRC): Remove sort.cc
  7377 	* DLD-FUNCTIONS/sort.cc: Remove
  7378 	* data.cc (Fsort): New function using octave_value sort methods
  7379 	for the sorting. Add tests.
  7380 
  7381 2008-01-30  Thomas Weber  <thomas.weber.mail@gmail.com>
  7382 
  7383 	* pager.cc (Fmore): Doc fix.
  7384 
  7385 2008-01-28  Michael Goffioul  <michael.goffioul@gmail.com>
  7386 
  7387 	* genprops.awk: Add update ('u') modifier and document the
  7388 	readonly ('r') modifier.
  7389 	* graphics.h.in (class base_scaler, class lin_scaler, class
  7390 	log_scaler, class scaler): New classes to make abstraction of the
  7391 	axis scale.
  7392 	(base_graphics_backend::get_screen_resolution,
  7393 	graphics_backend::get_screen_resolution): New methods.
  7394 	(axes::properties::sx, axes::properties::sy,
  7395 	axes::properties::sz): New scaler fields.
  7396 	(axes::properties::get_x_scaler, axes::properties::get_y_scaler,
  7397 	axes::properties::get_z_scaler): New accessors.
  7398 	(axes::properties::x_render, axes::properties::x_render_inv,
  7399 	axes::properties::x_gl_mat1, axes::properties::x_gl_mat2,
  7400 	axes::properties::x_zlim): New utility Matrix fields.
  7401 	(axes::properties::get_boundingbox,
  7402 	axes::properties::update_camera,
  7403 	axes::properites::update_aspectratios,
  7404 	axes::properties::update_transform,
  7405 	axes::properties::update_xscale, axes::properties::update_yscale,
  7406 	axes::properties::update_zscale, axes::properties::update_view,
  7407 	axes::properties::update_xdir, axes::properties::update_ydir,
  7408 	axes::properties::update_zdir): New updater methods.
  7409 	(axes::properties::init): Initialize sx, sy, sz and x_zlim correctly.
  7410 	(axes::properties::position): Use valid default position value.
  7411 	(axes::properties::xscale, axes::properties::yscale,
  7412 	axes::properties::zscale, axes::properties::xdir,
  7413 	axes::properties::ydir, axes::properties::zdir,
  7414 	axes::properties::view): Add updater ('u') property modifier.
  7415 	* graphics.cc (default_axes_position, default_axes_outerposition):
  7416 	New initializers.
  7417 	(convert_position): New utility function to convert position
  7418 	according to specified units.
  7419 	(gnuplot_backend::get_screen_resolution): New method.
  7420 	(axes::properties::set_defaults): Initilize recently added properties.
  7421 	(xform_matrix, xform_vector, transform, xform_scale,
  7422 	xform_translate, scale, translate, xform, normalize, dot, cross,
  7423 	unit_cube, cam2xform, xform2cam): New inline transformation
  7424 	utility functions.
  7425 	(axes::properties::update_camera,
  7426 	axes::properties::update_aspectratios,
  7427 	axes::properties::get_boundingbox): New updater methods for
  7428 	computing transformation matrices.
  7429 	(axes::update_axis_limits): Update transformation data.
  7430 
  7431 2008-01-28  John W. Eaton  <jwe@octave.org>
  7432 
  7433 	* oct-stream.cc (BEGIN_CHAR_CLASS_CONVERSION): Handle width properly.
  7434 	(OCTAVE_SCAN) [__GNUG__ && ! CXX_ISO_COMPLIANT_LIBRARY]:
  7435 	Delete special case.
  7436 
  7437 2008-01-25  David Bateman  <dbateman@free.fr>
  7438 
  7439 	* DLD-FUNCTIONS/rand.cc (Frandp): Relax relative error on randp
  7440 	tests.
  7441 
  7442 2008-01-25  Michael Goffioul  <michael.goffioul@gmail.com>
  7443 
  7444 	* graphics.h.in (base_properties::get_backend,
  7445 	base_graphics_object::get_backend, graphics_backend::get_backend):
  7446 	New methods for convenient access to the backend.
  7447 	(figure::get_backend, figure::set_backend): Remove.
  7448 	* graphics.cc (base_properties::get_backend): New method.
  7449 	(Fdrawnow): Use graphics_object::get_backend to simplify code.
  7450 
  7451 2008-01-24  Pascal Dupuis  <Pascal.Dupuis@worldonline.be>
  7452 
  7453 	* mxarray.h.in: Include <cstring>.
  7454 
  7455 2008-01-22  John W. Eaton  <jwe@octave.org>
  7456 
  7457 	* graphics.cc (clear_drawnow_request): New function.
  7458 	(Fdrawnow): Add it to the unwind_protect stack.
  7459 
  7460 	* input.cc (Vdrawnow_requested): No longer static.
  7461 	* input.h: Provide decl.
  7462 	* graphics.cc (Fdrawnow, Fset, make_graphics_object):
  7463 	Use Vdrawnow_requested directly.
  7464 
  7465 	* toplev.cc (octave_add_atexit_function,
  7466 	octave_remove_atexit_function): New functions.
  7467 	(Fatexit): Use them.
  7468 	* graphics.cc (Fdrawnow): Call octave_add_atexit_function instead
  7469 	of using eval.
  7470 	* toplev.h (octave_add_atexit_function,
  7471 	octave_remove_atexit_function): Provide decls.
  7472 
  7473 2008-01-22  Michael Goffioul  <michael.goffioul@gmail.com>
  7474 
  7475 	* graphics.h.in (base_properties::is_visible,
  7476 	base_properties::set_modified): New accessors.
  7477 	(class base_graphics_backend, class graphics_backend): New classes
  7478 	for handling octave/backend interaction.
  7479 	(figure::properties::close): Add "pop" argument controlling
  7480 	whether the figure should be popped from the list of existing figures.
  7481 	(class figure::properties): New backend field and accessors, holding
  7482 	the graphics backend associated with the figure.
  7483 	* graphics.cc (class gnuplot_backend): New class for the default
  7484 	gnuplot backend.
  7485 	(figure::properties::close): Add "pop" argument and transfer the
  7486 	figure closing to the associated backend.
  7487 	(Fdrawnow): New builtin function, converted from drawnow.m.
  7488 
  7489 2008-01-19  John W. Eaton  <jwe@octave.org>
  7490 
  7491 	* genprops.awk (emit_source): Use "pname" for property name argument.
  7492 
  7493 2008-01-19  Shai Ayal  <shaiay@users.sourceforge.net>
  7494 
  7495 	* graphics.h.in (class figure::properties): New properties:
  7496 	alphamap, currentcharacter, currentobject, current_point,
  7497 	dockcontrols, doublebuffer, filename, integerhandle,
  7498 	inverthardcopy, keypressfcn, keyreleasefcn, menubar, mincolormap,
  7499 	name, numbertitle, paperunits, paperposition, paperpositionmode,
  7500 	papersize, papertype, pointer, pointershapecdata,
  7501 	pointershapehotspot, position, renderer, renderermode, resize,
  7502 	resizefcn, selectiontype, toolbar, units, windowbuttondownfcn,
  7503 	windowbuttonmotionfcn, windowbuttonupfcn, windowbuttonwheelfcn,
  7504 	windowstyle, wvisual, wvisualmode, xdisplay, xvisual, xvisualmode,
  7505 	buttondownfcn.
  7506 
  7507 2008-01-19  Michael Goffioul  <michael.goffioul@gmail.com>
  7508 
  7509 	* graphics.h.in (base_properties::beingdeleted,
  7510 	base_properties::is_beingdeleted,
  7511 	base_properties::get_beingdeleted,
  7512 	base_properties::set_beingdeleted):
  7513 	Add beingdeleted property and accessors.
  7514 	* graphics.cc (base_properties::get): Likewise.
  7515 	(gh_manager::free): Set beingdeleted to "on" when freeing an object.
  7516 	* genprops.awk: Skip C++-style comments in property declaration.
  7517 
  7518 	* graphics.h.in (class axes::properties): New properties: alim,
  7519 	alimmode, xminortick, yminortick, zminortick, ambientlightcolor,
  7520 	cameraposition, cameratarget, cameraupvector, cameraviewangle,
  7521 	camerapositionmode, cameratargetmode, cameraupvectormode,
  7522 	cameraviewanglemode, currentpoint, drawmode, fontangle, fontname,
  7523 	fontsize, fontweight, fontunits, gridlinestyle,
  7524 	minorgridlinestyle, linestyleorder, linewidth, plotboxaspectratio,
  7525 	plotboxaspectratiomode, projection, tickdir, tickdirmode,
  7526 	ticklength, tightinset, units, x_viewtransform,
  7527 	x_projectiontransform, x_viewporttransform, x_normrendertransform,
  7528 	x_rendertransform.
  7529 	* genprops.awk: Handle new readonly modifier 'r'.
  7530 
  7531 2008-01-18  Juhani Saastamoinen  <juhani@cs.joensuu.fi>
  7532 
  7533 	* genprops.awk: Avoid using "default" as a variable name.
  7534 
  7535 2008-01-17  Michael Goffioul  <michael.goffioul@gmail.com>
  7536 
  7537 	* graphics.h.in (data_property::get_data_limits): Reset min/max values.
  7538 
  7539 2008-01-17  David Bateman  <dbateman@free.fr>
  7540 
  7541 	* ov-fcn-inline.cc: Add tests for Finline.
  7542 
  7543 2008-01-17  Ben Abbott  <bpabbott@mac.com>
  7544 
  7545 	* load-path.cc (F__pathorig__): Rename from Fpathdef.
  7546 	(Frestoredefaultpath): New function.
  7547 
  7548 2008-01-16  John W. Eaton  <jwe@octave.org>
  7549 
  7550 	* pt-assign.cc (tree_simple_assignment::rvalue,
  7551 	tree_multi_assignment::rvalue): Handle assignment of
  7552 	comma-separated lists.
  7553 
  7554 2008-01-15  John W. Eaton  <jwe@octave.org>
  7555 
  7556 	* mappers.cc (install_mapper_functions): Move test for asin here
  7557 	from test/test_arith.m.
  7558 
  7559 	* graphics.h.in (class line::properties, class text::properties):
  7560 	Rename erase_mode property to erasemode.
  7561 
  7562 2008-01-15  Michael Goffioul  <michael.goffioul@gmail.com>
  7563 
  7564 	* graphics.h.in (base_properties::remove_child,
  7565 	base_properties::adopt, base_properties::update_axis_limits):
  7566 	Make virtual.
  7567 	(base_graphics_object::mark_modified,
  7568 	base_graphics_object::override-defaults,
  7569 	base_graphics_object::set_from_list, base_graphics_object::set,
  7570 	base_graphics_object::get, base_graphics_object::get_parent,
  7571 	base_graphics_object::remove_child, base_graphics_object::adopt,
  7572 	base_graphics_object::reparent, base_graphics_object::defaults,
  7573 	base_graphics_object::type): Add default implementation.
  7574 	(class root_figure, class figure, class axes, class line,
  7575 	class text, class image, class patch, class surface):
  7576 	Remove overloaded virtual methods whose implementation is
  7577 	identical to the default one.
  7578 
  7579 	* genprops.awk: Handle 'h' modifier for hidden properties.
  7580 	Replace "get(void)" method with "get(bool all = false)" to allow
  7581 	access to hidden properties.
  7582 
  7583 	* graphics.h.in (base_properties::get, base_graphics_object::get,
  7584 	graphics_object::get, root_figure::get, figure::get, axes::get,
  7585 	line::get, text::get, patch::get, surface::get, image::get):
  7586 	New arg, ALL, to access hidden properties.
  7587 	(gh_manager::do_get_object): Do not look for invalid handles.
  7588 	(figure::properties::__plot_stream__,
  7589 	figure::properties::__enhanced__, axes::properties::__colorbar__):
  7590 	Make properties hidden.
  7591 	(axes::properties, line::properties, text::properties,
  7592 	patch::properties, surface::properties): Remove obsolete 'a'
  7593 	property modifier.
  7594 	* graphics.cc (base_properties::get): New arg ALL, to access
  7595 	hidden properties.
  7596 	(base_properties::mark_modified): Call mark_modified only on valid
  7597 	parent object.
  7598 	(__get__): New internal function returning all properties,
  7599 	including the hidden ones.
  7600 
  7601 2008-01-15  John W. Eaton  <jwe@octave.org>
  7602 
  7603 	* graphics.cc (properties::set_currentfigure,
  7604 	properties::set_currentaxes): Don't convert arg to double
  7605 	before passing to graphics_handle constructor.
  7606 	(base_properties::remove_child): Call mark_modified if list of
  7607 	children changes.
  7608 
  7609 2008-01-15  Shai Ayal  <shaiay@users.sourceforge.net>
  7610 
  7611 	* graphics.h.in (class line::properties): New properties:
  7612 	displayname, erasemode.
  7613 	(class text::properties) New properties: backgroundcolor,
  7614 	displayname, edgecolor, erase_mode, editing, fontunits, linestyle,
  7615 	linewidth, margin, verticalalignment.
  7616 
  7617 2008-01-14  John W. Eaton  <jwe@octave.org>
  7618 
  7619 	* load-path.cc (load_path::do_initialize): Start with sys_path empty.
  7620 	(maybe_add_path_elts): Omit path_sep_str if path is empty.
  7621 
  7622 	* symtab.h (symbol_table::do_pop_context): Remove symbol_records
  7623 	which have no more context.
  7624 	(symbol_table::symbol_record::pop_context,
  7625 	(symbol_table::symbol_record::symbol_record_rep::pop_context):
  7626 	Return size of value_stack, or 1 if variable is persistent or global.
  7627 
  7628 2008-01-14  Kai Habel  <kai.habel@gmx.de>
  7629 
  7630 	* graphics.h.in (class patch::properties): New properties:
  7631 	cdatamapping, facevertexalphadata, facevertexcdata, vertexnormals,
  7632 	normalmode, facelighting, edgealpha, edgelighting,
  7633 	backfacelighting, ambientstrength, diffusestrength,
  7634 	specularstrength, specularexponent, specularcolorreflectance,
  7635 	erasemode.
  7636 
  7637 2008-01-14  Michael Goffioul  <michael.goffioul@gmail.com>
  7638 
  7639 	* graphics.h.in (gh_manager::do_make_graphics_handle,
  7640 	gh_manager::make_graphics_handle): New boolean parameter
  7641 	do_createfcn.
  7642 	* graphics.cc (xcreatefcn): New static function.
  7643 	(gh_manager::do_make_graphics_handle): New boolean parameter
  7644 	do_createfcn.  Execute createfcn callback accordingly.
  7645 	(make_graphics_object, F__go_figure__): Use do_createfcn
  7646 	parameter and call xcreatefcn
  7647 
  7648 	* genprops.awk (emit_get_callback): Pass user data to execute method.
  7649 	* graphics.cc (execute_callback): New static function.
  7650 	(callback_property::validate): Make it work.
  7651 	(callback_property::execute): Make it work.
  7652 	(gh_manager::do_free): Execute delete function here.
  7653 	* graphics.h.in (callback_property::execute): Fix decl.
  7654 	(base_properties::buttondownfcn, base_properties::createfcn,
  7655 	base_properties::deletefcn, base_properties::userdata): Default
  7656 	value is empty Matrix, not undefined octave_value object.
  7657 	(base_properties::execute_createfcn): New function.
  7658 	(base_properties::execute_deletefcn): New function.
  7659 
  7660 2007-12-13  Shai Ayal  <shaiay@users.sourceforge.net>
  7661 
  7662 	* graphics.h.in, graphics.cc (class base_properties): New
  7663 	properties: busyaction, buttondownfcn, clipping, createfcn,
  7664 	deletefcn, handlevisibility, hittest, interruptible, selected,
  7665 	selectionhighlight, uicontextmenu, userdata, visible.
  7666 	(class figure): Delete visible property.
  7667 
  7668 2008-01-13  Michael Goffioul  <michael.goffioul@gmail.com>
  7669 
  7670 	* grahpics.h.in: Sprinkle with OCTINTERP_API as needed.
  7671 	(axes::properties::xaxislocation): Allow value of zero.
  7672 	(axes::properties::yaxislocation): Likewise.
  7673 
  7674 2008-01-12  Michael Goffioul  <michael.goffioul@gmail.com>
  7675 
  7676 	* Makefile.in (distclean): Delete graphics-props.cc.
  7677 
  7678 	* genprops.awk: Handle new graphics property classes.
  7679 
  7680 	* graphics.h.in, graphics.cc: Adapt for new specific property types.
  7681 
  7682 2008-01-12  John W. Eaton  <jwe@octave.org>
  7683 
  7684 	* toplev.cc (octave_config_info): Add GNUPLOT to the struct.
  7685 	* oct-conf.h.in (OCTAVE_CONF_GNUPLOT): New macro.
  7686 
  7687 2008-01-11  John W. Eaton  <jwe@octave.org>
  7688 
  7689 	* DLD-FUNCTIONS/__qp__.cc (qp): Undo part of change from
  7690 	2007-09-04 (compute Y at each iteration).
  7691 
  7692 2008-01-10  John W. Eaton  <jwe@octave.org>
  7693 
  7694 	* DLD-FUNCTIONS/fsolve.cc (Ffsolve): Doc fix.
  7695 	(hybrd_info_to_fsolve_info): Swap return values for -1 and -2 inputs.
  7696 
  7697 	* DLD_FUNCTIONS/__gnuplot_raw__.l: Delete.
  7698 	* Makefile.in (DLD_XSRC): Remove it from the list.
  7699 	(BUILT_DISTFILES): Remove __gnuplot_raw__.cc from the list.
  7700 	(stamp-prereq): Don't depend on __gnuplot_raw__.cc.
  7701 	(maintainer-clean): Don't remove __gnuplot_raw__.cc.
  7702 	(__gnuplot_raw__.cc): Delete target.
  7703 	(__gnuplot_raw__.o, pic/__gnuplot_raw__.o): Delete targets.
  7704 
  7705 	* mex.cc (calc_single_subscript_internal): New static function.
  7706 	(mxArray_octave_value::calc_single_subscript): Use it.
  7707 	(mxArray_matlab::calc_single_subscript): Use it.
  7708 
  7709 2008-01-07  John W. Eaton  <jwe@octave.org>
  7710 
  7711 	* src/pt-except.cc (tree_try_catch_command::eval):
  7712 	Set Vdebug_on_error and Vdebug_on_warning to false while executing
  7713 	try block.
  7714 
  7715 	* error.cc (Vdebug_on_error, Vdebug_on_warning): No longer static.
  7716 	* error.h: Provide decls.
  7717 
  7718 	* gripes.cc (gripe_wrong_type_arg (const std::string&, const
  7719 	octave_value&, bool)): New function.
  7720 	* gripes.h: Provide decl.
  7721 
  7722 	* oct-stream.cc (printf_value_cache::printf_value_cache):
  7723 	Reject structs, cells, objects, and lists.
  7724 	(octave_base_stream::do_printf): Quit early if printf_value_cache
  7725 	constructor fails.
  7726 
  7727 	* parse.y (make_anon_fcn_handle): Don't attempt to convert
  7728 	expression to assignment to __retval__.
  7729 
  7730 2008-01-07  Michael Goffioul  <michael.goffioul@gmail.com>
  7731 
  7732 	* ov-builtin.h (octave_builtin): Tag with OCTINTERP_API.
  7733 	* ov-dld-fcn.h (octave_dld_function): Likewise.
  7734 
  7735 	* ov-dld-fcn.cc (octave_dld_function::create): New function.
  7736 	* ov-dld-fcn.h: Provide decl.
  7737 	* defun.h (DEFINE_FUNX_INSTALLER_FUN3): Call it instead of
  7738 	creating a new octave_dld_function object directly.
  7739 
  7740 2008-01-04  John Swensen  <jpswensen@comcast.net>
  7741 
  7742 	* debug.cc (bp_table::do_remove_all_breakpoints_in_file):
  7743 	Avoid calling erase on invalid bp_map iterators.
  7744 	(bp_table::do_remove_breakpoint): Only try to delete breakpoints
  7745 	if some exist.  Avoid calling erase on invalid bp_map iterators.
  7746 	(parse_dbfunction_params): Return early if ARGS is empty.
  7747 	New arg, WHO.  Change all uses.
  7748 	Accept but do nothing with struct args.
  7749 
  7750 2008-01-04  Thomas Weber  <thomas.weber.mail@gmail.com>
  7751 
  7752 	* variables.cc (Fclear): Doc fix.
  7753 
  7754 2008-01-04  John W. Eaton  <jwe@octave.org>
  7755 
  7756 	* symtab.h (symbol_table:pop_scope): Avoid accessing beyond end of
  7757 	scope_stack.
  7758 
  7759 2008-01-04  David Bateman  <dbateman@free.fr>
  7760 
  7761 	* ov-mapper.cc (SPARSE_MAPPER_LOOP_2): Use data method instead of
  7762 	elem in the case where F(0) is non-zero.
  7763 
  7764 2007-12-28  John W. Eaton  <jwe@octave.org>
  7765 
  7766 	Merge changes from object branch:
  7767 
  7768 	2007-12-12  John W. Eaton  <jwe@octave.org>
  7769 
  7770 	* load-path.cc (load_path::dir_info::get_file_list,
  7771 	load_path::move_method_map, load_path::remove_method_map,
  7772 	load_path::do_find_fcn, load_path::do_find_private_fcn,
  7773 	load_path::do_find_method, load_path::do_find_file,
  7774 	load_path::do_find_first_of, load_path::do_find_all_first_of,
  7775 	load_path::do_display, load_path::add_to_method_map, genpath,
  7776 	execute_pkg_add_or_del): Use file_ops::concat.
  7777 
  7778 	2007-08-24  John W. Eaton  <jwe@octave.org>
  7779 
  7780 	* variables.cc (Fmislocked): return value for nargin == 0 case.
  7781 
  7782 	2007-07-27  John W. Eaton  <jwe@octave.org>
  7783 
  7784 	* pt-idx.cc (tree_index_expression::rvalue):
  7785 	Pass substring of type to subsref when doing partial evaluation.
  7786 	(tree_index_expression::lvalue): Likewise.
  7787 
  7788 	2007-06-29  John W. Eaton  <jwe@octave.org>
  7789 
  7790 	* ov-class.cc (is_built_in_class, set_class_relationship,
  7791 	Fsuperiorto, Finferiorto): New functions.
  7792 	(octave_class::in_class_method): New function.
  7793 	(octave_class::subsref, octave_class:subsasgn): Use it.
  7794 
  7795 	2007-06-28  John W. Eaton  <jwe@octave.org>
  7796 
  7797 	* src/ov-class.cc (sanitize): New function.
  7798 	(make_idx_args): Use it.
  7799 
  7800 	2007-06-28  John W. Eaton  <jwe@octave.org>
  7801 
  7802 	* src/ov-class.cc (octave_class::subsasgn): Expect and use only
  7803 	one return value from feval of subsasgn method.
  7804 
  7805 	* ov.cc (octave_value::assign): Don't convert to struct if
  7806 	indexing a class object with ".".
  7807 
  7808 	* pt-idx.cc (tree_index_expression::make_arg_struct):
  7809 	Use Cell instead of octave_value_list for subscripts.
  7810 
  7811 	* ov-class.cc (make_idx_args): For "." index, subs field is
  7812 	string, not cell.
  7813 
  7814 	2007-06-27  John W. Eaton  <jwe@octave.org>
  7815 
  7816 	* ov-fcn-handle.cc (octave_fcn_handle::save_ascii,
  7817 	octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary,
  7818 	octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5,
  7819 	octave_fcn_handle::load_hdf5): Adapt to new symbol table objects.
  7820 
  7821 	* symtab.h (symbol_table::all_variables,
  7822 	symbol_table::do_all_variables): New arg, defined_only.
  7823 
  7824 	2007-06-26  John W. Eaton  <jwe@octave.org>
  7825 
  7826 	* ls-mat5.cc (read_mat5_binary_element): Adapt to new symbol table
  7827 	objects.
  7828 
  7829 	* variables.cc (Vwhos_line_format): New static variable.
  7830 	(Fwhos_line_format): New function.
  7831 	(symbol_record_name_compare): Delete function.
  7832 	(symbol_record_name_compare, whos_parameter): New structs.
  7833 	(print_descriptor, dimensions_string_req_first_space,
  7834 	dimensions_string_req_total_space, make_dimensions_string,
  7835 	parse_whos_line_format, print_symbol_info_line): New static
  7836 	functions, adapted from old symbol table class.
  7837 	(do_who): Adapt to new symbol table objects.
  7838 
  7839 	* symtab.h (symbol_table::glob_variables): New functions.
  7840 	(symbol_table::do_glob): New argument, vars_only.  Change all uses.
  7841 
  7842 	2007-06-22  John W. Eaton  <jwe@octave.org>
  7843 
  7844 	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::help_for_dispatch):
  7845 	New function.
  7846 	* symtab.h: Provide decl.
  7847 	(symbol_table::fcn_info::help_for_dispatch,
  7848 	symbol_table::help_for_dispatch): New functions.
  7849 
  7850 	* help.cc (help_from_symbol_table): Call
  7851 	symbol_table::help_for_dispatch instead of
  7852 	extract_help_from_dispatch.
  7853 
  7854 	* help.cc (extract_help_from_dispatch): Delete.
  7855 	* help.h: Delete decl.
  7856 
  7857 	2007-06-21  John W. Eaton  <jwe@octave.org>
  7858 
  7859 	* DLD-FUNCTIONS/dispatch.cc (class octave_dispatch): Delete class.
  7860 	(builtin, any_arg_is_magic_colon, dispatch_record): Delete functions.
  7861 	(Fbuiltin, Fdispatch): Adapt to new symbol table objects.
  7862 
  7863 	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::print_dispatch):
  7864 	New function.
  7865 	* symtab.h: Provide decl.
  7866 	(symbol_table::fcn_info::print_dispatch, symbol_table::print_dispatch):
  7867 	New functions.
  7868 
  7869 	* symtab.h (symbol_table::fcn_info::fcn_info_rep::clear_dispatch,
  7870 	symbol_table::fcn_info::clear_dispatch, symbol_table::clear_dispatch):
  7871 	New functions.
  7872 
  7873 	* symtab.h (symbol_table::fcn_info::fcn_info_rep::get_dispatch,
  7874 	symbol_table::fcn_info::get_dispatch, symbol_table::get_dispatch):
  7875 	New functions.
  7876 
  7877 	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find):
  7878 	Use leftmost class argument as dispatch type, or first argument if
  7879 	there are no class arguments.
  7880 
  7881 	2007-06-20  John W. Eaton  <jwe@octave.org>
  7882 
  7883 	* ov-base.cc (Vprint_answer_id_name, Fprint_answer_id_name): Delete.
  7884 	(octave_base_value::print_with_name): Always print name.
  7885 
  7886 	* ov-base.cc (Vsilent_functions): No longer static.
  7887 	* ov-base.h: Provide decl.
  7888 
  7889 	* ov-class.cc (Fmethods): Define as command.
  7890 
  7891 	* ov-class.cc (octave_class::print): Simply call print_raw.
  7892 
  7893 	* ov-class.cc (octave_class::print_with_name): New function.
  7894 	* ov-class.h: Provide decl.
  7895 
  7896 	2007-06-19  John W. Eaton  <jwe@octave.org>
  7897 
  7898 	* ov.cc (octave_value::do_unary_op, octave_value::do_binary_op):
  7899 	Handle class methods.
  7900 
  7901 	* ov.cc (octave_value::unary_op_fcn_name,
  7902 	octave_value::binary_op_fcn_name): New functions.
  7903 	* ov.h: Provide decls.
  7904 
  7905 	* ov-typeinfo.cc (octave_value_typeinfo::register_unary_class_op,
  7906 	octave_value_typeinfo::register_binary_class_op,
  7907 	octave_value_typeinfo::do_register_unary_class_op,
  7908 	octave_value_typeinfo::do_register_binary_class_op,
  7909 	octave_value_typeinfo::do_lookup_unary_class_op,
  7910 	octave_value_typeinfo::do_lookup_binary_class_op): New functions.
  7911 	* ov-typeinfo.h: Provide decls.
  7912 	
  7913 	* ov-typeinfo.h (octave_value_typeinfo::unary_class_op_fcn,
  7914 	octave_value_typeinfo::binary_class_op_fcn): New typedefs.
  7915 	(octave_value_typeinfo::unary_class_ops,
  7916 	octave_value_typeinfo::binary_class_ops): New data members.
  7917 	(octave_value_typeinfo::octave_value_typeinfo): Initialize them.
  7918 	(octave_value_typeinfo::lookup_unary_class_op,
  7919 	octave_value_typeinfo::lookup_binary_class_op): New functions.
  7920 
  7921 	* OPERATORS/op-class.cc: New file.
  7922 	* Makefile.in (OP_XSRC): Add it to the list.
  7923 
  7924 	* ov.cc (install_types): Call octave_class::register_type here.
  7925 
  7926 	* ov-class.h (octave_class): Implement by containing a map object
  7927 	instead of deriving from octave_struct.
  7928 	* ov-class.cc (octave_class::subsref, octave_class::subsasgn):
  7929 	Don't use octave_class implementation as default action.
  7930 
  7931 	* ov.h, ov.cc (octave_value::octave_value (const Octave_map&, const
  7932 	std::string&)): New constructor.
  7933 
  7934 	2007-06-18  John W. Eaton  <jwe@octave.org>
  7935 
  7936 	* ov-class.cc (octave_class::subsref, octave_class::subsasgn):
  7937 	Handle dispatch to user-defined methods.
  7938 
  7939 	* parse.y (load_fcn_from_file): New arg, dispatch_type.
  7940 	Change all uses.
  7941 
  7942 	* ov-fcn.h (octave_function::is_class_constructor,
  7943 	octave_function::is_class_method, octave_function::dispatch_class):
  7944 	New virtual functions.
  7945 
  7946 	* ov-usr-fcn.h (octave_user_function::dispatch_class,
  7947 	octave_usr_function::stash_dispatch_class): New functions.
  7948 	(octave_usr_fucntion::xdispatch_class): New data member.
  7949 	* parse.y (frob_function): Call stash_dispatch_class here.
  7950 
  7951 	* ov-struct.cc (Ffieldnames): Also handle objects.
  7952 
  7953 	* ov-class.cc (Fmethods): New function.
  7954 	* load-path.cc (load_path::do_methods): New function.
  7955 	* load-path.h (load_path::methods): New function.
  7956 
  7957 	* ov.h (octave_value::is_object): New function.
  7958 	* ov-base.h (octave_base_value::is_object): New virtual function.
  7959 	* ov-class.h (octave_class::is_object): New function.
  7960 	* ov-class.cc (Fisobject): New function.
  7961 
  7962 	2007-06-15  John W. Eaton  <jwe@octave.org>
  7963 
  7964 	* ov-class.cc (octave_class::print): Call display method if found.
  7965 
  7966 	* symtab.h (symbol_table::fcn_info::find_method): New function.
  7967 	(symbol_table::find_method): New function.
  7968 	(symbol_table::fcn_info::fcn_info_rep::find_method): Provide decl.
  7969 	* symtab.cc (symbol_table::fcn_info::fcn_info_rep::find_method):
  7970 	New function.
  7971 	(symbol_table::fcn_info::fcn_info_rep::find): Use it.
  7972 
  7973 	2007-06-14  John W. Eaton  <jwe@octave.org>
  7974 
  7975 	* symtab.h (symbol_table::clear_mex_functions): Make it work.
  7976 	(symbol_table::fcn_info::fcn_info_rep::clear_mex_function,
  7977 	symbol_table::fcn_info::clear_mex_function): New functions.
  7978 
  7979 	2007-06-08  John W. Eaton  <jwe@octave.org>
  7980 
  7981 	* defun.cc (Falias): Delete.
  7982 
  7983 	* variables.cc (load_fcn_try_ctor): New function.
  7984 	(lookup): call load_fcn_try_ctor instead of load_fcn_from_file.
  7985 
  7986 	* variables.cc, variables.h (at_top_level, lookup_by_name, lookup,
  7987 	initialize_symbol_tables, fcn_out_of_date, symbol_out_of_date,
  7988 	lookup_function, lookup_user_function, link_to_global_variable,
  7989 	link_to_builtin_or_function, force_link_to_function, Fdocument,
  7990 	is_local_variable, do_clear_all, do_clear_functions,
  7991 	do_clear_globals, do_clear_variables, do_clear_function,
  7992 	do_clear_global, do_clear_variable, do_clear_symbol,
  7993 	do_clear_function_pattern, do_clear_global_pattern,
  7994 	do_clear_variable_pattern, do_clear_symbol_pattern,
  7995 	clear_function, clear_variable, clear_symbol):
  7996 	Delete (some functionality moved to the new symtab.cc and some is
  7997 	no longer needed).
  7998 	(Fignore_function_time_stamp): Move to symtab.cc.
  7999 
  8000 	* lex.l (lookup_identifier): Delete.
  8001 
  8002 	* parse.y (is_function_file): New function.
  8003 	(load_fcn_from_file): Return pointer to octave_function, not bool.
  8004 
  8005 	* ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::argn_sr,
  8006 	octave_user_function::nargin_sr, octave_user_function::nargout_sr,
  8007 	octave_user_function::varargin_sr): Delete data members.
  8008 	(octave_user_function::install_automatic_vars): Delete.
  8009 	(octave_user_script::do_multi_index_op): New function.
  8010 
  8011 	* ov-fcn.h (octave_function::locked, octave_function::my_dir_name):
  8012 	New data members.
  8013 	(octave_function::dir_name, octave_function::stash_dir_name,
  8014 	octave_function::lock, octave_function::unlock,
  8015 	octave_function::islocked): New functions.
  8016 
  8017 	* of-fcn-handle.h, ov-fcn-handle.cc (octave_fcn_handle::subsref):
  8018 	Call out_of_date_check here to simplify time stamp checking.
  8019 	(octave_fcn_handle::reload_warning): Delete.
  8020 
  8021 	* ov.h (octave_value::is_user_script, octave_value::is_user_function):
  8022 	New functions.
  8023 	* ov-base.h (octave_base_value::is_user_script,
  8024 	octave_base_value::is_user_function): New pure virtual functions.
  8025 	* ov-fcn.h (octave_function::is_user_script,
  8026 	octave_function::is_user_function): Delete.
  8027 
  8028 	* load-save.cc (install_loaded_variable): Greatly simplify.
  8029 
  8030 	* load-path.h, load-path.cc: Change private_fcn_file to private_file.
  8031 	(load_path::private_fcn_map): New data member.
  8032 	(load_path::do_add, load_path::do_remove, load_path::do_update):
  8033 	Also manage private_file_map here.
  8034 	(load_path::add_to_private_fcn_map): New function.
  8035 	(load_path::remove_private_fcn_map): New function.
  8036 	(load_path::do_find_private_fcn): Make it work.
  8037 	(get_file_list): New function.
  8038 	(load_path::do_display): Use it.  Display private map.
  8039 	(load_path::find_method, load_path::find_fcn): Handle directory name.
  8040 
  8041 	* token.cc, token.h, toplev.cc, debug.cc, defun.cc, defun-dld.h,
  8042 	defun-int.h, error.cc, help.cc, load-save.h, load-save.cc, mex.cc,
  8043 	octave.cc, ov-fcn-handle.cc, ov-usr-fcn.cc, parse.h, parse.y,
  8044 	lex.l, variables.cc: Adapt to new symbol table objects (my
  8045 	apologies for the lack of detail).
  8046 
  8047 	* unwind-prot.h (unwind_protect::add): Set default value for ptr arg.
  8048 
  8049 	* pt-stmt.cc (tree_statement::eval): Rework method for deciding
  8050 	whether to assign value to ans.
  8051 
  8052 	* pt-idx.cc (tree_index_expression::rvalue):
  8053 	Looking up symbol may evaluaate first args now.
  8054 
  8055 	* pt-id.h, pt-id.cc (tree_identifier::document,
  8056 	tree_identifier::is_defined, tree_identifier::define,
  8057 	tree_identifier::is_function, tree_identifier::lookup,
  8058 	tree_identifier::link_to_global): Delete.
  8059 	(tree_identifier::do_lookup): Simplify.
  8060 	(tree_identifier::rvalue): Looking up symbol can't execute script now.
  8061 
  8062 	* pt-misc.cc (tree_parameter_list::initialize_undefined,
  8063 	tree_parameter_list::is_defined): Call is_variable for elt, not
  8064 	is_defined.
  8065 
  8066 	* pt-fcn-handle.h (tree_anon_fcn_handle::fcn): Now pointer to
  8067 	octave_user_function, not value.  Change all uses.
  8068 
  8069 	* pt-decl.h (tree_decl_command::initialized): Delete data member.
  8070 	(tree_decl_elt::is_variable): New function.
  8071 	* pt-decl.cc: Fix all uses of tree_decl_command::initialized.
  8072 
  8073 	* ls-hdf5.cc, ls-mat-ascii.cc, ls-mat4.cc, ls-mat5.cc,
  8074 	ls-oct-ascii.cc, ls-oct-binary.cc, input.cc: Don't include symtab.h.
  8075 
  8076 	* dynamic-ld.h, dynamic-ld.cc (octave_dynamic_loader::load_oct,
  8077 	octave_dynamic_loader::load_mex, octave_dynamic_loader::do_load_oct,
  8078 	octave_dynamic_loader::do_load_mex): Adapt to new symbol table
  8079 	objects.  Return pointer octave_function instead of bool.
  8080 
  8081 	* DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Disable for now.
  8082 	Disable code that works with old symbol tables.
  8083 	(Fbuiltin): Simply call symbol_table::add_dispatch.
  8084 
  8085 	* pt-arg-list.cc, pt-arg-list.h, pt-assign.cc, pt-assign.h,
  8086 	pt-binop.cc, pt-binop.h, pt-bp.h, pt-cell.cc, pt-cell.h,
  8087 	pt-cmd.cc, pt-cmd.h, pt-colon.cc, pt-colon.h, pt-const.cc,
  8088 	pt-const.h, pt-decl.cc, pt-decl.h, pt-except.cc, pt-except.h,
  8089 	pt-exp.h, pt-fcn-handle.cc, pt-fcn-handle.h, pt-id.cc, pt-id.h,
  8090 	pt-idx.cc, pt-idx.h, pt-jump.cc, pt-jump.h, pt-loop.cc, pt-loop.h,
  8091 	pt-mat.cc, pt-mat.h, pt-misc.cc, pt-misc.h, pt-select.cc,
  8092 	pt-select.h, pt-stmt.cc, pt-stmt.h, pt-unop.cc, pt-unop.h:
  8093 	Adapt dup functions to use scope instead of symbol_table objects.
  8094 
  8095 	* TEMPLATE-INST/Array-sym.cc: Delete.
  8096 	* Makefile.in (TI_XSRC): Remove it from the list.
  8097 
  8098 	* symtab.h, symtab.cc: Replace with new versions.
  8099 
  8100 	2007-05-16  John W. Eaton  <jwe@octave.org>
  8101 
  8102 	* oct-lvalue.cc, oct-lvalue.h (octave_lvalue::chg_fcn): Delete.
  8103 	Fix all uses.
  8104 
  8105 	2007-05-15  John W. Eaton  <jwe@octave.org>
  8106 
  8107 	* load-path.cc (load_path::do_find_private_function): New function.
  8108 	* load-path.h (load_path::do_find_private_function): Provide decl.
  8109         (load_path::find_private_function): New function.
  8110 
  8111 	2007-05-08  John W. Eaton  <jwe@octave.org>
  8112 
  8113 	* pt-idx.cc (tree_index_expression::rvalue): Handle dispatch here.
  8114 
  8115 	* pt-id.cc (tree_identifier::is_variable, tree_identifier::lookup):
  8116 	New functions.
  8117 	* pt-id.cc: Provide decls.
  8118 
  8119 	* parse.y (current_class_name): New global variable.
  8120 	* parse.h: Provide decl.
  8121 
  8122 	* parse.y (load_fcn_from_file, parse_fcn_file):
  8123 	New arg, dispatch_type.
  8124 	(parse_fcn_file): Protect current_class_name and set it to
  8125 	dispatch_type before parsing function.
  8126 	(load_fcn_from_file): If dispatch_type is not empty, call
  8127 	load_path::find_method instead of load_path::find_fcn.
  8128 	* parse.h: Fix decls for extern functions.
  8129 
  8130 	* lex.h (lexical_feedback::parsing_class_method): New data member.
  8131 	* lex.l (lexical_feedback::init): Initialize it.
  8132 	(lookup_identifier): Check it and set sym_name accordingly.
  8133 
  8134 	* ov-usr-fcn.h (octave_user_function::mark_as_class_constructor,
  8135 	octave_user_function::is_class_constructor,
  8136 	octave_user_function::mark_as_class_method,
  8137 	octave_user_function::is_class_method): New functions.
  8138 	(octave_user_function::class_constructor,
  8139 	octave_user_function::class_method): New data members.
  8140 	* ov-usr-fcn.cc (octave_user_function::octave_user_function):
  8141 	Initialize them.
  8142 
  8143 	* load-path.h, load-path.cc: Use typedefs to simplify template decls.
  8144 	Use fcn consistently instead of function.
  8145 	
  8146 	2007-05-03  John W. Eaton  <jwe@octave.org>
  8147 
  8148 	* ov-class.cc (Fclass): Move here.
  8149 	* ov-typeinfo.cc: From here.
  8150 
  8151 	* input.cc (octave_gets): Call load_path::update if user input
  8152 	contains something other than one of the characters " \t\n\r".
  8153 
  8154 	* ov-class.cc, ov-class.h: New files.
  8155 	* Makefile.in: Add them to the appropriate lists.
  8156 
  8157 	* load-path.cc (genpath): Skip directories beginning with "@".
  8158 	(load_path::dir_info::get_file_list):  Don't return anything.
  8159 	Call get_private_function_map here.
  8160 	(load_path::dir_info::initialize): Not here.
  8161 	(load_path::dir_info_::get_method_file_map): New function.
  8162 	(load_path::method_map): New data member.
  8163 	(load_path::do_clear): Also clear method_map.
  8164 	(load_path::do_add): Also call add_to_method_map.
  8165 	(load_path::do_update): Also clear method_map and call
  8166 	(load_path::do_find_method): New function.
  8167 	(load_path::do_add_to_method_map): New function.
  8168 	(load_path::move_fcn_map, load_path::move_method_map): New functions.
  8169 	(load_path::move): Use them.
  8170 	(load_path::remove_fcn_map, load_path::remove_method_map):
  8171 	New functions.
  8172 	(load_path::remove): Use them.
  8173 	* load-path.h: Provide/fix decls.
  8174 	(load_path::find_method): New static function.
  8175 
  8176 	* Makefile.in (%.df : %.cc): Use mv instead of
  8177 	$(simple-move-if-change-rule).
  8178 
  8179 2007-12-21  John W. Eaton  <jwe@octave.org>
  8180 
  8181 	Version 3.0.0 released.
  8182 
  8183 	* version.h (OCTAVE_VERSION): Now 3.0.0.
  8184 	(OCTAVE_API_VERSION): Now api-v32.
  8185 	(OCTAVE_RELEASE_DATE): Now 2007-12-21.
  8186 
  8187 2007-12-19  Thomas Kasper  <ThomasKasper@gmx.net>
  8188 
  8189 	* OPERATORS/op-scm-cs.cc (DEFBINOP (pow)): Extract complex value
  8190 	from second arg.
  8191 
  8192 2007-12-12  David Bateman  <dbateman@free.fr>
  8193 
  8194 	* DLD-FUNCTIONS/sparse.cc (Fsparse): Check for scalar arguments
  8195 	for 2 argument version.
  8196 
  8197 2007-12-12  John W. Eaton  <jwe@octave.org>
  8198 
  8199 	* graphics.h.in (class axes) Add the layer property.
  8200 	* graphics.cc (class axes) Ditto.
  8201 
  8202 	* graphics.cc (gh_manager::get_handle): Use ceil instead of trunc.
  8203 
  8204 2007-12-11  John W. Eaton  <jwe@octave.org>
  8205 
  8206 	* version.h (OCTAVE_VERSION): Now 2.9.19+.
  8207 
  8208 2007-12-11  John W. Eaton  <jwe@octave.org>
  8209 
  8210 	* version.h (OCTAVE_VERSION): Now 2.9.19.
  8211 	(OCTAVE_API_VERSION): Now api-v31.
  8212 	(OCTAVE_RELEASE_DATE): Now 2007-12-11.
  8213 
  8214 	* graphics.cc (make_graphics_object):
  8215 	If successful, call __request_drawnow__.
  8216 
  8217 	* input.cc (Vgud_mode): New static variable.
  8218 	(F__gud_mode__): New function.
  8219 	(get_user_input): If debug and Vgud_mode, print location info in
  8220 	format for Emacs GUD mode.
  8221 
  8222 2007-12-11  David Bateman  <dbateman@free.fr>
  8223 
  8224 	* OPERATORS/op-bm-sbm.cc, OPERATORS/op-b-sbm.cc, 
  8225 	OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, 
  8226 	OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, 
  8227 	OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, 
  8228 	OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc: Privilege 
  8229 	conversion to dense matrices for compatibility.
  8230 
  8231 	* DLD-FUNCTIONS/sparse.cc (FSparse): Remove the mutate flag, as
  8232 	default bahavior is now to keep matrix sparse always.
  8233 	
  8234 	* graphics.cc (axes::properties::properties):
  8235 	Initialize xcolor, ycolor, and zcolor to (0, 0, 0).
  8236 
  8237 	* graphics.h.in (gh_manager::next_handle): Now double.
  8238 	* graphics.cc (gh_manager::get_handle, gh_manager::gh_manager):
  8239 	Set fractional part of next_handle to a random value.
  8240 
  8241 2007-12-10  John W. Eaton  <jwe@octave.org>
  8242 
  8243 	* ov-cell.cc (octave_cell::all_strings): Handle empty elements.
  8244 	Handle N-d cell arrays.
  8245 
  8246 	* DLD-FUNCTIONS/fsolve.cc (Ffsolve):
  8247 	For compatibility, return [x, fval, info] instead of [x, info, msg].
  8248  	Move tests here from test/test_nonlin.m.
  8249 
  8250 	* OPERATORS/op-cm-s.cc: Define function for el_mul with
  8251 	DEFNDBINOP_OP, not DEFBINOP_OP.
  8252 
  8253 	* OPERATORS/op-s-cm.cc: Define functions for el_and and el_or
  8254 	operators with DEFNDBINOP_FN.
  8255 
  8256 	* oct-hist.cc (default_history_file): Use file_ops::concat.
  8257 	* load-path.cc (dir_info::initialize, dir_info::get_file_list,
  8258 	load_path::do_find_fcn, load_path::do_find_file, genpath,
  8259 	execute_pkg_add_or_del, load_path::do_find_first_of,
  8260 	load_path::do_find_all_first_of): Likewise.
  8261 
  8262 	* help.cc (Flookfor): Avoid doubling directory separator.
  8263 	* dirfns.cc (Fmkdir): Likewise.
  8264 
  8265 	* pt-mat.cc (tree_matrix::rvalue): Produce sq_string if any
  8266 	strings are sq_string objects.
  8267 
  8268 2007-12-10  David Bateman  <dbateman@free.fr>
  8269 
  8270 	* graphics.h.in (data_property::data): Declare as NDArray instead
  8271 	of Matrix.  Change all uses.
  8272 
  8273 2007-12-10  Shai Ayal  <shaiay@users.sourceforge.net>
  8274 
  8275 	* graphics.h.in (class figure) Add the color property.
  8276 	* graphics.cc (class figure) Ditto.
  8277 
  8278 2007-12-07  David Bateman  <dbateman@free.fr>
  8279 
  8280 	* data.cc (Fnorm): Don't return a scalar stored as a sparse
  8281 	matrix. Convert it to a scalar.
  8282 
  8283 	* graphics.cc (check_limit_val): Delete.
  8284 	(check_limit_vals): Simplify and no longer use check_limit_val.
  8285 
  8286 2007-12-05  John W. Eaton  <jwe@octave.org>
  8287 
  8288 	* version.h (OCTAVE_VERSION): Now 2.9.18+.
  8289 
  8290 2007-12-05  John W. Eaton  <jwe@octave.org>
  8291 
  8292 	* version.h (OCTAVE_VERSION): Now 2.9.18.
  8293 	(OCTAVE_API_VERSION): Now api-v30.
  8294 	(OCTAVE_RELEASE_DATE): Now 2007-12-05.
  8295 
  8296 2007-12-04  John W. Eaton  <jwe@octave.org>
  8297 
  8298 	* Makefile.in (INCLUDES): Add builtins.h to the list.
  8299 
  8300 	* src/oct-hist.cc (default_history_file): Use += instead of
  8301 	push_back to append character to std::string object.
  8302 
  8303 	* Makefile.in (LIBDLFCN): Delete all uses.
  8304 
  8305 	* toplev.cc (octave_config_info): Remove LIBDLFCN and
  8306 	DLFCN_INCFLAGS from the list.
  8307 	* oct-conf.h.in (OCTAVE_CONF_DLFCN_INCFLAGS, OCTAVE_CONF_LIBDLFCN):
  8308 	Delete. 
  8309 
  8310 	* error.cc (Ferror): Handle error id.
  8311 
  8312 	* load-save.cc (Fsave, Fload): Doc fixes.
  8313 	From Marco Caliari <caliari@sci.univr.it>.
  8314 
  8315 2007-12-04  Shai Ayal  <shaiay@users.sourceforge.net>
  8316 
  8317 	* graphics.h.in (base_properties::get_type
  8318         base_properties::get___modified__,
  8319 	base_properties::get___myhandle__): New functions.
  8320 
  8321 2007-12-04  Christoph Mayer  <Christoph.Mayer@dlr.de>.
  8322 
  8323 	* toplev.h (clean_up_and_exit, recover_from_exception,
  8324 	do_octave_atexit, global_command, curr_parent_function):
  8325 	Tag with OCTINTERP_API. 
  8326 
  8327 2007-12-03  David Bateman  <dbateman@free.fr>
  8328 
  8329 	* DLD-FUNCTIONS/luinc.cc: Make tests conditional on HAVE_UMFPACK.
  8330 	* DLD-FUNCTIONS/spqr.cc: Make tests conditional on HAVE_CXSPARSE.
  8331 
  8332 	* DLD-FUNCTIONS/regexp.cc: Use "%!testif" blocks for conditional
  8333 	tests on PCRE.
  8334 
  8335 	* graphics.cc (class axes): Add color and activepositionproperty
  8336 	properties to axis objects.
  8337 	* graphics.h.in (class axes): ditto.
  8338 
  8339 	* DLD-FUNCTIONS/regexp.cc: Also include sys/types.h for regexp.
  8340 
  8341 2007-11-30  John W. Eaton  <jwe@octave.org>
  8342 
  8343 	* DLD-FUNCTIONS/sort.cc (operator < (const Complex&, const Complex&),
  8344 	operator > (const Complex&, const Complex&)):
  8345 	Pass args by const reference, not value.
  8346 
  8347 	* src/data.cc, src/matherr.c, src/pr-output.cc, src/sysdep.cc,
  8348 	src/DLD-FUNCTIONS/__dsearchn__.cc, src/DLD-FUNCTIONS/minmax.cc,
  8349 	src/DLD-FUNCTIONS/qz.cc, src/DLD-FUNCTIONS/sort.cc,
  8350 	src/DLD-FUNCTIONS/tsearch.cc: Include lo-math.h instead of cmath
  8351 	or math.h.
  8352 
  8353 2007-11-30  Moritz Borgmann  <octave@moriborg.de>
  8354 
  8355 	* ls-mat5.h (mat5_data_type): Delete trailing comma in enum decl.
  8356 	* oct-stream.cc (octave_base_stream::do_printf): Use
  8357 	OCTAVE_EMPTY_CPP_ARG to avoid annoying Sun compiler warning.
  8358 	* OPERATORS/op-sbm-sbm.cc (DEFDBLCONVFN): Delete useless macro
  8359 	invocation.
  8360 
  8361 	* DLD-FUNCTIONS/typecast.cc (typecast): No longer static.
  8362 
  8363 2007-11-30  John W. Eaton  <jwe@octave.org>
  8364 
  8365 	* graphics.cc (updating_axis_limits): New static variable.
  8366 	(check_limit_val, check_limit_vals, get_axis_limits): New functions.
  8367 	(axes::update_axis_limits): Make it work.
  8368 	* graphics.h.in (base_properties::get_children): New function.
  8369 	(base_properties::get_xdata, base_properties::get_ydata,
  8370 	base_properties::get_zdata, base_properties::get_ldata,
  8371 	base_properties::get_udata, base_properties::get_xldata,
  8372 	base_properties::get_xudata, base_properties::get_cdata,
  8373 	base_properties::get_properties (void) const):
  8374 	New virtual functions.
  8375 	(graphics_object::get_xdata, graphics_object::get_ydata,
  8376 	graphics_object::get_zdata, graphics_object::get_ldata,
  8377 	graphics_object::get_udata, graphics_object::get_xldata,
  8378 	graphics_object::get_xudata, graphics_object::get_cdata,
  8379 	graphics_object::get_properties (void) const,
  8380 	root_figure::get_properties (void) const,
  8381 	figure::get_properties (void) const,
  8382 	axes::get_properties (void) const,
  8383 	line::get_properties (void) const,
  8384 	text::get_properties (void) const,
  8385 	image::get_properties (void) const,
  8386 	patch::get_properties (void) const,
  8387 	surface::get_properties (void) const)): New functions.
  8388 	(radio_property::radio_property (const radio_values&)):
  8389 	Provide	default value for argument. 
  8390 	(radio_property::radio_property (const radio_values&, const
  8391 	std::string&)): Delete.
  8392 	(axes::xlimmode, axes::ylimmode, axes::zlimmode, axes::climmode,
  8393 	axes::xscale, axes::yscale, axes::zscale): Declare as
  8394 	radio_property instead of octave_value values.  Adjust all uses.
  8395 
  8396 2007-11-29  John W. Eaton  <jwe@octave.org>
  8397 
  8398 	* pr-output.cc (octave_print_internal_template (std::ostream&,
  8399 	const octave_int<T>&, bool)): Rename from octave_print_internal.
  8400 	(PRINT_INT_SCALAR_INTERNAL): New macro.  Use it to define
  8401 	non-template functions for printing scalar octave_int values.
  8402 	(octave_print_internal_template (std::ostream&, const intNDArray<T>&,
  8403 	bool, int)): Rename from octave_print_internal.
  8404 	(PRINT_INT_ARRAY_INTERNAL): New macro.  Use it to define
  8405 	non-template functions for printing scalar octave_int values.
  8406 	* pr-output.h: Declare non-template functions for printing
  8407 	octave_int scalar and array values.
  8408 	Delete declarations of template funtions for printing octave_int
  8409 	scalar and array values.
  8410 
  8411 2007-11-28  John W. Eaton  <jwe@octave.org>
  8412 
  8413 	* graphics.cc (base_properties::update_axis_limits,
  8414 	axes::update_axis_limits): New functions.
  8415 	* graphics.h.in (class data_property): New class.
  8416 	(graphics_object::update_axis_limits): New function.
  8417 	(base_graphics_object::update_axis_limits): New virtual function.
  8418 	(base_properties::update_axis_limits, axes::update_axis_limits):
  8419 	Provide decls.
  8420 	(class line, class image, class patch, class surface): Use it
  8421 	instead of octave_value for data properties.  Tag data properties
  8422 	with "l" modifier.
  8423 	(class axes): Tag scale properties with "l" modifier.
  8424 	* genprops.awk: Handle "l" modifier.
  8425 
  8426 	* mkbuiltins: Emit #include "builtins.h" for the builtins.cc file.
  8427 	From Christoph Mayer <Christoph.Mayer@dlr.de>.
  8428 
  8429 	* TEMPLATE-INST/Array-tc.cc (resize_fill_value<octave_value>):
  8430 	Delete.
  8431 
  8432 	* Cell.cc (Cell::Cell (const dim_vector&, const string_vector&, bool)):
  8433 	Initialize undefined values to resize_fill_value ().
  8434 
  8435 2007-11-27  John W. Eaton  <jwe@octave.org>
  8436 
  8437 	* TEMPLATE-INST/Array-tc.cc (resize_fill_value<octave_value>):
  8438 	Tag inline.  From Moritz Borgmann <octave@moriborg.de>.
  8439 
  8440 	* pt-bp.cc (tree_breakpoint::visit_decl_command): Also check line
  8441 	number of cmd.
  8442 	* pt-decl.cc (tree_global_command::eval, tree_static_command::eval):
  8443 	Insert MAYBE_DO_BREAKPOINT here.
  8444 
  8445 	* error.cc (Fwarning): If setting state "all" to "error", leave
  8446 	Octave:matlab-incompatible and Octave:single-quote-string warning
  8447 	states unchanged.
  8448 	(warning_enabled): Allow individual warning states to override
  8449 	"warning error all".
  8450 
  8451 	* octave.cc (execute_eval_option_code, execute_command_line_file):
  8452 	Handle interrupts.
  8453 	* toplev.cc (recover_from_exception): Now extern.
  8454 	* toplev.h (recover_from_exception): Provide decl.
  8455 
  8456 	* pt-idx.cc (tree_index_expression::lvalue): Treat object == []
  8457 	the same as undefined.
  8458 
  8459 2007-11-26  John W. Eaton  <jwe@octave.org>
  8460 
  8461 	* oct-stream.cc (DO_DOUBLE_CONV): Always use long.
  8462 
  8463 	* oct-stream.cc (do_write): Call float_value and double_value on
  8464 	octave_int<T> objects instead of relying on conversion operators.
  8465 
  8466 	* ls-mat5.cc (read_mat5_binary_element, OCTAVE_MAT5_INTEGER_READ): 
  8467 	Call double_value on octave_int<T> objects
  8468 	instead of relying on conversion operator.
  8469 	(read_mat5_binary_file_header): 
  8470 	Call char_value on octave_int<T> objects
  8471 	instead of relying on conversion operator.
  8472 	(read_mat5_binary_element): 
  8473 	Call bool_value on octave_int<T> objects
  8474 	instead of relying on conversion operator.
  8475 
  8476 	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::double_value, 
  8477 	OCTAVE_VALUE_INT_MATRIX_T::scalar_value,
  8478 	OCTAVE_VALUE_INT_MATRIX_T::matrix_value,
  8479 	OCTAVE_VALUE_INT_MATRIX_T::complex_matrix_value,
  8480 	OCTAVE_VALUE_INT_MATRIX_T::array_value,
  8481 	OCTAVE_VALUE_INT_MATRIX_T::complex_array_value,
  8482 	OCTAVE_VALUE_INT_SCALAR_T::double_value, 
  8483 	OCTAVE_VALUE_INT_SCALAR_T::scalar_value,
  8484 	OCTAVE_VALUE_INT_SCALAR_T::matrix_value,
  8485 	OCTAVE_VALUE_INT_SCALAR_T::complex_matrix_value,
  8486 	OCTAVE_VALUE_INT_SCALAR_T::array_value,
  8487 	OCTAVE_VALUE_INT_SCALAR_T::complex_array_value,
  8488 	Call double_value on octave_int<T> objects
  8489 	instead of relying on conversion operator.
  8490 	(OCTAVE_VALUE_INT_MATRIX_T::bool_array_value,
  8491 	OCTAVE_VALUE_INT_SCALAR_T::bool_array_value):
  8492 	Call bool_value on octave_int<T> objects
  8493 	instead of relying on conversion operator.
  8494 	(OCTAVE_VALUE_INT_MATRIX_T::char_array_value,
  8495 	OCTAVE_VALUE_INT_SCALAR_T::char_array_value):
  8496 	Call char_value on octave_int<T> objects
  8497 	instead of relying on conversion operator.
  8498 
  8499 2007-11-26  David Bateman  <dbateman@free.fr>
  8500 
  8501 	* Sparse-op-defs.h (SPARSE_BASE_REDUCTION_OP): Check that the fill
  8502 	value is not zero before creating the matrices.
  8503 
  8504 	* graphics.cc (class axes): Add the {x|y|z}color color property.
  8505 	* graphics.h.in (class axes): ditto.
  8506 
  8507 	* ov-base.cc (Vsparse_auto_mutate, Fsparse_auto_mutate): New
  8508 	internal variable and built-in function to set it.
  8509 	* ov-base.h (extern bool Vsparse_auto_mutate): Export internal
  8510 	variable to other functions.
  8511 	* ov-re-sparse.cc (octave_sparse_matrix::try_narrowing_conversion
  8512 	(void)), ov-cx-sparse.cc 
  8513 	(octave_sparse_complex_matrix::try_narrowing_conversion (void)), 
  8514 	ov-bool-sparse.cc
  8515 	(octave_sparse_bool_matrix::try_narrowing_conversion (void)):
  8516 	Use Vsparse_auto_mutate flag to determine whether to convert
  8517 	sparse matrices to full matrices if that saves space.
  8518 
  8519 	* DLD-FUNCTIONS/minmax.cc (MINMAX_DOUBLE_BODY): New version of
  8520 	MINMAX_BODY macro without the initialization.
  8521 	(MINMAX_INT_BODY): Macro for min/max for the integer types
  8522 	(MINMAX_BODY): New macro that calls the appropriate instantiation
  8523 	of the other two macros.
  8524 
  8525 	* graphics.cc (class axes): Add __colorbar__ property.
  8526 	* graphics.h.in (class axes): ditto.
  8527 
  8528 	* data.cc (Fnorm): Document the "inf" string argument for matrice
  8529 	and vectors and the "fro" argument for vectors.
  8530 
  8531 	* graphics.h.in (class figure): Add __enhanced__ property to cache
  8532 	whether the terminal supports enhanced mode. Add interpreter
  8533 	property to all text classes, to determine the renderer for the
  8534 	text.
  8535 	* graphics.cc (class figure): ditto.
  8536 
  8537 2007-11-26  Shai Ayal  <shaiay@users.sourceforge.net>
  8538 
  8539 	* graphics.cc (string_properties): delete class 
  8540 	(property_name): rename class to caseless_str. 
  8541 	(radio_values::possible_vals): change type to caseless_str.
  8542 
  8543 2007-11-26  Michael Goffioul  <michael.goffioul@gmail.com>
  8544 
  8545 	* builtins.h (install_builtins): Tag with OCTINTERP_API.
  8546 	* toplev.h (octave_interpreter_ready, octave_initialized): Likewise.
  8547 
  8548 2007-11-14  John W. Eaton  <jwe@octave.org>
  8549 
  8550 	* mex.cc (mex::foreign_memlist): New data member.
  8551 	(mex::mark_foreign, mex::unmark_foreign): New functions.
  8552 	(mex::free): Don't warn about pointers found in foreign_memlist.
  8553 	(maybe_mark_foreign): New function.
  8554 	(mxArray_octave_value::get_data, mxArray_octave_value::get_ir,
  8555 	mxArray_octave_value::get_jc):
  8556 	Call maybe_mark_foreign on returned pointer.
  8557 
  8558 2007-11-14  David Bateman  <dbateman@free.fr>
  8559 
  8560 	* mex.cc (mxArray_sparse::mxArray_sparse (const mxArray_sparse&)):
  8561 	Also ensure that pr and pi are correctly copied.
  8562 
  8563 2007-11-14  John W. Eaton  <jwe@octave.org>
  8564 
  8565 	* Makefile.in (@bsd_gcc_kluge_targets_frag@): Delete line for
  8566 	Makefrag.bsd substitution.
  8567 
  8568 	* graphics.h.in (base_properties::tag): New property.
  8569 	(base_properties::get_tag, base_properties::set_tag): New functions.
  8570 	(root_figure::set, root_figure::get, figure::set, figure::get,
  8571 	axes::set, axes::get, line::set, line::get, text::set, text::get,
  8572 	patch::set, patch::get, surface::set, surface::get): Handle tag.
  8573 	
  8574 2007-11-14  Joseph P. Skudlarek  <Jskud@Jskud.com>
  8575 
  8576 	* DLD-FUNCTIONS/regexp.cc: Undo previous change.
  8577 
  8578 2007-11-14  John W. Eaton  <jwe@octave.org>
  8579 
  8580 	* mex.cc (mex::mark, mex::unmark): Now public.
  8581 	(mex::persistent): Delete.
  8582 	(mexMakeArrayPersistent): Call maybe_unmark_array instead of
  8583 	mex::persistent.
  8584 	(mexMakeMemoryPersistent): Call maybe_unmark instead of
  8585 	mex::persistent.
  8586 	(maybe_unmark (void *)): New function.
  8587 	(mxSetDimensions, mxSetPr, mxSetPi, mxSetData, mxSetImagData,
  8588 	mxSetIr, mxSetJc): Use it.  From David Bateman.
  8589 
  8590 2007-11-13  Joseph P. Skudlarek  <Jskud@Jskud.com>
  8591 
  8592 	* DLD-FUNCTIONS/rand.cc (Frand): Update URL reference in doc string.
  8593 
  8594 2007-11-12  David Bateman  <dbateman@free.fr>
  8595 
  8596 	* graphics.h.in, graphics.cc (class text): Add the fontangle and
  8597 	fontweight properties. Add string_property class to handle the
  8598 	string radio values.
  8599 
  8600 2007-11-12  John W. Eaton  <jwe@octave.org>
  8601 
  8602 	* version.h (OCTAVE_VERSION): Now 2.9.17+.
  8603 
  8604 2007-11-12  David Bateman  <dbateman@free.fr>
  8605 
  8606 	* graphics.h.in, graphics.cc (class text): Add the fontname and
  8607 	fontsize properties. 
  8608 
  8609 2007-11-10  John W. Eaton  <jwe@octave.org>
  8610 
  8611 	* version.h (OCTAVE_VERSION): Now 2.9.17.
  8612 	(OCTAVE_API_VERSION): Now api-v29.
  8613 	(OCTAVE_RELEASE_DATE): Now 2007-11-10.
  8614 
  8615 2007-11-09  John W. Eaton  <jwe@octave.org>
  8616 
  8617 	* DLD-FUNCTIONS/__gnuplot_raw__.l: Don't add atexit ("closeplot")
  8618 	to PKG_ADD file.
  8619 
  8620 2007-11-09  David Bateman  <dbateman@free.fr>
  8621 
  8622 	* graphics.cc, graphics.h.in (class patch): Add the field "keylabel".
  8623 
  8624 	* data.cc (Fcputime) [__WIN32__]: Correct scaling of sys and usr times.
  8625 
  8626 	* graphics.cc (is_handle): Handle must be a real scalar.
  8627 
  8628 2007-11-09  Joseph P. Skudlarek  <Jskud@Jskud.com>
  8629 
  8630 	* data.cc (Fislogical): Fix typo in documentation entry.
  8631 
  8632 2007-11-08  John W. Eaton  <jwe@octave.org>
  8633 
  8634 	* DLD-FUNCTIONS/__gnuplot_raw__.l (F__gnuplot_save_data__):
  8635 	Note obsolescence in doc string.
  8636 	(WARN_OBSOLETE): New macro
  8637 	(F__gnuplot_save_data__, Fgnuplot_command_plot,
  8638 	Fgnuplot_command_replot, Fgnuplot_command_splot,
  8639 	Fgnuplot_command_using, Fgnuplot_command_with,
  8640 	Fgnuplot_command_axes, Fgnuplot_command_title,
  8641 	Fgnuplot_command_end, Fgnuplot_use_title_option,
  8642 	F__clear_plot_window__, Fcloseplot, Fpurge_tmp_files,
  8643 	F__gnuplot_raw__, F__gnuplot_send_inline_data__, F__gnuplot_set__,
  8644 	F__gnuplot_show__, F__gnuplot_plot__, F__gnuplot_splot__,
  8645 	F__gnuplot_replot__): Use WARN_OBSOLETE.
  8646 
  8647 2007-11-07  John W. Eaton  <jwe@octave.org>
  8648 
  8649 	* DLD-FUNCTIONS/regexp.cc: Handle HAVE_PCRE_PCRE_H.  Check
  8650 	HAVE_PCRE_H instead of HAVE_PCRE to decide whether to include pcre.h.
  8651 
  8652 	* DLD-FUNCTIONS/__gnuplot_raw__.l (Fgnuplot_command_plot,
  8653 	Fgnuplot_command_replot, Fgnuplot_command_splot,
  8654 	Fgnuplot_command_using, Fgnuplot_command_with,
  8655 	Fgnuplot_command_axes, Fgnuplot_command_title,
  8656 	Fgnuplot_command_end, Fgnuplot_use_title_option,
  8657 	F__clear_plot_window__, Fcloseplot, Fpurge_tmp_files,
  8658 	F__gnuplot_raw__, F__gnuplot_send_inline_data__, F__gnuplot_set__,
  8659 	F__gnuplot_show__, F__gnuplot_plot__, F__gnuplot_splot__,
  8660 	F__gnuplot_replot__): Note obsolescence in doc string.
  8661 
  8662 2007-11-06  Kai Habel  <kai.habel@gmx.de>
  8663 
  8664 	* graphics.h.in (class surface::properties): New properties, 
  8665 	cdata, facecolor, facealpha, edgecolor, linestyle,
  8666 	linewidth, marker, markeredgecolor, markerfacecolor, markersize.
  8667 	* graphics.cc (surface::properties::properties,
  8668 	surface::properties::set, surface::properties::get,
  8669 	surface::properties::factory_defaults): Handle new properities.
  8670 
  8671 2007-11-06  David Bateman  <dbateman@free.fr>
  8672 
  8673 	* data.cc (DATA_REDUCTION): Handle the 'native' and 'double'
  8674 	arguments of the Fsum function.
  8675 	* OPERATORS/op-bm-bm.cc (matrix_to_bool_matrix,
  8676 	scalar_to_bool_matrix): New type conversion functions.
  8677 	(install_bm_bm_ops): Install new type conversions functions.
  8678 
  8679 2007-11-06  Michael Goffioul  <michael.goffioul@gmail.com>
  8680 
  8681 	* toplev.cc (Fsystem) [__WIN32__ && ! __CYGWIN__]:
  8682 	Quote the complete command.
  8683 
  8684 2007-11-06  John W. Eaton  <jwe@octave.org>
  8685 
  8686 	* data.cc (Fnorm): New tests.
  8687 
  8688 	* defun-int.h (DEFINE_FUNX_INSTALLER_FUN3): Don't install function
  8689 	if check_version produces an error.
  8690 
  8691 2007-11-05  John W. Eaton  <jwe@octave.org>
  8692 
  8693 	* pt-idx.cc (tree_index_expression::lvalue): Try to do a better
  8694 	job of computing the number of elements in lvalue expressions when
  8695 	the last indexing element is ".".
  8696 
  8697 2007-11-02  John W. Eaton  <jwe@octave.org>
  8698 
  8699 	* file-io.cc (fopen_mode_to_ios_mode): Use std::ios::app instead
  8700 	of std::ios::ate.
  8701 
  8702 2007-11-02  Olli Saarela  <Olli.Saarela@kcl.fi>
  8703 
  8704 	* input.cc, pr-output.cc, bitfcns.cc, DLD-FUNCTIONS/time.cc:
  8705         Fix broken @examples in help texts.
  8706 
  8707 2007-10-31  John W. Eaton  <jwe@octave.org>
  8708 
  8709 	* data.cc (Fnorm): Avoid warning about p_val possibly being used
  8710 	uninitialized.
  8711 
  8712 	* version.h (OCTAVE_VERSION): Now 2.9.16+.
  8713 
  8714 2007-10-31  John W. Eaton  <jwe@octave.org>
  8715 
  8716 	* version.h (OCTAVE_VERSION): Now 2.9.16.
  8717 	(OCTAVE_API_VERSION): Now api-v28.
  8718 	(OCTAVE_RELEASE_DATE): Now 2007-10-31.
  8719 
  8720 2007-10-31  Muthiah Annamalai  <muthuspost@gmail.com>
  8721 
  8722 	* pt-assign.h (tree_simple_assignment::op_type,
  8723 	tree_multi_assignment::op_type): New functions.
  8724 	* pt-unop.h (tree_unary_expression::op_type): New function.
  8725 
  8726 2007-10-31  John W. Eaton  <jwe@octave.org>
  8727 
  8728 	* graphics.cc (line::properties::get): Fix property name
  8729 	(markerface -> markerfacecolor).
  8730 
  8731 	* Makefile.in (INCLUDES): Add debug.h to the list.
  8732 
  8733 2007-10-30  John Swensen  <jpswensen@comcast.net>
  8734 
  8735 	* debug.h: New file.
  8736 	* debug.cc (parse_dbfunction_params, do_find_bkpt_list,
  8737 	intmap_to_ov): New functions.
  8738 	(Fdbstop, Fdbclear): Use parse_dbfunction_params.
  8739 	Improve compatibility.
  8740 	(Fdbstatus): Improve compatibility.
  8741 
  8742 	* help.cc (do_which): No longer static.
  8743 	* help.h: Provide decl.
  8744 
  8745 2007-10-30  David Bateman  <dbateman@free.fr>
  8746 
  8747 	* symtab.cc: Doc fixes for small book format.
  8748 
  8749 2007-10-30  John W. Eaton  <jwe@octave.org>
  8750 
  8751 	* file-io.cc (fopen_mode_to_ios_mode): Handle 'W' as 'w' and 'R'
  8752 	as 'r', but warn about them.
  8753 
  8754 2007-10-29  Thomas Treichl  <Thomas.Treichl@gmx.net>
  8755 
  8756 	* data.cc: Include sytime.h, sys/types.h, and sys/resource.h.
  8757 
  8758 2007-10-25  John W. Eaton  <jwe@octave.org>
  8759 
  8760 	* graphics.cc (figure::properties::set_currentaxes): 
  8761 	Allow currentfigure to be NaN.
  8762 
  8763 2007-10-25  Michael Goffioul  <michael.goffioul@gmail.com>
  8764 
  8765 	* DLD-FUNCTIONS/__contourc__.cc: Use unsigned int instead of uint.
  8766 	(drawcn): Use 1 << k instead of pow (2, k).
  8767 
  8768 2007-10-25  John W. Eaton  <jwe@octave.org>
  8769 
  8770 	* symtab.h (symbol_record::TYPE): Delete trailing comma in enum decl.
  8771 
  8772 	* ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Use
  8773 	OCTAVE_EMPTY_CPP_ARG to avoid annoying Sun compiler warning.
  8774 
  8775 	* Makefile.in (graphics.h): Use $(AWK) instead of awk.
  8776 
  8777 	* DLD-FUNCTIONS/time.cc (Ftime, Fmktime): Avoid unnecessary cast.
  8778 
  8779 	* data.cc (Ftic, Ftoc): Call double_value on octave_time objects
  8780 	instead of relying on conversion operator.
  8781 	* ov.cc (octave_value::octave_value (octave_time)): Likewise.
  8782 
  8783 	* variables.cc (symbol_out_of_date): Use explicit conversion to
  8784 	time_t instead of relying on conversion operator.
  8785 	* ov-fcn-handle.cc (octave_fcn_handle::subsref): Likewise.
  8786 
  8787 	* data.cc (tic_toc_timestamp): Rename from __tic_toc_timestamp__.
  8788 	Change all uses.
  8789 
  8790 2007-10-24  David Bateman  <dbateman@free.fr>
  8791 
  8792 	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::OCTAVE_VALUE_INT_MATRIX_T
  8793 	(const ArrayN<OCTAVE_INT_T>&)): New constructor.
  8794 	* ov.cc (octave_value::octave_value(const ArrayN<T>) with T being
  8795 	octave_int8, octave_uint8, octave_int16, octave_uint16,
  8796 	octave_int32, octave_uint32, octave_int64, octave_uint64): New
  8797 	constructors.
  8798 	* ov.h (octave_value::octave_value(const ArrayN<T>) with T being
  8799 	octave_int8, octave_uint8, octave_int16, octave_uint16,
  8800 	octave_int32, octave_uint32, octave_int64, octave_uint64):
  8801 	Declare them.
  8802 	* DLD-FUNCTIONS/sort.cc (template class octave_sort<T>,
  8803 	template class vec_index<T>, template class
  8804 	octave_sort<vec_index<T> *>,  with T being
  8805 	octave_int8, octave_uint8, octave_int16, octave_uint16,
  8806 	octave_int32, octave_uint32, octave_int64, octave_uint64): New
  8807 	instantiations of sort template classes.
  8808 	(Fsort): Use them.
  8809 
  8810 2007-10-24  John W. Eaton  <jwe@octave.org>
  8811 
  8812 	* graphics.cc (root_figure::properties::set_currentfigure):
  8813 	Allow currentfigure to be NaN.
  8814 
  8815 	* pt-idx.cc (tree_index_expression::lvalue): Correctly compute
  8816 	number of elements in lvalue expression when last indexing
  8817 	element is ".".
  8818 
  8819 2007-10-23  John W. Eaton  <jwe@octave.org>
  8820 
  8821 	* graphics.cc (is_handle (const graphics_handle&)): New function.
  8822 	(gh_manager::do_free, reparent, base_properties::set_parent,
  8823 	properties::get_title, properties::get_xlabel,
  8824 	properties::get_ylabel, properties::get_zlabel,
  8825 	properties::remove_child, make_graphics_object, F__go_figure__,
  8826 	F__go_delete__, __go_axes_init__): Call OK on graphics handle
  8827 	object instead of relying on implicit conversion operator.
  8828 	* graphics.h.in (graphics_handle::operator double ()): Delete.
  8829 	(graphics_handle::operator bool ()): Delete.
  8830 	(gh_manager::do_handle_list, gh_manager::do_figure_handle_list,
  8831 	base_properties::adopt): Call VALUE on graphics handle object
  8832 	instead of relying on implicit conversion operator.
  8833 
  8834 	* ov-base.h (DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA): Call
  8835 	DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA2 with "( )" as arg list
  8836 	instead of "()".
  8837 
  8838 	* mxarray.h.in (mxClassID): Delete trailing comma in enum decl.
  8839 
  8840 	* symtab.h (symbol_table::symbol_table): Reduce default table size
  8841 	to 64.
  8842 
  8843 2007-10-22  Kim Hansen  <kimhanse@gmail.com>
  8844 
  8845 	* unwind-prot.cc: Include <cstring>.
  8846 
  8847 2007-10-22  David Bateman  <dbateman@free.fr>
  8848 
  8849         * data.cc (Ftic, Ftoc, Fcputime): New builtin versions of the
  8850         benchmarking functions for speed.
  8851 	* oct-map.cc (Octave_map::squeeze, Octave_map::permute): New methods.
  8852 	(Octave_map::index (const octave_value_list&, bool)): Add resize_ok
  8853 	argument, define as const and use const_iterator internally.
  8854 	(Octave_map::index (idx_vector&, ...), Octave_map::index (Array 
  8855 	<idx_vector>&, ...)): New forms of the index function.
  8856 	* oct-map.h (squeeze, permute, indx (const octave_value_list&, bool),
  8857 	index (idx_vector&, ...), index (Array <idx_vector>&, ...)): Add
  8858 	or update declaration.
  8859 	* ov-struct.cc (octave_struct::do_index_op (const octave_value_list&,
  8860 	bool)): New method.
  8861 	* ov-struct.h (do_index_op (const octave_value_list&, bool)): Declare
  8862 	it.
  8863 	(squeeze (void), permute (const Arra<int>&, bool): New methods.
  8864 
  8865 2007-10-19  Kai Habel  <kai.habel@gmx.de>
  8866 
  8867 	* DLD-FUNCTIONS/__contourc__.cc (add_point): Rename from
  8868 	cl_add_point.  Change all uses.
  8869 	(end_contour): Rename from cl_end_contour.  Change all uses.
  8870 	(start_contour): Rename from cl_start_contour.  Change all uses.
  8871 	(drawcn): Rename from cl_drawcn.  New algorithm for locating contours.
  8872 	(mark_facets): New function.
  8873 	(cntr): Rename from cl_cntr.  Change all uses.  New algorithm for
  8874 	locating contours.
  8875 
  8876 2007-10-19  John W. Eaton  <jwe@octave.org>
  8877 
  8878 	* ov-cell.cc (octave_cell::subsasgn): If RHS is cs-list, don't
  8879 	fail if shape of LHS is different.
  8880 	* ov-struct.cc (octave_struct::subsasgn): Likewise.
  8881 
  8882 2007-10-19  Olli Saarela  <Olli.Saarela@kcl.fi>
  8883 
  8884 	* help.cc (Flookfor): Call print_usage instead of usage.
  8885 	* DLD-FUNCTIONS/cellfun.cc (Fmat2cell): Likewise.
  8886 
  8887 2007-10-17  John W. Eaton  <jwe@octave.org>
  8888 
  8889 	* DLD-FUNCTIONS/spchol.cc (Fsymbfact): Delete special code for METIS.
  8890 
  8891 2007-10-17  Gabriele Pannocchia  <g.pannocchia@ing.unipi.it>
  8892 
  8893 	* DLD-FUNCTIONS/__qp__.cc (qp): Fix check for Wact(j).
  8894 
  8895 2007-10-15  Søren Hauberg  <hauberg@gmail.com>
  8896 
  8897 	* error.cc (Ferror): Make text fit on pages when using smallbook.
  8898 	* load-save.cc (Fsave_header_format_string): Ditto.
  8899         * ov-struct.cc (Fcell2struct): Ditto.
  8900         * DLD-FUNCTIONS/besselj.cc (Fairy): Ditto.
  8901         * DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): Ditto.
  8902 
  8903 2007-10-15  David Bateman  <dbateman@free.fr>
  8904 
  8905 	* graphics.cc (axes::properties::get): Fix typo.
  8906 
  8907 2007-10-13  John W. Eaton  <jwe@octave.org>
  8908 
  8909 	* version.h (OCTAVE_VERSION): Now 2.9.15+.
  8910 
  8911 2007-10-13  John W. Eaton  <jwe@octave.org>
  8912 
  8913 	* version.h (OCTAVE_VERSION): Now 2.9.15.
  8914 	(OCTAVE_API_VERSION): Now api-v27.
  8915 	(OCTAVE_RELEASE_DATE): Now 2007-10-13.
  8916 
  8917 2007-10-13  David Bateman  <dbateman@free.fr>
  8918 
  8919 	* graphics.h.in (class patch): Add the faces and vertices properties.
  8920 	* graphics.cc (patch::properties::properties): Initialize faces
  8921 	and vertices.
  8922 	(patch::properties::get): Also fetch faces and vertices.
  8923 	(patch::properties::factory_defaults): Set faces and vertices.
  8924 
  8925 2007-10-12  John W. Eaton  <jwe@octave.org>
  8926 
  8927 	* Change copyright notices in all files that are part of Octave to
  8928 	GPLv3 or any later version.
  8929 
  8930 2007-10-11  John W. Eaton  <jwe@octave.org>
  8931 
  8932 	* DLD-FUNCTIONS/urlwrite.cc (urlget): Disable use of EPSV mode.
  8933 
  8934 2007-10-11  Brian Gough  <bjg@network-theory.co.uk>
  8935 
  8936 	* DLD-FUNCTIONS/fftn.cc, DLD-FUNCTIONS/regexp.cc, dirfns.cc,
  8937 	input.cc: Spelling fixes.
  8938 
  8939 2007-10-10  John W. Eaton  <jwe@octave.org>
  8940 
  8941 	* OPERATORS/op-sbm-sbm.cc (bool_matrix_to_double_matrix):
  8942 	New conversion function.
  8943 	(install_sbm_sbm_ops): Install it.
  8944 
  8945 	* ov-re-mat.cc (double): Handle sparse as a special case.
  8946 
  8947 2007-10-10  Olli Saarela  <Olli.Saarela@kcl.fi>
  8948 
  8949 	* data.cc, debug.cc, dirfns.cc, error.cc, file-io.cc, help.cc,
  8950 	load-save.cc, ov-fcn-inline.cc, parse.y, pr-output.cc, symtab.cc,
  8951 	syscalls.cc, toplev.cc, variables.cc, DLD-FUNCTIONS/bsxfun.cc,
  8952 	DLD-FUNCTIONS/cellfun.cc, DLD-FUNCTIONS/fft.cc,
  8953 	DLD-FUNCTIONS/fft2.cc, DLD-FUNCTIONS/fftw.cc,
  8954 	DLD-FUNCTIONS/gcd.cc, DLD-FUNCTIONS/lsode.cc,
  8955 	DLD-FUNCTIONS/luinc.cc, DLD-FUNCTIONS/matrix_type.cc,
  8956 	DLD-FUNCTIONS/rand.cc, DLD-FUNCTIONS/regexp.cc,
  8957 	DLD-FUNCTIONS/sparse.cc, DLD-FUNCTIONS/spchol.cc,
  8958 	DLD-FUNCTIONS/splu.cc, DLD-FUNCTIONS/spparms.cc: Spelling fixes.
  8959 
  8960 2007-10-10  Kim Hansen  <kimhanse@gmail.com>
  8961 
  8962 	* DLD-FUNCTIONS/lpsolve.cc: Delete.
  8963 	* Makefile.in (DLD_XSRC): Remove it from the list.
  8964 
  8965         * data.cc (Fsqueeze): Document 2d behaviour.
  8966         * ov-range.h (octave_range::squeeze): New function.
  8967 
  8968 2007-10-09  John W. Eaton  <jwe@octave.org>
  8969 
  8970 	* DLD-FUNCTIONS/urlwrite.cc (urlget_cleanup): New function.
  8971 	(urlget): Protect call to curl_easy_perform with
  8972 	BEGIN_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE and
  8973 	END_INTERRUPT_IMMEDIATELY_IN_FOREIGN_CODE.
  8974 
  8975 2007-10-09  David Bateman  <dbateman@free.fr>
  8976 
  8977 	* input.cc (accept_line): Drop this function and remove automatic
  8978 	insertion of closing quotes as the transpose operator confuses it.
  8979 	(initialize_command_input): Remove accept_line from here as well.
  8980 	
  8981 2007-10-09  John W. Eaton  <jwe@octave.org>
  8982 
  8983 	* ov-mapper.cc (octave_mapper::apply): If possible, use
  8984 	d_d_map_fcn to handle complex values which have imag(z) == 0.
  8985 
  8986 	* DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread) [! HAVE_CURL]:
  8987 	Throw error instead of returning empty string hiding error message
  8988 	in third return value.
  8989 	(progress_func): Delete.
  8990 	(Furlread): Don't set progress callback for curl.
  8991 	(write_data, form_query_string, urlget): Now static.
  8992 
  8993 2007-10-08  David Bateman  <dbateman@free.fr>
  8994 
  8995 	*  input.cc (quoting_filename): Function to add a leading quote to
  8996 	a string if needed.
  8997 	(accept_line): Function to check if a string needs a closing quote
  8998 	before calling the rl_newline function.
  8999 	(initialize_command_input): Initialize completer_quote_characters,
  9000 	filename_quote_characters, quoting_function,
  9001 	user_accept_line_function.
  9002 
  9003 	* data.cc (template <class T> static make_diag (...)): New
  9004 	template class version of make_diag. Make other make_diag
  9005 	functions depend on it.
  9006 	( static octave_value make_diag (const octave_value&, 
  9007 	octave_idx_type)): Treat all possible internal Octave types.
  9008 
  9009 2007-10-08  John W. Eaton  <jwe@octave.org>
  9010 
  9011 	* load-save.cc 	(save_vars, dump_octave_core):
  9012 	Don't pass INFNAN_WARNED to do_save.
  9013 	(do_save): Delete unused arg, INFNAN_WARNED.
  9014 	Don't pass INFNAN_WARNED to save_ascii_data.
  9015 	* ls-oct-ascii.cc (save_ascii_data_for_plotting):
  9016 	Don't pass INFNAN_WARNED to save_ascii.
  9017 	(save_ascii_data): Delete unused arg, INFNAN_WARNED.
  9018 
  9019 	* ov.h (octave_value::save_ascii): Delete unused arg, INFNAN_WARNED.
  9020 	* ov-base-int.cc (octave_base_int_matrix<T>::save_ascii,
  9021 	octave_base_int_scalar<T>::save_ascii): Likewise.
  9022 	* ov-base-sparse.cc (octave_base_sparse<T>::save_ascii): Likewise.
  9023 	* ov-base.cc (octave_base_value::save_ascii): Likewise.
  9024 	* ov-bool-mat.cc (octave_bool_matrix::save_ascii): Likewise.
  9025 	* ov-bool.cc (octave_bool::save_ascii): Likewise.
  9026 	* ov-cell.cc (octave_cell::save_ascii): Likewise.
  9027 	* ov-fcn-handle.cc (octave_fcn_handle::save_ascii): Likewise.
  9028 	* ov-fcn-inline.cc (octave_fcn_inline::save_ascii): Likewise.
  9029 	* ov-list.cc (octave_list::save_ascii): Likewise.
  9030 	* ov-struct.cc (octave_struct::save_ascii): Likewise.
  9031 	* ov-str-mat.cc (octave_char_matrix_str::save_ascii): Likewise.
  9032 	* ov-range.cc (octave_range::save_ascii): Likewise.
  9033 
  9034 	* ov-scalar.cc (octave_scalar::save_ascii): Remove warning about
  9035 	reloading inf/nan values.  Delete unused arg, INFNAN_WARNED.
  9036 	* ov-complex.cc (octave_complex::save_ascii): Likewise.
  9037 	* ov-re-mat.cc (octave_matrix::save_ascii): Likewise.
  9038 	* ov-cx-mat.cc (octave_complex_matrix::save_ascii): Likewise.
  9039 
  9040 	* ov-fcn-inline.cc (Finline): Use DEFUNX instead of DEFUN.
  9041 
  9042 2007-10-08  Michael Goffioul  <michael.goffioul@gmail.com>
  9043 
  9044 	* sighandlers.h (can_interrupt): Tag with OCTINERP_API.
  9045 	* sysdep.h (raw_mode, octave_popen, octave_pclose,
  9046 	same_file_internal): Likewise.
  9047 
  9048 2007-10-06  John W. Eaton  <jwe@octave.org>
  9049 
  9050 	* oct-stream.cc (octave_base_stream::do_scanf):
  9051 	Always allow MVAL to re resized if NR > 0.
  9052 	(FINISH_CHARACTER_CONVERSION): Likewise.
  9053 
  9054 	* mappers.cc (install_mapper_functions): Undo previous change.
  9055 	Fix doc string for lgamma.
  9056 	(xzlgamma): Delete.
  9057 
  9058 2007-10-05  John W. Eaton  <jwe@octave.org>
  9059 
  9060 	* graphics.h.in (axes::properties): New property, colororder.
  9061 	* graphics.cc (default_colororder): New function.
  9062 	(axes::properties::properties, axes::properties::get,
  9063 	axes::properties::set_defaults,
  9064 	axes::properties::factory_defaults, ): Handle colororder.
  9065 
  9066 	* mappers.cc (xzlgamma): New static function.
  9067 	(install_mapper_functions): Pass xzlgamma for c_c_map for lgamma
  9068 	mapper.  Pass 1 for can_ret_cmplx_for_real and set hi to
  9069 	octave_Inf.
  9070 
  9071 2007-10-04  John W. Eaton  <jwe@octave.org>
  9072 
  9073 	* DLD-FUNCTIONS/symrcm.cc: Move static functions to top of file to
  9074 	avoid forward decls.
  9075 	(Q_enq): Delete unused arg QH.  Change all uses.
  9076 	(Q_deq): Delete unused arg QT.  Change all uses.
  9077 	(find_starting_node): Delete unused local variable J.
  9078 	(H_heapify_min, H_insert, find_starting_node, Fsymrcm):
  9079 	Move local variable decls to point of first use.
  9080 
  9081 	* OPERATORS/op-streamoff.cc (STREAMOFF_COMP_OP):
  9082 	Avoid control-reaches-end-of-non-void-function warning.
  9083 
  9084 	* pt-const.cc (tree_constant::dup): Avoid unused parameter warning.
  9085 
  9086 	* pr-output.cc (set_real_format, set_real_matrix_format,
  9087 	set_complex_format, set_complex_matrix_format):
  9088 	Delete unused arg, SIGN.  Change uses.
  9089 
  9090 	* oct-map.cc (Octave_map::Octave_map): Avoid shadow warning.
  9091 
  9092 	* load-save.cc (write_header): Use reinterpret_cast to avoid
  9093 	old-style cast warning.
  9094 
  9095 	* data.cc (do_permute): Delete unused arg, FNAME.  Change all uses.
  9096 
  9097 	* sysdep.cc (w32_set_octave_home, w32_set_quiet_shutdown,
  9098 	MINGW_signal_cleanup):
  9099 	Only define if defined (__WIN32__) && !	defined (_POSIX_VERSION).
  9100 
  9101 2007-10-04  Jason Riedy  <jason@acm.org>
  9102 
  9103         * ls-mat5.cc (read_mat5_binary_data): Map miUTF16 to miUINT16,
  9104         miUTF32 to miUINT32.  The matfile format currently states that
  9105         wide UTF formats are in the same byte order as the integers.
  9106         (read_mat5_binary_element): Replace all UTF16 and UTF32
  9107         characters with the high bit set (value >127) by '?' and warn
  9108         that we've done so.
  9109 
  9110 2007-10-04  Michael Goffioul  <michael.goffioul@gmail.com>
  9111 
  9112 	* sysdep.cc (w32_set_octave_home): Base OCTAVE_HOME location on
  9113 	octinterp, not the main exe.
  9114 
  9115 2007-10-03  John W. Eaton  <jwe@octave.org>
  9116 
  9117 	* data.cc (Fnorm): New function.
  9118 	(F__vnorm__): Delete.
  9119 
  9120 2007-10-03  Michael Goffioul  <michael.goffioul@gmail.com>
  9121 
  9122 	* DLD-FUNCTIONS/typecast.cc: Include <algorithm>.
  9123 
  9124 2007-10-03  John W. Eaton  <jwe@octave.org>
  9125 
  9126 	* oct-map.cc (Octave_map::Octave_map (const dim_vector&, 
  9127 	const string_vector&)): Delete.
  9128 	(Octave_map::Octave_map (const dim_vector&, const Cell&)):
  9129 	New function.
  9130 	* ov-struct.cc (Fstruct): Allow creation of empty struct arrays
  9131 	with field names.
  9132 
  9133 2007-10-01  Shai Ayal  <shaiay@users.sourceforge.net>
  9134 
  9135 	* graphics.cc ((color_property::color_property (const
  9136 	octave_value& val)): Undo change from 2007-09-26
  9137 	(patch::properties::properties): use the "a" modifier to
  9138 	face_color & edge_color properties
  9139 	(patch::properties::set): Undo change from 2007-09-26
  9140 	* graphics.h.in	(color_property::color_property
  9141 	(const octave_value& val)): Undo change from 2007-09-26
  9142 
  9143 2007-10-01  Michael Goffioul  <michael.goffioul@gmail.com>
  9144 
  9145 	* octave.cc (octave_main): Add "--line-editing" option to force
  9146 	readline line editing.
  9147 
  9148 2007-09-28  David Bateman  <dbateman@free.fr>
  9149 
  9150 	* ov-range.h (int8_array_value, int16_array_value, int32_array_value,
  9151 	int64_array_value, uint8_array_value, uint16_array_value, 
  9152 	int32_array_value, uint64_array_value): New methods
  9153 
  9154 2007-09-28  Kai Habel  <kai.habel@gmx.de>
  9155 
  9156 	* graphics.h.in (color_property::colormap_property (const Matrix&)):
  9157 	Use floating point math in calculation of colormap.
  9158 
  9159 2007-09-26  David Bateman  <dbateman@free.fr>
  9160 
  9161 	* graphics.cc (color_values::str2rgb): accept upper, lower and
  9162 	mixed-case versions of the string representing the color. Allow
  9163 	black defined as "k" and white as "w".
  9164 	(color_property::color_property (const octave_value& val, 
  9165 	const radio_values &v)): Modify the constructor to also take a
  9166 	radio_values argument. Use it.
  9167 	(patch::properties::set): Change set_facecolor calls to initialize
  9168 	the color_property argument with the available radio_values.
  9169 	* graphics.h.in (color_property::color_property 
  9170 	(const octave_value& val, const radio_values &v)): Also pass a 
  9171 	radio_values argument.
  9172 
  9173 	* ov-range.h (sparse_matrix_value, sparse_complex_matrix_value):
  9174 	New methods.
  9175 
  9176 	* mk-pkg-add: Simplfy the autoload commands.
  9177 	* parse.y (Fautoload): Allow bare filename if file is in the same
  9178 	directory as the script from where the autoload command is run.
  9179 
  9180 2007-09-25  Matthias Drochner  <m.drochner@fz-juelich.de>
  9181 
  9182 	* syscalls.cc (Fpopen2): Doc fix.
  9183 	Use "sort -r" instead of "sort -nr" in test.
  9184 
  9185 2007-09-18  John W. Eaton  <jwe@octave.org>
  9186 
  9187 	* input.cc (input_event_hook, Finput_event_hook): Call
  9188 	command_editor::add_event_hook and
  9189 	command_editor::remove_event_hook intstead of
  9190 	command_editor::set_event_hook and
  9191 	command_editor::restore_event_hook.
  9192 
  9193 2007-09-17  John W. Eaton  <jwe@octave.org>
  9194 
  9195 	* version.h (OCTAVE_VERSION): Now 2.9.14+.
  9196 
  9197 2007-09-17  John W. Eaton  <jwe@octave.org>
  9198 
  9199 	* version.h (OCTAVE_VERSION): Now 2.9.14.
  9200 	(OCTAVE_API_VERSION): Now api-v26.
  9201 	(OCTAVE_RELEASE_DATE): Now 2007-09-17.
  9202 
  9203 	* Makefile.in (DISTFILES): Add genprops.awk to the list.
  9204 
  9205 	* ov-typeinfo.h (cat_op_fcn): Third arg in function pointer
  9206 	typedef is now Array<octave_idx_type> instead of Array<int>.
  9207 
  9208 	* file-io.cc (do_stream_open): Use binary mode by default.
  9209 
  9210 2007-09-14  Shai Ayal  <shaiay@users.sourceforge.net>
  9211 
  9212 	* genprop.awk: Handle "a" modifier.
  9213 
  9214 2007-09-14  Kai Habel  <kai.habel@gmx.de>
  9215 
  9216 	* graphics.h.in (radio_values::contains): New function.
  9217 	(radio_values::validate): Use it.
  9218 	* graphics.cc (color_property::operator =): Call it instead of
  9219 	validate here.
  9220 
  9221 2007-09-13  John W. Eaton  <jwe@octave.org>
  9222 
  9223 	* DLD-FUNCTIONS/__glpk__.cc (glpk): Pass LPX_FX, not LB_DB, to
  9224 	lpx_set_col_bnds when lb[i] == ub[i].
  9225 	From: Zhi Wang <zcwang@umich.edu>.
  9226 
  9227 	* graphics.h.in (colormap_property::colormap_property):
  9228 	Use jet colormap as default.
  9229 
  9230 2007-09-12  John W. Eaton  <jwe@octave.org>
  9231 
  9232 	* graphics.cc (text::properties::properties): Default color is
  9233 	black, not white.
  9234 	* graphics.h (text::properties::color): Declare as color_property,
  9235 	not octave_value.
  9236 
  9237 	* graphics.h.in (root_figure::defaults, figure::defaults,
  9238 	axes::defaults, line::defaults, text::defaults, image::defaults,
  9239 	patch::defaults, surface::defaults): New functions.
  9240 	* gripes.cc (gripe_not_implemented): New function.
  9241 	* gripes.h: Provide decl.
  9242 
  9243 2007-09-10  John W. Eaton  <jwe@octave.org>
  9244 
  9245 	* genprops.awk: Add missing newline character at end of file.
  9246 	From Alexander Klimov <alserkli@inbox.ru>.
  9247 
  9248 2007-09-10  David Bateman  <dbateman@free.fr>
  9249 
  9250 	* data.cc (do_cat): Avoid invalid indexing into ra_idx vector.
  9251 
  9252 2007-09-06  David Bateman  <dbateman@free.fr>
  9253 
  9254 	* DLD-FUNCTIONS/__delaunay__.cc, DLD-FUNCRIONS/__voronoi__.cc,
  9255 	DLD-FUNCTIONS/convhulln.cc: Avoid variables in global scope
  9256 
  9257 2007-09-06  David Bateman  <dbateman@free.fr>
  9258 
  9259 	* Makefile.in (stamp-prereq): Add graphics.h to the dependency list.
  9260 
  9261 2007-08-31  John W. Eaton  <jwe@octave.org>
  9262 
  9263 	* Makefile.in (INCLUDES): Remove graphics.h from the list.
  9264 	(DISTFILES): Include graphics.h.in in the list.
  9265 	(genprops.awk): New file.
  9266 	(graphics.h): New rule.
  9267 	(distclean): Remove graphics.h.
  9268 	* graphics.h.in: New file, from graphics.h.
  9269 	(graphics_handle): Now a class instead of typedef.  Adapt all uses.
  9270 	(OCTAVE_GRAPHICS_PROPERTY_INTERNAL, OCTAVE_GRAPHICS_PROPERTY,
  9271 	OCTAVE_GRAPHICS_MUTABLE_PROPERTY): Delete macros.
  9272 	(class root_figure, class figure, class axes, class line, class
  9273 	text, class image, class patch, class surface): Use genprops.awk
  9274 	to generate property declarations and set/get functions.
  9275 	* graphics.h: Delete.
  9276 	* graphics.cc (nan_to_empty, empty_to_nan): Delete.
  9277 	(root_figure::properties::set, figure::properties::set,
  9278 	axes::properties::set, line::properties::set,
  9279 	text::properties::set, image::properties::set,
  9280 	patch::properties::set, surface::properties::set): Call
  9281 	type-specific set functions to set properties.
  9282 	(root_figure::properties::set_currentfigure,
  9283 	figure::properties::set_currentaxes, figure::properties::set_visible,
  9284 	axes::properties::get_title, axes::properties::get_xlabel,
  9285 	axes::properties::get_ylabel,  axes::properties::get_zlabel,
  9286 	axes::properties::set_title, axes::properties::set_xlabel,
  9287 	axes::properties::set_ylabel,  axes::properties::set_zlabel):
  9288 	Define custom versions.
  9289 
  9290 2007-09-06  David Bateman  <dbateman@free.fr>
  9291 
  9292         * DLD-FUNCTIONS/bsxfun.cc: New function.
  9293         * DLD-FUNCTIONS/typecast.cc: New function.
  9294         * Makefile.in (DLD_XSRC): Add bsxfun.cc and typecast.cc.
  9295         * ov.cc (do_cat_op): Modify use of Array<int> to 
  9296         Array<octave_idx_type> and adjust where necessary.
  9297         * ov.h (do_cat_op): ditto.
  9298         * data.cc (do_cat): ditto.
  9299         * pt-mat.cc (tree_matrix::rvalue): ditto.
  9300 
  9301 2007-09-05  Michael Goffioul  <michael.goffioul@gmail.com>
  9302 
  9303 	* oct-stream.cc (octave_base_stream::do_printf): Ignore precision
  9304 	portion of format string if printing Inf, NaN, or NA values.
  9305 
  9306 2007-09-05  David Bateman  <dbateman@free.fr>
  9307 
  9308         * DLD-FUNCTIONS/sort.cc (mx_sort_sparse, mx_sort_sparse_indexed):
  9309         New template classes for sparse sort functions.
  9310         (Fsort): Use them.
  9311         * ov.h (octave_value (const Sparse<double>&, const MatrixType&),
  9312         octave_value (const Sparse<Complex>&, const MatrixType&)): New
  9313         constructors.
  9314         * ov.cc (octave_value::octave_value (const Sparse<double>&, 
  9315         const MatrixType&), octave_value::octave_value (const 
  9316         Sparse<Complex>&, const MatrixType&)): Define them.
  9317         * ov-re-sparse.h (octave_sparse_matrix (const MSparse<double>&,
  9318         const MatrixType&), octave_sparse_matrix (const Sparse<double>&),
  9319         octave_sparse_matrix (const Sparse<double>&, const MatrixType&)):
  9320         New constructors.
  9321         * ov-cx-sparse.h (octave_sparse_complex_matrix (const MSparse<double>&,
  9322         const MatrixType&), octave_sparse_complex_matrix (const 
  9323         Sparse<double>&), octave_sparse_complex_matrix (const
  9324         Sparse<double>&, const MatrixType&)): ditto.
  9325 
  9326 2007-09-04  Gabriele Pannocchia  <g.pannocchia@ing.unipi.it>
  9327 
  9328 	* DLD-FUNCTIONS/__qp__.cc (qp): Use Wact(j) == i - n_eq when
  9329 	checking for blocking constraint.  Don't resize lambda_tmp.  Only
  9330 	compute Y = Aact.pseudo_inverse () if it is needed.
  9331 
  9332 2007-08-31  Michael Goffioul  <michael.goffioul@gmail.com>
  9333 
  9334 	* ls-mat-ascii.cc (get_lines_and_columns): Check beg variable for
  9335 	NPOS to avoid segmentation fault. 
  9336 
  9337 	* load-path.cc (load_path::do_find_file): Do not assume paths
  9338 	use forward slashes.
  9339 
  9340 2007-08-30  John W. Eaton  <jwe@octave.org>
  9341 
  9342 	* sysdep.cc (Fpause): Doc fix.
  9343 
  9344 2007-08-30  Gabriele Pannocchia  <g.pannocchia@ing.unipi.it>
  9345 
  9346 	* DLD-FUNCTIONS/__qp__.cc (qp): Resize Wact to n_act-neq, not n_act.
  9347 
  9348 2007-08-29  John W. Eaton  <jwe@octave.org>
  9349 
  9350 	* graphics.cc (class root_figure::properties):
  9351 	Rename from root_figure::root_figure_properties.
  9352 	(class figure::properties): Rename from figure::figure_properties.
  9353 	(class axes::properties): Rename from axes::axes_properties.
  9354 	(class line::properties): Rename from line::line_properties.
  9355 	(class text::properties): Rename from text::text_properties.
  9356 	(class image::properties): Rename from image::image_properties.
  9357 	(class patch::properties): Rename from patch::patch_properties.
  9358 	(class surface::properties): Rename from surface::surface_properties.
  9359 
  9360 	* base-list.h (octave_base_list::remove): Implement our own
  9361 	remove_if function here.
  9362 
  9363 2007-08-28  John W. Eaton  <jwe@octave.org>
  9364 
  9365 	* graphics.h (base_properties): Move class definition before
  9366 	definition of base_graphics_object class.  Provide forward
  9367 	declaration of base_graphics_object prior to definition of
  9368 	base_properties.
  9369  	(base_graphics_object::get_properties): New virtual function.
  9370 	(graphics_object::get_properties, root_figure::get_properties,
  9371 	figure::get_properties, axes::get_properties,
  9372 	line::get_properties, text::get_properties, image::get_properties,
  9373 	patch::get_properties, surface::get_properties): New functions.
  9374 	(root_figure::properties, figure::properties, axes::properties,
  9375 	line::properties, text::properties, image::properties,
  9376 	patch::properties, surface::properties): Data member now private.
  9377 
  9378 2007-08-27  John W. Eaton  <jwe@octave.org>
  9379 
  9380 	* load-path.cc (load_path::do_find_file): Also files with non
  9381 	rooted relative names.
  9382 	* load-save.cc (find_file_to_load): Likewise.  Also handle
  9383 	appending .mat to files with relative names.
  9384 
  9385 	* graphics.cc (base_properties::mark_modified,
  9386 	base_properties::override_defaults,
  9387 	base_properties::delete_children, figure::get_default,
  9388 	axes::get_default): Move definitions here, from graphics.h.
  9389 	* graphics.h (class gh_manager): Move decl to end of file.
  9390 
  9391 	* Cell.h (Cell::Cell (const octave_value_list&)): Create row
  9392 	vector instead of column vector.
  9393 
  9394 	* pt-idx.cc (tree_index_expression::lvalue): Handle [x.a] =
  9395 	... style assignments.
  9396 	* ov-struct.cc (octave_struct::subsasgn): Handle case of RHS as
  9397 	comma-separated list.
  9398 
  9399 	* ov-cell.cc (gripe_failed_assignment): New function.
  9400 	(octave_cell::subsasgn): Call gripe_failed_assignment if assign
  9401 	methods fail.
  9402 
  9403 2007-08-24  David Bateman  <dbateman@free.fr>
  9404 
  9405 	* symtab.cc (void symbol_table::clear (void)): If the record in
  9406 	the symbol table to clear is a user function that is a sub
  9407 	function with a static parent or if the parent is the current
  9408 	parent function, don't delete the record.
  9409 	(void symbol_table::clear_functions (void)): ditto.
  9410 	(void symbol_table::clear (const std::string&)): ditto.
  9411 	(void symbol_table::clear_function (const std::string&)): ditto.
  9412 
  9413 	* graphics.h (class text): Add property color.
  9414 	* graphics.cc (text::text_properties::text_properties) ditto.
  9415 	(text::text_properties::set): ditto.
  9416 	(text::text_properties::get): ditto.
  9417 	(text::text_properties::factory_defaults): ditto.
  9418 
  9419 2007-08-24  John W. Eaton  <jwe@octave.org>
  9420 
  9421 	* mappers.cc (dummyp): New function.
  9422 	(install_mapper_functions): Use it to handle character data in
  9423 	finite, isinf, isna, and isnan functions.
  9424 
  9425 	* load-path.cc (load_path::do_remove): Call remove_hook function
  9426 	before removing directory from list.
  9427 
  9428 2007-08-24  David Bateman  <dbateman@free.fr>
  9429 
  9430         * ov-bool-sparse.cc (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Class
  9431         is now logical.
  9432         * ov-re-sparse.cc, ov-cx-sparse.cc 
  9433         (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA): Class is now double.
  9434         * ov-mapper.cc (octave_mapper::apply): Use is_sparse_type method
  9435         rather than comparing class name.
  9436         * ls-mat5.cc (save_mat5_element_length, save_mat5_binary_element):
  9437         ditto.
  9438         * pt-mat.cc (tree_matrix:rvalue): sparse matrices are now of class
  9439         "double" or "logical", create new single type concat clause for
  9440         them.
  9441         * mex.cc (get_class_id): No longer need to special case sparse
  9442         matrices.
  9443 
  9444         * DLD-FUNCTIONS/__delaunayn__.cc, DLD-FUNCTIONS/convhulln.cc, 
  9445         DLD-FUNCTIONS/tsearch.cc, DLD-FUNCTIONS/__voronoi__.cc: New
  9446         functions ported from octave-forge.
  9447         * DLD-FUCTIONS/__dsearchn__.cc: New file.
  9448         * DLD-FUNCTIONS/__voronoi__.cc: Return point at infinity and
  9449         include it in the polygrons of the Voronoi diagram for
  9450         compatibility.
  9451         * Makefile.in: Add specific build targets for __delanayn__.cc,
  9452         convhulln.cc and __voronoi__.cc to link to Qhull.
  9453         (DLD_SRC): Add new functions.
  9454         (OCTAVE_LIBS): Add QHULL_LIBS
  9455 
  9456 2007-08-22  David Bateman  <dbateman@free.fr>
  9457 
  9458 	* variables.cc (Fmunlock): Call munlock and not mlock.
  9459 	* symtab.cc (symbol_record::mark_as_formal_parameter): Typo. 
  9460 
  9461 2007-08-10  John W. Eaton  <jwe@octave.org>
  9462 
  9463 	* pt-idx.cc (tree_index_expression::get_struct_index): Improve
  9464 	error message.
  9465 	* ov-struct.cc (Fstruct, Fcell2struct): Trap invalid field names here.
  9466 
  9467 2007-08-10  Peter A. Gustafson  <petegus@umich.edu>
  9468 
  9469 	* graphics.h, graphics.cc (axes::axes_properties): New properties,
  9470 	xaxislocation and yaxislocation.
  9471 
  9472 2007-08-10  Kai Habel  <kai.habel@gmx.de>
  9473 
  9474 	* graphics.cc, graphics.h (patch): New class.
  9475 	(axes::axes_properties): New properties, clim and climmode.
  9476 	(surface::surface_properties::surface_properties): Handle patch.
  9477 	(F__go_patch__): New function.
  9478 
  9479 2007-07-30  John W. Eaton  <jwe@octave.org>
  9480 
  9481 	* mex.cc (mxArray_number::mxArray_number (int, const char **)):
  9482 	First arg is now mwSize.
  9483 	(max_str_len): Return mwSize value, not int.
  9484 	* mxarray.h.in (mxArray::mxArray (int, const char **)):
  9485 	First arg is now mwSize.
  9486 	(mxArray::mxArray (mxClassID, mwSize, mwSize, int, mxComplexity)):
  9487 	Third arg is now mwSize.
  9488 	(mxArray::get_string (char *, int)): Second arg is now mwSize.
  9489 
  9490 2007-07-26  John W. Eaton  <jwe@octave.org>
  9491 
  9492 	* DLD-FUNCTIONS/__glpk__.cc: Include glpk/glpk.h if
  9493 	HAVE_GLPK_GLPK_H is defined.
  9494 
  9495 2007-07-26  David Bateman  <dbateman@free.fr>
  9496 
  9497 	* pr-output.cc (Frats): Return character array with same number of
  9498 	rows as original value.
  9499 
  9500 2007-07-26  John W. Eaton  <jwe@octave.org>
  9501 
  9502 	* pt-bp.h (MAYBE_DO_BREAKPOINT): Rename cur_fcn to xfcn.
  9503 
  9504 	* version.h (OCTAVE_VERSION): Now 2.9.13+.
  9505 
  9506 2007-07-25  John W. Eaton  <jwe@octave.org>
  9507 
  9508 	* version.h (OCTAVE_VERSION): Now 2.9.13
  9509 	(OCTAVE_API_VERSION): Now api-v25.
  9510 	(OCTAVE_RELEASE_DATE): Now 2007-07-25.
  9511 
  9512 	* pt-bp.h (MAYBE_DO_BREAKPOINT): Rename fcn to curr_fcn.
  9513 
  9514 2007-07-25  David Bateman  <dbateman@free.fr>
  9515 
  9516 	* Makefile.in: 	Adjust DISTFILES to allow out of tree "make dist" 
  9517 	to work.
  9518 
  9519 2007-07-24  Shai Ayal  <shaiay@users.sourceforge.net>
  9520 
  9521 	* graphics.cc (color_property::operator = (const octave_value&)):
  9522 	New method.
  9523 	* graphics.h: Provide decl.
  9524 
  9525 2007-07-24  Rafael Laboissiere  <rafael@debian.org>
  9526 
  9527 	* oct-conf.h.in (OCTAVE_CONF_RUNTEST): Delete definition.
  9528 	* toplevel.cc (Foctave_config_info): Remove RUNTEST from struct.
  9529 
  9530 2007-07-23  David Bateman  <dbateman@free.fr>
  9531 
  9532 	* pr-output.cc (rat_format, rat_string_len): Global variable
  9533 	controlling behavior of rational approximation. Use throughout.
  9534 	(class pr_rational_float): New class for rational approximation of
  9535 	floats, specifically with the << operator defined.
  9536 	(std::ostream& operator << (std::ostream&, const
  9537 	pr_rational_float&)): Operator to print rational approximations of
  9538 	double values.
  9539 	(std::string rational_approx (double, int)): Function to convert a
  9540 	double value to a string of maximum length giving the rational
  9541 	approximation.
  9542 	(pr_any_float): Include the output of rational approximations.
  9543 	(Fformat): Add the "rat" format as an option.
  9544 	(Frats): New function.
  9545 
  9546 2007-07-23  Aquil H. Abdullah  <aquil.abdullah@gmail.com>
  9547 
  9548 	* mex.cc (mxCreateStructArray): Declare second arg as const.
  9549 	* mexproto.h (mxCreateStructArray): Ditto.
  9550 
  9551 2007-07-20  David Bateman  <dbateman@free.fr>
  9552 
  9553         * zfstream.cc (BUFSIZE): Increase default buffer size to 256kB
  9554         (gzfilebuf::underflow): Stash the last 16 characters read, so as
  9555         to avoid calling pbackfail as much as possible.
  9556 
  9557 2007-07-18  David Bateman  <dbateman@free.fr>
  9558 
  9559          * zfstream.cc (int_type gzfilebuf::pbackfail (int_type)): New
  9560          method to putback a character when the putback position in the
  9561          internal buffer doesn't exist.
  9562          * zfstream.h (int_type pbackfail (int_type)): Declaration it.
  9563 
  9564 2007-07-14  Michael Goffioul  <michael.goffioul@swing.be>
  9565 
  9566 	* src/ov-bool-sparse.cc (octave_sparse_bool_matrix:load_hdf5):
  9567 	Use OCTAVE_LOCAL_BUFFER for temporary boolean value.
  9568 	
  9569 2007-06-27  David Bateman  <dbateman@free.fr>
  9570 
  9571 	* DLD-FUNCTIONS/sparse.cc (Fspdiag): Ensure spdiag(zeros(1,0)) returns
  9572 	0x0 matrix. Doc update.
  9573 	* data.cc (Fdiag): Doc update.
  9574 
  9575 2007-06-28  John W. Eaton  <jwe@octave.org>
  9576 
  9577 	* ov-cell.cc (octave_cell::subsasgn): Given x = {}, convert to
  9578 	struct for assignments like x(1).f = val;
  9579 
  9580 	* oct-stream.cc (octave_scan_1): New function
  9581 	(octave_scan): Use it.  Handle fmt.width.
  9582 
  9583 	* graphics.h (axes::axes_properties::visible): New data member.
  9584 	* graphics.cc (axes::axes_properties::axes_properties, 
  9585 	axes::axes_properties::set, axes::axes_properties::get, 
  9586 	axes::axes_properties::factory_defaults): Handle visible property.
  9587 
  9588 2007-06-27  Kai Habel  <kai.habel@gmx.de>
  9589 
  9590 	* graphics.h (color_values::color_values): Arg is now std:string
  9591 	instead of char.  Call str2rgb, not c2rgb.
  9592 	* graphics.h, graphics.cc: (color_values::str2rgb): Rename from
  9593 	c2rgb.  Handle long color names, not just single char abbreviations.
  9594 
  9595 2007-06-27  David Bateman  <dbateman@free.fr>
  9596 	
  9597 	* src/load-save.cc (Fsave): Ensure header is written for non
  9598 	existent file with "-append".
  9599 	* src/ls-hdf5.h: First steps towards having append work for hdf5.
  9600 	
  9601 2007-06-26  John W. Eaton  <jwe@octave.org>
  9602 
  9603 	* src/load-save.cc (Fsave): Open files correctly for -append.
  9604 	Don't write file headers if appending.  Error for -append -hdf5.
  9605 
  9606 2007-06-25  Olaf Till  <i7tiol@t-online.de>
  9607 
  9608 	* oct-stream.h (octave_stream_list::list): Use std::map.
  9609 	(octave_stream_list::curr_len): Delete data member.
  9610 	(octave_stream_list::octave_stream_list): Fix initializations.
  9611  
  9612 	* oct-stream.cc (octave_steam_list::do_insert,
  9613 	octave_steam_list::do_lookup, octave_steam_list::do_remove,
  9614 	octave_steam_list::do_clear, octave_steam_list::do_list_open_files, 
  9615 	octave_steam_list::do_open_file_numbers,
  9616 	octave_steam_list::do_get_file_number):
  9617  	Use new octave_stream_list::list type.
  9618 	(octave_stream_list::do_insert): Insert octave_stream with key
  9619 	corresponding to file-descriptor.
  9620 	(octave_stream_list::do_insert, octave_steam_list::insert):
  9621 	Remove const qualifier of argument.
  9622 
  9623 2007-06-18  Søren Hauberg  <hauberg@gmail.com>
  9624 
  9625         * DLD-FUNCTIONS/__lin_interpn__.cc: Replace octave_NaN with octave_NA.
  9626 
  9627 2007-06-15  Shai Ayal  <shaiay@users.sourceforge.net>
  9628 
  9629 	* graphics.h (OCTAVE_GRAPHICS_PROPERTY_INTERNAL,
  9630 	OCTAVE_GRAPHICS_PROPERTY, OCTAVE_GRAPHICS_MUTABLE_PROPERTY):
  9631 	New macros. Use them to declare individual properties and define
  9632 	accessor methods for each property in the property classes.
  9633 
  9634 2007-06-15  Kai Habel  <kai.habel@gmx.de>
  9635 
  9636 	* graphics.cc (Fget, Fset): Handle vectors of handles.
  9637 
  9638 2007-06-14  John W. Eaton  <jwe@octave.org>
  9639 
  9640 	* sysdep.cc (octave_popen, octave_pclose): New functions.
  9641 	* sysdep.h: Provide decls.
  9642 
  9643 	* oct-procbuf.cc (procbuf::open): Use octave_popen.
  9644 	(procbuf::close): Use octave_pclose.
  9645 	* oct-prcstrm.cc (octave_oprocstream::octave_oprocstream, 
  9646 	octave_iprocstream::ictave_oprocstream): Likewise.
  9647 
  9648 	* graphics.h (text::text_properties::rotation): New data member.
  9649 	* graphics.cc (text::text_properties::text_properties, 
  9650 	text::text_properties::set, text::text_properties::get, 
  9651 	text::text_properties::factory_defaults): Handle rotation property.
  9652 
  9653 2007-06-14  Kai Habel  <kai.habel@gmx.de>
  9654 
  9655 	* graphics.cc (color_values::c2rgb): Also accept 'k' for black.
  9656 
  9657 2007-06-14  David Bateman  <dbateman@free.fr>
  9658 
  9659 	* ov-ch-mat.h (idx_vector index_vector (void) const): Remove
  9660 	definition.
  9661 	* ov-ch-mat.cc (idx_vector index_vector (void) const): Move it
  9662 	here. Special case ":" case for compatibility.
  9663 
  9664 2007-06-13  John W. Eaton  <jwe@octave.org>
  9665 
  9666 	* ov-re-mat.cc (octave_matrix::load_ascii):
  9667 	Do a better job of handling read errors and empty matrices.
  9668 	* ov-cx-mat.cc (octave_complex_matrix::load_ascii): Likewise.
  9669 	* ov-bool-mat.cc (octave_bool_matrix::load_ascii): Likewise.
  9670 	* ov-str-mat.cc (octave_char_matrix_str::load_ascii): Likewise.
  9671 
  9672 2007-06-13  David Bateman  <dbateman@free.fr>
  9673 
  9674 	* DLD-FUNCTIONS/minmax.cc (MINMAX_BODY): Don't treat as single
  9675 	argument if arg2 is empty and nargin=2.
  9676 
  9677 2007-06-13  Shai Ayal  <shaiay@users.sourceforge.net>
  9678 
  9679 	* graphics.h, graphics.cc: Move class declarations to graphics.h.
  9680 	Move larger functions outside of class declarations in graphics.cc.
  9681 
  9682 2007-06-12  Benjamin Lindner  <lindnerben@gmx.net>
  9683 
  9684 	* DLD-FUNCTIONS/cellfun.cc: Use fullfile to generate filenames
  9685 	instead of assuming / will work as directory separator.
  9686 
  9687 2007-06-12  David Bateman  <dbateman@free.fr>
  9688 
  9689 	* DLD-FUNCTIONS/interpn.cc: Remove it.
  9690 	* DLD-FUNCTIONS/__lin_interpn__.cc: Move it. This is now a support
  9691 	function of interpn.m.
  9692 	* Makefile.in (DLD_XSRC): Remove interpn.cc and add __lin_interpn__.cc.
  9693 
  9694 2007-06-07  David Bateman  <dbateman@free.fr>
  9695 
  9696 	* ov-fcn-handles.cc (octave_fcn_handle::save_hdf5): More care that
  9697 	all open HDF5 descriptors are closed.
  9698 	(octave_fcn_handle::load_hdf5): Ditto.
  9699 
  9700 2007-06-06  Benjamin Lindner  <lindnerben@gmx.net>
  9701 
  9702 	* utils.cc [__MINGW32__]: Don't define HAVE_C99_VSNPRINTF.
  9703 
  9704 2007-06-06  Michael Goffioul  <michael.goffioul@swing.be>
  9705 
  9706 	* defaults.h.in, ls-hdf5.h, ov-complex.h, ov-cx-mat.h, ov-intx.h,
  9707 	sysdep.h: Sprinkle with OCTINTERP_API as needed.
  9708 
  9709 2007-06-05  John W. Eaton  <jwe@octave.org>
  9710 
  9711 	* help.h (raw_help): Tag with OCTINTERP_API.
  9712 
  9713 	* Makefile.in (INCLUDES): Remove mxarray.h from the list so that
  9714 	it is not distributed.
  9715 	(EXTRAS): Add mxarray.h to the list so that it is installed.
  9716 
  9717 	* sysdep.cc (same_file_internal) [OCTAVE_USE_WINDOWS_API]:
  9718 	Avoid leaking file handles.
  9719 
  9720 2007-05-08 Michael Weitzel  <michael.weitzel@uni-siegen.de>
  9721 
  9722 	* DLD-FUNCTIONS/symrcm.cc: Fix for queuing error that might cause
  9723 	an infinite loop.
  9724 
  9725 2007-06-04  John W. Eaton  <jwe@octave.org>
  9726 
  9727 	* data.cc (Fislogical): Rename from Fisbool.
  9728 	Make isbool an alias for islogical.
  9729 
  9730 2007-06-03  David Bateman  <dbateman@free.fr>
  9731 
  9732 	* Makefile.in (DISTFILES): Add mxarray.h.in
  9733 	(install-inc): Modify target so that mxarray.h is installed
  9734 	correctly.
  9735 	(distclean): Remove mxarray.h on distclean.
  9736 	* mex.cc: Use mwSize for dimensions and mwIndex for indexing
  9737 	throughout, with the exception of struct key indexes.
  9738 	* mexproto.h: ditto.
  9739 	* mxarray.h: remove.
  9740 	* mxarray.h.in: Copy here and define mwSize, mwIndex, and use
  9741 	throughout. 
  9742 	* ov-bool-mat.cc (octave_bool_matrix::as_mxArray): Use mwSize and
  9743 	mwIndex.
  9744 	* ov-bool-sparse (octave_sparse_bool_matrix::as_mxArray): ditto.
  9745 	* ov-cell.cc (octave_cell:as_mxArray): ditto.
  9746 	* ov-ch-mat.cc (octave_char_matrix:as_mxArray): ditto.
  9747 	* ov-cx-mat.cc (octave_complex_matrix::as_mxArray): ditto.
  9748 	* ov-cx-sparse.cc (octave_sparse_complex_matrix::as_mxArray): ditto.
  9749 	* ov-int.h (as_mxArray): ditto.
  9750 	* ov-range.cc (octave_range:as_mxArray): ditto.
  9751 	* ov-re-mat.cc (octave_matrix:as_mxArray): ditto.
  9752 	* ov-re-sparse.cc (octave_sparse_matrix::as_mxArray): ditto.
  9753 	* ov-struct.cc (octave_struct::as_mxArray): ditto.
  9754 
  9755 2007-06-02  David Bateman  <dbateman@free.fr>
  9756 
  9757 	* graphics.cc (color_property class): g++ doesn't like anonymous
  9758 	enums. Give type to color_type enum.
  9759 
  9760 2007-05-31  Shai Ayal  <shaiay@users.sourceforge.net>
  9761 
  9762 	* graphics.cc (radio_values, radio_property, color_values):
  9763 	New classes.
  9764 	(color_property class): Handle both color and radio values.
  9765 
  9766 2007-05-31  John W. Eaton  <jwe@octave.org>
  9767 
  9768 	* toplev.cc (main_loop): Improve bad_alloc error message.
  9769 
  9770 	* octave.cc (execute_command_line_file, execute_eval_option_code):
  9771 	Likewise.
  9772 
  9773 2007-05-31  Michael Goffioul  <michael.goffioul@swing.be>
  9774 
  9775 	* toplev.cc (octave_atexit_functions):
  9776 	Now std::list instead of std::stack.
  9777 	(do_octave_atexit): Adapte to octave_atexit_functions as list.
  9778 	(Fatexit): Allow second arg of false to remove element from list.
  9779 
  9780 	* DLD-FUNCTIONS/symrcm.cc: Use ! instead of "not".
  9781 
  9782 	* sysdep.cc (same_file_internal) [OCTAVE_USE_WINDOWS_API]:
  9783 	Use INVALID_HANDLE_VALUE, not INVALID_FILE_HANDLE.
  9784 
  9785 2007-05-28  G. D. McBain  <geordie_mcbain@yahoo.com.au>
  9786 
  9787 	* ov-list.cc (append): Doc fix.
  9788 
  9789 2007-05-28  John W. Eaton  <jwe@octave.org>
  9790 
  9791 	* pt-loop.cc (DO_ND_LOOP): Avoid parser problem with obsolete g++.
  9792 
  9793 2007-05-23  John W. Eaton  <jwe@octave.org>
  9794 
  9795 	* version.h (OCTAVE_VERSION): Now 2.9.12+.
  9796 
  9797 2007-05-23  John W. Eaton  <jwe@octave.org>
  9798 
  9799 	* version.h (OCTAVE_VERSION): Now 2.9.12.
  9800 	(OCTAVE_RELEASE_DATE): Now 2007-05-23.
  9801 
  9802 	* parse.y (make_anon_fcn_handle): Don't build assignment expression.
  9803 	* ov-fcn-handle.cc (octave_fcn_handle::print_raw):
  9804 	Don't split assignment expression.
  9805 	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
  9806 	Special case for inline function body evaluation.
  9807 
  9808 2007-05-22  John W. Eaton  <jwe@octave.org>
  9809 
  9810 	* pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue):
  9811 	Set current function as parent of anonymous function handle.
  9812 
  9813 	* Makefile.in (uninstall): Also remove
  9814 	$(DESTDIR)$(octincludedir)/octave, $(DESTDIR)$(octincludedir),
  9815 	$(DESTDIR)$(octlibdir), and $(DESTDIR)$(octfiledir).
  9816 
  9817 2007-05-22  Thomas Weber  <thomas.weber.mail@gmail.com>
  9818 
  9819 	* debug.cc, error.cc, load-save.cc, oct-hist.cc, sighandlers.cc,
  9820 	symtab.cc: Fix typos.
  9821 
  9822 2007-05-22  John W. Eaton  <jwe@octave.org>
  9823 
  9824 	* version.h (OCTAVE_VERSION): Now 2.9.11+.
  9825 
  9826 2007-05-22  John W. Eaton  <jwe@octave.org>
  9827 
  9828 	* version.h (OCTAVE_VERSION): Now 2.9.11.
  9829 	(OCTAVE_API_VERSION): Now api-v24.
  9830 	(OCTAVE_RELEASE_DATE): Now 2007-05-22.
  9831 
  9832 2007-05-21  David Bateman  <dbateman@free.fr>
  9833 
  9834 	* debug.cc (Fdbstop): handle integer, vector and multiple line
  9835 	arguments.
  9836 	(Fdbclar): ditto. Eliminate extraneous debugging messages.
  9837 
  9838 2007-05-21  Søren Hauberg  <hauberg@gmail.com>
  9839 
  9840         * load-path.cc (Fpath, Frehash): Replace "LOADPATH" with "load
  9841 	path" in doc strings.
  9842 
  9843         * parse.y (Feval): Add example.
  9844 
  9845 2007-05-21  David Bateman  <dbateman@free.fr>
  9846 
  9847 	* error.cc (rethrow_error): Use NULL name so that "error:" is not
  9848 	added to the message
  9849 	(Frethrow): Correctly treat empty stack.
  9850 
  9851 2007-05-21  John W. Eaton  <jwe@octave.org>
  9852 
  9853 	* oct-map.h (Octave_map::numel): Return number of array elements,
  9854 	not number of map elements.
  9855 	(Octave_map::nfields): Rename from length.
  9856 	(Octave_map::empty): Delete.
  9857 	Change all uses of empty to check nfields () == 0 instead.
  9858 
  9859 2007-05-21  Søren Hauberg  <soren@hauberg.org>
  9860 
  9861 	* help.cc (Fautoload): Doc fix.
  9862 	* variables.cc (Fiscommand): Doc fix.
  9863 
  9864 2007-05-19  David Bateman  <dbatemna@free.fr>
  9865 
  9866 	* ov-fcn-inline.cc (Fvectorize): Doc fix.
  9867 
  9868 2007-05-16  Søren Hauberg  <soren@hauberg.org>
  9869 
  9870 	* ov.cc (Fsubsref, Fsubsasgn): Doc fix.
  9871 
  9872 2007-05-16  John W. Eaton  <jwe@octave.org>
  9873 
  9874 	* load-path.h (load_path::sys_path): New static data member.
  9875 	(load_path::system_path): New static function.
  9876 	(load_path::do_system_path): New function.
  9877 	* load-path.cc (Vsystem_path): Delete.
  9878 	(load_path::do_initialize): Use sys_path, not Vsystem_path.
  9879 	(Fpathdef): Call load_path::system_path instead of using Vsystem_path.
  9880 	* ls-mat5.cc (read_mat5_binary_element): Likewise.
  9881 	* ov-fcn-handle.cc (octave_fcn_handle::set_fcn): Likewise.
  9882 
  9883 2007-05-16  David Bateman  <dbateman@free.fr>
  9884 
  9885 	* load_pathc.cc (std::string octave_system_path (void)): New
  9886         function.
  9887         * load-path.h (std::string octave_system_path (void)): Declare it.
  9888 
  9889         * load-save.cc (static load_save_format get_file_format
  9890         (std::istream&, const std::string&)): Add filename argument, and
  9891         pass it to read_mat5_binary_header. Use new format throughout file.
  9892         (Fload): Don't allow gzip of matlab v7 files as the files
  9893         themselves include compression.
  9894 
  9895         * ls-mat5.cc (arrayclsstype:MAT_FILE_WORKSPACE_CLASS): New class
  9896         type.
  9897         (read_mat5_binary_element): Workspaces, don't have dimensions, so
  9898         don't read them. Implement read of matlab objects, but only use
  9899         them for inline functions. Implement reading of function and
  9900         workspace classes.
  9901         (read_mat5_binary_header): Add filename argument. Read sub-system
  9902         specific data block given as an offset in bytes 117 to 124.
  9903         (save_mat5_binary_element): Include saving of inline functions.
  9904 
  9905         * ls-mat5.h (read_mat5_binary_header): Include filename.
  9906 
  9907         * ov-fcn-handle.cc (octave_fcn_handle_save_ascii,
  9908         octave_fcn_handle::load_ascii, octave_fcn_handle::save_binary, 
  9909         octave_fcn_handle::load_binary, octave_fcn_handle::save_hdf5, 
  9910         octave_fcn_handle::load_hdf5): Save and reload the local symbol
  9911         table of the user function associated with anonymous function
  9912         handles. Save and load the absolute path and the exec_prefix for
  9913         normal function handles and use then to find equivalent functions
  9914         between different installations of Octave. Attempt to maintain
  9915         backward and forward compatibility.
  9916         (Ffunctions): Additional outputs, including the workspace of
  9917         anonymous functions, and more compatiable outputs.
  9918 
  9919         * ov-fcn-handle.h (user_function_value): Expose the user function
  9920         value of a function handle.
  9921 
  9922         * ov-fcn-inline.cc (Octave_map octave_fcn_inline::map_value
  9923         (void) const): Return a structure compatiable with matlab's class
  9924         implementation of inline functions.
  9925 
  9926         * ov-fcn-inline.h (map_value): Declare it.
  9927 
  9928 2007-05-14  Bob Weigel  <rweigel@gmu.edu>
  9929 
  9930 	* DLD-FUNCTIONS/svd.cc: Doc fix.
  9931 
  9932 2007-05-14  Thomas Weber  <thomas.weber.mail@gmail.com>
  9933 
  9934 	* DLD-FUNCTIONS/fft.cc (do_fft): Handle empty matrices.  New tests.
  9935 
  9936 2007-05-14  Søren Hauberg  <soren@hauberg.org>
  9937 
  9938 	* toplev.cc (Fatexit): Simplify example in doc string.
  9939 	* help.cc (Flookfor): Doc fix.
  9940 	* DLD-FUNCTIONS/cellfun.cc (Fcellfun):
  9941 	Reformat to avoid long lines in doc string example.
  9942 
  9943 2007-05-13  Søren Hauberg  <soren@hauberg.org>
  9944 
  9945 	* toplev.cc (Fquit): Doc fix.
  9946 	* help.cc (Fhelp): Doc fix.
  9947 	* oct-hist.cc (Fsaving_history): Doc fix.
  9948 
  9949 2007-05-11  John W. Eaton  <jwe@octave.org>
  9950 
  9951 	* variables.cc (symbol_out_of_date):
  9952 	Always check for files that have gone missing.
  9953 
  9954 2007-05-08 Michael Weitzel  <michael.weitzel@uni-siegen.de>
  9955 
  9956 	* DLD-FUNCTIONS/symrcm.cc: New function for Reverse Cuthill-McKee
  9957 	permutation.
  9958 	
  9959 2007-05-07  John W. Eaton  <jwe@octave.org>
  9960 
  9961 	* oct-map.cc (Octave_map::resize): Handle case of no keys.
  9962 	(keys_ok): Rename from equiv_keys.  Return value is now status.
  9963 	Pass key names as string_vector reference arg.
  9964 	(Octave_map::assign (const octave_value_list&, const Octave_map&)):
  9965 	Call keys_ok, not equiv_keys.  Handle case of no keys.
  9966 
  9967 2007-04-30  John W. Eaton  <jwe@octave.org>
  9968 
  9969 	* Makefile.in (%.df : %.cc): Use mv instead of
  9970 	$(simple-move-if-change-rule).
  9971 
  9972 2007-04-30  David Bateman  <dbateman@free.fr>
  9973 	
  9974 	* pt-loop.cc (DO_ND_LOOP): New args, CONV and ARG.
  9975 	Use octave_idx_type instead of int for loop counters.
  9976 	Remove redundant assignments to variable "quit" as it is
  9977 	always defined in quit_loop_now.
  9978 	Special case rows = 0 and 1 cases in loops over arrays.
  9979 	Include some of the code that was separate from the macro
  9980 	DO_ND_LOOP in the macro itself
  9981 	(tree_simple_for_command::eval): USE DO_ND_LOOP for all loops.
  9982 	(DO_LOOP): Delete.
  9983 
  9984 2007-04-30  John W. Eaton  <jwe@octave.org>
  9985 
  9986 	* mex.cc (mex::cleanup): Don't call unmark for elements of the set
  9987 	inside the loop.  From Laurent Mazet <laurent.mazet@motorola.com>.
  9988 
  9989 2007-04-30  David Bateman  <dbateman@free.fr>
  9990 
  9991 	* OPERATORS/op-int-conv.cc: Define sq and dq string conversion
  9992 	operators.  Delete old char_matrix_str conversions.
  9993 	* OPERATORS/op-int-conv.cc (install_int_conv_ops): Install them.
  9994 
  9995 2007-04-27  Benjamin Lindner  <lindnerb@users.sourceforge.net>.
  9996 
  9997 	* octave.cc (execute_startup_files): Call same_file to check for
  9998 	already executed init files.
  9999 
 10000 2007-04-27  John W. Eaton  <jwe@octave.org>
 10001 
 10002 	* sysdep.cc (same_file_internal): New function.  POSIX code
 10003 	from same_file in utils.cc.  Windows code from
 10004 	Benjamin Lindner  <lindnerb@users.sourceforge.net>.
 10005 	Don't canonicalize file names.
 10006 	Also return false if stat calls fail.
 10007 	* sysdep.h: Provide decl.
 10008 	* utils.cc (same_file): Use same_file_internal.
 10009 
 10010 2007-04-27  David Bateman  <dbateman@free.fr>
 10011 
 10012 	* graphic.cc (get_property_form_handle, set_property_in_handle):
 10013 	New functions.
 10014 	* grahics.h: New file.
 10015 	* mex.cc (mexGet, mexSet): use the above to implement mexGet
 10016 	and mexSet.
 10017 	* Makefile.in (INCLUDES): Add graphics.h
 10018 
 10019 2007-04-26  John W. Eaton  <jwe@octave.org>
 10020 
 10021 	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
 10022 	Only deal with varargout if ret_list->takes_varargs () is true.
 10023 
 10024 2007-04-26  Søren Hauberg  <soren@hauberg.org>
 10025 
 10026 	* DLD-FUNCTIONS/urlwrite.cc: Doc fix.
 10027 
 10028 2007-04-26  David Bateman  <dbateman@free.fr>
 10029 
 10030 	* pt-loop.cc (tree_simple_for_command::eval (void)): Correct
 10031 	reshaping of dim_vector in for loop for multi-dimensional array.
 10032 
 10033 2007-04-26  John W. Eaton  <jwe@octave.org>
 10034 
 10035 	* load-save.cc (find_file_to_load): Only consider regular files.
 10036 
 10037 2007-04-24  Shai Ayal  <shaiay@users.sourceforge.net>
 10038 
 10039 	* graphics.cc (color_property): Eliminate alpha channel from RGB
 10040 	color spec.
 10041 
 10042 2007-04-23  Shai Ayal  <shaiay@users.sourceforge.net>
 10043 
 10044 	* src/graphics.cc (color_property::color_property):
 10045 	New arg A for alpha channel.  Set rgba instead of red, green, blue.
 10046         (color_property::color_property (char)): New constructor.
 10047         (color_propery::rgba): New data member.
 10048 	(color_property::red, color_property::green, color_property::blue):
 10049 	Delete.
 10050         (color_property::validate): Use rgba.
 10051         (color_property::c2rgba): New function.
 10052 
 10053 2007-04-23  Søren Hauberg  <soren@hauberg.org>
 10054 
 10055 	* data.cc (Fsize_equal): Allow more than two arguments.
 10056 
 10057 2007-04-20  John W. Eaton  <jwe@octave.org>
 10058 
 10059 	* DLD-FUNCTIONS/__gnuplot_raw__.l (deftypefn): 
 10060 	(Vautomatic_replot): Delete static variable.
 10061 	(Fautomatic_replot): Delete function.
 10062 
 10063 	* toplev.cc (Fcasesen): Delete obsolete function.
 10064 
 10065 	* DLD-FUNCTIONS/__gnuplot_raw__.l (gnuplot::makeplot): Check
 10066 	whether caller is "splot", not "gsplot".
 10067 
 10068 2007-04-19  John W. Eaton  <jwe@octave.org>
 10069 
 10070 	* lex.l (is_keyword_token): Delete all_va_args_kw switch case.
 10071 	* octave.gperf: Remove all_va_args_kw from the list.
 10072 
 10073 2007-04-19  Daniel J. Sebald  <daniel.sebald@ieee.org>
 10074 
 10075 	* syscalls.cc: Fix popen2 test to stop trying after 100 times
 10076 	throught the loop.
 10077 
 10078 2007-04-16  Geordie McBain  <geordie.mcbain@aeromech.usyd.edu.au>
 10079 
 10080 	* ov-fcn-inline.cc (Fargnames): Doc fix.
 10081 
 10082 2007-04-13  Geordie McBain  <geordie.mcbain@aeromech.usyd.edu.au>
 10083 
 10084 	* DLD-FUNCTIONS/find.cc (Ffind): Doc fix.
 10085 
 10086 2007-04-11  John W. Eaton  <jwe@octave.org>
 10087 
 10088 	* Makefile.in (DOCSTRINGS): Don't echo commands.
 10089 	(doc-files): Use mv, not $(simple-move-if-change-rule).
 10090 
 10091 	* data.cc (Fnot, Fuplus, Fuminus, Ftranspose, Fctranspose, Fplus,
 10092 	Fminus, Fmtimes, Fmrdivide, Fmpower, Fmldivide, Flt, Fle, Feq,
 10093 	Fge, Fgt, Fne, Ftimes, Frdivide, Fpower, Fldivide, Fand, For):
 10094 	New functions.
 10095 
 10096 2007-04-09  John W. Eaton  <jwe@octave.org>
 10097 
 10098 	* graphics.cc (line::line_properties::markeredgecolor,
 10099 	line::line_properties::markerfacecolor): New properties.
 10100 
 10101 2007-04-06  John W. Eaton  <jwe@octave.org>
 10102 
 10103 	* data.cc (F__vnorm__): New function.
 10104 
 10105 	* pt-fcn-handle.cc (tree_anon_fcn_handle::param_list, 
 10106 	tree_anon_fcn_handle::cmd_list,	tree_anon_fcn_handle::ret_list,
 10107 	tree_anon_fcn_handle::sym_tab): Delete.  Remove all uses.
 10108 	(tree_anon_fcn_handle::fcn): New data member.
 10109 	(tree_anon_fcn_handle::tree_anon_fcn_handle): Initialize it.
 10110 	(tree_anon_fcn_handle::rvalue, tree_anon_fcn_handle::dup):
 10111 	Extract parameter list, return list, function body, and symbol
 10112 	table from fcn.
 10113 	(tree_anon_fcn_handle::parameter_list, tree_anon_fcn_handle::body):
 10114 	Forward request to fcn.
 10115 
 10116 	* ov-usr-fcn.h (octave_user_function::local_sym_tab): Rename from
 10117 	sym_tab.  Change all uses.
 10118 	(octave_user_function::sym_tab): New function.
 10119 
 10120 	* octave.cc (execute_command_line_file): 
 10121 
 10122 2007-04-05  David Bateman  <dbateman@free.fr>
 10123 
 10124 	* DLD-FUNCTIONS/regexp.cc (Fregexprep): Correct iteration over 
 10125 	cell arrays so that the source and pattern are iterated seperately 
 10126 	in the same manner as matlab.
 10127 
 10128 2007-04-05  Laurent Mazet  <laurent.mazet@motorola.com>
 10129 
 10130 	* mex.cc (mxArray_octave_value::get_string): Copy nel elements,
 10131 	not buflen elements.
 10132 
 10133 2007-04-05  John W. Eaton  <jwe@octave.org>
 10134 
 10135 	* oct-stream.cc (DO_DOUBLE_CONV): New macro.
 10136 	(do_printf): Use it.
 10137 
 10138 2007-04-04  John W. Eaton  <jwe@octave.org>
 10139 
 10140 	* input.cc (octave_yes_or_no): Force interactive_input to use readline.
 10141 
 10142 	* octave.cc (execute_eval_option_code): Catch bad::alloc here.
 10143 
 10144 2007-04-03  John W. Eaton  <jwe@octave.org>
 10145 
 10146 	* DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread):
 10147 	Use && for logical, not &.
 10148 
 10149 	* DLD-FUNCTIONS/qr.cc (Fqr): Clarify nargin check.
 10150 
 10151 	* error.cc (Frethrow): Add braces to avoid ambiguous if/else.
 10152 	* oct-stream.cc (octave_scan<>): Likewise.
 10153 	* DLD-FUNCTIONS/colamd.cc (Fetree): Likewise.
 10154 	* DLD-FUNCTIONS/sort.cc (mx_sort, mx_sort_indexed): Likewise.
 10155 
 10156 	* ov-fcn-handle.cc (make_fcn_handle): Pass ultimate parent
 10157 	function name to lookup_function.
 10158 
 10159 2007-03-29  John W. Eaton  <jwe@octave.org>
 10160 
 10161 	* DLD-FUNCTIONS/filter.cc (filter): Fix typo in doc string.
 10162 	From Utkarsh Upadhyay <musically.ut@gmail.com>.
 10163 
 10164 2007-03-28  Rafael Laboissiere  <rafael@debian.org>
 10165 
 10166 	* DLD-FUNCTIONS/__glpk__.cc: Fix #ifdef logic around GLPK_PRE_4_14.
 10167 
 10168 2007-03-27  John W. Eaton  <jwe@octave.org>
 10169 
 10170 	* version.h (OCTAVE_VERSION): Now 2.9.10+
 10171 
 10172 2007-03-27  John W. Eaton  <jwe@octave.org>
 10173 
 10174 	* version.h (OCTAVE_VERSION): Now 2.9.10.
 10175 	(OCTAVE_API_VERSION): Now api-v23.
 10176 	(OCTAVE_RELEASE_DATE): Now 2007-03-27.
 10177 
 10178 	* version.h (OCTAVE_COPYRIGHT): Update for 2007.  Add "and others".
 10179 	(X_OCTAVE_WARRANTY_STATEMENT): Rename from OCTAVE_WARRANTY_STATEMENT.
 10180 	Accept arg.
 10181 	(OCTAVE_WARRANTY_STATEMENT): Define using X_OCTAVE_WARRANTY_STATEMENT.
 10182 	(OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Define using
 10183 	X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY.
 10184 	(X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Rename
 10185 	from OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY.
 10186 	Accept arg and pass to X_OCTAVE_WARRANTY_STATEMENT.
 10187 	(OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY): Pass empty
 10188 	arg to X_OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_WARRANTY_AND_BUGS.
 10189 	(OCTAVE_STARTUP_MESSAGE): Put info about news last.
 10190 
 10191 2007-03-27  John W. Eaton  <jwe@octave.org>
 10192 
 10193 	* Makefile.in (dist, conf-dist): Use ln, not $(LN_S).
 10194 
 10195 2007-03-26  Juhani Saastamoinen  <juhani@cs.joensuu.fi>
 10196 
 10197 	* file-io.cc (do_stream_open) [! HAVE_ZLIB]:
 10198 	Call fopen with mode, not tmode.
 10199 
 10200 2007-03-26  John W. Eaton  <jwe@octave.org>
 10201 
 10202 	* OPERATORS/op-str-str.cc (DEFCHARNDBINOP): New macro.  Use it to
 10203 	define functions for eq and ne ops.  Also define lt, le, ge, and
 10204 	gt ops.
 10205 
 10206 2007-03-23  David Bateman  <dbateman@free.fr>
 10207 
 10208 	* DLD-FUNCTIONS/rand.cc: Make more statistical tests optional.
 10209 
 10210 2007-03-23  John W. Eaton  <jwe@octave.org>
 10211 
 10212 	* bitfcns.cc (Fbitshift): Error if third argument is not a scalar.
 10213 
 10214 2007-03-23  David Bateman  <dbateman@free.fr>
 10215 
 10216 	* DLD-FUNCTIONS/rand.cc: Make statistical tests optional and 
 10217 	add tests for fixed sequences.
 10218 
 10219 2007-03-22  John W. Eaton  <jwe@octave.org>
 10220 
 10221 	* graphics.cc (base_graphics_object::mark_modified):
 10222 	New virtual function.
 10223 	(base_properties::__modified__): New data member.
 10224 	(base_properties::base_properties): Initialize it.
 10225 	(graphics_object::mark_modified, base_properties::mark_modified, 
 10226 	root_figure::mark_modified, figure::mark_modified,
 10227 	axes::mark_modified, line::mark_modified, text::mark_modified,
 10228 	image::mark_modified, surface::mark_modified,
 10229 	root_figure::root_figure_properties::mark_modified,
 10230 	figure::figure_properties::mark_modified,
 10231 	axes::axes_properties::mark_modified,
 10232 	line::line_properties::mark_modified,
 10233 	text::text_properties::mark_modified,
 10234 	image::image_properties::mark_modified,
 10235 	surface::surface_properties::mark_modified): New functions.
 10236 	(figure::figure_properties::set, figure::figure_properties::get,
 10237 	axes::axes_properties::set, axes::axes_properties::get,
 10238 	line::line_properties::set, line::line_properties::get,
 10239 	text::text_properties::set, text::text_properties::get,
 10240 	image::image_properties::set, image::image_properties::get,
 10241 	surface::surface_properties::set, surface::surface_properties::get):
 10242 	Handle __modified__ property.
 10243 
 10244 	* parse.y (Fautoload): Use warning_with_id.
 10245 
 10246 2007-03-21  John W. Eaton  <jwe@octave.org>
 10247 
 10248 	* DLD-FUNCTIONS/__qp__.cc (ABS): Delete.  Use std::abs instead.
 10249 	(null): Set elements of retval with magnitudes less than eps to 0.
 10250 
 10251 	* error.cc (Fwarning): Allow setting options with struct.
 10252 	If setting options, return previous state.
 10253 
 10254 	* graphics.cc (axes::axes_properties::set_defaults): Reverse sense
 10255 	of mode test for setting outerposition property.
 10256 	(figure::figure_properties::set): If setting visible property,
 10257 	make this figure the current figure.
 10258 	(gh_manager::figure_handle_list, gh_manager::do_figure_handle_list):
 10259 	New functions.
 10260 	(F__go_figure_handles__): New function.
 10261 
 10262 	* sysdep.cc (Fpause): Also call drawnow if nargin == 0.
 10263 	(Fkbhit, Fsleep, Fusleep): Also call drawnow here.
 10264 
 10265 2007-03-20  David Bateman  <dbateman@free.fr>
 10266 
 10267 	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Correct for shape of return
 10268 	matrix for the case of UniformOutput being true.
 10269 
 10270 2007-03-20  John W. Eaton  <jwe@octave.org>
 10271 
 10272 	* sysdep.cc (Fpause): Call drawnow.
 10273 
 10274 2007-03-15  John W. Eaton  <jwe@octave.org>
 10275 
 10276 	* variables.cc (F__lock_global__): Delete.
 10277 
 10278 2007-03-14  John W. Eaton  <jwe@octave.org>
 10279 
 10280 	* graphics.cc: New file.
 10281 	* Makefile.in (DIST_SRC): Add it to the list.
 10282 
 10283 2007-03-13  John W. Eaton  <jwe@octave.org>
 10284 
 10285 	* file-io.cc (do_stream_open): Use binary mode if 't' is not
 10286 	specified in mode, but don't add 'b' if it is already present.
 10287 
 10288 2007-03-09  David Bateman  <dbateman@free.fr>
 10289 
 10290 	* data.cc (do_cat):  Also treat case of all empty matrices.
 10291 
 10292 2007-03-08  John W. Eaton  <jwe@octave.org>
 10293 
 10294 	* mex.cc (mxArray_octave_value::set_dimensions,
 10295 	mxArray_octave_value::set_m, mxArray_octave_value::set_n, 
 10296 	mxArray_octave_value::set_class_name,
 10297 	mxArray_octave_value::set_ir, mxArray_octave_value::set_jc,
 10298 	mxArray_octave_value::remove_field,
 10299 	mxArray_octave_value::set_field_by_number):
 10300 	Don't panic; request mutation instead.
 10301 	(class mxArray_octave_value): 
 10302 
 10303 	* mxarray.h (mxArray::set_m, mxArray::set_n,
 10304 	mxArray::set_dimensions): Wrap method call call with
 10305 	DO_VOID_MUTABLE_METHOD.
 10306 
 10307 2007-03-08  David Bateman  <dbateman@free.fr>
 10308 
 10309 	* data.cc (do_cat): Ignore leading empty matrices.
 10310 
 10311 2007-03-07  Bob Weigel  <rweigel@gmu.edu>
 10312 
 10313 	* urlwrite.cc (urlget): Allow URL redirects.
 10314 
 10315 2007-03-05  David Bateman  <dbateman@free.fr>
 10316 
 10317 	* DLD-FUNCTIONS/md5sum.cc (Fmd5sum): Treat both files and strings.
 10318 
 10319 2007-03-05  John W. Eaton  <jwe@octave.org>
 10320 
 10321 	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Check GLPK_PRE_4_14, not
 10322 	GLPK_PRE_4_15.
 10323 
 10324 2007-03-02  John W. Eaton  <jwe@octave.org>
 10325 
 10326 	* parse.y (Fautoload): Undo previous change.
 10327 	Warn if FILE is not an absolute file name.
 10328 
 10329 	* utils.cc (make_absolute): Make copy of arg before 
 10330 
 10331 2007-03-01  John W. Eaton  <jwe@octave.org>
 10332 
 10333 	* ov-base-mat.h	(octave_base_matrix::octave_base_matrix (const MT&), 
 10334 	(octave_base_matrix::octave_base_matrix (const MT&, const MatrixType&)):
 10335 	Use common definition with default argument value.
 10336 	* ov-base-scalar.h (octave_base_scalar<T>::typ): New data member.
 10337 	Initialize in constructors.
 10338 	(octave_base_scalar<T>::matrix_type): New funtions.
 10339 
 10340 2007-03-01  David Bateman  <dbateman@free.fr>
 10341 
 10342         * DLD-FUNCTIONS/md5sum.cc: New file.
 10343         * Makefile.in (DLD_XSRC): Add md5sum.cc
 10344 
 10345 2007-03-01  Olli Saarela  <Olli.Saarela@kcl.fi>
 10346 
 10347 	* input.cc (FPS1): Fix @seealso.
 10348 
 10349 2007-03-01  David Bateman  <dbateman@free.fr>
 10350 
 10351 	* DLD-FUNCTIONS/matrix_type.cc (Fmatrix_type): Special case scalar
 10352 	types and always return "Full" matrix type.
 10353 
 10354 2007-02-28  John W. Eaton  <jwe@octave.org>
 10355 
 10356 	* input.cc (interactive_input): Also call flush_octave_stdout
 10357 	after calling drawnow.
 10358 
 10359 2007-02-27  John W. Eaton  <jwe@octave.org>
 10360 
 10361 	* Makefile.in (uninstall): Also remove octave-$(version)$(EXEEXT), 
 10362 	oct-gperf.h, and all .oct files.  Remove PKG_ADD.
 10363 	From Thomas Treichl <Thomas.Treichl@gmx.net>.
 10364 
 10365 	* load-path.h, (load_path::initialize, load_path::do_initialize):
 10366 	New arg, set_initial_path.
 10367 	* load-path.cc (load_path::do_initialize): Don't add system
 10368 	directories to apth if set_initial_path is false.
 10369 	* octave.cc (set_initial_path): New static variable.
 10370 	(NO_INITIAL_PATH_OPTION): New define.
 10371 	(usage_string): Include --no-initial-path in message.
 10372 	(long_opts): Include no-initial-path/NO_INITIAL_PATH_OPTION here.
 10373 	(octave_main): Handle NO_INITIAL_PATH_OPTION.
 10374 	Pass set_initial_path to load_path::initialize.
 10375 
 10376 	* parse.y (Fautoload): Warn about duplicate entries.  Only insert
 10377 	the first found.
 10378 
 10379 2007-02-27  David Bateman  <dbateman@free.fr>
 10380 
 10381 	* error.cc (Vlast_error_file, Vlast_erro_name, Vlast_error_row,
 10382 	Vlast_error_column): New static variables.
 10383 	(verror): Use them to store the location of last error.
 10384 	(rethrow_error, Frethrow, Flasterror): New functions.
 10385 
 10386         * DLD-FUNCTIONS/regexp.cc (octcellregexp): Wrapper to octregexp
 10387         function for cases when string or pattern are cell arrays
 10388         (Fregexp, Fregexpi): Use them.
 10389         (octregexprep): New function with functionality of old Fregexprep.
 10390         (Fregexprep): Treat cell arguments.
 10391 
 10392 2007-02-26  Michael Goffioul  <michael.goffioul@swing.be>
 10393 
 10394 	* Makefile.in: Use $(LN_S) instead of ln or ln -s.
 10395 
 10396 	* DLD-FUNCTIONS/getrusage.cc: Undef min after including windows.h.
 10397 
 10398 2007-02-25  John W. Eaton  <jwe@octave.org>
 10399 
 10400 	* DLD-FUNCTIONS/interpn.cc: Include dNDArray.h, not dMatrix.cc.
 10401 
 10402 	* error.h: Include cstdarg.
 10403 	From Juhani Saastamoinen <juhani@cs.joensuu.fi>.
 10404 
 10405 2007-02-23  John W. Eaton  <jwe@octave.org>
 10406 
 10407 	* variables.cc (lookup_function): Don't dereference NULL
 10408 	curr_parent_fucntion pointer.
 10409 	* ov-fcn-handle.cc (make_fcn_handle): Call lookup_function with
 10410 	parent set to empty string if call_stack is empty.
 10411 
 10412 	* DLD-FUNCTIONS/dispatch.cc (Fbuiltin): Also adjust argument list
 10413 	in calls to functions that are not overloaded.  Call
 10414 	lookup_by_name to find function instead of searching fbi_symtab
 10415 	directly.
 10416 
 10417 	* help.cc (do_which): Return empty string if file not found.
 10418 
 10419 2007-02-22  John W. Eaton  <jwe@octave.org>
 10420 
 10421 	* mex.cc (mxArray_cell::mxArray_cell (const mxArray_cell&),
 10422 	mxArray_struct::mxArray_struct (const mxArray_struct&)):
 10423 	Avoid calling clone on 0 elements.
 10424 
 10425 	* variables.cc (symbol_out_of_date): If checking nested function,
 10426 	look for file using parent function name.  Delete unused
 10427 	variable NAMES.
 10428 
 10429 	* src/oct-stream.cc (octave_stream::do_gets): If no limit or not
 10430 	at limit, read ahead one character at end of line for compatibility.
 10431 	(octave_stream::gets, octave_stream::getl): Set max_len to -1 if
 10432 	tc_max_len is not defined.
 10433 	* file-io.cc (Ffgets, Ffgetl): If no limit specified, pass
 10434 	undefined octave_value object as max_len in call to
 10435 	octave_stream::gets.
 10436 
 10437 2007-02-21  John W. Eaton  <jwe@octave.org>
 10438 
 10439 	* mex.cc (mexErrMsgIdAndTxt, mexWarnMsgIdAndTxt): Handle second
 10440 	arg as format and accept variable number of arguments.
 10441 	* mexproto.h: Fix decls.
 10442 
 10443 	* error.h, error.cc (vmessage, vusage, vwarning, verror,
 10444 	vparse_error, vmessage_with_id, vusage_with_id, vwarning_with_id,
 10445 	verror_with_id, vparse_error_with_id): Provide va_list versions of
 10446 	variadic error, warning, and message functions.
 10447 	(message, usage, warning, error, parse_error, message_with_id,
 10448 	usage_with_id, warning_with_id, error_with_id,
 10449 	parse_error_with_id): Call va_list versions.
 10450 
 10451 	* DLD-FUNCTIONS/urlwrite.cc (Furlwrite, Furlread): Return error
 10452 	code and message instead of throwing error if functionality is
 10453 	missing.
 10454 
 10455 	* oct-obj.h (octave_value_list::splice): Set default for
 10456 	replacement list argument.
 10457 
 10458 2007-02-20  Rafael Laboissiere  <rafael@laboissiere.net>
 10459 
 10460 	* DLD-FUNCTIONS/__glpk__.cc: Adapt code for changes in the GLPK
 10461 	API for version 4.15 or later.
 10462 
 10463 2007-02-20  John W. Eaton  <jwe@octave.org>
 10464 
 10465 	* mxarray.h (mxArray::get_scalar): New function.
 10466 	* mex.cc (mxArray_base::get_scalar): New pure virtual function.
 10467 	(mxArray_octave_value::get_scalar, mxArray_matlab::get_scalar,
 10468 	mxArray_number::get_scalar): New functions.
 10469 	(mxGetScalar): Call get_scalar here.
 10470 
 10471 	* mex.cc (mxArray_octave_value::get_dimensions): Cache ndims here.
 10472 	(mxArray_octave_value::get_number_of_dimensions):
 10473 	Call get_dimensions here to cache both ndims and dims.
 10474 
 10475 2007-02-17  John W. Eaton  <jwe@octave.org>
 10476 
 10477 	* variables.cc (symbol_out_of_date): Don't exit early if looking
 10478 	at nested function.
 10479 
 10480 2007-02-16  John W. Eaton  <jwe@octave.org>
 10481 
 10482 	* dynamic-ld.cc (octave_dynamic_loader::do_load_oct): Clear
 10483 	function if original was loaded from relative path and the name
 10484 	can no longer be found in path.  Mark files found from relative
 10485 	path as relative.
 10486 	(clear): Only warn if there is more than one function to clear.
 10487 
 10488 	* variables.cc (symbol_out_of_date): Don't ignore return value in
 10489 	call to octave_env::make_absolute.
 10490 	(symbol_out_of_date): Clear symbol if original was loaded from
 10491 	relative path and name can no longer be found in path.
 10492 
 10493 	* dynamic-ld.cc (octave_dynamic_loader::do_load_oct):
 10494 	Also check whether new file is same as the old file.
 10495 
 10496 	* utils.cc (same_file): Move here from variables.cc.
 10497 	* utils.h: (same_file): Provide decl.
 10498 
 10499 	* parse.y (frob_function): Stash parent function name if parsing
 10500 	nested function.
 10501 
 10502 	* ov-fcn-handle.cc (make_fcn_handle): Pass current function name
 10503 	as parent in call to lookup_function.
 10504 
 10505 	* ov-fcn.h (octave_function::parent_fcn_name): New virtual function.
 10506 
 10507 	* ov-usr-fcn.h (octave_user_function::parent_name): New data member.
 10508 	(octave_user_function::stash_parent_function_name,
 10509 	octave_user_function::parent_function_name): New methods.
 10510 	* ov-usr-fcn.cc (octave_user_function::octave_user_function):
 10511 	Initialize parent_name.
 10512 
 10513 	* variables.h, variables.cc (lookup_function): New arg, parent.
 10514 	If not empty, try this first for lookup.
 10515 
 10516 	* dynamic-ld.cc (octave_dynamic_loader::do_load_mex): If doing
 10517 	path lookup, check relative status. Pass relative to oct_file_in_path.
 10518 	(octave_dynamic_loader::do_load_mex): Likewise, for mex_file_in_path
 10519 
 10520 	* defun-int.h, defun.cc (install_mex_function): New arg, relative.
 10521 	(install_dld_function): Likewise.
 10522 	(octave_dld_fcn_installer): Likewise.
 10523 	(DEFINE_FUNX_INSTALLER_FUN3): Pass relative to install_dld_function.
 10524 
 10525 	* dynamic-ld.h (octave_dynamic_loader::load_oct,
 10526 	octave_dynamic_loader::load_mex,
 10527 	octave_dynamic_loader::do_load_oct
 10528 	octave_dynamic_loader::do_load_mex): New arg, relative.
 10529 
 10530 	* dirfns.h (Vcurrent_directory): Delete unused variable.
 10531 
 10532 	* variables.cc (symbol_out_of_date): Also compare function time
 10533 	stamp to Vlast_chdir_time if function is from relative lookup.
 10534 
 10535 	* dirfns.cc (Vlast_chdir_time): New variable.
 10536 	(octave_change_to_directory): Update it if chdir succeeds.
 10537 	* dirfns.h (Vlast_chdir_time): Provide decl.
 10538 
 10539 	* ov-fcn.h (octave_function::relative): New data member.
 10540 	(octave_function::mark_relative, octave_function::is_relative):
 10541 	New functions.
 10542 
 10543 	* parse.y (fcn_file_from_relative_lookup): New static variable.
 10544 	(load_fcn_from_file): Note whether function file was found from
 10545 	relative path element.
 10546 	(frob_function): Maybe mark function as relative.
 10547 
 10548 	* parse.y (lookup_autoload): Don't call octave_env::make_absolute
 10549 	on return value.
 10550 	* variables.cc (symbol_out_of_date): Make name absolute after call
 10551 	to lookup_autoload.
 10552 
 10553 	* input.cc (interactive_input): New arg, DEBUG.  Don't call
 10554 	drawnow if debugging.
 10555 	(get_user_input): Pass DEBUG to interactive_input.
 10556 
 10557 2007-02-16  Michael Goffioul  <michael.goffioul@swing.be>
 10558 
 10559 	* syscalls.cc (Fpopen2): New function.
 10560 	(pipe): Modify to return input and output file descriptor
 10561 	seperately rather than in a list.
 10562 	
 10563 2007-02-16  Muthiah Annamalai  <muthuspost@gmail.com>
 10564 
 10565 	* debug.cc (Fdbtype): Improve compatibility.
 10566 
 10567 2007-02-16  John W. Eaton  <jwe@octave.org>
 10568 
 10569 	* toplev.cc (wait_for_input): New function.
 10570 	(run_command_and_return_output): Use it instead of napping.
 10571 
 10572 	* oct-procbuf.h (octave_procbuf::pid): Now const.
 10573 	* procstream.h (procstreambase::pid): Now const.
 10574 	(procstreambase::file_number): New function.
 10575 
 10576 2007-02-15  John W. Eaton  <jwe@octave.org>
 10577 
 10578 	* mxarray.h (mxChar): Use char instead of unsigned short.
 10579 
 10580 	* toplev.cc (Foctave_config_info): Remove
 10581 	OCTAVE_CONF_MKOCTFILE_INCFLAGS and OCTAVE_CONF_MKOCTFILE_LFLAGS
 10582 	from the list.
 10583 	* oct-conf.h.in (OCTAVE_CONF_MKOCTFILE_INCFLAGS,
 10584 	OCTAVE_CONF_MKOCTFILE_LFLAGS): Don't define.
 10585 	(OCTAVE_CONF_INCLUDEDIR, OCTAVE_CONF_OCTINCLUDEDIR,
 10586 	OCTAVE_CONF_OCTLIBDIR, OCTAVE_CONF_PREFIX): New definitions.
 10587 
 10588 2007-02-14  Alexander Barth  <abarth@marine.usf.edu>
 10589 
 10590 	* DLD-FUNCTIONS/interpn.cc: New file.
 10591 	* Makefile.in (DLD_XSRC): Add it to the list.
 10592 
 10593 2007-02-14  John W. Eaton  <jwe@octave.org>
 10594 
 10595 	* input.cc (interactive_input): Check error_state after call to feval.
 10596 
 10597 2007-02-10  John W. Eaton  <jwe@octave.org>
 10598 
 10599 	* oct-stream.cc (octave_stream::rewind): Call seek (0, SEEK_SET)
 10600 	instead of rep->rewind.
 10601 	(octave_base_stream::rewind): Delete Function.
 10602 	* oct-stream.h (octave_base_stream::rewind): Delete decl.
 10603 
 10604 2007-02-09  John W. Eaton  <jwe@octave.org>
 10605 
 10606 	* ls-mat5.cc (PAD): Adjust to change in write_mat5_tag.
 10607 	(TAGLENGTH): Delete unused macro.
 10608 
 10609 	* ov-struct.cc (octave_struct::load_ascii,
 10610 	octave_struct::load_binary, octave_struct::load_hdf5):
 10611 	Delete obsolete attempt at backward compatibility.
 10612 
 10613 	* ls-mat5.cc (read_mat5_binary_element): Don't attempt to read
 10614 	fieldnames if there are no fields.
 10615 	(write_mat5_tag): Don't use small data element format if bytes == 0.
 10616 
 10617 	* ls-mat5.cc (read_mat5_binary_element): Always create a structure
 10618 	that is at least 1x1.
 10619 	* ov-struct.cc (octave_struct::load_ascii,
 10620 	octave_struct::load_binary, octave_struct::load_hdf5): Likewise.
 10621 
 10622 2007-02-08  Michael Goffioul  <michael.goffioul@swing.be>
 10623 
 10624 	* DLD-FUNCTIONS/__glpk__.cc: Include glplib.h if glpk.h does not.
 10625 	Provide definitions for lib_set_fault_hook and lib_set_print_hook
 10626 	if they are not defined.
 10627 
 10628 2007-02-07  John W. Eaton  <jwe@octave.org>
 10629 
 10630 	* defaults.cc (subst_octave_home):
 10631 	Only substitute at beginning of string.
 10632 
 10633 	* ls-hdf5.cc (save_hdf5_empty): Use OCTAVE_LOCAL_BUFFER.
 10634 	* ov-bool-mat.cc (octave_bool_matrix::save_hdf5,
 10635 	octave_bool_matrix::load_hdf5): Likewise.
 10636 	* ov-bool-sparse.cc (octave_sparse_bool_matrix::save_hdf5,
 10637 	octave_sparse_bool_matrix::load_hdf5): Likewise.
 10638 
 10639 2007-02-07  Michael Goffioul  <michael.goffioul@swing.be>
 10640 
 10641 	* ov-cell.cc (octave_cell::save_hdf5): Correct test for H5Dwrite
 10642 	return value.
 10643 
 10644 2007-02-07  John W. Eaton  <jwe@octave.org>
 10645 
 10646 	* zfstream.cc (gzfilebuf::open_mode): Always append "b" to c_mode.
 10647 
 10648 	* toplev.cc (Foctave_config_info): Use struct for conf_info.
 10649 	Call subst_octave_home on selected values when initializing map.
 10650 	* defaults.cc (subst_octave_home): Now extern.
 10651 	* defaults.h.in: Provide decl.
 10652 
 10653 2007-02-05  John W. Eaton  <jwe@octave.org>
 10654 
 10655 	* mex.cc (mxArray_number::as_octave_value): Fake mxSINGLE_CLASS
 10656 	by returning double-precision values.
 10657 	(mxArray_sparse::as_octave_value): Clarify error message.
 10658 
 10659 	* ov-complex.h (octave_complex): Use std instead of OCTAVE_STD
 10660 	since the latter was unconditionally defined to be std anyway.
 10661 
 10662 2007-02-05  Michael Goffioul  <michael.goffioul@swing.be>
 10663 
 10664 	* ov-complex.h: Tag octave_complex class with OCTINTERP_API.
 10665 
 10666 2007-01-30  John W. Eaton  <jwe@octave.org>
 10667 
 10668 	* Merge of changes from graphics-branch:
 10669 
 10670 	2007-01-26  John W. Eaton  <jwe@octave.org>
 10671 
 10672 	* DLD-FUNCTIONS/__contourc__.cc: New function.
 10673 	* Makefile.in (DLD_XSRC): Add it to the list.
 10674 
 10675 	2007-01-25  John W. Eaton  <jwe@octave.org>
 10676 
 10677 	* input.cc (Vdrawnow_requested): New static variable.
 10678 	(F__request_drawnow__): New function.
 10679 	(interactive_input): New function.  Update Vlast_prompt_time here.
 10680 	(octave_gets, get_user_input, octave_yes_or_no):
 10681 	Call interactive_input instead of gnu_readline.
 10682 
 10683 	* symtab.h (symbol_record::eternal): New data member.
 10684 	(symbol_record::symbol_record): Initialize it.
 10685 	(symbol_record::make_eternal, symbol_record::is_eternal):
 10686 	Don't forward to symbol_def functions.
 10687 	(symbol_record::symbol_def::make_eternal,
 10688 	symbol_record::symbol_def::is_eternal): Delete.
 10689 	(symbol_record::symbol_def::eternal): Delete data member.
 10690 	(symbol_record::symbol_def::symbol_def): Delete initialization.
 10691 
 10692 	* pt-id.cc (tree_identifier::link_to_global): Include variable
 10693 	name in warning message.
 10694 
 10695 	* variables.cc (F__lock_global__): New function.
 10696 
 10697 	2007-01-11  John W. Eaton  <jwe@octave.org>
 10698 
 10699 	* ls-oct-ascii.cc (save_ascii_data_for_plotting, save_three_d):
 10700 	Set precision to 6 instead of 4.
 10701 
 10702 2007-01-29  David Bateman  <dbateman@free.fr>
 10703 
 10704 	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx): Don't panic if
 10705 	nargout is greater than 3.
 10706 
 10707 2007-01-24  John W. Eaton  <jwe@octave.org>
 10708 
 10709 	* pt-assgn.cc (former_built_in_variables): New static data.
 10710 	(maybe_warn_former_built_in_variable): New static function.
 10711 	(tree_simple_assignment::tree_simple_assignment,
 10712 	tree_multi_assignment::tree_multi_assignment):
 10713 	Move definition here from pt-assign.h
 10714 	Maybe warn about assignment to obsolete built-in variables.
 10715 
 10716 	* version.h (OCTAVE_STARTUP_MESSAGE): Mention "news" function.
 10717 
 10718 	* pt-stmt.cc (tree_statement::eval): Use dynamic_cast, not
 10719 	static_cast.
 10720 
 10721 	* help.cc (help_from_file): Show .oct or .mex file name if one
 10722 	exists in the same directory as the .m file.
 10723 
 10724 2007-01-23  Luis F. Ortiz  <lortiz@interactivesupercomputing.com>
 10725 
 10726 	* strfns.cc (Fstrncmp): New function.
 10727 
 10728 2007-01-17  John W. Eaton  <jwe@octave.org>
 10729 
 10730 	* help.cc (help_from_file, help_from_symbol_table, help_from_list):
 10731 	Rewrite using raw_ versions.
 10732 
 10733 2007-01-17  David Bateman  <dbateman@free.fr>
 10734 
 10735 	* help.cc (raw_help, raw_help_from_file,
 10736 	raw_help_from_symbol_table, raw_help_from_list): New functions.
 10737 	* help.h (raw_help): Provide decl.
 10738 
 10739 2007-01-16  John W. Eaton  <jwe@octave.org>
 10740 
 10741 	* DLD-FUNCTIONS/__pchip_deriv__.cc: Fix dpchim decl for --enable-64.
 10742 	(F__pchip_deriv__): Fix call to dpchim for --enable-64.
 10743 
 10744 	* DLD-FUNCTIONS/fftw.cc: Delete decl for fftw_planner.
 10745 
 10746 2007-01-11  Michael Goffioul  <michael.goffioul@swing.be>
 10747 
 10748 	* load-path.h (class load_path): Tag with OCTINTERP_API.
 10749 
 10750 	* ls-oct-binary.cc (read_binary_data): Use unsigned char, not
 10751 	char, for reading flags and data types.
 10752 
 10753 2007-01-10  Luis F. Ortiz  <lortiz@interactivesupercomputing.com>
 10754 
 10755 	* parse.y (load_fcn_from_file): Delete unused variable NAMES.
 10756 	If NM is absolute, strip directory and extension parts.
 10757 
 10758 2007-01-10  Michael Goffioul  <michael.goffioul@swing.be>
 10759 
 10760 	* DLD-FUNCTIONS/getrusage.cc: Use #ifdef __WIN32__, not __MINGW32__.
 10761 
 10762 2007-01-10  John W. Eaton  <jwe@octave.org>
 10763 
 10764 	* parse.y (load_fcn_from_file): Only compare last two characters
 10765 	when looking for ".m".
 10766 
 10767 2007-01-06  John W. Eaton  <jwe@octave.org>
 10768 
 10769 	* version.h (OCTAVE_CONFIG_STATEMENT): New macro
 10770 	(OCTAVE_NAME_AND_VERSION): Remove config info.
 10771 	(OCTAVE_NAME_VERSION_COPYRIGHT_COPYING_AND_WARRANTY):
 10772 	Use OCTAVE_CONFIG_STATEMENT here.
 10773 
 10774 2007-01-05  David Bateman  <dbateman@free.fr>
 10775 
 10776 	* Makefile.in (DLD_XSRC): Add fftw.cc and remove fftw_wisdom.cc
 10777 	* DLD-FUNCTIONS/fftw.cc: New file.
 10778 	* DLD-FUNCTIONS/fftw_wisdom.cc: Delete.
 10779 	* defaults.cc (Vfftw_wisdom_program): Delete variable.
 10780 	(set_default_fftw_wisdom_prog): Delete function that sets it.
 10781 	(install_defaults): Delete set_default_fftw_prog from defaults.
 10782 	(Ffftw_wisdom_program): Delete.
 10783 
 10784 2007-01-04  David Bateman  <dbateman@free.fr>
 10785 
 10786 	* ov-fcn-handle.cc (octave_fcn_handle::load_ascii,
 10787 	octave_fcn_handle::load_binary):
 10788 	Throw error if handle can't be created.
 10789 
 10790 2007-01-04  Luis F. Ortiz  <lortiz@interactivesupercomputing.com>
 10791 
 10792 	* mex.cc (mxArray_number::mxArray_number (int, const char **)):
 10793 	Correctly index LHS in assignment.
 10794 
 10795 2007-01-03  John W. Eaton  <jwe@octave.org>
 10796 
 10797 	* data.cc (Fisinteger): New function.
 10798 	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::is_integer_type,
 10799 	OCTAVE_VALUE_INT_SCALAR_T::is_integer_type): New function.
 10800 	* ov.h (octave_value::is_integer_type): New function.
 10801 	* ov-base.h (octave_base_value::is_integer_type): New virtual function.
 10802 
 10803 2007-01-03  Michael Goffioul  <michael.goffioul@swing.be>
 10804 
 10805 	* toplev.cc (Fsystem): Handle async calls on Windows systems.
 10806 
 10807 2007-01-03  David Bateman  <dbateman@free.fr>
 10808 
 10809 	* (OPERATORS/op-cm-scm.cc, OPERATORS/op-cm-sm.cc, 
 10810 	OPERATORS/op-cs-scm.cc, OPERATORS/op-cs-sm.cc, 
 10811 	OPERATORS/op-m-scm.cc, OPERATORS/op-m-sm.cc, 
 10812 	OPERATORS/op-scm-cm.cc, OPERATORS/op-scm-cs.cc, 
 10813 	OPERATORS/op-scm-m.cc, OPERATORS/op-scm-s.cc, 
 10814 	OPERATORS/op-scm-scm.cc, OPERATORS/op-scm-sm.cc, 
 10815 	OPERATORS/op-sm-cm.cc, OPERATORS/op-sm-cs.cc, 
 10816 	OPERATORS/op-sm-m.cc, OPERATORS/op-sm-s.cc, 
 10817 	OPERATORS/op-sm-scm.cc, OPERATORS/op-sm-sm.cc, 
 10818 	OPERATORS/op-s-scm.cc, OPERATORS/op-s-sm.cc):
 10819 	Modify div and ldiv functions so that scalars stored as sparse 
 10820 	matrices are special cased.
 10821 
 10822 	* ov-re-sparse.cc (double_value, complex_value): Scalar can be
 10823 	stored as a sparse matrix and so don't warn on implicit conversion
 10824 	to a scalar.
 10825 	* ov-cx-sparse.cc (double_value, complex_value): ditto.
 10826 	* ov-bool-sparse.cc (double_value, complex_value): ditto.
 10827 
 10828 2007-01-03  John W. Eaton  <jwe@octave.org>
 10829 
 10830 	* dynamic-ld.cc (octave_dynamic_loader::do_load_mex): Also check
 10831 	for _mexFunction.
 10832 
 10833 2006-12-30  John W. Eaton  <jwe@octave.org>
 10834 
 10835 	* ov-fcn-inline.cc: For compatibility, class id is
 10836 	"function_handle", not "inline function".
 10837 
 10838 2006-12-27  John W. Eaton  <jwe@octave.org>
 10839 
 10840 	* Makefile.in (%.df : %.cc): Insert a "do not edit" notice in the
 10841 	.df files.
 10842 
 10843 	* mex.cc (mxArray_matlab::get_class_name,
 10844 	mxArray_octave_value::get_class_id): Use "function_handle", not
 10845 	"function handle".
 10846 
 10847 2006-12-14  John W. Eaton  <jwe@octave.org>
 10848 
 10849 	* pt-decl.cc (tree_decl_elt::eval): New function.
 10850 	* pt-decl.h (tree_decl_elt::eval): Provide decl.
 10851 	(tree_decl_elt::is_defined, tree_decl_elt::lvalue_ok, 
 10852 	tree_decl_elt::mark_as_formal_parameter, tree_decl_elt::rvalue,
 10853 	tree_decl_elt::lvalue): New functions.
 10854 
 10855 	* pt-misc.h (class tree_parameter_list): Derive from
 10856 	octave_base_list<tree_decl_elt *> instead of
 10857 	octave_base_list<tree_identifier *>.
 10858 	(tree_parameter_list::tree_parameter_list (tree_identifier *)): Delete.
 10859 	(tree_parameter_list::tree_parameter_list (tree_decl_elt *)):
 10860 	New function.
 10861 	* pt-misc.cc (tree_parameter_list::mark_as_formal_parameters,
 10862 	tree_parameter_list::initialize_undefined_elements,
 10863 	tree_parameter_list::undefine, tree_parameter_list::dup,
 10864 	tree_parameter_list::convert_to_const_vector,
 10865 	tree_parameter_list::is_defined): Handle argument list elements
 10866 	as tree_decl_list objects instead of tree_identifier objects.
 10867 	(tree_parameter_list::define_from_arg_vector): Likewise.
 10868 	Always process entire list, setting default values if possible.
 10869 	Accept ":" to mean "use default argument".
 10870 
 10871 	* parse.y (param_list2): Use decl2 to recognize
 10872 	"identifier '=' expression" in addition to "identifier".
 10873 
 10874 	* parse.y (return_list1, make_anon_fcn_handle, finish_function):
 10875 	Adapt to new definition of tree_parameter_list.
 10876 	* pt-bp.cc (tree_breakpoint::visit_parameter_list): Likewise.
 10877 	* pt-check.cc (tree_checker::visit_parameter_list): Likewise.
 10878 	* pt-pr-code.cc (tree_print_code::visit_parameter_list): Likewise.
 10879 
 10880 2006-12-08  John W. Eaton  <jwe@octave.org>
 10881 
 10882 	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::array_value, 
 10883 	OCTAVE_VALUE_INT_MATRIX_T::complex_array_value, 
 10884 	OCTAVE_VALUE_INT_MATRIX_T::bool_array_value, 
 10885 	OCTAVE_VALUE_INT_MATRIX_T::char_array_value):
 10886 	Use fortran_vec to avoid expensive indexing operator.
 10887 
 10888 2006-12-08  David Bateman  <dbateman@free.fr>
 10889 
 10890 	* ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::matrix_value,
 10891 	OCTAVE_VALUE_INT_SCALAR_T::complex_matrix_value, 
 10892 	OCTAVE_VALUE_INT_MATRIX_T::matrix_value, 
 10893 	OCTAVE_VALUE_INT_MATRIX_T::comlex_matrix_value): New functions.
 10894 	(OCTAVE_VALUE_INT_MATRIX_T::array_value, 
 10895 	OCTAVE_VALUE_INT_MATRIX_T::comlex_array_value):
 10896 	Use octave_idx_type instead of int for indexing.
 10897 
 10898 2006-12-04  David Bateman  <dbateman@free.fr>
 10899 
 10900 	* xpow.cc (xpow (const Matrix&, double)): Add matrix type probing
 10901         to matrix inverse.
 10902         (xpow (const ComplexMatrix&, double)): ditto.
 10903         * DLD-FUNCTIONS/inv.cc (Finv): Add matrix type probing.
 10904 
 10905 2006-12-06  John W. Eaton  <jwe@octave.org>
 10906 
 10907 	* sysdep.cc: Include "Cell.h" here.
 10908 	* input.h: Include "oct-obj.h", not "ov-list.h".
 10909 
 10910 2006-12-06  Michael Goffioul  <michael.goffioul@swing.be>
 10911 
 10912 	* mappers.cc (install_mapper_functions): Undefine isascii before
 10913 	the DEFUN_MAPPER for it.
 10914 
 10915 	* input.cc (get_user_input): Prevent out of bounds array access
 10916 	when checking for EOL.
 10917 
 10918 2006-12-05  John W. Eaton  <jwe@octave.org>
 10919 
 10920 	* ls-oct-ascii.cc (extract_keyword): If no match and looking for
 10921 	more, skip to end of line before trying another match.
 10922 
 10923 	* pt-mat.cc (tm_row_const::empty): New function.
 10924 	(tm_const::init): Don't append anything if tmp tm_row_const object
 10925 	is empty.
 10926 	(tree_matrix::rvalue): Default return value is Matrix().
 10927 	Don't do anything if tmp tm_const object is empty.
 10928 
 10929 	* dirfns.cc (Fmkdir): Fix thinko in previous change.
 10930 
 10931 2006-12-05  Paul Kienzle  <pkienzle@users.sf.net>
 10932 
 10933 	* DLD-FUNCTIONS/rand.cc: Test for Poisson generator with lambda > 1e8.
 10934 
 10935 2006-12-04  David Bateman  <dbateman@free.fr>
 10936 
 10937 	* data.cc (Fdata): If ndims is greater than nargout and
 10938 	nargout is greater than 1, then collect size of trailing
 10939 	dimensions into retval(end).
 10940 
 10941 	* load-path.cc (load_path::do_find_fcn): Return empty string if
 10942 	tests fail.
 10943 
 10944         * ov-base-mat.cc (void octave_base_matrix<MT>::assign (const
 10945 	octave_value_list&, const MT&)): Invalidate matrix type on
 10946 	assignment.
 10947 
 10948 2006-11-30  John W. Eaton  <jwe@octave.org>
 10949 
 10950 	* DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom):
 10951 	Accept "r" or "w" for second argument.
 10952 
 10953 2006-11-29  John W. Eaton  <jwe@octave.org>
 10954 
 10955 	* DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Look in load-path
 10956 	if reading wisdom file, but not if writing.
 10957 
 10958 2006-11-28  John W. Eaton  <jwe@octave.org>
 10959 
 10960 	* mex.cc (mxArray_struct::get_field_by_number):
 10961 	Return 0 if key_num is out of range.
 10962 	(mxArray_struct::set_field_by_number):
 10963 	Do nothing if key_num is out of range.
 10964 	(mxArray_cell::get_cell, mxArray_cell::set_cell):
 10965 	Avoid out-of-bounds indexing
 10966 
 10967 2006-11-28  Luis F. Ortiz  <lortiz@interactivesupercomputing.com>
 10968 
 10969 	* mex.cc (mxArray_matlab::get_n, mxArray_octave_value::get_n):
 10970 	Return product of last N-1 dims.
 10971 
 10972 2006-11-28  John W. Eaton  <jwe@octave.org>
 10973 
 10974 	* lex.l (eat_whitespace): Also handle CRLF as EOL.
 10975 
 10976 	* dirfns.cc (Fmkdir): Handle "mkdir (parent, dir)".
 10977 
 10978 2006-11-21  John W. Eaton  <jwe@octave.org>
 10979 
 10980 	* load-path.cc (load_path::do_find_file,
 10981 	load_path::do_find_first_of, load_path::do_find_all_first_of): 
 10982 	Call rooted_pathname instead of absolute_pathname.
 10983 	* utils.cc (fcn_file_in_path, oct_file_in_path, mex_file_in_path):
 10984 	Likewise.
 10985 
 10986 2006-11-16  Michael Goffioul  <michael.goffioul@swing.be>
 10987 
 10988 	* oct-hist.cc (default_history_file): Instead of appending
 10989 	"/.octave_hist", append directory separator (but only if
 10990 	necessary), then ".octave_hist".
 10991 
 10992 2006-11-16  John W. Eaton  <jwe@octave.org>
 10993 
 10994 	* data.cc (Fresize): Fix doc string.
 10995 
 10996 2006-11-15  John W. Eaton  <jwe@octave.org>
 10997 
 10998 	* DLD-FUNCTIONS/__gnuplot_raw__.l (write_data, write_inline_data):
 10999 	New functions.
 11000 	(save_in_tmp_file): Use write_data.
 11001 	(gnuplot::send_inline_data, gnuplot_do_send_inline_data):
 11002 	New functions.
 11003 	(F__gnuplot_send_inline_data__, F__gnuplot_save_data__):
 11004 	New functions.
 11005 
 11006 	* ls-oct-ascii.cc (save_ascii_data_for_plotting):
 11007 	Call save_ascii_data with precision = 4.
 11008 	(save_three_d): Temporarily set precision to 4 for output stream.
 11009 
 11010 2006-11-15  Michael Goffioul  <michael.goffioul@swing.be>
 11011 
 11012 	* Cell.h (Cell): Tag class with OCTINTERP_API.
 11013 
 11014 2006-11-13  John W. Eaton  <jwe@octave.org>
 11015 
 11016 	* octave.cc (maximum_braindamage): Disable
 11017 	Octave:fopen-file-in-path and Octave:load-file-in-path warnings.
 11018 
 11019 	* load-save.cc (find_file_to_load): New function.
 11020 	(Fload): Call find_file_to_load to search load path for file.
 11021 
 11022 	* file-io.cc (Ffopen): Search load path for file.
 11023 
 11024 	* load-path.cc (path::do_find_first_of, path::do_find_file):
 11025 	Break out of all loops once file is found, not just innermost one.
 11026 
 11027 	* data.cc (Fsize_equal): New function.
 11028 
 11029 2006-11-13  Michael Goffioul  <michael.goffioul@swing.be>
 11030 
 11031 	* ov.cc (check_subsref_elements, Fsubsref, Fsubsasgn):
 11032 	New functions.
 11033 
 11034 	* ov-re-mat.h, ov-scalar.h, pr-output.h:
 11035 	Sprinkle with OCTINTERP_API as needed.
 11036 
 11037 2006-11-11  John W. Eaton  <jwe@octave.org>
 11038 
 11039 	* Makefile.in (parse.cc): Avoid creating empty files.
 11040 	(%.df : %cc, builtins.cc, mkbuiltins, PKG_ADD, DOCSTRINGS,
 11041 	doc-files, gendoc.cc, ops.cc, $(OPT_HANDLERS), oct-errno.cc,
 11042 	oct-gperf.h): Use $(simple-move-if-change-rule) here.
 11043 	(lex.cc, __gnuplot_raw__.cc):
 11044 	Use $(destdir-move-if-change-rule) here.
 11045 	(ifndef omit_deps): Don't include stamp-prereq here.
 11046 	($(DEF_FILES), $(MAKEDEPS)): Also depend on stamp-prereq.
 11047 
 11048 2006-11-10  John W. Eaton  <jwe@octave.org>
 11049 
 11050 	* ov-str-mat.cc (octave_char_matrix_str::load_ascii,
 11051 	octave_char_matrix_str::load_binary):
 11052 	Use chMatrix as buffer instead of C string.
 11053 
 11054 2006-11-09  John W. Eaton  <jwe@octave.org>
 11055 
 11056 	* ov-usr-fcn.h (octave_user_function::inline_function):
 11057 	 New data member.
 11058 	(octave_user_function::mark_as_inline_function): Set it.
 11059 	(octave_user_function::is_inline_function): Check it.
 11060 	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
 11061 	Also skip setting curr_parent_fucntion if evaluating an inline
 11062 	function.
 11063 	(octave_user_function::octave_user_function):
 11064 	 Initialize inline_function.
 11065 	* pt-fcn-handle.cc (tree_anon_fcn_handle::rvalue):
 11066 	Mark user function as inline here.
 11067 
 11068 2006-11-09  Michael Goffioul  <michael.goffioul@swing.be>
 11069 
 11070 	* load-path.cc (load_path::move): Don't use reference to file_info
 11071 	object that will be erased.
 11072 
 11073 2006-11-07  John W. Eaton  <jwe@octave.org>
 11074 
 11075 	* utils.cc (file_in_path): Don't unconditionally return "".
 11076 
 11077 	* pager.cc (default_pager): Don't append options here.
 11078 	(pager_command): New function.
 11079 	(do_sync): Use it.
 11080 	(VPAGER_FLAGS): New variable.
 11081 	(FPAGER_FLAGS): New function.
 11082 
 11083 2006-11-06  John W. Eaton  <jwe@octave.org>
 11084 
 11085 	* oct-hist.cc (default_history_file): If env_file is not empty,
 11086 	just accept it rather than checking to see if it exists.
 11087 
 11088 2006-11-03  Bill Denney  <denney@seas.upenn.edu>
 11089 
 11090 	* help.cc (keywords): Document try and unwind_protect.
 11091 
 11092 2006-11-03  John W. Eaton  <jwe@octave.org>
 11093 
 11094 	* Makefile.in (DLL_CXXDEFS): Rename from XTRA_CXXDEFS.
 11095 	(DLL_CDEFS): Rename from XTRA_CDEFS.
 11096 	Substitute OCTINTERP_DLL_DEFS, not XTRA_OCTINTERP_DEFS.
 11097 
 11098 2006-11-02  Michael Goffioul  <michael.goffioul@swing.be>
 11099 
 11100 	* sysdep.cc (MSVC_init): Also cal w32_sigint_init and
 11101 	w32_set_quiet_shutdown.
 11102 
 11103 2006-11-01  John W. Eaton  <jwe@octave.org>
 11104 
 11105 	* ov.h (octave_value::idx_type_value): New function.
 11106 	* data.cc (fill_matrix, Flinspace, Freshape): Use idx_type_value
 11107 	instead of int_value to extract size args.
 11108 
 11109 2006-10-31  John W. Eaton  <jwe@octave.org>
 11110 
 11111 	* ov-range.h (octave_range::empty_clone): Return octave_matrix
 11112 	object instead of octave_range.
 11113 
 11114 2006-10-29  Juhani Saastamoinen  <juhani@cs.joensuu.fi>
 11115 
 11116 	* ls-mat5.cc (read_mat5_tag): Declare bytes as int32_t, not just int. 
 11117 
 11118 2006-10-28  John W. Eaton  <jwe@octave.org>
 11119 
 11120 	* toplev.cc (Fatexit): Push function names on the stack even if we
 11121 	don't have atexit or on_exit.
 11122 
 11123 2006-10-28  Michael Goffioul  <michael.goffioul@swing.be>
 11124 
 11125 	* mappers.cc (install_mapper_functions): Undefine toascii before
 11126 	the DEFUN_MAPPER for it.
 11127 
 11128 2006-10-27  John W. Eaton  <jwe@octave.org>
 11129 
 11130 	* mexproto.h: Include oct-dlldefs.h.
 11131 
 11132 	* pr-output.cc (SPECIALIZE_UABS): New macro.
 11133 	Use it to generate specializations of abs for unsigned int types.
 11134 	Instantiate abs for signed int types.
 11135 
 11136 	* load-path.cc (load_path::do_initialize):
 11137 	Use dir_path::path_sep_str instead of ":".
 11138 	Don't append ":::" to xpath when calling do_set.
 11139 
 11140 	* dirfns.cc (Fls, cleanup_iprocstream): Delete.
 11141 
 11142 	* sysdep.cc (Ftilde_expand): If arg is cellstr, return cellstr.
 11143 
 11144 	* ov.h (octave_value::is_cellstr): New function.
 11145 	* ov-base.h (octave_base_value::is_cellstr): New function.
 11146 	* ov-cell.h (octave_cell::is_cellstr): New function.
 11147 	* ov-cell.cc (Fiscellstr): Implement with is_cellstr.
 11148 	* Cell.cc (Cell::Cell (const dim_vector&, const string_vector&, bool)): 
 11149 	New constructor.
 11150 	(Cell::is_cellstr): New function.
 11151 	* Cell.h: Provide decls.
 11152 
 11153 	* defaults.cc (subst_octave_home): If dir_sep_char is not '/',
 11154 	replace before returning.
 11155 	From Michael Goffioul <michael.goffioul@swing.be>.
 11156 
 11157 2006-10-26  John W. Eaton  <jwe@octave.org>
 11158 
 11159 	* cutils.c (octave_strcasecmp, octave-strncasecmp):
 11160 	Move to liboctave/lo-cutils.c.
 11161 	* utils.h: Delete decls.
 11162 	* strcasecmp.c: Move to liboctave/strcasecmp.c.
 11163 	* strncase.c: Move to liboctave/strncase.c.
 11164 	* Makefile.in (DIST_SRC): Delete them from the list.
 11165 
 11166 	* bitfcns.cc (bitshift): If A < 0, return -bitshift (-A, N, MASK).
 11167 
 11168 2006-10-26  Michael Goffioul  <michael.goffioul@swing.be>
 11169 
 11170 	* help.cc (display_help_text): Quote sed patterns with ".
 11171 
 11172 	* file-io.cc: Include file-io.h.
 11173 
 11174 	* TEMPLATE-INST/Array-os.cc, TEMPLATE-INST/Array-sym.cc,
 11175 	TEMPLATE-INST/Array-tc.cc, defun-int.h, error.h, file-io.h,
 11176 	gripes.h, ls-oct-ascii.h, mexproto.h, oct-map.h, oct-obj.h,
 11177 	oct-stream.cc, oct-stream.h, octave.h, ov-base.h,
 11178 	ov-bool-sparse.cc, ov-bool-sparse.h, ov-cx-sparse.cc,
 11179 	ov-cx-sparse.h, ov-fcn.h, ov-re-sparse.cc, ov-re-sparse.h,
 11180 	ov-str-mat.h, ov-typeinfo.cc, ov-typeinfo.h, ov.h, pager.h,
 11181 	parse.h, pr-output.cc, pr-output.h, procstream.h, sighandlers.h,
 11182 	symtab.h, unwind-prot.h, utils.h, variables.h:
 11183 	Sprinkle with OCTINTERP_API as needed.
 11184 
 11185 2006-10-26  John W. Eaton  <jwe@octave.org>
 11186 
 11187 	* ov-bool.h (octave_bool::sparse_matrix_value,
 11188 	octave_bool::sparse_complex_matrix_value
 11189 	octave_bool::sparse_bool_matrix_value): New functions.
 11190 
 11191 2006-10-25  John W. Eaton  <jwe@octave.org>
 11192 
 11193 	* sighandlers.cc: Check defined (RETSIGTYPE_IS_VOID) instead of
 11194 	RETSIGTYPE == void.
 11195 
 11196 	* oct-procbuf.cc (BUFSIZ): Define if not already defined.
 11197 	(octave_procbuf::open): Pass BUFSIZ as size argument to setvbuf.
 11198 
 11199 2006-10-25  Michael Goffioul  <michael.goffioul@swing.be>
 11200 
 11201 	* Makefile.in (XTRA_CDEFS, XTRA_CXXDEFS): Substitute here.
 11202 
 11203 	* oct-procbuf.cc [_MSC_VER]: Define W32POPEN and W32PCLOSE the
 11204 	same as for __MINGW32__.
 11205 	(octave_procbuf::open, octave_procbuf::close) [_MSC_VER]:
 11206 	Use the same code as for __MINGW32__ and __CYGWIN__.
 11207 
 11208 	* oct-prcstrm.cc [_MSC_VER]: Define popen and pclose.
 11209 
 11210 2006-10-25  John W. Eaton  <jwe@octave.org>
 11211 
 11212 	* sysdep.cc (w32_set_octave_home): Correctly initialize bin_dir.
 11213 	Fill it with '\0' instead of ' '.
 11214 
 11215 2006-10-24  Michael Goffioul  <michael.goffioul@swing.be>
 11216 
 11217 	* Makefile.in: Filter out $(XTRA_CXXDEFS) from $(ALL_CXXFLAGS) for
 11218 	$(DLD_PICOBJ).
 11219 
 11220 2006-10-24  John W. Eaton  <jwe@octave.org>
 11221 
 11222 	* sysdep.cc (MSC_init): New function.
 11223 	(sysdep_init): Call it.
 11224 	(w32_set_octave_home): New function, based on code from Michael
 11225 	Goffioul <michael.goffioul@swing.be>.
 11226 	(MINGW_init): Call w32_set_octave_home here too.
 11227 
 11228 2006-10-23  John W. Eaton  <jwe@octave.org>
 11229 
 11230 	* symtab.cc (symbol_table::clear_mex_functions): New function.
 11231 	* symtab.h: Provide decl.
 11232 	* vriables.cc (clear_mex_functions): New function.
 11233 	* variables.h Provide decl.
 11234 	* toplev.cc: Call clear_mex_functions instead of delete_symbol_tables.
 11235 
 11236 	* variables.cc (delete_symbol_tables): Delete.
 11237 	* variables.h: Delete decl.
 11238 
 11239 	* mex.cc (mex::unmark_array): New function.
 11240 	(mex::persistent): Define with unmark_array.
 11241 	(maybe_unmark_array): New function.
 11242 	(mxArray_struct::set_field_by_number, mxArray_cell::set_cell):
 11243 	Call maybe_unmark_array on val to avoid freeing val twice on exit
 11244 	from mex function.
 11245 	(mxFree): Call xfree, not free.
 11246 
 11247 2006-10-21  John W. Eaton  <jwe@octave.org>
 11248 
 11249 	* ov-intx.h
 11250 	(OCTAVE_VALUE_INT_MATRIX_T::OCTAVE_TYPE_PREDICATE_FUNCTION,
 11251 	(OCTAVE_VALUE_INT_SCALAR_T::OCTAVE_TYPE_PREDICATE_FUNCTION):
 11252 	Function is now const, so it properly overloads method in base
 11253 	class.
 11254 
 11255 	* mex.cc (mxArray_octave_value::is_uint32):
 11256 	Call val.is_uint32_type, not val.is_int32_type.
 11257 	(mxArray_octave_value::is_uint64):
 11258 	Call val.is_uint64_type, not val.is_int64_type.
 11259 	(mxArray_octave_value::is_uint8):
 11260 	Call val.is_uint8_type, not val.is_int8_type.
 11261 
 11262 2006-10-20  Paul Kienzle  <pkienzle@users.sf.net>
 11263 
 11264 	* ov-mex-fcn.h (octave_mex_function::atexit): New function.
 11265 	(octave_mex_function::exit_fcn_ptr): New data member.
 11266 	* ov-mex-fcn.cc (octave_mex_function::exit_fcn_ptr): New data member.
 11267 	(octave_mex_function::octave_mex_function): Initialize it.
 11268 	(octave_mex_function::~octave_mex_function):
 11269 	If we have an exit function, call it.
 11270 
 11271 2006-10-20  John W. Eaton  <jwe@octave.org>
 11272 
 11273 	* variables.cc (delete_symbol_tables): New function.
 11274 	* variables.h: Provide decl.
 11275 	* toplev.cc (do_octave_atexit): Call it.
 11276 
 11277 	* mex.cc (mex::mex): New arg, a pointer to the current mex function.
 11278 	(mex::curr_mex_fcn): New data member.
 11279 	(mex::current_mex_function): New function.
 11280 	(mexAtExit): Set exit function pointer in current mex file object.
 11281 
 11282 2006-10-20  Paul Kienzle  <pkienzle@users.sf.net>
 11283 
 11284 	* mex.cc (enum callstyle): Delete enum definition.
 11285 	(Fortran_mex, C_mex): Delete functions.
 11286 	(call_mex): First arg is now bool.
 11287 	* ov-mex-fcn.cc (call_mex): Fix decl to match new definition.
 11288 	(Fortran_mex, C_mex): Delete decls.
 11289 	(octave_mex_function::do_multi_index_op): Simplify call to call_mex.
 11290 
 11291 2006-10-20  John W. Eaton  <jwe@octave.org>
 11292 
 11293 	* lex.l (handle_identifier): If a command name is found, skip
 11294 	starting command mode if parsing an object index.
 11295 
 11296 2006-10-20  David Bateman  <dbateman@free.fr>
 11297 
 11298 	* DLD-FUNCTION/spqr.cc (dmperm_internal): New function with core
 11299 	of Fdmperm.
 11300 	(Fdmperm): Call dmperm_internal rather then calculating loally.
 11301 	(Fsprank): New function to calculate the strutural rank also using
 11302 	dmperm_internal.
 11303 
 11304 2006-10-19  John W. Eaton  <jwe@octave.org>
 11305 
 11306 	* ov-struct.cc (octave_struct::as_mxArrary):
 11307 	Use OCTAVE_LOCAL_BUFFER to allocate tempoarary array of field names.
 11308 
 11309 	* mxarray.h (mxArray::persistent): Delete var and all uses.
 11310 	(mxArray::mark_persistent, mxArray::unmark_persistent,
 11311 	mxArray::is_persistent): Delete functions.
 11312 	* mex.cc (mex::function_name): Use mxArray::strsave, not strsave.
 11313 	(mex::mark_array): New function.
 11314 	(mex::make_value): Use it.
 11315 	(mex::free_value): Return true if we found ptr in arraylist.
 11316 	(mex::persistent (mxArray *)): Remove ptr from arraylist instead
 11317 	of marking it as persistent.
 11318 	(mxArray::malloc): Call ::malloc instead of malloc.
 11319 	(mxArray::calloc): Call ::calloc instead of calloc.
 11320 	(maybe_mark_array): New function.
 11321 	(mxCreateCellArray, mxCreateCellMatrix, mxCreateCharArray,
 11322 	mxCreateCharMatrixFromStrings, mxCreateDoubleMatrix,
 11323 	mxCreateDoubleScalar, mxCreateLogicalArray, mxCreateLogicalMatrix,
 11324 	mxCreateLogicalScalar, mxCreateNumericArray,
 11325 	mxCreateNumericMatrix, mxCreateSparse,
 11326 	mxCreateSparseLogicalMatrix, mxCreateString, mxCreateStructArray,
 11327 	mxCreateStructMatrix, mxDuplicateArray): Use it.
 11328 	(mxDestroyArray): No need to check persistence now.
 11329 	Also delete ptr if mex_context->free_value does not.
 11330 	(call_mex): No need to delete elements of argout now.
 11331 
 11332 2006-10-18  John W. Eaton  <jwe@octave.org>
 11333 
 11334 	* dynamic-ld.cc (octave_shlib_list::remove,
 11335 	octave_shlib_list::do_remove, octave_mex_file_list::remove,
 11336 	octave_mex_file_list::do_remove): New arg, cl_hook.
 11337 	(octave_shlib_list::do_remove): Pass cl_hook to octave_shlib close
 11338 	function.
 11339 	(octave_dynamic_loader::do_load_oct): Don't call close on shl
 11340 	directly.  Pass do_clear_function to octave_shlib_list::remove.  
 11341 
 11342 	* mex.cc (mexUnlock): Don't warn if unlocking a function that is
 11343 	not locked.
 11344 
 11345 	* pt-fcn-handle.cc (tree_anon_fcn_handle::dup):
 11346 	Correctly duplicate symbol table info.
 11347 
 11348 2006-10-17  Michael Goffioul  <michael.goffioul@swing.be>
 11349 
 11350 	* oct-map.h: Include <algorithm>.
 11351 
 11352 2006-10-16  John W. Eaton  <jwe@octave.org>
 11353 
 11354 	* oct-stream.cc (octave_stream_list::do_remove): Handle "all" as a
 11355 	special case.
 11356 
 11357 2006-10-13  Michael Goffioul  <michael.goffioul@swing.be>
 11358 
 11359 	* Makefile.in: Adapt rules to use $(LIBPRE).
 11360 
 11361 2006-10-11  John W. Eaton  <jwe@octave.org>
 11362 
 11363 	* mex.h (UINT64_T, uint64_T, INT64_T, int64_T, UINT32_T, uint32_T,
 11364 	INT32_T, int32_T, UINT16_T, uint16_T, INT16_T, int16_T, UINT8_T,
 11365 	uint8_T, INT8_T, int8_T): Conditionally define.
 11366 	From Andy Adler <adler@site.uottawa.ca>.
 11367 
 11368 2006-10-09  John W. Eaton  <jwe@octave.org>
 11369 
 11370 	* oct-conf.h.in (OCTAVE_CONF_CURL_LIBS): Substitute.
 11371 	* toplev.cc (octave_config_info): Add CURL_LIBS to the list.
 11372 
 11373 2006-10-09  Alexander Barth  <abarth@marine.usf.edu>
 11374 
 11375 	* DLD-FUNCTIONS/urlwrite.cc: New file providing urlwrite and urlread.
 11376 
 11377 2006-10-09  John W. Eaton  <jwe@octave.org>
 11378 
 11379 	* pt-mat.cc (tree_matrix::dup): Append new elements to new matrix.
 11380 	* pt-cell.cc (tree_cell::dup): Append new elements to new cell array.
 11381 
 11382 2006-10-04  John W. Eaton  <jwe@octave.org>
 11383 
 11384 	* version.h (OCTAVE_VERSION): Now 2.9.9+.
 11385 
 11386 	* DLD-FUNCTIONS/__gnuplot_raw__.l (F__clear_plot_window__):
 11387 	Rename from Fclearplot.  Only clear plot window.
 11388 
 11389 2006-10-03  John W. Eaton  <jwe@octave.org>
 11390 
 11391 	* DLD-FUNCTIONS/luinc.cc (Fluinc): Avoid crash if SparseLU or
 11392 	SparseComplexLU constructor fails.
 11393 
 11394 	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx):
 11395 	Delete unused variable.
 11396 
 11397 2006-10-03  David Bateman  <dbateman@free.fr>
 11398 
 11399 	* Makefile.in (OCT_LINK_DEPS) Include $(CAMD_LIBS) in the list.
 11400 	(octave$(EXEEXT)): Include $(CAMD_LIBS) in link command.
 11401 
 11402 2006-10-02  John W. Eaton  <jwe@octave.org>
 11403 
 11404 	* version.h (OCTAVE_VERSION): Now 2.9.9.
 11405 	(OCTAVE_API_VERSION): Now api-v22.
 11406 	(OCTAVE_RELEASE_DATE): Now 2006-10-02.
 11407 
 11408 	* pr-output.cc (pr_plus_format): Use "inline" instead of "static
 11409 	inline" for template functions to avoid problems when not
 11410 	compiling with 	g++.
 11411 
 11412 	* mex.cc (call_mex): Delete elements of argout.
 11413 	From Kai Labusch <labusch@inb.uni-luebeck.de>.
 11414 
 11415 2006-09-29  John W. Eaton  <jwe@octave.org>
 11416 
 11417 	* DLD-FUNCTIONS/spfind.cc (sparse_find_non_zero_elem_idx):
 11418 	Leading dimension is NR, not NC.
 11419 
 11420 	* Makefile.in (DEP_5): Include oct-errno.cc in the list.
 11421 
 11422 2006-09-27  John W. Eaton  <jwe@octave.org>
 11423 
 11424 	* pr-output.cc (abs): New template function.  Instantiate for
 11425 	unsigned types.
 11426 
 11427 2006-09-27  David Bateman  <dbateman@free.fr>
 11428 
 11429 	* file-io.cc (Fsprintf): If fmt is an sq_string, return an sq_string.
 11430 
 11431 	* DLD-FUNCTIONS/sparse.cc (spfind, sparse_find): Delete.
 11432 	* DLD-FUNCTIONS/spfind.cc: New file implementating compatible
 11433 	sparse find function.
 11434 	* Makefile.in (DLD_XSRC): Add spfind.cc.
 11435 	
 11436 2006-09-26  Bill Denney  <bill@givebillmoney.com>
 11437 
 11438 	* DLD-FUNCTIONS/find.cc (find_nonzero_elem_idx, Ffind):
 11439 	Handle direction and limit on number of elements to find.
 11440 
 11441 2006-09-26  John W. Eaton  <jwe@octave.org>
 11442 
 11443 	* error.cc (warning_1): Call error_2, not error.
 11444 
 11445 2006-09-15  John W. Eaton  <jwe@octave.org>
 11446 
 11447 	* ops.h (DEFSTRDBLCONVFN): New arg, TFROM.
 11448 	* OPERATORS/op-double-conv.cc: Declare and install sq_string
 11449 	conversions too.
 11450 
 11451 	* ov-base-int.cc (octave_base_int_scalar<T>::convert_to_str_internal,
 11452 	octave_base_int_matrix<T>::convert_to_str_internal):
 11453 	New functions.
 11454 	* ov-base-int.h: Provide decls.
 11455 
 11456 2006-09-15  Søren Hauberg  <soren@hauberg.org>.
 11457 
 11458 	* data.cc (Fsize): If nargout > ndims, fill with 1.
 11459 
 11460 2006-09-15  John W. Eaton  <jwe@octave.org>
 11461 
 11462 	* octave.cc: Fix xerbla decl.
 11463 
 11464 2006-09-13  John W. Eaton  <jwe@octave.org>
 11465 
 11466 	* DLD-FUNCTIONS/cellfun.cc: Improve error message for uniform
 11467 	output case when results are not scalars.  Avoid shadow decls.
 11468 
 11469 2006-09-13  David Bateman  <dbateman@free.fr>
 11470 
 11471 	* ov-scalar.h (octave_scalar::sparse_matrix_value,
 11472 	octave_scalar::sparse_complex_matrix_value): New extractor functions.
 11473 	* ov-complex.h (octave_complex::sparse_matrix_value,
 11474 	octave_complex::sparse_complex_matrix_value): Ditto.
 11475 	* DLD-FUNCTIONS/spkron.cc (Fspkron): Change example in help.
 11476 
 11477 2006-09-12  David Bateman  <dbateman@free.fr>
 11478 
 11479 	* DLD-FUNCTIONS/cellfun.cc (Fcellfun): Allow matlab compatiable
 11480 	'UniformOutput' and 'ErrorHandler' options.  Change output when
 11481 	called with function handler or inline function to by default have
 11482 	'UniformOutput' set to true.  Allow functions with multiple inputs
 11483 	and outputs. Add test code.  Replace some int with octave_idx_type.
 11484 	(Fnum2cell): Replace some int with octave_idx_type.  Add test code.
 11485 	
 11486 2006-09-11  Yozo Hida  <yozo@cs.berkeley.edu>
 11487 
 11488 	* DLD-FUNCTIONS/gcd.cc (Fgcd): Extend range by using std::floor
 11489 	instead of converting to int.
 11490 
 11491 2006-09-05  John W. Eaton  <jwe@octave.org>
 11492 
 11493 	* mex.cc (mxArray_sparse::as_octave_value): Cast nzmax to
 11494 	octave_idx_type for sparse matrix constructors.
 11495 
 11496 2006-09-01  John W. Eaton  <jwe@octave.org>
 11497 
 11498 	* dirfns.cc: Don't handle nargout == 0 as a special case.
 11499 	(octave_change_to_directory): Perform tilde expansion on directory
 11500 	name here.
 11501 
 11502 2006-08-30  John W. Eaton  <jwe@octave.org>
 11503 
 11504 	* load-save.cc (get_file_format): Fix misplaced #endif.
 11505 
 11506 2006-08-29  John W. Eaton  <jwe@octave.org>
 11507 
 11508 	* load-path.cc (execute_pkg_add_or_del):
 11509 	Source PKG_ADD or PKG_DEL in base workspace.
 11510 	* parse.y (source_file): New optional arg, context.
 11511 	* parse.h (source_file): Fix decl.
 11512 
 11513 2006-08-25  John W. Eaton  <jwe@octave.org>
 11514 
 11515 	* version.h (OCTAVE_VERSION): Now 2.9.8+.
 11516 
 11517 2006-08-24  John W. Eaton  <jwe@octave.org>
 11518 
 11519 	* version.h (OCTAVE_VERSION): Now 2.9.8.
 11520 	(OCTAVE_API_VERSION): Now api-v21.
 11521 	(OCTAVE_RELEASE_DATE): Now 2006-08-24.
 11522 
 11523 2006-08-23  John W. Eaton  <jwe@octave.org>
 11524 
 11525 	* ov.h (octave_value::save_ascii): Delete strip_nan_and_inf arg.
 11526 	* ov-base.h, ov-base.cc (octave_base_value::save_ascii): Likewise.
 11527 	* ov-base-int.h, ov-base-int.cc	(octave_base_int_matrix<T>::save_ascii,
 11528 	octave_base_int_scalar<T>::save_ascii, ): Likewise.
 11529 	* ov-base-sparse.cc, ov-base-sparse.h
 11530 	(octave_base_sparse<T>::save_ascii): Likewise.
 11531 	* ov-bool-mat.cc, ov-bool-mat.h (octave_bool_matrix::save_ascii):
 11532 	Likewise.
 11533 	* ov-bool.cc, ov-bool.h (octave_bool::save_ascii): Likewise.
 11534 	* ov-cell.cc, ov-cell.h (octave_cell::save_ascii): Likewise.
 11535 	* ov-complex.cc, ov-complex.h (octave_complex::save_ascii): Likewise.
 11536 	* ov-fcn-handle.cc, ov-fcn-handle.h (octave_fcn_handle::save_ascii):
 11537 	Likewise.
 11538 	* ov-fcn-inline.cc, ov-fcn-inline.h (octave_fcn_inline::save_ascii):
 11539 	Likewise.
 11540 	* ov-list.cc, ov-list.h (octave_list::save_ascii): Likewise.
 11541 	* ov-range.cc, ov-range.h (octave_range::save_ascii): Likewise.
 11542 	* ov-scalar.cc, ov-scalar.h (octave_scalar::save_ascii): Likewise.
 11543 	* ov-str-mat.cc, ov-str-mat.h (octave_char_matrix_str::save_ascii):
 11544 	Likewise.
 11545 	* ov-struct.cc, ov-struct.h (octave_struct::save_ascii): Likewise.
 11546 	* ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise.
 11547 	* ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii):
 11548 	Likewise.
 11549 	* ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii):
 11550 	Likewise.
 11551 	* ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise.
 11552 
 11553 	* ls-oct-ascii.cc, ls-oct-ascii.h (save_ascii_data):
 11554 	Delete strip_nan_and_inf arg.
 11555 	(save_ascii_data_for_plotting): Delete strip_nan_and_inf arg from
 11556 	call to save_ascii_data.
 11557 
 11558 	* DLD-FUNCTIONS/__gnuplot_raw__.l (handle_using): Accept "(EXPR)"
 11559 	as components of using clauses.
 11560 	(enum _toktype): New element DOLLAR.
 11561 	Accept "$" in lexer.
 11562 
 11563 	* ls-oct-ascii.cc (save_ascii_data): Delete arg strip_nan_and_inf.
 11564 	Change all uses.
 11565 
 11566 	* ls-oct-ascii.h (save_three_d): Provide decl.
 11567 	* load-save.h (save_ascii_data_for_plotting, save_three_d):
 11568 	Delete decls.
 11569 
 11570 2006-08-22  John W. Eaton  <jwe@octave.org>
 11571 
 11572 	* ov.h (octave_value::save_ascii): strip_nan_and_inf is now int,
 11573 	not bool.
 11574 	* ov-base.h, ov-base.cc (octave_base_value::save_ascii): Likewise.
 11575 	* ov-base-int.h, ov-base-int.cc	(octave_base_int_matrix<T>::save_ascii,
 11576 	octave_base_int_scalar<T>::save_ascii, ): Likewise.
 11577 	* ov-base-sparse.cc, ov-base-sparse.h
 11578 	(octave_base_sparse<T>::save_ascii): Likewise.
 11579 	* ov-bool-mat.cc, ov-bool-mat.h (octave_bool_matrix::save_ascii):
 11580 	Likewise.
 11581 	* ov-bool.cc, ov-bool.h (octave_bool::save_ascii): Likewise.
 11582 	* ov-cell.cc, ov-cell.h (octave_cell::save_ascii): Likewise.
 11583 	* ov-complex.cc, ov-complex.h (octave_complex::save_ascii): Likewise.
 11584 	* ov-fcn-handle.cc, ov-fcn-handle.h (octave_fcn_handle::save_ascii):
 11585 	Likewise.
 11586 	* ov-fcn-inline.cc, ov-fcn-inline.h (octave_fcn_inline::save_ascii):
 11587 	Likewise.
 11588 	* ov-list.cc, ov-list.h (octave_list::save_ascii): Likewise.
 11589 	* ov-range.cc, ov-range.h (octave_range::save_ascii): Likewise.
 11590 	* ov-scalar.cc, ov-scalar.h (octave_scalar::save_ascii): Likewise.
 11591 	* ov-str-mat.cc, ov-str-mat.h (octave_char_matrix_str::save_ascii):
 11592 	Likewise.
 11593 	* ov-struct.cc, ov-struct.h (octave_struct::save_ascii): Likewise.
 11594 	* ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii): Likewise.
 11595 	* ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii):
 11596 	Likewise.
 11597 
 11598 	* ov-cx-mat.cc, ov-cx-mat.cc (octave_complex_matrix::save_ascii):
 11599 	Don't strip Inf and NaN here.  Call ComplexMatrix::save_ascii to
 11600 	do the real work.
 11601 	* ov-re-mat.cc, ov-re-mat.cc (octave_matrix::save_ascii):
 11602 	Don't strip Inf and NaN here.  Call Matrix::save_ascii to do the
 11603 	real work.
 11604 
 11605 	* ov-re-mat.cc, ov-cx-mat.cc (strip_infnan): Delete.
 11606 	* ls-oct-ascii.cc, ls-oct-ascii.h (save_ascii_data):
 11607 	strip_nan_and_inf is now int, not bool.
 11608 	(strip_infnan): Delete.
 11609 	(save_ascii_data_for_plotting): Call save_ascii_data with
 11610 	strip_nan_and_inf = 2.
 11611 
 11612 	* Makefile.in (INCLUDES): Remove matrix.h from the list.
 11613 
 11614 2006-08-22  David Bateman  <dbateman@free.fr>
 11615 
 11616 	* sparse-xpow.cc: Replace all uses of pow by std::pow.
 11617 	(elem_pow): Simplify for two sparse matrices arguments.
 11618 
 11619 2006-08-22  John W. Eaton  <jwe@octave.org>
 11620 
 11621 	* ls-oct-ascii.cc: Increase default value of save_precision to 16.
 11622 
 11623 	* ls-mat-ascii.cc (save_mat5_ascii_data): Use scientific format.
 11624 
 11625 2006-08-21  John W. Eaton  <jwe@octave.org>
 11626 
 11627 	* ls-mat5.cc (read_mat5_binary_data, read_mat5_integer_data,
 11628 	write_mat5_array): Unconditionally enable code for 64-bit int types.
 11629 
 11630 	* ov-fcn-handle.cc (DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA):	
 11631 	For compatibility, set class to function_handle.
 11632 
 11633 2006-08-18  John W. Eaton  <jwe@octave.org>
 11634 
 11635 	* pr-output.cc (set_real_matrix_format): Also always include space
 11636 	for sign if values are int, inf, or nan.
 11637 	(set_complex_format, set_complex_matrix_format): Always include
 11638 	space for sign in real format, but never in imaginary format.
 11639 
 11640 	* gripes.cc (gripe_logical_conversion): New function.
 11641 	* gripes.h: Provide decl.
 11642 	* ov.h (octave_value::bool_value, octave_value::bool_matrix_value,
 11643 	octave_value::bool_array_value): New arg, warn.
 11644 	* ov-base.cc, ov-base.h (octave_base_value::bool_value,
 11645 	octave_base_value::bool_matrix_value, 
 11646 	octave_base_value::bool_array_value): Likewise.
 11647 	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value,
 11648 	OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): Likewise.
 11649 	* ov-range.h (octave_range::bool_array_value): Likewise.
 11650 	* ov-re-mat.cc, ov-re-mat.h (octave_matrix::bool_array_value):
 11651 	Likewise.
 11652 	* ov-re-sparse.cc, ov-re-sparse.h
 11653 	(octave_sparse_matrix::bool_array_value): Likewise.
 11654 	* ov-scalar.h (octave_scalar::bool_value,
 11655 	octave_scalar::bool_array_value): Likewise.
 11656 	* OPERATORS/op-bm-b.cc (oct_assignop_conv_and_assign):
 11657 	Ask for warning from bool_array_value.
 11658 	* OPERATORS/op-bm-bm.cc (oct_assignop_conv_and_assign): Likewise.
 11659 	* ov-bool.h (octave_bool::bool_value,
 11660 	octave_bool::bool_matrix_value, octave_bool::bool_array_value):
 11661 	Likewise.
 11662 	* ov-bool-mat.h (octave_bool_matrix::bool_matrix_value,
 11663 	octave_bool_matrix::bool_array_value): Likewise.
 11664 	* ov-bool-sparse.cc, ov-bool-sparse.h
 11665 	(octave_sparse_bool_matrix::bool_matrix_value,
 11666 	octave_sparse_bool_matrix::bool_array_value): Likewise.
 11667 
 11668 2006-08-18  Benjamin Lindner  <lindnerben@gmx.net>
 11669 
 11670 	* ls-mat5.cc (read_mat5_tag): Declare type as int32_t, not int.
 11671 	(read_mat5_binary_element): Likewise, for len and element_length.
 11672 
 11673 2006-08-18  John W. Eaton  <jwe@octave.org>
 11674 
 11675 	* load-save.h (enum load_save_format): New element, LS_MAT_ASCII_LONG.
 11676 	* load-save.cc (Fload, Fsave): Make -ascii Matlab compatible.
 11677 	(do_save): Handle LS_MAT_ASCII.
 11678 	* ls-mat-ascii.cc (save_mat_ascii_data): New function.
 11679 	* ls-mat-ascii.h: Provide decl.
 11680 
 11681 2006-08-17  John W. Eaton  <jwe@octave.org>
 11682 
 11683 	* ls-mat5.cc (save_mat5_element_length): Correctly compute element
 11684 	length for character data.  Handle N-d character data
 11685 	(save_mat5_binary_element): Handle N-d character data.
 11686 
 11687 2006-08-16  John W. Eaton  <jwe@octave.org>
 11688 
 11689 	* parse.y (gobble_leading_white_space): New arg, SKIP_CODE.
 11690 	Change all uses.
 11691 
 11692 2006-08-15  John W. Eaton  <jwe@octave.org>
 11693 
 11694 	* help.cc (help_from_file): Call get_help_from_file with new file
 11695 	arg.  Print file info here.
 11696 
 11697 	* parse.y (get_help_from_file): Delete include_file_info arg.
 11698 	Provide two versions, one that returns the file found in a
 11699 	reference arg and one that does not.
 11700 
 11701 	* variables.cc (do_isglobal): New function.
 11702 	(Fisglobal): Use it.
 11703 	(Fis_global): New function.
 11704 
 11705 2006-08-14  John W. Eaton  <jwe@octave.org>
 11706 
 11707 	* variables.cc (symbol_record_name_compare): Fix casts.
 11708 
 11709 	* ov-cell.cc (octave_cell::subsasgn): Call empty_conv for 0x0
 11710 	objects, not just empty objects.
 11711 
 11712 	* oct-map.h (Octave_map::clear): Also clear key_list.
 11713 
 11714 	* load-path.cc (load_path::find_dir_info, load_path::do_add,
 11715 	load_path::do_remove): Perform tilde expansion on directory here.
 11716 
 11717 2006-07-29  John W. Eaton  <jwe@octave.org>
 11718 
 11719 	* matrix.h: Delete to avoid conflict with liboctave/Matrix.h on
 11720 	case-insensitive filesystems.
 11721 
 11722 	* version.h (OCTAVE_VERSION): Now 2.9.7+.
 11723 
 11724 2006-07-28  John W. Eaton  <jwe@octave.org>
 11725 
 11726 	* version.h (OCTAVE_VERSION): Now 2.9.7.
 11727 	(OCTAVE_API_VERSION): Now api-v20.
 11728 	(OCTAVE_RELEASE_DATE): Now 2006-07-28.
 11729 
 11730 	* load-path.cc (path::do_add): Warn for trailing "//".
 11731 
 11732 	* strfns.cc: Comment out some tests for snapshot.
 11733 
 11734 2006-07-27  John W. Eaton  <jwe@octave.org>
 11735 
 11736 	* defaults.cc (Vlocal_api_arch_lib_dir): New variable.
 11737 	(set_default_local_api_arch_lib_dir): New function.
 11738 	(install_defaults): Call it.
 11739 	(set_exec_path): Put Vlocal_api_arch_lib_dir in the list.
 11740 	* toplev.cc (localapiarchlibdir): Include it in the list.
 11741 	* defaults.h.in (OCTAVE_LOCALAPIARCHLIBDIR): Substitute here.
 11742 
 11743 2006-07-26  John W. Eaton  <jwe@octave.org>
 11744 
 11745 	* mex.cc (mxArray::as_octave_value (mxArray *)): New static function.
 11746 	(call_mex, mexPutVariable, mexCallMATLAB,
 11747 	mxArray_cell::as_octave_value, mxArray_struct::as_octave_value):
 11748 	Use static version of as_octave_value here.
 11749 	(mxArray_sparse::mxArray_sparse (const mxArray_sparse&)):
 11750 	Check pr, ir, and jc before calling memcpy.
 11751 	(mxArray_number::mxArray_number): Check pr before calling memcpy
 11752 
 11753 	* mxarray.h (mxArray::as_octave_value (mxArray *)): Provide decl.
 11754 	(mxArray::as_octave_value): Now protected.
 11755 
 11756 	* file-io.cc (Ffeof, Fferror): Use DEFUNX instead of DEFUN.
 11757 
 11758 	* mex.cc (xfree): New function.
 11759 	(mex::free): Use it.
 11760 	(mxArray_struct::~mxArray_struct, mxArray_cell::~mxArray_cell):
 11761 	Delete elements with delete, not mxDestroyArray.
 11762 	(mex::cleanup): Don't call mex::free or mex::free_value.
 11763 	(mex::free_value): Add debug warning.
 11764 	(mex::mark, mex::unmark): Fix debug warning.
 11765 	(call_mex): Use unwind_protect frame.
 11766 	(mexUnlock): Use iterator to remove item from mex_lock_count.
 11767 
 11768 	* octave.cc (maximum_braindamage): Use disable_warning instead of
 11769 	bind_internal_variable to disable function-name-clash warning.
 11770 	* error.cc (disable_warning): No longer static.
 11771 	* error.h: Provide decl.
 11772 
 11773 2006-07-25  David Bateman  <dbateman@free.fr>
 11774 
 11775 	* mex.cc (mxArray_octave_value::get_class_id): Handle sparse.
 11776 	(class mxArray_sparse): Derive from mxArray_matlab, not
 11777 	mxArray_number.
 11778 	(mxArray_sparse::as_octave_value): Implement function.
 11779 	* ov-bool-sparse.cc (octave_sparse_bool_matrix::as_mxArray):
 11780 	Implement function.
 11781 	* ov-cx-sparse.cc (octave_sparse_complex_matrix::as_mxArray):
 11782 	Implement function.	
 11783 	* ov-re-sparse.cc (octave_sparse_matrix::as_mxArray):
 11784 	Implement function.
 11785 
 11786 2006-07-25  John W. Eaton  <jwe@octave.org>
 11787 
 11788 	* mex.cc (mxArray_struct::as_octave_value, call_mex,
 11789 	mexCallMATLAB, mxArray_cell::as_octave_value):
 11790 	Convert NULL mxArray* pointers to empty matrix values.
 11791 	(mxArray_octave_value:get_ir): Fix typo.
 11792 
 11793 2006-07-22  John W. Eaton  <jwe@octave.org>
 11794 
 11795 	* mxarray.h: New file.
 11796 	* mex.h, mexproto.h, mex.cc: New implementation of mxArray and MEX
 11797 	interface.
 11798 
 11799 	* ov.h (octave_value::mex_get_ir, octave_value::mex_get_jc):
 11800 	New functions.
 11801 	* ov-base.h (octave_base_value::mex_get_ir,
 11802 	octave_base_value::mex_get_jc): New virtual functions.
 11803 	* ov-base-sparse.h (octave_base_sparse<T>::mex_get_ir,
 11804 	octave_base_sparse<T>::mex_get_jc): New functions.
 11805 
 11806 	* ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::as_mxArray,
 11807 	OCTAVE_VALUE_INT_MATRIX_T::as_mxArray): New functions.
 11808 	* ov-int8.h, ov-int16.h, ov-int32.h, ov-int64.h, ov-uint8.h,
 11809 	ov-uint16.h, ov-uint32.h, ov-uint64.h: Define OCTAVE_INT_MX_CLASS
 11810 	before including ov-intx.h.  Undef it after.
 11811 	* ov-range.cc (octave_range::as_mxArray): New function.
 11812 	* ov-range.h: Provide decl.
 11813 	* ov-scalar.cc (octave_scalar::as_mxArray): New function.
 11814 	* ov-scalar.h: Provide decl.
 11815 	* ov-complex.cc (octave_complex::as_mxArray): New function.
 11816 	* ov-complex.h: Provide decl.
 11817 	* ov-re-mat.cc (octave_matrix::as_mxArray): New function.
 11818 	* ov-re-mat.h: Provide decl.
 11819 	* ov-cx-mat.cc (octave_complex_matrix::as_mxArray): New function.
 11820 	* ov-cx-mat.h: Provide decl.
 11821 	* ov-ch-mat.cc (octave_char_matrix::as_mxArray): New function.
 11822 	* ov-ch-mat.h: Provide decl.
 11823 	* ov-bool-mat.cc (octave_bool_matrix::as_mxArray): New function.
 11824 	* ov-bool-mat.h: Provide decl.
 11825 	* ov-bool.cc (octave_bool::as_mxArray): New function.
 11826 	* ov-bool.h: Provide decl.
 11827 
 11828 	* ov-struct.h (octave_struct::numel): New function.
 11829 
 11830 	* ls-mat5.cc (arrayclasstype): Use "MAT_FILE_" instead of "mx" as
 11831 	prefix for element names.
 11832 
 11833 	* ov.h (octave_value::as_mxArray): New function.
 11834 	* ov-base.cc (octave_base_value::as_mxArray): New function.
 11835 	* ov-base.h: Provide decl.
 11836 
 11837 	* ov.h (octave_value::mex_get_data): New function.
 11838 	* ov-base.h (octave_base_value::mex_get_data): New function.
 11839 	* ov-base-scalar.h (octave_base_scalar<ST>::mex_get_data): New function.
 11840 	* ov-base-matrix.h (octave_base_matrix<MT>::mex_get_data): New function.
 11841 	* ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::mex_get_data): New function.
 11842 
 11843 	* ov.h (octave_value::nfields): New function.
 11844 	* ov-base.cc (octave_base_value::nfields): New virtual function.
 11845 	* ov-base.h: Provide decl.
 11846 	* ov-struct.h (octave_struct::nfields): New function.
 11847 
 11848 2006-07-19  John W. Eaton  <jwe@octave.org>
 11849 
 11850 	* OPERATORS/op-bm-bm.cc (oct_assignop_conv_and_assign): New function.
 11851 	(install_bm_bm_ops): Install it for various types.
 11852 	* OPERATORS/op-bm-b.cc (oct_assignop_conv_and_assign): New function.
 11853 	(install_bm_b_ops): Install it for various types.
 11854 	* ov-intx.h (OCTAVE_VALUE_INT_MATRIX_T::bool_array_value,
 11855 	OCTAVE_VALUE_INT_SCALAR_T::bool_array_value): New functions.
 11856 	* ov-range.h (octave_range::bool_array_value): New function.
 11857 	* ov-re-sparse.cc (octave_sparse_matrix::bool_array_value):
 11858 	New function.
 11859 	* ov-re-sparse.h: Provide decl.
 11860 	* ov-re-mat.cc (octave_matrix::bool_array_value): New function.
 11861 	* ov-re-mat.h: Provide decl.
 11862 
 11863 	* ov-base.cc (octave_base_value::numeric_assign):
 11864 	Avoid memory leak when converting LHS.
 11865 
 11866 2006-07-18  John W. Eaton  <jwe@octave.org>
 11867 
 11868 	* ov.h (octave_value::is_int8_type, octave_value::is_int16_type,
 11869 	octave_value::is_int32_type, octave_value::is_int64_type,
 11870 	octave_value::is_uint8_type, octave_value::is_uint16_type,
 11871 	octave_value::is_uint32_type, octave_value::is_uint64_type):
 11872 	New functions. 
 11873 	* ov-base.h (octave_base_value::is_int8_type,
 11874 	octave_base_value::is_int16_type,
 11875 	octave_base_value::is_int32_type,
 11876 	octave_base_value::is_int64_type,
 11877 	octave_base_value::is_uint8_type,
 11878 	octave_base_value::is_uint16_type,
 11879 	octave_base_value::is_uint32_type,
 11880 	octave_base_value::is_uint64_type): New functions.
 11881 	* ov-int8.h, ov-int16.h, ov-int32.h, ov-int16.h, ov-uint8.h,
 11882 	ov-uint16.h, ov-uint32.h, ov-uint16.h: Define OCTAVE_BASE_INT_T.
 11883 	* ov-intx.h: Use OCTAVE_BASE_INT_T to define type-specific predicate.
 11884 
 11885 	* ov.h (octave_value::is_double_type, octave_value::is_single_type):
 11886 	New functions.
 11887 	* ov-base.h (octave_base_value::is_double_type,
 11888 	octave_base_value::is_single_type): New functions.
 11889 	* ov-re-mat.h (octave_matrix::is_double_type): New function.
 11890 	* ov-cx-mat.h (octave_matrix::is_double_type): New function.
 11891 	* ov-scalar.h (octave_scalar::is_double_type): New function.
 11892 	* ov-complex.h (octave_complex::is_double_type): New function.
 11893 	* ov-range.h (octave_range::is_double_type): New function.
 11894 	* ov-re-sparse.h (octave_sparse_matrix::is_double_type): New function.
 11895 	* ov-cx-sparse.h (octave_sparse_complex_matrix::is_double_type):
 11896 	New function.
 11897 	
 11898 2006-07-15  John W. Eaton  <jwe@octave.org>
 11899 
 11900 	* ov-typeinfo.cc: Also instantiate arrays of assignany_ops.
 11901 
 11902 	* oct-errno.cc.in (octave_errno::octave_errno): VALUE field in
 11903 	errno_struct no longer const.
 11904 
 11905 	* DLD-FUNCTIONS/dispatch.cc (octave_dispatch::do_index_op):
 11906 	Declare	resize_ok arg as bool, not int.
 11907 	Provide default value for resize_ok.
 11908 
 11909 2006-07-14  John W. Eaton  <jwe@octave.org>
 11910 
 11911 	* oct-stream.cc (do_write): Include explicit instantiations.
 11912 
 11913 	* ov-str-mat.h (octave_char_matrix_sq_str::resize):
 11914 	Include fill arg to match base class.
 11915 	* ov-struct.h (octave_struct::resize): Likewise.
 11916 
 11917 	* ov-base-mat.cc, ov-base-mat.h, ov-base-sparse.cc,
 11918 	ov-base-sparse.h, ov-base.cc, ov-base.h, ov-bool.cc,
 11919 	ov-bool.h, ov-complex.cc, ov-complex.h, ov-intx.h, ov-list.cc,
 11920 	ov-list.h, ov-range.cc, ov-range.h, ov-scalar.cc, ov-scalar.h,
 11921 	ov-str-mat.cc, ov-str-mat.h, ov.h (do_index_op):
 11922 	Declare	resize_ok arg as bool, not int.
 11923 	Provide default value for resize_ok.
 11924 
 11925 	* c-file-ptr-stream.h (c_file_ptr_stream::c_file_ptr_stream):
 11926 	Qualify init.
 11927 
 11928 2006-07-13  John W. Eaton  <jwe@octave.org>
 11929 
 11930 	* oct-map.h (Octave_map::del): Add missing std:: qualifier to use
 11931 	of find template.
 11932 
 11933 2006-07-07  John W. Eaton  <jwe@octave.org>
 11934 
 11935 	* ov.h (octave_value::is_bool_scalar): New function.
 11936 	* ov-base.h (octave_base_value::is_bool_scalar): New function.
 11937 	* ov-bool.h (octave_bool::is_bool_scalar): New function.
 11938 
 11939 	* oct-map.cc (Octave_map::keys): Use assert.
 11940 	(Octave_map::assign): Avoid inserting new key in map unless
 11941 	assignment to cell succeeds.
 11942 
 11943 	* oct-map.h (Octave_map::del): Only touch key_list if map contains key.
 11944 	Assert that key_list contains key.
 11945 
 11946 	* oct-map.h (Octave_map::maybe_add_to_key_list): For efficiency,
 11947 	check map, not key_list.  From Paul Kienzle  <pkienzle@users.sf.net>.
 11948 
 11949 2006-07-06  John W. Eaton  <jwe@octave.org>
 11950 
 11951 	* DLD-FUNCTIONS/__glpk__.cc (F__glpk__): Declare mrowsc volatile.
 11952 
 11953 	* ov-struct.cc (octave_struct::print_raw): Print keys in key_list
 11954 	order.
 11955 
 11956 	* oct-map.h (Octave_map::key_list): New data member.
 11957 	(Octave_map::maybe_add_to_key_list): New function.
 11958 	(Octave_map::key_list_iterator, Octave_map::const_key_list_iterator):
 11959 	New typedefs.
 11960 	(Octave_map::del): Also delete key from key_list.
 11961 	* oct-map.cc (Octave_map::keys): Compute return value from
 11962 	key_list instead of map.
 11963 	(Octave_map::assign, Octave_map::contents): Call maybe_add_to_key_list.
 11964 	* oct-map.h, oct-map.cc (Octave_map::Octave_map):
 11965 	Insert keys in key_list.
 11966 
 11967 	* oct-map.h (Octave_map::Octave_map (const dim_vector&,
 11968 	const string_vector&)): New arg, key_list_arg.
 11969 	* oct-map.cc: Move definition here.
 11970 
 11971 2006-07-05  John W. Eaton  <jwe@octave.org>
 11972 
 11973 	* mex.cc (mexGetVariable): Rename from mexGetArray, swap arguments.
 11974 	(mexGetVariablePtr): Rename from mexGetArrayPtr, swap arguments.
 11975 	(mexErrMsgIdAndTxt, mexWarnMsgIdAndTxt): New functions.
 11976 	* mexproto.h: Provide decls.
 11977 	Include decls for as yet unsupported functions.
 11978 	* mex.h: Add enum for class ids.
 11979 	(mexGetArray): Define using mexGetVariable.
 11980 	(mexGetArrayPtr): Define using mexGetVariablePtr.
 11981 
 11982 2006-07-02  John W. Eaton  <jwe@octave.org>
 11983 
 11984 	* ov-str-mat.cc (CHAR_MATRIX_CONV): Omit "warn-" from label.
 11985 	* parse.y (maybe_warn_variable_switch_label): Likewise.
 11986 
 11987 2006-07-01  John W. Eaton  <jwe@octave.org>
 11988 
 11989 	* parse.y (finish_cell): Use finish_matrix to do constant folding.
 11990 
 11991 2006-06-30  John W. Eaton  <jwe@octave.org>
 11992 
 11993 	* ov-base.cc (octave_base_value::numeric_assign):
 11994 	Avoid memory leak when converting LHS.
 11995 
 11996 	* oct-hist.cc (do_history, initialize_history, Fhistory_file):
 11997 	Don't perform tilde expansion on history file name.
 11998 
 11999 	* syscalls.cc (Flstat, Fstat): Don't perform tilde expansion on arg.
 12000 	* input.cc (Fread_readline_init_file): Likewise.
 12001 	* dirfns.cc (Fcd, Freaddir): Likewise.
 12002 
 12003 	* load-path.cc (genpath): Don't perform tilde expansion on name.
 12004 	(load_path::do_add): Don't warn about moving "." to front of list.
 12005 
 12006 2006-06-28  John W. Eaton  <jwe@octave.org>
 12007 
 12008 	* load-path.cc (Faddpath): Don't treat "." specially here.
 12009 	Don't check directory status here.
 12010 	(Fpath): Handle all args.  Don't treat "." specially here.
 12011 	(Faddpath, Frmpath): Delete unused variable xpath.
 12012 	(load_path::do_add): New function.
 12013 	(load_path::do_prepend, load_path::do_append): Use it.
 12014 	(load_path::do_remove): Really prevent removal of ".".
 12015 	(load_path::do_clear): Clearing doesn't remove ".".
 12016 	(load_path::append, load_path::prepend, load_path::do_append,
 12017 	load_path::do_prepend): New arg, warn.
 12018 
 12019 	* load-path.h: Fix decls.
 12020 
 12021 	* DLD-FUNCTIONS/regexp.cc (octregexp_list):
 12022 	Avoid bug in older versions of g++.
 12023 
 12024 2006-06-27  John W. Eaton  <jwe@octave.org>
 12025 
 12026 	* Makefile.in (clean): Also remove $(DLD_OBJ).
 12027 
 12028 	* sighandlers.cc (install_signal_handlers): Don't handle SIGPROF.
 12029 	From Geoffrey Knauth <geoff@knauth.org>.
 12030 
 12031 2006-06-25  John W. Eaton  <jwe@octave.org>
 12032 
 12033 	* mk-pkg-add: Avoid apparently non-portable sed patterns.
 12034 
 12035 2006-06-21  John W. Eaton  <jwe@octave.org>
 12036 
 12037 	* variables.cc (do_who): Handle mex.
 12038 
 12039 	* symtab.cc (SYMBOL_DEF::type_as_string, SYMBOL_DEF::which,
 12040 	symbol_table::clear_functions, table::clear_function,
 12041 	symbol_table::clear_function_pattern): 
 12042 	Handle mex.
 12043 	* symtab.h (symbol_record::is_mex_function,
 12044 	symbol_record::symbol_def::is_mex_function): New functions.
 12045 	(symbol_record::TYPE): New value, MEX_FUNCTION.
 12046 	(symbol_record::is_function, symbol_table::user_function_name_list,
 12047 	SYMTAB_ALL_TYPES): Handle MEX_FUNCTION.
 12048 
 12049 	* ov-fcn.h (octave_function::octave_function):
 12050 	Provide default for doc string arg.
 12051 
 12052 	* defun.cc (install_mex_function): New function.
 12053 	* defun-int.h: Provide decl.
 12054 
 12055 	* ov-builtin.cc (any_arg_is_magic_colon): Delete.
 12056 	(octave_builtin::do_multi_index_op): Call has_magic_colon method
 12057 	for args instead of any_arg_is_magic_colon.
 12058 
 12059 	* ov-base.h (octave_base_value::is_mex_function): New function.
 12060 	* ov.h (octave_value::is_mex_function): New function.
 12061 
 12062 	* ov-mex-fcn.h, ov-mex-fcn.cc: New files.
 12063 
 12064 	* parse.y (load_fcn_from_file): Also handle .mex files.
 12065 
 12066 	* dynamic-ld.cc (octave_dynamic_loader::load_oct): Rename from load.
 12067 	(octave_dynamic_loader::do_load_oct): Rename from do_load.
 12068 	* dynamic-ld.h: Fix decls.
 12069 
 12070 	* utils.cc (mex_file_in_path): New function.
 12071 	* utils.h: Provide decl.
 12072 
 12073 	* variables.cc (symbol_out_of_date): Also handle mex files.
 12074 
 12075 	* load-path.cc (load_path::dir_info::get_file_list,
 12076 	load_path::dir_info::get_private_function_map,
 12077 	load_path::do_find_fcn, load_path::add_to_fcn_map,
 12078 	load_path::do_display): Also handle mex files.
 12079 	* load-path.h (load_path::find_mex_file): New static function.
 12080 	(load_path::MEX_FILE): New static data member.
 12081 	(load_path::do_find_fcn): By default, also look for mex files.
 12082 
 12083 	* matrix.h, mex.h, mex.cc: New files from Octave Forge
 12084 	* mexproto.h: New file, extracted from mex.h.
 12085 	* Makefile.in: Add them to the appropriate lists.
 12086 
 12087 2006-06-20  John W. Eaton  <jwe@octave.org>
 12088 
 12089 	* ov-re-mat.cc (octave_matrix::convert_to_str_internal):
 12090 	Don't lose empty dimensions on conversion to char.
 12091 
 12092 	* strfns.cc (Fstrcmp): Handle comparison of cellstr and empty string.
 12093 
 12094 2006-06-16  John W. Eaton  <jwe@octave.org>
 12095 
 12096 	* parse.y (%union): New type, anon_fcn_handle_type.
 12097 	(anon_fcn_handle): Now anon_fcn_handle_type, not tree_constant_type.
 12098 	(make_anon_fcn_handle):	Return tree_anon_fcn_handle, not tree_constant.
 12099 
 12100 	* comment-list.cc (octave_comment_list::dup): New function.
 12101 	* comment-list.h: Provide decl.
 12102 
 12103 	* pt-cmd.cc (tree_no_op_command::dup): New function.
 12104 	* pt-cmd.h: Provide decl.
 12105 	(tree_command::dup): New pure virtual function.
 12106 
 12107 	* pt-loop.cc (tree_while_command::dup, tree_do_until_command::dup,
 12108 	tree_simple_for_command::dup, tree_complex_for_command::dup):
 12109 	New functions.
 12110 	* pt-loop.h: Provide decls.
 12111 
 12112 	* pt-jump.cc (tree_break_command::dup, tree_continue_command::dup,
 12113 	tree_return_command::dup): New functions.
 12114 	* pt-jump.h: Provide decls.
 12115 
 12116 	* pt-except.cc (tree_try_catch_command::dup,
 12117 	tree_unwind_protect_command::dup): New functions.
 12118 	* pt-except.h: Provide decls.
 12119 
 12120 	* pt-select.cc (tree_if_clause::dup, tree_if_command_list::dup,
 12121 	tree_if_command::dup, tree_switch_case::dup,
 12122 	tree_switch_case_list::dup, tree_switch_command::dup):
 12123 	New functions.
 12124 	* pt-select.h: Provide decls.
 12125 
 12126 	* pt-decl.cc (tree_decl_elt::dup, tree_decl_init_list::dup,
 12127 	tree_global_command::dup, tree_static_command::dup): New functions.
 12128 	* pt-decl.h: Provide decls.
 12129 	
 12130 	* pt-exp.h (tree_expression::copy_base): New function.
 12131 	(tree_expression::dup): New pure virtual function.
 12132 	
 12133 	* pt-fcn-handle.cc, pt-fcn-handle.h (tree_anon_fcn_handle): New class.
 12134 
 12135 	* pt-fcn-handle.cc (tree_function_handle::dup): New function.
 12136 	* pt-fcn-handle.h: Provide decl.
 12137 
 12138 	* pt-colon.cc (tree_colon_expression::dup): New function.
 12139 	* pt-colon.h: Provide decl.
 12140 	(tree_colon_expression::tree_colon_expression (tree_expression *,
 12141 	tree_expression *, tree_expression *, int, int)): New constructor.
 12142 	
 12143 	* pt-const.cc (tree_constant::dup): New function.
 12144 	(tree_constant::tree_constant (const octave_value&, const
 12145 	std::string&, int, int)): New constructor.
 12146 	* pt-const.h: Provide decls.
 12147 
 12148 	* pt-idx.cc (tree_index_expression::dup): New functoin.
 12149 	(tree_index_expression::tree_index_expression (int, int)):
 12150 	New constructor.
 12151 	* pt-idx.h: Provide decls.
 12152 
 12153 	* pt-arg-list.cc (tree_argument_list::dup): New function.
 12154 	* pt-arg-list.h: Provide decl.
 12155 
 12156 	* pt-id.cc (tree_identifier::dup): New function.
 12157 	* pt-id.h: Provide decl.
 12158 
 12159 	* pt-cell.cc (tree_cell::dup): New function.
 12160 	* pt-cell.h: Provide decl.
 12161 
 12162 	* pt-mat.cc (tree_matrix::dup): New function.
 12163 	* pt-mat.h: Provide decl.
 12164 
 12165 	* pt-assign.cc (tree_simple_assignment::dup,
 12166 	tree_multi_assignment::dup): New functions.
 12167 	* pt-assign.h: Provide decls.
 12168 
 12169 	* pt-binop.cc (tree_binary_expression::dup,
 12170 	tree_boolean_expression::dup): New functions.
 12171 	* pt-binop.h: Provide decls.
 12172 	
 12173 	* pt-unop.cc (tree_prefix_expression::dup,
 12174 	tree_postfix_expression::dup): New functions.
 12175 	* pt-unop.h: Provide decls.
 12176 
 12177 	* pt-stmt.cc (tree_statement::dup, tree_statement_list::dup):
 12178 	New functions.
 12179 	* pt-stmt.h: Provide decls.
 12180 
 12181 	* pt-misc.cc (tree_parameter_list::dup,
 12182 	tree_return_list::dup): New functions.
 12183 	* pt-misc.h: Provide decls.
 12184 
 12185 	* symtab.cc (symbol_table::dup, symbol_table::inherit,
 12186 	symbol_record:is_automatic_variable): New functions.
 12187 	* symtab.h: Provide decls.
 12188 	(symbol_record::automatic_variable): New data member.
 12189 	(symbol_record::symbol_record): Initialize it.
 12190 	(symbol_record::mark_as_automatic_variable): New function.
 12191 
 12192 	* pt-walk.h (tree_walker::visit_anon_fcn_handle):
 12193 	New pure virtual function.
 12194 	* pt-pr-code.cc (tree_print_code::visit_anon_fcn_handle): New function.
 12195 	* pt-pr-code.h: Provide decl.
 12196 	* pt-bp.cc (tree_breakpoint::visit_anon_fcn_handle): New function.
 12197 	* pt-bp.h: Provide decl.
 12198 	* pt-check.cc (tree_checker::visit_anon_fcn_handle): New function.
 12199 	* pt-check.h: Provide decl.
 12200 
 12201 2006-06-13  John W. Eaton  <jwe@octave.org>
 12202 
 12203 	* pt-stmt.cc (tree_statement_list::eval): Revise previous change
 12204 	to preserve return-last-value-computed semantics.
 12205 
 12206 	* DLD-FUNCTIONS/fsolve.cc (hybrd_info_to_fsolve_info):
 12207 	Warn about invalid values of INFO from MINPACK instead of calling
 12208 	panic_impossible.
 12209 
 12210 	* ov-usr-fcn.cc (octave_user_function::do_multi_index_op):
 12211 	Don't assign values returned by evaluation of cmd_list to
 12212 	temporary variable.  Delete unused variable last_computed_value.  
 12213 
 12214 	* pt-stmt.cc (tree_statement_list::eval):
 12215 	Clear retval before each statement is evaluated.
 12216 
 12217 2006-06-12  John W. Eaton  <jwe@octave.org>
 12218 
 12219 	* unwind-prot.h (unwind_protect_fptr): New macro.
 12220 	* load-path.cc (load_path::do_set): Use it instead of
 12221 	unwind_protect_ptr when protecting add_hook function pointer.
 12222 	* dynamic-ld.cc (octave_dynamic_loader::do_load): Use FCN_PTR_CAST
 12223 	here instead of reinterpret_cast.
 12224 
 12225 2006-06-09  John W. Eaton  <jwe@octave.org>
 12226 
 12227 	* version.h (OCTAVE_VERSION): Now 2.9.6+.
 12228 
 12229 2006-06-09  John W. Eaton  <jwe@octave.org>
 12230 
 12231 	* version.h (OCTAVE_VERSION): Now 2.9.6.
 12232 	(OCTAVE_API_VERSION): Now api-v19.
 12233 	(OCTAVE_RELEASE_DATE): Now 2006-06-09.
 12234 
 12235 	* ov-cell.cc (cell::save_hdf5): Use leading zeros to keep elements
 12236 	correctly sorted in the HDF file.
 12237 	From Stephen Fegan <sfegan@astro.ucla.edu>.
 12238 
 12239 2006-06-08  John W. Eaton  <jwe@octave.org>
 12240 
 12241 	* ov-usr-fcn.cc (function::do_multi_index_op): Append contents of
 12242 	varargout to ret_list before calling convert_to_const_vector.
 12243 
 12244 	* pt-arg-list.cc (tree_argument_list::convert_to_const_vector):
 12245 	No need to handle all_va_args here.
 12246 
 12247 	* ov-va-args.h, ov-va-args.cc: Delete files.
 12248 	* Makefile.in (OV_INCLUDES, OV_SRC): Delete from the lists.
 12249 
 12250 	* ov.cc (install_types): Don't register octave_all_va_args type.
 12251 	* ov.h, ov.cc (octave_value::octave_value (octave_value::all_va_args)):
 12252 	Delete.
 12253 	* ov.h (octave_value::is_all_va_args): Delete.
 12254 	(octave_value::enum all_va_args): Delete.
 12255 
 12256 	* pt-pr-code.cc	(tree_print_code::visit_octave_user_function_header):
 12257 	Print "varargout" and "varargin" instead of "...".
 12258 
 12259 	* pt-misc.h, pt-misc.cc	(tree_parameter_list::convert_to_const_vector):
 12260 	Arg is now const Cell& instead of tree_va_return_list*.
 12261 
 12262 	* ov-usr-fcn.h, ov-usr-fcn.cc (octave_user_function::vr_list,
 12263 	octave_user_function::curr_va_arg_number):
 12264 	Delete variables and all uses.
 12265 	(octave_function::octave_va_start, octave_function::octave_va_arg,
 12266 	octave_function::octave_vr_val,	octave_function::has_varargout):
 12267 	Delete functions and all uses.
 12268 
 12269 	* ov-fcn.h (octave_function::octave_va_start,
 12270 	octave_function::octave_va_arg, octave_function::octave_vr_val,
 12271 	octave_function::has_varargout): Delete.
 12272 
 12273 	* ov-usr-fcn.cc (Fva_arg, Fva_start, Fvr_val): Delete.
 12274 
 12275 	* lex.l ({EL}): Don't handle "..." as varargin or varargout.
 12276 	* octave.gperf (all_va_args, ALL_VA_ARGS, all_va_args_kw): Delete.
 12277 	* parse.y (ALL_VA_ARGS): Delete token and all uses.
 12278 
 12279 	* defaults.h.in (OCTAVE_DATAROOTDIR): Substitute here.
 12280 	* toplev.cc (octave_config_info): Add datarootdir to the struct.
 12281 
 12282 2006-06-07  John W. Eaton  <jwe@octave.org>
 12283 
 12284 	* ov-cell.cc (octave_cell::subsasgn): Handle c-s list object on
 12285 	RHS if last index is '{'.
 12286 	* pt-assign.cc (tree_multi_assignment::rvalue): Compute all LHS
 12287 	lvalues before evaluating RHS.  If LHS lvalue expects more than
 12288 	one output, pass octave_cs_list object to assign method.
 12289 	* pt-idx.cc (tree_index_expression::lvalue): Compute expected
 12290 	number of values if '{' index appears last.
 12291 	* pt-arg-list.cc (tree_argument_list::lvalue_list): New function.
 12292 	* pt-arg-list.h (tree_argument_list::lvalue_list): Provide decl.
 12293 	* oct-lvalue.h (octave_lvalue::nel): New data member.
 12294 	(octave_lvalue::numel): New functions
 12295 	* oct-obj.cc (octave_value_list::has_magic_colon): New function.
 12296 	* oct-obj.h (octave_value_list::has_magic_colon): Provide decl.
 12297 	* pt-arg-list.cc (tree_argument_list::nargout_count): Delete function.
 12298 	* pt-arg-list.h (tree_argument_list::nargout_count): Delete decl.
 12299 
 12300 2006-06-06  John W. Eaton  <jwe@octave.org>
 12301 
 12302 	* sighandlers.cc (generic_sig_handler, sigint_handler):
 12303 	Use strsignal instead of accessing sys_siglist directly.
 12304 	* siglist.h: Use HAVE_DECL_SYS_SIGLIST instead of SYS_SIGLIST_DECLARED.
 12305 	* siglist.c: Update sys_siglist.
 12306 	(init_signals, strsignal): New functions.
 12307 	* octave.cc (octave_main): Call init_signals here.
 12308 
 12309 	* toplev.cc (Foctave_config_info): Delete LIBPLPLOT from struct.
 12310 
 12311 2006-06-05  John W. Eaton  <jwe@octave.org>
 12312 
 12313 	* pt-assign.cc (Vprint_rhs_assign_val): Delete variable.
 12314 	(Fprint_rhs_assign_val): Delete function.
 12315 	tree_simple_assignment::rvalue, tree_multi_assignment::rvalue):
 12316 	No special case for Vprint_rhs_assign_val.
 12317 
 12318 2006-06-02  John W. Eaton  <jwe@octave.org>
 12319 
 12320 	* pt-arg-list.h (tree_argument_list::mark_as_simple_assign_lhs,
 12321 	tree_argument_list::is_simple_assign_lhs): New functions.
 12322 	(tree_argument_list::simple_assign_lhs): New data member.
 12323 	* parse.y (assign_lhs): Classify LHS here.
 12324 	(make_assign_op): Create simple or multi assign op based on
 12325 	classification of LHS, not its length.
 12326 
 12327 2006-06-01  John W. Eaton  <jwe@octave.org>
 12328 
 12329 	* Makefile.in (DLD_XSRC): Add __pchip_deriv__.cc to the list.
 12330 
 12331 2006-06-01  David Bateman  <dbateman@free.fr>
 12332 
 12333 	* DLD-FUNCTIONS/__pchip_deriv__.cc: New file.
 12334 
 12335 2006-05-31  John W. Eaton  <jwe@octave.org>
 12336 
 12337 	* load-path.h (load_path::set_command_line_path): Make it
 12338 	additive.
 12339 
 12340 2006-05-26  John W. Eaton  <jwe@octave.org>
 12341 
 12342 	* load-path.cc (genpath, maybe_add_path_elts, Fgenpath, Frehash,
 12343 	Fpath, Fpathdef): Move here from defaults.cc.
 12344 	* load-path.cc, load-path.h: New files.
 12345 	* Makefile.in (INCLUDES, DIST_SRC): Add them to the lists.
 12346 	* help.cc (make_name_list, simple_help): Use load_path instead of
 12347 	octave_fcn_file_name_cache.
 12348 	(Flookfor): Use load_path instead of Vload_path_dir_path.
 12349 	* octave.cc (octave_main):  Likewise.
 12350 	* parse.y (load_fcn_from_file): Likewise.
 12351 	* utils.cc (Ffile_in_loadpath, file_in_path, fcn_file_in_path,
 12352 	oct_file_in_path): Likewise.
 12353 	* variables.cc (symbol_exist, symbol_out_of_date): Likewise.
 12354 	* DLD-FUNCTIONS/fftw_wisdom.cc (Ffftw_wisdom): Likewise.
 12355 	* utils.cc (Ffind_first_of_in_loadpath): Delete.
 12356 	* input.cc (octave_gets): Call load_path::update here.
 12357 	* dirfns.cc (octave_change_to_directory): Likewise.
 12358 	* defaults.cc (VLOADPATH, VDEFAULT_LOADPATH, Vload_path_dir_path,
 12359 	maybe_add_or_del_packages, update_load_path_dir_path,
 12360 	execute_default_pkg_add_files, set_load_path): Delete.
 12361 	* defaults.h.in (Vload_path_dir_path,
 12362 	execute_default_pkg_add_files, maybe_add_default_load_path,
 12363 	set_load_path): Delete decls.
 12364 
 12365 	* fn-cache.h, fn-cache.cc: Delete.
 12366 	* Makefile.in (INCLUDES, DIST_SRC): Remove them from the lists.
 12367 
 12368 	* input.cc (octave_gets): Only update Vlast_prompt_time if we are
 12369 	interactive and actually printing a prompt.  Don't print prompt if
 12370 	reading startup files or command line files.  Initialize
 12371 	Vlast_prompt_time to 0.
 12372 
 12373 	* pr-output.cc (set_format): Always include space for sign.
 12374 	
 12375 2006-05-23  John W. Eaton  <jwe@octave.org>
 12376 
 12377 	* load-save.cc (Fsave): Use tellp instead of pubseekoff to
 12378 	determine whether we are at beginning of file.
 12379 
 12380 	* ov-intx.h (OCTAVE_VALUE_INT_SCALAR_T::increment, 
 12381 	OCTAVE_VALUE_INT_SCALAR_T::decrement,
 12382 	OCTAVE_VALUE_INT_MATRIX_T::increment,
 12383 	OCTAVE_VALUE_INT_MATRIX_T::decrement): New functions.
 12384 	* OPERATORS/op-int.h (OCTAVE_INSTALL_M_INT_UNOPS,
 12385 	OCTAVE_INSTALL_S_INT_UNOPS, OCTAVE_M_INT_UNOPS,
 12386 	OCTAVE_S_INT_UNOPS): Uncomment increment and decrement ops.
 12387 
 12388 2006-05-19  John W. Eaton  <jwe@octave.org>
 12389 
 12390 	* symtab.cc (SYMBOL_DEF::document): If definition is a function,
 12391 	also pass doc string to function object.
 12392 	* ov-fcn.h (octave_function::document): New function.
 12393 	* defun.cc (print_usage (octave_function *)): New function.
 12394 	(print_usage (void)): New function.
 12395 	(print_usage (const std::string&)): Provide for backward
 12396 	compatibility.  Ignore arg.
 12397 	(Fprint_usage): Don't accept arg.
 12398 	* defun-int.h (print_usage (void)): Provide decl.
 12399 	(print_usage (const std::string&)): Tag with GCC_ATTR_DEPRECATED.
 12400 
 12401 2006-05-04  David Bateman  <dbateman@free.fr>
 12402 
 12403 	* DLD-FUNCTIONS/conv2.cc: New file from Octave Forge.
 12404 	* Makefile.in (DLD_XSRC): Add it to the list
 12405 
 12406 2006-05-17  Bill Denney  <bill@givebillmoney.com>
 12407 
 12408 	* help.cc (keywords): Improve and Texinfoize.
 12409 
 12410 2006-05-17  John W. Eaton  <jwe@octave.org>
 12411 
 12412 	* symtab.cc (Vwhos_line_format): Show class instead of type.
 12413 	(symbol_table::parse_whos_line_format):
 12414 	Use 't' for "Type" and 'c' for "Class".
 12415 	(symbol_record::print_symbol_info_line): Likewise.
 12416 	(maybe_list_cmp_fcn): Fix casts.
 12417 
 12418 2006-05-11  John W. Eaton  <jwe@octave.org>
 12419 
 12420 	* octave.cc (IMAGE_PATH_OPTION): New macro.
 12421 	(usage_string, verbose_usage): Include --image-path option.
 12422 	(long_opts): Include --image-path.
 12423 	(octave_main): Handle IMAGE_PATH_OPTION.
 12424 
 12425 	* toplev.cc (Foctave_config_info): Delete fcnfilepath, imagepath,
 12426 	localfcnfilepath, and localoctfilepath from the struct.
 12427 	* defaults.h.in (OCTAVE_FCNFILEPATH, OCTAVE_IMAGEPATH,
 12428 	OCTAVE_LOCALFCNFILEPATH, OCTAVE_LOCALOCTFILEPATH): Delete variables.
 12429 
 12430 	* octave.cc (octave_main): Call set_exec_path and set_load_path
 12431 	instead of bind_internal_variable.
 12432 
 12433 	* defaults.cc (Fpathdef): Rename from FDEFAULT_LOADPATH.
 12434 	Don't allow default path to be set.
 12435 	(Fpath): Rename from FLOADPATH.  Make Matlab-compatible.
 12436 	(update_load_path_dir_path): No need to pass VDEFAULT_LOADPATH to
 12437 	dir_path constructor now.
 12438 	(update_exec_path, FDEFAULT_EXEC_PATH,
 12439 	set_default_default_exec_path, set_default_exec_path,
 12440 	maybe_add_default_load_path): Delete functions.
 12441 	(VDEFAULT_EXEC_PATH): Delete variable.
 12442 	(FEXEC_PATH): Leading and trailing colons no longer special.
 12443 	(set_exec_path, set_load_path, set_image_path,
 12444 	maybe_add_path_elts): New functions.
 12445 	(install_defaults): Call set_exec_path and set_load_path instead
 12446 	of set_default_exec_path and set_default_path.  Don't call
 12447 	set_default_default_exec_path.  Do call set_image_path.
 12448 	* defaults.cc (genpath, Fgenpath): New functions.
 12449 	(Vlocal_ver_oct_file_dir, Vlocal_api_oct_file_dir,
 12450 	Vlocal_oct_file_dir, Vlocal_ver_fcn_file_dir,
 12451 	Vlocal_api_fcn_file_dir, Vlocal_fcn_file_dir, Vimage_dir):
 12452 	New variables.
 12453 	(set_default_local_ver_oct_file_dir,
 12454 	set_default_local_api_oct_file_dir,
 12455 	set_default_local_oct_file_dir,
 12456 	set_default_local_ver_fcn_file_dir,
 12457 	set_default_local_api_fcn_file_dir,
 12458 	set_default_local_fcn_file_dir, set_default_image_dir):
 12459 	New functions.
 12460 	(install_defaults): Call them.
 12461 	* defaults.h.in (set_exec_path, set_load_path, set_image_path,
 12462 	Vlocal_ver_oct_file_dir, Vlocal_api_oct_file_dir,
 12463 	Vlocal_oct_file_dir, Vlocal_ver_fcn_file_dir,
 12464 	Vlocal_api_fcn_file_dir, Vlocal_fcn_file_dir,
 12465 	Vlocal_fcn_file_dir, Vimage_dir): Provide decls.
 12466 
 12467 2006-05-10  John W. Eaton  <jwe@octave.org>
 12468 
 12469 	* ov-cell.cc (Fcellstr): Trim trailing blanks.
 12470 	* Cell.h (Cell::Cell (const string_vector&)): New arg, TRIM.
 12471 
 12472 	* oct-hist.cc (initialize_history, Fhistory_size):
 12473 	Also call command_history::set_size here.
 12474 
 12475 	* defun.cc (Fprint_usage): New function.
 12476 	* help.cc (display_usage_text): New function.
 12477 
 12478 2006-05-09  Keith Goodman  <kwgoodman@gmail.com>
 12479 
 12480 	* DLD-FUNCTIONS/rand.cc: Doc string fix.
 12481 
 12482 2006-05-09  Jorge Barros de Abreu  <ficmatin01@solar.com.br>
 12483 
 12484 	* data.cc (FInf, FNaN): Fix typo in doc string.
 12485 
 12486 2006-05-08  John W. Eaton  <jwe@octave.org>
 12487 
 12488 	* Makefile.in (DEFUN_PATTERN): Match DEFUNX_DLD.
 12489 	* mkbuiltins: Handle XDEFUNX_DLD_INTERNAL.
 12490 	* mkgendoc: Likewise.
 12491 	* mk-pkg-add: Likewise.  Do all the matching with sed.
 12492 	* defun-int.h 	(DEFINE_FUNX_INSTALLER_FUN, DEFINE_FUNX_INSTALLER_FUN2,
 12493 	DEFINE_FUNX_INSTALLER_FUN3): New macros.
 12494 	(DEFINE_FUN_INSTALLER_FUN3): Define using DEFINE_FUNX_INSTALLER_FUN3.
 12495 	(DEFUNX_DLD_INTERNAL): New macro.
 12496 	* defun-dld.h (DEFUNX_DLD): New macro.
 12497 
 12498 	* DLD-FUNCTIONS/__gnuplot_raw__.l: Mark __gnuplot_set__ as a
 12499 	command, not a rawcommand.
 12500 
 12501 	* load-save.cc: No need to handle built-in variables.
 12502 	* help.cc (simple_help): No need to handle built-in variables.
 12503 
 12504 	* variables.cc (is_builtin_variable, builtin_string_variable,
 12505 	builtin_real_scalar_variable, builtin_any_variable):
 12506 	Delete functions.
 12507 	(Fexist, Fdocument, do_who, Fwho, link_to_builtin_or_function): 
 12508 	No need to handle built-in variables.
 12509 	* variables.h (is_builtin_variable, builtin_string_variable,
 12510 	builtin_real_scalar_variable, builtin_any_variable): Delete decls.
 12511 
 12512 	* symtab.h (symbol_record::symbol_def::is_builtin_variable,
 12513 	symbol_record::is_builtin_variable): Delete.
 12514 	(symbol_record::TYPE): Remove BUILTIN_VARIABLE from enum.
 12515 	(symbol_record::symbol_def::is_variable, SYMTAB_ALL_TYPES,
 12516 	SYMTAB_VARIABLES): No need to handle built-in variables now.
 12517 	(symbol_record::define_builtin_variable,
 12518 	symbol_record::link_to_builtin_variable): Delete decls.
 12519 	* symtab.cc (record::define, SYMBOL_DEF::type,
 12520 	SYMBOL_DEF::type_as_string): No need to handle built-in variables.
 12521 	(symbol_record::define_builtin_variable): Delete.
 12522 	(symbol_record::variable_reference): No need to attemp to link to
 12523 	built-in variable.
 12524 
 12525 	* utils.cc (check_preference, warn_old_style_preference): Delete.
 12526 	* utils.h (check_preference): Delete decl.
 12527 
 12528 	* defun-int.h: Delete all DEFVAR macros.
 12529 
 12530 	* Makefile.in, mkbuiltins: No need for VAR_FILES.
 12531 
 12532 	* parse.y (current_script_file_name): Delete all uses.
 12533 	(clear_current_script_file_name): Delete function.
 12534 
 12535 	* variables.cc (symbols_of_variables): Delete DEFVAR and function.
 12536 	(bind_ans): Lookup ans in curr_sym_tab, not fbi_sym_tab.
 12537 	SR is no longer static, so we insert value in local scope.
 12538 
 12539 	* defun.cc (bind_builtin_variable): Delete function.
 12540 	* defun-int.h: Delete decl.
 12541 
 12542 	* defaults.cc (fftw_wisdom_program): Rename from fftw_wisdom_prog.
 12543 	Change all uses.
 12544 	(VDEFAULT_LOADPATH): Rename from Vdefault_load_path.  Change all uses.
 12545 	(VLOADPATH): Rename from Vload_path.  Change all uses.
 12546 	(VDEFAULT_EXECPATH): Rename from Vdefault_exec_path.  Change all uses.
 12547 	(VEXECPATH): Rename from Vexec_path.  Change all uses.
 12548 	(VEDITOR): Rename from Veditor.  Change all uses.
 12549 	(Ffftw_wisdom_program, FDEFAULT_LOADPATH, FLOADPATH,
 12550 	FDEFAULT_EXEC_PATH, FEXEC_PATH, FEDITOR, FIMAGEPATH): New functions.
 12551 	(fftw_wisdom_program, default_load_path, loadpath,
 12552 	default_exec_path, exec_path, editor, image_path): Delete functions.
 12553 	(symbols_of_defaults): Delete DEFVARs and function.
 12554 
 12555 	* pr-output.cc (set_output_prec_and_fw): Set Voutput_precision and
 12556 	Voutput_max_field_width directly instead of calling
 12557 	bind_builtin_variable.
 12558 
 12559 	* octave.cc (octave_main, maximum_braindamage):
 12560 	Call bind_internal_variable instead of bind_builtin_variable.
 12561 
 12562 	* pager.cc (Fmore): Set Vpage_screen_output directly instead of
 12563 	calling bind_builtin_variable.
 12564 
 12565 	* error.cc (Fwarning): Set Vdebug_on_warning directly instead of
 12566 	calling bind_builtin_variable.
 12567 
 12568 	* error.cc (initialize_warning_options): Now static.
 12569 	(disable_warning, initialize_default_warning_state): New functions.
 12570 
 12571 	* error.h (initialize_warning_options): Delete decl.
 12572 	(initialize_default_warning_state): Provide decl.
 12573 	* octave.cc (octave_main): Call initialize_default_warning_state
 12574 	instead initialize_warning_options.
 12575 
 12576 	* lex.l (warn_matlab_incompatible, warn_separator_insert,
 12577 	warn_single_quote_string): Delete functions.
 12578 	(symbols_of_lex): Delete DEFVARS.
 12579 	(Vwarn_matlab_incompatible, Vwarn_separator_insert,
 12580 	Vwarn_single_quote_string): Delete variables.
 12581 	(maybe_warn_separator_insert, gripe_single_quote_string,
 12582 	gripe_matlab_incompatible): Call warning_with_id instead of warning.
 12583 
 12584 	* variables.h (SET_NONEMPTY_INTERNAL_STRING_VARIABLE,
 12585 	SET_INTERNAL_VARIABLE_WITH_LIMITS): New macros.
 12586 
 12587 	* ls-oct-ascii.cc (Fsave_precision): New function.
 12588 	(save_precision): Delete function.
 12589 	(symbols_of_ls_oct_ascii): Delete DEFVAR and function.
 12590 
 12591 	* oct-hist.cc (initialize_history): New function.
 12592 	* oct-hist.h: Provide decl.
 12593 	* octave.cc (octave_main): Call initialize_history instead of
 12594 	command_history::read.
 12595 
 12596 	* oct-hist.cc (Fhistory_size, Fhistory_file,
 12597 	Fhistory_timestamp_format_string, Fsaving_history): New functions.
 12598 	(history_size, history_file, history_timestamp_format_string,
 12599 	saving_history): Delete functions.
 12600 	(symbols_of_oct_hist): Delete DEFVARs and function.
 12601 
 12602 	* pt-mat.cc (Fstring_fill_char): New function.
 12603 	(string_fill_char): Delete function.
 12604 	(symbols_of_pt_mat): Delete DEFVAR and function.
 12605 
 12606 	* variables.cc (Fignore_function_time_stamp, ans): New functions.
 12607 	(ignore_function_time_stamp): Delete function.
 12608 	(symbols_of_variables): Delete DEFVARs and function.
 12609 
 12610 	* oct-procbuf.cc: (Vkluge_procbuf_delay): Delete variable.
 12611 	(octave_procbuf::open): Never delay after fork.
 12612 	(kluge_procbuf_delay): Delete function.
 12613 	(symbols_of_oct_procbuf): Delete DEFVAR and function.
 12614 
 12615 	* dirfns.cc (Fconfirm_recursive_rmdir): New function.
 12616 	(confirm_recursive_rmdir): Delete function.
 12617 	(symbols_of_dirfns): Delete DEFVAR and function.
 12618 
 12619 	* error.cc (initialize_warning_options): Now extern.
 12620 	Rename from init_warning_options. 
 12621 	* error.h: Provide decl.
 12622 	* octave.cc (octave_main): Call it here.
 12623 
 12624 	* error.cc (Fbeep_on_error, Fdebug_on_error, Fdebug_on_warning):
 12625 	New functions.
 12626 	(beep_on_error, debug_on_error, debug_on_warning): Delete Functions.
 12627 	(symbols_of_error): Delete DEFVARs and function.
 12628 
 12629 	* help.cc (Finfo_file, Finfo_program, Fmakeinfo_program,
 12630 	Fsuppress_verbose_help_message): New function.
 12631 	(info_file, info_program, makeinfo_program,
 12632 	suppress_verbose_help_message): Delete function.
 12633 	(symbols_of_help): Delete DEFVARs and function.
 12634 	(Vinfo_program): Rename from Vinfo_prog.  Change all uses.
 12635 
 12636 	* input.cc (FPS1, FPS2, FPS4, Fcompletion_append_char,
 12637 	Fecho_executing_commands): New functions.
 12638 	(ps1, ps2, ps4, completion_append_char, echo_executing_commands):
 12639 	Delete functions.
 12640 	(symbols_of_input): Delete DEFVARs and function.
 12641 	(VPS1, VPS2, VPS4): Rename from Vps1, Vps2, Vps4.  Change all uses.
 12642 	(Fecho): Set Vecho_executing_commands directly.
 12643 
 12644 	* load-save.cc (crash_dumps_octave_core, Fdefault_save_options,
 12645 	Foctave_core_file_limit, Foctave_core_file_name,
 12646 	Foctave_core_file_options, Fsave_header_format_string):	
 12647 	New functions.
 12648 	(crash_dumps_octave_core, default_save_options,
 12649 	octave_core_file_limit, octave_core_file_name,
 12650 	octave_core_file_options, save_header_format_string):	
 12651 	Delete functions. 
 12652 	(symbols_of_load_save): Delete DEFVARs and function.
 12653 
 12654 	* ov-base.cc (Fprint_answer_id_name, Fsilent_functions): New functions.
 12655 	(print_answer_id_name, silent_functions): Delete functions.
 12656 	(symbols_of_ov_base): Delete DEFVARs and function.
 12657 
 12658 	* ov-usr-fcn.cc (Fmax_recursion_depth): New function.
 12659 	(max_recursion_depth): Delete function.
 12660 	(symbols_of_ov_usr_fcn): Delete DEFVAR for max_recursion_depth.
 12661 	Delete function.
 12662 
 12663 	* pager.cc (Fpage_output_immediately, Fpage_screen_output, FPAGER):
 12664 	New functions.
 12665 	(page_output_immediately, page_screen_output, pager_binary):
 12666 	Delete functions.
 12667 	(symbols_of_pager): Delete DEFVARs and function.
 12668 	(VPAGER): Rename from Vpager_binary.  Change all uses.
 12669 
 12670 	* pr-output.cc (Ffixed_point_format, Fprint_empty_dimensions,
 12671 	Fsplit_long_rows, Foutput_max_field_width, Foutput_precision,
 12672 	Fstruct_levels_to_print): New functions.
 12673 	(fixed_point_format, print_empty_dimensions, split_long_rows,
 12674 	output_max_field_width, output_precision, struct_levels_to_print):
 12675 	Delete functions.
 12676 	(symbols_of_pr_output): Delete DEFVARs and function.
 12677 
 12678 	* pt-assign.cc (Fprint_rhs_assign_val): New function.
 12679 	(print_rhs_assign_val): Delete function.
 12680 	(symbols_of_pt_assign): Delete DEFVAR.  Delete function.
 12681 
 12682 	* sighandlers.cc (Fdebug_on_interrupt, Fsighup_dumps_octave_core,
 12683 	Fsigterm_dumps_octave_core): New functions.
 12684 	(debug_on_interrupt, sighup_dumps_octave_core,
 12685 	sigterm_dumps_octave_core): Delete functions.
 12686 	(symbols_of_sighanlders): Delete DEFVARs.  Delete function.
 12687 
 12688 	* symtab.cc (Vdebug_symtab_lookups): Now bool.
 12689 	(Fdebug_symtab_lookups, Fwhos_line_format,
 12690 	Fvariables_can_hide_functions): New functions.
 12691 	(debug_symtab_lookups, whos_line_format,
 12692 	variables_can_hide_functions): Delete functions.
 12693 	(symbols_of_symtab): Delete DEFVARs and function.
 12694 
 12695 2006-05-04  David Bateman  <dbateman@free.fr>
 12696 
 12697 	* DLD-FUNCTIONS/sqqr (Fdmperm): Allow compilation with versions
 12698 	v2.0.0 of CXSparse or later.
 12699 
 12700 2006-05-04  John W. Eaton  <jwe@octave.org>
 12701 
 12702 	* variables.cc (set_internal_variable): Move here from
 12703 	DLD-FUNCTIONS/__gnuplot_raw__.l.
 12704 	* variables.h (SET_INTERNAL_VARIABLE): Likewise.
 12705 	(set_internal_variable): Provide decls.
 12706 
 12707 	* DLD-FUNCTIONS/__gnuplot_raw__.l: Convert all DEFVARs to DEFUN_DLDs.
 12708 	(gnuplot::init): Delete.
 12709 	(gnuplot::gnuplot): Don't call init here.
 12710 	(set_internal_variable): New functions.
 12711 	(SET_INTERNAL_VARIABLE): New macro.
 12712 
 12713 	* Makefile.in: Undo changes of 2006-03-16.
 12714 	* DLD-FUNCTINS/__gnuplot_raw__.l: Move here from __gnuplot_raw__.l.
 12715 	Undo changes of 2006-03-16.
 12716 
 12717 2006-05-03  David Bateman  <dbateman@free.fr>
 12718 
 12719 	* ov-base-mat.h: Add caching of matrix type, and code to supply
 12720 	and copy matrix type.
 12721 	* ov-bool-mat.h: Add caching to constructor.
 12722 	* ov-re-mat.h: ditto.
 12723 	* ov-cx-mat.h: ditto.
 12724 	* ov.cc: Add to the BoolMatrix, Matrix and the ComplexMatrix
 12725 	octave_value constructors, the ability to specify the matrix type.
 12726 	* ov.h: Adapt declaration of above constructors.
 12727 	(MatrixType matrix_type(void) const, MatrixType matrix_type (const
 12728 	MatrixType&)): New functions for probing and setting matrix type.
 12729 	* ov-base.cc (virtual MatrixType matrix_type(void) const, virtual
 12730 	MatrixType matrix_type (const MatrixType&)): New default functions